From ed3bcaf18a88ba6da89807628eb38da0056bc623 Mon Sep 17 00:00:00 2001 From: David Kroon Date: Fri, 7 Jan 2022 17:10:05 +0100 Subject: [PATCH 001/345] Add intial projector Signed-off-by: David Kroon Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- ITR/configs.py | 9 +++++ ITR/data/base_providers.py | 7 +++- ITR/data/data_providers.py | 81 ++++++++++++++++++++++++++++++++++++++ ITR/data/excel.py | 14 ++++--- 4 files changed, 105 insertions(+), 6 deletions(-) diff --git a/ITR/configs.py b/ITR/configs.py index 8f6407a9..71414b1b 100644 --- a/ITR/configs.py +++ b/ITR/configs.py @@ -46,6 +46,9 @@ class ColumnsConfig: BASE_EI = 'emission_intensity_at_base_year' PROJECTED_EI = 'projected_intensities' PROJECTED_TARGETS = 'projected_targets' + HISTORIC_PRODUCTIONS = 'historic_productions' + HISTORIC_EMISSIONS = 'historic_emissions' + HISTORIC_EI = 'historic_emission_intensities' TRAJECTORY_SCORE = 'trajectory_score' TRAJECTORY_OVERSHOOT = 'trajectory_overshoot_ratio' TARGET_SCORE = 'target_score' @@ -66,6 +69,12 @@ class SectorsConfig: HEALTH_CARE = "Health Care" +class VariablesConfig: + EMISSIONS = "Emissions" + PRODUCTIONS = "Productions" + EMISSION_INTENSITIES = "Emission Intensities" + + class PortfolioAggregationConfig: COLS = ColumnsConfig diff --git a/ITR/data/base_providers.py b/ITR/data/base_providers.py index d503e591..45480faf 100644 --- a/ITR/data/base_providers.py +++ b/ITR/data/base_providers.py @@ -23,10 +23,15 @@ def __init__(self, column_config: Type[ColumnsConfig] = ColumnsConfig, tempscore_config: Type[TemperatureScoreConfig] = TemperatureScoreConfig): super().__init__() - self._companies = companies + self._companies = self._validate(companies) self.column_config = column_config self.temp_config = tempscore_config + def _validate(self, companies: List[ICompanyData]) -> List[ICompanyData]: + # TODO: check if either historic or projected EI data are supplied + # TODO: Extrapolate EI data if not yet present + return companies + def _convert_projections_to_series(self, company: ICompanyData, feature: str, scope: EScope = EScope.S1S2) -> pd.Series: """ diff --git a/ITR/data/data_providers.py b/ITR/data/data_providers.py index 77d6697e..b5cfd721 100644 --- a/ITR/data/data_providers.py +++ b/ITR/data/data_providers.py @@ -1,6 +1,7 @@ from abc import ABC, abstractmethod from typing import List import pandas as pd +import numpy as np from ITR.interfaces import ICompanyData @@ -180,3 +181,83 @@ def get_SDA_intensity_benchmarks(self, company_sector_region_info: pd.DataFrame) :return: A DataFrame with company and intensity benchmarks per calendar year per row """ raise NotImplementedError + + +class EmissionIntensityProjector(ABC): + """ + This class projects emission intensities on company level based on historic data on: + - A company's emission history (in t CO2) + - A company's production history (units depend on industry, e.g. TWh for electricity) + """ + + def __init__(self, historic_data: pd.DataFrame): + self.historic_data = historic_data + self.projection_data = None + self.historic_years = [column for column in self.historic_data.columns if type(column) == int] + self.projection_years = range(max(self.historic_years), ProjectionConfig.TARGET_YEAR) + + def project(self) -> pd.DataFrame: + # TODO: Input should be a List[ICompanyData], Output should be a List[ICompanyData] + self._validate_historic_data() + # TODO: Check if emission intensities are supplied + # TODO: If they are not: compute intensities by emissions / production + # TODO: Keep only S1S2 and add comment to separate further in the future + # TODO: Work back from end result: projected_ei_trajectories: Optional[ICompanyEIProjectionsScopes] = None + + historic_intensities: pd.DataFrame = self.historic_data[self.historic_years] + standardized_intensities = self._standardize(historic_intensities) + intensity_trends = self._get_trends(standardized_intensities) + return self._extrapolate(intensity_trends) + + def _validate_historic_data(self): + # TODO: Check that data contains at least 2 values that are not NaNs + # TODO: Check that data is indeed historic + # TODO: Throw error or continue with valid companies + log invalid company IDs + pass + + def get_emission_intensities(self): + # TODO: Separate S1 and S2 + # TODO: Separate Steel Electricity in results - units are different + # TODO: Get historic emissions + # TODO: Get historic production + # TODO: Compute EIs for each scope S1, S2, S1+S2 + pass + + def _standardize(self, intensities: pd.DataFrame) -> pd.DataFrame: + winsorized_intensities: pd.DataFrame = self._winsorize(intensities) + standardized_intensities: pd.DataFrame = self._interpolate(winsorized_intensities) + return standardized_intensities + + def _winsorize(self, historic_intensities: pd.DataFrame) -> pd.DataFrame: + winsorized: pd.DataFrame = historic_intensities.clip( + lower=historic_intensities.quantile(q=ProjectionConfig.LOWER_PERCENTILE, axis='columns', numeric_only=True), + upper=historic_intensities.quantile(q=ProjectionConfig.UPPER_PERCENTILE, axis='columns', numeric_only=True), + axis='index' + ) + return winsorized + + def _interpolate(self, historic_intensities: pd.DataFrame) -> pd.DataFrame: + # Interpolate NaNs surrounded by values, and extrapolate NaNs with last known value + interpolated = historic_intensities.interpolate(method='linear', axis='columns', inplace=False, + limit_direction='forward') + return interpolated + + def _get_trends(self, intensities: pd.DataFrame): + # Compute year-on-year growth ratios of emission intensities + ratios: pd.DataFrame = intensities.rolling(window=2, axis='columns', closed='right') \ + .apply(func=self._year_on_year_ratio, raw=True) + + trends: pd.DataFrame = ratios.median(axis='columns', skipna=True).clip( + lower=ProjectionConfig.LOWER_DELTA, + upper=ProjectionConfig.UPPER_DELTA, + ) + return trends + + def _extrapolate(self, trends: pd.DataFrame) -> pd.DataFrame: + projected_intensities = self.historic_data.copy() + for year in self.projection_years: + projected_intensities[year + 1] = projected_intensities[year] * (1 + trends) + return projected_intensities + + def _year_on_year_ratio(self, arr: np.ndarray) -> float: + return (arr[1] / arr[0]) - 1.0 \ No newline at end of file diff --git a/ITR/data/excel.py b/ITR/data/excel.py index 0e510bd0..fd458bf3 100644 --- a/ITR/data/excel.py +++ b/ITR/data/excel.py @@ -36,6 +36,7 @@ class TabsConfig: PROJECTED_EI = "projected_ei_in_Wh" PROJECTED_PRODUCTION = "projected_production" PROJECTED_TARGET = "projected_target" + HISTORIC_DATA = "historic_data" class ExcelProviderProductionBenchmark(BaseProviderProductionBenchmark): @@ -111,10 +112,10 @@ class ExcelProviderCompany(BaseCompanyDataProvider): def __init__(self, excel_path: str, column_config: Type[ColumnsConfig] = ColumnsConfig, tempscore_config: Type[TemperatureScoreConfig] = TemperatureScoreConfig): - super().__init__(None, column_config, tempscore_config) + self._companies = self._convert_excel_data_to_ICompanyData(excel_path) + super().__init__(self._companies, column_config, tempscore_config) self.ENERGY_UNIT_CONVERSION_FACTOR = 3.6 self.CORRECTION_SECTORS = [SectorsConfig.ELECTRICITY] - self._companies = self._convert_excel_data_to_ICompanyData(excel_path) def _check_company_data(self, df: pd.DataFrame) -> None: """ @@ -122,10 +123,13 @@ def _check_company_data(self, df: pd.DataFrame) -> None: :return: None """ - assert pd.Series([TabsConfig.FUNDAMENTAL, TabsConfig.PROJECTED_TARGET, TabsConfig.PROJECTED_EI]).isin( - df.keys()).all(), "some tabs are missing in the company data excel" + required_tabs = [TabsConfig.FUNDAMENTAL, TabsConfig.PROJECTED_TARGET] + optional_tabs = [TabsConfig.PROJECTED_EI, TabsConfig.HISTORIC_DATA] + missing_tabs = [tab for tab in required_tabs + optional_tabs if tab not in df.keys()] + assert not any(tab in missing_tabs for tab in required_tabs), f"Tabs {required_tabs} are required." + assert not all(tab in missing_tabs for tab in optional_tabs), f"Either of the tabs {optional_tabs} is required." - def _convert_excel_data_to_ICompanyData(self, excel_path: str) -> List[ICompanyData]: + def _convert_from_excel_data(self, excel_path: str) -> List[ICompanyData]: """ Converts the Excel template to list of ICompanyDta objects. All dataprovider features will be inhereted from Base From 6a7962bb30cbec901731575bfb7d0e031f145e75 Mon Sep 17 00:00:00 2001 From: David Kroon Date: Fri, 7 Jan 2022 17:11:02 +0100 Subject: [PATCH 002/345] Add projection parameters to config Signed-off-by: David Kroon Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- ITR/configs.py | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/ITR/configs.py b/ITR/configs.py index 71414b1b..16329787 100644 --- a/ITR/configs.py +++ b/ITR/configs.py @@ -90,3 +90,13 @@ class TemperatureScoreConfig(PortfolioAggregationConfig): carbon_conversion=3664.0, scenario_target_temperature=1.5 ) + + +class ProjectionConfig: + LOWER_PERCENTILE: float = 0.1 + UPPER_PERCENTILE: float = 0.9 + + LOWER_DELTA: float = -0.10 + UPPER_DELTA: float = +0.03 + + TARGET_YEAR: int = 2050 \ No newline at end of file From 59f5f29f1849bc652dace7ea1db61d64ac65a1d3 Mon Sep 17 00:00:00 2001 From: David Kroon Date: Fri, 7 Jan 2022 17:19:12 +0100 Subject: [PATCH 003/345] Add interfaces Signed-off-by: David Kroon Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- ITR/interfaces.py | 38 ++++++++++++++++++++++++++++++++++++-- 1 file changed, 36 insertions(+), 2 deletions(-) diff --git a/ITR/interfaces.py b/ITR/interfaces.py index 875e0205..1b853d56 100644 --- a/ITR/interfaces.py +++ b/ITR/interfaces.py @@ -120,6 +120,37 @@ def __getitem__(self, item): return getattr(self, item) +class IProductionRealization(BaseModel): + year: int + value: Optional[float] + + +class IEmissionRealization(BaseModel): + year: int + value: Optional[float] + + +class IHistoricEmissionsScopes(BaseModel): + S1: List[IEmissionRealization] + S2: List[IEmissionRealization] + S1S2: List[IEmissionRealization] + S3: List[IEmissionRealization] + S1S2S3: List[IEmissionRealization] + + +class IEIRealization(BaseModel): + year: int + value: Optional[float] + + +class IHistoricEIScopes(BaseModel): + S1: List[IEIRealization] + S2: List[IEIRealization] + S1S2: List[IEIRealization] + S3: List[IEIRealization] + S1S2S3: List[IEIRealization] + + class ICompanyData(BaseModel): company_name: str company_id: str @@ -128,8 +159,11 @@ class ICompanyData(BaseModel): sector: str # TODO: make SortableEnums target_probability: float - projected_targets: ICompanyProjectionsScopes - projected_intensities: ICompanyProjectionsScopes + historic_productions: Optional[List[IProductionRealization]] + historic_emissions: Optional[IHistoricEmissionsScopes] + historic_emission_intensities: Optional[IHistoricEIScopes] + projected_targets: Optional[ICompanyProjectionsScopes] + projected_intensities: Optional[ICompanyProjectionsScopes] country: Optional[str] ghg_s1s2: Optional[float] From 8edd3567be7a38dbdc42ce1562d25c52ec00a532 Mon Sep 17 00:00:00 2001 From: David Kroon Date: Fri, 7 Jan 2022 17:23:41 +0100 Subject: [PATCH 004/345] Update excel provider Signed-off-by: David Kroon Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- ITR/data/excel.py | 31 +++++++++++++++++++++++++++---- 1 file changed, 27 insertions(+), 4 deletions(-) diff --git a/ITR/data/excel.py b/ITR/data/excel.py index fd458bf3..1d90e7ac 100644 --- a/ITR/data/excel.py +++ b/ITR/data/excel.py @@ -6,7 +6,8 @@ BaseProviderIntensityBenchmark from ITR.configs import ColumnsConfig, TemperatureScoreConfig, SectorsConfig from ITR.interfaces import ICompanyData, ICompanyProjection, EScope, IEmissionIntensityBenchmarkScopes, \ - IProductionBenchmarkScopes, IBenchmark, IBenchmarks, IBenchmarkProjection + IProductionBenchmarkScopes, IBenchmark, IBenchmarks, IBenchmarkProjection, IHistoricEmissionsScopes, \ + IProductionRealization, IHistoricEIScopes import logging @@ -112,7 +113,7 @@ class ExcelProviderCompany(BaseCompanyDataProvider): def __init__(self, excel_path: str, column_config: Type[ColumnsConfig] = ColumnsConfig, tempscore_config: Type[TemperatureScoreConfig] = TemperatureScoreConfig): - self._companies = self._convert_excel_data_to_ICompanyData(excel_path) + self._companies = self._convert_from_excel_data(excel_path) super().__init__(self._companies, column_config, tempscore_config) self.ENERGY_UNIT_CONVERSION_FACTOR = 3.6 self.CORRECTION_SECTORS = [SectorsConfig.ELECTRICITY] @@ -156,8 +157,8 @@ def _convert_series_to_projections(self, projections: pd.Series, convert_unit: b projections = projections * self.ENERGY_UNIT_CONVERSION_FACTOR if convert_unit else projections return [ICompanyProjection(year=y, value=v) for y, v in projections.items()] - def _company_df_to_model(self, df_fundamentals: pd.DataFrame, df_targets: pd.DataFrame, df_ei: pd.DataFrame) -> \ - List[ICompanyData]: + def _company_df_to_model(self, df_fundamentals: pd.DataFrame, df_targets: pd.DataFrame, df_ei: pd.DataFrame, + df_historic: pd.DataFrame) -> List[ICompanyData]: """ transforms target Dataframe into list of IDataProviderTarget instances @@ -184,6 +185,11 @@ def _company_df_to_model(self, df_fundamentals: pd.DataFrame, df_targets: pd.Dat company_data.update({self.column_config.PROJECTED_TARGETS: {'S1S2': {'projections': company_targets}}}) company_data.update({self.column_config.PROJECTED_EI: {'S1S2': {'projections': company_ei}}}) + if df_historic is not None: + company_data[ColumnsConfig.HISTORIC_PRODUCTIONS] = self._convert_to_historic_productions(df_historic) + company_data[ColumnsConfig.HISTORIC_EMISSIONS] = self._convert_to_historic_emissions(df_historic) + company_data[ColumnsConfig.HISTORIC_EI] = self._convert_to_historic_emission_intensities(df_historic) + model_companies.append(ICompanyData.parse_obj(company_data)) except ValidationError as e: @@ -216,3 +222,20 @@ def _get_projection(self, company_ids: List[str], projections: pd.DataFrame) -> projected_emissions_s1s2 = projected_emissions_s1s2.replace(np.inf, np.nan) return projected_emissions_s1s2 + + def _get_historic_data(self, company_ids: List[str], historic_data: pd.DataFrame) -> pd.DataFrame: + historic_data = historic_data.reset_index().set_index(ColumnsConfig.COMPANY_ID) + + missing_ids = [company_id for company_id in company_ids if company_id not in historic_data.index] + assert missing_ids, f"Company ids missing in provided historic data: {missing_ids}" + + return historic_data.loc[company_ids, :] + + def _convert_to_historic_emissions(self, dataframe: pd.DataFrame) -> IHistoricEmissionsScopes: + return IHistoricEmissionsScopes(S1=[], S2=[], S1S2=[], S3=[], S1S2S3=[]) + + def _convert_to_historic_productions(self, dataframe: pd.DataFrame) -> List[IProductionRealization]: + return [IProductionRealization(year=1990, value=1)] + + def _convert_to_historic_emission_intensities(self, dataframe: pd.DataFrame) -> IHistoricEIScopes: + return IHistoricEIScopes(S1=[], S2=[], S1S2=[], S3=[], S1S2S3=[]) \ No newline at end of file From 1e2092a853c8520de1893ca3c1b3242fb5a33233 Mon Sep 17 00:00:00 2001 From: David Kroon Date: Fri, 7 Jan 2022 17:26:29 +0100 Subject: [PATCH 005/345] Add unit test for projection class Signed-off-by: David Kroon Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- test/test_projection.py | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 test/test_projection.py diff --git a/test/test_projection.py b/test/test_projection.py new file mode 100644 index 00000000..e69de29b From 28731b11faa02cdffb8b4f23c69906dc2c4d709b Mon Sep 17 00:00:00 2001 From: David Kroon Date: Fri, 7 Jan 2022 17:26:59 +0100 Subject: [PATCH 006/345] Add content to unit test for projection class Signed-off-by: David Kroon Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- test/test_projection.py | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/test/test_projection.py b/test/test_projection.py index e69de29b..1a0ef31d 100644 --- a/test/test_projection.py +++ b/test/test_projection.py @@ -0,0 +1,26 @@ +import unittest +import pandas as pd +import os +from ITR.data.data_providers import EmissionIntensityProjector + + +class TestProjector(unittest.TestCase): + """ + Test the projector that converts historic data into emission intensity projections + """ + + def setUp(self) -> None: + self.root: str = os.path.dirname(os.path.abspath(__file__)) + self.source_path: str = os.path.join(self.root, "inputs", "test_data_company.xlsx") + self.reference_path: str = os.path.join(self.root, "inputs", "test_projection_reference.csv") + + intensities_historic: pd.DataFrame = pd.read_excel(self.source_path, 'historic_data') + self.projector = EmissionIntensityProjector(intensities_historic) + + def test_project(self): + projections = self.projector.project() + + # Column names from read_csv are read as strings + projections.columns = [str(col) for col in projections.columns] + reference = pd.read_csv(self.reference_path) + pd.testing.assert_frame_equal(projections, reference) \ No newline at end of file From e55b9abf4669b3f185145e570965f2c5c6da1922 Mon Sep 17 00:00:00 2001 From: David Kroon Date: Fri, 7 Jan 2022 17:29:56 +0100 Subject: [PATCH 007/345] Add test data Signed-off-by: David Kroon Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- test/inputs/test_data_company.xlsx | Bin 71429 -> 93357 bytes test/inputs/test_projection_reference.csv | 151 ++++++++++++++++++++++ 2 files changed, 151 insertions(+) create mode 100644 test/inputs/test_projection_reference.csv diff --git a/test/inputs/test_data_company.xlsx b/test/inputs/test_data_company.xlsx index 71a42157cba4ac6f39f9c7966cacc0f272b2fbd2..c91aee15679bfff03211fbaf117b427d39cf26b7 100644 GIT binary patch delta 87445 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 delta 65419 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 diff --git a/test/inputs/test_projection_reference.csv b/test/inputs/test_projection_reference.csv new file mode 100644 index 00000000..637dfb69 --- /dev/null +++ b/test/inputs/test_projection_reference.csv @@ -0,0 +1,151 @@ +company_id,variable,scope,2009,2010,2011,2012,2013,2014,2015,2016,2017,2018,2019,2020,2021,2022,2023,2024,2025,2026,2027,2028,2029,2030,2031,2032,2033,2034,2035,2036,2037,2038,2039,2040,2041,2042,2043,2044,2045,2046,2047,2048,2049,2050 +US0079031078,Emissions,S1,74121549.8360392,77200005.8360392,74010717.8360392,78912218.8360392,75863005.8360392,79630005.8360392,70339005.8360392,70457005.8360392,64527005.8360392,54154005.8360392,49092005.8360392,49092005.8360392,49092005.8360392,48246383.03653919,47415326.313671336,46598584.762908734,45795911.801621385,45007065.094630376,44231806.481044434,43469901.90235669,42721121.33178004,41985238.70479968,41262031.85092195,40551282.426598765,39852775.84930747,39166301.232766174,38491651.323265046,37828622.43709428,37177014.3990499,36536630.48199883,35907277.34748494,35288764.98735821,34680906.66640932,34083518.86599237,33496421.22861872,32919436.50350524,32352390.493060477,31795112.000292607,31247432.77712332,30709187.473592017,30180213.587934937,29660351.41752424 +US0079031078,Emissions,S2,,,,414929.856039191,90005.8360391907,290005.836039191,367805.836039191,306005.836039191,226005.836039191,360005.836039191,359005.836039191,359005.836039191,359005.836039191,359005.836039191,359005.836039191,359005.836039191,359005.836039191,359005.836039191,359005.836039191,359005.836039191,359005.836039191,359005.836039191,359005.836039191,359005.836039191,359005.836039191,359005.836039191,359005.836039191,359005.836039191,359005.836039191,359005.836039191,359005.836039191,359005.836039191,359005.836039191,359005.836039191,359005.836039191,359005.836039191,359005.836039191,359005.836039191,359005.836039191,359005.836039191,359005.836039191,359005.836039191 +US0079031078,Productions,Production,,,,,,467435849.836039,319287605.836039,375523565.836039,241767187.636039,108010809.436039,104827858.636039,104827858.636039,104827858.636039,101738705.63135336,98740586.31189725,95830818.02264066,93006797.16322431,90265996.85831198,87605964.69659486,85024320.53642474,82518754.37611254,80087024.28698672,77726954.40736198,75436432.99562328,73213410.54068322,71055897.92812204,68961964.6603692,66929737.1293342,64957396.93994087,63043179.28306517,61185371.35642054,59382310.831977926,57632384.3685491,55934026.16820241,54285716.57521923,52685980.71633755,51133387.18106591,49626546.74088698,48164111.106204666,46744771.71992254,45367258.58657405,44030339.1359569 +US0079031078,Emission Intensities,S1,,,,,,0.170354939322627,0.220299831720245,0.187623393698818,0.266897284395678,0.501375798577897,0.468310680717861,0.468310680717861,0.468310680717861,0.468310680717861,0.468310680717861,0.468310680717861,0.468310680717861,0.468310680717861,0.468310680717861,0.468310680717861,0.468310680717861,0.468310680717861,0.468310680717861,0.468310680717861,0.468310680717861,0.468310680717861,0.468310680717861,0.468310680717861,0.468310680717861,0.468310680717861,0.468310680717861,0.468310680717861,0.468310680717861,0.468310680717861,0.468310680717861,0.468310680717861,0.468310680717861,0.468310680717861,0.468310680717861,0.468310680717861,0.468310680717861,0.468310680717861 +US0079031078,Emission Intensities,S2,,,,,,0.000620418472697195,0.00115195776258245,0.00081487785023004,0.000934807730730706,0.00333305377414448,0.00342471782511225,0.00342471782511225,0.00342471782511225,0.003518902776974269,0.003615677958341389,0.003715114604466763,0.0038172859096814097,0.0039222670812718375,0.004030135394839382,0.004140970251182014,0.0042548532347404765,0.0043718681736517875,0.004492101201454301,0.004615640820489754,0.0047425779670489596,0.004873006078309115,0.005007021161111982,0.005144721862633569,0.0052862095429973485,0.005431588349884433,0.005580965295195658,0.005734450333821978,0.005892156444581179,0.006054199713380463,0.006220699418666138,0.006391778119223301,0.006567561744390149,0.006748179686753312,0.0069337648973924635,0.007124453983744289,0.007320387310157869,0.007521709101215489 +US00724F1012,Emissions,S1,136602601.492059,138294801.492059,135671201.492059,121927401.492059,115300001.492059,122700001.492059,102500001.492059,93000001.4920592,78760421.4920592,75361247.4920592,64776309.4920593,64776309.4920593,64776309.4920593,61618020.72322818,58613720.16436984,55755899.835515924,53037417.82214698,50451480.42699444,47991625.19206457,45651704.748454995,43425871.45360336,41308562.77757524,39294487.40187073,37378611.996009305,35556148.63884685,33822542.85318958,32173462.223802492,30604785.570367888,29112592.64833631,27693154.35193155,26342923.394826252,25058525.445198428,23836750.69301467,22674545.82846609,21569006.411510427,20517369.613451246,19517007.312414885,18565419.525470167,17660228.160977285,16799171.07555245,15980096.420796238,15200957.265657645 +US00724F1012,Emissions,S2,,1.49205924340197,1.49205924340197,1.49205924340197,2591521.89205924,5183042.29205924,7774562.69205924,10366083.0920592,12957603.4920592,15739424.4920592,14514120.4920592,14514120.4920592,14514120.4920592,14949544.106820976,15398030.430025605,15859971.342926374,16335770.483214166,16825843.59771059,17330618.90564191,17850537.472811166,18386053.596995503,18937635.20490537,19505764.26105253,20090937.188884106,20693665.30455063,21314475.26368715,21953909.521597765,22612526.807245698,23290902.61146307,23989629.689806964,24709318.580501173,25450598.137916207,26214116.082053695,27000539.564515308,27810555.751450766,28644872.423994288,29504218.596714117,30389345.15461554,31301025.50925401,32240056.27453163,33207257.96276758,34203475.701650605 +US00724F1012,Productions,Production,,595461601.492059,587480044.192059,579498486.892059,571516929.592059,563535372.292059,523856381.092059,461561937.892059,691152099.892059,682667227.492059,598937001.892059,598937001.892059,598937001.892059,590908860.3834996,582988327.9488125,575173962.1977798,567464340.0739579,559858057.5955279,552353729.5996194,544949989.490062,537645488.9885174,530438897.8889474,523328903.81537336,516314211.982882,509393544.9618354,502565642.4452409,495829261.0192398,489183173.9366717,482626170.8936745,476157057.8092789,469774656.6079567,463477805.00508434,457265356.2952818,451136179.1435888,445089157.3794396,439123189.7934002,433237189.9366294,427430085.9230278,421700820.23403937,416048349.52606905,410471644.4404817,404969689.4161482 +US00724F1012,Emission Intensities,S1,,0.232248059565103,0.230937548999887,0.210401587320745,0.201743807614516,0.217732563961342,0.195664317915498,0.201489754369235,0.11395526614816,0.11039236169124,0.108152124993829,0.108152124993829,0.108152124993829,0.10595735032280768,0.10380711509894776,0.10170051546529317,0.0996366659072214,0.09761469888021512,0.09563376444518766,0.09369302991120884,0.09179167948548121,0.08992891393041942,0.08810395022768863,0.08631602124906072,0.08456437543394996,0.08284827647349254,0.08116700300103726,0.07951984828891714,0.07790611995137471,0.07632513965351573,0.07477624282616943,0.07325877838653516,0.07177210846449798,0.07031560813449833,0.06888866515284298,0.06749067970034672,0.06612106413019694,0.06477924272093463,0.06346465143444847,0.0621767376788799,0.06091496007633969,0.05967878823533838 +US00724F1012,Emission Intensities,S2,,2.50571865534786e-09,2.53976157684461e-09,2.57474225930099e-09,0.00453446216179289,0.00919736816338313,0.0148410193569695,0.022458704327746,0.0187478320532961,0.0230557786549704,0.0242331337790264,0.0242331337790264,0.0242331337790264,0.02496012779239719,0.025708931626169107,0.02648019957495418,0.027274605562202806,0.02809284372906889,0.02893562904094096,0.029803697912169188,0.030697808849534266,0.0316187431150203,0.03256730540847091,0.03354432457072504,0.03455065430784679,0.035587173937082196,0.03665478915519466,0.037754432829850505,0.03888706581474602,0.0400536777891884,0.04125528812286405,0.04249294676654997,0.043767735169546476,0.04508076722463287,0.04643319024137186,0.047826185948613015,0.04926097152707141,0.05073880067288355,0.05226096469307005,0.05382879363386216,0.055443657442878026,0.05710696716616437 +US6293775085,Emissions,S1,,165226001.396088,162028001.396088,158192001.396088,169000001.396088,174000001.396088,176000001.396088,176000001.396088,179700001.396088,174900001.396088,169800001.396088,141300001.396088,141300001.396088,141300001.396088,141300001.396088,141300001.396088,141300001.396088,141300001.396088,141300001.396088,141300001.396088,141300001.396088,141300001.396088,141300001.396088,141300001.396088,141300001.396088,141300001.396088,141300001.396088,141300001.396088,141300001.396088,141300001.396088,141300001.396088,141300001.396088,141300001.396088,141300001.396088,141300001.396088,141300001.396088,141300001.396088,141300001.396088,141300001.396088,141300001.396088,141300001.396088,141300001.396088 +US6293775085,Emissions,S2,,19599001.3960884,17902001.3960884,17256001.3960884,21000001.3960884,17000001.3960884,16000001.3960884,14000001.3960884,15100001.3960884,13900001.3960884,12100001.3960884,9500001.3960884,9500001.3960884,8753224.564721376,8065150.42323987,7431164.466138286,6847014.9253103295,6308784.255959974,5812862.863950093,5355924.898393682,4934905.947142892,4546982.485592764,4189552.9409749657,3860220.245150952,3556775.758896495,3277184.459867274,3019571.2949099913,2782208.6051920536,2563504.539817613,2361992.3802269613,2176320.7037843433,2005244.3205872094,1847615.9227154558,1702378.389917111,1568557.7001292706,1445256.3972893374,1331647.572629054,1226969.319087431,1130519.6216516034,1041651.6493581627,959769.4173812058,884323.7901152956 +US6293775085,Productions,Production,,,,,,91200001.3960884,92479001.3960884,90800001.3960884,93100001.3960884,92500001.3960884,89800001.3960884,71500001.3960884,71500001.3960884,71361136.48394525,71222541.27059157,71084215.2322274,70946157.84607008,70808368.59035227,70670846.94432,70533592.38823068,70396604.40335116,70259882.47195575,70123426.07732426,69987234.70374006,69851307.83648816,69715644.96185318,69580245.56711748,69445109.14055924,69310235.17145044,69175623.15005499,69041272.5676268,68907182.91640787,68773353.6896263,68639784.38149448,68506474.48720707,68373423.5029392,68240630.92584448,68108096.25405313,67975818.9866701,67843798.62377317,67712034.66641101,67580526.61660138 +US6293775085,Emission Intensities,S1,,,,,,1.90789472294406,1.90313475209663,1.93832597676227,1.93018258540691,1.89081079736594,1.89086858303195,1.97622375716231,1.97622375716231,1.97622375716231,1.97622375716231,1.97622375716231,1.97622375716231,1.97622375716231,1.97622375716231,1.97622375716231,1.97622375716231,1.97622375716231,1.97622375716231,1.97622375716231,1.97622375716231,1.97622375716231,1.97622375716231,1.97622375716231,1.97622375716231,1.97622375716231,1.97622375716231,1.97622375716231,1.97622375716231,1.97622375716231,1.97622375716231,1.97622375716231,1.97622375716231,1.97622375716231,1.97622375716231,1.97622375716231,1.97622375716231,1.97622375716231 +US6293775085,Emission Intensities,S2,,,,,,0.186403521226454,0.173012263914489,0.154185035031195,0.162191204829808,0.150270283095111,0.134743888730223,0.132867149798519,0.132867149798519,0.12985196288384895,0.1269052003475462,0.12402530941836061,0.12121077256246193,0.11846010668378848,0.11577186234254232,0.11314462299141939,0.11057700422917208,0.10806765307111083,0.10561524723616045,0.10321849445009548,0.10087613176458736,0.09858692489170459,0.09634966755351536,0.09416318084644967,0.09202631262008626,0.08993793687003679,0.08789695314460749,0.08590228596492558,0.0839528842582249,0.08204772080399216,0.0801857916926818,0.07836611579671457,0.07658773425348074,0.07484970996007564,0.07315112707950133,0.07149109055807415,0.06986872565378388,0.0682831774753559 +US7134481081,Emissions,S1,,,13390004.4552317,9480004.45523172,8095004.45523172,7840004.45523172,7810004.45523172,8270004.45523172,8670004.45523172,8780004.45523172,8590004.45523172,8530004.45523172,8530004.45523172,8530004.45523172,8530004.45523172,8530004.45523172,8530004.45523172,8530004.45523172,8530004.45523172,8530004.45523172,8530004.45523172,8530004.45523172,8530004.45523172,8530004.45523172,8530004.45523172,8530004.45523172,8530004.45523172,8530004.45523172,8530004.45523172,8530004.45523172,8530004.45523172,8530004.45523172,8530004.45523172,8530004.45523172,8530004.45523172,8530004.45523172,8530004.45523172,8530004.45523172,8530004.45523172,8530004.45523172,8530004.45523172,8530004.45523172 +US7134481081,Emissions,S2,,,2530004.45523172,1970004.45523172,1781004.45523172,1541004.45523172,1570004.45523172,1830004.45523172,2000004.45523172,1970004.45523172,1810004.45523172,1750004.45523172,1750004.45523172,1723754.4468781792,1697898.1877728193,1672429.7716900746,1647343.380997565,1622633.2853272026,1598293.8402662284,1574319.4860678865,1550704.7463814367,1527444.227001217,1504532.6146344696,1481964.6756876511,1459735.2550709462,1437839.2750207144,1416271.7339396002,1395027.7052540414,1374102.3362889146,1353490.8471590609,1333188.5296774392,1313190.7462796571,1293492.9289646326,1274090.5782511472,1254979.2621500508,1236154.6151518822,1217612.3372296763,1199348.1928567288,1181358.0100390944,1163637.6793625976,1146183.1530541382,1128990.4440570774 +US7134481081,Productions,Production,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +US7134481081,Emission Intensities,S1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +US7134481081,Emission Intensities,S2,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +JP0000000001,Emissions,S1,21759305.8145184,20966413.8145184,21128989.8145184,20070402.8145184,19691129.8145184,19443564.8145184,20018158.8145184,21042990.8145184,20006804.8145184,20805771.8145184,20351815.8145184,20351815.8145184,20351815.8145184,20351815.8145184,20351815.8145184,20351815.8145184,20351815.8145184,20351815.8145184,20351815.8145184,20351815.8145184,20351815.8145184,20351815.8145184,20351815.8145184,20351815.8145184,20351815.8145184,20351815.8145184,20351815.8145184,20351815.8145184,20351815.8145184,20351815.8145184,20351815.8145184,20351815.8145184,20351815.8145184,20351815.8145184,20351815.8145184,20351815.8145184,20351815.8145184,20351815.8145184,20351815.8145184,20351815.8145184,20351815.8145184,20351815.8145184 +JP0000000001,Emissions,S2,1337565.8145184,1349200.8145184,1371359.8145184,1243282.8145184,1257964.8145184,1185845.8145184,1109279.8145184,1275990.8145184,1298687.8145184,1294689.8145184,1181783.8145184,1181783.8145184,1181783.8145184,1181783.8145184,1181783.8145184,1181783.8145184,1181783.8145184,1181783.8145184,1181783.8145184,1181783.8145184,1181783.8145184,1181783.8145184,1181783.8145184,1181783.8145184,1181783.8145184,1181783.8145184,1181783.8145184,1181783.8145184,1181783.8145184,1181783.8145184,1181783.8145184,1181783.8145184,1181783.8145184,1181783.8145184,1181783.8145184,1181783.8145184,1181783.8145184,1181783.8145184,1181783.8145184,1181783.8145184,1181783.8145184,1181783.8145184 +JP0000000001,Productions,Production,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +JP0000000001,Emission Intensities,S1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +JP0000000001,Emission Intensities,S2,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +FR0000125338,Emissions,S1,,126884622.661096,129300002.661096,129900002.661096,117200002.661096,97900002.6610958,80000002.6610958,5370002.66109578,4530002.66109578,4580002.66109578,4910002.66109578,3560002.66109578,3560002.66109578,3232893.8861125843,2935841.3107610126,2666083.238610443,2421111.7301013293,2198649.2862426154,1996627.6747140645,1813168.701519861,1646566.7494276469,1495272.9208529359,1357880.6377653729,1233112.5647392382,1119808.7335718528,1016915.7590645179,923477.0457051541,838623.8942042129,761567.4252013667,691591.2450577128,628044.7855473992,570337.2555278124,517932.148357034,470342.25399405166,427125.12940924225,387878.9851935548,352238.95012421714,319873.67895865167,290482.2719192743,263791.47722964274,239553.150693944,217541.94870154394 +FR0000125338,Emissions,S2,,5441396.66109578,5300002.66109578,4400002.66109578,3500002.66109578,3900002.66109578,3700002.66109578,3360002.66109578,3370002.66109578,2890002.66109578,2730002.66109578,4490002.66109578,4490002.66109578,4490002.66109578,4490002.66109578,4490002.66109578,4490002.66109578,4490002.66109578,4490002.66109578,4490002.66109578,4490002.66109578,4490002.66109578,4490002.66109578,4490002.66109578,4490002.66109578,4490002.66109578,4490002.66109578,4490002.66109578,4490002.66109578,4490002.66109578,4490002.66109578,4490002.66109578,4490002.66109578,4490002.66109578,4490002.66109578,4490002.66109578,4490002.66109578,4490002.66109578,4490002.66109578,4490002.66109578,4490002.66109578,4490002.66109578 +FR0000125338,Productions,Production,,991800002.661096,976320002.661096,947520002.661096,987840002.661096,870120002.661096,163080002.661096,152928002.661096,142776002.661096,132624002.661096,122472002.661096,112320002.661096,112320002.661096,104863731.42774703,97902438.64336601,91403265.56968082,85335534.76880339,79670605.29939313,74381737.52550441,69443966.89998758,64833986.12667548,60530035.145136565,56511798.41869986,52760309.040930144,49257859.207916126,45987916.63378233,42935046.514888614,40084838.674372345,37423839.5431403,34939488.6562467,32620059.364907034,30454603.48429622,28432899.615857303,26545404.900191247,24783209.972791612,23137996.91000579,21601999.96671912,20167968.920435652,18829134.848731995,17579178.178546857,16412198.856492272,15322688.499384236 +FR0000125338,Emission Intensities,S1,,0.127933678484223,0.132436088893673,0.137094733933082,0.118642697547554,0.112513219282039,0.490556790260468,0.0351145805062024,0.0317280395631228,0.0345337387591853,0.0400908171207319,0.0316951796363236,0.0316951796363236,0.0316951796363236,0.0316951796363236,0.0316951796363236,0.0316951796363236,0.0316951796363236,0.0316951796363236,0.0316951796363236,0.0316951796363236,0.0316951796363236,0.0316951796363236,0.0316951796363236,0.0316951796363236,0.0316951796363236,0.0316951796363236,0.0316951796363236,0.0316951796363236,0.0316951796363236,0.0316951796363236,0.0316951796363236,0.0316951796363236,0.0316951796363236,0.0316951796363236,0.0316951796363236,0.0316951796363236,0.0316951796363236,0.0316951796363236,0.0316951796363236,0.0316951796363236,0.0316951796363236 +FR0000125338,Emission Intensities,S2,,0.00548638500352489,0.00542855072788623,0.00464370424765539,0.00354308658453523,0.00448214343902952,0.0226882671125835,0.0219711406846913,0.0236034249333558,0.0217909473632825,0.0222908305717041,0.0399750939700696,0.0399750939700696,0.0399750939700696,0.0399750939700696,0.0399750939700696,0.0399750939700696,0.0399750939700696,0.0399750939700696,0.0399750939700696,0.0399750939700696,0.0399750939700696,0.0399750939700696,0.0399750939700696,0.0399750939700696,0.0399750939700696,0.0399750939700696,0.0399750939700696,0.0399750939700696,0.0399750939700696,0.0399750939700696,0.0399750939700696,0.0399750939700696,0.0399750939700696,0.0399750939700696,0.0399750939700696,0.0399750939700696,0.0399750939700696,0.0399750939700696,0.0399750939700696,0.0399750939700696,0.0399750939700696 +US17275R1023,Emissions,S1,78192009.4017252,80575879.4017252,70935799.4017252,80283565.4017252,73222380.0683918,66161194.7350585,59100009.4017252,47700009.4017252,51300009.4017252,35700009.4017252,33100009.4017252,33100009.4017252,33100009.4017252,30518123.69432973,28137631.700306006,25942824.192994807,23919217.305744935,22053456.95068684,20333230.69308729,18747186.49973064,17284857.825134885,15936594.54123526,14693499.254729772,13547368.591835294,12490639.062983416,11516337.15020899,10618033.287850501,9789799.432873962,9026169.94482046,8322105.517218218,7672959.922437125,7074449.350529973,6522624.139722799,6013842.711999543,5544747.541778029,5112242.9990909,4713474.921055327,4345811.776820527,4006827.30169772,3694284.485872535,3406120.812038957,3140434.6445357157 +US17275R1023,Emissions,S2,480089.401725152,670709.401725152,81181.4017251516,74013.4017251516,159212.601725152,244411.801725152,329611.001725152,414810.201725152,500009.401725152,470009.401725152,290009.401725152,290009.401725152,290009.401725152,294822.6613068933,299715.8061187802,304690.1620086893,309747.0768294733,314887.9208041758,320114.0868973071,325426.9911922825,330828.07327512465,336318.7966245339,341900.6490084331,347575.1428870937,353343.8158229522,359208.2308972285,365169.9771334591,371230.66992805904,377391.95148803026,383655.4912759345,390022.9864622514,396496.1623852441,403076.7730184576,409766.6014459757,416567.46034556616,423481.19247984415,430509.67119558796,437654.80093134136,444918.51773344097,452302.7897806078,459809.6179172454,467441.0361955896 +US17275R1023,Productions,Production,2226600009.40172,2269440009.40172,2261520009.40172,2313360009.40172,2354040009.40172,2244600009.40172,2229480009.40172,101160009.401725,105840009.401725,106560009.401725,100080009.401725,100080009.401725,100080009.401725,100080009.401725,100080009.401725,100080009.401725,100080009.401725,100080009.401725,100080009.401725,100080009.401725,100080009.401725,100080009.401725,100080009.401725,100080009.401725,100080009.401725,100080009.401725,100080009.401725,100080009.401725,100080009.401725,100080009.401725,100080009.401725,100080009.401725,100080009.401725,100080009.401725,100080009.401725,100080009.401725,100080009.401725,100080009.401725,100080009.401725,100080009.401725,100080009.401725,100080009.401725 +US17275R1023,Emission Intensities,S1,0.0351172231525926,0.0355047408470457,0.0313664257255415,0.0347043110780185,0.0311049853766084,0.0294757170355234,0.0265084275941028,0.471530298225849,0.484693923325454,0.335022581193083,0.330735474542777,0.330735474542777,0.330735474542777,0.330735474542777,0.330735474542777,0.330735474542777,0.330735474542777,0.330735474542777,0.330735474542777,0.330735474542777,0.330735474542777,0.330735474542777,0.330735474542777,0.330735474542777,0.330735474542777,0.330735474542777,0.330735474542777,0.330735474542777,0.330735474542777,0.330735474542777,0.330735474542777,0.330735474542777,0.330735474542777,0.330735474542777,0.330735474542777,0.330735474542777,0.330735474542777,0.330735474542777,0.330735474542777,0.330735474542777,0.330735474542777,0.330735474542777 +US17275R1023,Emission Intensities,S2,0.000215615467393333,0.000295539604019745,3.58968310639125e-05,3.19938969396695e-05,6.76337704921231e-05,0.000108888800098641,0.000147842097859223,0.0041005354208486,0.00472420027692289,0.00441074850090565,0.00289777552439111,0.00289777552439111,0.00289777552439111,0.0029847087901228434,0.003074250053826529,0.003166477555441325,0.003261471882104565,0.0033593160385677018,0.0034600955197247327,0.0035638983853164747,0.003670815336875969,0.003780939796982248,0.0038943679908917156,0.004011199030618467,0.004131535001537021,0.004255481051583132,0.004383145483130626,0.004514639847624545,0.004650079043053282,0.004789581414344881,0.004933268856775227,0.005081266922478484,0.005233704930152839,0.0053907160780574245,0.005552437560399148,0.005719010687211122,0.005890581007827456,0.0060672984380622805,0.006249317391204149,0.0064367969129402736,0.0066299008203284816,0.0068287978449383365 +CH0198251305,Emissions,S1,,116400006.472471,123540195.472471,127800006.472471,115550006.472471,115480006.472471,119510006.472471,106730006.472471,105960006.472471,95230006.4724713,69980006.4724713,45260006.4724712,45260006.4724712,44933479.69583513,44609308.63551839,44287476.296285756,43967965.805513546,43650760.41230505,43335843.48661233,43023198.518364355,42712809.11660145,42404659.00861597,42098732.03909914,41795012.169294134,41493483.47615518,41194130.15151277,40896936.50124492,40601886.944454335,40308966.012651585,40018158.34894412,39729448.70723118,39442821.95140447,39158263.054554634,38875757.09818346,38595289.27142171,38316844.87025267,38040409.296741255,37765968.05826868,37493506.76677267,37223011.137993135,36954466.99072329,36687860.24606618 +CH0198251305,Emissions,S2,,245006.472471246,331647.472471246,370006.472471246,786006.472471246,636006.472471246,654006.472471246,1400006.47247125,5000006.47247125,5080006.47247125,5370006.47247125,5000006.47247125,5000006.47247125,5072006.47247125,5145043.27112912,5219131.798326207,5294287.198933871,5370524.835909337,5447860.293436127,5526309.380109715,5605888.132169059,5686612.816774653,5768499.935333804,5851566.226873774,5935828.671463506,6021304.493684621,6108011.166152391,6195966.413087424,6285188.213938775,6375694.807059228,6467504.693433512,6560636.640460185,6655109.685787998,6750943.141207488,6848156.596598618,6946769.923935253,7046803.281347315,7148277.11724142,7251212.174480857,7355629.494625761,7461550.422234341,7568996.609226044 +CH0198251305,Productions,Production,,1044720006.47247,1058040006.47247,1064880006.47247,1030125606.47247,1019163606.47247,1022443206.47247,942523206.472471,899553606.472471,901220406.472471,824864406.472471,745588806.472471,745588806.472471,737654682.2790738,729804988.4394718,722038826.4947467,714355307.5468591,706753552.1569082,699232690.244472,691791860.9880209,684430212.7263889,677146902.8612951,669941097.7609015,662811972.6643968,655758711.5875969,648780507.2295487,641876560.8801281,635046082.3286215,628288289.77328,621602409.7318361,614987676.9529723,608443334.3287327,601968632.8078655,595562831.3100885,589225196.6412666,582955003.4094919,576751533.942057,570614078.2033118,564541933.7133944,558534405.4678265,552590805.8579649,546710454.5922992 +CH0198251305,Emission Intensities,S1,,0.111417418783335,0.116763255374773,0.120013527999105,0.112170793295933,0.113308604957128,0.116886694259325,0.113238597988397,0.117791764392992,0.10566783196268,0.0848381939181258,0.0607037097117985,0.0607037097117985,0.0607037097117985,0.0607037097117985,0.0607037097117985,0.0607037097117985,0.0607037097117985,0.0607037097117985,0.0607037097117985,0.0607037097117985,0.0607037097117985,0.0607037097117985,0.0607037097117985,0.0607037097117985,0.0607037097117985,0.0607037097117985,0.0607037097117985,0.0607037097117985,0.0607037097117985,0.0607037097117985,0.0607037097117985,0.0607037097117985,0.0607037097117985,0.0607037097117985,0.0607037097117985,0.0607037097117985,0.0607037097117985,0.0607037097117985,0.0607037097117985,0.0607037097117985,0.0607037097117985 +CH0198251305,Emission Intensities,S2,,0.000234518790636084,0.000313454567353238,0.000347463066469744,0.000763020031278342,0.0006240474722921,0.000639650660624596,0.00148538143449112,0.00555831963375521,0.00563680808377969,0.00651016873844279,0.00670611794204271,0.00670611794204271,0.006887780302959372,0.007074363724564054,0.007266001513713351,0.007462830588419893,0.007664991575675134,0.00787262891192206,0.008085890946249613,0.00830493004638255,0.008529902707542461,0.008760969664257748,0.008998296005202406,0.009242051291145694,0.009492409676096943,0.009749550031732064,0.010013656075190653,0.010284916500334996,0.010563525112564752,0.010849680967283648,0.011143588512117098,0.01144545773298236,0.011755504304115599,0.012073949742163043,0.012401021564446316,0.012736953451515027,0.013081985414102767,0.013436363964605765,0.01380034229320676,0.01417418044876988,0.014558145524635814 +US1266501006,Emissions,S1,,109324454.376334,156899254.376334,154230874.376334,141984778.376334,131154736.376334,133757296.376334,120150105.376334,89756230.3763341,57205670.3763341,46188978.3763341,38589016.3763341,38589016.3763341,35645597.56148989,32926691.189126387,30415172.330716796,28095222.280114714,25952228.92003426,23972694.68818428,22144151.563384872,20455082.53620951,18894849.069538545,17453624.09213722,16122330.103220697,14892581.998160105,13756634.255219504,12707332.150681382,11738066.695091048,10842733.006787553,10015691.860538397,9251734.169093572,8546048.173947353,7894189.138660087,7292051.353854537,6735842.277561294,6222058.648037217,5747464.4186043935,5309070.375533039,4904115.310592343,4530048.629685294,4184514.2880286276,3865335.950694237 +US1266501006,Emissions,S2,,3250751.37633413,3357343.37633413,3712790.37633413,3748376.12633413,3783961.87633413,3819547.62633413,3855133.37633413,3576861.37633413,2912586.37633413,2534464.37633413,2330625.37633413,2330625.37633413,2330625.37633413,2330625.37633413,2330625.37633413,2330625.37633413,2330625.37633413,2330625.37633413,2330625.37633413,2330625.37633413,2330625.37633413,2330625.37633413,2330625.37633413,2330625.37633413,2330625.37633413,2330625.37633413,2330625.37633413,2330625.37633413,2330625.37633413,2330625.37633413,2330625.37633413,2330625.37633413,2330625.37633413,2330625.37633413,2330625.37633413,2330625.37633413,2330625.37633413,2330625.37633413,2330625.37633413,2330625.37633413,2330625.37633413 +US1266501006,Productions,Production,,1206000000.37633,1674000000.37633,1677600000.37633,1724400000.37633,1692000000.37633,1767600000.37633,989973000.376334,212346000.376334,205448400.376334,221601600.376334,199591200.376334,199591200.376334,199591200.376334,199591200.376334,199591200.376334,199591200.376334,199591200.376334,199591200.376334,199591200.376334,199591200.376334,199591200.376334,199591200.376334,199591200.376334,199591200.376334,199591200.376334,199591200.376334,199591200.376334,199591200.376334,199591200.376334,199591200.376334,199591200.376334,199591200.376334,199591200.376334,199591200.376334,199591200.376334,199591200.376334,199591200.376334,199591200.376334,199591200.376334,199591200.376334,199591200.376334 +US1266501006,Emission Intensities,S1,,0.0906504596535815,0.0937271531308611,0.0919354281960752,0.0823386559645948,0.0775146195905217,0.0756716996763161,0.121367052768772,0.42268858474971,0.278443006962072,0.208432512661885,0.193340269027761,0.193340269027761,0.193340269027761,0.193340269027761,0.193340269027761,0.193340269027761,0.193340269027761,0.193340269027761,0.193340269027761,0.193340269027761,0.193340269027761,0.193340269027761,0.193340269027761,0.193340269027761,0.193340269027761,0.193340269027761,0.193340269027761,0.193340269027761,0.193340269027761,0.193340269027761,0.193340269027761,0.193340269027761,0.193340269027761,0.193340269027761,0.193340269027761,0.193340269027761,0.193340269027761,0.193340269027761,0.193340269027761,0.193340269027761,0.193340269027761 +US1266501006,Emission Intensities,S2,,0.00269548206908767,0.00200558146689329,0.00221315592244948,0.00217372774618191,0.00223638408717051,0.00216086650006841,0.00389418032094675,0.0168444961053892,0.0141767293928741,0.0114370310143518,0.0116769946367359,0.0116769946367359,0.0116769946367359,0.0116769946367359,0.0116769946367359,0.0116769946367359,0.0116769946367359,0.0116769946367359,0.0116769946367359,0.0116769946367359,0.0116769946367359,0.0116769946367359,0.0116769946367359,0.0116769946367359,0.0116769946367359,0.0116769946367359,0.0116769946367359,0.0116769946367359,0.0116769946367359,0.0116769946367359,0.0116769946367359,0.0116769946367359,0.0116769946367359,0.0116769946367359,0.0116769946367359,0.0116769946367359,0.0116769946367359,0.0116769946367359,0.0116769946367359,0.0116769946367359,0.0116769946367359 +NL0000000002,Emissions,S1,,,,,,,,,,,9056.99508207154,9056.99508207154,9056.99508207154,9056.99508207154,9056.99508207154,9056.99508207154,9056.99508207154,9056.99508207154,9056.99508207154,9056.99508207154,9056.99508207154,9056.99508207154,9056.99508207154,9056.99508207154,9056.99508207154,9056.99508207154,9056.99508207154,9056.99508207154,9056.99508207154,9056.99508207154,9056.99508207154,9056.99508207154,9056.99508207154,9056.99508207154,9056.99508207154,9056.99508207154,9056.99508207154,9056.99508207154,9056.99508207154,9056.99508207154,9056.99508207154,9056.99508207154 +NL0000000002,Emissions,S2,,,,,,,,,,,2890986.47608207,2890986.47608207,2890986.47608207,2890986.47608207,2890986.47608207,2890986.47608207,2890986.47608207,2890986.47608207,2890986.47608207,2890986.47608207,2890986.47608207,2890986.47608207,2890986.47608207,2890986.47608207,2890986.47608207,2890986.47608207,2890986.47608207,2890986.47608207,2890986.47608207,2890986.47608207,2890986.47608207,2890986.47608207,2890986.47608207,2890986.47608207,2890986.47608207,2890986.47608207,2890986.47608207,2890986.47608207,2890986.47608207,2890986.47608207,2890986.47608207,2890986.47608207 +NL0000000002,Productions,Production,,,,,,,,,16120000.4760821,15342000.4760821,12453000.4760821,12194000.4760821,12194000.4760821,11887162.491804024,11588045.480538908,11296455.159221023,11012202.133535009,10735101.7749001,10464974.100549813,10201643.656629192,9944939.404233668,9694694.608315546,9450746.729385922,9212937.317941722,8981111.911549268,8755119.934517544,8534814.600095965,8320052.815133173,8110695.087134886,7906605.433660462,7707651.293999321,7513703.443069852,7324635.9074848825,7140325.883729203,6960653.658395981,6785502.530430284,6614758.7353291735,6448311.371249168,6286052.32697306,6127876.211689306,5973680.28653838,5823364.397881631 +NL0000000002,Emission Intensities,S1,,,,,,,,,,,0.000727294205076673,0.000742741899988965,0.000742741899988965,0.0007490255284858647,0.0007553623167507641,0.0007617527145175923,0.0007681971753250472,0.0007746961565487832,0.0007812501194338728,0.0007878595291275415,0.0007945248547121805,0.0008012465692386381,0.0008080251497597934,0.0008148610773644131,0.000821754837211296,0.0008287069185637049,0.0008357178148240913,0.0008427880235691122,0.000849918046584945,0.0008571083899028994,0.0008643595638353324,0.0008716720830118648,0.0008790464664159068,0.0008864832374214904,0.0008939829238304144,0.0009015460579097035,0.0009091731764293847,0.0009168648207005822,0.000924621536613936,0.0009324438746783442,0.000940332390060034,0.0009482876426219627 +NL0000000002,Emission Intensities,S2,,,,,,,,,,,0.232151800012749,0.237082693391115,0.237082693391115,0.23908842319892087,0.24111112156737693,0.2431509320512379,0.24520799941973784,0.24728246966686487,0.2493744900217225,0.2514842089589787,0.2536117762094038,0.25575734277049655,0.25792106091720135,0.26010308421271505,0.26230356751938577,0.2645226670097038,0.26676054017738543,0.2690173458485506,0.27129324419299494,0.2735883967355577,0.275902966367585,0.27823711735849094,0.2805910153674159,0.2829648274549836,0.285358722095158,0.2877728691872,0.2902074400677256,0.2926626075228659,0.2951385458005301,0.2976354306227724,0.300153439198263,0.302692750234865 +IT0000000003,Emissions,S1,,766009.677026013,10247400.677026,10197994.677026,11080009.677026,13317009.677026,14157009.677026,15622009.677026,15710009.677026,16492009.677026,16442009.677026,16442009.677026,16442009.677026,16534628.801037049,16627769.65580371,16721435.180276057,16815628.329959497,16910352.077008035,17005609.410318047,17101403.335622597,17197736.87558628,17294613.069900587,17392034.975379843,17490005.666057635,17588528.23328383,17687605.7858221,17787241.44994804,17887438.369547784,17988199.706217233,18089528.6393618,18191428.36629673,18293902.10234801,18396953.0809538,18500584.553766463,18604799.79075519,18709602.08030915,18814994.72934127,18920981.063392576,19027564.426737126,19134748.182487532,19242535.712701086,19350930.418486472 +IT0000000003,Emissions,S2,,3518009.67702601,4342232.67702601,4164848.67702601,4818009.67702601,5480009.67702601,5416009.67702601,5653009.67702601,5769009.67702601,5806009.67702601,5803009.67702601,5803009.67702601,5803009.67702601,5837210.058038475,5871612.001020762,5906216.693890271,5941025.331565462,5976039.11600712,6011259.256259856,6046686.968493856,6082323.476046877,6118170.009466493,6154227.806552577,6190498.112400054,6226982.179441888,6263681.26749233,6300596.64379042,6337729.583043749,6375081.367472472,6412653.286853582,6450446.638565452,6488462.727632629,6526702.866770901,6565168.376432623,6603860.584852315,6642780.828092525,6681930.450089966,6721310.80270192,6760923.245752921,6800769.1470817095,6840849.882588463,6881166.836282309 +IT0000000003,Productions,Production,,,,,,19374009.677026,21182009.677026,22380009.677026,23290009.677026,23763009.677026,23303009.677026,23303009.677026,23303009.677026,23454093.96209188,23606157.797074717,23759207.53285368,23913249.561483663,24068290.316462222,24224336.272998292,24381393.948282603,24539469.901759874,24698570.735402763,24858703.0939876,25019873.6653719,25182089.18077368,25345356.41505258,25509682.186992824,25675073.359587986,25841536.840327635,26009079.58148582,26177708.58041142,26347430.879820395,26518253.568089925,26690183.779554438,26863228.694803584,27037395.540982127,27212691.592091784,27389124.169295017,27566700.641220797,27745428.424272362,27925314.982936952,28106367.830097556 +IT0000000003,Emission Intensities,S1,,,,,,0.687364665292674,0.66835063777639,0.698034089460767,0.67453856373975,0.694020239909696,0.705574511829511,0.705574511829511,0.705574511829511,0.705574511829511,0.705574511829511,0.705574511829511,0.705574511829511,0.705574511829511,0.705574511829511,0.705574511829511,0.705574511829511,0.705574511829511,0.705574511829511,0.705574511829511,0.705574511829511,0.705574511829511,0.705574511829511,0.705574511829511,0.705574511829511,0.705574511829511,0.705574511829511,0.705574511829511,0.705574511829511,0.705574511829511,0.705574511829511,0.705574511829511,0.705574511829511,0.705574511829511,0.705574511829511,0.705574511829511,0.705574511829511,0.705574511829511 +IT0000000003,Emission Intensities,S2,,,,,,0.282853666761831,0.255689132410331,0.252591922818919,0.247703189351473,0.244329727418293,0.249024042707543,0.249024042707543,0.249024042707543,0.2480066075295141,0.24699332927677733,0.24598419096542237,0.24497917568092983,0.24397826657788782,0.24298144687970957,0.24198869987835228,0.24100000893403706,0.24001535747496994,0.23903472899706424,0.23805810706366384,0.23708547530526772,0.23611681741925558,0.23515211716961457,0.23419135838666716,0.2332345249668001,0.2322816008721946,0.23133257013055736,0.23038741683485295,0.22944612514303717,0.22850867927779148,0.22757506352625861,0.22664526223977918,0.22571925983362937,0.2247970407867597,0.2238785896415349,0.22296389100347483,0.22205292954099645,0.2211456899851568 +FR0000120644,Emissions,S1,,39499002.5859383,36193002.5859383,35461094.5859383,31838172.5859383,30202558.5859383,31817606.5859383,26625135.5859383,15129771.5859383,13457443.5859383,12966980.5859383,13136322.5859383,13136322.5859383,12822864.162859576,12516885.472587062,12218208.034024915,11926657.62498632,11642064.180567568,11364261.693947122,11093088.11955182,10828385.278533725,10569998.766502466,10317777.863459283,10071575.445880217,9831247.900897162,9596655.042526737,9367660.02989809,9144129.287431955,8925932.426924387,8712942.171489736,8505034.281318493,8302087.481206691,8103983.389814604,7910606.450613472,7721843.864479967,7537585.523899096,7357723.948737142,7182154.223547193,7010773.936370689,6843483.118999276,6680184.188662133,6520781.891104754 +FR0000120644,Emissions,S2,,6236002.58593829,5189002.58593829,7189303.58593829,4181124.58593829,1547095.58593829,970947.585938292,4503672.58593829,5010565.58593829,2543866.58593829,2081746.58593829,2001731.58593829,2001731.58593829,1924792.0804620935,1850809.8583422203,1779671.2520317389,1711266.9629635108,1645491.893622009,1582244.9860697044,1521429.066679927,1462950.6968376513,1406720.0293788146,1352650.6705476036,1300659.5472596153,1250666.779466954,1202595.5574291653,1156372.0237014405,1111925.1596587806,1069186.67638177,1028090.9097363176,988574.719486161,950577.3922831323,914040.5483861348,878908.051965514,845125.9248550121,812642.2636187936,781407.1598061217,751372.6232711641,722492.508440115,694722.4434123492,668019.7617866775,642343.437107961 +FR0000120644,Productions,Production,,552913202.585938,522525602.585938,485128802.585938,491166002.585938,500011202.585938,483746402.585938,512877602.585938,495176402.585938,414482402.585938,411300002.585938,444466802.585938,444466802.585938,444466802.585938,444466802.585938,444466802.585938,444466802.585938,444466802.585938,444466802.585938,444466802.585938,444466802.585938,444466802.585938,444466802.585938,444466802.585938,444466802.585938,444466802.585938,444466802.585938,444466802.585938,444466802.585938,444466802.585938,444466802.585938,444466802.585938,444466802.585938,444466802.585938,444466802.585938,444466802.585938,444466802.585938,444466802.585938,444466802.585938,444466802.585938,444466802.585938,444466802.585938 +FR0000120644,Emission Intensities,S1,,0.0714379805025528,0.0692655104492908,0.073096246598668,0.0648216130968218,0.0604037638151663,0.0657733192760764,0.0519132351494662,0.0305543065197104,0.0324680698190752,0.0315268186346022,0.0295552390178755,0.0295552390178755,0.02869843096344,0.027866461823069833,0.027058611515238286,0.02627418083362291,0.025512490841932186,0.024772882286276162,0.02405471502457253,0.02335736747249423,0.02268023606547909,0.02202273473633579,0.02138429440799412,0.020764362500960382,0.020162402455051735,0.019577893264995445,0.01901032902949117,0.018459218513345938,0.01792408472230287,0.01740446449019563,0.016899908078071298,0.016409978784934696,0.015934252569777242,0.015472317684563239,0.015023774317855877,0.014588234248774565,0.014165320510984047,0.01375466706642449,0.01335591848850017,0.012968729654452515,0.012592765446651288 +FR0000120644,Emission Intensities,S2,,0.011278447605832,0.0099306188256773,0.0148193707477608,0.00851265063934617,0.00309412184754478,0.00200714171877651,0.00878118397689954,0.0101187487121192,0.00613745377383265,0.0050613823798927,0.00450366950758095,0.00450366950758095,0.004053302556822855,0.0036479723011405697,0.003283175071026513,0.0029548575639238616,0.0026593718075314755,0.002393434626778328,0.0021540911641004953,0.0019386820476904457,0.001744813842921401,0.0015703324586292611,0.001413299212766335,0.0012719692914897015,0.0011447723623407313,0.0010302951261066582,0.0009272656134959924,0.0008345390521463932,0.000751085146931754,0.0006759766322385786,0.0006083789690147207,0.0005475410721132487,0.0004927869649019238,0.00044350826841173144,0.0003991574415705583,0.0003592416974135025,0.0003233175276721522,0.000290985774904937,0.0002618871974144433,0.00023569847767299895,0.00021212862990569907 +SE0000000004,Emissions,S1,,,,,,,,54700000.2335485,55000000.2335485,54900000.2335485,52300000.2335485,52900000.2335485,52900000.2335485,52900000.2335485,52900000.2335485,52900000.2335485,52900000.2335485,52900000.2335485,52900000.2335485,52900000.2335485,52900000.2335485,52900000.2335485,52900000.2335485,52900000.2335485,52900000.2335485,52900000.2335485,52900000.2335485,52900000.2335485,52900000.2335485,52900000.2335485,52900000.2335485,52900000.2335485,52900000.2335485,52900000.2335485,52900000.2335485,52900000.2335485,52900000.2335485,52900000.2335485,52900000.2335485,52900000.2335485,52900000.2335485,52900000.2335485 +SE0000000004,Emissions,S2,,,,,,,,6600000.23354846,6400000.23354846,7400000.23354846,7500000.23354846,7600000.23354846,7600000.23354846,7701333.566840272,7804018.01120057,7908071.581443036,8013512.532578866,8120359.363019395,8228630.817821435,8338345.8919758815,8449523.833740167,8562184.148015149,8676346.599767022,8792031.217494853,8909258.296744356,9028048.403668514,9148422.378635673,9270401.339885747,9394006.687235178,9519260.10583128,9646183.569956658,9774799.346884344,9905130.00078433,10037198.396682205,10171027.704470549,10306641.402973838,10444063.284067532,10583317.456852086,10724428.351882614,10867420.725454962,11012319.663948905,11159150.58822927 +SE0000000004,Productions,Production,,,,,,31580000.2335485,31040000.2335485,29751000.2335485,30410000.2335485,29145000.2335485,27880000.2335485,28090000.2335485,28090000.2335485,27944157.6592336,27799072.295894347,27654740.21211041,27511157.4968733,27368320.259480376,27226224.62942943,27084866.75631381,26944242.809718065,26804348.979114182,26665181.473758303,26526736.52258802,26389010.37412018,26251999.296349242,26115699.576646145,25980107.521657705,25845219.45720653,25711031.72819146,25577540.698488545,25444742.750852484,25312634.286818627,25181211.726605464,25050471.50901762,24920410.091349356,24791023.94928857,24662309.5768213,24534263.486136727,24406882.207532648,24280162.289321475,24154100.29773669 +SE0000000004,Emission Intensities,S1,,,,,,,,1.83859365413424,1.80861558076781,1.8836850160788,1.87589669280616,1.88323245972668,1.88323245972668,1.88323245972668,1.88323245972668,1.88323245972668,1.88323245972668,1.88323245972668,1.88323245972668,1.88323245972668,1.88323245972668,1.88323245972668,1.88323245972668,1.88323245972668,1.88323245972668,1.88323245972668,1.88323245972668,1.88323245972668,1.88323245972668,1.88323245972668,1.88323245972668,1.88323245972668,1.88323245972668,1.88323245972668,1.88323245972668,1.88323245972668,1.88323245972668,1.88323245972668,1.88323245972668,1.88323245972668,1.88323245972668,1.88323245972668 +SE0000000004,Emission Intensities,S2,,,,,,,,0.221841288754589,0.21045709254839,0.253902905275342,0.26901004916505,0.270558923829115,0.270558923829115,0.2721167164229467,0.27368347829316025,0.2752592610820083,0.27684411672908343,0.2784380974730297,0.28004125585326495,0.28165364471171217,0.2832753171945416,0.284906326753922,0.2865467271497832,0.2881965724515873,0.28985591704011143,0.29152481560924,0.2932033231677674,0.2948914950412114,0.29658938687363645,0.29829705462948786,0.3000145545954366,0.30174194338223437,0.30347927792657975,0.3052266154929947,0.3069840136757122,0.3087515304005747,0.31052922392694304,0.3123171528496173,0.3141153761007677,0.31592395295187714,0.31774294301569517,0.31957240624820255 +SE0000000005,Emissions,S1,,14667421.0468216,15541981.0468216,21355001.0468216,28086001.0468216,26077001.0468216,26816001.0468216,31440001.0468216,36610961.0468216,41528001.0468216,41938351.0468216,40045311.0468216,40045311.0468216,41180161.0554735,42347171.74682384,43547254.52722918,44781346.63152599,46050411.85498777,47355441.30602519,48697454.18021718,50077498.55627731,51496652.21457727,52956023.47886654,54456752.081845686,56000010.055269316,57587002.64527376,59218969.25364433,60897184.40575735,62622958.7459528,64397640.06111498,66222614.3332606,68099306.82195628,70029183.17741087,72013750.58511186,74054558.94289976,76153202.0713999,78311318.95875661,80530595.04064237,82812763.51654111,85159606.70333397,87572957.42724454,90054700.45523056 +SE0000000005,Emissions,S2,,976021.046821591,1550771.04682159,16541.0468215911,33601.0468215911,3742001.04682159,4157001.04682159,661001.046821591,1885181.04682159,626001.046821591,3909961.04682159,476901.046821591,476901.046821591,476901.046821591,476901.046821591,476901.046821591,476901.046821591,476901.046821591,476901.046821591,476901.046821591,476901.046821591,476901.046821591,476901.046821591,476901.046821591,476901.046821591,476901.046821591,476901.046821591,476901.046821591,476901.046821591,476901.046821591,476901.046821591,476901.046821591,476901.046821591,476901.046821591,476901.046821591,476901.046821591,476901.046821591,476901.046821591,476901.046821591,476901.046821591,476901.046821591,476901.046821591 +SE0000000005,Productions,Production,,,,,,12170001.0468216,12630001.0468216,12630001.0468216,12630001.0468216,12630001.0468216,12630001.0468216,12630001.0468216,12630001.0468216,12630001.0468216,12630001.0468216,12630001.0468216,12630001.0468216,12630001.0468216,12630001.0468216,12630001.0468216,12630001.0468216,12630001.0468216,12630001.0468216,12630001.0468216,12630001.0468216,12630001.0468216,12630001.0468216,12630001.0468216,12630001.0468216,12630001.0468216,12630001.0468216,12630001.0468216,12630001.0468216,12630001.0468216,12630001.0468216,12630001.0468216,12630001.0468216,12630001.0468216,12630001.0468216,12630001.0468216,12630001.0468216,12630001.0468216 +SE0000000005,Emission Intensities,S1,,,,,,2.14272792142709,2.12319864008008,2.48931104045582,2.89872985054383,3.28804414923404,3.32053424947068,3.17064985967671,3.17064985967671,3.180048887829679,3.18947577832448,3.198930613755832,3.208413476963298,3.2179244510320073,3.2274636192933874,3.237031065325891,3.2466268729557295,3.2562511262576086,3.265903909555463,3.2755853074231966,3.285295404685422,3.2950342864182054,3.304802037949811,3.314598744861449,3.3244244929880256,3.3342793684188936,3.344163457498609,3.3540768468276863,3.3640196232633564,3.373991873920329,3.3839936861715563,3.3940251476489958,3.4040863462443807,3.41417737010999,3.4242983076594187,3.4344492475683546,3.4446302787753544,3.4548414904826226 +SE0000000005,Emission Intensities,S2,,,,,,0.307477463019519,0.329137031058895,0.0523357871761963,0.149262144938302,0.0495646076750823,0.309577254374461,0.0377593830003368,0.0377593830003368,0.0377593830003368,0.0377593830003368,0.0377593830003368,0.0377593830003368,0.0377593830003368,0.0377593830003368,0.0377593830003368,0.0377593830003368,0.0377593830003368,0.0377593830003368,0.0377593830003368,0.0377593830003368,0.0377593830003368,0.0377593830003368,0.0377593830003368,0.0377593830003368,0.0377593830003368,0.0377593830003368,0.0377593830003368,0.0377593830003368,0.0377593830003368,0.0377593830003368,0.0377593830003368,0.0377593830003368,0.0377593830003368,0.0377593830003368,0.0377593830003368,0.0377593830003368,0.0377593830003368 +US24703L1035,Emissions,S1,,,,1174220.85954061,1310000.85954061,1280000.85954061,1150000.85954061,1230000.85954061,1290000.85954061,1170000.85954061,910000.859540609,910000.859540609,910000.859540609,910000.859540609,910000.859540609,910000.859540609,910000.859540609,910000.859540609,910000.859540609,910000.859540609,910000.859540609,910000.859540609,910000.859540609,910000.859540609,910000.859540609,910000.859540609,910000.859540609,910000.859540609,910000.859540609,910000.859540609,910000.859540609,910000.859540609,910000.859540609,910000.859540609,910000.859540609,910000.859540609,910000.859540609,910000.859540609,910000.859540609,910000.859540609,910000.859540609,910000.859540609 +US24703L1035,Emissions,S2,,,,132861.859540609,120000.859540609,140000.859540609,160000.859540609,170000.859540609,180000.859540609,190000.859540609,190000.859540609,190000.859540609,190000.859540609,195700.88532682727,201571.9118866321,207619.06924323106,213847.641320528,220263.07056014385,226870.96267694817,233677.09155725662,240687.40430397433,247908.02643309356,255345.26722608638,263005.62524286896,270895.79400015506,279022.6678201597,287393.3478547645,296015.14829040744,304895.60273911967,314042.47082129325,323463.74494593206,333167.65729431005,343162.68701313937,353457.56762353354,364061.29465223954,374983.13349180674,386232.627496561,397819.60632145783,409754.1945111016,422046.82034643466,434708.2249568277,447749.4717055326 +US24703L1035,Productions,Production,1464408000.85954,1567382400.85954,1596272400.85954,1613368800.85954,1617562800.85954,1594490400.85954,1558512000.85954,1570716000.85954,1535342400.85954,1505977200.85954,1472652000.85954,1472652000.85954,1472652000.85954,1472652000.85954,1472652000.85954,1472652000.85954,1472652000.85954,1472652000.85954,1472652000.85954,1472652000.85954,1472652000.85954,1472652000.85954,1472652000.85954,1472652000.85954,1472652000.85954,1472652000.85954,1472652000.85954,1472652000.85954,1472652000.85954,1472652000.85954,1472652000.85954,1472652000.85954,1472652000.85954,1472652000.85954,1472652000.85954,1472652000.85954,1472652000.85954,1472652000.85954,1472652000.85954,1472652000.85954,1472652000.85954,1472652000.85954 +US24703L1035,Emission Intensities,S1,,,,0.000727806846714173,0.000809860896185607,0.000802764857568663,0.000737883865447534,0.000783082911785146,0.000840204021473268,0.000776904762484337,0.00061793340110866,0.00061793340110866,0.00061793340110866,0.00061793340110866,0.00061793340110866,0.00061793340110866,0.00061793340110866,0.00061793340110866,0.00061793340110866,0.00061793340110866,0.00061793340110866,0.00061793340110866,0.00061793340110866,0.00061793340110866,0.00061793340110866,0.00061793340110866,0.00061793340110866,0.00061793340110866,0.00061793340110866,0.00061793340110866,0.00061793340110866,0.00061793340110866,0.00061793340110866,0.00061793340110866,0.00061793340110866,0.00061793340110866,0.00061793340110866,0.00061793340110866,0.00061793340110866,0.00061793340110866,0.00061793340110866,0.00061793340110866 +US24703L1035,Emission Intensities,S2,,,,8.23505818817279e-05,7.41862136523186e-05,8.78028864050474e-05,0.000102662577800085,0.000108231443142859,0.000117238252157849,0.000126164499324535,0.000129019523573601,0.000129019523573601,0.000129019523573601,0.00013289010928080902,0.0001368768125592333,0.00014098311693601032,0.00014521261044409063,0.00014956898875741334,0.00015405605842013574,0.00015867774017273983,0.00016343807237792203,0.0001683412145492597,0.0001733914509857375,0.00017859319451530962,0.00018395099035076892,0.000189469520061292,0.00019515360566313075,0.0002010082138330247,0.00020703846024801545,0.00021324961405545591,0.0002196471024771196,0.0002262365155514332,0.0002330236110179762,0.00024001431934851547,0.0002472147489289709,0.00025463119139684006,0.00026227012713874527,0.00027013823095290763,0.00027824237788149486,0.00028658964921793973,0.00029518733869447793,0.0003040429588553123 +NL0000000006,Emissions,S1,,,,,,,,31300000.8292913,31072000.8292913,29491000.8292913,27206000.8292913,27206000.8292913,27206000.8292913,27106549.66492058,27007462.04292262,26908736.634373236,26810372.11520612,26712367.16619506,26614720.47293627,26517430.725830734,26420496.62006667,26323916.85560201,26227690.13714698,26131815.174146708,26036290.680763938,25941115.375861768,25846287.98298648,25751807.230350412,25657671.850814905,25563880.58187331,25470432.165634047,25377325.34880375,25284558.882670447,25192131.523086812,25100042.03045349,25008289.16970245,24916871.710280456,24825788.426132526,24735038.09568551,24644619.501831707,24554531.431912526,24464772.677702244 +NL0000000006,Emissions,S2,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +NL0000000006,Productions,Production,,,,,23001000.8292913,25222000.8292913,23424000.8292913,24100000.8292913,24193000.8292913,24328000.8292913,23779000.8292913,22329000.8292913,22329000.8292913,22372083.754720084,22415249.806952335,22458499.146377936,22501831.933696236,22545248.329916652,22588748.49635926,22632332.59465539,22676000.786748245,22719753.234893482,22763590.10165983,22807511.549929686,22851517.742899716,22895608.844081476,22939785.01730201,22984046.426704455,23028393.236748658,23072825.612211786,23117343.718188938,23161947.720093753,23206637.783659033,23251414.074937355,23296276.760301683,23341226.006445996,23386261.980385903,23431384.84945926,23476594.781326797,23521891.943972737,23567276.50570542,23612748.635157935 +NL0000000006,Emission Intensities,S1,,,,,,,,1.2987551764417,1.28433843525816,1.21222458993769,1.14411875522451,1.21841550534596,1.21841550534596,1.2116152945773593,1.2048530370901265,1.1981285210597143,1.1914415358438093,1.1847918719757329,1.1781793211578802,1.1716036762551951,1.1650647312886826,1.1585622814289556,1.152096122989819,1.1456660534218897,1.139271871306251,1.132913376348145,1.126590369370696,1.1203026523086737,1.1140500282022872,1.107832301191016,1.1016492765074752,1.0955007604713138,1.089386560483148,1.0833064850185283,1.0772603436219395,1.0712479469008354,1.0652691065197062,1.0593236351941784,1.0534113466851487,1.0475320557929497,1.0416855783515493,1.0358717312227812 +NL0000000006,Emission Intensities,S2,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +TW0002308004,Emissions,S1,11074001.5077199,8500001.50771989,9328837.50771989,8328346.50771989,7914001.50771989,7250001.50771989,7020001.50771989,7038001.50771989,5800001.50771989,4000001.50771989,4500001.50771989,4500001.50771989,4500001.50771989,4316682.013685079,4140830.525346606,3972142.8136895793,3810327.043274751,3655103.267353349,3506202.943549745,3363368.4692740724,3226352.7360610473,3094918.702063974,2968838.981964343,2847895.4535875516,2731878.880544171,2620588.550243927,2513831.926656138,2411424.317215879,2313188.553299604,2218954.683717444,2128559.680691908,2041847.1578143206,1958667.099491052,1878875.6014114742,1802334.621588642,1728911.7415419943,1658479.9372089077,1590917.359188779,1526107.1219394456,1463937.1015612492,1404299.741818902,1347091.8680655672 +TW0002308004,Emissions,S2,266001.507719888,350001.507719888,329353.507719888,319181.507719888,250001.507719888,220001.507719888,230001.507719888,247001.507719888,3400001.50771989,2900001.50771989,2500001.50771989,2500001.50771989,2500001.50771989,2500001.50771989,2500001.50771989,2500001.50771989,2500001.50771989,2500001.50771989,2500001.50771989,2500001.50771989,2500001.50771989,2500001.50771989,2500001.50771989,2500001.50771989,2500001.50771989,2500001.50771989,2500001.50771989,2500001.50771989,2500001.50771989,2500001.50771989,2500001.50771989,2500001.50771989,2500001.50771989,2500001.50771989,2500001.50771989,2500001.50771989,2500001.50771989,2500001.50771989,2500001.50771989,2500001.50771989,2500001.50771989,2500001.50771989 +TW0002308004,Productions,Production,,,,21142801.5077199,21142801.5077199,21142801.5077199,21142801.5077199,21142801.5077199,21142801.5077199,21142801.5077199,21142801.5077199,21142801.5077199,21142801.5077199,21142801.5077199,21142801.5077199,21142801.5077199,21142801.5077199,21142801.5077199,21142801.5077199,21142801.5077199,21142801.5077199,21142801.5077199,21142801.5077199,21142801.5077199,21142801.5077199,21142801.5077199,21142801.5077199,21142801.5077199,21142801.5077199,21142801.5077199,21142801.5077199,21142801.5077199,21142801.5077199,21142801.5077199,21142801.5077199,21142801.5077199,21142801.5077199,21142801.5077199,21142801.5077199,21142801.5077199,21142801.5077199,21142801.5077199 +TW0002308004,Emission Intensities,S1,,,,0.393909317300215,0.374311867082999,0.342906379037456,0.332027972033728,0.332879325625324,0.274325117492217,0.189189758332611,0.212838469210279,0.212838469210279,0.212838469210279,0.21172993718966618,0.21062717876461287,0.20953016386435425,0.2084388625747438,0.20735324513743772,0.2062732819490832,0.20519894356051144,0.20413020067593443,0.2030670241521462,0.20200938499772805,0.2009572543722581,0.19991060358552465,0.19886940409674406,0.19783362751378233,0.19680324559238097,0.19577823023538674,0.19475855349198554,0.19374418755694023,0.19273510476983235,0.19173127761430794,0.19073267871732716,0.18973928084841785,0.188751056918933,0.18776797998131217,0.18679002322834648,0.1858171599924478,0.18484936374492145,0.1838866080952428,0.1829288667903377 +TW0002308004,Emission Intensities,S2,,,,0.0150964623871319,0.0118244267500977,0.0104055040974376,0.0108784783149909,0.0116825344848317,0.160811305279409,0.13716259440174,0.118243625699606,0.118243625699606,0.118243625699606,0.118243625699606,0.118243625699606,0.118243625699606,0.118243625699606,0.118243625699606,0.118243625699606,0.118243625699606,0.118243625699606,0.118243625699606,0.118243625699606,0.118243625699606,0.118243625699606,0.118243625699606,0.118243625699606,0.118243625699606,0.118243625699606,0.118243625699606,0.118243625699606,0.118243625699606,0.118243625699606,0.118243625699606,0.118243625699606,0.118243625699606,0.118243625699606,0.118243625699606,0.118243625699606,0.118243625699606,0.118243625699606,0.118243625699606 +CN0000000007,Emissions,S1,,,,,,,,89000001.3676141,89000001.3676141,86000001.3676141,87000001.3676141,84000001.3676141,84000001.3676141,84000001.3676141,84000001.3676141,84000001.3676141,84000001.3676141,84000001.3676141,84000001.3676141,84000001.3676141,84000001.3676141,84000001.3676141,84000001.3676141,84000001.3676141,84000001.3676141,84000001.3676141,84000001.3676141,84000001.3676141,84000001.3676141,84000001.3676141,84000001.3676141,84000001.3676141,84000001.3676141,84000001.3676141,84000001.3676141,84000001.3676141,84000001.3676141,84000001.3676141,84000001.3676141,84000001.3676141,84000001.3676141,84000001.3676141 +CN0000000007,Emissions,S2,,,,,,,,11000001.3676141,10000001.3676141,10000001.3676141,10000001.3676141,9000001.36761412,9000001.36761412,9000001.36761412,9000001.36761412,9000001.36761412,9000001.36761412,9000001.36761412,9000001.36761412,9000001.36761412,9000001.36761412,9000001.36761412,9000001.36761412,9000001.36761412,9000001.36761412,9000001.36761412,9000001.36761412,9000001.36761412,9000001.36761412,9000001.36761412,9000001.36761412,9000001.36761412,9000001.36761412,9000001.36761412,9000001.36761412,9000001.36761412,9000001.36761412,9000001.36761412,9000001.36761412,9000001.36761412,9000001.36761412,9000001.36761412 +CN0000000007,Productions,Production,,,,,46030001.3676141,48160001.3676141,47320001.3676141,44530001.3676141,45170001.3676141,46505001.3676141,47840001.3676141,47050001.3676141,47050001.3676141,47116854.526801035,47183802.67737508,47250845.95430911,47317984.4927678,47385218.428107865,47452547.89587835,47519973.03182091,47587493.971870065,47655110.85215349,47722823.808992274,47790632.97890122,47858538.4985891,47926540.50495891,47994639.13510821,48062834.52632934,48131126.81610972,48199516.14213212,48268002.64227495,48336586.45461254,48405267.717415385,48474046.56915047,48542923.14848152,48611897.59426928,48680970.04557182,48750140.641644776,48819409.52194166,48888776.82611414,48958242.6940123,49027807.26568495 +CN0000000007,Emission Intensities,S1,,,,,,,,1.9986525630862,1.97033426329327,1.84926349507656,1.81856184950927,1.78533472743815,1.78533472743815,1.7556944332525388,1.7265462300042222,1.697881947953418,1.669693552995128,1.641973144407317,1.614712952636476,1.5879053371199512,1.5615427841444236,1.5356179047399465,1.5101234326089437,1.4850522220895905,1.460397246153009,1.436151594433712,1.4123084712927467,1.388861193912994,1.3658031904260897,1.3431279980704434,1.320829261379837,1.2989007304020974,1.2773362589473423,1.2561298028653083,1.235275418351281,1.2147672602801476,1.194599580568109,1.1747667265615918,1.1552631394529054,1.136083352722205,1.1172219906053198,1.0986737665870185 +CN0000000007,Emission Intensities,S2,,,,,,,,0.247024501005612,0.221385899155272,0.215030664950761,0.209030122946103,0.191285889606989,0.191285889606989,0.18579472403091038,0.18046119109279507,0.1752807656971589,0.17024905264857773,0.1653617829226998,0.16061481004430436,0.15600410656933425,0.1515257606679169,0.14717597280547545,0.14295105251911375,0.13884741528654035,0.13486157948487498,0.13099016343675743,0.12722988254125245,0.12357754648711661,0.12003005654606286,0.1165844029437261,0.11323766230609948,0.10998699517927471,0.10682964362038223,0.10376292885768727,0.10078424901785653,0.09789107691846728,0.09508095792388613,0.09235150786269798,0.0897004110049187,0.08712541809727499,0.08462434445488472,0.08219506810771862 +CN0000000008,Emissions,S1,,,,,,,29200004.6310296,29200004.6310296,29600004.6310296,30200004.6310296,28400004.6310296,28400004.6310296,28400004.6310296,28400004.6310296,28400004.6310296,28400004.6310296,28400004.6310296,28400004.6310296,28400004.6310296,28400004.6310296,28400004.6310296,28400004.6310296,28400004.6310296,28400004.6310296,28400004.6310296,28400004.6310296,28400004.6310296,28400004.6310296,28400004.6310296,28400004.6310296,28400004.6310296,28400004.6310296,28400004.6310296,28400004.6310296,28400004.6310296,28400004.6310296,28400004.6310296,28400004.6310296,28400004.6310296,28400004.6310296,28400004.6310296,28400004.6310296 +CN0000000008,Emissions,S2,,,,,,,3600004.63102958,3800004.63102958,4000004.63102958,4000004.63102958,3600004.63102958,3600004.63102958,3600004.63102958,3600004.63102958,3600004.63102958,3600004.63102958,3600004.63102958,3600004.63102958,3600004.63102958,3600004.63102958,3600004.63102958,3600004.63102958,3600004.63102958,3600004.63102958,3600004.63102958,3600004.63102958,3600004.63102958,3600004.63102958,3600004.63102958,3600004.63102958,3600004.63102958,3600004.63102958,3600004.63102958,3600004.63102958,3600004.63102958,3600004.63102958,3600004.63102958,3600004.63102958,3600004.63102958,3600004.63102958,3600004.63102958,3600004.63102958 +CN0000000008,Productions,Production,,,,,,15921004.6310296,15855004.6310296,16419004.6310296,16850004.6310296,17286004.6310296,15520004.6310296,15520004.6310296,15520004.6310296,15520004.6310296,15520004.6310296,15520004.6310296,15520004.6310296,15520004.6310296,15520004.6310296,15520004.6310296,15520004.6310296,15520004.6310296,15520004.6310296,15520004.6310296,15520004.6310296,15520004.6310296,15520004.6310296,15520004.6310296,15520004.6310296,15520004.6310296,15520004.6310296,15520004.6310296,15520004.6310296,15520004.6310296,15520004.6310296,15520004.6310296,15520004.6310296,15520004.6310296,15520004.6310296,15520004.6310296,15520004.6310296,15520004.6310296 +CN0000000008,Emission Intensities,S1,,,,,,,1.8416900726653,1.77842721207629,1.75667634989967,1.74707836053789,1.82989665958273,1.82989665958273,1.82989665958273,1.8278970506424905,1.8258996267632996,1.8239043855574446,1.821911324639822,1.8199204416279342,1.8179317341418877,1.815945199804389,1.813960836240743,1.8119786410788488,1.8099986119491982,1.8080207464848719,1.8060450423215373,1.8040714970974454,1.8021001084534278,1.800130874032894,1.7981637914818291,1.79619885844879,1.7942360725849036,1.792275431543863,1.7903169329819255,1.7883605745579099,1.7864063539331927,1.784454268771706,1.782504316739935,1.7805564955069144,1.7786108027442264,1.7766672361259974,1.7747257933288954,1.772786472032127 +CN0000000008,Emission Intensities,S2,,,,,,,0.22705793626727,0.231439403083431,0.237388933630528,0.231401339778036,0.231958992063184,0.231958992063184,0.231958992063184,0.23223849014670572,0.23251832501035397,0.2327984970599306,0.23307900670172654,0.23335985434252218,0.2336410403895881,0.23392256525068564,0.23420442933406743,0.23448663304847803,0.23476917680315454,0.23505206100782716,0.23533528607271978,0.23561885240855057,0.23590276042653263,0.23618701053837454,0.236471603156281,0.2367565386929533,0.2370418175615901,0.2373274401758879,0.23761340695004168,0.23789971829874557,0.23818637463719328,0.23847337638107888,0.2387607239465973,0.239048417750445,0.23933645820982047,0.23962484574242493,0.23991358076646294,0.24020266370064294 +FR0000120321,Emissions,S1,,185584163.90193,188513981.90193,189986958.90193,200994691.90193,201036494.90193,213050961.90193,231671486.101929,221222495.90193,231986764.90193,240369173.90193,226132940.90193,226132940.90193,226179972.17046288,226227013.22058797,226274064.0543397,226321124.67375284,226368195.08086264,226415275.27770475,226462365.26631522,226509465.04873058,226556574.62698776,226603694.00312406,226650823.17917728,226697962.1571856,226745110.93918768,226792269.52722248,226839437.92332953,226886616.1295487,226933804.14792028,226981001.98048505,227028209.62928414,227075427.09635913,227122654.38375208,227169891.49350536,227217138.42766187,227264395.18826488,227311661.7773581,227358938.19698572,227406224.44919223,227453520.53602263,227500826.45952237 +FR0000120321,Emissions,S2,,,,0.901929562977962,0.901929562977962,0.901929562977962,6235.05442956298,12469.206929563,18703.359429563,24937.511929563,23268.401929563,15845.901929563,15845.901929563,15845.901929563,15845.901929563,15845.901929563,15845.901929563,15845.901929563,15845.901929563,15845.901929563,15845.901929563,15845.901929563,15845.901929563,15845.901929563,15845.901929563,15845.901929563,15845.901929563,15845.901929563,15845.901929563,15845.901929563,15845.901929563,15845.901929563,15845.901929563,15845.901929563,15845.901929563,15845.901929563,15845.901929563,15845.901929563,15845.901929563,15845.901929563,15845.901929563,15845.901929563 +FR0000120321,Productions,Production,,787824000.90193,793944000.90193,799452000.90193,835300800.90193,839822400.90193,868536000.90193,871128000.90193,901116000.90193,956880000.90193,988020000.90193,934632000.90193,934632000.90193,939691294.5728028,944777974.9075427,949892190.1539896,955034089.3624694,960203822.3901387,965401539.9053515,970627393.3920507,975881535.1541831,981164118.320138,986475296.8472099,991815225.526086,997184059.9853567,1002581956.6960521,1008009072.9762017,1013465566.9954194,1018951597.7795135,1024467325.2151212,1030012910.0543683,1035588513.9195544,1041194299.3078631,1046830429.5960982,1052497069.0454448,1058194382.8062569,1063922536.9228702,1069681698.3384417,1075472034.8998153,1081293715.362413,1087146909.3951535,1093031787.5853975 +FR0000120321,Emission Intensities,S1,,0.235565511699905,0.237439897131001,0.237646486202535,0.240625522787602,0.239379772063743,0.245298941760258,0.265944253728575,0.245498355018119,0.242440812519088,0.243283712558961,0.241948639340092,0.241948639340092,0.241948639340092,0.241948639340092,0.241948639340092,0.241948639340092,0.241948639340092,0.241948639340092,0.241948639340092,0.241948639340092,0.241948639340092,0.241948639340092,0.241948639340092,0.241948639340092,0.241948639340092,0.241948639340092,0.241948639340092,0.241948639340092,0.241948639340092,0.241948639340092,0.241948639340092,0.241948639340092,0.241948639340092,0.241948639340092,0.241948639340092,0.241948639340092,0.241948639340092,0.241948639340092,0.241948639340092,0.241948639340092,0.241948639340092 +FR0000120321,Emission Intensities,S2,,,,1.12818475901045e-09,1.07976618962186e-09,1.07395273335092e-09,7.17880942538732e-06,1.43138630794245e-05,2.07557732976029e-05,2.60612740427823e-05,2.35505373457238e-05,1.69541615462252e-05,1.69541615462252e-05,1.69541615462252e-05,1.69541615462252e-05,1.69541615462252e-05,1.69541615462252e-05,1.69541615462252e-05,1.69541615462252e-05,1.69541615462252e-05,1.69541615462252e-05,1.69541615462252e-05,1.69541615462252e-05,1.69541615462252e-05,1.69541615462252e-05,1.69541615462252e-05,1.69541615462252e-05,1.69541615462252e-05,1.69541615462252e-05,1.69541615462252e-05,1.69541615462252e-05,1.69541615462252e-05,1.69541615462252e-05,1.69541615462252e-05,1.69541615462252e-05,1.69541615462252e-05,1.69541615462252e-05,1.69541615462252e-05,1.69541615462252e-05,1.69541615462252e-05,1.69541615462252e-05,1.69541615462252e-05 +CH0038863350,Emissions,S1,,1968704.15493443,2832949.15493443,12866001.1549344,13663001.1549344,14934001.1549344,16918001.1549344,16977001.1549344,17293001.1549344,18162001.1549344,17976001.1549344,16065001.1549344,16065001.1549344,16364025.718732808,16668616.151396861,16978876.0527641,17294910.951019026,17616828.33858624,17944737.708691645,18278750.592604212,18618980.59757091,18965543.445457764,19318557.01211013,19678141.36744561,20044418.816293254,20417513.939992867,20797553.638768673,21184667.174891673,21578986.21664541,21980644.883110072,22389779.789780207,22806530.095031507,23231037.54745253,23663446.534057412,24103904.12939596,24552560.145577908,25009567.18322823,25475080.683390956,25949258.980399072,26432263.355728507,26924258.092854537,27425410.533129256 +CH0038863350,Emissions,S2,,52966.1549344293,58302.1549344293,61001.1549344293,202001.154934429,130001.154934429,409001.154934429,1265001.15493443,1818001.15493443,2090001.15493443,2289001.15493443,2403001.15493443,2403001.15493443,2475091.189582463,2549343.9252699367,2625824.243028035,2704598.970318876,2785736.9394284426,2869309.047611296,2955388.3190396354,3044049.9686108246,3135371.4676691494,3229432.611699224,3326315.590050201,3426105.0577517073,3528888.2094842587,3634754.8557687867,3743797.5014418503,3856111.426485106,3971794.7692796593,4090948.612358049,4213677.070728791,4340087.382850654,4470290.004336175,4604398.70446626,4742530.665600248,4884806.585568255,5031350.783135302,5182291.306629362,5337760.045828243,5497892.84720309,5662829.632619183 +CH0038863350,Productions,Production,,34887601.1549344,35434801.1549344,38350801.1549344,56516401.1549344,61902001.1549344,71791201.1549344,72248401.1549344,73062001.1549344,77691601.1549344,73011601.1549344,65804401.1549344,65804401.1549344,66223474.407979816,66645216.515818164,67069644.474967,67496775.39018568,67926626.47516467,68359215.05321927,68794558.55798781,69232674.53413415,69673580.63805482,70117294.63859051,70563834.41774228,71013217.97139208,71465463.41002811,71920588.95947464,72378612.9616265,72839553.87518832,73303430.27641842,73770260.8598774,74240064.4391816,74712859.9477613,75188666.4396237,75667503.09012085,76149389.19672245,76634344.1797935,77122387.583377,77613539.07598157,78107818.45137408,78605245.62937742,79105840.65667321 +CH0038863350,Emission Intensities,S1,,0.056429908900629,0.0799482165159527,0.33548193955471,0.241752851839921,0.241252316182091,0.235655635826781,0.2349809945071,0.236689399161995,0.23377045761633,0.246207463890409,0.244132624459417,0.244132624459417,0.24362716161646997,0.24312274530585826,0.24261937336079561,0.242117043618982,0.24161575392259435,0.2411155021182772,0.2406162860571335,0.24011810359471536,0.23962095259101487,0.23912483091045486,0.2386297364218798,0.23813566699854652,0.23764262051811522,0.23715059486264026,0.23665958791856107,0.23616959757669312,0.23568062173221882,0.23519265828467847,0.23470570513796127,0.23421976020029628,0.23373482138424348,0.23325088660668475,0.23276795378881499,0.2322860208561331,0.23180508573843311,0.23132514636979537,0.23084620068857753,0.2303682466374058,0.229891282163166 +CH0038863350,Emission Intensities,S2,,0.00151819423465685,0.00164533602656637,0.0015906096638761,0.00357420413908986,0.00210011231477072,0.00569709307484288,0.0175090539681518,0.024882991516742,0.0269012496056877,0.0313511978743905,0.0365173318616887,0.0365173318616887,0.03761285181753936,0.03874123737206554,0.03990347449322751,0.041100578728024334,0.04233359608986507,0.04360360397256102,0.04491171209173785,0.04625906345448999,0.04764683535812469,0.04907624041886843,0.05054852763143449,0.05206498346037753,0.053626932964188856,0.05523574095311452,0.05689281318170796,0.0585995975771592,0.060357585504473975,0.0621683130696082,0.06403336246169644,0.06595436333554734,0.06793299423561376,0.06997098406268218,0.07207011358456264,0.07423221699209952,0.07645918350186251,0.0787529590069184,0.08111554777712594,0.08354901421043973,0.08605548463675292 +US8356993076,Emissions,S1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +US8356993076,Emissions,S2,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +US8356993076,Productions,Production,193680004.281372,189828004.281372,203472004.281372,205380004.281372,205344004.281372,197424004.281372,200088004.281372,193212004.281372,233684004.281372,288420004.281372,288420004.281372,288420004.281372,288420004.281372,288420004.281372,288420004.281372,288420004.281372,288420004.281372,288420004.281372,288420004.281372,288420004.281372,288420004.281372,288420004.281372,288420004.281372,288420004.281372,288420004.281372,288420004.281372,288420004.281372,288420004.281372,288420004.281372,288420004.281372,288420004.281372,288420004.281372,288420004.281372,288420004.281372,288420004.281372,288420004.281372,288420004.281372,288420004.281372,288420004.281372,288420004.281372,288420004.281372,288420004.281372 +US8356993076,Emission Intensities,S1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +US8356993076,Emission Intensities,S2,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +CN0000000009,Emissions,S1,60457000.4256679,68748000.4256679,74602000.4256679,85678000.4256679,79928000.4256679,84451000.4256679,82741000.4256679,81346000.4256679,67743000.4256679,69687000.4256679,79447000.4256679,79447000.4256679,79447000.4256679,79917059.50330581,80389899.74996565,80865537.62081552,81343989.66838273,81825272.54312994,82309402.9940345,82796397.86917144,83286274.1162997,83779048.78345199,84274739.019528,84773362.07489128,85274935.30196951,85779476.15585838,86287002.19492906,86797531.08143923,87311080.58214772,87827668.56893285,88347313.01941435,88870032.01757902,89395843.75441003,89924766.52852,90456818.74678782,90992018.92499916,91530385.68849093,92071937.77279937,92616694.0243121,93164673.40092397,93715894.97269683,94270377.92252314 +CN0000000009,Emissions,S2,2698000.42566793,3033000.42566793,3625000.42566793,3682000.42566793,4539000.42566793,5032000.42566793,4431000.42566793,3719000.42566793,2956000.42566793,2802000.42566793,795000.425667932,795000.425667932,795000.425667932,795000.425667932,795000.425667932,795000.425667932,795000.425667932,795000.425667932,795000.425667932,795000.425667932,795000.425667932,795000.425667932,795000.425667932,795000.425667932,795000.425667932,795000.425667932,795000.425667932,795000.425667932,795000.425667932,795000.425667932,795000.425667932,795000.425667932,795000.425667932,795000.425667932,795000.425667932,795000.425667932,795000.425667932,795000.425667932,795000.425667932,795000.425667932,795000.425667932,795000.425667932 +CN0000000009,Productions,Production,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +CN0000000009,Emission Intensities,S1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +CN0000000009,Emission Intensities,S2,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +JP3401400001,Emissions,S1,9150002.14049632,8650002.14049632,8631002.14049632,8960002.14049632,9296403.94049632,9632805.74049632,9969207.54049632,10305609.3404963,10642011.1404963,11403118.1404963,9681777.14049632,9681777.14049632,9681777.14049632,9808192.460528428,9936258.390041308,10065996.481103629,10197428.56719021,10330576.766856354,10465463.487460157,10602111.42893341,10740543.58760175,10880783.260054681,11022854.047066135,11166779.857566217,11312584.912664806,11460293.749727711,11609931.226506023,11761522.525319403,11915093.157293988,12070668.966655625,12228276.135079168,12387941.186094563,12549690.989550462,12713552.766136115,12879554.091962317,13047722.903202152,13218087.500792343,13390676.555195987,13565519.11122747,13742644.592940385,13922082.808579277,14103863.955596037 +JP3401400001,Emissions,S2,,2.14049631522688,2.14049631522688,2.14049631522688,310616.540496315,621230.940496315,931845.340496315,1242459.74049632,1553074.14049631,1239860.14049631,1203273.14049631,1203273.14049631,1203273.14049631,1203273.14049631,1203273.14049631,1203273.14049631,1203273.14049631,1203273.14049631,1203273.14049631,1203273.14049631,1203273.14049631,1203273.14049631,1203273.14049631,1203273.14049631,1203273.14049631,1203273.14049631,1203273.14049631,1203273.14049631,1203273.14049631,1203273.14049631,1203273.14049631,1203273.14049631,1203273.14049631,1203273.14049631,1203273.14049631,1203273.14049631,1203273.14049631,1203273.14049631,1203273.14049631,1203273.14049631,1203273.14049631,1203273.14049631 +JP3401400001,Productions,Production,44323202.1404963,40827602.1404963,40676402.1404963,39729602.1404963,38782802.1404963,52791723.2224963,59593083.6504963,64762513.9564963,60584801.5404963,46522116.8924963,47691749.8864963,47691749.8864963,47691749.8864963,47691749.8864963,47691749.8864963,47691749.8864963,47691749.8864963,47691749.8864963,47691749.8864963,47691749.8864963,47691749.8864963,47691749.8864963,47691749.8864963,47691749.8864963,47691749.8864963,47691749.8864963,47691749.8864963,47691749.8864963,47691749.8864963,47691749.8864963,47691749.8864963,47691749.8864963,47691749.8864963,47691749.8864963,47691749.8864963,47691749.8864963,47691749.8864963,47691749.8864963,47691749.8864963,47691749.8864963,47691749.8864963,47691749.8864963 +JP3401400001,Emission Intensities,S1,0.206438201632917,0.211866523797549,0.212186960653128,0.225524587656603,0.239704287143016,0.182468105841096,0.167287996019204,0.159129235585558,0.175654799056872,0.245111764085171,0.203007378918543,0.203007378918543,0.203007378918543,0.2031608978534696,0.20331453288301063,0.20346828409495954,0.2036221515771762,0.2037761354175869,0.20393023570418445,0.2040844525250282,0.20423878596824402,0.2043932361220245,0.20454780307462894,0.2047024869143833,0.20485728772968043,0.20501220560897992,0.20516724064080835,0.2053223929137592,0.20547766251649294,0.2056330495377371,0.20578855406628632,0.20594417619100236,0.2060999160008142,0.20625577358471808,0.20641174903177753,0.20656784243112342,0.20672405387195403,0.2068803834435351,0.20703683123519986,0.20719339733634912,0.20735008183645126,0.20750688482504237 +JP3401400001,Emission Intensities,S2,,5.24276764494027e-08,5.26225576154353e-08,5.38766108872023e-08,0.0080091309382716,0.0117675821620384,0.0156368035250774,0.0191848596447465,0.0256347153247371,0.026650982872542,0.0252302157786208,0.0252302157786208,0.0252302157786208,0.025770066601127278,0.026321468609446754,0.026884668964254222,0.027459920114720617,0.028047479911670732,0.028647611723162398,0.029260584552538684,0.029886673159006075,0.030526158180792663,0.031179326260941543,0.03184647017579581,0.03252788896623277,0.03322388807170614,0.033934779467156354,0.03466088180285035,0.03540252054721354,0.03616002813271784,0.03693374410489143,0.037724015274516735,0.038531195873085046,0.039355647711577416,0.04019774034264296,0.04105785122624729,0.04193636589886535,0.042833678146294435,0.04375019018016491,0.044686312818227734,0.045642465668499575,0.04661907731734811 +US6541061031,Emissions,S1,,167100001.129387,163800001.129387,181700001.129387,165800001.129387,156600001.129387,152300001.129387,154000001.129387,135600001.129387,120400001.129387,91700001.129387,70400001.129387,70400001.129387,68466923.20682526,66586924.690438904,64758548.09973685,62980375.97444551,61251029.77561399,59569168.81689325,57933489.22516064,56342722.929684274,54795636.679043256,53291031.085041955,51827739.69287683,50404628.076835155,49020592.96082443,47674561.363050774,46365489.76418315,45092363.29835853,43854194.96640086,42650024.87064384,41478919.470764294,40339970.86004927,39232296.061535746,38155036.34347725,37107356.55360678,36088444.471679814,35097510.179795556,34133785.45000818,33196523.148753375,32284996.657628387,31398499.31007664 +US6541061031,Emissions,S2,,3100001.12938701,2400001.12938701,1900001.12938701,1500001.12938701,1400001.12938701,1300001.12938701,1300001.12938701,1000001.12938701,5000001.12938701,4700001.12938701,2600001.12938701,2600001.12938701,2426667.8512681113,2264890.1163233523,2113897.55558782,1972971.157988927,1841439.8464895017,1718677.2824878315,1604098.8832575467,1497159.0382246915,1397348.5108261874,1304192.0135776002,1217245.944802934,1136096.276248993,1060356.5815253449,989666.195981524,923688.4992589914,862109.3123395479,804635.4014571037,750993.0817485895,700926.9139947366,654198.4882447389,610585.2885325438,569879.6332786664,531887.6863318295,496428.53394111164,463333.32326323824,432444.4583026776,403614.8494556896,376707.21308473364,351593.41778788087 +US6541061031,Productions,Production,,811080001.129387,740520001.129387,817560001.129387,780120001.129387,749880001.129387,766800001.129387,777960001.129387,720720001.129387,633600001.129387,551394001.129387,528390001.129387,528390001.129387,508550149.3990898,489455239.3138632,471077299.9966006,453389410.8134881,436365661.9397395,419981116.4059994,404211773.5698178,389034533.9586884,374427165.4331518,360368270.62039745,346837255.5706604,333814299.59049964,321280326.20876867,309216975.2327485,297606575.85350955,286432120.7611066,275677241.2316899,265326183.15003854,255363783.9323943,245775450.31579024,236547136.98134035,227665325.98017627,219117006.93189353,210889657.96650165,202971227.38196087,195350115.99043688,188015160.12741408,180955615.298778,174161140.44191307 +US6541061031,Emission Intensities,S1,,0.206021601934099,0.221195917570857,0.222246686332972,0.212531406564832,0.208833414537704,0.198617632896545,0.197953623458559,0.188145189417386,0.190025253969026,0.166305764918667,0.133234923028281,0.133234923028281,0.13091666950021572,0.1286387529896398,0.12640047164278265,0.12420113581794942,0.12204006787303412,0.11991660195672978,0.1178300838033716,0.11577987053134974,0.11376533044502966,0.11178584284011905,0.10984079781242126,0.10792959606991641,0.10605164874811225,0.10420637722860783,0.10239321296081415,0.1006115972867768,0.09886098126904665,0.09714082552154556,0.09545060004337498,0.09378978405551622,0.09215786584037207,0.09055434258410044,0.08897872022169129,0.08743051328473915,0.08590924475186447,0.08441444590173748,0.08294565616865947,0.0815024230006569,0.08008430172004465 +US6541061031,Emission Intensities,S2,,0.00382206579507622,0.00324096732799479,0.00232398983164823,0.00192278255552408,0.00186696688440615,0.00169535879952047,0.00167103852061772,0.00138750295235318,0.00789141590983988,0.00852385248979909,0.00492061001122227,0.00492061001122227,0.004777771628745309,0.004639079643455304,0.004504413691278299,0.004373656902139985,0.004246695798539806,0.004123420197069318,0.004003723112789333,0.003887500666382857,0.0037746519940032508,0.0036650791597393683,0.0035586870706217125,0.0034553833940958395,0.0033550784778913953,0.0032576852722172416,0.003163119254215148,0.003071298354606485,0.0029821428864682635,0.002895575476076703,0.0028115209957583136,0.00272990649869022,0.0026506611555931364,0.002573716193262056,0.00249900483488131,0.002426462242072195,0.0023560254586228765,0.002287633355851733,0.0022212265795567275,0.002156747498504762,0.0020941401544163148 +BR0000000010,Emissions,S1,,,,,,,,23200001.9224849,22200001.9224849,22100001.9224849,23400001.9224849,23400001.9224849,23400001.9224849,23400001.9224849,23400001.9224849,23400001.9224849,23400001.9224849,23400001.9224849,23400001.9224849,23400001.9224849,23400001.9224849,23400001.9224849,23400001.9224849,23400001.9224849,23400001.9224849,23400001.9224849,23400001.9224849,23400001.9224849,23400001.9224849,23400001.9224849,23400001.9224849,23400001.9224849,23400001.9224849,23400001.9224849,23400001.9224849,23400001.9224849,23400001.9224849,23400001.9224849,23400001.9224849,23400001.9224849,23400001.9224849,23400001.9224849 +BR0000000010,Emissions,S2,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +BR0000000010,Productions,Production,,,,,15691492.9224849,11301980.9224849,11500001.9224849,11600001.9224849,3012108.92248495,12039001.9224849,11847001.9224849,11314001.9224849,11314001.9224849,11223783.132625751,11134283.75488085,11045498.052598318,10957420.334870819,10870044.95617078,10783366.315988539,10697378.858473353,10612077.072077302,10527455.489202004,10443508.68584816,10360231.281267889,10277617.937619844,10195663.359627066,10114362.29423757,10033709.530287651,9953699.898167849,9874328.2694916,9795589.556766523,9717478.71306832,9639990.731717287,9563120.6459574,9486863.528637957,9411214.49189777,9336168.686851855,9261721.303280644,9187867.569321657,9114602.75116364,9041922.152743142,8969821.115443517 +BR0000000010,Emission Intensities,S1,,,,,,,,1.99999983426857,7.37025203729028,1.83570050613659,1.97518343253351,2.06823386479905,2.06823386479905,2.1302808807430216,2.1941893071653125,2.260014986380272,2.3278154359716803,2.3976498990508306,2.4695793960223558,2.5436667779030264,2.6199767812401173,2.698576084677321,2.7795333672176405,2.86291936823417,2.9488069492811952,3.037271157759631,3.1283892924924204,3.222240971267193,3.318908200405209,3.4184754464173652,3.5210297098098864,3.626660601104183,3.7354604191373086,3.847524231711428,3.962949958662771,4.081838457422654,4.204293611145333,4.330422419479693,4.460335092064084,4.594145144826006,4.731969499170787,4.873928584145911 +BR0000000010,Emission Intensities,S2,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +BR0000000011,Emissions,S1,4000000.07784856,6481635.07784856,10525000.0778486,9308000.07784856,9311000.07784856,9578000.07784856,9448000.07784856,9989000.07784856,9867000.07784856,9755000.07784856,9582000.07784856,9582000.07784856,9582000.07784856,9582000.07784856,9582000.07784856,9582000.07784856,9582000.07784856,9582000.07784856,9582000.07784856,9582000.07784856,9582000.07784856,9582000.07784856,9582000.07784856,9582000.07784856,9582000.07784856,9582000.07784856,9582000.07784856,9582000.07784856,9582000.07784856,9582000.07784856,9582000.07784856,9582000.07784856,9582000.07784856,9582000.07784856,9582000.07784856,9582000.07784856,9582000.07784856,9582000.07784856,9582000.07784856,9582000.07784856,9582000.07784856,9582000.07784856 +BR0000000011,Emissions,S2,700993.077848565,1032496.57784856,1364000.07784857,1367000.07784857,1447000.07784857,1220000.07784857,1133000.07784857,1166000.07784857,1216000.07784857,1189000.07784857,1173000.07784857,1173000.07784857,1173000.07784857,1173000.07784857,1173000.07784857,1173000.07784857,1173000.07784857,1173000.07784857,1173000.07784857,1173000.07784857,1173000.07784857,1173000.07784857,1173000.07784857,1173000.07784857,1173000.07784857,1173000.07784857,1173000.07784857,1173000.07784857,1173000.07784857,1173000.07784857,1173000.07784857,1173000.07784857,1173000.07784857,1173000.07784857,1173000.07784857,1173000.07784857,1173000.07784857,1173000.07784857,1173000.07784857,1173000.07784857,1173000.07784857,1173000.07784857 +BR0000000011,Productions,Production,,,,,,,,,15393000.0778486,15419000.0778486,14618000.0778486,14473000.0778486,14473000.0778486,14401219.225470984,14329794.380192127,14258723.776345417,14188005.657021312,14117638.274023907,14047619.887827717,13977948.767534671,13908623.190831335,13839641.44394632,13771001.821607929,13702702.627001991,13634742.171729928,13567118.775767002,13499830.767420797,13432876.48328988,13366254.268222697,13299962.475276642,13233999.46567735,13168363.608778188,13103053.282019937,13038066.870890688,12973402.76888593,12909059.377468826,12845035.106030716,12781328.371851774,12717937.600061899,12654861.223601775,12592097.683184134,12529645.427255208 +BR0000000011,Emission Intensities,S1,,,,,,,,,0.641005653735282,0.632661004513705,0.655493229362386,0.662060390127003,0.662060390127003,0.6653768675695529,0.6687099583343782,0.672059745643054,0.6754263131340399,0.6788097448647676,0.6822101253137403,0.6856275393826413,0.6890620723984547,0.6925138101155953,0.6959828387180497,0.6994692448215283,0.7029731154756282,0.7064945381660065,0.7100336008165644,0.7135903917916429,0.7171649998982286,0.7207575143881718,0.7243680249604145,0.72799662176323,0.7316433953964738,0.7353084369138458,0.7389918378251639,0.7426936900986483,0.7464140861632185,0.7501531189108005,0.7539108816986466,0.757687468351666,0.7614829731647677,0.7652974909052147 +BR0000000011,Emission Intensities,S2,,,,,,,,,0.0789969513219493,0.0771126578795937,0.0802435402655439,0.0810474726414106,0.0810474726414106,0.08145346599005264,0.08186149309241667,0.0822715641362415,0.08268368936029968,0.08309787905465314,0.08351414356091008,0.08393249327248321,0.08435293863484927,0.08477549014580979,0.08520015835575323,0.08562695386791841,0.08605588733865925,0.08648696947771084,0.08692021104845683,0.0873556228681982,0.08779321580842334,0.08823300079507945,0.08867498880884543,0.08911919088540597,0.08956561811572714,0.09001428164633325,0.09046519267958526,0.0909183624739604,0.09137380234433329,0.09183152366225847,0.09229153785625434,0.09275385641208848,0.09321849087306446,0.09368545284031 +BR0000000012,Emissions,S1,,14900657.0,17389874.39,16283032.0,18802944.0,20428595.0,23337931.0,23298343.0,38757404.0,47025134.0,56093007.0,60116322.0,60116322.0,61919811.660000004,63777406.0098,65690728.190094,67661450.03579682,69691293.53687073,71782032.34297685,73935493.31326616,76153558.11266415,78438164.85604407,80791309.80172539,83215049.09577715,85711500.56865047,88282845.58570999,90931330.9532813,93659270.88187975,96469049.00833614,99363120.47858623,102344014.09294382,105414334.51573214,108576764.5512041,111834067.48774023,115189089.51237245,118644762.19774362,122204105.06367594,125870228.21558622,129646335.0620538,133535725.11391541,137541796.86733288,141668050.77335286 +BR0000000012,Emissions,S2,,731525.0,853729.3263,789126.0,1174594.0,1266295.0,723978.0,1409816.0,3979125.0,3344945.0,4137575.0,2779523.0,2779523.0,2862908.69,2948795.9507,3037259.829221,3128377.62409763,3222228.952820559,3318895.821405176,3418462.6960473317,3521016.5769287515,3626647.074236614,3735446.4864637125,3847509.881057624,3962935.1774893524,4081823.232814033,4204277.929798454,4330406.267692408,4460318.4557231795,4594128.009394875,4731951.849676721,4873910.405167023,5020127.717322034,5170731.548841695,5325853.495306946,5485629.100166155,5650197.97317114,5819703.912366275,5994295.029737263,6174123.880629381,6359347.597048263,6550128.024959711 +BR0000000012,Productions,Production,,,,,,9155004.34644718,9331004.34644718,20808004.3464472,21911004.3464472,25390004.3464472,27110004.3464472,30630004.3464472,28540004.3464472,29396204.476840615,30278090.611145835,31186433.329480212,32122026.32936462,33085687.11924556,34078257.732822925,35100605.464807615,36153623.628751844,37238232.3376144,38355379.307742834,39506040.68697512,40691221.90758438,41911958.56481191,43169317.321756266,44464396.84140895,45798328.746651225,47172278.609050766,48587446.96732229,50045070.37634196,51546422.48763222,53092815.16226119,54685599.61712903,56326167.6056429,58015952.63381219,59756431.21282656,61549124.149211355,63395597.8736877,65297465.80989833,67256389.78419529 +BR0000000012,Emission Intensities,S1,,,,,,2.23141292204059,2.5011167215762815,1.1196817634257177,1.768855657512769,1.8521120894010474,2.0690888235638023,1.9626612298203263,2.1063879763383277,2.1695796156284777,2.234667004097332,2.301707014220252,2.3707582246468597,2.4418809713862655,2.5151374005278533,2.590591522543689,2.66830926822,2.7483585462666,2.830809302654598,2.9157335817342362,3.0032055891862632,3.0933017568618513,3.186100809567707,3.2816838338547383,3.3801343488703806,3.481538379336492,3.585984530716587,3.6935640666380847,3.8043709886372272,3.918502118296344,4.036057181845234,4.157138897300592,4.28185306421961,4.410308656146198,4.542617915830585,4.678896453305502,4.819263346904668,4.963841247311808 +BR0000000012,Emission Intensities,S2,,,,,,0.13831724727595748,0.07758843240445577,0.06775354217189573,0.18160395283957864,0.13174259265016847,0.15262170183097867,0.09074510628733878,0.09739041964602954,0.09368693940842655,0.09012429197470885,0.08669712187451406,0.08340027729076233,0.08022880231530215,0.07717792949905186,0.07424307268543807,0.07141982011635797,0.06870392780030227,0.06609131313266955,0.06357804875868191,0.06116035666967634,0.058834602523897474,0.05659729018325428,0.0544450564578284,0.05237466605023386,0.05038300669222836,0.04846708446626541,0.046624019304954474,0.04485104066166388,0.043145483345758295,0.041504783516210335,0.039926474827563646,0.038408184722454074,0.036947630865115676,0.03554261771051033,0.0341910332039236,0.032890845606065554,0.03164010043890392 +AR0000000013,Emissions,S1,,24085969.3736674,30090002.3736674,16848002.3736674,26700002.3736674,32200002.3736674,32600002.3736674,32600002.3736674,22100002.3736674,22600002.3736674,22800002.3736674,21300002.3736674,21300002.3736674,21488497.950096946,21678661.62879757,21870508.17173472,22064052.4715107,22259309.552520737,22456294.57211929,22655022.82179668,22855509.728366155,23057770.855161402,23261821.90324472,23467678.712625843,23675357.263491567,23884873.67744626,24096244.218763337,24309485.29564782,24524613.46151007,24741645.416250795,24960598.007557414,25181488.23221191,25404333.23741025,25629150.322093487,25855956.938290622,26084770.692473385,26315609.346922968,26548490.821108874,26783433.19307997,27020454.70086784,27259573.743902553,27500808.884440985 +AR0000000013,Emissions,S2,,4781476.37366743,4287002.37366743,2116002.37366743,1800002.37366743,1700002.37366743,1200002.37366743,1200002.37366743,1300002.37366743,1400002.37366743,1300002.37366743,1400002.37366743,1400002.37366743,1400002.37366743,1400002.37366743,1400002.37366743,1400002.37366743,1400002.37366743,1400002.37366743,1400002.37366743,1400002.37366743,1400002.37366743,1400002.37366743,1400002.37366743,1400002.37366743,1400002.37366743,1400002.37366743,1400002.37366743,1400002.37366743,1400002.37366743,1400002.37366743,1400002.37366743,1400002.37366743,1400002.37366743,1400002.37366743,1400002.37366743,1400002.37366743,1400002.37366743,1400002.37366743,1400002.37366743,1400002.37366743,1400002.37366743 +AR0000000013,Productions,Production,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +AR0000000013,Emission Intensities,S1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +AR0000000013,Emission Intensities,S2,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +GB0031274896,Emissions,S1,55192252.5587173,56075311.5587173,54746972.5587173,54472481.5587173,56535331.5587173,57593228.5587173,56978409.5587173,52832514.4587173,50919739.3587173,50723846.5587173,48061950.5587173,48061950.5587173,48061950.5587173,47969501.24351086,47877229.75870419,47785135.762232564,47693218.91268922,47601478.86932409,47509915.292042576,47418527.84140427,47327316.178621665,47236279.96555896,47145418.86473075,47054732.539300814,46964220.653080836,46873882.87052918,46783718.85674965,46693728.277490206,46603910.799141794,46514266.088737056,46424793.81394911,46335493.643090315,46246365.24511106,46157408.28959852,46068622.446775414,45980007.38749883,45891562.78325897,45803288.306177914,45715183.629008465,45627248.425132886,45539482.3685617,45451885.133932486 +GB0031274896,Emissions,S2,1007225.55871729,1933034.55871729,1052282.55871729,1189960.55871729,774476.55871729,601657.55871729,1061617.55871729,891280.15871729,1153067.75871729,841797.55871729,607645.55871729,607645.55871729,607645.55871729,574169.7083723544,542538.0787910529,512649.06985897553,484406.67872178636,457720.19142611866,432503.8915483062,408676.7848750728,386162.3392518596,364888.23876318976,344786.15145550197,325791.509856384,307843.3035852392,290883.8833892551,274858.77597524226,259716.5090425874,245408.44595532992,231888.62952233257,219113.6343837711,207042.4275298118,195636.23650346577,184858.42486429034,174674.37451292973,165051.37449852395,155958.5159518376,147366.5928066361,139248.00799042874,131576.68478326488,124327.98305986985,117478.6201460922 +GB0031274896,Productions,Production,257468657.558717,268120405.558717,268997847.558717,270255601.558717,255369601.558717,265032001.558717,263804401.558717,266875867.558717,261049397.158717,247737601.558717,242884801.558717,242884801.558717,242884801.558717,242884801.558717,242884801.558717,242884801.558717,242884801.558717,242884801.558717,242884801.558717,242884801.558717,242884801.558717,242884801.558717,242884801.558717,242884801.558717,242884801.558717,242884801.558717,242884801.558717,242884801.558717,242884801.558717,242884801.558717,242884801.558717,242884801.558717,242884801.558717,242884801.558717,242884801.558717,242884801.558717,242884801.558717,242884801.558717,242884801.558717,242884801.558717,242884801.558717,242884801.558717 +GB0031274896,Emission Intensities,S1,0.21436493700648,0.209142274874103,0.2035219725941,0.201559121233912,0.221386301320277,0.217306695870678,0.215987334639051,0.197966623741629,0.195057869939298,0.204748274947253,0.197879613093446,0.197879613093446,0.197879613093446,0.19735497817436765,0.19683173421110334,0.19630987751583512,0.1957894044105225,0.1952703112268765,0.1947525943063338,0.19423625000003097,0.19372127466877878,0.1932076646830365,0.19269541642288632,0.19218452627800792,0.1916749906476529,0.19116680594061947,0.19065996857522718,0.1901544749792916,0.18965032159009917,0.1891475048543821,0.18864602122829327,0.18814586717738138,0.18764703917656594,0.18714953371011245,0.18665334727160757,0.1861584763639345,0.18566491749924832,0.18517266719895129,0.18468172199366847,0.18419207842322322,0.18370373303661278,0.183216682391984 +GB0031274896,Emission Intensities,S2,0.00391203173336772,0.00720957643894792,0.00391186237461471,0.00440309304175052,0.00303276722832343,0.00227013173948352,0.00402426021872495,0.00333968060458367,0.0044170481574268,0.00339794021343898,0.00250178502243744,0.00250178502243744,0.00250178502243744,0.0023594186347448616,0.002225153737852994,0.0020985293089441784,0.001979110560130058,0.0018664874455286923,0.0017602732532978277,0.0016601032777898137,0.0015656335672687713,0.0014765397428900726,0.0013925158848868838,0.0013132734821392923,0.0012385404415191723,0.0011680601536091968,0.0011015906115879708,0.0010389035802558216,0.0009797838123479432,0.000924028309443965,0.0008714456249361451,0.0008218552066628009,0.0007750867769497934,0.000730979747931322,0.0006893826701424306,0.0006501527124898656,0.0006131551718156736,0.0005782630103695345,0.00054535641960166,0.0005143224087784588,0.00048505441700840823,0.0004574519473459521 From 3c6e00d9b5a6d36bfc53499bfd6632c442c35490 Mon Sep 17 00:00:00 2001 From: David Kroon Date: Fri, 7 Jan 2022 17:31:45 +0100 Subject: [PATCH 008/345] Fix unit test Signed-off-by: David Kroon Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- ITR/data/data_providers.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/ITR/data/data_providers.py b/ITR/data/data_providers.py index b5cfd721..3a98494c 100644 --- a/ITR/data/data_providers.py +++ b/ITR/data/data_providers.py @@ -2,6 +2,8 @@ from typing import List import pandas as pd import numpy as np + +from ITR.configs import ProjectionConfig from ITR.interfaces import ICompanyData From 6717910287dd9e8f4342bf5d8617b37672e6ecfe Mon Sep 17 00:00:00 2001 From: David Kroon Date: Fri, 7 Jan 2022 18:23:04 +0100 Subject: [PATCH 009/345] Fix excel provider tests Signed-off-by: David Kroon Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- ITR/data/excel.py | 42 ++++++++++++++++++++++++------------------ 1 file changed, 24 insertions(+), 18 deletions(-) diff --git a/ITR/data/excel.py b/ITR/data/excel.py index 1d90e7ac..1b2ab8a8 100644 --- a/ITR/data/excel.py +++ b/ITR/data/excel.py @@ -111,12 +111,11 @@ class ExcelProviderCompany(BaseCompanyDataProvider): :param tempscore_config: An optional TemperatureScoreConfig object containing temperature scoring settings """ - def __init__(self, excel_path: str, column_config: Type[ColumnsConfig] = ColumnsConfig, - tempscore_config: Type[TemperatureScoreConfig] = TemperatureScoreConfig): - self._companies = self._convert_from_excel_data(excel_path) - super().__init__(self._companies, column_config, tempscore_config) + def __init__(self, excel_path: str): self.ENERGY_UNIT_CONVERSION_FACTOR = 3.6 self.CORRECTION_SECTORS = [SectorsConfig.ELECTRICITY] + self._companies = self._convert_from_excel_data(excel_path) + super().__init__(self._companies, ColumnsConfig, TemperatureScoreConfig) def _check_company_data(self, df: pd.DataFrame) -> None: """ @@ -141,10 +140,17 @@ def _convert_from_excel_data(self, excel_path: str) -> List[ICompanyData]: self._check_company_data(df_company_data) df_fundamentals = df_company_data[TabsConfig.FUNDAMENTAL] - company_ids = df_fundamentals[self.column_config.COMPANY_ID].unique() + company_ids = df_fundamentals[ColumnsConfig.COMPANY_ID].unique() df_targets = self._get_projection(company_ids, df_company_data[TabsConfig.PROJECTED_TARGET]) - df_ei = self._get_projection(company_ids, df_company_data[TabsConfig.PROJECTED_EI]) - return self._company_df_to_model(df_fundamentals, df_targets, df_ei) + if TabsConfig.PROJECTED_EI in df_company_data.keys(): + df_ei = self._get_projection(company_ids, df_company_data[TabsConfig.PROJECTED_EI]) + else: + df_ei = None + if TabsConfig.HISTORIC_DATA in df_company_data.keys(): + df_historic = self._get_historic_data(company_ids, df_company_data[TabsConfig.HISTORIC_DATA]) + else: + df_historic = None + return self._company_df_to_model(df_fundamentals, df_targets, df_ei, df_historic) def _convert_series_to_projections(self, projections: pd.Series, convert_unit: bool = False) -> List[ ICompanyProjection]: @@ -175,15 +181,15 @@ def _company_df_to_model(self, df_fundamentals: pd.DataFrame, df_targets: pd.Dat model_companies: List[ICompanyData] = [] for company_data in companies_data_dict: try: - convert_unit_of_measure = company_data[self.column_config.SECTOR] in self.CORRECTION_SECTORS + convert_unit_of_measure = company_data[ColumnsConfig.SECTOR] in self.CORRECTION_SECTORS company_targets = self._convert_series_to_projections( - df_targets.loc[company_data[self.column_config.COMPANY_ID], :], convert_unit_of_measure) + df_targets.loc[company_data[ColumnsConfig.COMPANY_ID], :], convert_unit_of_measure) company_ei = self._convert_series_to_projections( - df_ei.loc[company_data[self.column_config.COMPANY_ID], :], + df_ei.loc[company_data[ColumnsConfig.COMPANY_ID], :], convert_unit_of_measure) - company_data.update({self.column_config.PROJECTED_TARGETS: {'S1S2': {'projections': company_targets}}}) - company_data.update({self.column_config.PROJECTED_EI: {'S1S2': {'projections': company_ei}}}) + company_data.update({ColumnsConfig.PROJECTED_TARGETS: {'S1S2': {'projections': company_targets}}}) + company_data.update({ColumnsConfig.PROJECTED_EI: {'S1S2': {'projections': company_ei}}}) if df_historic is not None: company_data[ColumnsConfig.HISTORIC_PRODUCTIONS] = self._convert_to_historic_productions(df_historic) @@ -195,7 +201,7 @@ def _company_df_to_model(self, df_fundamentals: pd.DataFrame, df_targets: pd.Dat except ValidationError as e: logger.warning( "(one of) the input(s) of company %s is invalid and will be skipped" % company_data[ - self.column_config.COMPANY_NAME]) + ColumnsConfig.COMPANY_NAME]) pass return model_companies @@ -207,14 +213,14 @@ def _get_projection(self, company_ids: List[str], projections: pd.DataFrame) -> :return: series of projected emissions """ - projections = projections.reset_index().set_index(self.column_config.COMPANY_ID) + projections = projections.reset_index().set_index(ColumnsConfig.COMPANY_ID) assert all(company_id in projections.index for company_id in company_ids), \ f"company ids missing in provided projections" projections = projections.loc[company_ids, :] - projections = projections.loc[:, range(self.temp_config.CONTROLS_CONFIG.base_year, - self.temp_config.CONTROLS_CONFIG.target_end_year + 1)] + projections = projections.loc[:, range(TemperatureScoreConfig.CONTROLS_CONFIG.base_year, + TemperatureScoreConfig.CONTROLS_CONFIG.target_end_year + 1)] # Due to bug (https://github.com/pandas-dev/pandas/issues/20824) in Pandas where NaN are treated as zero workaround below: projections = projections.fillna(np.inf) @@ -224,10 +230,10 @@ def _get_projection(self, company_ids: List[str], projections: pd.DataFrame) -> return projected_emissions_s1s2 def _get_historic_data(self, company_ids: List[str], historic_data: pd.DataFrame) -> pd.DataFrame: - historic_data = historic_data.reset_index().set_index(ColumnsConfig.COMPANY_ID) + historic_data = historic_data.reset_index().drop(columns=['index']).set_index(ColumnsConfig.COMPANY_ID) missing_ids = [company_id for company_id in company_ids if company_id not in historic_data.index] - assert missing_ids, f"Company ids missing in provided historic data: {missing_ids}" + assert not missing_ids, f"Company ids missing in provided historic data: {missing_ids}" return historic_data.loc[company_ids, :] From 0ce0978bc4873ee6fc94fefce37973851b620a0d Mon Sep 17 00:00:00 2001 From: David Kroon Date: Mon, 10 Jan 2022 16:23:32 +0100 Subject: [PATCH 010/345] Projector works with ICompanyData objects Signed-off-by: David Kroon Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- ITR/configs.py | 8 + ITR/data/base_providers.py | 16 +- ITR/data/data_providers.py | 112 +- ITR/data/excel.py | 92 +- ITR/interfaces.py | 18 +- test/inputs/json/test_project_companies.json | 8234 ++++++++++++++++++ test/inputs/test_data_company.xlsx | Bin 93357 -> 92539 bytes test/inputs/test_projection_reference.csv | 207 +- test/test_projection.py | 12 +- 9 files changed, 8547 insertions(+), 152 deletions(-) create mode 100644 test/inputs/json/test_project_companies.json diff --git a/ITR/configs.py b/ITR/configs.py index 16329787..254504c7 100644 --- a/ITR/configs.py +++ b/ITR/configs.py @@ -75,6 +75,14 @@ class VariablesConfig: EMISSION_INTENSITIES = "Emission Intensities" +class TabsConfig: + FUNDAMENTAL = "fundamental_data" + PROJECTED_EI = "projected_ei_in_Wh" + PROJECTED_PRODUCTION = "projected_production" + PROJECTED_TARGET = "projected_target" + HISTORIC_DATA = "historic_data" + + class PortfolioAggregationConfig: COLS = ColumnsConfig diff --git a/ITR/data/base_providers.py b/ITR/data/base_providers.py index 45480faf..03d7ce56 100644 --- a/ITR/data/base_providers.py +++ b/ITR/data/base_providers.py @@ -1,7 +1,8 @@ import pandas as pd from typing import List, Type from ITR.configs import ColumnsConfig, TemperatureScoreConfig -from ITR.data.data_providers import CompanyDataProvider, ProductionBenchmarkDataProvider, IntensityBenchmarkDataProvider +from ITR.data.data_providers import CompanyDataProvider, ProductionBenchmarkDataProvider, \ + IntensityBenchmarkDataProvider, EmissionIntensityProjector from ITR.interfaces import ICompanyData, EScope, IProductionBenchmarkScopes, IEmissionIntensityBenchmarkScopes, \ IBenchmark @@ -23,14 +24,17 @@ def __init__(self, column_config: Type[ColumnsConfig] = ColumnsConfig, tempscore_config: Type[TemperatureScoreConfig] = TemperatureScoreConfig): super().__init__() - self._companies = self._validate(companies) + self._companies = self._validate_projected_trajectories(companies) self.column_config = column_config self.temp_config = tempscore_config - def _validate(self, companies: List[ICompanyData]) -> List[ICompanyData]: - # TODO: check if either historic or projected EI data are supplied - # TODO: Extrapolate EI data if not yet present - return companies + def _validate_projected_trajectories(self, companies: List[ICompanyData]) -> List[ICompanyData]: + companies_without_data = [c.company_id for c in companies if not c.historic_data and not c.projected_intensities] + assert not companies_without_data, \ + f"Provide either historic emission data or projections for companies with IDs {companies_without_data}" + companies_without_projections = [c for c in companies if not c.projected_intensities] + companies_with_projections = [c for c in companies if c.projected_intensities] + return companies_with_projections + EmissionIntensityProjector(companies_without_projections).project() def _convert_projections_to_series(self, company: ICompanyData, feature: str, scope: EScope = EScope.S1S2) -> pd.Series: diff --git a/ITR/data/data_providers.py b/ITR/data/data_providers.py index 3a98494c..c329c1de 100644 --- a/ITR/data/data_providers.py +++ b/ITR/data/data_providers.py @@ -1,10 +1,11 @@ from abc import ABC, abstractmethod -from typing import List +from typing import List, Dict, Union import pandas as pd import numpy as np -from ITR.configs import ProjectionConfig -from ITR.interfaces import ICompanyData +from ITR.configs import ProjectionConfig, TabsConfig, VariablesConfig, ColumnsConfig, TemperatureScoreConfig +from ITR.interfaces import ICompanyData, EScope, IHistoricData, IProductionRealization, IHistoricEmissionsScopes, \ + IHistoricEIScopes, ICompanyProjection, ICompanyProjectionsScopes, ICompanyProjections class CompanyDataProvider(ABC): @@ -192,38 +193,95 @@ class EmissionIntensityProjector(ABC): - A company's production history (units depend on industry, e.g. TWh for electricity) """ - def __init__(self, historic_data: pd.DataFrame): - self.historic_data = historic_data + def __init__(self, companies: List[ICompanyData]): + self.companies = companies + self.historic_data = self._extract_historic_data(companies) self.projection_data = None self.historic_years = [column for column in self.historic_data.columns if type(column) == int] self.projection_years = range(max(self.historic_years), ProjectionConfig.TARGET_YEAR) - def project(self) -> pd.DataFrame: - # TODO: Input should be a List[ICompanyData], Output should be a List[ICompanyData] + def _extract_historic_data(self, companies: List[ICompanyData]) -> pd.DataFrame: + data = [] + for company in companies: + if company.historic_data.productions: + data.append(self._historic_productions_to_dict(company.company_id, company.historic_data.productions)) + if company.historic_data.emissions: + data.extend(self._historic_emissions_to_dicts(company.company_id, company.historic_data.emissions)) + if company.historic_data.emission_intensities: + data.extend(self._historic_emission_intensities_to_dicts(company.company_id, + company.historic_data.emission_intensities)) + return pd.DataFrame.from_records(data).set_index( + [ColumnsConfig.COMPANY_ID, ColumnsConfig.VARIABLE, ColumnsConfig.SCOPE]) + + def _historic_productions_to_dict(self, id: str, productions: List[IProductionRealization]) -> Dict[str, str]: + prods = {prod.dict()['year']: prod.dict()['value'] for prod in productions} + return {ColumnsConfig.COMPANY_ID: id, ColumnsConfig.VARIABLE: VariablesConfig.PRODUCTIONS, + ColumnsConfig.SCOPE: 'Production', **prods} + + def _historic_emissions_to_dicts(self, id: str, emission_scopes: IHistoricEmissionsScopes) -> List[Dict[str, str]]: + data = [] + for scope, emissions in emission_scopes.dict().items(): + if emissions: + ems = {em['year']: em['value'] for em in emissions} + data.append({ColumnsConfig.COMPANY_ID: id, ColumnsConfig.VARIABLE: VariablesConfig.EMISSIONS, + ColumnsConfig.SCOPE: scope, **ems}) + return data + + def _historic_emission_intensities_to_dicts(self, id: str, intensities_scopes: IHistoricEIScopes) \ + -> List[Dict[str, str]]: + data = [] + for scope, intensities in intensities_scopes.dict().items(): + if intensities: + intsties = {intsty['year']: intsty['value'] for intsty in intensities} + data.append({ColumnsConfig.COMPANY_ID: id, ColumnsConfig.VARIABLE: VariablesConfig.EMISSION_INTENSITIES, + ColumnsConfig.SCOPE: scope, **intsties}) + return data + + def project(self, as_dataframe: bool = False) -> Union[pd.DataFrame, List[ICompanyData]]: self._validate_historic_data() - # TODO: Check if emission intensities are supplied - # TODO: If they are not: compute intensities by emissions / production - # TODO: Keep only S1S2 and add comment to separate further in the future - # TODO: Work back from end result: projected_ei_trajectories: Optional[ICompanyEIProjectionsScopes] = None - - historic_intensities: pd.DataFrame = self.historic_data[self.historic_years] + historic_intensities = self.historic_data[self.historic_years] standardized_intensities = self._standardize(historic_intensities) intensity_trends = self._get_trends(standardized_intensities) - return self._extrapolate(intensity_trends) + extrapolated = self._extrapolate(intensity_trends) + if as_dataframe: + return extrapolated.reset_index() + else: + self._add_projections_to_companies(extrapolated) + return self.companies + + def _add_projections_to_companies(self, extrapolations: pd.DataFrame): + for company in self.companies: + results = extrapolations.loc[(company.company_id, VariablesConfig.EMISSION_INTENSITIES, EScope.S1S2.value)] + projections = [ICompanyProjection(year=year, value=value) for year, value in results.items() + if year >= TemperatureScoreConfig.CONTROLS_CONFIG.base_year] + company.projected_intensities = ICompanyProjectionsScopes( + S1S2=ICompanyProjections(projections=projections) + ) def _validate_historic_data(self): - # TODO: Check that data contains at least 2 values that are not NaNs - # TODO: Check that data is indeed historic - # TODO: Throw error or continue with valid companies + log invalid company IDs - pass - - def get_emission_intensities(self): - # TODO: Separate S1 and S2 - # TODO: Separate Steel Electricity in results - units are different - # TODO: Get historic emissions - # TODO: Get historic production - # TODO: Compute EIs for each scope S1, S2, S1+S2 - pass + companies_without_ei = [company for company in self.companies if + not company.historic_data.emission_intensities] + companies_without_data = [company for company in companies_without_ei if + not company.historic_data.productions or not company.historic_data.emissions] + assert not companies_without_data, f"Provide either historic emission intensities, or both historic emissions" \ + f"and historic production values for companies: {companies_without_data}" + self._compute_emission_intensities(companies_without_ei) + + def _compute_emission_intensities(self, companies_without_ei: List[ICompanyData]): + for company in companies_without_ei: + for scope, emissions in company.historic_data.emissions.dict().items(): + if emissions: + ems = self.historic_data.loc[(company.company_id, VariablesConfig.EMISSIONS, scope)] + productions = self.historic_data.loc[(company.company_id, VariablesConfig.PRODUCTIONS, 'Production')] + self.historic_data.loc[(company.company_id, VariablesConfig.EMISSION_INTENSITIES, scope)] = ems / productions + + for company in self.companies: + try: + self.historic_data.loc[(company.company_id, VariablesConfig.EMISSION_INTENSITIES, EScope.S1S2.value)] = \ + self.historic_data.loc[(company.company_id, VariablesConfig.EMISSION_INTENSITIES, EScope.S1.value)] + \ + self.historic_data.loc[(company.company_id, VariablesConfig.EMISSION_INTENSITIES, EScope.S2.value)] + except: + pass def _standardize(self, intensities: pd.DataFrame) -> pd.DataFrame: winsorized_intensities: pd.DataFrame = self._winsorize(intensities) @@ -262,4 +320,4 @@ def _extrapolate(self, trends: pd.DataFrame) -> pd.DataFrame: return projected_intensities def _year_on_year_ratio(self, arr: np.ndarray) -> float: - return (arr[1] / arr[0]) - 1.0 \ No newline at end of file + return (arr[1] / arr[0]) - 1.0 diff --git a/ITR/data/excel.py b/ITR/data/excel.py index 1b2ab8a8..f9e05743 100644 --- a/ITR/data/excel.py +++ b/ITR/data/excel.py @@ -1,13 +1,13 @@ -from typing import Type, List +from typing import Type, List, Union, Optional import pandas as pd import numpy as np from pydantic import ValidationError from ITR.data.base_providers import BaseCompanyDataProvider, BaseProviderProductionBenchmark, \ BaseProviderIntensityBenchmark -from ITR.configs import ColumnsConfig, TemperatureScoreConfig, SectorsConfig +from ITR.configs import ColumnsConfig, TemperatureScoreConfig, SectorsConfig, VariablesConfig, TabsConfig from ITR.interfaces import ICompanyData, ICompanyProjection, EScope, IEmissionIntensityBenchmarkScopes, \ IProductionBenchmarkScopes, IBenchmark, IBenchmarks, IBenchmarkProjection, IHistoricEmissionsScopes, \ - IProductionRealization, IHistoricEIScopes + IProductionRealization, IHistoricEIScopes, IHistoricData, IEmissionRealization, IEIRealization import logging @@ -32,14 +32,6 @@ def convert_benchmark_excel_to_model(df_excel: pd.DataFrame, sheetname: str, col return IBenchmarks(benchmarks=result) -class TabsConfig: - FUNDAMENTAL = "fundamental_data" - PROJECTED_EI = "projected_ei_in_Wh" - PROJECTED_PRODUCTION = "projected_production" - PROJECTED_TARGET = "projected_target" - HISTORIC_DATA = "historic_data" - - class ExcelProviderProductionBenchmark(BaseProviderProductionBenchmark): def __init__(self, excel_path: str, column_config: Type[ColumnsConfig] = ColumnsConfig, tempscore_config: Type[TemperatureScoreConfig] = TemperatureScoreConfig): @@ -115,6 +107,7 @@ def __init__(self, excel_path: str): self.ENERGY_UNIT_CONVERSION_FACTOR = 3.6 self.CORRECTION_SECTORS = [SectorsConfig.ELECTRICITY] self._companies = self._convert_from_excel_data(excel_path) + self.historic_years = None super().__init__(self._companies, ColumnsConfig, TemperatureScoreConfig) def _check_company_data(self, df: pd.DataFrame) -> None: @@ -192,9 +185,8 @@ def _company_df_to_model(self, df_fundamentals: pd.DataFrame, df_targets: pd.Dat company_data.update({ColumnsConfig.PROJECTED_EI: {'S1S2': {'projections': company_ei}}}) if df_historic is not None: - company_data[ColumnsConfig.HISTORIC_PRODUCTIONS] = self._convert_to_historic_productions(df_historic) - company_data[ColumnsConfig.HISTORIC_EMISSIONS] = self._convert_to_historic_emissions(df_historic) - company_data[ColumnsConfig.HISTORIC_EI] = self._convert_to_historic_emission_intensities(df_historic) + company_data[TabsConfig.HISTORIC_DATA] = self._convert_historic_data( + df_historic.loc[company_data[ColumnsConfig.COMPANY_ID], :], convert_unit_of_measure) model_companies.append(ICompanyData.parse_obj(company_data)) @@ -231,17 +223,77 @@ def _get_projection(self, company_ids: List[str], projections: pd.DataFrame) -> def _get_historic_data(self, company_ids: List[str], historic_data: pd.DataFrame) -> pd.DataFrame: historic_data = historic_data.reset_index().drop(columns=['index']).set_index(ColumnsConfig.COMPANY_ID) + self.historic_years = [column for column in historic_data.columns if type(column) == int] missing_ids = [company_id for company_id in company_ids if company_id not in historic_data.index] assert not missing_ids, f"Company ids missing in provided historic data: {missing_ids}" return historic_data.loc[company_ids, :] - def _convert_to_historic_emissions(self, dataframe: pd.DataFrame) -> IHistoricEmissionsScopes: - return IHistoricEmissionsScopes(S1=[], S2=[], S1S2=[], S3=[], S1S2S3=[]) + def _convert_historic_data(self, historic: pd.DataFrame, convert_unit: bool) -> IHistoricData: + productions = historic.loc[historic[ColumnsConfig.VARIABLE] == VariablesConfig.PRODUCTIONS] + emissions = historic.loc[historic[ColumnsConfig.VARIABLE] == VariablesConfig.EMISSIONS] + emission_intensities = historic.loc[historic[ColumnsConfig.VARIABLE] == VariablesConfig.EMISSION_INTENSITIES] + return IHistoricData( + productions=self._convert_to_historic_productions(productions, convert_unit), + emissions=self._convert_to_historic_emissions(emissions), + emission_intensities=self._convert_to_historic_emission_intensities(emission_intensities, convert_unit) + ) + + def _convert_to_historic_emissions(self, emissions: pd.DataFrame) -> Optional[IHistoricEmissionsScopes]: + """ + :param historic: historic production, emission and emission intensity data for a company + :param convert_unit: whether or not to convert the units of measure + :return: List of historic emissions per scope, or None if no data are provided + """ + if emissions.empty: + return None + + emission_scopes = {} + for scope in EScope.get_scopes(): + results = emissions.loc[emissions[ColumnsConfig.SCOPE] == scope] + emission_scopes[scope] = [] \ + if results.empty \ + else [IEmissionRealization(year=year, value=results[year]) for year in self.historic_years] + return IHistoricEmissionsScopes(**emission_scopes) + + def _convert_to_historic_productions(self, productions: pd.DataFrame, convert_unit: bool) \ + -> Optional[List[IProductionRealization]]: + """ + :param historic: historic production, emission and emission intensity data for a company + :param convert_unit: whether or not to convert the units of measure + :return: A list containing historic productions, or None if no data are provided + """ + if productions.empty: + return None - def _convert_to_historic_productions(self, dataframe: pd.DataFrame) -> List[IProductionRealization]: - return [IProductionRealization(year=1990, value=1)] + if convert_unit: + converted = productions[self.historic_years] * self.ENERGY_UNIT_CONVERSION_FACTOR + production_realizations = \ + [IProductionRealization(year=year, value=converted[year]) for year in self.historic_years] + else: + production_realizations = \ + [IProductionRealization(year=year, value=productions[year]) for year in self.historic_years] + return production_realizations - def _convert_to_historic_emission_intensities(self, dataframe: pd.DataFrame) -> IHistoricEIScopes: - return IHistoricEIScopes(S1=[], S2=[], S1S2=[], S3=[], S1S2S3=[]) \ No newline at end of file + def _convert_to_historic_emission_intensities(self, intensities: pd.DataFrame, convert_unit: bool) \ + -> Optional[IHistoricEIScopes]: + """ + :param historic: historic production, emission and emission intensity data for a company + :param convert_unit: whether or not to convert the units of measure + :return: A list of historic emission intensities per scope, or None if no data are provided + """ + if intensities.empty: + return None + + intensities = intensities.copy() + if convert_unit: + intensities[self.historic_years] *= self.ENERGY_UNIT_CONVERSION_FACTOR + + intensity_scopes = {} + for scope in EScope.get_scopes(): + results = intensities.loc[intensities[ColumnsConfig.SCOPE] == scope] + intensity_scopes[scope] = [] \ + if results.empty \ + else [IEIRealization(year=year, value=results[year]) for year in self.historic_years] + return IHistoricEIScopes(**intensity_scopes) diff --git a/ITR/interfaces.py b/ITR/interfaces.py index 1b853d56..e3759889 100644 --- a/ITR/interfaces.py +++ b/ITR/interfaces.py @@ -151,6 +151,12 @@ class IHistoricEIScopes(BaseModel): S1S2S3: List[IEIRealization] +class IHistoricData(BaseModel): + productions: Optional[List[IProductionRealization]] + emissions: Optional[IHistoricEmissionsScopes] + emission_intensities: Optional[IHistoricEIScopes] + + class ICompanyData(BaseModel): company_name: str company_id: str @@ -159,9 +165,7 @@ class ICompanyData(BaseModel): sector: str # TODO: make SortableEnums target_probability: float - historic_productions: Optional[List[IProductionRealization]] - historic_emissions: Optional[IHistoricEmissionsScopes] - historic_emission_intensities: Optional[IHistoricEIScopes] + historic_data: Optional[IHistoricData] projected_targets: Optional[ICompanyProjectionsScopes] projected_intensities: Optional[ICompanyProjectionsScopes] @@ -242,6 +246,14 @@ class EScope(SortableEnum): S1S2 = "S1+S2" S1S2S3 = "S1+S2+S3" + @classmethod + def get_scopes(cls) -> List[str]: + """ + Get a list of all scopes. + :return: A list of EScope objects + """ + return ['S1', 'S2', 'S1S2', 'S3', 'S1S2S3'] + @classmethod def get_result_scopes(cls) -> List['EScope']: """ diff --git a/test/inputs/json/test_project_companies.json b/test/inputs/json/test_project_companies.json new file mode 100644 index 00000000..d89d623e --- /dev/null +++ b/test/inputs/json/test_project_companies.json @@ -0,0 +1,8234 @@ +[ + { + "company_name": "Company AG", + "company_id": "US0079031078", + "region": "North America", + "sector": "Electricity Utilities", + "target_probability": 0.428571428571428, + "historic_data": { + "productions": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": null + }, + { + "year": 2011, + "value": null + }, + { + "year": 2012, + "value": null + }, + { + "year": 2013, + "value": null + }, + { + "year": 2014, + "value": 1682769059.4097404 + }, + { + "year": 2015, + "value": 1149435381.0097404 + }, + { + "year": 2016, + "value": 1351884837.0097404 + }, + { + "year": 2017, + "value": 870361875.4897404 + }, + { + "year": 2018, + "value": 388838913.9697404 + }, + { + "year": 2019, + "value": 377380291.0897404 + }, + { + "year": 2020, + "value": 377380291.0897404 + }, + { + "year": 2021, + "value": 377380291.0897404 + } + ], + "emissions": { + "S1": [ + { + "year": 2009, + "value": 74121549.8360392 + }, + { + "year": 2010, + "value": 77200005.8360392 + }, + { + "year": 2011, + "value": 74010717.8360392 + }, + { + "year": 2012, + "value": 78912218.8360392 + }, + { + "year": 2013, + "value": 75863005.8360392 + }, + { + "year": 2014, + "value": 79630005.8360392 + }, + { + "year": 2015, + "value": 70339005.8360392 + }, + { + "year": 2016, + "value": 70457005.8360392 + }, + { + "year": 2017, + "value": 64527005.8360392 + }, + { + "year": 2018, + "value": 54154005.8360392 + }, + { + "year": 2019, + "value": 49092005.8360392 + }, + { + "year": 2020, + "value": 49092005.8360392 + }, + { + "year": 2021, + "value": 49092005.8360392 + } + ], + "S2": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": null + }, + { + "year": 2011, + "value": null + }, + { + "year": 2012, + "value": 414929.856039191 + }, + { + "year": 2013, + "value": 90005.8360391907 + }, + { + "year": 2014, + "value": 290005.836039191 + }, + { + "year": 2015, + "value": 367805.836039191 + }, + { + "year": 2016, + "value": 306005.836039191 + }, + { + "year": 2017, + "value": 226005.836039191 + }, + { + "year": 2018, + "value": 360005.836039191 + }, + { + "year": 2019, + "value": 359005.836039191 + }, + { + "year": 2020, + "value": 359005.836039191 + }, + { + "year": 2021, + "value": 359005.836039191 + } + ], + "S1S2": [], + "S3": [], + "S1S2S3": [] + }, + "emission_intensities": { + "S1": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": null + }, + { + "year": 2011, + "value": null + }, + { + "year": 2012, + "value": null + }, + { + "year": 2013, + "value": null + }, + { + "year": 2014, + "value": 0.6132777815614572 + }, + { + "year": 2015, + "value": 0.793079394192882 + }, + { + "year": 2016, + "value": 0.6754442173157448 + }, + { + "year": 2017, + "value": 0.9608302238244408 + }, + { + "year": 2018, + "value": 1.8049528748804293 + }, + { + "year": 2019, + "value": 1.6859184505842997 + }, + { + "year": 2020, + "value": 1.6859184505842997 + }, + { + "year": 2021, + "value": 1.6859184505842997 + } + ], + "S2": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": null + }, + { + "year": 2011, + "value": null + }, + { + "year": 2012, + "value": null + }, + { + "year": 2013, + "value": null + }, + { + "year": 2014, + "value": 0.002233506501709902 + }, + { + "year": 2015, + "value": 0.00414704794529682 + }, + { + "year": 2016, + "value": 0.0029335602608281442 + }, + { + "year": 2017, + "value": 0.003365307830630542 + }, + { + "year": 2018, + "value": 0.011998993586920128 + }, + { + "year": 2019, + "value": 0.0123289841704041 + }, + { + "year": 2020, + "value": 0.0123289841704041 + }, + { + "year": 2021, + "value": 0.0123289841704041 + } + ], + "S1S2": [], + "S3": [], + "S1S2S3": [] + } + } + }, + { + "company_name": "Company AH", + "company_id": "US00724F1012", + "region": "North America", + "sector": "Electricity Utilities", + "target_probability": 0.4285714285714285, + "historic_data": { + "productions": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": 2143661765.3714125 + }, + { + "year": 2011, + "value": 2114928159.0914125 + }, + { + "year": 2012, + "value": 2086194552.8114123 + }, + { + "year": 2013, + "value": 2057460946.5314126 + }, + { + "year": 2014, + "value": 2028727340.2514122 + }, + { + "year": 2015, + "value": 1885882971.9314125 + }, + { + "year": 2016, + "value": 1661622976.4114125 + }, + { + "year": 2017, + "value": 2488147559.6114125 + }, + { + "year": 2018, + "value": 2457602018.9714127 + }, + { + "year": 2019, + "value": 2156173206.8114123 + }, + { + "year": 2020, + "value": 2156173206.8114123 + }, + { + "year": 2021, + "value": 2156173206.8114123 + } + ], + "emissions": { + "S1": [], + "S2": [], + "S1S2": [], + "S3": [], + "S1S2S3": [] + }, + "emission_intensities": { + "S1": [], + "S2": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": 9.020587159252296e-09 + }, + { + "year": 2011, + "value": 9.143141676640597e-09 + }, + { + "year": 2012, + "value": 9.269072133483565e-09 + }, + { + "year": 2013, + "value": 0.016324063782454407 + }, + { + "year": 2014, + "value": 0.033110525388179275 + }, + { + "year": 2015, + "value": 0.0534276696850902 + }, + { + "year": 2016, + "value": 0.08085133557988561 + }, + { + "year": 2017, + "value": 0.06749219539186596 + }, + { + "year": 2018, + "value": 0.08300080315789345 + }, + { + "year": 2019, + "value": 0.08723928160449504 + }, + { + "year": 2020, + "value": 0.08723928160449504 + }, + { + "year": 2021, + "value": 0.08723928160449504 + } + ], + "S1S2": [], + "S3": [], + "S1S2S3": [] + } + } + }, + { + "company_name": "Company AI", + "company_id": "FR0000125338", + "region": "Europe", + "sector": "Electricity Utilities", + "target_probability": 0.4285714285714285, + "historic_data": { + "emission_intensities": { + "S1": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": 0.4605612425432028 + }, + { + "year": 2011, + "value": 0.47676992001722285 + }, + { + "year": 2012, + "value": 0.4935410421590952 + }, + { + "year": 2013, + "value": 0.4271137111711944 + }, + { + "year": 2014, + "value": 0.4050475894153404 + }, + { + "year": 2015, + "value": 1.7660044449376848 + }, + { + "year": 2016, + "value": 0.12641248982232864 + }, + { + "year": 2017, + "value": 0.11422094242724208 + }, + { + "year": 2018, + "value": 0.12432145953306709 + }, + { + "year": 2019, + "value": 0.14432694163463483 + }, + { + "year": 2020, + "value": 0.11410264669076498 + }, + { + "year": 2021, + "value": 0.11410264669076498 + } + ], + "S2": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": 0.019750986012689604 + }, + { + "year": 2011, + "value": 0.019542782620390428 + }, + { + "year": 2012, + "value": 0.016717335291559405 + }, + { + "year": 2013, + "value": 0.012755111704326829 + }, + { + "year": 2014, + "value": 0.016135716380506274 + }, + { + "year": 2015, + "value": 0.0816777616053006 + }, + { + "year": 2016, + "value": 0.07909610646488868 + }, + { + "year": 2017, + "value": 0.08497232976008089 + }, + { + "year": 2018, + "value": 0.078447410507817 + }, + { + "year": 2019, + "value": 0.08024699005813475 + }, + { + "year": 2020, + "value": 0.14391033829225056 + }, + { + "year": 2021, + "value": 0.14391033829225056 + } + ], + "S1S2": [], + "S3": [], + "S1S2S3": [] + } + } + }, + { + "company_name": "Company AJ", + "company_id": "US17275R1023", + "region": "Europe", + "sector": "Electricity Utilities", + "target_probability": 0.4285714285714285, + "historic_data": { + "productions": [ + { + "year": 2009, + "value": 8015760033.846192 + }, + { + "year": 2010, + "value": 8169984033.846192 + }, + { + "year": 2011, + "value": 8141472033.846192 + }, + { + "year": 2012, + "value": 8328096033.846192 + }, + { + "year": 2013, + "value": 8474544033.846192 + }, + { + "year": 2014, + "value": 8080560033.846192 + }, + { + "year": 2015, + "value": 8026128033.846192 + }, + { + "year": 2016, + "value": 364176033.84621 + }, + { + "year": 2017, + "value": 381024033.84621 + }, + { + "year": 2018, + "value": 383616033.84621 + }, + { + "year": 2019, + "value": 360288033.84621 + }, + { + "year": 2020, + "value": 360288033.84621 + }, + { + "year": 2021, + "value": 360288033.84621 + } + ], + "emissions": { + "S1": [ + { + "year": 2009, + "value": 78192009.4017252 + }, + { + "year": 2010, + "value": 80575879.4017252 + }, + { + "year": 2011, + "value": 70935799.4017252 + }, + { + "year": 2012, + "value": 80283565.4017252 + }, + { + "year": 2013, + "value": 73222380.0683918 + }, + { + "year": 2014, + "value": 66161194.7350585 + }, + { + "year": 2015, + "value": 59100009.4017252 + }, + { + "year": 2016, + "value": 47700009.4017252 + }, + { + "year": 2017, + "value": 51300009.4017252 + }, + { + "year": 2018, + "value": 35700009.4017252 + }, + { + "year": 2019, + "value": 33100009.4017252 + }, + { + "year": 2020, + "value": 33100009.4017252 + }, + { + "year": 2021, + "value": 33100009.4017252 + } + ], + "S2": [ + { + "year": 2009, + "value": 480089.401725152 + }, + { + "year": 2010, + "value": 670709.401725152 + }, + { + "year": 2011, + "value": 81181.4017251516 + }, + { + "year": 2012, + "value": 74013.4017251516 + }, + { + "year": 2013, + "value": 159212.601725152 + }, + { + "year": 2014, + "value": 244411.801725152 + }, + { + "year": 2015, + "value": 329611.001725152 + }, + { + "year": 2016, + "value": 414810.201725152 + }, + { + "year": 2017, + "value": 500009.401725152 + }, + { + "year": 2018, + "value": 470009.401725152 + }, + { + "year": 2019, + "value": 290009.401725152 + }, + { + "year": 2020, + "value": 290009.401725152 + }, + { + "year": 2021, + "value": 290009.401725152 + } + ], + "S1S2": [], + "S3": [], + "S1S2S3": [] + }, + "emission_intensities": { + "S1": [ + { + "year": 2009, + "value": 0.12642200334933337 + }, + { + "year": 2010, + "value": 0.12781706704936452 + }, + { + "year": 2011, + "value": 0.1129191326119494 + }, + { + "year": 2012, + "value": 0.12493551988086661 + }, + { + "year": 2013, + "value": 0.11197794735579024 + }, + { + "year": 2014, + "value": 0.10611258132788423 + }, + { + "year": 2015, + "value": 0.09543033933877008 + }, + { + "year": 2016, + "value": 1.6975090736130565 + }, + { + "year": 2017, + "value": 1.7448981239716346 + }, + { + "year": 2018, + "value": 1.2060812922950988 + }, + { + "year": 2019, + "value": 1.1906477083539972 + }, + { + "year": 2020, + "value": 1.1906477083539972 + }, + { + "year": 2021, + "value": 1.1906477083539972 + } + ], + "S2": [ + { + "year": 2009, + "value": 0.0007762156826159988 + }, + { + "year": 2010, + "value": 0.001063942574471082 + }, + { + "year": 2011, + "value": 0.000129228591830085 + }, + { + "year": 2012, + "value": 0.0001151780289828102 + }, + { + "year": 2013, + "value": 0.00024348157377164316 + }, + { + "year": 2014, + "value": 0.0003919996803551076 + }, + { + "year": 2015, + "value": 0.0005322315522932028 + }, + { + "year": 2016, + "value": 0.01476192751505496 + }, + { + "year": 2017, + "value": 0.017007120996922403 + }, + { + "year": 2018, + "value": 0.01587869460326034 + }, + { + "year": 2019, + "value": 0.010431991887807995 + }, + { + "year": 2020, + "value": 0.010431991887807995 + }, + { + "year": 2021, + "value": 0.010431991887807995 + } + ], + "S1S2": [], + "S3": [], + "S1S2S3": [] + } + } + }, + { + "company_name": "Company AK", + "company_id": "CH0198251305", + "region": "Europe", + "sector": "Electricity Utilities", + "target_probability": 0.4285714285714285, + "historic_data": { + "productions": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": 3760992023.3008924 + }, + { + "year": 2011, + "value": 3808944023.3008924 + }, + { + "year": 2012, + "value": 3833568023.3008924 + }, + { + "year": 2013, + "value": 3708452183.3008924 + }, + { + "year": 2014, + "value": 3668988983.3008924 + }, + { + "year": 2015, + "value": 3680795543.3008924 + }, + { + "year": 2016, + "value": 3393083543.3008957 + }, + { + "year": 2017, + "value": 3238392983.3008957 + }, + { + "year": 2018, + "value": 3244393463.3008957 + }, + { + "year": 2019, + "value": 2969511863.3008957 + }, + { + "year": 2020, + "value": 2684119703.3008957 + }, + { + "year": 2021, + "value": 2684119703.3008957 + } + ], + "emissions": { + "S1": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": 116400006.472471 + }, + { + "year": 2011, + "value": 123540195.472471 + }, + { + "year": 2012, + "value": 127800006.472471 + }, + { + "year": 2013, + "value": 115550006.472471 + }, + { + "year": 2014, + "value": 115480006.472471 + }, + { + "year": 2015, + "value": 119510006.472471 + }, + { + "year": 2016, + "value": 106730006.472471 + }, + { + "year": 2017, + "value": 105960006.472471 + }, + { + "year": 2018, + "value": 95230006.4724713 + }, + { + "year": 2019, + "value": 69980006.4724713 + }, + { + "year": 2020, + "value": 45260006.4724712 + }, + { + "year": 2021, + "value": 45260006.4724712 + } + ], + "S2": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": 245006.472471246 + }, + { + "year": 2011, + "value": 331647.472471246 + }, + { + "year": 2012, + "value": 370006.472471246 + }, + { + "year": 2013, + "value": 786006.472471246 + }, + { + "year": 2014, + "value": 636006.472471246 + }, + { + "year": 2015, + "value": 654006.472471246 + }, + { + "year": 2016, + "value": 1400006.47247125 + }, + { + "year": 2017, + "value": 5000006.47247125 + }, + { + "year": 2018, + "value": 5080006.47247125 + }, + { + "year": 2019, + "value": 5370006.47247125 + }, + { + "year": 2020, + "value": 5000006.47247125 + }, + { + "year": 2021, + "value": 5000006.47247125 + } + ], + "S1S2": [], + "S3": [], + "S1S2S3": [] + }, + "emission_intensities": { + "S1": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": 0.401102707620006 + }, + { + "year": 2011, + "value": 0.4203477193491828 + }, + { + "year": 2012, + "value": 0.43204870079677804 + }, + { + "year": 2013, + "value": 0.4038148558653588 + }, + { + "year": 2014, + "value": 0.40791097784566077 + }, + { + "year": 2015, + "value": 0.42079209933357004 + }, + { + "year": 2016, + "value": 0.4076589527582292 + }, + { + "year": 2017, + "value": 0.4240503518147712 + }, + { + "year": 2018, + "value": 0.380404195065648 + }, + { + "year": 2019, + "value": 0.3054174981052529 + }, + { + "year": 2020, + "value": 0.21853335496247459 + }, + { + "year": 2021, + "value": 0.21853335496247459 + } + ], + "S2": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": 0.0008442676462899023 + }, + { + "year": 2011, + "value": 0.001128436442471657 + }, + { + "year": 2012, + "value": 0.0012508670392910783 + }, + { + "year": 2013, + "value": 0.0027468721126020315 + }, + { + "year": 2014, + "value": 0.00224657090025156 + }, + { + "year": 2015, + "value": 0.0023027423782485457 + }, + { + "year": 2016, + "value": 0.005347373164168032 + }, + { + "year": 2017, + "value": 0.020009950681518757 + }, + { + "year": 2018, + "value": 0.020292509101606883 + }, + { + "year": 2019, + "value": 0.023436607458394043 + }, + { + "year": 2020, + "value": 0.024142024591353756 + }, + { + "year": 2021, + "value": 0.024142024591353756 + } + ], + "S1S2": [], + "S3": [], + "S1S2S3": [] + } + } + }, + { + "company_name": "Company AL", + "company_id": "US1266501006", + "region": "Europe", + "sector": "Electricity Utilities", + "target_probability": 0.4285714285714285, + "historic_data": { + "productions": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": 4341600001.354788 + }, + { + "year": 2011, + "value": 6026400001.354788 + }, + { + "year": 2012, + "value": 6039360001.354788 + }, + { + "year": 2013, + "value": 6207840001.354788 + }, + { + "year": 2014, + "value": 6091200001.354788 + }, + { + "year": 2015, + "value": 6363360001.354788 + }, + { + "year": 2016, + "value": 3563902801.354802 + }, + { + "year": 2017, + "value": 764445601.3548025 + }, + { + "year": 2018, + "value": 739614241.3548025 + }, + { + "year": 2019, + "value": 797765761.3548025 + }, + { + "year": 2020, + "value": 718528321.3548025 + }, + { + "year": 2021, + "value": 718528321.3548025 + } + ], + "emissions": { + "S1": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": 109324454.376334 + }, + { + "year": 2011, + "value": 156899254.376334 + }, + { + "year": 2012, + "value": 154230874.376334 + }, + { + "year": 2013, + "value": 141984778.376334 + }, + { + "year": 2014, + "value": 131154736.376334 + }, + { + "year": 2015, + "value": 133757296.376334 + }, + { + "year": 2016, + "value": 120150105.376334 + }, + { + "year": 2017, + "value": 89756230.3763341 + }, + { + "year": 2018, + "value": 57205670.3763341 + }, + { + "year": 2019, + "value": 46188978.3763341 + }, + { + "year": 2020, + "value": 38589016.3763341 + }, + { + "year": 2021, + "value": 38589016.3763341 + } + ], + "S2": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": 3250751.37633413 + }, + { + "year": 2011, + "value": 3357343.37633413 + }, + { + "year": 2012, + "value": 3712790.37633413 + }, + { + "year": 2013, + "value": 3748376.12633413 + }, + { + "year": 2014, + "value": 3783961.87633413 + }, + { + "year": 2015, + "value": 3819547.62633413 + }, + { + "year": 2016, + "value": 3855133.37633413 + }, + { + "year": 2017, + "value": 3576861.37633413 + }, + { + "year": 2018, + "value": 2912586.37633413 + }, + { + "year": 2019, + "value": 2534464.37633413 + }, + { + "year": 2020, + "value": 2330625.37633413 + }, + { + "year": 2021, + "value": 2330625.37633413 + } + ], + "S1S2": [], + "S3": [], + "S1S2S3": [] + }, + "emission_intensities": { + "S1": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": 0.3263416547528934 + }, + { + "year": 2011, + "value": 0.33741775127109996 + }, + { + "year": 2012, + "value": 0.3309675415058707 + }, + { + "year": 2013, + "value": 0.2964191614725413 + }, + { + "year": 2014, + "value": 0.2790526305258781 + }, + { + "year": 2015, + "value": 0.27241811883473793 + }, + { + "year": 2016, + "value": 0.4369213899675792 + }, + { + "year": 2017, + "value": 1.521678905098956 + }, + { + "year": 2018, + "value": 1.0023948250634593 + }, + { + "year": 2019, + "value": 0.750357045582786 + }, + { + "year": 2020, + "value": 0.6960249684999396 + }, + { + "year": 2021, + "value": 0.6960249684999396 + } + ], + "S2": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": 0.009703735448715611 + }, + { + "year": 2011, + "value": 0.007220093280815844 + }, + { + "year": 2012, + "value": 0.007967361320818128 + }, + { + "year": 2013, + "value": 0.007825419886254877 + }, + { + "year": 2014, + "value": 0.008050982713813836 + }, + { + "year": 2015, + "value": 0.0077791194002462755 + }, + { + "year": 2016, + "value": 0.014019049155408301 + }, + { + "year": 2017, + "value": 0.06064018597940113 + }, + { + "year": 2018, + "value": 0.05103622581434676 + }, + { + "year": 2019, + "value": 0.04117331165166648 + }, + { + "year": 2020, + "value": 0.04203718069224924 + }, + { + "year": 2021, + "value": 0.04203718069224924 + } + ], + "S1S2": [], + "S3": [], + "S1S2S3": [] + } + } + }, + { + "company_name": "Company AM", + "company_id": "FR0000120644", + "region": "Europe", + "sector": "Electricity Utilities", + "target_probability": 0.4285714285714285, + "historic_data": { + "productions": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": 1990487529.3093767 + }, + { + "year": 2011, + "value": 1881092169.3093767 + }, + { + "year": 2012, + "value": 1746463689.3093767 + }, + { + "year": 2013, + "value": 1768197609.3093767 + }, + { + "year": 2014, + "value": 1800040329.3093767 + }, + { + "year": 2015, + "value": 1741487049.3093767 + }, + { + "year": 2016, + "value": 1846359369.3093767 + }, + { + "year": 2017, + "value": 1782635049.3093767 + }, + { + "year": 2018, + "value": 1492136649.3093767 + }, + { + "year": 2019, + "value": 1480680009.3093767 + }, + { + "year": 2020, + "value": 1600080489.3093767 + }, + { + "year": 2021, + "value": 1600080489.3093767 + } + ], + "emissions": { + "S1": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": 39499002.5859383 + }, + { + "year": 2011, + "value": 36193002.5859383 + }, + { + "year": 2012, + "value": 35461094.5859383 + }, + { + "year": 2013, + "value": 31838172.5859383 + }, + { + "year": 2014, + "value": 30202558.5859383 + }, + { + "year": 2015, + "value": 31817606.5859383 + }, + { + "year": 2016, + "value": 26625135.5859383 + }, + { + "year": 2017, + "value": 15129771.5859383 + }, + { + "year": 2018, + "value": 13457443.5859383 + }, + { + "year": 2019, + "value": 12966980.5859383 + }, + { + "year": 2020, + "value": 13136322.5859383 + }, + { + "year": 2021, + "value": 13136322.5859383 + } + ], + "S2": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": 6236002.58593829 + }, + { + "year": 2011, + "value": 5189002.58593829 + }, + { + "year": 2012, + "value": 7189303.58593829 + }, + { + "year": 2013, + "value": 4181124.58593829 + }, + { + "year": 2014, + "value": 1547095.58593829 + }, + { + "year": 2015, + "value": 970947.585938292 + }, + { + "year": 2016, + "value": 4503672.58593829 + }, + { + "year": 2017, + "value": 5010565.58593829 + }, + { + "year": 2018, + "value": 2543866.58593829 + }, + { + "year": 2019, + "value": 2081746.58593829 + }, + { + "year": 2020, + "value": 2001731.58593829 + }, + { + "year": 2021, + "value": 2001731.58593829 + } + ], + "S1S2": [], + "S3": [], + "S1S2S3": [] + }, + "emission_intensities": { + "S1": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": 0.2571767298091901 + }, + { + "year": 2011, + "value": 0.2493558376174469 + }, + { + "year": 2012, + "value": 0.26314648775520477 + }, + { + "year": 2013, + "value": 0.2333578071485585 + }, + { + "year": 2014, + "value": 0.21745354973459868 + }, + { + "year": 2015, + "value": 0.23678394939387504 + }, + { + "year": 2016, + "value": 0.18688764653807832 + }, + { + "year": 2017, + "value": 0.10999550347095743 + }, + { + "year": 2018, + "value": 0.11688505134867072 + }, + { + "year": 2019, + "value": 0.11349654708456793 + }, + { + "year": 2020, + "value": 0.1063988604643518 + }, + { + "year": 2021, + "value": 0.1063988604643518 + } + ], + "S2": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": 0.0406024113809952 + }, + { + "year": 2011, + "value": 0.03575022777243828 + }, + { + "year": 2012, + "value": 0.05334973469193888 + }, + { + "year": 2013, + "value": 0.030645542301646213 + }, + { + "year": 2014, + "value": 0.011138838651161208 + }, + { + "year": 2015, + "value": 0.007225710187595436 + }, + { + "year": 2016, + "value": 0.03161226231683834 + }, + { + "year": 2017, + "value": 0.036427495363629124 + }, + { + "year": 2018, + "value": 0.02209483358579754 + }, + { + "year": 2019, + "value": 0.018220976567613723 + }, + { + "year": 2020, + "value": 0.01621321022729142 + }, + { + "year": 2021, + "value": 0.01621321022729142 + } + ], + "S1S2": [], + "S3": [], + "S1S2S3": [] + } + } + }, + { + "company_name": "Company AN", + "company_id": "US24703L1035", + "region": "Asia", + "sector": "Electricity Utilities", + "target_probability": 0.4285714285714285, + "historic_data": { + "productions": [ + { + "year": 2009, + "value": 5271868803.094344 + }, + { + "year": 2010, + "value": 5642576643.094344 + }, + { + "year": 2011, + "value": 5746580643.094344 + }, + { + "year": 2012, + "value": 5808127683.094344 + }, + { + "year": 2013, + "value": 5823226083.094344 + }, + { + "year": 2014, + "value": 5740165443.094344 + }, + { + "year": 2015, + "value": 5610643203.094344 + }, + { + "year": 2016, + "value": 5654577603.094344 + }, + { + "year": 2017, + "value": 5527232643.094344 + }, + { + "year": 2018, + "value": 5421517923.094344 + }, + { + "year": 2019, + "value": 5301547203.094344 + }, + { + "year": 2020, + "value": 5301547203.094344 + }, + { + "year": 2021, + "value": 5301547203.094344 + } + ], + "emissions": { + "S1": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": null + }, + { + "year": 2011, + "value": null + }, + { + "year": 2012, + "value": 1174220.85954061 + }, + { + "year": 2013, + "value": 1310000.85954061 + }, + { + "year": 2014, + "value": 1280000.85954061 + }, + { + "year": 2015, + "value": 1150000.85954061 + }, + { + "year": 2016, + "value": 1230000.85954061 + }, + { + "year": 2017, + "value": 1290000.85954061 + }, + { + "year": 2018, + "value": 1170000.85954061 + }, + { + "year": 2019, + "value": 910000.859540609 + }, + { + "year": 2020, + "value": 910000.859540609 + }, + { + "year": 2021, + "value": 910000.859540609 + } + ], + "S2": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": null + }, + { + "year": 2011, + "value": null + }, + { + "year": 2012, + "value": 132861.859540609 + }, + { + "year": 2013, + "value": 120000.859540609 + }, + { + "year": 2014, + "value": 140000.859540609 + }, + { + "year": 2015, + "value": 160000.859540609 + }, + { + "year": 2016, + "value": 170000.859540609 + }, + { + "year": 2017, + "value": 180000.859540609 + }, + { + "year": 2018, + "value": 190000.859540609 + }, + { + "year": 2019, + "value": 190000.859540609 + }, + { + "year": 2020, + "value": 190000.859540609 + }, + { + "year": 2021, + "value": 190000.859540609 + } + ], + "S1S2": [], + "S3": [], + "S1S2S3": [] + }, + "emission_intensities": { + "S1": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": null + }, + { + "year": 2011, + "value": null + }, + { + "year": 2012, + "value": 0.0026201046481710228 + }, + { + "year": 2013, + "value": 0.0029154992262681854 + }, + { + "year": 2014, + "value": 0.002889953487247187 + }, + { + "year": 2015, + "value": 0.0026563819156111223 + }, + { + "year": 2016, + "value": 0.0028190984824265257 + }, + { + "year": 2017, + "value": 0.003024734477303765 + }, + { + "year": 2018, + "value": 0.0027968571449436134 + }, + { + "year": 2019, + "value": 0.002224560243991176 + }, + { + "year": 2020, + "value": 0.002224560243991176 + }, + { + "year": 2021, + "value": 0.002224560243991176 + } + ], + "S2": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": null + }, + { + "year": 2011, + "value": null + }, + { + "year": 2012, + "value": 0.0002964620947742204 + }, + { + "year": 2013, + "value": 0.000267070369148347 + }, + { + "year": 2014, + "value": 0.00031609039105817065 + }, + { + "year": 2015, + "value": 0.000369585280080306 + }, + { + "year": 2016, + "value": 0.0003896331953142924 + }, + { + "year": 2017, + "value": 0.00042205770776825637 + }, + { + "year": 2018, + "value": 0.000454192197568326 + }, + { + "year": 2019, + "value": 0.0004644702848649636 + }, + { + "year": 2020, + "value": 0.0004644702848649636 + }, + { + "year": 2021, + "value": 0.0004644702848649636 + } + ], + "S1S2": [], + "S3": [], + "S1S2S3": [] + } + } + }, + { + "company_name": "Company AO", + "company_id": "TW0002308004", + "region": "Europe", + "sector": "Electricity Utilities", + "target_probability": 0.4285714285714285, + "historic_data": { + "productions": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": null + }, + { + "year": 2011, + "value": null + }, + { + "year": 2012, + "value": 76114085.42779164 + }, + { + "year": 2013, + "value": 76114085.42779164 + }, + { + "year": 2014, + "value": 76114085.42779164 + }, + { + "year": 2015, + "value": 76114085.42779164 + }, + { + "year": 2016, + "value": 76114085.42779164 + }, + { + "year": 2017, + "value": 76114085.42779164 + }, + { + "year": 2018, + "value": 76114085.42779164 + }, + { + "year": 2019, + "value": 76114085.42779164 + }, + { + "year": 2020, + "value": 76114085.42779164 + }, + { + "year": 2021, + "value": 76114085.42779164 + } + ], + "emissions": { + "S1": [ + { + "year": 2009, + "value": 11074001.5077199 + }, + { + "year": 2010, + "value": 8500001.50771989 + }, + { + "year": 2011, + "value": 9328837.50771989 + }, + { + "year": 2012, + "value": 8328346.50771989 + }, + { + "year": 2013, + "value": 7914001.50771989 + }, + { + "year": 2014, + "value": 7250001.50771989 + }, + { + "year": 2015, + "value": 7020001.50771989 + }, + { + "year": 2016, + "value": 7038001.50771989 + }, + { + "year": 2017, + "value": 5800001.50771989 + }, + { + "year": 2018, + "value": 4000001.50771989 + }, + { + "year": 2019, + "value": 4500001.50771989 + }, + { + "year": 2020, + "value": 4500001.50771989 + }, + { + "year": 2021, + "value": 4500001.50771989 + } + ], + "S2": [ + { + "year": 2009, + "value": 266001.507719888 + }, + { + "year": 2010, + "value": 350001.507719888 + }, + { + "year": 2011, + "value": 329353.507719888 + }, + { + "year": 2012, + "value": 319181.507719888 + }, + { + "year": 2013, + "value": 250001.507719888 + }, + { + "year": 2014, + "value": 220001.507719888 + }, + { + "year": 2015, + "value": 230001.507719888 + }, + { + "year": 2016, + "value": 247001.507719888 + }, + { + "year": 2017, + "value": 3400001.50771989 + }, + { + "year": 2018, + "value": 2900001.50771989 + }, + { + "year": 2019, + "value": 2500001.50771989 + }, + { + "year": 2020, + "value": 2500001.50771989 + }, + { + "year": 2021, + "value": 2500001.50771989 + } + ], + "S1S2": [], + "S3": [], + "S1S2S3": [] + }, + "emission_intensities": { + "S1": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": null + }, + { + "year": 2011, + "value": null + }, + { + "year": 2012, + "value": 1.418073542280774 + }, + { + "year": 2013, + "value": 1.3475227214987966 + }, + { + "year": 2014, + "value": 1.2344629645348417 + }, + { + "year": 2015, + "value": 1.195300699321421 + }, + { + "year": 2016, + "value": 1.1983655722511666 + }, + { + "year": 2017, + "value": 0.9875704229719812 + }, + { + "year": 2018, + "value": 0.6810831299973996 + }, + { + "year": 2019, + "value": 0.7662184891570044 + }, + { + "year": 2020, + "value": 0.7662184891570044 + }, + { + "year": 2021, + "value": 0.7662184891570044 + } + ], + "S2": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": null + }, + { + "year": 2011, + "value": null + }, + { + "year": 2012, + "value": 0.05434726459367484 + }, + { + "year": 2013, + "value": 0.04256793630035172 + }, + { + "year": 2014, + "value": 0.037459814750775366 + }, + { + "year": 2015, + "value": 0.03916252193396724 + }, + { + "year": 2016, + "value": 0.04205712414539412 + }, + { + "year": 2017, + "value": 0.5789206990058725 + }, + { + "year": 2018, + "value": 0.493785339846264 + }, + { + "year": 2019, + "value": 0.4256770525185816 + }, + { + "year": 2020, + "value": 0.4256770525185816 + }, + { + "year": 2021, + "value": 0.4256770525185816 + } + ], + "S1S2": [], + "S3": [], + "S1S2S3": [] + } + } + }, + { + "company_name": "Company AP", + "company_id": "FR0000120321", + "region": "Asia", + "sector": "Electricity Utilities", + "target_probability": 0.4285714285714285, + "historic_data": { + "productions": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": 2836166403.246948 + }, + { + "year": 2011, + "value": 2858198403.246948 + }, + { + "year": 2012, + "value": 2878027203.246948 + }, + { + "year": 2013, + "value": 3007082883.246948 + }, + { + "year": 2014, + "value": 3023360643.246948 + }, + { + "year": 2015, + "value": 3126729603.246948 + }, + { + "year": 2016, + "value": 3136060803.246948 + }, + { + "year": 2017, + "value": 3244017603.246948 + }, + { + "year": 2018, + "value": 3444768003.246948 + }, + { + "year": 2019, + "value": 3556872003.246948 + }, + { + "year": 2020, + "value": 3364675203.246948 + }, + { + "year": 2021, + "value": 3364675203.246948 + } + ], + "emissions": { + "S1": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": 185584163.90193 + }, + { + "year": 2011, + "value": 188513981.90193 + }, + { + "year": 2012, + "value": 189986958.90193 + }, + { + "year": 2013, + "value": 200994691.90193 + }, + { + "year": 2014, + "value": 201036494.90193 + }, + { + "year": 2015, + "value": 213050961.90193 + }, + { + "year": 2016, + "value": 231671486.101929 + }, + { + "year": 2017, + "value": 221222495.90193 + }, + { + "year": 2018, + "value": 231986764.90193 + }, + { + "year": 2019, + "value": 240369173.90193 + }, + { + "year": 2020, + "value": 226132940.90193 + }, + { + "year": 2021, + "value": 226132940.90193 + } + ], + "S2": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": null + }, + { + "year": 2011, + "value": null + }, + { + "year": 2012, + "value": 0.901929562977962 + }, + { + "year": 2013, + "value": 0.901929562977962 + }, + { + "year": 2014, + "value": 0.901929562977962 + }, + { + "year": 2015, + "value": 6235.05442956298 + }, + { + "year": 2016, + "value": 12469.206929563 + }, + { + "year": 2017, + "value": 18703.359429563 + }, + { + "year": 2018, + "value": 24937.511929563 + }, + { + "year": 2019, + "value": 23268.401929563 + }, + { + "year": 2020, + "value": 15845.901929563 + }, + { + "year": 2021, + "value": 15845.901929563 + } + ], + "S1S2": [], + "S3": [], + "S1S2S3": [] + }, + "emission_intensities": { + "S1": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": 0.848035842119658 + }, + { + "year": 2011, + "value": 0.8547836296716036 + }, + { + "year": 2012, + "value": 0.8555273503291261 + }, + { + "year": 2013, + "value": 0.8662518820353672 + }, + { + "year": 2014, + "value": 0.8617671794294748 + }, + { + "year": 2015, + "value": 0.8830761903369287 + }, + { + "year": 2016, + "value": 0.95739931342287 + }, + { + "year": 2017, + "value": 0.8837940780652285 + }, + { + "year": 2018, + "value": 0.8727869250687168 + }, + { + "year": 2019, + "value": 0.8758213652122596 + }, + { + "year": 2020, + "value": 0.8710151016243313 + }, + { + "year": 2021, + "value": 0.8710151016243313 + } + ], + "S2": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": null + }, + { + "year": 2011, + "value": null + }, + { + "year": 2012, + "value": 4.061465132437621e-09 + }, + { + "year": 2013, + "value": 3.887158282638696e-09 + }, + { + "year": 2014, + "value": 3.866229840063312e-09 + }, + { + "year": 2015, + "value": 2.5843713931394353e-05 + }, + { + "year": 2016, + "value": 5.15299070859282e-05 + }, + { + "year": 2017, + "value": 7.472078387137044e-05 + }, + { + "year": 2018, + "value": 9.382058655401627e-05 + }, + { + "year": 2019, + "value": 8.478193444460569e-05 + }, + { + "year": 2020, + "value": 6.103498156641072e-05 + }, + { + "year": 2021, + "value": 6.103498156641072e-05 + } + ], + "S1S2": [], + "S3": [], + "S1S2S3": [] + } + } + }, + { + "company_name": "Company AQ", + "company_id": "CH0038863350", + "region": "Asia", + "sector": "Electricity Utilities", + "target_probability": 0.4285714285714285, + "historic_data": { + "productions": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": 125595364.15776384 + }, + { + "year": 2011, + "value": 127565284.15776384 + }, + { + "year": 2012, + "value": 138062884.15776384 + }, + { + "year": 2013, + "value": 203459044.15776384 + }, + { + "year": 2014, + "value": 222847204.15776384 + }, + { + "year": 2015, + "value": 258448324.15776387 + }, + { + "year": 2016, + "value": 260094244.15776387 + }, + { + "year": 2017, + "value": 263023204.15776387 + }, + { + "year": 2018, + "value": 279689764.1577639 + }, + { + "year": 2019, + "value": 262841764.15776387 + }, + { + "year": 2020, + "value": 236895844.15776384 + }, + { + "year": 2021, + "value": 236895844.15776384 + } + ], + "emissions": { + "S1": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": 1968704.15493443 + }, + { + "year": 2011, + "value": 2832949.15493443 + }, + { + "year": 2012, + "value": 12866001.1549344 + }, + { + "year": 2013, + "value": 13663001.1549344 + }, + { + "year": 2014, + "value": 14934001.1549344 + }, + { + "year": 2015, + "value": 16918001.1549344 + }, + { + "year": 2016, + "value": 16977001.1549344 + }, + { + "year": 2017, + "value": 17293001.1549344 + }, + { + "year": 2018, + "value": 18162001.1549344 + }, + { + "year": 2019, + "value": 17976001.1549344 + }, + { + "year": 2020, + "value": 16065001.1549344 + }, + { + "year": 2021, + "value": 16065001.1549344 + } + ], + "S2": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": 52966.1549344293 + }, + { + "year": 2011, + "value": 58302.1549344293 + }, + { + "year": 2012, + "value": 61001.1549344293 + }, + { + "year": 2013, + "value": 202001.154934429 + }, + { + "year": 2014, + "value": 130001.154934429 + }, + { + "year": 2015, + "value": 409001.154934429 + }, + { + "year": 2016, + "value": 1265001.15493443 + }, + { + "year": 2017, + "value": 1818001.15493443 + }, + { + "year": 2018, + "value": 2090001.15493443 + }, + { + "year": 2019, + "value": 2289001.15493443 + }, + { + "year": 2020, + "value": 2403001.15493443 + }, + { + "year": 2021, + "value": 2403001.15493443 + } + ], + "S1S2": [], + "S3": [], + "S1S2S3": [] + }, + "emission_intensities": { + "S1": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": 0.20314767204226442 + }, + { + "year": 2011, + "value": 0.28781357945742975 + }, + { + "year": 2012, + "value": 1.207734982396956 + }, + { + "year": 2013, + "value": 0.8703102666237157 + }, + { + "year": 2014, + "value": 0.8685083382555276 + }, + { + "year": 2015, + "value": 0.8483602889764117 + }, + { + "year": 2016, + "value": 0.84593158022556 + }, + { + "year": 2017, + "value": 0.852081836983182 + }, + { + "year": 2018, + "value": 0.841573647418788 + }, + { + "year": 2019, + "value": 0.8863468700054724 + }, + { + "year": 2020, + "value": 0.8788774480539012 + }, + { + "year": 2021, + "value": 0.8788774480539012 + } + ], + "S2": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": 0.00546549924476466 + }, + { + "year": 2011, + "value": 0.005923209695638932 + }, + { + "year": 2012, + "value": 0.0057261947899539594 + }, + { + "year": 2013, + "value": 0.012867134900723496 + }, + { + "year": 2014, + "value": 0.007560404333174592 + }, + { + "year": 2015, + "value": 0.020509535069434367 + }, + { + "year": 2016, + "value": 0.06303259428534648 + }, + { + "year": 2017, + "value": 0.0895787694602712 + }, + { + "year": 2018, + "value": 0.09684449858047572 + }, + { + "year": 2019, + "value": 0.1128643123478058 + }, + { + "year": 2020, + "value": 0.13146239470207932 + }, + { + "year": 2021, + "value": 0.13146239470207932 + } + ], + "S1S2": [], + "S3": [], + "S1S2S3": [] + } + } + }, + { + "company_name": "Company AR", + "company_id": "US8356993076", + "region": "Europe", + "sector": "Electricity Utilities", + "target_probability": 0.4285714285714285, + "historic_data": { + "productions": [ + { + "year": 2009, + "value": 697248015.4129393 + }, + { + "year": 2010, + "value": 683380815.4129393 + }, + { + "year": 2011, + "value": 732499215.4129393 + }, + { + "year": 2012, + "value": 739368015.4129393 + }, + { + "year": 2013, + "value": 739238415.4129393 + }, + { + "year": 2014, + "value": 710726415.4129393 + }, + { + "year": 2015, + "value": 720316815.4129393 + }, + { + "year": 2016, + "value": 695563215.4129393 + }, + { + "year": 2017, + "value": 841262415.4129393 + }, + { + "year": 2018, + "value": 1038312015.4129393 + }, + { + "year": 2019, + "value": 1038312015.4129393 + }, + { + "year": 2020, + "value": 1038312015.4129393 + }, + { + "year": 2021, + "value": 1038312015.4129393 + } + ], + "emissions": { + "S1": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": null + }, + { + "year": 2011, + "value": null + }, + { + "year": 2012, + "value": null + }, + { + "year": 2013, + "value": null + }, + { + "year": 2014, + "value": null + }, + { + "year": 2015, + "value": null + }, + { + "year": 2016, + "value": null + }, + { + "year": 2017, + "value": null + }, + { + "year": 2018, + "value": null + }, + { + "year": 2019, + "value": null + }, + { + "year": 2020, + "value": null + }, + { + "year": 2021, + "value": null + } + ], + "S2": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": null + }, + { + "year": 2011, + "value": null + }, + { + "year": 2012, + "value": null + }, + { + "year": 2013, + "value": null + }, + { + "year": 2014, + "value": null + }, + { + "year": 2015, + "value": null + }, + { + "year": 2016, + "value": null + }, + { + "year": 2017, + "value": null + }, + { + "year": 2018, + "value": null + }, + { + "year": 2019, + "value": null + }, + { + "year": 2020, + "value": null + }, + { + "year": 2021, + "value": null + } + ], + "S1S2": [], + "S3": [], + "S1S2S3": [] + }, + "emission_intensities": { + "S1": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": null + }, + { + "year": 2011, + "value": null + }, + { + "year": 2012, + "value": null + }, + { + "year": 2013, + "value": null + }, + { + "year": 2014, + "value": null + }, + { + "year": 2015, + "value": null + }, + { + "year": 2016, + "value": null + }, + { + "year": 2017, + "value": null + }, + { + "year": 2018, + "value": null + }, + { + "year": 2019, + "value": null + }, + { + "year": 2020, + "value": null + }, + { + "year": 2021, + "value": null + } + ], + "S2": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": null + }, + { + "year": 2011, + "value": null + }, + { + "year": 2012, + "value": null + }, + { + "year": 2013, + "value": null + }, + { + "year": 2014, + "value": null + }, + { + "year": 2015, + "value": null + }, + { + "year": 2016, + "value": null + }, + { + "year": 2017, + "value": null + }, + { + "year": 2018, + "value": null + }, + { + "year": 2019, + "value": null + }, + { + "year": 2020, + "value": null + }, + { + "year": 2021, + "value": null + } + ], + "S1S2": [], + "S3": [], + "S1S2S3": [] + } + } + }, + { + "company_name": "Company AS", + "company_id": "JP3401400001", + "region": "Asia", + "sector": "Electricity Utilities", + "target_probability": 0.4285714285714285, + "historic_data": { + "productions": [ + { + "year": 2009, + "value": 159563527.70578668 + }, + { + "year": 2010, + "value": 146979367.70578668 + }, + { + "year": 2011, + "value": 146435047.70578668 + }, + { + "year": 2012, + "value": 143026567.70578668 + }, + { + "year": 2013, + "value": 139618087.70578668 + }, + { + "year": 2014, + "value": 190050203.6009867 + }, + { + "year": 2015, + "value": 214535101.14178666 + }, + { + "year": 2016, + "value": 233145050.2433867 + }, + { + "year": 2017, + "value": 218105285.54578668 + }, + { + "year": 2018, + "value": 167479620.8129867 + }, + { + "year": 2019, + "value": 171690299.59138668 + }, + { + "year": 2020, + "value": 171690299.59138668 + }, + { + "year": 2021, + "value": 171690299.59138668 + } + ], + "emissions": { + "S1": [ + { + "year": 2009, + "value": 9150002.14049632 + }, + { + "year": 2010, + "value": 8650002.14049632 + }, + { + "year": 2011, + "value": 8631002.14049632 + }, + { + "year": 2012, + "value": 8960002.14049632 + }, + { + "year": 2013, + "value": 9296403.94049632 + }, + { + "year": 2014, + "value": 9632805.74049632 + }, + { + "year": 2015, + "value": 9969207.54049632 + }, + { + "year": 2016, + "value": 10305609.3404963 + }, + { + "year": 2017, + "value": 10642011.1404963 + }, + { + "year": 2018, + "value": 11403118.1404963 + }, + { + "year": 2019, + "value": 9681777.14049632 + }, + { + "year": 2020, + "value": 9681777.14049632 + }, + { + "year": 2021, + "value": 9681777.14049632 + } + ], + "S2": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": 2.14049631522688 + }, + { + "year": 2011, + "value": 2.14049631522688 + }, + { + "year": 2012, + "value": 2.14049631522688 + }, + { + "year": 2013, + "value": 310616.540496315 + }, + { + "year": 2014, + "value": 621230.940496315 + }, + { + "year": 2015, + "value": 931845.340496315 + }, + { + "year": 2016, + "value": 1242459.74049632 + }, + { + "year": 2017, + "value": 1553074.14049631 + }, + { + "year": 2018, + "value": 1239860.14049631 + }, + { + "year": 2019, + "value": 1203273.14049631 + }, + { + "year": 2020, + "value": 1203273.14049631 + }, + { + "year": 2021, + "value": 1203273.14049631 + } + ], + "S1S2": [], + "S3": [], + "S1S2S3": [] + }, + "emission_intensities": { + "S1": [ + { + "year": 2009, + "value": 0.7431775258785013 + }, + { + "year": 2010, + "value": 0.7627194856711764 + }, + { + "year": 2011, + "value": 0.7638730583512608 + }, + { + "year": 2012, + "value": 0.8118885155637708 + }, + { + "year": 2013, + "value": 0.8629354337148576 + }, + { + "year": 2014, + "value": 0.6568851810279456 + }, + { + "year": 2015, + "value": 0.6022367856691344 + }, + { + "year": 2016, + "value": 0.5728652481080088 + }, + { + "year": 2017, + "value": 0.6323572766047393 + }, + { + "year": 2018, + "value": 0.8824023507066155 + }, + { + "year": 2019, + "value": 0.7308265641067548 + }, + { + "year": 2020, + "value": 0.7308265641067548 + }, + { + "year": 2021, + "value": 0.7308265641067548 + } + ], + "S2": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": 1.8873963521784973e-07 + }, + { + "year": 2011, + "value": 1.894412074155671e-07 + }, + { + "year": 2012, + "value": 1.9395579919392828e-07 + }, + { + "year": 2013, + "value": 0.028832871377777763 + }, + { + "year": 2014, + "value": 0.042363295783338244 + }, + { + "year": 2015, + "value": 0.05629249269027864 + }, + { + "year": 2016, + "value": 0.0690654947210874 + }, + { + "year": 2017, + "value": 0.09228497516905357 + }, + { + "year": 2018, + "value": 0.0959435383411512 + }, + { + "year": 2019, + "value": 0.09082877680303489 + }, + { + "year": 2020, + "value": 0.09082877680303489 + }, + { + "year": 2021, + "value": 0.09082877680303489 + } + ], + "S1S2": [], + "S3": [], + "S1S2S3": [] + } + } + }, + { + "company_name": "Company AT", + "company_id": "US6541061031", + "region": "Europe", + "sector": "Electricity Utilities", + "target_probability": 0.4285714285714285, + "historic_data": { + "productions": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": 2919888004.0657935 + }, + { + "year": 2011, + "value": 2665872004.0657935 + }, + { + "year": 2012, + "value": 2943216004.0657935 + }, + { + "year": 2013, + "value": 2808432004.0657935 + }, + { + "year": 2014, + "value": 2699568004.0657935 + }, + { + "year": 2015, + "value": 2760480004.0657935 + }, + { + "year": 2016, + "value": 2800656004.0657935 + }, + { + "year": 2017, + "value": 2594592004.0657935 + }, + { + "year": 2018, + "value": 2280960004.0657935 + }, + { + "year": 2019, + "value": 1985018404.0657933 + }, + { + "year": 2020, + "value": 1902204004.0657933 + }, + { + "year": 2021, + "value": 1902204004.0657933 + } + ], + "emissions": { + "S1": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": 167100001.129387 + }, + { + "year": 2011, + "value": 163800001.129387 + }, + { + "year": 2012, + "value": 181700001.129387 + }, + { + "year": 2013, + "value": 165800001.129387 + }, + { + "year": 2014, + "value": 156600001.129387 + }, + { + "year": 2015, + "value": 152300001.129387 + }, + { + "year": 2016, + "value": 154000001.129387 + }, + { + "year": 2017, + "value": 135600001.129387 + }, + { + "year": 2018, + "value": 120400001.129387 + }, + { + "year": 2019, + "value": 91700001.129387 + }, + { + "year": 2020, + "value": 70400001.129387 + }, + { + "year": 2021, + "value": 70400001.129387 + } + ], + "S2": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": 3100001.12938701 + }, + { + "year": 2011, + "value": 2400001.12938701 + }, + { + "year": 2012, + "value": 1900001.12938701 + }, + { + "year": 2013, + "value": 1500001.12938701 + }, + { + "year": 2014, + "value": 1400001.12938701 + }, + { + "year": 2015, + "value": 1300001.12938701 + }, + { + "year": 2016, + "value": 1300001.12938701 + }, + { + "year": 2017, + "value": 1000001.12938701 + }, + { + "year": 2018, + "value": 5000001.12938701 + }, + { + "year": 2019, + "value": 4700001.12938701 + }, + { + "year": 2020, + "value": 2600001.12938701 + }, + { + "year": 2021, + "value": 2600001.12938701 + } + ], + "S1S2": [], + "S3": [], + "S1S2S3": [] + }, + "emission_intensities": { + "S1": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": 0.7416777669627563 + }, + { + "year": 2011, + "value": 0.7963053032550852 + }, + { + "year": 2012, + "value": 0.8000880707986993 + }, + { + "year": 2013, + "value": 0.7651130636333952 + }, + { + "year": 2014, + "value": 0.7518002923357344 + }, + { + "year": 2015, + "value": 0.715023478427562 + }, + { + "year": 2016, + "value": 0.7126330444508124 + }, + { + "year": 2017, + "value": 0.6773226819025896 + }, + { + "year": 2018, + "value": 0.6840909142884937 + }, + { + "year": 2019, + "value": 0.5987007537072012 + }, + { + "year": 2020, + "value": 0.47964572290181157 + }, + { + "year": 2021, + "value": 0.47964572290181157 + } + ], + "S2": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": 0.013759436862274392 + }, + { + "year": 2011, + "value": 0.011667482380781245 + }, + { + "year": 2012, + "value": 0.008366363393933629 + }, + { + "year": 2013, + "value": 0.006922017199886688 + }, + { + "year": 2014, + "value": 0.00672108078386214 + }, + { + "year": 2015, + "value": 0.006103291678273692 + }, + { + "year": 2016, + "value": 0.006015738674223793 + }, + { + "year": 2017, + "value": 0.004995010628471448 + }, + { + "year": 2018, + "value": 0.028409097275423567 + }, + { + "year": 2019, + "value": 0.030685868963276727 + }, + { + "year": 2020, + "value": 0.017714196040400174 + }, + { + "year": 2021, + "value": 0.017714196040400174 + } + ], + "S1S2": [], + "S3": [], + "S1S2S3": [] + } + } + }, + { + "company_name": "Company AU", + "company_id": "GB0031274896", + "region": "North America", + "sector": "Electricity Utilities", + "target_probability": 0.4285714285714285, + "historic_data": { + "productions": [ + { + "year": 2009, + "value": 926887167.2113813 + }, + { + "year": 2010, + "value": 965233460.0113813 + }, + { + "year": 2011, + "value": 968392251.2113813 + }, + { + "year": 2012, + "value": 972920165.6113813 + }, + { + "year": 2013, + "value": 919330565.6113813 + }, + { + "year": 2014, + "value": 954115205.6113813 + }, + { + "year": 2015, + "value": 949695845.6113813 + }, + { + "year": 2016, + "value": 960753123.2113813 + }, + { + "year": 2017, + "value": 939777829.7713813 + }, + { + "year": 2018, + "value": 891855365.6113813 + }, + { + "year": 2019, + "value": 874385285.6113813 + }, + { + "year": 2020, + "value": 874385285.6113813 + }, + { + "year": 2021, + "value": 874385285.6113813 + } + ], + "emissions": { + "S1": [ + { + "year": 2009, + "value": 55192252.5587173 + }, + { + "year": 2010, + "value": 56075311.5587173 + }, + { + "year": 2011, + "value": 54746972.5587173 + }, + { + "year": 2012, + "value": 54472481.5587173 + }, + { + "year": 2013, + "value": 56535331.5587173 + }, + { + "year": 2014, + "value": 57593228.5587173 + }, + { + "year": 2015, + "value": 56978409.5587173 + }, + { + "year": 2016, + "value": 52832514.4587173 + }, + { + "year": 2017, + "value": 50919739.3587173 + }, + { + "year": 2018, + "value": 50723846.5587173 + }, + { + "year": 2019, + "value": 48061950.5587173 + }, + { + "year": 2020, + "value": 48061950.5587173 + }, + { + "year": 2021, + "value": 48061950.5587173 + } + ], + "S2": [ + { + "year": 2009, + "value": 1007225.55871729 + }, + { + "year": 2010, + "value": 1933034.55871729 + }, + { + "year": 2011, + "value": 1052282.55871729 + }, + { + "year": 2012, + "value": 1189960.55871729 + }, + { + "year": 2013, + "value": 774476.55871729 + }, + { + "year": 2014, + "value": 601657.55871729 + }, + { + "year": 2015, + "value": 1061617.55871729 + }, + { + "year": 2016, + "value": 891280.15871729 + }, + { + "year": 2017, + "value": 1153067.75871729 + }, + { + "year": 2018, + "value": 841797.55871729 + }, + { + "year": 2019, + "value": 607645.55871729 + }, + { + "year": 2020, + "value": 607645.55871729 + }, + { + "year": 2021, + "value": 607645.55871729 + } + ], + "S1S2": [], + "S3": [], + "S1S2S3": [] + }, + "emission_intensities": { + "S1": [ + { + "year": 2009, + "value": 0.771713773223328 + }, + { + "year": 2010, + "value": 0.7529121895467709 + }, + { + "year": 2011, + "value": 0.73267910133876 + }, + { + "year": 2012, + "value": 0.7256128364420833 + }, + { + "year": 2013, + "value": 0.7969906847529973 + }, + { + "year": 2014, + "value": 0.7823041051344408 + }, + { + "year": 2015, + "value": 0.7775544047005837 + }, + { + "year": 2016, + "value": 0.7126798454698644 + }, + { + "year": 2017, + "value": 0.7022083317814728 + }, + { + "year": 2018, + "value": 0.7370937898101109 + }, + { + "year": 2019, + "value": 0.7123666071364056 + }, + { + "year": 2020, + "value": 0.7123666071364056 + }, + { + "year": 2021, + "value": 0.7123666071364056 + } + ], + "S2": [ + { + "year": 2009, + "value": 0.014083314240123792 + }, + { + "year": 2010, + "value": 0.025954475180212513 + }, + { + "year": 2011, + "value": 0.014082704548612957 + }, + { + "year": 2012, + "value": 0.01585113495030187 + }, + { + "year": 2013, + "value": 0.010917962021964349 + }, + { + "year": 2014, + "value": 0.008172474262140671 + }, + { + "year": 2015, + "value": 0.01448733678740982 + }, + { + "year": 2016, + "value": 0.012022850176501211 + }, + { + "year": 2017, + "value": 0.015901373366736478 + }, + { + "year": 2018, + "value": 0.012232584768380328 + }, + { + "year": 2019, + "value": 0.009006426080774784 + }, + { + "year": 2020, + "value": 0.009006426080774784 + }, + { + "year": 2021, + "value": 0.009006426080774784 + } + ], + "S1S2": [], + "S3": [], + "S1S2S3": [] + } + } + }, + { + "company_name": "Company AV", + "company_id": "US6293775085", + "region": "Europe", + "sector": "Steel", + "target_probability": 0.4285714285714285, + "historic_data": { + "productions": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": null + }, + { + "year": 2011, + "value": null + }, + { + "year": 2012, + "value": null + }, + { + "year": 2013, + "value": null + }, + { + "year": 2014, + "value": 91200001.3960884 + }, + { + "year": 2015, + "value": 92479001.3960884 + }, + { + "year": 2016, + "value": 90800001.3960884 + }, + { + "year": 2017, + "value": 93100001.3960884 + }, + { + "year": 2018, + "value": 92500001.3960884 + }, + { + "year": 2019, + "value": 89800001.3960884 + }, + { + "year": 2020, + "value": 71500001.3960884 + }, + { + "year": 2021, + "value": 71500001.3960884 + } + ], + "emissions": { + "S1": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": 165226001.396088 + }, + { + "year": 2011, + "value": 162028001.396088 + }, + { + "year": 2012, + "value": 158192001.396088 + }, + { + "year": 2013, + "value": 169000001.396088 + }, + { + "year": 2014, + "value": 174000001.396088 + }, + { + "year": 2015, + "value": 176000001.396088 + }, + { + "year": 2016, + "value": 176000001.396088 + }, + { + "year": 2017, + "value": 179700001.396088 + }, + { + "year": 2018, + "value": 174900001.396088 + }, + { + "year": 2019, + "value": 169800001.396088 + }, + { + "year": 2020, + "value": 141300001.396088 + }, + { + "year": 2021, + "value": 141300001.396088 + } + ], + "S2": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": 19599001.3960884 + }, + { + "year": 2011, + "value": 17902001.3960884 + }, + { + "year": 2012, + "value": 17256001.3960884 + }, + { + "year": 2013, + "value": 21000001.3960884 + }, + { + "year": 2014, + "value": 17000001.3960884 + }, + { + "year": 2015, + "value": 16000001.3960884 + }, + { + "year": 2016, + "value": 14000001.3960884 + }, + { + "year": 2017, + "value": 15100001.3960884 + }, + { + "year": 2018, + "value": 13900001.3960884 + }, + { + "year": 2019, + "value": 12100001.3960884 + }, + { + "year": 2020, + "value": 9500001.3960884 + }, + { + "year": 2021, + "value": 9500001.3960884 + } + ], + "S1S2": [], + "S3": [], + "S1S2S3": [] + }, + "emission_intensities": null + } + }, + { + "company_name": "Company AW", + "company_id": "US7134481081", + "region": "Asia", + "sector": "Steel", + "target_probability": 0.4285714285714285, + "historic_data": { + "productions": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": null + }, + { + "year": 2011, + "value": null + }, + { + "year": 2012, + "value": null + }, + { + "year": 2013, + "value": null + }, + { + "year": 2014, + "value": null + }, + { + "year": 2015, + "value": null + }, + { + "year": 2016, + "value": null + }, + { + "year": 2017, + "value": null + }, + { + "year": 2018, + "value": null + }, + { + "year": 2019, + "value": null + }, + { + "year": 2020, + "value": null + }, + { + "year": 2021, + "value": null + } + ], + "emissions": { + "S1": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": null + }, + { + "year": 2011, + "value": 13390004.4552317 + }, + { + "year": 2012, + "value": 9480004.45523172 + }, + { + "year": 2013, + "value": 8095004.45523172 + }, + { + "year": 2014, + "value": 7840004.45523172 + }, + { + "year": 2015, + "value": 7810004.45523172 + }, + { + "year": 2016, + "value": 8270004.45523172 + }, + { + "year": 2017, + "value": 8670004.45523172 + }, + { + "year": 2018, + "value": 8780004.45523172 + }, + { + "year": 2019, + "value": 8590004.45523172 + }, + { + "year": 2020, + "value": 8530004.45523172 + }, + { + "year": 2021, + "value": 8530004.45523172 + } + ], + "S2": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": null + }, + { + "year": 2011, + "value": 2530004.45523172 + }, + { + "year": 2012, + "value": 1970004.45523172 + }, + { + "year": 2013, + "value": 1781004.45523172 + }, + { + "year": 2014, + "value": 1541004.45523172 + }, + { + "year": 2015, + "value": 1570004.45523172 + }, + { + "year": 2016, + "value": 1830004.45523172 + }, + { + "year": 2017, + "value": 2000004.45523172 + }, + { + "year": 2018, + "value": 1970004.45523172 + }, + { + "year": 2019, + "value": 1810004.45523172 + }, + { + "year": 2020, + "value": 1750004.45523172 + }, + { + "year": 2021, + "value": 1750004.45523172 + } + ], + "S1S2": [], + "S3": [], + "S1S2S3": [] + }, + "emission_intensities": { + "S1": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": null + }, + { + "year": 2011, + "value": null + }, + { + "year": 2012, + "value": null + }, + { + "year": 2013, + "value": null + }, + { + "year": 2014, + "value": null + }, + { + "year": 2015, + "value": null + }, + { + "year": 2016, + "value": null + }, + { + "year": 2017, + "value": null + }, + { + "year": 2018, + "value": null + }, + { + "year": 2019, + "value": null + }, + { + "year": 2020, + "value": null + }, + { + "year": 2021, + "value": null + } + ], + "S2": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": null + }, + { + "year": 2011, + "value": null + }, + { + "year": 2012, + "value": null + }, + { + "year": 2013, + "value": null + }, + { + "year": 2014, + "value": null + }, + { + "year": 2015, + "value": null + }, + { + "year": 2016, + "value": null + }, + { + "year": 2017, + "value": null + }, + { + "year": 2018, + "value": null + }, + { + "year": 2019, + "value": null + }, + { + "year": 2020, + "value": null + }, + { + "year": 2021, + "value": null + } + ], + "S1S2": [], + "S3": [], + "S1S2S3": [] + } + } + }, + { + "company_name": "Company A", + "company_id": "JP0000000001", + "region": "Asia", + "sector": "Steel", + "target_probability": 0.4285714285714285, + "historic_data": { + "productions": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": null + }, + { + "year": 2011, + "value": null + }, + { + "year": 2012, + "value": null + }, + { + "year": 2013, + "value": null + }, + { + "year": 2014, + "value": null + }, + { + "year": 2015, + "value": null + }, + { + "year": 2016, + "value": null + }, + { + "year": 2017, + "value": null + }, + { + "year": 2018, + "value": null + }, + { + "year": 2019, + "value": null + }, + { + "year": 2020, + "value": null + }, + { + "year": 2021, + "value": null + } + ], + "emissions": { + "S1": [ + { + "year": 2009, + "value": 21759305.8145184 + }, + { + "year": 2010, + "value": 20966413.8145184 + }, + { + "year": 2011, + "value": 21128989.8145184 + }, + { + "year": 2012, + "value": 20070402.8145184 + }, + { + "year": 2013, + "value": 19691129.8145184 + }, + { + "year": 2014, + "value": 19443564.8145184 + }, + { + "year": 2015, + "value": 20018158.8145184 + }, + { + "year": 2016, + "value": 21042990.8145184 + }, + { + "year": 2017, + "value": 20006804.8145184 + }, + { + "year": 2018, + "value": 20805771.8145184 + }, + { + "year": 2019, + "value": 20351815.8145184 + }, + { + "year": 2020, + "value": 20351815.8145184 + }, + { + "year": 2021, + "value": 20351815.8145184 + } + ], + "S2": [ + { + "year": 2009, + "value": 1337565.8145184 + }, + { + "year": 2010, + "value": 1349200.8145184 + }, + { + "year": 2011, + "value": 1371359.8145184 + }, + { + "year": 2012, + "value": 1243282.8145184 + }, + { + "year": 2013, + "value": 1257964.8145184 + }, + { + "year": 2014, + "value": 1185845.8145184 + }, + { + "year": 2015, + "value": 1109279.8145184 + }, + { + "year": 2016, + "value": 1275990.8145184 + }, + { + "year": 2017, + "value": 1298687.8145184 + }, + { + "year": 2018, + "value": 1294689.8145184 + }, + { + "year": 2019, + "value": 1181783.8145184 + }, + { + "year": 2020, + "value": 1181783.8145184 + }, + { + "year": 2021, + "value": 1181783.8145184 + } + ], + "S1S2": [], + "S3": [], + "S1S2S3": [] + }, + "emission_intensities": { + "S1": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": null + }, + { + "year": 2011, + "value": null + }, + { + "year": 2012, + "value": null + }, + { + "year": 2013, + "value": null + }, + { + "year": 2014, + "value": null + }, + { + "year": 2015, + "value": null + }, + { + "year": 2016, + "value": null + }, + { + "year": 2017, + "value": null + }, + { + "year": 2018, + "value": null + }, + { + "year": 2019, + "value": null + }, + { + "year": 2020, + "value": null + }, + { + "year": 2021, + "value": null + } + ], + "S2": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": null + }, + { + "year": 2011, + "value": null + }, + { + "year": 2012, + "value": null + }, + { + "year": 2013, + "value": null + }, + { + "year": 2014, + "value": null + }, + { + "year": 2015, + "value": null + }, + { + "year": 2016, + "value": null + }, + { + "year": 2017, + "value": null + }, + { + "year": 2018, + "value": null + }, + { + "year": 2019, + "value": null + }, + { + "year": 2020, + "value": null + }, + { + "year": 2021, + "value": null + } + ], + "S1S2": [], + "S3": [], + "S1S2S3": [] + } + } + }, + { + "company_name": "Company B", + "company_id": "NL0000000002", + "region": "South America", + "sector": "Steel", + "target_probability": 0.4285714285714285, + "historic_data": { + "productions": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": null + }, + { + "year": 2011, + "value": null + }, + { + "year": 2012, + "value": null + }, + { + "year": 2013, + "value": null + }, + { + "year": 2014, + "value": null + }, + { + "year": 2015, + "value": null + }, + { + "year": 2016, + "value": null + }, + { + "year": 2017, + "value": 16120000.4760821 + }, + { + "year": 2018, + "value": 15342000.4760821 + }, + { + "year": 2019, + "value": 12453000.4760821 + }, + { + "year": 2020, + "value": 12194000.4760821 + }, + { + "year": 2021, + "value": 12194000.4760821 + } + ], + "emissions": { + "S1": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": null + }, + { + "year": 2011, + "value": null + }, + { + "year": 2012, + "value": null + }, + { + "year": 2013, + "value": null + }, + { + "year": 2014, + "value": null + }, + { + "year": 2015, + "value": null + }, + { + "year": 2016, + "value": null + }, + { + "year": 2017, + "value": null + }, + { + "year": 2018, + "value": null + }, + { + "year": 2019, + "value": 9056.99508207154 + }, + { + "year": 2020, + "value": 9056.99508207154 + }, + { + "year": 2021, + "value": 9056.99508207154 + } + ], + "S2": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": null + }, + { + "year": 2011, + "value": null + }, + { + "year": 2012, + "value": null + }, + { + "year": 2013, + "value": null + }, + { + "year": 2014, + "value": null + }, + { + "year": 2015, + "value": null + }, + { + "year": 2016, + "value": null + }, + { + "year": 2017, + "value": null + }, + { + "year": 2018, + "value": null + }, + { + "year": 2019, + "value": 2890986.47608207 + }, + { + "year": 2020, + "value": 2890986.47608207 + }, + { + "year": 2021, + "value": 2890986.47608207 + } + ], + "S1S2": [], + "S3": [], + "S1S2S3": [] + }, + "emission_intensities": { + "S1": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": null + }, + { + "year": 2011, + "value": null + }, + { + "year": 2012, + "value": null + }, + { + "year": 2013, + "value": null + }, + { + "year": 2014, + "value": null + }, + { + "year": 2015, + "value": null + }, + { + "year": 2016, + "value": null + }, + { + "year": 2017, + "value": null + }, + { + "year": 2018, + "value": null + }, + { + "year": 2019, + "value": 0.000727294205076673 + }, + { + "year": 2020, + "value": 0.000742741899988965 + }, + { + "year": 2021, + "value": 0.000742741899988965 + } + ], + "S2": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": null + }, + { + "year": 2011, + "value": null + }, + { + "year": 2012, + "value": null + }, + { + "year": 2013, + "value": null + }, + { + "year": 2014, + "value": null + }, + { + "year": 2015, + "value": null + }, + { + "year": 2016, + "value": null + }, + { + "year": 2017, + "value": null + }, + { + "year": 2018, + "value": null + }, + { + "year": 2019, + "value": 0.232151800012749 + }, + { + "year": 2020, + "value": 0.237082693391115 + }, + { + "year": 2021, + "value": 0.237082693391115 + } + ], + "S1S2": [], + "S3": [], + "S1S2S3": [] + } + } + }, + { + "company_name": "Company C", + "company_id": "IT0000000003", + "region": "Asia", + "sector": "Steel", + "target_probability": 0.4285714285714285, + "historic_data": { + "productions": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": null + }, + { + "year": 2011, + "value": null + }, + { + "year": 2012, + "value": null + }, + { + "year": 2013, + "value": null + }, + { + "year": 2014, + "value": 19374009.677026 + }, + { + "year": 2015, + "value": 21182009.677026 + }, + { + "year": 2016, + "value": 22380009.677026 + }, + { + "year": 2017, + "value": 23290009.677026 + }, + { + "year": 2018, + "value": 23763009.677026 + }, + { + "year": 2019, + "value": 23303009.677026 + }, + { + "year": 2020, + "value": 23303009.677026 + }, + { + "year": 2021, + "value": 23303009.677026 + } + ], + "emissions": { + "S1": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": 766009.677026013 + }, + { + "year": 2011, + "value": 10247400.677026 + }, + { + "year": 2012, + "value": 10197994.677026 + }, + { + "year": 2013, + "value": 11080009.677026 + }, + { + "year": 2014, + "value": 13317009.677026 + }, + { + "year": 2015, + "value": 14157009.677026 + }, + { + "year": 2016, + "value": 15622009.677026 + }, + { + "year": 2017, + "value": 15710009.677026 + }, + { + "year": 2018, + "value": 16492009.677026 + }, + { + "year": 2019, + "value": 16442009.677026 + }, + { + "year": 2020, + "value": 16442009.677026 + }, + { + "year": 2021, + "value": 16442009.677026 + } + ], + "S2": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": 3518009.67702601 + }, + { + "year": 2011, + "value": 4342232.67702601 + }, + { + "year": 2012, + "value": 4164848.67702601 + }, + { + "year": 2013, + "value": 4818009.67702601 + }, + { + "year": 2014, + "value": 5480009.67702601 + }, + { + "year": 2015, + "value": 5416009.67702601 + }, + { + "year": 2016, + "value": 5653009.67702601 + }, + { + "year": 2017, + "value": 5769009.67702601 + }, + { + "year": 2018, + "value": 5806009.67702601 + }, + { + "year": 2019, + "value": 5803009.67702601 + }, + { + "year": 2020, + "value": 5803009.67702601 + }, + { + "year": 2021, + "value": 5803009.67702601 + } + ], + "S1S2": [], + "S3": [], + "S1S2S3": [] + }, + "emission_intensities": { + "S1": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": null + }, + { + "year": 2011, + "value": null + }, + { + "year": 2012, + "value": null + }, + { + "year": 2013, + "value": null + }, + { + "year": 2014, + "value": 0.687364665292674 + }, + { + "year": 2015, + "value": 0.66835063777639 + }, + { + "year": 2016, + "value": 0.698034089460767 + }, + { + "year": 2017, + "value": 0.67453856373975 + }, + { + "year": 2018, + "value": 0.694020239909696 + }, + { + "year": 2019, + "value": 0.705574511829511 + }, + { + "year": 2020, + "value": 0.705574511829511 + }, + { + "year": 2021, + "value": 0.705574511829511 + } + ], + "S2": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": null + }, + { + "year": 2011, + "value": null + }, + { + "year": 2012, + "value": null + }, + { + "year": 2013, + "value": null + }, + { + "year": 2014, + "value": 0.282853666761831 + }, + { + "year": 2015, + "value": 0.255689132410331 + }, + { + "year": 2016, + "value": 0.252591922818919 + }, + { + "year": 2017, + "value": 0.247703189351473 + }, + { + "year": 2018, + "value": 0.244329727418293 + }, + { + "year": 2019, + "value": 0.249024042707543 + }, + { + "year": 2020, + "value": 0.249024042707543 + }, + { + "year": 2021, + "value": 0.249024042707543 + } + ], + "S1S2": [], + "S3": [], + "S1S2S3": [] + } + } + }, + { + "company_name": "Company D", + "company_id": "SE0000000004", + "region": "Asia", + "sector": "Steel", + "target_probability": 0.4285714285714285, + "historic_data": { + "productions": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": null + }, + { + "year": 2011, + "value": null + }, + { + "year": 2012, + "value": null + }, + { + "year": 2013, + "value": null + }, + { + "year": 2014, + "value": 31580000.2335485 + }, + { + "year": 2015, + "value": 31040000.2335485 + }, + { + "year": 2016, + "value": 29751000.2335485 + }, + { + "year": 2017, + "value": 30410000.2335485 + }, + { + "year": 2018, + "value": 29145000.2335485 + }, + { + "year": 2019, + "value": 27880000.2335485 + }, + { + "year": 2020, + "value": 28090000.2335485 + }, + { + "year": 2021, + "value": 28090000.2335485 + } + ], + "emissions": { + "S1": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": null + }, + { + "year": 2011, + "value": null + }, + { + "year": 2012, + "value": null + }, + { + "year": 2013, + "value": null + }, + { + "year": 2014, + "value": null + }, + { + "year": 2015, + "value": null + }, + { + "year": 2016, + "value": 54700000.2335485 + }, + { + "year": 2017, + "value": 55000000.2335485 + }, + { + "year": 2018, + "value": 54900000.2335485 + }, + { + "year": 2019, + "value": 52300000.2335485 + }, + { + "year": 2020, + "value": 52900000.2335485 + }, + { + "year": 2021, + "value": 52900000.2335485 + } + ], + "S2": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": null + }, + { + "year": 2011, + "value": null + }, + { + "year": 2012, + "value": null + }, + { + "year": 2013, + "value": null + }, + { + "year": 2014, + "value": null + }, + { + "year": 2015, + "value": null + }, + { + "year": 2016, + "value": 6600000.23354846 + }, + { + "year": 2017, + "value": 6400000.23354846 + }, + { + "year": 2018, + "value": 7400000.23354846 + }, + { + "year": 2019, + "value": 7500000.23354846 + }, + { + "year": 2020, + "value": 7600000.23354846 + }, + { + "year": 2021, + "value": 7600000.23354846 + } + ], + "S1S2": [], + "S3": [], + "S1S2S3": [] + }, + "emission_intensities": { + "S1": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": null + }, + { + "year": 2011, + "value": null + }, + { + "year": 2012, + "value": null + }, + { + "year": 2013, + "value": null + }, + { + "year": 2014, + "value": null + }, + { + "year": 2015, + "value": null + }, + { + "year": 2016, + "value": 1.83859365413424 + }, + { + "year": 2017, + "value": 1.80861558076781 + }, + { + "year": 2018, + "value": 1.8836850160788 + }, + { + "year": 2019, + "value": 1.87589669280616 + }, + { + "year": 2020, + "value": 1.88323245972668 + }, + { + "year": 2021, + "value": 1.88323245972668 + } + ], + "S2": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": null + }, + { + "year": 2011, + "value": null + }, + { + "year": 2012, + "value": null + }, + { + "year": 2013, + "value": null + }, + { + "year": 2014, + "value": null + }, + { + "year": 2015, + "value": null + }, + { + "year": 2016, + "value": 0.221841288754589 + }, + { + "year": 2017, + "value": 0.21045709254839 + }, + { + "year": 2018, + "value": 0.253902905275342 + }, + { + "year": 2019, + "value": 0.26901004916505 + }, + { + "year": 2020, + "value": 0.270558923829115 + }, + { + "year": 2021, + "value": 0.270558923829115 + } + ], + "S1S2": [], + "S3": [], + "S1S2S3": [] + } + } + }, + { + "company_name": "Company E", + "company_id": "SE0000000005", + "region": "Asia", + "sector": "Steel", + "target_probability": 0.4285714285714285, + "historic_data": { + "productions": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": null + }, + { + "year": 2011, + "value": null + }, + { + "year": 2012, + "value": null + }, + { + "year": 2013, + "value": null + }, + { + "year": 2014, + "value": 12170001.0468216 + }, + { + "year": 2015, + "value": 12630001.0468216 + }, + { + "year": 2016, + "value": 12630001.0468216 + }, + { + "year": 2017, + "value": 12630001.0468216 + }, + { + "year": 2018, + "value": 12630001.0468216 + }, + { + "year": 2019, + "value": 12630001.0468216 + }, + { + "year": 2020, + "value": 12630001.0468216 + }, + { + "year": 2021, + "value": 12630001.0468216 + } + ], + "emissions": { + "S1": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": 14667421.0468216 + }, + { + "year": 2011, + "value": 15541981.0468216 + }, + { + "year": 2012, + "value": 21355001.0468216 + }, + { + "year": 2013, + "value": 28086001.0468216 + }, + { + "year": 2014, + "value": 26077001.0468216 + }, + { + "year": 2015, + "value": 26816001.0468216 + }, + { + "year": 2016, + "value": 31440001.0468216 + }, + { + "year": 2017, + "value": 36610961.0468216 + }, + { + "year": 2018, + "value": 41528001.0468216 + }, + { + "year": 2019, + "value": 41938351.0468216 + }, + { + "year": 2020, + "value": 40045311.0468216 + }, + { + "year": 2021, + "value": 40045311.0468216 + } + ], + "S2": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": 976021.046821591 + }, + { + "year": 2011, + "value": 1550771.04682159 + }, + { + "year": 2012, + "value": 16541.0468215911 + }, + { + "year": 2013, + "value": 33601.0468215911 + }, + { + "year": 2014, + "value": 3742001.04682159 + }, + { + "year": 2015, + "value": 4157001.04682159 + }, + { + "year": 2016, + "value": 661001.046821591 + }, + { + "year": 2017, + "value": 1885181.04682159 + }, + { + "year": 2018, + "value": 626001.046821591 + }, + { + "year": 2019, + "value": 3909961.04682159 + }, + { + "year": 2020, + "value": 476901.046821591 + }, + { + "year": 2021, + "value": 476901.046821591 + } + ], + "S1S2": [], + "S3": [], + "S1S2S3": [] + }, + "emission_intensities": { + "S1": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": null + }, + { + "year": 2011, + "value": null + }, + { + "year": 2012, + "value": null + }, + { + "year": 2013, + "value": null + }, + { + "year": 2014, + "value": 2.14272792142709 + }, + { + "year": 2015, + "value": 2.12319864008008 + }, + { + "year": 2016, + "value": 2.48931104045582 + }, + { + "year": 2017, + "value": 2.89872985054383 + }, + { + "year": 2018, + "value": 3.28804414923404 + }, + { + "year": 2019, + "value": 3.32053424947068 + }, + { + "year": 2020, + "value": 3.17064985967671 + }, + { + "year": 2021, + "value": 3.17064985967671 + } + ], + "S2": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": null + }, + { + "year": 2011, + "value": null + }, + { + "year": 2012, + "value": null + }, + { + "year": 2013, + "value": null + }, + { + "year": 2014, + "value": 0.307477463019519 + }, + { + "year": 2015, + "value": 0.329137031058895 + }, + { + "year": 2016, + "value": 0.0523357871761963 + }, + { + "year": 2017, + "value": 0.149262144938302 + }, + { + "year": 2018, + "value": 0.0495646076750823 + }, + { + "year": 2019, + "value": 0.309577254374461 + }, + { + "year": 2020, + "value": 0.0377593830003368 + }, + { + "year": 2021, + "value": 0.0377593830003368 + } + ], + "S1S2": [], + "S3": [], + "S1S2S3": [] + } + } + }, + { + "company_name": "Company F", + "company_id": "NL0000000006", + "region": "Asia", + "sector": "Steel", + "target_probability": 0.4285714285714285, + "historic_data": { + "productions": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": null + }, + { + "year": 2011, + "value": null + }, + { + "year": 2012, + "value": null + }, + { + "year": 2013, + "value": 23001000.8292913 + }, + { + "year": 2014, + "value": 25222000.8292913 + }, + { + "year": 2015, + "value": 23424000.8292913 + }, + { + "year": 2016, + "value": 24100000.8292913 + }, + { + "year": 2017, + "value": 24193000.8292913 + }, + { + "year": 2018, + "value": 24328000.8292913 + }, + { + "year": 2019, + "value": 23779000.8292913 + }, + { + "year": 2020, + "value": 22329000.8292913 + }, + { + "year": 2021, + "value": 22329000.8292913 + } + ], + "emissions": { + "S1": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": null + }, + { + "year": 2011, + "value": null + }, + { + "year": 2012, + "value": null + }, + { + "year": 2013, + "value": null + }, + { + "year": 2014, + "value": null + }, + { + "year": 2015, + "value": null + }, + { + "year": 2016, + "value": 31300000.8292913 + }, + { + "year": 2017, + "value": 31072000.8292913 + }, + { + "year": 2018, + "value": 29491000.8292913 + }, + { + "year": 2019, + "value": 27206000.8292913 + }, + { + "year": 2020, + "value": 27206000.8292913 + }, + { + "year": 2021, + "value": 27206000.8292913 + } + ], + "S2": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": null + }, + { + "year": 2011, + "value": null + }, + { + "year": 2012, + "value": null + }, + { + "year": 2013, + "value": null + }, + { + "year": 2014, + "value": null + }, + { + "year": 2015, + "value": null + }, + { + "year": 2016, + "value": null + }, + { + "year": 2017, + "value": null + }, + { + "year": 2018, + "value": null + }, + { + "year": 2019, + "value": null + }, + { + "year": 2020, + "value": null + }, + { + "year": 2021, + "value": null + } + ], + "S1S2": [], + "S3": [], + "S1S2S3": [] + }, + "emission_intensities": { + "S1": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": null + }, + { + "year": 2011, + "value": null + }, + { + "year": 2012, + "value": null + }, + { + "year": 2013, + "value": null + }, + { + "year": 2014, + "value": null + }, + { + "year": 2015, + "value": null + }, + { + "year": 2016, + "value": 1.2987551764417 + }, + { + "year": 2017, + "value": 1.28433843525816 + }, + { + "year": 2018, + "value": 1.21222458993769 + }, + { + "year": 2019, + "value": 1.14411875522451 + }, + { + "year": 2020, + "value": 1.21841550534596 + }, + { + "year": 2021, + "value": 1.21841550534596 + } + ], + "S2": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": null + }, + { + "year": 2011, + "value": null + }, + { + "year": 2012, + "value": null + }, + { + "year": 2013, + "value": null + }, + { + "year": 2014, + "value": null + }, + { + "year": 2015, + "value": null + }, + { + "year": 2016, + "value": null + }, + { + "year": 2017, + "value": null + }, + { + "year": 2018, + "value": null + }, + { + "year": 2019, + "value": null + }, + { + "year": 2020, + "value": null + }, + { + "year": 2021, + "value": null + } + ], + "S1S2": [], + "S3": [], + "S1S2S3": [] + } + } + }, + { + "company_name": "Company G", + "company_id": "CN0000000007", + "region": "Asia", + "sector": "Steel", + "target_probability": 0.4285714285714285, + "historic_data": { + "productions": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": null + }, + { + "year": 2011, + "value": null + }, + { + "year": 2012, + "value": null + }, + { + "year": 2013, + "value": 46030001.3676141 + }, + { + "year": 2014, + "value": 48160001.3676141 + }, + { + "year": 2015, + "value": 47320001.3676141 + }, + { + "year": 2016, + "value": 44530001.3676141 + }, + { + "year": 2017, + "value": 45170001.3676141 + }, + { + "year": 2018, + "value": 46505001.3676141 + }, + { + "year": 2019, + "value": 47840001.3676141 + }, + { + "year": 2020, + "value": 47050001.3676141 + }, + { + "year": 2021, + "value": 47050001.3676141 + } + ], + "emissions": { + "S1": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": null + }, + { + "year": 2011, + "value": null + }, + { + "year": 2012, + "value": null + }, + { + "year": 2013, + "value": null + }, + { + "year": 2014, + "value": null + }, + { + "year": 2015, + "value": null + }, + { + "year": 2016, + "value": 89000001.3676141 + }, + { + "year": 2017, + "value": 89000001.3676141 + }, + { + "year": 2018, + "value": 86000001.3676141 + }, + { + "year": 2019, + "value": 87000001.3676141 + }, + { + "year": 2020, + "value": 84000001.3676141 + }, + { + "year": 2021, + "value": 84000001.3676141 + } + ], + "S2": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": null + }, + { + "year": 2011, + "value": null + }, + { + "year": 2012, + "value": null + }, + { + "year": 2013, + "value": null + }, + { + "year": 2014, + "value": null + }, + { + "year": 2015, + "value": null + }, + { + "year": 2016, + "value": 11000001.3676141 + }, + { + "year": 2017, + "value": 10000001.3676141 + }, + { + "year": 2018, + "value": 10000001.3676141 + }, + { + "year": 2019, + "value": 10000001.3676141 + }, + { + "year": 2020, + "value": 9000001.36761412 + }, + { + "year": 2021, + "value": 9000001.36761412 + } + ], + "S1S2": [], + "S3": [], + "S1S2S3": [] + }, + "emission_intensities": { + "S1": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": null + }, + { + "year": 2011, + "value": null + }, + { + "year": 2012, + "value": null + }, + { + "year": 2013, + "value": null + }, + { + "year": 2014, + "value": null + }, + { + "year": 2015, + "value": null + }, + { + "year": 2016, + "value": 1.9986525630862 + }, + { + "year": 2017, + "value": 1.97033426329327 + }, + { + "year": 2018, + "value": 1.84926349507656 + }, + { + "year": 2019, + "value": 1.81856184950927 + }, + { + "year": 2020, + "value": 1.78533472743815 + }, + { + "year": 2021, + "value": 1.78533472743815 + } + ], + "S2": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": null + }, + { + "year": 2011, + "value": null + }, + { + "year": 2012, + "value": null + }, + { + "year": 2013, + "value": null + }, + { + "year": 2014, + "value": null + }, + { + "year": 2015, + "value": null + }, + { + "year": 2016, + "value": 0.247024501005612 + }, + { + "year": 2017, + "value": 0.221385899155272 + }, + { + "year": 2018, + "value": 0.215030664950761 + }, + { + "year": 2019, + "value": 0.209030122946103 + }, + { + "year": 2020, + "value": 0.191285889606989 + }, + { + "year": 2021, + "value": 0.191285889606989 + } + ], + "S1S2": [], + "S3": [], + "S1S2S3": [] + } + } + }, + { + "company_name": "Company H", + "company_id": "CN0000000008", + "region": "Asia", + "sector": "Steel", + "target_probability": 0.4285714285714285, + "historic_data": { + "productions": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": null + }, + { + "year": 2011, + "value": null + }, + { + "year": 2012, + "value": null + }, + { + "year": 2013, + "value": null + }, + { + "year": 2014, + "value": 15921004.6310296 + }, + { + "year": 2015, + "value": 15855004.6310296 + }, + { + "year": 2016, + "value": 16419004.6310296 + }, + { + "year": 2017, + "value": 16850004.6310296 + }, + { + "year": 2018, + "value": 17286004.6310296 + }, + { + "year": 2019, + "value": 15520004.6310296 + }, + { + "year": 2020, + "value": 15520004.6310296 + }, + { + "year": 2021, + "value": 15520004.6310296 + } + ], + "emissions": { + "S1": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": null + }, + { + "year": 2011, + "value": null + }, + { + "year": 2012, + "value": null + }, + { + "year": 2013, + "value": null + }, + { + "year": 2014, + "value": null + }, + { + "year": 2015, + "value": 29200004.6310296 + }, + { + "year": 2016, + "value": 29200004.6310296 + }, + { + "year": 2017, + "value": 29600004.6310296 + }, + { + "year": 2018, + "value": 30200004.6310296 + }, + { + "year": 2019, + "value": 28400004.6310296 + }, + { + "year": 2020, + "value": 28400004.6310296 + }, + { + "year": 2021, + "value": 28400004.6310296 + } + ], + "S2": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": null + }, + { + "year": 2011, + "value": null + }, + { + "year": 2012, + "value": null + }, + { + "year": 2013, + "value": null + }, + { + "year": 2014, + "value": null + }, + { + "year": 2015, + "value": 3600004.63102958 + }, + { + "year": 2016, + "value": 3800004.63102958 + }, + { + "year": 2017, + "value": 4000004.63102958 + }, + { + "year": 2018, + "value": 4000004.63102958 + }, + { + "year": 2019, + "value": 3600004.63102958 + }, + { + "year": 2020, + "value": 3600004.63102958 + }, + { + "year": 2021, + "value": 3600004.63102958 + } + ], + "S1S2": [], + "S3": [], + "S1S2S3": [] + }, + "emission_intensities": { + "S1": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": null + }, + { + "year": 2011, + "value": null + }, + { + "year": 2012, + "value": null + }, + { + "year": 2013, + "value": null + }, + { + "year": 2014, + "value": null + }, + { + "year": 2015, + "value": 1.8416900726653 + }, + { + "year": 2016, + "value": 1.77842721207629 + }, + { + "year": 2017, + "value": 1.75667634989967 + }, + { + "year": 2018, + "value": 1.74707836053789 + }, + { + "year": 2019, + "value": 1.82989665958273 + }, + { + "year": 2020, + "value": 1.82989665958273 + }, + { + "year": 2021, + "value": 1.82989665958273 + } + ], + "S2": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": null + }, + { + "year": 2011, + "value": null + }, + { + "year": 2012, + "value": null + }, + { + "year": 2013, + "value": null + }, + { + "year": 2014, + "value": null + }, + { + "year": 2015, + "value": 0.22705793626727 + }, + { + "year": 2016, + "value": 0.231439403083431 + }, + { + "year": 2017, + "value": 0.237388933630528 + }, + { + "year": 2018, + "value": 0.231401339778036 + }, + { + "year": 2019, + "value": 0.231958992063184 + }, + { + "year": 2020, + "value": 0.231958992063184 + }, + { + "year": 2021, + "value": 0.231958992063184 + } + ], + "S1S2": [], + "S3": [], + "S1S2S3": [] + } + } + }, + { + "company_name": "Company I", + "company_id": "CN0000000009", + "region": "Asia", + "sector": "Steel", + "target_probability": 0.4285714285714285, + "historic_data": { + "productions": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": null + }, + { + "year": 2011, + "value": null + }, + { + "year": 2012, + "value": null + }, + { + "year": 2013, + "value": null + }, + { + "year": 2014, + "value": null + }, + { + "year": 2015, + "value": null + }, + { + "year": 2016, + "value": null + }, + { + "year": 2017, + "value": null + }, + { + "year": 2018, + "value": null + }, + { + "year": 2019, + "value": null + }, + { + "year": 2020, + "value": null + }, + { + "year": 2021, + "value": null + } + ], + "emissions": { + "S1": [ + { + "year": 2009, + "value": 60457000.4256679 + }, + { + "year": 2010, + "value": 68748000.4256679 + }, + { + "year": 2011, + "value": 74602000.4256679 + }, + { + "year": 2012, + "value": 85678000.4256679 + }, + { + "year": 2013, + "value": 79928000.4256679 + }, + { + "year": 2014, + "value": 84451000.4256679 + }, + { + "year": 2015, + "value": 82741000.4256679 + }, + { + "year": 2016, + "value": 81346000.4256679 + }, + { + "year": 2017, + "value": 67743000.4256679 + }, + { + "year": 2018, + "value": 69687000.4256679 + }, + { + "year": 2019, + "value": 79447000.4256679 + }, + { + "year": 2020, + "value": 79447000.4256679 + }, + { + "year": 2021, + "value": 79447000.4256679 + } + ], + "S2": [ + { + "year": 2009, + "value": 2698000.42566793 + }, + { + "year": 2010, + "value": 3033000.42566793 + }, + { + "year": 2011, + "value": 3625000.42566793 + }, + { + "year": 2012, + "value": 3682000.42566793 + }, + { + "year": 2013, + "value": 4539000.42566793 + }, + { + "year": 2014, + "value": 5032000.42566793 + }, + { + "year": 2015, + "value": 4431000.42566793 + }, + { + "year": 2016, + "value": 3719000.42566793 + }, + { + "year": 2017, + "value": 2956000.42566793 + }, + { + "year": 2018, + "value": 2802000.42566793 + }, + { + "year": 2019, + "value": 795000.425667932 + }, + { + "year": 2020, + "value": 795000.425667932 + }, + { + "year": 2021, + "value": 795000.425667932 + } + ], + "S1S2": [], + "S3": [], + "S1S2S3": [] + }, + "emission_intensities": { + "S1": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": null + }, + { + "year": 2011, + "value": null + }, + { + "year": 2012, + "value": null + }, + { + "year": 2013, + "value": null + }, + { + "year": 2014, + "value": null + }, + { + "year": 2015, + "value": null + }, + { + "year": 2016, + "value": null + }, + { + "year": 2017, + "value": null + }, + { + "year": 2018, + "value": null + }, + { + "year": 2019, + "value": null + }, + { + "year": 2020, + "value": null + }, + { + "year": 2021, + "value": null + } + ], + "S2": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": null + }, + { + "year": 2011, + "value": null + }, + { + "year": 2012, + "value": null + }, + { + "year": 2013, + "value": null + }, + { + "year": 2014, + "value": null + }, + { + "year": 2015, + "value": null + }, + { + "year": 2016, + "value": null + }, + { + "year": 2017, + "value": null + }, + { + "year": 2018, + "value": null + }, + { + "year": 2019, + "value": null + }, + { + "year": 2020, + "value": null + }, + { + "year": 2021, + "value": null + } + ], + "S1S2": [], + "S3": [], + "S1S2S3": [] + } + } + }, + { + "company_name": "Company J", + "company_id": "BR0000000010", + "region": "Asia", + "sector": "Steel", + "target_probability": 0.4285714285714285, + "historic_data": { + "productions": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": null + }, + { + "year": 2011, + "value": null + }, + { + "year": 2012, + "value": null + }, + { + "year": 2013, + "value": 15691492.9224849 + }, + { + "year": 2014, + "value": 11301980.9224849 + }, + { + "year": 2015, + "value": 11500001.9224849 + }, + { + "year": 2016, + "value": 11600001.9224849 + }, + { + "year": 2017, + "value": 3012108.92248495 + }, + { + "year": 2018, + "value": 12039001.9224849 + }, + { + "year": 2019, + "value": 11847001.9224849 + }, + { + "year": 2020, + "value": 11314001.9224849 + }, + { + "year": 2021, + "value": 11314001.9224849 + } + ], + "emissions": { + "S1": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": null + }, + { + "year": 2011, + "value": null + }, + { + "year": 2012, + "value": null + }, + { + "year": 2013, + "value": null + }, + { + "year": 2014, + "value": null + }, + { + "year": 2015, + "value": null + }, + { + "year": 2016, + "value": 23200001.9224849 + }, + { + "year": 2017, + "value": 22200001.9224849 + }, + { + "year": 2018, + "value": 22100001.9224849 + }, + { + "year": 2019, + "value": 23400001.9224849 + }, + { + "year": 2020, + "value": 23400001.9224849 + }, + { + "year": 2021, + "value": 23400001.9224849 + } + ], + "S2": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": null + }, + { + "year": 2011, + "value": null + }, + { + "year": 2012, + "value": null + }, + { + "year": 2013, + "value": null + }, + { + "year": 2014, + "value": null + }, + { + "year": 2015, + "value": null + }, + { + "year": 2016, + "value": null + }, + { + "year": 2017, + "value": null + }, + { + "year": 2018, + "value": null + }, + { + "year": 2019, + "value": null + }, + { + "year": 2020, + "value": null + }, + { + "year": 2021, + "value": null + } + ], + "S1S2": [], + "S3": [], + "S1S2S3": [] + }, + "emission_intensities": { + "S1": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": null + }, + { + "year": 2011, + "value": null + }, + { + "year": 2012, + "value": null + }, + { + "year": 2013, + "value": null + }, + { + "year": 2014, + "value": null + }, + { + "year": 2015, + "value": null + }, + { + "year": 2016, + "value": 1.99999983426857 + }, + { + "year": 2017, + "value": 7.37025203729028 + }, + { + "year": 2018, + "value": 1.83570050613659 + }, + { + "year": 2019, + "value": 1.97518343253351 + }, + { + "year": 2020, + "value": 2.06823386479905 + }, + { + "year": 2021, + "value": 2.06823386479905 + } + ], + "S2": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": null + }, + { + "year": 2011, + "value": null + }, + { + "year": 2012, + "value": null + }, + { + "year": 2013, + "value": null + }, + { + "year": 2014, + "value": null + }, + { + "year": 2015, + "value": null + }, + { + "year": 2016, + "value": null + }, + { + "year": 2017, + "value": null + }, + { + "year": 2018, + "value": null + }, + { + "year": 2019, + "value": null + }, + { + "year": 2020, + "value": null + }, + { + "year": 2021, + "value": null + } + ], + "S1S2": [], + "S3": [], + "S1S2S3": [] + } + } + }, + { + "company_name": "Company K", + "company_id": "BR0000000011", + "region": "Europe", + "sector": "Steel", + "target_probability": 0.4285714285714285, + "historic_data": { + "productions": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": null + }, + { + "year": 2011, + "value": null + }, + { + "year": 2012, + "value": null + }, + { + "year": 2013, + "value": null + }, + { + "year": 2014, + "value": null + }, + { + "year": 2015, + "value": null + }, + { + "year": 2016, + "value": null + }, + { + "year": 2017, + "value": 15393000.0778486 + }, + { + "year": 2018, + "value": 15419000.0778486 + }, + { + "year": 2019, + "value": 14618000.0778486 + }, + { + "year": 2020, + "value": 14473000.0778486 + }, + { + "year": 2021, + "value": 14473000.0778486 + } + ], + "emissions": { + "S1": [ + { + "year": 2009, + "value": 4000000.07784856 + }, + { + "year": 2010, + "value": 6481635.07784856 + }, + { + "year": 2011, + "value": 10525000.0778486 + }, + { + "year": 2012, + "value": 9308000.07784856 + }, + { + "year": 2013, + "value": 9311000.07784856 + }, + { + "year": 2014, + "value": 9578000.07784856 + }, + { + "year": 2015, + "value": 9448000.07784856 + }, + { + "year": 2016, + "value": 9989000.07784856 + }, + { + "year": 2017, + "value": 9867000.07784856 + }, + { + "year": 2018, + "value": 9755000.07784856 + }, + { + "year": 2019, + "value": 9582000.07784856 + }, + { + "year": 2020, + "value": 9582000.07784856 + }, + { + "year": 2021, + "value": 9582000.07784856 + } + ], + "S2": [ + { + "year": 2009, + "value": 700993.077848565 + }, + { + "year": 2010, + "value": 1032496.57784856 + }, + { + "year": 2011, + "value": 1364000.07784857 + }, + { + "year": 2012, + "value": 1367000.07784857 + }, + { + "year": 2013, + "value": 1447000.07784857 + }, + { + "year": 2014, + "value": 1220000.07784857 + }, + { + "year": 2015, + "value": 1133000.07784857 + }, + { + "year": 2016, + "value": 1166000.07784857 + }, + { + "year": 2017, + "value": 1216000.07784857 + }, + { + "year": 2018, + "value": 1189000.07784857 + }, + { + "year": 2019, + "value": 1173000.07784857 + }, + { + "year": 2020, + "value": 1173000.07784857 + }, + { + "year": 2021, + "value": 1173000.07784857 + } + ], + "S1S2": [], + "S3": [], + "S1S2S3": [] + }, + "emission_intensities": { + "S1": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": null + }, + { + "year": 2011, + "value": null + }, + { + "year": 2012, + "value": null + }, + { + "year": 2013, + "value": null + }, + { + "year": 2014, + "value": null + }, + { + "year": 2015, + "value": null + }, + { + "year": 2016, + "value": null + }, + { + "year": 2017, + "value": 0.641005653735282 + }, + { + "year": 2018, + "value": 0.632661004513705 + }, + { + "year": 2019, + "value": 0.655493229362386 + }, + { + "year": 2020, + "value": 0.662060390127003 + }, + { + "year": 2021, + "value": 0.662060390127003 + } + ], + "S2": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": null + }, + { + "year": 2011, + "value": null + }, + { + "year": 2012, + "value": null + }, + { + "year": 2013, + "value": null + }, + { + "year": 2014, + "value": null + }, + { + "year": 2015, + "value": null + }, + { + "year": 2016, + "value": null + }, + { + "year": 2017, + "value": 0.0789969513219493 + }, + { + "year": 2018, + "value": 0.0771126578795937 + }, + { + "year": 2019, + "value": 0.0802435402655439 + }, + { + "year": 2020, + "value": 0.0810474726414106 + }, + { + "year": 2021, + "value": 0.0810474726414106 + } + ], + "S1S2": [], + "S3": [], + "S1S2S3": [] + } + } + }, + { + "company_name": "Company L", + "company_id": "BR0000000012", + "region": "Asia", + "sector": "Steel", + "target_probability": 0.4285714285714285, + "historic_data": { + "productions": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": null + }, + { + "year": 2011, + "value": null + }, + { + "year": 2012, + "value": null + }, + { + "year": 2013, + "value": null + }, + { + "year": 2014, + "value": 9155004.34644718 + }, + { + "year": 2015, + "value": 9331004.34644718 + }, + { + "year": 2016, + "value": 20808004.3464472 + }, + { + "year": 2017, + "value": 21911004.3464472 + }, + { + "year": 2018, + "value": 25390004.3464472 + }, + { + "year": 2019, + "value": 27110004.3464472 + }, + { + "year": 2020, + "value": 30630004.3464472 + }, + { + "year": 2021, + "value": 28540004.3464472 + } + ], + "emissions": { + "S1": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": 14900657.0 + }, + { + "year": 2011, + "value": 17389874.39 + }, + { + "year": 2012, + "value": 16283032.0 + }, + { + "year": 2013, + "value": 18802944.0 + }, + { + "year": 2014, + "value": 20428595.0 + }, + { + "year": 2015, + "value": 23337931.0 + }, + { + "year": 2016, + "value": 23298343.0 + }, + { + "year": 2017, + "value": 38757404.0 + }, + { + "year": 2018, + "value": 47025134.0 + }, + { + "year": 2019, + "value": 56093007.0 + }, + { + "year": 2020, + "value": 60116322.0 + }, + { + "year": 2021, + "value": 60116322.0 + } + ], + "S2": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": 731525.0 + }, + { + "year": 2011, + "value": 853729.3263 + }, + { + "year": 2012, + "value": 789126.0 + }, + { + "year": 2013, + "value": 1174594.0 + }, + { + "year": 2014, + "value": 1266295.0 + }, + { + "year": 2015, + "value": 723978.0 + }, + { + "year": 2016, + "value": 1409816.0 + }, + { + "year": 2017, + "value": 3979125.0 + }, + { + "year": 2018, + "value": 3344945.0 + }, + { + "year": 2019, + "value": 4137575.0 + }, + { + "year": 2020, + "value": 2779523.0 + }, + { + "year": 2021, + "value": 2779523.0 + } + ], + "S1S2": [], + "S3": [], + "S1S2S3": [] + }, + "emission_intensities": { + "S1": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": null + }, + { + "year": 2011, + "value": null + }, + { + "year": 2012, + "value": null + }, + { + "year": 2013, + "value": null + }, + { + "year": 2014, + "value": 2.23141292204059 + }, + { + "year": 2015, + "value": 2.5011167215762815 + }, + { + "year": 2016, + "value": 1.1196817634257177 + }, + { + "year": 2017, + "value": 1.768855657512769 + }, + { + "year": 2018, + "value": 1.8521120894010474 + }, + { + "year": 2019, + "value": 2.0690888235638023 + }, + { + "year": 2020, + "value": 1.9626612298203263 + }, + { + "year": 2021, + "value": 2.1063879763383277 + } + ], + "S2": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": null + }, + { + "year": 2011, + "value": null + }, + { + "year": 2012, + "value": null + }, + { + "year": 2013, + "value": null + }, + { + "year": 2014, + "value": 0.13831724727595748 + }, + { + "year": 2015, + "value": 0.07758843240445577 + }, + { + "year": 2016, + "value": 0.06775354217189573 + }, + { + "year": 2017, + "value": 0.18160395283957864 + }, + { + "year": 2018, + "value": 0.13174259265016847 + }, + { + "year": 2019, + "value": 0.15262170183097867 + }, + { + "year": 2020, + "value": 0.09074510628733878 + }, + { + "year": 2021, + "value": 0.09739041964602954 + } + ], + "S1S2": [], + "S3": [], + "S1S2S3": [] + } + } + }, + { + "company_name": "Company M", + "company_id": "AR0000000013", + "region": "Europe", + "sector": "Steel", + "target_probability": 0.4285714285714285, + "historic_data": { + "productions": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": null + }, + { + "year": 2011, + "value": null + }, + { + "year": 2012, + "value": null + }, + { + "year": 2013, + "value": null + }, + { + "year": 2014, + "value": null + }, + { + "year": 2015, + "value": null + }, + { + "year": 2016, + "value": null + }, + { + "year": 2017, + "value": null + }, + { + "year": 2018, + "value": null + }, + { + "year": 2019, + "value": null + }, + { + "year": 2020, + "value": null + }, + { + "year": 2021, + "value": null + } + ], + "emissions": { + "S1": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": 24085969.3736674 + }, + { + "year": 2011, + "value": 30090002.3736674 + }, + { + "year": 2012, + "value": 16848002.3736674 + }, + { + "year": 2013, + "value": 26700002.3736674 + }, + { + "year": 2014, + "value": 32200002.3736674 + }, + { + "year": 2015, + "value": 32600002.3736674 + }, + { + "year": 2016, + "value": 32600002.3736674 + }, + { + "year": 2017, + "value": 22100002.3736674 + }, + { + "year": 2018, + "value": 22600002.3736674 + }, + { + "year": 2019, + "value": 22800002.3736674 + }, + { + "year": 2020, + "value": 21300002.3736674 + }, + { + "year": 2021, + "value": 21300002.3736674 + } + ], + "S2": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": 4781476.37366743 + }, + { + "year": 2011, + "value": 4287002.37366743 + }, + { + "year": 2012, + "value": 2116002.37366743 + }, + { + "year": 2013, + "value": 1800002.37366743 + }, + { + "year": 2014, + "value": 1700002.37366743 + }, + { + "year": 2015, + "value": 1200002.37366743 + }, + { + "year": 2016, + "value": 1200002.37366743 + }, + { + "year": 2017, + "value": 1300002.37366743 + }, + { + "year": 2018, + "value": 1400002.37366743 + }, + { + "year": 2019, + "value": 1300002.37366743 + }, + { + "year": 2020, + "value": 1400002.37366743 + }, + { + "year": 2021, + "value": 1400002.37366743 + } + ], + "S1S2": [], + "S3": [], + "S1S2S3": [] + }, + "emission_intensities": { + "S1": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": null + }, + { + "year": 2011, + "value": null + }, + { + "year": 2012, + "value": null + }, + { + "year": 2013, + "value": null + }, + { + "year": 2014, + "value": null + }, + { + "year": 2015, + "value": null + }, + { + "year": 2016, + "value": null + }, + { + "year": 2017, + "value": null + }, + { + "year": 2018, + "value": null + }, + { + "year": 2019, + "value": null + }, + { + "year": 2020, + "value": null + }, + { + "year": 2021, + "value": null + } + ], + "S2": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": null + }, + { + "year": 2011, + "value": null + }, + { + "year": 2012, + "value": null + }, + { + "year": 2013, + "value": null + }, + { + "year": 2014, + "value": null + }, + { + "year": 2015, + "value": null + }, + { + "year": 2016, + "value": null + }, + { + "year": 2017, + "value": null + }, + { + "year": 2018, + "value": null + }, + { + "year": 2019, + "value": null + }, + { + "year": 2020, + "value": null + }, + { + "year": 2021, + "value": null + } + ], + "S1S2": [], + "S3": [], + "S1S2S3": [] + } + } + } +] \ No newline at end of file diff --git a/test/inputs/test_data_company.xlsx b/test/inputs/test_data_company.xlsx index c91aee15679bfff03211fbaf117b427d39cf26b7..a70aa97a6b2006288fed5a6624c7d37e783f388a 100644 GIT binary patch delta 20274 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 T;NNn_7`g+zM4_%%CV2k?ooKA~ diff --git a/test/inputs/test_projection_reference.csv b/test/inputs/test_projection_reference.csv index 637dfb69..f2364c46 100644 --- a/test/inputs/test_projection_reference.csv +++ b/test/inputs/test_projection_reference.csv @@ -1,151 +1,174 @@ company_id,variable,scope,2009,2010,2011,2012,2013,2014,2015,2016,2017,2018,2019,2020,2021,2022,2023,2024,2025,2026,2027,2028,2029,2030,2031,2032,2033,2034,2035,2036,2037,2038,2039,2040,2041,2042,2043,2044,2045,2046,2047,2048,2049,2050 +US0079031078,Productions,Production,,,,,,1682769059.4097404,1149435381.0097404,1351884837.0097404,870361875.4897404,388838913.9697404,377380291.0897404,377380291.0897404,377380291.0897404,366259340.2728721,355466110.7228301,344990944.8815064,334824469.7876075,324957588.6899231,315381472.9077415,306087553.93112904,297067515.7540051,288313287.43315214,279817035.86650306,271571158.7842437,263568277.94645953,255801232.5412393,248263072.77732906,240947053.66560304,233846628.98378706,226955445.41903454,220267336.8831139,213776318.99512047,207476583.7267767,201362494.2055286,195428579.67078915,189669530.5788151,184080193.8518372,178655568.26719305,173390799.98233673,168281178.19172108,163322130.9116665,158509220.88944477 US0079031078,Emissions,S1,74121549.8360392,77200005.8360392,74010717.8360392,78912218.8360392,75863005.8360392,79630005.8360392,70339005.8360392,70457005.8360392,64527005.8360392,54154005.8360392,49092005.8360392,49092005.8360392,49092005.8360392,48246383.03653919,47415326.313671336,46598584.762908734,45795911.801621385,45007065.094630376,44231806.481044434,43469901.90235669,42721121.33178004,41985238.70479968,41262031.85092195,40551282.426598765,39852775.84930747,39166301.232766174,38491651.323265046,37828622.43709428,37177014.3990499,36536630.48199883,35907277.34748494,35288764.98735821,34680906.66640932,34083518.86599237,33496421.22861872,32919436.50350524,32352390.493060477,31795112.000292607,31247432.77712332,30709187.473592017,30180213.587934937,29660351.41752424 US0079031078,Emissions,S2,,,,414929.856039191,90005.8360391907,290005.836039191,367805.836039191,306005.836039191,226005.836039191,360005.836039191,359005.836039191,359005.836039191,359005.836039191,359005.836039191,359005.836039191,359005.836039191,359005.836039191,359005.836039191,359005.836039191,359005.836039191,359005.836039191,359005.836039191,359005.836039191,359005.836039191,359005.836039191,359005.836039191,359005.836039191,359005.836039191,359005.836039191,359005.836039191,359005.836039191,359005.836039191,359005.836039191,359005.836039191,359005.836039191,359005.836039191,359005.836039191,359005.836039191,359005.836039191,359005.836039191,359005.836039191,359005.836039191 -US0079031078,Productions,Production,,,,,,467435849.836039,319287605.836039,375523565.836039,241767187.636039,108010809.436039,104827858.636039,104827858.636039,104827858.636039,101738705.63135336,98740586.31189725,95830818.02264066,93006797.16322431,90265996.85831198,87605964.69659486,85024320.53642474,82518754.37611254,80087024.28698672,77726954.40736198,75436432.99562328,73213410.54068322,71055897.92812204,68961964.6603692,66929737.1293342,64957396.93994087,63043179.28306517,61185371.35642054,59382310.831977926,57632384.3685491,55934026.16820241,54285716.57521923,52685980.71633755,51133387.18106591,49626546.74088698,48164111.106204666,46744771.71992254,45367258.58657405,44030339.1359569 -US0079031078,Emission Intensities,S1,,,,,,0.170354939322627,0.220299831720245,0.187623393698818,0.266897284395678,0.501375798577897,0.468310680717861,0.468310680717861,0.468310680717861,0.468310680717861,0.468310680717861,0.468310680717861,0.468310680717861,0.468310680717861,0.468310680717861,0.468310680717861,0.468310680717861,0.468310680717861,0.468310680717861,0.468310680717861,0.468310680717861,0.468310680717861,0.468310680717861,0.468310680717861,0.468310680717861,0.468310680717861,0.468310680717861,0.468310680717861,0.468310680717861,0.468310680717861,0.468310680717861,0.468310680717861,0.468310680717861,0.468310680717861,0.468310680717861,0.468310680717861,0.468310680717861,0.468310680717861 -US0079031078,Emission Intensities,S2,,,,,,0.000620418472697195,0.00115195776258245,0.00081487785023004,0.000934807730730706,0.00333305377414448,0.00342471782511225,0.00342471782511225,0.00342471782511225,0.003518902776974269,0.003615677958341389,0.003715114604466763,0.0038172859096814097,0.0039222670812718375,0.004030135394839382,0.004140970251182014,0.0042548532347404765,0.0043718681736517875,0.004492101201454301,0.004615640820489754,0.0047425779670489596,0.004873006078309115,0.005007021161111982,0.005144721862633569,0.0052862095429973485,0.005431588349884433,0.005580965295195658,0.005734450333821978,0.005892156444581179,0.006054199713380463,0.006220699418666138,0.006391778119223301,0.006567561744390149,0.006748179686753312,0.0069337648973924635,0.007124453983744289,0.007320387310157869,0.007521709101215489 -US00724F1012,Emissions,S1,136602601.492059,138294801.492059,135671201.492059,121927401.492059,115300001.492059,122700001.492059,102500001.492059,93000001.4920592,78760421.4920592,75361247.4920592,64776309.4920593,64776309.4920593,64776309.4920593,61618020.72322818,58613720.16436984,55755899.835515924,53037417.82214698,50451480.42699444,47991625.19206457,45651704.748454995,43425871.45360336,41308562.77757524,39294487.40187073,37378611.996009305,35556148.63884685,33822542.85318958,32173462.223802492,30604785.570367888,29112592.64833631,27693154.35193155,26342923.394826252,25058525.445198428,23836750.69301467,22674545.82846609,21569006.411510427,20517369.613451246,19517007.312414885,18565419.525470167,17660228.160977285,16799171.07555245,15980096.420796238,15200957.265657645 -US00724F1012,Emissions,S2,,1.49205924340197,1.49205924340197,1.49205924340197,2591521.89205924,5183042.29205924,7774562.69205924,10366083.0920592,12957603.4920592,15739424.4920592,14514120.4920592,14514120.4920592,14514120.4920592,14949544.106820976,15398030.430025605,15859971.342926374,16335770.483214166,16825843.59771059,17330618.90564191,17850537.472811166,18386053.596995503,18937635.20490537,19505764.26105253,20090937.188884106,20693665.30455063,21314475.26368715,21953909.521597765,22612526.807245698,23290902.61146307,23989629.689806964,24709318.580501173,25450598.137916207,26214116.082053695,27000539.564515308,27810555.751450766,28644872.423994288,29504218.596714117,30389345.15461554,31301025.50925401,32240056.27453163,33207257.96276758,34203475.701650605 -US00724F1012,Productions,Production,,595461601.492059,587480044.192059,579498486.892059,571516929.592059,563535372.292059,523856381.092059,461561937.892059,691152099.892059,682667227.492059,598937001.892059,598937001.892059,598937001.892059,590908860.3834996,582988327.9488125,575173962.1977798,567464340.0739579,559858057.5955279,552353729.5996194,544949989.490062,537645488.9885174,530438897.8889474,523328903.81537336,516314211.982882,509393544.9618354,502565642.4452409,495829261.0192398,489183173.9366717,482626170.8936745,476157057.8092789,469774656.6079567,463477805.00508434,457265356.2952818,451136179.1435888,445089157.3794396,439123189.7934002,433237189.9366294,427430085.9230278,421700820.23403937,416048349.52606905,410471644.4404817,404969689.4161482 -US00724F1012,Emission Intensities,S1,,0.232248059565103,0.230937548999887,0.210401587320745,0.201743807614516,0.217732563961342,0.195664317915498,0.201489754369235,0.11395526614816,0.11039236169124,0.108152124993829,0.108152124993829,0.108152124993829,0.10595735032280768,0.10380711509894776,0.10170051546529317,0.0996366659072214,0.09761469888021512,0.09563376444518766,0.09369302991120884,0.09179167948548121,0.08992891393041942,0.08810395022768863,0.08631602124906072,0.08456437543394996,0.08284827647349254,0.08116700300103726,0.07951984828891714,0.07790611995137471,0.07632513965351573,0.07477624282616943,0.07325877838653516,0.07177210846449798,0.07031560813449833,0.06888866515284298,0.06749067970034672,0.06612106413019694,0.06477924272093463,0.06346465143444847,0.0621767376788799,0.06091496007633969,0.05967878823533838 -US00724F1012,Emission Intensities,S2,,2.50571865534786e-09,2.53976157684461e-09,2.57474225930099e-09,0.00453446216179289,0.00919736816338313,0.0148410193569695,0.022458704327746,0.0187478320532961,0.0230557786549704,0.0242331337790264,0.0242331337790264,0.0242331337790264,0.02496012779239719,0.025708931626169107,0.02648019957495418,0.027274605562202806,0.02809284372906889,0.02893562904094096,0.029803697912169188,0.030697808849534266,0.0316187431150203,0.03256730540847091,0.03354432457072504,0.03455065430784679,0.035587173937082196,0.03665478915519466,0.037754432829850505,0.03888706581474602,0.0400536777891884,0.04125528812286405,0.04249294676654997,0.043767735169546476,0.04508076722463287,0.04643319024137186,0.047826185948613015,0.04926097152707141,0.05073880067288355,0.05226096469307005,0.05382879363386216,0.055443657442878026,0.05710696716616437 +US0079031078,Emission Intensities,S1,,,,,,0.6132777815614572,0.793079394192882,0.6754442173157448,0.9608302238244408,1.8049528748804293,1.6859184505842997,1.6859184505842997,1.6859184505842997,1.6859184505842997,1.6859184505842997,1.6859184505842997,1.6859184505842997,1.6859184505842997,1.6859184505842997,1.6859184505842997,1.6859184505842997,1.6859184505842997,1.6859184505842997,1.6859184505842997,1.6859184505842997,1.6859184505842997,1.6859184505842997,1.6859184505842997,1.6859184505842997,1.6859184505842997,1.6859184505842997,1.6859184505842997,1.6859184505842997,1.6859184505842997,1.6859184505842997,1.6859184505842997,1.6859184505842997,1.6859184505842997,1.6859184505842997,1.6859184505842997,1.6859184505842997,1.6859184505842997 +US0079031078,Emission Intensities,S2,,,,,,0.002233506501709902,0.00414704794529682,0.0029335602608281442,0.003365307830630542,0.011998993586920128,0.0123289841704041,0.0123289841704041,0.0123289841704041,0.012668049997107368,0.013016440650029,0.013374412576080345,0.013742229274853074,0.014120161492578616,0.014508487421421778,0.014907492904255252,0.015317471645065715,0.015738725425146434,0.016171564325235484,0.01661630695376311,0.01707328068137625,0.01754282188191281,0.018025276180003127,0.01852099870548084,0.019030354354790446,0.01955371805958395,0.020091475062704357,0.020644021201759108,0.02121176320049223,0.02179511896816965,0.02239451790719808,0.023010401229203867,0.02364322227980452,0.024293446872311907,0.02496155363061285,0.02564803434147942,0.02635339431656831,0.027078152764375737 +US00724F1012,Productions,Production,,2143661765.3714125,2114928159.0914125,2086194552.8114123,2057460946.5314126,2028727340.2514122,1885882971.9314125,1661622976.4114125,2488147559.6114125,2457602018.9714127,2156173206.8114123,2156173206.8114123,2156173206.8114123,2127271897.3805983,2098757980.6157246,2070626263.9120066,2042871624.2662475,2015489007.343899,1988473426.558628,1961819962.1642213,1935523760.3586605,1909580032.4002085,1883984053.7353415,1858731163.1383724,1833816761.8626044,1809236312.802864,1784985339.66926,1761059426.1720147,1737454215.2172248,1714165408.1134005,1691188763.7886405,1668520098.0182998,1646155282.6630106,1624090244.9169154,1602320966.5659783,1580843483.2562366,1559653883.7718616,1538748309.3228958,1518122952.8425374,1497774058.293844,1477697919.9857295,1457890881.8981287 +US00724F1012,Emission Intensities,S2,,9.020587159252296e-09,9.143141676640597e-09,9.269072133483565e-09,0.016324063782454407,0.033110525388179275,0.0534276696850902,0.08085133557988561,0.06749219539186596,0.08300080315789345,0.08723928160449504,0.08723928160449504,0.08723928160449504,0.0898564600526299,0.0925521538542088,0.09532871846983507,0.09818858002393012,0.10113423742464803,0.10416826454738747,0.10729331248380909,0.11051211185832337,0.11382747521407308,0.11724229947049528,0.12075956845461014,0.12438235550824844,0.1281138261734959,0.1319572409587008,0.13591595818746183,0.1399934369330857,0.14419324004107825,0.1485190372423106,0.15297460835957993,0.15756384661036735,0.16229076200867837,0.16715948486893872,0.17217426941500688,0.1773394974974571,0.18265968242238081,0.18813947289505226,0.19378365708190384,0.19959716679436096,0.2055850817981918 +FR0000125338,Emission Intensities,S1,,0.4605612425432028,0.47676992001722285,0.4935410421590952,0.4271137111711944,0.4050475894153404,1.7660044449376848,0.12641248982232864,0.11422094242724208,0.12432145953306709,0.14432694163463483,0.11410264669076498,0.11410264669076498,0.11410264669076498,0.11410264669076498,0.11410264669076498,0.11410264669076498,0.11410264669076498,0.11410264669076498,0.11410264669076498,0.11410264669076498,0.11410264669076498,0.11410264669076498,0.11410264669076498,0.11410264669076498,0.11410264669076498,0.11410264669076498,0.11410264669076498,0.11410264669076498,0.11410264669076498,0.11410264669076498,0.11410264669076498,0.11410264669076498,0.11410264669076498,0.11410264669076498,0.11410264669076498,0.11410264669076498,0.11410264669076498,0.11410264669076498,0.11410264669076498,0.11410264669076498,0.11410264669076498 +FR0000125338,Emission Intensities,S2,,0.019750986012689604,0.019542782620390428,0.016717335291559405,0.012755111704326829,0.016135716380506274,0.0816777616053006,0.07909610646488868,0.08497232976008089,0.078447410507817,0.08024699005813475,0.14391033829225056,0.14391033829225056,0.14391033829225056,0.14391033829225056,0.14391033829225056,0.14391033829225056,0.14391033829225056,0.14391033829225056,0.14391033829225056,0.14391033829225056,0.14391033829225056,0.14391033829225056,0.14391033829225056,0.14391033829225056,0.14391033829225056,0.14391033829225056,0.14391033829225056,0.14391033829225056,0.14391033829225056,0.14391033829225056,0.14391033829225056,0.14391033829225056,0.14391033829225056,0.14391033829225056,0.14391033829225056,0.14391033829225056,0.14391033829225056,0.14391033829225056,0.14391033829225056,0.14391033829225056,0.14391033829225056 +US17275R1023,Productions,Production,8015760033.846192,8169984033.846192,8141472033.846192,8328096033.846192,8474544033.846192,8080560033.846192,8026128033.846192,364176033.84621,381024033.84621,383616033.84621,360288033.84621,360288033.84621,360288033.84621,360288033.84621,360288033.84621,360288033.84621,360288033.84621,360288033.84621,360288033.84621,360288033.84621,360288033.84621,360288033.84621,360288033.84621,360288033.84621,360288033.84621,360288033.84621,360288033.84621,360288033.84621,360288033.84621,360288033.84621,360288033.84621,360288033.84621,360288033.84621,360288033.84621,360288033.84621,360288033.84621,360288033.84621,360288033.84621,360288033.84621,360288033.84621,360288033.84621,360288033.84621 +US17275R1023,Emissions,S1,78192009.4017252,80575879.4017252,70935799.4017252,80283565.4017252,73222380.0683918,66161194.7350585,59100009.4017252,47700009.4017252,51300009.4017252,35700009.4017252,33100009.4017252,33100009.4017252,33100009.4017252,30518123.69432973,28137631.700306006,25942824.192994807,23919217.305744935,22053456.95068684,20333230.69308729,18747186.49973064,17284857.825134885,15936594.54123526,14693499.254729772,13547368.591835294,12490639.062983416,11516337.15020899,10618033.287850501,9789799.432873962,9026169.94482046,8322105.517218218,7672959.922437125,7074449.350529973,6522624.139722799,6013842.711999543,5544747.541778029,5112242.9990909,4713474.921055327,4345811.776820527,4006827.30169772,3694284.485872535,3406120.812038957,3140434.6445357157 +US17275R1023,Emissions,S2,480089.401725152,670709.401725152,81181.4017251516,74013.4017251516,159212.601725152,244411.801725152,329611.001725152,414810.201725152,500009.401725152,470009.401725152,290009.401725152,290009.401725152,290009.401725152,294822.6613068933,299715.8061187802,304690.1620086893,309747.0768294733,314887.9208041758,320114.0868973071,325426.9911922825,330828.07327512465,336318.7966245339,341900.6490084331,347575.1428870937,353343.8158229522,359208.2308972285,365169.9771334591,371230.66992805904,377391.95148803026,383655.4912759345,390022.9864622514,396496.1623852441,403076.7730184576,409766.6014459757,416567.46034556616,423481.19247984415,430509.67119558796,437654.80093134136,444918.51773344097,452302.7897806078,459809.6179172454,467441.0361955896 +US17275R1023,Emission Intensities,S1,0.12642200334933337,0.12781706704936452,0.1129191326119494,0.12493551988086661,0.11197794735579024,0.10611258132788423,0.09543033933877008,1.6975090736130565,1.7448981239716346,1.2060812922950988,1.1906477083539972,1.1906477083539972,1.1906477083539972,1.1906477083539972,1.1906477083539972,1.1906477083539972,1.1906477083539972,1.1906477083539972,1.1906477083539972,1.1906477083539972,1.1906477083539972,1.1906477083539972,1.1906477083539972,1.1906477083539972,1.1906477083539972,1.1906477083539972,1.1906477083539972,1.1906477083539972,1.1906477083539972,1.1906477083539972,1.1906477083539972,1.1906477083539972,1.1906477083539972,1.1906477083539972,1.1906477083539972,1.1906477083539972,1.1906477083539972,1.1906477083539972,1.1906477083539972,1.1906477083539972,1.1906477083539972,1.1906477083539972 +US17275R1023,Emission Intensities,S2,0.0007762156826159988,0.001063942574471082,0.000129228591830085,0.0001151780289828102,0.00024348157377164316,0.0003919996803551076,0.0005322315522932028,0.01476192751505496,0.017007120996922403,0.01587869460326034,0.010431991887807995,0.010431991887807995,0.010431991887807995,0.010744951644442235,0.011067300193775503,0.011399319199588769,0.011741298775576432,0.012093537738843725,0.012456343871009037,0.012830034187139308,0.013214935212753487,0.013611383269136093,0.014019724767210176,0.014440316510226483,0.014873526005533277,0.015319731785699276,0.015779323739270254,0.01625270345144836,0.016740284554991814,0.01724249309164157,0.017759767884390817,0.018292560920922542,0.018841337748550218,0.019406577881006724,0.019988775217436926,0.020588438473960035,0.021206091628178835,0.021842274377024202,0.02249754260833493,0.023172468886584977,0.023867642953182527,0.024583672241778005 +CH0198251305,Productions,Production,,3760992023.3008924,3808944023.3008924,3833568023.3008924,3708452183.3008924,3668988983.3008924,3680795543.3008924,3393083543.3008957,3238392983.3008957,3244393463.3008957,2969511863.3008957,2684119703.3008957,2684119703.3008957,2655556856.2046657,2627297958.3820987,2599339775.381088,2571679107.1686926,2544312787.764869,2517237684.880099,2490450699.5568748,2463948765.8149996,2437728850.300662,2411787951.9392447,2386123101.591828,2360731361.7153487,2335609826.0263753,2310755619.1684613,2286165896.3830376,2261837843.1838083,2237768675.03461,2213955637.0307,2190396003.5834374,2167087078.1083155,2144026192.7163184,2121210707.9085593,2098638012.2741702,2076305522.1914046,2054210681.531922,2032350961.3682194,2010723859.6841748,1989326901.0886729,1968157636.5322766 +CH0198251305,Emissions,S1,,116400006.472471,123540195.472471,127800006.472471,115550006.472471,115480006.472471,119510006.472471,106730006.472471,105960006.472471,95230006.4724713,69980006.4724713,45260006.4724712,45260006.4724712,44933479.69583513,44609308.63551839,44287476.296285756,43967965.805513546,43650760.41230505,43335843.48661233,43023198.518364355,42712809.11660145,42404659.00861597,42098732.03909914,41795012.169294134,41493483.47615518,41194130.15151277,40896936.50124492,40601886.944454335,40308966.012651585,40018158.34894412,39729448.70723118,39442821.95140447,39158263.054554634,38875757.09818346,38595289.27142171,38316844.87025267,38040409.296741255,37765968.05826868,37493506.76677267,37223011.137993135,36954466.99072329,36687860.24606618 +CH0198251305,Emissions,S2,,245006.472471246,331647.472471246,370006.472471246,786006.472471246,636006.472471246,654006.472471246,1400006.47247125,5000006.47247125,5080006.47247125,5370006.47247125,5000006.47247125,5000006.47247125,5072006.47247125,5145043.27112912,5219131.798326207,5294287.198933871,5370524.835909337,5447860.293436127,5526309.380109715,5605888.132169059,5686612.816774653,5768499.935333804,5851566.226873774,5935828.671463506,6021304.493684621,6108011.166152391,6195966.413087424,6285188.213938775,6375694.807059228,6467504.693433512,6560636.640460185,6655109.685787998,6750943.141207488,6848156.596598618,6946769.923935253,7046803.281347315,7148277.11724142,7251212.174480857,7355629.494625761,7461550.422234341,7568996.609226044 +CH0198251305,Emission Intensities,S1,,0.401102707620006,0.4203477193491828,0.43204870079677804,0.4038148558653588,0.40791097784566077,0.42079209933357004,0.4076589527582292,0.4240503518147712,0.380404195065648,0.3054174981052529,0.21853335496247459,0.21853335496247459,0.21853335496247459,0.21853335496247459,0.21853335496247459,0.21853335496247459,0.21853335496247459,0.21853335496247459,0.21853335496247459,0.21853335496247459,0.21853335496247459,0.21853335496247459,0.21853335496247459,0.21853335496247459,0.21853335496247459,0.21853335496247459,0.21853335496247459,0.21853335496247459,0.21853335496247459,0.21853335496247459,0.21853335496247459,0.21853335496247459,0.21853335496247459,0.21853335496247459,0.21853335496247459,0.21853335496247459,0.21853335496247459,0.21853335496247459,0.21853335496247459,0.21853335496247459,0.21853335496247459 +CH0198251305,Emission Intensities,S2,,0.0008442676462899023,0.001128436442471657,0.0012508670392910783,0.0027468721126020315,0.00224657090025156,0.0023027423782485457,0.005347373164168032,0.020009950681518757,0.020292509101606883,0.023436607458394043,0.024142024591353756,0.024142024591353756,0.02479600909065374,0.025467709408430596,0.026157605449368064,0.026866190118311616,0.027593969672430482,0.028341464082919418,0.02910920740649861,0.029897748166977177,0.030707649747152857,0.03153949079132789,0.03239386561872866,0.0332713846481245,0.034172674833949,0.03509838011423544,0.036049161870686366,0.037025699401206,0.03802869040523312,0.03905885148222115,0.04011691864362157,0.04120364783873651,0.04231981549481617,0.04346621907178697,0.04464367763200675,0.04585303242545411,0.04709514749076997,0.04837091027258076,0.049681232255544334,0.05102704961557157,0.05240932388868893 +US1266501006,Productions,Production,,4341600001.354788,6026400001.354788,6039360001.354788,6207840001.354788,6091200001.354788,6363360001.354788,3563902801.354802,764445601.3548025,739614241.3548025,797765761.3548025,718528321.3548025,718528321.3548025,718528321.3548025,718528321.3548025,718528321.3548025,718528321.3548025,718528321.3548025,718528321.3548025,718528321.3548025,718528321.3548025,718528321.3548025,718528321.3548025,718528321.3548025,718528321.3548025,718528321.3548025,718528321.3548025,718528321.3548025,718528321.3548025,718528321.3548025,718528321.3548025,718528321.3548025,718528321.3548025,718528321.3548025,718528321.3548025,718528321.3548025,718528321.3548025,718528321.3548025,718528321.3548025,718528321.3548025,718528321.3548025,718528321.3548025 +US1266501006,Emissions,S1,,109324454.376334,156899254.376334,154230874.376334,141984778.376334,131154736.376334,133757296.376334,120150105.376334,89756230.3763341,57205670.3763341,46188978.3763341,38589016.3763341,38589016.3763341,35645597.56148989,32926691.189126387,30415172.330716796,28095222.280114714,25952228.92003426,23972694.68818428,22144151.563384872,20455082.53620951,18894849.069538545,17453624.09213722,16122330.103220697,14892581.998160105,13756634.255219504,12707332.150681382,11738066.695091048,10842733.006787553,10015691.860538397,9251734.169093572,8546048.173947353,7894189.138660087,7292051.353854537,6735842.277561294,6222058.648037217,5747464.4186043935,5309070.375533039,4904115.310592343,4530048.629685294,4184514.2880286276,3865335.950694237 +US1266501006,Emissions,S2,,3250751.37633413,3357343.37633413,3712790.37633413,3748376.12633413,3783961.87633413,3819547.62633413,3855133.37633413,3576861.37633413,2912586.37633413,2534464.37633413,2330625.37633413,2330625.37633413,2330625.37633413,2330625.37633413,2330625.37633413,2330625.37633413,2330625.37633413,2330625.37633413,2330625.37633413,2330625.37633413,2330625.37633413,2330625.37633413,2330625.37633413,2330625.37633413,2330625.37633413,2330625.37633413,2330625.37633413,2330625.37633413,2330625.37633413,2330625.37633413,2330625.37633413,2330625.37633413,2330625.37633413,2330625.37633413,2330625.37633413,2330625.37633413,2330625.37633413,2330625.37633413,2330625.37633413,2330625.37633413,2330625.37633413 +US1266501006,Emission Intensities,S1,,0.3263416547528934,0.33741775127109996,0.3309675415058707,0.2964191614725413,0.2790526305258781,0.27241811883473793,0.4369213899675792,1.521678905098956,1.0023948250634593,0.750357045582786,0.6960249684999396,0.6960249684999396,0.6960249684999396,0.6960249684999396,0.6960249684999396,0.6960249684999396,0.6960249684999396,0.6960249684999396,0.6960249684999396,0.6960249684999396,0.6960249684999396,0.6960249684999396,0.6960249684999396,0.6960249684999396,0.6960249684999396,0.6960249684999396,0.6960249684999396,0.6960249684999396,0.6960249684999396,0.6960249684999396,0.6960249684999396,0.6960249684999396,0.6960249684999396,0.6960249684999396,0.6960249684999396,0.6960249684999396,0.6960249684999396,0.6960249684999396,0.6960249684999396,0.6960249684999396,0.6960249684999396 +US1266501006,Emission Intensities,S2,,0.009703735448715611,0.007220093280815844,0.007967361320818128,0.007825419886254877,0.008050982713813836,0.0077791194002462755,0.014019049155408301,0.06064018597940113,0.05103622581434676,0.04117331165166648,0.04203718069224924,0.04203718069224924,0.04203718069224924,0.04203718069224924,0.04203718069224924,0.04203718069224924,0.04203718069224924,0.04203718069224924,0.04203718069224924,0.04203718069224924,0.04203718069224924,0.04203718069224924,0.04203718069224924,0.04203718069224924,0.04203718069224924,0.04203718069224924,0.04203718069224924,0.04203718069224924,0.04203718069224924,0.04203718069224924,0.04203718069224924,0.04203718069224924,0.04203718069224924,0.04203718069224924,0.04203718069224924,0.04203718069224924,0.04203718069224924,0.04203718069224924,0.04203718069224924,0.04203718069224924,0.04203718069224924 +FR0000120644,Productions,Production,,1990487529.3093767,1881092169.3093767,1746463689.3093767,1768197609.3093767,1800040329.3093767,1741487049.3093767,1846359369.3093767,1782635049.3093767,1492136649.3093767,1480680009.3093767,1600080489.3093767,1600080489.3093767,1600080489.3093767,1600080489.3093767,1600080489.3093767,1600080489.3093767,1600080489.3093767,1600080489.3093767,1600080489.3093767,1600080489.3093767,1600080489.3093767,1600080489.3093767,1600080489.3093767,1600080489.3093767,1600080489.3093767,1600080489.3093767,1600080489.3093767,1600080489.3093767,1600080489.3093767,1600080489.3093767,1600080489.3093767,1600080489.3093767,1600080489.3093767,1600080489.3093767,1600080489.3093767,1600080489.3093767,1600080489.3093767,1600080489.3093767,1600080489.3093767,1600080489.3093767,1600080489.3093767 +FR0000120644,Emissions,S1,,39499002.5859383,36193002.5859383,35461094.5859383,31838172.5859383,30202558.5859383,31817606.5859383,26625135.5859383,15129771.5859383,13457443.5859383,12966980.5859383,13136322.5859383,13136322.5859383,12822864.162859576,12516885.472587062,12218208.034024915,11926657.62498632,11642064.180567568,11364261.693947122,11093088.11955182,10828385.278533725,10569998.766502466,10317777.863459283,10071575.445880217,9831247.900897162,9596655.042526737,9367660.02989809,9144129.287431955,8925932.426924387,8712942.171489736,8505034.281318493,8302087.481206691,8103983.389814604,7910606.450613472,7721843.864479967,7537585.523899096,7357723.948737142,7182154.223547193,7010773.936370689,6843483.118999276,6680184.188662133,6520781.891104754 +FR0000120644,Emissions,S2,,6236002.58593829,5189002.58593829,7189303.58593829,4181124.58593829,1547095.58593829,970947.585938292,4503672.58593829,5010565.58593829,2543866.58593829,2081746.58593829,2001731.58593829,2001731.58593829,1924792.0804620935,1850809.8583422203,1779671.2520317389,1711266.9629635108,1645491.893622009,1582244.9860697044,1521429.066679927,1462950.6968376513,1406720.0293788146,1352650.6705476036,1300659.5472596153,1250666.779466954,1202595.5574291653,1156372.0237014405,1111925.1596587806,1069186.67638177,1028090.9097363176,988574.719486161,950577.3922831323,914040.5483861348,878908.051965514,845125.9248550121,812642.2636187936,781407.1598061217,751372.6232711641,722492.508440115,694722.4434123492,668019.7617866775,642343.437107961 +FR0000120644,Emission Intensities,S1,,0.2571767298091901,0.2493558376174469,0.26314648775520477,0.2333578071485585,0.21745354973459868,0.23678394939387504,0.18688764653807832,0.10999550347095743,0.11688505134867072,0.11349654708456793,0.1063988604643518,0.1063988604643518,0.103314351468384,0.1003192625630514,0.09741100145485783,0.09458705100104248,0.09184496703095586,0.08918237623059418,0.08659697408846109,0.08408652290097922,0.08164884983572471,0.07928184505080883,0.07698345986877882,0.07475170500345736,0.07258464883818623,0.07048041575398359,0.06843718450616819,0.06645318664804535,0.0645267050002903,0.06265607216470423,0.06083966908105664,0.059075923625764866,0.057363309251198036,0.05570034366442762,0.054085587544281125,0.052517643295588404,0.05099515383954254,0.04951680143912814,0.04808130655860059,0.04668742675602903,0.045333955607944613 +FR0000120644,Emission Intensities,S2,,0.0406024113809952,0.03575022777243828,0.05334973469193888,0.030645542301646213,0.011138838651161208,0.007225710187595436,0.03161226231683834,0.036427495363629124,0.02209483358579754,0.018220976567613723,0.01621321022729142,0.01621321022729142,0.014591889204562279,0.013132700284106052,0.011819430255695446,0.010637487230125902,0.009573738507113311,0.008616364656401981,0.007754728190761783,0.006979255371685604,0.0062813298345170444,0.00565319685106534,0.005087877165958806,0.004579089449362925,0.004121180504426633,0.0037090624539839697,0.003338156208585573,0.003004340587727016,0.0027039065289543142,0.002433515876058883,0.0021901642884529946,0.0019711478596076953,0.0017740330736469257,0.0015966297662822332,0.00143696678965401,0.001293270110688609,0.001163943099619748,0.0010475487896577731,0.0009427939106919958,0.0008485145196227963,0.0007636630676605167 +US24703L1035,Productions,Production,5271868803.094344,5642576643.094344,5746580643.094344,5808127683.094344,5823226083.094344,5740165443.094344,5610643203.094344,5654577603.094344,5527232643.094344,5421517923.094344,5301547203.094344,5301547203.094344,5301547203.094344,5301547203.094344,5301547203.094344,5301547203.094344,5301547203.094344,5301547203.094344,5301547203.094344,5301547203.094344,5301547203.094344,5301547203.094344,5301547203.094344,5301547203.094344,5301547203.094344,5301547203.094344,5301547203.094344,5301547203.094344,5301547203.094344,5301547203.094344,5301547203.094344,5301547203.094344,5301547203.094344,5301547203.094344,5301547203.094344,5301547203.094344,5301547203.094344,5301547203.094344,5301547203.094344,5301547203.094344,5301547203.094344,5301547203.094344 +US24703L1035,Emissions,S1,,,,1174220.85954061,1310000.85954061,1280000.85954061,1150000.85954061,1230000.85954061,1290000.85954061,1170000.85954061,910000.859540609,910000.859540609,910000.859540609,910000.859540609,910000.859540609,910000.859540609,910000.859540609,910000.859540609,910000.859540609,910000.859540609,910000.859540609,910000.859540609,910000.859540609,910000.859540609,910000.859540609,910000.859540609,910000.859540609,910000.859540609,910000.859540609,910000.859540609,910000.859540609,910000.859540609,910000.859540609,910000.859540609,910000.859540609,910000.859540609,910000.859540609,910000.859540609,910000.859540609,910000.859540609,910000.859540609,910000.859540609 +US24703L1035,Emissions,S2,,,,132861.859540609,120000.859540609,140000.859540609,160000.859540609,170000.859540609,180000.859540609,190000.859540609,190000.859540609,190000.859540609,190000.859540609,195700.88532682727,201571.9118866321,207619.06924323106,213847.641320528,220263.07056014385,226870.96267694817,233677.09155725662,240687.40430397433,247908.02643309356,255345.26722608638,263005.62524286896,270895.79400015506,279022.6678201597,287393.3478547645,296015.14829040744,304895.60273911967,314042.47082129325,323463.74494593206,333167.65729431005,343162.68701313937,353457.56762353354,364061.29465223954,374983.13349180674,386232.627496561,397819.60632145783,409754.1945111016,422046.82034643466,434708.2249568277,447749.4717055326 +US24703L1035,Emission Intensities,S1,,,,0.0026201046481710228,0.0029154992262681854,0.002889953487247187,0.0026563819156111223,0.0028190984824265257,0.003024734477303765,0.0027968571449436134,0.002224560243991176,0.002224560243991176,0.002224560243991176,0.002224560243991176,0.002224560243991176,0.002224560243991176,0.002224560243991176,0.002224560243991176,0.002224560243991176,0.002224560243991176,0.002224560243991176,0.002224560243991176,0.002224560243991176,0.002224560243991176,0.002224560243991176,0.002224560243991176,0.002224560243991176,0.002224560243991176,0.002224560243991176,0.002224560243991176,0.002224560243991176,0.002224560243991176,0.002224560243991176,0.002224560243991176,0.002224560243991176,0.002224560243991176,0.002224560243991176,0.002224560243991176,0.002224560243991176,0.002224560243991176,0.002224560243991176,0.002224560243991176 +US24703L1035,Emission Intensities,S2,,,,0.0002964620947742204,0.000267070369148347,0.00031609039105817065,0.000369585280080306,0.0003896331953142924,0.00042205770776825637,0.000454192197568326,0.0004644702848649636,0.0004644702848649636,0.0004644702848649636,0.00047840439341091255,0.00049275652521324,0.0005075392209696372,0.0005227653975987263,0.0005384483595266881,0.0005546018103124888,0.0005712398646218636,0.0005883770605605194,0.000606028372377335,0.0006242092235486551,0.0006429355002551148,0.0006622235652627682,0.0006820902722206513,0.0007025529803872709,0.000723629569798889,0.0007453384568928557,0.0007676986105996414,0.0007907295689176307,0.0008144514559851596,0.0008388849996647144,0.0008640515496546559,0.0008899730961442956,0.0009166722890286245,0.0009441724576994832,0.0009724976314304677,0.0010016725603733817,0.0010317227371845832,0.0010626744193001207,0.0010945546518791242 +TW0002308004,Productions,Production,,,,76114085.42779164,76114085.42779164,76114085.42779164,76114085.42779164,76114085.42779164,76114085.42779164,76114085.42779164,76114085.42779164,76114085.42779164,76114085.42779164,76114085.42779164,76114085.42779164,76114085.42779164,76114085.42779164,76114085.42779164,76114085.42779164,76114085.42779164,76114085.42779164,76114085.42779164,76114085.42779164,76114085.42779164,76114085.42779164,76114085.42779164,76114085.42779164,76114085.42779164,76114085.42779164,76114085.42779164,76114085.42779164,76114085.42779164,76114085.42779164,76114085.42779164,76114085.42779164,76114085.42779164,76114085.42779164,76114085.42779164,76114085.42779164,76114085.42779164,76114085.42779164,76114085.42779164 +TW0002308004,Emissions,S1,11074001.5077199,8500001.50771989,9328837.50771989,8328346.50771989,7914001.50771989,7250001.50771989,7020001.50771989,7038001.50771989,5800001.50771989,4000001.50771989,4500001.50771989,4500001.50771989,4500001.50771989,4316682.013685079,4140830.525346606,3972142.8136895793,3810327.043274751,3655103.267353349,3506202.943549745,3363368.4692740724,3226352.7360610473,3094918.702063974,2968838.981964343,2847895.4535875516,2731878.880544171,2620588.550243927,2513831.926656138,2411424.317215879,2313188.553299604,2218954.683717444,2128559.680691908,2041847.1578143206,1958667.099491052,1878875.6014114742,1802334.621588642,1728911.7415419943,1658479.9372089077,1590917.359188779,1526107.1219394456,1463937.1015612492,1404299.741818902,1347091.8680655672 +TW0002308004,Emissions,S2,266001.507719888,350001.507719888,329353.507719888,319181.507719888,250001.507719888,220001.507719888,230001.507719888,247001.507719888,3400001.50771989,2900001.50771989,2500001.50771989,2500001.50771989,2500001.50771989,2500001.50771989,2500001.50771989,2500001.50771989,2500001.50771989,2500001.50771989,2500001.50771989,2500001.50771989,2500001.50771989,2500001.50771989,2500001.50771989,2500001.50771989,2500001.50771989,2500001.50771989,2500001.50771989,2500001.50771989,2500001.50771989,2500001.50771989,2500001.50771989,2500001.50771989,2500001.50771989,2500001.50771989,2500001.50771989,2500001.50771989,2500001.50771989,2500001.50771989,2500001.50771989,2500001.50771989,2500001.50771989,2500001.50771989 +TW0002308004,Emission Intensities,S1,,,,1.418073542280774,1.3475227214987966,1.2344629645348417,1.195300699321421,1.1983655722511666,0.9875704229719812,0.6810831299973996,0.7662184891570044,0.7662184891570044,0.7662184891570044,0.7622277738827984,0.7582578435526066,0.7543085899116757,0.7503799052690783,0.7464716824947764,0.7425838150167001,0.7387161968178418,0.7348687224333647,0.7310412869477271,0.7272337859918219,0.7234461157401301,0.7196781729078897,0.7159298547482796,0.7122010590496175,0.7084916841325726,0.7048016288473934,0.7011307925711492,0.6974790752049861,0.6938463771713977,0.6902325994115099,0.6866376433823792,0.6830614110543057,0.6795038049081604,0.6759647279327254,0.6724440836220491,0.6689417759728139,0.6654577094817191,0.661991789142876,0.6585439204452178 +TW0002308004,Emission Intensities,S2,,,,0.05434726459367484,0.04256793630035172,0.037459814750775366,0.03916252193396724,0.04205712414539412,0.5789206990058725,0.493785339846264,0.4256770525185816,0.4256770525185816,0.4256770525185816,0.4256770525185816,0.4256770525185816,0.4256770525185816,0.4256770525185816,0.4256770525185816,0.4256770525185816,0.4256770525185816,0.4256770525185816,0.4256770525185816,0.4256770525185816,0.4256770525185816,0.4256770525185816,0.4256770525185816,0.4256770525185816,0.4256770525185816,0.4256770525185816,0.4256770525185816,0.4256770525185816,0.4256770525185816,0.4256770525185816,0.4256770525185816,0.4256770525185816,0.4256770525185816,0.4256770525185816,0.4256770525185816,0.4256770525185816,0.4256770525185816,0.4256770525185816,0.4256770525185816 +FR0000120321,Productions,Production,,2836166403.246948,2858198403.246948,2878027203.246948,3007082883.246948,3023360643.246948,3126729603.246948,3136060803.246948,3244017603.246948,3444768003.246948,3556872003.246948,3364675203.246948,3364675203.246948,3382888660.46209,3401200709.667154,3419611884.554363,3438122721.7048903,3456733760.6045,3475445543.659266,3494258616.2113833,3513173526.55506,3532190825.9524975,3551311068.649956,3570534811.89391,3589862615.9472847,3609295044.105788,3628832662.714327,3648476041.183511,3668225752.0062494,3688082370.774437,3708046476.1957264,3728118650.1103964,3748299477.508308,3768589546.545954,3788989448.563602,3809499778.102525,3830121132.9223332,3850854114.018391,3871699325.639336,3892657375.304688,3913728873.822554,3934914435.3074327 +FR0000120321,Emissions,S1,,185584163.90193,188513981.90193,189986958.90193,200994691.90193,201036494.90193,213050961.90193,231671486.101929,221222495.90193,231986764.90193,240369173.90193,226132940.90193,226132940.90193,226179972.17046288,226227013.22058797,226274064.0543397,226321124.67375284,226368195.08086264,226415275.27770475,226462365.26631522,226509465.04873058,226556574.62698776,226603694.00312406,226650823.17917728,226697962.1571856,226745110.93918768,226792269.52722248,226839437.92332953,226886616.1295487,226933804.14792028,226981001.98048505,227028209.62928414,227075427.09635913,227122654.38375208,227169891.49350536,227217138.42766187,227264395.18826488,227311661.7773581,227358938.19698572,227406224.44919223,227453520.53602263,227500826.45952237 +FR0000120321,Emissions,S2,,,,0.901929562977962,0.901929562977962,0.901929562977962,6235.05442956298,12469.206929563,18703.359429563,24937.511929563,23268.401929563,15845.901929563,15845.901929563,15845.901929563,15845.901929563,15845.901929563,15845.901929563,15845.901929563,15845.901929563,15845.901929563,15845.901929563,15845.901929563,15845.901929563,15845.901929563,15845.901929563,15845.901929563,15845.901929563,15845.901929563,15845.901929563,15845.901929563,15845.901929563,15845.901929563,15845.901929563,15845.901929563,15845.901929563,15845.901929563,15845.901929563,15845.901929563,15845.901929563,15845.901929563,15845.901929563,15845.901929563 +FR0000120321,Emission Intensities,S1,,0.848035842119658,0.8547836296716036,0.8555273503291261,0.8662518820353672,0.8617671794294748,0.8830761903369287,0.95739931342287,0.8837940780652285,0.8727869250687168,0.8758213652122596,0.8710151016243313,0.8710151016243313,0.8710151016243313,0.8710151016243313,0.8710151016243313,0.8710151016243313,0.8710151016243313,0.8710151016243313,0.8710151016243313,0.8710151016243313,0.8710151016243313,0.8710151016243313,0.8710151016243313,0.8710151016243313,0.8710151016243313,0.8710151016243313,0.8710151016243313,0.8710151016243313,0.8710151016243313,0.8710151016243313,0.8710151016243313,0.8710151016243313,0.8710151016243313,0.8710151016243313,0.8710151016243313,0.8710151016243313,0.8710151016243313,0.8710151016243313,0.8710151016243313,0.8710151016243313,0.8710151016243313 +FR0000120321,Emission Intensities,S2,,,,4.061465132437621e-09,3.887158282638696e-09,3.866229840063312e-09,2.5843713931394353e-05,5.15299070859282e-05,7.472078387137044e-05,9.382058655401627e-05,8.478193444460569e-05,6.103498156641072e-05,6.103498156641072e-05,6.103498156641072e-05,6.103498156641072e-05,6.103498156641072e-05,6.103498156641072e-05,6.103498156641072e-05,6.103498156641072e-05,6.103498156641072e-05,6.103498156641072e-05,6.103498156641072e-05,6.103498156641072e-05,6.103498156641072e-05,6.103498156641072e-05,6.103498156641072e-05,6.103498156641072e-05,6.103498156641072e-05,6.103498156641072e-05,6.103498156641072e-05,6.103498156641072e-05,6.103498156641072e-05,6.103498156641072e-05,6.103498156641072e-05,6.103498156641072e-05,6.103498156641072e-05,6.103498156641072e-05,6.103498156641072e-05,6.103498156641072e-05,6.103498156641072e-05,6.103498156641072e-05,6.103498156641072e-05 +CH0038863350,Productions,Production,,125595364.15776384,127565284.15776384,138062884.15776384,203459044.15776384,222847204.15776384,258448324.15776387,260094244.15776387,263023204.15776387,279689764.1577639,262841764.15776387,236895844.15776384,236895844.15776384,238404507.86872736,239922779.45694542,241450720.10988122,242988391.40466845,244535855.3105928,246093174.19158942,247660410.80875614,249237628.32288298,250824890.29699737,252422260.69892588,254029803.90387222,255647584.6970115,257275668.2761012,258914120.25410867,260563006.66185537,262222393.95067793,263892348.99510625,265572939.09555858,267264231.98105374,268966295.8119406,270679199.18264526,272403011.124435,274137801.1082008,275883639.0472566,277640595.3001572,279408740.6735336,281188146.42494667,282978884.2657587,284781026.3640235 +CH0038863350,Emissions,S1,,1968704.15493443,2832949.15493443,12866001.1549344,13663001.1549344,14934001.1549344,16918001.1549344,16977001.1549344,17293001.1549344,18162001.1549344,17976001.1549344,16065001.1549344,16065001.1549344,16364025.718732808,16668616.151396861,16978876.0527641,17294910.951019026,17616828.33858624,17944737.708691645,18278750.592604212,18618980.59757091,18965543.445457764,19318557.01211013,19678141.36744561,20044418.816293254,20417513.939992867,20797553.638768673,21184667.174891673,21578986.21664541,21980644.883110072,22389779.789780207,22806530.095031507,23231037.54745253,23663446.534057412,24103904.12939596,24552560.145577908,25009567.18322823,25475080.683390956,25949258.980399072,26432263.355728507,26924258.092854537,27425410.533129256 +CH0038863350,Emissions,S2,,52966.1549344293,58302.1549344293,61001.1549344293,202001.154934429,130001.154934429,409001.154934429,1265001.15493443,1818001.15493443,2090001.15493443,2289001.15493443,2403001.15493443,2403001.15493443,2475091.189582463,2549343.9252699367,2625824.243028035,2704598.970318876,2785736.9394284426,2869309.047611296,2955388.3190396354,3044049.9686108246,3135371.4676691494,3229432.611699224,3326315.590050201,3426105.0577517073,3528888.2094842587,3634754.8557687867,3743797.5014418503,3856111.426485106,3971794.7692796593,4090948.612358049,4213677.070728791,4340087.382850654,4470290.004336175,4604398.70446626,4742530.665600248,4884806.585568255,5031350.783135302,5182291.306629362,5337760.045828243,5497892.84720309,5662829.632619183 +CH0038863350,Emission Intensities,S1,,0.20314767204226442,0.28781357945742975,1.207734982396956,0.8703102666237157,0.8685083382555276,0.8483602889764117,0.84593158022556,0.852081836983182,0.841573647418788,0.8863468700054724,0.8788774480539012,0.8788774480539012,0.8770577818192918,0.8752418831010895,0.8734297440988639,0.8716213570283349,0.8698167141213392,0.8680158076257973,0.8662186298056799,0.8644251729409745,0.8626354293276527,0.8608493912776366,0.8590670511187662,0.8572884011947663,0.8555134338652136,0.8537421415055036,0.8519745165068185,0.8502105512760939,0.8484502382359863,0.846693569824841,0.844940538496659,0.8431911367210649,0.8414453569832747,0.8397031917840633,0.837964633639732,0.836229675082077,0.8344983086583571,0.8327705269312611,0.8310463224788768,0.8293256878946584,0.8276086157873951 +CH0038863350,Emission Intensities,S2,,0.00546549924476466,0.005923209695638932,0.0057261947899539594,0.012867134900723496,0.007560404333174592,0.020509535069434367,0.06303259428534648,0.0895787694602712,0.09684449858047572,0.1128643123478058,0.13146239470207932,0.13146239470207932,0.1354062665431417,0.13946845453943596,0.14365250817561903,0.1479620834208876,0.15240094592351422,0.15697297430121965,0.16168216353025625,0.16653262843616393,0.17152860728924885,0.17667446550792631,0.1819746994731641,0.18743394045735903,0.1930569586710798,0.1988486674312122,0.2048141274541486,0.21095855127777305,0.21728730781610625,0.22380592705058944,0.23052010486210714,0.23743570800797037,0.24455877924820948,0.2518955426256558,0.25945240890442545,0.2672359811715582,0.27525306060670496,0.28351065242490614,0.29201597199765333,0.30077645115758295,0.3097997446923104 +US8356993076,Productions,Production,697248015.4129393,683380815.4129393,732499215.4129393,739368015.4129393,739238415.4129393,710726415.4129393,720316815.4129393,695563215.4129393,841262415.4129393,1038312015.4129393,1038312015.4129393,1038312015.4129393,1038312015.4129393,1038312015.4129393,1038312015.4129393,1038312015.4129393,1038312015.4129393,1038312015.4129393,1038312015.4129393,1038312015.4129393,1038312015.4129393,1038312015.4129393,1038312015.4129393,1038312015.4129393,1038312015.4129393,1038312015.4129393,1038312015.4129393,1038312015.4129393,1038312015.4129393,1038312015.4129393,1038312015.4129393,1038312015.4129393,1038312015.4129393,1038312015.4129393,1038312015.4129393,1038312015.4129393,1038312015.4129393,1038312015.4129393,1038312015.4129393,1038312015.4129393,1038312015.4129393,1038312015.4129393 +US8356993076,Emissions,S1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +US8356993076,Emissions,S2,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +US8356993076,Emission Intensities,S1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +US8356993076,Emission Intensities,S2,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +JP3401400001,Productions,Production,159563527.70578668,146979367.70578668,146435047.70578668,143026567.70578668,139618087.70578668,190050203.6009867,214535101.14178666,233145050.2433867,218105285.54578668,167479620.8129867,171690299.59138668,171690299.59138668,171690299.59138668,171690299.59138668,171690299.59138668,171690299.59138668,171690299.59138668,171690299.59138668,171690299.59138668,171690299.59138668,171690299.59138668,171690299.59138668,171690299.59138668,171690299.59138668,171690299.59138668,171690299.59138668,171690299.59138668,171690299.59138668,171690299.59138668,171690299.59138668,171690299.59138668,171690299.59138668,171690299.59138668,171690299.59138668,171690299.59138668,171690299.59138668,171690299.59138668,171690299.59138668,171690299.59138668,171690299.59138668,171690299.59138668,171690299.59138668 +JP3401400001,Emissions,S1,9150002.14049632,8650002.14049632,8631002.14049632,8960002.14049632,9296403.94049632,9632805.74049632,9969207.54049632,10305609.3404963,10642011.1404963,11403118.1404963,9681777.14049632,9681777.14049632,9681777.14049632,9808192.460528428,9936258.390041308,10065996.481103629,10197428.56719021,10330576.766856354,10465463.487460157,10602111.42893341,10740543.58760175,10880783.260054681,11022854.047066135,11166779.857566217,11312584.912664806,11460293.749727711,11609931.226506023,11761522.525319403,11915093.157293988,12070668.966655625,12228276.135079168,12387941.186094563,12549690.989550462,12713552.766136115,12879554.091962317,13047722.903202152,13218087.500792343,13390676.555195987,13565519.11122747,13742644.592940385,13922082.808579277,14103863.955596037 +JP3401400001,Emissions,S2,,2.14049631522688,2.14049631522688,2.14049631522688,310616.540496315,621230.940496315,931845.340496315,1242459.74049632,1553074.14049631,1239860.14049631,1203273.14049631,1203273.14049631,1203273.14049631,1203273.14049631,1203273.14049631,1203273.14049631,1203273.14049631,1203273.14049631,1203273.14049631,1203273.14049631,1203273.14049631,1203273.14049631,1203273.14049631,1203273.14049631,1203273.14049631,1203273.14049631,1203273.14049631,1203273.14049631,1203273.14049631,1203273.14049631,1203273.14049631,1203273.14049631,1203273.14049631,1203273.14049631,1203273.14049631,1203273.14049631,1203273.14049631,1203273.14049631,1203273.14049631,1203273.14049631,1203273.14049631,1203273.14049631 +JP3401400001,Emission Intensities,S1,0.7431775258785013,0.7627194856711764,0.7638730583512608,0.8118885155637708,0.8629354337148576,0.6568851810279456,0.6022367856691344,0.5728652481080088,0.6323572766047393,0.8824023507066155,0.7308265641067548,0.7308265641067548,0.7308265641067548,0.7313792322724906,0.7319323183788382,0.7324858227418543,0.7330397456778343,0.7335940875033128,0.734148848535064,0.7347040290901015,0.7352596294856785,0.7358156500392883,0.7363720910686643,0.7369289528917801,0.7374862358268497,0.7380439401923279,0.7386020663069103,0.7391606144895333,0.7397195850593747,0.7402789783358538,0.740838794638631,0.7413990342876088,0.7419596976029315,0.7425207849049854,0.7430822965143994,0.7436442327520446,0.7442065939390348,0.7447693803967266,0.7453325924467197,0.745896230410857,0.7464602946112247,0.7470247853701526 +JP3401400001,Emission Intensities,S2,,1.8873963521784973e-07,1.894412074155671e-07,1.9395579919392828e-07,0.028832871377777763,0.042363295783338244,0.05629249269027864,0.0690654947210874,0.09228497516905357,0.0959435383411512,0.09082877680303489,0.09082877680303489,0.09082877680303489,0.09277223976405818,0.09475728699400827,0.09678480827131514,0.09885571241299414,0.10097092768201453,0.1031314022033845,0.1053381043891391,0.10759202337242169,0.10989416945085338,0.11224557453938933,0.11464729263286466,0.1171004002784377,0.11960599705814179,0.12216520608176251,0.12477917449026088,0.1274490739699683,0.13017610127778376,0.13296147877760864,0.1358064549882597,0.13871230514310556,0.14168033176167805,0.14471186523351395,0.14780826441448952,0.1509709172359145,0.15420124132665916,0.15750068464859282,0.16087072614561893,0.1643128764065975,0.16782867834245216 +US6541061031,Productions,Production,,2919888004.0657935,2665872004.0657935,2943216004.0657935,2808432004.0657935,2699568004.0657935,2760480004.0657935,2800656004.0657935,2594592004.0657935,2280960004.0657935,1985018404.0657933,1902204004.0657933,1902204004.0657933,1830780537.8367233,1762038861.5299075,1695878279.9877622,1632201878.9285572,1570916382.9830623,1511932019.0615978,1455162384.8513439,1400524322.251278,1347937795.5593462,1297325774.2334306,1248614120.0543773,1201731478.5257986,1156609174.351567,1113181110.8378944,1071383673.0726341,1031155634.7399834,992438068.4340831,955174259.3401383,919309622.1566191,884791621.1368445,851569693.132825,819595173.5286343,788821224.9548165,759202768.6794057,730696418.5750588,703260417.5655725,676854576.4586904,651440215.0756005,626980105.5908867 +US6541061031,Emissions,S1,,167100001.129387,163800001.129387,181700001.129387,165800001.129387,156600001.129387,152300001.129387,154000001.129387,135600001.129387,120400001.129387,91700001.129387,70400001.129387,70400001.129387,68466923.20682526,66586924.690438904,64758548.09973685,62980375.97444551,61251029.77561399,59569168.81689325,57933489.22516064,56342722.929684274,54795636.679043256,53291031.085041955,51827739.69287683,50404628.076835155,49020592.96082443,47674561.363050774,46365489.76418315,45092363.29835853,43854194.96640086,42650024.87064384,41478919.470764294,40339970.86004927,39232296.061535746,38155036.34347725,37107356.55360678,36088444.471679814,35097510.179795556,34133785.45000818,33196523.148753375,32284996.657628387,31398499.31007664 +US6541061031,Emissions,S2,,3100001.12938701,2400001.12938701,1900001.12938701,1500001.12938701,1400001.12938701,1300001.12938701,1300001.12938701,1000001.12938701,5000001.12938701,4700001.12938701,2600001.12938701,2600001.12938701,2426667.8512681113,2264890.1163233523,2113897.55558782,1972971.157988927,1841439.8464895017,1718677.2824878315,1604098.8832575467,1497159.0382246915,1397348.5108261874,1304192.0135776002,1217245.944802934,1136096.276248993,1060356.5815253449,989666.195981524,923688.4992589914,862109.3123395479,804635.4014571037,750993.0817485895,700926.9139947366,654198.4882447389,610585.2885325438,569879.6332786664,531887.6863318295,496428.53394111164,463333.32326323824,432444.4583026776,403614.8494556896,376707.21308473364,351593.41778788087 +US6541061031,Emission Intensities,S1,,0.7416777669627563,0.7963053032550852,0.8000880707986993,0.7651130636333952,0.7518002923357344,0.715023478427562,0.7126330444508124,0.6773226819025896,0.6840909142884937,0.5987007537072012,0.47964572290181157,0.47964572290181157,0.4713000102007766,0.4630995107627034,0.4550416979140177,0.44712408894461814,0.4393442443429231,0.4316997670442275,0.4241883016921381,0.41680753391285946,0.40955518960210724,0.40242903422442905,0.39542687212471705,0.3885465458516996,0.38178593549320466,0.3751429580229888,0.3686155666589316,0.36220175023239715,0.3558995325685686,0.3497069718775647,0.34362216015615066,0.3376432225998591,0.3317683170253402,0.3259956333027624,0.3203233927980894,0.3147498478250617,0.30927328110671287,0.3038920052462557,0.2986043622071749,0.2934087228023657,0.28830348619216156 +US6541061031,Emission Intensities,S2,,0.013759436862274392,0.011667482380781245,0.008366363393933629,0.006922017199886688,0.00672108078386214,0.006103291678273692,0.006015738674223793,0.004995010628471448,0.028409097275423567,0.030685868963276727,0.017714196040400174,0.017714196040400174,0.017199977863483117,0.016700686716439095,0.016215889288601876,0.015745164847703944,0.015288104874743299,0.014844312709449543,0.014413403206041595,0.013995002398978282,0.013588747178411699,0.013194284975061723,0.012811273454238162,0.012439380218745019,0.012078282520409019,0.011727666979982065,0.011387229315174528,0.011056674076583341,0.010735714391285744,0.010424071713876125,0.010121475584729924,0.009827663395284788,0.009542380160135287,0.009265378295743398,0.008996417405572714,0.008735264071459902,0.008481691651042355,0.008235480081066239,0.007996415686404218,0.007764290994617141,0.0075389045558987315 +GB0031274896,Productions,Production,926887167.2113813,965233460.0113813,968392251.2113813,972920165.6113813,919330565.6113813,954115205.6113813,949695845.6113813,960753123.2113813,939777829.7713813,891855365.6113813,874385285.6113813,874385285.6113813,874385285.6113813,874385285.6113813,874385285.6113813,874385285.6113813,874385285.6113813,874385285.6113813,874385285.6113813,874385285.6113813,874385285.6113813,874385285.6113813,874385285.6113813,874385285.6113813,874385285.6113813,874385285.6113813,874385285.6113813,874385285.6113813,874385285.6113813,874385285.6113813,874385285.6113813,874385285.6113813,874385285.6113813,874385285.6113813,874385285.6113813,874385285.6113813,874385285.6113813,874385285.6113813,874385285.6113813,874385285.6113813,874385285.6113813,874385285.6113813 +GB0031274896,Emissions,S1,55192252.5587173,56075311.5587173,54746972.5587173,54472481.5587173,56535331.5587173,57593228.5587173,56978409.5587173,52832514.4587173,50919739.3587173,50723846.5587173,48061950.5587173,48061950.5587173,48061950.5587173,47969501.24351086,47877229.75870419,47785135.762232564,47693218.91268922,47601478.86932409,47509915.292042576,47418527.84140427,47327316.178621665,47236279.96555896,47145418.86473075,47054732.539300814,46964220.653080836,46873882.87052918,46783718.85674965,46693728.277490206,46603910.799141794,46514266.088737056,46424793.81394911,46335493.643090315,46246365.24511106,46157408.28959852,46068622.446775414,45980007.38749883,45891562.78325897,45803288.306177914,45715183.629008465,45627248.425132886,45539482.3685617,45451885.133932486 +GB0031274896,Emissions,S2,1007225.55871729,1933034.55871729,1052282.55871729,1189960.55871729,774476.55871729,601657.55871729,1061617.55871729,891280.15871729,1153067.75871729,841797.55871729,607645.55871729,607645.55871729,607645.55871729,574169.7083723544,542538.0787910529,512649.06985897553,484406.67872178636,457720.19142611866,432503.8915483062,408676.7848750728,386162.3392518596,364888.23876318976,344786.15145550197,325791.509856384,307843.3035852392,290883.8833892551,274858.77597524226,259716.5090425874,245408.44595532992,231888.62952233257,219113.6343837711,207042.4275298118,195636.23650346577,184858.42486429034,174674.37451292973,165051.37449852395,155958.5159518376,147366.5928066361,139248.00799042874,131576.68478326488,124327.98305986985,117478.6201460922 +GB0031274896,Emission Intensities,S1,0.771713773223328,0.7529121895467709,0.73267910133876,0.7256128364420833,0.7969906847529973,0.7823041051344408,0.7775544047005837,0.7126798454698644,0.7022083317814728,0.7370937898101109,0.7123666071364056,0.7123666071364056,0.7123666071364056,0.7104779214277235,0.708594243159972,0.7067155590570064,0.7048418558778811,0.7029731204167554,0.7011093395028016,0.6992505000001115,0.6973965888076036,0.6955475928589313,0.6937034991223907,0.6918642946008284,0.6900299663315503,0.68820050138623,0.6863758868708177,0.6845561099254496,0.6827411577243567,0.6809310174757752,0.6791256764218555,0.6773251218385727,0.6755293410356372,0.6737383213564047,0.6719520501777871,0.6701705149101641,0.6683937029972938,0.6666216019162245,0.6648541991772063,0.6630914823236034,0.6613334389318057,0.6595800566111422 +GB0031274896,Emission Intensities,S2,0.014083314240123792,0.025954475180212513,0.014082704548612957,0.01585113495030187,0.010917962021964349,0.008172474262140671,0.01448733678740982,0.012022850176501211,0.015901373366736478,0.012232584768380328,0.009006426080774784,0.009006426080774784,0.009006426080774784,0.008493907085081503,0.00801055345627078,0.007554705512199044,0.00712479801646821,0.006719354803903295,0.006336983711872183,0.005976371800043332,0.005636280842167579,0.005315543074404264,0.005013057185592784,0.004727784535701454,0.004458745589469022,0.00420501655299311,0.0039657262017166964,0.003740052888920959,0.003527221724452597,0.003326501913998276,0.003137204249770124,0.002958678743986085,0.002790312397019258,0.002631527092552761,0.0024817776125127516,0.002340549764963518,0.0022073586185364265,0.002081746837330326,0.0019632831105659775,0.0018515606716024528,0.0017461959012302706,0.0016468270104454284 +US6293775085,Productions,Production,,,,,,91200001.3960884,92479001.3960884,90800001.3960884,93100001.3960884,92500001.3960884,89800001.3960884,71500001.3960884,71500001.3960884,71361136.48394525,71222541.27059157,71084215.2322274,70946157.84607008,70808368.59035227,70670846.94432,70533592.38823068,70396604.40335116,70259882.47195575,70123426.07732426,69987234.70374006,69851307.83648816,69715644.96185318,69580245.56711748,69445109.14055924,69310235.17145044,69175623.15005499,69041272.5676268,68907182.91640787,68773353.6896263,68639784.38149448,68506474.48720707,68373423.5029392,68240630.92584448,68108096.25405313,67975818.9866701,67843798.62377317,67712034.66641101,67580526.61660138 US6293775085,Emissions,S1,,165226001.396088,162028001.396088,158192001.396088,169000001.396088,174000001.396088,176000001.396088,176000001.396088,179700001.396088,174900001.396088,169800001.396088,141300001.396088,141300001.396088,141300001.396088,141300001.396088,141300001.396088,141300001.396088,141300001.396088,141300001.396088,141300001.396088,141300001.396088,141300001.396088,141300001.396088,141300001.396088,141300001.396088,141300001.396088,141300001.396088,141300001.396088,141300001.396088,141300001.396088,141300001.396088,141300001.396088,141300001.396088,141300001.396088,141300001.396088,141300001.396088,141300001.396088,141300001.396088,141300001.396088,141300001.396088,141300001.396088,141300001.396088 US6293775085,Emissions,S2,,19599001.3960884,17902001.3960884,17256001.3960884,21000001.3960884,17000001.3960884,16000001.3960884,14000001.3960884,15100001.3960884,13900001.3960884,12100001.3960884,9500001.3960884,9500001.3960884,8753224.564721376,8065150.42323987,7431164.466138286,6847014.9253103295,6308784.255959974,5812862.863950093,5355924.898393682,4934905.947142892,4546982.485592764,4189552.9409749657,3860220.245150952,3556775.758896495,3277184.459867274,3019571.2949099913,2782208.6051920536,2563504.539817613,2361992.3802269613,2176320.7037843433,2005244.3205872094,1847615.9227154558,1702378.389917111,1568557.7001292706,1445256.3972893374,1331647.572629054,1226969.319087431,1130519.6216516034,1041651.6493581627,959769.4173812058,884323.7901152956 -US6293775085,Productions,Production,,,,,,91200001.3960884,92479001.3960884,90800001.3960884,93100001.3960884,92500001.3960884,89800001.3960884,71500001.3960884,71500001.3960884,71361136.48394525,71222541.27059157,71084215.2322274,70946157.84607008,70808368.59035227,70670846.94432,70533592.38823068,70396604.40335116,70259882.47195575,70123426.07732426,69987234.70374006,69851307.83648816,69715644.96185318,69580245.56711748,69445109.14055924,69310235.17145044,69175623.15005499,69041272.5676268,68907182.91640787,68773353.6896263,68639784.38149448,68506474.48720707,68373423.5029392,68240630.92584448,68108096.25405313,67975818.9866701,67843798.62377317,67712034.66641101,67580526.61660138 -US6293775085,Emission Intensities,S1,,,,,,1.90789472294406,1.90313475209663,1.93832597676227,1.93018258540691,1.89081079736594,1.89086858303195,1.97622375716231,1.97622375716231,1.97622375716231,1.97622375716231,1.97622375716231,1.97622375716231,1.97622375716231,1.97622375716231,1.97622375716231,1.97622375716231,1.97622375716231,1.97622375716231,1.97622375716231,1.97622375716231,1.97622375716231,1.97622375716231,1.97622375716231,1.97622375716231,1.97622375716231,1.97622375716231,1.97622375716231,1.97622375716231,1.97622375716231,1.97622375716231,1.97622375716231,1.97622375716231,1.97622375716231,1.97622375716231,1.97622375716231,1.97622375716231,1.97622375716231 -US6293775085,Emission Intensities,S2,,,,,,0.186403521226454,0.173012263914489,0.154185035031195,0.162191204829808,0.150270283095111,0.134743888730223,0.132867149798519,0.132867149798519,0.12985196288384895,0.1269052003475462,0.12402530941836061,0.12121077256246193,0.11846010668378848,0.11577186234254232,0.11314462299141939,0.11057700422917208,0.10806765307111083,0.10561524723616045,0.10321849445009548,0.10087613176458736,0.09858692489170459,0.09634966755351536,0.09416318084644967,0.09202631262008626,0.08993793687003679,0.08789695314460749,0.08590228596492558,0.0839528842582249,0.08204772080399216,0.0801857916926818,0.07836611579671457,0.07658773425348074,0.07484970996007564,0.07315112707950133,0.07149109055807415,0.06986872565378388,0.0682831774753559 +US7134481081,Productions,Production,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, US7134481081,Emissions,S1,,,13390004.4552317,9480004.45523172,8095004.45523172,7840004.45523172,7810004.45523172,8270004.45523172,8670004.45523172,8780004.45523172,8590004.45523172,8530004.45523172,8530004.45523172,8530004.45523172,8530004.45523172,8530004.45523172,8530004.45523172,8530004.45523172,8530004.45523172,8530004.45523172,8530004.45523172,8530004.45523172,8530004.45523172,8530004.45523172,8530004.45523172,8530004.45523172,8530004.45523172,8530004.45523172,8530004.45523172,8530004.45523172,8530004.45523172,8530004.45523172,8530004.45523172,8530004.45523172,8530004.45523172,8530004.45523172,8530004.45523172,8530004.45523172,8530004.45523172,8530004.45523172,8530004.45523172,8530004.45523172 US7134481081,Emissions,S2,,,2530004.45523172,1970004.45523172,1781004.45523172,1541004.45523172,1570004.45523172,1830004.45523172,2000004.45523172,1970004.45523172,1810004.45523172,1750004.45523172,1750004.45523172,1723754.4468781792,1697898.1877728193,1672429.7716900746,1647343.380997565,1622633.2853272026,1598293.8402662284,1574319.4860678865,1550704.7463814367,1527444.227001217,1504532.6146344696,1481964.6756876511,1459735.2550709462,1437839.2750207144,1416271.7339396002,1395027.7052540414,1374102.3362889146,1353490.8471590609,1333188.5296774392,1313190.7462796571,1293492.9289646326,1274090.5782511472,1254979.2621500508,1236154.6151518822,1217612.3372296763,1199348.1928567288,1181358.0100390944,1163637.6793625976,1146183.1530541382,1128990.4440570774 -US7134481081,Productions,Production,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, US7134481081,Emission Intensities,S1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, US7134481081,Emission Intensities,S2,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +JP0000000001,Productions,Production,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, JP0000000001,Emissions,S1,21759305.8145184,20966413.8145184,21128989.8145184,20070402.8145184,19691129.8145184,19443564.8145184,20018158.8145184,21042990.8145184,20006804.8145184,20805771.8145184,20351815.8145184,20351815.8145184,20351815.8145184,20351815.8145184,20351815.8145184,20351815.8145184,20351815.8145184,20351815.8145184,20351815.8145184,20351815.8145184,20351815.8145184,20351815.8145184,20351815.8145184,20351815.8145184,20351815.8145184,20351815.8145184,20351815.8145184,20351815.8145184,20351815.8145184,20351815.8145184,20351815.8145184,20351815.8145184,20351815.8145184,20351815.8145184,20351815.8145184,20351815.8145184,20351815.8145184,20351815.8145184,20351815.8145184,20351815.8145184,20351815.8145184,20351815.8145184 JP0000000001,Emissions,S2,1337565.8145184,1349200.8145184,1371359.8145184,1243282.8145184,1257964.8145184,1185845.8145184,1109279.8145184,1275990.8145184,1298687.8145184,1294689.8145184,1181783.8145184,1181783.8145184,1181783.8145184,1181783.8145184,1181783.8145184,1181783.8145184,1181783.8145184,1181783.8145184,1181783.8145184,1181783.8145184,1181783.8145184,1181783.8145184,1181783.8145184,1181783.8145184,1181783.8145184,1181783.8145184,1181783.8145184,1181783.8145184,1181783.8145184,1181783.8145184,1181783.8145184,1181783.8145184,1181783.8145184,1181783.8145184,1181783.8145184,1181783.8145184,1181783.8145184,1181783.8145184,1181783.8145184,1181783.8145184,1181783.8145184,1181783.8145184 -JP0000000001,Productions,Production,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, JP0000000001,Emission Intensities,S1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, JP0000000001,Emission Intensities,S2,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -FR0000125338,Emissions,S1,,126884622.661096,129300002.661096,129900002.661096,117200002.661096,97900002.6610958,80000002.6610958,5370002.66109578,4530002.66109578,4580002.66109578,4910002.66109578,3560002.66109578,3560002.66109578,3232893.8861125843,2935841.3107610126,2666083.238610443,2421111.7301013293,2198649.2862426154,1996627.6747140645,1813168.701519861,1646566.7494276469,1495272.9208529359,1357880.6377653729,1233112.5647392382,1119808.7335718528,1016915.7590645179,923477.0457051541,838623.8942042129,761567.4252013667,691591.2450577128,628044.7855473992,570337.2555278124,517932.148357034,470342.25399405166,427125.12940924225,387878.9851935548,352238.95012421714,319873.67895865167,290482.2719192743,263791.47722964274,239553.150693944,217541.94870154394 -FR0000125338,Emissions,S2,,5441396.66109578,5300002.66109578,4400002.66109578,3500002.66109578,3900002.66109578,3700002.66109578,3360002.66109578,3370002.66109578,2890002.66109578,2730002.66109578,4490002.66109578,4490002.66109578,4490002.66109578,4490002.66109578,4490002.66109578,4490002.66109578,4490002.66109578,4490002.66109578,4490002.66109578,4490002.66109578,4490002.66109578,4490002.66109578,4490002.66109578,4490002.66109578,4490002.66109578,4490002.66109578,4490002.66109578,4490002.66109578,4490002.66109578,4490002.66109578,4490002.66109578,4490002.66109578,4490002.66109578,4490002.66109578,4490002.66109578,4490002.66109578,4490002.66109578,4490002.66109578,4490002.66109578,4490002.66109578,4490002.66109578 -FR0000125338,Productions,Production,,991800002.661096,976320002.661096,947520002.661096,987840002.661096,870120002.661096,163080002.661096,152928002.661096,142776002.661096,132624002.661096,122472002.661096,112320002.661096,112320002.661096,104863731.42774703,97902438.64336601,91403265.56968082,85335534.76880339,79670605.29939313,74381737.52550441,69443966.89998758,64833986.12667548,60530035.145136565,56511798.41869986,52760309.040930144,49257859.207916126,45987916.63378233,42935046.514888614,40084838.674372345,37423839.5431403,34939488.6562467,32620059.364907034,30454603.48429622,28432899.615857303,26545404.900191247,24783209.972791612,23137996.91000579,21601999.96671912,20167968.920435652,18829134.848731995,17579178.178546857,16412198.856492272,15322688.499384236 -FR0000125338,Emission Intensities,S1,,0.127933678484223,0.132436088893673,0.137094733933082,0.118642697547554,0.112513219282039,0.490556790260468,0.0351145805062024,0.0317280395631228,0.0345337387591853,0.0400908171207319,0.0316951796363236,0.0316951796363236,0.0316951796363236,0.0316951796363236,0.0316951796363236,0.0316951796363236,0.0316951796363236,0.0316951796363236,0.0316951796363236,0.0316951796363236,0.0316951796363236,0.0316951796363236,0.0316951796363236,0.0316951796363236,0.0316951796363236,0.0316951796363236,0.0316951796363236,0.0316951796363236,0.0316951796363236,0.0316951796363236,0.0316951796363236,0.0316951796363236,0.0316951796363236,0.0316951796363236,0.0316951796363236,0.0316951796363236,0.0316951796363236,0.0316951796363236,0.0316951796363236,0.0316951796363236,0.0316951796363236 -FR0000125338,Emission Intensities,S2,,0.00548638500352489,0.00542855072788623,0.00464370424765539,0.00354308658453523,0.00448214343902952,0.0226882671125835,0.0219711406846913,0.0236034249333558,0.0217909473632825,0.0222908305717041,0.0399750939700696,0.0399750939700696,0.0399750939700696,0.0399750939700696,0.0399750939700696,0.0399750939700696,0.0399750939700696,0.0399750939700696,0.0399750939700696,0.0399750939700696,0.0399750939700696,0.0399750939700696,0.0399750939700696,0.0399750939700696,0.0399750939700696,0.0399750939700696,0.0399750939700696,0.0399750939700696,0.0399750939700696,0.0399750939700696,0.0399750939700696,0.0399750939700696,0.0399750939700696,0.0399750939700696,0.0399750939700696,0.0399750939700696,0.0399750939700696,0.0399750939700696,0.0399750939700696,0.0399750939700696,0.0399750939700696 -US17275R1023,Emissions,S1,78192009.4017252,80575879.4017252,70935799.4017252,80283565.4017252,73222380.0683918,66161194.7350585,59100009.4017252,47700009.4017252,51300009.4017252,35700009.4017252,33100009.4017252,33100009.4017252,33100009.4017252,30518123.69432973,28137631.700306006,25942824.192994807,23919217.305744935,22053456.95068684,20333230.69308729,18747186.49973064,17284857.825134885,15936594.54123526,14693499.254729772,13547368.591835294,12490639.062983416,11516337.15020899,10618033.287850501,9789799.432873962,9026169.94482046,8322105.517218218,7672959.922437125,7074449.350529973,6522624.139722799,6013842.711999543,5544747.541778029,5112242.9990909,4713474.921055327,4345811.776820527,4006827.30169772,3694284.485872535,3406120.812038957,3140434.6445357157 -US17275R1023,Emissions,S2,480089.401725152,670709.401725152,81181.4017251516,74013.4017251516,159212.601725152,244411.801725152,329611.001725152,414810.201725152,500009.401725152,470009.401725152,290009.401725152,290009.401725152,290009.401725152,294822.6613068933,299715.8061187802,304690.1620086893,309747.0768294733,314887.9208041758,320114.0868973071,325426.9911922825,330828.07327512465,336318.7966245339,341900.6490084331,347575.1428870937,353343.8158229522,359208.2308972285,365169.9771334591,371230.66992805904,377391.95148803026,383655.4912759345,390022.9864622514,396496.1623852441,403076.7730184576,409766.6014459757,416567.46034556616,423481.19247984415,430509.67119558796,437654.80093134136,444918.51773344097,452302.7897806078,459809.6179172454,467441.0361955896 -US17275R1023,Productions,Production,2226600009.40172,2269440009.40172,2261520009.40172,2313360009.40172,2354040009.40172,2244600009.40172,2229480009.40172,101160009.401725,105840009.401725,106560009.401725,100080009.401725,100080009.401725,100080009.401725,100080009.401725,100080009.401725,100080009.401725,100080009.401725,100080009.401725,100080009.401725,100080009.401725,100080009.401725,100080009.401725,100080009.401725,100080009.401725,100080009.401725,100080009.401725,100080009.401725,100080009.401725,100080009.401725,100080009.401725,100080009.401725,100080009.401725,100080009.401725,100080009.401725,100080009.401725,100080009.401725,100080009.401725,100080009.401725,100080009.401725,100080009.401725,100080009.401725,100080009.401725 -US17275R1023,Emission Intensities,S1,0.0351172231525926,0.0355047408470457,0.0313664257255415,0.0347043110780185,0.0311049853766084,0.0294757170355234,0.0265084275941028,0.471530298225849,0.484693923325454,0.335022581193083,0.330735474542777,0.330735474542777,0.330735474542777,0.330735474542777,0.330735474542777,0.330735474542777,0.330735474542777,0.330735474542777,0.330735474542777,0.330735474542777,0.330735474542777,0.330735474542777,0.330735474542777,0.330735474542777,0.330735474542777,0.330735474542777,0.330735474542777,0.330735474542777,0.330735474542777,0.330735474542777,0.330735474542777,0.330735474542777,0.330735474542777,0.330735474542777,0.330735474542777,0.330735474542777,0.330735474542777,0.330735474542777,0.330735474542777,0.330735474542777,0.330735474542777,0.330735474542777 -US17275R1023,Emission Intensities,S2,0.000215615467393333,0.000295539604019745,3.58968310639125e-05,3.19938969396695e-05,6.76337704921231e-05,0.000108888800098641,0.000147842097859223,0.0041005354208486,0.00472420027692289,0.00441074850090565,0.00289777552439111,0.00289777552439111,0.00289777552439111,0.0029847087901228434,0.003074250053826529,0.003166477555441325,0.003261471882104565,0.0033593160385677018,0.0034600955197247327,0.0035638983853164747,0.003670815336875969,0.003780939796982248,0.0038943679908917156,0.004011199030618467,0.004131535001537021,0.004255481051583132,0.004383145483130626,0.004514639847624545,0.004650079043053282,0.004789581414344881,0.004933268856775227,0.005081266922478484,0.005233704930152839,0.0053907160780574245,0.005552437560399148,0.005719010687211122,0.005890581007827456,0.0060672984380622805,0.006249317391204149,0.0064367969129402736,0.0066299008203284816,0.0068287978449383365 -CH0198251305,Emissions,S1,,116400006.472471,123540195.472471,127800006.472471,115550006.472471,115480006.472471,119510006.472471,106730006.472471,105960006.472471,95230006.4724713,69980006.4724713,45260006.4724712,45260006.4724712,44933479.69583513,44609308.63551839,44287476.296285756,43967965.805513546,43650760.41230505,43335843.48661233,43023198.518364355,42712809.11660145,42404659.00861597,42098732.03909914,41795012.169294134,41493483.47615518,41194130.15151277,40896936.50124492,40601886.944454335,40308966.012651585,40018158.34894412,39729448.70723118,39442821.95140447,39158263.054554634,38875757.09818346,38595289.27142171,38316844.87025267,38040409.296741255,37765968.05826868,37493506.76677267,37223011.137993135,36954466.99072329,36687860.24606618 -CH0198251305,Emissions,S2,,245006.472471246,331647.472471246,370006.472471246,786006.472471246,636006.472471246,654006.472471246,1400006.47247125,5000006.47247125,5080006.47247125,5370006.47247125,5000006.47247125,5000006.47247125,5072006.47247125,5145043.27112912,5219131.798326207,5294287.198933871,5370524.835909337,5447860.293436127,5526309.380109715,5605888.132169059,5686612.816774653,5768499.935333804,5851566.226873774,5935828.671463506,6021304.493684621,6108011.166152391,6195966.413087424,6285188.213938775,6375694.807059228,6467504.693433512,6560636.640460185,6655109.685787998,6750943.141207488,6848156.596598618,6946769.923935253,7046803.281347315,7148277.11724142,7251212.174480857,7355629.494625761,7461550.422234341,7568996.609226044 -CH0198251305,Productions,Production,,1044720006.47247,1058040006.47247,1064880006.47247,1030125606.47247,1019163606.47247,1022443206.47247,942523206.472471,899553606.472471,901220406.472471,824864406.472471,745588806.472471,745588806.472471,737654682.2790738,729804988.4394718,722038826.4947467,714355307.5468591,706753552.1569082,699232690.244472,691791860.9880209,684430212.7263889,677146902.8612951,669941097.7609015,662811972.6643968,655758711.5875969,648780507.2295487,641876560.8801281,635046082.3286215,628288289.77328,621602409.7318361,614987676.9529723,608443334.3287327,601968632.8078655,595562831.3100885,589225196.6412666,582955003.4094919,576751533.942057,570614078.2033118,564541933.7133944,558534405.4678265,552590805.8579649,546710454.5922992 -CH0198251305,Emission Intensities,S1,,0.111417418783335,0.116763255374773,0.120013527999105,0.112170793295933,0.113308604957128,0.116886694259325,0.113238597988397,0.117791764392992,0.10566783196268,0.0848381939181258,0.0607037097117985,0.0607037097117985,0.0607037097117985,0.0607037097117985,0.0607037097117985,0.0607037097117985,0.0607037097117985,0.0607037097117985,0.0607037097117985,0.0607037097117985,0.0607037097117985,0.0607037097117985,0.0607037097117985,0.0607037097117985,0.0607037097117985,0.0607037097117985,0.0607037097117985,0.0607037097117985,0.0607037097117985,0.0607037097117985,0.0607037097117985,0.0607037097117985,0.0607037097117985,0.0607037097117985,0.0607037097117985,0.0607037097117985,0.0607037097117985,0.0607037097117985,0.0607037097117985,0.0607037097117985,0.0607037097117985 -CH0198251305,Emission Intensities,S2,,0.000234518790636084,0.000313454567353238,0.000347463066469744,0.000763020031278342,0.0006240474722921,0.000639650660624596,0.00148538143449112,0.00555831963375521,0.00563680808377969,0.00651016873844279,0.00670611794204271,0.00670611794204271,0.006887780302959372,0.007074363724564054,0.007266001513713351,0.007462830588419893,0.007664991575675134,0.00787262891192206,0.008085890946249613,0.00830493004638255,0.008529902707542461,0.008760969664257748,0.008998296005202406,0.009242051291145694,0.009492409676096943,0.009749550031732064,0.010013656075190653,0.010284916500334996,0.010563525112564752,0.010849680967283648,0.011143588512117098,0.01144545773298236,0.011755504304115599,0.012073949742163043,0.012401021564446316,0.012736953451515027,0.013081985414102767,0.013436363964605765,0.01380034229320676,0.01417418044876988,0.014558145524635814 -US1266501006,Emissions,S1,,109324454.376334,156899254.376334,154230874.376334,141984778.376334,131154736.376334,133757296.376334,120150105.376334,89756230.3763341,57205670.3763341,46188978.3763341,38589016.3763341,38589016.3763341,35645597.56148989,32926691.189126387,30415172.330716796,28095222.280114714,25952228.92003426,23972694.68818428,22144151.563384872,20455082.53620951,18894849.069538545,17453624.09213722,16122330.103220697,14892581.998160105,13756634.255219504,12707332.150681382,11738066.695091048,10842733.006787553,10015691.860538397,9251734.169093572,8546048.173947353,7894189.138660087,7292051.353854537,6735842.277561294,6222058.648037217,5747464.4186043935,5309070.375533039,4904115.310592343,4530048.629685294,4184514.2880286276,3865335.950694237 -US1266501006,Emissions,S2,,3250751.37633413,3357343.37633413,3712790.37633413,3748376.12633413,3783961.87633413,3819547.62633413,3855133.37633413,3576861.37633413,2912586.37633413,2534464.37633413,2330625.37633413,2330625.37633413,2330625.37633413,2330625.37633413,2330625.37633413,2330625.37633413,2330625.37633413,2330625.37633413,2330625.37633413,2330625.37633413,2330625.37633413,2330625.37633413,2330625.37633413,2330625.37633413,2330625.37633413,2330625.37633413,2330625.37633413,2330625.37633413,2330625.37633413,2330625.37633413,2330625.37633413,2330625.37633413,2330625.37633413,2330625.37633413,2330625.37633413,2330625.37633413,2330625.37633413,2330625.37633413,2330625.37633413,2330625.37633413,2330625.37633413 -US1266501006,Productions,Production,,1206000000.37633,1674000000.37633,1677600000.37633,1724400000.37633,1692000000.37633,1767600000.37633,989973000.376334,212346000.376334,205448400.376334,221601600.376334,199591200.376334,199591200.376334,199591200.376334,199591200.376334,199591200.376334,199591200.376334,199591200.376334,199591200.376334,199591200.376334,199591200.376334,199591200.376334,199591200.376334,199591200.376334,199591200.376334,199591200.376334,199591200.376334,199591200.376334,199591200.376334,199591200.376334,199591200.376334,199591200.376334,199591200.376334,199591200.376334,199591200.376334,199591200.376334,199591200.376334,199591200.376334,199591200.376334,199591200.376334,199591200.376334,199591200.376334 -US1266501006,Emission Intensities,S1,,0.0906504596535815,0.0937271531308611,0.0919354281960752,0.0823386559645948,0.0775146195905217,0.0756716996763161,0.121367052768772,0.42268858474971,0.278443006962072,0.208432512661885,0.193340269027761,0.193340269027761,0.193340269027761,0.193340269027761,0.193340269027761,0.193340269027761,0.193340269027761,0.193340269027761,0.193340269027761,0.193340269027761,0.193340269027761,0.193340269027761,0.193340269027761,0.193340269027761,0.193340269027761,0.193340269027761,0.193340269027761,0.193340269027761,0.193340269027761,0.193340269027761,0.193340269027761,0.193340269027761,0.193340269027761,0.193340269027761,0.193340269027761,0.193340269027761,0.193340269027761,0.193340269027761,0.193340269027761,0.193340269027761,0.193340269027761 -US1266501006,Emission Intensities,S2,,0.00269548206908767,0.00200558146689329,0.00221315592244948,0.00217372774618191,0.00223638408717051,0.00216086650006841,0.00389418032094675,0.0168444961053892,0.0141767293928741,0.0114370310143518,0.0116769946367359,0.0116769946367359,0.0116769946367359,0.0116769946367359,0.0116769946367359,0.0116769946367359,0.0116769946367359,0.0116769946367359,0.0116769946367359,0.0116769946367359,0.0116769946367359,0.0116769946367359,0.0116769946367359,0.0116769946367359,0.0116769946367359,0.0116769946367359,0.0116769946367359,0.0116769946367359,0.0116769946367359,0.0116769946367359,0.0116769946367359,0.0116769946367359,0.0116769946367359,0.0116769946367359,0.0116769946367359,0.0116769946367359,0.0116769946367359,0.0116769946367359,0.0116769946367359,0.0116769946367359,0.0116769946367359 +NL0000000002,Productions,Production,,,,,,,,,16120000.4760821,15342000.4760821,12453000.4760821,12194000.4760821,12194000.4760821,11887162.491804026,11588045.48053891,11296455.159221027,11012202.133535014,10735101.774900107,10464974.100549823,10201643.656629203,9944939.404233681,9694694.60831556,9450746.729385935,9212937.317941735,8981111.911549283,8755119.934517559,8534814.600095982,8320052.81513319,8110695.087134902,7906605.433660479,7707651.293999339,7513703.443069871,7324635.907484902,7140325.883729222,6960653.658396001,6785502.530430304,6614758.735329194,6448311.37124919,6286052.3269730825,6127876.211689329,5973680.286538403,5823364.397881653 NL0000000002,Emissions,S1,,,,,,,,,,,9056.99508207154,9056.99508207154,9056.99508207154,9056.99508207154,9056.99508207154,9056.99508207154,9056.99508207154,9056.99508207154,9056.99508207154,9056.99508207154,9056.99508207154,9056.99508207154,9056.99508207154,9056.99508207154,9056.99508207154,9056.99508207154,9056.99508207154,9056.99508207154,9056.99508207154,9056.99508207154,9056.99508207154,9056.99508207154,9056.99508207154,9056.99508207154,9056.99508207154,9056.99508207154,9056.99508207154,9056.99508207154,9056.99508207154,9056.99508207154,9056.99508207154,9056.99508207154 NL0000000002,Emissions,S2,,,,,,,,,,,2890986.47608207,2890986.47608207,2890986.47608207,2890986.47608207,2890986.47608207,2890986.47608207,2890986.47608207,2890986.47608207,2890986.47608207,2890986.47608207,2890986.47608207,2890986.47608207,2890986.47608207,2890986.47608207,2890986.47608207,2890986.47608207,2890986.47608207,2890986.47608207,2890986.47608207,2890986.47608207,2890986.47608207,2890986.47608207,2890986.47608207,2890986.47608207,2890986.47608207,2890986.47608207,2890986.47608207,2890986.47608207,2890986.47608207,2890986.47608207,2890986.47608207,2890986.47608207 -NL0000000002,Productions,Production,,,,,,,,,16120000.4760821,15342000.4760821,12453000.4760821,12194000.4760821,12194000.4760821,11887162.491804024,11588045.480538908,11296455.159221023,11012202.133535009,10735101.7749001,10464974.100549813,10201643.656629192,9944939.404233668,9694694.608315546,9450746.729385922,9212937.317941722,8981111.911549268,8755119.934517544,8534814.600095965,8320052.815133173,8110695.087134886,7906605.433660462,7707651.293999321,7513703.443069852,7324635.9074848825,7140325.883729203,6960653.658395981,6785502.530430284,6614758.7353291735,6448311.371249168,6286052.32697306,6127876.211689306,5973680.28653838,5823364.397881631 NL0000000002,Emission Intensities,S1,,,,,,,,,,,0.000727294205076673,0.000742741899988965,0.000742741899988965,0.0007490255284858647,0.0007553623167507641,0.0007617527145175923,0.0007681971753250472,0.0007746961565487832,0.0007812501194338728,0.0007878595291275415,0.0007945248547121805,0.0008012465692386381,0.0008080251497597934,0.0008148610773644131,0.000821754837211296,0.0008287069185637049,0.0008357178148240913,0.0008427880235691122,0.000849918046584945,0.0008571083899028994,0.0008643595638353324,0.0008716720830118648,0.0008790464664159068,0.0008864832374214904,0.0008939829238304144,0.0009015460579097035,0.0009091731764293847,0.0009168648207005822,0.000924621536613936,0.0009324438746783442,0.000940332390060034,0.0009482876426219627 NL0000000002,Emission Intensities,S2,,,,,,,,,,,0.232151800012749,0.237082693391115,0.237082693391115,0.23908842319892087,0.24111112156737693,0.2431509320512379,0.24520799941973784,0.24728246966686487,0.2493744900217225,0.2514842089589787,0.2536117762094038,0.25575734277049655,0.25792106091720135,0.26010308421271505,0.26230356751938577,0.2645226670097038,0.26676054017738543,0.2690173458485506,0.27129324419299494,0.2735883967355577,0.275902966367585,0.27823711735849094,0.2805910153674159,0.2829648274549836,0.285358722095158,0.2877728691872,0.2902074400677256,0.2926626075228659,0.2951385458005301,0.2976354306227724,0.300153439198263,0.302692750234865 +IT0000000003,Productions,Production,,,,,,19374009.677026,21182009.677026,22380009.677026,23290009.677026,23763009.677026,23303009.677026,23303009.677026,23303009.677026,23454093.96209188,23606157.797074717,23759207.53285368,23913249.561483663,24068290.316462222,24224336.272998292,24381393.948282603,24539469.901759874,24698570.735402763,24858703.0939876,25019873.6653719,25182089.18077368,25345356.41505258,25509682.186992824,25675073.359587986,25841536.840327635,26009079.58148582,26177708.58041142,26347430.879820395,26518253.568089925,26690183.779554438,26863228.694803584,27037395.540982127,27212691.592091784,27389124.169295017,27566700.641220797,27745428.424272362,27925314.982936952,28106367.830097556 IT0000000003,Emissions,S1,,766009.677026013,10247400.677026,10197994.677026,11080009.677026,13317009.677026,14157009.677026,15622009.677026,15710009.677026,16492009.677026,16442009.677026,16442009.677026,16442009.677026,16534628.801037049,16627769.65580371,16721435.180276057,16815628.329959497,16910352.077008035,17005609.410318047,17101403.335622597,17197736.87558628,17294613.069900587,17392034.975379843,17490005.666057635,17588528.23328383,17687605.7858221,17787241.44994804,17887438.369547784,17988199.706217233,18089528.6393618,18191428.36629673,18293902.10234801,18396953.0809538,18500584.553766463,18604799.79075519,18709602.08030915,18814994.72934127,18920981.063392576,19027564.426737126,19134748.182487532,19242535.712701086,19350930.418486472 IT0000000003,Emissions,S2,,3518009.67702601,4342232.67702601,4164848.67702601,4818009.67702601,5480009.67702601,5416009.67702601,5653009.67702601,5769009.67702601,5806009.67702601,5803009.67702601,5803009.67702601,5803009.67702601,5837210.058038475,5871612.001020762,5906216.693890271,5941025.331565462,5976039.11600712,6011259.256259856,6046686.968493856,6082323.476046877,6118170.009466493,6154227.806552577,6190498.112400054,6226982.179441888,6263681.26749233,6300596.64379042,6337729.583043749,6375081.367472472,6412653.286853582,6450446.638565452,6488462.727632629,6526702.866770901,6565168.376432623,6603860.584852315,6642780.828092525,6681930.450089966,6721310.80270192,6760923.245752921,6800769.1470817095,6840849.882588463,6881166.836282309 -IT0000000003,Productions,Production,,,,,,19374009.677026,21182009.677026,22380009.677026,23290009.677026,23763009.677026,23303009.677026,23303009.677026,23303009.677026,23454093.96209188,23606157.797074717,23759207.53285368,23913249.561483663,24068290.316462222,24224336.272998292,24381393.948282603,24539469.901759874,24698570.735402763,24858703.0939876,25019873.6653719,25182089.18077368,25345356.41505258,25509682.186992824,25675073.359587986,25841536.840327635,26009079.58148582,26177708.58041142,26347430.879820395,26518253.568089925,26690183.779554438,26863228.694803584,27037395.540982127,27212691.592091784,27389124.169295017,27566700.641220797,27745428.424272362,27925314.982936952,28106367.830097556 IT0000000003,Emission Intensities,S1,,,,,,0.687364665292674,0.66835063777639,0.698034089460767,0.67453856373975,0.694020239909696,0.705574511829511,0.705574511829511,0.705574511829511,0.705574511829511,0.705574511829511,0.705574511829511,0.705574511829511,0.705574511829511,0.705574511829511,0.705574511829511,0.705574511829511,0.705574511829511,0.705574511829511,0.705574511829511,0.705574511829511,0.705574511829511,0.705574511829511,0.705574511829511,0.705574511829511,0.705574511829511,0.705574511829511,0.705574511829511,0.705574511829511,0.705574511829511,0.705574511829511,0.705574511829511,0.705574511829511,0.705574511829511,0.705574511829511,0.705574511829511,0.705574511829511,0.705574511829511 -IT0000000003,Emission Intensities,S2,,,,,,0.282853666761831,0.255689132410331,0.252591922818919,0.247703189351473,0.244329727418293,0.249024042707543,0.249024042707543,0.249024042707543,0.2480066075295141,0.24699332927677733,0.24598419096542237,0.24497917568092983,0.24397826657788782,0.24298144687970957,0.24198869987835228,0.24100000893403706,0.24001535747496994,0.23903472899706424,0.23805810706366384,0.23708547530526772,0.23611681741925558,0.23515211716961457,0.23419135838666716,0.2332345249668001,0.2322816008721946,0.23133257013055736,0.23038741683485295,0.22944612514303717,0.22850867927779148,0.22757506352625861,0.22664526223977918,0.22571925983362937,0.2247970407867597,0.2238785896415349,0.22296389100347483,0.22205292954099645,0.2211456899851568 -FR0000120644,Emissions,S1,,39499002.5859383,36193002.5859383,35461094.5859383,31838172.5859383,30202558.5859383,31817606.5859383,26625135.5859383,15129771.5859383,13457443.5859383,12966980.5859383,13136322.5859383,13136322.5859383,12822864.162859576,12516885.472587062,12218208.034024915,11926657.62498632,11642064.180567568,11364261.693947122,11093088.11955182,10828385.278533725,10569998.766502466,10317777.863459283,10071575.445880217,9831247.900897162,9596655.042526737,9367660.02989809,9144129.287431955,8925932.426924387,8712942.171489736,8505034.281318493,8302087.481206691,8103983.389814604,7910606.450613472,7721843.864479967,7537585.523899096,7357723.948737142,7182154.223547193,7010773.936370689,6843483.118999276,6680184.188662133,6520781.891104754 -FR0000120644,Emissions,S2,,6236002.58593829,5189002.58593829,7189303.58593829,4181124.58593829,1547095.58593829,970947.585938292,4503672.58593829,5010565.58593829,2543866.58593829,2081746.58593829,2001731.58593829,2001731.58593829,1924792.0804620935,1850809.8583422203,1779671.2520317389,1711266.9629635108,1645491.893622009,1582244.9860697044,1521429.066679927,1462950.6968376513,1406720.0293788146,1352650.6705476036,1300659.5472596153,1250666.779466954,1202595.5574291653,1156372.0237014405,1111925.1596587806,1069186.67638177,1028090.9097363176,988574.719486161,950577.3922831323,914040.5483861348,878908.051965514,845125.9248550121,812642.2636187936,781407.1598061217,751372.6232711641,722492.508440115,694722.4434123492,668019.7617866775,642343.437107961 -FR0000120644,Productions,Production,,552913202.585938,522525602.585938,485128802.585938,491166002.585938,500011202.585938,483746402.585938,512877602.585938,495176402.585938,414482402.585938,411300002.585938,444466802.585938,444466802.585938,444466802.585938,444466802.585938,444466802.585938,444466802.585938,444466802.585938,444466802.585938,444466802.585938,444466802.585938,444466802.585938,444466802.585938,444466802.585938,444466802.585938,444466802.585938,444466802.585938,444466802.585938,444466802.585938,444466802.585938,444466802.585938,444466802.585938,444466802.585938,444466802.585938,444466802.585938,444466802.585938,444466802.585938,444466802.585938,444466802.585938,444466802.585938,444466802.585938,444466802.585938 -FR0000120644,Emission Intensities,S1,,0.0714379805025528,0.0692655104492908,0.073096246598668,0.0648216130968218,0.0604037638151663,0.0657733192760764,0.0519132351494662,0.0305543065197104,0.0324680698190752,0.0315268186346022,0.0295552390178755,0.0295552390178755,0.02869843096344,0.027866461823069833,0.027058611515238286,0.02627418083362291,0.025512490841932186,0.024772882286276162,0.02405471502457253,0.02335736747249423,0.02268023606547909,0.02202273473633579,0.02138429440799412,0.020764362500960382,0.020162402455051735,0.019577893264995445,0.01901032902949117,0.018459218513345938,0.01792408472230287,0.01740446449019563,0.016899908078071298,0.016409978784934696,0.015934252569777242,0.015472317684563239,0.015023774317855877,0.014588234248774565,0.014165320510984047,0.01375466706642449,0.01335591848850017,0.012968729654452515,0.012592765446651288 -FR0000120644,Emission Intensities,S2,,0.011278447605832,0.0099306188256773,0.0148193707477608,0.00851265063934617,0.00309412184754478,0.00200714171877651,0.00878118397689954,0.0101187487121192,0.00613745377383265,0.0050613823798927,0.00450366950758095,0.00450366950758095,0.004053302556822855,0.0036479723011405697,0.003283175071026513,0.0029548575639238616,0.0026593718075314755,0.002393434626778328,0.0021540911641004953,0.0019386820476904457,0.001744813842921401,0.0015703324586292611,0.001413299212766335,0.0012719692914897015,0.0011447723623407313,0.0010302951261066582,0.0009272656134959924,0.0008345390521463932,0.000751085146931754,0.0006759766322385786,0.0006083789690147207,0.0005475410721132487,0.0004927869649019238,0.00044350826841173144,0.0003991574415705583,0.0003592416974135025,0.0003233175276721522,0.000290985774904937,0.0002618871974144433,0.00023569847767299895,0.00021212862990569907 +IT0000000003,Emission Intensities,S2,,,,,,0.282853666761831,0.255689132410331,0.252591922818919,0.247703189351473,0.244329727418293,0.249024042707543,0.249024042707543,0.249024042707543,0.24800660752951406,0.24699332927677728,0.2459841909654223,0.24497917568092972,0.24397826657788768,0.2429814468797094,0.2419886998783521,0.24100000893403684,0.2400153574749697,0.23903472899706396,0.23805810706366354,0.23708547530526738,0.23611681741925522,0.23515211716961418,0.23419135838666674,0.2332345249667997,0.23228160087219418,0.2313325701305569,0.23038741683485248,0.22944612514303667,0.22850867927779095,0.22757506352625806,0.2266452622397786,0.22571925983362875,0.22479704078675905,0.22387858964153423,0.22296389100347416,0.22205292954099576,0.22114568998515607 +SE0000000004,Productions,Production,,,,,,31580000.2335485,31040000.2335485,29751000.2335485,30410000.2335485,29145000.2335485,27880000.2335485,28090000.2335485,28090000.2335485,27944157.6592336,27799072.295894347,27654740.21211041,27511157.4968733,27368320.259480376,27226224.62942943,27084866.75631381,26944242.809718065,26804348.979114182,26665181.473758303,26526736.52258802,26389010.37412018,26251999.296349242,26115699.576646145,25980107.521657705,25845219.45720653,25711031.72819146,25577540.698488545,25444742.750852484,25312634.286818627,25181211.726605464,25050471.50901762,24920410.091349356,24791023.94928857,24662309.5768213,24534263.486136727,24406882.207532648,24280162.289321475,24154100.29773669 SE0000000004,Emissions,S1,,,,,,,,54700000.2335485,55000000.2335485,54900000.2335485,52300000.2335485,52900000.2335485,52900000.2335485,52900000.2335485,52900000.2335485,52900000.2335485,52900000.2335485,52900000.2335485,52900000.2335485,52900000.2335485,52900000.2335485,52900000.2335485,52900000.2335485,52900000.2335485,52900000.2335485,52900000.2335485,52900000.2335485,52900000.2335485,52900000.2335485,52900000.2335485,52900000.2335485,52900000.2335485,52900000.2335485,52900000.2335485,52900000.2335485,52900000.2335485,52900000.2335485,52900000.2335485,52900000.2335485,52900000.2335485,52900000.2335485,52900000.2335485 SE0000000004,Emissions,S2,,,,,,,,6600000.23354846,6400000.23354846,7400000.23354846,7500000.23354846,7600000.23354846,7600000.23354846,7701333.566840272,7804018.01120057,7908071.581443036,8013512.532578866,8120359.363019395,8228630.817821435,8338345.8919758815,8449523.833740167,8562184.148015149,8676346.599767022,8792031.217494853,8909258.296744356,9028048.403668514,9148422.378635673,9270401.339885747,9394006.687235178,9519260.10583128,9646183.569956658,9774799.346884344,9905130.00078433,10037198.396682205,10171027.704470549,10306641.402973838,10444063.284067532,10583317.456852086,10724428.351882614,10867420.725454962,11012319.663948905,11159150.58822927 -SE0000000004,Productions,Production,,,,,,31580000.2335485,31040000.2335485,29751000.2335485,30410000.2335485,29145000.2335485,27880000.2335485,28090000.2335485,28090000.2335485,27944157.6592336,27799072.295894347,27654740.21211041,27511157.4968733,27368320.259480376,27226224.62942943,27084866.75631381,26944242.809718065,26804348.979114182,26665181.473758303,26526736.52258802,26389010.37412018,26251999.296349242,26115699.576646145,25980107.521657705,25845219.45720653,25711031.72819146,25577540.698488545,25444742.750852484,25312634.286818627,25181211.726605464,25050471.50901762,24920410.091349356,24791023.94928857,24662309.5768213,24534263.486136727,24406882.207532648,24280162.289321475,24154100.29773669 SE0000000004,Emission Intensities,S1,,,,,,,,1.83859365413424,1.80861558076781,1.8836850160788,1.87589669280616,1.88323245972668,1.88323245972668,1.88323245972668,1.88323245972668,1.88323245972668,1.88323245972668,1.88323245972668,1.88323245972668,1.88323245972668,1.88323245972668,1.88323245972668,1.88323245972668,1.88323245972668,1.88323245972668,1.88323245972668,1.88323245972668,1.88323245972668,1.88323245972668,1.88323245972668,1.88323245972668,1.88323245972668,1.88323245972668,1.88323245972668,1.88323245972668,1.88323245972668,1.88323245972668,1.88323245972668,1.88323245972668,1.88323245972668,1.88323245972668,1.88323245972668 SE0000000004,Emission Intensities,S2,,,,,,,,0.221841288754589,0.21045709254839,0.253902905275342,0.26901004916505,0.270558923829115,0.270558923829115,0.2721167164229467,0.27368347829316025,0.2752592610820083,0.27684411672908343,0.2784380974730297,0.28004125585326495,0.28165364471171217,0.2832753171945416,0.284906326753922,0.2865467271497832,0.2881965724515873,0.28985591704011143,0.29152481560924,0.2932033231677674,0.2948914950412114,0.29658938687363645,0.29829705462948786,0.3000145545954366,0.30174194338223437,0.30347927792657975,0.3052266154929947,0.3069840136757122,0.3087515304005747,0.31052922392694304,0.3123171528496173,0.3141153761007677,0.31592395295187714,0.31774294301569517,0.31957240624820255 +SE0000000005,Productions,Production,,,,,,12170001.0468216,12630001.0468216,12630001.0468216,12630001.0468216,12630001.0468216,12630001.0468216,12630001.0468216,12630001.0468216,12630001.0468216,12630001.0468216,12630001.0468216,12630001.0468216,12630001.0468216,12630001.0468216,12630001.0468216,12630001.0468216,12630001.0468216,12630001.0468216,12630001.0468216,12630001.0468216,12630001.0468216,12630001.0468216,12630001.0468216,12630001.0468216,12630001.0468216,12630001.0468216,12630001.0468216,12630001.0468216,12630001.0468216,12630001.0468216,12630001.0468216,12630001.0468216,12630001.0468216,12630001.0468216,12630001.0468216,12630001.0468216,12630001.0468216 SE0000000005,Emissions,S1,,14667421.0468216,15541981.0468216,21355001.0468216,28086001.0468216,26077001.0468216,26816001.0468216,31440001.0468216,36610961.0468216,41528001.0468216,41938351.0468216,40045311.0468216,40045311.0468216,41180161.0554735,42347171.74682384,43547254.52722918,44781346.63152599,46050411.85498777,47355441.30602519,48697454.18021718,50077498.55627731,51496652.21457727,52956023.47886654,54456752.081845686,56000010.055269316,57587002.64527376,59218969.25364433,60897184.40575735,62622958.7459528,64397640.06111498,66222614.3332606,68099306.82195628,70029183.17741087,72013750.58511186,74054558.94289976,76153202.0713999,78311318.95875661,80530595.04064237,82812763.51654111,85159606.70333397,87572957.42724454,90054700.45523056 SE0000000005,Emissions,S2,,976021.046821591,1550771.04682159,16541.0468215911,33601.0468215911,3742001.04682159,4157001.04682159,661001.046821591,1885181.04682159,626001.046821591,3909961.04682159,476901.046821591,476901.046821591,476901.046821591,476901.046821591,476901.046821591,476901.046821591,476901.046821591,476901.046821591,476901.046821591,476901.046821591,476901.046821591,476901.046821591,476901.046821591,476901.046821591,476901.046821591,476901.046821591,476901.046821591,476901.046821591,476901.046821591,476901.046821591,476901.046821591,476901.046821591,476901.046821591,476901.046821591,476901.046821591,476901.046821591,476901.046821591,476901.046821591,476901.046821591,476901.046821591,476901.046821591 -SE0000000005,Productions,Production,,,,,,12170001.0468216,12630001.0468216,12630001.0468216,12630001.0468216,12630001.0468216,12630001.0468216,12630001.0468216,12630001.0468216,12630001.0468216,12630001.0468216,12630001.0468216,12630001.0468216,12630001.0468216,12630001.0468216,12630001.0468216,12630001.0468216,12630001.0468216,12630001.0468216,12630001.0468216,12630001.0468216,12630001.0468216,12630001.0468216,12630001.0468216,12630001.0468216,12630001.0468216,12630001.0468216,12630001.0468216,12630001.0468216,12630001.0468216,12630001.0468216,12630001.0468216,12630001.0468216,12630001.0468216,12630001.0468216,12630001.0468216,12630001.0468216,12630001.0468216 SE0000000005,Emission Intensities,S1,,,,,,2.14272792142709,2.12319864008008,2.48931104045582,2.89872985054383,3.28804414923404,3.32053424947068,3.17064985967671,3.17064985967671,3.180048887829679,3.18947577832448,3.198930613755832,3.208413476963298,3.2179244510320073,3.2274636192933874,3.237031065325891,3.2466268729557295,3.2562511262576086,3.265903909555463,3.2755853074231966,3.285295404685422,3.2950342864182054,3.304802037949811,3.314598744861449,3.3244244929880256,3.3342793684188936,3.344163457498609,3.3540768468276863,3.3640196232633564,3.373991873920329,3.3839936861715563,3.3940251476489958,3.4040863462443807,3.41417737010999,3.4242983076594187,3.4344492475683546,3.4446302787753544,3.4548414904826226 SE0000000005,Emission Intensities,S2,,,,,,0.307477463019519,0.329137031058895,0.0523357871761963,0.149262144938302,0.0495646076750823,0.309577254374461,0.0377593830003368,0.0377593830003368,0.0377593830003368,0.0377593830003368,0.0377593830003368,0.0377593830003368,0.0377593830003368,0.0377593830003368,0.0377593830003368,0.0377593830003368,0.0377593830003368,0.0377593830003368,0.0377593830003368,0.0377593830003368,0.0377593830003368,0.0377593830003368,0.0377593830003368,0.0377593830003368,0.0377593830003368,0.0377593830003368,0.0377593830003368,0.0377593830003368,0.0377593830003368,0.0377593830003368,0.0377593830003368,0.0377593830003368,0.0377593830003368,0.0377593830003368,0.0377593830003368,0.0377593830003368,0.0377593830003368 -US24703L1035,Emissions,S1,,,,1174220.85954061,1310000.85954061,1280000.85954061,1150000.85954061,1230000.85954061,1290000.85954061,1170000.85954061,910000.859540609,910000.859540609,910000.859540609,910000.859540609,910000.859540609,910000.859540609,910000.859540609,910000.859540609,910000.859540609,910000.859540609,910000.859540609,910000.859540609,910000.859540609,910000.859540609,910000.859540609,910000.859540609,910000.859540609,910000.859540609,910000.859540609,910000.859540609,910000.859540609,910000.859540609,910000.859540609,910000.859540609,910000.859540609,910000.859540609,910000.859540609,910000.859540609,910000.859540609,910000.859540609,910000.859540609,910000.859540609 -US24703L1035,Emissions,S2,,,,132861.859540609,120000.859540609,140000.859540609,160000.859540609,170000.859540609,180000.859540609,190000.859540609,190000.859540609,190000.859540609,190000.859540609,195700.88532682727,201571.9118866321,207619.06924323106,213847.641320528,220263.07056014385,226870.96267694817,233677.09155725662,240687.40430397433,247908.02643309356,255345.26722608638,263005.62524286896,270895.79400015506,279022.6678201597,287393.3478547645,296015.14829040744,304895.60273911967,314042.47082129325,323463.74494593206,333167.65729431005,343162.68701313937,353457.56762353354,364061.29465223954,374983.13349180674,386232.627496561,397819.60632145783,409754.1945111016,422046.82034643466,434708.2249568277,447749.4717055326 -US24703L1035,Productions,Production,1464408000.85954,1567382400.85954,1596272400.85954,1613368800.85954,1617562800.85954,1594490400.85954,1558512000.85954,1570716000.85954,1535342400.85954,1505977200.85954,1472652000.85954,1472652000.85954,1472652000.85954,1472652000.85954,1472652000.85954,1472652000.85954,1472652000.85954,1472652000.85954,1472652000.85954,1472652000.85954,1472652000.85954,1472652000.85954,1472652000.85954,1472652000.85954,1472652000.85954,1472652000.85954,1472652000.85954,1472652000.85954,1472652000.85954,1472652000.85954,1472652000.85954,1472652000.85954,1472652000.85954,1472652000.85954,1472652000.85954,1472652000.85954,1472652000.85954,1472652000.85954,1472652000.85954,1472652000.85954,1472652000.85954,1472652000.85954 -US24703L1035,Emission Intensities,S1,,,,0.000727806846714173,0.000809860896185607,0.000802764857568663,0.000737883865447534,0.000783082911785146,0.000840204021473268,0.000776904762484337,0.00061793340110866,0.00061793340110866,0.00061793340110866,0.00061793340110866,0.00061793340110866,0.00061793340110866,0.00061793340110866,0.00061793340110866,0.00061793340110866,0.00061793340110866,0.00061793340110866,0.00061793340110866,0.00061793340110866,0.00061793340110866,0.00061793340110866,0.00061793340110866,0.00061793340110866,0.00061793340110866,0.00061793340110866,0.00061793340110866,0.00061793340110866,0.00061793340110866,0.00061793340110866,0.00061793340110866,0.00061793340110866,0.00061793340110866,0.00061793340110866,0.00061793340110866,0.00061793340110866,0.00061793340110866,0.00061793340110866,0.00061793340110866 -US24703L1035,Emission Intensities,S2,,,,8.23505818817279e-05,7.41862136523186e-05,8.78028864050474e-05,0.000102662577800085,0.000108231443142859,0.000117238252157849,0.000126164499324535,0.000129019523573601,0.000129019523573601,0.000129019523573601,0.00013289010928080902,0.0001368768125592333,0.00014098311693601032,0.00014521261044409063,0.00014956898875741334,0.00015405605842013574,0.00015867774017273983,0.00016343807237792203,0.0001683412145492597,0.0001733914509857375,0.00017859319451530962,0.00018395099035076892,0.000189469520061292,0.00019515360566313075,0.0002010082138330247,0.00020703846024801545,0.00021324961405545591,0.0002196471024771196,0.0002262365155514332,0.0002330236110179762,0.00024001431934851547,0.0002472147489289709,0.00025463119139684006,0.00026227012713874527,0.00027013823095290763,0.00027824237788149486,0.00028658964921793973,0.00029518733869447793,0.0003040429588553123 +NL0000000006,Productions,Production,,,,,23001000.8292913,25222000.8292913,23424000.8292913,24100000.8292913,24193000.8292913,24328000.8292913,23779000.8292913,22329000.8292913,22329000.8292913,22372083.754720084,22415249.806952335,22458499.146377936,22501831.933696236,22545248.329916652,22588748.49635926,22632332.59465539,22676000.786748245,22719753.234893482,22763590.10165983,22807511.549929686,22851517.742899716,22895608.844081476,22939785.01730201,22984046.426704455,23028393.236748658,23072825.612211786,23117343.718188938,23161947.720093753,23206637.783659033,23251414.074937355,23296276.760301683,23341226.006445996,23386261.980385903,23431384.84945926,23476594.781326797,23521891.943972737,23567276.50570542,23612748.635157935 NL0000000006,Emissions,S1,,,,,,,,31300000.8292913,31072000.8292913,29491000.8292913,27206000.8292913,27206000.8292913,27206000.8292913,27106549.66492058,27007462.04292262,26908736.634373236,26810372.11520612,26712367.16619506,26614720.47293627,26517430.725830734,26420496.62006667,26323916.85560201,26227690.13714698,26131815.174146708,26036290.680763938,25941115.375861768,25846287.98298648,25751807.230350412,25657671.850814905,25563880.58187331,25470432.165634047,25377325.34880375,25284558.882670447,25192131.523086812,25100042.03045349,25008289.16970245,24916871.710280456,24825788.426132526,24735038.09568551,24644619.501831707,24554531.431912526,24464772.677702244 NL0000000006,Emissions,S2,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -NL0000000006,Productions,Production,,,,,23001000.8292913,25222000.8292913,23424000.8292913,24100000.8292913,24193000.8292913,24328000.8292913,23779000.8292913,22329000.8292913,22329000.8292913,22372083.754720084,22415249.806952335,22458499.146377936,22501831.933696236,22545248.329916652,22588748.49635926,22632332.59465539,22676000.786748245,22719753.234893482,22763590.10165983,22807511.549929686,22851517.742899716,22895608.844081476,22939785.01730201,22984046.426704455,23028393.236748658,23072825.612211786,23117343.718188938,23161947.720093753,23206637.783659033,23251414.074937355,23296276.760301683,23341226.006445996,23386261.980385903,23431384.84945926,23476594.781326797,23521891.943972737,23567276.50570542,23612748.635157935 NL0000000006,Emission Intensities,S1,,,,,,,,1.2987551764417,1.28433843525816,1.21222458993769,1.14411875522451,1.21841550534596,1.21841550534596,1.2116152945773593,1.2048530370901265,1.1981285210597143,1.1914415358438093,1.1847918719757329,1.1781793211578802,1.1716036762551951,1.1650647312886826,1.1585622814289556,1.152096122989819,1.1456660534218897,1.139271871306251,1.132913376348145,1.126590369370696,1.1203026523086737,1.1140500282022872,1.107832301191016,1.1016492765074752,1.0955007604713138,1.089386560483148,1.0833064850185283,1.0772603436219395,1.0712479469008354,1.0652691065197062,1.0593236351941784,1.0534113466851487,1.0475320557929497,1.0416855783515493,1.0358717312227812 NL0000000006,Emission Intensities,S2,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -TW0002308004,Emissions,S1,11074001.5077199,8500001.50771989,9328837.50771989,8328346.50771989,7914001.50771989,7250001.50771989,7020001.50771989,7038001.50771989,5800001.50771989,4000001.50771989,4500001.50771989,4500001.50771989,4500001.50771989,4316682.013685079,4140830.525346606,3972142.8136895793,3810327.043274751,3655103.267353349,3506202.943549745,3363368.4692740724,3226352.7360610473,3094918.702063974,2968838.981964343,2847895.4535875516,2731878.880544171,2620588.550243927,2513831.926656138,2411424.317215879,2313188.553299604,2218954.683717444,2128559.680691908,2041847.1578143206,1958667.099491052,1878875.6014114742,1802334.621588642,1728911.7415419943,1658479.9372089077,1590917.359188779,1526107.1219394456,1463937.1015612492,1404299.741818902,1347091.8680655672 -TW0002308004,Emissions,S2,266001.507719888,350001.507719888,329353.507719888,319181.507719888,250001.507719888,220001.507719888,230001.507719888,247001.507719888,3400001.50771989,2900001.50771989,2500001.50771989,2500001.50771989,2500001.50771989,2500001.50771989,2500001.50771989,2500001.50771989,2500001.50771989,2500001.50771989,2500001.50771989,2500001.50771989,2500001.50771989,2500001.50771989,2500001.50771989,2500001.50771989,2500001.50771989,2500001.50771989,2500001.50771989,2500001.50771989,2500001.50771989,2500001.50771989,2500001.50771989,2500001.50771989,2500001.50771989,2500001.50771989,2500001.50771989,2500001.50771989,2500001.50771989,2500001.50771989,2500001.50771989,2500001.50771989,2500001.50771989,2500001.50771989 -TW0002308004,Productions,Production,,,,21142801.5077199,21142801.5077199,21142801.5077199,21142801.5077199,21142801.5077199,21142801.5077199,21142801.5077199,21142801.5077199,21142801.5077199,21142801.5077199,21142801.5077199,21142801.5077199,21142801.5077199,21142801.5077199,21142801.5077199,21142801.5077199,21142801.5077199,21142801.5077199,21142801.5077199,21142801.5077199,21142801.5077199,21142801.5077199,21142801.5077199,21142801.5077199,21142801.5077199,21142801.5077199,21142801.5077199,21142801.5077199,21142801.5077199,21142801.5077199,21142801.5077199,21142801.5077199,21142801.5077199,21142801.5077199,21142801.5077199,21142801.5077199,21142801.5077199,21142801.5077199,21142801.5077199 -TW0002308004,Emission Intensities,S1,,,,0.393909317300215,0.374311867082999,0.342906379037456,0.332027972033728,0.332879325625324,0.274325117492217,0.189189758332611,0.212838469210279,0.212838469210279,0.212838469210279,0.21172993718966618,0.21062717876461287,0.20953016386435425,0.2084388625747438,0.20735324513743772,0.2062732819490832,0.20519894356051144,0.20413020067593443,0.2030670241521462,0.20200938499772805,0.2009572543722581,0.19991060358552465,0.19886940409674406,0.19783362751378233,0.19680324559238097,0.19577823023538674,0.19475855349198554,0.19374418755694023,0.19273510476983235,0.19173127761430794,0.19073267871732716,0.18973928084841785,0.188751056918933,0.18776797998131217,0.18679002322834648,0.1858171599924478,0.18484936374492145,0.1838866080952428,0.1829288667903377 -TW0002308004,Emission Intensities,S2,,,,0.0150964623871319,0.0118244267500977,0.0104055040974376,0.0108784783149909,0.0116825344848317,0.160811305279409,0.13716259440174,0.118243625699606,0.118243625699606,0.118243625699606,0.118243625699606,0.118243625699606,0.118243625699606,0.118243625699606,0.118243625699606,0.118243625699606,0.118243625699606,0.118243625699606,0.118243625699606,0.118243625699606,0.118243625699606,0.118243625699606,0.118243625699606,0.118243625699606,0.118243625699606,0.118243625699606,0.118243625699606,0.118243625699606,0.118243625699606,0.118243625699606,0.118243625699606,0.118243625699606,0.118243625699606,0.118243625699606,0.118243625699606,0.118243625699606,0.118243625699606,0.118243625699606,0.118243625699606 +CN0000000007,Productions,Production,,,,,46030001.3676141,48160001.3676141,47320001.3676141,44530001.3676141,45170001.3676141,46505001.3676141,47840001.3676141,47050001.3676141,47050001.3676141,47116854.526801035,47183802.67737508,47250845.95430911,47317984.4927678,47385218.428107865,47452547.89587835,47519973.03182091,47587493.971870065,47655110.85215349,47722823.808992274,47790632.97890122,47858538.4985891,47926540.50495891,47994639.13510821,48062834.52632934,48131126.81610972,48199516.14213212,48268002.64227495,48336586.45461254,48405267.717415385,48474046.56915047,48542923.14848152,48611897.59426928,48680970.04557182,48750140.641644776,48819409.52194166,48888776.82611414,48958242.6940123,49027807.26568495 CN0000000007,Emissions,S1,,,,,,,,89000001.3676141,89000001.3676141,86000001.3676141,87000001.3676141,84000001.3676141,84000001.3676141,84000001.3676141,84000001.3676141,84000001.3676141,84000001.3676141,84000001.3676141,84000001.3676141,84000001.3676141,84000001.3676141,84000001.3676141,84000001.3676141,84000001.3676141,84000001.3676141,84000001.3676141,84000001.3676141,84000001.3676141,84000001.3676141,84000001.3676141,84000001.3676141,84000001.3676141,84000001.3676141,84000001.3676141,84000001.3676141,84000001.3676141,84000001.3676141,84000001.3676141,84000001.3676141,84000001.3676141,84000001.3676141,84000001.3676141 CN0000000007,Emissions,S2,,,,,,,,11000001.3676141,10000001.3676141,10000001.3676141,10000001.3676141,9000001.36761412,9000001.36761412,9000001.36761412,9000001.36761412,9000001.36761412,9000001.36761412,9000001.36761412,9000001.36761412,9000001.36761412,9000001.36761412,9000001.36761412,9000001.36761412,9000001.36761412,9000001.36761412,9000001.36761412,9000001.36761412,9000001.36761412,9000001.36761412,9000001.36761412,9000001.36761412,9000001.36761412,9000001.36761412,9000001.36761412,9000001.36761412,9000001.36761412,9000001.36761412,9000001.36761412,9000001.36761412,9000001.36761412,9000001.36761412,9000001.36761412 -CN0000000007,Productions,Production,,,,,46030001.3676141,48160001.3676141,47320001.3676141,44530001.3676141,45170001.3676141,46505001.3676141,47840001.3676141,47050001.3676141,47050001.3676141,47116854.526801035,47183802.67737508,47250845.95430911,47317984.4927678,47385218.428107865,47452547.89587835,47519973.03182091,47587493.971870065,47655110.85215349,47722823.808992274,47790632.97890122,47858538.4985891,47926540.50495891,47994639.13510821,48062834.52632934,48131126.81610972,48199516.14213212,48268002.64227495,48336586.45461254,48405267.717415385,48474046.56915047,48542923.14848152,48611897.59426928,48680970.04557182,48750140.641644776,48819409.52194166,48888776.82611414,48958242.6940123,49027807.26568495 CN0000000007,Emission Intensities,S1,,,,,,,,1.9986525630862,1.97033426329327,1.84926349507656,1.81856184950927,1.78533472743815,1.78533472743815,1.7556944332525388,1.7265462300042222,1.697881947953418,1.669693552995128,1.641973144407317,1.614712952636476,1.5879053371199512,1.5615427841444236,1.5356179047399465,1.5101234326089437,1.4850522220895905,1.460397246153009,1.436151594433712,1.4123084712927467,1.388861193912994,1.3658031904260897,1.3431279980704434,1.320829261379837,1.2989007304020974,1.2773362589473423,1.2561298028653083,1.235275418351281,1.2147672602801476,1.194599580568109,1.1747667265615918,1.1552631394529054,1.136083352722205,1.1172219906053198,1.0986737665870185 CN0000000007,Emission Intensities,S2,,,,,,,,0.247024501005612,0.221385899155272,0.215030664950761,0.209030122946103,0.191285889606989,0.191285889606989,0.18579472403091038,0.18046119109279507,0.1752807656971589,0.17024905264857773,0.1653617829226998,0.16061481004430436,0.15600410656933425,0.1515257606679169,0.14717597280547545,0.14295105251911375,0.13884741528654035,0.13486157948487498,0.13099016343675743,0.12722988254125245,0.12357754648711661,0.12003005654606286,0.1165844029437261,0.11323766230609948,0.10998699517927471,0.10682964362038223,0.10376292885768727,0.10078424901785653,0.09789107691846728,0.09508095792388613,0.09235150786269798,0.0897004110049187,0.08712541809727499,0.08462434445488472,0.08219506810771862 +CN0000000008,Productions,Production,,,,,,15921004.6310296,15855004.6310296,16419004.6310296,16850004.6310296,17286004.6310296,15520004.6310296,15520004.6310296,15520004.6310296,15520004.6310296,15520004.6310296,15520004.6310296,15520004.6310296,15520004.6310296,15520004.6310296,15520004.6310296,15520004.6310296,15520004.6310296,15520004.6310296,15520004.6310296,15520004.6310296,15520004.6310296,15520004.6310296,15520004.6310296,15520004.6310296,15520004.6310296,15520004.6310296,15520004.6310296,15520004.6310296,15520004.6310296,15520004.6310296,15520004.6310296,15520004.6310296,15520004.6310296,15520004.6310296,15520004.6310296,15520004.6310296,15520004.6310296 CN0000000008,Emissions,S1,,,,,,,29200004.6310296,29200004.6310296,29600004.6310296,30200004.6310296,28400004.6310296,28400004.6310296,28400004.6310296,28400004.6310296,28400004.6310296,28400004.6310296,28400004.6310296,28400004.6310296,28400004.6310296,28400004.6310296,28400004.6310296,28400004.6310296,28400004.6310296,28400004.6310296,28400004.6310296,28400004.6310296,28400004.6310296,28400004.6310296,28400004.6310296,28400004.6310296,28400004.6310296,28400004.6310296,28400004.6310296,28400004.6310296,28400004.6310296,28400004.6310296,28400004.6310296,28400004.6310296,28400004.6310296,28400004.6310296,28400004.6310296,28400004.6310296 CN0000000008,Emissions,S2,,,,,,,3600004.63102958,3800004.63102958,4000004.63102958,4000004.63102958,3600004.63102958,3600004.63102958,3600004.63102958,3600004.63102958,3600004.63102958,3600004.63102958,3600004.63102958,3600004.63102958,3600004.63102958,3600004.63102958,3600004.63102958,3600004.63102958,3600004.63102958,3600004.63102958,3600004.63102958,3600004.63102958,3600004.63102958,3600004.63102958,3600004.63102958,3600004.63102958,3600004.63102958,3600004.63102958,3600004.63102958,3600004.63102958,3600004.63102958,3600004.63102958,3600004.63102958,3600004.63102958,3600004.63102958,3600004.63102958,3600004.63102958,3600004.63102958 -CN0000000008,Productions,Production,,,,,,15921004.6310296,15855004.6310296,16419004.6310296,16850004.6310296,17286004.6310296,15520004.6310296,15520004.6310296,15520004.6310296,15520004.6310296,15520004.6310296,15520004.6310296,15520004.6310296,15520004.6310296,15520004.6310296,15520004.6310296,15520004.6310296,15520004.6310296,15520004.6310296,15520004.6310296,15520004.6310296,15520004.6310296,15520004.6310296,15520004.6310296,15520004.6310296,15520004.6310296,15520004.6310296,15520004.6310296,15520004.6310296,15520004.6310296,15520004.6310296,15520004.6310296,15520004.6310296,15520004.6310296,15520004.6310296,15520004.6310296,15520004.6310296,15520004.6310296 -CN0000000008,Emission Intensities,S1,,,,,,,1.8416900726653,1.77842721207629,1.75667634989967,1.74707836053789,1.82989665958273,1.82989665958273,1.82989665958273,1.8278970506424905,1.8258996267632996,1.8239043855574446,1.821911324639822,1.8199204416279342,1.8179317341418877,1.815945199804389,1.813960836240743,1.8119786410788488,1.8099986119491982,1.8080207464848719,1.8060450423215373,1.8040714970974454,1.8021001084534278,1.800130874032894,1.7981637914818291,1.79619885844879,1.7942360725849036,1.792275431543863,1.7903169329819255,1.7883605745579099,1.7864063539331927,1.784454268771706,1.782504316739935,1.7805564955069144,1.7786108027442264,1.7766672361259974,1.7747257933288954,1.772786472032127 +CN0000000008,Emission Intensities,S1,,,,,,,1.8416900726653,1.77842721207629,1.75667634989967,1.74707836053789,1.82989665958273,1.82989665958273,1.82989665958273,1.8278970506424908,1.8258996267633,1.8239043855574453,1.8219113246398229,1.8199204416279353,1.817931734141889,1.8159451998043905,1.8139608362407444,1.8119786410788505,1.8099986119492,1.8080207464848739,1.8060450423215395,1.8040714970974479,1.8021001084534303,1.8001308740328967,1.798163791481832,1.7961988584487931,1.7942360725849067,1.7922754315438663,1.790316932981929,1.7883605745579136,1.7864063539331965,1.78445426877171,1.782504316739939,1.7805564955069186,1.778610802744231,1.776667236126002,1.7747257933289002,1.772786472032132 CN0000000008,Emission Intensities,S2,,,,,,,0.22705793626727,0.231439403083431,0.237388933630528,0.231401339778036,0.231958992063184,0.231958992063184,0.231958992063184,0.23223849014670572,0.23251832501035397,0.2327984970599306,0.23307900670172654,0.23335985434252218,0.2336410403895881,0.23392256525068564,0.23420442933406743,0.23448663304847803,0.23476917680315454,0.23505206100782716,0.23533528607271978,0.23561885240855057,0.23590276042653263,0.23618701053837454,0.236471603156281,0.2367565386929533,0.2370418175615901,0.2373274401758879,0.23761340695004168,0.23789971829874557,0.23818637463719328,0.23847337638107888,0.2387607239465973,0.239048417750445,0.23933645820982047,0.23962484574242493,0.23991358076646294,0.24020266370064294 -FR0000120321,Emissions,S1,,185584163.90193,188513981.90193,189986958.90193,200994691.90193,201036494.90193,213050961.90193,231671486.101929,221222495.90193,231986764.90193,240369173.90193,226132940.90193,226132940.90193,226179972.17046288,226227013.22058797,226274064.0543397,226321124.67375284,226368195.08086264,226415275.27770475,226462365.26631522,226509465.04873058,226556574.62698776,226603694.00312406,226650823.17917728,226697962.1571856,226745110.93918768,226792269.52722248,226839437.92332953,226886616.1295487,226933804.14792028,226981001.98048505,227028209.62928414,227075427.09635913,227122654.38375208,227169891.49350536,227217138.42766187,227264395.18826488,227311661.7773581,227358938.19698572,227406224.44919223,227453520.53602263,227500826.45952237 -FR0000120321,Emissions,S2,,,,0.901929562977962,0.901929562977962,0.901929562977962,6235.05442956298,12469.206929563,18703.359429563,24937.511929563,23268.401929563,15845.901929563,15845.901929563,15845.901929563,15845.901929563,15845.901929563,15845.901929563,15845.901929563,15845.901929563,15845.901929563,15845.901929563,15845.901929563,15845.901929563,15845.901929563,15845.901929563,15845.901929563,15845.901929563,15845.901929563,15845.901929563,15845.901929563,15845.901929563,15845.901929563,15845.901929563,15845.901929563,15845.901929563,15845.901929563,15845.901929563,15845.901929563,15845.901929563,15845.901929563,15845.901929563,15845.901929563 -FR0000120321,Productions,Production,,787824000.90193,793944000.90193,799452000.90193,835300800.90193,839822400.90193,868536000.90193,871128000.90193,901116000.90193,956880000.90193,988020000.90193,934632000.90193,934632000.90193,939691294.5728028,944777974.9075427,949892190.1539896,955034089.3624694,960203822.3901387,965401539.9053515,970627393.3920507,975881535.1541831,981164118.320138,986475296.8472099,991815225.526086,997184059.9853567,1002581956.6960521,1008009072.9762017,1013465566.9954194,1018951597.7795135,1024467325.2151212,1030012910.0543683,1035588513.9195544,1041194299.3078631,1046830429.5960982,1052497069.0454448,1058194382.8062569,1063922536.9228702,1069681698.3384417,1075472034.8998153,1081293715.362413,1087146909.3951535,1093031787.5853975 -FR0000120321,Emission Intensities,S1,,0.235565511699905,0.237439897131001,0.237646486202535,0.240625522787602,0.239379772063743,0.245298941760258,0.265944253728575,0.245498355018119,0.242440812519088,0.243283712558961,0.241948639340092,0.241948639340092,0.241948639340092,0.241948639340092,0.241948639340092,0.241948639340092,0.241948639340092,0.241948639340092,0.241948639340092,0.241948639340092,0.241948639340092,0.241948639340092,0.241948639340092,0.241948639340092,0.241948639340092,0.241948639340092,0.241948639340092,0.241948639340092,0.241948639340092,0.241948639340092,0.241948639340092,0.241948639340092,0.241948639340092,0.241948639340092,0.241948639340092,0.241948639340092,0.241948639340092,0.241948639340092,0.241948639340092,0.241948639340092,0.241948639340092 -FR0000120321,Emission Intensities,S2,,,,1.12818475901045e-09,1.07976618962186e-09,1.07395273335092e-09,7.17880942538732e-06,1.43138630794245e-05,2.07557732976029e-05,2.60612740427823e-05,2.35505373457238e-05,1.69541615462252e-05,1.69541615462252e-05,1.69541615462252e-05,1.69541615462252e-05,1.69541615462252e-05,1.69541615462252e-05,1.69541615462252e-05,1.69541615462252e-05,1.69541615462252e-05,1.69541615462252e-05,1.69541615462252e-05,1.69541615462252e-05,1.69541615462252e-05,1.69541615462252e-05,1.69541615462252e-05,1.69541615462252e-05,1.69541615462252e-05,1.69541615462252e-05,1.69541615462252e-05,1.69541615462252e-05,1.69541615462252e-05,1.69541615462252e-05,1.69541615462252e-05,1.69541615462252e-05,1.69541615462252e-05,1.69541615462252e-05,1.69541615462252e-05,1.69541615462252e-05,1.69541615462252e-05,1.69541615462252e-05,1.69541615462252e-05 -CH0038863350,Emissions,S1,,1968704.15493443,2832949.15493443,12866001.1549344,13663001.1549344,14934001.1549344,16918001.1549344,16977001.1549344,17293001.1549344,18162001.1549344,17976001.1549344,16065001.1549344,16065001.1549344,16364025.718732808,16668616.151396861,16978876.0527641,17294910.951019026,17616828.33858624,17944737.708691645,18278750.592604212,18618980.59757091,18965543.445457764,19318557.01211013,19678141.36744561,20044418.816293254,20417513.939992867,20797553.638768673,21184667.174891673,21578986.21664541,21980644.883110072,22389779.789780207,22806530.095031507,23231037.54745253,23663446.534057412,24103904.12939596,24552560.145577908,25009567.18322823,25475080.683390956,25949258.980399072,26432263.355728507,26924258.092854537,27425410.533129256 -CH0038863350,Emissions,S2,,52966.1549344293,58302.1549344293,61001.1549344293,202001.154934429,130001.154934429,409001.154934429,1265001.15493443,1818001.15493443,2090001.15493443,2289001.15493443,2403001.15493443,2403001.15493443,2475091.189582463,2549343.9252699367,2625824.243028035,2704598.970318876,2785736.9394284426,2869309.047611296,2955388.3190396354,3044049.9686108246,3135371.4676691494,3229432.611699224,3326315.590050201,3426105.0577517073,3528888.2094842587,3634754.8557687867,3743797.5014418503,3856111.426485106,3971794.7692796593,4090948.612358049,4213677.070728791,4340087.382850654,4470290.004336175,4604398.70446626,4742530.665600248,4884806.585568255,5031350.783135302,5182291.306629362,5337760.045828243,5497892.84720309,5662829.632619183 -CH0038863350,Productions,Production,,34887601.1549344,35434801.1549344,38350801.1549344,56516401.1549344,61902001.1549344,71791201.1549344,72248401.1549344,73062001.1549344,77691601.1549344,73011601.1549344,65804401.1549344,65804401.1549344,66223474.407979816,66645216.515818164,67069644.474967,67496775.39018568,67926626.47516467,68359215.05321927,68794558.55798781,69232674.53413415,69673580.63805482,70117294.63859051,70563834.41774228,71013217.97139208,71465463.41002811,71920588.95947464,72378612.9616265,72839553.87518832,73303430.27641842,73770260.8598774,74240064.4391816,74712859.9477613,75188666.4396237,75667503.09012085,76149389.19672245,76634344.1797935,77122387.583377,77613539.07598157,78107818.45137408,78605245.62937742,79105840.65667321 -CH0038863350,Emission Intensities,S1,,0.056429908900629,0.0799482165159527,0.33548193955471,0.241752851839921,0.241252316182091,0.235655635826781,0.2349809945071,0.236689399161995,0.23377045761633,0.246207463890409,0.244132624459417,0.244132624459417,0.24362716161646997,0.24312274530585826,0.24261937336079561,0.242117043618982,0.24161575392259435,0.2411155021182772,0.2406162860571335,0.24011810359471536,0.23962095259101487,0.23912483091045486,0.2386297364218798,0.23813566699854652,0.23764262051811522,0.23715059486264026,0.23665958791856107,0.23616959757669312,0.23568062173221882,0.23519265828467847,0.23470570513796127,0.23421976020029628,0.23373482138424348,0.23325088660668475,0.23276795378881499,0.2322860208561331,0.23180508573843311,0.23132514636979537,0.23084620068857753,0.2303682466374058,0.229891282163166 -CH0038863350,Emission Intensities,S2,,0.00151819423465685,0.00164533602656637,0.0015906096638761,0.00357420413908986,0.00210011231477072,0.00569709307484288,0.0175090539681518,0.024882991516742,0.0269012496056877,0.0313511978743905,0.0365173318616887,0.0365173318616887,0.03761285181753936,0.03874123737206554,0.03990347449322751,0.041100578728024334,0.04233359608986507,0.04360360397256102,0.04491171209173785,0.04625906345448999,0.04764683535812469,0.04907624041886843,0.05054852763143449,0.05206498346037753,0.053626932964188856,0.05523574095311452,0.05689281318170796,0.0585995975771592,0.060357585504473975,0.0621683130696082,0.06403336246169644,0.06595436333554734,0.06793299423561376,0.06997098406268218,0.07207011358456264,0.07423221699209952,0.07645918350186251,0.0787529590069184,0.08111554777712594,0.08354901421043973,0.08605548463675292 -US8356993076,Emissions,S1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -US8356993076,Emissions,S2,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -US8356993076,Productions,Production,193680004.281372,189828004.281372,203472004.281372,205380004.281372,205344004.281372,197424004.281372,200088004.281372,193212004.281372,233684004.281372,288420004.281372,288420004.281372,288420004.281372,288420004.281372,288420004.281372,288420004.281372,288420004.281372,288420004.281372,288420004.281372,288420004.281372,288420004.281372,288420004.281372,288420004.281372,288420004.281372,288420004.281372,288420004.281372,288420004.281372,288420004.281372,288420004.281372,288420004.281372,288420004.281372,288420004.281372,288420004.281372,288420004.281372,288420004.281372,288420004.281372,288420004.281372,288420004.281372,288420004.281372,288420004.281372,288420004.281372,288420004.281372,288420004.281372 -US8356993076,Emission Intensities,S1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -US8356993076,Emission Intensities,S2,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +CN0000000009,Productions,Production,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, CN0000000009,Emissions,S1,60457000.4256679,68748000.4256679,74602000.4256679,85678000.4256679,79928000.4256679,84451000.4256679,82741000.4256679,81346000.4256679,67743000.4256679,69687000.4256679,79447000.4256679,79447000.4256679,79447000.4256679,79917059.50330581,80389899.74996565,80865537.62081552,81343989.66838273,81825272.54312994,82309402.9940345,82796397.86917144,83286274.1162997,83779048.78345199,84274739.019528,84773362.07489128,85274935.30196951,85779476.15585838,86287002.19492906,86797531.08143923,87311080.58214772,87827668.56893285,88347313.01941435,88870032.01757902,89395843.75441003,89924766.52852,90456818.74678782,90992018.92499916,91530385.68849093,92071937.77279937,92616694.0243121,93164673.40092397,93715894.97269683,94270377.92252314 CN0000000009,Emissions,S2,2698000.42566793,3033000.42566793,3625000.42566793,3682000.42566793,4539000.42566793,5032000.42566793,4431000.42566793,3719000.42566793,2956000.42566793,2802000.42566793,795000.425667932,795000.425667932,795000.425667932,795000.425667932,795000.425667932,795000.425667932,795000.425667932,795000.425667932,795000.425667932,795000.425667932,795000.425667932,795000.425667932,795000.425667932,795000.425667932,795000.425667932,795000.425667932,795000.425667932,795000.425667932,795000.425667932,795000.425667932,795000.425667932,795000.425667932,795000.425667932,795000.425667932,795000.425667932,795000.425667932,795000.425667932,795000.425667932,795000.425667932,795000.425667932,795000.425667932,795000.425667932 -CN0000000009,Productions,Production,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, CN0000000009,Emission Intensities,S1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, CN0000000009,Emission Intensities,S2,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -JP3401400001,Emissions,S1,9150002.14049632,8650002.14049632,8631002.14049632,8960002.14049632,9296403.94049632,9632805.74049632,9969207.54049632,10305609.3404963,10642011.1404963,11403118.1404963,9681777.14049632,9681777.14049632,9681777.14049632,9808192.460528428,9936258.390041308,10065996.481103629,10197428.56719021,10330576.766856354,10465463.487460157,10602111.42893341,10740543.58760175,10880783.260054681,11022854.047066135,11166779.857566217,11312584.912664806,11460293.749727711,11609931.226506023,11761522.525319403,11915093.157293988,12070668.966655625,12228276.135079168,12387941.186094563,12549690.989550462,12713552.766136115,12879554.091962317,13047722.903202152,13218087.500792343,13390676.555195987,13565519.11122747,13742644.592940385,13922082.808579277,14103863.955596037 -JP3401400001,Emissions,S2,,2.14049631522688,2.14049631522688,2.14049631522688,310616.540496315,621230.940496315,931845.340496315,1242459.74049632,1553074.14049631,1239860.14049631,1203273.14049631,1203273.14049631,1203273.14049631,1203273.14049631,1203273.14049631,1203273.14049631,1203273.14049631,1203273.14049631,1203273.14049631,1203273.14049631,1203273.14049631,1203273.14049631,1203273.14049631,1203273.14049631,1203273.14049631,1203273.14049631,1203273.14049631,1203273.14049631,1203273.14049631,1203273.14049631,1203273.14049631,1203273.14049631,1203273.14049631,1203273.14049631,1203273.14049631,1203273.14049631,1203273.14049631,1203273.14049631,1203273.14049631,1203273.14049631,1203273.14049631,1203273.14049631 -JP3401400001,Productions,Production,44323202.1404963,40827602.1404963,40676402.1404963,39729602.1404963,38782802.1404963,52791723.2224963,59593083.6504963,64762513.9564963,60584801.5404963,46522116.8924963,47691749.8864963,47691749.8864963,47691749.8864963,47691749.8864963,47691749.8864963,47691749.8864963,47691749.8864963,47691749.8864963,47691749.8864963,47691749.8864963,47691749.8864963,47691749.8864963,47691749.8864963,47691749.8864963,47691749.8864963,47691749.8864963,47691749.8864963,47691749.8864963,47691749.8864963,47691749.8864963,47691749.8864963,47691749.8864963,47691749.8864963,47691749.8864963,47691749.8864963,47691749.8864963,47691749.8864963,47691749.8864963,47691749.8864963,47691749.8864963,47691749.8864963,47691749.8864963 -JP3401400001,Emission Intensities,S1,0.206438201632917,0.211866523797549,0.212186960653128,0.225524587656603,0.239704287143016,0.182468105841096,0.167287996019204,0.159129235585558,0.175654799056872,0.245111764085171,0.203007378918543,0.203007378918543,0.203007378918543,0.2031608978534696,0.20331453288301063,0.20346828409495954,0.2036221515771762,0.2037761354175869,0.20393023570418445,0.2040844525250282,0.20423878596824402,0.2043932361220245,0.20454780307462894,0.2047024869143833,0.20485728772968043,0.20501220560897992,0.20516724064080835,0.2053223929137592,0.20547766251649294,0.2056330495377371,0.20578855406628632,0.20594417619100236,0.2060999160008142,0.20625577358471808,0.20641174903177753,0.20656784243112342,0.20672405387195403,0.2068803834435351,0.20703683123519986,0.20719339733634912,0.20735008183645126,0.20750688482504237 -JP3401400001,Emission Intensities,S2,,5.24276764494027e-08,5.26225576154353e-08,5.38766108872023e-08,0.0080091309382716,0.0117675821620384,0.0156368035250774,0.0191848596447465,0.0256347153247371,0.026650982872542,0.0252302157786208,0.0252302157786208,0.0252302157786208,0.025770066601127278,0.026321468609446754,0.026884668964254222,0.027459920114720617,0.028047479911670732,0.028647611723162398,0.029260584552538684,0.029886673159006075,0.030526158180792663,0.031179326260941543,0.03184647017579581,0.03252788896623277,0.03322388807170614,0.033934779467156354,0.03466088180285035,0.03540252054721354,0.03616002813271784,0.03693374410489143,0.037724015274516735,0.038531195873085046,0.039355647711577416,0.04019774034264296,0.04105785122624729,0.04193636589886535,0.042833678146294435,0.04375019018016491,0.044686312818227734,0.045642465668499575,0.04661907731734811 -US6541061031,Emissions,S1,,167100001.129387,163800001.129387,181700001.129387,165800001.129387,156600001.129387,152300001.129387,154000001.129387,135600001.129387,120400001.129387,91700001.129387,70400001.129387,70400001.129387,68466923.20682526,66586924.690438904,64758548.09973685,62980375.97444551,61251029.77561399,59569168.81689325,57933489.22516064,56342722.929684274,54795636.679043256,53291031.085041955,51827739.69287683,50404628.076835155,49020592.96082443,47674561.363050774,46365489.76418315,45092363.29835853,43854194.96640086,42650024.87064384,41478919.470764294,40339970.86004927,39232296.061535746,38155036.34347725,37107356.55360678,36088444.471679814,35097510.179795556,34133785.45000818,33196523.148753375,32284996.657628387,31398499.31007664 -US6541061031,Emissions,S2,,3100001.12938701,2400001.12938701,1900001.12938701,1500001.12938701,1400001.12938701,1300001.12938701,1300001.12938701,1000001.12938701,5000001.12938701,4700001.12938701,2600001.12938701,2600001.12938701,2426667.8512681113,2264890.1163233523,2113897.55558782,1972971.157988927,1841439.8464895017,1718677.2824878315,1604098.8832575467,1497159.0382246915,1397348.5108261874,1304192.0135776002,1217245.944802934,1136096.276248993,1060356.5815253449,989666.195981524,923688.4992589914,862109.3123395479,804635.4014571037,750993.0817485895,700926.9139947366,654198.4882447389,610585.2885325438,569879.6332786664,531887.6863318295,496428.53394111164,463333.32326323824,432444.4583026776,403614.8494556896,376707.21308473364,351593.41778788087 -US6541061031,Productions,Production,,811080001.129387,740520001.129387,817560001.129387,780120001.129387,749880001.129387,766800001.129387,777960001.129387,720720001.129387,633600001.129387,551394001.129387,528390001.129387,528390001.129387,508550149.3990898,489455239.3138632,471077299.9966006,453389410.8134881,436365661.9397395,419981116.4059994,404211773.5698178,389034533.9586884,374427165.4331518,360368270.62039745,346837255.5706604,333814299.59049964,321280326.20876867,309216975.2327485,297606575.85350955,286432120.7611066,275677241.2316899,265326183.15003854,255363783.9323943,245775450.31579024,236547136.98134035,227665325.98017627,219117006.93189353,210889657.96650165,202971227.38196087,195350115.99043688,188015160.12741408,180955615.298778,174161140.44191307 -US6541061031,Emission Intensities,S1,,0.206021601934099,0.221195917570857,0.222246686332972,0.212531406564832,0.208833414537704,0.198617632896545,0.197953623458559,0.188145189417386,0.190025253969026,0.166305764918667,0.133234923028281,0.133234923028281,0.13091666950021572,0.1286387529896398,0.12640047164278265,0.12420113581794942,0.12204006787303412,0.11991660195672978,0.1178300838033716,0.11577987053134974,0.11376533044502966,0.11178584284011905,0.10984079781242126,0.10792959606991641,0.10605164874811225,0.10420637722860783,0.10239321296081415,0.1006115972867768,0.09886098126904665,0.09714082552154556,0.09545060004337498,0.09378978405551622,0.09215786584037207,0.09055434258410044,0.08897872022169129,0.08743051328473915,0.08590924475186447,0.08441444590173748,0.08294565616865947,0.0815024230006569,0.08008430172004465 -US6541061031,Emission Intensities,S2,,0.00382206579507622,0.00324096732799479,0.00232398983164823,0.00192278255552408,0.00186696688440615,0.00169535879952047,0.00167103852061772,0.00138750295235318,0.00789141590983988,0.00852385248979909,0.00492061001122227,0.00492061001122227,0.004777771628745309,0.004639079643455304,0.004504413691278299,0.004373656902139985,0.004246695798539806,0.004123420197069318,0.004003723112789333,0.003887500666382857,0.0037746519940032508,0.0036650791597393683,0.0035586870706217125,0.0034553833940958395,0.0033550784778913953,0.0032576852722172416,0.003163119254215148,0.003071298354606485,0.0029821428864682635,0.002895575476076703,0.0028115209957583136,0.00272990649869022,0.0026506611555931364,0.002573716193262056,0.00249900483488131,0.002426462242072195,0.0023560254586228765,0.002287633355851733,0.0022212265795567275,0.002156747498504762,0.0020941401544163148 +BR0000000010,Productions,Production,,,,,15691492.9224849,11301980.9224849,11500001.9224849,11600001.9224849,3012108.92248495,12039001.9224849,11847001.9224849,11314001.9224849,11314001.9224849,11223783.132625751,11134283.75488085,11045498.052598318,10957420.334870819,10870044.95617078,10783366.315988539,10697378.858473353,10612077.072077302,10527455.489202004,10443508.68584816,10360231.281267889,10277617.937619844,10195663.359627066,10114362.29423757,10033709.530287651,9953699.898167849,9874328.2694916,9795589.556766523,9717478.71306832,9639990.731717287,9563120.6459574,9486863.528637957,9411214.49189777,9336168.686851855,9261721.303280644,9187867.569321657,9114602.75116364,9041922.152743142,8969821.115443517 BR0000000010,Emissions,S1,,,,,,,,23200001.9224849,22200001.9224849,22100001.9224849,23400001.9224849,23400001.9224849,23400001.9224849,23400001.9224849,23400001.9224849,23400001.9224849,23400001.9224849,23400001.9224849,23400001.9224849,23400001.9224849,23400001.9224849,23400001.9224849,23400001.9224849,23400001.9224849,23400001.9224849,23400001.9224849,23400001.9224849,23400001.9224849,23400001.9224849,23400001.9224849,23400001.9224849,23400001.9224849,23400001.9224849,23400001.9224849,23400001.9224849,23400001.9224849,23400001.9224849,23400001.9224849,23400001.9224849,23400001.9224849,23400001.9224849,23400001.9224849 BR0000000010,Emissions,S2,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -BR0000000010,Productions,Production,,,,,15691492.9224849,11301980.9224849,11500001.9224849,11600001.9224849,3012108.92248495,12039001.9224849,11847001.9224849,11314001.9224849,11314001.9224849,11223783.132625751,11134283.75488085,11045498.052598318,10957420.334870819,10870044.95617078,10783366.315988539,10697378.858473353,10612077.072077302,10527455.489202004,10443508.68584816,10360231.281267889,10277617.937619844,10195663.359627066,10114362.29423757,10033709.530287651,9953699.898167849,9874328.2694916,9795589.556766523,9717478.71306832,9639990.731717287,9563120.6459574,9486863.528637957,9411214.49189777,9336168.686851855,9261721.303280644,9187867.569321657,9114602.75116364,9041922.152743142,8969821.115443517 BR0000000010,Emission Intensities,S1,,,,,,,,1.99999983426857,7.37025203729028,1.83570050613659,1.97518343253351,2.06823386479905,2.06823386479905,2.1302808807430216,2.1941893071653125,2.260014986380272,2.3278154359716803,2.3976498990508306,2.4695793960223558,2.5436667779030264,2.6199767812401173,2.698576084677321,2.7795333672176405,2.86291936823417,2.9488069492811952,3.037271157759631,3.1283892924924204,3.222240971267193,3.318908200405209,3.4184754464173652,3.5210297098098864,3.626660601104183,3.7354604191373086,3.847524231711428,3.962949958662771,4.081838457422654,4.204293611145333,4.330422419479693,4.460335092064084,4.594145144826006,4.731969499170787,4.873928584145911 BR0000000010,Emission Intensities,S2,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +BR0000000011,Productions,Production,,,,,,,,,15393000.0778486,15419000.0778486,14618000.0778486,14473000.0778486,14473000.0778486,14401219.225470984,14329794.380192127,14258723.776345417,14188005.657021312,14117638.274023907,14047619.887827717,13977948.767534671,13908623.190831335,13839641.44394632,13771001.821607929,13702702.627001991,13634742.171729928,13567118.775767002,13499830.767420797,13432876.48328988,13366254.268222697,13299962.475276642,13233999.46567735,13168363.608778188,13103053.282019937,13038066.870890688,12973402.76888593,12909059.377468826,12845035.106030716,12781328.371851774,12717937.600061899,12654861.223601775,12592097.683184134,12529645.427255208 BR0000000011,Emissions,S1,4000000.07784856,6481635.07784856,10525000.0778486,9308000.07784856,9311000.07784856,9578000.07784856,9448000.07784856,9989000.07784856,9867000.07784856,9755000.07784856,9582000.07784856,9582000.07784856,9582000.07784856,9582000.07784856,9582000.07784856,9582000.07784856,9582000.07784856,9582000.07784856,9582000.07784856,9582000.07784856,9582000.07784856,9582000.07784856,9582000.07784856,9582000.07784856,9582000.07784856,9582000.07784856,9582000.07784856,9582000.07784856,9582000.07784856,9582000.07784856,9582000.07784856,9582000.07784856,9582000.07784856,9582000.07784856,9582000.07784856,9582000.07784856,9582000.07784856,9582000.07784856,9582000.07784856,9582000.07784856,9582000.07784856,9582000.07784856 BR0000000011,Emissions,S2,700993.077848565,1032496.57784856,1364000.07784857,1367000.07784857,1447000.07784857,1220000.07784857,1133000.07784857,1166000.07784857,1216000.07784857,1189000.07784857,1173000.07784857,1173000.07784857,1173000.07784857,1173000.07784857,1173000.07784857,1173000.07784857,1173000.07784857,1173000.07784857,1173000.07784857,1173000.07784857,1173000.07784857,1173000.07784857,1173000.07784857,1173000.07784857,1173000.07784857,1173000.07784857,1173000.07784857,1173000.07784857,1173000.07784857,1173000.07784857,1173000.07784857,1173000.07784857,1173000.07784857,1173000.07784857,1173000.07784857,1173000.07784857,1173000.07784857,1173000.07784857,1173000.07784857,1173000.07784857,1173000.07784857,1173000.07784857 -BR0000000011,Productions,Production,,,,,,,,,15393000.0778486,15419000.0778486,14618000.0778486,14473000.0778486,14473000.0778486,14401219.225470984,14329794.380192127,14258723.776345417,14188005.657021312,14117638.274023907,14047619.887827717,13977948.767534671,13908623.190831335,13839641.44394632,13771001.821607929,13702702.627001991,13634742.171729928,13567118.775767002,13499830.767420797,13432876.48328988,13366254.268222697,13299962.475276642,13233999.46567735,13168363.608778188,13103053.282019937,13038066.870890688,12973402.76888593,12909059.377468826,12845035.106030716,12781328.371851774,12717937.600061899,12654861.223601775,12592097.683184134,12529645.427255208 BR0000000011,Emission Intensities,S1,,,,,,,,,0.641005653735282,0.632661004513705,0.655493229362386,0.662060390127003,0.662060390127003,0.6653768675695529,0.6687099583343782,0.672059745643054,0.6754263131340399,0.6788097448647676,0.6822101253137403,0.6856275393826413,0.6890620723984547,0.6925138101155953,0.6959828387180497,0.6994692448215283,0.7029731154756282,0.7064945381660065,0.7100336008165644,0.7135903917916429,0.7171649998982286,0.7207575143881718,0.7243680249604145,0.72799662176323,0.7316433953964738,0.7353084369138458,0.7389918378251639,0.7426936900986483,0.7464140861632185,0.7501531189108005,0.7539108816986466,0.757687468351666,0.7614829731647677,0.7652974909052147 BR0000000011,Emission Intensities,S2,,,,,,,,,0.0789969513219493,0.0771126578795937,0.0802435402655439,0.0810474726414106,0.0810474726414106,0.08145346599005264,0.08186149309241667,0.0822715641362415,0.08268368936029968,0.08309787905465314,0.08351414356091008,0.08393249327248321,0.08435293863484927,0.08477549014580979,0.08520015835575323,0.08562695386791841,0.08605588733865925,0.08648696947771084,0.08692021104845683,0.0873556228681982,0.08779321580842334,0.08823300079507945,0.08867498880884543,0.08911919088540597,0.08956561811572714,0.09001428164633325,0.09046519267958526,0.0909183624739604,0.09137380234433329,0.09183152366225847,0.09229153785625434,0.09275385641208848,0.09321849087306446,0.09368545284031 +BR0000000012,Productions,Production,,,,,,9155004.34644718,9331004.34644718,20808004.3464472,21911004.3464472,25390004.3464472,27110004.3464472,30630004.3464472,28540004.3464472,29396204.476840615,30278090.611145835,31186433.329480212,32122026.32936462,33085687.11924556,34078257.732822925,35100605.464807615,36153623.628751844,37238232.3376144,38355379.307742834,39506040.68697512,40691221.90758438,41911958.56481191,43169317.321756266,44464396.84140895,45798328.746651225,47172278.609050766,48587446.96732229,50045070.37634196,51546422.48763222,53092815.16226119,54685599.61712903,56326167.6056429,58015952.63381219,59756431.21282656,61549124.149211355,63395597.8736877,65297465.80989833,67256389.78419529 BR0000000012,Emissions,S1,,14900657.0,17389874.39,16283032.0,18802944.0,20428595.0,23337931.0,23298343.0,38757404.0,47025134.0,56093007.0,60116322.0,60116322.0,61919811.660000004,63777406.0098,65690728.190094,67661450.03579682,69691293.53687073,71782032.34297685,73935493.31326616,76153558.11266415,78438164.85604407,80791309.80172539,83215049.09577715,85711500.56865047,88282845.58570999,90931330.9532813,93659270.88187975,96469049.00833614,99363120.47858623,102344014.09294382,105414334.51573214,108576764.5512041,111834067.48774023,115189089.51237245,118644762.19774362,122204105.06367594,125870228.21558622,129646335.0620538,133535725.11391541,137541796.86733288,141668050.77335286 BR0000000012,Emissions,S2,,731525.0,853729.3263,789126.0,1174594.0,1266295.0,723978.0,1409816.0,3979125.0,3344945.0,4137575.0,2779523.0,2779523.0,2862908.69,2948795.9507,3037259.829221,3128377.62409763,3222228.952820559,3318895.821405176,3418462.6960473317,3521016.5769287515,3626647.074236614,3735446.4864637125,3847509.881057624,3962935.1774893524,4081823.232814033,4204277.929798454,4330406.267692408,4460318.4557231795,4594128.009394875,4731951.849676721,4873910.405167023,5020127.717322034,5170731.548841695,5325853.495306946,5485629.100166155,5650197.97317114,5819703.912366275,5994295.029737263,6174123.880629381,6359347.597048263,6550128.024959711 -BR0000000012,Productions,Production,,,,,,9155004.34644718,9331004.34644718,20808004.3464472,21911004.3464472,25390004.3464472,27110004.3464472,30630004.3464472,28540004.3464472,29396204.476840615,30278090.611145835,31186433.329480212,32122026.32936462,33085687.11924556,34078257.732822925,35100605.464807615,36153623.628751844,37238232.3376144,38355379.307742834,39506040.68697512,40691221.90758438,41911958.56481191,43169317.321756266,44464396.84140895,45798328.746651225,47172278.609050766,48587446.96732229,50045070.37634196,51546422.48763222,53092815.16226119,54685599.61712903,56326167.6056429,58015952.63381219,59756431.21282656,61549124.149211355,63395597.8736877,65297465.80989833,67256389.78419529 BR0000000012,Emission Intensities,S1,,,,,,2.23141292204059,2.5011167215762815,1.1196817634257177,1.768855657512769,1.8521120894010474,2.0690888235638023,1.9626612298203263,2.1063879763383277,2.1695796156284777,2.234667004097332,2.301707014220252,2.3707582246468597,2.4418809713862655,2.5151374005278533,2.590591522543689,2.66830926822,2.7483585462666,2.830809302654598,2.9157335817342362,3.0032055891862632,3.0933017568618513,3.186100809567707,3.2816838338547383,3.3801343488703806,3.481538379336492,3.585984530716587,3.6935640666380847,3.8043709886372272,3.918502118296344,4.036057181845234,4.157138897300592,4.28185306421961,4.410308656146198,4.542617915830585,4.678896453305502,4.819263346904668,4.963841247311808 BR0000000012,Emission Intensities,S2,,,,,,0.13831724727595748,0.07758843240445577,0.06775354217189573,0.18160395283957864,0.13174259265016847,0.15262170183097867,0.09074510628733878,0.09739041964602954,0.09368693940842655,0.09012429197470885,0.08669712187451406,0.08340027729076233,0.08022880231530215,0.07717792949905186,0.07424307268543807,0.07141982011635797,0.06870392780030227,0.06609131313266955,0.06357804875868191,0.06116035666967634,0.058834602523897474,0.05659729018325428,0.0544450564578284,0.05237466605023386,0.05038300669222836,0.04846708446626541,0.046624019304954474,0.04485104066166388,0.043145483345758295,0.041504783516210335,0.039926474827563646,0.038408184722454074,0.036947630865115676,0.03554261771051033,0.0341910332039236,0.032890845606065554,0.03164010043890392 +AR0000000013,Productions,Production,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, AR0000000013,Emissions,S1,,24085969.3736674,30090002.3736674,16848002.3736674,26700002.3736674,32200002.3736674,32600002.3736674,32600002.3736674,22100002.3736674,22600002.3736674,22800002.3736674,21300002.3736674,21300002.3736674,21488497.950096946,21678661.62879757,21870508.17173472,22064052.4715107,22259309.552520737,22456294.57211929,22655022.82179668,22855509.728366155,23057770.855161402,23261821.90324472,23467678.712625843,23675357.263491567,23884873.67744626,24096244.218763337,24309485.29564782,24524613.46151007,24741645.416250795,24960598.007557414,25181488.23221191,25404333.23741025,25629150.322093487,25855956.938290622,26084770.692473385,26315609.346922968,26548490.821108874,26783433.19307997,27020454.70086784,27259573.743902553,27500808.884440985 AR0000000013,Emissions,S2,,4781476.37366743,4287002.37366743,2116002.37366743,1800002.37366743,1700002.37366743,1200002.37366743,1200002.37366743,1300002.37366743,1400002.37366743,1300002.37366743,1400002.37366743,1400002.37366743,1400002.37366743,1400002.37366743,1400002.37366743,1400002.37366743,1400002.37366743,1400002.37366743,1400002.37366743,1400002.37366743,1400002.37366743,1400002.37366743,1400002.37366743,1400002.37366743,1400002.37366743,1400002.37366743,1400002.37366743,1400002.37366743,1400002.37366743,1400002.37366743,1400002.37366743,1400002.37366743,1400002.37366743,1400002.37366743,1400002.37366743,1400002.37366743,1400002.37366743,1400002.37366743,1400002.37366743,1400002.37366743,1400002.37366743 -AR0000000013,Productions,Production,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, AR0000000013,Emission Intensities,S1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, AR0000000013,Emission Intensities,S2,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -GB0031274896,Emissions,S1,55192252.5587173,56075311.5587173,54746972.5587173,54472481.5587173,56535331.5587173,57593228.5587173,56978409.5587173,52832514.4587173,50919739.3587173,50723846.5587173,48061950.5587173,48061950.5587173,48061950.5587173,47969501.24351086,47877229.75870419,47785135.762232564,47693218.91268922,47601478.86932409,47509915.292042576,47418527.84140427,47327316.178621665,47236279.96555896,47145418.86473075,47054732.539300814,46964220.653080836,46873882.87052918,46783718.85674965,46693728.277490206,46603910.799141794,46514266.088737056,46424793.81394911,46335493.643090315,46246365.24511106,46157408.28959852,46068622.446775414,45980007.38749883,45891562.78325897,45803288.306177914,45715183.629008465,45627248.425132886,45539482.3685617,45451885.133932486 -GB0031274896,Emissions,S2,1007225.55871729,1933034.55871729,1052282.55871729,1189960.55871729,774476.55871729,601657.55871729,1061617.55871729,891280.15871729,1153067.75871729,841797.55871729,607645.55871729,607645.55871729,607645.55871729,574169.7083723544,542538.0787910529,512649.06985897553,484406.67872178636,457720.19142611866,432503.8915483062,408676.7848750728,386162.3392518596,364888.23876318976,344786.15145550197,325791.509856384,307843.3035852392,290883.8833892551,274858.77597524226,259716.5090425874,245408.44595532992,231888.62952233257,219113.6343837711,207042.4275298118,195636.23650346577,184858.42486429034,174674.37451292973,165051.37449852395,155958.5159518376,147366.5928066361,139248.00799042874,131576.68478326488,124327.98305986985,117478.6201460922 -GB0031274896,Productions,Production,257468657.558717,268120405.558717,268997847.558717,270255601.558717,255369601.558717,265032001.558717,263804401.558717,266875867.558717,261049397.158717,247737601.558717,242884801.558717,242884801.558717,242884801.558717,242884801.558717,242884801.558717,242884801.558717,242884801.558717,242884801.558717,242884801.558717,242884801.558717,242884801.558717,242884801.558717,242884801.558717,242884801.558717,242884801.558717,242884801.558717,242884801.558717,242884801.558717,242884801.558717,242884801.558717,242884801.558717,242884801.558717,242884801.558717,242884801.558717,242884801.558717,242884801.558717,242884801.558717,242884801.558717,242884801.558717,242884801.558717,242884801.558717,242884801.558717 -GB0031274896,Emission Intensities,S1,0.21436493700648,0.209142274874103,0.2035219725941,0.201559121233912,0.221386301320277,0.217306695870678,0.215987334639051,0.197966623741629,0.195057869939298,0.204748274947253,0.197879613093446,0.197879613093446,0.197879613093446,0.19735497817436765,0.19683173421110334,0.19630987751583512,0.1957894044105225,0.1952703112268765,0.1947525943063338,0.19423625000003097,0.19372127466877878,0.1932076646830365,0.19269541642288632,0.19218452627800792,0.1916749906476529,0.19116680594061947,0.19065996857522718,0.1901544749792916,0.18965032159009917,0.1891475048543821,0.18864602122829327,0.18814586717738138,0.18764703917656594,0.18714953371011245,0.18665334727160757,0.1861584763639345,0.18566491749924832,0.18517266719895129,0.18468172199366847,0.18419207842322322,0.18370373303661278,0.183216682391984 -GB0031274896,Emission Intensities,S2,0.00391203173336772,0.00720957643894792,0.00391186237461471,0.00440309304175052,0.00303276722832343,0.00227013173948352,0.00402426021872495,0.00333968060458367,0.0044170481574268,0.00339794021343898,0.00250178502243744,0.00250178502243744,0.00250178502243744,0.0023594186347448616,0.002225153737852994,0.0020985293089441784,0.001979110560130058,0.0018664874455286923,0.0017602732532978277,0.0016601032777898137,0.0015656335672687713,0.0014765397428900726,0.0013925158848868838,0.0013132734821392923,0.0012385404415191723,0.0011680601536091968,0.0011015906115879708,0.0010389035802558216,0.0009797838123479432,0.000924028309443965,0.0008714456249361451,0.0008218552066628009,0.0007750867769497934,0.000730979747931322,0.0006893826701424306,0.0006501527124898656,0.0006131551718156736,0.0005782630103695345,0.00054535641960166,0.0005143224087784588,0.00048505441700840823,0.0004574519473459521 +US6293775085,Emission Intensities,S1,,,,,,1.9078947229440604,1.9031347520966235,1.938325976762264,1.9301825854069008,1.8908107973659347,1.890868583031941,1.9762237571623067,1.9762237571623067,1.9762237571623067,1.9762237571623067,1.9762237571623067,1.9762237571623067,1.9762237571623067,1.9762237571623067,1.9762237571623067,1.9762237571623067,1.9762237571623067,1.9762237571623067,1.9762237571623067,1.9762237571623067,1.9762237571623067,1.9762237571623067,1.9762237571623067,1.9762237571623067,1.9762237571623067,1.9762237571623067,1.9762237571623067,1.9762237571623067,1.9762237571623067,1.9762237571623067,1.9762237571623067,1.9762237571623067,1.9762237571623067,1.9762237571623067,1.9762237571623067,1.9762237571623067,1.9762237571623067 +US6293775085,Emission Intensities,S2,,,,,,0.18640352122645398,0.17301226391448854,0.15418503503119452,0.16219120482980817,0.15027028309511137,0.13474388873022294,0.13286714979851907,0.13286714979851907,0.12985196288384893,0.1269052003475461,0.1240253094183604,0.12121077256246163,0.11846010668378809,0.11577186234254185,0.11314462299141884,0.11057700422917145,0.10806765307111012,0.10561524723615967,0.10321849445009465,0.10087613176458647,0.09858692489170365,0.09634966755351436,0.09416318084644862,0.09202631262008516,0.08993793687003565,0.0878969531446063,0.08590228596492436,0.08395288425822364,0.08204772080399085,0.08018579169268046,0.07836611579671321,0.07658773425347935,0.07484970996007423,0.07315112707949989,0.07149109055807269,0.0698687256537824,0.0682831774753544 +US0079031078,Emission Intensities,S1+S2,,,,,,0.6155112880631671,0.7972264421381788,0.6783777775765729,0.9641955316550713,1.8169518684673494,1.6982474347547039,1.6982474347547039,1.6982474347547039,1.6982474347547039,1.6982474347547039,1.6982474347547039,1.6982474347547039,1.6982474347547039,1.6982474347547039,1.6982474347547039,1.6982474347547039,1.6982474347547039,1.6982474347547039,1.6982474347547039,1.6982474347547039,1.6982474347547039,1.6982474347547039,1.6982474347547039,1.6982474347547039,1.6982474347547039,1.6982474347547039,1.6982474347547039,1.6982474347547039,1.6982474347547039,1.6982474347547039,1.6982474347547039,1.6982474347547039,1.6982474347547039,1.6982474347547039,1.6982474347547039,1.6982474347547039,1.6982474347547039 +FR0000125338,Emission Intensities,S1+S2,,0.4803122285558924,0.4963127026376133,0.5102583774506546,0.4398688228755212,0.4211833057958467,1.8476822065429854,0.20550859628721732,0.19919327218732297,0.2027688700408841,0.22457393169276957,0.2580129849830155,0.2580129849830155,0.2580129849830155,0.2580129849830155,0.2580129849830155,0.2580129849830155,0.2580129849830155,0.2580129849830155,0.2580129849830155,0.2580129849830155,0.2580129849830155,0.2580129849830155,0.2580129849830155,0.2580129849830155,0.2580129849830155,0.2580129849830155,0.2580129849830155,0.2580129849830155,0.2580129849830155,0.2580129849830155,0.2580129849830155,0.2580129849830155,0.2580129849830155,0.2580129849830155,0.2580129849830155,0.2580129849830155,0.2580129849830155,0.2580129849830155,0.2580129849830155,0.2580129849830155,0.2580129849830155 +US17275R1023,Emission Intensities,S1+S2,0.12719821903194936,0.1288810096238356,0.11304836120377948,0.12505069790984943,0.11222142892956188,0.10650458100823934,0.09596257089106329,1.7122710011281115,1.761905244968557,1.221959986898359,1.2010797002418052,1.2010797002418052,1.2010797002418052,1.2010797002418052,1.2010797002418052,1.2010797002418052,1.2010797002418052,1.2010797002418052,1.2010797002418052,1.2010797002418052,1.2010797002418052,1.2010797002418052,1.2010797002418052,1.2010797002418052,1.2010797002418052,1.2010797002418052,1.2010797002418052,1.2010797002418052,1.2010797002418052,1.2010797002418052,1.2010797002418052,1.2010797002418052,1.2010797002418052,1.2010797002418052,1.2010797002418052,1.2010797002418052,1.2010797002418052,1.2010797002418052,1.2010797002418052,1.2010797002418052,1.2010797002418052,1.2010797002418052 +CH0198251305,Emission Intensities,S1+S2,,0.4019469752662959,0.4214761557916545,0.4332995678360691,0.40656172797796086,0.4101575487459123,0.4230948417118186,0.4130063259223973,0.4440603024962899,0.4006967041672549,0.32885410556364697,0.24267537955382834,0.24267537955382834,0.24267537955382834,0.24267537955382834,0.24267537955382834,0.24267537955382834,0.24267537955382834,0.24267537955382834,0.24267537955382834,0.24267537955382834,0.24267537955382834,0.24267537955382834,0.24267537955382834,0.24267537955382834,0.24267537955382834,0.24267537955382834,0.24267537955382834,0.24267537955382834,0.24267537955382834,0.24267537955382834,0.24267537955382834,0.24267537955382834,0.24267537955382834,0.24267537955382834,0.24267537955382834,0.24267537955382834,0.24267537955382834,0.24267537955382834,0.24267537955382834,0.24267537955382834,0.24267537955382834 +US1266501006,Emission Intensities,S1+S2,,0.336045390201609,0.3446378445519158,0.3389349028266888,0.30424458135879623,0.2871036132396919,0.2801972382349842,0.4509404391229875,1.5823190910783573,1.0534310508778062,0.7915303572344525,0.7380621491921888,0.7380621491921888,0.7380621491921888,0.7380621491921888,0.7380621491921888,0.7380621491921888,0.7380621491921888,0.7380621491921888,0.7380621491921888,0.7380621491921888,0.7380621491921888,0.7380621491921888,0.7380621491921888,0.7380621491921888,0.7380621491921888,0.7380621491921888,0.7380621491921888,0.7380621491921888,0.7380621491921888,0.7380621491921888,0.7380621491921888,0.7380621491921888,0.7380621491921888,0.7380621491921888,0.7380621491921888,0.7380621491921888,0.7380621491921888,0.7380621491921888,0.7380621491921888,0.7380621491921888,0.7380621491921888 +FR0000120644,Emission Intensities,S1+S2,,0.2977791411901853,0.2851060653898852,0.31649622244714365,0.2640033494502047,0.2285923883857599,0.24400965958147047,0.21849990885491666,0.14642299883458657,0.13897988493446825,0.13171752365218165,0.12261207069164323,0.12261207069164323,0.11620500570269289,0.11013274039162965,0.10437777987983021,0.0989235434794494,0.09375431692259552,0.08885520708675897,0.0842120990860529,0.07981161560464115,0.07564107835518817,0.07168847155128884,0.06794240728863765,0.064392092735197,0.06102729903583536,0.05783833184184642,0.05481600338044117,0.05195160598374223,0.04923688700101434,0.0466640250218503,0.04422560734180881,0.041914608605580134,0.039724370566148075,0.037648582901632234,0.03568126503454166,0.033816748901059124,0.03204966262071244,0.030374915019383227,0.028787680961062274,0.027283387446090542,0.025857700435833336 +US24703L1035,Emission Intensities,S1+S2,,,,0.0029165667429452433,0.0031825695954165326,0.0032060438783053577,0.0030259671956914284,0.003208731677740818,0.0034467921850720212,0.003251049342511939,0.0026890305288561397,0.0026890305288561397,0.0026890305288561397,0.0026890305288561397,0.0026890305288561397,0.0026890305288561397,0.0026890305288561397,0.0026890305288561397,0.0026890305288561397,0.0026890305288561397,0.0026890305288561397,0.0026890305288561397,0.0026890305288561397,0.0026890305288561397,0.0026890305288561397,0.0026890305288561397,0.0026890305288561397,0.0026890305288561397,0.0026890305288561397,0.0026890305288561397,0.0026890305288561397,0.0026890305288561397,0.0026890305288561397,0.0026890305288561397,0.0026890305288561397,0.0026890305288561397,0.0026890305288561397,0.0026890305288561397,0.0026890305288561397,0.0026890305288561397,0.0026890305288561397,0.0026890305288561397 +TW0002308004,Emission Intensities,S1+S2,,,,1.4724208068744489,1.3900906577991483,1.2719227792856171,1.2344632212553883,1.2404226963965608,1.5664911219778537,1.1748684698436636,1.191895541675586,1.191895541675586,1.191895541675586,1.191895541675586,1.191895541675586,1.191895541675586,1.191895541675586,1.191895541675586,1.191895541675586,1.191895541675586,1.191895541675586,1.191895541675586,1.191895541675586,1.191895541675586,1.191895541675586,1.191895541675586,1.191895541675586,1.191895541675586,1.191895541675586,1.191895541675586,1.191895541675586,1.191895541675586,1.191895541675586,1.191895541675586,1.191895541675586,1.191895541675586,1.191895541675586,1.191895541675586,1.191895541675586,1.191895541675586,1.191895541675586,1.191895541675586 +FR0000120321,Emission Intensities,S1+S2,,,,0.8555273543905912,0.8662518859225254,0.8617671832957047,0.8831020340508602,0.9574508433299559,0.8838687988490999,0.8728807456552709,0.8759061471467042,0.8710761366058977,0.8710761366058977,0.8710761366058977,0.8710761366058977,0.8710761366058977,0.8710761366058977,0.8710761366058977,0.8710761366058977,0.8710761366058977,0.8710761366058977,0.8710761366058977,0.8710761366058977,0.8710761366058977,0.8710761366058977,0.8710761366058977,0.8710761366058977,0.8710761366058977,0.8710761366058977,0.8710761366058977,0.8710761366058977,0.8710761366058977,0.8710761366058977,0.8710761366058977,0.8710761366058977,0.8710761366058977,0.8710761366058977,0.8710761366058977,0.8710761366058977,0.8710761366058977,0.8710761366058977,0.8710761366058977 +CH0038863350,Emission Intensities,S1+S2,,0.20861317128702908,0.29373678915306867,1.2134611771869102,0.8831774015244391,0.8760687425887023,0.868869824045846,0.9089641745109065,0.9416606064434532,0.9384181459992638,0.9992111823532782,1.0103398427559807,1.0103398427559807,1.0103398427559807,1.0103398427559807,1.0103398427559807,1.0103398427559807,1.0103398427559807,1.0103398427559807,1.0103398427559807,1.0103398427559807,1.0103398427559807,1.0103398427559807,1.0103398427559807,1.0103398427559807,1.0103398427559807,1.0103398427559807,1.0103398427559807,1.0103398427559807,1.0103398427559807,1.0103398427559807,1.0103398427559807,1.0103398427559807,1.0103398427559807,1.0103398427559807,1.0103398427559807,1.0103398427559807,1.0103398427559807,1.0103398427559807,1.0103398427559807,1.0103398427559807,1.0103398427559807 +US8356993076,Emission Intensities,S1+S2,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +JP3401400001,Emission Intensities,S1+S2,,0.7627196744108117,0.7638732477924682,0.81188870951957,0.8917683050926354,0.6992484768112838,0.658529278359413,0.6419307428290961,0.7246422517737928,0.9783458890477668,0.8216553409097898,0.8216553409097898,0.8216553409097898,0.8216553409097898,0.8216553409097898,0.8216553409097898,0.8216553409097898,0.8216553409097898,0.8216553409097898,0.8216553409097898,0.8216553409097898,0.8216553409097898,0.8216553409097898,0.8216553409097898,0.8216553409097898,0.8216553409097898,0.8216553409097898,0.8216553409097898,0.8216553409097898,0.8216553409097898,0.8216553409097898,0.8216553409097898,0.8216553409097898,0.8216553409097898,0.8216553409097898,0.8216553409097898,0.8216553409097898,0.8216553409097898,0.8216553409097898,0.8216553409097898,0.8216553409097898,0.8216553409097898 +US6541061031,Emission Intensities,S1+S2,,0.7554372038250308,0.8079727856358664,0.8084544341926329,0.7720350808332819,0.7585213731195966,0.7211267701058357,0.7186487831250362,0.682317692531061,0.7125000115639173,0.629386622670478,0.49735991894221177,0.49735991894221177,0.48865412727555213,0.4801007218500365,0.4716970352957829,0.4634404469325714,0.45532838195258785,0.44735831061747283,0.43952774746942586,0.4318342505561179,0.42427542066917145,0.41684890059597,0.409552374384564,0.4023835666214437,0.39534024172195426,0.38842020323313087,0.3816212931487376,0.37494139123629544,0.3683784143758903,0.3619303159105543,0.3555950850080181,0.3493707460336352,0.3432553579342824,0.3372470136330446,0.33134383943449497,0.3255439944403852,0.31984566997556335,0.3142470890239408,0.30874650567433126,0.30334220457599087,0.29803250040368773 +GB0031274896,Emission Intensities,S1+S2,0.7857970874634518,0.7788666647269834,0.746761805887373,0.7414639713923852,0.8079086467749617,0.7904765793965814,0.7920417414879934,0.7247026956463656,0.7181097051482093,0.7493263745784912,0.7213730332171804,0.7213730332171804,0.7213730332171804,0.7191454204965274,0.7169246866834642,0.7147108105358021,0.7125037708769486,0.7103035465957052,0.7081101166460648,0.705923460047011,0.7037435558823171,0.7015703833003458,0.6994039215138506,0.6972441497997758,0.6950910474990591,0.692944594016434,0.6908047688202321,0.6886715514421875,0.6865449214772404,0.6844248585833425,0.6823113424812617,0.6802043529543889,0.6781038698485441,0.6760098730717837,0.6739223425942086,0.6718412584477721,0.6697666007260893,0.6676983495842467,0.665636485238612,0.6635809879666453,0.6615318381067102,0.6594890160578858 +US6293775085,Emission Intensities,S1+S2,,,,,,2.0942982441705142,2.076147016011112,2.0925110117934587,2.0923737902367088,2.041081080461046,2.0256124717621637,2.1090909069608257,2.1090909069608257,2.1089525981366672,2.10881429838245,2.1086760076975795,2.1085377260814604,2.1083994535334987,2.108261190053099,2.108122935639668,2.1079846902926094,2.1078464540113298,2.1077082267952343,2.107570008643729,2.107431799556218,2.1072935995321087,2.1071554085708057,2.107017226671715,2.106879053834242,2.106740890057793,2.1066027353417733,2.106464589685589,2.106326453088646,2.1061883255503497,2.106050207070107,2.105912097647323,2.1057739972814042,2.1056359059717566,2.1054978237177866,2.1053597505189,2.105221686374503,2.1050836312840016 +US7134481081,Emission Intensities,S1+S2,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +JP0000000001,Emission Intensities,S1+S2,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +NL0000000002,Emission Intensities,S1+S2,,,,,,,,,,,0.23287909421782566,0.23782543529110398,0.23782543529110398,0.23983744872740673,0.24186648388412768,0.24391268476575548,0.2459761965950629,0.24805716582341367,0.2501557401411564,0.2522720684881063,0.254406301064116,0.25655858933973524,0.2587290860669612,0.2609179452900795,0.2631253223565971,0.2653513739282675,0.26759625799220954,0.2698601338721197,0.2721431622395799,0.2744455051254606,0.2767673259314204,0.27910878944150286,0.28147006183383183,0.2838513106924051,0.2862527050189884,0.28867441524510973,0.291116613244155,0.29357947234356646,0.29606316733714405,0.29856787449745076,0.301093771588323,0.303641037877487 +IT0000000003,Emission Intensities,S1+S2,,,,,,0.970218332054505,0.924039770186721,0.9506260122796859,0.922241753091223,0.9383499673279889,0.954598554537054,0.954598554537054,0.954598554537054,0.954598554537054,0.954598554537054,0.954598554537054,0.954598554537054,0.954598554537054,0.954598554537054,0.954598554537054,0.954598554537054,0.954598554537054,0.954598554537054,0.954598554537054,0.954598554537054,0.954598554537054,0.954598554537054,0.954598554537054,0.954598554537054,0.954598554537054,0.954598554537054,0.954598554537054,0.954598554537054,0.954598554537054,0.954598554537054,0.954598554537054,0.954598554537054,0.954598554537054,0.954598554537054,0.954598554537054,0.954598554537054,0.954598554537054 +SE0000000004,Emission Intensities,S1+S2,,,,,,,,2.060434942888829,2.0190726733162,2.1375879213541418,2.14490674197121,2.153791383555795,2.153791383555795,2.161165682701744,2.16856523048055,2.175990113340219,2.183440418024745,2.1909162315751214,2.1984176413303578,2.205944734928502,2.213497600307663,2.221076325707038,2.228680999667943,2.236311711034849,2.2439685489564183,2.2516516028865468,2.2593609625854083,2.2670967181205044,2.274858959867715,2.2826477785123562,2.2904632650502377,2.298305510788728,2.3061746073478187,2.314070646661198,2.3219937209773214,2.3299439228604917,2.33792134519194,2.34592608117091,2.3539582243157473,2.3620178684649926,2.3701051077784774,2.3782200367384236 +SE0000000005,Emission Intensities,S1+S2,,,,,,2.450205384446609,2.452335671138975,2.5416468276320163,3.047991995482132,3.3376087569091224,3.630111503845141,3.2084092426770465,3.2084092426770465,3.2927632144991095,3.379334980880391,3.468182851021996,3.559366667162847,3.652947844885588,3.7489894144821885,3.8475560634071164,3.948714179846666,4.0525318974337905,4.159079141138558,4.268427674365136,4.380651147287026,4.495825146453109,4.614027245697903,4.735337058390338,4.859836291056224,4.987608798410536,5.1187406398365844,5.253320137350109,5.391437935087332,5.5331870603570525,5.678662986297883,5.827963696182847,5.981189749414641,6.1384443492560115,6.299833412340868,6.465465640012948,6.635452591540087,6.809908759253399 +NL0000000006,Emission Intensities,S1+S2,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +CN0000000007,Emission Intensities,S1+S2,,,,,,,,2.245677064091812,2.1917201624485423,2.064294160027321,2.027591972455373,1.976620617045139,1.976620617045139,1.94147722418469,1.906958664461715,1.873053828634393,1.8397518049780428,1.8070418757733597,1.7749135138570904,1.7433563792340352,1.7123603157492877,1.68191534781964,1.6520116772231015,1.6226396799455,1.5937899030831475,1.5654530618005753,1.53762003634236,1.5102818690980773,1.4834297617194387,1.457055072288686,1.4311493125373285,1.4057041451143315,1.3807113809028742,1.3561629763848135,1.3320510310520086,1.3083677848636694,1.2851056157489125,1.2622570371537203,1.2398146956315148,1.2177713684765692,1.1961199613994966,1.1748535062440673 +CN0000000008,Emission Intensities,S1+S2,,,,,,,2.06874800893257,2.009866615159721,1.994065283530198,1.9784797003159258,2.061855651645914,2.061855651645914,2.061855651645914,2.058632565310681,2.0554145172939724,2.0522014997199043,2.0489935047249044,2.045790524457693,2.042592551079263,2.039399576762862,2.0362115936939706,2.0330285940702875,2.029850570101706,2.0266775140102977,2.0235094180302924,2.0203462744080594,2.0171880754020886,2.014034813282971,2.0108864803333804,2.007743068848055,2.0046045711337763,2.001470979509353,1.998342286305601,1.9952184838653242,1.9920995645432964,1.9889855207062423,1.985876344732819,1.982772029013597,1.9796725659510424,1.9765779479594972,1.9734881674651614,1.9704032169060748 +CN0000000009,Emission Intensities,S1+S2,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +BR0000000010,Emission Intensities,S1+S2,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +BR0000000011,Emission Intensities,S1+S2,,,,,,,,,0.7200026050572312,0.7097736623932986,0.7357367696279299,0.7431078627684136,0.7431078627684136,0.7468303335596055,0.7505714514267947,0.7543313097792954,0.7581100024943395,0.7619076239194207,0.7657242688746503,0.7695600326551245,0.773415011033304,0.7772893002614051,0.7811829970738029,0.7850961986894467,0.7890290028142876,0.7929815076437174,0.7969538118650213,0.8009460146598412,0.804958215706652,0.8089905151832515,0.8130430137692602,0.8171158126486363,0.8212090135122013,0.8253227185601795,0.8294570305047495,0.8336120525726091,0.8377878885075521,0.8419846425730594,0.8462024195549014,0.8504413247637549,0.8547014640378325,0.8589829437455252 +BR0000000012,Emission Intensities,S1+S2,,,,,,2.369730169316547,2.5787051539807373,1.1874353055976135,1.9504596103523477,1.983854682051216,2.221710525394781,2.053406336107665,2.203778395984357,2.262080547317932,2.3219251136494563,2.3833529004032834,2.4464057925333744,2.5111267830828377,2.5775600024990277,2.6457507487241916,2.7157455180821772,2.7875920369822693,2.861339294461765,2.9370375755894824,3.0147384957529764,3.094495035852842,3.1763615784281005,3.2603939447373045,3.3466494328206418,3.4351868565689943,3.526066585826588,3.619350587554583,3.715102468083667,3.813387516484463,3.9142727490853275,4.017826955167889,4.124120743871487,4.233226592338492,4.3452188951333435,4.460174014968982,4.5781703347752885,4.699288311145017 +AR0000000013,Emission Intensities,S1+S2,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, diff --git a/test/test_projection.py b/test/test_projection.py index 1a0ef31d..bf1838e4 100644 --- a/test/test_projection.py +++ b/test/test_projection.py @@ -1,7 +1,9 @@ +import json import unittest import pandas as pd import os from ITR.data.data_providers import EmissionIntensityProjector +from ITR.interfaces import ICompanyData class TestProjector(unittest.TestCase): @@ -11,14 +13,16 @@ class TestProjector(unittest.TestCase): def setUp(self) -> None: self.root: str = os.path.dirname(os.path.abspath(__file__)) - self.source_path: str = os.path.join(self.root, "inputs", "test_data_company.xlsx") + self.source_path: str = os.path.join(self.root, "inputs", "json", "test_project_companies.json") self.reference_path: str = os.path.join(self.root, "inputs", "test_projection_reference.csv") - intensities_historic: pd.DataFrame = pd.read_excel(self.source_path, 'historic_data') - self.projector = EmissionIntensityProjector(intensities_historic) + with open(self.source_path, 'r') as file: + company_dicts = json.load(file) + companies = [ICompanyData(**company_dict) for company_dict in company_dicts] + self.projector = EmissionIntensityProjector(companies) def test_project(self): - projections = self.projector.project() + projections = self.projector.project(as_dataframe=True) # Column names from read_csv are read as strings projections.columns = [str(col) for col in projections.columns] From ea4dcde3c109aff914ac1717dd63bbbb7174922d Mon Sep 17 00:00:00 2001 From: David Kroon Date: Mon, 10 Jan 2022 16:31:24 +0100 Subject: [PATCH 011/345] Fix bug if all companies already have projections Signed-off-by: David Kroon Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- ITR/data/base_providers.py | 7 +++++-- ITR/data/data_providers.py | 1 - 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/ITR/data/base_providers.py b/ITR/data/base_providers.py index 03d7ce56..86137952 100644 --- a/ITR/data/base_providers.py +++ b/ITR/data/base_providers.py @@ -33,8 +33,11 @@ def _validate_projected_trajectories(self, companies: List[ICompanyData]) -> Lis assert not companies_without_data, \ f"Provide either historic emission data or projections for companies with IDs {companies_without_data}" companies_without_projections = [c for c in companies if not c.projected_intensities] - companies_with_projections = [c for c in companies if c.projected_intensities] - return companies_with_projections + EmissionIntensityProjector(companies_without_projections).project() + if companies_without_projections: + companies_with_projections = [c for c in companies if c.projected_intensities] + return companies_with_projections + EmissionIntensityProjector(companies_without_projections).project() + else: + return companies def _convert_projections_to_series(self, company: ICompanyData, feature: str, scope: EScope = EScope.S1S2) -> pd.Series: diff --git a/ITR/data/data_providers.py b/ITR/data/data_providers.py index c329c1de..2338b730 100644 --- a/ITR/data/data_providers.py +++ b/ITR/data/data_providers.py @@ -196,7 +196,6 @@ class EmissionIntensityProjector(ABC): def __init__(self, companies: List[ICompanyData]): self.companies = companies self.historic_data = self._extract_historic_data(companies) - self.projection_data = None self.historic_years = [column for column in self.historic_data.columns if type(column) == int] self.projection_years = range(max(self.historic_years), ProjectionConfig.TARGET_YEAR) From 45de375408655a9831d8af3800c72ea916a12f08 Mon Sep 17 00:00:00 2001 From: MichaelTiemannOSC Date: Sat, 15 Jan 2022 23:03:07 +0000 Subject: [PATCH 012/345] Expose get_company_fundamentals Just seems more consistent to expose this function. Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- ITR/data/data_providers.py | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/ITR/data/data_providers.py b/ITR/data/data_providers.py index 2338b730..93fd6630 100644 --- a/ITR/data/data_providers.py +++ b/ITR/data/data_providers.py @@ -76,6 +76,14 @@ def get_company_projected_targets(self, company_ids: List[str]) -> pd.DataFrame: """ raise NotImplementedError + @abstractmethod + def get_company_fundamentals(self, company_ids: List[str]) -> pd.DataFrame: + """ + :param company_ids: A list of company IDs + :return: A pandas DataFrame with company fundamental info per company + """ + raise NotImplementedError + class ProductionBenchmarkDataProvider(ABC): """ From 4eb90d4174b196c5fdbd4b740c14b633f79b7210 Mon Sep 17 00:00:00 2001 From: MichaelTiemannOSC Date: Sat, 15 Jan 2022 23:04:56 +0000 Subject: [PATCH 013/345] Data Vault WIP This is not yet a complete check-in...need some enhancements to RMI data pipeline as well. Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- ITR/data/vault_providers.py | 435 +++++++++++++++++++++++++++++++++++ examples/vault_demo_n0.ipynb | 245 ++++++++++++++++++++ test/test_vault_providers.py | 124 ++++++++++ 3 files changed, 804 insertions(+) create mode 100644 ITR/data/vault_providers.py create mode 100644 examples/vault_demo_n0.ipynb create mode 100644 test/test_vault_providers.py diff --git a/ITR/data/vault_providers.py b/ITR/data/vault_providers.py new file mode 100644 index 00000000..1395fca5 --- /dev/null +++ b/ITR/data/vault_providers.py @@ -0,0 +1,435 @@ +import os +import pathlib +from dotenv import load_dotenv + +# Load some standard environment variables from a dot-env file, if it exists. +# If no such file can be found, does not fail, and so allows these environment vars to +# be populated in some other way +dotenv_dir = os.environ.get('CREDENTIAL_DOTENV_DIR', os.environ.get('HOME', '/opt/app-root/src')) +dotenv_path = pathlib.Path(dotenv_dir) / 'credentials.env' +if os.path.exists(dotenv_path): + load_dotenv(dotenv_path=dotenv_path,override=True) + +import trino +import osc_ingest_trino as osc +import sqlalchemy + +import pandas as pd +from typing import List, Type +from ITR.configs import ColumnsConfig, TemperatureScoreConfig +from ITR.data.data_providers import CompanyDataProvider, ProductionBenchmarkDataProvider, \ + IntensityBenchmarkDataProvider, EmissionIntensityProjector +from ITR.data.data_warehouse import DataWarehouse +from ITR.interfaces import ICompanyData, EScope, IProductionBenchmarkScopes, IEmissionIntensityBenchmarkScopes, \ + IBenchmark, ICompanyAggregates + +# TODO handling of scopes in benchmarks + +# TODO handle ways to append information (from other providers, other benchmarks, new scope info, new corp data updates, etc) + +# Basic Corp Data Asumptions +# 5 year historical EI (else we presume single year is constant backward and forward) +# 5 year historical Production (else we presume single year is constant backward and forward) +# 5 year historical Emissions (else we presume single year is constant backward and forward) +# We can infer one of the above from the other two (simple maths) +# The above tables identify the scope(s) to which they apply (S1, S2, S12, S3, S123) and data source (e.g. 'rmi_20211120') + +# Basic Benchmark Data Assumptions +# EI for a given scope +# Production defined in terms of growth (or negative growth) on a rolling basis (so 0.05, -0.04) would mean 5% growth followed by 4% negative growth for a total of 0.8% +# Benchmarks are named (e.g., 'OECM') + +class VaultCompanyDataProvider(CompanyDataProvider): + """ + This class serves primarily for connecting to the ITR tool to the Data Vault via Trino. + + :param company_schema: the name of the schema where the company_table is found + :param company_table: the name of the Trino table that contains fundamental data for companies + :param target_table: the name of the Trino table that contains company (emission intensity) target data (and possibly historical data) + :param trajectory_table: the name of the Trino table that contains company (emission intensity) historical data (and possibly trajectory data) + :param column_config: An optional ColumnsConfig object containing relevant variable names + :param tempscore_config: An optional TemperatureScoreConfig object containing temperature scoring settings + """ + + def __init__(self, + engine: sqlalchemy.engine.base.Engine, + company_schema: str, + company_table: str, + target_table: str = None, + trajectory_table: str = None, + column_config: Type[ColumnsConfig] = ColumnsConfig, + tempscore_config: Type[TemperatureScoreConfig] = TemperatureScoreConfig): + super().__init__() + self._engine = engine + self._company_schema = company_schema + self._company_table = company_table + self.column_config = column_config + self.temp_config = tempscore_config + # Validate and complete the projected trajectories + self._intensity_table = company_table.replace('_company_', '_intensity_') + self._trajectory_table = company_table.replace('_company_', '_trajectory_') + self._production_table = company_table.replace('_company_', '_production_') + self._emissions_table = company_table.replace('_company_', '_emissions_') + companies_without_projections = self._engine.execute(f""" +select C.company_name, C.company_id from {self._company_schema}.{self._company_table} C left join {self._company_schema}.{self._intensity_table} EI on EI.company_name=C.company_name +where co2_intensity_target_by_year is NULL +""").fetchall() + assert len(companies_without_projections)==0, f"Provide either historic emission data or projections for companies with IDs {companies_without_projections.company_id}" + + # The factors one would want to sum over companies for weighting purposes are: + # * market_cap_usd + # * enterprise_value_usd + # * assets_usd + # * revenue_usd + # * emissions + + # TODO: make return value a Quantity (USD or CO2) + def sum_over_companies(self, company_ids: List[str], year: int, factor: str, scope: EScope = EScope.S1S2) -> float: + if factor=='enterprise_value_usd': + qres = self._engine.execute(f"select sum (market_cap_usd + debt_usd - cash_usd) as {factor}_sum from {self._company_schema}.{self._company_table} where year={year}") + elif factor=='emissions': + # TODO: properly interpret SCOPE parameter + assert scope==EScope.S1S2 + qres = self._engine.execute(f"select sum (co2_target_by_year) as {factor}_sum from {self._company_schema}.{self._emissions_table} where year={year}") + else: + qres = self._engine.execute(f"select sum {factor} as {factor}_sum from {self._company_schema}.{self._company_table} where year={year}") + sres = qres.fetchall() + # sres[0] is the first row of the returned data; sres[0][0] is the first (and only) column of the row returned + return sres[0][0] + + def get_company_data(self, company_ids: List[str]) -> List[ICompanyData]: + """ + Get all relevant data for a list of company ids. This method should return a list of ICompanyData + instances. + + :param company_ids: A list of company IDs (ISINs) + :return: A list containing the company data + """ + raise NotImplementedError + + def get_value(self, company_ids: List[str], variable_name: str) -> pd.Series: + """ + Gets the value of a variable for a list of companies ids + :param company_ids: list of company ids + :param variable_name: variable name of the projected feature + :return: series of values + """ + raise NotImplementedError + + def get_company_intensity_and_production_at_base_year(self, company_ids: List[str]) -> pd.DataFrame: + """ + overrides subclass method + :param: company_ids: list of company ids + :return: DataFrame the following columns : + ColumnsConfig.COMPANY_ID, ColumnsConfig.GHG_S1S2, ColumnsConfig.BASE_EI, ColumnsConfig.SECTOR and + ColumnsConfig.REGION + """ + raise NotImplementedError + + def get_company_fundamentals(self, company_ids: List[str]) -> pd.DataFrame: + """ + :param company_ids: A list of company IDs + :return: A pandas DataFrame with company fundamental info per company + """ + or_clause = ' or '.join([f"company_id = '{c}'" for c in company_ids]) + sql = f"select * from {self._company_schema}.{self._company_table} where {or_clause}" + df = pd.read_sql(sql, self._engine) + # df = df.drop(columns=['projected_targets', 'projected_intensities']) + return df + + def get_company_projected_intensities(self, company_ids: List[str]) -> pd.DataFrame: + """ + :param company_ids: A list of company IDs + :return: A pandas DataFrame with projected intensities per company + """ + raise NotImplementedError + + def get_company_projected_targets(self, company_ids: List[str]) -> pd.DataFrame: + """ + :param company_ids: A list of company IDs + :return: A pandas DataFrame with projected targets per company + """ + raise NotImplementedError + +import boto3 + +s3 = boto3.resource( + service_name="s3", + endpoint_url=os.environ["S3_DEV_ENDPOINT"], + aws_access_key_id=os.environ["S3_DEV_ACCESS_KEY"], + aws_secret_access_key=os.environ["S3_DEV_SECRET_KEY"], +) +pandas_bucket = osc.attach_s3_bucket("S3_DEV") + +benchmark_scopes = ['S1S2', 'S3', 'S1S2S3'] + +class VaultProviderProductionBenchmark(ProductionBenchmarkDataProvider): + + def __init__(self, + engine: sqlalchemy.engine.base.Engine, + ingest_schema: str, + benchmark_name: str, + production_benchmarks: IProductionBenchmarkScopes, + column_config: Type[ColumnsConfig] = ColumnsConfig, + tempscore_config: Type[TemperatureScoreConfig] = TemperatureScoreConfig): + """ + Base provider that relies on pydantic interfaces. Default for FastAPI usage + :param benchmark_name: the table name of the benchmark (in Trino) + :param production_benchmarks: List of IBenchmarkScopes + :param column_config: An optional ColumnsConfig object containing relevant variable names + :param tempscore_config: An optional TemperatureScoreConfig object containing temperature scoring settings + """ + super().__init__(production_benchmarks=production_benchmarks, + column_config=column_config, + tempscore_config=tempscore_config) + self._engine = engine + self.benchmark_name = benchmark_name + qres = self._engine.execute(f"drop table if exists itr_mdt.{benchmark_name}") + qres = self._engine.execute(f"drop table if exists {ingest_schema}.{benchmark_name}") + qres.fetchall() + dres = pandas_bucket.objects \ + .filter(Prefix = f'data/{ingest_schema}.db/{benchmark_name}/') \ + .delete() + print(dres) + df = pd.DataFrame() + for scope in benchmark_scopes: + if production_benchmarks.dict()[scope] is None: + continue + for benchmark in production_benchmarks.dict()[scope]['benchmarks']: + # ??? I don't understand why I cannot use benchmark.projections + bdf = pd.DataFrame.from_dict({r['year']: [r['value'], benchmark['region'], benchmark['sector'], scope] for r in benchmark['projections']}, + columns=['production', 'region', 'sector', 'scope'], + orient='index') + df = pd.concat([df, bdf]) + df.reset_index(inplace=True) + df.rename(columns={'index':'year'}, inplace=True) + df.to_sql(benchmark_name, self._engine, index=False, chunksize=200, method='multi') + + def get_company_projected_production(self, ghg_scope12: pd.DataFrame) -> pd.DataFrame: + """ + get the projected productions for list of companies in ghg_scope12 + :param ghg_scope12: DataFrame with at least the following columns : + ColumnsConfig.COMPANY_ID,ColumnsConfig.GHG_SCOPE12, ColumnsConfig.SECTOR and ColumnsConfig.REGION + :return: DataFrame of projected productions for [base_year - base_year + 50] + """ + benchmark_production_projections = self.get_benchmark_projections(ghg_scope12) + return benchmark_production_projections.add(1).cumprod(axis=1).mul( + ghg_scope12[self.column_config.GHG_SCOPE12].values, axis=0) + + def get_benchmark_projections(self, company_sector_region_info: pd.DataFrame, + scope: EScope = EScope.S1S2) -> pd.DataFrame: + """ + Overrides subclass method + returns a Dataframe with production benchmarks per company_id given a region and sector. + :param company_sector_region_info: DataFrame with at least the following columns : + ColumnsConfig.COMPANY_ID, ColumnsConfig.SECTOR and ColumnsConfig.REGION + :param scope: a scope + :return: A DataFrame with company and intensity benchmarks per calendar year per row + """ + benchmark_projection = self._get_projected_production(scope) # TODO optimize performance + sectors = company_sector_region_info[self.column_config.SECTOR] + regions = company_sector_region_info[self.column_config.REGION] + benchmark_regions = regions.copy() + mask = benchmark_regions.isin(benchmark_projection.reset_index()[self.column_config.REGION]) + benchmark_regions.loc[~mask] = "Global" + + benchmark_projection = benchmark_projection.loc[list(zip(benchmark_regions, sectors)), + range(self.temp_config.CONTROLS_CONFIG.base_year, + self.temp_config.CONTROLS_CONFIG.target_end_year + 1)] + benchmark_projection.index = sectors.index + + return benchmark_projection + + +class VaultProviderIntensityBenchmark(IntensityBenchmarkDataProvider): + def __init__(self, + engine: sqlalchemy.engine.base.Engine, + ingest_schema: str, + benchmark_name: str, + EI_benchmarks: IEmissionIntensityBenchmarkScopes, + column_config: Type[ColumnsConfig] = ColumnsConfig, + tempscore_config: Type[TemperatureScoreConfig] = TemperatureScoreConfig): + super().__init__(EI_benchmarks.benchmark_temperature, EI_benchmarks.benchmark_global_budget, + EI_benchmarks.is_AFOLU_included) + self._engine=engine + self.benchmark_name = benchmark_name + self._engine.execute(f"drop table if exists {ingest_schema}.{benchmark_name}") + dres = pandas_bucket.objects \ + .filter(Prefix = f'data/{ingest_schema}.db/{benchmark_name}/') \ + .delete() + print(dres) + df = pd.DataFrame() + for scope in benchmark_scopes: + if EI_benchmarks.dict()[scope] is None: + continue + for benchmark in EI_benchmarks.dict()[scope]['benchmarks']: + bdf = pd.DataFrame.from_dict({r['year']: [r['value'], benchmark['region'], benchmark['sector'], scope, EI_benchmarks.benchmark_global_budget, EI_benchmarks.benchmark_temperature] for r in benchmark['projections']}, + columns=['intensity', 'region', 'sector', 'scope', 'global_budget', 'benchmark_temp'], + orient='index') + # TODO: AFOLU correction + df = pd.concat([df, bdf]) + df.reset_index(inplace=True) + df.rename(columns={'index':'year'}, inplace=True) + df.to_sql(benchmark_name, self._engine, index=False, chunksize=200, method='multi') + + + def get_SDA_intensity_benchmarks(self, company_info_at_base_year: pd.DataFrame) -> pd.DataFrame: + """ + Overrides subclass method + returns a Dataframe with intensity benchmarks per company_id given a region and sector. + :param benchmark_name: the table name of the benchmark (in Trino) + :param company_info_at_base_year: DataFrame with at least the following columns : + ColumnsConfig.COMPANY_ID, ColumnsConfig.BASE_EI ColumnsConfig.SECTOR and ColumnsConfig.REGION + :return: A DataFrame with company and SDA intensity benchmarks per calendar year per row + """ + intensity_benchmarks = self._get_intensity_benchmarks(company_info_at_base_year) + decarbonization_paths = self._get_decarbonizations_paths(intensity_benchmarks) + last_ei = intensity_benchmarks[self.temp_config.CONTROLS_CONFIG.target_end_year] + ei_base = company_info_at_base_year[self.column_config.BASE_EI] + + return decarbonization_paths.mul((ei_base - last_ei), axis=0).add(last_ei, axis=0) + + def _get_decarbonizations_paths(self, intensity_benchmarks: pd.DataFrame) -> pd.DataFrame: + """ + Overrides subclass method + Returns a DataFrame with the projected decarbonization paths for the supplied companies in intensity_benchmarks. + :param: A DataFrame with company and intensity benchmarks per calendar year per row + :return: A pd.DataFrame with company and decarbonisation path s per calendar year per row + """ + return intensity_benchmarks.apply(lambda row: self._get_decarbonization(row), axis=1) + + def _get_decarbonization(self, intensity_benchmark_row: pd.Series) -> pd.Series: + """ + Overrides subclass method + returns a Series with the decarbonization path for a benchmark. + :param: A Series with company and intensity benchmarks per calendar year per row + :return: A pd.Series with company and decarbonisation path s per calendar year per row + """ + first_ei = intensity_benchmark_row[self.temp_config.CONTROLS_CONFIG.base_year] + last_ei = intensity_benchmark_row[self.temp_config.CONTROLS_CONFIG.target_end_year] + return intensity_benchmark_row.apply(lambda x: (x - last_ei) / (first_ei - last_ei)) + + def _convert_benchmark_to_series(self, benchmark: IBenchmark) -> pd.Series: + """ + extracts the company projected intensities or targets for a given scope + :param feature: PROJECTED_EI or PROJECTED_TARGETS + :param scope: a scope + :return: pd.Series + """ + return pd.Series({r.year: r.value for r in benchmark.projections}, name=(benchmark.region, benchmark.sector)) + + def _get_projected_intensities(self, scope: EScope = EScope.S1S2) -> pd.Series: + """ + Converts IBenchmarkScopes into dataframe for a scope + :param scope: a scope + :return: pd.Series + """ + result = [] + for bm in self._EI_benchmarks.dict()[str(scope)]['benchmarks']: + result.append(self._convert_benchmark_to_series(IBenchmark.parse_obj(bm))) + df_bm = pd.DataFrame(result) + df_bm.index.names = [self.column_config.REGION, self.column_config.SECTOR] + + return df_bm + + def _get_intensity_benchmarks(self, company_sector_region_info: pd.DataFrame, + scope: EScope = EScope.S1S2) -> pd.DataFrame: + """ + Overrides subclass method + returns a Dataframe with production benchmarks per company_id given a region and sector. + :param company_sector_region_info: DataFrame with at least the following columns : + ColumnsConfig.COMPANY_ID, ColumnsConfig.SECTOR and ColumnsConfig.REGION + :param scope: a scope + :return: A DataFrame with company and intensity benchmarks per calendar year per row + """ + benchmark_projection = self._get_projected_intensities(scope) # TODO optimize performance + sectors = company_sector_region_info[self.column_config.SECTOR] + regions = company_sector_region_info[self.column_config.REGION] + benchmark_regions = regions.copy() + mask = benchmark_regions.isin(benchmark_projection.reset_index()[self.column_config.REGION]) + benchmark_regions.loc[~mask] = "Global" + + benchmark_projection = benchmark_projection.loc[list(zip(benchmark_regions, sectors)), + range(self.temp_config.CONTROLS_CONFIG.base_year, + self.temp_config.CONTROLS_CONFIG.target_end_year + 1)] + benchmark_projection.index = sectors.index + + return benchmark_projection + +class DataVaultWarehouse(DataWarehouse): + + def __init__(self, + engine: sqlalchemy.engine.base.Engine, + ingest_schema: str, + company_data: VaultCompanyDataProvider, + benchmark_projected_production: ProductionBenchmarkDataProvider, + benchmarks_projected_emission_intensity: IntensityBenchmarkDataProvider, + column_config: Type[ColumnsConfig] = ColumnsConfig, + tempscore_config: Type[TemperatureScoreConfig] = TemperatureScoreConfig): + super().__init__(company_data=company_data, + benchmark_projected_production=benchmark_projected_production, + benchmarks_projected_emission_intensity=benchmarks_projected_emission_intensity, + column_config=column_config, + tempscore_config=tempscore_config) + self._engine=engine + # intensity_projections = pd.read_sql(f"select * from {self._company_schema}.{intensity_table}", self._engine) + # intensity_projections['scope'] = 'S1+S2' + # intensity_projections['source'] = self._company_schema + + # The DataVaultWarehouse provides three calculations per company: + # * Cumulative trajectory of emissions + # * Cumulative target of emissions + # * Cumulative budget of emissions (separately for each benchmark) + qres = self._engine.execute(f"drop table if exists {ingest_schema}.cumulative_emissions") + qres = self._engine.execute(f"drop table if exists {ingest_schema}.cumulative_budget_1") + qres = self._engine.execute(f"drop table if exists {ingest_schema}.overshoot_ratios") + qres = self._engine.execute(f"drop table if exists {ingest_schema}.temperature_scores") + qres = self._engine.execute(f""" +create table cumulative_emissions as +select C.company_name, C.company_id, '{company_data._company_schema}' as source, 'S1+S2' as scope, + sum(ET.co2_intensity_trajectory_by_year * P.production_by_year) as cumulative_trajectory, + sum(EI.co2_intensity_target_by_year * P.production_by_year) as cumulative_target +from {company_data._company_schema}.{company_data._company_table} C + join {company_data._company_schema}.{company_data._production_table} P on P.company_name=C.company_name + join {company_data._company_schema}.{company_data._intensity_table} EI on EI.company_name=C.company_name and EI.year=P.year + join {company_data._company_schema}.{company_data._trajectory_table} ET on ET.company_name=C.company_name and ET.year=P.year +group by C.company_name, C.company_id, '{company_data._company_schema}', 'S1+S2' +""") + # Need to fetch so table created above is established before using in query below + qres.fetchall() + qres = self._engine.execute(f""" +create table cumulative_budget_1 as +select C.company_name, C.company_id, '{company_data._company_schema}' as source, 'S1+S2' as scope, 'benchmark_1' as benchmark, + B.global_budget, B.benchmark_temp, + sum(B.intensity * P.production_by_year) as cumulative_budget +from {company_data._company_schema}.{company_data._company_table} C + join {company_data._company_schema}.{company_data._production_table} P on P.company_name=C.company_name + join {ingest_schema}.benchmark_ei B on P.year=B.year and C.region=B.region and C.sector=B.sector +group by C.company_name, C.company_id, '{company_data._company_schema}', 'S1+S2', 'benchmark_1', B.global_budget, B.benchmark_temp +""") + # Need to fetch so table created above is established before using in query below + qres.fetchall() + qres = self._engine.execute(f""" +create table overshoot_ratios as +select E.company_name, E.company_id, '{company_data._company_schema}' as source, 'S1+S2' as scope, 'benchmark_1' as benchmark, + B.global_budget, B.benchmark_temp, + E.cumulative_trajectory/B.cumulative_budget as trajectory_overshoot_ratio, + E.cumulative_target/B.cumulative_budget as target_overshoot_ratio +from {ingest_schema}.cumulative_emissions E + join {ingest_schema}.cumulative_budget_1 B on E.company_id=B.company_id +""") + # Need to fetch so table created above is established before using in query below + qres.fetchall() + qres = self._engine.execute(f""" +create table temperature_scores as +select R.company_name, R.company_id, '{company_data._company_schema}' as source, 'S1+S2' as scope, 'benchmark_1' as benchmark, + R.benchmark_temp + R.global_budget * (R.trajectory_overshoot_ratio-1) * 2.2/3664.0 as trajectory_temperature_score, + R.benchmark_temp + R.global_budget * (R.target_overshoot_ratio-1) * 2.2/3664.0 as target_temperature_score +from {ingest_schema}.overshoot_ratios R +""") + # Need to fetch so table created above is established before any might want to use later + qres.fetchall() + + + def get_preprocessed_company_data(self, company_ids: List[str]) -> List[ICompanyAggregates]: + raise NotImplementedError \ No newline at end of file diff --git a/examples/vault_demo_n0.ipynb b/examples/vault_demo_n0.ipynb new file mode 100644 index 00000000..f333059f --- /dev/null +++ b/examples/vault_demo_n0.ipynb @@ -0,0 +1,245 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "e3c5c7d5-63e0-47a5-ac4a-bb58beb98995", + "metadata": {}, + "source": [ + "# Data Vault Demo\n", + "\n", + "The basic concept of the Data Vault is that when a user authenticates themself, they receive an engine that gives them access to all the data (rows, columns, tables, schema, etc.) for which they are authorized. Users who can authenticate themselves for multiple roles can use those roles simultaneously. Data accessed via such engines retains data lineage, so that users can prove they are using authorized data.\n", + "\n", + "The steps of this demo are:\n", + "\n", + "1. Authenticate and acquire an engine\n", + " 1. Dev engine sees all\n", + " 2. Quant engine can do temp scoring but not see fundamental company info\n", + " 3. User engine can use temp scoring but not see cumulative emissions nor overshoot info\n", + "2. Construct Vaults for:\n", + " 1. Fundamental corporate financial information\n", + " 2. Corporate emissions data (base year, historical)\n", + " 3. Corporate target data (start year, end year, target start value, target end value)\n", + " 4. Sector benchmark data (production, CO2e intensity)\n", + "3. Dev Engine: Visualize projected emissions (targets and trajectories)\n", + "4. Quant Engine: Using calculated cumulative emmisions values, visualize per-company trajectory and target temperature scores\n", + "5. User Engine: Using consensus probability scoring\n", + " 1. Publish per-company temperature alignment score\n", + " 2. Based on aggregate portfolio information, produce weighting scores to yield overall portfolio alignment score" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "id": "d1ab75f1-dc99-422d-b15b-ce043e32fff8", + "metadata": {}, + "outputs": [], + "source": [ + "import os\n", + "import pathlib\n", + "from dotenv import load_dotenv\n", + "\n", + "# Load some standard environment variables from a dot-env file, if it exists.\n", + "# If no such file can be found, does not fail, and so allows these environment vars to\n", + "# be populated in some other way\n", + "dotenv_dir = os.environ.get('CREDENTIAL_DOTENV_DIR', os.environ.get('PWD', '/opt/app-root/src'))\n", + "dotenv_path = pathlib.Path(dotenv_dir) / 'credentials.env'\n", + "if os.path.exists(dotenv_path):\n", + " load_dotenv(dotenv_path=dotenv_path,override=True)" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "c28b54b2-61a7-4c7a-a82d-1277639a5096", + "metadata": {}, + "outputs": [], + "source": [ + "import trino\n", + "from sqlalchemy.engine import create_engine\n", + "\n", + "sqlstring = 'trino://{user}@{host}:{port}/'.format(\n", + " user = os.environ['TRINO_USER'],\n", + " host = os.environ['TRINO_HOST'],\n", + " port = os.environ['TRINO_PORT']\n", + ")\n", + "sqlargs = {\n", + " 'auth': trino.auth.JWTAuthentication(os.environ['TRINO_PASSWD']),\n", + " 'http_scheme': 'https',\n", + " 'catalog': 'osc_datacommons_dev',\n", + " 'schema': 'itr_mdt',\n", + "}\n", + "engine = create_engine(sqlstring, connect_args = sqlargs)\n", + "connection = engine.connect()\n", + "\n", + "ingest_schema = 'itr_mdt'" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "969b6d53-49d8-47d9-b218-6bdd790a7de4", + "metadata": {}, + "outputs": [], + "source": [ + "import json\n", + "import os\n", + "import pandas as pd\n", + "from numpy.testing import assert_array_equal\n", + "import ITR\n", + "\n", + "# from ITR.portfolio_aggregation import PortfolioAggregationMethod\n", + "# from ITR.temperature_score import TemperatureScore\n", + "# from ITR.configs import ColumnsConfig, TemperatureScoreConfig\n", + "from ITR.data.data_warehouse import DataWarehouse\n", + "from ITR.data.vault_providers import VaultCompanyDataProvider, VaultProviderProductionBenchmark, \\\n", + " VaultProviderIntensityBenchmark, DataVaultWarehouse\n", + "from ITR.interfaces import ICompanyData, EScope, ETimeFrames, PortfolioCompany, IEmissionIntensityBenchmarkScopes, \\\n", + " IProductionBenchmarkScopes\n", + "\n", + "ingest_schema = 'itr_mdt'" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "022590f1-3359-4673-ae61-9c0dc035802e", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "connecting with engine Engine(trino://os-climate-user1@trino-secure-odh-trino.apps.odh-cl1.apps.os-climate.org:443/)\n" + ] + } + ], + "source": [ + "sqlstring = 'trino://{user}@{host}:{port}/'.format(\n", + " user = os.environ['TRINO_USER_USER1'],\n", + " host = os.environ['TRINO_HOST'],\n", + " port = os.environ['TRINO_PORT']\n", + ")\n", + "sqlargs = {\n", + " 'auth': trino.auth.JWTAuthentication(os.environ['TRINO_PASSWD_USER1']),\n", + " 'http_scheme': 'https'\n", + "}\n", + "engine_dev = create_engine(sqlstring, connect_args = sqlargs)\n", + "print(\"connecting with engine \" + str(engine_dev))\n", + "connection_dev = engine_dev.connect()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "51b02839-934d-4c12-a05d-6f8dea463dbc", + "metadata": {}, + "outputs": [], + "source": [ + "root = os.path.dirname(os.path.abspath(\"/opt/app-root/src/ITR/test/inputs\"))\n", + "benchmark_prod_json = os.path.join(root, \"inputs\", \"json\", \"benchmark_production_OECM.json\")\n", + "benchmark_EI_json = os.path.join(root, \"inputs\", \"json\", \"benchmark_EI_OECM.json\")\n", + "\n", + "# load production benchmarks\n", + "with open(benchmark_prod_json) as json_file:\n", + " parsed_json = json.load(json_file)\n", + "prod_bms = IProductionBenchmarkScopes.parse_obj(parsed_json)\n", + "vault_production_bm = VaultProviderProductionBenchmark(engine=engine_dev, benchmark_name=\"benchmark_prod\", production_benchmarks=prod_bms)\n", + "\n", + "# load intensity benchmarks\n", + "with open(benchmark_EI_json) as json_file:\n", + " parsed_json = json.load(json_file)\n", + "ei_bms = IEmissionIntensityBenchmarkScopes.parse_obj(parsed_json)\n", + "vault_EI_bm = VaultProviderIntensityBenchmark(benchmark_name=\"benchmark_ei\", EI_benchmarks=ei_bms)\n", + "\n", + "# load company data\n", + "# TODO: ISIC code should read as int, not float\n", + "vault_company_data = VaultCompanyDataProvider(ingest_schema, \"rmi_company_data\")\n", + "\n", + "vault_warehouse = DataVaultWarehouse(vault_company_data, vault_production_bm, vault_EI_bm)\n", + "\n", + "# Show projections for emissions trajectories, production, and emission targets (N0 only)\n", + "# Show cumulative emissions (trajectory, target) and budget (N1 can also see)\n", + "\n", + "def test_N1_temp_scores(self):\n", + " # Show cumulative emissions (trajectory, target) and budget (N1 can see)\n", + " # Show overshoot ratios (trajectory, target) (N1 can see)\n", + " # Show trajectory and target temp scores (N2 can also see)\n", + " pass\n", + "\n", + "def test_N2_portfolio(self):\n", + " # Show weighted temp score over portfolio (N2 can see)\n", + " # Different weighting types give different coefficients\n", + " pass" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "478870d4-a749-45f4-83b9-7cb2af23e6a0", + "metadata": {}, + "outputs": [], + "source": [ + "df = pd.read_sql_table(f\"rmi_emission_data\", engine)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "5462f5a1-0198-43f8-bf73-dad913dd45b6", + "metadata": {}, + "outputs": [], + "source": [ + "df = df.sort_values(['company_name', 'year']).reset_index(drop=True)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "ee1359d4-4ec2-44ea-8437-aebd0c083a18", + "metadata": {}, + "outputs": [], + "source": [ + "df" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "d62463da-d900-4bff-8cd0-99748150a7a8", + "metadata": {}, + "outputs": [], + "source": [ + "df.pivot(index='year', columns='company_name', values='co2_target_by_year').reset_index().iloc[:, [x for x in list(range(0,3)) + list(range(3,90,3))]].plot(x='year', kind='line', figsize=(24,10))" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "76d2ad90-ce27-484f-8de9-359153d32979", + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.8.3" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/test/test_vault_providers.py b/test/test_vault_providers.py new file mode 100644 index 00000000..9c72f676 --- /dev/null +++ b/test/test_vault_providers.py @@ -0,0 +1,124 @@ +import json +import unittest +import os +import pathlib +import pandas as pd +from numpy.testing import assert_array_equal +import ITR + +from ITR.portfolio_aggregation import PortfolioAggregationMethod +from ITR.temperature_score import TemperatureScore +from ITR.configs import ColumnsConfig, TemperatureScoreConfig +from ITR.data.data_warehouse import DataWarehouse +from ITR.data.vault_providers import VaultCompanyDataProvider, VaultProviderProductionBenchmark, \ + VaultProviderIntensityBenchmark, DataVaultWarehouse +from ITR.interfaces import ICompanyData, EScope, ETimeFrames, PortfolioCompany, IEmissionIntensityBenchmarkScopes, \ + IProductionBenchmarkScopes + +import trino +import osc_ingest_trino as osc +from sqlalchemy.engine import create_engine + +ingest_schema = 'demo' + +dotenv_dir = os.environ.get('CREDENTIAL_DOTENV_DIR', os.environ.get('PWD', '/opt/app-root/src')) +dotenv_path = pathlib.Path(dotenv_dir) / 'credentials.env' +if os.path.exists(dotenv_path): + load_dotenv(dotenv_path=dotenv_path,override=True) + +sqlstring = 'trino://{user}@{host}:{port}/'.format( + user = os.environ['TRINO_USER'], + host = os.environ['TRINO_HOST'], + port = os.environ['TRINO_PORT'] +) +sqlargs = { + 'auth': trino.auth.JWTAuthentication(os.environ['TRINO_PASSWD']), + 'http_scheme': 'https', + 'catalog': 'osc_datacommons_dev', + 'schema': ingest_schema, +} +engine_init = create_engine(sqlstring, connect_args = sqlargs) +print("connecting with engine " + str(engine_init)) +connection_init = engine_init.connect() +qres = engine_init.execute(f"create schema if not exists {ingest_schema}") +print(qres.fetchall()) + +class TestVaultProvider(unittest.TestCase): + """ + Test the Value provider + """ + + def setUp(self) -> None: + self.root = os.path.dirname(os.path.abspath(__file__)) + self.benchmark_prod_json = os.path.join(self.root, "inputs", "json", "benchmark_production_OECM.json") + self.benchmark_EI_json = os.path.join(self.root, "inputs", "json", "benchmark_EI_OECM.json") + + # load production benchmarks + with open(self.benchmark_prod_json) as json_file: + parsed_json = json.load(json_file) + prod_bms = IProductionBenchmarkScopes.parse_obj(parsed_json) + self.vault_production_bm = VaultProviderProductionBenchmark(engine_init, ingest_schema, benchmark_name="benchmark_prod", production_benchmarks=prod_bms) + + # load intensity benchmarks + with open(self.benchmark_EI_json) as json_file: + parsed_json = json.load(json_file) + ei_bms = IEmissionIntensityBenchmarkScopes.parse_obj(parsed_json) + self.vault_EI_bm = VaultProviderIntensityBenchmark(engine_init, ingest_schema, benchmark_name="benchmark_ei", EI_benchmarks=ei_bms) + + # load company data + # TODO: ISIC code should read as int, not float + self.vault_company_data = VaultCompanyDataProvider(engine_init, ingest_schema, "rmi_company_data") + + self.vault_warehouse = DataVaultWarehouse(engine_init, ingest_schema, self.vault_company_data, self.vault_production_bm, self.vault_EI_bm) + + def test_N0_projections(self): + sqlstring = 'trino://{user}@{host}:{port}/'.format( + user = os.environ['TRINO_USER_USER1'], + host = os.environ['TRINO_HOST'], + port = os.environ['TRINO_PORT'] + ) + sqlargs = { + 'auth': trino.auth.JWTAuthentication(os.environ['TRINO_PASSWD_USER1']), + 'http_scheme': 'https' + } + engine_dev = create_engine(sqlstring, connect_args = sqlargs) + print("connecting with engine " + str(engine_dev)) + connection_dev = engine_dev.connect() + # Show projections for emissions trajectories, production, and emission targets (N0 only) + # Show cumulative emissions (trajectory, target) and budget (N1 can also see) + pass + + def test_N1_temp_scores(self): + sqlstring = 'trino://{user}@{host}:{port}/'.format( + user = os.environ['TRINO_USER_USER2'], + host = os.environ['TRINO_HOST'], + port = os.environ['TRINO_PORT'] + ) + sqlargs = { + 'auth': trino.auth.JWTAuthentication(os.environ['TRINO_PASSWD_USER2']), + 'http_scheme': 'https' + } + engine_quant = create_engine(sqlstring, connect_args = sqlargs) + print("connecting with engine " + str(engine_quant)) + connection_quant = engine_quant.connect() + # Show cumulative emissions (trajectory, target) and budget (N1 can see) + # Show overshoot ratios (trajectory, target) (N1 can see) + # Show trajectory and target temp scores (N2 can also see) + pass + + def test_N2_portfolio(self): + sqlstring = 'trino://{user}@{host}:{port}/'.format( + user = os.environ['TRINO_USER_USER3'], + host = os.environ['TRINO_HOST'], + port = os.environ['TRINO_PORT'] + ) + sqlargs = { + 'auth': trino.auth.JWTAuthentication(os.environ['TRINO_PASSWD_USER3']), + 'http_scheme': 'https' + } + engine_user = create_engine(sqlstring, connect_args = sqlargs) + print("connecting with engine " + str(engine_user)) + connection_user = engine_user.connect() + # Show weighted temp score over portfolio (N2 can see) + # Different weighting types give different coefficients + pass From 519f9e7cb89396c8b0b1f92bb8b1a4be9f495a18 Mon Sep 17 00:00:00 2001 From: MichaelTiemannOSC Date: Sun, 16 Jan 2022 18:07:24 +0000 Subject: [PATCH 014/345] First draft of Notebook demo! Plenty of rough edges to smooth out, but this gets us to a point where we can talk about arch, implementation, UX, and more. Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- ITR/data/data_warehouse.py | 30 +- ITR/data/vault_providers.py | 187 ++-- examples/vault_demo_n0.ipynb | 2045 ++++++++++++++++++++++++++++++++-- test/test_vault_providers.py | 15 +- 4 files changed, 2118 insertions(+), 159 deletions(-) diff --git a/ITR/data/data_warehouse.py b/ITR/data/data_warehouse.py index 1210acfa..7cb844da 100644 --- a/ITR/data/data_warehouse.py +++ b/ITR/data/data_warehouse.py @@ -17,7 +17,7 @@ class DataWarehouse(ABC): def __init__(self, company_data: CompanyDataProvider, benchmark_projected_production: ProductionBenchmarkDataProvider, - benchmarks_projected_emission_intensity: IntensityBenchmarkDataProvider, + benchmarks_projected_emissions_intensity: IntensityBenchmarkDataProvider, column_config: Type[ColumnsConfig] = ColumnsConfig, tempscore_config: Type[TemperatureScoreConfig] = TemperatureScoreConfig): """ @@ -25,11 +25,11 @@ def __init__(self, company_data: CompanyDataProvider, :param company_data: CompanyDataProvider :param benchmark_projected_production: ProductionBenchmarkDataProvider - :param benchmarks_projected_emission_intensity: IntensityBenchmarkDataProvider + :param benchmarks_projected_emissions_intensity: IntensityBenchmarkDataProvider """ self.company_data = company_data self.benchmark_projected_production = benchmark_projected_production - self.benchmarks_projected_emission_intensity = benchmarks_projected_emission_intensity + self.benchmarks_projected_emissions_intensity = benchmarks_projected_emissions_intensity self.temp_config = tempscore_config self.column_config = column_config @@ -51,23 +51,23 @@ def get_preprocessed_company_data(self, company_ids: List[str]) -> List[ICompany projected_production = self.benchmark_projected_production.get_company_projected_production( company_info_at_base_year) - df_company_data.loc[:, self.column_config.CUMULATIVE_TRAJECTORY] = self._get_cumulative_emission( - projected_emission_intensity=self.company_data.get_company_projected_intensities(company_ids), + df_company_data.loc[:, self.column_config.CUMULATIVE_TRAJECTORY] = self._get_cumulative_emissions( + projected_emissions_intensity=self.company_data.get_company_projected_intensities(company_ids), projected_production=projected_production).to_numpy() - df_company_data.loc[:, self.column_config.CUMULATIVE_TARGET] = self._get_cumulative_emission( - projected_emission_intensity=self.company_data.get_company_projected_targets(company_ids), + df_company_data.loc[:, self.column_config.CUMULATIVE_TARGET] = self._get_cumulative_emissions( + projected_emissions_intensity=self.company_data.get_company_projected_targets(company_ids), projected_production=projected_production).to_numpy() df_company_data.loc[:, self.column_config.CUMULATIVE_BUDGET] = self._get_cumulative_emission( - projected_emission_intensity=self.benchmarks_projected_emission_intensity.get_SDA_intensity_benchmarks( + projected_emissions_intensity=self.benchmarks_projected_emissions_intensity.get_SDA_intensity_benchmarks( company_info_at_base_year), projected_production=projected_production).to_numpy() df_company_data.loc[:, - self.column_config.BENCHMARK_GLOBAL_BUDGET] = self.benchmarks_projected_emission_intensity.benchmark_global_budget + self.column_config.BENCHMARK_GLOBAL_BUDGET] = self.benchmarks_projected_emissionsintensity.benchmark_global_budget df_company_data.loc[:, - self.column_config.BENCHMARK_TEMP] = self.benchmarks_projected_emission_intensity.benchmark_temperature + self.column_config.BENCHMARK_TEMP] = self.benchmarks_projected_emissions_intensity.benchmark_temperature companies = df_company_data.to_dict(orient="records") @@ -99,14 +99,14 @@ def _convert_df_to_model(self, df_company_data: pd.DataFrame) -> List[ICompanyAg pass return model_companies - def _get_cumulative_emission(self, projected_emission_intensity: pd.DataFrame, projected_production: pd.DataFrame + def _get_cumulative_emissions(self, projected_emissions_intensity: pd.DataFrame, projected_production: pd.DataFrame ) -> pd.Series: """ - get the weighted sum of the projected emission times the projected production - :param projected_emission_intensity: series of projected emissions + get the weighted sum of the projected emissions times the projected production + :param projected_emissions_intensity: series of projected emissions :param projected_production: series of projected production series - :return: weighted sum of production and emission + :return: weighted sum of production and emissions """ - return projected_emission_intensity.reset_index(drop=True).multiply(projected_production.reset_index( + return projected_emissions_intensity.reset_index(drop=True).multiply(projected_production.reset_index( drop=True)).sum(axis=1) diff --git a/ITR/data/vault_providers.py b/ITR/data/vault_providers.py index 1395fca5..0b4a5ad5 100644 --- a/ITR/data/vault_providers.py +++ b/ITR/data/vault_providers.py @@ -14,6 +14,8 @@ import osc_ingest_trino as osc import sqlalchemy +ingest_catalog = 'osc_datacommons_dev' + import pandas as pd from typing import List, Type from ITR.configs import ColumnsConfig, TemperatureScoreConfig @@ -23,6 +25,15 @@ from ITR.interfaces import ICompanyData, EScope, IProductionBenchmarkScopes, IEmissionIntensityBenchmarkScopes, \ IBenchmark, ICompanyAggregates +import boto3 +s3 = boto3.resource( + service_name="s3", + endpoint_url=os.environ["S3_DEV_ENDPOINT"], + aws_access_key_id=os.environ["S3_DEV_ACCESS_KEY"], + aws_secret_access_key=os.environ["S3_DEV_SECRET_KEY"], +) +trino_bucket = s3.Bucket(os.environ["S3_DEV_BUCKET"]) + # TODO handling of scopes in benchmarks # TODO handle ways to append information (from other providers, other benchmarks, new scope info, new corp data updates, etc) @@ -43,25 +54,25 @@ class VaultCompanyDataProvider(CompanyDataProvider): """ This class serves primarily for connecting to the ITR tool to the Data Vault via Trino. - :param company_schema: the name of the schema where the company_table is found :param company_table: the name of the Trino table that contains fundamental data for companies - :param target_table: the name of the Trino table that contains company (emission intensity) target data (and possibly historical data) - :param trajectory_table: the name of the Trino table that contains company (emission intensity) historical data (and possibly trajectory data) + :param target_table: the name of the Trino table that contains company (emissions intensity) target data (and possibly historical data) + :param trajectory_table: the name of the Trino table that contains company (emissions intensity) historical data (and possibly trajectory data) + :param company_schema: the name of the schema where the company_table is found :param column_config: An optional ColumnsConfig object containing relevant variable names :param tempscore_config: An optional TemperatureScoreConfig object containing temperature scoring settings """ def __init__(self, engine: sqlalchemy.engine.base.Engine, - company_schema: str, company_table: str, target_table: str = None, trajectory_table: str = None, + company_schema: str = None, column_config: Type[ColumnsConfig] = ColumnsConfig, tempscore_config: Type[TemperatureScoreConfig] = TemperatureScoreConfig): super().__init__() self._engine = engine - self._company_schema = company_schema + self._schema = company_schema or engine.dialect.default_schema_name or 'demo' self._company_table = company_table self.column_config = column_config self.temp_config = tempscore_config @@ -71,10 +82,10 @@ def __init__(self, self._production_table = company_table.replace('_company_', '_production_') self._emissions_table = company_table.replace('_company_', '_emissions_') companies_without_projections = self._engine.execute(f""" -select C.company_name, C.company_id from {self._company_schema}.{self._company_table} C left join {self._company_schema}.{self._intensity_table} EI on EI.company_name=C.company_name +select C.company_name, C.company_id from {self._schema}.{self._company_table} C left join {self._schema}.{self._intensity_table} EI on EI.company_name=C.company_name where co2_intensity_target_by_year is NULL """).fetchall() - assert len(companies_without_projections)==0, f"Provide either historic emission data or projections for companies with IDs {companies_without_projections.company_id}" + assert len(companies_without_projections)==0, f"Provide either historic emissions data or projections for companies with IDs {companies_without_projections.company_id}" # The factors one would want to sum over companies for weighting purposes are: # * market_cap_usd @@ -86,17 +97,39 @@ def __init__(self, # TODO: make return value a Quantity (USD or CO2) def sum_over_companies(self, company_ids: List[str], year: int, factor: str, scope: EScope = EScope.S1S2) -> float: if factor=='enterprise_value_usd': - qres = self._engine.execute(f"select sum (market_cap_usd + debt_usd - cash_usd) as {factor}_sum from {self._company_schema}.{self._company_table} where year={year}") + qres = self._engine.execute(f"select sum(market_cap_usd + debt_usd - cash_usd) as {factor}_sum from {self._schema}.{self._company_table} where year={year}") elif factor=='emissions': # TODO: properly interpret SCOPE parameter assert scope==EScope.S1S2 - qres = self._engine.execute(f"select sum (co2_target_by_year) as {factor}_sum from {self._company_schema}.{self._emissions_table} where year={year}") + qres = self._engine.execute(f"select sum(co2_target_by_year) as {factor}_sum from {self._schema}.{self._emissions_table} where year={year}") else: - qres = self._engine.execute(f"select sum {factor} as {factor}_sum from {self._company_schema}.{self._company_table} where year={year}") + qres = self._engine.execute(f"select sum({factor}) as {factor}_sum from {self._schema}.{self._company_table} where year={year}") sres = qres.fetchall() # sres[0] is the first row of the returned data; sres[0][0] is the first (and only) column of the row returned return sres[0][0] + def compute_portfolio_weights(self, pa_temp_scores: pd.Series, year: int, factor: str, scope: EScope = EScope.S1S2) -> pd.Series: + """ + Portfolio values could be position size, temperature scores, anything that can be multiplied by a factor. + + :param company_ids: A pd.Series of company IDs (ISINs) + :return: A pd.Series weighted by the factor + """ + if factor=='company_evic': + qres = self._engine.execute(f"select company_id, sum(company_market_cap + company_cash_equivalents) as {factor} from {self._schema}.{self._company_table} group by company_id") + elif factor=='emissions': + # TODO: properly interpret SCOPE parameter + assert scope==EScope.S1S2 + qres = self._engine.execute(f"select company_id, sum(co2_target_by_year) as {factor} from {self._schema}.{self._emissions_table} where year={year} group by company_id") + else: + qres = self._engine.execute(f"select company_id, sum({factor}) as {factor} from {self._schema}.{self._company_table} group by company_id") + sres = qres.fetchall() + weights = pd.Series(data=[s[1] for s in sres], index=[s[0] for s in sres], dtype=float) + weights = weights.loc[pa_temp_scores.index.intersection(weights.index)] + weight_sum = weights.sum() + return pa_temp_scores * weights / weight_sum + + def get_company_data(self, company_ids: List[str]) -> List[ICompanyData]: """ Get all relevant data for a list of company ids. This method should return a list of ICompanyData @@ -132,7 +165,7 @@ def get_company_fundamentals(self, company_ids: List[str]) -> pd.DataFrame: :return: A pandas DataFrame with company fundamental info per company """ or_clause = ' or '.join([f"company_id = '{c}'" for c in company_ids]) - sql = f"select * from {self._company_schema}.{self._company_table} where {or_clause}" + sql = f"select * from {self._schema}.{self._company_table} where {or_clause}" df = pd.read_sql(sql, self._engine) # df = df.drop(columns=['projected_targets', 'projected_intensities']) return df @@ -151,15 +184,6 @@ def get_company_projected_targets(self, company_ids: List[str]) -> pd.DataFrame: """ raise NotImplementedError -import boto3 - -s3 = boto3.resource( - service_name="s3", - endpoint_url=os.environ["S3_DEV_ENDPOINT"], - aws_access_key_id=os.environ["S3_DEV_ACCESS_KEY"], - aws_secret_access_key=os.environ["S3_DEV_SECRET_KEY"], -) -pandas_bucket = osc.attach_s3_bucket("S3_DEV") benchmark_scopes = ['S1S2', 'S3', 'S1S2S3'] @@ -167,9 +191,9 @@ class VaultProviderProductionBenchmark(ProductionBenchmarkDataProvider): def __init__(self, engine: sqlalchemy.engine.base.Engine, - ingest_schema: str, benchmark_name: str, production_benchmarks: IProductionBenchmarkScopes, + ingest_schema: str = None, column_config: Type[ColumnsConfig] = ColumnsConfig, tempscore_config: Type[TemperatureScoreConfig] = TemperatureScoreConfig): """ @@ -182,28 +206,28 @@ def __init__(self, super().__init__(production_benchmarks=production_benchmarks, column_config=column_config, tempscore_config=tempscore_config) - self._engine = engine - self.benchmark_name = benchmark_name + self._engine=engine + self._schema = ingest_schema or engine.dialect.default_schema_name or 'demo' + self.benchmark_name=benchmark_name qres = self._engine.execute(f"drop table if exists itr_mdt.{benchmark_name}") - qres = self._engine.execute(f"drop table if exists {ingest_schema}.{benchmark_name}") + qres = self._engine.execute(f"drop table if exists {self._schema}.{benchmark_name}") qres.fetchall() - dres = pandas_bucket.objects \ - .filter(Prefix = f'data/{ingest_schema}.db/{benchmark_name}/') \ - .delete() - print(dres) df = pd.DataFrame() for scope in benchmark_scopes: if production_benchmarks.dict()[scope] is None: continue for benchmark in production_benchmarks.dict()[scope]['benchmarks']: - # ??? I don't understand why I cannot use benchmark.projections + # ??? I don't understand why I cannot use benchmark.projections and must use benchmark['projections'] bdf = pd.DataFrame.from_dict({r['year']: [r['value'], benchmark['region'], benchmark['sector'], scope] for r in benchmark['projections']}, columns=['production', 'region', 'sector', 'scope'], orient='index') df = pd.concat([df, bdf]) df.reset_index(inplace=True) df.rename(columns={'index':'year'}, inplace=True) - df.to_sql(benchmark_name, self._engine, index=False, chunksize=200, method='multi') + df = df.convert_dtypes() + osc.ingest_unmanaged_parquet(df, self._schema, benchmark_name, trino_bucket) + qres = engine.execute(osc.unmanaged_parquet_tabledef(df, ingest_catalog, self._schema, benchmark_name, trino_bucket)) + print(qres.fetchall()) def get_company_projected_production(self, ghg_scope12: pd.DataFrame) -> pd.DataFrame: """ @@ -244,20 +268,18 @@ def get_benchmark_projections(self, company_sector_region_info: pd.DataFrame, class VaultProviderIntensityBenchmark(IntensityBenchmarkDataProvider): def __init__(self, engine: sqlalchemy.engine.base.Engine, - ingest_schema: str, benchmark_name: str, EI_benchmarks: IEmissionIntensityBenchmarkScopes, + ingest_schema: str = None, column_config: Type[ColumnsConfig] = ColumnsConfig, tempscore_config: Type[TemperatureScoreConfig] = TemperatureScoreConfig): super().__init__(EI_benchmarks.benchmark_temperature, EI_benchmarks.benchmark_global_budget, EI_benchmarks.is_AFOLU_included) self._engine=engine + self._schema = ingest_schema or engine.dialect.default_schema_name or 'demo' self.benchmark_name = benchmark_name - self._engine.execute(f"drop table if exists {ingest_schema}.{benchmark_name}") - dres = pandas_bucket.objects \ - .filter(Prefix = f'data/{ingest_schema}.db/{benchmark_name}/') \ - .delete() - print(dres) + osc.drop_unmanaged_table(ingest_catalog, self._schema, benchmark_name, engine, trino_bucket) + osc.drop_unmanaged_data(self._schema, benchmark_name, trino_bucket) df = pd.DataFrame() for scope in benchmark_scopes: if EI_benchmarks.dict()[scope] is None: @@ -270,7 +292,10 @@ def __init__(self, df = pd.concat([df, bdf]) df.reset_index(inplace=True) df.rename(columns={'index':'year'}, inplace=True) - df.to_sql(benchmark_name, self._engine, index=False, chunksize=200, method='multi') + df = df.convert_dtypes() + osc.ingest_unmanaged_parquet(df, self._schema, benchmark_name, trino_bucket) + qres = engine.execute(osc.unmanaged_parquet_tabledef(df, ingest_catalog, self._schema, benchmark_name, trino_bucket)) + print(qres.fetchall()) def get_SDA_intensity_benchmarks(self, company_info_at_base_year: pd.DataFrame) -> pd.DataFrame: @@ -357,79 +382,103 @@ def _get_intensity_benchmarks(self, company_sector_region_info: pd.DataFrame, return benchmark_projection class DataVaultWarehouse(DataWarehouse): - + def __init__(self, engine: sqlalchemy.engine.base.Engine, - ingest_schema: str, company_data: VaultCompanyDataProvider, benchmark_projected_production: ProductionBenchmarkDataProvider, - benchmarks_projected_emission_intensity: IntensityBenchmarkDataProvider, + benchmarks_projected_emissions_intensity: IntensityBenchmarkDataProvider, + ingest_schema: str = None, column_config: Type[ColumnsConfig] = ColumnsConfig, tempscore_config: Type[TemperatureScoreConfig] = TemperatureScoreConfig): super().__init__(company_data=company_data, benchmark_projected_production=benchmark_projected_production, - benchmarks_projected_emission_intensity=benchmarks_projected_emission_intensity, + benchmarks_projected_emissions_intensity=benchmarks_projected_emissions_intensity, column_config=column_config, tempscore_config=tempscore_config) self._engine=engine - # intensity_projections = pd.read_sql(f"select * from {self._company_schema}.{intensity_table}", self._engine) + self._schema = ingest_schema or engine.dialect.default_schema_name or 'demo' + # intensity_projections = pd.read_sql(f"select * from {self._schema}.{intensity_table}", self._engine) # intensity_projections['scope'] = 'S1+S2' - # intensity_projections['source'] = self._company_schema + # intensity_projections['source'] = self._schema # The DataVaultWarehouse provides three calculations per company: # * Cumulative trajectory of emissions # * Cumulative target of emissions # * Cumulative budget of emissions (separately for each benchmark) - qres = self._engine.execute(f"drop table if exists {ingest_schema}.cumulative_emissions") - qres = self._engine.execute(f"drop table if exists {ingest_schema}.cumulative_budget_1") - qres = self._engine.execute(f"drop table if exists {ingest_schema}.overshoot_ratios") - qres = self._engine.execute(f"drop table if exists {ingest_schema}.temperature_scores") + for t in ['cumulative_emissions', 'cumulative_budget_1', 'overshoot_ratios', 'temperature_scores']: + osc.drop_unmanaged_table(ingest_catalog, self._schema, t, engine, trino_bucket) + osc.drop_unmanaged_data(self._schema, t, trino_bucket) + qres = self._engine.execute(f""" -create table cumulative_emissions as -select C.company_name, C.company_id, '{company_data._company_schema}' as source, 'S1+S2' as scope, +create table cumulative_emissions with ( + format = 'parquet', + external_location = 's3a://{trino_bucket.name}/trino/{self._schema}/cumulative_emissions/' +) as +select C.company_name, C.company_id, '{company_data._schema}' as source, 'S1+S2' as scope, sum(ET.co2_intensity_trajectory_by_year * P.production_by_year) as cumulative_trajectory, sum(EI.co2_intensity_target_by_year * P.production_by_year) as cumulative_target -from {company_data._company_schema}.{company_data._company_table} C - join {company_data._company_schema}.{company_data._production_table} P on P.company_name=C.company_name - join {company_data._company_schema}.{company_data._intensity_table} EI on EI.company_name=C.company_name and EI.year=P.year - join {company_data._company_schema}.{company_data._trajectory_table} ET on ET.company_name=C.company_name and ET.year=P.year -group by C.company_name, C.company_id, '{company_data._company_schema}', 'S1+S2' +from {company_data._schema}.{company_data._company_table} C + join {company_data._schema}.{company_data._production_table} P on P.company_name=C.company_name + join {company_data._schema}.{company_data._intensity_table} EI on EI.company_name=C.company_name and EI.year=P.year + join {company_data._schema}.{company_data._trajectory_table} ET on ET.company_name=C.company_name and ET.year=P.year +group by C.company_name, C.company_id, '{company_data._schema}', 'S1+S2' """) # Need to fetch so table created above is established before using in query below qres.fetchall() qres = self._engine.execute(f""" -create table cumulative_budget_1 as -select C.company_name, C.company_id, '{company_data._company_schema}' as source, 'S1+S2' as scope, 'benchmark_1' as benchmark, +create table cumulative_budget_1 with ( + format = 'parquet', + external_location = 's3a://{trino_bucket.name}/trino/{self._schema}/cumulative_budget_1/' +) as +select C.company_name, C.company_id, '{company_data._schema}' as source, 'S1+S2' as scope, 'benchmark_1' as benchmark, B.global_budget, B.benchmark_temp, sum(B.intensity * P.production_by_year) as cumulative_budget -from {company_data._company_schema}.{company_data._company_table} C - join {company_data._company_schema}.{company_data._production_table} P on P.company_name=C.company_name - join {ingest_schema}.benchmark_ei B on P.year=B.year and C.region=B.region and C.sector=B.sector -group by C.company_name, C.company_id, '{company_data._company_schema}', 'S1+S2', 'benchmark_1', B.global_budget, B.benchmark_temp +from {company_data._schema}.{company_data._company_table} C + join {company_data._schema}.{company_data._production_table} P on P.company_name=C.company_name + join {self._schema}.benchmark_ei B on P.year=B.year and C.region=B.region and C.sector=B.sector +group by C.company_name, C.company_id, '{company_data._schema}', 'S1+S2', 'benchmark_1', B.global_budget, B.benchmark_temp """) # Need to fetch so table created above is established before using in query below qres.fetchall() qres = self._engine.execute(f""" -create table overshoot_ratios as -select E.company_name, E.company_id, '{company_data._company_schema}' as source, 'S1+S2' as scope, 'benchmark_1' as benchmark, +create table overshoot_ratios with ( + format = 'parquet', + external_location = 's3a://{trino_bucket.name}/trino/{self._schema}/overshoot_ratios/' +) as +select E.company_name, E.company_id, '{company_data._schema}' as source, 'S1+S2' as scope, 'benchmark_1' as benchmark, B.global_budget, B.benchmark_temp, E.cumulative_trajectory/B.cumulative_budget as trajectory_overshoot_ratio, E.cumulative_target/B.cumulative_budget as target_overshoot_ratio -from {ingest_schema}.cumulative_emissions E - join {ingest_schema}.cumulative_budget_1 B on E.company_id=B.company_id +from {self._schema}.cumulative_emissions E + join {self._schema}.cumulative_budget_1 B on E.company_id=B.company_id """) # Need to fetch so table created above is established before using in query below qres.fetchall() qres = self._engine.execute(f""" -create table temperature_scores as -select R.company_name, R.company_id, '{company_data._company_schema}' as source, 'S1+S2' as scope, 'benchmark_1' as benchmark, +create table temperature_scores with ( + format = 'parquet', + external_location = 's3a://{trino_bucket.name}/trino/{self._schema}/temperature_scores/' +) as +select R.company_name, R.company_id, '{company_data._schema}' as source, 'S1+S2' as scope, 'benchmark_1' as benchmark, R.benchmark_temp + R.global_budget * (R.trajectory_overshoot_ratio-1) * 2.2/3664.0 as trajectory_temperature_score, R.benchmark_temp + R.global_budget * (R.target_overshoot_ratio-1) * 2.2/3664.0 as target_temperature_score -from {ingest_schema}.overshoot_ratios R +from {self._schema}.overshoot_ratios R """) # Need to fetch so table created above is established before any might want to use later qres.fetchall() - + def get_preprocessed_company_data(self, company_ids: List[str]) -> List[ICompanyAggregates]: - raise NotImplementedError \ No newline at end of file + raise NotImplementedError + + def get_pa_temp_scores(self, probability: float, company_ids: List[str]) -> pd.Series: + if probability < 0 or probability > 1: + raise ValueError(f"probability value {probability} outside range [0.0, 1.0]") + temp_scores = pd.read_sql(f"select company_id, target_temperature_score, trajectory_temperature_score from {self._schema}.temperature_scores", + self._engine, index_col='company_id') + # We may have company_ids in our portfolio not in our database, and vice-versa. + # Return proper pa_temp_scores for what we can find, and np.nan for those we cannot + retval = pd.Series(data=None, index=company_ids, dtype='float64') + retval.loc[retval.index.intersection(temp_scores.index)] = temp_scores.target_temperature_score*probability + temp_scores.trajectory_temperature_score*(1-probability) + return retval \ No newline at end of file diff --git a/examples/vault_demo_n0.ipynb b/examples/vault_demo_n0.ipynb index f333059f..ef790cfb 100644 --- a/examples/vault_demo_n0.ipynb +++ b/examples/vault_demo_n0.ipynb @@ -11,20 +11,20 @@ "\n", "The steps of this demo are:\n", "\n", - "1. Authenticate and acquire an engine\n", + "1. Authenticate and acquire three SQLAlchemy engines\n", " 1. Dev engine sees all\n", " 2. Quant engine can do temp scoring but not see fundamental company info\n", " 3. User engine can use temp scoring but not see cumulative emissions nor overshoot info\n", - "2. Construct Vaults for:\n", + "2. With Dev engine, construct Vaults for:\n", " 1. Fundamental corporate financial information\n", " 2. Corporate emissions data (base year, historical)\n", " 3. Corporate target data (start year, end year, target start value, target end value)\n", " 4. Sector benchmark data (production, CO2e intensity)\n", - "3. Dev Engine: Visualize projected emissions (targets and trajectories)\n", - "4. Quant Engine: Using calculated cumulative emmisions values, visualize per-company trajectory and target temperature scores\n", - "5. User Engine: Using consensus probability scoring\n", - " 1. Publish per-company temperature alignment score\n", - " 2. Based on aggregate portfolio information, produce weighting scores to yield overall portfolio alignment score" + "3. Dev Engine: Visualize projected emissions (targets and trajectories) and calculate cumulative emissions\n", + "4. Quant Engine: Using calculated cumulative emmisions, visualize per-company trajectory and target temperature scores\n", + "5. User Engine: Using consensus probability scoring and own portfolio data (ISIN, position value)\n", + " 1. Calculate publishable per-company temperature alignment score\n", + " 2. Based on aggregate corporate and portfolio information, produce weighting scores to yield overall portfolio alignment score" ] }, { @@ -44,18 +44,18 @@ "dotenv_dir = os.environ.get('CREDENTIAL_DOTENV_DIR', os.environ.get('PWD', '/opt/app-root/src'))\n", "dotenv_path = pathlib.Path(dotenv_dir) / 'credentials.env'\n", "if os.path.exists(dotenv_path):\n", - " load_dotenv(dotenv_path=dotenv_path,override=True)" + " load_dotenv(dotenv_path=dotenv_path,override=True)\n", + "\n", + "import trino\n", + "from sqlalchemy.engine import create_engine" ] }, { - "cell_type": "code", - "execution_count": 2, - "id": "c28b54b2-61a7-4c7a-a82d-1277639a5096", + "cell_type": "raw", + "id": "04561de3-9ce1-4e08-9c28-3ac1ea298340", "metadata": {}, - "outputs": [], "source": [ - "import trino\n", - "from sqlalchemy.engine import create_engine\n", + "# This initializes the \"normal\" Trino developer's engine\n", "\n", "sqlstring = 'trino://{user}@{host}:{port}/'.format(\n", " user = os.environ['TRINO_USER'],\n", @@ -71,38 +71,22 @@ "engine = create_engine(sqlstring, connect_args = sqlargs)\n", "connection = engine.connect()\n", "\n", + "ingest_catalog = 'osc_datacommons_dev'\n", "ingest_schema = 'itr_mdt'" ] }, { - "cell_type": "code", - "execution_count": 3, - "id": "969b6d53-49d8-47d9-b218-6bdd790a7de4", + "cell_type": "markdown", + "id": "24cb4e5e-fb6f-42a1-938e-2a3b430d03eb", "metadata": {}, - "outputs": [], "source": [ - "import json\n", - "import os\n", - "import pandas as pd\n", - "from numpy.testing import assert_array_equal\n", - "import ITR\n", - "\n", - "# from ITR.portfolio_aggregation import PortfolioAggregationMethod\n", - "# from ITR.temperature_score import TemperatureScore\n", - "# from ITR.configs import ColumnsConfig, TemperatureScoreConfig\n", - "from ITR.data.data_warehouse import DataWarehouse\n", - "from ITR.data.vault_providers import VaultCompanyDataProvider, VaultProviderProductionBenchmark, \\\n", - " VaultProviderIntensityBenchmark, DataVaultWarehouse\n", - "from ITR.interfaces import ICompanyData, EScope, ETimeFrames, PortfolioCompany, IEmissionIntensityBenchmarkScopes, \\\n", - " IProductionBenchmarkScopes\n", - "\n", - "ingest_schema = 'itr_mdt'" + "### Step 1: Initialize Vaut user 'Dev', which has full visibility into corporate financial, production, and target data" ] }, { "cell_type": "code", - "execution_count": 4, - "id": "022590f1-3359-4673-ae61-9c0dc035802e", + "execution_count": 2, + "id": "07ef60e6-a328-4657-aad3-23d78abcbfea", "metadata": {}, "outputs": [ { @@ -121,19 +105,80 @@ ")\n", "sqlargs = {\n", " 'auth': trino.auth.JWTAuthentication(os.environ['TRINO_PASSWD_USER1']),\n", - " 'http_scheme': 'https'\n", + " 'http_scheme': 'https',\n", + " 'catalog': 'osc_datacommons_dev',\n", + " 'schema': 'demo',\n", "}\n", + "\n", + "ingest_catalog = 'osc_datacommons_dev'\n", + "ingest_schema = 'demo'\n", + "\n", "engine_dev = create_engine(sqlstring, connect_args = sqlargs)\n", "print(\"connecting with engine \" + str(engine_dev))\n", "connection_dev = engine_dev.connect()" ] }, + { + "cell_type": "markdown", + "id": "837212ac-6d98-46a2-9a18-c5c026feb84c", + "metadata": {}, + "source": [ + "### The ITR module provides Vault objects that coordinate the interaction of Dev, Quant, and User roles.\n", + "\n", + "The SQLAlchemy engines mediate the actual interaction with the Data Vault." + ] + }, { "cell_type": "code", - "execution_count": null, - "id": "51b02839-934d-4c12-a05d-6f8dea463dbc", + "execution_count": 3, + "id": "969b6d53-49d8-47d9-b218-6bdd790a7de4", "metadata": {}, "outputs": [], + "source": [ + "import json\n", + "import os\n", + "import pandas as pd\n", + "from numpy.testing import assert_array_equal\n", + "import ITR\n", + "\n", + "# from ITR.portfolio_aggregation import PortfolioAggregationMethod\n", + "# from ITR.temperature_score import TemperatureScore\n", + "# from ITR.configs import ColumnsConfig, TemperatureScoreConfig\n", + "# from ITR.data.data_warehouse import DataWarehouse\n", + "from ITR.data.vault_providers import VaultCompanyDataProvider, VaultProviderProductionBenchmark, \\\n", + " VaultProviderIntensityBenchmark, DataVaultWarehouse\n", + "# from ITR.interfaces import ICompanyData, EScope, ETimeFrames, PortfolioCompany, IEmissionIntensityBenchmarkScopes, \\\n", + "# IProductionBenchmarkScopes\n", + "from ITR.interfaces import EScope, IProductionBenchmarkScopes, IEmissionIntensityBenchmarkScopes" + ] + }, + { + "cell_type": "markdown", + "id": "5e1c9ad5-2cee-4052-8001-cce2c41d9f6d", + "metadata": {}, + "source": [ + "### Step 2: construct vaults for corporate financial, production, and target information.\n", + "\n", + "We also create benchmark data (which is presumed public information). There's more work to be done to modularly add new benchmarks that automatically become available options to to the ITR tool.\n", + "\n", + "In this demo we read ITR benchmark data from JSON files (REST API-friendly). Such data coming from the notebook filesystem is \"untethered\" data. The corporate data comes from an existing data pipeline (in this case, the pipeline processing RMI data). When data comes from the data commons, it is \"tethered\" to the Data Commons. The Data Vault can only control access to data that goes through the Data Commons via 'engines'." + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "f0f02443-0f8f-4ee1-aa23-f59a9250615f", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[(True,)]\n", + "[(True,)]\n" + ] + } + ], "source": [ "root = os.path.dirname(os.path.abspath(\"/opt/app-root/src/ITR/test/inputs\"))\n", "benchmark_prod_json = os.path.join(root, \"inputs\", \"json\", \"benchmark_production_OECM.json\")\n", @@ -149,43 +194,47 @@ "with open(benchmark_EI_json) as json_file:\n", " parsed_json = json.load(json_file)\n", "ei_bms = IEmissionIntensityBenchmarkScopes.parse_obj(parsed_json)\n", - "vault_EI_bm = VaultProviderIntensityBenchmark(benchmark_name=\"benchmark_ei\", EI_benchmarks=ei_bms)\n", + "vault_EI_bm = VaultProviderIntensityBenchmark(engine=engine_dev, benchmark_name=\"benchmark_ei\", EI_benchmarks=ei_bms)\n", "\n", "# load company data\n", - "# TODO: ISIC code should read as int, not float\n", - "vault_company_data = VaultCompanyDataProvider(ingest_schema, \"rmi_company_data\")\n", + "# TODO: Pandas reads null data mixed with integers as float64 (np.nan). This can be fixed post hoc with astype('Int16')\n", + "vault_company_data = VaultCompanyDataProvider(engine=engine_dev, company_table=\"rmi_company_data\")\n", "\n", - "vault_warehouse = DataVaultWarehouse(vault_company_data, vault_production_bm, vault_EI_bm)\n", - "\n", - "# Show projections for emissions trajectories, production, and emission targets (N0 only)\n", - "# Show cumulative emissions (trajectory, target) and budget (N1 can also see)\n", - "\n", - "def test_N1_temp_scores(self):\n", - " # Show cumulative emissions (trajectory, target) and budget (N1 can see)\n", - " # Show overshoot ratios (trajectory, target) (N1 can see)\n", - " # Show trajectory and target temp scores (N2 can also see)\n", - " pass\n", + "vault_warehouse = DataVaultWarehouse(engine_dev, vault_company_data, vault_production_bm, vault_EI_bm)" + ] + }, + { + "cell_type": "markdown", + "id": "5b02d0f2-0182-430e-9adf-48319beec507", + "metadata": {}, + "source": [ + "### Step 3: Visualize Emissions, Targets, and Trajectories\n", "\n", - "def test_N2_portfolio(self):\n", - " # Show weighted temp score over portfolio (N2 can see)\n", - " # Different weighting types give different coefficients\n", - " pass" + "SuperSet Dashboard here: https://superset-secure-odh-superset.apps.odh-cl1.apps.os-climate.org/superset/dashboard/17/?native_filters=%28%29" + ] + }, + { + "cell_type": "markdown", + "id": "42a11af2-fc4f-42a6-9ef4-15a7b379ee66", + "metadata": {}, + "source": [ + "Plot emissions data. Others can be plotted by following same pattern." ] }, { "cell_type": "code", - "execution_count": null, - "id": "478870d4-a749-45f4-83b9-7cb2af23e6a0", + "execution_count": 5, + "id": "12a14ef0-ceb4-4bda-bb31-90a584968709", "metadata": {}, "outputs": [], "source": [ - "df = pd.read_sql_table(f\"rmi_emission_data\", engine)" + "df = pd.read_sql_table(f\"rmi_emissions_data\", engine_dev)" ] }, { "cell_type": "code", - "execution_count": null, - "id": "5462f5a1-0198-43f8-bf73-dad913dd45b6", + "execution_count": 6, + "id": "f4991076-a5a9-4b1a-b19d-2c1744625f0f", "metadata": {}, "outputs": [], "source": [ @@ -194,29 +243,1889 @@ }, { "cell_type": "code", - "execution_count": null, - "id": "ee1359d4-4ec2-44ea-8437-aebd0c083a18", + "execution_count": 7, + "id": "2aa029f8-cef9-46dd-8fbf-9732559f25b6", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAABV0AAAJNCAYAAAAib9UzAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/YYfK9AAAACXBIWXMAAAsTAAALEwEAmpwYAAEAAElEQVR4nOzde3zO9f/H8cdnR5vNbHOKcsxhdrp2dBwzx5CcD2mMJMqhktDJITqwIiqnHEuzyKGSviyEUmyaswhDTmFOw7Dt+v0h18+yzcy4HJ732223rutzeL+fn89lfb9eva73xzCbzYiIiIiIiIiIiIhI/rCxdgARERERERERERGRB4mKriIiIiIiIiIiIiL5SEVXERERERERERERkXykoquIiIiIiIiIiIhIPlLRVURERERERERERCQfqegqIiIiIiIiIiIiko/s7uZkRYoUMZctW/ZuTikiIiIiIiIiIiKS7xISEk6YzeaiWe27q0XXsmXLEh8ffzenFBEREREREREREcl3hmHsz26flhcQERERERERERERyUcquoqIiIiIiIiIiIjkIxVdRURERERERERERPLRXV3TVUREREREREREcufKlSv8/fffpKamWjuKyEOtQIECPProo9jb2+f6HBVdRURERERERETuQX///Teurq6ULVsWwzCsHUfkoWQ2mzl58iR///035cqVy/V5Wl5AREREREREROQelJqaiqenpwquIlZkGAaenp633HGuoquIiIiIiIiIyD1KBVcR68vL76GKriIiIiIiIiIiIiL5SEVXERERERERERERkXykoquIiIiIiIiIiIhIPlLRVURERERERERE7nuzZ8/Gz88Pf39/IiMjSUpKIiIiAj8/P+rXr8+BAwcAiIqKonfv3lSvXp3y5cuzatUqunfvjpeXF1FRUZbxXFxcePnll/H29qZ+/focP34cgKlTpxISEoK/vz9t2rThwoULlnH79etHzZo1KV++PPPnzwegS5cuLFq0yDJu586dWbx4cZbXMHPmTFq3bk2TJk2oWLEir732mmVf7969CQ4Oxtvbm6FDh1q2ly1bliFDhmAymQgODmbjxo00btyYChUqMGnSJMtxY8aMISQkBD8/v0zny52hoquIiIiIiIiIiNzXtm3bxsiRI1mxYgWbNm3i448/pm/fvnTt2pXNmzfTuXNn+vXrZzn+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1wwaNIhly5Zx6tSpm+aqU6cOUVFRDBkyhLS0NL777juef/55AD755BMA+vTpc8vX27BhQ0aMGEHnzp1xdnYmOTlZ3a6SZ1rTVe46w9aWkmNGg709hwa8ivnyZWtHEhEREREREZH/iImJoVWrVpm2tWnThpiYGGxtbWnevDlLly61PETL39+fgIAAqlSpwtNPP02tWrVuOsfQoUNZtmwZPj4+zJs3jxIlSuDq6prjOYGBgXTo0AF/f3+eeOIJQkJCLPt27tyJp6dnHq726vIGLVq0IDg4GJPJZFl3dtKkSUyaNClPY8rDy7ibLdTBwcHm+Pj4uzaf3NvOLlvGoX798ezxLMVefdXacURERERERETuKTt27MDLy8vaMe6oS5cuYWtri52dHevWraN3794kJibmebzmzZuzYMECHBwc8i+kCFn/PhqGkWA2m4OzOl7LC4jVFGrUiPMdOnDy82k416iBSy7+C5iIiIiIiIiIPDgOHDhA+/btycjIwMHBgalTp97WeN9//30+JRO5PSq6ilUVHzyICwnxHB48mPKLF2OntVJEREREREREHhoVK1bkjz/+sHYMkXynNV3FqmycnCj14YdknDnL4SFD9MRAERERERERERG576noKlZXoHJlir32Gud/Xs2pL76wdhwREREREREREZHboqKr3BPcOz+NS716/DMmmtQdO6wdR0REREREREREJM9yVXQ1DONlwzC2GYax1TCMGMMwChiGUc4wjN8Nw/jLMIxYwzD0WDjJM8MweOTdUdi6u3PolQFkXLhg7UgiIiIiIiIiIiJ5ctOiq2EYpYB+QLDZbPYBbIGOwAfAWLPZ/DhwCnj2TgaVB5+duzslR3/A5aQkjr33nrXjiIiIiIiIiDz0bG1tMZlM+Pv7ExgYyK+//pqncXr06MH27dtzffzMmTMpWrQoJpPJ8rN9+3aSkpLw8fHJU4aZM2dy+PDhbPe//fbbxMXF5WqspKQknJycMJlMVK1alV69epGRkZGnXLfj6NGjdOzYkQoVKhAUFETTpk3ZtWvXXc8hN8rt8gJ2gJNhGHaAM3AEiADm/7t/FtAy39PJQ6dg9ep4Pvccp+fN5+yPP1o7joiIiIiIiMhDzcnJicTERDZt2sR7773HkCFD8jTO559/TtWqVW/pnA4dOpCYmGj5udXz/yunomt6ejojRoygQYMGuR6v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yckJJycnihQpwokTJ1i9enWOcwOYzWbat28PwMaNG6lfvz4FCxYEoGPHjuzZsweAPn368P7779OmTRs+++wzZs6cedMa27VrB0BAQADx8fEArFq1ivDwcOzts+O6K3PJg0mhq4iIiIiI3LY8VatSetpULsTFkRg5iZPvvUfyp59SKLwfBTp2xM7R0dYliojIHdC6dWuGDh3K2rVrOXXq1HWPM5lM12wrWbIkp0+f5scff6RevXokJyfz9ddf4+LigqurK4Zh0KNHD959991rzt2yZQvLly9n2rRpfP3113z66ae3fQ1OTk7W781mM5mZmTecO0+ePJjN5puOW7duXeLj41m7di1ZWVn4+PjkupYrdcjDR6GriIiIiIj8Z87+/pT59BPObdxIYmQkJ958i1OffELh558n/5NPYrrJxyxFROTGctORejf16tWLAgUK4Ovry9q1a3M8pm7dusybN49nnnnG+hH9K2rVqsWECRP46aefOHXqFB06dLB2ozZq1Ignn3ySIUOGUKRIEZKTk0lNTSVfvnw4OjrSvn17vLy8eOaZZ4Dsj/Sn3qH1xK83d9myZa86rkaNGgwePJiUlBRcXV1ZuHAhvr6+1v3du3fn6aefZtSoUbddS2hoKNOnT6dBgwbY29uTnJysbtcHmNZ0FRERERGROyZfUBBl58yh9CcfY+9RmITXRrG/ZSvOfPsthp78LCLywCpVqhSDBg264TETJ05kypQp+Pr6cvTo0av2BQcHk5mZScWKFalevTrJyckEBwcDULVqVd566y2aNGmCxWIhNDSUhIQEjh49SkhICP7+/jzzzDPWbtSwsDDCw8Ov+yCtf67p6u/vz6VLl65b8/Xm/reSJUvyyiuvEBQURN26dSlXrhz58+e37u/atSspKSlXPWTsVvXp04cyZcpgsVjw8/Pjyy+/BOD111+3PohMHhwmwzDu2WSBgYFGTEzMPZtPRERERERsxzAM0tasJTEykou7duFYoQKFBw7EtUkoJjv1f4iI3MzOnTupUqWKrcuQv6WlpeHi4kJmZiZt27alV69etG3bFoCoqCiWLFnCnDlzbFyl3C05/T6aTKZYwzACczpeywuIiIiIiMhdYTKZcG3YAJeQ+qSuWEnipEkcHTwYp8qVKTxoEC4NQnJc+09EROR+FBERwapVq0hPT6dJkya0adMGgIEDB7Js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TJnC4MGDcz3GnabQVURERERE5Cbs3d0p8tJLFOzRg1MzZ5Ly1TzOfPsd7h07UKhfPxyKFrV1iSIid9XgwYOpXr06PXv2zNXx+fLlu+F+Jycn6/dX1uQsWbIkp0+f5scff6RevXokJyfz9ddf4+LigqurK4Zh0KNHD959991rxtuyZQvLly9n2rRpfP3113z66adX7TcMA29v76vWXb1RvVfqM5vN113ntW7duqxbt47U1FTc3d2pVasWkydP5o8//qBfv37XHP/999+zbt06vvvuO95++222bdt2gzuUMwcHB0wm0zW1TZs2jd9//53vv/+egIAAYmNjrzn3n/f8Rtd1I9e7j6mpqbke42Y/G9fj5uaGi4sLBw4cyLHb9X6j0FVERERERCSX7D08KDpyJAV79iRp+nRSvl7A6aiFuHfpQqFn+2JfqJCtSxSRh1RuOlLvpoIFC/LUU0/xySefWNdarVOnDvPmzaNbt27MnTvXunTAv7m6unL27NlczVOrVi0mTJjATz/9xKlTp+jQoYP16faNGjXiySefZMiQIRQpUoTk5GRSU1PJly8fjo6OtG/fHi8vL5555hnrvFfCQC8vLxITE9mwYQO1a9cmIyODPXv24O3tfdv3pE6dOrz00kuEhIQA2Z2sv/32GydOnLCuU3rF5cuXOXz4MA0aNODxxx9n3rx5pKWlERoaypQpU5gwYQIAKSkpBAUFMWjQIJKSknB3d+err75i4MCBN6xl//791KxZk5o1a7Js2TIOHz5829d1Ize6j6VKlWLx4sW0adOGixcvkpWVddV7cDOhoaFMnz6dBg0aYG9vT3Jy8jXdriNHjqR///7Mnz8fNzc30tLSWLRoEU899RTx8fHs27ePihUrMmfOHOrXr383bkGuaU1XERERERGRW+RQrBjFR4+mwo/LcGvViuQ5c9jXOJST//chWadP27o8EZG74qWXXiIpKcn6etKkSXz22WdYLBbmzJnDxIkTczzviSee4JtvvrnqQVrXExwcTGZmJhUrVqR69eokJydbw9yqVavy1ltv0aRJEywWC6GhoSQkJHD06FFCQkLw9/fnmWeesXbCXnmgl7+/P1lZWURFRTF8+HD8/Pzw9/e3PgjrdtWpU4cDBw5Qu3ZtIPuhY0WKFCEwMBA7u6sjt6ysLJ555hl8fX2pVq0agwYNokCBArz22muk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J21dnoiIPGIUuoqIiIiIiMhDw6FIEYq99ioVlv9I/rZtSfn6a/Y3acKJ994nMznZ1uWJPHDMZjP+/v74+PjQsWNHzp8/n+tz4+Li+OGHH6yvZ82axYABA+5IXREREYwbNy7HfV988QUWiwVvb2/8/Pzo06cPp0+fviPz3o5y5cqRlJSU43ZfX1/8/f3x9/dn0KBBAISFhREVFXXL88THx/Pll19ed/+xY8fo0KHDLY05btw4KleujL+/PzVq1ODzzz+/5boeVQpdRURERERE5KHjUKIExd8YQ4UfvsetWTOSZ89mX+NQTo6fQNaZM7YuT+SB4ezsTFxcHNu3b8fR0ZFp06bl6rzMzMxrQtd74ccff2T8+PEsW7aMP//8k82bN1OnTh1OnDhx1+bMzMy87XPXrFlDXFwccXFxREZG/qc6bhS6ZmZmUqJEiVsKc6dNm8bKlSvZuHEjcXFxrF69GsMw/lONjxKFriIiIiIiIvLQcixThhLvjcVz6Xe4htTn1PTp7GscSuKUKWSlpdm6PJEHSnBwMPv27SM5OZk2bdpgsVioVasWW7duBbK7T7t160bdunXp1q0br7/+OvPnz8ff35/58+dfNdZ3331HzZo1qVatGo0bN7aGohEREfTq1YuQkBA8PT2vCiLffvttKlWqxOOPP87u3btzrPHtt99m3LhxlCxZEsju1O3VqxdeXl4AxMbGUr9+fQICAmjatCkJCQkAhISEMHz4cIKCgqhUqRLR0dEAZGVlMWzYMGrUqIHFYmH69OkArF27luDgYFq3bk3VqlUBaNOmDQEBAXh7ezNjxow7cs+vV+++ffto3Lgxfn5+VK9enf379zNixAiio6Px9/dn/PjxzJo1i9atW9OwYUMaNWpEfHw8Pj4+1usaOnQoPj4+WCwWJk2adM3c77zzDlOnTsXNzQ0ANzc3evToAcDq1aupVq0avr6+9OrVi4sXL96R632YKHQVERERERGRh56TpyclP/yQ8ksWk7dmEEmTJrO/UWNOffwxl2/h49Iij6rMzEyWLVuGr68vo0ePplq1amzdupV33nmH7t27W4/bsWMHq1at4quvvuKNN96gU6dOxMXF0alTp6vGe/zxx/ntt9/4448/6Ny5M++//751365du1i+fDkbN25kzJgxZGRkEBsby7x586zds5s2bcqxzj///JPq1avnuC8j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jUaj0Wg0Go1mW4hPnszYH/+I7Kuv0n7Djaz77nfZcPvtDPvsZ2n82EeRtj3Uj7hDmT17NnfffXeFdL377rv57ne/u1XXeeWVV5g3b15N6eq6Lqa5fXrq05/+NOPHj+ftt99GSsnSpUuZP3/+gM5VSqGUQkpdvKQZXHSl6w7CcRyeeuopnnnmGVKpFGeccQYHHrh35ZNuL0opLvzZ33l9VSePfWkmbfW6mdTmyPU4rFoUNOV6d+EGOtdlAUjUWSUBO+bAJupb9B8ANBqNRqPRaDQajWZb6H3hBdbdcAPZeS9ijhxJyxWX03jOOQhrx/TdGOpK1w0bNnDggQeycuVKbNtm2bJlnHjiiSxfvpxHH32Ua6+9lnw+z8SJE7n99ttJp9O88MILfOELXyCTyRCLxXj00Uc55JBDyGazjB49mq9+9assWLCAd955hyVLlrDPPvtw4403ctlll7FixQogqKadMWMG1113HStWrGDJkiWsWLGCq6++mquuuqriGd955x3e//73s3jxYgyjb/Te97//fX7xi18AgZy9+uqrWbZsGaeeeipHH300L774Ig8//DAHH3wwl156KY888ggjRozg7rvvprW1dce/yJrdBh0vsIvx3nvvcd9997F27VqmTJnC6aefTmonZ8Dszixp7+G0G57mA5OHc/PHDx/qx9mt6N6QC/Jg3wriCHo7CwDUt8RLAnbMAU0k6vbsv8xqNBqNRqPRaDQazWCilCLz7LO033gjuVdfw9pnH1qvvIL6M85A1JB+28NQS1eAM844g0svvZSzzz6bb3/723R0dPCVr3yF8847jz/96U+kUim+853vkM/n+cpXvsKBBx7InDlzOPLII+nq6iKZTPLrX/+aefPmcfPNNwNw3XXX8cADD/DMM8+QSCT4+Mc/zhVXXMHxxx/PihUrOPXUU1mwYAHXXXcdjzzyCE888QTd3d0ccMABrFmzBisiue+//35uv/12/vjHP/Z59hdffJFLLrmE559/HqUURx99NL/+9a9pampiwoQJPPvssxxzzDEACCH49a9/zYUXXsg3v/lN1q1bV3pejQZ0vMAux6hRo7j00kv529/+xl//+leWLFnCBz/4QQ4++GD9lu8BMKE1zedmTeL7jy7iw0esY9YBbUP9SLsNdc1xDjpuJAcdNxKlFBtX95YE7OIX1zH/mfcAkKb+OtRo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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "plottable_df = df[~df.company_lei.isin(['SJ7XXD41SQU3ZNWUJ746','5493008F4ZOQFNG3WN54','XRZQ5S7HYJFPHJ78L959', '549300K5VIUTJXQL7X75', 'OZ8GM8L4AHPKSWZMW205',\n", + " '1B4S6S7G0TW5EE83BO58', '5493002H80P81B3HXL31', '549300K5VIUTJXQL7X75'])].pivot(index='year', columns='company_name', values='co2_target_by_year').reset_index()\n", + "\n", + "# Must plot the first few columns, but then plot 1/3rd of the companies so as not to over-clutter the graph\n", + "plottable_df.iloc[:, [x for x in list(range(0,3)) + list(range(3,87,3))]].plot(x='year', kind='line', figsize=(24,10))" + ] + }, + { + "cell_type": "markdown", + "id": "1848722a-342e-46bd-b8fe-aa0001d4d28c", + "metadata": {}, + "source": [ + "### Step 4: Use Quant engine to access and visualize temperature scores" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "id": "8c0af1f8-12c1-4f56-89dd-340cfdef27ea", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "connecting with engine Engine(trino://os-climate-user2@trino-secure-odh-trino.apps.odh-cl1.apps.os-climate.org:443/)\n" + ] + } + ], + "source": [ + "sqlstring = 'trino://{user}@{host}:{port}/'.format(\n", + " user = os.environ['TRINO_USER_USER2'],\n", + " host = os.environ['TRINO_HOST'],\n", + " port = os.environ['TRINO_PORT']\n", + ")\n", + "sqlargs = {\n", + " 'auth': trino.auth.JWTAuthentication(os.environ['TRINO_PASSWD_USER2']),\n", + " 'http_scheme': 'https',\n", + " 'catalog': 'osc_datacommons_dev',\n", + " 'schema': 'demo',\n", + "}\n", + "\n", + "ingest_catalog = 'osc_datacommons_dev'\n", + "ingest_schema = 'demo'\n", + "\n", + "engine_quant = create_engine(sqlstring, connect_args = sqlargs)\n", + "print(\"connecting with engine \" + str(engine_quant))\n", + "connection_quant = engine_quant.connect()" + ] + }, + { + "cell_type": "markdown", + "id": "12482310-25de-42eb-8d0c-52f56d07f627", + "metadata": {}, + "source": [ + "Show that we *cannot* access fundamental company data (cannot show until op1st team changes permissions)" + ] + }, + { + "cell_type": "markdown", + "id": "236c94f8-1709-4d7a-9beb-85419e65be5c", + "metadata": {}, + "source": [ + "Show that we *can* access both cumulative emissions (input) and temperature scores (output)" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "id": "2483f3de-ca17-4dcd-b140-deebcdb5639b", "metadata": {}, "outputs": [], "source": [ - "df" + "temp_score_df = pd.read_sql_table(f\"temperature_scores\", engine_quant)" ] }, { "cell_type": "code", - "execution_count": null, - "id": "d62463da-d900-4bff-8cd0-99748150a7a8", + "execution_count": 10, + "id": "1ae21697-98f1-4901-bd32-b4856555b809", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
company_namecompany_idsourcescopebenchmarktrajectory_temperature_scoretarget_temperature_score
0Otter Tail Corp.US6896481032demoS1+S2benchmark_12.7264922.924121
1Eversource EnergyUS30040W1080demoS1+S2benchmark_11.8342501.820618
2MDU Resources GroupUS5526901096demoS1+S2benchmark_12.6236652.996850
3FirstEnergy Corp.US3379321074demoS1+S2benchmark_12.7674172.144022
4Avista Corp.US05379B1070demoS1+S2benchmark_11.8933832.069748
\n", + "
" + ], + "text/plain": [ + " company_name company_id source scope benchmark \\\n", + "0 Otter Tail Corp. US6896481032 demo S1+S2 benchmark_1 \n", + "1 Eversource Energy US30040W1080 demo S1+S2 benchmark_1 \n", + "2 MDU Resources Group US5526901096 demo S1+S2 benchmark_1 \n", + "3 FirstEnergy Corp. US3379321074 demo S1+S2 benchmark_1 \n", + "4 Avista Corp. US05379B1070 demo S1+S2 benchmark_1 \n", + "\n", + " trajectory_temperature_score target_temperature_score \n", + "0 2.726492 2.924121 \n", + "1 1.834250 1.820618 \n", + "2 2.623665 2.996850 \n", + "3 2.767417 2.144022 \n", + "4 1.893383 2.069748 " + ] + }, + "execution_count": 10, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "temp_score_df.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "id": "c1270d41-5a03-43dd-b90b-f305299dbe99", "metadata": {}, "outputs": [], "source": [ - "df.pivot(index='year', columns='company_name', values='co2_target_by_year').reset_index().iloc[:, [x for x in list(range(0,3)) + list(range(3,90,3))]].plot(x='year', kind='line', figsize=(24,10))" + "plottable_df = temp_score_df[['company_name', 'trajectory_temperature_score', 'target_temperature_score']].sort_values('company_name').set_index('company_name').T" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 12, + "id": "01fa19a8-4705-46aa-8a39-49e4a0cd0a33", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
company_nameAES Corp.ALLETE, Inc.Algonquin Power & Utilities Corp.Alliant EnergyAmeren Corp.American Electric Power Co., Inc.Avangrid, Inc.Avista Corp.CMS EnergyCleco Partners LP...Otter Tail Corp.PNM Resources, Inc.PPLPinnacle West Capital Corp.Portland General Electric Co.Public Service Enterprise GroupSempra EnergySouthern Co.WEC Energy GroupXcel Energy, Inc.
trajectory_temperature_score2.8774332.5564742.4545662.2305542.1118842.5743311.3140701.8933832.5379652.673915...2.7264922.2840983.1790452.1480372.2968511.7158311.4242432.2796732.5495012.292168
target_temperature_score2.4334962.1942972.7628421.9031951.9574902.3529811.2781982.0697481.9631723.013256...2.9241211.7954212.9018401.7137741.6769901.8694441.3670422.1860232.5237811.767726
\n", + "

2 rows × 35 columns

\n", + "
" + ], + "text/plain": [ + "company_name AES Corp. ALLETE, Inc. \\\n", + "trajectory_temperature_score 2.877433 2.556474 \n", + "target_temperature_score 2.433496 2.194297 \n", + "\n", + "company_name Algonquin Power & Utilities Corp. \\\n", + "trajectory_temperature_score 2.454566 \n", + "target_temperature_score 2.762842 \n", + "\n", + "company_name Alliant Energy Ameren Corp. \\\n", + "trajectory_temperature_score 2.230554 2.111884 \n", + "target_temperature_score 1.903195 1.957490 \n", + "\n", + "company_name American Electric Power Co., Inc. \\\n", + "trajectory_temperature_score 2.574331 \n", + "target_temperature_score 2.352981 \n", + "\n", + "company_name Avangrid, Inc. Avista Corp. CMS Energy \\\n", + "trajectory_temperature_score 1.314070 1.893383 2.537965 \n", + "target_temperature_score 1.278198 2.069748 1.963172 \n", + "\n", + "company_name Cleco Partners LP ... Otter Tail Corp. \\\n", + "trajectory_temperature_score 2.673915 ... 2.726492 \n", + "target_temperature_score 3.013256 ... 2.924121 \n", + "\n", + "company_name PNM Resources, Inc. PPL \\\n", + "trajectory_temperature_score 2.284098 3.179045 \n", + "target_temperature_score 1.795421 2.901840 \n", + "\n", + "company_name Pinnacle West Capital Corp. \\\n", + "trajectory_temperature_score 2.148037 \n", + "target_temperature_score 1.713774 \n", + "\n", + "company_name Portland General Electric Co. \\\n", + "trajectory_temperature_score 2.296851 \n", + "target_temperature_score 1.676990 \n", + "\n", + "company_name Public Service Enterprise Group Sempra Energy \\\n", + "trajectory_temperature_score 1.715831 1.424243 \n", + "target_temperature_score 1.869444 1.367042 \n", + "\n", + "company_name Southern Co. WEC Energy Group \\\n", + "trajectory_temperature_score 2.279673 2.549501 \n", + "target_temperature_score 2.186023 2.523781 \n", + "\n", + "company_name Xcel Energy, Inc. \n", + "trajectory_temperature_score 2.292168 \n", + "target_temperature_score 1.767726 \n", + "\n", + "[2 rows x 35 columns]" + ] + }, + "execution_count": 12, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "plottable_df" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "id": "9ee65e40-cda2-4a9b-ac80-b0e96c8c152e", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 13, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "# Must plot the first few columns, but then plot 1/3rd of the companies so as not to over-clutter the graph\n", + "plottable_df.iloc[:, [x for x in list(range(0,2)) + list(range(4,35,3))]].boxplot(figsize=(24,10))" + ] + }, + { + "cell_type": "markdown", + "id": "65795474-1de6-4f40-9086-f7d948ae6c66", + "metadata": {}, + "source": [ + "### Step 5: Show per-company temperature score and weighted portfolio alignment score\n", + "\n", + "Portfolio weighting scores (which ultimately influence portfolio alignment score) include:\n", + "* WATS (size of portfolio company positions used as weights)\n", + "* TETS (size of total emissions of portfolio companies used as weights)\n", + "* Financial fundamental weights:\n", + " * Market Cap\n", + " * Enterprise Value\n", + " * Assets\n", + " * Revenues\n", + "\n", + "We can pass a list of company IDs to the Data Vault to get back a sum without exposing granular data" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "id": "3e9113eb-d3ef-409c-aa56-3a0c28662ba2", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "connecting with engine Engine(trino://os-climate-user3@trino-secure-odh-trino.apps.odh-cl1.apps.os-climate.org:443/)\n" + ] + } + ], + "source": [ + "sqlstring = 'trino://{user}@{host}:{port}/'.format(\n", + " user = os.environ['TRINO_USER_USER3'],\n", + " host = os.environ['TRINO_HOST'],\n", + " port = os.environ['TRINO_PORT']\n", + ")\n", + "sqlargs = {\n", + " 'auth': trino.auth.JWTAuthentication(os.environ['TRINO_PASSWD_USER3']),\n", + " 'http_scheme': 'https',\n", + " 'catalog': 'osc_datacommons_dev',\n", + " 'schema': 'demo',\n", + "}\n", + "\n", + "ingest_catalog = 'osc_datacommons_dev'\n", + "ingest_schema = 'demo'\n", + "\n", + "engine_user = create_engine(sqlstring, connect_args = sqlargs)\n", + "print(\"connecting with engine \" + str(engine_user))\n", + "connection_user = engine_user.connect()" + ] + }, + { + "cell_type": "markdown", + "id": "07154a44-d648-40e3-a5cf-8364468356de", + "metadata": {}, + "source": [ + "Show that we *cannot* access fundamental company data (cannot show until op1st team changes permissions)" + ] + }, + { + "cell_type": "markdown", + "id": "df114d27-a6ab-46d9-a942-0e8200c4fcd7", + "metadata": {}, + "source": [ + "Show that we *can* access both cumulative emissions (input) and temperature scores (output)" + ] + }, + { + "cell_type": "code", + "execution_count": 15, "id": "76d2ad90-ce27-484f-8de9-359153d32979", "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
company_namecompany_leiinvestment_value
company_id
US00130H1059AES Corp.2NUNNB7D43COUIRE52954351252
US0158577090Algonquin Power & Utilities Corp.549300K5VIUTJXQL7X752228185
US0185223007ALLETE, Inc.549300NNLSIMY6Z8OT863829481
US0188021085Alliant Energy5493009ML300G373MZ123829481
US0236081024Ameren Corp.XRZQ5S7HYJFPHJ78L95915917812
\n", + "
" + ], + "text/plain": [ + " company_name company_lei \\\n", + "company_id \n", + "US00130H1059 AES Corp. 2NUNNB7D43COUIRE5295 \n", + "US0158577090 Algonquin Power & Utilities Corp. 549300K5VIUTJXQL7X75 \n", + "US0185223007 ALLETE, Inc. 549300NNLSIMY6Z8OT86 \n", + "US0188021085 Alliant Energy 5493009ML300G373MZ12 \n", + "US0236081024 Ameren Corp. XRZQ5S7HYJFPHJ78L959 \n", + "\n", + " investment_value \n", + "company_id \n", + "US00130H1059 4351252 \n", + "US0158577090 2228185 \n", + "US0185223007 3829481 \n", + "US0188021085 3829481 \n", + "US0236081024 15917812 " + ] + }, + "execution_count": 15, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "portfolio_df = pd.read_csv(\"data/rmi-20211120-portfolio.csv\", encoding=\"iso-8859-1\", sep=';', index_col='company_id')\n", + "portfolio_df.head()" + ] + }, + { + "cell_type": "markdown", + "id": "e2d9942b-ec81-4eab-9cca-99e92905e24f", + "metadata": {}, + "source": [ + "### Calculate portfolio alignment temperature score based on WATS\n", + "\n", + "We can do this with information exclusive to the user space (and the probability-adjusted temperature scores)" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "id": "3840f2c6-a938-43b0-b24e-37f0b284d2c6", + "metadata": {}, + "outputs": [], + "source": [ + "# PA_SCORE means \"Probability-Adjusted\" Temperature Score\n", + "portfolio_df['pa_score'] = vault_warehouse.get_pa_temp_scores(probability=0.5, company_ids=portfolio_df.index.values)" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "id": "66c1ac02-f680-46ff-968b-130a38bc6538", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
company_namecompany_leiinvestment_valuepa_score
company_id
US00130H1059AES Corp.2NUNNB7D43COUIRE529543512522.655464
US0158577090Algonquin Power & Utilities Corp.549300K5VIUTJXQL7X7522281852.608704
US0185223007ALLETE, Inc.549300NNLSIMY6Z8OT8638294812.375385
US0188021085Alliant Energy5493009ML300G373MZ1238294812.066875
US0236081024Ameren Corp.XRZQ5S7HYJFPHJ78L959159178122.034687
\n", + "
" + ], + "text/plain": [ + " company_name company_lei \\\n", + "company_id \n", + "US00130H1059 AES Corp. 2NUNNB7D43COUIRE5295 \n", + "US0158577090 Algonquin Power & Utilities Corp. 549300K5VIUTJXQL7X75 \n", + "US0185223007 ALLETE, Inc. 549300NNLSIMY6Z8OT86 \n", + "US0188021085 Alliant Energy 5493009ML300G373MZ12 \n", + "US0236081024 Ameren Corp. XRZQ5S7HYJFPHJ78L959 \n", + "\n", + " investment_value pa_score \n", + "company_id \n", + "US00130H1059 4351252 2.655464 \n", + "US0158577090 2228185 2.608704 \n", + "US0185223007 3829481 2.375385 \n", + "US0188021085 3829481 2.066875 \n", + "US0236081024 15917812 2.034687 " + ] + }, + "execution_count": 17, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "portfolio_df.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "id": "0e9f1e29-ccb8-4b59-a1ba-95fdf792bf76", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "707454890" + ] + }, + "execution_count": 18, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "weight_for_WATS = portfolio_df['investment_value'].sum()\n", + "weight_for_WATS" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "id": "f3193208-3029-40d4-a7a2-e820a32eea56", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
company_namecompany_leiinvestment_valuepa_scoreWATS_weight
company_id
US00130H1059AES Corp.2NUNNB7D43COUIRE529543512522.6554640.016333
US0158577090Algonquin Power & Utilities Corp.549300K5VIUTJXQL7X7522281852.6087040.008216
US0185223007ALLETE, Inc.549300NNLSIMY6Z8OT8638294812.3753850.012858
US0188021085Alliant Energy5493009ML300G373MZ1238294812.0668750.011188
US0236081024Ameren Corp.XRZQ5S7HYJFPHJ78L959159178122.0346870.045781
\n", + "
" + ], + "text/plain": [ + " company_name company_lei \\\n", + "company_id \n", + "US00130H1059 AES Corp. 2NUNNB7D43COUIRE5295 \n", + "US0158577090 Algonquin Power & Utilities Corp. 549300K5VIUTJXQL7X75 \n", + "US0185223007 ALLETE, Inc. 549300NNLSIMY6Z8OT86 \n", + "US0188021085 Alliant Energy 5493009ML300G373MZ12 \n", + "US0236081024 Ameren Corp. XRZQ5S7HYJFPHJ78L959 \n", + "\n", + " investment_value pa_score WATS_weight \n", + "company_id \n", + "US00130H1059 4351252 2.655464 0.016333 \n", + "US0158577090 2228185 2.608704 0.008216 \n", + "US0185223007 3829481 2.375385 0.012858 \n", + "US0188021085 3829481 2.066875 0.011188 \n", + "US0236081024 15917812 2.034687 0.045781 " + ] + }, + "execution_count": 19, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "portfolio_df['WATS_weight'] = portfolio_df['pa_score'] * (portfolio_df['investment_value'] / weight_for_WATS)\n", + "portfolio_df.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "id": "24fdeb51-94f1-40a4-ace9-5fdce4f5de8f", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Portfolio temperature score based on WATS = 1.6955157492425892\n" + ] + } + ], + "source": [ + "print(f\"Portfolio temperature score based on WATS = {portfolio_df['WATS_weight'].sum()}\")" + ] + }, + { + "cell_type": "markdown", + "id": "95036586-82cc-4230-8946-eb3f7a07d283", + "metadata": {}, + "source": [ + "### Calculate portfolio alignment temperature score based on TETS\n", + "\n", + "We need to carefully meld portfolio data with corp fundamental data (in this case, emissions)" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "id": "fddd23f0-7ca4-4ea8-8a54-ea71fee0f40b", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
company_namecompany_leiinvestment_valuepa_scoreWATS_weightTETS_weight
company_id
US00130H1059AES Corp.2NUNNB7D43COUIRE529543512522.6554640.0163330.041256
US0158577090Algonquin Power & Utilities Corp.549300K5VIUTJXQL7X7522281852.6087040.0082160.124227
US0185223007ALLETE, Inc.549300NNLSIMY6Z8OT8638294812.3753850.0128580.013485
US0188021085Alliant Energy5493009ML300G373MZ1238294812.0668750.0111880.029667
US0236081024Ameren Corp.XRZQ5S7HYJFPHJ78L959159178122.0346870.0457810.077149
\n", + "
" + ], + "text/plain": [ + " company_name company_lei \\\n", + "company_id \n", + "US00130H1059 AES Corp. 2NUNNB7D43COUIRE5295 \n", + "US0158577090 Algonquin Power & Utilities Corp. 549300K5VIUTJXQL7X75 \n", + "US0185223007 ALLETE, Inc. 549300NNLSIMY6Z8OT86 \n", + "US0188021085 Alliant Energy 5493009ML300G373MZ12 \n", + "US0236081024 Ameren Corp. XRZQ5S7HYJFPHJ78L959 \n", + "\n", + " investment_value pa_score WATS_weight TETS_weight \n", + "company_id \n", + "US00130H1059 4351252 2.655464 0.016333 0.041256 \n", + "US0158577090 2228185 2.608704 0.008216 0.124227 \n", + "US0185223007 3829481 2.375385 0.012858 0.013485 \n", + "US0188021085 3829481 2.066875 0.011188 0.029667 \n", + "US0236081024 15917812 2.034687 0.045781 0.077149 " + ] + }, + "execution_count": 21, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "portfolio_df['TETS_weight'] = vault_company_data.compute_portfolio_weights(portfolio_df['pa_score'], 2019, 'emissions', EScope.S1S2)\n", + "portfolio_df.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "id": "68f22808-4ec2-4167-95ee-5b50f550dc59", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Portfolio temperature score based on TETS = 2.29776054319312\n" + ] + } + ], + "source": [ + "print(f\"Portfolio temperature score based on TETS = {portfolio_df['TETS_weight'].sum()}\")" + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "id": "86ef9e48-1845-4841-bf18-8622afb44e59", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
company_namecompany_leiinvestment_valuepa_scoreWATS_weightTETS_weightMOTS_weight
company_id
US00130H1059AES Corp.2NUNNB7D43COUIRE529543512522.6554640.0163330.0412560.043898
US0158577090Algonquin Power & Utilities Corp.549300K5VIUTJXQL7X7522281852.6087040.0082160.124227NaN
US0185223007ALLETE, Inc.549300NNLSIMY6Z8OT8638294812.3753850.0128580.0134850.015481
US0188021085Alliant Energy5493009ML300G373MZ1238294812.0668750.0111880.0296670.036463
US0236081024Ameren Corp.XRZQ5S7HYJFPHJ78L959159178122.0346870.0457810.0771490.056871
\n", + "
" + ], + "text/plain": [ + " company_name company_lei \\\n", + "company_id \n", + "US00130H1059 AES Corp. 2NUNNB7D43COUIRE5295 \n", + "US0158577090 Algonquin Power & Utilities Corp. 549300K5VIUTJXQL7X75 \n", + "US0185223007 ALLETE, Inc. 549300NNLSIMY6Z8OT86 \n", + "US0188021085 Alliant Energy 5493009ML300G373MZ12 \n", + "US0236081024 Ameren Corp. XRZQ5S7HYJFPHJ78L959 \n", + "\n", + " investment_value pa_score WATS_weight TETS_weight \\\n", + "company_id \n", + "US00130H1059 4351252 2.655464 0.016333 0.041256 \n", + "US0158577090 2228185 2.608704 0.008216 0.124227 \n", + "US0185223007 3829481 2.375385 0.012858 0.013485 \n", + "US0188021085 3829481 2.066875 0.011188 0.029667 \n", + "US0236081024 15917812 2.034687 0.045781 0.077149 \n", + "\n", + " MOTS_weight \n", + "company_id \n", + "US00130H1059 0.043898 \n", + "US0158577090 NaN \n", + "US0185223007 0.015481 \n", + "US0188021085 0.036463 \n", + "US0236081024 0.056871 " + ] + }, + "execution_count": 23, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "portfolio_df['MOTS_weight'] = vault_company_data.compute_portfolio_weights(portfolio_df['pa_score'], 2019, 'company_market_cap', EScope.S1S2)\n", + "portfolio_df.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "id": "e3da2890-ef72-49ef-b9f7-84236d793e76", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Portfolio temperature score based on MOTS = 2.1449874683191408\n" + ] + } + ], + "source": [ + "print(f\"Portfolio temperature score based on MOTS = {portfolio_df['MOTS_weight'].sum()}\")" + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "id": "cdb49e6e-c290-41b3-840f-4a8773f5ddbe", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
company_namecompany_leiinvestment_valuepa_scoreWATS_weightTETS_weightMOTS_weightEOTS_weight
company_id
US00130H1059AES Corp.2NUNNB7D43COUIRE529543512522.6554640.0163330.0412560.0438980.026521
US0158577090Algonquin Power & Utilities Corp.549300K5VIUTJXQL7X7522281852.6087040.0082160.124227NaNNaN
US0185223007ALLETE, Inc.549300NNLSIMY6Z8OT8638294812.3753850.0128580.0134850.0154810.013691
US0188021085Alliant Energy5493009ML300G373MZ1238294812.0668750.0111880.0296670.0364630.037812
US0236081024Ameren Corp.XRZQ5S7HYJFPHJ78L959159178122.0346870.0457810.0771490.0568710.054872
\n", + "
" + ], + "text/plain": [ + " company_name company_lei \\\n", + "company_id \n", + "US00130H1059 AES Corp. 2NUNNB7D43COUIRE5295 \n", + "US0158577090 Algonquin Power & Utilities Corp. 549300K5VIUTJXQL7X75 \n", + "US0185223007 ALLETE, Inc. 549300NNLSIMY6Z8OT86 \n", + "US0188021085 Alliant Energy 5493009ML300G373MZ12 \n", + "US0236081024 Ameren Corp. XRZQ5S7HYJFPHJ78L959 \n", + "\n", + " investment_value pa_score WATS_weight TETS_weight \\\n", + "company_id \n", + "US00130H1059 4351252 2.655464 0.016333 0.041256 \n", + "US0158577090 2228185 2.608704 0.008216 0.124227 \n", + "US0185223007 3829481 2.375385 0.012858 0.013485 \n", + "US0188021085 3829481 2.066875 0.011188 0.029667 \n", + "US0236081024 15917812 2.034687 0.045781 0.077149 \n", + "\n", + " MOTS_weight EOTS_weight \n", + "company_id \n", + "US00130H1059 0.043898 0.026521 \n", + "US0158577090 NaN NaN \n", + "US0185223007 0.015481 0.013691 \n", + "US0188021085 0.036463 0.037812 \n", + "US0236081024 0.056871 0.054872 " + ] + }, + "execution_count": 25, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "portfolio_df['EOTS_weight'] = vault_company_data.compute_portfolio_weights(portfolio_df['pa_score'], 2019, 'company_enterprise_value', EScope.S1S2)\n", + "portfolio_df.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "id": "2943ea52-def6-400d-bf29-6a05b20a1825", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Portfolio temperature score based on EOTS = 2.126521492849047\n" + ] + } + ], + "source": [ + "print(f\"Portfolio temperature score based on EOTS = {portfolio_df['EOTS_weight'].sum()}\")" + ] + }, + { + "cell_type": "code", + "execution_count": 27, + "id": "13e2fd93-13df-43ab-ab63-8009ea794a71", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
company_namecompany_leiinvestment_valuepa_scoreWATS_weightTETS_weightMOTS_weightEOTS_weightECOTS_weight
company_id
US00130H1059AES Corp.2NUNNB7D43COUIRE529543512522.6554640.0163330.0412560.0438980.0265210.048083
US0158577090Algonquin Power & Utilities Corp.549300K5VIUTJXQL7X7522281852.6087040.0082160.124227NaNNaNNaN
US0185223007ALLETE, Inc.549300NNLSIMY6Z8OT8638294812.3753850.0128580.0134850.0154810.0136910.015741
US0188021085Alliant Energy5493009ML300G373MZ1238294812.0668750.0111880.0296670.0364630.0378120.036535
US0236081024Ameren Corp.XRZQ5S7HYJFPHJ78L959159178122.0346870.0457810.0771490.0568710.0548720.056955
\n", + "
" + ], + "text/plain": [ + " company_name company_lei \\\n", + "company_id \n", + "US00130H1059 AES Corp. 2NUNNB7D43COUIRE5295 \n", + "US0158577090 Algonquin Power & Utilities Corp. 549300K5VIUTJXQL7X75 \n", + "US0185223007 ALLETE, Inc. 549300NNLSIMY6Z8OT86 \n", + "US0188021085 Alliant Energy 5493009ML300G373MZ12 \n", + "US0236081024 Ameren Corp. XRZQ5S7HYJFPHJ78L959 \n", + "\n", + " investment_value pa_score WATS_weight TETS_weight \\\n", + "company_id \n", + "US00130H1059 4351252 2.655464 0.016333 0.041256 \n", + "US0158577090 2228185 2.608704 0.008216 0.124227 \n", + "US0185223007 3829481 2.375385 0.012858 0.013485 \n", + "US0188021085 3829481 2.066875 0.011188 0.029667 \n", + "US0236081024 15917812 2.034687 0.045781 0.077149 \n", + "\n", + " MOTS_weight EOTS_weight ECOTS_weight \n", + "company_id \n", + "US00130H1059 0.043898 0.026521 0.048083 \n", + "US0158577090 NaN NaN NaN \n", + "US0185223007 0.015481 0.013691 0.015741 \n", + "US0188021085 0.036463 0.037812 0.036535 \n", + "US0236081024 0.056871 0.054872 0.056955 " + ] + }, + "execution_count": 27, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "portfolio_df['ECOTS_weight'] = vault_company_data.compute_portfolio_weights(portfolio_df['pa_score'], 2019, 'company_evic', EScope.S1S2)\n", + "portfolio_df.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 28, + "id": "5baa153b-8c1f-4546-afd7-727c694712c1", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Portfolio temperature score based on ECOTS = 2.1381048407266925\n" + ] + } + ], + "source": [ + "print(f\"Portfolio temperature score based on ECOTS = {portfolio_df['ECOTS_weight'].sum()}\")" + ] + }, + { + "cell_type": "code", + "execution_count": 29, + "id": "f952fa2d-957e-455c-878e-8fb588631a74", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
company_namecompany_leiinvestment_valuepa_scoreWATS_weightTETS_weightMOTS_weightEOTS_weightECOTS_weightAOTS_weight
company_id
US00130H1059AES Corp.2NUNNB7D43COUIRE529543512522.6554640.0163330.0412560.0438980.0265210.0480830.066360
US0158577090Algonquin Power & Utilities Corp.549300K5VIUTJXQL7X7522281852.6087040.0082160.124227NaNNaNNaN0.021159
US0185223007ALLETE, Inc.549300NNLSIMY6Z8OT8638294812.3753850.0128580.0134850.0154810.0136910.0157410.009673
US0188021085Alliant Energy5493009ML300G373MZ1238294812.0668750.0111880.0296670.0364630.0378120.0365350.025637
US0236081024Ameren Corp.XRZQ5S7HYJFPHJ78L959159178122.0346870.0457810.0771490.0568710.0548720.0569550.043722
\n", + "
" + ], + "text/plain": [ + " company_name company_lei \\\n", + "company_id \n", + "US00130H1059 AES Corp. 2NUNNB7D43COUIRE5295 \n", + "US0158577090 Algonquin Power & Utilities Corp. 549300K5VIUTJXQL7X75 \n", + "US0185223007 ALLETE, Inc. 549300NNLSIMY6Z8OT86 \n", + "US0188021085 Alliant Energy 5493009ML300G373MZ12 \n", + "US0236081024 Ameren Corp. XRZQ5S7HYJFPHJ78L959 \n", + "\n", + " investment_value pa_score WATS_weight TETS_weight \\\n", + "company_id \n", + "US00130H1059 4351252 2.655464 0.016333 0.041256 \n", + "US0158577090 2228185 2.608704 0.008216 0.124227 \n", + "US0185223007 3829481 2.375385 0.012858 0.013485 \n", + "US0188021085 3829481 2.066875 0.011188 0.029667 \n", + "US0236081024 15917812 2.034687 0.045781 0.077149 \n", + "\n", + " MOTS_weight EOTS_weight ECOTS_weight AOTS_weight \n", + "company_id \n", + "US00130H1059 0.043898 0.026521 0.048083 0.066360 \n", + "US0158577090 NaN NaN NaN 0.021159 \n", + "US0185223007 0.015481 0.013691 0.015741 0.009673 \n", + "US0188021085 0.036463 0.037812 0.036535 0.025637 \n", + "US0236081024 0.056871 0.054872 0.056955 0.043722 " + ] + }, + "execution_count": 29, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "portfolio_df['AOTS_weight'] = vault_company_data.compute_portfolio_weights(portfolio_df['pa_score'], 2019, 'company_total_assets', EScope.S1S2)\n", + "portfolio_df.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 30, + "id": "1fb76202-a3e6-412c-b32d-42680eb0de66", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Portfolio temperature score based on AOTS = 2.150467013892828\n" + ] + } + ], + "source": [ + "print(f\"Portfolio temperature score based on AOTS = {portfolio_df['AOTS_weight'].sum()}\")" + ] + }, + { + "cell_type": "code", + "execution_count": 31, + "id": "a53ff47c-adb3-467b-9ec4-a0294fb8c970", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
company_namecompany_leiinvestment_valuepa_scoreWATS_weightTETS_weightMOTS_weightEOTS_weightECOTS_weightAOTS_weightROTS_weight
company_id
US00130H1059AES Corp.2NUNNB7D43COUIRE529543512522.6554640.0163330.0412560.0438980.0265210.0480830.0663600.098945
US0158577090Algonquin Power & Utilities Corp.549300K5VIUTJXQL7X7522281852.6087040.0082160.124227NaNNaNNaN0.0211590.015516
US0185223007ALLETE, Inc.549300NNLSIMY6Z8OT8638294812.3753850.0128580.0134850.0154810.0136910.0157410.0096730.010776
US0188021085Alliant Energy5493009ML300G373MZ1238294812.0668750.0111880.0296670.0364630.0378120.0365350.0256370.027573
US0236081024Ameren Corp.XRZQ5S7HYJFPHJ78L959159178122.0346870.0457810.0771490.0568710.0548720.0569550.0437220.043975
\n", + "
" + ], + "text/plain": [ + " company_name company_lei \\\n", + "company_id \n", + "US00130H1059 AES Corp. 2NUNNB7D43COUIRE5295 \n", + "US0158577090 Algonquin Power & Utilities Corp. 549300K5VIUTJXQL7X75 \n", + "US0185223007 ALLETE, Inc. 549300NNLSIMY6Z8OT86 \n", + "US0188021085 Alliant Energy 5493009ML300G373MZ12 \n", + "US0236081024 Ameren Corp. XRZQ5S7HYJFPHJ78L959 \n", + "\n", + " investment_value pa_score WATS_weight TETS_weight \\\n", + "company_id \n", + "US00130H1059 4351252 2.655464 0.016333 0.041256 \n", + "US0158577090 2228185 2.608704 0.008216 0.124227 \n", + "US0185223007 3829481 2.375385 0.012858 0.013485 \n", + "US0188021085 3829481 2.066875 0.011188 0.029667 \n", + "US0236081024 15917812 2.034687 0.045781 0.077149 \n", + "\n", + " MOTS_weight EOTS_weight ECOTS_weight AOTS_weight ROTS_weight \n", + "company_id \n", + "US00130H1059 0.043898 0.026521 0.048083 0.066360 0.098945 \n", + "US0158577090 NaN NaN NaN 0.021159 0.015516 \n", + "US0185223007 0.015481 0.013691 0.015741 0.009673 0.010776 \n", + "US0188021085 0.036463 0.037812 0.036535 0.025637 0.027573 \n", + "US0236081024 0.056871 0.054872 0.056955 0.043722 0.043975 " + ] + }, + "execution_count": 31, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "portfolio_df['ROTS_weight'] = vault_company_data.compute_portfolio_weights(portfolio_df['pa_score'], 2019, 'company_revenue', EScope.S1S2)\n", + "portfolio_df.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 32, + "id": "7df28b43-8711-4a75-a8d7-5b211518bb7c", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Portfolio temperature score based on ROTS = 2.185002474622946\n" + ] + } + ], + "source": [ + "print(f\"Portfolio temperature score based on ROTS = {portfolio_df['ROTS_weight'].sum()}\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "d1e39a38-9d3f-4ff7-aa46-965f6cbf4a76", + "metadata": {}, "outputs": [], "source": [] } diff --git a/test/test_vault_providers.py b/test/test_vault_providers.py index 9c72f676..6893d4e1 100644 --- a/test/test_vault_providers.py +++ b/test/test_vault_providers.py @@ -19,6 +19,7 @@ import osc_ingest_trino as osc from sqlalchemy.engine import create_engine +ingest_catalog = 'osc_datacommons_dev' ingest_schema = 'demo' dotenv_dir = os.environ.get('CREDENTIAL_DOTENV_DIR', os.environ.get('PWD', '/opt/app-root/src')) @@ -27,14 +28,14 @@ load_dotenv(dotenv_path=dotenv_path,override=True) sqlstring = 'trino://{user}@{host}:{port}/'.format( - user = os.environ['TRINO_USER'], + user = os.environ['TRINO_USER_USER1'], host = os.environ['TRINO_HOST'], port = os.environ['TRINO_PORT'] ) sqlargs = { - 'auth': trino.auth.JWTAuthentication(os.environ['TRINO_PASSWD']), + 'auth': trino.auth.JWTAuthentication(os.environ['TRINO_PASSWD_USER1']), 'http_scheme': 'https', - 'catalog': 'osc_datacommons_dev', + 'catalog': ingest_catalog, 'schema': ingest_schema, } engine_init = create_engine(sqlstring, connect_args = sqlargs) @@ -57,19 +58,19 @@ def setUp(self) -> None: with open(self.benchmark_prod_json) as json_file: parsed_json = json.load(json_file) prod_bms = IProductionBenchmarkScopes.parse_obj(parsed_json) - self.vault_production_bm = VaultProviderProductionBenchmark(engine_init, ingest_schema, benchmark_name="benchmark_prod", production_benchmarks=prod_bms) + self.vault_production_bm = VaultProviderProductionBenchmark(engine_init, benchmark_name="benchmark_prod", production_benchmarks=prod_bms) # load intensity benchmarks with open(self.benchmark_EI_json) as json_file: parsed_json = json.load(json_file) ei_bms = IEmissionIntensityBenchmarkScopes.parse_obj(parsed_json) - self.vault_EI_bm = VaultProviderIntensityBenchmark(engine_init, ingest_schema, benchmark_name="benchmark_ei", EI_benchmarks=ei_bms) + self.vault_EI_bm = VaultProviderIntensityBenchmark(engine_init, benchmark_name="benchmark_ei", EI_benchmarks=ei_bms) # load company data # TODO: ISIC code should read as int, not float - self.vault_company_data = VaultCompanyDataProvider(engine_init, ingest_schema, "rmi_company_data") + self.vault_company_data = VaultCompanyDataProvider(engine_init, "rmi_company_data") - self.vault_warehouse = DataVaultWarehouse(engine_init, ingest_schema, self.vault_company_data, self.vault_production_bm, self.vault_EI_bm) + self.vault_warehouse = DataVaultWarehouse(engine_init, self.vault_company_data, self.vault_production_bm, self.vault_EI_bm) def test_N0_projections(self): sqlstring = 'trino://{user}@{host}:{port}/'.format( From 837e3de911a1542ffb4858321e3803fc386d1098 Mon Sep 17 00:00:00 2001 From: MichaelTiemannOSC Date: Tue, 18 Jan 2022 03:25:37 +0000 Subject: [PATCH 015/345] Add reference to data lineage tracker issue Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- examples/vault_demo_n0.ipynb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/vault_demo_n0.ipynb b/examples/vault_demo_n0.ipynb index ef790cfb..eeb32114 100644 --- a/examples/vault_demo_n0.ipynb +++ b/examples/vault_demo_n0.ipynb @@ -7,7 +7,7 @@ "source": [ "# Data Vault Demo\n", "\n", - "The basic concept of the Data Vault is that when a user authenticates themself, they receive an engine that gives them access to all the data (rows, columns, tables, schema, etc.) for which they are authorized. Users who can authenticate themselves for multiple roles can use those roles simultaneously. Data accessed via such engines retains data lineage, so that users can prove they are using authorized data.\n", + "The basic concept of the Data Vault is that when a user authenticates themself, they receive an engine that gives them access to all the data (rows, columns, tables, schema, etc.) for which they are authorized. Users who can authenticate themselves for multiple roles can use those roles simultaneously. We are keeping in mind the importance of Data Lineage Management (tracked by issue https://github.com/os-climate/os_c_data_commons/issues/50) but is not treated as part of this particular prototype.\n", "\n", "The steps of this demo are:\n", "\n", From b84edb1f11a55a67a92844f7b3849f63a6b7dee7 Mon Sep 17 00:00:00 2001 From: MichaelTiemannOSC Date: Mon, 24 Jan 2022 15:50:46 +0000 Subject: [PATCH 016/345] Latest updates for Data Vault demo Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- ITR/data/vault_providers.py | 15 +- examples/data/mdt-steel-demo.xlsx | Bin 0 -> 29453 bytes examples/data/rmi-20211120-portfolio.csv | 51 ++ examples/vault_demo_n0.ipynb | 716 ++++++++++++----------- 4 files changed, 434 insertions(+), 348 deletions(-) create mode 100644 examples/data/mdt-steel-demo.xlsx create mode 100644 examples/data/rmi-20211120-portfolio.csv diff --git a/ITR/data/vault_providers.py b/ITR/data/vault_providers.py index 0b4a5ad5..efbb18be 100644 --- a/ITR/data/vault_providers.py +++ b/ITR/data/vault_providers.py @@ -77,15 +77,15 @@ def __init__(self, self.column_config = column_config self.temp_config = tempscore_config # Validate and complete the projected trajectories - self._intensity_table = company_table.replace('_company_', '_intensity_') - self._trajectory_table = company_table.replace('_company_', '_trajectory_') - self._production_table = company_table.replace('_company_', '_production_') - self._emissions_table = company_table.replace('_company_', '_emissions_') + self._intensity_table = company_table.replace('company_', 'intensity_') + self._trajectory_table = company_table.replace('company_', 'trajectory_') + self._production_table = company_table.replace('company_', 'production_') + self._emissions_table = company_table.replace('company_', 'emissions_') companies_without_projections = self._engine.execute(f""" select C.company_name, C.company_id from {self._schema}.{self._company_table} C left join {self._schema}.{self._intensity_table} EI on EI.company_name=C.company_name -where co2_intensity_target_by_year is NULL +where EI.co2_intensity_target_by_year is NULL """).fetchall() - assert len(companies_without_projections)==0, f"Provide either historic emissions data or projections for companies with IDs {companies_without_projections.company_id}" + assert len(companies_without_projections)==0, f"Provide either historic emissions data or projections for companies with IDs {companies_without_projections}" # The factors one would want to sum over companies for weighting purposes are: # * market_cap_usd @@ -436,7 +436,8 @@ def __init__(self, sum(B.intensity * P.production_by_year) as cumulative_budget from {company_data._schema}.{company_data._company_table} C join {company_data._schema}.{company_data._production_table} P on P.company_name=C.company_name - join {self._schema}.benchmark_ei B on P.year=B.year and C.region=B.region and C.sector=B.sector + join demo.isic_to_sector I2S on C.isic=I2S.isic + join {self._schema}.benchmark_ei B on P.year=B.year and C.region=B.region and I2S.sector=B.sector group by C.company_name, C.company_id, '{company_data._schema}', 'S1+S2', 'benchmark_1', B.global_budget, B.benchmark_temp """) # Need to fetch so table created above is established before using in query below diff --git a/examples/data/mdt-steel-demo.xlsx b/examples/data/mdt-steel-demo.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..6a05da137cdd400e184d8089a09604f3e4050774 GIT binary patch literal 29453 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 literal 0 HcmV?d00001 diff --git a/examples/data/rmi-20211120-portfolio.csv b/examples/data/rmi-20211120-portfolio.csv new file mode 100644 index 00000000..2434a8ba --- /dev/null +++ b/examples/data/rmi-20211120-portfolio.csv @@ -0,0 +1,51 @@ +company_name;company_lei;company_id;investment_value +AES Corp.;2NUNNB7D43COUIRE5295;US00130H1059;4351252 +Algonquin Power & Utilities Corp.;549300K5VIUTJXQL7X75;US0158577090;2228185 +"ALLETE, Inc.";549300NNLSIMY6Z8OT86;US0185223007;3829481 +Alliant Energy;5493009ML300G373MZ12;US0188021085;3829481 +Ameren Corp.;XRZQ5S7HYJFPHJ78L959;US0236081024;15917812 +"American Electric Power Co., Inc.";1B4S6S7G0TW5EE83BO58;US0255371017;45520637 +"Avangrid, Inc.";549300OX0Q38NLSKPB49;US05351W1036;10049068 +Avista Corp.;Q0IK63NITJD6RJ47SW96;US05379B1070;2804211 +Cleco Partners LP;5493002H80P81B3HXL31;US18551QAA58;3086052 +CMS Energy;549300IA9XFBAGNIBW29;US1258961002;9153135 +"Consolidated Edison, Inc.";54930033SBW53OO8T749;US2091151041;20394113 +Dominion Energy;ILUL7B6Z54MRYCF6H308;US25746U1097;33528082 +DTE Energy;549300IX8SD6XXD71I78;US2333311072;14329945 +Duke Energy Corp.;I1BZKREC126H0VB1BL91;US26441C2044;73069652 +El Paso Electric Co;OZ8GM8L4AHPKSWZMW205;US283677AZ52;2646941 +Emera Inc.;NQZVQT2P5IUF2PGA1Q48;CA2908761018;6631113 +Entergy Corp.;4XM3TW50JULSLG8BNC79;US29364G1031;29844269 +"Evergy, Inc.";549300PGTHDQY6PSUI61;US30034W1062;18254954 +Eversource Energy;SJ7XXD41SQU3ZNWUJ746;US30040W1080;18962480 +FirstEnergy Corp.;549300SVYJS666PQJH88;US3379321074;27277340 +"Fortis, Inc";549300MQYQ9Y065XPR71;CA3495531079;12428756 +MDU Resources Group;0T6SBMK3JTBI1JR36794;US5526901096;1207049 +National Grid plc;8R95QZMKZLJX5Q2XR704;US6362744095;12281584 +NorthWestern Corp.;3BPWMBHR1R9SHUN7J795;US6680743050;2703150 +OG&E Energy;CE5OG6JPOZMDSA0LAQ19;US6708371033;7251242 +Otter Tail Corp.;549300HHVBQRQUVKKD91;US6896481032;1264277 +Pinnacle West Capital Corp.;TWSEY0NEDUDCKS27AH81;US7234841010;12058547 +"PNM Resources, Inc.";5493003JOBJGLZSDDQ28;US69349H1077;3326899 +Portland General Electric Co.;GJOUP9M7C39GLSK9R870;US7365088472;5770964 +PPL;9N3UAJSNOUXFKQLF3V18;US69351T1060;18146577 +Public Service Enterprise Group;PUSS41EMO3E6XXNV3U28;US7445731067;16912134 +Sempra Energy;PBBKGKLRK5S5C0Y4T545;US8168511090;29579515 +Southern Co.;549300FC3G3YU2FBZD92;US8425871071;50294245 +WEC Energy Group;549300IGLYTZUK3PVP70;US92939U1060;11046675 +"Xcel Energy, Inc.";LGJNMI9GH8XIDG5RCM61;US98389B1008;27475073 +Company AV;LEI01;US6293775085;10000000 +Company AW;LEI02;US7134481081;10000000 +Company A;LEI03;JP0000000001;10000000 +Company B;LEI04;NL0000000002;10000000 +Company C;LEI05;IT0000000003;10000000 +Company D;LEI06;SE0000000004;10000000 +Company E;LEI07;SE0000000005;10000000 +Company F;LEI08;NL0000000006;10000000 +Company G;LEI09;CN0000000007;10000000 +Company H;LEI10;CN0000000008;10000000 +Company I;LEI11;CN0000000009;10000000 +Company J;LEI12;BR0000000010;10000000 +Company K;LEI13;BR0000000011;10000000 +Company L;LEI14;BR0000000012;10000000 +Company M;LEI15;AR0000000013;10000000 diff --git a/examples/vault_demo_n0.ipynb b/examples/vault_demo_n0.ipynb index eeb32114..859fffca 100644 --- a/examples/vault_demo_n0.ipynb +++ b/examples/vault_demo_n0.ipynb @@ -95,6 +95,43 @@ "text": [ "connecting with engine Engine(trino://os-climate-user1@trino-secure-odh-trino.apps.odh-cl1.apps.os-climate.org:443/)\n" ] + }, + { + "data": { + "text/plain": [ + "[('benchmark_ei',),\n", + " ('benchmark_prod',),\n", + " ('cat',),\n", + " ('company_data',),\n", + " ('cumulative_emissions',),\n", + " ('data_vault',),\n", + " ('demo_metastore',),\n", + " ('emissions_data',),\n", + " ('gleif_isin_lei',),\n", + " ('gppd',),\n", + " ('intensity_data',),\n", + " ('isic_to_sector',),\n", + " ('lei_isin',),\n", + " ('my_big_tbl_1',),\n", + " ('odsc_isin_reduction',),\n", + " ('odsc_isin_reduction_notebook',),\n", + " ('odsc_isin_reduction_notebook_pipeline1',),\n", + " ('odsc_rocks',),\n", + " ('odsc_roxx',),\n", + " ('odsc_xxx',),\n", + " ('osc_mlcop',),\n", + " ('osc_rocks',),\n", + " ('parquet_partitions_tutorial',),\n", + " ('production_data',),\n", + " ('pudl_1995_al',),\n", + " ('test3',),\n", + " ('trajectory_data',),\n", + " ('zztop',)]" + ] + }, + "execution_count": 2, + "metadata": {}, + "output_type": "execute_result" } ], "source": [ @@ -115,7 +152,8 @@ "\n", "engine_dev = create_engine(sqlstring, connect_args = sqlargs)\n", "print(\"connecting with engine \" + str(engine_dev))\n", - "connection_dev = engine_dev.connect()" + "connection_dev = engine_dev.connect()\n", + "engine_dev.execute(f\"show tables in {ingest_schema}\").fetchall()" ] }, { @@ -198,7 +236,7 @@ "\n", "# load company data\n", "# TODO: Pandas reads null data mixed with integers as float64 (np.nan). This can be fixed post hoc with astype('Int16')\n", - "vault_company_data = VaultCompanyDataProvider(engine=engine_dev, company_table=\"rmi_company_data\")\n", + "vault_company_data = VaultCompanyDataProvider(engine=engine_dev, company_table=\"company_data\")\n", "\n", "vault_warehouse = DataVaultWarehouse(engine_dev, vault_company_data, vault_production_bm, vault_EI_bm)" ] @@ -228,7 +266,7 @@ "metadata": {}, "outputs": [], "source": [ - "df = pd.read_sql_table(f\"rmi_emissions_data\", engine_dev)" + "df = pd.read_sql_table(f\"emissions_data\", engine_dev)" ] }, { @@ -259,7 +297,7 @@ }, { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAABV0AAAJNCAYAAAAib9UzAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/YYfK9AAAACXBIWXMAAAsTAAALEwEAmpwYAAEAAElEQVR4nOzde3zO9f/H8cdnR5vNbHOKcsxhdrp2dBwzx5CcD2mMJMqhktDJITqwIiqnHEuzyKGSviyEUmyaswhDTmFOw7Dt+v0h18+yzcy4HJ732223rutzeL+fn89lfb9eva73xzCbzYiIiIiIiIiIiIhI/rCxdgARERERERERERGRB4mKriIiIiIiIiIiIiL5SEVXERERERERERERkXykoquIiIiIiIiIiIhIPlLRVURERERERERERCQfqegqIiIiIiIiIiIiko/s7uZkRYoUMZctW/ZuTikiIiIiIiIiIiKS7xISEk6YzeaiWe27q0XXsmXLEh8ffzenFBEREREREREREcl3hmHsz26flhcQERERERERERERyUcquoqIiIiIiIiIiIjkIxVdRURERERERERERPLRXV3TVUREREREREREcufKlSv8/fffpKamWjuKyEOtQIECPProo9jb2+f6HBVdRURERERERETuQX///Teurq6ULVsWwzCsHUfkoWQ2mzl58iR///035cqVy/V5Wl5AREREREREROQelJqaiqenpwquIlZkGAaenp633HGuoquIiIiIiIiIyD1KBVcR68vL76GKriIiIiIiIiIiIiL5SEVXERERERERERERkXykoquIiIiIiIiIiIhIPlLRVURERERERERE7nuzZ8/Gz88Pf39/IiMjSUpKIiIiAj8/P+rXr8+BAwcAiIqKonfv3lSvXp3y5cuzatUqunfvjpeXF1FRUZbxXFxcePnll/H29qZ+/focP34cgKlTpxISEoK/vz9t2rThwoULlnH79etHzZo1KV++PPPnzwegS5cuLFq0yDJu586dWbx4cZbXMHPmTFq3bk2TJk2oWLEir732mmVf7969CQ4Oxtvbm6FDh1q2ly1bliFDhmAymQgODmbjxo00btyYChUqMGnSJMtxY8aMISQkBD8/v0zny52hoquIiIiIiIiIiNzXtm3bxsiRI1mxYgWbNm3i448/pm/fvnTt2pXNmzfTuXNn+vXrZzn+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1wwaNIhly5Zx6tSpm+aqU6cOUVFRDBkyhLS0NL777juef/55AD755BMA+vTpc8vX27BhQ0aMGEHnzp1xdnYmOTlZ3a6SZ1rTVe46w9aWkmNGg709hwa8ivnyZWtHEhEREREREZH/iImJoVWrVpm2tWnThpiYGGxtbWnevDlLly61PETL39+fgIAAqlSpwtNPP02tWrVuOsfQoUNZtmwZPj4+zJs3jxIlSuDq6prjOYGBgXTo0AF/f3+eeOIJQkJCLPt27tyJp6dnHq726vIGLVq0IDg4GJPJZFl3dtKkSUyaNClPY8rDy7ibLdTBwcHm+Pj4uzaf3NvOLlvGoX798ezxLMVefdXacURERERERETuKTt27MDLy8vaMe6oS5cuYWtri52dHevWraN3794kJibmebzmzZuzYMECHBwc8i+kCFn/PhqGkWA2m4OzOl7LC4jVFGrUiPMdOnDy82k416iBSy7+C5iIiIiIiIiIPDgOHDhA+/btycjIwMHBgalTp97WeN9//30+JRO5PSq6ilUVHzyICwnxHB48mPKLF2OntVJEREREREREHhoVK1bkjz/+sHYMkXynNV3FqmycnCj14YdknDnL4SFD9MRAERERERERERG576noKlZXoHJlir32Gud/Xs2pL76wdhwREREREREREZHboqKr3BPcOz+NS716/DMmmtQdO6wdR0REREREREREJM9yVXQ1DONlwzC2GYax1TCMGMMwChiGUc4wjN8Nw/jLMIxYwzD0WDjJM8MweOTdUdi6u3PolQFkXLhg7UgiIiIiIiIiIiJ5ctOiq2EYpYB+QLDZbPYBbIGOwAfAWLPZ/DhwCnj2TgaVB5+duzslR3/A5aQkjr33nrXjiIiIiIiIiDz0bG1tMZlM+Pv7ExgYyK+//pqncXr06MH27dtzffzMmTMpWrQoJpPJ8rN9+3aSkpLw8fHJU4aZM2dy+PDhbPe//fbbxMXF5WqspKQknJycMJlMVK1alV69epGRkZGnXLfj6NGjdOzYkQoVKhAUFETTpk3ZtWvXXc8hN8rt8gJ2gJNhGHaAM3AEiADm/7t/FtAy39PJQ6dg9ep4Pvccp+fN5+yPP1o7joiIiIiIiMhDzcnJicTERDZt2sR7773HkCFD8jTO559/TtWqVW/pnA4dOpCYmGj5udXz/yunomt6ejojRoygQYMGuR6v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yckJJycnihQpwokTJ1i9enWOcwOYzWbat28PwMaNG6lfvz4FCxYEoGPHjuzZsweAPn368P7779OmTRs+++wzZs6cedMa27VrB0BAQADx8fEArFq1ivDwcOzts+O6K3PJg0mhq4iIiIiI3LY8VatSetpULsTFkRg5iZPvvUfyp59SKLwfBTp2xM7R0dYliojIHdC6dWuGDh3K2rVrOXXq1HWPM5lM12wrWbIkp0+f5scff6RevXokJyfz9ddf4+LigqurK4Zh0KNHD959991rzt2yZQvLly9n2rRpfP3113z66ae3fQ1OTk7W781mM5mZmTecO0+ePJjN5puOW7duXeLj41m7di1ZWVn4+PjkupYrdcjDR6GriIiIiIj8Z87+/pT59BPObdxIYmQkJ958i1OffELh558n/5NPYrrJxyxFROTGctORejf16tWLAgUK4Ovry9q1a3M8pm7dusybN49nnnnG+hH9K2rVqsWECRP46aefOHXqFB06dLB2ozZq1Ignn3ySIUOGUKRIEZKTk0lNTSVfvnw4OjrSvn17vLy8eOaZZ4Dsj/Sn3qH1xK83d9myZa86rkaNGgwePJiUlBRcXV1ZuHAhvr6+1v3du3fn6aefZtSoUbddS2hoKNOnT6dBgwbY29uTnJysbtcHmNZ0FRERERGROyZfUBBl58yh9CcfY+9RmITXRrG/ZSvOfPsthp78LCLywCpVqhSDBg264TETJ05kypQp+Pr6cvTo0av2BQcHk5mZScWKFalevTrJyckEBwcDULVqVd566y2aNGmCxWIhNDSUhIQEjh49SkhICP7+/jzzzDPWbtSwsDDCw8Ov+yCtf67p6u/vz6VLl65b8/Xm/reSJUvyyiuvEBQURN26dSlXrhz58+e37u/atSspKSlXPWTsVvXp04cyZcpgsVjw8/Pjyy+/BOD111+3PohMHhwmwzDu2WSBgYFGTEzMPZtPRERERERsxzAM0tasJTEykou7duFYoQKFBw7EtUkoJjv1f4iI3MzOnTupUqWKrcuQv6WlpeHi4kJmZiZt27alV69etG3bFoCoqCiWLFnCnDlzbFyl3C05/T6aTKZYwzACczpeywuIiIiIiMhdYTKZcG3YAJeQ+qSuWEnipEkcHTwYp8qVKTxoEC4NQnJc+09EROR+FBERwapVq0hPT6dJkya0adMGgIEDB7Js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TJnC4MGDcz3GnabQVURERERE5Cbs3d0p8tJLFOzRg1MzZ5Ly1TzOfPsd7h07UKhfPxyKFrV1iSIid9XgwYOpXr06PXv2zNXx+fLlu+F+Jycn6/dX1uQsWbIkp0+f5scff6RevXokJyfz9ddf4+LigqurK4Zh0KNHD959991rxtuyZQvLly9n2rRpfP3113z66adX7TcMA29v76vWXb1RvVfqM5vN113ntW7duqxbt47U1FTc3d2pVasWkydP5o8//qBfv37XHP/999+zbt06vvvuO95++222bdt2gzuUMwcHB0wm0zW1TZs2jd9//53vv/+egIAAYmNjrzn3n/f8Rtd1I9e7j6mpqbke42Y/G9fj5uaGi4sLBw4cyLHb9X6j0FVERERERCSX7D08KDpyJAV79iRp+nRSvl7A6aiFuHfpQqFn+2JfqJCtSxSRh1RuOlLvpoIFC/LUU0/xySefWNdarVOnDvPmzaNbt27MnTvXunTAv7m6unL27NlczVOrVi0mTJjATz/9xKlTp+jQoYP16faNGjXiySefZMiQIRQpUoTk5GRSU1PJly8fjo6OtG/fHi8vL5555hnrvFfCQC8vLxITE9mwYQO1a9cmIyODPXv24O3tfdv3pE6dOrz00kuEhIQA2Z2sv/32GydOnLCuU3rF5cuXOXz4MA0aNODxxx9n3rx5pKWlERoaypQpU5gwYQIAKSkpBAUFMWjQIJKSknB3d+err75i4MCBN6xl//791KxZk5o1a7Js2TIOHz5829d1Ize6j6VKlWLx4sW0adOGixcvkpWVddV7cDOhoaFMnz6dBg0aYG9vT3Jy8jXdriNHjqR///7Mnz8fNzc30tLSWLRoEU899RTx8fHs27ePihUrMmfOHOrXr383bkGuaU1XERERERGRW+RQrBjFR4+mwo/LcGvViuQ5c9jXOJST//chWadP27o8EZG74qWXXiIpKcn6etKkSXz22WdYLBbmzJnDxIkTczzviSee4JtvvrnqQVrXExwcTGZmJhUrVqR69eokJydbw9yqVavy1ltv0aRJEywWC6GhoSQkJHD06FFCQkLw9/fnmWeesXbCXnmgl7+/P1lZWURFRTF8+HD8/Pzw9/e3PgjrdtWpU4cDBw5Qu3ZtIPuhY0WKFCEwMBA7u6sjt6ysLJ555hl8fX2pVq0agwYNokCBArz22muk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J21dnoiIPGIUuoqIiIiIiMhDw6FIEYq99ioVlv9I/rZtSfn6a/Y3acKJ994nMznZ1uWJPHDMZjP+/v74+PjQsWNHzp8/n+tz4+Li+OGHH6yvZ82axYABA+5IXREREYwbNy7HfV988QUWiwVvb2/8/Pzo06cPp0+fviPz3o5y5cqRlJSU43ZfX1/8/f3x9/dn0KBBAISFhREVFXXL88THx/Pll19ed/+xY8fo0KHDLY05btw4KleujL+/PzVq1ODzzz+/5boeVQpdRURERERE5KHjUKIExd8YQ4UfvsetWTOSZ89mX+NQTo6fQNaZM7YuT+SB4ezsTFxcHNu3b8fR0ZFp06bl6rzMzMxrQtd74ccff2T8+PEsW7aMP//8k82bN1OnTh1OnDhx1+bMzMy87XPXrFlDXFwccXFxREZG/qc6bhS6ZmZmUqJEiVsKc6dNm8bKlSvZuHEjcXFxrF69GsMw/lONjxKFriIiIiIiIvLQcixThhLvjcVz6Xe4htTn1PTp7GscSuKUKWSlpdm6PJEHSnBwMPv27SM5OZk2bdpgsVioVasWW7duBbK7T7t160bdunXp1q0br7/+OvPnz8ff35/58+dfNdZ3331HzZo1qVatGo0bN7aGohEREfTq1YuQkBA8PT2vCiLffvttKlWqxOOPP87u3btzrPHtt99m3LhxlCxZEsju1O3VqxdeXl4AxMbGUr9+fQICAmjatCkJCQkAhISEMHz4cIKCgqhUqRLR0dEAZGVlMWzYMGrUqIHFYmH69OkArF27luDgYFq3bk3VqlUBaNOmDQEBAXh7ezNjxow7cs+vV+++ffto3Lgxfn5+VK9enf379zNixAiio6Px9/dn/PjxzJo1i9atW9OwYUMaNWpEfHw8Pj4+1usaOnQoPj4+WCwWJk2adM3c77zzDlOnTsXNzQ0ANzc3evToAcDq1aupVq0avr6+9OrVi4sXL96R632YKHQVERERERGRh56TpyclP/yQ8ksWk7dmEEmTJrO/UWNOffwxl2/h49Iij6rMzEyWLVuGr68vo0ePplq1amzdupV33nmH7t27W4/bsWMHq1at4quvvuKNN96gU6dOxMXF0alTp6vGe/zxx/ntt9/4448/6Ny5M++//751365du1i+fDkbN25kzJgxZGRkEBsby7x586zds5s2bcqxzj///JPq1avnuC8j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jUaj0Wg0Go1mW4hPnszYH/+I7Kuv0n7Djaz77nfZcPvtDPvsZ2n82EeRtj3Uj7hDmT17NnfffXeFdL377rv57ne/u1XXeeWVV5g3b15N6eq6Lqa5fXrq05/+NOPHj+ftt99GSsnSpUuZP3/+gM5VSqGUQkpdvKQZXHSl6w7CcRyeeuopnnnmGVKpFGeccQYHHrh35ZNuL0opLvzZ33l9VSePfWkmbfW6mdTmyPU4rFoUNOV6d+EGOtdlAUjUWSUBO+bAJupb9B8ANBqNRqPRaDQajWZb6H3hBdbdcAPZeS9ijhxJyxWX03jOOQhrx/TdGOpK1w0bNnDggQeycuVKbNtm2bJlnHjiiSxfvpxHH32Ua6+9lnw+z8SJE7n99ttJp9O88MILfOELXyCTyRCLxXj00Uc55JBDyGazjB49mq9+9assWLCAd955hyVLlrDPPvtw4403ctlll7FixQogqKadMWMG1113HStWrGDJkiWsWLGCq6++mquuuqriGd955x3e//73s3jxYgyjb/Te97//fX7xi18AgZy9+uqrWbZsGaeeeipHH300L774Ig8//DAHH3wwl156KY888ggjRozg7rvvprW1dce/yJrdBh0vsIvx3nvvcd9997F27VqmTJnC6aefTmonZ8Dszixp7+G0G57mA5OHc/PHDx/qx9mt6N6QC/Jg3wriCHo7CwDUt8RLAnbMAU0k6vbsv8xqNBqNRqPRaDQazWCilCLz7LO033gjuVdfw9pnH1qvvIL6M85A1JB+28NQS1eAM844g0svvZSzzz6bb3/723R0dPCVr3yF8847jz/96U+kUim+853vkM/n+cpXvsKBBx7InDlzOPLII+nq6iKZTPLrX/+aefPmcfPNNwNw3XXX8cADD/DMM8+QSCT4+Mc/zhVXXMHxxx/PihUrOPXUU1mwYAHXXXcdjzzyCE888QTd3d0ccMABrFmzBisiue+//35uv/12/vjHP/Z59hdffJFLLrmE559/HqUURx99NL/+9a9pampiwoQJPPvssxxzzDEACCH49a9/zYUXXsg3v/lN1q1bV3pejQZ0vMAux6hRo7j00kv529/+xl//+leWLFnCBz/4QQ4++GD9lu8BMKE1zedmTeL7jy7iw0esY9YBbUP9SLsNdc1xDjpuJAcdNxKlFBtX95YE7OIX1zH/mfcAkKb+OtRo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\n", + "image/png": "iVBORw0KGgoAAAANSUhEUgAABV0AAAJNCAYAAAAib9UzAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/YYfK9AAAACXBIWXMAAAsTAAALEwEAmpwYAAEAAElEQVR4nOzdeVxVdf7H8dfhsq+yK6ICiuyb4q65tGjpWO5aueRYWVlpu9OilU05OllZM1a/yizDLdOmxTFTS9NUNNwAFxRRFARxAXfg/P5AbzHimnpR38/Hg4fe7/me7/mce72KHz738zVM00RERERERERERERELg87WwcgIiIiIiIiIiIicj1R0lVERERERERERETkMlLSVUREREREREREROQyUtJVRERERERERERE5DJS0lVERERERERERETkMlLSVUREREREREREROQysr+aF/Pz8zNDQkKu5iVFRERERERERERELrvVq1cXmqbpX9Wxq5p0DQkJITU19WpeUkREREREREREROSyMwxjx9mOqb2AiIiIiIiIiIiIyGWkpKuIiIiIiIiIiIjIZaSkq4iIiIiIiIiIiMhldFV7uoqIiIiIiIiIyJV18uRJdu3axbFjx2wdish1wdnZmeDgYBwcHC74HCVdRURERERERESuI7t27cLDw4OQkBAMw7B1OCLXNNM02bdvH7t27SI0NPSCz1N7ARERERERERGR68ixY8fw9fVVwlXkMjAMA19f34uuHFfSVURERERERETkOqOEq8jlcynvJyVdRURERERERERERC4jJV1FRERERERERERELiMlXUVEREREREREREQuIyVdRURERERERETkujZlyhTi4+NJSEigf//+ZGdn06FDB+Lj47n55pvJyckBYNCgQTz00EM0b96csLAwFi9ezODBg4mKimLQoEHW9dzd3RkxYgQxMTHcfPPNFBQUAPDhhx/SpEkTEhIS6NGjB0eOHLGu+9hjj9GyZUvCwsKYNWsWAAMGDGDOnDnWde+55x7mzp1b5T1MnjyZ7t2706lTJ8LDw3nmmWesxx566CGSk5OJiYlh1KhR1vGQkBBGjhxJYmIiycnJrFmzho4dO1K/fn0mTZpknTdu3DiaNGlCfHx8pfPl0inpKiIiIiIiIiIi162NGzcyZswYFi5cyNq1a3n77bd59NFHGThwIOvWreOee+7hscces87fv38/y5cvZ8KECXTt2pURI0awceNG1q9fT1paGgCHDx8mOTmZjRs30rZtW15++WUAunfvzqpVq1i7di1RUVF89NFH1nX37NnD0qVL+eabb3juuecA+Otf/8rkyZMBOHjwIMuWLaNz585nvZe0tDSmT5/O+vXrmT59Ojt37gTgtddeIzU1lXXr1vHTTz+xbt066zl169YlLS2NNm3aMGjQIGbNmsWvv/5qTa7Onz+fLVu2sHLlStLS0li9ejU///zzn3/ib3BKuoqIiIiIiIiIyHVr4cKF9OrVCz8/PwB8fHxYvnw5d999NwD9+/dn6dKl1vl/+ctfMAyDuLg4AgMDiYuLw87OjpiYGLKzswGws7OjT58+ANx7773W8zds2ECbNm2Ii4tj6tSpbNy40bruXXfdhZ2dHdHR0eTn5wPQtm1btmzZQkFBASkpKfTo0QN7e/uz3svNN9+Ml5cXzs7OREdHs2PHDgBmzJhBo0aNSEpKYuPGjaSnp1vP6dq1KwBxcXE0a9YMDw8P/P39cXJy4sCBA8yfP5/58+eTlJREo0aNyMzMZMuWLX/qORc4+6soIiIiIiIiIiJyg3FycgIqEqunf3/6cWlpaZXnGIYBVLQRmDNnDgkJCUyePJnFixefsS6AaZrW3w8YMIDPP/+cadOm8cknn1xQbAAWi4XS0lK2b9/O+PHjWbVqFd7e3gwaNIhjx45d8P2YpsnIkSN58MEHz3ltuTiqdBURERERERERketWhw4dmDlzJvv27QOgqKiIli1bMm3aNACmTp1KmzZtLmrN8vJya1/WL774gtatWwNQXFxMrVq1OHnyJFOnTr2gtQYNGsRbb70FQHR09EXFAXDo0CHc3Nzw8vIiPz+f77///qLO79ixIx9//DElJSUA5Obmsnfv3ouOQypTpauIiIiIiIiIiFy3YmJieP7552nbti0Wi4WkpCQmTpzIfffdx7hx4/D39z9vhen/cnNzY+XKlYwZM4aAgACmT58OwKuvvkqzZs3w9/enWbNmFBcXn3etwMBAoqKiuOuuuy7l9khISCApKYnIyEjq1KlDq1atLur82267jYyMDFq0aAFUbBL2+eefExAQcEnxSAXjj+XMV1pycrKZmpp61a4nIiIiIiIiInKjycjIICoqytZhXNfc3d2tlaF/1pEjR4iLi2PNmjV4eXldljXl8qvqfWUYxmrTNJOrmq/2AiIiIiIiIiIiIjawYMECoqKiePTRR5Vwvc6ovYCIiIiIiIiIiMhFuFxVrrfccgs7duyoNPbf//6XZ599ttJYaGgoX3311WW5plwdSrqKiIiIiIiIiIhUEx07dqRjx462DkP+JLUXEBEREREREREREbmMlHS9gsrLT3I1NyoTERERERERERER21PS9Qo5dmw3K1f9hYKC/9o6FBEREREREREREbmKlHS9QhwdAzAMBzZveZXS0svTXFlERERERERE5FoxZ84cDMMgMzPTOpadnY2LiwuJiYnWrylTpgDw8ccfExcXR3x8PLGxscydO7fKdadMmUJsbCxxcXEkJSUxfvz4q3I/IhdDG2ldIXZ29kRGvELq6p5sz55IeIORtg5JREREREREROSqSUlJoXXr1qSkpPDyyy9bx+vXr09aWlqlubt27eK1115jzZo1eHl5UVJSQkFBwRlrfv/997z11lvMnz+foKAgjh8/bk3aXojS0lLs7ZUOkytPla5XkJdXEkFBfdi58xNKSjbZOhwRERERERERkauipKSEpUuX8tFHHzFt2rTzzt+7dy8eHh64u7sD4O7uTmho6BnzXn/9dcaPH09QUBAATk5O3H///QCkpaXRvHlz4uPj6datG/v37wegXbt2DB8+nOTkZN5++20GDRrE0KFDSU5OpmHDhnzzzTeX67ZFrJR0vcIa1H8ae3svMje9hGmW2zocEREREREREZErbu7cuXTq1ImGDRvi6+vL6tWrrceysrIqtRdYsmQJCQkJBAYGEhoayn333cd//vOfKtfdsGEDjRs3rvLYgAEDGDt2LOvWrSMuLq5Sde2JEydITU3lySefBCraHKxcuZJvv/2WoUOHcuzYsct49yJqL3DFOTh406D+s2RkPsuevNkE1epp65BERERERERE5Abx8n82kr770GVdMzrIk1F/iTnnnJSUFB5//HEA+vbtS0pKijVZWlV7AYB58+axatUqfvzxR0aMGMHq1asZPXr0BcV08OBBDhw4QNu2bQEYOHAgvXr1sh7v06dPpfm9e/fGzs6O8PBwwsLCyMzMJDEx8YKuJXIhVOl6FdSq1R0vr8Zs3TqWkycP2DocEREREREREZErpqioiIULFzJkyBBCQkIYN24cM2bMwDTNc55nGAZNmzZl5MiRTJs2jS+//PKMOTExMZWqZi+Um5vbGdc612ORP0uVrleBYdgREfEKq1Z1ZWvWOKIiX7N1SCIiIiIiIiJyAzhfReqVMGvWLPr378/7779vHWvbti1Lliyhbt26VZ6ze/du8vLyaNSoEVDRn7VevXpnzBs5ciRPP/003377LTVr1uTEiRNMmTKFIUOG4O3tzZIlS2jTpg2fffaZteq1KjNnzmTgwIFs376dbdu2ERER8SfvWqQyJV2vEg/3SOoEDyJn58cE1eqJl1eSrUMSEREREREREbnsUlJSePbZZyuN9ejRwzp+uqfraYMHD+bOO+/kqaeeYvfu3Tg7O+Pv78+kSZPOWPuOO+4gPz+fW265BdM0MQyDwYMHA/Dpp58ydOhQjhw5QlhYGJ988slZY6xbty5Nmzbl0KFDTJo0CWdnZ3bv3s2QIUP47rvvLs8TITc043yl3ZdTcnKymZqaetWuV92Ulpbw64qOODr4kpw8Gzs75bxFRERERERE5PLKyMggKirK1mFUW4MGDaJLly707Kl9d+TCVfW+MgxjtWmayVXNV0/Xq8je3p3w8BcoLtlIbu5UW4cjIiIiIiIiIiIiV4BKLa+yAP9O+Pi0IWvbmwQE3I6TU4CtQxIRERERERERuWFMnjzZ1iHIDUCVrleZYRhENByNaZ5gy9a/2zocERERERERERERucyUdLUBV9cQ6tV7iPz8/1BU9IutwxEREREREREREZHLSElXG6lX90FcXOqyafNoysuP2zocERERERERERERuUyUdLURi8WJiIYvc+TINnbk/J+twxEREREREREREZHLRElXG/L1vYmAgDvIzn6Po0d32jocEREREREREZHLZs6cORiGQWZmpnUsOzub2NhY6+MPP/yQxo0bs3///krnbtq0iXbt2pGYmEhUVBQPPPAA//3vf0lMTCQxMRF3d3ciIiJITExkwIABLF68GC8vL+vxxMREFixYAIDFYqk0/sYbbwDQrl07UlNTzxr//8YKMHr0aMaPHw+AaZqMGTOG8PBwGjZsSPv27dm4caN1bkhICIWFhZXOnzx5Mv7+/iQlJREeHk7Hjh1ZtmyZ9figQYOYNWuWNb7k5GTrsdTUVNq1a2d9vHLlStq1a0d4eDiNGjWic+fOrF+/vsp7+f7770lOTiY6OpqkpCSefPJJ67EPPviAyMhIIiMjadq0KUuXLrUea9euHRERESQkJNCkSRPS0tIq3V9cXBzx8fHcdttt5OXlnfW5vBHZ2zqAG114+PPs2/cTmza/TEL8hxiGYeuQRERERERERET+tJSUFFq3bk1KSgovv/zyGcc/++wzJk6cyMKFC/H29q507LHHHmPEiBHceeedAKxfv564uDg6duwIVCQDx48fb01KLl68mDZt2vDNN9+ccR0XF5dKycLL5b333mPZsmWsXbsWV1dX5s+fT9euXdm4cSPOzs5nPa9Pnz68++67ACxatIju3buzaNEioqKizpi7d+9evv/+e26//fZK4/n5+fTu3ZsvvviCli1bArB06VKysrKIi4urNHfDhg0MGzaMb7/9lsjISMrKyvjggw8A+Oabb3j//fdZunQpfn5+rFmzhrvuuouVK1dSs2ZNAKZOnUpycjKffPIJTz/9ND/88IN17UWLFuHn58ff/vY3/v73v/POO+9cwjN5fVKlq405O9UkLPRx9u1bRGHhAluHIyIiIiIiIiLyp5WUlLB06VI++ugjpk2bdsbxGTNm8MYbbzB//nz8/PzOOL5nzx6Cg4Otj/83kVgdjB07lnfffRdXV1cAbrvtNlq2bMnUqVMveI327dvzwAMPWJOg/+vpp5/mtddeO2P83XffZeDAgdaEK0Dr1q256667zpj7j3/8g+eff57IyEigovL3oYcest7DuHHjrK9Bo0aNGDhwIO+9994Z67Ro0YLc3Nwq47zpppvYunXruW/2BqOkazUQHDwAd7cINm9+hbKyI7YOR0RERERERETkT5k7dy6dOnWiYcOG+Pr6snr1auuxHTt2MGzYMObPn2+tpvxfI0aMoEOHDtx+++1MmDCBAwcOnPeaS5YsqdRGICsrC4CjR49WGp8+ffoF30dWVlalcydNmgTAoUOHOHz4MGFhYZXmJycnV2oxcCEaNWpUqQXDH7Vo0QJHR0cWLVpUaXzjxo00atTogtbfsGEDjRs3rvLYxo0bzzh2tnuYN29elUldqKiYrY6JcVtSe4FqwM7OgYiIV1i9pg/bt79LgwbP2DokEREREREREbkefP8c5FXd5/OS1YyD298455SUlBQef/xxAPr27UtKSoo1uefv74+Pjw8zZsxgxIgRVZ5/33330bFjR+bNm8fcuXN5//33Wbt2LU5OTme95pVoL1C/fv1K544ePfqS1jkX0zTPefyFF15gzJgxjB079qxzmjVrxqFDh7jtttt4++23L2t899xzDydOnKCkpOSM57F9+/ZYLBbi4+MZM2bMZb3utU6VrtVEjRrJ1KrVi5ydH1FyeIutwxERERERERERuSRFRUUsXLiQIUOGEBISwrhx45gxY4Y1uejq6sp3333HpEmTzvlR/KCgIAYPHszcuXOxt7dnw4YNV+sWzsvT0xM3Nze2bdtWaXz16tXExMRc1Fq//fZblf1cT+vQoQNHjx7l119/tY7FxMSwZs0a6+MVK1bw6quvcvDgwTPOj4mJqVRp/EfR0dFnHPvfe5g6dSrbtm1j4MCBPProo5XmLlq0iLS0NKZMmUKNGjXOeZ83GlW6ViMN6j9DQcEPbNo0ikZJU7WploiIiIiIiIj8OeepSL0SZs2aRf/+/Xn//fetY23btmXJkiXUrVsXgICAAObNm0e7du3w8/OzbpB12rx587j55ptxcHAgLy+Pffv2Ubt27at6H+fz9NNP89hjjzFz5kxcXFxYsGABS5curXTf5/PTTz/xwQcfnNE+4H+98MILDB061NrO4JFHHqFZs2Z07NjR2tf1yJGqW1Y+/fTTdO/endatW9OwYUPKy8v54IMPGDp0KM888wzPPvss8+bNw9fXl7S0NCZPnsyKFSsqrWEYBq+++ir169cnMzPT2h9Wzk5J12rE0dGHBvWfJnPT8+TlzaFWrW62DklERERERERE5KKkpKTw7LPPVhrr0aPHGeOhoaF8/fXX3HHHHXz11Vc0bdrUemz+/Pk8/vjjODs7AzBu3Liz9n897XRP19NeeOEFevbsae3pelqnTp14442KZHTnzp1xcHAAKvqnzpw584Lv89FHH2X//v3ExcVhsVioWbMmc+fOxcXFxTonPj4eO7uKD5r37t2b+Ph4pk+fztKlSzly5AihoaF8+eWX56x0Bbjjjjvw9/e3Pq5ZsybTp0/n2WefJTc3l4CAAPz8/HjppZfOODc+Pp633nqLfv36ceTIEQzDoEuXLgB07dqV3NxcWrZsiWEYeHh48Pnnn1OrVq0z1nFxceHJJ59k3LhxfPTRRxf8PN2ojPP1jbickpOTzdTU1Kt2vWuRaZaTuro3R4/m0KL5Dzg4eNk6JBERERERERG5hmRkZJw3iSciF6eq95VhGKtN00yuar56ulYzhmFHZMQrnDy5n6xtb9o6HBEREREREREREblISrpWQx4e0dQJHkBu7lQOHVpn63BERERERERERETkIijpWk2FhQ3H0dGfzE0vYppltg5HRERERERERERELpCSrtWUvb0HDcOfp7h4A7m5KbYOR0RERERERERERC6Qkq7VWEBAZ3y8W5G1bTzHTxTaOhwRERERERERERG5AEq6VmOGYRAR8TJlZcfZuuV1W4cjIiIiIiIiIiIiF0BJ12rO1TWUevXuJy9/Dvv3/2rrcERERERERERELsicOXMwDIPMzEzrWHZ2NrGxsWfMHTRoELNmzao0lp2djYuLC4mJidavKVOm0KxZMxITE6lbty7+/v7WY9nZ2YSEhBAXF2cde+yxx84Z4+TJkxk2bNjluWGRP7C3dQByfiH1HiYv72syN42iWdP/YGfnaOuQRERERERERETOKSUlhdatW5OSksLLL798SWvUr1+ftLS0SmMDBgwAKhKmqampvPvuu5WOL1q0CD8/v0u6nsjlokrXa4DF4kxEw1EcObKVnJ2f2DocEREREREREZFzKikpYenSpXz00UdMmzbN1uFckEGDBvHYY4/RsmVLwsLCKlXejh07lri4OBISEnjuuedsGKVcKy4o6WoYxgjDMDYahrHBMIwUwzCcDcMINQxjhWEYWw3DmG4YhsovryA/v/b4+9/G9u0TOXo019bhiIiIiIiIiIic1dy5c+nUqRMNGzbE19eX1atXX9I6WVlZldoLLFmy5LzntG/f3jp/woQJF3W9PXv2sHTpUr755htrcvX7779n7ty5rFixgrVr1/LMM89c0r3IjeW87QUMw6gNPAZEm6Z51DCMGUBf4A5ggmma0wzDmAT8Ffj3FY32Btcw/EWW77uNzVteISH+fVuHIyIiIiIiIiLV3NiVY8ksyjz/xIsQ6RPJs02fPeeclJQUHn/8cQD69u1LSkoKjRs3vuhrVdVe4Hz+THuBu+66Czs7O6Kjo8nPzwdgwYIF3Hfffbi6ugLg4+NzSWvLjeVCe7raAy6GYZwEXIE9QAfg7lPHPwVGo6TrFeXsHERY6GNszRpLQeGP+PvdbOuQREREREREREQqKSoqYuHChaxfvx7DMCgrK8MwDMaNG2fr0M7LycnJ+nvTNG0YiVzrzpt0NU0z1zCM8UAOcBSYD6wGDpimWXpq2i6g9hWLUqzq1LmPPXmz2bz5FXy8W2KxuNg6JBERERERERGpps5XkXolzJo1i/79+/P++79/Srdt27YsWbKEunXrXvV4AOtmW8OGDbvoc2+99VZeeeUV7rnnHlxdXSkqKlK1q5zXeXu6GobhDdwJhAJBgBvQ6UIvYBjGA4ZhpBqGkVpQUHDJgUoFOzsHIhq+wrFju8jOfs/W4YiIiIiIiIiIVJKSkkK3bt0qjfXo0YOUlBQANm3aRHBwsPVr5syZADz44IPWsRYtWgBn9nR95513znv9P/Z0HTBgAACZmZn4+vpe0v106tSJrl27kpycTGJiIuPHjwdg0qRJTJo06ZLWlOufcb5SacMwegGdTNP866nHA4AWQC+gpmmapYZhtABGm6bZ8VxrJScnm6mpqZcn8htcevrT5OX/h2ZNv8XNrb6twxERERERERGRaiIjI4OoqChbh1GtdOnShdmzZ+PoqH3g5dJU9b4yDGO1aZrJVc0/b6UrFW0FmhuG4WoYhgHcDKQDi4Cep+YMBOZectRy0Ro0eBaLxYVNm0epx4iIiIiIiIiIyDl88803SrjKVXXepKtpmiuAWcAaYP2pcz4AngWeMAxjK+ALfHQF45T/4ejoR/36T7N//3Ly8/9j63BERERERERERETklPNupAVgmuYoYNT/DG8Dml72iOSC1Q7qw57dM9my9TX8/Npjb+9h65BERERERERERERueBfSXkCqKcOwEBHxCidOFJG17U1bhyMiIiIiIiIiIiJcYKWrVF+ennEEB9/Drl2fU6tWDzw9Ym0dUrWWtiCH7PX7bB1GtWFnB4061iM40sfWoYiIiIiIiIiIXDdU6XodCAt9AkdHHzZtegnTLLN1ONVaeblJeVm5vk597dt9mB8+TufE0VJbvzQiIiIiIiIiItcNVbpeBxwcPAlv8Dc2pj9B7u7pBNe+29YhVVuNbqtHo9vq2TqMaiM/+xCzxqay8tvttO4ZbutwRERERERE5DoyZ84cunXrRkZGBpGRkTaL44477uCLL76gRo0alcZHjx6Nu7s7Tz311FnPnTx5Mqmpqbz77rtXOEq53qjS9ToRGNgV7xrNycoaz4kThbYOR64RgSGeRLcKYt3CXezbXWLrcEREREREROQ6kpKSQuvWrUlJSbHJ9U3TpLy8nO++++6MhKvIlaak63XCMAwiIl6mrOwIW7eOtXU4cg1pflcYjs4WlkzbjGmatg5HRERERERErgMlJSUsXbqUjz76iGnTpgEwb948evXqZZ2zePFiunTpAsBDDz1EcnIyMTExjBo1yjonJCSEUaNG0ahRI+Li4sjMzASgoKCAW2+9lZiYGIYMGUK9evUoLCwkOzubiIgIBgwYQGxsLDt37iQkJITCwooCtddee42GDRvSunVrNm3adFH3NGjQIB577DFatmxJWFgYs2bNsh4bO3YscXFxJCQk8Nxzz13akybXFSVdryNubg2oW3cIe/Jms3//SluHI9cIF3dHmt8ZRu7mA2xdvdfW4YiIiIiIiMh1YO7cuXTq1ImGDRvi6+vL6tWrueWWW1ixYgWHDx8GYPr06fTt2xeoSIampqaybt06fvrpJ9atW2ddy8/PjzVr1vDQQw8xfvx4AF5++WU6dOjAxo0b6dmzJzk5Odb5W7Zs4eGHH2bjxo3Uq/d7i8HVq1czbdo00tLS+O6771i1atVF39eePXtYunQp33zzjTW5+v333zN37lxWrFjB2rVreeaZZy7+CZPrjnq6XmdCQx4hP/9rNm1+iaZN/oOdnYOtQ5JrQHSb2mxcuptfZm2lXqwvjs76q0FEREREROR6kPf3v3M8I/OyrukUFUnNv/3tnHNSUlJ4/PHHAejbty8pKSk0btyYTp068Z///IeePXvy7bff8o9//AOAGTNm8MEHH1BaWsqePXtIT08nPj4egO7duwPQuHFjZs+eDcDSpUv56quvAOjUqRPe3t7Wa9erV4/mzZufEdOSJUvo1q0brq6uAHTt2vWi7/2uu+7Czs6O6Oho8vPzAViwYAH33XefdV0fH5+LXleuP6p0vc5YLC40bDiKw4e3sHPXZFuHI9cIOzuDtv0iOHzgOKnfZds6HBEREREREbmGFRUVsXDhQoYMGUJISAjjxo1jxowZmKZJ3759mTFjBgsXLiQ5ORkPDw+2b9/O+PHj+fHHH1m3bh2dO3fm2LFj1vWcnJwAsFgslJaWnvf6bm5uV+zeTscCqEWfnJPK2a5D/n434+d3C9u3v0NgQGecnYNsHZJcA2qGeRHZoiZrf9xJVMtaeNe8cv9IiYiIiIiIyNVxvorUK2HWrFn079+f999/3zrWtm1blixZQtu2bRk8eDAffvihtbXAoUOHcHNzw8vLi/z8fL7//nvatWt3zmu0atWKGTNm8OyzzzJ//nz2799/3rhuuukmBg0axMiRIyktLeU///kPDz74IADvvvsuAMOGDbvo+7311lt55ZVXuOeee3B1daWoqEjVrqJK1+tVw/AXMc1yNm8ZY+tQ5BrSolsD7B0tLJmuTbVERERERETk0qSkpNCtW7dKYz169CAlJQWLxUKXLl34/vvvrZtoJSQkkJSURGRkJHfffTetWrU67zVGjRrF/PnziY2NZebMmdSsWRMPD49zntOoUSP69OlDQkICt99+O02aNLEey8zMxNfX9xLutqK9QdeuXUlOTiYxMdHad3bSpElMmjTpktaUa59xNRMrycnJZmpq6lW73o0uO/vfZG0bT0L8/+Hn197W4cg1Yu3CnSydsYVOD8RSv1GArcMRERERERGRi5SRkUFUVJStw7iijh8/jsViwd7enuXLl/PQQw+RlpZ2yet16dKF2bNn4+joePmClOtKVe8rwzBWm6aZXNV8tRe4jtWt+1f25H3F5s2v4O3dAovF2dYhyTUgrm1tMn7Zw9KZW6gb44uDk8XWIYmIiIiIiIhUkpOTQ+/evSkvL8fR0ZEPP/zwT633zTffXKbIRCqovcB1zM7OkciIVzh6LIetWWNtHY5cI+wsdtzUtyEl+4+zel62rcMREREREREROUN4eDi//fYba9euZdWqVZVaBYhUB0q6Xue8vZtTp8597No1hcLCRbYOR64RQeE1aNgskN9+yOFA/hFbhyMiIiIiIiIick1R0vUG0KD+07i7R5Ge8QzHjxfYOhy5RrTs3gCLvR1LZmzRploiIiIiIiIiIhdBSdcbgJ2dEzExEygrO0x6xtOYZrmtQ5JrgJuXE027hJKzcR/Z6wptHY6IiIiIiIiIyDVDSdcbhLtbOOHhL1BUtISduz61dThyjYhrH4x3LTeWzNhC6YkyW4cjIiIiIiIiInJNUNL1BlI7qB9+frewdes/KC5Ot3U4cg2wnNpUq3jfMdb8d4etwxEREREREZFrhMViITExkYSEBBo1asSyZcsA2L17Nz179ryotdq1a0dERAQJCQk0adKEtLQ067E77riDAwcOXMbIz2706NHUrl2bxMRE69eBAwdYvHgxXbp0uaQ133rrLY4cOfteKkOGDCE9/cJzOCtXruSmm24iIiKCpKQkhgwZcs715cpR0vUGYhgGUZGv4+BQgw0bh1NWdtTWIck1IDjCmwbJAaz5bw4HC/RnRkRERERERM7P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w7YOTURE5LzS09NtHYLp5uZmrl271uzRo4d59OhRMyEhwVy0aJHZuXNn0zRNc9iwYebo0aNN0zTNH3/80UxISDjn+KhRo8wWLVqYx44dMwsKCkwfHx/zxIkTZ1y3Xr16ZkFBQaWxgwcPmidPnjRN0zR/+OEHs3v37qZpmuYnn3xiPvLII+bs2bPN1q1bm0VFRWZBQYHZpk0bs6SkxDRN03zjjTfMl19++YzrDBw40AwJCTETEhLMhIQE8+677660pmmaZr9+/cwlS5aYpmmaO3bsMCMjI03TNM1nnnnGfPzxx61rFRUVWZ+z07Zv324ahmEuX778jHvbsGGDGR4ebr3Pffv2Vfka3HLLLebPP/9sbtq0yYyNjbWOx8bGmrt27TJN0zT3799vmmbF8/7555+bpmmax48fN48cOWKmpqaasbGxZklJiVlcXGxGR0eba9asOev1R40aZY4bN840TdMsLCy0Xu/5558333nnHevzNnPmzErP48yZM82jR4+awcHB5qZNm0zTNM3+/fubEyZMsN736fPfe+89869//WuV9/vH5y4mJsY0zYrXIzQ01Dxw4IB59OhRs27dumZOTo65d+9eMzg42Ny2bds5n8M/qup9BaSaZ8mD2l/+NK6I2IJhGEREjmHFik6kZzxD40YzsLPTW1xERORSOLs5kHBzHeI7BLN78wE2/JzL+kW7WPvjTmpHeBN7U21CE/2wWPTBMRERqea+fw7y1l/eNWvGwe1vnHdafHw82dnZpKSkcMcdd1Q6tnTpUr788ksAOnTowL59+zh06NBZxwE6d+6Mk5MTTk5OBAQEkJ+fT3Bw8HnjOHjwIAMHDmTLli0YhsHJkyetxxYuXEhqairz58/H09OTb775hvT0dFq1agXAiRMnaNGiRZXrjhs3jp49e571ugsWLKj0UfpDhw5RUlLCggULKlWeent7V3l+vXr1quzHunDhQnr16oWfnx8APj4+Z8zJz89ny5YttG7dGsMwcHBwYMOGDcTGxtKqVSsGDRpE79696d69OwAtWrTgtddeY9euXXTv3p3w8HCWLl1Kt27dcHNzA6B79+4sWbIEwzDOe/0NGzbwwgsvcODAAUpKSujYseNZnyeATZs2ERoaSsOGDQEYOHAg7733HsOHD7deG6Bx48bMnj37nGv9r5tvvhkvLy8AoqOj2bFjB/v37+em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4bgqXX8tqXQVQog+TFGgofrgMLZ2F9QUHtCywB3IHhjGhvSXQFacthyOBmz2dZ5qWLt9PS5XMyDDuYQQ4lSo2GVjxQfbqdxTR2SSifFXDiIyyeTtZQlxQrxd6VpUVMS0adPYuHGjZ9vs2bMxGo088MAD3HjjjXz77bcUFhZiMBiorq4mOzuboqIiz3P/9re/8cc//hGAnTt3Ehsbi7+/PxkZGcyYMYOLL76YpKQkz/nnzJnD2WefjU6nIz09nba2Nnx8fLj++uu577770Gq79tR3uVzce++9LF26FI1Gg5+fHx988AFXX301LS0t1NbW0tTURGysOjf+k08+IS4ujujoaG6++WaeeeYZnnrqKT788EMANmzYQHp6OgAzZsygtraWf/3rX4SHh3uuuXz5cvR6PbfeeisFBQUoioLFYuGrr77CaOz6BtRbb73F888/j0ajweVy8dRTT/HNN9/w008/0drayu7du0lJSQHg0UcfZdGiRXz//feYzWYAAgICWLlyJXPnzuXBBx/0vA6Ad999l4CAgIP+Gx3KvHnz+Otf/4pGo8HHx4frrruOBx54AEVReOqpp3j77bfRaDTExsby8ssvk5aWBkBiYiJBQUFoNBqCg4OZN28e/fr1A/D8N3I4HAwZMoS3336bgICAI66jJziVla5CCCFEB40GjOHqLWFU132eQPbAMHYXFP8MrfUdx2p93BWy7WFsshrIhiaDOR60MoBI9E0+PoGEhowjNGQcAC5XK3V1mzztCCqrvj5gOFd7X9gcjMZBaDTycVghhPg1ogeYueKP2Wz9eS8/f7KLhc/mkjIqijMuGYAxWHpvC9HddDodb731Fnfcccch95977rmce646OmjChAnMmTOH7Gw121q+fDnjx49n0aJFBz3P39+f/Px8ACorK7n22mux2+38+c9/7nLcggULKC8vp6CgAK1WS2lpKYGBgfzyyy8AzJ07l9zcXF5++WXPcxYvXsygQYP48MMPefrpp3nkkUd45JFHADAajZ7rghoy33fffTzwwANdrvv0008TGRnJhg0bANi2bRu+vl2LTkpLS3nqqadYu3YtZrOZ+vp6qqqquPjii4GOULvz9RYtWsRzzz3HFVdccdD35KqrruryOtrPcTSLFy/mhRde4JtvviEmJoaWlhbmzZsHwCuvvMLKlStZv349AQEBfPPNN1x0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\n", "text/plain": [ "
" ] @@ -275,7 +313,7 @@ " '1B4S6S7G0TW5EE83BO58', '5493002H80P81B3HXL31', '549300K5VIUTJXQL7X75'])].pivot(index='year', columns='company_name', values='co2_target_by_year').reset_index()\n", "\n", "# Must plot the first few columns, but then plot 1/3rd of the companies so as not to over-clutter the graph\n", - "plottable_df.iloc[:, [x for x in list(range(0,3)) + list(range(3,87,3))]].plot(x='year', kind='line', figsize=(24,10))" + "plottable_df.iloc[:, [x for x in list(range(0,3)) + list(range(3,93,5))]].plot(x='year', kind='line', figsize=(24,10))" ] }, { @@ -386,72 +424,72 @@ " \n", " \n", " 0\n", - " Otter Tail Corp.\n", - " US6896481032\n", + " Public Service Enterprise Group\n", + " US7445731067\n", " demo\n", " S1+S2\n", " benchmark_1\n", - " 2.726492\n", - " 2.924121\n", + " 1.726799\n", + " 1.869444\n", " \n", " \n", " 1\n", - " Eversource Energy\n", - " US30040W1080\n", + " WORTHINGTON INDUSTRIES INC\n", + " US9818111026\n", " demo\n", " S1+S2\n", " benchmark_1\n", - " 1.834250\n", - " 1.820618\n", + " 1.285214\n", + " 1.285214\n", " \n", " \n", " 2\n", - " MDU Resources Group\n", - " US5526901096\n", + " COMMERCIAL METALS CO\n", + " US2017231034\n", " demo\n", " S1+S2\n", " benchmark_1\n", - " 2.623665\n", - " 2.996850\n", + " 1.341723\n", + " 1.304555\n", " \n", " \n", " 3\n", - " FirstEnergy Corp.\n", - " US3379321074\n", + " AES Corp.\n", + " US00130H1059\n", " demo\n", " S1+S2\n", " benchmark_1\n", - " 2.767417\n", - " 2.144022\n", + " 2.874460\n", + " 2.433496\n", " \n", " \n", " 4\n", - " Avista Corp.\n", - " US05379B1070\n", + " Fortis, Inc\n", + " CA3495531079\n", " demo\n", " S1+S2\n", " benchmark_1\n", - " 1.893383\n", - " 2.069748\n", + " 3.152616\n", + " 2.184698\n", " \n", " \n", "\n", "" ], "text/plain": [ - " company_name company_id source scope benchmark \\\n", - "0 Otter Tail Corp. US6896481032 demo S1+S2 benchmark_1 \n", - "1 Eversource Energy US30040W1080 demo S1+S2 benchmark_1 \n", - "2 MDU Resources Group US5526901096 demo S1+S2 benchmark_1 \n", - "3 FirstEnergy Corp. US3379321074 demo S1+S2 benchmark_1 \n", - "4 Avista Corp. US05379B1070 demo S1+S2 benchmark_1 \n", + " company_name company_id source scope benchmark \\\n", + "0 Public Service Enterprise Group US7445731067 demo S1+S2 benchmark_1 \n", + "1 WORTHINGTON INDUSTRIES INC US9818111026 demo S1+S2 benchmark_1 \n", + "2 COMMERCIAL METALS CO US2017231034 demo S1+S2 benchmark_1 \n", + "3 AES Corp. US00130H1059 demo S1+S2 benchmark_1 \n", + "4 Fortis, Inc CA3495531079 demo S1+S2 benchmark_1 \n", "\n", " trajectory_temperature_score target_temperature_score \n", - "0 2.726492 2.924121 \n", - "1 1.834250 1.820618 \n", - "2 2.623665 2.996850 \n", - "3 2.767417 2.144022 \n", - "4 1.893383 2.069748 " + "0 1.726799 1.869444 \n", + "1 1.285214 1.285214 \n", + "2 1.341723 1.304555 \n", + "3 2.874460 2.433496 \n", + "4 3.152616 2.184698 " ] }, "execution_count": 10, @@ -501,6 +539,7 @@ " \n", " company_name\n", " AES Corp.\n", + " AK STEEL HOLDING CORP\n", " ALLETE, Inc.\n", " Algonquin Power & Utilities Corp.\n", " Alliant Energy\n", @@ -508,49 +547,49 @@ " American Electric Power Co., Inc.\n", " Avangrid, Inc.\n", " Avista Corp.\n", - " CMS Energy\n", - " Cleco Partners LP\n", + " CARPENTER TECHNOLOGY CORP\n", " ...\n", - " Otter Tail Corp.\n", - " PNM Resources, Inc.\n", - " PPL\n", - " Pinnacle West Capital Corp.\n", - " Portland General Electric Co.\n", " Public Service Enterprise Group\n", + " STEEL DYNAMICS INC\n", " Sempra Energy\n", " Southern Co.\n", + " TENARIS SA\n", + " TIMKENSTEEL CORP\n", + " UNITED STATES STEEL CORP\n", " WEC Energy Group\n", + " WORTHINGTON INDUSTRIES INC\n", " Xcel Energy, Inc.\n", " \n", " \n", " \n", " \n", " trajectory_temperature_score\n", - " 2.877433\n", - " 2.556474\n", - " 2.454566\n", - " 2.230554\n", - " 2.111884\n", - " 2.574331\n", - " 1.314070\n", - " 1.893383\n", - " 2.537965\n", - " 2.673915\n", + " 2.874460\n", + " 2.400967\n", + " 2.540841\n", + " 2.440054\n", + " 2.211943\n", + " 2.113541\n", + " 2.566781\n", + " 1.317737\n", + " 1.883611\n", + " 1.624396\n", " ...\n", - " 2.726492\n", - " 2.284098\n", - " 3.179045\n", - " 2.148037\n", - " 2.296851\n", - " 1.715831\n", - " 1.424243\n", - " 2.279673\n", - " 2.549501\n", - " 2.292168\n", + " 1.726799\n", + " 1.337862\n", + " 1.422185\n", + " 2.271201\n", + " 1.517871\n", + " 1.318847\n", + " 1.660977\n", + " 2.539351\n", + " 1.285214\n", + " 2.289638\n", " \n", " \n", " target_temperature_score\n", " 2.433496\n", + " 1.917830\n", " 2.194297\n", " 2.762842\n", " 1.903195\n", @@ -558,75 +597,70 @@ " 2.352981\n", " 1.278198\n", " 2.069748\n", - " 1.963172\n", - " 3.013256\n", + " 1.451154\n", " ...\n", - " 2.924121\n", - " 1.795421\n", - " 2.901840\n", - " 1.713774\n", - " 1.676990\n", " 1.869444\n", + " 1.308582\n", " 1.367042\n", " 2.186023\n", + " 1.517871\n", + " 1.293037\n", + " 1.487996\n", " 2.523781\n", + " 1.285214\n", " 1.767726\n", " \n", " \n", "\n", - "

2 rows × 35 columns

\n", + "

2 rows × 42 columns

\n", "" ], "text/plain": [ - "company_name AES Corp. ALLETE, Inc. \\\n", - "trajectory_temperature_score 2.877433 2.556474 \n", - "target_temperature_score 2.433496 2.194297 \n", + "company_name AES Corp. AK STEEL HOLDING CORP ALLETE, Inc. \\\n", + "trajectory_temperature_score 2.874460 2.400967 2.540841 \n", + "target_temperature_score 2.433496 1.917830 2.194297 \n", "\n", "company_name Algonquin Power & Utilities Corp. \\\n", - "trajectory_temperature_score 2.454566 \n", + "trajectory_temperature_score 2.440054 \n", "target_temperature_score 2.762842 \n", "\n", "company_name Alliant Energy Ameren Corp. \\\n", - "trajectory_temperature_score 2.230554 2.111884 \n", + "trajectory_temperature_score 2.211943 2.113541 \n", "target_temperature_score 1.903195 1.957490 \n", "\n", "company_name American Electric Power Co., Inc. \\\n", - "trajectory_temperature_score 2.574331 \n", + "trajectory_temperature_score 2.566781 \n", "target_temperature_score 2.352981 \n", "\n", - "company_name Avangrid, Inc. Avista Corp. CMS Energy \\\n", - "trajectory_temperature_score 1.314070 1.893383 2.537965 \n", - "target_temperature_score 1.278198 2.069748 1.963172 \n", - "\n", - "company_name Cleco Partners LP ... Otter Tail Corp. \\\n", - "trajectory_temperature_score 2.673915 ... 2.726492 \n", - "target_temperature_score 3.013256 ... 2.924121 \n", + "company_name Avangrid, Inc. Avista Corp. \\\n", + "trajectory_temperature_score 1.317737 1.883611 \n", + "target_temperature_score 1.278198 2.069748 \n", "\n", - "company_name PNM Resources, Inc. PPL \\\n", - "trajectory_temperature_score 2.284098 3.179045 \n", - "target_temperature_score 1.795421 2.901840 \n", + "company_name CARPENTER TECHNOLOGY CORP ... \\\n", + "trajectory_temperature_score 1.624396 ... \n", + "target_temperature_score 1.451154 ... \n", "\n", - "company_name Pinnacle West Capital Corp. \\\n", - "trajectory_temperature_score 2.148037 \n", - "target_temperature_score 1.713774 \n", + "company_name Public Service Enterprise Group \\\n", + "trajectory_temperature_score 1.726799 \n", + "target_temperature_score 1.869444 \n", "\n", - "company_name Portland General Electric Co. \\\n", - "trajectory_temperature_score 2.296851 \n", - "target_temperature_score 1.676990 \n", + "company_name STEEL DYNAMICS INC Sempra Energy Southern Co. \\\n", + "trajectory_temperature_score 1.337862 1.422185 2.271201 \n", + "target_temperature_score 1.308582 1.367042 2.186023 \n", "\n", - "company_name Public Service Enterprise Group Sempra Energy \\\n", - "trajectory_temperature_score 1.715831 1.424243 \n", - "target_temperature_score 1.869444 1.367042 \n", + "company_name TENARIS SA TIMKENSTEEL CORP \\\n", + "trajectory_temperature_score 1.517871 1.318847 \n", + "target_temperature_score 1.517871 1.293037 \n", "\n", - "company_name Southern Co. WEC Energy Group \\\n", - "trajectory_temperature_score 2.279673 2.549501 \n", - "target_temperature_score 2.186023 2.523781 \n", + "company_name UNITED STATES STEEL CORP WEC Energy Group \\\n", + "trajectory_temperature_score 1.660977 2.539351 \n", + "target_temperature_score 1.487996 2.523781 \n", "\n", - "company_name Xcel Energy, Inc. \n", - "trajectory_temperature_score 2.292168 \n", - "target_temperature_score 1.767726 \n", + "company_name WORTHINGTON INDUSTRIES INC Xcel Energy, Inc. \n", + "trajectory_temperature_score 1.285214 2.289638 \n", + "target_temperature_score 1.285214 1.767726 \n", "\n", - "[2 rows x 35 columns]" + "[2 rows x 42 columns]" ] }, "execution_count": 12, @@ -656,7 +690,7 @@ }, { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ "
" ] @@ -910,35 +944,35 @@ " AES Corp.\n", " 2NUNNB7D43COUIRE5295\n", " 4351252\n", - " 2.655464\n", + " 2.653978\n", " \n", " \n", " US0158577090\n", " Algonquin Power & Utilities Corp.\n", " 549300K5VIUTJXQL7X75\n", " 2228185\n", - " 2.608704\n", + " 2.601448\n", " \n", " \n", " US0185223007\n", " ALLETE, Inc.\n", " 549300NNLSIMY6Z8OT86\n", " 3829481\n", - " 2.375385\n", + " 2.367569\n", " \n", " \n", " US0188021085\n", " Alliant Energy\n", " 5493009ML300G373MZ12\n", " 3829481\n", - " 2.066875\n", + " 2.057569\n", " \n", " \n", " US0236081024\n", " Ameren Corp.\n", " XRZQ5S7HYJFPHJ78L959\n", " 15917812\n", - " 2.034687\n", + " 2.035515\n", " \n", " \n", "\n", @@ -955,11 +989,11 @@ "\n", " investment_value pa_score \n", "company_id \n", - "US00130H1059 4351252 2.655464 \n", - "US0158577090 2228185 2.608704 \n", - "US0185223007 3829481 2.375385 \n", - "US0188021085 3829481 2.066875 \n", - "US0236081024 15917812 2.034687 " + "US00130H1059 4351252 2.653978 \n", + "US0158577090 2228185 2.601448 \n", + "US0185223007 3829481 2.367569 \n", + "US0188021085 3829481 2.057569 \n", + "US0236081024 15917812 2.035515 " ] }, "execution_count": 17, @@ -1041,40 +1075,40 @@ " AES Corp.\n", " 2NUNNB7D43COUIRE5295\n", " 4351252\n", - " 2.655464\n", - " 0.016333\n", + " 2.653978\n", + " 0.016323\n", " \n", " \n", " US0158577090\n", " Algonquin Power & Utilities Corp.\n", " 549300K5VIUTJXQL7X75\n", " 2228185\n", - " 2.608704\n", - " 0.008216\n", + " 2.601448\n", + " 0.008193\n", " \n", " \n", " US0185223007\n", " ALLETE, Inc.\n", " 549300NNLSIMY6Z8OT86\n", " 3829481\n", - " 2.375385\n", - " 0.012858\n", + " 2.367569\n", + " 0.012816\n", " \n", " \n", " US0188021085\n", " Alliant Energy\n", " 5493009ML300G373MZ12\n", " 3829481\n", - " 2.066875\n", - " 0.011188\n", + " 2.057569\n", + " 0.011138\n", " \n", " \n", " US0236081024\n", " Ameren Corp.\n", " XRZQ5S7HYJFPHJ78L959\n", " 15917812\n", - " 2.034687\n", - " 0.045781\n", + " 2.035515\n", + " 0.045799\n", " \n", " \n", "\n", @@ -1091,11 +1125,11 @@ "\n", " investment_value pa_score WATS_weight \n", "company_id \n", - "US00130H1059 4351252 2.655464 0.016333 \n", - "US0158577090 2228185 2.608704 0.008216 \n", - "US0185223007 3829481 2.375385 0.012858 \n", - "US0188021085 3829481 2.066875 0.011188 \n", - "US0236081024 15917812 2.034687 0.045781 " + "US00130H1059 4351252 2.653978 0.016323 \n", + "US0158577090 2228185 2.601448 0.008193 \n", + "US0185223007 3829481 2.367569 0.012816 \n", + "US0188021085 3829481 2.057569 0.011138 \n", + "US0236081024 15917812 2.035515 0.045799 " ] }, "execution_count": 19, @@ -1118,7 +1152,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "Portfolio temperature score based on WATS = 1.6955157492425892\n" + "Portfolio temperature score based on WATS = 1.6523262430797563\n" ] } ], @@ -1186,45 +1220,45 @@ " AES Corp.\n", " 2NUNNB7D43COUIRE5295\n", " 4351252\n", - " 2.655464\n", - " 0.016333\n", - " 0.041256\n", + " 2.653978\n", + " 0.016323\n", + " 0.041646\n", " \n", " \n", " US0158577090\n", " Algonquin Power & Utilities Corp.\n", " 549300K5VIUTJXQL7X75\n", " 2228185\n", - " 2.608704\n", - " 0.008216\n", - " 0.124227\n", + " 2.601448\n", + " 0.008193\n", + " 0.125123\n", " \n", " \n", " US0185223007\n", " ALLETE, Inc.\n", " 549300NNLSIMY6Z8OT86\n", " 3829481\n", - " 2.375385\n", - " 0.012858\n", - " 0.013485\n", + " 2.367569\n", + " 0.012816\n", + " 0.013576\n", " \n", " \n", " US0188021085\n", " Alliant Energy\n", " 5493009ML300G373MZ12\n", " 3829481\n", - " 2.066875\n", - " 0.011188\n", - " 0.029667\n", + " 2.057569\n", + " 0.011138\n", + " 0.029829\n", " \n", " \n", " US0236081024\n", " Ameren Corp.\n", " XRZQ5S7HYJFPHJ78L959\n", " 15917812\n", - " 2.034687\n", - " 0.045781\n", - " 0.077149\n", + " 2.035515\n", + " 0.045799\n", + " 0.077954\n", " \n", " \n", "\n", @@ -1241,11 +1275,11 @@ "\n", " investment_value pa_score WATS_weight TETS_weight \n", "company_id \n", - "US00130H1059 4351252 2.655464 0.016333 0.041256 \n", - "US0158577090 2228185 2.608704 0.008216 0.124227 \n", - "US0185223007 3829481 2.375385 0.012858 0.013485 \n", - "US0188021085 3829481 2.066875 0.011188 0.029667 \n", - "US0236081024 15917812 2.034687 0.045781 0.077149 " + "US00130H1059 4351252 2.653978 0.016323 0.041646 \n", + "US0158577090 2228185 2.601448 0.008193 0.125123 \n", + "US0185223007 3829481 2.367569 0.012816 0.013576 \n", + "US0188021085 3829481 2.057569 0.011138 0.029829 \n", + "US0236081024 15917812 2.035515 0.045799 0.077954 " ] }, "execution_count": 21, @@ -1268,7 +1302,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "Portfolio temperature score based on TETS = 2.29776054319312\n" + "Portfolio temperature score based on TETS = 2.257638350627624\n" ] } ], @@ -1328,19 +1362,19 @@ " AES Corp.\n", " 2NUNNB7D43COUIRE5295\n", " 4351252\n", - " 2.655464\n", - " 0.016333\n", - " 0.041256\n", - " 0.043898\n", + " 2.653978\n", + " 0.016323\n", + " 0.041646\n", + " 0.043874\n", " \n", " \n", " US0158577090\n", " Algonquin Power & Utilities Corp.\n", " 549300K5VIUTJXQL7X75\n", " 2228185\n", - " 2.608704\n", - " 0.008216\n", - " 0.124227\n", + " 2.601448\n", + " 0.008193\n", + " 0.125123\n", " NaN\n", " \n", " \n", @@ -1348,30 +1382,30 @@ " ALLETE, Inc.\n", " 549300NNLSIMY6Z8OT86\n", " 3829481\n", - " 2.375385\n", - " 0.012858\n", - " 0.013485\n", - " 0.015481\n", + " 2.367569\n", + " 0.012816\n", + " 0.013576\n", + " 0.015430\n", " \n", " \n", " US0188021085\n", " Alliant Energy\n", " 5493009ML300G373MZ12\n", " 3829481\n", - " 2.066875\n", - " 0.011188\n", - " 0.029667\n", - " 0.036463\n", + " 2.057569\n", + " 0.011138\n", + " 0.029829\n", + " 0.036299\n", " \n", " \n", " US0236081024\n", " Ameren Corp.\n", " XRZQ5S7HYJFPHJ78L959\n", " 15917812\n", - " 2.034687\n", - " 0.045781\n", - " 0.077149\n", - " 0.056871\n", + " 2.035515\n", + " 0.045799\n", + " 0.077954\n", + " 0.056895\n", " \n", " \n", "\n", @@ -1388,19 +1422,19 @@ "\n", " investment_value pa_score WATS_weight TETS_weight \\\n", "company_id \n", - "US00130H1059 4351252 2.655464 0.016333 0.041256 \n", - "US0158577090 2228185 2.608704 0.008216 0.124227 \n", - "US0185223007 3829481 2.375385 0.012858 0.013485 \n", - "US0188021085 3829481 2.066875 0.011188 0.029667 \n", - "US0236081024 15917812 2.034687 0.045781 0.077149 \n", + "US00130H1059 4351252 2.653978 0.016323 0.041646 \n", + "US0158577090 2228185 2.601448 0.008193 0.125123 \n", + "US0185223007 3829481 2.367569 0.012816 0.013576 \n", + "US0188021085 3829481 2.057569 0.011138 0.029829 \n", + "US0236081024 15917812 2.035515 0.045799 0.077954 \n", "\n", " MOTS_weight \n", "company_id \n", - "US00130H1059 0.043898 \n", + "US00130H1059 0.043874 \n", "US0158577090 NaN \n", - "US0185223007 0.015481 \n", - "US0188021085 0.036463 \n", - "US0236081024 0.056871 " + "US0185223007 0.015430 \n", + "US0188021085 0.036299 \n", + "US0236081024 0.056895 " ] }, "execution_count": 23, @@ -1423,7 +1457,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "Portfolio temperature score based on MOTS = 2.1449874683191408\n" + "Portfolio temperature score based on MOTS = 1.9793715406044958\n" ] } ], @@ -1485,20 +1519,20 @@ " AES Corp.\n", " 2NUNNB7D43COUIRE5295\n", " 4351252\n", - " 2.655464\n", - " 0.016333\n", - " 0.041256\n", - " 0.043898\n", - " 0.026521\n", + " 2.653978\n", + " 0.016323\n", + " 0.041646\n", + " 0.043874\n", + " 0.026506\n", " \n", " \n", " US0158577090\n", " Algonquin Power & Utilities Corp.\n", " 549300K5VIUTJXQL7X75\n", " 2228185\n", - " 2.608704\n", - " 0.008216\n", - " 0.124227\n", + " 2.601448\n", + " 0.008193\n", + " 0.125123\n", " NaN\n", " NaN\n", " \n", @@ -1507,33 +1541,33 @@ " ALLETE, Inc.\n", " 549300NNLSIMY6Z8OT86\n", " 3829481\n", - " 2.375385\n", - " 0.012858\n", - " 0.013485\n", - " 0.015481\n", - " 0.013691\n", + " 2.367569\n", + " 0.012816\n", + " 0.013576\n", + " 0.015430\n", + " 0.013646\n", " \n", " \n", " US0188021085\n", " Alliant Energy\n", " 5493009ML300G373MZ12\n", " 3829481\n", - " 2.066875\n", - " 0.011188\n", - " 0.029667\n", - " 0.036463\n", - " 0.037812\n", + " 2.057569\n", + " 0.011138\n", + " 0.029829\n", + " 0.036299\n", + " 0.037641\n", " \n", " \n", " US0236081024\n", " Ameren Corp.\n", " XRZQ5S7HYJFPHJ78L959\n", " 15917812\n", - " 2.034687\n", - " 0.045781\n", - " 0.077149\n", - " 0.056871\n", - " 0.054872\n", + " 2.035515\n", + " 0.045799\n", + " 0.077954\n", + " 0.056895\n", + " 0.054894\n", " \n", " \n", "\n", @@ -1550,19 +1584,19 @@ "\n", " investment_value pa_score WATS_weight TETS_weight \\\n", "company_id \n", - "US00130H1059 4351252 2.655464 0.016333 0.041256 \n", - "US0158577090 2228185 2.608704 0.008216 0.124227 \n", - "US0185223007 3829481 2.375385 0.012858 0.013485 \n", - "US0188021085 3829481 2.066875 0.011188 0.029667 \n", - "US0236081024 15917812 2.034687 0.045781 0.077149 \n", + "US00130H1059 4351252 2.653978 0.016323 0.041646 \n", + "US0158577090 2228185 2.601448 0.008193 0.125123 \n", + "US0185223007 3829481 2.367569 0.012816 0.013576 \n", + "US0188021085 3829481 2.057569 0.011138 0.029829 \n", + "US0236081024 15917812 2.035515 0.045799 0.077954 \n", "\n", " MOTS_weight EOTS_weight \n", "company_id \n", - "US00130H1059 0.043898 0.026521 \n", + "US00130H1059 0.043874 0.026506 \n", "US0158577090 NaN NaN \n", - "US0185223007 0.015481 0.013691 \n", - "US0188021085 0.036463 0.037812 \n", - "US0236081024 0.056871 0.054872 " + "US0185223007 0.015430 0.013646 \n", + "US0188021085 0.036299 0.037641 \n", + "US0236081024 0.056895 0.054894 " ] }, "execution_count": 25, @@ -1585,7 +1619,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "Portfolio temperature score based on EOTS = 2.126521492849047\n" + "Portfolio temperature score based on EOTS = 2.106844694461046\n" ] } ], @@ -1649,21 +1683,21 @@ " AES Corp.\n", " 2NUNNB7D43COUIRE5295\n", " 4351252\n", - " 2.655464\n", - " 0.016333\n", - " 0.041256\n", - " 0.043898\n", - " 0.026521\n", - " 0.048083\n", + " 2.653978\n", + " 0.016323\n", + " 0.041646\n", + " 0.043874\n", + " 0.026506\n", + " 0.048056\n", " \n", " \n", " US0158577090\n", " Algonquin Power & Utilities Corp.\n", " 549300K5VIUTJXQL7X75\n", " 2228185\n", - " 2.608704\n", - " 0.008216\n", - " 0.124227\n", + " 2.601448\n", + " 0.008193\n", + " 0.125123\n", " NaN\n", " NaN\n", " NaN\n", @@ -1673,36 +1707,36 @@ " ALLETE, Inc.\n", " 549300NNLSIMY6Z8OT86\n", " 3829481\n", - " 2.375385\n", - " 0.012858\n", - " 0.013485\n", - " 0.015481\n", - " 0.013691\n", - " 0.015741\n", + " 2.367569\n", + " 0.012816\n", + " 0.013576\n", + " 0.015430\n", + " 0.013646\n", + " 0.015689\n", " \n", " \n", " US0188021085\n", " Alliant Energy\n", " 5493009ML300G373MZ12\n", " 3829481\n", - " 2.066875\n", - " 0.011188\n", - " 0.029667\n", - " 0.036463\n", - " 0.037812\n", - " 0.036535\n", + " 2.057569\n", + " 0.011138\n", + " 0.029829\n", + " 0.036299\n", + " 0.037641\n", + " 0.036371\n", " \n", " \n", " US0236081024\n", " Ameren Corp.\n", " XRZQ5S7HYJFPHJ78L959\n", " 15917812\n", - " 2.034687\n", - " 0.045781\n", - " 0.077149\n", - " 0.056871\n", - " 0.054872\n", - " 0.056955\n", + " 2.035515\n", + " 0.045799\n", + " 0.077954\n", + " 0.056895\n", + " 0.054894\n", + " 0.056979\n", " \n", " \n", "\n", @@ -1719,19 +1753,19 @@ "\n", " investment_value pa_score WATS_weight TETS_weight \\\n", "company_id \n", - "US00130H1059 4351252 2.655464 0.016333 0.041256 \n", - "US0158577090 2228185 2.608704 0.008216 0.124227 \n", - "US0185223007 3829481 2.375385 0.012858 0.013485 \n", - "US0188021085 3829481 2.066875 0.011188 0.029667 \n", - "US0236081024 15917812 2.034687 0.045781 0.077149 \n", + "US00130H1059 4351252 2.653978 0.016323 0.041646 \n", + "US0158577090 2228185 2.601448 0.008193 0.125123 \n", + "US0185223007 3829481 2.367569 0.012816 0.013576 \n", + "US0188021085 3829481 2.057569 0.011138 0.029829 \n", + "US0236081024 15917812 2.035515 0.045799 0.077954 \n", "\n", " MOTS_weight EOTS_weight ECOTS_weight \n", "company_id \n", - "US00130H1059 0.043898 0.026521 0.048083 \n", + "US00130H1059 0.043874 0.026506 0.048056 \n", "US0158577090 NaN NaN NaN \n", - "US0185223007 0.015481 0.013691 0.015741 \n", - "US0188021085 0.036463 0.037812 0.036535 \n", - "US0236081024 0.056871 0.054872 0.056955 " + "US0185223007 0.015430 0.013646 0.015689 \n", + "US0188021085 0.036299 0.037641 0.036371 \n", + "US0236081024 0.056895 0.054894 0.056979 " ] }, "execution_count": 27, @@ -1754,7 +1788,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "Portfolio temperature score based on ECOTS = 2.1381048407266925\n" + "Portfolio temperature score based on ECOTS = 1.971071882709424\n" ] } ], @@ -1820,65 +1854,65 @@ " AES Corp.\n", " 2NUNNB7D43COUIRE5295\n", " 4351252\n", - " 2.655464\n", - " 0.016333\n", - " 0.041256\n", - " 0.043898\n", - " 0.026521\n", - " 0.048083\n", - " 0.066360\n", + " 2.653978\n", + " 0.016323\n", + " 0.041646\n", + " 0.043874\n", + " 0.026506\n", + " 0.048056\n", + " 0.066323\n", " \n", " \n", " US0158577090\n", " Algonquin Power & Utilities Corp.\n", " 549300K5VIUTJXQL7X75\n", " 2228185\n", - " 2.608704\n", - " 0.008216\n", - " 0.124227\n", + " 2.601448\n", + " 0.008193\n", + " 0.125123\n", " NaN\n", " NaN\n", " NaN\n", - " 0.021159\n", + " 0.021100\n", " \n", " \n", " US0185223007\n", " ALLETE, Inc.\n", " 549300NNLSIMY6Z8OT86\n", " 3829481\n", - " 2.375385\n", - " 0.012858\n", - " 0.013485\n", - " 0.015481\n", - " 0.013691\n", - " 0.015741\n", - " 0.009673\n", + " 2.367569\n", + " 0.012816\n", + " 0.013576\n", + " 0.015430\n", + " 0.013646\n", + " 0.015689\n", + " 0.009641\n", " \n", " \n", " US0188021085\n", " Alliant Energy\n", " 5493009ML300G373MZ12\n", " 3829481\n", - " 2.066875\n", - " 0.011188\n", - " 0.029667\n", - " 0.036463\n", - " 0.037812\n", - " 0.036535\n", - " 0.025637\n", + " 2.057569\n", + " 0.011138\n", + " 0.029829\n", + " 0.036299\n", + " 0.037641\n", + " 0.036371\n", + " 0.025521\n", " \n", " \n", " US0236081024\n", " Ameren Corp.\n", " XRZQ5S7HYJFPHJ78L959\n", " 15917812\n", - " 2.034687\n", - " 0.045781\n", - " 0.077149\n", - " 0.056871\n", - " 0.054872\n", - " 0.056955\n", - " 0.043722\n", + " 2.035515\n", + " 0.045799\n", + " 0.077954\n", + " 0.056895\n", + " 0.054894\n", + " 0.056979\n", + " 0.043740\n", " \n", " \n", "\n", @@ -1895,19 +1929,19 @@ "\n", " investment_value pa_score WATS_weight TETS_weight \\\n", "company_id \n", - "US00130H1059 4351252 2.655464 0.016333 0.041256 \n", - "US0158577090 2228185 2.608704 0.008216 0.124227 \n", - "US0185223007 3829481 2.375385 0.012858 0.013485 \n", - "US0188021085 3829481 2.066875 0.011188 0.029667 \n", - "US0236081024 15917812 2.034687 0.045781 0.077149 \n", + "US00130H1059 4351252 2.653978 0.016323 0.041646 \n", + "US0158577090 2228185 2.601448 0.008193 0.125123 \n", + "US0185223007 3829481 2.367569 0.012816 0.013576 \n", + "US0188021085 3829481 2.057569 0.011138 0.029829 \n", + "US0236081024 15917812 2.035515 0.045799 0.077954 \n", "\n", " MOTS_weight EOTS_weight ECOTS_weight AOTS_weight \n", "company_id \n", - "US00130H1059 0.043898 0.026521 0.048083 0.066360 \n", - "US0158577090 NaN NaN NaN 0.021159 \n", - "US0185223007 0.015481 0.013691 0.015741 0.009673 \n", - "US0188021085 0.036463 0.037812 0.036535 0.025637 \n", - "US0236081024 0.056871 0.054872 0.056955 0.043722 " + "US00130H1059 0.043874 0.026506 0.048056 0.066323 \n", + "US0158577090 NaN NaN NaN 0.021100 \n", + "US0185223007 0.015430 0.013646 0.015689 0.009641 \n", + "US0188021085 0.036299 0.037641 0.036371 0.025521 \n", + "US0236081024 0.056895 0.054894 0.056979 0.043740 " ] }, "execution_count": 29, @@ -1930,7 +1964,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "Portfolio temperature score based on AOTS = 2.150467013892828\n" + "Portfolio temperature score based on AOTS = 1.9949225831738602\n" ] } ], @@ -1998,70 +2032,70 @@ " AES Corp.\n", " 2NUNNB7D43COUIRE5295\n", " 4351252\n", - " 2.655464\n", - " 0.016333\n", - " 0.041256\n", - " 0.043898\n", - " 0.026521\n", - " 0.048083\n", - " 0.066360\n", - " 0.098945\n", + " 2.653978\n", + " 0.016323\n", + " 0.041646\n", + " 0.043874\n", + " 0.026506\n", + " 0.048056\n", + " 0.066323\n", + " 0.098889\n", " \n", " \n", " US0158577090\n", " Algonquin Power & Utilities Corp.\n", " 549300K5VIUTJXQL7X75\n", " 2228185\n", - " 2.608704\n", - " 0.008216\n", - " 0.124227\n", + " 2.601448\n", + " 0.008193\n", + " 0.125123\n", " NaN\n", " NaN\n", " NaN\n", - " 0.021159\n", - " 0.015516\n", + " 0.021100\n", + " 0.015473\n", " \n", " \n", " US0185223007\n", " ALLETE, Inc.\n", " 549300NNLSIMY6Z8OT86\n", " 3829481\n", - " 2.375385\n", - " 0.012858\n", - " 0.013485\n", - " 0.015481\n", - " 0.013691\n", - " 0.015741\n", - " 0.009673\n", - " 0.010776\n", + " 2.367569\n", + " 0.012816\n", + " 0.013576\n", + " 0.015430\n", + " 0.013646\n", + " 0.015689\n", + " 0.009641\n", + " 0.010740\n", " \n", " \n", " US0188021085\n", " Alliant Energy\n", " 5493009ML300G373MZ12\n", " 3829481\n", - " 2.066875\n", - " 0.011188\n", - " 0.029667\n", - " 0.036463\n", - " 0.037812\n", - " 0.036535\n", - " 0.025637\n", - " 0.027573\n", + " 2.057569\n", + " 0.011138\n", + " 0.029829\n", + " 0.036299\n", + " 0.037641\n", + " 0.036371\n", + " 0.025521\n", + " 0.027449\n", " \n", " \n", " US0236081024\n", " Ameren Corp.\n", " XRZQ5S7HYJFPHJ78L959\n", " 15917812\n", - " 2.034687\n", - " 0.045781\n", - " 0.077149\n", - " 0.056871\n", - " 0.054872\n", - " 0.056955\n", - " 0.043722\n", - " 0.043975\n", + " 2.035515\n", + " 0.045799\n", + " 0.077954\n", + " 0.056895\n", + " 0.054894\n", + " 0.056979\n", + " 0.043740\n", + " 0.043993\n", " \n", " \n", "\n", @@ -2078,19 +2112,19 @@ "\n", " investment_value pa_score WATS_weight TETS_weight \\\n", "company_id \n", - "US00130H1059 4351252 2.655464 0.016333 0.041256 \n", - "US0158577090 2228185 2.608704 0.008216 0.124227 \n", - "US0185223007 3829481 2.375385 0.012858 0.013485 \n", - "US0188021085 3829481 2.066875 0.011188 0.029667 \n", - "US0236081024 15917812 2.034687 0.045781 0.077149 \n", + "US00130H1059 4351252 2.653978 0.016323 0.041646 \n", + "US0158577090 2228185 2.601448 0.008193 0.125123 \n", + "US0185223007 3829481 2.367569 0.012816 0.013576 \n", + "US0188021085 3829481 2.057569 0.011138 0.029829 \n", + "US0236081024 15917812 2.035515 0.045799 0.077954 \n", "\n", " MOTS_weight EOTS_weight ECOTS_weight AOTS_weight ROTS_weight \n", "company_id \n", - "US00130H1059 0.043898 0.026521 0.048083 0.066360 0.098945 \n", - "US0158577090 NaN NaN NaN 0.021159 0.015516 \n", - "US0185223007 0.015481 0.013691 0.015741 0.009673 0.010776 \n", - "US0188021085 0.036463 0.037812 0.036535 0.025637 0.027573 \n", - "US0236081024 0.056871 0.054872 0.056955 0.043722 0.043975 " + "US00130H1059 0.043874 0.026506 0.048056 0.066323 0.098889 \n", + "US0158577090 NaN NaN NaN 0.021100 0.015473 \n", + "US0185223007 0.015430 0.013646 0.015689 0.009641 0.010740 \n", + "US0188021085 0.036299 0.037641 0.036371 0.025521 0.027449 \n", + "US0236081024 0.056895 0.054894 0.056979 0.043740 0.043993 " ] }, "execution_count": 31, @@ -2113,7 +2147,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "Portfolio temperature score based on ROTS = 2.185002474622946\n" + "Portfolio temperature score based on ROTS = 1.9673694510968456\n" ] } ], From ce2860b321cc5579a7b18b306ebf22214e837e73 Mon Sep 17 00:00:00 2001 From: MichaelTiemannOSC Date: Mon, 24 Jan 2022 21:52:51 +0000 Subject: [PATCH 017/345] Inherit fixes to region info so that POSTCO and GERDAU are not lost. Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- examples/vault_demo_n0.ipynb | 964 ++++++++++++++++++++++++----------- 1 file changed, 671 insertions(+), 293 deletions(-) diff --git a/examples/vault_demo_n0.ipynb b/examples/vault_demo_n0.ipynb index 859fffca..2db2898b 100644 --- a/examples/vault_demo_n0.ipynb +++ b/examples/vault_demo_n0.ipynb @@ -103,6 +103,7 @@ " ('benchmark_prod',),\n", " ('cat',),\n", " ('company_data',),\n", + " ('cumulative_budget_1',),\n", " ('cumulative_emissions',),\n", " ('data_vault',),\n", " ('demo_metastore',),\n", @@ -121,9 +122,11 @@ " ('odsc_xxx',),\n", " ('osc_mlcop',),\n", " ('osc_rocks',),\n", + " ('overshoot_ratios',),\n", " ('parquet_partitions_tutorial',),\n", " ('production_data',),\n", " ('pudl_1995_al',),\n", + " ('temperature_scores',),\n", " ('test3',),\n", " ('trajectory_data',),\n", " ('zztop',)]" @@ -140,16 +143,17 @@ " host = os.environ['TRINO_HOST'],\n", " port = os.environ['TRINO_PORT']\n", ")\n", + "\n", + "ingest_catalog = 'osc_datacommons_dev'\n", + "ingest_schema = 'demo'\n", + "\n", "sqlargs = {\n", " 'auth': trino.auth.JWTAuthentication(os.environ['TRINO_PASSWD_USER1']),\n", " 'http_scheme': 'https',\n", - " 'catalog': 'osc_datacommons_dev',\n", - " 'schema': 'demo',\n", + " 'catalog': ingest_catalog,\n", + " 'schema': ingest_schema,\n", "}\n", "\n", - "ingest_catalog = 'osc_datacommons_dev'\n", - "ingest_schema = 'demo'\n", - "\n", "engine_dev = create_engine(sqlstring, connect_args = sqlargs)\n", "print(\"connecting with engine \" + str(engine_dev))\n", "connection_dev = engine_dev.connect()\n", @@ -174,7 +178,6 @@ "outputs": [], "source": [ "import json\n", - "import os\n", "import pandas as pd\n", "from numpy.testing import assert_array_equal\n", "import ITR\n", @@ -256,7 +259,9 @@ "id": "42a11af2-fc4f-42a6-9ef4-15a7b379ee66", "metadata": {}, "source": [ - "Plot emissions data. Others can be plotted by following same pattern." + "Plot emissions data. Others can be plotted by following same pattern.\n", + "\n", + "Note that without units, a company that emits 80 t CO2e/t Steel looks like it might emit a lot more than one that emits 10t CO2e/MWh. With units, it becomes clear that the 80 and the 10 are not comparable." ] }, { @@ -424,33 +429,33 @@ " \n", " \n", " 0\n", - " Public Service Enterprise Group\n", - " US7445731067\n", + " WORTHINGTON INDUSTRIES INC\n", + " US9818111026\n", " demo\n", " S1+S2\n", " benchmark_1\n", - " 1.726799\n", - " 1.869444\n", + " 1.285214\n", + " 1.285214\n", " \n", " \n", " 1\n", - " WORTHINGTON INDUSTRIES INC\n", - " US9818111026\n", + " Avangrid, Inc.\n", + " US05351W1036\n", " demo\n", " S1+S2\n", " benchmark_1\n", - " 1.285214\n", - " 1.285214\n", + " 1.317737\n", + " 1.278198\n", " \n", " \n", " 2\n", - " COMMERCIAL METALS CO\n", - " US2017231034\n", + " Fortis, Inc\n", + " CA3495531079\n", " demo\n", " S1+S2\n", " benchmark_1\n", - " 1.341723\n", - " 1.304555\n", + " 3.152616\n", + " 2.184698\n", " \n", " \n", " 3\n", @@ -464,32 +469,32 @@ " \n", " \n", " 4\n", - " Fortis, Inc\n", - " CA3495531079\n", + " WEC Energy Group\n", + " US92939U1060\n", " demo\n", " S1+S2\n", " benchmark_1\n", - " 3.152616\n", - " 2.184698\n", + " 2.539351\n", + " 2.523781\n", " \n", " \n", "\n", "" ], "text/plain": [ - " company_name company_id source scope benchmark \\\n", - "0 Public Service Enterprise Group US7445731067 demo S1+S2 benchmark_1 \n", - "1 WORTHINGTON INDUSTRIES INC US9818111026 demo S1+S2 benchmark_1 \n", - "2 COMMERCIAL METALS CO US2017231034 demo S1+S2 benchmark_1 \n", - "3 AES Corp. US00130H1059 demo S1+S2 benchmark_1 \n", - "4 Fortis, Inc CA3495531079 demo S1+S2 benchmark_1 \n", + " company_name company_id source scope benchmark \\\n", + "0 WORTHINGTON INDUSTRIES INC US9818111026 demo S1+S2 benchmark_1 \n", + "1 Avangrid, Inc. US05351W1036 demo S1+S2 benchmark_1 \n", + "2 Fortis, Inc CA3495531079 demo S1+S2 benchmark_1 \n", + "3 AES Corp. US00130H1059 demo S1+S2 benchmark_1 \n", + "4 WEC Energy Group US92939U1060 demo S1+S2 benchmark_1 \n", "\n", " trajectory_temperature_score target_temperature_score \n", - "0 1.726799 1.869444 \n", - "1 1.285214 1.285214 \n", - "2 1.341723 1.304555 \n", + "0 1.285214 1.285214 \n", + "1 1.317737 1.278198 \n", + "2 3.152616 2.184698 \n", "3 2.874460 2.433496 \n", - "4 3.152616 2.184698 " + "4 2.539351 2.523781 " ] }, "execution_count": 10, @@ -612,7 +617,7 @@ " \n", " \n", "\n", - "

2 rows × 42 columns

\n", + "

2 rows × 44 columns

\n", "" ], "text/plain": [ @@ -660,7 +665,7 @@ "trajectory_temperature_score 1.285214 2.289638 \n", "target_temperature_score 1.285214 1.767726 \n", "\n", - "[2 rows x 42 columns]" + "[2 rows x 44 columns]" ] }, "execution_count": 12, @@ -690,7 +695,7 @@ }, { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ "
" ] @@ -845,18 +850,61 @@ " XRZQ5S7HYJFPHJ78L959\n", " 15917812\n", " \n", + " \n", + " ...\n", + " ...\n", + " ...\n", + " ...\n", + " \n", + " \n", + " US8873991033\n", + " TIMKENSTEEL CORP\n", + " 549300QZTZWHDE9HJL14\n", + " 10000000\n", + " \n", + " \n", + " US88830M1027\n", + " TITAN INTERNATIONAL INC\n", + " 254900CXRGBE7C4B5A06\n", + " 10000000\n", + " \n", + " \n", + " US9129091081\n", + " UNITED STATES STEEL CORP\n", + " JNLUVFYJT1OZSIQ24U47\n", + " 10000000\n", + " \n", + " \n", + " US9138371003\n", + " UNIVERSAL STAINLESS & ALLOY PRODUCTS INC\n", + " 5493001OEIZDUGXZDE09\n", + " 10000000\n", + " \n", + " \n", + " US9818111026\n", + " WORTHINGTON INDUSTRIES INC\n", + " 1WRCIANKYOIK6KYE5E82\n", + " 10000000\n", + " \n", " \n", "\n", + "

61 rows × 3 columns

\n", "" ], "text/plain": [ - " company_name company_lei \\\n", - "company_id \n", - "US00130H1059 AES Corp. 2NUNNB7D43COUIRE5295 \n", - "US0158577090 Algonquin Power & Utilities Corp. 549300K5VIUTJXQL7X75 \n", - "US0185223007 ALLETE, Inc. 549300NNLSIMY6Z8OT86 \n", - "US0188021085 Alliant Energy 5493009ML300G373MZ12 \n", - "US0236081024 Ameren Corp. XRZQ5S7HYJFPHJ78L959 \n", + " company_name company_lei \\\n", + "company_id \n", + "US00130H1059 AES Corp. 2NUNNB7D43COUIRE5295 \n", + "US0158577090 Algonquin Power & Utilities Corp. 549300K5VIUTJXQL7X75 \n", + "US0185223007 ALLETE, Inc. 549300NNLSIMY6Z8OT86 \n", + "US0188021085 Alliant Energy 5493009ML300G373MZ12 \n", + "US0236081024 Ameren Corp. XRZQ5S7HYJFPHJ78L959 \n", + "... ... ... \n", + "US8873991033 TIMKENSTEEL CORP 549300QZTZWHDE9HJL14 \n", + "US88830M1027 TITAN INTERNATIONAL INC 254900CXRGBE7C4B5A06 \n", + "US9129091081 UNITED STATES STEEL CORP JNLUVFYJT1OZSIQ24U47 \n", + "US9138371003 UNIVERSAL STAINLESS & ALLOY PRODUCTS INC 5493001OEIZDUGXZDE09 \n", + "US9818111026 WORTHINGTON INDUSTRIES INC 1WRCIANKYOIK6KYE5E82 \n", "\n", " investment_value \n", "company_id \n", @@ -864,7 +912,15 @@ "US0158577090 2228185 \n", "US0185223007 3829481 \n", "US0188021085 3829481 \n", - "US0236081024 15917812 " + "US0236081024 15917812 \n", + "... ... \n", + "US8873991033 10000000 \n", + "US88830M1027 10000000 \n", + "US9129091081 10000000 \n", + "US9138371003 10000000 \n", + "US9818111026 10000000 \n", + "\n", + "[61 rows x 3 columns]" ] }, "execution_count": 15, @@ -873,8 +929,8 @@ } ], "source": [ - "portfolio_df = pd.read_csv(\"data/rmi-20211120-portfolio.csv\", encoding=\"iso-8859-1\", sep=';', index_col='company_id')\n", - "portfolio_df.head()" + "portfolio_df = pd.read_csv(\"data/mdt-20220116-portfolio.csv\", encoding=\"iso-8859-1\", sep=';', index_col='company_id')\n", + "portfolio_df" ] }, { @@ -884,7 +940,9 @@ "source": [ "### Calculate portfolio alignment temperature score based on WATS\n", "\n", - "We can do this with information exclusive to the user space (and the probability-adjusted temperature scores)" + "We can do this with information exclusive to the user space (and the probability-adjusted temperature scores)\n", + "\n", + "Note that companies with no production information (such as TITAL INTERNATIONAL INC and UNIVERSAL STAINLESS & ALLOY PRODUCTS INC will show NaN (Not a Number) as a score." ] }, { @@ -901,7 +959,7 @@ { "cell_type": "code", "execution_count": 17, - "id": "66c1ac02-f680-46ff-968b-130a38bc6538", + "id": "8031e3a0-3d22-4f16-8a9a-e85f855f1b02", "metadata": {}, "outputs": [ { @@ -940,60 +998,20 @@ " \n", " \n", " \n", - " US00130H1059\n", - " AES Corp.\n", - " 2NUNNB7D43COUIRE5295\n", - " 4351252\n", - " 2.653978\n", - " \n", - " \n", - " US0158577090\n", - " Algonquin Power & Utilities Corp.\n", - " 549300K5VIUTJXQL7X75\n", - " 2228185\n", - " 2.601448\n", - " \n", - " \n", - " US0185223007\n", - " ALLETE, Inc.\n", - " 549300NNLSIMY6Z8OT86\n", - " 3829481\n", - " 2.367569\n", - " \n", - " \n", - " US0188021085\n", - " Alliant Energy\n", - " 5493009ML300G373MZ12\n", - " 3829481\n", - " 2.057569\n", - " \n", - " \n", - " US0236081024\n", - " Ameren Corp.\n", - " XRZQ5S7HYJFPHJ78L959\n", - " 15917812\n", - " 2.035515\n", + " KR7005490008\n", + " POSCO\n", + " 988400E5HRVX81AYLM04\n", + " 10000000\n", + " 1.57887\n", " \n", " \n", "\n", "" ], "text/plain": [ - " company_name company_lei \\\n", - "company_id \n", - "US00130H1059 AES Corp. 2NUNNB7D43COUIRE5295 \n", - "US0158577090 Algonquin Power & Utilities Corp. 549300K5VIUTJXQL7X75 \n", - "US0185223007 ALLETE, Inc. 549300NNLSIMY6Z8OT86 \n", - "US0188021085 Alliant Energy 5493009ML300G373MZ12 \n", - "US0236081024 Ameren Corp. XRZQ5S7HYJFPHJ78L959 \n", - "\n", - " investment_value pa_score \n", - "company_id \n", - "US00130H1059 4351252 2.653978 \n", - "US0158577090 2228185 2.601448 \n", - "US0185223007 3829481 2.367569 \n", - "US0188021085 3829481 2.057569 \n", - "US0236081024 15917812 2.035515 " + " company_name company_lei investment_value pa_score\n", + "company_id \n", + "KR7005490008 POSCO 988400E5HRVX81AYLM04 10000000 1.57887" ] }, "execution_count": 17, @@ -1002,7 +1020,7 @@ } ], "source": [ - "portfolio_df.head()" + "portfolio_df[portfolio_df.company_name=='POSCO']" ] }, { @@ -1014,7 +1032,7 @@ { "data": { "text/plain": [ - "707454890" + "817454890" ] }, "execution_count": 18, @@ -1076,7 +1094,7 @@ " 2NUNNB7D43COUIRE5295\n", " 4351252\n", " 2.653978\n", - " 0.016323\n", + " 0.014127\n", " \n", " \n", " US0158577090\n", @@ -1084,7 +1102,7 @@ " 549300K5VIUTJXQL7X75\n", " 2228185\n", " 2.601448\n", - " 0.008193\n", + " 0.007091\n", " \n", " \n", " US0185223007\n", @@ -1092,7 +1110,7 @@ " 549300NNLSIMY6Z8OT86\n", " 3829481\n", " 2.367569\n", - " 0.012816\n", + " 0.011091\n", " \n", " \n", " US0188021085\n", @@ -1100,7 +1118,7 @@ " 5493009ML300G373MZ12\n", " 3829481\n", " 2.057569\n", - " 0.011138\n", + " 0.009639\n", " \n", " \n", " US0236081024\n", @@ -1108,7 +1126,7 @@ " XRZQ5S7HYJFPHJ78L959\n", " 15917812\n", " 2.035515\n", - " 0.045799\n", + " 0.039636\n", " \n", " \n", "\n", @@ -1125,11 +1143,11 @@ "\n", " investment_value pa_score WATS_weight \n", "company_id \n", - "US00130H1059 4351252 2.653978 0.016323 \n", - "US0158577090 2228185 2.601448 0.008193 \n", - "US0185223007 3829481 2.367569 0.012816 \n", - "US0188021085 3829481 2.057569 0.011138 \n", - "US0236081024 15917812 2.035515 0.045799 " + "US00130H1059 4351252 2.653978 0.014127 \n", + "US0158577090 2228185 2.601448 0.007091 \n", + "US0185223007 3829481 2.367569 0.011091 \n", + "US0188021085 3829481 2.057569 0.009639 \n", + "US0236081024 15917812 2.035515 0.039636 " ] }, "execution_count": 19, @@ -1152,7 +1170,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "Portfolio temperature score based on WATS = 1.6523262430797563\n" + "Portfolio temperature score based on WATS = 1.6299104684318158\n" ] } ], @@ -1221,8 +1239,8 @@ " 2NUNNB7D43COUIRE5295\n", " 4351252\n", " 2.653978\n", - " 0.016323\n", - " 0.041646\n", + " 0.014127\n", + " 0.026135\n", " \n", " \n", " US0158577090\n", @@ -1230,8 +1248,8 @@ " 549300K5VIUTJXQL7X75\n", " 2228185\n", " 2.601448\n", - " 0.008193\n", - " 0.125123\n", + " 0.007091\n", + " 0.078521\n", " \n", " \n", " US0185223007\n", @@ -1239,8 +1257,8 @@ " 549300NNLSIMY6Z8OT86\n", " 3829481\n", " 2.367569\n", - " 0.012816\n", - " 0.013576\n", + " 0.011091\n", + " 0.008519\n", " \n", " \n", " US0188021085\n", @@ -1248,8 +1266,8 @@ " 5493009ML300G373MZ12\n", " 3829481\n", " 2.057569\n", - " 0.011138\n", - " 0.029829\n", + " 0.009639\n", + " 0.018719\n", " \n", " \n", " US0236081024\n", @@ -1257,8 +1275,8 @@ " XRZQ5S7HYJFPHJ78L959\n", " 15917812\n", " 2.035515\n", - " 0.045799\n", - " 0.077954\n", + " 0.039636\n", + " 0.048920\n", " \n", " \n", "\n", @@ -1275,11 +1293,11 @@ "\n", " investment_value pa_score WATS_weight TETS_weight \n", "company_id \n", - "US00130H1059 4351252 2.653978 0.016323 0.041646 \n", - "US0158577090 2228185 2.601448 0.008193 0.125123 \n", - "US0185223007 3829481 2.367569 0.012816 0.013576 \n", - "US0188021085 3829481 2.057569 0.011138 0.029829 \n", - "US0236081024 15917812 2.035515 0.045799 0.077954 " + "US00130H1059 4351252 2.653978 0.014127 0.026135 \n", + "US0158577090 2228185 2.601448 0.007091 0.078521 \n", + "US0185223007 3829481 2.367569 0.011091 0.008519 \n", + "US0188021085 3829481 2.057569 0.009639 0.018719 \n", + "US0236081024 15917812 2.035515 0.039636 0.048920 " ] }, "execution_count": 21, @@ -1302,7 +1320,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "Portfolio temperature score based on TETS = 2.257638350627624\n" + "Portfolio temperature score based on TETS = 1.6739511395163167\n" ] } ], @@ -1363,9 +1381,9 @@ " 2NUNNB7D43COUIRE5295\n", " 4351252\n", " 2.653978\n", - " 0.016323\n", - " 0.041646\n", - " 0.043874\n", + " 0.014127\n", + " 0.026135\n", + " 0.041901\n", " \n", " \n", " US0158577090\n", @@ -1373,8 +1391,8 @@ " 549300K5VIUTJXQL7X75\n", " 2228185\n", " 2.601448\n", - " 0.008193\n", - " 0.125123\n", + " 0.007091\n", + " 0.078521\n", " NaN\n", " \n", " \n", @@ -1383,9 +1401,9 @@ " 549300NNLSIMY6Z8OT86\n", " 3829481\n", " 2.367569\n", - " 0.012816\n", - " 0.013576\n", - " 0.015430\n", + " 0.011091\n", + " 0.008519\n", + " 0.014736\n", " \n", " \n", " US0188021085\n", @@ -1393,9 +1411,9 @@ " 5493009ML300G373MZ12\n", " 3829481\n", " 2.057569\n", - " 0.011138\n", - " 0.029829\n", - " 0.036299\n", + " 0.009639\n", + " 0.018719\n", + " 0.034666\n", " \n", " \n", " US0236081024\n", @@ -1403,9 +1421,9 @@ " XRZQ5S7HYJFPHJ78L959\n", " 15917812\n", " 2.035515\n", - " 0.045799\n", - " 0.077954\n", - " 0.056895\n", + " 0.039636\n", + " 0.048920\n", + " 0.054336\n", " \n", " \n", "\n", @@ -1422,19 +1440,19 @@ "\n", " investment_value pa_score WATS_weight TETS_weight \\\n", "company_id \n", - "US00130H1059 4351252 2.653978 0.016323 0.041646 \n", - "US0158577090 2228185 2.601448 0.008193 0.125123 \n", - "US0185223007 3829481 2.367569 0.012816 0.013576 \n", - "US0188021085 3829481 2.057569 0.011138 0.029829 \n", - "US0236081024 15917812 2.035515 0.045799 0.077954 \n", + "US00130H1059 4351252 2.653978 0.014127 0.026135 \n", + "US0158577090 2228185 2.601448 0.007091 0.078521 \n", + "US0185223007 3829481 2.367569 0.011091 0.008519 \n", + "US0188021085 3829481 2.057569 0.009639 0.018719 \n", + "US0236081024 15917812 2.035515 0.039636 0.048920 \n", "\n", " MOTS_weight \n", "company_id \n", - "US00130H1059 0.043874 \n", + "US00130H1059 0.041901 \n", "US0158577090 NaN \n", - "US0185223007 0.015430 \n", - "US0188021085 0.036299 \n", - "US0236081024 0.056895 " + "US0185223007 0.014736 \n", + "US0188021085 0.034666 \n", + "US0236081024 0.054336 " ] }, "execution_count": 23, @@ -1457,7 +1475,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "Portfolio temperature score based on MOTS = 1.9793715406044958\n" + "Portfolio temperature score based on MOTS = 1.9523158506309033\n" ] } ], @@ -1520,10 +1538,10 @@ " 2NUNNB7D43COUIRE5295\n", " 4351252\n", " 2.653978\n", - " 0.016323\n", - " 0.041646\n", - " 0.043874\n", - " 0.026506\n", + " 0.014127\n", + " 0.026135\n", + " 0.041901\n", + " 0.025511\n", " \n", " \n", " US0158577090\n", @@ -1531,8 +1549,8 @@ " 549300K5VIUTJXQL7X75\n", " 2228185\n", " 2.601448\n", - " 0.008193\n", - " 0.125123\n", + " 0.007091\n", + " 0.078521\n", " NaN\n", " NaN\n", " \n", @@ -1542,10 +1560,10 @@ " 549300NNLSIMY6Z8OT86\n", " 3829481\n", " 2.367569\n", - " 0.012816\n", - " 0.013576\n", - " 0.015430\n", - " 0.013646\n", + " 0.011091\n", + " 0.008519\n", + " 0.014736\n", + " 0.013133\n", " \n", " \n", " US0188021085\n", @@ -1553,10 +1571,10 @@ " 5493009ML300G373MZ12\n", " 3829481\n", " 2.057569\n", - " 0.011138\n", - " 0.029829\n", - " 0.036299\n", - " 0.037641\n", + " 0.009639\n", + " 0.018719\n", + " 0.034666\n", + " 0.036228\n", " \n", " \n", " US0236081024\n", @@ -1564,10 +1582,10 @@ " XRZQ5S7HYJFPHJ78L959\n", " 15917812\n", " 2.035515\n", - " 0.045799\n", - " 0.077954\n", - " 0.056895\n", - " 0.054894\n", + " 0.039636\n", + " 0.048920\n", + " 0.054336\n", + " 0.052833\n", " \n", " \n", "\n", @@ -1584,19 +1602,19 @@ "\n", " investment_value pa_score WATS_weight TETS_weight \\\n", "company_id \n", - "US00130H1059 4351252 2.653978 0.016323 0.041646 \n", - "US0158577090 2228185 2.601448 0.008193 0.125123 \n", - "US0185223007 3829481 2.367569 0.012816 0.013576 \n", - "US0188021085 3829481 2.057569 0.011138 0.029829 \n", - "US0236081024 15917812 2.035515 0.045799 0.077954 \n", + "US00130H1059 4351252 2.653978 0.014127 0.026135 \n", + "US0158577090 2228185 2.601448 0.007091 0.078521 \n", + "US0185223007 3829481 2.367569 0.011091 0.008519 \n", + "US0188021085 3829481 2.057569 0.009639 0.018719 \n", + "US0236081024 15917812 2.035515 0.039636 0.048920 \n", "\n", " MOTS_weight EOTS_weight \n", "company_id \n", - "US00130H1059 0.043874 0.026506 \n", + "US00130H1059 0.041901 0.025511 \n", "US0158577090 NaN NaN \n", - "US0185223007 0.015430 0.013646 \n", - "US0188021085 0.036299 0.037641 \n", - "US0236081024 0.056895 0.054894 " + "US0185223007 0.014736 0.013133 \n", + "US0188021085 0.034666 0.036228 \n", + "US0236081024 0.054336 0.052833 " ] }, "execution_count": 25, @@ -1619,7 +1637,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "Portfolio temperature score based on EOTS = 2.106844694461046\n" + "Portfolio temperature score based on EOTS = 2.081364955001339\n" ] } ], @@ -1684,11 +1702,11 @@ " 2NUNNB7D43COUIRE5295\n", " 4351252\n", " 2.653978\n", - " 0.016323\n", - " 0.041646\n", - " 0.043874\n", - " 0.026506\n", - " 0.048056\n", + " 0.014127\n", + " 0.026135\n", + " 0.041901\n", + " 0.025511\n", + " 0.045765\n", " \n", " \n", " US0158577090\n", @@ -1696,8 +1714,8 @@ " 549300K5VIUTJXQL7X75\n", " 2228185\n", " 2.601448\n", - " 0.008193\n", - " 0.125123\n", + " 0.007091\n", + " 0.078521\n", " NaN\n", " NaN\n", " NaN\n", @@ -1708,11 +1726,11 @@ " 549300NNLSIMY6Z8OT86\n", " 3829481\n", " 2.367569\n", - " 0.012816\n", - " 0.013576\n", - " 0.015430\n", - " 0.013646\n", - " 0.015689\n", + " 0.011091\n", + " 0.008519\n", + " 0.014736\n", + " 0.013133\n", + " 0.014941\n", " \n", " \n", " US0188021085\n", @@ -1720,11 +1738,11 @@ " 5493009ML300G373MZ12\n", " 3829481\n", " 2.057569\n", - " 0.011138\n", - " 0.029829\n", - " 0.036299\n", - " 0.037641\n", - " 0.036371\n", + " 0.009639\n", + " 0.018719\n", + " 0.034666\n", + " 0.036228\n", + " 0.034636\n", " \n", " \n", " US0236081024\n", @@ -1732,11 +1750,11 @@ " XRZQ5S7HYJFPHJ78L959\n", " 15917812\n", " 2.035515\n", - " 0.045799\n", - " 0.077954\n", - " 0.056895\n", - " 0.054894\n", - " 0.056979\n", + " 0.039636\n", + " 0.048920\n", + " 0.054336\n", + " 0.052833\n", + " 0.054261\n", " \n", " \n", "\n", @@ -1753,19 +1771,19 @@ "\n", " investment_value pa_score WATS_weight TETS_weight \\\n", "company_id \n", - "US00130H1059 4351252 2.653978 0.016323 0.041646 \n", - "US0158577090 2228185 2.601448 0.008193 0.125123 \n", - "US0185223007 3829481 2.367569 0.012816 0.013576 \n", - "US0188021085 3829481 2.057569 0.011138 0.029829 \n", - "US0236081024 15917812 2.035515 0.045799 0.077954 \n", + "US00130H1059 4351252 2.653978 0.014127 0.026135 \n", + "US0158577090 2228185 2.601448 0.007091 0.078521 \n", + "US0185223007 3829481 2.367569 0.011091 0.008519 \n", + "US0188021085 3829481 2.057569 0.009639 0.018719 \n", + "US0236081024 15917812 2.035515 0.039636 0.048920 \n", "\n", " MOTS_weight EOTS_weight ECOTS_weight \n", "company_id \n", - "US00130H1059 0.043874 0.026506 0.048056 \n", + "US00130H1059 0.041901 0.025511 0.045765 \n", "US0158577090 NaN NaN NaN \n", - "US0185223007 0.015430 0.013646 0.015689 \n", - "US0188021085 0.036299 0.037641 0.036371 \n", - "US0236081024 0.056895 0.054894 0.056979 " + "US0185223007 0.014736 0.013133 0.014941 \n", + "US0188021085 0.034666 0.036228 0.034636 \n", + "US0236081024 0.054336 0.052833 0.054261 " ] }, "execution_count": 27, @@ -1788,7 +1806,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "Portfolio temperature score based on ECOTS = 1.971071882709424\n" + "Portfolio temperature score based on ECOTS = 1.942933676201069\n" ] } ], @@ -1855,12 +1873,12 @@ " 2NUNNB7D43COUIRE5295\n", " 4351252\n", " 2.653978\n", - " 0.016323\n", - " 0.041646\n", - " 0.043874\n", - " 0.026506\n", - " 0.048056\n", - " 0.066323\n", + " 0.014127\n", + " 0.026135\n", + " 0.041901\n", + " 0.025511\n", + " 0.045765\n", + " 0.059669\n", " \n", " \n", " US0158577090\n", @@ -1868,12 +1886,12 @@ " 549300K5VIUTJXQL7X75\n", " 2228185\n", " 2.601448\n", - " 0.008193\n", - " 0.125123\n", + " 0.007091\n", + " 0.078521\n", " NaN\n", " NaN\n", " NaN\n", - " 0.021100\n", + " 0.018983\n", " \n", " \n", " US0185223007\n", @@ -1881,12 +1899,12 @@ " 549300NNLSIMY6Z8OT86\n", " 3829481\n", " 2.367569\n", - " 0.012816\n", - " 0.013576\n", - " 0.015430\n", - " 0.013646\n", - " 0.015689\n", - " 0.009641\n", + " 0.011091\n", + " 0.008519\n", + " 0.014736\n", + " 0.013133\n", + " 0.014941\n", + " 0.008674\n", " \n", " \n", " US0188021085\n", @@ -1894,12 +1912,12 @@ " 5493009ML300G373MZ12\n", " 3829481\n", " 2.057569\n", - " 0.011138\n", - " 0.029829\n", - " 0.036299\n", - " 0.037641\n", - " 0.036371\n", - " 0.025521\n", + " 0.009639\n", + " 0.018719\n", + " 0.034666\n", + " 0.036228\n", + " 0.034636\n", + " 0.022961\n", " \n", " \n", " US0236081024\n", @@ -1907,12 +1925,12 @@ " XRZQ5S7HYJFPHJ78L959\n", " 15917812\n", " 2.035515\n", - " 0.045799\n", - " 0.077954\n", - " 0.056895\n", - " 0.054894\n", - " 0.056979\n", - " 0.043740\n", + " 0.039636\n", + " 0.048920\n", + " 0.054336\n", + " 0.052833\n", + " 0.054261\n", + " 0.039351\n", " \n", " \n", "\n", @@ -1929,19 +1947,19 @@ "\n", " investment_value pa_score WATS_weight TETS_weight \\\n", "company_id \n", - "US00130H1059 4351252 2.653978 0.016323 0.041646 \n", - "US0158577090 2228185 2.601448 0.008193 0.125123 \n", - "US0185223007 3829481 2.367569 0.012816 0.013576 \n", - "US0188021085 3829481 2.057569 0.011138 0.029829 \n", - "US0236081024 15917812 2.035515 0.045799 0.077954 \n", + "US00130H1059 4351252 2.653978 0.014127 0.026135 \n", + "US0158577090 2228185 2.601448 0.007091 0.078521 \n", + "US0185223007 3829481 2.367569 0.011091 0.008519 \n", + "US0188021085 3829481 2.057569 0.009639 0.018719 \n", + "US0236081024 15917812 2.035515 0.039636 0.048920 \n", "\n", " MOTS_weight EOTS_weight ECOTS_weight AOTS_weight \n", "company_id \n", - "US00130H1059 0.043874 0.026506 0.048056 0.066323 \n", - "US0158577090 NaN NaN NaN 0.021100 \n", - "US0185223007 0.015430 0.013646 0.015689 0.009641 \n", - "US0188021085 0.036299 0.037641 0.036371 0.025521 \n", - "US0236081024 0.056895 0.054894 0.056979 0.043740 " + "US00130H1059 0.041901 0.025511 0.045765 0.059669 \n", + "US0158577090 NaN NaN NaN 0.018983 \n", + "US0185223007 0.014736 0.013133 0.014941 0.008674 \n", + "US0188021085 0.034666 0.036228 0.034636 0.022961 \n", + "US0236081024 0.054336 0.052833 0.054261 0.039351 " ] }, "execution_count": 29, @@ -1964,7 +1982,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "Portfolio temperature score based on AOTS = 1.9949225831738602\n" + "Portfolio temperature score based on AOTS = 1.9468713889723186\n" ] } ], @@ -2033,13 +2051,13 @@ " 2NUNNB7D43COUIRE5295\n", " 4351252\n", " 2.653978\n", - " 0.016323\n", - " 0.041646\n", - " 0.043874\n", - " 0.026506\n", - " 0.048056\n", - " 0.066323\n", - " 0.098889\n", + " 0.014127\n", + " 0.026135\n", + " 0.041901\n", + " 0.025511\n", + " 0.045765\n", + " 0.059669\n", + " 0.065624\n", " \n", " \n", " US0158577090\n", @@ -2047,13 +2065,13 @@ " 549300K5VIUTJXQL7X75\n", " 2228185\n", " 2.601448\n", - " 0.008193\n", - " 0.125123\n", + " 0.007091\n", + " 0.078521\n", " NaN\n", " NaN\n", " NaN\n", - " 0.021100\n", - " 0.015473\n", + " 0.018983\n", + " 0.010268\n", " \n", " \n", " US0185223007\n", @@ -2061,13 +2079,13 @@ " 549300NNLSIMY6Z8OT86\n", " 3829481\n", " 2.367569\n", - " 0.012816\n", - " 0.013576\n", - " 0.015430\n", - " 0.013646\n", - " 0.015689\n", - " 0.009641\n", - " 0.010740\n", + " 0.011091\n", + " 0.008519\n", + " 0.014736\n", + " 0.013133\n", + " 0.014941\n", + " 0.008674\n", + " 0.007127\n", " \n", " \n", " US0188021085\n", @@ -2075,13 +2093,13 @@ " 5493009ML300G373MZ12\n", " 3829481\n", " 2.057569\n", - " 0.011138\n", - " 0.029829\n", - " 0.036299\n", - " 0.037641\n", - " 0.036371\n", - " 0.025521\n", - " 0.027449\n", + " 0.009639\n", + " 0.018719\n", + " 0.034666\n", + " 0.036228\n", + " 0.034636\n", + " 0.022961\n", + " 0.018216\n", " \n", " \n", " US0236081024\n", @@ -2089,13 +2107,13 @@ " XRZQ5S7HYJFPHJ78L959\n", " 15917812\n", " 2.035515\n", - " 0.045799\n", - " 0.077954\n", - " 0.056895\n", - " 0.054894\n", - " 0.056979\n", - " 0.043740\n", - " 0.043993\n", + " 0.039636\n", + " 0.048920\n", + " 0.054336\n", + " 0.052833\n", + " 0.054261\n", + " 0.039351\n", + " 0.029194\n", " \n", " \n", "\n", @@ -2112,19 +2130,19 @@ "\n", " investment_value pa_score WATS_weight TETS_weight \\\n", "company_id \n", - "US00130H1059 4351252 2.653978 0.016323 0.041646 \n", - "US0158577090 2228185 2.601448 0.008193 0.125123 \n", - "US0185223007 3829481 2.367569 0.012816 0.013576 \n", - "US0188021085 3829481 2.057569 0.011138 0.029829 \n", - "US0236081024 15917812 2.035515 0.045799 0.077954 \n", + "US00130H1059 4351252 2.653978 0.014127 0.026135 \n", + "US0158577090 2228185 2.601448 0.007091 0.078521 \n", + "US0185223007 3829481 2.367569 0.011091 0.008519 \n", + "US0188021085 3829481 2.057569 0.009639 0.018719 \n", + "US0236081024 15917812 2.035515 0.039636 0.048920 \n", "\n", " MOTS_weight EOTS_weight ECOTS_weight AOTS_weight ROTS_weight \n", "company_id \n", - "US00130H1059 0.043874 0.026506 0.048056 0.066323 0.098889 \n", - "US0158577090 NaN NaN NaN 0.021100 0.015473 \n", - "US0185223007 0.015430 0.013646 0.015689 0.009641 0.010740 \n", - "US0188021085 0.036299 0.037641 0.036371 0.025521 0.027449 \n", - "US0236081024 0.056895 0.054894 0.056979 0.043740 0.043993 " + "US00130H1059 0.041901 0.025511 0.045765 0.059669 0.065624 \n", + "US0158577090 NaN NaN NaN 0.018983 0.010268 \n", + "US0185223007 0.014736 0.013133 0.014941 0.008674 0.007127 \n", + "US0188021085 0.034666 0.036228 0.034636 0.022961 0.018216 \n", + "US0236081024 0.054336 0.052833 0.054261 0.039351 0.029194 " ] }, "execution_count": 31, @@ -2147,7 +2165,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "Portfolio temperature score based on ROTS = 1.9673694510968456\n" + "Portfolio temperature score based on ROTS = 1.8125811169100436\n" ] } ], @@ -2157,11 +2175,371 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 33, "id": "d1e39a38-9d3f-4ff7-aa46-965f6cbf4a76", "metadata": {}, - "outputs": [], - "source": [] + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
company_namecompany_leiinvestment_valuepa_scoreWATS_weightTETS_weightMOTS_weightEOTS_weightECOTS_weightAOTS_weightROTS_weight
company_id
US5526901096MDU Resources Group0T6SBMK3JTBI1JR367941207049NaNNaNNaNNaNNaNNaNNaNNaN
US6362744095National Grid plc8R95QZMKZLJX5Q2XR70412281584NaNNaNNaNNaNNaNNaNNaNNaN
LU0140205948ARCELORMITTAL2EULGUTUI56JI9SAL16510000000NaNNaNNaNNaNNaNNaNNaNNaN
US3584351056FRIEDMAN INDUSTRIES INCLEI0510000000NaNNaNNaNNaNNaNNaNNaNNaN
US3708532029GENERAL STEEL HOLDINGS INC5493008ZKBIR02ICY09110000000NaNNaNNaNNaNNaNNaNNaNNaN
US3746891072GIBRALTAR INDUSTRIES, INC.LEI0810000000NaNNaNNaNNaNNaNNaNNaNNaN
MXP4984U1083GROUP SIMEC SA DE CV529900LCYCXPA0TZEU0910000000NaNNaNNaNNaNNaNNaNNaNNaN
US4208772016HAYNES INTERNATIONAL INC549300I9MS5UZLRFDO4010000000NaNNaNNaNNaNNaNNaNNaNNaN
US45774W1080INSTEEL INDUSTRIES INC52990026LKY4MOX3L17410000000NaNNaNNaNNaNNaNNaNNaNNaN
CA0156581070LEGATO MERGER CORP.5493006RXIB5GVHWJS5310000000NaNNaNNaNNaNNaNNaNNaNNaN
US5838406081MECHEL PAO253400C9GSPBSKERRP6510000000NaNNaNNaNNaNNaNNaNNaNNaN
INE088B01015NATIONAL STEEL CO335800Y6L4X95L2FEF6410000000NaNNaNNaNNaNNaNNaNNaNNaN
JP3381000003NIPPON STEEL CORP35380065QWQ4U2V3PA3310000000NaNNaNNaNNaNNaNNaNNaNNaN
US6884102087OSSEN INNOVATION CO. LTD.LEI1710000000NaNNaNNaNNaNNaNNaNNaNNaN
US8808901081TERNIUM S.A.529900QG4KU23TEI2E4610000000NaNNaNNaNNaNNaNNaNNaNNaN
US88830M1027TITAN INTERNATIONAL INC254900CXRGBE7C4B5A0610000000NaNNaNNaNNaNNaNNaNNaNNaN
US9138371003UNIVERSAL STAINLESS & ALLOY PRODUCTS INC5493001OEIZDUGXZDE0910000000NaNNaNNaNNaNNaNNaNNaNNaN
\n", + "
" + ], + "text/plain": [ + " company_name company_lei \\\n", + "company_id \n", + "US5526901096 MDU Resources Group 0T6SBMK3JTBI1JR36794 \n", + "US6362744095 National Grid plc 8R95QZMKZLJX5Q2XR704 \n", + "LU0140205948 ARCELORMITTAL 2EULGUTUI56JI9SAL165 \n", + "US3584351056 FRIEDMAN INDUSTRIES INC LEI05 \n", + "US3708532029 GENERAL STEEL HOLDINGS INC 5493008ZKBIR02ICY091 \n", + "US3746891072 GIBRALTAR INDUSTRIES, INC. LEI08 \n", + "MXP4984U1083 GROUP SIMEC SA DE CV 529900LCYCXPA0TZEU09 \n", + "US4208772016 HAYNES INTERNATIONAL INC 549300I9MS5UZLRFDO40 \n", + "US45774W1080 INSTEEL INDUSTRIES INC 52990026LKY4MOX3L174 \n", + "CA0156581070 LEGATO MERGER CORP. 5493006RXIB5GVHWJS53 \n", + "US5838406081 MECHEL PAO 253400C9GSPBSKERRP65 \n", + "INE088B01015 NATIONAL STEEL CO 335800Y6L4X95L2FEF64 \n", + "JP3381000003 NIPPON STEEL CORP 35380065QWQ4U2V3PA33 \n", + "US6884102087 OSSEN INNOVATION CO. LTD. LEI17 \n", + "US8808901081 TERNIUM S.A. 529900QG4KU23TEI2E46 \n", + "US88830M1027 TITAN INTERNATIONAL INC 254900CXRGBE7C4B5A06 \n", + "US9138371003 UNIVERSAL STAINLESS & ALLOY PRODUCTS INC 5493001OEIZDUGXZDE09 \n", + "\n", + " investment_value pa_score WATS_weight TETS_weight \\\n", + "company_id \n", + "US5526901096 1207049 NaN NaN NaN \n", + "US6362744095 12281584 NaN NaN NaN \n", + "LU0140205948 10000000 NaN NaN NaN \n", + "US3584351056 10000000 NaN NaN NaN \n", + "US3708532029 10000000 NaN NaN NaN \n", + "US3746891072 10000000 NaN NaN NaN \n", + "MXP4984U1083 10000000 NaN NaN NaN \n", + "US4208772016 10000000 NaN NaN NaN \n", + "US45774W1080 10000000 NaN NaN NaN \n", + "CA0156581070 10000000 NaN NaN NaN \n", + "US5838406081 10000000 NaN NaN NaN \n", + "INE088B01015 10000000 NaN NaN NaN \n", + "JP3381000003 10000000 NaN NaN NaN \n", + "US6884102087 10000000 NaN NaN NaN \n", + "US8808901081 10000000 NaN NaN NaN \n", + "US88830M1027 10000000 NaN NaN NaN \n", + "US9138371003 10000000 NaN NaN NaN \n", + "\n", + " MOTS_weight EOTS_weight ECOTS_weight AOTS_weight ROTS_weight \n", + "company_id \n", + "US5526901096 NaN NaN NaN NaN NaN \n", + "US6362744095 NaN NaN NaN NaN NaN \n", + "LU0140205948 NaN NaN NaN NaN NaN \n", + "US3584351056 NaN NaN NaN NaN NaN \n", + "US3708532029 NaN NaN NaN NaN NaN \n", + "US3746891072 NaN NaN NaN NaN NaN \n", + "MXP4984U1083 NaN NaN NaN NaN NaN \n", + "US4208772016 NaN NaN NaN NaN NaN \n", + "US45774W1080 NaN NaN NaN NaN NaN \n", + "CA0156581070 NaN NaN NaN NaN NaN \n", + "US5838406081 NaN NaN NaN NaN NaN \n", + "INE088B01015 NaN NaN NaN NaN NaN \n", + "JP3381000003 NaN NaN NaN NaN NaN \n", + "US6884102087 NaN NaN NaN NaN NaN \n", + "US8808901081 NaN NaN NaN NaN NaN \n", + "US88830M1027 NaN NaN NaN NaN NaN \n", + "US9138371003 NaN NaN NaN NaN NaN " + ] + }, + "execution_count": 33, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "portfolio_df[portfolio_df.pa_score.isnull()]" + ] } ], "metadata": { From 7108170488594685338fe4681b3f395481e99775 Mon Sep 17 00:00:00 2001 From: MichaelTiemannOSC Date: Tue, 25 Jan 2022 00:23:27 +0000 Subject: [PATCH 018/345] Add portfolio data and touch up some Markdown comments Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- examples/data/mdt-20220116-portfolio.csv | 62 ++ examples/vault_demo_n0.ipynb | 980 ++++++----------------- 2 files changed, 288 insertions(+), 754 deletions(-) create mode 100644 examples/data/mdt-20220116-portfolio.csv diff --git a/examples/data/mdt-20220116-portfolio.csv b/examples/data/mdt-20220116-portfolio.csv new file mode 100644 index 00000000..a2c9a4ae --- /dev/null +++ b/examples/data/mdt-20220116-portfolio.csv @@ -0,0 +1,62 @@ +company_name;company_lei;company_id;investment_value +AES Corp.;2NUNNB7D43COUIRE5295;US00130H1059;4351252 +Algonquin Power & Utilities Corp.;549300K5VIUTJXQL7X75;US0158577090;2228185 +ALLETE, Inc.;549300NNLSIMY6Z8OT86;US0185223007;3829481 +Alliant Energy;5493009ML300G373MZ12;US0188021085;3829481 +Ameren Corp.;XRZQ5S7HYJFPHJ78L959;US0236081024;15917812 +American Electric Power Co., Inc.;1B4S6S7G0TW5EE83BO58;US0255371017;45520637 +Avangrid, Inc.;549300OX0Q38NLSKPB49;US05351W1036;10049068 +Avista Corp.;Q0IK63NITJD6RJ47SW96;US05379B1070;2804211 +Cleco Partners LP;5493002H80P81B3HXL31;US18551QAA58;3086052 +CMS Energy;549300IA9XFBAGNIBW29;US1258961002;9153135 +Consolidated Edison, Inc.;54930033SBW53OO8T749;US2091151041;20394113 +Dominion Energy;ILUL7B6Z54MRYCF6H308;US25746U1097;33528082 +DTE Energy;549300IX8SD6XXD71I78;US2333311072;14329945 +Duke Energy Corp.;I1BZKREC126H0VB1BL91;US26441C2044;73069652 +El Paso Electric Co;OZ8GM8L4AHPKSWZMW205;US283677AZ52;2646941 +Emera Inc.;NQZVQT2P5IUF2PGA1Q48;CA2908761018;6631113 +Entergy Corp.;4XM3TW50JULSLG8BNC79;US29364G1031;29844269 +Evergy, Inc.;549300PGTHDQY6PSUI61;US30034W1062;18254954 +Eversource Energy;SJ7XXD41SQU3ZNWUJ746;US30040W1080;18962480 +FirstEnergy Corp.;549300SVYJS666PQJH88;US3379321074;27277340 +Fortis, Inc;549300MQYQ9Y065XPR71;CA3495531079;12428756 +MDU Resources Group;0T6SBMK3JTBI1JR36794;US5526901096;1207049 +National Grid plc;8R95QZMKZLJX5Q2XR704;US6362744095;12281584 +NorthWestern Corp.;3BPWMBHR1R9SHUN7J795;US6680743050;2703150 +OG&E Energy;CE5OG6JPOZMDSA0LAQ19;US6708371033;7251242 +Otter Tail Corp.;549300HHVBQRQUVKKD91;US6896481032;1264277 +Pinnacle West Capital Corp.;TWSEY0NEDUDCKS27AH81;US7234841010;12058547 +PNM Resources, Inc.;5493003JOBJGLZSDDQ28;US69349H1077;3326899 +Portland General Electric Co.;GJOUP9M7C39GLSK9R870;US7365088472;5770964 +PPL;9N3UAJSNOUXFKQLF3V18;US69351T1060;18146577 +Public Service Enterprise Group;PUSS41EMO3E6XXNV3U28;US7445731067;16912134 +Sempra Energy;PBBKGKLRK5S5C0Y4T545;US8168511090;29579515 +Southern Co.;549300FC3G3YU2FBZD92;US8425871071;50294245 +WEC Energy Group;549300IGLYTZUK3PVP70;US92939U1060;11046675 +Xcel Energy, Inc.;LGJNMI9GH8XIDG5RCM61;US98389B1008;27475073 +AK STEEL HOLDING CORP;529900DT4E7ZNETMVC04;US0015471081;10000000 +ARCELORMITTAL;2EULGUTUI56JI9SAL165;LU0140205948;10000000 +CARPENTER TECHNOLOGY CORP;DX6I6ZD3X5WNNCDJKP85;US1442851036;10000000 +COMMERCIAL METALS CO;549300OQS2LO07ZJ7N73;US2017231034;10000000 +FRIEDMAN INDUSTRIES INC;LEI05;US3584351056;10000000 +GENERAL STEEL HOLDINGS INC;5493008ZKBIR02ICY091;US3708532029;10000000 +GERDAU S.A.;254900YDV6SEQQPZVG24;US3737371050;10000000 +GIBRALTAR INDUSTRIES, INC.;LEI08;US3746891072;10000000 +GROUP SIMEC SA DE CV;529900LCYCXPA0TZEU09;MXP4984U1083;10000000 +HAYNES INTERNATIONAL INC;549300I9MS5UZLRFDO40;US4208772016;10000000 +INSTEEL INDUSTRIES INC;52990026LKY4MOX3L174;US45774W1080;10000000 +LEGATO MERGER CORP.;5493006RXIB5GVHWJS53;CA0156581070;10000000 +MECHEL PAO;253400C9GSPBSKERRP65;US5838406081;10000000 +NATIONAL STEEL CO;335800Y6L4X95L2FEF64;INE088B01015;10000000 +NIPPON STEEL CORP;35380065QWQ4U2V3PA33;JP3381000003;10000000 +NUCOR CORP;549300GGJCRSI2TIEJ46;US6703461052;10000000 +OSSEN INNOVATION CO. LTD.;LEI17;US6884102087;10000000 +POSCO;988400E5HRVX81AYLM04;KR7005490008;10000000 +STEEL DYNAMICS INC;549300HGGKEL4FYTTQ83;US8581191009;10000000 +TENARIS SA;549300Y7C05BKC4HZB40;US88031M1099;10000000 +TERNIUM S.A.;529900QG4KU23TEI2E46;US8808901081;10000000 +TIMKENSTEEL CORP;549300QZTZWHDE9HJL14;US8873991033;10000000 +TITAN INTERNATIONAL INC;254900CXRGBE7C4B5A06;US88830M1027;10000000 +UNITED STATES STEEL CORP;JNLUVFYJT1OZSIQ24U47;US9129091081;10000000 +UNIVERSAL STAINLESS & ALLOY PRODUCTS INC;5493001OEIZDUGXZDE09;US9138371003;10000000 +WORTHINGTON INDUSTRIES INC;1WRCIANKYOIK6KYE5E82;US9818111026;10000000 diff --git a/examples/vault_demo_n0.ipynb b/examples/vault_demo_n0.ipynb index 2db2898b..06b97726 100644 --- a/examples/vault_demo_n0.ipynb +++ b/examples/vault_demo_n0.ipynb @@ -326,7 +326,9 @@ "id": "1848722a-342e-46bd-b8fe-aa0001d4d28c", "metadata": {}, "source": [ - "### Step 4: Use Quant engine to access and visualize temperature scores" + "### Step 4: Use Quant engine to access and visualize temperature scores\n", + "\n", + "When the Data Vault is ready to be implemented, we can demonstrate that the Quant engine does not have access to primary company data (neither financial nor production)" ] }, { @@ -429,72 +431,72 @@ " \n", " \n", " 0\n", - " WORTHINGTON INDUSTRIES INC\n", - " US9818111026\n", + " Ameren Corp.\n", + " US0236081024\n", " demo\n", " S1+S2\n", " benchmark_1\n", - " 1.285214\n", - " 1.285214\n", + " 2.113541\n", + " 1.957490\n", " \n", " \n", " 1\n", - " Avangrid, Inc.\n", - " US05351W1036\n", + " CMS Energy\n", + " US1258961002\n", " demo\n", " S1+S2\n", " benchmark_1\n", - " 1.317737\n", - " 1.278198\n", + " 2.521093\n", + " 1.963172\n", " \n", " \n", " 2\n", - " Fortis, Inc\n", - " CA3495531079\n", + " TIMKENSTEEL CORP\n", + " US8873991033\n", " demo\n", " S1+S2\n", " benchmark_1\n", - " 3.152616\n", - " 2.184698\n", + " 1.318847\n", + " 1.293037\n", " \n", " \n", " 3\n", - " AES Corp.\n", - " US00130H1059\n", + " Xcel Energy, Inc.\n", + " US98389B1008\n", " demo\n", " S1+S2\n", " benchmark_1\n", - " 2.874460\n", - " 2.433496\n", + " 2.289638\n", + " 1.767726\n", " \n", " \n", " 4\n", - " WEC Energy Group\n", - " US92939U1060\n", + " Dominion Energy\n", + " US25746U1097\n", " demo\n", " S1+S2\n", " benchmark_1\n", - " 2.539351\n", - " 2.523781\n", + " 1.996292\n", + " 1.731388\n", " \n", " \n", "\n", "" ], "text/plain": [ - " company_name company_id source scope benchmark \\\n", - "0 WORTHINGTON INDUSTRIES INC US9818111026 demo S1+S2 benchmark_1 \n", - "1 Avangrid, Inc. US05351W1036 demo S1+S2 benchmark_1 \n", - "2 Fortis, Inc CA3495531079 demo S1+S2 benchmark_1 \n", - "3 AES Corp. US00130H1059 demo S1+S2 benchmark_1 \n", - "4 WEC Energy Group US92939U1060 demo S1+S2 benchmark_1 \n", + " company_name company_id source scope benchmark \\\n", + "0 Ameren Corp. US0236081024 demo S1+S2 benchmark_1 \n", + "1 CMS Energy US1258961002 demo S1+S2 benchmark_1 \n", + "2 TIMKENSTEEL CORP US8873991033 demo S1+S2 benchmark_1 \n", + "3 Xcel Energy, Inc. US98389B1008 demo S1+S2 benchmark_1 \n", + "4 Dominion Energy US25746U1097 demo S1+S2 benchmark_1 \n", "\n", " trajectory_temperature_score target_temperature_score \n", - "0 1.285214 1.285214 \n", - "1 1.317737 1.278198 \n", - "2 3.152616 2.184698 \n", - "3 2.874460 2.433496 \n", - "4 2.539351 2.523781 " + "0 2.113541 1.957490 \n", + "1 2.521093 1.963172 \n", + "2 1.318847 1.293037 \n", + "3 2.289638 1.767726 \n", + "4 1.996292 1.731388 " ] }, "execution_count": 10, @@ -1328,12 +1330,37 @@ "print(f\"Portfolio temperature score based on TETS = {portfolio_df['TETS_weight'].sum()}\")" ] }, + { + "cell_type": "markdown", + "id": "74453d3b-2288-4dfd-bb68-978c0cdf5f67", + "metadata": {}, + "source": [ + "### Calculate portfolio alignment temperature score based on MOTS, EOTS, ECOTS, AOTS, and ROTS\n", + "\n", + "* MOTS = market cap weights\n", + "* EOTS = enterprise value weights\n", + "* ECOTS = EVIC weights\n", + "* AOTS = asset weights\n", + "* ROTS = revenue weights" + ] + }, { "cell_type": "code", "execution_count": 23, - "id": "86ef9e48-1845-4841-bf18-8622afb44e59", + "id": "0df8c5fc-2939-4ac1-9448-499803583eb1", "metadata": {}, "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Portfolio temperature score based on MOTS = 1.9523158506309033\n", + "Portfolio temperature score based on EOTS = 2.081364955001339\n", + "Portfolio temperature score based on ECOTS = 1.942933676201069\n", + "Portfolio temperature score based on AOTS = 1.9468713889723186\n", + "Portfolio temperature score based on ROTS = 1.8125811169100436\n" + ] + }, { "data": { "text/html": [ @@ -1362,6 +1389,10 @@ " WATS_weight\n", " TETS_weight\n", " MOTS_weight\n", + " EOTS_weight\n", + " ECOTS_weight\n", + " AOTS_weight\n", + " ROTS_weight\n", " \n", " \n", " company_id\n", @@ -1372,6 +1403,10 @@ " \n", " \n", " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", @@ -1384,6 +1419,10 @@ " 0.014127\n", " 0.026135\n", " 0.041901\n", + " 0.025511\n", + " 0.045765\n", + " 0.059669\n", + " 0.065624\n", " \n", " \n", " US0158577090\n", @@ -1394,6 +1433,10 @@ " 0.007091\n", " 0.078521\n", " NaN\n", + " NaN\n", + " NaN\n", + " 0.018983\n", + " 0.010268\n", " \n", " \n", " US0185223007\n", @@ -1404,6 +1447,10 @@ " 0.011091\n", " 0.008519\n", " 0.014736\n", + " 0.013133\n", + " 0.014941\n", + " 0.008674\n", + " 0.007127\n", " \n", " \n", " US0188021085\n", @@ -1414,6 +1461,10 @@ " 0.009639\n", " 0.018719\n", " 0.034666\n", + " 0.036228\n", + " 0.034636\n", + " 0.022961\n", + " 0.018216\n", " \n", " \n", " US0236081024\n", @@ -1424,19 +1475,114 @@ " 0.039636\n", " 0.048920\n", " 0.054336\n", + " 0.052833\n", + " 0.054261\n", + " 0.039351\n", + " 0.029194\n", + " \n", + " \n", + " ...\n", + " ...\n", + " ...\n", + " ...\n", + " ...\n", + " ...\n", + " ...\n", + " ...\n", + " ...\n", + " ...\n", + " ...\n", + " ...\n", + " \n", + " \n", + " US8873991033\n", + " TIMKENSTEEL CORP\n", + " 549300QZTZWHDE9HJL14\n", + " 10000000\n", + " 1.305942\n", + " 0.015976\n", + " 0.000320\n", + " 0.000640\n", + " 0.000595\n", + " 0.000690\n", + " 0.000947\n", + " 0.003831\n", + " \n", + " \n", + " US88830M1027\n", + " TITAN INTERNATIONAL INC\n", + " 254900CXRGBE7C4B5A06\n", + " 10000000\n", + " NaN\n", + " NaN\n", + " NaN\n", + " NaN\n", + " NaN\n", + " NaN\n", + " NaN\n", + " NaN\n", + " \n", + " \n", + " US9129091081\n", + " UNITED STATES STEEL CORP\n", + " JNLUVFYJT1OZSIQ24U47\n", + " 10000000\n", + " 1.574487\n", + " 0.019261\n", + " 0.042732\n", + " 0.005946\n", + " 0.008435\n", + " 0.007641\n", + " 0.012212\n", + " 0.049432\n", + " \n", + " \n", + " US9138371003\n", + " UNIVERSAL STAINLESS & ALLOY PRODUCTS INC\n", + " 5493001OEIZDUGXZDE09\n", + " 10000000\n", + " NaN\n", + " NaN\n", + " NaN\n", + " NaN\n", + " NaN\n", + " NaN\n", + " NaN\n", + " NaN\n", + " \n", + " \n", + " US9818111026\n", + " WORTHINGTON INDUSTRIES INC\n", + " 1WRCIANKYOIK6KYE5E82\n", + " 10000000\n", + " 1.285214\n", + " 0.015722\n", + " 0.000311\n", + " 0.002656\n", + " 0.002548\n", + " 0.002822\n", + " 0.002156\n", + " 0.011726\n", " \n", " \n", "\n", + "

61 rows × 11 columns

\n", "" ], "text/plain": [ - " company_name company_lei \\\n", - "company_id \n", - "US00130H1059 AES Corp. 2NUNNB7D43COUIRE5295 \n", - "US0158577090 Algonquin Power & Utilities Corp. 549300K5VIUTJXQL7X75 \n", - "US0185223007 ALLETE, Inc. 549300NNLSIMY6Z8OT86 \n", - "US0188021085 Alliant Energy 5493009ML300G373MZ12 \n", - "US0236081024 Ameren Corp. XRZQ5S7HYJFPHJ78L959 \n", + " company_name company_lei \\\n", + "company_id \n", + "US00130H1059 AES Corp. 2NUNNB7D43COUIRE5295 \n", + "US0158577090 Algonquin Power & Utilities Corp. 549300K5VIUTJXQL7X75 \n", + "US0185223007 ALLETE, Inc. 549300NNLSIMY6Z8OT86 \n", + "US0188021085 Alliant Energy 5493009ML300G373MZ12 \n", + "US0236081024 Ameren Corp. XRZQ5S7HYJFPHJ78L959 \n", + "... ... ... \n", + "US8873991033 TIMKENSTEEL CORP 549300QZTZWHDE9HJL14 \n", + "US88830M1027 TITAN INTERNATIONAL INC 254900CXRGBE7C4B5A06 \n", + "US9129091081 UNITED STATES STEEL CORP JNLUVFYJT1OZSIQ24U47 \n", + "US9138371003 UNIVERSAL STAINLESS & ALLOY PRODUCTS INC 5493001OEIZDUGXZDE09 \n", + "US9818111026 WORTHINGTON INDUSTRIES INC 1WRCIANKYOIK6KYE5E82 \n", "\n", " investment_value pa_score WATS_weight TETS_weight \\\n", "company_id \n", @@ -1445,14 +1591,28 @@ "US0185223007 3829481 2.367569 0.011091 0.008519 \n", "US0188021085 3829481 2.057569 0.009639 0.018719 \n", "US0236081024 15917812 2.035515 0.039636 0.048920 \n", + "... ... ... ... ... \n", + "US8873991033 10000000 1.305942 0.015976 0.000320 \n", + "US88830M1027 10000000 NaN NaN NaN \n", + "US9129091081 10000000 1.574487 0.019261 0.042732 \n", + "US9138371003 10000000 NaN NaN NaN \n", + "US9818111026 10000000 1.285214 0.015722 0.000311 \n", "\n", - " MOTS_weight \n", - "company_id \n", - "US00130H1059 0.041901 \n", - "US0158577090 NaN \n", - "US0185223007 0.014736 \n", - "US0188021085 0.034666 \n", - "US0236081024 0.054336 " + " MOTS_weight EOTS_weight ECOTS_weight AOTS_weight ROTS_weight \n", + "company_id \n", + "US00130H1059 0.041901 0.025511 0.045765 0.059669 0.065624 \n", + "US0158577090 NaN NaN NaN 0.018983 0.010268 \n", + "US0185223007 0.014736 0.013133 0.014941 0.008674 0.007127 \n", + "US0188021085 0.034666 0.036228 0.034636 0.022961 0.018216 \n", + "US0236081024 0.054336 0.052833 0.054261 0.039351 0.029194 \n", + "... ... ... ... ... ... \n", + "US8873991033 0.000640 0.000595 0.000690 0.000947 0.003831 \n", + "US88830M1027 NaN NaN NaN NaN NaN \n", + "US9129091081 0.005946 0.008435 0.007641 0.012212 0.049432 \n", + "US9138371003 NaN NaN NaN NaN NaN \n", + "US9818111026 0.002656 0.002548 0.002822 0.002156 0.011726 \n", + "\n", + "[61 rows x 11 columns]" ] }, "execution_count": 23, @@ -1461,721 +1621,33 @@ } ], "source": [ - "portfolio_df['MOTS_weight'] = vault_company_data.compute_portfolio_weights(portfolio_df['pa_score'], 2019, 'company_market_cap', EScope.S1S2)\n", - "portfolio_df.head()" + "weighting_dict = {\n", + " 'MOTS': 'company_market_cap',\n", + " 'EOTS': 'company_enterprise_value',\n", + " 'ECOTS': 'company_evic',\n", + " 'AOTS': 'company_total_assets',\n", + " 'ROTS': 'company_revenue',\n", + "}\n", + "\n", + "for k, v in weighting_dict.items():\n", + " weight_column = f\"{k}_weight\"\n", + " portfolio_df[weight_column] = vault_company_data.compute_portfolio_weights(portfolio_df['pa_score'], 2019, v, EScope.S1S2)\n", + " print(f\"Portfolio temperature score based on {k} = {portfolio_df[weight_column].sum()}\")\n", + "\n", + "portfolio_df" ] }, { - "cell_type": "code", - "execution_count": 24, - "id": "e3da2890-ef72-49ef-b9f7-84236d793e76", + "cell_type": "markdown", + "id": "02416ac3-892e-4de7-b244-fc8311993ee9", "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Portfolio temperature score based on MOTS = 1.9523158506309033\n" - ] - } - ], "source": [ - "print(f\"Portfolio temperature score based on MOTS = {portfolio_df['MOTS_weight'].sum()}\")" + "### Companies for which we lack production data (and thus cannot chart)" ] }, { "cell_type": "code", - "execution_count": 25, - "id": "cdb49e6e-c290-41b3-840f-4a8773f5ddbe", - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
company_namecompany_leiinvestment_valuepa_scoreWATS_weightTETS_weightMOTS_weightEOTS_weight
company_id
US00130H1059AES Corp.2NUNNB7D43COUIRE529543512522.6539780.0141270.0261350.0419010.025511
US0158577090Algonquin Power & Utilities Corp.549300K5VIUTJXQL7X7522281852.6014480.0070910.078521NaNNaN
US0185223007ALLETE, Inc.549300NNLSIMY6Z8OT8638294812.3675690.0110910.0085190.0147360.013133
US0188021085Alliant Energy5493009ML300G373MZ1238294812.0575690.0096390.0187190.0346660.036228
US0236081024Ameren Corp.XRZQ5S7HYJFPHJ78L959159178122.0355150.0396360.0489200.0543360.052833
\n", - "
" - ], - "text/plain": [ - " company_name company_lei \\\n", - "company_id \n", - "US00130H1059 AES Corp. 2NUNNB7D43COUIRE5295 \n", - "US0158577090 Algonquin Power & Utilities Corp. 549300K5VIUTJXQL7X75 \n", - "US0185223007 ALLETE, Inc. 549300NNLSIMY6Z8OT86 \n", - "US0188021085 Alliant Energy 5493009ML300G373MZ12 \n", - "US0236081024 Ameren Corp. XRZQ5S7HYJFPHJ78L959 \n", - "\n", - " investment_value pa_score WATS_weight TETS_weight \\\n", - "company_id \n", - "US00130H1059 4351252 2.653978 0.014127 0.026135 \n", - "US0158577090 2228185 2.601448 0.007091 0.078521 \n", - "US0185223007 3829481 2.367569 0.011091 0.008519 \n", - "US0188021085 3829481 2.057569 0.009639 0.018719 \n", - "US0236081024 15917812 2.035515 0.039636 0.048920 \n", - "\n", - " MOTS_weight EOTS_weight \n", - "company_id \n", - "US00130H1059 0.041901 0.025511 \n", - "US0158577090 NaN NaN \n", - "US0185223007 0.014736 0.013133 \n", - "US0188021085 0.034666 0.036228 \n", - "US0236081024 0.054336 0.052833 " - ] - }, - "execution_count": 25, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "portfolio_df['EOTS_weight'] = vault_company_data.compute_portfolio_weights(portfolio_df['pa_score'], 2019, 'company_enterprise_value', EScope.S1S2)\n", - "portfolio_df.head()" - ] - }, - { - "cell_type": "code", - "execution_count": 26, - "id": "2943ea52-def6-400d-bf29-6a05b20a1825", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Portfolio temperature score based on EOTS = 2.081364955001339\n" - ] - } - ], - "source": [ - "print(f\"Portfolio temperature score based on EOTS = {portfolio_df['EOTS_weight'].sum()}\")" - ] - }, - { - "cell_type": "code", - "execution_count": 27, - "id": "13e2fd93-13df-43ab-ab63-8009ea794a71", - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
company_namecompany_leiinvestment_valuepa_scoreWATS_weightTETS_weightMOTS_weightEOTS_weightECOTS_weight
company_id
US00130H1059AES Corp.2NUNNB7D43COUIRE529543512522.6539780.0141270.0261350.0419010.0255110.045765
US0158577090Algonquin Power & Utilities Corp.549300K5VIUTJXQL7X7522281852.6014480.0070910.078521NaNNaNNaN
US0185223007ALLETE, Inc.549300NNLSIMY6Z8OT8638294812.3675690.0110910.0085190.0147360.0131330.014941
US0188021085Alliant Energy5493009ML300G373MZ1238294812.0575690.0096390.0187190.0346660.0362280.034636
US0236081024Ameren Corp.XRZQ5S7HYJFPHJ78L959159178122.0355150.0396360.0489200.0543360.0528330.054261
\n", - "
" - ], - "text/plain": [ - " company_name company_lei \\\n", - "company_id \n", - "US00130H1059 AES Corp. 2NUNNB7D43COUIRE5295 \n", - "US0158577090 Algonquin Power & Utilities Corp. 549300K5VIUTJXQL7X75 \n", - "US0185223007 ALLETE, Inc. 549300NNLSIMY6Z8OT86 \n", - "US0188021085 Alliant Energy 5493009ML300G373MZ12 \n", - "US0236081024 Ameren Corp. XRZQ5S7HYJFPHJ78L959 \n", - "\n", - " investment_value pa_score WATS_weight TETS_weight \\\n", - "company_id \n", - "US00130H1059 4351252 2.653978 0.014127 0.026135 \n", - "US0158577090 2228185 2.601448 0.007091 0.078521 \n", - "US0185223007 3829481 2.367569 0.011091 0.008519 \n", - "US0188021085 3829481 2.057569 0.009639 0.018719 \n", - "US0236081024 15917812 2.035515 0.039636 0.048920 \n", - "\n", - " MOTS_weight EOTS_weight ECOTS_weight \n", - "company_id \n", - "US00130H1059 0.041901 0.025511 0.045765 \n", - "US0158577090 NaN NaN NaN \n", - "US0185223007 0.014736 0.013133 0.014941 \n", - "US0188021085 0.034666 0.036228 0.034636 \n", - "US0236081024 0.054336 0.052833 0.054261 " - ] - }, - "execution_count": 27, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "portfolio_df['ECOTS_weight'] = vault_company_data.compute_portfolio_weights(portfolio_df['pa_score'], 2019, 'company_evic', EScope.S1S2)\n", - "portfolio_df.head()" - ] - }, - { - "cell_type": "code", - "execution_count": 28, - "id": "5baa153b-8c1f-4546-afd7-727c694712c1", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Portfolio temperature score based on ECOTS = 1.942933676201069\n" - ] - } - ], - "source": [ - "print(f\"Portfolio temperature score based on ECOTS = {portfolio_df['ECOTS_weight'].sum()}\")" - ] - }, - { - "cell_type": "code", - "execution_count": 29, - "id": "f952fa2d-957e-455c-878e-8fb588631a74", - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
company_namecompany_leiinvestment_valuepa_scoreWATS_weightTETS_weightMOTS_weightEOTS_weightECOTS_weightAOTS_weight
company_id
US00130H1059AES Corp.2NUNNB7D43COUIRE529543512522.6539780.0141270.0261350.0419010.0255110.0457650.059669
US0158577090Algonquin Power & Utilities Corp.549300K5VIUTJXQL7X7522281852.6014480.0070910.078521NaNNaNNaN0.018983
US0185223007ALLETE, Inc.549300NNLSIMY6Z8OT8638294812.3675690.0110910.0085190.0147360.0131330.0149410.008674
US0188021085Alliant Energy5493009ML300G373MZ1238294812.0575690.0096390.0187190.0346660.0362280.0346360.022961
US0236081024Ameren Corp.XRZQ5S7HYJFPHJ78L959159178122.0355150.0396360.0489200.0543360.0528330.0542610.039351
\n", - "
" - ], - "text/plain": [ - " company_name company_lei \\\n", - "company_id \n", - "US00130H1059 AES Corp. 2NUNNB7D43COUIRE5295 \n", - "US0158577090 Algonquin Power & Utilities Corp. 549300K5VIUTJXQL7X75 \n", - "US0185223007 ALLETE, Inc. 549300NNLSIMY6Z8OT86 \n", - "US0188021085 Alliant Energy 5493009ML300G373MZ12 \n", - "US0236081024 Ameren Corp. XRZQ5S7HYJFPHJ78L959 \n", - "\n", - " investment_value pa_score WATS_weight TETS_weight \\\n", - "company_id \n", - "US00130H1059 4351252 2.653978 0.014127 0.026135 \n", - "US0158577090 2228185 2.601448 0.007091 0.078521 \n", - "US0185223007 3829481 2.367569 0.011091 0.008519 \n", - "US0188021085 3829481 2.057569 0.009639 0.018719 \n", - "US0236081024 15917812 2.035515 0.039636 0.048920 \n", - "\n", - " MOTS_weight EOTS_weight ECOTS_weight AOTS_weight \n", - "company_id \n", - "US00130H1059 0.041901 0.025511 0.045765 0.059669 \n", - "US0158577090 NaN NaN NaN 0.018983 \n", - "US0185223007 0.014736 0.013133 0.014941 0.008674 \n", - "US0188021085 0.034666 0.036228 0.034636 0.022961 \n", - "US0236081024 0.054336 0.052833 0.054261 0.039351 " - ] - }, - "execution_count": 29, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "portfolio_df['AOTS_weight'] = vault_company_data.compute_portfolio_weights(portfolio_df['pa_score'], 2019, 'company_total_assets', EScope.S1S2)\n", - "portfolio_df.head()" - ] - }, - { - "cell_type": "code", - "execution_count": 30, - "id": "1fb76202-a3e6-412c-b32d-42680eb0de66", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Portfolio temperature score based on AOTS = 1.9468713889723186\n" - ] - } - ], - "source": [ - "print(f\"Portfolio temperature score based on AOTS = {portfolio_df['AOTS_weight'].sum()}\")" - ] - }, - { - "cell_type": "code", - "execution_count": 31, - "id": "a53ff47c-adb3-467b-9ec4-a0294fb8c970", - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
company_namecompany_leiinvestment_valuepa_scoreWATS_weightTETS_weightMOTS_weightEOTS_weightECOTS_weightAOTS_weightROTS_weight
company_id
US00130H1059AES Corp.2NUNNB7D43COUIRE529543512522.6539780.0141270.0261350.0419010.0255110.0457650.0596690.065624
US0158577090Algonquin Power & Utilities Corp.549300K5VIUTJXQL7X7522281852.6014480.0070910.078521NaNNaNNaN0.0189830.010268
US0185223007ALLETE, Inc.549300NNLSIMY6Z8OT8638294812.3675690.0110910.0085190.0147360.0131330.0149410.0086740.007127
US0188021085Alliant Energy5493009ML300G373MZ1238294812.0575690.0096390.0187190.0346660.0362280.0346360.0229610.018216
US0236081024Ameren Corp.XRZQ5S7HYJFPHJ78L959159178122.0355150.0396360.0489200.0543360.0528330.0542610.0393510.029194
\n", - "
" - ], - "text/plain": [ - " company_name company_lei \\\n", - "company_id \n", - "US00130H1059 AES Corp. 2NUNNB7D43COUIRE5295 \n", - "US0158577090 Algonquin Power & Utilities Corp. 549300K5VIUTJXQL7X75 \n", - "US0185223007 ALLETE, Inc. 549300NNLSIMY6Z8OT86 \n", - "US0188021085 Alliant Energy 5493009ML300G373MZ12 \n", - "US0236081024 Ameren Corp. XRZQ5S7HYJFPHJ78L959 \n", - "\n", - " investment_value pa_score WATS_weight TETS_weight \\\n", - "company_id \n", - "US00130H1059 4351252 2.653978 0.014127 0.026135 \n", - "US0158577090 2228185 2.601448 0.007091 0.078521 \n", - "US0185223007 3829481 2.367569 0.011091 0.008519 \n", - "US0188021085 3829481 2.057569 0.009639 0.018719 \n", - "US0236081024 15917812 2.035515 0.039636 0.048920 \n", - "\n", - " MOTS_weight EOTS_weight ECOTS_weight AOTS_weight ROTS_weight \n", - "company_id \n", - "US00130H1059 0.041901 0.025511 0.045765 0.059669 0.065624 \n", - "US0158577090 NaN NaN NaN 0.018983 0.010268 \n", - "US0185223007 0.014736 0.013133 0.014941 0.008674 0.007127 \n", - "US0188021085 0.034666 0.036228 0.034636 0.022961 0.018216 \n", - "US0236081024 0.054336 0.052833 0.054261 0.039351 0.029194 " - ] - }, - "execution_count": 31, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "portfolio_df['ROTS_weight'] = vault_company_data.compute_portfolio_weights(portfolio_df['pa_score'], 2019, 'company_revenue', EScope.S1S2)\n", - "portfolio_df.head()" - ] - }, - { - "cell_type": "code", - "execution_count": 32, - "id": "7df28b43-8711-4a75-a8d7-5b211518bb7c", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Portfolio temperature score based on ROTS = 1.8125811169100436\n" - ] - } - ], - "source": [ - "print(f\"Portfolio temperature score based on ROTS = {portfolio_df['ROTS_weight'].sum()}\")" - ] - }, - { - "cell_type": "code", - "execution_count": 33, + "execution_count": 24, "id": "d1e39a38-9d3f-4ff7-aa46-965f6cbf4a76", "metadata": {}, "outputs": [ @@ -2532,7 +2004,7 @@ "US9138371003 NaN NaN NaN NaN NaN " ] }, - "execution_count": 33, + "execution_count": 24, "metadata": {}, "output_type": "execute_result" } From 082932c4e547842249759d35126325a9abcb4c36 Mon Sep 17 00:00:00 2001 From: MichaelTiemannOSC Date: Mon, 31 Jan 2022 20:52:58 +0000 Subject: [PATCH 019/345] Budgets are for future timeframes, so build them without overhang from the past The tool produced some really whacky results for EVERSOURCE ENERGY. The CO2 profile of that company included a rapid transition from fossil to purely hydro resources. The budget premise based on 2019 data required very low CO2 usage going forward. If the past CO2 emissions were added into the forward-looking forecasts, the numbers were whack. By building cumulative targets based on trajectories and targets, sense was made. Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- ITR/data/vault_providers.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/ITR/data/vault_providers.py b/ITR/data/vault_providers.py index efbb18be..49fcb447 100644 --- a/ITR/data/vault_providers.py +++ b/ITR/data/vault_providers.py @@ -422,6 +422,7 @@ def __init__(self, join {company_data._schema}.{company_data._production_table} P on P.company_name=C.company_name join {company_data._schema}.{company_data._intensity_table} EI on EI.company_name=C.company_name and EI.year=P.year join {company_data._schema}.{company_data._trajectory_table} ET on ET.company_name=C.company_name and ET.year=P.year +where P.year>=2020 group by C.company_name, C.company_id, '{company_data._schema}', 'S1+S2' """) # Need to fetch so table created above is established before using in query below @@ -438,6 +439,7 @@ def __init__(self, join {company_data._schema}.{company_data._production_table} P on P.company_name=C.company_name join demo.isic_to_sector I2S on C.isic=I2S.isic join {self._schema}.benchmark_ei B on P.year=B.year and C.region=B.region and I2S.sector=B.sector +where P.year>=2020 group by C.company_name, C.company_id, '{company_data._schema}', 'S1+S2', 'benchmark_1', B.global_budget, B.benchmark_temp """) # Need to fetch so table created above is established before using in query below From d909eabeecffa08d51bc331ab482e6625f6929a5 Mon Sep 17 00:00:00 2001 From: MichaelTiemannOSC Date: Tue, 1 Feb 2022 13:04:17 +0000 Subject: [PATCH 020/345] Remove redundant calls to drop_unmanaged_data Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- ITR/data/vault_providers.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/ITR/data/vault_providers.py b/ITR/data/vault_providers.py index 49fcb447..2cc67a80 100644 --- a/ITR/data/vault_providers.py +++ b/ITR/data/vault_providers.py @@ -279,7 +279,6 @@ def __init__(self, self._schema = ingest_schema or engine.dialect.default_schema_name or 'demo' self.benchmark_name = benchmark_name osc.drop_unmanaged_table(ingest_catalog, self._schema, benchmark_name, engine, trino_bucket) - osc.drop_unmanaged_data(self._schema, benchmark_name, trino_bucket) df = pd.DataFrame() for scope in benchmark_scopes: if EI_benchmarks.dict()[scope] is None: @@ -408,7 +407,6 @@ def __init__(self, # * Cumulative budget of emissions (separately for each benchmark) for t in ['cumulative_emissions', 'cumulative_budget_1', 'overshoot_ratios', 'temperature_scores']: osc.drop_unmanaged_table(ingest_catalog, self._schema, t, engine, trino_bucket) - osc.drop_unmanaged_data(self._schema, t, trino_bucket) qres = self._engine.execute(f""" create table cumulative_emissions with ( From 58deb1247217422310bbd67e34579841682137bc Mon Sep 17 00:00:00 2001 From: MichaelTiemannOSC Date: Wed, 2 Feb 2022 12:31:18 +0000 Subject: [PATCH 021/345] WIP Data Vault notebook check-in The three users are now kept separate in three separate notebooks. There are some ugly hacks to provide the necessary separation of data via the object model. No ugly hacks are needed for the SQL layer because that's the native language of the Data Vault. But this checkin gives us demo-ability while we clean up the object model. Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- ITR/data/vault_providers.py | 28 +- examples/vault_demo_cleanup.ipynb | 307 +++ examples/vault_demo_n0.ipynb | 1499 +-------------- examples/vault_demo_n1.ipynb | 2932 +++++++++++++++++++++++++++++ examples/vault_demo_n2.ipynb | 2089 ++++++++++++++++++++ 5 files changed, 5398 insertions(+), 1457 deletions(-) create mode 100644 examples/vault_demo_cleanup.ipynb create mode 100644 examples/vault_demo_n1.ipynb create mode 100644 examples/vault_demo_n2.ipynb diff --git a/ITR/data/vault_providers.py b/ITR/data/vault_providers.py index 2cc67a80..f4f5ea6f 100644 --- a/ITR/data/vault_providers.py +++ b/ITR/data/vault_providers.py @@ -77,8 +77,8 @@ def __init__(self, self.column_config = column_config self.temp_config = tempscore_config # Validate and complete the projected trajectories - self._intensity_table = company_table.replace('company_', 'intensity_') - self._trajectory_table = company_table.replace('company_', 'trajectory_') + self._intensity_table = target_table or company_table.replace('company_', 'intensity_') + self._trajectory_table = trajectory_table or company_table.replace('company_', 'trajectory_') self._production_table = company_table.replace('company_', 'production_') self._emissions_table = company_table.replace('company_', 'emissions_') companies_without_projections = self._engine.execute(f""" @@ -401,11 +401,17 @@ def __init__(self, # intensity_projections['scope'] = 'S1+S2' # intensity_projections['source'] = self._schema + # If there's no company data, we are just using the vault, not initializing it + if company_data==None: + return + if benchmark_projected_production is None and benchmarks_projected_emissions_intensity is None: + return + # The DataVaultWarehouse provides three calculations per company: # * Cumulative trajectory of emissions # * Cumulative target of emissions # * Cumulative budget of emissions (separately for each benchmark) - for t in ['cumulative_emissions', 'cumulative_budget_1', 'overshoot_ratios', 'temperature_scores']: + for t in ['cumulative_emissions', 'cumulative_budget_1']: osc.drop_unmanaged_table(ingest_catalog, self._schema, t, engine, trino_bucket) qres = self._engine.execute(f""" @@ -440,8 +446,20 @@ def __init__(self, where P.year>=2020 group by C.company_name, C.company_id, '{company_data._schema}', 'S1+S2', 'benchmark_1', B.global_budget, B.benchmark_temp """) - # Need to fetch so table created above is established before using in query below + # Need to fetch so table created above is established so later queries can use it qres.fetchall() + + def quant_init(self, + engine: sqlalchemy.engine.base.Engine, + company_data: VaultCompanyDataProvider, + ingest_schema: str = None): + # The Quant users of the DataVaultWarehouse produces two calculations per company: + # * Target and Trajectory overshoot ratios + # * Temperature Scores + + for t in ['overshoot_ratios', 'temperature_scores']: + osc.drop_unmanaged_table(ingest_catalog, self._schema, t, engine, trino_bucket) + qres = self._engine.execute(f""" create table overshoot_ratios with ( format = 'parquet', @@ -454,7 +472,7 @@ def __init__(self, from {self._schema}.cumulative_emissions E join {self._schema}.cumulative_budget_1 B on E.company_id=B.company_id """) - # Need to fetch so table created above is established before using in query below + # Need to fetch so table created above is established so later queries can use it qres.fetchall() qres = self._engine.execute(f""" create table temperature_scores with ( diff --git a/examples/vault_demo_cleanup.ipynb b/examples/vault_demo_cleanup.ipynb new file mode 100644 index 00000000..ff9bed88 --- /dev/null +++ b/examples/vault_demo_cleanup.ipynb @@ -0,0 +1,307 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "e3c5c7d5-63e0-47a5-ac4a-bb58beb98995", + "metadata": {}, + "source": [ + "# Data Vault Demo (Cleanup)\n", + "\n", + "Clean up tables created by Data Vault Demo\n", + "\n", + "Only table creators can drop tables, so we need to instantiate the engines that created the tables..." + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "id": "d1ab75f1-dc99-422d-b15b-ce043e32fff8", + "metadata": {}, + "outputs": [], + "source": [ + "import os\n", + "import pathlib\n", + "from dotenv import load_dotenv\n", + "\n", + "# Load some standard environment variables from a dot-env file, if it exists.\n", + "# If no such file can be found, does not fail, and so allows these environment vars to\n", + "# be populated in some other way\n", + "dotenv_dir = os.environ.get('CREDENTIAL_DOTENV_DIR', os.environ.get('PWD', '/opt/app-root/src'))\n", + "dotenv_path = pathlib.Path(dotenv_dir) / 'credentials.env'\n", + "if os.path.exists(dotenv_path):\n", + " load_dotenv(dotenv_path=dotenv_path,override=True)\n", + "\n", + "import trino\n", + "import osc_ingest_trino as osc\n", + "from sqlalchemy.engine import create_engine" + ] + }, + { + "cell_type": "raw", + "id": "b3154b10-a9d4-45e2-9329-93098ac3b1b2", + "metadata": {}, + "source": [ + "# This initializes the \"normal\" Trino developer's engine\n", + "\n", + "sqlstring = 'trino://{user}@{host}:{port}/'.format(\n", + " user = os.environ['TRINO_USER'],\n", + " host = os.environ['TRINO_HOST'],\n", + " port = os.environ['TRINO_PORT']\n", + ")\n", + "\n", + "ingest_catalog = 'osc_datacommons_dev'\n", + "ingest_schema = 'demo'\n", + "\n", + "sqlargs = {\n", + " 'auth': trino.auth.JWTAuthentication(os.environ['TRINO_PASSWD']),\n", + " 'http_scheme': 'https',\n", + " 'catalog': ingest_catalog,\n", + " 'schema': ingest_schema,\n", + "}\n", + "engine = create_engine(sqlstring, connect_args = sqlargs)\n", + "connection = engine.connect()" + ] + }, + { + "cell_type": "markdown", + "id": "a6b350ef-f3a0-4e59-9885-d6c830b040b3", + "metadata": {}, + "source": [ + "The ITR Data Pipeline creates these tables. We should not delete this data unless we created them as TRINO_USER1 as part of the construction of the vault." + ] + }, + { + "cell_type": "raw", + "id": "b83eb9bf-9ca2-4bba-a16d-662db030a2f6", + "metadata": {}, + "source": [ + "for table in ['company_data', 'emissions_data', 'intensity_data', 'production_data', 'trajectory_data']:\n", + " print(f\"Dropping table {table}\")\n", + " engine.execute(f\"drop table if exists {table}\").fetchall()" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "6cfbc8a9-aa36-4b40-ae6d-7f0a91785855", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Cleaning up Dev tables\n", + "connecting with engine Engine(trino://os-climate-user1@trino-secure-odh-trino.apps.odh-cl1.apps.os-climate.org:443/)\n" + ] + }, + { + "data": { + "text/plain": [ + "[('cat',),\n", + " ('company_data',),\n", + " ('data_vault',),\n", + " ('demo_metastore',),\n", + " ('emissions_data',),\n", + " ('gleif_isin_lei',),\n", + " ('gppd',),\n", + " ('intensity_data',),\n", + " ('isic_to_sector',),\n", + " ('lei_isin',),\n", + " ('my_big_tbl_1',),\n", + " ('odsc_isin_reduction',),\n", + " ('odsc_isin_reduction_notebook',),\n", + " ('odsc_isin_reduction_notebook_pipeline1',),\n", + " ('odsc_rocks',),\n", + " ('odsc_roxx',),\n", + " ('odsc_xxx',),\n", + " ('osc_mlcop',),\n", + " ('osc_rocks',),\n", + " ('parquet_partitions_tutorial',),\n", + " ('production_data',),\n", + " ('pudl_1995_al',),\n", + " ('test3',),\n", + " ('trajectory_data',),\n", + " ('zztop',)]" + ] + }, + "execution_count": 2, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "print(\"Cleaning up Dev tables\")\n", + "\n", + "sqlstring = 'trino://{user}@{host}:{port}/'.format(\n", + " user = os.environ['TRINO_USER_USER1'],\n", + " host = os.environ['TRINO_HOST'],\n", + " port = os.environ['TRINO_PORT']\n", + ")\n", + "\n", + "ingest_catalog = 'osc_datacommons_dev'\n", + "ingest_schema = 'demo'\n", + "\n", + "sqlargs = {\n", + " 'auth': trino.auth.JWTAuthentication(os.environ['TRINO_PASSWD_USER1']),\n", + " 'http_scheme': 'https',\n", + " 'catalog': ingest_catalog,\n", + " 'schema': ingest_schema,\n", + "}\n", + "\n", + "engine_dev = create_engine(sqlstring, connect_args = sqlargs)\n", + "print(\"connecting with engine \" + str(engine_dev))\n", + "connection_dev = engine_dev.connect()\n", + "engine_dev.execute(f\"show tables in {ingest_schema}\").fetchall()" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "a6832b10-ea33-464b-a061-043757fe16d0", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Dropping Dev table benchmark_ei\n", + "Dropping Dev table benchmark_prod\n", + "Dropping Dev table cumulative_budget_1\n", + "Dropping Dev table cumulative_emissions\n" + ] + } + ], + "source": [ + "for table in ['benchmark_ei', 'benchmark_prod',\n", + " 'cumulative_budget_1', 'cumulative_emissions']:\n", + " print(f\"Dropping Dev table {table}\")\n", + " engine_dev.execute(f\"drop table if exists {table}\").fetchall()" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "c95bcd2c-5884-4331-8233-a352bf52cec6", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Cleaning up Dev tables\n", + "connecting with engine Engine(trino://os-climate-user2@trino-secure-odh-trino.apps.odh-cl1.apps.os-climate.org:443/)\n" + ] + }, + { + "data": { + "text/plain": [ + "[('cat',),\n", + " ('company_data',),\n", + " ('data_vault',),\n", + " ('demo_metastore',),\n", + " ('emissions_data',),\n", + " ('gleif_isin_lei',),\n", + " ('gppd',),\n", + " ('intensity_data',),\n", + " ('isic_to_sector',),\n", + " ('lei_isin',),\n", + " ('my_big_tbl_1',),\n", + " ('odsc_isin_reduction',),\n", + " ('odsc_isin_reduction_notebook',),\n", + " ('odsc_isin_reduction_notebook_pipeline1',),\n", + " ('odsc_rocks',),\n", + " ('odsc_roxx',),\n", + " ('odsc_xxx',),\n", + " ('osc_mlcop',),\n", + " ('osc_rocks',),\n", + " ('parquet_partitions_tutorial',),\n", + " ('production_data',),\n", + " ('pudl_1995_al',),\n", + " ('test3',),\n", + " ('trajectory_data',),\n", + " ('zztop',)]" + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "print(\"Cleaning up Quant tables\")\n", + "\n", + "sqlstring = 'trino://{user}@{host}:{port}/'.format(\n", + " user = os.environ['TRINO_USER_USER2'],\n", + " host = os.environ['TRINO_HOST'],\n", + " port = os.environ['TRINO_PORT']\n", + ")\n", + "\n", + "ingest_catalog = 'osc_datacommons_dev'\n", + "ingest_schema = 'demo'\n", + "\n", + "sqlargs = {\n", + " 'auth': trino.auth.JWTAuthentication(os.environ['TRINO_PASSWD_USER2']),\n", + " 'http_scheme': 'https',\n", + " 'catalog': ingest_catalog,\n", + " 'schema': ingest_schema,\n", + "}\n", + "\n", + "engine_quant = create_engine(sqlstring, connect_args = sqlargs)\n", + "print(\"connecting with engine \" + str(engine_quant))\n", + "connection_quant = engine_quant.connect()\n", + "engine_quant.execute(f\"show tables in {ingest_schema}\").fetchall()" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "a4d4478e-997c-4641-9d4f-f4588318b90f", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Dropping Quant table overshoot_ratios\n", + "Dropping Quant table temperature_scores\n" + ] + } + ], + "source": [ + "for table in ['overshoot_ratios',\n", + " 'temperature_scores']:\n", + " print(f\"Dropping Quant table {table}\")\n", + " engine_quant.execute(f\"drop table if exists {table}\").fetchall()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "96697928-5b47-4e5a-955c-5892f2311535", + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.8.3" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/examples/vault_demo_n0.ipynb b/examples/vault_demo_n0.ipynb index 06b97726..7419eda6 100644 --- a/examples/vault_demo_n0.ipynb +++ b/examples/vault_demo_n0.ipynb @@ -5,22 +5,22 @@ "id": "e3c5c7d5-63e0-47a5-ac4a-bb58beb98995", "metadata": {}, "source": [ - "# Data Vault Demo\n", + "# Data Vault Demo (Dev -- Full Access)\n", "\n", "The basic concept of the Data Vault is that when a user authenticates themself, they receive an engine that gives them access to all the data (rows, columns, tables, schema, etc.) for which they are authorized. Users who can authenticate themselves for multiple roles can use those roles simultaneously. We are keeping in mind the importance of Data Lineage Management (tracked by issue https://github.com/os-climate/os_c_data_commons/issues/50) but is not treated as part of this particular prototype.\n", "\n", "The steps of this demo are:\n", "\n", - "1. Authenticate and acquire three SQLAlchemy engines\n", - " 1. Dev engine sees all\n", + "1. **Authenticate and acquire SQLAlchemy engine**\n", + " 1. **Dev engine sees all**\n", " 2. Quant engine can do temp scoring but not see fundamental company info\n", " 3. User engine can use temp scoring but not see cumulative emissions nor overshoot info\n", - "2. With Dev engine, construct Vaults for:\n", - " 1. Fundamental corporate financial information\n", - " 2. Corporate emissions data (base year, historical)\n", - " 3. Corporate target data (start year, end year, target start value, target end value)\n", - " 4. Sector benchmark data (production, CO2e intensity)\n", - "3. Dev Engine: Visualize projected emissions (targets and trajectories) and calculate cumulative emissions\n", + "2. **With Dev engine, construct Vaults for:**\n", + " 1. **Fundamental corporate financial information**\n", + " 2. **Corporate emissions data (base year, historical)**\n", + " 3. **Corporate target data (start year, end year, target start value, target end value)**\n", + " 4. **Sector benchmark data (production, CO2e intensity)**\n", + "3. **Dev Engine: Visualize projected emissions (targets and trajectories) and calculate cumulative emissions**\n", "4. Quant Engine: Using calculated cumulative emmisions, visualize per-company trajectory and target temperature scores\n", "5. User Engine: Using consensus probability scoring and own portfolio data (ISIN, position value)\n", " 1. Calculate publishable per-company temperature alignment score\n", @@ -99,12 +99,8 @@ { "data": { "text/plain": [ - "[('benchmark_ei',),\n", - " ('benchmark_prod',),\n", - " ('cat',),\n", + "[('cat',),\n", " ('company_data',),\n", - " ('cumulative_budget_1',),\n", - " ('cumulative_emissions',),\n", " ('data_vault',),\n", " ('demo_metastore',),\n", " ('emissions_data',),\n", @@ -122,11 +118,9 @@ " ('odsc_xxx',),\n", " ('osc_mlcop',),\n", " ('osc_rocks',),\n", - " ('overshoot_ratios',),\n", " ('parquet_partitions_tutorial',),\n", " ('production_data',),\n", " ('pudl_1995_al',),\n", - " ('temperature_scores',),\n", " ('test3',),\n", " ('trajectory_data',),\n", " ('zztop',)]" @@ -302,7 +296,7 @@ }, { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAABV0AAAJNCAYAAAAib9UzAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/YYfK9AAAACXBIWXMAAAsTAAALEwEAmpwYAAEAAElEQVR4nOzdeVxVdf7H8dfhsq+yK6ICiuyb4q65tGjpWO5aueRYWVlpu9OilU05OllZM1a/yizDLdOmxTFTS9NUNNwAFxRRFARxAXfg/P5AbzHimnpR38/Hg4fe7/me7/mce72KHz738zVM00RERERERERERERELg87WwcgIiIiIiIiIiIicj1R0lVERERERERERETkMlLSVUREREREREREROQyUtJVRERERERERERE5DJS0lVERERERERERETkMlLSVUREREREREREROQysr+aF/Pz8zNDQkKu5iVFRERERERERERELrvVq1cXmqbpX9Wxq5p0DQkJITU19WpeUkREREREREREROSyMwxjx9mOqb2AiIiIiIiIiIiIyGWkpKuIiIiIiIiIiIjIZaSkq4iIiIiIiIiIiMhldFV7uoqIiIiIiIiIyJV18uRJdu3axbFjx2wdish1wdnZmeDgYBwcHC74HCVdRURERERERESuI7t27cLDw4OQkBAMw7B1OCLXNNM02bdvH7t27SI0NPSCz1N7ARERERERERGR68ixY8fw9fVVwlXkMjAMA19f34uuHFfSVURERERERETkOqOEq8jlcynvJyVdRURERERERERERC4jJV1FRERERERERERELiMlXUVEREREREREREQuIyVdRURERERERETkujZlyhTi4+NJSEigf//+ZGdn06FDB+Lj47n55pvJyckBYNCgQTz00EM0b96csLAwFi9ezODBg4mKimLQoEHW9dzd3RkxYgQxMTHcfPPNFBQUAPDhhx/SpEkTEhIS6NGjB0eOHLGu+9hjj9GyZUvCwsKYNWsWAAMGDGDOnDnWde+55x7mzp1b5T1MnjyZ7t2706lTJ8LDw3nmmWesxx566CGSk5OJiYlh1KhR1vGQkBBGjhxJYmIiycnJrFmzho4dO1K/fn0mTZpknTdu3DiaNGlCfHx8pfPl0inpKiIiIiIiIiIi162NGzcyZswYFi5cyNq1a3n77bd59NFHGThwIOvWreOee+7hscces87fv38/y5cvZ8KECXTt2pURI0awceNG1q9fT1paGgCHDx8mOTmZjRs30rZtW15++WUAunfvzqpVq1i7di1RUVF89NFH1nX37NnD0qVL+eabb3juuecA+Otf/8rkyZMBOHjwIMuWLaNz585nvZe0tDSmT5/O+vXrmT59Ojt37gTgtddeIzU1lXXr1vHTTz+xbt066zl169YlLS2NNm3aMGjQIGbNmsWvv/5qTa7Onz+fLVu2sHLlStLS0li9ejU///zzn3/ib3BKuoqIiIiIiIiIyHVr4cKF9OrVCz8/PwB8fHxYvnw5d999NwD9+/dn6dKl1vl/+ctfMAyDuLg4AgMDiYuLw87OjpiYGLKzswGws7OjT58+ANx7773W8zds2ECbNm2Ii4tj6tSpbNy40bruXXfdhZ2dHdHR0eTn5wPQtm1btmzZQkFBASkpKfTo0QN7e/uz3svNN9+Ml5cXzs7OREdHs2PHDgBmzJhBo0aNSEpKYuPGjaSnp1vP6dq1KwBxcXE0a9YMDw8P/P39cXJy4sCBA8yfP5/58+eTlJREo0aNyMzMZMuWLX/qORc4+6soIiIiIiIiIiJyg3FycgIqEqunf3/6cWlpaZXnGIYBVLQRmDNnDgkJCUyePJnFixefsS6AaZrW3w8YMIDPP/+cadOm8cknn1xQbAAWi4XS0lK2b9/O+PHjWbVqFd7e3gwaNIhjx45d8P2YpsnIkSN58MEHz3ltuTiqdBURERERERERketWhw4dmDlzJvv27QOgqKiIli1bMm3aNACmTp1KmzZtLmrN8vJya1/WL774gtatWwNQXFxMrVq1OHnyJFOnTr2gtQYNGsRbb70FQHR09EXFAXDo0CHc3Nzw8vIiPz+f77///qLO79ixIx9//DElJSUA5Obmsnfv3ouOQypTpauIiIiIiIiIiFy3YmJieP7552nbti0Wi4WkpCQmTpzIfffdx7hx4/D39z9vhen/cnNzY+XKlYwZM4aAgACmT58OwKuvvkqzZs3w9/enWbNmFBcXn3etwMBAoqKiuOuuuy7l9khISCApKYnIyEjq1KlDq1atLur82267jYyMDFq0aAFUbBL2+eefExAQcEnxSAXjj+XMV1pycrKZmpp61a4nIiIiIiIiInKjycjIICoqytZhXNfc3d2tlaF/1pEjR4iLi2PNmjV4eXldljXl8qvqfWUYxmrTNJOrmq/2AiIiIiIiIiIiIjawYMECoqKiePTRR5Vwvc6ovYCIiIiIiIiIiMhFuFxVrrfccgs7duyoNPbf//6XZ599ttJYaGgoX3311WW5plwdSrqKiIiIiIiIiIhUEx07dqRjx462DkP+JLUXEBEREREREREREbmMlHS9gsrLT3I1NyoTERERERERERER21PS9Qo5dmw3K1f9hYKC/9o6FBEREREREREREbmKlHS9QhwdAzAMBzZveZXS0svTXFlERERERERE5FoxZ84cDMMgMzPTOpadnY2LiwuJiYnWrylTpgDw8ccfExcXR3x8PLGxscydO7fKdadMmUJsbCxxcXEkJSUxfvz4q3I/IhdDG2ldIXZ29kRGvELq6p5sz55IeIORtg5JREREREREROSqSUlJoXXr1qSkpPDyyy9bx+vXr09aWlqlubt27eK1115jzZo1eHl5UVJSQkFBwRlrfv/997z11lvMnz+foKAgjh8/bk3aXojS0lLs7ZUOkytPla5XkJdXEkFBfdi58xNKSjbZOhwRERERERERkauipKSEpUuX8tFHHzFt2rTzzt+7dy8eHh64u7sD4O7uTmho6BnzXn/9dcaPH09QUBAATk5O3H///QCkpaXRvHlz4uPj6datG/v37wegXbt2DB8+nOTkZN5++20GDRrE0KFDSU5OpmHDhnzzzTeX67ZFrJR0vcIa1H8ae3svMje9hGmW2zocEREREREREZErbu7cuXTq1ImGDRvi6+vL6tWrrceysrIqtRdYsmQJCQkJBAYGEhoayn333cd//vOfKtfdsGEDjRs3rvLYgAEDGDt2LOvWrSMuLq5Sde2JEydITU3lySefBCraHKxcuZJvv/2WoUOHcuzYsct49yJqL3DFOTh406D+s2RkPsuevNkE1epp65BERERERERE5Abx8n82kr770GVdMzrIk1F/iTnnnJSUFB5//HEA+vbtS0pKijVZWlV7AYB58+axatUqfvzxR0aMGMHq1asZPXr0BcV08OBBDhw4QNu2bQEYOHAgvXr1sh7v06dPpfm9e/fGzs6O8PBwwsLCyMzMJDEx8YKuJXIhVOl6FdSq1R0vr8Zs3TqWkycP2DocEREREREREZErpqioiIULFzJkyBBCQkIYN24cM2bMwDTNc55nGAZNmzZl5MiRTJs2jS+//PKMOTExMZWqZi+Um5vbGdc612ORP0uVrleBYdgREfEKq1Z1ZWvWOKIiX7N1SCIiIiIiIiJyAzhfReqVMGvWLPr378/7779vHWvbti1Lliyhbt26VZ6ze/du8vLyaNSoEVDRn7VevXpnzBs5ciRPP/003377LTVr1uTEiRNMmTKFIUOG4O3tzZIlS2jTpg2fffaZteq1KjNnzmTgwIFs376dbdu2ERER8SfvWqQyJV2vEg/3SOoEDyJn58cE1eqJl1eSrUMSEREREREREbnsUlJSePbZZyuN9ejRwzp+uqfraYMHD+bOO+/kqaeeYvfu3Tg7O+Pv78+kSZPOWPuOO+4gPz+fW265BdM0MQyDwYMHA/Dpp58ydOhQjhw5QlhYGJ988slZY6xbty5Nmzbl0KFDTJo0CWdnZ3bv3s2QIUP47rvvLs8TITc043yl3ZdTcnKymZqaetWuV92Ulpbw64qOODr4kpw8Gzs75bxFRERERERE5PLKyMggKirK1mFUW4MGDaJLly707Kl9d+TCVfW+MgxjtWmayVXNV0/Xq8je3p3w8BcoLtlIbu5UW4cjIiIiIiIiIiIiV4BKLa+yAP9O+Pi0IWvbmwQE3I6TU4CtQxIRERERERERuWFMnjzZ1iHIDUCVrleZYRhENByNaZ5gy9a/2zocERERERERERERucyUdLUBV9cQ6tV7iPz8/1BU9IutwxEREREREREREZHLSElXG6lX90FcXOqyafNoysuP2zocERERERERERERuUyUdLURi8WJiIYvc+TINnbk/J+twxEREREREREREZHLRElXG/L1vYmAgDvIzn6Po0d32jocEREREREREZHLZs6cORiGQWZmpnUsOzub2NhY6+MPP/yQxo0bs3///krnbtq0iXbt2pGYmEhUVBQPPPAA//3vf0lMTCQxMRF3d3ciIiJITExkwIABLF68GC8vL+vxxMREFixYAIDFYqk0/sYbbwDQrl07UlNTzxr//8YKMHr0aMaPHw+AaZqMGTOG8PBwGjZsSPv27dm4caN1bkhICIWFhZXOnzx5Mv7+/iQlJREeHk7Hjh1ZtmyZ9figQYOYNWuWNb7k5GTrsdTUVNq1a2d9vHLlStq1a0d4eDiNGjWic+fOrF+/vsp7+f7770lOTiY6OpqkpCSefPJJ67EPPviAyMhIIiMjadq0KUuXLrUea9euHRERESQkJNCkSRPS0tIq3V9cXBzx8fHcdttt5OXlnfW5vBHZ2zqAG114+PPs2/cTmza/TEL8hxiGYeuQRERERERERET+tJSUFFq3bk1KSgovv/zyGcc/++wzJk6cyMKFC/H29q507LHHHmPEiBHceeedAKxfv564uDg6duwIVCQDx48fb01KLl68mDZt2vDNN9+ccR0XF5dKycLL5b333mPZsmWsXbsWV1dX5s+fT9euXdm4cSPOzs5nPa9Pnz68++67ACxatIju3buzaNEioqKizpi7d+9evv/+e26//fZK4/n5+fTu3ZsvvviCli1bArB06VKysrKIi4urNHfDhg0MGzaMb7/9lsjISMrKyvjggw8A+Oabb3j//fdZunQpfn5+rFmzhrvuuouVK1dSs2ZNAKZOnUpycjKffPIJTz/9ND/88IN17UWLFuHn58ff/vY3/v73v/POO+9cwjN5fVKlq405O9UkLPRx9u1bRGHhAluHIyIiIiIiIiLyp5WUlLB06VI++ugjpk2bdsbxGTNm8MYbbzB//nz8/PzOOL5nzx6Cg4Otj/83kVgdjB07lnfffRdXV1cAbrvtNlq2bMnUqVMveI327dvzwAMPWJOg/+vpp5/mtddeO2P83XffZeDAgdaEK0Dr1q256667zpj7j3/8g+eff57IyEigovL3oYcest7DuHHjrK9Bo0aNGDhwIO+9994Z67Ro0YLc3Nwq47zpppvYunXruW/2BqOkazUQHDwAd7cINm9+hbKyI7YOR0RERERERETkT5k7dy6dOnWiYcOG+Pr6snr1auuxHTt2MGzYMObPn2+tpvxfI0aMoEOHDtx+++1MmDCBAwcOnPeaS5YsqdRGICsrC4CjR49WGp8+ffoF30dWVlalcydNmgTAoUOHOHz4MGFhYZXmJycnV2oxcCEaNWpUqQXDH7Vo0QJHR0cWLVpUaXzjxo00atTogtbfsGEDjRs3rvLYxo0bzzh2tnuYN29elUldqKiYrY6JcVtSe4FqwM7OgYiIV1i9pg/bt79LgwbP2DokEREREREREbkefP8c5FXd5/OS1YyD298455SUlBQef/xxAPr27UtKSoo1uefv74+Pjw8zZsxgxIgRVZ5/33330bFjR+bNm8fcuXN5//33Wbt2LU5OTme95pVoL1C/fv1K544ePfqS1jkX0zTPefyFF15g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IyktLeU///kPDz74IADvvvsuAMOGDbvo+7311lt55ZVXuOeee3B1daWoqEjVrqJK1+tVw/AXMc1yNm8ZY+tQ5BrSolsD7B0tLJmuTbVERERERETk0qSkpNCtW7dKYz169CAlJQWLxUKXLl34/vvvrZtoJSQkkJSURGRkJHfffTetWrU67zVGjRrF/PnziY2NZebMmdSsWRMPD49zntOoUSP69OlDQkICt99+O02aNLEey8zMxNfX9xLutqK9QdeuXUlOTiYxMdHad3bSpElMmjTpktaUa59xNRMrycnJZmpq6lW73o0uO/vfZG0bT0L8/+Hn197W4cg1Yu3CnSydsYVOD8RSv1GArcMRERERERGRi5SRkUFUVJStw7iijh8/jsViwd7enuXLl/PQQw+RlpZ2yet16dKF2bNn4+joePmClOtKVe8rwzBWm6aZXNV8tRe4jtWt+1f25H3F5s2v4O3dAovF2dYhyTUgrm1tMn7Zw9KZW6gb44uDk8XWIYmIiIiIiIhUkpOTQ+/evSkvL8fR0ZEPP/zwT633zTffXKbIRCqovcB1zM7OkciIVzh6LIetWWNtHY5cI+wsdtzUtyEl+4+zel62rcMREREREREROUN4eDi//fYba9euZdWqVZVaBYhUB0q6Xue8vZtTp8597No1hcLCRbYOR64RQeE1aNgskN9+yOFA/hFbhyMiIiIiIiIick1R0vUG0KD+07i7R5Ge8QzHjxfYOhy5RrTs3gCLvR1LZmzRploiIiIiIiIiIhdBSdcbgJ2dEzExEygrO0x6xtOYZrmtQ5JrgJuXE027hJKzcR/Z6wptHY6IiIiIiIiIyDVDSdcbhLtbOOHhL1BUtISduz61dThyjYhrH4x3LTeWzNhC6YkyW4cjIiIiIiIiInJNUNL1BlI7qB9+frewdes/KC5Ot3U4cg2wnNpUq3jfMdb8d4etwxEREREREZFrhMViITExkYSEBBo1asSyZcsA2L17Nz179ryotdq1a0dERAQJCQk0adKEtLQ067E77riDAwcOXMbIz2706NHUrl2bxMRE69eBAwdYvHgxXbp0uaQ133rrLY4cOfteKkOGDCE9/cJzOCtXruSmm24iIiKCpKQkhgwZcs715cpR0vUGYhgGUZGv4+BQgw0bh1NWdtTWIck1IDjCmwbJAaz5bw4HC/RnRkRERERERM7P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w7YOTURE5LzS09NtHYLp5uZmrl271uzRo4d59OhRMyEhwVy0aJHZuXNn0zRNc9iwYebo0aNN0zTNH3/80UxISDjn+KhRo8wWLVqYx44dMwsKCkwfHx/zxIkTZ1y3Xr16ZkFBQaWxgwcPmidPnjRN0zR/+OEHs3v37qZpmuYnn3xiPvLII+bs2bPN1q1bm0VFRWZBQYHZpk0bs6SkxDRN03zjjTfMl19++YzrDBw40AwJCTETEhLMhIQE8+677660pmmaZr9+/cwlS5aYpmmaO3bsMCMjI03TNM1nnnnGfPzxx61rFRUVWZ+z07Zv324ahmEuX778jHvbsGGDGR4ebr3Pffv2Vfka3HLLLebPP/9sbtq0yYyNjbWOx8bGmrt27TJN0zT3799vmmbF8/7555+bpmmax48fN48cOWKmpqaasbGxZklJiVlcXGxGR0eba9asOev1R40aZY4bN840TdMsLCy0Xu/5558333nnHevzNnPmzErP48yZM82jR4+awcHB5qZNm0zTNM3+/fubEyZMsN736fPfe+89869//WuV9/vH5y4mJsY0zYrXIzQ01Dxw4IB59OhRs27dumZOTo65d+9eMzg42Ny2bds5n8M/qup9BaSaZ8mD2l/+NK6I2IJhGEREjmHFik6kZzxD40YzsLPTW1xERORSOLs5kHBzHeI7BLN78wE2/JzL+kW7WPvjTmpHeBN7U21CE/2wWPTBMRERqea+fw7y1l/eNWvGwe1vnHdafHw82dnZpKSkcMcdd1Q6tnTpUr788ksAOnTowL59+zh06NBZxwE6d+6Mk5MTTk5OBAQEkJ+fT3Bw8HnjOHjwIAMHDmTLli0YhsHJkyetxxYuXEhqairz58/H09OTb775hvT0dFq1agXAiRMnaNGiRZXrjhs3jp49e571ugsWLKj0UfpDhw5RUlLCggULKlWeent7V3l+vXr1quzHunDhQnr16oWfnx8APj4+Z8zJz89ny5YttG7dGsMwcHBwYMOGDcTGxtKqVSsGDRpE79696d69OwAtWrTgtddeY9euXXTv3p3w8HCWLl1Kt27dcHNzA6B79+4sWbIEwzDOe/0NGzbwwgsvcODAAUpKSujYseNZnyeATZs2ERoaSsOGDQEYOHAg7733HsOHD7deG6Bx48bMnj37nGv9r5tvvhkvLy8AoqOj2bFjB/v37+em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4bgqXX8tqXQVQog+TFGgofrgMLZ2F9QUHtCywB3IHhjGhvSXQFacthyOBmz2dZ5qWLt9PS5XMyDDuYQQ4lSo2GVjxQfbqdxTR2SSifFXDiIyyeTtZQlxQrxd6VpUVMS0adPYuHGjZ9vs2bMxGo088MAD3HjjjXz77bcUFhZiMBiorq4mOzuboqIiz3P/9re/8cc//hGAnTt3Ehsbi7+/PxkZGcyYMYOLL76YpKQkz/nnzJnD2WefjU6nIz09nba2Nnx8fLj++uu577770Gq79tR3uVzce++9LF26FI1Gg5+fHx988AFXX301LS0t1NbW0tTURGysOjf+k08+IS4ujujoaG6++WaeeeYZnnrqKT788EMANmzYQHp6OgAzZsygtraWf/3rX4SHh3uuuXz5cvR6PbfeeisFBQUoioLFYuGrr77CaOz6BtRbb73F888/j0ajweVy8dRTT/HNN9/w008/0drayu7du0lJSQHg0UcfZdGiRXz//feYzWYAAgICWLlyJXPnzuXBBx/0vA6Ad999l4CAgIP+Gx3KvHnz+Otf/4pGo8HHx4frrruOBx54AEVReOqpp3j77bfRaDTExsby8ssvk5aWBkBiYiJBQUFoNBqCg4OZN28e/fr1A/D8N3I4HAwZMoS3336bgICAI66jJziVla5CCCFEB40GjOHqLWFU132eQPbAMHYXFP8MrfUdx2p93BWy7WFsshrIhiaDOR60MoBI9E0+PoGEhowjNGQcAC5XK3V1mzztCCqrvj5gOFd7X9gcjMZBaDTycVghhPg1ogeYueKP2Wz9eS8/f7KLhc/mkjIqijMuGYAxWHpvC9HddDodb731Fnfcccch95977rmce646OmjChAnMmTOH7Gw121q+fDnjx49n0aJFBz3P39+f/Px8ACorK7n22mux2+38+c9/7nLcggULKC8vp6CgAK1WS2lpKYGBgfzyyy8AzJ07l9zcXF5++WXPcxYvXsygQYP48MMPefrpp3nkkUd45JFHADAajZ7rghoy33fffTzwwANdrvv0008TGRnJhg0bANi2bRu+vl2LTkpLS3nqqadYu3YtZrOZ+vp6qqqquPjii4GOULvz9RYtWsRzzz3HFVdccdD35KqrruryOtrPcTSLFy/mhRde4JtvviEmJoaWlhbmzZsHwCuvvMLKlStZv349AQEBfPPNN1x00UVs2rQJPz8/AJYtW0ZYWBiPP/44Tz75JP/617+Arv+NrrvuOl577TX+8Ic/HHU9vY2ErkIIIU6+LoHsGV33KQo0VB26ZUHxqq6BrM7gDmDdIaznNhACQtTrCNFHaLV6zObhmM3D6cdtnYZz5WK1qdWwlZVfAuDjE6QO53JXw8pwLiGEODEarYYhY6IZMCKcvK/2kL+kmF3rKsmamkjm2fH46OUNLiG6y7333svzzz/PrbfeetKuERERwRtvvEFOTg6zZ8/u8kmhiooKoqOjPRWwcXFxRz3fe++9x+9//3teffVVVq1axZgxY457TRUVFZ6KT8BTrdpZZWUlQUFBnupXo9F4UCXsqfD0008zZ84cYmJiADAYDJ7/Xs8++yzff/+9p0L1nHPOYcyYMcyfP5+bb765y3lGjx7Niy++eMhrjB8/noKCgpP4KrxHQlchhBDepdGAMUK99RvddZ+iQH0l1OyAmp3u2y6o2gbbvgJXW8exfpYDgtgBEDZQrZbVB57SlyTEyaDRaDEaUzAaU4iLuw6ApqYyTwBrteZSU7McUANbkykTizmr03CuIC+uXgghehe9nw+jLxlA6tgYVn60k18+K2TzinLGXJ7MgBHh0uJFiG6QkJDAuHHjeOedd7jwwguP+/k//vgjmZmZnsf/+9//GDBgwEHH9e/fH6fTSWVlJZGRkZ7tV155JePGjePHH39k8uTJ/OY3v2H48OGHvV5zczNLlizh9ddfx2q18t577x01dH3++ef573//C0BwcDDLli1jxowZnHPOOSxcuJDJkydzww03MHDgwC7PGzZsGJGRkSQlJTF58mQuu+yyY/oePfjggzz55JMApKWlMX/+fECt6l2xYoXnuFWrVh31XAAbN24kKyvroO12u52Ghgb69+/fZXt2djabNm066PivvvqKSy655KDtDoeDxYsXM3Xq1GNaT28joasQQoieS6OBoEj1ljiu6z6nA2zFUL2zUyC7E4pWQMH7XY81xR5QHTvQPdCrH+jkR6Hovfz9Y/H3jyU66hIAWltrsXUZzvUGRXteBbQEGYdgdveEtVhyZDiXEEIcA3O4P+fdnk7ptv2s+GAHX/9rIzEDLYy7ciDh8fJmlugdtm9/grr6Ld16ziDjEAYNeuyw+w/3xsSB2x9++GEuvvhiLrjgguNew+HaCxyruLg4tm3bxtKlS1m6dCmTJ0/mww8/ZPLkyYc8ftGiRUycOBF/f38uv/xynnjiCV544QV0usNXwB+qvUBmZiaFhYV88803LFmyhJycHFatWtWlV6hOp+Orr75izZo1fPfdd9x3333k5eUxe/bsI76m42kvcCpMnDiR2tpajEYjTzzxhGd7U1OTJzAfP378QZWxfYX8pimEEKJ30vmoVawh/YFzuu5rbXS3KehUHVuzEzZ+BM3WjuO0PhCc1LUytj2YNUZKuwLR6+j1IYSHn0N4uPpnwuFowG7P97QkKC9fQGnp2wD4+yeqg7ncLQn8/ftJ5ZYQQhxGXEowVz6Sw+YV5fzyWSEf/GUNqWNjGHVRfwJMem8vT4geJzQ0lP3793fZVltb22XwFcDAgQPJzMzkgw8+OGlrKSwsRKfTERERcdA+g8HAeeedx3nnnUdkZCSffPLJYUPX9957jxUrVpCYmAhATU0NS5cuZcqUKce9JqPRyGWXXcZll12GVqvlyy+/PNSAJkaOHMnIkSOZMmUKN91001FD1+6WlpZGXl4ekyZN6rLdZDIRGBhIYWFhl2rXvLw8zjrrLM/jZcuWYbFYuO6663j88cf5+9//DnTt6dqXSegqhBCi79EHQFS6ejtQYy1U7+haHVuzCwqXgaO50zmMnapjB6qBbHsoK+0KRC/h4xNISMhYQkLGAuBytanDuWxqO4KqqiVUVCwEQK8Pdw/mUqthjcYUGc4lhBCdaLUahp4Zy8DsCNZ8UcSGZaXszN1H9vlJZEyKQ+cjwz5Fz3SkitSTxWg0Eh0dzdKlS5k0aRK1tbV89dVX/P73vz/o2EceeeSEKl2PRVVVFTNnzuR3v/vdQW8ur127lqioKGJiYnC5XBQUFJCRkXHI89jtdn788UdKSkowGNS++f/5z3947733jjt0/emnn0hNTSU4OJjW1lY2b97MhAkTuhxTXl7O3r17GTFiBAD5+fld+sCeKg8//DAPPvggX3zxBVFRUbS2tjJv3jxuueUWHnzwQe655x4+/PBD/P39WbJkCStWrOD111/vcg4fHx9eeOEF0tPTefTRRwkJCTnlr8NbJHQVQghxegkIgYRR6q0zlwvsZe7+sZ2qZMvyYNPHoLg6jjXFdYSwYYPcYexAMMVIdazo0bRaX8zmTMzmTPol3OoezrUTqy3X3Re2YziXTmfEYsnCYs7GbMnBFJSBTifDuYQQwhDgy7jpA0kbH8NPC3ey8qOdbPqxjLHTB5KYHiqfGhDCbd68edx1112eqfSPP/74IXuupqWlMWLECNauXXtc5z+wp+ujjz7KFVdc4fnoeltbGz4+Pvz2t7/1rKGzyspKbr31VlpaWgAYOXIkv/vd7w55rY8//phJkyZ5AleAiy++mIceeoiWlpYu2zvr3NMV4JNPPmHXrl3ccccdKIqCy+Xiggsu4PLLL+/yvLa2Nh544AHKy8vx8/MjPDyc11577ajfk849XQFWr14NHNzT9Z///CcxMTFs27atywCx559/nunTp3sen3/++ezbt4+zzz4bRVHQaDTMmDEDgLvvvpv9+/eTnp6OTqcjKiqKTz/9FH9//4PWFR0dzTXXXMMrr7zCY4+d+jcBvEWjKMopu1h2draSm5t7yq4nhBBCdAtHC9QWQvV2tUq2eod6v2YntNg7jtMb1UrYA8PY0AHge/A/PoToiZqbyz0BrNWWS0PDDkAdzhUUlOHuCZuNxZwlw7mEEALYs6mGnz7cwf69jcQPCWbs9IGExpz6KeNCdLZly5aDPq4uhPh1DvXnSqPR5CmKkn2o4yV0FUIIIU6UokD9voPD2OodYCsB2n/GasCScHAYGzYIjBFSHSt6NHU4V54nhK2r24SiOAANRuMQdzWseziX4eBeaUIIcTpwOl1s/L6MNYt209rsZOj4GEZe2B8/o6+3lyZOUxK6CtH9JHQVQggheoL2YV7V26F6p/uruzq2rbHjOIMZwpIPDmND+oOPDOYQPY/T2YjNtg6rO4i12dbhcjUB4O+f4Alg1eFcifIxWyHEaaWpvpXVn+9m0w9l6P19GHlhEmlnxqLTSb9XcWpJ6CpE95PQVQghhOjJXC6oKz90dWxdecdxGh0E9zs4jA1PUfvSCtFDuFxt1NVv9rQksNnyaGtTpxXr9WHuELZ9ONdgGc4lhDgt1JTVs+LDHZRu3U9wdCDjpieTkBrq7WWJ04iErkJ0PwldhRBCiN6qpU6thD0wjK3ZCc6WjuMCwtTwNTwFwlIgfJD6VQZ5iR5AUVw0NO5SA1irOqCruUV9Q0GnM2I2D1crYc05mEzDZDiXEKLPUhSF3eur+el/O7FXNZGYHsrYKwZiiQzw9tLEaUBCVyG6n4SuQgghRF/jcqo9YqvcLQqqtrq/boNma8dx+qCOANbzNQWCE0Er1YXCe9ThXLlYbWo1bPtwLo1Gj8mU7g5hszGbs/D1NXl5tUII0b2cbS7WLy0hd3ERzjYXGRPjyL4gCYO/j7eXJvowCV2F6H4SugohhBCnC0WBhio1fO0cxFZvh7qKjuN0BghN7hrEhqeo23ykylCcem1t+7Fa89whbC51dRs7DecajMWc7WlJYDBEenu5QgjRLRpsLfzyaSFbVlXgb/Rl1EX9GTI2Bq1WPqUiup+ErkJ0PwldhRBCCAFNVneLgm3uUHaben//HsD9s1+jVatgOwexYSlqD1k/qTYUp47T2YTNno/VmovNugabfR1Opzpwzt8vwRPAWiw5MpxLCNHrVe6xs+LDHVTstBEaZ2T8lQOJHRTs7WWJPsbboevEiROZNWsW5557rmfbCy+8wLZt23j11Ve9ti4hfg0JXYUQQghxeG1Nao/YzkFs1XZ1m6ut47igmE5BrHuAV/hgCAzz3trFacPlaqO+fotnOJfVlkdbWy2gDucyd6qEDTIOkeFcQoheR1EUduZVsvKjndTXtjBgeDhjLk/GFObv7aWJPsLboesbb7zBqlWr+M9//uPZdsYZZ/DXv/6VM88884jPdTqd6HTys130PMcbukoTGSGEEOJ04usPUenqrTOnA/bv7hrEVm2Fte9AW0PHcf4hHQFsxBD3/SFgjJAhXqLbaLW+mEwZmEwZJCTcjKIoNDbu6tQXNpeqqq+AA4dzZbuHc/l5+RUIIcSRaTQaBmZHkpQRxrpvi1n79R6KNtSQeXY8I6b2Q+8nv6qL3u2KK67g0UcfpbW1Fb1eT1FREeXl5TQ1NTF69GhaWloYMGAA//nPfzAajSQmJnLVVVfx7bff8tBDD1FZWclrr72Gj48PqampvP/++9TW1jJjxgwKCwsJCAjgjTfeICMjw9svVYjDkkpXIYQQQhyeywX2sq5BbHsP2c5DvPyD1fA1YnCnr4MhMFzCWHFSNDdXuKtgc93DubYD7cO5hmIxq+0IZDiXEKI3qN/fzKqPd7F99T4CLQbGXp5McnaEtFMRJ8zbla4A06ZN49Zbb+Xiiy/mmWeeYefOnWzfvp3FixcTGBjIs88+S0tLC3/6059ITEzkzjvv5KGHHgIgJiaG3bt3YzAYsFqtWCwW7r77bsLCwnj88cdZunQpf/jDH8jPz/fqaxSnF2kvIIQQQoiTT1Ggfh9UblED2Mot7jB2CzTbOo7zD3FXxA7u+lXaFIhu1tZmxWZb62lJYK/biKK0oQ7nSnGHsNmYLdn4GaK8vVwhhDikil02flywnariOmIHWRh/1SBCY43eXpbohTqHQ4/tKGVjfVO3nn+o0Z8nBsYd8Zj58+ezaNEi3nvvPTIzM7n00kt56aWXiItTn9fa2sro0aN58803SUxM5Pvvv6dfv34ATJ06FaPRyCWXXMIll1yC0Whk+PDh/O9//6N///4AxMfHs2nTJkwmeXNVnBrSXkCIXqCtzYZGo8XHJ8jbSxFCiBOj0UBQlHobMLFju6JA3V41fK3c2vF1w4fQYu84LiC0a0VsxBD1cWDoqX8tok/w9bUQFjaJsLBJgDqcy25f7w5hc6nY+xGlZe8A4OcX3zGcy5xDQECSVJMJIXqE6AFmrpiVzeYV5fz8yS4WPLWGjAlx5FyYhMFffn0XvcvFF1/Mfffdx9q1a2lsbGTEiBFMmTKF995775DHBwYGeu5/8cUX/PDDD3z++ec89dRTbNiw4VQtW4huI39rC3GKKIrCfuvPlJW9R1XVN2g0WiIizicu9lpMpuHyy54Qom/QaMAUrd4GTOrYrihQV3FAZexWKPjggDA2rFNFbHurgiEQEHLqX4vo1XQ6f4KDzyA4+AwAXC4H9fWbsdrysFrXUFPzPXv3fgyAr29opxA2C6MxFa1W/pkshPAOrVbD0DNjGTAinF8+LWT9shK2r9nLmMuSSRkVhUYrvzeI43O0itSTxWg0MnHiRGbMmME111zDGWecwV133cXOnTtJTk6moaGBsrIyBg0a1OV5LpeLkpISJk6cyLhx43j//fepr69n/PjxzJ8/n8cee4zly5cTFhYmVa6iR5P2AkKcZG1t+6mo+Iiy8vdpbCzEx8dEdNRluJQ29u79FKezHmNgCrGx1xIVdbFUvwohTi+KAvbygytjq7ZBa13HcYER6tCuA1sVSBgrTpA6nGu3ezCXWg3b3FwCgE4XiNk03BPEmkyZMpxLCOE1lXvs/PD+dvbtthPV38yZVw8iPEF+ZxBH1hN6ugJ88sknXHrppWzZsoXBgwezdOlS/vjHP9LS0gLAk08+yUUXXURiYiK5ubmEhYXR1tbGxIkTsdlsKIrCb37zG2bNmiWDtITXSU9XIXoARVGw2fIoK3uPyqovcblaMZtHEBtzDRER53t+cXM4Gti373PKyt6lrn4TOl0AkZEXEhtzDSZT+lGuIoQQfZiigK20o09seyBbtQ1a6zuOC4pWA9iIVPUWmQphKaAP8N7aRa/V3LIXq3UNNmseVtsa6uu3AQoajS+moKHqYC5LNhZzFr6+Fm8vVwhxGlFcClt/rmDVx7toqm9j6PhYRl3cH79AX28vTfRQPSV0FaIvkdBVCC9qa7Ozd+/HlJW/R0PDDnQ6I9FRlxIbew1GY8phn6coCnV1Gygte5d9+z7H5WomKCiduNhriYychk4n4YEQQgDuMLZEDV8rN6ttCvZtUh87W9wHaSAkqWsQG5EKIQNAJx8ZF8eurc3WMZzLtga7fYN7OBcEBg5ytyNQq2H9/KK9vFohxOmgpbGN1Z/vZsPyUgwBvpxxSX+GjI1BKy0HxAEkdBWi+0noKsQppigKdvt6ysrfY9++RbhczZiCMoiNveaEAtNDBrfRlxIbc+TgVgghTmsuJ9QWqkHsvs0dgWztLlBc6jE6vVoFG5nqro5NU7+a49RetEIchdPZrA7nsuWqFbG2dTidauW1n1+c2o7AnIPFkk1AwADp1y6EOGmqS+v5ccF2yndYiegXxPirBxGVZPb2skQPIqGrEN1PQlchThGHo569+z6jrOxd6uu3uFsDXERs7DWYgob+6vN3tCh4l32Vi1GUVszmbGJjryEi/Dx0OkM3vAohhOjj2pqgenunINYdxtrLOo4xmA5uURCRKv1ixVG5XA7qG7Z6esJarWtoa6sBwNc3BIs5S62GteTIcC4hRLdTFIUduftYuXAnDbZWhoyJ5oxLBhBg0nt7aaIHkNBViO4noasQJ5m9biNlZe+xb99nOJ2NGI2pxMZeQ1TkhSdtCFZray0Ve/9HWdl7NDXtwcfHQkz05cTGXkNAQNJJuaYQQvRpTfvVPrGdg9h9m6DZ2nGMMfKAINY9vEsf6LVli55NURSamoo8AazVtoampmIAdLoAzKbhmC1qJazZlIlO5+/lFQsh+oLWZge5XxSx/rsSfAw6Rl2UxNAzY9HqtN5emvCi9sFV8qkLIbqHoihs3bpVQlchupvT2ci+fYsoLXuXuroNaLV+REZOIzb2WkxBGafsB5miuNi/fxVlZe9RVf0tiuIgOHg0sbHXEh52NlqtvKsthBAnTFGgbi9UbnKHsO5AtmorOJrdB2kgOBEi0zqqYyPTpF+sOKyWln1qCGtTq2Hr67eiDufyIShoaJeWBDKcSwjxa+zf28AP72+ndOt+QmMDOfPqQcQMDPb2soSX7N69m6CgIEJDQyV4FeJXUhSFmpoa6urqSErqWvgmoasQJ6iufitlZe+xd+8nOJ31BAYOJDb2WqIiL8HX1+TVtbW0VFFR8SFl5e/T3FyGXh9GTPR0YmKuxt8/zqtrE0KIPsXlhP1FB/SL3Qw1u0BxqsfoDBAxGCKHqiFs5FD1Fhjq1aWLnqetzY7NlufpC6sO52oFIDBwoHs4lxrC+vnFeHm1QojeRlEUCvOrWPHhDuprWxg0MpIxlyUTaJHWZKebtrY2SktLaW5uPvrBQoij8vPzIy4uDl9f3y7bJXQV4jg4nc1UVn5JWdm72Ozr0Gr1RISfT2zsNZjNWT3uXUJFcVJT8wNl5e9RXb0MUAgNPZPYmGsJDZ0g/eOEEOJkaWtW+8VWboZ9G9X2BHs3QkNlxzHGKHcI6w5io4ZC6EDwkU8mCJXT2YK9rgCbdY27JcHajuFchhgslhzMlmwslhwCA5J73L9DhBA9U1urk7Vf7WHdN8VodRpyLkgiY1IcOh9pOSCEEN1JQlchjkFDwy7Kyt+jouIjHA4bAQFJxMZcQ3T0Zfj69o6P5TQ3l1Ne/gFl5Qtoba3EYIgiJuZqYmKm42eI8vbyxDFwOluob9iKBg0ajQ8ajQ9arS8ajc7zuGO7j3u7LxqN/ANaiB6jvlINYD23DVC1DZxqNSNaXwhP6RTGugNZYyRIoHbaUxQn9fWdhnPZ1tDaWg2Ar28w5k7DuYKMqWi1vkc5oxDidGaramTFBzso2lBDcFQA468aRPwQGRQphBDdRUJXIQ7D5WqhsvJrysrfw2pdjUbjS3j4OcTFXovFMqrXVpO4XG1U1yylrOw9amt/RKPRERY6idjYawkJGScBXQ+1f//PbNn6fzQ17TmBZ2sPEcTqDghoDwhtNe5jO4W62vbnaTsf5+t5rD5Hfdz5fsdzfdz7DnHffS2tZw2+ndbV9b7n+F76Z1CIgzjboGanO4TtVBVbV95xTEBYp9YE7jA2fDD4+nlv3cLrjjScS6v1x2zO9LQjMJuHo9MFeHnFQoieqKigmh8/3IG9qokBw8MZO30gQSHy80UIIX4tCV2FOEBj427Kyt+nouIj2tpq8fdLICb2amKiL0evD/P28rpVY+MeyssXUF7xYZ9/rb1VW5udnTufprziA/z9E+ifdB86n0AUxYHicqAoThSlDUVx4lIcnbYfapvD/dj9HPfzXe5jlUMe2/nmxOVq63RNBy5X+742zzGnihrG+nYKj/Wdqn990Gr07tDXHeZqfd0hsW+n43w7Hd9pn/u+1hMiH3Cs+7meoNhzrB6t57j2r/qO4yUsFsejsbZTRaw7jK3cAo4mdb9GB6HJagAbNbQjkDXFSlXsaaylpdLTE1YdzrWFjuFcaVjMajsCszkLvV4q2oQQKkebk/xvS8hbXARA1nmJZE6Jx8dX592FCSFELyahqzhtOZ3NtLTspaVlL80te2lp2Udt7Qr271+pVn+Gna1WfwaP6fPVny5XC5VV31BW9h5W6y+eqt4B/e8jICDp6CcQJ0Vl1dds2zabtrYaEuJvJinpHnQ6f28v64gUxeUJaV0uxwHhbFtHmOs6+L76uK1LmOzqFCIfdN/9XJfnGm3qvvbzHbSv87Y2z5ran9f5HCeP5qAgtvNXNSjuCIc79um7hsGHOtazz+AOftv3u6/lCYT1B9zvOEa9jrSk6NFcTqgt7Ahh2wNZa3HHMX7mrhWxkekQMQT0UuV4OnI46rDa8jzVsHZ7gWc4V0BAMhZ3T1iLOQd//1gvr1YI4W11tc38tHAHu9ZWYQr3Z/yVA0lMl2IMIYQ4ERK6ij7J4WjoFKhW0NLcOVxVb21t+w96np9fHDExVxITPR2DIcILK/e+hoad7krfhWi1BkYMf4/AwP7eXtZppaWlkm3bZ1NV9TVGYypDhjyNKWiot5d12lAUpVNwfHAg6/IExm0dIW6nANeltHba3v611b2v7YB9Hcd2nP/g56v7Wg9YQ9tJC4m7hsH6jipeTzCr77S94xhPiKvVu4NcPRqtQX3caZsn+D1gW0cg3HVb+zWlSvgImm2wb/MBYewmaGtQ92t0aq/Y6EyIyVS/RqVLEHsaOtJwLoMh2tMT1mLOJjAwWd6EEeI0VbK5lh8/2M7+vY0kpocy7sqBmMPlZ4YQQhwPCV1Fr6IoCg6H/aAwtaVln/rYHag6HHUHPdfXNwSDIQo/QxQGv6iO+4YoDIZoDIZIfHwCvfCqeqaGhl3krb0GrcaHESPeJSAg0dtL6vMURaGi4kN27Hwal6uFpKTfkxA/QwahiCNSQ2J3WKs4cLlaO4W0rV1DX1er51h1X+fQ132/83Pc5zjcMer5Wjtds9O53fu6s+WEJ+z1VPoeEM5qOge67WHvIb5q9Gh17q8H7T/Kc3tTAOxygbVI7Q+7twDK86EiHxqq1P0aLYSldISwMZnuIFZ+Fp5O1OFc29wBrFoN29qq/j/i42NxV8JmYzFnExQ0VH4mCXEacTpcFCwtZc0Xu3E5FYafk8CIqf3w1UvLASGEOBYSuooeQ1EU2tpqOypSm/fS0lLRpTq1uXkvLlfTAc/UoNeHHyJMjVbv+0Wh10ei0xm88rp6s/r67axddx1arZ6sEe/j7x/v7SX1WY2NRWzd+gj7rT9jsYxiyOCnpLWD6BPUXsCtB4Wx6v2WAwLgrsd1hL4Hb+uyXTng/J5tnc7vvt9dlcEdFb8dgaxOazgo8A22jCQh4WY0mh7yC6qigL1cDV/bQ9jyfGioVPdrtBA2CGKGSxB7mlKHc+1R2xHY1L6wTU1FAGi1fphNmZ5qWJMpU96wFuI00GBtYeVHO9m+eh/GEAPjpg+kf2Z473gDUgghvEhCVy9wOhtZveYSby+jR3G5WmhpqfT0GGun0ejQ6yPcgWp01+pUvyj8DNHo9eFSdXES1dVtYe263+DjE8iI4e9Jv7du5nI5KCl5i8LdL6DR+DIw+WFiYq6Uj3MKcZIoiuuAwLfTV6UVl7PlgMC2BcXVitP99ZDP6/z8To8djnoaGrZjNmeRlvp3/P3jvP3yD01RoK6iawhbkQ/1+9T97UHsga0JDEYvLVicai0tVZ4qWJs1l7r6LYALjUZHkDHNHcJmYzZny3AuIfqw8h37+eH97dSUNZCQFsKZVw+SlgNCCHEEErp6gdPZzOYtD3p7GT2KVuOLwRDZJUw1GKLQ60N7TnXQacxet5F1636Lr4+FESPexc8v2ttL6hPq6jaxZcvD1NVvIjxsCikpf8ZgiPT2soQQ3Wjv3k/Zuu1PAAxO+X9ERV3s5RUdB3vFwRWx9XvdOzXuitjMThWxGRLEniYcjjpstrXulgR52O35uFwHDOcyqwO6/PxipRpOiD7E5XSxYXkZv3xeiMuhkHVeP0ac0w+drxQMCCHEgSR0FUIcE5t9PevWXY9eH0bWiPdO20Fj3cHpbGb37hcpLvk3vr7BpAz6M+Hh58ovpUL0UU1NJWzafD82Wx6RkReRMujP+PqavL2sE1O39+CK2LoK904NhA3sWhEbnQGGIO+sVZwyLlcLdvsGT0sCmy3P01/fYIhyD+ZSq2EDAwfKpzmE6AMarC2s+HAHO/MqsUQGcOY1g4gfLJXuQgjRmYSuQohjZrXlkZ9/EwZDFCNGvItBH+btJfU6+/f/zJat/0dT0x6io6czMPlhfH3N3l6WEOIkc7kc7NnzKruLXsKgjyQ17e8EW3K8vazuUbfv4IrYunL3Tg2EJneqiB0O0cOkIraPU4dzbff0hLVZc2lpVdtVqMO5sjyVsEFBaWi1ei+vWAhxooo31/DDe9uxVTUxMCeSsVckE2iWWRpCCAESugohjtP+/avJXz8Df/84Rgyfj14f6u0l9QptbXZ27nqG8vIF+PslMHjwk4SEjPX2soQQp5jNls+mzffR1FRKYr+ZJCXd0zf7ktdXHlwRay9T92m0EJYCsSPUEDZ2BEQOBR/5Jb2vUhSF5uYStR2Buxq2sXE3oA7nMpmGeYZzmU3DZTiXEL2Mo83J2q/2kPf1Hnx8tIy6eABDz4pFq5VPcQkhTm8Sugohjltt7UrWF9xCQEB/Rgz/L76+Fm8vqUerrPqabdtm09paTULCDPon3YtO5+/tZQkhvMThqGf7jieoqFiIKSiDtLS/ExCQ5O1lnXz1lVC+DsrWQvla9WtjtbpP6wtRQ9UQNmaEGsSGDwat9HXvq1paq7FZcz0DuurqNtM+nMtoTPUM57KYs+UNXiF6Ceu+Rn54fxslW/YTnhDEhOtSiOjXS9vpCCFEN5DQVQhxQmpqfqRgw20EBg5ieOY7vbc/4UnU0lLFtu2zqar6CqNxCEMGP43JlO7tZQkheoh9lYvZuvURFKWNQQMfIzp6+unV21lRwFbSEcKWr1OrYlvs6n7fALUVQXsIGzMcQvrD6fQ9Oo04HPXYbOs8LQnU4VwtAAQE9Pe0I1CHc8WdXn9WhOhFFEVhZ14lKz7cQaO9laFnxnLGxf0xBPTBT3UIIcRRSOgqhDhh1dXLKNhwB0FBqQzPfBsfHxmWAuo/NisqPmTHzqdxuZpJSryHhIRb+uZHiIUQv0pzcwWbNz/AfuvPhIefy5DBT+HrG+ztZXWr5uYKiov/TXnFQgyGcIKC0jEFpRNkSifImNr1o+QuF9Tu6loNu7cAHM3qfj9z12rYmBFgipEgtg9yuVqw121U2xFY24dzqYG8wRDVJYSV4VxC9DwtTQ5Wf1bIhuWl+AXpGXt5MoNGRsobJkKI04qErkKIX6WqagkbNt6FyZRB5rC5p30ftsbGPWzd9gj796/CYhnJkMF/OT0+NiyEOGGK4qK4+N/sKvw7et8QUlOf6xM9n5uaiina8zoVFf8DXESEn+cO0jbQ0rLXfZSGwMBkgoLSugSxXVqwONugamvXILZyM7gc6n5jpBq+tveHjRkBgfJx9L5GUVzUN2xXA1h3W4L2/498fMxYzFmYLdlYLNmYgtJlOJcQPURVcR3L52+lck8dsSnBnHXNIIKjTu/fF4QQpw8JXYUQv1pl5Vds3HQPZnMWmcPeRKcL8PaSTjmXy0FJyVsU7v4HGo0Pycl/JDbmaqm8EUIcs7q6TWzcdB+NjbtIiL+ZAQPuR6vtfcOlGhp2UrTnVfbt+xzQERMznX4Jt+HvH+c5pqW1mjr7Bux1G6mr24DdXkBra5V7rxZj4ECCTO6K2KChGI1D0Ok6fS/ammDvxo4QtnwtVO8A3P92tSR0rYaNyQSDfBqjL1GHc5W6h3OtwWrLpbGxEACt1oDJlOnuCZuD2TwcHx+jl1csxOnL5VLY/GMZqz4pxNHmZMQ5/cia2g8fvfTtFkL0bRK6CiG6xd59n7Np0x8IDh7FsIx/o9P5eXtJp0xd3Wa2bH2YurqNhIWdTUrKn/EzRHl7WUKIXsjpbGLHzqcpK5uP0TiEtLTnMQYO9Payjkld3WaKiv5JZdVXaLV+xMZeQ7+EWzAYIo/p+S0t+7DbN2Cv20Bd3Ubs9gLa2moB0Gh8CAwchCloqCeMNRoHdQ2lm+1Qsb5rEGstdu/UQNjAjiA2Nlsd3OXT+0JtcXitrdVYrXnuvrAdw7lAS1CQeziXWa2G1evDvL1cIU47jfZWfvrfDrb/sg9TmB/jrxpEYrr8WRRC9F0Sugohuk3F3k/YvPkBQkLGkZH+eteqpD7I6Wxmd9FLFBf/C1/fYAYNmk1E+FTpVSWE+NWqqr9jy5ZZOJ0NJCc/TFzsb3rs3y022zqKiv5Jdc1SdDoj8XG/JT7+pl89cV5RFFpaKtQQ1l0Va7dvwOGwAqDR+GI0pnjaEpiC0gkMHNi1f3ZDtTqgq6x9UNdaqN+n7tPpISpdDWDjsiE2SwZ19TEdw7nUvrBdh3MlYTHnqNWwlhz8/OJ77J8xIfqa0m37+eG9bezf28iA4eGMu3IgxuDTp2BDCHH6kNBVCNGtyssXsmXrHwkNnUhG+iu98qOxx2L//l/YsvX/aGoqIjp6OgOTZ+Hra/H2soQQfUhLSxVbtjxETe0PhIZOYMiQZzH0kOo8RVGwWn9hd9Er7N+/El/fYOLjbiQu7np8fU0n9brNzaVqWwJPVewGHI46ALRaPUZjKkFBQzEFpWMypRMQMACt1qf9BGAvg7I8KM1Vv5avg7ZGdb9/sBq+xrpD2Ngs6Q/bh7hcrdTVbXS3JFD7wnqGc+kjMVuy3NWwORiNKdIiSIiTyOlwse7bYnK/LEKr1TDywiQyJsah1cmfOyFE3yGhqxCi25WVvcfWbY8SFnY26UNf7lp11Mu1tdnZuetZysvfx98vgcGDn+wTA2+EED2ToiiUls5j565n0OmCSB3yLGFhE726npra7ykqegWbbS16fTgJCbcQG3ON1wYpKopCU9OeLhWxdXWbcDrrAdBq/QgKSiUoyN0j1jSUwIABHYGa0+Ee1JXbEcRWbsHTHzY4qaMSNjZbrY71lYqsvkBRXDQ07OjSF7ZjOFcQZnOWpxrWZErvs28kC+FN9uomfnh/O3s21hAaa2TCdSlE9Td7e1lCCNEtJHQVQpwUJaXvsH37bCLCzyMt7YWOKqNerKrqG7Zue5zW1moSEmbQP+nerhO2hRDiJKmv38amzX+gvn4rcbG/JTl51intna0oLqqqvqVozyvU1W3CzxBDv363Ex09vUe2klEUF42NReqQrroN2O0bqKvbhMvVBIBOZ8QUNBSTKQOTaRgmUwYGQ3THx8tb6qA8v1MQuxbqytV9Wl93W4IsdxibDaEDpC1BH6BWUpe5A1i1GraxcRegVlGbTJlYzGo1rNk8Ah8fGc4mRHdQFIXd+dX8+MF26ve3kDo2mtGXJuNn7DuFG0KI05OErkKIk6a4+C127HyKyIhppKX9HY2md04obWwsYteuOVRWLcZoHMyQwU9jMmV4e1lCiNOM09nCrsI5lJS8RUBAMkPTnicoKPWkXtPlclBZ+QVFe16loWEH/v79SOx3J1FRF6HV6k/qtbubojhpaNiFva5ADWHtBdTVb0FR2gDQ68PVEDaoPYhN79o2xl7uDmDdIWzZWmhrUPf5WTraEbRXxQb2jFYQ4tdpba1x94RV+8LW129GUZyAliDjEMzunrAWS06Paf8hRG/V2uxgzRdFrP+uBEOAD2MuG8Dg0dHSb1kI0WtJ6CqEOKn27Hmdnbv+SlTUJaQO+WuvCl7t9gL2FP+Lysqv0Gp9SEq8m4SEW/tUuwQhRO9TU/Mjm7c8RFublQED7ichfka39550uVqp2Psxe/a8RlNTMYGBg0jsdweRkRf0qr/Hj8blaqGufit2+3rs9gLs9gJPZSOAv38/TyWsyZRBkDGto8LY5VTbErS3JCjLg8rNoLjU/cGJHS0J4rIhKkPaEvQBDkcDdnu+pyWBzZ6Py9UMgL9/ojqYy92SwN+/n4RFQpyA6tJ6vn93G3sLbUQnmznrmhRCY43eXpYQQhw3CV2FECfd7qJXKCz8O9HR0xky+C89ejBFe7/CPXvewGr9BR+fIGJjf0N83PUYDBHeXp4QQgDQ2lrL1q3/R1X1twQHjyE19Tn8DFG/+rxOZzPlFR+wZ88btLRUEBQ0lKTEuwgLO7tH/93dnRyOOncAuwF7nRrGtvf51Gh8MAameEJYk2kYgYHJHUF0Sz1UrO/aH9Zepu7T+kDk0I6WBHHZEJosbQl6OXU41yZPT1irNReHwwaAXh/hDmHValh1OFffedNCiJNJcSlsWVXByo920tbkZNjZ8eRckISvQf4MCSF6DwldhRCnRGHhC+wueonYmGtISXmix1V+uFxt7Nu3iOLif1HfsA2DIYqE+BnExFyFj4+8sy6E6HkURaG8fAHbdzyJVmtgyOC/EBFx7gmdy+Gop6zsXYpL3qS1tRqzOZukxLsICRnf4/6+9oaWln3uINZdEVtXgMNRB4BOF0BQ0FBMQenuqthh+PnFdnzf7BXuSlh3EFu+DlrVIV/4WSAuB+JHdoSxfibvvEjRLdThXDvdAaxaDdvSUgGovYQtliws5mzMlhxMQRk9sieyED1JU30rqz7axZaVFRhDDIy/chD9M8O9vSwhhDgmEroKIU4JRVHYVTiHPXteIy7uegYN/FOP+EXe4ainvPwDikveoqWlgsDAgfRLuI3IyGm9rl+hEOL01Ni4m42b7qWubiMx0VcycOCj+PgEHtNz29pslJTOo6RkLg6HlZDgcSQm3kVw8MiTvOreTVFcNDXtwWZf7w5iN1BfvwmXqxUAX9+QLkO6TEEZ6PUh6pNdTqjeDqVr1FvJGrVNAQqggYghagAbN1INY0MHgvb0qDLuq5qaytyDudqHc+0E1OFcQUEZ7p6w2VjMWTKcS4jDKN9p5ft3t1Fb3kBiRhjjrxyIKUwG2gohejYJXYUQp4yiKOzc+TTFJW+SEH8zyckPey14bWmporT0bUrL5uNw2LFYRtEv4VZCQyf0iDBYCCGOh8vVSuHuF9mz5zX8/RMYmvbCEQf+tbZWU1zyH0pL/4vTWU9Y2NkkJt6J2TTsFK66b3G5Wqmv3+aphLXb19PQsBM1TAU/v/gubQlMQWnodAHqk5ttajVsyRooXa2Gsc3qR9TxM6sVsPEj1arY2Czwt3jlNYru0dpai82W52lJUFe30TOcy2gc7K6GdQ/nktZGQng4nS4Kvitl9Re7waWQfUEimVMS0OnkjSkhRM8koasQ4pRSFIXtO/4fpaXz6JdwOwMGPHhKQ87Gxt3sKf43e/d+hMvVRnj4ufRLuBWzOfOUrUEIIU6W/ft/YdPm+2ltrSIp6R4S+83s0kOyuWUvxXv+RVn5+7hcLUREnE9i4p0EGQd7cdV9l8NRT13dRs+QLrt9Pc0t5QBoNDoCA1Mwm4ZhMmdiNg0nICBJ7Z3rckHNTjWALVmttiWo3IynGjY8RQ1g21sThKVINWwv5nQ2YrOtw2rNxWpbg82Wj8vVBIC/f4IngFWHcyXKm8PitFdX28yKD3ZQmF9FaGwgE64bTFR/s7eXJYQQB5HQVQhxyimKwrbtf6Ks7F2SEu+mf/97T/o1bbZ89hS/QVXVN2i1vkRHXU5Cws0EBCSd9GsLIcSp1NZmY+u2x6is/AKLOYfU1L8BLvbseZ3yiv8BTqIiL6Ffv5kEBvb39nJPOy2t1dTZC7DZ87Hb1mOz5+N0qj1efXyCMJkyMZsyMZmGYTZn4usbrD6x2a5Ww5bmdlTDNu1X9xlMagVs/Ei1LUFcFvgHe+kVil/L5Wqjrn6zpyeszZZHW5v631qvD3cP5mofzjVYhnOJ09bu9VX88P526q0tpJ8VxxkX90fv7+PtZQkhhIeErkIIr1AUF1u3PkJ5xQf0T7qPpKTfnZRr1NQsZ0/xv7BaV+PjYyYu7jfExV2PQR/W7dcTQoieQlEU9u79hG3bZwMuXK4WQEdMzHT6JdyGv3+cl1co2imKi4bGXe4Adh12ez719dsBFwD+/olqCGvOxGwahtE4BK3WFxQFanYdUA27CRT1eYQNcgew7tYE4YNBK+Fcb9T+/4jVugabVR3Q1V4xrdMZsZhHYLZkYzHnYDINk+Fc4rTS2uTg588K2bC8lECzgTOvlkFbQoieQ0JXIYTXKIqLzVseYu/ejxkw4CES+93eLed1uVrZu+8ziov/TUPDDvwMMcQnzCAm+spjHi4jhBB9QVNTCbt2zUFviKBfwi0YDJHeXpI4Bg5HA3V1G9RBXbZ12Oz5tLZWAaDVGggKGtopiM3EYIhWP3LeUgdla92VsLlqGNtUq55UHwSxIzpVw2ZDQIgXX6X4NZqbyz3tCKzWNTQ07ABAo9FjMqWr7QjM2ZjNWfj6mry8WiFOvr27bSz/71ZqyhroPzycM68aRKBF3oAQQniXhK5CCK9SFCebNt/Pvn2fMzD5ERISZpzwuRyOOsrK36ekZC4tLXsxGgfTL+E2IiLOV6uChBBCiF5IURRaWiqwuQNYuz2furqNuFytAOj1EZjN7W0JMjGZ0tUhXYoCtYVqK4KS1WoYu69TNWxoshrAJoyC+DPU6ljpDdsrtbXtx2rNc4ew7cO5HIDGPZwrW4ZziT7P6XSR/20xa74oQqfTMPrSAaSNj0WjlT7IQgjvkNBVCOF1LpeDTZvupbJqMYMGPU583PXH9fyWlkpKSuZSWjYfp7Oe4ODR9Eu4jZCQ8TJsQgghRJ/kcrVSX7/V3Rs2H5s9n6amPUD7kK5BXaphAwL6q0O6WuqhfJ27LcEa9WtjjXpSP4taCRs/Sr3FZoE+wHsvUpwwdThXPlZbLjZrLjb7OpzORgD8/RI8PWEtlhwZziX6HGtlI9+/u43SrfuJ6m9mwm9SCI0xentZQojTkISuQogeweVqY8PG31FdvYSUlCeIi732qM9paNhFcfG/qdj7CYriICJiKv0SbsVkyjgFKxZCCCF6ltbWWuz29V2C2AOHdJlMwzCbMjuGdLX3hi35GUp+geJfoHqbekKtD0RlqAFsezWsKdqLr1CcKJerjfr6LZ7hXFZbHm1tausJvT4Mc6fhXEHGITKcS/R6iqKw7Ze9/PThTlqbHYw4tx9Z5/XDx1f+3xZCnDoSugohegyXq4WCDXdRU7OMIYOfISZm+iGPs9ry2LPnDaqrl6DVGoiOnk5C/AwCAvqd4hULIYQQPZeiuGhsLMRmU1sS2Oz51Ndvo2NIVz/MpuGYzSMwm4djNKaoYVtjrdqSoNgdxJblgaNZPakloaMSNuEMiEiVAV29kKIoNLqHc1ltuVituTQ3lwLqcC6zebi7L6wM5xK9W1NdKz8t3Mm2X/ZiiQxgwnUpxA4K9vayhBCnCQldhRA9itPZQsGG26mtXUHqkOeIjr4UUH9xrK5eyp7iN7DZ8vDxsRAfdz1xcb9Brw/18qqFEEKI3kEd0rXRXQ27Dpt9Ha2t1QDodIFqJazZHcSahuPrawZHK+zd0LUatn6vekJ9kDqUK+EM95CuHDAEefEVihPV3FzRKYRdQ0PDdqB9ONdQT09YGc4leqPizTV8/+427NXNDBkbzZjLkvELlJkPQoiTS0JXL3l/dTGjB4TSL1QmqQtxIKezmfUFt7B//y+kDnkWRXGyp/hfNDbuws8vjoSEm4mJvkIdEiKEEEKIE6YoCs3Npdhsa9VBXba11DdsRVGcAAQEJGNxV8KazSPU3rBowLpHHc7VXg27bxOggEYLkWnuatgz1LYE5niQnqG9TlubFastz92SIJe6ug2dhnOluEPYbPdwrkhvL1eIo2prdbJm0W7yl5TgF+jD+CsHkZwdIT2NhRAnjYSuXrDX1swZT38HwLA4MxcOi2FaRgxRZj8vr0yInsPpbCR//c1YrasBCDKmkdDvViLCz0Or9fHy6oQQQoi+y+FowF5X0CmIXYfDYQXAx8ekBrAmNYg1mYbh42OEZhuU5rorYX9W77c1qCcMiu5oRxA/CqLSQScVZr2N09mE3b7eE8La7Gs9w7n8/OI7hnOZcwgISJIgS/RYVSV1LP/vVir31JGQFspZ1wzCFObv7WUJIfogCV29pMzaxBcF5Xy2vpyNZXY0GshJDOHCYTGcPzSKUKP0TRLC4Whgz57XCA4+g+DgMfKPdyGEEMIL1P6fu9UQ1r4Wm20tDQ073Hu1GI0p7r6waksCf/8ENC4nVG5SWxGUuG+2EvUpvgEQm9XRGzY+B/ylx2Jv43I5qK/fjNWai9WmBrHtw7l8fUM7hbDZGI1D5E1z0aO4XAoblpXy82eFoCiMuqg/GRPj0Oq03l6aEKIPkdC1ByisqmdRQQWfrS9nZ2U9Oq2GMQNCuXBYDOemRWH2l0oAIYQQQgjRc7S12dXhXO3VsPZ8nM56wB24eVoSZBEUNBSdzg9sZR0BbPHPap9YdxsDwodAv9GQMEb9ao7z4qsTJ0IN5wvdfWHXYLXm0dysBu06XSBm03BPEGsyZar/TwjhZXW1zXz/3jb2bKghPCGIib8ZTHiC9KUWQnQPCV17EEVR2Lavjs/Xl/P5+gqKaxvR67SclRLOhcNiOHtIBAF6eYdYCCGEEEL0LIripL5hhzuEVYPYpqYiADQaX4KCUjGbhnsqYv38oqG1Acry1GrY4lVqj9jWOvWE5nhIGN0RxIYNAq1UoPU2zc0V7sFcudisa6hv2A4oaDS+mIKGqpWwnuFcZm8vV5ymFEVh19oqfliwneb6NoZNjmfktCR8DTpvL00I0ctJ6NpDKYrC+lIbn68vZ1FBOfvsLfj76pg8JIILh8UwISUcg4/8EBBCiP/P3n9Gy3Wfd57vd4fKuU5CziACQRIkAEqkKGZSibIkh7Yt2WrLdnvcfdvdfbt978ydu+7MrNVrZk2wO7m7p8dJlmR1j4NaVrJJMecAkGAEQBI5n1Q57/C/L/aucCJAItQJz4er1g61d9Uu8ODgnF899TxCCCEWplZrkmKnGvYNSqW3cd0GAKHQim5LgtRtJOI70JXutSQ49TKcfslbVse8B4tkvZ6w6+6A9XfCylukL+wiZFlFip3hXPspld9FKQuAWOyGTjuCdHqfF8wLcR01qhYvf/8Yh144T2IgzL1f3ca6Gwf6fVlCiEVMQtdFwHUV+0/m+OFb5/m7dy+Sq7ZIhE0+c+MKvnjLKu7cPEBAes8IIYQQQogFzHUtKpXD/nCuNyiWDtJonANA10Mkk7tJp/aQSu8hlbyNgJmA3HGvCvbUy94yd8x7MDMCa/Z6Aey6O2DNPgjF+/jqxMfhOI3ucK7iAYrFN3AcbwBbOLzGa0eQ8qpho9FN0t9fXBfnPyzwzHePkL9YY+u+Ee76ha1Ek8F+X5YQYhGS0HWRsRyXl45N8qO3zvPYuxcpN22ysSCf2+UFsLdvyKLr8sOIEEIIIYRY+BrNi34I+zrFwuuUK++hlANoxGM3kErv9YLY1F7C4VVolTEvfD39ilcNe/EdUC5oBqy82WtF0K6IjQ/1++WJj8gbznXYb0ngVcN2h3Nle0LYvcTjO2U4l7hmHMvl9UdP8vqjpwiEDD7181vYfsdKCf6FEB+JhK6LWMNyeO6DcX709gWeODRK3XIYSYZ45OZVfPGWVdyyJiX/KAghhBBCiEXDcWoUi296H0Evvk6xeLAzoMtrSbDHD972EI9vR2tW4exrXgh76mU4dwBsr4UBQ+abCAAAmd1JREFUA1u9ALZdDZvZAPKz8aLiDec64Q/m2k+x8Dr1xmkADCPq9QlOeyFsKrkbw4j0+YrFUpO7UOWZ7x7hwtEiq7elufer20mPRPt9WUKIRUJC1yWi1rJ54vAYP3rrPM++P07LcVmbjfBFP4DdviIhAawQQgghhFhUlHKoVN73PnpeeJ1C8QDN5kUADCNOKnWrF8Sm9pBK7cZQBpx/06+G9W+NovdgiZV+Feyd3oCu4Z2gy4yExabRvEix4A3nKhT3U6m8T3s4VyKxywvl0/tIp/YQCKT7fbliCVCu4tCL53npvx7DsVz2fn4Dtz68DsOUFn9CiPlJ6LoEFesWP33vIj986zwvHZvEcRVbhuP8zC2reOTmlWwakn5XQgghhBBicWo0zvuB2wGKxdd7QjeDeHyn3xfWq4YNBQZh/Eh3MNfpl6Hk9ZEllIK1t3sB7Lo7YfVtYIb6+trER2dZpe5wruIBSqV3UKoFQCy21Q9gvWrYcHhVn69WLGbVYpPn/+JDjr0xRnZVjPt+ZTsrNqX6fVlCiAVMQtclbqLS5O/evciP3jrP/pM5lIJdq5N88eZVPHLLKlan5SM4QgghhBBi8bKsEqXSQT+IfZ1S6S1c12sxEAmvI5W+jXRqL6n0XmLRzWjFs34A+5LXlmD8iPdARghW74ENn4L1n/IC2WCsj69MfBzecK63uy0JelpUhMOrOwGsN5xrs3waUHxkJ96e4Ln/8j6VQpOb7l7NJ7+8mWBE+gsLIWaS0HUZuVCs85O3L/Cjt87z1lnvY1Z71mf40u5VfOGmlQzE5Z19IYQQQgixuLlui3L5kN8X1vsYensYk2mm/FYEXm/YROImjEYFzrwCp17ybhfeAuWAbsKq27yesBvugrWfgHCyz69OfFSua1OpHvEHcx3wh3NNAv5wrtQe0ul9pNJ7ScR3ouuBPl+xWAxaDZtXf3ict58+SywV4t6vbmPDzYP9viwhxAIjoesydWqyyo/fvsAP3zzP+6NlDF3j01sH+dLuVTy8cwWxkLxTJ4QQQgghFj+lFPX6SQqF1ztBbK12HABNC5JM7vIqYVN7SKf3EHBNOP0qnHoBTr4I598A1wZNh5W3eFWw6z/ltSWIZPr86sRH1f16OOC3JNhPvd4dzpVM7vZbEuwllbpVhnOJeY2eKPHUdw6TO19l674RPv2LW4nEg/2+LCHEAiGhq+DIxRI/ePM8P3zzPOcKdcIBnYd2ruBLt6zi7huGCEqDcCGEEEIIsYS0WpMUi290BnSVyu+ilAVALHaDF7r5t7CWhLOveQHsqRfh7AFwmoAGI7u67QjW3wkxqXRbjJrN0c5grkLhAJXKEbw+wWZ3OFdqnxfKByRoF1M5tsvrj57i9b89SShm8ulfvIEte4aldYUQQkJX0eW6itdP5/nBm+f4ydsXyNcs0tEAn79pJV/evZq96zPouvzDIYQQQgghlpaZfUDfwHGqgNcX1gtgbyed3kvEHEE7/4YXwJ58Ac68Bnbde6Ch7V4A2w5iEyv6+KrEx2VZJYqlNzrVsKXS21OHc6X2dkN5Gc4lfJPnKjz17cOMnSqz8ZZB7vnqNmIpaeEnxHImoauYVct2eeHoOH9z8DyPHxqlbjmsSoX54u5VfHn3aravSMg7d0IIIYQQYklyXZtK5ZDfB3Q/heIBLCsPQDA43AncMunbiYXWo1182wtgT73oDedqeYObyG72A9i7vGVqTR9flfi4HKdJqfw2xc7Xwxvd4VyhVZ2esOn0PmLRLfJ70jLmOi5vPnmG1350AjOg86mf38r2O1bI14QQy5SEruKSqk2bJw6P8jcHz/HchxM4ruKGkThf2r2an7llFWuz0X5fohBCCCGEENeMUi7V6lF/MNdrFAr7aTYvAv5wLj9wS6f2kYhuQx875A3lOvkinH4JGt4QW9LrugHs+k9BZgNIGLPoKOVQqfjDuYqvUyjsp9UaByAQyPj9gb2+sInEjTKcaxkqjNZ46juHuXC0yLqdWe752jaSA9IfWIjlRkJX8ZFMVpr87TsX+MGb5zlwynu3f8/6DF/evYrP37SSgbh8fEIIIYQQQixtSikajbN+AHuAfOE16vWTAOh6hHTqNlLpfWTS+0jGb8KYOOaFsKde8Ja1Se+Bkqu7/WA33AUDWySEXYS84VynevrC7qdePwV4Xw+p1G6/J2x7OJcUrSwHylW8+9w5Xvr+MTTgjq9sZtfdq9GkZZ8Qy4aEruJjO5Or8cO3zvODN8/xwWgFQ9e4e+sgX9q9mod2jhALmf2+RCGEEEIIIa6LZnPcD9xemzaMKUAyeZPfE3Yf6cStmIXzfjuCl7yWBJVR70HiI90AdsPdMLhVQthFqtkc8yuj28O5DtMdznVjpy9sKrWHYDDb78sV11Bpss4z332fM4dyrNyS4v5f3UF6RIJ3IZYDCV3FVXH4QokfvHmeH755jvPFBpGAwUM7R/jS7lV8eusQQVPv9yUKIYQQQghx3VhWkaL/0fN8YT/l8jsoZQM6ifiOTl/YdGovwXKhWwV78gUonfMeJL7CC2A3fho2fBqymySEXaRsu0yh+DrFwgEKhQOUym/hut5wrmh0y5QWFZHI6j5frbjalFIcefkCL/71UWzL5fYvbmT3A2vRDfk9WYilTEJXcVW5ruLAqTw/ePMcP3nnAoWaRSYa4PM3reRLu1ezd30GXT5OIYQQQgghlhnHqVEsvun3Ad1PsXgQ120AEI1u8kPY28mk9hGuNeDk83DieW/ZroRNrvbC13YIm1nfx1ckroTjNCmX3+l8PRQKr3eGc4VCK3tC+T3EYlvRNAnnloJqscmz//l9Trw1wfD6BPd/fQcDq+P9viwhxDUioau4Zlq2y/MfjvODN8/z+KFR6pbD6nSEL96yii/tXsWOlcl+X6IQQgghhBB94botyuV3O5WwxeIBbLsMQDi8hkz6dtKZT5BJfYJItQ4nn/OqYE88D7UJ70HS67zwtR3Eptb08RWJK+EN53rfD2EPTBnOZZpp0uk9nZYE3nCuYJ+vWHxcSimOvj7G83/xAc2azZ7PbWDPZ9djyKdDhVhyJHQV10W1afP4oVF+8OY5nvtwAsdVbBtJ8DO7V/Ezt6xibVZ62gghhBBCiOXLC90+oFB4lXzhNQqF17Asb3BtOLzaq4JNf5JM+nbC5QrayRe6QWzdO47MRr8K9m5vmVjRx1ckroQ3nOu0XwV7wB/OdRIAXQ+TSu72esKm95JK3oppxvp7weIjq1daPP8XH/Lh/lEGVse4/+s7GF4vhUlCLCUSuorrbrLS5G/fucAP3jzPgVPeD4if3jrI//Wre4gGZfiWEEIIIYQQSrlUqx+SL7xKPv+qH8LmAO/j55nMJ7wQNrWPcKnkh7DPw8kXoVn0HmRga7cVwYZPQ3yoj69IXClvWJsXwBYLByhXDgMummYQj+/0WxLs9foEBwf6fbniMp14e4Jnv3uEWqnF7ofWcfsjGzGDRr8vSwhxFUjoKvrqTK7G9944y7954kP+8X1b+N3PbOv3JQkhhBBCCLHgeCHsUfKFVynkXyVfeLUnhF3hBbCZT3iDmAr5bgh76mVoeW0LGNrRE8LeBdFsH1+RuFK2XaZYfMOrhC0eoFR6s2c412Y/gPWC2HB4DZoMYVuwmjWLl753lEMvXiA1HOH+X93Bqq3pfl+WEOIKSegqFoR/9n8f5G/fucjj//xu1g/IR2OEEEIIIYSYj1KKau1oJ4DN51/FsiaBdgj7Ca8nbGKPF8Ke8vvBnn4FrKr3ICO7uv1g198JkUwfX5G4Uq7bpFR6xw9h91Msvt7pExwKrej0hE2n98lwrgXqzJEcz/z5EUoTDW66ZzWf/MpmgmH5NKgQi5WErmJBGC01uP/3nuGOzQP88d/f1+/LEUIIIYQQYlFRSlGrHSNfeI18/hUKhVdptbyBW6HgiBfApm8nk9xDJJdDO/W8F8KeeRXsBqDBypv9EPZuWHcHhKW/5GLW6RPc05Kg2RoFwDRTpFN7vGrY9D4SiV0ynGuBsJoOr/zgGG8/fZZ4JsR9v7KddTulXYQQi5GErmLB+E/PHuN//bsjfPMb+7hv23C/L0cIIYQQQohFywthj09pR9BqjQMQDA57rQjSt5NJ3EZ0cqJbCXv2NXBaoBmw+jbYeA9sugfW3A6BcJ9flbgSSikajTMUCvs71bC12gkAdD1EMrm705IglboV04z3+YqXtwvHijz17cMURmtsv3Mln/q5LYRjgX5flhDiI5DQVSwYLdvls//mOQAe/Wd3EzTl4y5CCCGEEEJcDUop6vWT5POvdNoRtFpjAASDQ14Am/kkmfgtRCfG0U4+DyeehXNvgHLADMO6T8Kme70gduUtoMuwn8Wu2Zqg6PeELRT2Uy4fojuca4fXjiC1j3R6D8HgYL8vd9mxLYf9PznJwZ+eJpIIcM8vb2PTbhmIJ8RiIaGrWFCeeX+MX/vmfv67z23nt+/Z3O/LEUIIIYQQYknqhrCvdqph2x89DwYH/RD2DrLRm4iMnkE78ZwXwo4d8h4gnPJaEbRD2MGtIIOaFj3brlAsHqRQ9KphveFcTQCi0Y2dwVzp9D7C4bUynOs6GT9d5slvH2bybIUte4e5+xdvIJKQdhBCLHQSuooF5ze/dYCXj03w1O/ey0hSPsIkhBBCCCHEteaFsKf8APY18oVXaDYvAv5grswdZDKfJBu8gfD5D+D403D8OSie9h4gsbLbimDjPZBa3cdXI64W121SKr/rVcP6FbG2XQK8XsGpdHc4Vzx2gwznuoYcx+XgY6fY/7cnCYZMPv2LW9m6b0SCbyEWMAldxYJzerLGg//6WT6/awX/5pdu7fflCCGEEEIIsey0K2Fz+ZfJ518mn38Fy8oBEIms80LY9B1ktFWEzrztVcGeeA5qk94DDGztBrAb7oJoto+vRlwtSrlUqx/6fWH3Uyge6ITzppkgldrTqYZNJm9C10N9vuKlJ3e+ylPfOczoiRIbbhrgnq9uJ56RP2chFiIJXcWC9Ps/fZ8/eOoof/Xbd7Bvg/yAJoQQQgghRD+1w7Zc/iXy+VcoFF7FtssAxGJbvX6wqU+SsZMETr3hhbAnXwSrCmheD9h2CLvuDghG+/uCxFXhDec62wlgC4UD1GrHgPZwrltIp7xqWG84V6LPV7w0uK7i7afO8OoPjqMbGp/6+a3s+NRKqXoVYoGR0FUsSPWWwwO//wzpaJAf/c5dGLr84yGEEEIIIcRCoZRDufwe+fzL5PIvUygcwHXrgEYisdOrhE3eTrqmY558FY4/C2f3g2uBEYS1n+i2I1h1Gxhmv1+SuEparclOAFso7KdSOYRSDqCTSOzwK2H3kUrvJSTDua5IYazGM39+hHMfFFizPcP9X99BIist+oRYKCR0FQvWT96+wP/jP7/Bv/zyLn71k+v7fTlCCCGEEEKIObhui1Lp7U47gmLxIEq10DSDZOJmL4RN3Eoq38A49ZIXwl58B1AQTMCGT3VD2OGdMpRrCbHtKsXSwU5LglLpLVy3AXjDuVKpvd5wrtQ+IpF1Uq35ESlX8d4L53npe0dBg7t+YSs77pSqVyEWAgldxYKllOKrf/Qqhy+WePpf3EsmJtMZhRBCCCGEWAwcp0Gx+LpfCfsK5fLbKOWg60FSydu8dgTRXSTHc+gnnvfaEeSOeyfHhmDj3X4Iey9kpABjKXHdFuXye1NaEth2EYBgcNgLYNP7SKf2EY/fgKYZfb7ixaE0Ueepbx/m3AcF1t04wH2/Ir1eheg3CV3Fgvb+xTKf/3fP80v71vI/f+Wmfl+OEEIIIYQQ4mOw7TKFwoHOUK5y5RCgMIwo6dRerxI2sInExfNo7RC2MuqdnN0Em++HTffBxk9DONXX1yKuru5wrgMUil41rAzn+niUq3jn2XO8/P2j6IbOp39xK9s+sUKqXoXokysKXTVNWwt8GxgBFPCHSql/q2laFvgLYANwEvh7Sqn8fI8loauYy//0w/f41ssn+dE/votdq+UHLCGEEEIIIRY7y8qTz7/mhbCFV6hWPwTANJOk07eTzdxBRq0gdu4E2vGn4eQL3lAuzYA1e70AdvN9sHqv9INdgur1c50A1hvOdRQAXQ+STNzSqYZNpW6T4VyzKIzVeOpbh7lwrMiGmwe592vbiKUkrBbiervS0HUlsFIp9YamaQngdeDLwK8BOaXU/6pp2n8HZJRS/+18jyWhq5hLsW5x/+89w8bBGH/123fIu3RCCCGEEEIsMc3mGPn8K51K2HrjNACBwADZ7J1kU58g24gSPvU2HH8azh8E5UIoCRs+7QWwm+/3qmLl94Ulp9XKUWwP5yoeoFx+tzucK76DVLslQXqfDOfyua7i7afO8MoPjmMGde75pW1s2Tssv08LcR1d1fYCmqb9APj3/u1epdQFP5h9Rim1bb5zJXQV8/mL/af5b7/3Dv/6F2/hK7eu6fflCCGEEEIIIa6hev2cH8C+TC7/Iq3WOACRyAay2U+Rjd1MJt8icPJVOPYUFLyQltQ62HyvF8BuvAei2f69CHHNOE6NYvFgpyVBsfgmrlsHvK+R9mCudHovkcj6ZR005i9WefJbhxk9UWLzrUPc89VtRBIyL0WI6+Gqha6apm0AngN2AaeVUml/vwbk29tzkdBVzMd1FV/5jy9yodjgqd+9l3hIPkIkhBBCCCHEcqCUolr9kFz+RfK5l8gXXsVxqoBOMnkT2cydZMyNpEbHMY4/Dyeeg2YJ0GDV7m4/2LWfAFPCpqXIdS1vOFfRa0fgDecqABAMDvmDubxq2Hh827IbzuU6Lm8+cYZXf3ScUMTknl/exubbhvt9WUIseVcldNU0LQ48C/zPSqn/qmlaoTdk1TQtr5TKzHLebwG/BbBu3bo9p06d+hgvQSwXB0/n+cp/fIn/5p5N/H8+t6PflyOEEEIIIYToA9e1KJXeIpd7kVz+RUqlN1HKQdfDpNP7yKY/SdbKED/r94M9ux+UA4EobLir2w92aLu0IliivOFcRykUD1AsHKBQ2E+jeR4Aw4iTTt3m9YRN7yOZuBnDWB79TifPV3jyzw4zfrrM1n0j3P2LNxCOB/p9WUIsWVccumqaFgB+DDymlPpX/r73kfYC4hr4f/3VW/zNm+d49J/dzeaheL8vRwghhBBCCNFntl2mUNjfCWHbQ7kCgQyZzB1kE3vIlnUi7X6wk95QJhIruwHspnshLpV/S1mjcd4fzLWfQvFA5+tE04Ikkzf7PWH3kk7tWdLDuRzH5eBjp9j/k5OEYgHu+9o2Nt4y1O/LEmJJutJBWhrwLbyhWf+sZ///AUz2DNLKKqX+3/M9loSu4nKMl5vc/3vPcNv6DH/2jX3LujePEEIIIYQQYqZmc4xc/iXyuRfJ5V6k2RoFIBJeRyZ7J9nQNjITVYInX4Xjz0A97504clO3H+y6OyAQ6dtrENeeN5zr9U4IWy6/h1I2oBGP7yCd3uP3hd1HKLT0AvmJs2We+LPDTJ6tsO2TK7jrF7YSjknVqxBX05WGrncBzwPvAK6/+78HXgX+ElgHnAL+nlIqN99jSegqLtefvHCCf/njQ/zR1/fy0M6Rfl+OEEIIIYQQYoFSSlGrHSeX9wLYfP4VHKcCaCQSO8mm7ySjRkhfHPP6wZ5+BVwLjBCsv6PbD3ZkF+h6v1+OuIa84VxvUih67QiKxYM9w7nWdQJYbzjXhiVRAOTYLgf+9iSvP3qKaCLAfb+6g/W7Bvp9WUIsGVdtkNaVktBVXC7Lcfn8v32epu3y0//n3YQDy6sJuhBCCCGEEOLjcV2bcvmdTiuCYvEgSlnoepBUag/Z5D6y9SiJs8fQjj0D44e9E2NDsPkB2PKg144gNtjX1yGuPde1KFcOdVoSFIuvY1leVXQwOEgqtddrR5DeRyK+Y1EP5xo7VeLJbx0md77Kjk+t5K6f30owIsOrhbhSErqKRemloxN89Y9f5V88dAO/88DWfl+OEEIIIYQQYhGy7SqF4n7yuZfI5V+kUjkCgGkmvX6wkV1kiw6Rk2+iHXsaapOABqt2d0PYNfvAkIBqqVPKpVo75g/mOkChuJ9G4xzgDedKpW71KmFT+0gmb1l0w7kcy+W1Hx/n4E9PE0uHuP/rO1i7I9vvyxJiUZPQVSxa/+i7r/PUkTGe/Bf3sjot/ZaEEEIIIYQQV6bZmvAD2JfI5V6g2bwAQDi8mmzmLrLaarIX8wSOPQ9n94NyIJSETff4VbAPQHptn1+FuF684VxeAFso7J82nOsmP4TdSyq1h0Ag2eervTwXjxd58luHKYzW2HX3au742c0Ew/KmghAfh4SuYtE6V6jzwO8/wwPbR/gPX7ut35cjhBBCCCGEWEKUUtTrJ71WBLkXyOVf9vvB6iSTtzCQ3Eu2FiZ5+kP0o89A6ax34uA22PKAd1v/KRnItYxYVp5C4XU/hD1Aufxuz3CubX5f2L3+cK6FO5/Ebjm88sPjvPXkGZIDYe7/+g5W35Dp92UJsehI6CoWtX/35If8q8c/4D//5ie4c4v0VRJCCCGEEEJcG65rUSq9xWTueXK5FyiV3gZcDCNONnMn2eBWBibqRE4cgJMvgtMEM+wFr1se9G6DW2EJDGASl8dx6hRLb1IoHKBY2E+xdBDHqQEQCa/rBLDp9L4FOZzr/IcFnvz2YUrjdW6+bw2f/MpmAsHF27tWiOtNQlexqDUshwf/1bNEgwY/+SefJmDIRFEhhBBCCCHEtWdZBXL5l8lNPsdk7vlOK4JIZD3Z9CcZsLJkzl3APPosTHofOye11quA3fyA15IgnOrjKxDXm+taVCqHO8O5CsXXsawcAIHAgB/A7iWd2ks8vgNd7//H+q2mw8vfP8Y7z5wlNRThgV/bycrN8nUrxOWQ0FUseo+9d5H/5juv8z88spNfv2tjvy9HCCGEEEIIscwopajVTpDLPcdk7gXy+Vdw3TqaZpJK3ko2uouBEiROHEI7/hy0yqAZsPYTsOV+rwp2xS2gSxHJcuJ93Rz3A1ivJUGj4bWp6AznSnnVsN5wrnDfrvXs+3me+vZhyrkGux9cxyd+ZiNmQKpehZiPhK7LTLNWY+zEUUaPH2X0xDFK42Ps/uwjbL/z7gX3UYbLpZTi63/6Gm+eKfD0797LYHxxTYkUQgghhBBCLC2u26RYPOi3Iniecvk9AEwzTTZzBwNqFdnxIuGjL8OFt7yTooOw2Q9gN98P8aE+vgLRL43GBT+EPeAP5/oAaA/n2uX3hd3Xl+FcrYbNS987ynvPnyezIsoDf38nIxsXx4AwIfpBQtclbHrAOnr8KPkL5zr3JwaGMEMh8ufPsum2fTzwG/+I5ODi/If96FiFz/6b5/i529bwv/38zf2+HCGEEEIIIYToaLUm/YFczzOZe4FWawyAaHQLA4nbyNYiZE6fxDj2DNQmvZNW3uK1IdjyIKy9HYxA/16A6BvLKlAsvtFpSVAqv4tSFu3hXKnU3k5v2HBoxXW5ptOHJnn6O0eoFprc9pn17PvCRoyAVGkLMZ2ErktEs1Zj7KQXrLZv0wPWkU2bGdm4hZFN3i2aSuO6Dgf/7ke88BffQdd1Pv3Lv8YtD30ObRF+rOV/+dvD/NHzx/mbf/Qpblmb7vflCCGEEEIIIcQMSimq1Q/I5V5gMvc8hcJruG4TTQuSTu1hILCZbK5B/NhbaGdeA+VAMOH1gN3yIGx9CFJr+v0yRJ84Tp1S6S0/hD3gD+eqAhAOr+0O50rtIxrdeM0+0dqs27z4Vx9y+KULZFfFePDXdjK0LnFNnkuIxUpC10VoRsB64pgXsPr/v+IDg4xs3MKKTVMD1vkUxy7y+B/9B069fZDV23fy0G/9DgOr116HV3P1lBsW9//+s6xKR/j+P7wTXV+c7RKEEEIIIYQQy4fjNCgUD5CbfI5c7gUq1fcBb7DSQOp2slaG7IUxQh+8ACWv3yfDN3rh69aHpQp2mXNdm0rlEIXi651q2KnDufb6fWH3Eo/vvOrDuU6+M8HTf36ERtliz+fWs+dzGzDMxVfEJcS1IKHrAteq1xg7cZzRE0e5eOzDOQPWkU2bWbFp62UFrHNRSnHouad45lt/hNVs8Mmf+2X2/czPYZj9n5h4uf7rG2f553/5Fv/7z9/M39u7uEJjIYQQQgghhGg2R8nlXvT7wb7QCdDise1kIzsZKCrSxw6jn34FXBtCKdh8nxfAbnkQEiN9fgWin9pD3bzBXO3hXGcAMIwYqeStnWrYZHL3VRnO1ahaPP+XH/DBq6MMro3z0DduJLsqdsWPK8RiJ6HrAtIbsI4eP8rFdouAWQLWkU1bGNm4hVg6c9Wvo1rI89Sf/SEfvPw8Q+s28PBv/1NWbN561Z/nWlBK8fP/6WVOTVZ56nfvJRmWd3yFEEIIIYQQi5NSLpXKYSZzL5CbfI5C8XWUsjCMGJnUPgbsIQbOjxP54AWoXPROWrnbC2C3PgyrbwNdJswvd43mRYqFAxQKBygU91OpvA8oNC1AMrGLVKclwR4CgfTHfp7jB8d5+rtHsJoOd3xlMzffuwZNPoEqljEJXfuk1agzdmJqD9Zcb8CaHWBk09ZrHrDO5+iBV3nyj/8D1UKB277wJT71C18jEL7yd8GutXfPFfniv3+Bb9y5kf/hizv7fTlCCCGEEEIIcVXYdoV8/mUmc88xOfksjYY3xyMa3cxg+EayBZfMscPoZ/eDciGS9fvAPgxbHoBots+vQCwEllXsDucq7qdUescfzgWx2A1+AOsP5wqv/EiPXS02eebPj3DynUnWbM/wwN/fQTyz8HMEIa4FCV37oFrI859+++vTAtZu/9V+BKxzadaqPPfdb/L2E4+SGh7hoX/wO6y/eXe/L+uS/vvvv8Nf7D/D3/3TT3PDiDTzFkIIIYQQQiwt3sfIjzE56QWw+cJrKNVC1yNkknsYsAcYOD9O9IMXoTYJmg6r9/pVsA/BipthEQ5QFlef4zS84VzFAxQK+ykWD+I4FQDC4TV+X9h9pNN7iUY3X3I4l1KKQy+c54W/PophaNz9yzdww74V1+OlCLGgSOjaB0op9v/wewyuXc/IpoUTsM7n7KF3+ekf/gH5C+e48d4HufdXf5NwPN7vy5pTvtri3t97hhtXJfnub37imk1sFEIIIYQQQoiFwHFq5POvMpl7lsnJZ6nXTwMQiWxgILSDgYJL5vghjLNvAgriI7DlIS+A3XwfhFN9vX6xcLiuTaV6pNMT1hvONQlAIJAlndrjVcOm9807nKswVuOJbx5i9ESJrXuHufuXtxGOSQtAsXxI6Coum91q8fL3/gv7f/g9IokkD/z6b7P1E59asIHmd14+yf/vB+/xH792G5+/6aN9JEIIIYQQQgghFrNa7YRXBZt7lnz+FVy3ia6HSCduZcAaYPD8GJEPXkJrFEEzYN0dXgC79WEY3gEL9Pc8cf0ppajXT3YC2EJxfyfUN4woqeStpPyesKnUrRhGpHOu67i88dhp9v/4BJFkkAe+voO1O6XNhVgeJHQVH9nYyeM89p/+LWMnjrF57yd58Df+IfHsQL8vawbHVTzyBy9Qqls88c/vIRKUBvJCCCGEEEKI5cdxGhQKrzE5+SyTueeo1Y4D3kfHB0LbGSi4ZI++h3HhPe+E5Bo/gH0INt4DoYX7KUfRH83maGcwV6FwgErlCN5wLpNEYteUlgSBQJqxUyWe+OYh8hdr3HzfGu74ymZM+R1dLHESuoqPxXUcXv/J3/DSX34X3TS551d+nZvufxhtgfUEevX4JL/4h6/wT+7fwj9/eFu/L0cIIYQQQggh+q5eP9NTBfsyjlND04Kk4zcxYGUZOD9G7IPX0FplMIKw/k6/F+zDMLBFqmDFDJZVolh8nULxdQqF/ZRKb6NUC4BYbCvp9D4S0b188Pw6Dj2XJ7MiyoPf2Mnw+mSfr1yIa0dCV3FF8hfP8/gf/nvOvPc2a3bu4uHf+h0yK1f3+7Km+Cf/5SCPvneRJ//5PazNRvt9OUIIIYQQQgixYLhuk0LhQKcKtlr9EIBwaCXZ4A0MFByyRw9hjn7gnZDZADd8Fm74DKz/FJih/l28WLAcp0mp/DbFwn6/JcEbneFc1uRdnHnl72HVw+z+TJpPfGE3hilVr2LpkdBVXDGlFO8+/TjPfudPcCyLO37hq+z5wpcxzNmbaV9vF4sN7v/9Z7hryyB/+PVZv9aFEEIIIYQQQgCNxvlOFWwu9xKOU0HTTFKxGxloZRg4N0r8w/1odgOCcdh8vxfCbn0Y4kP9vnyxQCnlUKl0h3NNjL3DmVc+R/nM7UQHT7LjM++xcv0OryI2vhNdl4FbYvGT0FVcNZV8jqf+9D/x4WsvMbxhMw//N7/DyKYt/b4sAP7jM0f53x99n2//+u3cfYP8ICCEEEIIIYQQl+K6FsXiG50q2ErlMACh4AgDga0MTjbJvv8mRvECoMGavV4F7A2fhZFd0oZAzMkbznWKd154mzd/EsJ1FMO3/N+kNj2PYURIpXZ3esJ6w7nkU6ti8ZHQVVx1H776Ek/+6f9JrVRk7yNf4Y5f+CqBYH8/ctK0HT77b55H0+DRf3o3QXNh9Z4VQgghhBBCiIWu2RxlcvI5JiafJpd70a+CDZCJ3shgLcrAyZNET73tHZxc0w1gN94NgXB/L14sWJV8gye/dZizR/KsvMFhy337qVsv+yF/ezjXjaRTe0mn95FK7SEYzPb7soW4JAldxTXRqFZ47s//lHee+inpFSt5+Ld+h7U33tzXa3r6yBjf+LP9/Pef385v3b25r9cihBBCCCGEEIuZ67b8XrDPMDH5NLXacQCi4XUMqtUMXCyQfv8N9FYVAlHYdK8Xwm79DCRX9vfixYKjXMXbz5zl5e8fIxAyuO9XtrNuV9gfzHVgxnCuaHQL6bQXwqZT+4hEFtZsGSFAQldxjZ1+920e/8M/oDB6gZse+Ax3f+0bhGPxvl3Pb/zZfl45PsnTv3svw0l5p1UIIYQQQgghroZa7RSTk08zMfkM+fyrKNXCMGJkg9sYLMHAB4cJTZ7xDl6526uA3fZZWHEL6PJJROHJna/yxJ8dYvx0me13ruTTv7CVYMSbF+M4Tcrld/zBXPspFF7vDOcKhVZ6AWx6H+nUXmKxLWiafF2J/pLQVVxzVrPBy3/9Xzjw4+8TTaV54Nd/m62339mXazk5UeXhf/0cj9y8kn/1i7v7cg1CCCGEEEIIsZTZdpV8/iUmJp9mcvJZms2LACTCWxhspRk4c4HksbfRUBBfATc8DDd8DjbdA8FYn69e9Jtju+z/yQneePQU8WyYB39tJ6u2pmcc5w3net8PYb1q2FZrHADTTJNO7+m0JEgkbkTXg9f5lYjlTkJXcd2MHj/KY//Xv2P85HG2fuJOHvj1f0gsnbnu1/F/PHaE//D0Mb73D+9gz3rpAyOEEEIIIYQQ14pSikrlsB/APkOx+CbgEjCzDBrrGRivM/DB25i1Ehghr//rts96bQjSa/t9+aKPLhwr8sQ336M02eC2h9dx+yObMAJzV6+2h3MVCgc6IWy9fhIAXQ+TSu7uVMMmk7sxTQn4xbUloau4rhzb5sCPv8/Lf/2fMYNB7vnV32DXvQ+hXceplrWWzQO//yzZWJAf/uO7MHSZqCmEEEIIIYQQ10OrlSOXe94PYZ/DtotomkkqtIXBSpDB40eJXjyNBjCyy2tDcMNnYfVtoBv9vnxxnbUaNi/+9VEOvXCegTVxHvrGTgZWX37LwmZzvBPAFgsHKFcOAy6aZpCI3+iHsHv94VwD1+6FiGVJQlfRF7nz53j8D/+As4ffZd2um3nwH/xjMitWXbfn/9Fb5/md/3KQ//kru/jaJ9Zft+cVQgghhBBCCOFxXZtS6U0vgJ14mkr1fQDCwRUM2sMMXMiR+fAdDNeB6KA3iOuGz8Cm+yCc7PPVi+vp5NsTPPWdwzTrNp/80mZ2P7AW7WMUUNl2mWLxDb8lweuUSm/iuu3hXJu94Vwprxo2HF59XQvExNIjoavoG+W6vPPUT3n2z/+UVr1GMBIhnhkgns0SywwQz2S9W3agsx3LZDEDgSt/bqX4pT98hQ9Gyzz9u/eSjkpvFyGEEEIIIYTop0bjPBOTzzA5+Qy53Iu4bgNdD5E1NzGQdxj88BDhUgH0AGy4C7Z9HrZ9TtoQLBP1coun//wIJ96aYPUNaR74tZ0kslc2INt1m5RK7/gtCfZTLL6ObZcBCIVW+IO5vGrYWGyrDOcSH4mErqLvyrkJjrz4HJXJCSr5HJXcJJV8jmp+Ese2ZxwfTiQ7YWw7mI1lBqZsR1NpdGP+j54cvlDiC//ueb72ifX8yy/vulYvTwghhBBCCCHER+Q4TQqFV5iYfJqJiWdoNM4AEA+uZaCRYPDUGZJnTqADrLjZC2C3f95bl+rEJUspxeGXLvDCX36IpsHdv3QDN3xixVWrSPWGc31AobifQuEAxcIBmq1RAEwz5VfC7vGHc+2S4VxiXhK6igVLKUWjUu4JYiep5nLetr+vmp+kWiiglDvlXE3TiabTncrZdpVsvF1Bmx0glsnyvz11mu+8epof/86n2bnq4388RSmF6zg4toVjWTi27S/9bcvC7tzX3dc+zu7db1tE4gmGN2xmaMNGQlFp7i2EEEIIIYRYvpRS1GrH/AD2aYrF11HKJmAkGVCrGLxQYODoIUzHheQar/p1++dh/V1gSii2FJUm6jzxZ4e4cLTI5tuGuPer2wnHr/xTsdMppWg0znjtCPxq2FrtBOAN50omb+kM50olb5XhXGIKCV3Foue6DrVikWo+R9kPYr1Q1quWbVfO1sulGefqpklJi6AiSW7bsYFQNDYl/JwRmHb22zPu5xr9fUkNj3QC2OENmxnesIl4dkB6ywghhBBCCCGWJdsuMzn5HBMTTzEx+Qy2XUDTTDLGegZzNoMfHiZSrUEoCVsf8qpgtzwIkXS/L11cRa6rePPx07z6w+OE4wHu//oO1t947YdhNVsTFAsHOgO6yuVDtIdzxeM7O8O50qm9MpxrmZPQVSwbtmVRK+Sp9ASxlXyOdz88zQfHz7Ep5hByWxiBAIYZ8JY962bvfjOAETA76+Yc5xiBAGbvOaY5yzFm9zECAXTDpFYsMHbiGGMnjzN26gTjJ4+Rv3C+81oiiSRDGzYxvGETw+s3MrxxM5mVqy/ZUkEIIYQQQgghlhLXtSmWDjIx8QQTE09Rqx0HIG6uYrAaYfD4MZLjE2i66feB/YL0gV1ixs+UeeKbh8idr7LrntXc+bNbCISu3+/Gtl2hWDzYaUngDedqAhCNbiKd2tuphg2H10gB1TIioatY9hxX8eX/8CJj5QZP/Yt7iYXMq/4cSiksR9FyXCzbpeW4tHqXtovlrzcdl0w0yA0jcaLB7rW06jXGT59i7OQxxk8eZ+zkcSbOnMKxLADMQJDBdev9qlgvkB1at4FA+MoaiwshhBBCCCHEYlGrnWB84kkmJp6iWDyAUg5BI8WANcjQuVGyp05iuMCKm7wAVvrALgm25fDKD47z1hNnSI9EefAbOxnZ8PFbCF4J121SKr/b6QlbKB7Atr1P3oZCK6aEsDKca2mT0FUI4I3TeX72P77EF25eye416RmhqNUTjs51X7O93tmvppzzUWkabBiIsWNlgu0rkmxfkWDHyiRrMpHOO2OObZM/f9ariD15nPFTxxk7cZxGtdJ5kMzK1V5FbE9VbDSVvop/ekIIIYQQQgix8FhWgcnJ5xifeIJc7jlsu4yuBchoqxkcqzJ49APCLUf6wC4hZ9/P8+SfHaJWbHH7z2zk1ofXo+v9DdSVcqlWP/T7wu6nUDxAs3kRANNMkvIHc6XTe0kmbpLhXEuIhK5C+P7HH7zLt14+NWVfwNAIGjpBUyfgL4Om3tkXNKbtb9836zla95yexwj1HuffN15ucuRCmcMXShy5WOJUrtZpGZsImWxvB7ErvSB220iiU6GrlKI8Oc7YyROMnTjmBbEnT1AaH+28rlgm2wlgh9ZvYnjDRtIjK9F0eYdNCCGEEEIIsfS4rkWhsJ8Jvwq23jgNQMJYyWBRZ/DYURLFKloo6fV/3f4F6QO7SDWqFs98932OvTHG6hvSPPiNncQzC+cToN5wrrNTQth2WwxdD5FM7vZ7wu4jlboV04z3+YrFxyWhqxA98tUWph+OBnS97++ItVWbNu+PljlyocyRiyUvjL1Qpty0O8esH4iyww9it69IstOvim2/hkal0glg2y0KJs+dwXUcAALhCEPrN3arYjdsIjWyglA0Jj1nhBBCCCGEEEuGUopq7SgT408yMfkkxeJBQBHS0ww2EgyeOkNmdAKDdh/Yz3s36QO7aCilOPLyBZ77iw8xDI37fnU7m28d7vdlzanVmvQHc3nDuSqVQyjlADqJxA7SqX2dathgcLDflysuk4SuQixSSinO5uscuVjmyIUShy96QeyJyWqnKjYWNNjmtyXYvjLJjhUJtq1IkAgHALBbLSbPnmbMb0vQDmWtRr3zPGYwRCyTIZ7JEssMeMt0hnjWX89kiWeyBCNRCWeFEEIIIYQQi06rNcHE5DNMTDxFLvc8jlND10Jk3SGGzucYOH2GkKWkD+wiVBit8fifvsfYqTI7P7WSu/7eDdd1yNbHZdsViqU3O9WwpdJbuG4DgGh0ox/C7vWHc62V38UXKAldhVhiai2bD0YrXhB7ocRhP5QtNbpVsWuzEbavSLLDD2K3r0yyPhtF1zWU61IYu8j4yeOUJsap5HNU/VvFv/WGsm1mKEQ8kyWeGfBD2W5IOz2cFUIIIYQQQoiFyHWb5POv+sO4nqTZvABoJLVhBictho4fJ1az0Xr7wG74NBiBfl+6mINju7z2oxO88dNTpIejPPwbNzK0LtHvy/pIXLdFufxepx1BoXAA2y4CEAqOkEr7fWFT+4jHb0DTFn6wvBxI6CrEMqCU4nyxwZELJY5cLHPoQokjF0qcmKji+n/NI4FuVWx7eNfabITBeIiAMbXXa6teo5LPU81PdkLZdiBbzeeoFnKUc5PYzeaMawmEI8QzGT+EHfCW6Qyx7NSANhiOXI8/GiGEEEIIIYSYlVKKSuUIExNPMDHxFKXy2wCE9TSDlRCDJ06SyVXRQym44bOw44uw+QEISqHJQnT2/TxPfPMQ9XKLT35pM7sfXIu2QFoKflTd4VwHKBS9atjucK6EN5zLr4ZNJm9C10N9vuLlSUJXIZaxhuXwgd8r9pA/tOvwhTLFutU5RtMgGw0ylAgxlAgxnAj7yxDDyanb7WFe4P2A0qrXqeQnqfYEtL0hbXtpt2aGs8FIZN52Bu1lILRwGqILIYQQQgghlq5mc4yJiaeYmHyKXO5FXLeBoYUYaGYYOn2OwdECphaGLQ94AewNn4FIpt+XLXo0KhZPf/cIxw+Os2Z7hgd/bSex9OIPJL3hXOf8Ktj9FAoHqNWOAqBpQeLxG0gkdpFM7CKRuJF4fJsEsdeBhK5CiCmUUlwsNThyocz5Yp2xUpPxStNblhuMl71ty5n5/SEWNLrBbNILYtvb3fUQmWiwM+BLKUWzVqWaz/sB7dRAtpKbpFrIUc3nsa3WjOcMRWMzgth2/1mvF623DATlHxQhhBBCCCHE1eE4dfL5lxkff5zxiSexrEk0DDLOAEPnJxk8N07Y1r1BXDu+6PWCTa7s92ULvN9BD71wnhf+6kPMgMF9v7qdTbuH+n1ZV12rlaNYPECxeJBS+V3K5fc6LQk0zSQWu8EPYdtB7HYMQ4qariYJXfvAchWff/0D1oSDrAsHWRfxlusjIdaGg0SmfZRbiIXGdRWFusWYH8KOlZqMlZveernBWLnJRNnbV2naM843da2ncjbEUG/1bCLEcNLbHoqHCJre3welFM1qlcq0lgbectIPbXNU85M49sznDMfixGYJZuPZLLF0N7Q1A9KLSQghhBBCCHH5lHIolt70Atjxn1KvnwIgqQYYGqsyeOYCsZqDtmafF8BufwQGNvf5qkX+YpWf/sl7TJypcOPdq/nUz28hEFy6vVC9atiznQC2XH6XcvldLCsPgKYZxKJbOiFsIrmLRHwHhiHtMj4uCV37oGDZ/M7h05yqtzjTaFJ3p/45jwRN1oVDrI9MDWTXhYOsCAUwZCqdWERqLXtKtWwnqC13g9rxcoPJaovZvuVkooGp1bJJL4wdTk6tno2HTDRN8/4hqZTnCWbboW0e15klnE0kvR6zfs9ZL5TNdPvP+tuGKeGsEEIIIYQQYiqlFNXaUSbGn2B84nFKpbcAiJBiKOcwdPosqZKNNryzG8CuuMnr6yauO8dyeeWHx3nz8dNkVkR56DduZGjt4hqydSWUUjSbFyiV36Fcepdy5T1KpXexrEn/CJ1YbLMXwrarYuM7MM14X697sZDQtc+UUoy3bE43WpyqNznVaHG63uJUo8npeovzTYve/wtBTWNNOMj6SJC1PWHsej+cTQfMOZ9LiIXMclwmK60p1bKd9SktDpq0HHfG+ZGAMaXXbDuY7VbTesFtNhbE0DWU61KvlHuGgE2tlm0Hs9VCDtdxZj5fIulVx7Z7zbarZbPZzrYXzsrfSSGEEEIIIZarRvMiE+NPMj7xOPn8KyhlESDKUDnA0KmzZPJNjNQ62P5F2PEIrP0E6Eu32nKhOnMoxxPfOkSjanHHlzdzy/2Ld8jWlVJK0WyNeiGsXxVbKr9LqzXmH6ERjW6c0iM2kbgR01w+YfXlktB1gWu5LucaVieE7Q1lz9Rb5O2pYVDKNGa0LGiHsmvCQUK6tC4Qi5tSilLd7gSz87U4KDdmVrIausZALNgdAhZvDwQL+S0PuhW04YDhhbPl0tQ+s7P0nq0W8ih3WhisaUSTKa9CNp3ptDOYHtLGUhl0Q36wEkIIIYQQYimz7TITk88wPv44k5PP4jgVDAJk6zGGzlxgcKJGIDQI2z7vVcFuvBtMmU1xvdQrLZ769hFOvj3Bup1Z7v/7O4il5M+/rdkc6wSw7dYEzebFzv2RyPppQewuAoFUH6+4/yR0XeRKtsPpKRWyLU7Xm5xutDjTaNHsaV2gAStDgZ5QNsS6SJDhoMlQMMBgwCQbMAks03dzxNLTsJxZq2WntziYrDRxZ/l2lwybM9oYDPf2n02GGIqHSUZMlHKpl0pT2hlUcv56oRvO1goFlJoZzsZSaS+IzXb7zra3260NoqkUurzrLYQQQgghxKLnuk3y+VcZn3ic8fEnaLXG0NBJt5IMnRtnaKxMmDhsfdirgN3yEITkI93XmlKK9573hmwFwwb3f30HG24a7PdlLVit1sS0IPY9Go1znfvD4bVThnVls3ehLaNWGhK6LmGuUoy2rFkrZE81WlxoWrOelw0YDARMBnvCWG/d9NcDnfWYoS+rvzBiaXJcxWS12Qlmx2cJZtvBbdOe2dogZOoz2hh01pPdoHYgFkRHUSsVpwSzXqWsH8zmvP21UpHpTW41TSeaTneGfsXT2U6f2XhmwOs9mx0gkkxKOCuEEEIIIcQioZRLqfyOP4jrcWq1owAknCRDF4sMXSgQa5pom+/3AtgbPgexgT5f9dKWO1/lp3/6HpNnK9x0z2ru/LktmEt4yNbV1GrlKFcOTWlPUG+cJhgc4tN3vdLvy7uuJHRdxhqOy7lmi4mWzXjLZsKy/XWLCctmsmd/0Z7Z0xIgrGsMBPxw1g9ih4Jmz3p3fzZgYkoVrVjElFKUm3ant2w7mB3vCWbb64XazDc1NA0GYr1Vsz3rUypqwwR1Ra1UoJprtzTwgtlKbnJKS4NasTDzeXSdWDrTUynrhbO9lbPxTJZIIokmLUeEEEIIIYRYUKrV40xMPM74xBMUiwcBRVjFGJpoMHR+klRJoa+/0x/E9QVIren3JS9JjuXy8t8c460nz5BdFePh37iRgdVSbfxxWFaRRuM8icSOfl/KdSWhq7gsTddlckow2163Ovsmeu63Zvna0YBMwGAwEJhWOevdMqZJJmCQ9QPaTMAgKIGQWKSatjMtkG3621NbHUxUmtiz9DZIhEy/x6w/EGxa79l2NW0iCLVit3K2PQys3Xe2HdDWy6UZz6EbBtF0hni7nUFmwOs92xPMxjJZIvGEhLNCCCGEEEL0QbM5zsSEN4grl3vRG8SlQgwWYejcONl8C2PFbV4Au/NLMLC535e85Jx6b5Inv3WYVs3mzp/bzE33rpFP/IrLIqGruOqUUhRthwnLD2f9MHa8ZTHRspmcst+iNMvHtdtihu4FsWY3iM30LLMBk4xpkA36S2l5IBYZ11Xka60pwWynB+20wWC11syK84ChMRQPMXSJ3rPpkI5VLk7tOZvP+SFtt3q2USnPeA7dMIllMrO3M8hkiWW9gDYcT8jfPSGEEEIIIa4R264wmXueifHHmZh8Ctsuo2OSrQYYPjvG4GSLwMAuL3zd+TMwtK3fl7xk1EotnvrOYU69M8n6XQPc//UdRJPBfl+WWOAkdBV9166izdsOuZZNzrbJWw55y1vm/GXetjvrc7U7AAhoWk8oa/jB7NTAtreaNmOapAMGxjxhkVIKy7/ZrqKlFLZSWK7CVnj7O9vd49rn9O7vvW/6OZa/P2EabIyEWB8JsiESImMaEmYJqk3bC2dLjZ6hYFNbHYyVm+SqrVnPz8aCnWB2Ru9Zv6I2E9LQ6mU/kJ2kks/7y9yUwLZZrc54fMM0vTYGfuVsb5/ZznCwTJZwLC5fz0IIIYQQQlwB17UoFF7zB3E9TrN5EQ2NTD3M0NlxhiaahNLb/AD2SzC80+t3Jj42pRTvPHOOl753lGDE4IFf28n6G6W3rpibhK5iUbJdRcFuB7N+YGvZ5Kyefe3A1u4GuLO1PQCv9UHKNIga+sxQVCmc6/RXwdS80Lg+7ePmKdPoBLCdMDYcYmM0yEgwgC7/eIoeluMy4Yeys/WbHSs3mfD3WbN8cUeDxpQ2BkOz9J7NhCDYrFIv5nsC2m47g/Z6szZLOBsIzN3OwO87G8tkCUVjEs4KIYQQQghxCUopyuV3GBt/jLGxR6nXTwKQakQYPjfB0ESTSHwT7PgZL4BdeYsEsFdg8lyFn/7Je+TOV7n5/jXc8ZXNmAEZsiVmktC1Dxzb5j//f/8F8WyWxMAg8eygvxwgMTBIIjtIIBzu92UuOUopKo7brZztCWvzfmBbd1wCuoapaQQ0f6lrnTA0oOsENHr2Tz2us967PW3/1G0wdY2gpmNqdAKmmuNyqt7kVL3FyXqTE+31RpMzjdaUEDisa6zzA9gNYS+Q3RgJsSESYk04SECGl4k5KKUo1KypbQ16+9D6FbXjpSblpj3jfFPXGIyHprQxmN7qIBuCqF2lVSrM2s6gvWzVazMfPxjy2hq0A9pMtlM5G++pqA1GohLOCiGEEEIIgfczfrX6IWPjjzE+/hiVymEAEq0wQ+fzDI83iIXW+BWwX4bVt0kA+zHYLYeXvn+Md54+y8DqOA/9xk4GVsmQLTGVhK590KhW+Lt///uUc5NUJidmHXATisVIZAeJDwySyA50gllvfYD4wKBUgS1Tlqs412yHsd7ylL9+ut6cUiVraLAm5FXIdsNYb3tdJEjMkHfjxOWpt5xZgtnGtBYHTSarTWb7pyMdDfQMA+v2m21X0WaDEHOqqGqRWiE/pVq2Uz2bm8RqNmY8thkKddsZZLLEM5lOSNsNbDMEI9Hr8CclhBBCCCHEwlGrnWJ84qeMjT1GqXQQgKgVZvhCgaGJOgljJdoOvwfsmttBBuh+JCffmeCpbx+m1XC46+e3cOPdqyWnER0SuvaB5Vg89NcPsSaxhvXJ9ayLrGElWbKtGPFmgFaxTHlygkpugvLkJJXcBNVigelJRiAU7oSy3YrZgSmVs5FEUv7CLyNKKUZbNifqTT+MbXXWT9ZbM3rhjgRNNvhVse0wtr2eCZh9ehViMbMdl1y1NbWlwbTes+0WB61ZhuiFA/rs/Wb9oDYTcIm7NcxmhXp+kkohP61q1mtzYDebMx47EI70BLG9vWen9qGVTxoIIYQQQoilqNG8yPj444yPP0Y+/yrgEraDDI+WGRqvk1KDaO0WBOvuAF2KdC5HtdjkqW8f5vR7OTbcPMj9v7qdSEKGbAkJXfui1Crxr1//15wqneJU6RRjtbEp9w9FhliXXMeG5AbWJdexPrGetdHVZJwYrUKZcm6CyuREp1K2nJugkvPCBuVODTGMQMCvmB3wlp2q2e52JJnEMAPX849A9EnesjlZb/mVsc0p66OtqR8fT5kGw0GTtGmSChikTYNMwCDlDx5LmwbpgOkvDVKmQdo0pZ2BuCxKKUoNm3G/WrY7GGxq79nxcpNi3Zpxvq7BQDw0azA7FA8yEFLEnRqhVgWrXOhUzrb7z3ptDnLYrZnhbDASnRLExjpVtJmeitoMgZCEs0IIIYQQYnFqtXJMTDzJ2Phj5HIvoJRF0AkwNF5jeKxG2kqhtwPY9XeBIUU581Gu4u2nz/LS948SjgZ48Nd2snZntt+XJfpMQtcFoGbVOFM+w6nSKU6XT3OyeJLT5dOcKp0i18h1jtPQWBlb6QWxyfWd27rEOlYnVmOgUysU/FB2knJuwq+YnZxSOes6M3szBsIRIokE4ViCcCJBOJ4gEk94++Ldm7edJByPE47H0eWdryWj3Ue2XRV7st5kwrIpWg4F26Fg2xQsh4ozszqxV9zQSZkGmYDpBbGzBrQmmZ6wNhMwiRu6VGWLWTUspxPEjpebXlDrV9COV7pB7USlhePO/HcrETanDAbrtjUIMhBwiTs1IrbX2qBaaPecnTogzLFmBr+haGxqtWzWHwzWbm2Q9QaDmUF5l1sIIYQQQixctl1mYuJpxsd/ysTk07huA9M1GZpoMDRWI9uIY2z7gtcDduPdYMrPt3OZOFvmp39yiPyFKrsfXMsnv7wZw5SWDcuVhK4LXLlV5nTpNCdLJzldOs2p8ilOFU9xqnyKcqvcOc7QDFbHV8+okF2fWs+K6AoMPxxVrku9XKLcrpTNTdIol6hXyjTKJRrVCvVyiUalQr1SplmpoNTcIVsoFiMST04JaqcGtP6+RLKzT4beLG6WqyjaDkU/hC3YDgXL9pcORdshb/eEtVY3sG3N8z3F0OhUy/aGsd6+bpVtpl1V2xPihqTvkAAcV/mtDRpTQtr2QLB2m4OxcoOGNfP7WtDUvUFgUwaDhb1w1rRJqDoRq4rRKFEv5DsBbSU3SdVvc+DYM9/UCsfiXjibHfAGgbX7zGb9sDbtVdOaAfnEgRBCCCGE6C/HaZDLPcfY+GNMjD+J7ZQxlMFArsXwaJWBWgRz6xe8CtjN94EZ6vclLzhWy+Glvz7Ku8+dY2hdgs/8gxtJDcl8ieVIQtdFSilFoVnotCho39oVsnW73jk2oAdYm1g7pTq2XSE7HB2eNwBVrkuzVqNeKdGolGmUyzQqZeqVMnV/vX3ztr3AtlmrzvmYmq5PDWgT3nooGiMUixGKxr1lLEY4GiMUi3fvi0TRJGBblJRS1F1FwbK9YNbygtu87fQEtF54W7T84LYnyJ3vu1FE10j3BLReda3XFiFjGqQCXmVtO6xtB7dJ08CQNwCWHaUUlaY9tVq21PCraLvB7Fi5SaE2s8JV0yAbDXrhbLKncjYeZNB0SKgaEatCsFXBKhf9YNbvOVvIUc3nZ/3EQTiR9EPYDHE/lI1lssT9UNarnM1IOxghhBBCCHFduG6LfP4VxsYfY3z8cSxrEl3pZAs2w2NVBktBAls+6wWwWx6EQKTfl7ygHD84zlPfOYzrKu772na27hvp9yWJ60xC1yVIKcV4fbwbxJZOd9bPlM/QcludY8NGmEw4QyqU8m5Bb5kOpWfdlwwlSYVSBPT5f+l3HadbNVsu06jOHdLWKxUa5TLNWpVWvTb/i9M0QpGoH852Q9rwlO3YjAA37K8Ho5EF1RJBKYVSLq7johwH13VwbJtgOCIfSe7hKkXJdnrCWoe81Q1lC/a0sNYPcfOWQ92du1JbA5J+UOsFtN3+tbP1rO1tmRDVpR3CctC0HSYqrU4o2+0127NdajJRaWLP0togHjL9VgahaeGsTUrViDg1gs2K19qg3XO20B0MNr1PN0AkmfLaGGQHuq0N0lli2e4wsGgqjWFK3y0hhBBCCHF1KOVQKL7B+NijjI0/RrN5AU1pZEouQ2NVhooGoY0PewHs1s9AUCo7AUqTdR7/k/e4eLzEzk+t5K5fvIFAcOFkEuLaktB1mXFch9HaaKddwZnyGQrNAsVm0bu1ip11RzlzPk4sEOuEse1bOpQmGUxOCWw7Qa1/rKnPHwK4rkOrVqdZq9CoVmlWqzRrFX9ZpVGt0qp113vvay8vJeiHtp0q2p7A1gyGcB0H5Tg4/tJ1HVxn2q1nX+cYe9qxrovr2D3HuLi27R/j+sfNrHZriyRTJAYGSQ4OkRgYIjE4NGU7lsksqAB5oWq67oxK2tkC2nZ421uFa8/zLTCoaT0BbW9LBBk2thy5riJfa00ZADbWMyRsvGdIWLU183trwNAY7AwGCzOcDDEYCzBoWqRpELOrBFsVtFqJejHntTbI+UPBCoWZbWA0jWgy1R0Gls522xlk/N6z2SyxVAbdkO8jQgghhBDi8imlKJffYWz8McbGHqVePwkKUlUYHq0wXDAIb/gM7PpZqYAFHMfltR+e4I3HTpFdFePh37yRgVXxfl+WuA4kdO0DpRSv/vA4q7amWb0tg2EsvI/LK6WoWJVuENvwllMC2mkhbXvbnacHbDwQn1JB2w5lhyJD3Dp8KzcP3UzY/PgTwV3XoVWv9wSxFRrtQHaWALdZq9Cs1Tr32c0mumGiG0bnphkGum5gmAaa7u/XDXRD7zlWR9MNDNP0j9G9Y0yz51jDP6bncYzexzM6x7TqNcoT45Qnxyn5y1a9PuW1arpOPDtAYmDID2IH/WC2ux2OJ6Qa82NSSlF13Nl71rarbHvDWssh7x9bvsSwsZihT2mD0A5o5+pZ266yTciwsSWh6rc26A1me7fbbQ4mq61Zz8/GggzF/Z6ziRDDsSADpkVa1Yg7NYKtMkazglUqeK0N8l5IW5sjnI2l0p1QdmZIO0AskyWaSsmbPEIIIYQQYgalFNXqh4z7AWylegSAZEUxMlpluGgS3vh5uPErsOWBZd0D9vShSZ745iGshsOnf/EGdnxqpfx+t8RJ6NoHlXyT7/5Pr2A3HUJRkw03D7Jp9xDrdmYxF3mZuavcbljr3zpB7fSAttkNckvNEgpFQA9w0+BN7BnZw74V+7hl6BaiAflYAkCzVqU8MU5pcpzyxATlyfHu9uQElcmJGUN8zFBoaig7SzAbCH38kFvMzu4MG5taXTtXz9re+5qzfES9TYcpFbNzVdP2tkHImN56eAG+uSPmZzkuE5X2MLBpFbT+evvWmiXojwaN7lCwRJihmOlXztZJODVCVhWzUcKpFKn6vWYr+UlqpSJM+/df03Si6bRfKTu1z2w84w8Iyw4QSSYlnBVCCCGEWMZqtROMjT3K2NjfUq4cArwAdnisxnAxQGTTF+DGn4VN94K5/FrqVYtNnvjmIc4eybN17zD3fm07wYi0BVuqJHTtE7vlcOZwjmMHxzn59gTNmo0ZMlh/4wCbbx1i/U0DBMPL5y9euVXm4NhBDlw8wP6L+zmcO4yjHEzN5MbBG9k7spd9K/Zx6/CtEsLOQbkutVJxWjA7RnliohPMVgv5GWFKOJHsaVswOKWVQSI7QDSdIRBcvu9GXm91x/V61Fqzt0FoV9n2tkFoV+DOV18b0bVpbQ9mtkHoHTbWPkaGjS18SikKNWtGtWxv/9mxstfioNyc2dLE0DUG40GGE/5QsJjJkNkiozWJO1UiVgWzWYZaiXohT8XvPVsvFWc8lqbrxNKZae0MplbOxjNZIomkDEUUQgghhFjiarWTfgD7k54A1mV4rM5wKURk8yNeBezGe8BYPsNiXVfxxqOneO1Hx0kMRvjMb97I8Ppkvy9LXAMSui4AjuNy/v0Cxw6OcfzNceplC93UWLcjy6Zbh9h48xDh+PL5BgRQtaocHDvI/ov7OTB6gEMTh7CVjaEZ7BzYyd6RvexdsZfbhm8jHpReKJfLsS0qucluEOu3LihPTnTaGDSrM/viBiNRPzhJE0tlvFDFn7IeS6WJpjMSpPSZqxTldkVtT1g7oyVCT2Vt0fZaItTmaYfQHjaW6rRD6AllZdjYolNvOTOqZXt7z7YraierzenvzwCQigS8ytlkiKGowXDAJkudhFsjYlcJ+EPBWuUCtXY4Wy7NeBzdMDrfN6b3mW0Hs7FMlkg8Id9ThBBCCCGWgHr9NGNjf8fo6N9SrrwLQMIPYEcqESKbvugFsBs+DcbyKEA7f7TA43/yHrVSizt/dgs3379Gfn9aYiR0XWBcV3HxeJHjb4xz7M0xKrkmmq6x+oY0m3YPsenWIWKp5Vd1WLNqvDn+JgcuHuDA6AHemXgH27XRNZ3t2e3sG9nnhbAjt5EMyjtEV6JVr3VC2KrfC7JazFPN572+kEVvOb3HLHhVbtGUH8xm/HA2nSGayhDPZIimu/uC4eXdTH0habnurK0O2v1qu8GtX1nbc998w8YCmtYNak2zO3hsRi/bqWGtDBvrP9txyVXbg8Eac7Y4GCs3adkzQ/uQqTOc9NoaDEcMhoMtBrQGSbdGxK4RaJbR62WsSjecbVTKMx5HN0ximcysfWa9kNYLaKV/tRBCCCHE4lGvn2Fs7O8YG/0Jpd4AdrzOcCVGdPPPeAHs+k/BEm9d1ahYPPntw5x8e4INNw/ywNd3LLuiu6VMQtcFTCnF+Okyxw6Oc/zgOIXRGmiwYmOKTbcOsfnWIZKDyzO4qtt13h5/u1MJ+874O7TcFhoa27LbOpWwe4b3kA6n+325S5LVaHiBbDuULcwMZqv5HNViAeXODGUC4YhXOZvO+CGtVzkbbe9L+9vJlExXX6CUUtQcl7zdraa9FsPGpgwY6w1r/Z61Mmysf5RSlBp2t4WBH856VbONnhYHTYp1a8b5ugYDcb/vbNRgJNBiUGuQVHViTpVgq4JWK+FUi9T97ymNamXG4xim6X0P8Stne/vMdoaDZbKEY3H5+hBCCCGEWEDq9bOMjT/qBbDltwGIV11GxuoMV+NEN38Zdv0srP0kLNFPQCmlePups7z0X48STQZ56DduZNWWdL8vS1wFErouEkop8hdqnRYEE2e8XzoH18bZfOsQm3YPk10V6/NV9k/TafL2+NscGD3AgYsHeGv8LZpOE4Ctma2dStg9I3vIhrN9vtrlRbku9Uq5G8IWusFsJZ+n1hPcztbaAE0jmkx1KmS9YDZDPD21cjaWzhKMRCRQWSQ+6rCx3irbjzNsLOX3rJ2tDULa9FokyLCxa6thea0N2m0Mxmf0nvUqaCcqLZxZ/h8nwiZDiRAjUZ2VAYtBvUlK1fxwtorRKONWizSK3veaZm3m9xMjEJi7nYFfSRvLZAlFY/K9RAghhBDiOms0zvstCH7cE8A6DI81GKmniG7+ilcBu2bfkgxgx06VeOyP36M82eD2RzZy22fXo8snABc1CV0XqeJ4neMHxzn+5hgXj3v98jIrop0WBEPrlvdHLVtOi3cn3uXAqDeY663xt6jb3sfhN6c2s3eFVwm7d2Qvg5HBPl+taLNaTWqFwrSWBjlvX7Ed2nr3u87MgUBmMEQs7feYTWf9UHZq5azX7iCNYS6PPkFL0aWGjXXC28529775/lUL61qnDUJmjmFj7V627SrblB/iyrCxq8dxFblqa0bv2RlDwkpN6pYz4/ygofeEsy0G9QZpGsTdKuFWFb1RQlVLtEre95fZWqWYwZAfzma8gLanWra7HJA3eoQQQgghrhEvgH2UsdEfUyy/BfgB7HiD4XqG2JafhRt/FlbfBkvo57FW3eaZ7x7hwwNjrNme4cFv7FyWLSaXCgldl4BKvsmJt8Y5dnCc8x8WUK4ikQ2z6VYvgF25KYW2zN8dsRyL9ybf61TCHhw7SM2uAbAhuYF9K/axd2QvN2RuwNANDM1A0zR0TffW8dZnu2loGLqBjvex5va54tpRStGoVjqVs+1q2UrPuhfcFmjMMsQHIJJIdqpmY7PevJA2FJOKt6Vi+rCxmT1rZw4bax8737AxgKSpT6msnRrQelW2qVnui0o7hI9NKUW15XTaGHSrZhvdkLbkbedrM1sbaBpko0FWRDVWBi2G9CYZrU7cqRK2qpiNMqpWwioVqBVyWM3GjMcwQ6FuO4NMlvgcIW0wEr0efyRCCCGEEEtSo3HBa0Fw8ccUy28CEPMD2JHGgBfA7vpZWLl7SQSwSikOv3iB5//iAwJhgwe/sZN1Owf6fVniY5DQdYmpV1qceGuC42+Oc+ZwDtdWRJNBNu4eYvPuIVZtS2PIR2ixXZvDk4c7lbAHxw5SsWb2CbwSnWCWaSGtH8z23t8b1uqazobkBr6w6Qvct/Y+ogH5Zf1K2JZFrVjwwtiegWDdW7t6NodjzQxmDNPsCWazPZWzM6tnzWCwD69QXA/tYWP5WQLadpWtDBtbuFq2y0Rl2iCw0tRWB+377FlaG8SCBitjOqsCLYaMBlmtQcKtE7YqBBplqJewygXqhRx2qzXj/EA40qmc7Qa0U4PZeGaAQDh8Pf44hBBCCCEWrUbzIuNjjzJ68Ud+BazqBLDDrSHiW37ea0Gw4qZFH8BOnq/w0z9+j9z5Krd9Zj23/8xGyXMWGQldl7BW3ebkuxMcPzjOqXcnsVsuoajJxpsH2XTrEGt3ZjEDMqAIwHEdjuSPcKZ0Ble5uLjeUrkopXCUM2VdoTr3z7jNcq5S3vGXPFe52MrmzbE3uVC9QMSM8OC6B3lk0yN8YuUnMJb45MZ+UkrRqteo5HM91bIFP5TNdypqK4U89XIJZvn+GI7F56yc7e1DG4kn0JZgDyIxU++wsU7l7GUMGyvaNiX78oeNTQ1oewaPtatqZdjYZXFdRaFuddsYlKYFteUmE35FbaU5S4sTDVbGNFYHWwwbzU44G7WrBJplqJWwK17fWceaGc4GI9FZ2xh4YW13PRCScFYIIYQQotkcZWz8McYu/JBC+SAA0ZrDyHiTYWsF8Rt+EXb9PAxu6fOVfnxWy+GFv/yQQy+cZ8WmJA/9xo0kB5bnQPXFSELXZcJuOZw+lOP4wXFOvD1Bq24TCBms3ZElFDPRdA1d09B0DU3DW+qa15ta09B792samt5d13V/e/r5mnd++7E65/nnoOGfq2GYGuFYkHA8QDgeWPbNol3l8sboG/z4+I/56cmfUrbKDEYG+dzGz/HIpkfYkd0hoUkfObZNvVScVjE7tXLWC2hz2M3mjPN1wyCaSs9ZOdsJbjMZAkHp37Nc9WvYWGpakNtbZRuRd9Y7ai17SrXs2CyDwcbLDSarrZnv0SjFSNhlVdBihdkiqzVIqhpRu0qwVUGrlXD8oWCuPTPcDcVi3uCvdjib7RkGlvEHgqWzUn0vhBBCiGWj2RzrCWDfACBWtRkZazKibSK67Zdg189BanWfr/Tj+XD/KE9/9wi6rnH/13ewafdQvy9JXAYJXZchx3Y5936eY2+Oc/ZwDttyUQqUq7xbz7qrFLheL8R5J9BcTRqEowEiCS+AjcSDhBMBIu31uHdfJB7sHLOUK3abTpPnzz7Pj4//mGfPPovt2mxKbeKRTY/w+U2fZ3V8cf6jsVy06rWeQHb2ytlaIU+tWESpmZWNwUh01qrZWE/lbCydIZJMoksltPBd7rCxKS0R/Arc+eprw7o2ewXtlNYI3Z61aT+sTZkG5jJ9M81yXCYrMweDtVsc9A4Ka03vHawUacNmdchihdlkUG+QVHViTo1gs4xeL+NUi7RKhVmHC4bjCe97RTuUbQez2W5Lg2g6gxkIXKc/DSGEEEKIa6/ZHGds/O8YPf9fKVbeASBRtr0K2OBNRHb8Euz8MsQWV5/UwliNn/7xe4yfLnPTvWu48+c2L+ksZCmQ0FVcNqWmhrKu6wWxrqv8+7rHTLnP7bnPP27KOa7CsV0aFYt6pUW9YtEo++tli0bVol5u0ahYs32iG4BAyPAD2KAfzgYIJ7x1L6T19/vHBMOLc9hVsVnkp6d+yo+P/Zg3xrx3724bvo1HNj/Cw+sfJhVK9fkKxcflug71Umneytn29mzT1jVd96pnUxli6bTXziCTJZpqh7VpP3DJEAzLx1HE7D7OsLGi7bVEuJxhYymzd6jYfD1ru+FtbJm0Q1BKUaxbUwaCef1mpw4IGys3KTfs6ScTo8mqQIuVwRaDepOU8oaChVpV9HoJt1aiVSqgXGfGc4cTyW7VrB/KxqZvpzMYpoSzQgghhFhcGo3zjI39HaPnvkep/j4AqaLF8KTFSPR2Qjf+Mmz/AoQSfb7Sy+PYLi9//xhvPXmGwbVxPvObu0iPyByYhUpCV7FoKFfRrNkzg9medS+49ULaesXCsWYPAXRTIxLrBrPtkDYYMrz+qz0BcjsYdjvb0wPm3mOnbfcEy25PJbEXSvvHut1jXf+xzYDuV/kG/JYL3QA5HPP2F/U8z008xY/P/YATpRME9AD3rLmHRzY9wqfXfJqgIR8rXaqsRoNqsdATyvpVs/k8teLU0Fa5M/8OBELhTvuCWGpqO4NYOuMHt95wMN2Qd07F5Zlv2NjU4PajDRszNebpWTt7G4T2/cEl2ju53nK86thKt1p2SnsDv+3BZKXJlE4TShF2G4wYDVYGLYb0BmkaxJ0aYauC0Sijat5QsNm+d0SSKeLpTKedQTuUjfVWzqbSGKZ5/f4whBBCCCEuU71+mtHRHzN67ntUmidBQbpoMTLpMJy+h+CuX4YtD0Fg4ffPP/H2BE9+6xCurbjnq9vY9okV/b4kMQsJXcWSpZTCbrmdALZebvlVsxYNv4q2Xpm6bjUdNJ1uf9vpPW571tv36dN61k7fbve6nd7fVp/22L3Pa7cc79qqlhckly2cOYbqaBqYEY1moMYk45SNPE6oxerBEXasuoHNKzZ4rRjarRniAQKLtNJXfDTKdalXyl4Am+9pa1D0A9p2OFvM06xWZz6AphFNpoileipnO6Fst3I2ls4QjETla0p8LL3Dxuatpu1pg+BV4l562FjU0Hv61M4cKjY9uG23RUiYBvoS+Hq2HZdctTWjpcGUPrT+erPnz1JTLmG3QUbVWekPBcvQIO7WCLcqmP5QMKtSnDlUsP19Y1qlrNfeYMAPbbPEUhl5U0cIIYQQfVOtHvMD2L+mZp1HU5DJtxgp6AwNPkxg1y/BxnvAWLhvJpdzDR7/0/e4cLTI9jtWcPcvbSMQkp+vFhIJXYVYBDoBsl/N267obfjBbDc8bpErlKiWG2hNE13N/g1XN7SplbSxnkranv2GuTSrxMRMttWiUSl6t3KBeqVAo+xt18uF7n2VAq4z8+PJRiBIOJ4iHE8RiacJJ1KE42kiCX9fIk04niYUS0oVnLhqHKUouy5l5VJ0XUpTbg4lNX2ff1MuzXl+xtGBhKaT1Oe4acac94W1xfd9UylFreVQqFnk6y2KNYt81aJQb1GotcjXLAo1i0KtRaXV8/dfuYTcOlGnRsZokNEbJKkTcWuEnApGqwKNMk6jPGs4G44liSQz3veMZJpIIkMkkfZvGSLJDKFYEn2JViwLIYQQov+UUjSto5Rrj1Kq/ASLCXAhNhkkmcsSjz2EsfFhGN7uVTwtMK6rOPLyBT54dZR4NsS+L2wkNbQw28kZps6KTcurJaKErn3QarX4vd/7PUKhEKFQiHA4POvyUvtMCS7EPKqtKk8ee5on3n+aQ+c+IGRF2RTayi3x29gY2oreNKdW0/rr121gmliUlFKgGihVRbk1cKv+urfErXXXVWP2B9EiaFoUTY+BHkPTYmh6DE2PQntdi4EWkupZcc1YBjQCGvWgTiOoUQ9qneXMfT3bAQ01z1Aw01aELUWk5RJuKSIt1bN0p2xPOcZS6Ev0+69SLqgayq10vj8otwLTt1VtlrM10KJoetz/3hDvfu/Q491tLYK2CANvIYQQQiwkinDmFIl1+0muOUAglsO1A1Qv3kTp9D4qF25COaF+X+SiFU0G+cb/fle/L+O6ktC1D1qtFk899RSNRoNms0mz2eyst5e2PXMK8XSmaV4ypL1UgBsIBCTUWAYm6hM8euJRfnz8x7w3+R66pvPJlZ/kkU2P8MC6B4gGvMbbrqto+X1zGxULx1miCYC4Lhzbolkt9VTKetWz9Yq/Xfb21StFXNuacb5uBnqqZ73K2U4Frb8/nEgTjqdkwI+4blylqClF0XUouy5F5XpLt2fZqbz1jmlX3NYu8XNVXNP8ilmDpF9pm9B1UrpOQvOXuk5KN7yl5m1HNW3B/Vvuuopy06LQqZj1q2XrXsVsodYiX/fub7c20JRDyKkTdqvEVY203iSp1YipOiG7imlV0JolVHNmOxRN1/2q+gzh3mrZRNrf9tZD0QSaVM4KIYQQ4hKUcqm33qZc/VvKtZ/iaBU0WyM+ESJRWkMs+wj6xvshuarfl9rRqFq88dgpxk+VWbU1ze4H1xIIL5xiPcPQWLkl3e/LuK4kdF2gbNueM5Cdbd9s97VarUs+j67rBAKBy76ZpvmRjm+fY0jftgXjePE4Pzn+E35y/Cecq5wjYka4b+19PLLpEe5YdQemvnC+KYvlQSlFs1btDgQr9PSbnXarl4qzPkY4Fvf7zmaI+oPAvOFg2U4P2mg6QySRXHDhlFg+2sPGCtOHjU0bOFawHYr+dnswmTXPz2SLfdhYpWkzVmr09J7tDgYb7xkMlqt6P9foyiHq1InZVeJulSG9yYDeJKVqxJwaoVYFvV5GNSoznks3jE6P6ul9ZuOZAX9flkhcwlkhhBBCeJRyyBdeY/Tc9xgffxRL1TFsl+GJFsPuWrKbvoq+6xcgubLfl4pyFQcfP80rPzhOPBPiM7+5i5GNyX5f1rIloesS5rruZYW0lmVd8mbbNpZlXVaQOxvDMC4Z3Jqm2bmvvf5xtw3DkB5wl6CU4s3xN/nxsR/z6MlHKbVKZMNZPrfxczyy6RFuHLhRwimx4Di2Ta1UoFYoUMnnqBUL3pCwYjuYLVAt5Kjm89it5ozzdcMkmk7PHAbWDmoz3jKazhAIykeHxMLQHjZWsLvDxdrBbN52KPrbvfe1Q9ylNGysZbtMVKYGs72DwcbbQW2lieUodOUQs2tEnSpxp0aGOoNGk7SqE3OqhKwqRr0EzZltDXTDJJZph7MD/vpAd0CYvwzHE/JvpRBCCLGMuK5FPv8So2f/kvHJp7BpEbBchiZajOg3kNnyK2g3fgWi2b5e58XjRR7743epFVp88iub2f3gWvmZpQ8kdBUfiVIKx3EuK6idLbS91DHt42zbxpllWM9HYRjGRw5tDcPAdV2UUrPePu59H/VcwzAIh8Mzbu32EHPt+7h9fltOixfOvcCPj/+YZ888S8ttsSG5gc3pzQT0gHczArOvz7IvaATnvM/UTQJGgKAenPWxDF2qosWVU0phNepeEJvP94SyU7drhTy1YtHrOTlNMBL1Q9l0TyjbDmnTnWq5SCIpFXFiwXKUotgJaG2/gnZmQFvsqbJtB7YNd/5hY6lOQNtbWWt2gtlUwCBjmqT8sLYd4kaMa/v3xXUVhbrlh7NTg9mxsldRO+EHt5WmjeHaRB2vSjbmVEk6NQb1BmmtQdypEbYqmI0ytOoznsswTWKdUDY7azAbzwwQisXkFx0hhBBiiXHdJpOTzzN65v9movA8DjbBlsvwhMVI8GZS2/4+2o5HIBjry/U1qhZPf+cIx98cZ8PNgzzw93cQjklbtutJQlexYLmu2wl424Fsbyh7udsf5RzXddH83ni9N13XZ91/re63bZtGozGlMrnRmGMoUQ/TNC87oJ1tfzAYpGyVeeLUEzx64lEmGhNYjoXl+ree9ZbTQl2DqVu6pk8Jb03dnDPsnSvc7ZwzT7jb3g7qQQJGYM7nmes5dBnYsmS4rkO9VOoJZXPesuhXzuZz1PyQtlWfGbpouk405QezmW5rg2jKb3eQ7u4LhhfmJFEhZlN3/HYIfiA7pSWCNXtlbfu++eprw7o2e2VtT0Dbe19vewTjKgeXtZbdrZz1q2XH/O3xzrLBZLWF7tidYDZmV4k5VbJak6xWJ+HWCFtVzEYZzZr577URCHTbGWSyncrZ3nA2lskSiko4K4QQQixGjlNnYuJpRk9/l8nSflzNIdR0GJl0WZH4FPGdv4626T4wrm87P6UUbz99lpf++iixTIjP/tYuhtdLu4HrRUJXIRYJ13VptVozgtjZwtm59l2qeljTtClB7OX04lX41br41br0VPHSsz3XcbPcj+KSxykUrnLnvb/zeNeA1v5P6y519Cnb8y11Tb/kcVfj8cTVpRwb1WzithqoZhPVauD6S9Vq4ja9pWo1YbZ/Qw0DPRhGC4XQgmF0f6kFQ2ihMLq/1AJBqZ4Vi5YLtHSDum5QN0zqutmz3rPPMPxld3/rEp92CDs2Ydch6tiEXZuI4xBxbSKuQ8SxvfX2Pqe7P6jcK/6OaDkK23GxHBfLVViOi+14S8tf2q6LchUGLrpyMJSLrlwMXEzczn7Ndf0/qak0TcMwA+iGiWEa6KaJYZje0jQ72/L9QQghhFi4NK1JLHaUWPQdovFTaJqiVY1RmVhFpbwD29wA/jDr68WthLCPj4BtYqyZQB8qcb3f541Go3zta1+7vk/aZ/OFrjJNR4gFRNf1TiD6cVmWddmBbaPRwHWvTWB5vc0IfFU3sO0NbqfsmxYQz9jXsz7lMabtc5Qz4zHa909/rGtheiDbXtc1fUawO2Nfz/qUx5ht37THne3x5jtvUYnFL3mIUqoTwjrNBm6zjtto4DZ7brUyVn4cZVmzPoYWDGGEI+ihcM8tgh6euq2ZplTGiQUnCqQBcEG1wMG7XYKNRkPXqekmNT+47Sy1aduGyXgg1Nl25vkEgq4UUT+cjbrO1KVyZt/vL03/Ux2X+6+v7SpatuvdHHfKes12adoOluPiOC6GcqbcTOVg2i4B20JvNNBde9Y3cDRdxwwEMAIBDNNbettBDNPECAQxAwEJZ4UQQoi+CGPbeyiW9lCq1IiE3yMSOkh2/Ydk+ZBWKUF9cjX15s24kY1gXodPw4XBTU3Q+DCDfWYIrR4jvLmAZl6/YstQSGZm9JLQVYglpj20LB6/dGgkri+lFLay52zn0N5uuS1s156yPf3Y3vt720FMf6zp2+3zZhw77fir96L9G2Bq5iX7BrdbPZiGOeO+6e0i5uopPO9909tJTLvP1K9NuGm3Wt3WBkW/56zfb9bbznltDi6cxXXsGeebwRCxtN9jNp312xmk/ZYG2Z52B2mMj9n3WYiF7uMMG5v4CMPG5upT29v6oN2ztt3fNnmJYWMNy5nSwqDT0qDU5EK54fWhLTYolitErarfd7bd2qBGmjopVSBqVwm2KtjOzO/PgXCEeDZLPO23Mcj6LQ3S/mCwrNfaIBD6+G/oCiGEEOLyNBrnGT37V1w8+5dUkkdIqcNk8xYrnDUMbfxVzF2/dM0HcClX8cZPT/HqD45jGIN89rd2MbBa8oF+kPYCS4hSCiwLZVko2/aWloVyHDTDQAsE0IJBbxkIgGFI5dR1oJTCLRaxzp/HunAB65y31AIBghs2ENy4gdDGjRjpdL8vVQjg8sPhywl7bdeeev/0x5kWLNuOPeW+luMF0C23NeNc250ZTl4NlztMbr5w91K9iOe8XzPRGjZupYFdrmGXa1jlCs1SmUapTKNQpF4qUisUaFTKs15/JJH0AtiePrNTb14YI0N/xHLyUYeN5f1jLzVsTKN32NjsPWu9EHd6f1uTiK51/g46rmKy2tNjtjMYrDeobZAvljAblSnBbMypknBrpFSdmFMj1Kp41bPTBCJR4pksiWxP39l0lni23XPWGxYWCEqFihBCCHE1VKofMnrqz7l48Yc0KKG7isGczYi5g4EbfgNj2xchcO0qYM+9n+exP3kPq25zz1e3sf2OldfsuZYz6enaB26rReknf4uyWijb7oahloWyegLR6QGpZaFsb4lloVqz3T9t29/HHB9fnZOmdQLYGbdgAGa9L9i5f8a++W7BAFoohJnJYGSzGJkMRiqFdhn9RBc6ZdvYo6NeoNoTqnoh63ms8xdQtdqUc7RQCOU4YHd/KTKyWYIbN3ZC2ODGjQQ3bCS4do0XkgshplBKzV25Oy2gne3+TrXwPBXFM6qPP0L43D7eVlc/HNbQCKkAcSdEvBUk1gwQbRlEmybhhk6oqRGsQ7ChMOsu+iwf+VaGBtEgWjyEFg9hxCMY8QhmMkYwESeYjBNKJginUoSC4cuqGp4+rM7UpC2CWPyu1bCxUHvYmF9JO6XKtjNgzAtrM/59KcNAdxX5SouxUpOxcoPxKQPBmoyV6hSKJexy0Qtl7YofznoBbUrVibfDWTXzm0MgEiOezZLIDhBPZ4j5lbNTQtp0FjMYvHZ/6EIIIcQSopSiVDzIxRN/xmjuCSytiWm7DOcUI/FPktn522gb7oZr0DKoWmzy+J+8x7kPCuz41Eru/sUbMIOLP4dZSCR07QOnUuWDvbP+mQN0q02nh5OmOfd2MAAz7p8ecJozAk8Mc2qQO/3WmmXflPtb89/fc+sNES9J1zFSKYxsthvGZjOY2SxGpnc9g5HJYmbSaH34Ad+tVrtVque9ELV32x4dhWl9UY1MhsCqVQRWrSSwahXmSm8ZWLmKwOpVGJkMOA7W2bM0T5ygdeIkrRPHO+vO5GT3wUyT4Jo1fiA7NZQ1slkJNIRY4Fzlzqz4/Zjh7mwVv7NVAE8Jke0WbtNCq7bQajZGzcGsOZgNl2AdQg2NUAPCTYNIa/YfwJoBh3rIoR5yqQcdauH2tkM96FD3t5sBl972vRrapVs+XKKiuDfYNXXzI7WLCBheO4rZzuttV2FcYrCTEB+HqxRlv5p2ekDrBbd+ZW1PWNs+purM3w4hYeizBLRT2yBENQ3NdnEaDq26Ta1qUaw0meitnM2XaBZzhKyqVz3b094g6daJu1XCVhVdzbyeQDROLJMhlR0gnh0g1hPKxv3K2Wg6gylvHAshhBAdrmuTz73I6LE/ZqzyKo7mEGw6jBSDrMg+SOKmf4i28qar+5yOy2s/OsHrj55iYE2cz/6DXaRHru+Qr6VMQtc+aFoNfvjCH+MaOraJtzTANTQcHZyeQTydGy6u6y/VzJtC4bhOZ3BPe2BPe4hP7+P07tPQGIgMMBwdZiQ6wkh0xFuPjTAQHriqv2wq1/UqcVuWV+XbCXRbqEYDJ5/HzuVxcjnsfA5nlnWnWJx9IjigJxJeGJvJdkNaf93MZroBbdYLcfXI/KX6ynWxJyawZwtU/X1usTj1JNMkMDLSCVXNVasIrFxJYNVqL2RdufKSz3spTqlE68SJnkD2hHc7dQrVanX/PJJJL4TdsHFKKBtcvx5dGlgLIT4Cx3VoWg3K+UlK+QnKhUkq+Zzfe7ZAvVigUSrRLJZplcq41ixvsukaeiyMFg9BLISKBXCjJm7UxI7oWBEdKwLNEFiGc1lVw9NDaGeWyrwrpWv6nMGvqZtztoPoDX47Vb7z9CqeN2C+jPBZn2eIlFhaLFdNqZidrQ1C3uoNc7v3WfP8bG9qkDJ72xx41bRhNExHodsKp+lgNWwaNYtq1aJcaFCZzNPI59Eb5SnBbMypEXdqJNwaYXvucDaayZIaGCCRGehpZ9BtaRBLZzBMCWeFEEIsL47TYGL07xg9/k0mmodQmiJasxmpplix6itEb/4tSK2+as936t1JHv/me7iO4v5f3cGWPcNX7bGXMwld+6DSqnDHf7njksf1Tv82NKMz5dvQjM7U7xk3ZtnX8xjtx2w/hlKKifoEY/WxGT0QDc1gIDLAiugKhqPDndtIrBvODkeHiVyPSXs+5Tg4xaIXxub8MDY/fb0nrM0X5qyw1SKRqVW0mSzoerdK9cKFGVPF9Xjcr0pdSWD1zCpVc3Cwb20RlONgXbjQCWF7Q1l7dLR7oKYRWL16ZruCjRsxh4elOlYIcUWUUrTq9VmGgeW9gWA927XS7G+kBSPRGf1m231o4z3rkWQSvefNQcd1poSzU9pETA9w5+ghfKlhcpdTmdzpNzzLNbScFoqr//OVoRlztnOYt+L3Iw6bmz60bnrbiNkeu3fAnYTD/aOUoua63Z610ypo260RCrP0ty3ZzrxftRFdJ2XqxHSdiNIIKNAtFywXu+nQrFm0ShWcQglKBeKNCslagUSjRMIPaRNu3QtnZ3mmQCxBNJ0lOTBAasDvOeuHsp3KWRkWKIQQYomyrCLjZ7/HxdN/Tt4+BRokyjYr7FWMrP8VQrt+BcKpK36ecq7BY3/0LqMnStx83xru/LktGKb87HYlJHTtA1e5lJqlTnA6I0SlG5Rez2vKN/KM1kYZq40xVhvjYvViZ729v2JVZpybDCZnhLG9y5HoCKlQqi9hnlIKt1z2Q9ppAe2Mito8uK5fmTrto//+zUgkrviaXOVSsSqUW2UqrQqlVolyq9y9WWUsx8LQjc7XgqEbna+V3jC9vd27f7Z1o2kRODuOeXaUwJkx9DMXMc5cRDt7Ea3R7F5cNAxrV6OvX4Oxfi2RzBCRUNxrZWEa3oA1w183ze56737D8I43DPD3aUb7+FnuD/Tsl8BXiGXFdRzq5RKVfM4LaGe51Yp5Kvk8VqM+43xN14mm0sRSGWLpNNG0F8BEU+2wNu1/rDlDMHz93iC8lHY4PFdLiOk9hS+3fcSMfT0h8vQBeO3guPNcswTH1zMcvlTF8OVsB/U5qob95+kNf+drV2HqpoTD0zhKUeoEs9OHitlThov1hrgFy6Z+iWFjETSCCnAVjuPiOC6u46BcB0256MpFp3ep0HCZ9ScGXUfXDXTDwDBNdMOYedMNkJ83hBBCLFIJd4IbW0+zy36GVZxEKY2T7mbe0e7kcPAemqGRK/p3TncUNx8occN7VSaHArx8X4Za/Oq8qZkNGHz/1q1X5bEWCwldxUdStapTgtnR6mhnu72crE/O+EUtZIQYigwxEpsZyg5HhxmIDEzprWdqZucXn4UWxNmuTaVVoWyVp4alrTKlVqkTqLa32+Fqe1/FqlzyF1lDM67Jx2Sn05QiW4ZVk4pVOW+5MgercorBIlz3XzmNqQHtnOumH9gaBph+4Dtj/TKONQNT988WIHfWewLkjxI2t9dNc9YQurN+DRqjC7GUtBp1aoWCH8b2VM72bHuVtQWUO8vHmENhL4jNZIilutWy7Y8vx1IZYpks0WQKfQkMcrwaZgt/5wt3LxkU91QLX86Qu8t5npbbuvQL+RhMzZxZyXsZfYIvt0J4rl7EM8LnOVpWLNSfkWbT8IeN9VbOTq+yLVg2rem/dyiwHJem7d8sx193aFguVquJbVm4VgscG1PZGMrBdG1M5WD4N23Gz1wammliBIKYwSDBkLc0gyHMQAAzGPTuCwQknBVCCLGgJawzbKj+LRuaT5PQJnCUznlrEyeNOzmffBgnuoLZ36W8tPTRKuufGkdpGicfGqK04cr7vKZMg3+1fd0VP85iIqGruOos12KiNjEjjB2tjTJa7Qa2l/uLkqmZmHr31v5FY/r6bPcF9EDn/HaYO9/juMqdUnE6WzVqza7Ne70aGvFAnEQwMfct4C2TwSTxYPfYZDBJLBDD1L13klzldnr0Oq7T2W73651yv5rnfrd7f/s21/md+xt1SqUJcpUxctVx8tUJctVJ8tUJLKuB4YLuguGCoSCmRcgGU2TNFJlAkoyZJB1IkDTipIw4STNGQo+iuwplO+DYKNtBOb3rNjhOd912vD7AruOtO9POs22U03PstPXeY5Vtdfd3zuuuTx94dt1p2qXD5va6ac55zNwh9LQAuTeQNufaP18IPVdFc2Bm4DxXpXN7qV/fyn6xtCnX7VbPFgszK2d71pu16swH0DSiyRSxVLdKNtoJZae2PAhGovK122dKqRlVvL29fmerEJ7e9uFyqn4/Vvg8bQjetTA9FJ6v4tc0zFmD3ysJkS8njL4e4XC95TBWbnhDwPxBYOOVJmOFGrnJPOX8JM1iHqda9PrN2rXOcLCoUyXq1Gf+TqppGLEk4VSGRGaA9NAAmYFBfxjYQKf37PQ2J0IIIcT1ppSiXDzIxQ/+T0ZLL9DSWxi2y3ApyEjmfjI3/RP04R0f+XELYzUe/cN3mTxb4bbPrucTX9yIbkix0EchoavoC6UUhWahE8bmGrkpH6u0ld355cd27c6t95ei+e5vP4blWDMeq/cYy7VmXJuu6TOC0UQwMSMcbR8TD8a728EEsUBsyX8ssV3xPF4b74To4/We9dr4rH2CAbLhLEORIYaiQ4xERxiKDnlV0P76cHSYbDh73f8Mlet6ga8f+uL4wazdDoLtS9w/W2g8T5h8qbB5epjcDo0vK4S+dCCtbLsbODvXvqr6kuYKkP1q5CsOluc9duZ5s94fMD9GCD1HW43e+yW06xur1ZxWPVvoBLOVQrvlgbfPdWZ+PzODoU5bg3albCyd9kPZbLcfrfSaXPaUUrP2950t/L1UuDujr/B8/YndFrZjz/lYU3oQX6dw+FKtJC43HO6t+J2vXUTvfZoyqDahVHcp1BT5ikOu4pIrtchPFCjnc9QLeexKkZBV6QwEaw8Hi7qNmS9O0zFiSUJ+W5PM4CADw0Mksu3es344m0jKp1qEEEJcc0o55Mee5uLRP2S8fhBbdwm2XEZqKVas/DkSN/8jtNjAZT+e3XJ4/i8+4NCLF1i1Nc3Dv3kjsZQM5r5cErqKZa1dEdoOYTVNI2pK5dLV4CqXQrPQCWbH6+OdoHa85q/Xx2dtR2FoBoORQYajwwxGBjuTuWfrYTvvfr8Xrs5H64s7fX/vMDtDM9B1fdZ+u9OPm3HeLI8/1zVcz69BpVQnUJ41uP24IbRtzx0szxtCTwukZwuNHRss2wvL5wub28HyrMc4YM184+W603UvgA3MDJg/flsN8+MFy3O11TDNS7bQmHr//CH0YmuroZSiUSlPqZatzFI5Wy3kaVTKsz5GJJGcMhBs5s0LaUOxmPwbJPpmtnD4cgbMzRYiz9UOYq772sHv5bSZsNW1CYenVugG0DHRMEEZKGWgbA2zZhCoQaAGwRqEGhBtqc4t1nIJ2zM/PaM0DScaQotFCSRjhNMJEtkMsUyKSDrtVdJnskQTqW5gbMwMk9s/XwghhBCX4jhNJs/9DReP/ykT9lGUDrGqwwq1gRWbf5Pwtr8HZvCyHuvIKxd49j+/TyBs8vBv3MiabZlrfPVLg4SuQoi+sl2bifpEpzq2UynrV81ONCawHOvSLRRmaZ3gqj63DLgCGtrsQa3uB7rt+/WrFCTP9zyXEVhfbsA85Tx9ltcxLcz+uM81V1g+22vSFB8pbJ6x37ZRjjslTO7eP09Fs+OgLPuyKp0vq62GdYl2G4uxrcas1c1Xqa3G1axo7rnfRVGv16lWK9SqFerVCrVKiWqpRK1cpFYqUvXbHjizhP6GaXoDwdJZP6CdWTnbDm/NQKAP/9OE6D9XubO2g/hIfYJnua9z/rT75mtZ0XIsGnaLltOi5e93LYtQSxFpaEQbJpGmQbRhEG0aU9ZD1sy2BI6mqIccamGHWsimHnaohZyepYsV0VBhc+4WEJfRPmJKpfAVtI+QcFgIIRYHyyoyevSPuHjuryjqE6AU6TKsjOxleOc/xVxz5yV7mU+er/DYH75LYbTG7V/cxJ7PrkfT5Xv9fCR0FUIsWUopL3zFvay+uHP1u50tzJ3eL1ehpjy+i3vJXrqXew1TjnP957rMXr8f+3l7n8ed//z29rWYdH69XEm4O6Xy+SoF1h+lwvqS4fZ8IbgCQ+norvL7NKtOv2bdVWiOi+GArlR3n628KeIOaK6L7ip0R6H5x2uO21nXXQWOi+644Lho7TYe00Po+aqiLzuEnhZI+5XQ8wXP/aQAOxigFQrSDAa8W8CgaZo0TZ2m4d0aGrTm+GE2gEZYN4joBmHDJGwGiJgBIoEgkUCISDBEOBQiHAyjt6uVDd1b6gYYOpphdpaaoYPuB9N6+9jp+3Wv8tmv0Pb6Mk87drZz2sf2LnW9W/Hcu1+CGrFEOK7TaXfVsFuMV2pcLJcZLdcYr1SZLJYpTExQLeZpFYu4lTJarUrYahCzmkTtFjHLIjRLGyBX17DCJlbUxIkauDEDJ27gRjVaUWiEvfC2YdpYaurwut4Q2XKtazK8VUObs89wpyXEHAPmLqeP8OUGw+1Qea5ex4b04xVCLEP1ynEuHvm3XMg/Qd1ooDuKwUqYlQMPk735X6Cn1855bqth88x33+fD/aOsu3GAh76xk3BcCgHmIqGrEEKIq6I3jJ0tqJ53vTe8ni/MvlQIfrlBck9g7dKz/lGuub3uOt1g37/26UH/ZV/jZb7G5VbFfUUVznM8j46GgYbhapjtm9LQXYXp6hgKDFfrDAvUXTA7AwQ1dNf1l35QrbzBgprtesc7XhitKy+Q1h3lB9n+0nWnhdW9+/yQ2nHRHAfXdmjZNk3bpuU4NFyHput6S+XSRNEAmprCmSWw1JTCdBWa8q7HC9FnbuuKqfv8azeUQlPM2N/d9u7TOo8z7THa57q9+7rnzrjidgjbbr0xX0Br+OGx7lcu94TJc56j651j2wHzjOC58/g9IfX0x58eUk8Jq9uBdG9IfYlge9o5s1/3LK9LQuolRSlFuWl7Q8FKTcYrTUYnS0yMjVOcnKSSz9Es5XEqRYxGuTMQLGbXCKmZQ2qVbkIsRSCRIpLKkMwOkB0aZHjFMNmhIWLpLJF0Cj0cnNFjuN3n9yP3FZ6llcRlVSbPMZyufdy1eHNX1/Qpwe9cPYLn60fcPmfeiuBpwe9H6UUc0ANLfl6EEKI/lFKUxl/g4vt/wGjjIJbhEmi5jLSGWbnml0nc+A/QQrFZz3vv+fM8/5cfEE0E+cw/2MWKTak+vIKFT0LXJcTry6hQjldZpByFclywvaXyl/j7veMUmqmjBXW0gIEWmLZu6lIuLoQQC8yVVnF/5Aro3oD6EqH4fNXQlwrFr7Qy/eNWcc9W1d173qKp4lZgOhrRhkGk5X2MOdYMEGkaBFwdw9UxlOaHyTNvXjVze+mtay7dm/Ju14KmgaZpaBromobm79Px1nUNdHq28YLu7rIb/uqA4fZsuz2Br+uF4prjYrguuutVYuuOv257S81x0C0H3XHQHMcLwheq2ULqecPqngpn/VLHTg22Zw2pjVkevyeknr9yelpI3Rs8f8Rge/6QfWmG1E3bYaLSYqzUYLzc5OJkkfGxCQoTk1TzkzSKXjhLvUTUrvoDwWoE1czWJq4RgGgSM54mnMqQyGbJDA0yPDzE8IrhzmCwYCTah1fqcVxn9nYQPX2BZxsmN99guhm9iOcIhltOq1O13BsiT7+Gljsz+L4aDM34SBXAs4bIlxEGT79vejg837ESDguxuLlui8kTf8HFk99kQp3C1SFaV6zUtzGy9R8S2fzFGe0Hxk6VeOyP3qWSa3Lnz23h5vvXLKl/Z68GCV37QFkO5WfP+qGoAtudEoK2A9JOcGrPDEqVf4633g1TrwUtoPs3ww9ke9eNzv16sLuuddZnP0efFu5iaN5nLZUCV6Fc/KW3jWqv093Xc79ylXe+o7zwecr9/jlq6jm9+5Xj34/mXde0IHrKa+t9TYb8YCGEEEtdJ+Seoyr5IwXBs1RCX9Ug+SpWcc94va6L6zoox8X1exnjuLi2A/661/5B+dsK5XoVu7Tf6PWrfTvrrkJz8NdBd/zgV2l+qws/EFZaT5Wxf1Pd7XZobLiaH8teXY6mcHWFoytcTaF0cP19rqZQmkJpoNqJsAZK88t4/TAZzd/U/YCZ3oBZ8wLk9hIvYNYBA82vzPYrqtv7FJh+8Gy4+JXbXmCuKT949quwdRe/Otmvwlb+tv//oL3UXLzQ2VVTb053H67XKkRzXHB7KrNdbxvH8Y5bqHpC2fmriWdpw6EbcwTb7WOnBttzVjbPF4LPWwU9tWVH53XM1uaj57GUrlNuueSaNrm6w1ihxmQ+RyFfpFwqUi+XsGplVL1CwK4ScerE3Bqmsmf8gu0YQYgmMGJeOBvPZkkPDDI0MsTKlSOkBweIZbIEw5E+/Q/ur/b37MvpIXy5Q+ouNyRuB8zzhcjXIxwOGsF5w97ZqnmnHz9jmNwlegjPFTrPVZks4bAQ87OaBcaO/AEXR/+GglkAIF3RWRG/k+Fdv0tg+KbOsY2qxVPfPsyJtybYfOsQ9319B6GI2acrX3gkdO0Dt2lz/n98GXT8H440NENHMzX/By9vG9Pfb2hgtvf3HGPOcW7v/innth9T6z6vrnnBbstBWS7KclAtt7Pu9qx7+9vHuT3neOuufxz2Av5B+2rTtZnVwX4wq/eGzbOF0Z19c4S7IQM9ZHr/z+TdIiGEEMuAUmrOAPly+2Q7jo1ltXAsC9tuYftLb9vCtixc28KxbW/dsXFsG8e2cC1vXTkOjm3jWjauY+P6fYFd28F1bO/N784QPcd/M9zpBNFeAN1dx/HCShw/dL7af27gBcA6XiCs0w2JdYWrgeNvO7qLqylszZ1xnNMTJjv+47WD5fZ25zF1haNNe572c2muFzoDaAqNdpsJpgTBva05Ovf13q96ek1PO9dUOqbSMJVXwW0qbcrSUDpmu2+1AtPVum1D0DrPb6huyG/0PIcx7XoMv+LbcP3X0g6129tOu8VGu9+1t9TagbfjovkFAHpPYN0Js///7d17rCNnecfx3zNj79nNXsJmN2TTXLioKZcWKE24BCKgKoSUInEpRaEXQlMpaisoCIFo+0dFW6HwR6noH6UCBQpSWyEEhKI2NIQSBIiAEtIASYAEaGgSbchlk2yW7Ll45ukf7zv2eDz2sX3Gxz7nfD+rlWfemXnnHfs5Y/uZ1+8sKDeTW6LcTLlZiDWFmAvXN8LFBZd1LzyEaVOetqS0JbXaSnbtUmvXLrV3L2nXnj3atWe32rv3KGm3RySp6xLb44xFXd9zOmwzbCzq+sT22GNRF/vZIp/Z3b2v527dWL+jbjBX7fk7LLk7ds/kmuXF9Cy0bMSN6Ko3m0tbtcnd9Xr9bmQs4iI5vFXiCdvbyeN36L7bPqD7jn9Vj7dXleSuwyf368jpv6VDz36nklMOy911y5fu1g1X/1gHDu3WK6/4FZ1+zv55N30hkHSdA/fQK3O7/mzfc69P1Jam876kbXi0xOLvB0MyWGayRKEXrFl3uXV/YxiTkZXyvnr6lquvbqXF8tI2rr42+VquvDYhXT6ubKAsryaoS8+FJv2FYiLZrpaSpZCItaVWSOh2HytlS6lsKekrs6U0JHSXYlJ3m8YeAACLzt2VZ5mymPjNY8I363SUrZXK4nSW9ZaFdTuldWNZVlq/u25pvrqvtdI+O2v9y9fWlNfcuGnDrOgoUPTOTLrzSpOYEEvitElJIk/D57XyvCeqPFo32expkXDuJZ77EssW5juWK09dmYUkdKbiMe9L6k8z5vaoHuojgqIvqZxWks/Vsrokda+sPkmd1k2X6iiXlW+oGBLQFpPW1utR3R2qpDcESRp7sqd5TELHsmryfKB9HurrJrv7pnuJ7dDjOgwbsrCSGMNJEdcjksZJGofGiH8Pcbp2SJBxhuwYZ6zr2iE7khFJ6gkS20OHJyl6ldeMX71OUrEuOTyq5+9Ar+FJxiKubN/JBnsMV8cqLtc9C6OSwkXit7hZ3CQ9i8tjEY/bQ3hYUrllJId3CnfXY0e/pKN3/KN+tnqr1lqu9prrjOwsHTn3zTrwjD/Uff97QtdedZuWT6zpJZf+kp7x4jN3fHzMLOlqZpdI+geFX0Fd5e7vH7X+Tku6Li8vz7sZmJMwfETeS0R3er2FPQuPWnPZmmRrLq3m0mqufCULPYpXMnn8n6/G6Zj4HYsp9KxdSmOCNgyXkFSTs7sqwyfEn0Z2fx9ZFNeUDaxn5eLB8uq61rdBqb5qmVlfFbX7LpXZGG3srlSuwura07+SVdtYra+8uFpf3T5imQ3sc8S6661XOub+563u+epvu5XLRj2P3XXHeJ13+BswACyqkBjuDCaCO2v9yd2BZG5vWV8yOSaHO32J4+FJ4rzTUadIKJeSxOVtZ5EYtiRR2morbbeUttpKWi2lrTCdFtPtMJ202n3lSaulVrvYpresXJ6kpeRaK1XSTUCFRF3SSkMngCLxnKbxMcx7YsqVD03qrneTx0nG4h5rjO4RY3GX27TS6ejkWkcnV5a1vLKilZXl0Bs9W1Wercnzjtw7Ms9kCuNjhF6z8VEhie6WyBOTm4ehOIpxnVUMURJ6DnuedXsi1yWYy4nf6jActb2wRyWxa5LUkyXJB5en3Z7WsXe22/B9VtrVbUN5GJEFzlF7jHePyVolSfwbSHsJ7O50eUiOwcRzkcTujnHdasVhREJ5kob54tFa7d4wI0OT4uONSa0kib8okDrKlSWhx3/HXB3zMK1ca4mro0xrytVJcq0V0xanLdeqd7RmmVaVac07WrVMq+poVR2t5Z3eDe6GDBsxkFwu9WLu+OYmh8sJ32HJ4al6DE86ZAXJ4cbl2aqO3flxHf2/f9GDyT3KE9Mpy9KR9rP0hHPfpq9de0h3335MT3vBEb30d5+m9lI67ybPzUySrmaWSrpD0isk3SPpRklvcvfbh22zk5KuKysruvLKK+fdDGwhSZIoTVOlaTpyOtydO1H4Z+GO3R7Gggvj4ZUfJcvChzjLwv+kI1knPmauxJN405JYR3m6ZllRUuyzbrviH9BnnQRtMWPVsiEJ4JEJ9uq6I/db2ml33cFEet2FgaEXJKZNmpf2M5CMH0iwD0mYD7S7v6zbhlHrlh/GuIAwcJFhnAsSo9Yb5+JBTXtsWBtrXvuBiyh1+yjPjnExIsyOt97IC0pDysx6P83P3ZXluVy5sjiGrFmiNEnCe0WSqpUk4UvpiIsz/U+XVZ6v7oLKusNjsVo2NI4rZYPPxfA2r/v3XLf/Ymaav+e615kvdZvC81xZlinvDhnR6UsGD0sE9yVz65LK6ySJw/46w3sSr/Xq8BncgC1Jq8nfcmK4VNYuJYpb5URx/7JRSeLuuumIetv9yelkAzcrO7ma6f7jyzp6/4M6evQBPXj/A3r0oQd14uFjWjn+iPITjypZPq6l1RM6pfO40pqfj622ditb2i/t3a/W/lPDuLOHDuoJhw/q8BMP6Ywjp+vQ6QeVtNLh41qXx95eJ2E9bo/oaRLW04zFXZdsz/NMnufyrCN1StNZLuWZvJOF4U/yYlzucDNBj2VWDJOSZ2F4lO6Yznk32T2ql/bwhLHXr1MZ6mNYsjrpq3PcJPvo9hWPi8otXHzxxORpovALgJCo9pik9sp0sU5RHh6lPEni+ORSnlj8HxLhRQI57y5XHE5GcQgZj4nlMKRMJ4m/HOiW5zHZHNbpWN597Cg+Jq5MYX4tCUnpjjKtJXnYrrTvbjtK7epbXm5baf3qmNSppeF/Eh4TS7rT5fLuslJZMRZw3/Ih2w7MJ2H9lrXC9/fqvpL+erca65zQ7ge+rD0rt2rXUuhcuHqypeMPvVTHbny1dGBJe1/1iNLTOtrT2qPXn/f6Obd4c80q6XqhpPe6+yvj/F9IkrsPzTTupKRrp9PRTjlWTCd8QApfJrIsa3y6XLaZw4gUku4X/6SXLI7TlpQSAxbLaj68m0LPh75esV582fXSWsPX7a2h3pfwmvZaqYZxdNfqNsPijdrW265Sf7HLMV6i2paVmzxpHZOERfFcmlUO03vH5OWVq62tKfP6pg8+t+u0tfo6D1k+avsipPqjaow6asoH2r9uuzxuF7YMz29/WW+bEc9t5XWZ+jmr265aNuo5G9i+3BarlPe3wErr9h1p3/ajj229Cz4T/oWPtY1LoWeaXHnpv5uHL8bFfHm55YNlRR1Wma/UOanuhbniYl0x7cXFsnJ5cVGtsm6cNq8vL28zzkW3SdcY53WrfxfZSBvWj6fBCitbFGUD1fQSuX0XALrzlVbWJYv7ZvsTw1auqO+hUl93U6vMD9bZ9x5qNWV1B1A5lqSy34Enprgbmfpz5IPJ/5r2DmtT7YWnapkNtDWsVn0OaraX5J5LHi6GyMMNX91Db8xwysrD0FzuYd083LhPcd5zL60TPh/Kc+W5S14q9zwk04r/cZ3wmIU2ZLnc483w4vpyr5w2vW+6/L5TPcH23qq8NO/h/hEWevKahV9OJWYhIZtY6EGYJErSVEliUhI7D6TxYlASt+0+hotFSRoelSZa7UjLa2t6/OSKVlZWtLy8rNXVFWUrK8rWVqTOqtLOqlr5qpJK+12ujrWVtXdLu05RumeP2nv2as/+fdp3YL8OnHqqTnvCqTrt0KlqtdtDf6E0EFvdG+OpPx7rLvQk5e1NA39DJqmUfEmsvG65HUWM9trYnbRkYN1ieyv/mqpcp8Xt+o5N9Z/FrfhsUlzwG7yBYzFGdznhXCSFB4byUG+97vrqJZWLm1p2E8vqT4oX+5vqhpTlZHsexgZXHMNbeTGGd6Y87yWuw2MxtndHlsW/6yzrJq+V9xLWxbyV5+NYz73Edq6kuGFhkeDOPQ7XEc4P5WR1kUSujkFdl2y2vjIfSHSPTpCrNrG+6EnqaqK2O239ydxyWVZK8OZ9Cd5eMtprErxj11vUVdlXt666MhtMgvfKbIr915fVfCCZ2ME01/mnZLpgb0dH2q5Obnrs6LP06F0v1DV7b9Wxs+/R9W+8fuMv7hYyKum6kduNnSXp7tL8PZJesIH6tpXVE4/rQz+4RT87cHDeTcFWV/ymqh3uZSy1p6zISh9H4weoWD5s2kdsO2y6bpuh24846Q++t2/8DWJ0/RvRbNuasHifjWb7HC3e8a5n/edj6x3TZHwB/26mUU2DW9/ZdFhZPPq+5LdXtpmkvt509fw9eD4fPF/3n8tLZVZNw1S3G9wemL+aq0Rzk1YesTgy6bFj4T8WWPFFaDKNvCuZpv/atU61AxbwQ9+ivLPbiLlJOsxMvf8Fe20mOVrTxhJ+w/a9KukGl244IVm6ptbSSaW/sCw7K5P7OTrzxCNa+/lxtfceaHDvW1eTr0EtM7tC0hWSdO655856dwsjT1KtWqJ87D+LBftrnotFObU3ZdFeUx+YrvvCvqkW7SkCAPRMdI62Bk/po9+RttdbR6XH5JxaMStbPSE/6wvA0xu3HZNc4BtMbdTH46Rf+Sdft/yLmroY6i0fvGBUrs/rF6j2fFXzKwu3aQbLaiJGNlbHuq2eqPpZxPwG6lx303n8jS7KeWGDSoexue9Fg3ub53vhwL4beXnHO6Jx1mrqudl4PbGGvK3OybZ08oDS9opau04q2bWsZPe+De9hu9hI0vVeSeeU5s+OZX3c/SOSPiKF4QU2sL8tZd+BvfrkZVfMuxkAAAAAAADAzHVWVpWmk/dQ36428kzcKOk8M3uKme2SdKmkzzfTLAAAAAAAAABbRWtp17ybsFCm7unq7h0ze6ukaxUGKvqYu9/WWMsAAAAAAAAAYAva0Jiu7n6NpGsaagsAAAAAAAAAbHkMtAAAAAAAAAAADSLpCgAAAAAAAAANIukKAAAAAAAAAA0i6QoAAAAAAAAADSLpCgAAAAAAAAANIukKAAAAAAAAAA0i6QoAAAAAAAAADSLpCgAAAAAAAAANIukKAAAAAAAAAA0i6QoAAAAAAAAADSLpCgAAAAAAAAANIukKAAAAAAAAAA0i6QoAAAAAAAAADSLpCgAAAAAAAAANIukKAAAAAAAAAA0i6QoAAAAAAAAADSLpCgAAAAAAAAANIukKAAAAAAAAAA0i6QoAAAAAAAAADSLpCgAAAAAAAAANMnffvJ2ZPSDpp5u2Q5QdlvTgvBsBjECMYtERo1h0xCgWHTGKRUeMYtERo1h0OzFGn+Tup9ct2NSkK+bHzG5y9wvm3Q5gGGIUi44YxaIjRrHoiFEsOmIUi44YxaIjRvsxvAAAAAAAAAAANIikKwAAAAAAAAA0iKTrzvGReTcAWAcxikVHjGLREaNYdMQoFh0xikVHjGLREaMljOkKAAAAAAAAAA2ipysAAAAAAAAANIik6xZlZueY2fVmdruZ3WZmb4/lp5nZdWZ2Z3w8GMufbmY3mNmKmb2rUtddZvY9M7vFzG6ax/Fg+5kiRn/PzL4bY/EbZvacUl2XmNkPzexHZvbn8zombC8NxyjnUTRuihh9TYzRW8zsJjO7qFTXZXH9O83ssnkdE7aXhmM0i+W3mNnn53VM2F4mjdHSds8zs46ZvaFUxnkUjWs4RjmPonFTvNe/zMweLcXiX5Xq2nHf6xleYIsyszMlnenuN5vZfknflvRaSW+RdMzd3x+D+KC7v8fMnijpSXGdh93970p13SXpAnd/cHOPAtvZFDH6Iknfd/eHzew3Jb3X3V9gZqmkOyS9QtI9km6U9CZ3v30Oh4VtpKkYjXXdJc6jaNgUMbpP0s/d3c3s2ZI+5e5PN7PTJN0k6QJJHus5390fnsNhYRtpKkZjXSfcfd98jgTb1aQxGrdJJV0naVnSx9z905xHMStNxWgs5zyKxk3xXv8ySe9y91dX6tmR3+vp6bpFuftRd785Tj8m6fuSzpL0GkmfiKt9QuGPQe5+v7vfKGlt81uLnWiKGP1G6YPrNyWdHaefL+lH7v4Td1+V9MlYB7AhDcYoMBNTxOgJ711N36uQGJCkV0q6zt2PxRi+TtIlm3IQ2NYajFFgJiaN0ehtkj4j6f5SGedRzESDMQrMxJQxWmdHfq8n6boNmNmTJT1X0rckneHuR+Oi+ySdMUYVLumLZvZtM7tiNq3ETjZFjP6RpC/E6bMk3V1adk8sAxqzwRiVOI9ixsaNUTN7nZn9QNJ/Sro8FnMexcxtMEYlaXcccuCbZvbazWk1dpJxYtTMzpL0Okn/VNmc8yhmboMxKnEexYxN8J3pQjP7jpl9wcx+OZbtyPNoa94NwMbEn2l9RtI73P24mXWXxZ9ujdOD4CJ3vzcOQXCdmf3A3b86oyZjh5k0Rs3s1xUSWhcJ2AQNxSjnUczMJDHq7ldLutrMXiLpbyW9fLPbi52noRh9UjyPPlXSl83se+7+4807CmxnE8ToByW9x93z8jrArDUUo5xHMTMTxOjNCrF4wsxeJelzks7b7PYuCnq6bmFm1lYI+n9198/G4p/FMTeKsTfW/cmBu98bH++XdLVCt29gwyaN0Ti+21WSXuPuD8XieyWdU6r27FgGbFhDMcp5FDMz7Xt9TPo/1cwOi/MoZqihGC2fR38i6SsKPWmADZswRi+Q9Mk4VvsbJH0o9hjkPIqZaShGOY9iZiaJUXc/7u4n4vQ1kto7+fMoSdctysJlhY8q3NTl70uLPi+puJvmZZL+fZ169sbBkGVmeyVdLOnW5luMnWbSGDWzcyV9VtIfuPsdpfVvlHSemT3FzHZJujTWAWxIUzHKeRSzMkWM/mLcRmb2a5KWJD0k6VpJF5vZQQt3lr04lgEb0lSMxthciuWHJb1Y0ra+sQY2x6Qx6u5Pcfcnu/uTJX1a0p+6++fEeRQz0lSMch7FrEzxXn+k9F7/fIW840Paod/rrTeWPbYSM7tI0tckfU9SHov/UmFsjU9JOlfSTyW90d2PmdkRhTtuHojrn5D0TEmHFXplSWG4iX9z9/dt1nFg+5oiRq+S9NuxTJI67n5BrOtVCj+lSRXu0EmMYsOaitH4Ey7Oo2jcFDH6HklvVrhp5klJ73b3r8e6Lo/bStL73P2fN+1AsG01FaNm9iJJH451JJI+6O4f3dSDwbY0aYxWtv24pP/w3p3hOY+icU3FKOdRzMoU7/VvlfQnkjoK7/XvdPdvxLp23Pd6kq4AAAAAAAAA0CCGFwAAAAAAAACABpF0BQAAAAAAAIAGkXQFAAAAAAAAgAaRdAUAAAAAAACABpF0BQAAAAAAAIAGkXQFAAAAAAAAgAaRdAUAAMCOZWbpvNsAAACA7YekKwAAALYEM/sbM3tHaf59ZvZ2M3u3md1oZt81s78uLf+cmX3bzG4zsytK5SfM7ANm9h1JF27uUQAAAGAnIOkKAACAreJjkt4sSWaWSLpU0n2SzpP0fEm/Kul8M3tJXP9ydz9f0gWS/szMDsXyvZK+5e7Pcfevb2L7AQAAsEO05t0AAAAAYBzufpeZPWRmz5V0hqT/kfQ8SRfHaUnap5CE/apCovV1sfycWP6QpEzSZzaz7QAAANhZSLoCAABgK7lK0lskHVHo+fobkq509w+XVzKzl0l6uaQL3f1xM/uKpN1x8bK7Z5vUXgAAAOxADC8AAACAreRqSZco9HC9Nv6/3Mz2SZKZnWVmT5R0qqSHY8L16ZJeOK8GAwAAYOehpysAAAC2DHdfNbPrJT0Se6t+0cyeIekGM5OkE5J+X9J/SfpjM/u+pB9K+ua82gwAAICdx9x93m0AAAAAxhJvoHWzpN9x9zvn3R4AAACgDsMLAAAAYEsws2dK+pGk/ybhCgAAgEVGT1cAAAAAAAAAaBA9XQEAAAAAAACgQSRdAQAAAAAAAKBBJF0BAAAAAAAAoEEkXQEAAAAAAACgQSRdAQAAAAAAAKBBJF0BAAAAAAAAoEH/D5Z5GN++TlU2AAAAAElFTkSuQmCC\n", + "image/png": "iVBORw0KGgoAAAANSUhEUgAABWMAAAJNCAYAAABUVWe4AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/YYfK9AAAACXBIWXMAAAsTAAALEwEAmpwYAAEAAElEQVR4nOzdd3xOd//H8dfJkkSILHsksbIHISVCrJpVq2gV4daWVlV7V9Gpm8p9V0tb9K6q0sSoUVp7VFIlEiKCoEgVsWukViTX7w91/aSJHa6E9/PxyIOc8z3f8z5XGuWT7/X5GiaTCRERERERERERERG5u6wsHUBERERERERERETkQaBirIiIiIiIiIiIiMg9oGKsiIiIiIiIiIiIyD2gYqyIiIiIiIiIiIjIPaBirIiIiIiIiIiIiMg9oGKsiIiIiIiIiIiIyD1gY+kAAO7u7iZPT09LxxARERERERERERG5I8nJycdMJpNHQeeKRDHW09OTpKQkS8cQERERERERERERuSOGYfx+rXNqUyAiIiIiIiIiIiJyD6gYKyIiIiIiIiIiInIPqBgrIiIiIiIiIiIicg/csGesYRiTgfbAEZPJFPD3sTHAI8BFYDfQ12Qynfz73AjgX0AOMNhkMi25O9FFRERERERERORuy87OZv/+/Zw/f97SUUSKFHt7eypXroytre1NX3MzG3hNAcYDU686tgwYYTKZLhmGMRoYAQwzDMMP6AH4AxWB5YZh1DKZTDk3nUhERERERERERIqM/fv3U6pUKTw9PTEMw9JxRIoEk8nE8ePH2b9/P15eXjd93Q3bFJhMpjXAiX8cW2oymS79/ek6oPLfv38UiDOZTBdMJtNe4Deg/k2nERERERERERGRIuX8+fO4ubmpECtyFcMwcHNzu+UV44XRM7YfsOjv31cC/rjq3P6/j4mIiIiIiIiISDGlQqxIfrfzfXFHxVjDMF4DLgHTb+Papw3DSDIMI+no0aN3EkNERERERERERESkyLvtYqxhGNFc3tirp8lkMv19+ABQ5aphlf8+lo/JZJpkMpnCTCZTmIeHx+3GEBERERERERERESkWbqsYaxhGa+AVoIPJZDp71akfgB6GYZQwDMMLqAkk3nlMERERERERERERkeLthsVYwzBigV+B2oZh7DcM41/AeKAUsMwwjBTDMCYAmEymrcBMYBuwGHjO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9erV+f3336+bw8PDg+bNm/PNN9/cwdPk5+bmRo0aNcjMvPMayHfffUeDBg145JFHzMeioqIICAi4qeuHDh1qLoJe7bPPPiM6Opo6deoA4O7uzkcffWQuDBckJiaGV199FS8vL+DynjQjRoxgzJgxALz//vt88cUXlClTBgA7OzuGDx9O6dKlefPNN5k1axYpKSkMHz6czz77rMBMffr0oUGDBuZjXbt2pVy5cje899UaNGhQ4H8XcHlT899+++2az3g7VIyVIimw6cMYVlakrlhs6SjyNysrKxo1asThw4fZtWuXpeOIiIiIiIjIAyItLY26dete83xcXBw9evQgMjKSHTt25Fkxe8Wff/7Jrl27aNy4cb5ze/bsYc+ePdSoUQOAGTNm5Hn7/9Vvlx82bBgxMTG3tMH10KFDzXP17Nkz3/l9+/Zx/vx5goKCbnrOa+W80WsVHx+f55offvghz/kGDRpgZ2fHqlWr8hzfunVrvnnDwsLYunXrNe91vWtOnz5NVlaWuVj6T46OjsTExNC4cWN69OhBzZo184253rPeSt7FixfTsWPHAudZsGABgYGBBZ67XTaFOptIIXFydaN63XDSVi2jYbcnsbG1tXQkAYKCgli9ejVr1qyhZs2aGIZh6UgiIiIiIiJyD+3c+S5nsgq3fV0pJ19q1Xrjtq+PjY1l7ty5WFlZ0aVLF2bNmsWgQYOAy8XH4OBgdu3axZAhQyhfvrz5uhkzZpCQkECJEiWYOHEirq6uwOW3/48fP77Ae3l7exMeHs5333130/nGjBljbllwtRkzZrBmzRrS09MZP3489vb2t/LY1815LZGRkSxcuND8eXR0dL4xr7/+Ou+99x6jR4++pbnvxJIlSxg2bBgnT57ku+++o2HDhjzyyCOUKVOGZ5999q7cc+jQobz66qvs37+fX3/9Nc+5nj174uDggKenZ54+wYVBK2OlyApu2YZzZ07zW+LaGw+We8La2pqIiAj2799PRkaGpeOIiIiIiIjIA8Df35/k5OQCz23ZsoVdu3bRsmVLPD09iYuLy9OqIDIyks2bN7N161a++uorUlJSzOeu9Fxdv349nTp1uuk8r776KqNHj77jFn7du3cnNTWVtWvXMnz4cA4dOnRH88H1X6ub1axZM86dO8e6devMx/z8/PLNm5ycjL+//zXnud41pUuXxsnJib17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\n", "text/plain": [ "
" ] @@ -314,11 +308,10 @@ } ], "source": [ - "plottable_df = df[~df.company_lei.isin(['SJ7XXD41SQU3ZNWUJ746','5493008F4ZOQFNG3WN54','XRZQ5S7HYJFPHJ78L959', '549300K5VIUTJXQL7X75', 'OZ8GM8L4AHPKSWZMW205',\n", - " '1B4S6S7G0TW5EE83BO58', '5493002H80P81B3HXL31', '549300K5VIUTJXQL7X75'])].pivot(index='year', columns='company_name', values='co2_target_by_year').reset_index()\n", + "plottable_df = df.pivot(index='year', columns='company_name', values='co2_target_by_year').reset_index()\n", "\n", "# Must plot the first few columns, but then plot 1/3rd of the companies so as not to over-clutter the graph\n", - "plottable_df.iloc[:, [x for x in list(range(0,3)) + list(range(3,93,5))]].plot(x='year', kind='line', figsize=(24,10))" + "plottable_df.iloc[:, [x for x in list(range(0,3)) + list(range(3,57,2))]].plot(x='year', kind='line', figsize=(24,10))" ] }, { @@ -332,19 +325,9 @@ ] }, { - "cell_type": "code", - "execution_count": 8, - "id": "8c0af1f8-12c1-4f56-89dd-340cfdef27ea", + "cell_type": "raw", + "id": "8110deb5-6850-4f16-902b-c9bab9d338a3", "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "connecting with engine Engine(trino://os-climate-user2@trino-secure-odh-trino.apps.odh-cl1.apps.os-climate.org:443/)\n" - ] - } - ], "source": [ "sqlstring = 'trino://{user}@{host}:{port}/'.format(\n", " user = os.environ['TRINO_USER_USER2'],\n", @@ -383,331 +366,41 @@ ] }, { - "cell_type": "code", - "execution_count": 9, - "id": "2483f3de-ca17-4dcd-b140-deebcdb5639b", + "cell_type": "raw", + "id": "a7cbe50d-6b26-4f9e-a04b-ba915f19c4b0", "metadata": {}, - "outputs": [], "source": [ "temp_score_df = pd.read_sql_table(f\"temperature_scores\", engine_quant)" ] }, { - "cell_type": "code", - "execution_count": 10, - "id": "1ae21697-98f1-4901-bd32-b4856555b809", + "cell_type": "raw", + "id": "ac6a2286-62b7-4d23-81bf-077ad68a34a4", "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
company_namecompany_idsourcescopebenchmarktrajectory_temperature_scoretarget_temperature_score
0Ameren Corp.US0236081024demoS1+S2benchmark_12.1135411.957490
1CMS EnergyUS1258961002demoS1+S2benchmark_12.5210931.963172
2TIMKENSTEEL CORPUS8873991033demoS1+S2benchmark_11.3188471.293037
3Xcel Energy, Inc.US98389B1008demoS1+S2benchmark_12.2896381.767726
4Dominion EnergyUS25746U1097demoS1+S2benchmark_11.9962921.731388
\n", - "
" - ], - "text/plain": [ - " company_name company_id source scope benchmark \\\n", - "0 Ameren Corp. US0236081024 demo S1+S2 benchmark_1 \n", - "1 CMS Energy US1258961002 demo S1+S2 benchmark_1 \n", - "2 TIMKENSTEEL CORP US8873991033 demo S1+S2 benchmark_1 \n", - "3 Xcel Energy, Inc. US98389B1008 demo S1+S2 benchmark_1 \n", - "4 Dominion Energy US25746U1097 demo S1+S2 benchmark_1 \n", - "\n", - " trajectory_temperature_score target_temperature_score \n", - "0 2.113541 1.957490 \n", - "1 2.521093 1.963172 \n", - "2 1.318847 1.293037 \n", - "3 2.289638 1.767726 \n", - "4 1.996292 1.731388 " - ] - }, - "execution_count": 10, - "metadata": {}, - "output_type": "execute_result" - } - ], "source": [ "temp_score_df.head()" ] }, { - "cell_type": "code", - "execution_count": 11, - "id": "c1270d41-5a03-43dd-b90b-f305299dbe99", + "cell_type": "raw", + "id": "8277b6d5-3633-40ac-b69b-571eae476d99", "metadata": {}, - "outputs": [], "source": [ "plottable_df = temp_score_df[['company_name', 'trajectory_temperature_score', 'target_temperature_score']].sort_values('company_name').set_index('company_name').T" ] }, { - "cell_type": "code", - "execution_count": 12, - "id": "01fa19a8-4705-46aa-8a39-49e4a0cd0a33", + "cell_type": "raw", + "id": "acb3b22f-41d8-41a9-a2b0-3a3f0d2ef51a", "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
company_nameAES Corp.AK STEEL HOLDING CORPALLETE, Inc.Algonquin Power & Utilities Corp.Alliant EnergyAmeren Corp.American Electric Power Co., Inc.Avangrid, Inc.Avista Corp.CARPENTER TECHNOLOGY CORP...Public Service Enterprise GroupSTEEL DYNAMICS INCSempra EnergySouthern Co.TENARIS SATIMKENSTEEL CORPUNITED STATES STEEL CORPWEC Energy GroupWORTHINGTON INDUSTRIES INCXcel Energy, Inc.
trajectory_temperature_score2.8744602.4009672.5408412.4400542.2119432.1135412.5667811.3177371.8836111.624396...1.7267991.3378621.4221852.2712011.5178711.3188471.6609772.5393511.2852142.289638
target_temperature_score2.4334961.9178302.1942972.7628421.9031951.9574902.3529811.2781982.0697481.451154...1.8694441.3085821.3670422.1860231.5178711.2930371.4879962.5237811.2852141.767726
\n", - "

2 rows × 44 columns

\n", - "
" - ], - "text/plain": [ - "company_name AES Corp. AK STEEL HOLDING CORP ALLETE, Inc. \\\n", - "trajectory_temperature_score 2.874460 2.400967 2.540841 \n", - "target_temperature_score 2.433496 1.917830 2.194297 \n", - "\n", - "company_name Algonquin Power & Utilities Corp. \\\n", - "trajectory_temperature_score 2.440054 \n", - "target_temperature_score 2.762842 \n", - "\n", - "company_name Alliant Energy Ameren Corp. \\\n", - "trajectory_temperature_score 2.211943 2.113541 \n", - "target_temperature_score 1.903195 1.957490 \n", - "\n", - "company_name American Electric Power Co., Inc. \\\n", - "trajectory_temperature_score 2.566781 \n", - "target_temperature_score 2.352981 \n", - "\n", - "company_name Avangrid, Inc. Avista Corp. \\\n", - "trajectory_temperature_score 1.317737 1.883611 \n", - "target_temperature_score 1.278198 2.069748 \n", - "\n", - "company_name CARPENTER TECHNOLOGY CORP ... \\\n", - "trajectory_temperature_score 1.624396 ... \n", - "target_temperature_score 1.451154 ... \n", - "\n", - "company_name Public Service Enterprise Group \\\n", - "trajectory_temperature_score 1.726799 \n", - "target_temperature_score 1.869444 \n", - "\n", - "company_name STEEL DYNAMICS INC Sempra Energy Southern Co. \\\n", - "trajectory_temperature_score 1.337862 1.422185 2.271201 \n", - "target_temperature_score 1.308582 1.367042 2.186023 \n", - "\n", - "company_name TENARIS SA TIMKENSTEEL CORP \\\n", - "trajectory_temperature_score 1.517871 1.318847 \n", - "target_temperature_score 1.517871 1.293037 \n", - "\n", - "company_name UNITED STATES STEEL CORP WEC Energy Group \\\n", - "trajectory_temperature_score 1.660977 2.539351 \n", - "target_temperature_score 1.487996 2.523781 \n", - "\n", - "company_name WORTHINGTON INDUSTRIES INC Xcel Energy, Inc. \n", - "trajectory_temperature_score 1.285214 2.289638 \n", - "target_temperature_score 1.285214 1.767726 \n", - "\n", - "[2 rows x 44 columns]" - ] - }, - "execution_count": 12, - "metadata": {}, - "output_type": "execute_result" - } - ], "source": [ "plottable_df" ] }, { - "cell_type": "code", - "execution_count": 13, - "id": "9ee65e40-cda2-4a9b-ac80-b0e96c8c152e", + "cell_type": "raw", + "id": "49a139bd-fe5d-4016-87c1-de8fa7c3413a", "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 13, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], "source": [ "# Must plot the first few columns, but then plot 1/3rd of the companies so as not to over-clutter the graph\n", "plottable_df.iloc[:, [x for x in list(range(0,2)) + list(range(4,35,3))]].boxplot(figsize=(24,10))" @@ -733,19 +426,9 @@ ] }, { - "cell_type": "code", - "execution_count": 14, - "id": "3e9113eb-d3ef-409c-aa56-3a0c28662ba2", + "cell_type": "raw", + "id": "1de4b009-e664-49c9-a9bb-6021ec944f04", "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "connecting with engine Engine(trino://os-climate-user3@trino-secure-odh-trino.apps.odh-cl1.apps.os-climate.org:443/)\n" - ] - } - ], "source": [ "sqlstring = 'trino://{user}@{host}:{port}/'.format(\n", " user = os.environ['TRINO_USER_USER3'],\n", @@ -784,152 +467,9 @@ ] }, { - "cell_type": "code", - "execution_count": 15, - "id": "76d2ad90-ce27-484f-8de9-359153d32979", + "cell_type": "raw", + "id": "66770ed9-3403-4ddf-b585-34d78654909e", "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
company_namecompany_leiinvestment_value
company_id
US00130H1059AES Corp.2NUNNB7D43COUIRE52954351252
US0158577090Algonquin Power & Utilities Corp.549300K5VIUTJXQL7X752228185
US0185223007ALLETE, Inc.549300NNLSIMY6Z8OT863829481
US0188021085Alliant Energy5493009ML300G373MZ123829481
US0236081024Ameren Corp.XRZQ5S7HYJFPHJ78L95915917812
............
US8873991033TIMKENSTEEL CORP549300QZTZWHDE9HJL1410000000
US88830M1027TITAN INTERNATIONAL INC254900CXRGBE7C4B5A0610000000
US9129091081UNITED STATES STEEL CORPJNLUVFYJT1OZSIQ24U4710000000
US9138371003UNIVERSAL STAINLESS & ALLOY PRODUCTS INC5493001OEIZDUGXZDE0910000000
US9818111026WORTHINGTON INDUSTRIES INC1WRCIANKYOIK6KYE5E8210000000
\n", - "

61 rows × 3 columns

\n", - "
" - ], - "text/plain": [ - " company_name company_lei \\\n", - "company_id \n", - "US00130H1059 AES Corp. 2NUNNB7D43COUIRE5295 \n", - "US0158577090 Algonquin Power & Utilities Corp. 549300K5VIUTJXQL7X75 \n", - "US0185223007 ALLETE, Inc. 549300NNLSIMY6Z8OT86 \n", - "US0188021085 Alliant Energy 5493009ML300G373MZ12 \n", - "US0236081024 Ameren Corp. XRZQ5S7HYJFPHJ78L959 \n", - "... ... ... \n", - "US8873991033 TIMKENSTEEL CORP 549300QZTZWHDE9HJL14 \n", - "US88830M1027 TITAN INTERNATIONAL INC 254900CXRGBE7C4B5A06 \n", - "US9129091081 UNITED STATES STEEL CORP JNLUVFYJT1OZSIQ24U47 \n", - "US9138371003 UNIVERSAL STAINLESS & ALLOY PRODUCTS INC 5493001OEIZDUGXZDE09 \n", - "US9818111026 WORTHINGTON INDUSTRIES INC 1WRCIANKYOIK6KYE5E82 \n", - "\n", - " investment_value \n", - "company_id \n", - "US00130H1059 4351252 \n", - "US0158577090 2228185 \n", - "US0185223007 3829481 \n", - "US0188021085 3829481 \n", - "US0236081024 15917812 \n", - "... ... \n", - "US8873991033 10000000 \n", - "US88830M1027 10000000 \n", - "US9129091081 10000000 \n", - "US9138371003 10000000 \n", - "US9818111026 10000000 \n", - "\n", - "[61 rows x 3 columns]" - ] - }, - "execution_count": 15, - "metadata": {}, - "output_type": "execute_result" - } - ], "source": [ "portfolio_df = pd.read_csv(\"data/mdt-20220116-portfolio.csv\", encoding=\"iso-8859-1\", sep=';', index_col='company_id')\n", "portfolio_df" @@ -948,234 +488,44 @@ ] }, { - "cell_type": "code", - "execution_count": 16, - "id": "3840f2c6-a938-43b0-b24e-37f0b284d2c6", + "cell_type": "raw", + "id": "5882ff18-6094-438c-a307-11a11dcb131a", "metadata": {}, - "outputs": [], "source": [ "# PA_SCORE means \"Probability-Adjusted\" Temperature Score\n", "portfolio_df['pa_score'] = vault_warehouse.get_pa_temp_scores(probability=0.5, company_ids=portfolio_df.index.values)" ] }, { - "cell_type": "code", - "execution_count": 17, - "id": "8031e3a0-3d22-4f16-8a9a-e85f855f1b02", + "cell_type": "raw", + "id": "21079b40-dd5c-4b0a-8baa-d3e37b699d25", "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
company_namecompany_leiinvestment_valuepa_score
company_id
KR7005490008POSCO988400E5HRVX81AYLM04100000001.57887
\n", - "
" - ], - "text/plain": [ - " company_name company_lei investment_value pa_score\n", - "company_id \n", - "KR7005490008 POSCO 988400E5HRVX81AYLM04 10000000 1.57887" - ] - }, - "execution_count": 17, - "metadata": {}, - "output_type": "execute_result" - } - ], "source": [ "portfolio_df[portfolio_df.company_name=='POSCO']" ] }, { - "cell_type": "code", - "execution_count": 18, - "id": "0e9f1e29-ccb8-4b59-a1ba-95fdf792bf76", + "cell_type": "raw", + "id": "4c072bdd-a83f-420b-a126-3d981e2b9f54", "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "817454890" - ] - }, - "execution_count": 18, - "metadata": {}, - "output_type": "execute_result" - } - ], "source": [ "weight_for_WATS = portfolio_df['investment_value'].sum()\n", "weight_for_WATS" ] }, { - "cell_type": "code", - "execution_count": 19, - "id": "f3193208-3029-40d4-a7a2-e820a32eea56", + "cell_type": "raw", + "id": "b86c6b92-7e4a-4efa-907e-5617a8adf336", "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
company_namecompany_leiinvestment_valuepa_scoreWATS_weight
company_id
US00130H1059AES Corp.2NUNNB7D43COUIRE529543512522.6539780.014127
US0158577090Algonquin Power & Utilities Corp.549300K5VIUTJXQL7X7522281852.6014480.007091
US0185223007ALLETE, Inc.549300NNLSIMY6Z8OT8638294812.3675690.011091
US0188021085Alliant Energy5493009ML300G373MZ1238294812.0575690.009639
US0236081024Ameren Corp.XRZQ5S7HYJFPHJ78L959159178122.0355150.039636
\n", - "
" - ], - "text/plain": [ - " company_name company_lei \\\n", - "company_id \n", - "US00130H1059 AES Corp. 2NUNNB7D43COUIRE5295 \n", - "US0158577090 Algonquin Power & Utilities Corp. 549300K5VIUTJXQL7X75 \n", - "US0185223007 ALLETE, Inc. 549300NNLSIMY6Z8OT86 \n", - "US0188021085 Alliant Energy 5493009ML300G373MZ12 \n", - "US0236081024 Ameren Corp. XRZQ5S7HYJFPHJ78L959 \n", - "\n", - " investment_value pa_score WATS_weight \n", - "company_id \n", - "US00130H1059 4351252 2.653978 0.014127 \n", - "US0158577090 2228185 2.601448 0.007091 \n", - "US0185223007 3829481 2.367569 0.011091 \n", - "US0188021085 3829481 2.057569 0.009639 \n", - "US0236081024 15917812 2.035515 0.039636 " - ] - }, - "execution_count": 19, - "metadata": {}, - "output_type": "execute_result" - } - ], "source": [ "portfolio_df['WATS_weight'] = portfolio_df['pa_score'] * (portfolio_df['investment_value'] / weight_for_WATS)\n", "portfolio_df.head()" ] }, { - "cell_type": "code", - "execution_count": 20, - "id": "24fdeb51-94f1-40a4-ace9-5fdce4f5de8f", + "cell_type": "raw", + "id": "628bb37c-84c2-4dc4-826c-c32cf47d8680", "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Portfolio temperature score based on WATS = 1.6299104684318158\n" - ] - } - ], "source": [ "print(f\"Portfolio temperature score based on WATS = {portfolio_df['WATS_weight'].sum()}\")" ] @@ -1191,141 +541,18 @@ ] }, { - "cell_type": "code", - "execution_count": 21, - "id": "fddd23f0-7ca4-4ea8-8a54-ea71fee0f40b", + "cell_type": "raw", + "id": "c6add035-f666-4572-98f9-9fe71c72fea6", "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
company_namecompany_leiinvestment_valuepa_scoreWATS_weightTETS_weight
company_id
US00130H1059AES Corp.2NUNNB7D43COUIRE529543512522.6539780.0141270.026135
US0158577090Algonquin Power & Utilities Corp.549300K5VIUTJXQL7X7522281852.6014480.0070910.078521
US0185223007ALLETE, Inc.549300NNLSIMY6Z8OT8638294812.3675690.0110910.008519
US0188021085Alliant Energy5493009ML300G373MZ1238294812.0575690.0096390.018719
US0236081024Ameren Corp.XRZQ5S7HYJFPHJ78L959159178122.0355150.0396360.048920
\n", - "
" - ], - "text/plain": [ - " company_name company_lei \\\n", - "company_id \n", - "US00130H1059 AES Corp. 2NUNNB7D43COUIRE5295 \n", - "US0158577090 Algonquin Power & Utilities Corp. 549300K5VIUTJXQL7X75 \n", - "US0185223007 ALLETE, Inc. 549300NNLSIMY6Z8OT86 \n", - "US0188021085 Alliant Energy 5493009ML300G373MZ12 \n", - "US0236081024 Ameren Corp. XRZQ5S7HYJFPHJ78L959 \n", - "\n", - " investment_value pa_score WATS_weight TETS_weight \n", - "company_id \n", - "US00130H1059 4351252 2.653978 0.014127 0.026135 \n", - "US0158577090 2228185 2.601448 0.007091 0.078521 \n", - "US0185223007 3829481 2.367569 0.011091 0.008519 \n", - "US0188021085 3829481 2.057569 0.009639 0.018719 \n", - "US0236081024 15917812 2.035515 0.039636 0.048920 " - ] - }, - "execution_count": 21, - "metadata": {}, - "output_type": "execute_result" - } - ], "source": [ "portfolio_df['TETS_weight'] = vault_company_data.compute_portfolio_weights(portfolio_df['pa_score'], 2019, 'emissions', EScope.S1S2)\n", "portfolio_df.head()" ] }, { - "cell_type": "code", - "execution_count": 22, - "id": "68f22808-4ec2-4167-95ee-5b50f550dc59", + "cell_type": "raw", + "id": "ee150189-750c-4d08-a53d-4c9540575c98", "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Portfolio temperature score based on TETS = 1.6739511395163167\n" - ] - } - ], "source": [ "print(f\"Portfolio temperature score based on TETS = {portfolio_df['TETS_weight'].sum()}\")" ] @@ -1345,281 +572,9 @@ ] }, { - "cell_type": "code", - "execution_count": 23, - "id": "0df8c5fc-2939-4ac1-9448-499803583eb1", + "cell_type": "raw", + "id": "d9a0cb22-8ee4-4e3b-b08a-9647cc7f51c7", "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Portfolio temperature score based on MOTS = 1.9523158506309033\n", - "Portfolio temperature score based on EOTS = 2.081364955001339\n", - "Portfolio temperature score based on ECOTS = 1.942933676201069\n", - "Portfolio temperature score based on AOTS = 1.9468713889723186\n", - "Portfolio temperature score based on ROTS = 1.8125811169100436\n" - ] - }, - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
company_namecompany_leiinvestment_valuepa_scoreWATS_weightTETS_weightMOTS_weightEOTS_weightECOTS_weightAOTS_weightROTS_weight
company_id
US00130H1059AES Corp.2NUNNB7D43COUIRE529543512522.6539780.0141270.0261350.0419010.0255110.0457650.0596690.065624
US0158577090Algonquin Power & Utilities Corp.549300K5VIUTJXQL7X7522281852.6014480.0070910.078521NaNNaNNaN0.0189830.010268
US0185223007ALLETE, Inc.549300NNLSIMY6Z8OT8638294812.3675690.0110910.0085190.0147360.0131330.0149410.0086740.007127
US0188021085Alliant Energy5493009ML300G373MZ1238294812.0575690.0096390.0187190.0346660.0362280.0346360.0229610.018216
US0236081024Ameren Corp.XRZQ5S7HYJFPHJ78L959159178122.0355150.0396360.0489200.0543360.0528330.0542610.0393510.029194
....................................
US8873991033TIMKENSTEEL CORP549300QZTZWHDE9HJL14100000001.3059420.0159760.0003200.0006400.0005950.0006900.0009470.003831
US88830M1027TITAN INTERNATIONAL INC254900CXRGBE7C4B5A0610000000NaNNaNNaNNaNNaNNaNNaNNaN
US9129091081UNITED STATES STEEL CORPJNLUVFYJT1OZSIQ24U47100000001.5744870.0192610.0427320.0059460.0084350.0076410.0122120.049432
US9138371003UNIVERSAL STAINLESS & ALLOY PRODUCTS INC5493001OEIZDUGXZDE0910000000NaNNaNNaNNaNNaNNaNNaNNaN
US9818111026WORTHINGTON INDUSTRIES INC1WRCIANKYOIK6KYE5E82100000001.2852140.0157220.0003110.0026560.0025480.0028220.0021560.011726
\n", - "

61 rows × 11 columns

\n", - "
" - ], - "text/plain": [ - " company_name company_lei \\\n", - "company_id \n", - "US00130H1059 AES Corp. 2NUNNB7D43COUIRE5295 \n", - "US0158577090 Algonquin Power & Utilities Corp. 549300K5VIUTJXQL7X75 \n", - "US0185223007 ALLETE, Inc. 549300NNLSIMY6Z8OT86 \n", - "US0188021085 Alliant Energy 5493009ML300G373MZ12 \n", - "US0236081024 Ameren Corp. XRZQ5S7HYJFPHJ78L959 \n", - "... ... ... \n", - "US8873991033 TIMKENSTEEL CORP 549300QZTZWHDE9HJL14 \n", - "US88830M1027 TITAN INTERNATIONAL INC 254900CXRGBE7C4B5A06 \n", - "US9129091081 UNITED STATES STEEL CORP JNLUVFYJT1OZSIQ24U47 \n", - "US9138371003 UNIVERSAL STAINLESS & ALLOY PRODUCTS INC 5493001OEIZDUGXZDE09 \n", - "US9818111026 WORTHINGTON INDUSTRIES INC 1WRCIANKYOIK6KYE5E82 \n", - "\n", - " investment_value pa_score WATS_weight TETS_weight \\\n", - "company_id \n", - "US00130H1059 4351252 2.653978 0.014127 0.026135 \n", - "US0158577090 2228185 2.601448 0.007091 0.078521 \n", - "US0185223007 3829481 2.367569 0.011091 0.008519 \n", - "US0188021085 3829481 2.057569 0.009639 0.018719 \n", - "US0236081024 15917812 2.035515 0.039636 0.048920 \n", - "... ... ... ... ... \n", - "US8873991033 10000000 1.305942 0.015976 0.000320 \n", - "US88830M1027 10000000 NaN NaN NaN \n", - "US9129091081 10000000 1.574487 0.019261 0.042732 \n", - "US9138371003 10000000 NaN NaN NaN \n", - "US9818111026 10000000 1.285214 0.015722 0.000311 \n", - "\n", - " MOTS_weight EOTS_weight ECOTS_weight AOTS_weight ROTS_weight \n", - "company_id \n", - "US00130H1059 0.041901 0.025511 0.045765 0.059669 0.065624 \n", - "US0158577090 NaN NaN NaN 0.018983 0.010268 \n", - "US0185223007 0.014736 0.013133 0.014941 0.008674 0.007127 \n", - "US0188021085 0.034666 0.036228 0.034636 0.022961 0.018216 \n", - "US0236081024 0.054336 0.052833 0.054261 0.039351 0.029194 \n", - "... ... ... ... ... ... \n", - "US8873991033 0.000640 0.000595 0.000690 0.000947 0.003831 \n", - "US88830M1027 NaN NaN NaN NaN NaN \n", - "US9129091081 0.005946 0.008435 0.007641 0.012212 0.049432 \n", - "US9138371003 NaN NaN NaN NaN NaN \n", - "US9818111026 0.002656 0.002548 0.002822 0.002156 0.011726 \n", - "\n", - "[61 rows x 11 columns]" - ] - }, - "execution_count": 23, - "metadata": {}, - "output_type": "execute_result" - } - ], "source": [ "weighting_dict = {\n", " 'MOTS': 'company_market_cap',\n", @@ -1646,369 +601,9 @@ ] }, { - "cell_type": "code", - "execution_count": 24, - "id": "d1e39a38-9d3f-4ff7-aa46-965f6cbf4a76", + "cell_type": "raw", + "id": "efae39b9-706a-451f-8f0e-29daa0e47fee", "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
company_namecompany_leiinvestment_valuepa_scoreWATS_weightTETS_weightMOTS_weightEOTS_weightECOTS_weightAOTS_weightROTS_weight
company_id
US5526901096MDU Resources Group0T6SBMK3JTBI1JR367941207049NaNNaNNaNNaNNaNNaNNaNNaN
US6362744095National Grid plc8R95QZMKZLJX5Q2XR70412281584NaNNaNNaNNaNNaNNaNNaNNaN
LU0140205948ARCELORMITTAL2EULGUTUI56JI9SAL16510000000NaNNaNNaNNaNNaNNaNNaNNaN
US3584351056FRIEDMAN INDUSTRIES INCLEI0510000000NaNNaNNaNNaNNaNNaNNaNNaN
US3708532029GENERAL STEEL HOLDINGS INC5493008ZKBIR02ICY09110000000NaNNaNNaNNaNNaNNaNNaNNaN
US3746891072GIBRALTAR INDUSTRIES, INC.LEI0810000000NaNNaNNaNNaNNaNNaNNaNNaN
MXP4984U1083GROUP SIMEC SA DE CV529900LCYCXPA0TZEU0910000000NaNNaNNaNNaNNaNNaNNaNNaN
US4208772016HAYNES INTERNATIONAL INC549300I9MS5UZLRFDO4010000000NaNNaNNaNNaNNaNNaNNaNNaN
US45774W1080INSTEEL INDUSTRIES INC52990026LKY4MOX3L17410000000NaNNaNNaNNaNNaNNaNNaNNaN
CA0156581070LEGATO MERGER CORP.5493006RXIB5GVHWJS5310000000NaNNaNNaNNaNNaNNaNNaNNaN
US5838406081MECHEL PAO253400C9GSPBSKERRP6510000000NaNNaNNaNNaNNaNNaNNaNNaN
INE088B01015NATIONAL STEEL CO335800Y6L4X95L2FEF6410000000NaNNaNNaNNaNNaNNaNNaNNaN
JP3381000003NIPPON STEEL CORP35380065QWQ4U2V3PA3310000000NaNNaNNaNNaNNaNNaNNaNNaN
US6884102087OSSEN INNOVATION CO. LTD.LEI1710000000NaNNaNNaNNaNNaNNaNNaNNaN
US8808901081TERNIUM S.A.529900QG4KU23TEI2E4610000000NaNNaNNaNNaNNaNNaNNaNNaN
US88830M1027TITAN INTERNATIONAL INC254900CXRGBE7C4B5A0610000000NaNNaNNaNNaNNaNNaNNaNNaN
US9138371003UNIVERSAL STAINLESS & ALLOY PRODUCTS INC5493001OEIZDUGXZDE0910000000NaNNaNNaNNaNNaNNaNNaNNaN
\n", - "
" - ], - "text/plain": [ - " company_name company_lei \\\n", - "company_id \n", - "US5526901096 MDU Resources Group 0T6SBMK3JTBI1JR36794 \n", - "US6362744095 National Grid plc 8R95QZMKZLJX5Q2XR704 \n", - "LU0140205948 ARCELORMITTAL 2EULGUTUI56JI9SAL165 \n", - "US3584351056 FRIEDMAN INDUSTRIES INC LEI05 \n", - "US3708532029 GENERAL STEEL HOLDINGS INC 5493008ZKBIR02ICY091 \n", - "US3746891072 GIBRALTAR INDUSTRIES, INC. LEI08 \n", - "MXP4984U1083 GROUP SIMEC SA DE CV 529900LCYCXPA0TZEU09 \n", - "US4208772016 HAYNES INTERNATIONAL INC 549300I9MS5UZLRFDO40 \n", - "US45774W1080 INSTEEL INDUSTRIES INC 52990026LKY4MOX3L174 \n", - "CA0156581070 LEGATO MERGER CORP. 5493006RXIB5GVHWJS53 \n", - "US5838406081 MECHEL PAO 253400C9GSPBSKERRP65 \n", - "INE088B01015 NATIONAL STEEL CO 335800Y6L4X95L2FEF64 \n", - "JP3381000003 NIPPON STEEL CORP 35380065QWQ4U2V3PA33 \n", - "US6884102087 OSSEN INNOVATION CO. LTD. LEI17 \n", - "US8808901081 TERNIUM S.A. 529900QG4KU23TEI2E46 \n", - "US88830M1027 TITAN INTERNATIONAL INC 254900CXRGBE7C4B5A06 \n", - "US9138371003 UNIVERSAL STAINLESS & ALLOY PRODUCTS INC 5493001OEIZDUGXZDE09 \n", - "\n", - " investment_value pa_score WATS_weight TETS_weight \\\n", - "company_id \n", - "US5526901096 1207049 NaN NaN NaN \n", - "US6362744095 12281584 NaN NaN NaN \n", - "LU0140205948 10000000 NaN NaN NaN \n", - "US3584351056 10000000 NaN NaN NaN \n", - "US3708532029 10000000 NaN NaN NaN \n", - "US3746891072 10000000 NaN NaN NaN \n", - "MXP4984U1083 10000000 NaN NaN NaN \n", - "US4208772016 10000000 NaN NaN NaN \n", - "US45774W1080 10000000 NaN NaN NaN \n", - "CA0156581070 10000000 NaN NaN NaN \n", - "US5838406081 10000000 NaN NaN NaN \n", - "INE088B01015 10000000 NaN NaN NaN \n", - "JP3381000003 10000000 NaN NaN NaN \n", - "US6884102087 10000000 NaN NaN NaN \n", - "US8808901081 10000000 NaN NaN NaN \n", - "US88830M1027 10000000 NaN NaN NaN \n", - "US9138371003 10000000 NaN NaN NaN \n", - "\n", - " MOTS_weight EOTS_weight ECOTS_weight AOTS_weight ROTS_weight \n", - "company_id \n", - "US5526901096 NaN NaN NaN NaN NaN \n", - "US6362744095 NaN NaN NaN NaN NaN \n", - "LU0140205948 NaN NaN NaN NaN NaN \n", - "US3584351056 NaN NaN NaN NaN NaN \n", - "US3708532029 NaN NaN NaN NaN NaN \n", - "US3746891072 NaN NaN NaN NaN NaN \n", - "MXP4984U1083 NaN NaN NaN NaN NaN \n", - "US4208772016 NaN NaN NaN NaN NaN \n", - "US45774W1080 NaN NaN NaN NaN NaN \n", - "CA0156581070 NaN NaN NaN NaN NaN \n", - "US5838406081 NaN NaN NaN NaN NaN \n", - "INE088B01015 NaN NaN NaN NaN NaN \n", - "JP3381000003 NaN NaN NaN NaN NaN \n", - "US6884102087 NaN NaN NaN NaN NaN \n", - "US8808901081 NaN NaN NaN NaN NaN \n", - "US88830M1027 NaN NaN NaN NaN NaN \n", - "US9138371003 NaN NaN NaN NaN NaN " - ] - }, - "execution_count": 24, - "metadata": {}, - "output_type": "execute_result" - } - ], "source": [ "portfolio_df[portfolio_df.pa_score.isnull()]" ] diff --git a/examples/vault_demo_n1.ipynb b/examples/vault_demo_n1.ipynb new file mode 100644 index 00000000..49c2ca09 --- /dev/null +++ b/examples/vault_demo_n1.ipynb @@ -0,0 +1,2932 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "e3c5c7d5-63e0-47a5-ac4a-bb58beb98995", + "metadata": {}, + "source": [ + "# Data Vault Demo (Quant, can also score own portfolio)\n", + "\n", + "The basic concept of the Data Vault is that when a user authenticates themself, they receive an engine that gives them access to all the data (rows, columns, tables, schema, etc.) for which they are authorized. Users who can authenticate themselves for multiple roles can use those roles simultaneously. We are keeping in mind the importance of Data Lineage Management (tracked by issue https://github.com/os-climate/os_c_data_commons/issues/50) but is not treated as part of this particular prototype.\n", + "\n", + "The steps of this demo are:\n", + "\n", + "1. **Authenticate and acquire SQLAlchemy engine**\n", + " 1. Dev engine sees all\n", + " 2. **Quant engine can do temp scoring but not see fundamental company info**\n", + " 3. User engine can use temp scoring but not see cumulative emissions nor overshoot info\n", + "2. With Dev engine, construct Vaults for:\n", + " 1. Fundamental corporate financial information\n", + " 2. Corporate emissions data (base year, historical)\n", + " 3. Corporate target data (start year, end year, target start value, target end value)\n", + " 4. Sector benchmark data (production, CO2e intensity)\n", + "3. Dev Engine: Visualize projected emissions (targets and trajectories) and calculate cumulative emissions\n", + "4. **Quant Engine: Using calculated cumulative emmisions, visualize per-company trajectory and target temperature scores**\n", + "5. User Engine: Using consensus probability scoring and own portfolio data (ISIN, position value)\n", + " 1. Calculate publishable per-company temperature alignment score\n", + " 2. Based on aggregate corporate and portfolio information, produce weighting scores to yield overall portfolio alignment score" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "id": "d1ab75f1-dc99-422d-b15b-ce043e32fff8", + "metadata": {}, + "outputs": [], + "source": [ + "import os\n", + "import pathlib\n", + "from dotenv import load_dotenv\n", + "\n", + "# Load some standard environment variables from a dot-env file, if it exists.\n", + "# If no such file can be found, does not fail, and so allows these environment vars to\n", + "# be populated in some other way\n", + "dotenv_dir = os.environ.get('CREDENTIAL_DOTENV_DIR', os.environ.get('PWD', '/opt/app-root/src'))\n", + "dotenv_path = pathlib.Path(dotenv_dir) / 'credentials.env'\n", + "if os.path.exists(dotenv_path):\n", + " load_dotenv(dotenv_path=dotenv_path,override=True)\n", + "\n", + "import trino\n", + "from sqlalchemy.engine import create_engine" + ] + }, + { + "cell_type": "markdown", + "id": "837212ac-6d98-46a2-9a18-c5c026feb84c", + "metadata": {}, + "source": [ + "### The ITR module provides Vault objects that coordinate the interaction of Dev, Quant, and User roles.\n", + "\n", + "The SQLAlchemy engines mediate the actual interaction with the Data Vault." + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "969b6d53-49d8-47d9-b218-6bdd790a7de4", + "metadata": {}, + "outputs": [], + "source": [ + "import json\n", + "import pandas as pd\n", + "from numpy.testing import assert_array_equal\n", + "import ITR\n", + "\n", + "# from ITR.portfolio_aggregation import PortfolioAggregationMethod\n", + "# from ITR.temperature_score import TemperatureScore\n", + "# from ITR.configs import ColumnsConfig, TemperatureScoreConfig\n", + "# from ITR.data.data_warehouse import DataWarehouse\n", + "from ITR.data.vault_providers import VaultCompanyDataProvider, VaultProviderProductionBenchmark, \\\n", + " VaultProviderIntensityBenchmark, DataVaultWarehouse\n", + "# from ITR.interfaces import ICompanyData, EScope, ETimeFrames, PortfolioCompany, IEmissionIntensityBenchmarkScopes, \\\n", + "# IProductionBenchmarkScopes\n", + "from ITR.interfaces import EScope, IProductionBenchmarkScopes, IEmissionIntensityBenchmarkScopes" + ] + }, + { + "cell_type": "markdown", + "id": "1848722a-342e-46bd-b8fe-aa0001d4d28c", + "metadata": {}, + "source": [ + "### Step 4: Use Quant engine to access and visualize temperature scores\n", + "\n", + "When the Data Vault is ready to be implemented, we can demonstrate that the Quant engine does not have access to primary company data (neither financial nor production)" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "8c0af1f8-12c1-4f56-89dd-340cfdef27ea", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "connecting with engine Engine(trino://os-climate-user2@trino-secure-odh-trino.apps.odh-cl1.apps.os-climate.org:443/)\n" + ] + } + ], + "source": [ + "sqlstring = 'trino://{user}@{host}:{port}/'.format(\n", + " user = os.environ['TRINO_USER_USER2'],\n", + " host = os.environ['TRINO_HOST'],\n", + " port = os.environ['TRINO_PORT']\n", + ")\n", + "sqlargs = {\n", + " 'auth': trino.auth.JWTAuthentication(os.environ['TRINO_PASSWD_USER2']),\n", + " 'http_scheme': 'https',\n", + " 'catalog': 'osc_datacommons_dev',\n", + " 'schema': 'demo',\n", + "}\n", + "\n", + "ingest_catalog = 'osc_datacommons_dev'\n", + "ingest_schema = 'demo'\n", + "\n", + "engine_quant = create_engine(sqlstring, connect_args = sqlargs)\n", + "print(\"connecting with engine \" + str(engine_quant))\n", + "connection_quant = engine_quant.connect()" + ] + }, + { + "cell_type": "markdown", + "id": "12482310-25de-42eb-8d0c-52f56d07f627", + "metadata": {}, + "source": [ + "Show that we *cannot* access fundamental company data (cannot show until op1st team changes permissions)" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "5af9e376-10a4-4ad6-bf7a-65f925c43329", + "metadata": {}, + "outputs": [], + "source": [ + "vault_company_data = VaultCompanyDataProvider (engine_quant,\n", + " company_table='company_data',\n", + " target_table=None,\n", + " trajectory_table=None,\n", + " company_schema='demo',\n", + " column_config=None,\n", + " tempscore_config=None)" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "c083622d-cde4-4f86-acde-49016a155824", + "metadata": {}, + "outputs": [], + "source": [ + "vault_warehouse = DataVaultWarehouse(engine_quant,\n", + " company_data=None,\n", + " benchmark_projected_production=None,\n", + " benchmarks_projected_emissions_intensity=None,\n", + " ingest_schema = 'demo',\n", + " column_config=None,\n", + " tempscore_config=None)\n", + "\n", + "vault_warehouse.quant_init(engine_quant, company_data=vault_company_data, ingest_schema='demo')" + ] + }, + { + "cell_type": "markdown", + "id": "236c94f8-1709-4d7a-9beb-85419e65be5c", + "metadata": {}, + "source": [ + "Show that we *can* access both cumulative emissions (input) and temperature scores (output)" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "2483f3de-ca17-4dcd-b140-deebcdb5639b", + "metadata": {}, + "outputs": [], + "source": [ + "temp_score_df = pd.read_sql_table(f\"temperature_scores\", engine_quant)" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "1ae21697-98f1-4901-bd32-b4856555b809", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
company_namecompany_idsourcescopebenchmarktrajectory_temperature_scoretarget_temperature_score
0Hawaiian Electric Industries, Inc.US4198701009demoS1+S2benchmark_12.3350981.763241
1Northwestern Corp.US6680743050demoS1+S2benchmark_11.8579691.662417
2SempraUS8168511090demoS1+S2benchmark_11.3848001.344634
3Brookfield Asset ManagementCA1125851040demoS1+S2benchmark_11.2622271.262227
4Black Hills Corp.US0921131092demoS1+S2benchmark_12.2058301.884104
5Xcel Energy, Inc.US98389B1008demoS1+S2benchmark_12.1461731.587192
6PPL Corp.US69351T1060demoS1+S2benchmark_13.2559602.863050
7Dominion EnergyUS25746U1097demoS1+S2benchmark_11.8504021.636624
8Algonquin Power & Utilities Corp.US0158577090demoS1+S2benchmark_11.2622271.262227
9TIMKENSTEEL CORPUS8873991033demoS1+S2benchmark_11.3082651.281435
10Pinnacle West Capital Corp.US7234841010demoS1+S2benchmark_12.0662921.616243
11Alcoa Corp.US0138721065demoS1+S2benchmark_11.2622271.262227
12OG&E Energy Corp.US6708371033demoS1+S2benchmark_12.4805012.720746
13American Electric Power Co., Inc.US0255371017demoS1+S2benchmark_12.4825522.053782
14Duke Energy Corp.US26441C2044demoS1+S2benchmark_12.0704751.851114
15Evergy, Inc.US30034W1062demoS1+S2benchmark_12.6768492.362005
16Consolidated Edison, Inc.US2091151041demoS1+S2benchmark_11.5762691.427115
17Southern Co.US8425871071demoS1+S2benchmark_12.3285992.170918
18Vistra Corp.US92840M1027demoS1+S2benchmark_11.2622271.262227
19POSCOKR7005490008demoS1+S2benchmark_11.6552971.460259
20FirstEnergy Corp.US3379321074demoS1+S2benchmark_13.3739772.076536
21Alliant EnergyUS0188021085demoS1+S2benchmark_12.1700231.804351
22Eversource EnergyUS30040W1080demoS1+S2benchmark_11.2622271.262227
23DTE EnergyUS2333311072demoS1+S2benchmark_12.9069392.242253
24Public Service Enterprise GroupUS7445731067demoS1+S2benchmark_11.2622271.262227
25GERDAU S.A.US3737371050demoS1+S2benchmark_11.4329991.346019
26Cleco Partners LPUS18551QAA58demoS1+S2benchmark_11.2622271.262227
27TC Energy Corp.CA87807B1076demoS1+S2benchmark_11.2622271.262227
28TENARIS SAUS88031M1099demoS1+S2benchmark_11.3176651.317665
29Avangrid, Inc.US05351W1036demoS1+S2benchmark_11.3278951.271416
30UNITED STATES STEEL CORPUS9129091081demoS1+S2benchmark_11.6235041.445919
31AES Corp.US00130H1059demoS1+S2benchmark_12.3518061.860013
32NUCOR CORPUS6703461052demoS1+S2benchmark_11.3184071.301686
33PG&E Corp.US69331C1080demoS1+S2benchmark_11.3578831.308873
34Verso Corp.US92531L2079demoS1+S2benchmark_11.2622271.262227
35COMMERCIAL METALS COUS2017231034demoS1+S2benchmark_11.3332921.295746
36Fortis, Inc.CA3495531079demoS1+S2benchmark_12.4429521.810396
37Entergy Corp.US29364G1031demoS1+S2benchmark_11.2622271.262227
38CMS Energy Corp.US1258961002demoS1+S2benchmark_12.2895161.751847
39Avista Corp.US05379B1070demoS1+S2benchmark_11.2622271.262227
40ALLETE, Inc.US0185223007demoS1+S2benchmark_12.1905751.935872
41Ameren Corp.US0236081024demoS1+S2benchmark_12.6426902.201277
42WEC Energy GroupUS92939U1060demoS1+S2benchmark_12.4289142.495716
43Otter Tail Corp.US6896481032demoS1+S2benchmark_12.5837442.835409
44WORTHINGTON INDUSTRIES INCUS9818111026demoS1+S2benchmark_11.2679061.267906
45PNM Resources, Inc.US69349H1077demoS1+S2benchmark_12.1687891.624339
46STEEL DYNAMICS INCUS8581191009demoS1+S2benchmark_11.3293451.299339
47Portland General Electric Co.US7365088472demoS1+S2benchmark_12.1849971.524214
48National Grid PLCUS6362744095demoS1+S2benchmark_12.1453141.799658
49CARPENTER TECHNOLOGY CORPUS1442851036demoS1+S2benchmark_11.5849221.408775
\n", + "
" + ], + "text/plain": [ + " company_name company_id source scope \\\n", + "0 Hawaiian Electric Industries, Inc. US4198701009 demo S1+S2 \n", + "1 Northwestern Corp. US6680743050 demo S1+S2 \n", + "2 Sempra US8168511090 demo S1+S2 \n", + "3 Brookfield Asset Management CA1125851040 demo S1+S2 \n", + "4 Black Hills Corp. US0921131092 demo S1+S2 \n", + "5 Xcel Energy, Inc. US98389B1008 demo S1+S2 \n", + "6 PPL Corp. US69351T1060 demo S1+S2 \n", + "7 Dominion Energy US25746U1097 demo S1+S2 \n", + "8 Algonquin Power & Utilities Corp. US0158577090 demo S1+S2 \n", + "9 TIMKENSTEEL CORP US8873991033 demo S1+S2 \n", + "10 Pinnacle West Capital Corp. US7234841010 demo S1+S2 \n", + "11 Alcoa Corp. US0138721065 demo S1+S2 \n", + "12 OG&E Energy Corp. US6708371033 demo S1+S2 \n", + "13 American Electric Power Co., Inc. US0255371017 demo S1+S2 \n", + "14 Duke Energy Corp. US26441C2044 demo S1+S2 \n", + "15 Evergy, Inc. US30034W1062 demo S1+S2 \n", + "16 Consolidated Edison, Inc. US2091151041 demo S1+S2 \n", + "17 Southern Co. US8425871071 demo S1+S2 \n", + "18 Vistra Corp. US92840M1027 demo S1+S2 \n", + "19 POSCO KR7005490008 demo S1+S2 \n", + "20 FirstEnergy Corp. US3379321074 demo S1+S2 \n", + "21 Alliant Energy US0188021085 demo S1+S2 \n", + "22 Eversource Energy US30040W1080 demo S1+S2 \n", + "23 DTE Energy US2333311072 demo S1+S2 \n", + "24 Public Service Enterprise Group US7445731067 demo S1+S2 \n", + "25 GERDAU S.A. US3737371050 demo S1+S2 \n", + "26 Cleco Partners LP US18551QAA58 demo S1+S2 \n", + "27 TC Energy Corp. CA87807B1076 demo S1+S2 \n", + "28 TENARIS SA US88031M1099 demo S1+S2 \n", + "29 Avangrid, Inc. US05351W1036 demo S1+S2 \n", + "30 UNITED STATES STEEL CORP US9129091081 demo S1+S2 \n", + "31 AES Corp. US00130H1059 demo S1+S2 \n", + "32 NUCOR CORP US6703461052 demo S1+S2 \n", + "33 PG&E Corp. US69331C1080 demo S1+S2 \n", + "34 Verso Corp. US92531L2079 demo S1+S2 \n", + "35 COMMERCIAL METALS CO US2017231034 demo S1+S2 \n", + "36 Fortis, Inc. CA3495531079 demo S1+S2 \n", + "37 Entergy Corp. US29364G1031 demo S1+S2 \n", + "38 CMS Energy Corp. US1258961002 demo S1+S2 \n", + "39 Avista Corp. US05379B1070 demo S1+S2 \n", + "40 ALLETE, Inc. US0185223007 demo S1+S2 \n", + "41 Ameren Corp. US0236081024 demo S1+S2 \n", + "42 WEC Energy Group US92939U1060 demo S1+S2 \n", + "43 Otter Tail Corp. US6896481032 demo S1+S2 \n", + "44 WORTHINGTON INDUSTRIES INC US9818111026 demo S1+S2 \n", + "45 PNM Resources, Inc. US69349H1077 demo S1+S2 \n", + "46 STEEL DYNAMICS INC US8581191009 demo S1+S2 \n", + "47 Portland General Electric Co. US7365088472 demo S1+S2 \n", + "48 National Grid PLC US6362744095 demo S1+S2 \n", + "49 CARPENTER TECHNOLOGY CORP US1442851036 demo S1+S2 \n", + "\n", + " benchmark trajectory_temperature_score target_temperature_score \n", + "0 benchmark_1 2.335098 1.763241 \n", + "1 benchmark_1 1.857969 1.662417 \n", + "2 benchmark_1 1.384800 1.344634 \n", + "3 benchmark_1 1.262227 1.262227 \n", + "4 benchmark_1 2.205830 1.884104 \n", + "5 benchmark_1 2.146173 1.587192 \n", + "6 benchmark_1 3.255960 2.863050 \n", + "7 benchmark_1 1.850402 1.636624 \n", + "8 benchmark_1 1.262227 1.262227 \n", + "9 benchmark_1 1.308265 1.281435 \n", + "10 benchmark_1 2.066292 1.616243 \n", + "11 benchmark_1 1.262227 1.262227 \n", + "12 benchmark_1 2.480501 2.720746 \n", + "13 benchmark_1 2.482552 2.053782 \n", + "14 benchmark_1 2.070475 1.851114 \n", + "15 benchmark_1 2.676849 2.362005 \n", + "16 benchmark_1 1.576269 1.427115 \n", + "17 benchmark_1 2.328599 2.170918 \n", + "18 benchmark_1 1.262227 1.262227 \n", + "19 benchmark_1 1.655297 1.460259 \n", + "20 benchmark_1 3.373977 2.076536 \n", + "21 benchmark_1 2.170023 1.804351 \n", + "22 benchmark_1 1.262227 1.262227 \n", + "23 benchmark_1 2.906939 2.242253 \n", + "24 benchmark_1 1.262227 1.262227 \n", + "25 benchmark_1 1.432999 1.346019 \n", + "26 benchmark_1 1.262227 1.262227 \n", + "27 benchmark_1 1.262227 1.262227 \n", + "28 benchmark_1 1.317665 1.317665 \n", + "29 benchmark_1 1.327895 1.271416 \n", + "30 benchmark_1 1.623504 1.445919 \n", + "31 benchmark_1 2.351806 1.860013 \n", + "32 benchmark_1 1.318407 1.301686 \n", + "33 benchmark_1 1.357883 1.308873 \n", + "34 benchmark_1 1.262227 1.262227 \n", + "35 benchmark_1 1.333292 1.295746 \n", + "36 benchmark_1 2.442952 1.810396 \n", + "37 benchmark_1 1.262227 1.262227 \n", + "38 benchmark_1 2.289516 1.751847 \n", + "39 benchmark_1 1.262227 1.262227 \n", + "40 benchmark_1 2.190575 1.935872 \n", + "41 benchmark_1 2.642690 2.201277 \n", + "42 benchmark_1 2.428914 2.495716 \n", + "43 benchmark_1 2.583744 2.835409 \n", + "44 benchmark_1 1.267906 1.267906 \n", + "45 benchmark_1 2.168789 1.624339 \n", + "46 benchmark_1 1.329345 1.299339 \n", + "47 benchmark_1 2.184997 1.524214 \n", + "48 benchmark_1 2.145314 1.799658 \n", + "49 benchmark_1 1.584922 1.408775 " + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "temp_score_df" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "id": "c1270d41-5a03-43dd-b90b-f305299dbe99", + "metadata": {}, + "outputs": [], + "source": [ + "plottable_df = temp_score_df[['company_name', 'trajectory_temperature_score', 'target_temperature_score']].sort_values('company_name').set_index('company_name').T" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "id": "01fa19a8-4705-46aa-8a39-49e4a0cd0a33", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
company_nameAES Corp.ALLETE, Inc.Alcoa Corp.Algonquin Power & Utilities Corp.Alliant EnergyAmeren Corp.American Electric Power Co., Inc.Avangrid, Inc.Avista Corp.Black Hills Corp....Southern Co.TC Energy Corp.TENARIS SATIMKENSTEEL CORPUNITED STATES STEEL CORPVerso Corp.Vistra Corp.WEC Energy GroupWORTHINGTON INDUSTRIES INCXcel Energy, Inc.
trajectory_temperature_score2.3518062.1905751.2622271.2622272.1700232.6426902.4825521.3278951.2622272.205830...2.3285991.2622271.3176651.3082651.6235041.2622271.2622272.4289141.2679062.146173
target_temperature_score1.8600131.9358721.2622271.2622271.8043512.2012772.0537821.2714161.2622271.884104...2.1709181.2622271.3176651.2814351.4459191.2622271.2622272.4957161.2679061.587192
\n", + "

2 rows × 50 columns

\n", + "
" + ], + "text/plain": [ + "company_name AES Corp. ALLETE, Inc. Alcoa Corp. \\\n", + "trajectory_temperature_score 2.351806 2.190575 1.262227 \n", + "target_temperature_score 1.860013 1.935872 1.262227 \n", + "\n", + "company_name Algonquin Power & Utilities Corp. \\\n", + "trajectory_temperature_score 1.262227 \n", + "target_temperature_score 1.262227 \n", + "\n", + "company_name Alliant Energy Ameren Corp. \\\n", + "trajectory_temperature_score 2.170023 2.642690 \n", + "target_temperature_score 1.804351 2.201277 \n", + "\n", + "company_name American Electric Power Co., Inc. \\\n", + "trajectory_temperature_score 2.482552 \n", + "target_temperature_score 2.053782 \n", + "\n", + "company_name Avangrid, Inc. Avista Corp. Black Hills Corp. \\\n", + "trajectory_temperature_score 1.327895 1.262227 2.205830 \n", + "target_temperature_score 1.271416 1.262227 1.884104 \n", + "\n", + "company_name ... Southern Co. TC Energy Corp. TENARIS SA \\\n", + "trajectory_temperature_score ... 2.328599 1.262227 1.317665 \n", + "target_temperature_score ... 2.170918 1.262227 1.317665 \n", + "\n", + "company_name TIMKENSTEEL CORP UNITED STATES STEEL CORP \\\n", + "trajectory_temperature_score 1.308265 1.623504 \n", + "target_temperature_score 1.281435 1.445919 \n", + "\n", + "company_name Verso Corp. Vistra Corp. WEC Energy Group \\\n", + "trajectory_temperature_score 1.262227 1.262227 2.428914 \n", + "target_temperature_score 1.262227 1.262227 2.495716 \n", + "\n", + "company_name WORTHINGTON INDUSTRIES INC Xcel Energy, Inc. \n", + "trajectory_temperature_score 1.267906 2.146173 \n", + "target_temperature_score 1.267906 1.587192 \n", + "\n", + "[2 rows x 50 columns]" + ] + }, + "execution_count": 9, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "plottable_df" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "id": "9ee65e40-cda2-4a9b-ac80-b0e96c8c152e", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 10, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "# Must plot the first few columns, but then plot 1/3rd of the companies so as not to over-clutter the graph\n", + "plottable_df.iloc[:, [x for x in list(range(0,2)) + list(range(4,35,3))]].boxplot(figsize=(24,10))" + ] + }, + { + "cell_type": "markdown", + "id": "65795474-1de6-4f40-9086-f7d948ae6c66", + "metadata": {}, + "source": [ + "### Step 5: Show per-company temperature score and weighted portfolio alignment score\n", + "\n", + "Portfolio weighting scores (which ultimately influence portfolio alignment score) include:\n", + "* WATS (size of portfolio company positions used as weights)\n", + "* TETS (size of total emissions of portfolio companies used as weights)\n", + "* Financial fundamental weights:\n", + " * Market Cap\n", + " * Enterprise Value\n", + " * Assets\n", + " * Revenues\n", + "\n", + "We can pass a list of company IDs to the Data Vault to get back a sum without exposing granular data" + ] + }, + { + "cell_type": "markdown", + "id": "df114d27-a6ab-46d9-a942-0e8200c4fcd7", + "metadata": {}, + "source": [ + "Show that we *can also* access both cumulative emissions (input) and temperature scores (output)" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "id": "76d2ad90-ce27-484f-8de9-359153d32979", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
company_namecompany_leiinvestment_value
company_id
US00130H1059AES Corp.2NUNNB7D43COUIRE529550000
US0138721065Alcoa Corp.549300T12EZ1F6PWWU2950000
US0158577090Algonquin Power & Utilities Corp.549300K5VIUTJXQL7X7550000
US0185223007ALLETE, Inc.549300NNLSIMY6Z8OT8650000
US0188021085Alliant Energy5493009ML300G373MZ1250000
............
NaNWells Rural Electric Co.NaN50000
NaNWellsboro Electric Co.NaN50000
NaNWhite River Electric Association, Inc.NaN50000
NaNWilderness Line Holdings, LLCNaN50000
NaNYankee Atomic Electric Co.NaN50000
\n", + "

190 rows × 3 columns

\n", + "
" + ], + "text/plain": [ + " company_name company_lei \\\n", + "company_id \n", + "US00130H1059 AES Corp. 2NUNNB7D43COUIRE5295 \n", + "US0138721065 Alcoa Corp. 549300T12EZ1F6PWWU29 \n", + "US0158577090 Algonquin Power & Utilities Corp. 549300K5VIUTJXQL7X75 \n", + "US0185223007 ALLETE, Inc. 549300NNLSIMY6Z8OT86 \n", + "US0188021085 Alliant Energy 5493009ML300G373MZ12 \n", + "... ... ... \n", + "NaN Wells Rural Electric Co. NaN \n", + "NaN Wellsboro Electric Co. NaN \n", + "NaN White River Electric Association, Inc. NaN \n", + "NaN Wilderness Line Holdings, LLC NaN \n", + "NaN Yankee Atomic Electric Co. NaN \n", + "\n", + " investment_value \n", + "company_id \n", + "US00130H1059 50000 \n", + "US0138721065 50000 \n", + "US0158577090 50000 \n", + "US0185223007 50000 \n", + "US0188021085 50000 \n", + "... ... \n", + "NaN 50000 \n", + "NaN 50000 \n", + "NaN 50000 \n", + "NaN 50000 \n", + "NaN 50000 \n", + "\n", + "[190 rows x 3 columns]" + ] + }, + "execution_count": 11, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# portfolio_df = pd.read_csv(\"data/mdt-20220116-portfolio.csv\", encoding=\"iso-8859-1\", sep=';', index_col='company_id')\n", + "portfolio_df = pd.read_csv(\"data/rmi_all.csv\", encoding=\"iso-8859-1\", sep=',', index_col='company_id')\n", + "portfolio_df" + ] + }, + { + "cell_type": "markdown", + "id": "e2d9942b-ec81-4eab-9cca-99e92905e24f", + "metadata": {}, + "source": [ + "### Calculate portfolio alignment temperature score based on WATS\n", + "\n", + "We can do this with information exclusive to the user space (and the probability-adjusted temperature scores)\n", + "\n", + "Note that companies with no production information (such as TITAL INTERNATIONAL INC and UNIVERSAL STAINLESS & ALLOY PRODUCTS INC will show NaN (Not a Number) as a score." + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "id": "3840f2c6-a938-43b0-b24e-37f0b284d2c6", + "metadata": {}, + "outputs": [], + "source": [ + "# PA_SCORE means \"Probability-Adjusted\" Temperature Score\n", + "portfolio_df['pa_score'] = vault_warehouse.get_pa_temp_scores(probability=0.5, company_ids=portfolio_df.index.values)" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "id": "8031e3a0-3d22-4f16-8a9a-e85f855f1b02", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
company_namecompany_leiinvestment_valuepa_score
company_id
US00130H1059AES Corp.2NUNNB7D43COUIRE5295500002.105909
US0185223007ALLETE, Inc.549300NNLSIMY6Z8OT86500002.063224
US0138721065Alcoa Corp.549300T12EZ1F6PWWU29500001.262227
US0158577090Algonquin Power & Utilities Corp.549300K5VIUTJXQL7X75500001.262227
US0188021085Alliant Energy5493009ML300G373MZ12500001.987187
US0236081024Ameren Corp.XRZQ5S7HYJFPHJ78L959500002.421983
US0255371017American Electric Power Co., Inc.1B4S6S7G0TW5EE83BO58500002.268167
US05351W1036Avangrid, Inc.549300OX0Q38NLSKPB49500001.299655
US05379B1070Avista Corp.Q0IK63NITJD6RJ47SW96500001.262227
US0921131092Black Hills Corp.3MGELCRSTNSAMJ962671500002.044967
CA1125851040Brookfield Asset ManagementC6J3FGIWG6MBDGTE8F80500001.262227
US1258961002CMS Energy Corp.549300IA9XFBAGNIBW29500002.020682
US18551QAA58Cleco Partners LP5493002H80P81B3HXL31500001.262227
US2091151041Consolidated Edison, Inc.54930033SBW53OO8T749500001.501692
US2333311072DTE Energy549300IX8SD6XXD71I78500002.574596
US25746U1097Dominion EnergyILUL7B6Z54MRYCF6H308500001.743513
US26441C2044Duke Energy Corp.I1BZKREC126H0VB1BL91500001.960795
US29364G1031Entergy Corp.4XM3TW50JULSLG8BNC79500001.262227
US30034W1062Evergy, Inc.549300PGTHDQY6PSUI61500002.519427
US30040W1080Eversource EnergySJ7XXD41SQU3ZNWUJ746500001.262227
US3379321074FirstEnergy Corp.549300SVYJS666PQJH88500002.725257
CA3495531079Fortis, Inc.549300MQYQ9Y065XPR71500002.126674
US4198701009Hawaiian Electric Industries, Inc.JJ8FWOCWCV22X7GUPJ23500002.049170
US6362744095National Grid PLC8R95QZMKZLJX5Q2XR704500001.972486
US6680743050Northwestern Corp.3BPWMBHR1R9SHUN7J795500001.760193
US6708371033OG&E Energy Corp.CE5OG6JPOZMDSA0LAQ19500002.600624
US6896481032Otter Tail Corp.549300HHVBQRQUVKKD91500002.709576
US69331C1080PG&E Corp.1HNPXZSMMB7HMBMVBS46500001.333378
US69349H1077PNM Resources, Inc.5493003JOBJGLZSDDQ28500001.896564
US69351T1060PPL Corp.9N3UAJSNOUXFKQLF3V18500003.059505
US7234841010Pinnacle West Capital Corp.TWSEY0NEDUDCKS27AH81500001.841268
US7365088472Portland General Electric Co.GJOUP9M7C39GLSK9R870500001.854606
US7445731067Public Service Enterprise GroupPUSS41EMO3E6XXNV3U28500001.262227
US8168511090SempraPBBKGKLRK5S5C0Y4T545500001.364717
US8425871071Southern Co.549300FC3G3YU2FBZD92500002.249758
CA87807B1076TC Energy Corp.549300UGKOFV2IWJJG27500001.262227
US92840M1027Vistra Corp.549300KP43CPCUJOOG15500001.262227
US92939U1060WEC Energy Group549300IGLYTZUK3PVP70500002.462315
US98389B1008Xcel Energy, Inc.LGJNMI9GH8XIDG5RCM61500001.866682
\n", + "
" + ], + "text/plain": [ + " company_name company_lei \\\n", + "company_id \n", + "US00130H1059 AES Corp. 2NUNNB7D43COUIRE5295 \n", + "US0185223007 ALLETE, Inc. 549300NNLSIMY6Z8OT86 \n", + "US0138721065 Alcoa Corp. 549300T12EZ1F6PWWU29 \n", + "US0158577090 Algonquin Power & Utilities Corp. 549300K5VIUTJXQL7X75 \n", + "US0188021085 Alliant Energy 5493009ML300G373MZ12 \n", + "US0236081024 Ameren Corp. XRZQ5S7HYJFPHJ78L959 \n", + "US0255371017 American Electric Power Co., Inc. 1B4S6S7G0TW5EE83BO58 \n", + "US05351W1036 Avangrid, Inc. 549300OX0Q38NLSKPB49 \n", + "US05379B1070 Avista Corp. Q0IK63NITJD6RJ47SW96 \n", + "US0921131092 Black Hills Corp. 3MGELCRSTNSAMJ962671 \n", + "CA1125851040 Brookfield Asset Management C6J3FGIWG6MBDGTE8F80 \n", + "US1258961002 CMS Energy Corp. 549300IA9XFBAGNIBW29 \n", + "US18551QAA58 Cleco Partners LP 5493002H80P81B3HXL31 \n", + "US2091151041 Consolidated Edison, Inc. 54930033SBW53OO8T749 \n", + "US2333311072 DTE Energy 549300IX8SD6XXD71I78 \n", + "US25746U1097 Dominion Energy ILUL7B6Z54MRYCF6H308 \n", + "US26441C2044 Duke Energy Corp. I1BZKREC126H0VB1BL91 \n", + "US29364G1031 Entergy Corp. 4XM3TW50JULSLG8BNC79 \n", + "US30034W1062 Evergy, Inc. 549300PGTHDQY6PSUI61 \n", + "US30040W1080 Eversource Energy SJ7XXD41SQU3ZNWUJ746 \n", + "US3379321074 FirstEnergy Corp. 549300SVYJS666PQJH88 \n", + "CA3495531079 Fortis, Inc. 549300MQYQ9Y065XPR71 \n", + "US4198701009 Hawaiian Electric Industries, Inc. JJ8FWOCWCV22X7GUPJ23 \n", + "US6362744095 National Grid PLC 8R95QZMKZLJX5Q2XR704 \n", + "US6680743050 Northwestern Corp. 3BPWMBHR1R9SHUN7J795 \n", + "US6708371033 OG&E Energy Corp. CE5OG6JPOZMDSA0LAQ19 \n", + "US6896481032 Otter Tail Corp. 549300HHVBQRQUVKKD91 \n", + "US69331C1080 PG&E Corp. 1HNPXZSMMB7HMBMVBS46 \n", + "US69349H1077 PNM Resources, Inc. 5493003JOBJGLZSDDQ28 \n", + "US69351T1060 PPL Corp. 9N3UAJSNOUXFKQLF3V18 \n", + "US7234841010 Pinnacle West Capital Corp. TWSEY0NEDUDCKS27AH81 \n", + "US7365088472 Portland General Electric Co. GJOUP9M7C39GLSK9R870 \n", + "US7445731067 Public Service Enterprise Group PUSS41EMO3E6XXNV3U28 \n", + "US8168511090 Sempra PBBKGKLRK5S5C0Y4T545 \n", + "US8425871071 Southern Co. 549300FC3G3YU2FBZD92 \n", + "CA87807B1076 TC Energy Corp. 549300UGKOFV2IWJJG27 \n", + "US92840M1027 Vistra Corp. 549300KP43CPCUJOOG15 \n", + "US92939U1060 WEC Energy Group 549300IGLYTZUK3PVP70 \n", + "US98389B1008 Xcel Energy, Inc. LGJNMI9GH8XIDG5RCM61 \n", + "\n", + " investment_value pa_score \n", + "company_id \n", + "US00130H1059 50000 2.105909 \n", + "US0185223007 50000 2.063224 \n", + "US0138721065 50000 1.262227 \n", + "US0158577090 50000 1.262227 \n", + "US0188021085 50000 1.987187 \n", + "US0236081024 50000 2.421983 \n", + "US0255371017 50000 2.268167 \n", + "US05351W1036 50000 1.299655 \n", + "US05379B1070 50000 1.262227 \n", + "US0921131092 50000 2.044967 \n", + "CA1125851040 50000 1.262227 \n", + "US1258961002 50000 2.020682 \n", + "US18551QAA58 50000 1.262227 \n", + "US2091151041 50000 1.501692 \n", + "US2333311072 50000 2.574596 \n", + "US25746U1097 50000 1.743513 \n", + "US26441C2044 50000 1.960795 \n", + "US29364G1031 50000 1.262227 \n", + "US30034W1062 50000 2.519427 \n", + "US30040W1080 50000 1.262227 \n", + "US3379321074 50000 2.725257 \n", + "CA3495531079 50000 2.126674 \n", + "US4198701009 50000 2.049170 \n", + "US6362744095 50000 1.972486 \n", + "US6680743050 50000 1.760193 \n", + "US6708371033 50000 2.600624 \n", + "US6896481032 50000 2.709576 \n", + "US69331C1080 50000 1.333378 \n", + "US69349H1077 50000 1.896564 \n", + "US69351T1060 50000 3.059505 \n", + "US7234841010 50000 1.841268 \n", + "US7365088472 50000 1.854606 \n", + "US7445731067 50000 1.262227 \n", + "US8168511090 50000 1.364717 \n", + "US8425871071 50000 2.249758 \n", + "CA87807B1076 50000 1.262227 \n", + "US92840M1027 50000 1.262227 \n", + "US92939U1060 50000 2.462315 \n", + "US98389B1008 50000 1.866682 " + ] + }, + "execution_count": 13, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# portfolio_df[portfolio_df.company_name=='POSCO']\n", + "portfolio_df.dropna(inplace=True)\n", + "portfolio_df.sort_values(by='company_name')" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "id": "0e9f1e29-ccb8-4b59-a1ba-95fdf792bf76", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "1950000" + ] + }, + "execution_count": 14, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "weight_for_WATS = portfolio_df['investment_value'].sum()\n", + "weight_for_WATS" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "id": "f3193208-3029-40d4-a7a2-e820a32eea56", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
company_namecompany_leiinvestment_valuepa_scoreWATS_weight
company_id
US00130H1059AES Corp.2NUNNB7D43COUIRE5295500002.1059090.053998
US0138721065Alcoa Corp.549300T12EZ1F6PWWU29500001.2622270.032365
US0158577090Algonquin Power & Utilities Corp.549300K5VIUTJXQL7X75500001.2622270.032365
US0185223007ALLETE, Inc.549300NNLSIMY6Z8OT86500002.0632240.052903
US0188021085Alliant Energy5493009ML300G373MZ12500001.9871870.050954
\n", + "
" + ], + "text/plain": [ + " company_name company_lei \\\n", + "company_id \n", + "US00130H1059 AES Corp. 2NUNNB7D43COUIRE5295 \n", + "US0138721065 Alcoa Corp. 549300T12EZ1F6PWWU29 \n", + "US0158577090 Algonquin Power & Utilities Corp. 549300K5VIUTJXQL7X75 \n", + "US0185223007 ALLETE, Inc. 549300NNLSIMY6Z8OT86 \n", + "US0188021085 Alliant Energy 5493009ML300G373MZ12 \n", + "\n", + " investment_value pa_score WATS_weight \n", + "company_id \n", + "US00130H1059 50000 2.105909 0.053998 \n", + "US0138721065 50000 1.262227 0.032365 \n", + "US0158577090 50000 1.262227 0.032365 \n", + "US0185223007 50000 2.063224 0.052903 \n", + "US0188021085 50000 1.987187 0.050954 " + ] + }, + "execution_count": 15, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "portfolio_df['WATS_weight'] = portfolio_df['pa_score'] * (portfolio_df['investment_value'] / weight_for_WATS)\n", + "portfolio_df.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "id": "24fdeb51-94f1-40a4-ace9-5fdce4f5de8f", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Portfolio temperature score based on WATS = 1.8719702807465801\n" + ] + } + ], + "source": [ + "print(f\"Portfolio temperature score based on WATS = {portfolio_df['WATS_weight'].sum()}\")" + ] + }, + { + "cell_type": "markdown", + "id": "95036586-82cc-4230-8946-eb3f7a07d283", + "metadata": {}, + "source": [ + "### Calculate portfolio alignment temperature score based on TETS\n", + "\n", + "We need to carefully meld portfolio data with corp fundamental data (in this case, emissions)" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "id": "fddd23f0-7ca4-4ea8-8a54-ea71fee0f40b", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
company_namecompany_leiinvestment_valuepa_scoreWATS_weightTETS_weight
company_id
US00130H1059AES Corp.2NUNNB7D43COUIRE5295500002.1059090.0539980.043264
US0138721065Alcoa Corp.549300T12EZ1F6PWWU29500001.2622270.0323650.000000
US0158577090Algonquin Power & Utilities Corp.549300K5VIUTJXQL7X75500001.2622270.0323650.007193
US0185223007ALLETE, Inc.549300NNLSIMY6Z8OT86500002.0632240.0529030.015489
US0188021085Alliant Energy5493009ML300G373MZ12500001.9871870.0509540.037716
\n", + "
" + ], + "text/plain": [ + " company_name company_lei \\\n", + "company_id \n", + "US00130H1059 AES Corp. 2NUNNB7D43COUIRE5295 \n", + "US0138721065 Alcoa Corp. 549300T12EZ1F6PWWU29 \n", + "US0158577090 Algonquin Power & Utilities Corp. 549300K5VIUTJXQL7X75 \n", + "US0185223007 ALLETE, Inc. 549300NNLSIMY6Z8OT86 \n", + "US0188021085 Alliant Energy 5493009ML300G373MZ12 \n", + "\n", + " investment_value pa_score WATS_weight TETS_weight \n", + "company_id \n", + "US00130H1059 50000 2.105909 0.053998 0.043264 \n", + "US0138721065 50000 1.262227 0.032365 0.000000 \n", + "US0158577090 50000 1.262227 0.032365 0.007193 \n", + "US0185223007 50000 2.063224 0.052903 0.015489 \n", + "US0188021085 50000 1.987187 0.050954 0.037716 " + ] + }, + "execution_count": 17, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "portfolio_df['TETS_weight'] = vault_company_data.compute_portfolio_weights(portfolio_df['pa_score'], 2019, 'emissions', EScope.S1S2)\n", + "portfolio_df.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "id": "68f22808-4ec2-4167-95ee-5b50f550dc59", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Portfolio temperature score based on TETS = 2.0995755688941156\n" + ] + } + ], + "source": [ + "print(f\"Portfolio temperature score based on TETS = {portfolio_df['TETS_weight'].sum()}\")" + ] + }, + { + "cell_type": "markdown", + "id": "74453d3b-2288-4dfd-bb68-978c0cdf5f67", + "metadata": {}, + "source": [ + "### Calculate portfolio alignment temperature score based on MOTS, EOTS, ECOTS, AOTS, and ROTS\n", + "\n", + "* MOTS = market cap weights\n", + "* EOTS = enterprise value weights\n", + "* ECOTS = EVIC weights\n", + "* AOTS = asset weights\n", + "* ROTS = revenue weights" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "id": "0df8c5fc-2939-4ac1-9448-499803583eb1", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Portfolio temperature score based on MOTS = 1.9553783519299202\n", + "Portfolio temperature score based on EOTS = 1.9642265800595662\n", + "Portfolio temperature score based on ECOTS = 1.9535230492185478\n", + "Portfolio temperature score based on AOTS = 1.7668105855433356\n", + "Portfolio temperature score based on ROTS = 1.7662923761353264\n" + ] + }, + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
company_namecompany_leiinvestment_valuepa_scoreWATS_weightTETS_weightMOTS_weightEOTS_weightECOTS_weightAOTS_weightROTS_weight
company_id
US00130H1059AES Corp.2NUNNB7D43COUIRE5295500002.1059090.0539984.326361e-020.0305320.0190730.0356160.0381410.055800
US0138721065Alcoa Corp.549300T12EZ1F6PWWU29500001.2622270.0323650.000000e+000.0040800.0039920.0060860.0099400.034246
US0158577090Algonquin Power & Utilities Corp.549300K5VIUTJXQL7X75500001.2622270.0323657.193075e-03NaNNaNNaN0.0074200.005339
US0185223007ALLETE, Inc.549300NNLSIMY6Z8OT86500002.0632240.0529031.548850e-020.0089710.0094370.0096660.0060890.006656
US0188021085Alliant Energy5493009ML300G373MZ12500001.9871870.0509543.771644e-020.0363960.0391150.0383270.0178640.018852
US0236081024Ameren Corp.XRZQ5S7HYJFPHJ78L959500002.4219830.0621029.710672e-020.0644850.0664200.0678780.0377190.037224
US0255371017American Electric Power Co., Inc.1B4S6S7G0TW5EE83BO58500002.2681670.0581582.332623e-010.1380650.1649530.1461010.0926550.091788
US05351W1036Avangrid, Inc.549300OX0Q38NLSKPB49500001.2996550.0333245.779251e-050.0047490.0141000.0053680.0240610.021414
US05379B1070Avista Corp.Q0IK63NITJD6RJ47SW96500001.2622270.0323655.288110e-030.0048010.0058670.0050690.0041320.004417
US0921131092Black Hills Corp.3MGELCRSTNSAMJ962671500002.0449670.0524351.002040e-020.0111060.0142550.0117120.0083200.009226
CA1125851040Brookfield Asset ManagementC6J3FGIWG6MBDGTE8F80500001.2622270.0323650.000000e+00NaNNaNNaN0.2201090.222636
US18551QAA58Cleco Partners LP5493002H80P81B3HXL31500001.2622270.0323651.826329e-02NaNNaNNaN0.0050790.005382
US1258961002CMS Energy Corp.549300IA9XFBAGNIBW29500002.0206820.0518124.330570e-020.0517730.0601950.0549040.0291900.035969
US2091151041Consolidated Edison, Inc.54930033SBW53OO8T749500001.5016920.0385053.093297e-030.0554700.0675810.0607190.0469460.049104
US25746U1097Dominion EnergyILUL7B6Z54MRYCF6H308500001.7435130.0447059.386318e-020.1824730.1767830.1922780.0974350.065295
US2333311072DTE Energy549300IX8SD6XXD71I78500002.5745960.0660151.190595e-010.0812320.0979430.0858150.0585760.084823
US26441C2044Duke Energy Corp.I1BZKREC126H0VB1BL91500001.9607950.0502772.807392e-010.1771120.2492580.1872460.1676420.127880
US29364G1031Entergy Corp.4XM3TW50JULSLG8BNC79500001.2622270.0323657.187317e-020.0365230.0494610.0392780.0351420.035709
US30034W1062Evergy, Inc.549300PGTHDQY6PSUI61500002.5194270.0646011.154258e-010.0520000.0583730.0547800.0352260.033728
US30040W1080Eversource EnergySJ7XXD41SQU3ZNWUJ746500001.2622270.0323654.783859e-070.0553590.0558260.0582500.0279400.027988
US3379321074FirstEnergy Corp.549300SVYJS666PQJH88500002.7252570.0698788.684604e-020.0879460.1139920.0952540.0620520.078206
CA3495531079Fortis, Inc.549300MQYQ9Y065XPR71500002.1266740.0545303.330246e-02NaNNaNNaN0.0468880.037256
US4198701009Hawaiian Electric Industries, Inc.JJ8FWOCWCV22X7GUPJ23500002.0491700.0525431.396500e-020.0124170.0122370.0137110.0151610.015315
US6362744095National Grid PLC8R95QZMKZLJX5Q2XR704500001.9724860.0505778.201740e-030.134077NaN0.1420460.0868170.099479
US6680743050Northwestern Corp.3BPWMBHR1R9SHUN7J795500001.7601930.0451337.643218e-030.0074700.0095240.0078700.0057640.005758
US6708371033OG&E Energy Corp.CE5OG6JPOZMDSA0LAQ19500002.6006240.0666834.494730e-020.024324NaNNaN0.0154320.015092
US6896481032Otter Tail Corp.549300HHVBQRQUVKKD91500002.7095760.0694761.208879e-020.0064490.0063000.0068750.0033160.006479
US69331C1080PG&E Corp.1HNPXZSMMB7HMBMVBS46500001.3333780.0341895.576292e-030.0248930.0171540.0295670.0611460.059395
US7234841010Pinnacle West Capital Corp.TWSEY0NEDUDCKS27AH81500001.8412680.0472123.326892e-020.0233280.0277850.0245630.0183150.016621
US69349H1077PNM Resources, Inc.5493003JOBJGLZSDDQ28500001.8965640.0486301.743624e-020.0089380.0110690.0094110.0074510.007189
US7365088472Portland General Electric Co.GJOUP9M7C39GLSK9R870500001.8546060.0475542.421048e-020.010635NaNNaN0.0083790.010239
US69351T1060PPL Corp.9N3UAJSNOUXFKQLF3V18500003.0595050.0784491.508039e-010.0935430.1311270.1024100.0752270.061813
US7445731067Public Service Enterprise GroupPUSS41EMO3E6XXNV3U28500001.2622270.0323652.501795e-020.0478840.0544690.0506570.0324280.033074
US8168511090SempraPBBKGKLRK5S5C0Y4T545500001.3647170.0349931.157839e-030.0720450.0785380.0760040.0482360.038432
US8425871071Southern Co.549300FC3G3YU2FBZD92500002.2497580.0576862.444344e-010.1897500.2228380.2067410.1437420.132199
CA87807B1076TC Energy Corp.549300UGKOFV2IWJJG27500001.2622270.0323651.261891e-03NaNNaNNaN0.0517350.033371
US92840M1027Vistra Corp.549300KP43CPCUJOOG15500001.2622270.0323651.478947e-020.0176480.0249540.0191730.0180830.038762
US92939U1060WEC Energy Group549300IGLYTZUK3PVP70500002.4623150.0631364.164368e-020.1045970.1016080.1101480.0463240.048173
US98389B1008Xcel Energy, Inc.LGJNMI9GH8XIDG5RCM61500001.8666820.0478641.379593e-010.094307NaNNaN0.0506890.055966
\n", + "
" + ], + "text/plain": [ + " company_name company_lei \\\n", + "company_id \n", + "US00130H1059 AES Corp. 2NUNNB7D43COUIRE5295 \n", + "US0138721065 Alcoa Corp. 549300T12EZ1F6PWWU29 \n", + "US0158577090 Algonquin Power & Utilities Corp. 549300K5VIUTJXQL7X75 \n", + "US0185223007 ALLETE, Inc. 549300NNLSIMY6Z8OT86 \n", + "US0188021085 Alliant Energy 5493009ML300G373MZ12 \n", + "US0236081024 Ameren Corp. XRZQ5S7HYJFPHJ78L959 \n", + "US0255371017 American Electric Power Co., Inc. 1B4S6S7G0TW5EE83BO58 \n", + "US05351W1036 Avangrid, Inc. 549300OX0Q38NLSKPB49 \n", + "US05379B1070 Avista Corp. Q0IK63NITJD6RJ47SW96 \n", + "US0921131092 Black Hills Corp. 3MGELCRSTNSAMJ962671 \n", + "CA1125851040 Brookfield Asset Management C6J3FGIWG6MBDGTE8F80 \n", + "US18551QAA58 Cleco Partners LP 5493002H80P81B3HXL31 \n", + "US1258961002 CMS Energy Corp. 549300IA9XFBAGNIBW29 \n", + "US2091151041 Consolidated Edison, Inc. 54930033SBW53OO8T749 \n", + "US25746U1097 Dominion Energy ILUL7B6Z54MRYCF6H308 \n", + "US2333311072 DTE Energy 549300IX8SD6XXD71I78 \n", + "US26441C2044 Duke Energy Corp. I1BZKREC126H0VB1BL91 \n", + "US29364G1031 Entergy Corp. 4XM3TW50JULSLG8BNC79 \n", + "US30034W1062 Evergy, Inc. 549300PGTHDQY6PSUI61 \n", + "US30040W1080 Eversource Energy SJ7XXD41SQU3ZNWUJ746 \n", + "US3379321074 FirstEnergy Corp. 549300SVYJS666PQJH88 \n", + "CA3495531079 Fortis, Inc. 549300MQYQ9Y065XPR71 \n", + "US4198701009 Hawaiian Electric Industries, Inc. JJ8FWOCWCV22X7GUPJ23 \n", + "US6362744095 National Grid PLC 8R95QZMKZLJX5Q2XR704 \n", + "US6680743050 Northwestern Corp. 3BPWMBHR1R9SHUN7J795 \n", + "US6708371033 OG&E Energy Corp. CE5OG6JPOZMDSA0LAQ19 \n", + "US6896481032 Otter Tail Corp. 549300HHVBQRQUVKKD91 \n", + "US69331C1080 PG&E Corp. 1HNPXZSMMB7HMBMVBS46 \n", + "US7234841010 Pinnacle West Capital Corp. TWSEY0NEDUDCKS27AH81 \n", + "US69349H1077 PNM Resources, Inc. 5493003JOBJGLZSDDQ28 \n", + "US7365088472 Portland General Electric Co. GJOUP9M7C39GLSK9R870 \n", + "US69351T1060 PPL Corp. 9N3UAJSNOUXFKQLF3V18 \n", + "US7445731067 Public Service Enterprise Group PUSS41EMO3E6XXNV3U28 \n", + "US8168511090 Sempra PBBKGKLRK5S5C0Y4T545 \n", + "US8425871071 Southern Co. 549300FC3G3YU2FBZD92 \n", + "CA87807B1076 TC Energy Corp. 549300UGKOFV2IWJJG27 \n", + "US92840M1027 Vistra Corp. 549300KP43CPCUJOOG15 \n", + "US92939U1060 WEC Energy Group 549300IGLYTZUK3PVP70 \n", + "US98389B1008 Xcel Energy, Inc. LGJNMI9GH8XIDG5RCM61 \n", + "\n", + " investment_value pa_score WATS_weight TETS_weight \\\n", + "company_id \n", + "US00130H1059 50000 2.105909 0.053998 4.326361e-02 \n", + "US0138721065 50000 1.262227 0.032365 0.000000e+00 \n", + "US0158577090 50000 1.262227 0.032365 7.193075e-03 \n", + "US0185223007 50000 2.063224 0.052903 1.548850e-02 \n", + "US0188021085 50000 1.987187 0.050954 3.771644e-02 \n", + "US0236081024 50000 2.421983 0.062102 9.710672e-02 \n", + "US0255371017 50000 2.268167 0.058158 2.332623e-01 \n", + "US05351W1036 50000 1.299655 0.033324 5.779251e-05 \n", + "US05379B1070 50000 1.262227 0.032365 5.288110e-03 \n", + "US0921131092 50000 2.044967 0.052435 1.002040e-02 \n", + "CA1125851040 50000 1.262227 0.032365 0.000000e+00 \n", + "US18551QAA58 50000 1.262227 0.032365 1.826329e-02 \n", + "US1258961002 50000 2.020682 0.051812 4.330570e-02 \n", + "US2091151041 50000 1.501692 0.038505 3.093297e-03 \n", + "US25746U1097 50000 1.743513 0.044705 9.386318e-02 \n", + "US2333311072 50000 2.574596 0.066015 1.190595e-01 \n", + "US26441C2044 50000 1.960795 0.050277 2.807392e-01 \n", + "US29364G1031 50000 1.262227 0.032365 7.187317e-02 \n", + "US30034W1062 50000 2.519427 0.064601 1.154258e-01 \n", + "US30040W1080 50000 1.262227 0.032365 4.783859e-07 \n", + "US3379321074 50000 2.725257 0.069878 8.684604e-02 \n", + "CA3495531079 50000 2.126674 0.054530 3.330246e-02 \n", + "US4198701009 50000 2.049170 0.052543 1.396500e-02 \n", + "US6362744095 50000 1.972486 0.050577 8.201740e-03 \n", + "US6680743050 50000 1.760193 0.045133 7.643218e-03 \n", + "US6708371033 50000 2.600624 0.066683 4.494730e-02 \n", + "US6896481032 50000 2.709576 0.069476 1.208879e-02 \n", + "US69331C1080 50000 1.333378 0.034189 5.576292e-03 \n", + "US7234841010 50000 1.841268 0.047212 3.326892e-02 \n", + "US69349H1077 50000 1.896564 0.048630 1.743624e-02 \n", + "US7365088472 50000 1.854606 0.047554 2.421048e-02 \n", + "US69351T1060 50000 3.059505 0.078449 1.508039e-01 \n", + "US7445731067 50000 1.262227 0.032365 2.501795e-02 \n", + "US8168511090 50000 1.364717 0.034993 1.157839e-03 \n", + "US8425871071 50000 2.249758 0.057686 2.444344e-01 \n", + "CA87807B1076 50000 1.262227 0.032365 1.261891e-03 \n", + "US92840M1027 50000 1.262227 0.032365 1.478947e-02 \n", + "US92939U1060 50000 2.462315 0.063136 4.164368e-02 \n", + "US98389B1008 50000 1.866682 0.047864 1.379593e-01 \n", + "\n", + " MOTS_weight EOTS_weight ECOTS_weight AOTS_weight ROTS_weight \n", + "company_id \n", + "US00130H1059 0.030532 0.019073 0.035616 0.038141 0.055800 \n", + "US0138721065 0.004080 0.003992 0.006086 0.009940 0.034246 \n", + "US0158577090 NaN NaN NaN 0.007420 0.005339 \n", + "US0185223007 0.008971 0.009437 0.009666 0.006089 0.006656 \n", + "US0188021085 0.036396 0.039115 0.038327 0.017864 0.018852 \n", + "US0236081024 0.064485 0.066420 0.067878 0.037719 0.037224 \n", + "US0255371017 0.138065 0.164953 0.146101 0.092655 0.091788 \n", + "US05351W1036 0.004749 0.014100 0.005368 0.024061 0.021414 \n", + "US05379B1070 0.004801 0.005867 0.005069 0.004132 0.004417 \n", + "US0921131092 0.011106 0.014255 0.011712 0.008320 0.009226 \n", + "CA1125851040 NaN NaN NaN 0.220109 0.222636 \n", + "US18551QAA58 NaN NaN NaN 0.005079 0.005382 \n", + "US1258961002 0.051773 0.060195 0.054904 0.029190 0.035969 \n", + "US2091151041 0.055470 0.067581 0.060719 0.046946 0.049104 \n", + "US25746U1097 0.182473 0.176783 0.192278 0.097435 0.065295 \n", + "US2333311072 0.081232 0.097943 0.085815 0.058576 0.084823 \n", + "US26441C2044 0.177112 0.249258 0.187246 0.167642 0.127880 \n", + "US29364G1031 0.036523 0.049461 0.039278 0.035142 0.035709 \n", + "US30034W1062 0.052000 0.058373 0.054780 0.035226 0.033728 \n", + "US30040W1080 0.055359 0.055826 0.058250 0.027940 0.027988 \n", + "US3379321074 0.087946 0.113992 0.095254 0.062052 0.078206 \n", + "CA3495531079 NaN NaN NaN 0.046888 0.037256 \n", + "US4198701009 0.012417 0.012237 0.013711 0.015161 0.015315 \n", + "US6362744095 0.134077 NaN 0.142046 0.086817 0.099479 \n", + "US6680743050 0.007470 0.009524 0.007870 0.005764 0.005758 \n", + "US6708371033 0.024324 NaN NaN 0.015432 0.015092 \n", + "US6896481032 0.006449 0.006300 0.006875 0.003316 0.006479 \n", + "US69331C1080 0.024893 0.017154 0.029567 0.061146 0.059395 \n", + "US7234841010 0.023328 0.027785 0.024563 0.018315 0.016621 \n", + "US69349H1077 0.008938 0.011069 0.009411 0.007451 0.007189 \n", + "US7365088472 0.010635 NaN NaN 0.008379 0.010239 \n", + "US69351T1060 0.093543 0.131127 0.102410 0.075227 0.061813 \n", + "US7445731067 0.047884 0.054469 0.050657 0.032428 0.033074 \n", + "US8168511090 0.072045 0.078538 0.076004 0.048236 0.038432 \n", + "US8425871071 0.189750 0.222838 0.206741 0.143742 0.132199 \n", + "CA87807B1076 NaN NaN NaN 0.051735 0.033371 \n", + "US92840M1027 0.017648 0.024954 0.019173 0.018083 0.038762 \n", + "US92939U1060 0.104597 0.101608 0.110148 0.046324 0.048173 \n", + "US98389B1008 0.094307 NaN NaN 0.050689 0.055966 " + ] + }, + "execution_count": 19, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "weighting_dict = {\n", + " 'MOTS': 'company_market_cap',\n", + " 'EOTS': 'company_enterprise_value',\n", + " 'ECOTS': 'company_evic',\n", + " 'AOTS': 'company_total_assets',\n", + " 'ROTS': 'company_revenue',\n", + "}\n", + "\n", + "for k, v in weighting_dict.items():\n", + " weight_column = f\"{k}_weight\"\n", + " portfolio_df[weight_column] = vault_company_data.compute_portfolio_weights(portfolio_df['pa_score'], 2019, v, EScope.S1S2)\n", + " print(f\"Portfolio temperature score based on {k} = {portfolio_df[weight_column].sum()}\")\n", + "\n", + "portfolio_df" + ] + }, + { + "cell_type": "markdown", + "id": "02416ac3-892e-4de7-b244-fc8311993ee9", + "metadata": {}, + "source": [ + "### Companies for which we lack production data (and thus cannot chart)" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "id": "d1e39a38-9d3f-4ff7-aa46-965f6cbf4a76", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
company_namecompany_leiinvestment_valuepa_scoreWATS_weightTETS_weightMOTS_weightEOTS_weightECOTS_weightAOTS_weightROTS_weight
company_id
\n", + "
" + ], + "text/plain": [ + "Empty DataFrame\n", + "Columns: [company_name, company_lei, investment_value, pa_score, WATS_weight, TETS_weight, MOTS_weight, EOTS_weight, ECOTS_weight, AOTS_weight, ROTS_weight]\n", + "Index: []" + ] + }, + "execution_count": 20, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "portfolio_df[portfolio_df.pa_score.isnull()]" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "id": "027bf69a-9c4a-48bc-979c-662a7409263d", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[('AES Corp.', '2NUNNB7D43COUIRE5295', 'US00130H1059', 4010, 2019, 'US', 'North America', 10189000000.0, 9420000000.0, 8652000000, 33648000000.0, 1029000000.0),\n", + " ('ALLETE, Inc.', '549300NNLSIMY6Z8OT86', 'US0185223007', 4010, 2019, 'US', 'North America', 1240500000.0, 2825208722.0, 4369708722, 5482800000.0, 69300000.0),\n", + " ('Alcoa Corp.', '549300T12EZ1F6PWWU29', 'US0138721065', 4010, 2019, 'US', 'North America', 10433000000.0, 2100000000.0, 3021000000, 14631000000.0, 879000000.0),\n", + " ('American States Water Co.', '529900L26LIS2V8PWM23', 'US0298991011', 4010, 2019, 'US', 'North America', 473869000.0, 2900179000.0, 3183544000, 1641331000.0, 1334000.0),\n", + " ('Avangrid, Inc.', '549300OX0Q38NLSKPB49', 'US05351W1036', 4010, 2019, 'US', 'North America', 6336000000.0, 2374000000.0, 10364000000, 34394000000.0, 178000000.0),\n", + " ('Avista Corp.', 'Q0IK63NITJD6RJ47SW96', 'US05379B1070', 4010, 2019, 'US', 'North America', 1345622000.0, 2471363713.0, 4440667713, 6082456000.0, 9896000.0),\n", + " ('Black Hills Corp.', '3MGELCRSTNSAMJ962671', 'US0921131092', 4010, 2019, 'US', 'North America', 1734900000.0, 3528768075.0, 6659087075, 7558457000.0, 9777000.0),\n", + " ('Brookfield Asset Management', 'C6J3FGIWG6MBDGTE8F80', 'CA1125851040', 4010, 2019, 'CA', 'North America', 67826000000.0, None, None, 323969000000.0, 6778000000.0),\n", + " ('CARPENTER TECHNOLOGY CORP', 'DX6I6ZD3X5WNNCDJKP85', 'US1442851036', 2410, 2019, 'US', 'North America', 2380200000.0, 1687208892.0, 2210808892, 3187800000.0, 27000000.0),\n", + " ('CMS Energy Corp.', '549300IA9XFBAGNIBW29', 'US1258961002', 4010, 2019, 'US', 'North America', 6845000000.0, 16647000000.0, 28458000000, 26837000000.0, 140000000.0),\n", + " ('COMMERCIAL METALS CO', '549300OQS2LO07ZJ7N73', 'US2017231034', 2410, 2019, 'US', 'North America', 5829002000.0, 2200000000.0, None, 3758771000.0, None),\n", + " ('Algonquin Power & Utilities Corp.', '549300K5VIUTJXQL7X75', 'US0158577090', 4010, 2019, 'CA', 'North America', 1626392000.0, None, None, 10920786000.0, 62485000.0),\n", + " ('Alliant Energy', '5493009ML300G373MZ12', 'US0188021085', 4010, 2019, 'US', 'North America', 3648000000.0, 11900000000.0, 18804000000, 16701000000.0, 16000000.0),\n", + " ('Ameren Corp.', 'XRZQ5S7HYJFPHJ78L959', 'US0236081024', 4010, 2019, 'US', 'North America', 5910000000.0, 17299078950.0, 26198078950, 28933000000.0, 16000000.0),\n", + " ('American Electric Power Co., Inc.', '1B4S6S7G0TW5EE83BO58', 'US0255371017', 4010, 2019, 'US', 'North America', 15561400000.0, 39549558010.0, 69474758010, 75892300000.0, 246800000.0),\n", + " ('Cleco Partners LP', '5493002H80P81B3HXL31', 'US18551QAA58', 4010, 2019, 'US', 'North America', 1639605000.0, None, None, 7476298000.0, 116292000.0),\n", + " ('Consolidated Edison, Inc.', '54930033SBW53OO8T749', 'US2091151041', 4010, 2019, 'US', 'North America', 12574000000.0, 24000000000.0, 42992000000, 58079000000.0, 981000000.0),\n", + " ('DTE Energy', '549300IX8SD6XXD71I78', 'US2333311072', 4010, 2019, 'US', 'North America', 12669000000.0, 20500000000.0, 36342000000, 42268000000.0, 93000000.0),\n", + " ('Dominion Energy', 'ILUL7B6Z54MRYCF6H308', 'US25746U1097', 4010, 2019, 'US', 'North America', 14401000000.0, 68000000000.0, 96863000000, 103823000000.0, 135000000.0),\n", + " ('Duke Energy Corp.', 'I1BZKREC126H0VB1BL91', 'US26441C2044', 4010, 2019, 'US', 'North America', 25079000000.0, 58688204289.0, 121439204289, 158838000000.0, 311000000.0),\n", + " ('Entergy Corp.', '4XM3TW50JULSLG8BNC79', 'US29364G1031', 4010, 2019, 'US', 'North America', 10878673000.0, 18800000000.0, 37434228000, 51723912000.0, 425722000.0),\n", + " ('Evergy, Inc.', '549300PGTHDQY6PSUI61', 'US30034W1062', 4010, 2019, 'US', 'North America', 5147800000.0, 13410149293.0, 22133649293, 25975900000.0, 23200000.0),\n", + " ('Eversource Energy', 'SJ7XXD41SQU3ZNWUJ746', 'US30040W1080', 4010, 2019, 'US', 'North America', 8526470000.0, 28496151703.0, 42251547703, 41123915000.0, 15432000.0),\n", + " ('Exelon Corp.', '3SOUA6IRML7435B56G12', 'US30161N1019', 4010, 2019, 'US', 'North America', 34438000000.0, 35402501369.0, 66144501369, 124977000000.0, 587000000.0),\n", + " ('FirstEnergy Corp.', '549300SVYJS666PQJH88', 'US3379321074', 4010, 2019, 'US', 'North America', 11035000000.0, 20967401361.0, 39958401361, 42301000000.0, 627000000.0),\n", + " ('Fortis, Inc.', '549300MQYQ9Y065XPR71', 'CA3495531079', 4010, 2019, 'CA', 'North America', 6736467578.207348, None, None, 40960299959.7615, 283786064.4354684),\n", + " ('GERDAU S.A.', '254900YDV6SEQQPZVG24', 'US3737371050', 2410, 2019, 'BR', 'Global', 9835514922.966234, None, None, 13397913513.781725, 655382935.9664574),\n", + " ('Hawaiian Electric Industries, Inc.', 'JJ8FWOCWCV22X7GUPJ23', 'US4198701009', 4010, 2019, 'US', 'North America', 2873948000.0, 3937071331.0, 5704623331, 13745251000.0, 196813000.0),\n", + " ('MDU Resources Group', '0T6SBMK3JTBI1JR36794', 'US5526901096', 1410, 2019, 'US', 'North America', 5336776000.0, 4447584104.0, 6624232104, 7683059000.0, 66459000.0),\n", + " ('NUCOR CORP', '549300GGJCRSI2TIEJ46', 'US6703461052', 2410, 2019, 'US', 'North America', 22588858000.0, 12430000000.0, 15186696000, 18344666000.0, 1534605000.0),\n", + " ('National Grid PLC', '8R95QZMKZLJX5Q2XR704', 'US6362744095', 4010, 2019, 'GB', 'Europe', 19393506493.506493, 44164533765.359474, None, 81770129870.12987, 327272727.27272725),\n", + " ('Northwestern Corp.', '3BPWMBHR1R9SHUN7J795', 'US6680743050', 4010, 2019, 'US', 'North America', 1257910000.0, 2757293172.0, 5168962172, 6083486000.0, 5145000.0),\n", + " ('OG&E Energy Corp.', 'CE5OG6JPOZMDSA0LAQ19', 'US6708371033', 4010, 2019, 'US', 'North America', 2231600000.0, 6077156282.0, None, 11024300000.0, None),\n", + " ('Otter Tail Corp.', '549300HHVBQRQUVKKD91', 'US6896481032', 4010, 2019, 'US', 'North America', 919503000.0, 1546518975.0, 2221083975, 2273595000.0, 21199000.0),\n", + " ('PG&E Corp.', '8YQ2GSDWYZXO2EDN3511', 'US69331C1080', 4010, 2019, 'US', 'North America', 17129000000.0, 12130000000.0, 12290000000, 85196000000.0, 1570000000.0),\n", + " ('PNM Resources, Inc.', '5493003JOBJGLZSDDQ28', 'US69349H1077', 4010, 2019, 'US', 'North America', 1457603000.0, 3061885307.0, 5575501307, 7298774000.0, 3833000.0),\n", + " ('POSCO', '988400E5HRVX81AYLM04', 'KR7005490008', 2410, 2019, 'KR', 'Global', 55955872344.10088, None, None, 68553124892.03662, 3035819657.972016),\n", + " ('PPL Corp.', '9N3UAJSNOUXFKQLF3V18', 'US69351T1060', 4010, 2019, 'US', 'North America', 7769000000.0, 19865342074.0, 40943342074, 45680000000.0, 815000000.0),\n", + " ('Pinnacle West Capital Corp.', 'TWSEY0NEDUDCKS27AH81', 'US7234841010', 4010, 2019, 'US', 'North America', 3471209000.0, 8231813171.0, 14415922171, 18479247000.0, 10283000.0),\n", + " ('Portland General Electric Co.', 'GJOUP9M7C39GLSK9R870', 'US7365088472', 4010, 2019, 'US', 'North America', 2123000000.0, 3725882304.0, None, 8394000000.0, None),\n", + " ('Public Service Enterprise Group', 'PUSS41EMO3E6XXNV3U28', 'US7445731067', 4010, 2019, 'US', 'North America', 10076000000.0, 24648067675.0, 41224067675, 47730000000.0, 147000000.0),\n", + " ('STEEL DYNAMICS INC', '549300HGGKEL4FYTTQ83', 'US8581191009', 2410, 2019, 'US', 'North America', 10464991000.0, 4100000000.0, 5452884000, 8275765000.0, 1381460000.0),\n", + " ('Sempra', 'PBBKGKLRK5S5C0Y4T545', 'US8168511090', 4010, 2019, 'US', 'North America', 10829000000.0, 34300000000.0, 54977000000, 65665000000.0, 108000000.0),\n", + " ('Southern Co.', '549300FC3G3YU2FBZD92', 'US8425871071', 4010, 2019, 'US', 'North America', 22596000000.0, 54800000000.0, 94623000000, 118700000000.0, 1975000000.0),\n", + " ('TC Energy Corp.', '549300UGKOFV2IWJJG27', 'CA87807B1076', 4010, 2019, 'CA', 'North America', 10166444011.05982, None, None, 76145937002.94287, 1030066714.9644163),\n", + " ('TENARIS SA', '549300Y7C05BKC4HZB40', 'US88031M1099', 2410, 2019, 'LU', 'Europe', 7294055000.0, None, None, 14842991000.0, 1554299000.0),\n", + " ('TIMKENSTEEL CORP', '549300QZTZWHDE9HJL14', 'US8873991033', 2410, 2019, 'US', 'North America', 1208800000.0, 160935221.0, 302435221, 1085200000.0, 27100000.0),\n", + " ('UNITED STATES STEEL CORP', 'JNLUVFYJT1OZSIQ24U47', 'US9129091081', 2410, 2019, 'US', 'North America', 12937000000.0, 1600000000.0, 4630000000, 11608000000.0, 749000000.0),\n", + " ('Verso Corp.', '549300FODXCTQ8DGT594', 'US92531L2079', 4010, 2019, 'US', 'North America', 2444000000.0, 400452075.0, 364452075, 1695000000.0, 42000000.0),\n", + " ('Vistra Corp.', '549300KP43CPCUJOOG15', 'US92840M1027', 4010, 2019, 'US', 'North America', 11809000000.0, 9084469142.0, 18886469142, 26616000000.0, 300000000.0),\n", + " ('WEC Energy Group', '549300IGLYTZUK3PVP70', 'US92939U1060', 4010, 2019, 'US', 'North America', 7523100000.0, 27600000000.0, 39420800000, 34951800000.0, 37500000.0),\n", + " ('WORTHINGTON INDUSTRIES INC', '1WRCIANKYOIK6KYE5E82', 'US9818111026', 2410, 2019, 'US', 'North America', 3759556000.0, 1633376617.0, 2294113617, 2510796000.0, 92363000.0),\n", + " ('Xcel Energy, Inc.', 'LGJNMI9GH8XIDG5RCM61', 'US98389B1008', 4010, 2019, 'US', 'North America', 11529000000.0, 32825311125.0, None, 50448000000.0, None)]" + ] + }, + "execution_count": 21, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "engine_quant.execute(\"select * from demo.company_data\").fetchall()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "96697928-5b47-4e5a-955c-5892f2311535", + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.8.3" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/examples/vault_demo_n2.ipynb b/examples/vault_demo_n2.ipynb new file mode 100644 index 00000000..d8008bb3 --- /dev/null +++ b/examples/vault_demo_n2.ipynb @@ -0,0 +1,2089 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "e3c5c7d5-63e0-47a5-ac4a-bb58beb98995", + "metadata": {}, + "source": [ + "# Data Vault Demo (User, can only score own portfolio)\n", + "\n", + "The basic concept of the Data Vault is that when a user authenticates themself, they receive an engine that gives them access to all the data (rows, columns, tables, schema, etc.) for which they are authorized. Users who can authenticate themselves for multiple roles can use those roles simultaneously. We are keeping in mind the importance of Data Lineage Management (tracked by issue https://github.com/os-climate/os_c_data_commons/issues/50) but is not treated as part of this particular prototype.\n", + "\n", + "The steps of this demo are:\n", + "\n", + "1. **Authenticate and acquire SQLAlchemy engine**\n", + " 1. Dev engine sees all\n", + " 2. Quant engine can do temp scoring but not see fundamental company info\n", + " 3. **User engine can use temp scoring but not see cumulative emissions nor overshoot info**\n", + "2. With Dev engine, construct Vaults for:\n", + " 1. Fundamental corporate financial information\n", + " 2. Corporate emissions data (base year, historical)\n", + " 3. Corporate target data (start year, end year, target start value, target end value)\n", + " 4. Sector benchmark data (production, CO2e intensity)\n", + "3. Dev Engine: Visualize projected emissions (targets and trajectories) and calculate cumulative emissions\n", + "4. Quant Engine: Using calculated cumulative emmisions, visualize per-company trajectory and target temperature scores\n", + "5. **User Engine: Using consensus probability scoring and own portfolio data (ISIN, position value)**\n", + " 1. **Calculate publishable per-company temperature alignment score**\n", + " 2. **Based on aggregate corporate and portfolio information, produce weighting scores to yield overall portfolio alignment score**" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "id": "d1ab75f1-dc99-422d-b15b-ce043e32fff8", + "metadata": {}, + "outputs": [], + "source": [ + "import os\n", + "import pathlib\n", + "from dotenv import load_dotenv\n", + "\n", + "# Load some standard environment variables from a dot-env file, if it exists.\n", + "# If no such file can be found, does not fail, and so allows these environment vars to\n", + "# be populated in some other way\n", + "dotenv_dir = os.environ.get('CREDENTIAL_DOTENV_DIR', os.environ.get('PWD', '/opt/app-root/src'))\n", + "dotenv_path = pathlib.Path(dotenv_dir) / 'credentials.env'\n", + "if os.path.exists(dotenv_path):\n", + " load_dotenv(dotenv_path=dotenv_path,override=True)\n", + "\n", + "import trino\n", + "from sqlalchemy.engine import create_engine" + ] + }, + { + "cell_type": "markdown", + "id": "837212ac-6d98-46a2-9a18-c5c026feb84c", + "metadata": {}, + "source": [ + "### The ITR module provides Vault objects that coordinate the interaction of Dev, Quant, and User roles.\n", + "\n", + "The SQLAlchemy engines mediate the actual interaction with the Data Vault." + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "id": "969b6d53-49d8-47d9-b218-6bdd790a7de4", + "metadata": {}, + "outputs": [], + "source": [ + "import json\n", + "import pandas as pd\n", + "from numpy.testing import assert_array_equal\n", + "import ITR\n", + "\n", + "# from ITR.portfolio_aggregation import PortfolioAggregationMethod\n", + "# from ITR.temperature_score import TemperatureScore\n", + "# from ITR.configs import ColumnsConfig, TemperatureScoreConfig\n", + "# from ITR.data.data_warehouse import DataWarehouse\n", + "from ITR.data.vault_providers import DataVaultWarehouse, VaultCompanyDataProvider\n", + "# from ITR.interfaces import ICompanyData, EScope, ETimeFrames, PortfolioCompany, IEmissionIntensityBenchmarkScopes, \\\n", + "# IProductionBenchmarkScopes\n", + "from ITR.interfaces import EScope # , IProductionBenchmarkScopes, IEmissionIntensityBenchmarkScopes" + ] + }, + { + "cell_type": "markdown", + "id": "65795474-1de6-4f40-9086-f7d948ae6c66", + "metadata": {}, + "source": [ + "### Step 5: Show per-company temperature score and weighted portfolio alignment score\n", + "\n", + "Portfolio weighting scores (which ultimately influence portfolio alignment score) include:\n", + "* WATS (size of portfolio company positions used as weights)\n", + "* TETS (size of total emissions of portfolio companies used as weights)\n", + "* Financial fundamental weights:\n", + " * Market Cap\n", + " * Enterprise Value\n", + " * Assets\n", + " * Revenues\n", + "\n", + "We can pass a list of company IDs to the Data Vault to get back a sum without exposing granular data" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "3e9113eb-d3ef-409c-aa56-3a0c28662ba2", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "connecting with engine Engine(trino://os-climate-user3@trino-secure-odh-trino.apps.odh-cl1.apps.os-climate.org:443/)\n" + ] + } + ], + "source": [ + "sqlstring = 'trino://{user}@{host}:{port}/'.format(\n", + " user = os.environ['TRINO_USER_USER3'],\n", + " host = os.environ['TRINO_HOST'],\n", + " port = os.environ['TRINO_PORT']\n", + ")\n", + "sqlargs = {\n", + " 'auth': trino.auth.JWTAuthentication(os.environ['TRINO_PASSWD_USER3']),\n", + " 'http_scheme': 'https',\n", + " 'catalog': 'osc_datacommons_dev',\n", + " 'schema': 'demo',\n", + "}\n", + "\n", + "ingest_catalog = 'osc_datacommons_dev'\n", + "ingest_schema = 'demo'\n", + "\n", + "engine_user = create_engine(sqlstring, connect_args = sqlargs)\n", + "print(\"connecting with engine \" + str(engine_user))\n", + "connection_user = engine_user.connect()" + ] + }, + { + "cell_type": "markdown", + "id": "07154a44-d648-40e3-a5cf-8364468356de", + "metadata": {}, + "source": [ + "Show that we *cannot* access fundamental company data (cannot show until op1st team changes permissions) and cumulative emissions" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "a2f9eecb-1f6e-4e40-bab1-690292437815", + "metadata": {}, + "outputs": [], + "source": [ + "vault_warehouse = DataVaultWarehouse(engine_user,\n", + " company_data=None,\n", + " benchmark_projected_production=None,\n", + " benchmarks_projected_emissions_intensity=None,\n", + " ingest_schema = 'demo',\n", + " column_config=None,\n", + " tempscore_config=None)" + ] + }, + { + "cell_type": "markdown", + "id": "df114d27-a6ab-46d9-a942-0e8200c4fcd7", + "metadata": {}, + "source": [ + "Show that we *can* access only temperature scores and weighting methods" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "76d2ad90-ce27-484f-8de9-359153d32979", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
company_namecompany_leiinvestment_value
company_id
US00130H1059AES Corp.2NUNNB7D43COUIRE529550000
US0138721065Alcoa Corp.549300T12EZ1F6PWWU2950000
US0158577090Algonquin Power & Utilities Corp.549300K5VIUTJXQL7X7550000
US0185223007ALLETE, Inc.549300NNLSIMY6Z8OT8650000
US0188021085Alliant Energy5493009ML300G373MZ1250000
............
NaNWells Rural Electric Co.NaN50000
NaNWellsboro Electric Co.NaN50000
NaNWhite River Electric Association, Inc.NaN50000
NaNWilderness Line Holdings, LLCNaN50000
NaNYankee Atomic Electric Co.NaN50000
\n", + "

190 rows × 3 columns

\n", + "
" + ], + "text/plain": [ + " company_name company_lei \\\n", + "company_id \n", + "US00130H1059 AES Corp. 2NUNNB7D43COUIRE5295 \n", + "US0138721065 Alcoa Corp. 549300T12EZ1F6PWWU29 \n", + "US0158577090 Algonquin Power & Utilities Corp. 549300K5VIUTJXQL7X75 \n", + "US0185223007 ALLETE, Inc. 549300NNLSIMY6Z8OT86 \n", + "US0188021085 Alliant Energy 5493009ML300G373MZ12 \n", + "... ... ... \n", + "NaN Wells Rural Electric Co. NaN \n", + "NaN Wellsboro Electric Co. NaN \n", + "NaN White River Electric Association, Inc. NaN \n", + "NaN Wilderness Line Holdings, LLC NaN \n", + "NaN Yankee Atomic Electric Co. NaN \n", + "\n", + " investment_value \n", + "company_id \n", + "US00130H1059 50000 \n", + "US0138721065 50000 \n", + "US0158577090 50000 \n", + "US0185223007 50000 \n", + "US0188021085 50000 \n", + "... ... \n", + "NaN 50000 \n", + "NaN 50000 \n", + "NaN 50000 \n", + "NaN 50000 \n", + "NaN 50000 \n", + "\n", + "[190 rows x 3 columns]" + ] + }, + "execution_count": 5, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# portfolio_df = pd.read_csv(\"data/mdt-20220116-portfolio.csv\", encoding=\"iso-8859-1\", sep=';', index_col='company_id')\n", + "portfolio_df = pd.read_csv(\"data/rmi_all.csv\", encoding=\"iso-8859-1\", sep=',', index_col='company_id')\n", + "portfolio_df" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "id": "746fc07d-ca59-4af8-b5bb-9c4fcf4dea70", + "metadata": {}, + "outputs": [], + "source": [ + "vault_company_data = VaultCompanyDataProvider (engine_user,\n", + " company_table='company_data',\n", + " target_table=None,\n", + " trajectory_table=None,\n", + " company_schema='demo',\n", + " column_config=None,\n", + " tempscore_config=None)" + ] + }, + { + "cell_type": "markdown", + "id": "e2d9942b-ec81-4eab-9cca-99e92905e24f", + "metadata": {}, + "source": [ + "### Calculate portfolio alignment temperature score based on WATS\n", + "\n", + "We can do this with information exclusive to the user space (and the probability-adjusted temperature scores)\n", + "\n", + "Note that companies with no production information (such as TITAL INTERNATIONAL INC and UNIVERSAL STAINLESS & ALLOY PRODUCTS INC will show NaN (Not a Number) as a score." + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "id": "3840f2c6-a938-43b0-b24e-37f0b284d2c6", + "metadata": {}, + "outputs": [], + "source": [ + "# PA_SCORE means \"Probability-Adjusted\" Temperature Score\n", + "portfolio_df['pa_score'] = vault_warehouse.get_pa_temp_scores(probability=0.5, company_ids=portfolio_df.index.values)" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "id": "8031e3a0-3d22-4f16-8a9a-e85f855f1b02", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
company_namecompany_leiinvestment_valuepa_scoreWATS_weight
company_id
US00130H1059AES Corp.2NUNNB7D43COUIRE5295500002.1059090.053998
US0185223007ALLETE, Inc.549300NNLSIMY6Z8OT86500002.0632240.052903
US0138721065Alcoa Corp.549300T12EZ1F6PWWU29500001.2622270.032365
US0158577090Algonquin Power & Utilities Corp.549300K5VIUTJXQL7X75500001.2622270.032365
US0188021085Alliant Energy5493009ML300G373MZ12500001.9871870.050954
US0236081024Ameren Corp.XRZQ5S7HYJFPHJ78L959500002.4219830.062102
US0255371017American Electric Power Co., Inc.1B4S6S7G0TW5EE83BO58500002.2681670.058158
US05351W1036Avangrid, Inc.549300OX0Q38NLSKPB49500001.2996550.033324
US05379B1070Avista Corp.Q0IK63NITJD6RJ47SW96500001.2622270.032365
US0921131092Black Hills Corp.3MGELCRSTNSAMJ962671500002.0449670.052435
CA1125851040Brookfield Asset ManagementC6J3FGIWG6MBDGTE8F80500001.2622270.032365
US1258961002CMS Energy Corp.549300IA9XFBAGNIBW29500002.0206820.051812
US18551QAA58Cleco Partners LP5493002H80P81B3HXL31500001.2622270.032365
US2091151041Consolidated Edison, Inc.54930033SBW53OO8T749500001.5016920.038505
US2333311072DTE Energy549300IX8SD6XXD71I78500002.5745960.066015
US25746U1097Dominion EnergyILUL7B6Z54MRYCF6H308500001.7435130.044705
US26441C2044Duke Energy Corp.I1BZKREC126H0VB1BL91500001.9607950.050277
US29364G1031Entergy Corp.4XM3TW50JULSLG8BNC79500001.2622270.032365
US30034W1062Evergy, Inc.549300PGTHDQY6PSUI61500002.5194270.064601
US30040W1080Eversource EnergySJ7XXD41SQU3ZNWUJ746500001.2622270.032365
US3379321074FirstEnergy Corp.549300SVYJS666PQJH88500002.7252570.069878
CA3495531079Fortis, Inc.549300MQYQ9Y065XPR71500002.1266740.054530
US4198701009Hawaiian Electric Industries, Inc.JJ8FWOCWCV22X7GUPJ23500002.0491700.052543
US6362744095National Grid PLC8R95QZMKZLJX5Q2XR704500001.9724860.050577
US6680743050Northwestern Corp.3BPWMBHR1R9SHUN7J795500001.7601930.045133
US6708371033OG&E Energy Corp.CE5OG6JPOZMDSA0LAQ19500002.6006240.066683
US6896481032Otter Tail Corp.549300HHVBQRQUVKKD91500002.7095760.069476
US69331C1080PG&E Corp.1HNPXZSMMB7HMBMVBS46500001.3333780.034189
US69349H1077PNM Resources, Inc.5493003JOBJGLZSDDQ28500001.8965640.048630
US69351T1060PPL Corp.9N3UAJSNOUXFKQLF3V18500003.0595050.078449
US7234841010Pinnacle West Capital Corp.TWSEY0NEDUDCKS27AH81500001.8412680.047212
US7365088472Portland General Electric Co.GJOUP9M7C39GLSK9R870500001.8546060.047554
US7445731067Public Service Enterprise GroupPUSS41EMO3E6XXNV3U28500001.2622270.032365
US8168511090SempraPBBKGKLRK5S5C0Y4T545500001.3647170.034993
US8425871071Southern Co.549300FC3G3YU2FBZD92500002.2497580.057686
CA87807B1076TC Energy Corp.549300UGKOFV2IWJJG27500001.2622270.032365
US92840M1027Vistra Corp.549300KP43CPCUJOOG15500001.2622270.032365
US92939U1060WEC Energy Group549300IGLYTZUK3PVP70500002.4623150.063136
US98389B1008Xcel Energy, Inc.LGJNMI9GH8XIDG5RCM61500001.8666820.047864
\n", + "
" + ], + "text/plain": [ + " company_name company_lei \\\n", + "company_id \n", + "US00130H1059 AES Corp. 2NUNNB7D43COUIRE5295 \n", + "US0185223007 ALLETE, Inc. 549300NNLSIMY6Z8OT86 \n", + "US0138721065 Alcoa Corp. 549300T12EZ1F6PWWU29 \n", + "US0158577090 Algonquin Power & Utilities Corp. 549300K5VIUTJXQL7X75 \n", + "US0188021085 Alliant Energy 5493009ML300G373MZ12 \n", + "US0236081024 Ameren Corp. XRZQ5S7HYJFPHJ78L959 \n", + "US0255371017 American Electric Power Co., Inc. 1B4S6S7G0TW5EE83BO58 \n", + "US05351W1036 Avangrid, Inc. 549300OX0Q38NLSKPB49 \n", + "US05379B1070 Avista Corp. Q0IK63NITJD6RJ47SW96 \n", + "US0921131092 Black Hills Corp. 3MGELCRSTNSAMJ962671 \n", + "CA1125851040 Brookfield Asset Management C6J3FGIWG6MBDGTE8F80 \n", + "US1258961002 CMS Energy Corp. 549300IA9XFBAGNIBW29 \n", + "US18551QAA58 Cleco Partners LP 5493002H80P81B3HXL31 \n", + "US2091151041 Consolidated Edison, Inc. 54930033SBW53OO8T749 \n", + "US2333311072 DTE Energy 549300IX8SD6XXD71I78 \n", + "US25746U1097 Dominion Energy ILUL7B6Z54MRYCF6H308 \n", + "US26441C2044 Duke Energy Corp. I1BZKREC126H0VB1BL91 \n", + "US29364G1031 Entergy Corp. 4XM3TW50JULSLG8BNC79 \n", + "US30034W1062 Evergy, Inc. 549300PGTHDQY6PSUI61 \n", + "US30040W1080 Eversource Energy SJ7XXD41SQU3ZNWUJ746 \n", + "US3379321074 FirstEnergy Corp. 549300SVYJS666PQJH88 \n", + "CA3495531079 Fortis, Inc. 549300MQYQ9Y065XPR71 \n", + "US4198701009 Hawaiian Electric Industries, Inc. JJ8FWOCWCV22X7GUPJ23 \n", + "US6362744095 National Grid PLC 8R95QZMKZLJX5Q2XR704 \n", + "US6680743050 Northwestern Corp. 3BPWMBHR1R9SHUN7J795 \n", + "US6708371033 OG&E Energy Corp. CE5OG6JPOZMDSA0LAQ19 \n", + "US6896481032 Otter Tail Corp. 549300HHVBQRQUVKKD91 \n", + "US69331C1080 PG&E Corp. 1HNPXZSMMB7HMBMVBS46 \n", + "US69349H1077 PNM Resources, Inc. 5493003JOBJGLZSDDQ28 \n", + "US69351T1060 PPL Corp. 9N3UAJSNOUXFKQLF3V18 \n", + "US7234841010 Pinnacle West Capital Corp. TWSEY0NEDUDCKS27AH81 \n", + "US7365088472 Portland General Electric Co. GJOUP9M7C39GLSK9R870 \n", + "US7445731067 Public Service Enterprise Group PUSS41EMO3E6XXNV3U28 \n", + "US8168511090 Sempra PBBKGKLRK5S5C0Y4T545 \n", + "US8425871071 Southern Co. 549300FC3G3YU2FBZD92 \n", + "CA87807B1076 TC Energy Corp. 549300UGKOFV2IWJJG27 \n", + "US92840M1027 Vistra Corp. 549300KP43CPCUJOOG15 \n", + "US92939U1060 WEC Energy Group 549300IGLYTZUK3PVP70 \n", + "US98389B1008 Xcel Energy, Inc. LGJNMI9GH8XIDG5RCM61 \n", + "\n", + " investment_value pa_score WATS_weight \n", + "company_id \n", + "US00130H1059 50000 2.105909 0.053998 \n", + "US0185223007 50000 2.063224 0.052903 \n", + "US0138721065 50000 1.262227 0.032365 \n", + "US0158577090 50000 1.262227 0.032365 \n", + "US0188021085 50000 1.987187 0.050954 \n", + "US0236081024 50000 2.421983 0.062102 \n", + "US0255371017 50000 2.268167 0.058158 \n", + "US05351W1036 50000 1.299655 0.033324 \n", + "US05379B1070 50000 1.262227 0.032365 \n", + "US0921131092 50000 2.044967 0.052435 \n", + "CA1125851040 50000 1.262227 0.032365 \n", + "US1258961002 50000 2.020682 0.051812 \n", + "US18551QAA58 50000 1.262227 0.032365 \n", + "US2091151041 50000 1.501692 0.038505 \n", + "US2333311072 50000 2.574596 0.066015 \n", + "US25746U1097 50000 1.743513 0.044705 \n", + "US26441C2044 50000 1.960795 0.050277 \n", + "US29364G1031 50000 1.262227 0.032365 \n", + "US30034W1062 50000 2.519427 0.064601 \n", + "US30040W1080 50000 1.262227 0.032365 \n", + "US3379321074 50000 2.725257 0.069878 \n", + "CA3495531079 50000 2.126674 0.054530 \n", + "US4198701009 50000 2.049170 0.052543 \n", + "US6362744095 50000 1.972486 0.050577 \n", + "US6680743050 50000 1.760193 0.045133 \n", + "US6708371033 50000 2.600624 0.066683 \n", + "US6896481032 50000 2.709576 0.069476 \n", + "US69331C1080 50000 1.333378 0.034189 \n", + "US69349H1077 50000 1.896564 0.048630 \n", + "US69351T1060 50000 3.059505 0.078449 \n", + "US7234841010 50000 1.841268 0.047212 \n", + "US7365088472 50000 1.854606 0.047554 \n", + "US7445731067 50000 1.262227 0.032365 \n", + "US8168511090 50000 1.364717 0.034993 \n", + "US8425871071 50000 2.249758 0.057686 \n", + "CA87807B1076 50000 1.262227 0.032365 \n", + "US92840M1027 50000 1.262227 0.032365 \n", + "US92939U1060 50000 2.462315 0.063136 \n", + "US98389B1008 50000 1.866682 0.047864 " + ] + }, + "execution_count": 17, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# portfolio_df[portfolio_df.company_name=='POSCO']\n", + "portfolio_df.dropna(inplace=True)\n", + "portfolio_df.sort_values(by='company_name')" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "id": "0e9f1e29-ccb8-4b59-a1ba-95fdf792bf76", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "1950000" + ] + }, + "execution_count": 18, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "weight_for_WATS = portfolio_df['investment_value'].sum()\n", + "weight_for_WATS" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "id": "f3193208-3029-40d4-a7a2-e820a32eea56", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
company_namecompany_leiinvestment_valuepa_scoreWATS_weight
company_id
US00130H1059AES Corp.2NUNNB7D43COUIRE5295500002.1059090.053998
US0138721065Alcoa Corp.549300T12EZ1F6PWWU29500001.2622270.032365
US0158577090Algonquin Power & Utilities Corp.549300K5VIUTJXQL7X75500001.2622270.032365
US0185223007ALLETE, Inc.549300NNLSIMY6Z8OT86500002.0632240.052903
US0188021085Alliant Energy5493009ML300G373MZ12500001.9871870.050954
\n", + "
" + ], + "text/plain": [ + " company_name company_lei \\\n", + "company_id \n", + "US00130H1059 AES Corp. 2NUNNB7D43COUIRE5295 \n", + "US0138721065 Alcoa Corp. 549300T12EZ1F6PWWU29 \n", + "US0158577090 Algonquin Power & Utilities Corp. 549300K5VIUTJXQL7X75 \n", + "US0185223007 ALLETE, Inc. 549300NNLSIMY6Z8OT86 \n", + "US0188021085 Alliant Energy 5493009ML300G373MZ12 \n", + "\n", + " investment_value pa_score WATS_weight \n", + "company_id \n", + "US00130H1059 50000 2.105909 0.053998 \n", + "US0138721065 50000 1.262227 0.032365 \n", + "US0158577090 50000 1.262227 0.032365 \n", + "US0185223007 50000 2.063224 0.052903 \n", + "US0188021085 50000 1.987187 0.050954 " + ] + }, + "execution_count": 19, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "portfolio_df['WATS_weight'] = portfolio_df['pa_score'] * (portfolio_df['investment_value'] / weight_for_WATS)\n", + "portfolio_df.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "id": "24fdeb51-94f1-40a4-ace9-5fdce4f5de8f", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Portfolio temperature score based on WATS = 1.8719702807465801\n" + ] + } + ], + "source": [ + "print(f\"Portfolio temperature score based on WATS = {portfolio_df['WATS_weight'].sum()}\")" + ] + }, + { + "cell_type": "markdown", + "id": "95036586-82cc-4230-8946-eb3f7a07d283", + "metadata": {}, + "source": [ + "### Calculate portfolio alignment temperature score based on TETS\n", + "\n", + "We need to carefully meld portfolio data with corp fundamental data (in this case, emissions)" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "id": "fddd23f0-7ca4-4ea8-8a54-ea71fee0f40b", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
company_namecompany_leiinvestment_valuepa_scoreWATS_weightTETS_weight
company_id
US00130H1059AES Corp.2NUNNB7D43COUIRE5295500002.1059090.0539980.043264
US0138721065Alcoa Corp.549300T12EZ1F6PWWU29500001.2622270.0323650.000000
US0158577090Algonquin Power & Utilities Corp.549300K5VIUTJXQL7X75500001.2622270.0323650.007193
US0185223007ALLETE, Inc.549300NNLSIMY6Z8OT86500002.0632240.0529030.015489
US0188021085Alliant Energy5493009ML300G373MZ12500001.9871870.0509540.037716
\n", + "
" + ], + "text/plain": [ + " company_name company_lei \\\n", + "company_id \n", + "US00130H1059 AES Corp. 2NUNNB7D43COUIRE5295 \n", + "US0138721065 Alcoa Corp. 549300T12EZ1F6PWWU29 \n", + "US0158577090 Algonquin Power & Utilities Corp. 549300K5VIUTJXQL7X75 \n", + "US0185223007 ALLETE, Inc. 549300NNLSIMY6Z8OT86 \n", + "US0188021085 Alliant Energy 5493009ML300G373MZ12 \n", + "\n", + " investment_value pa_score WATS_weight TETS_weight \n", + "company_id \n", + "US00130H1059 50000 2.105909 0.053998 0.043264 \n", + "US0138721065 50000 1.262227 0.032365 0.000000 \n", + "US0158577090 50000 1.262227 0.032365 0.007193 \n", + "US0185223007 50000 2.063224 0.052903 0.015489 \n", + "US0188021085 50000 1.987187 0.050954 0.037716 " + ] + }, + "execution_count": 21, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "portfolio_df['TETS_weight'] = vault_company_data.compute_portfolio_weights(portfolio_df['pa_score'], 2019, 'emissions', EScope.S1S2)\n", + "portfolio_df.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "id": "68f22808-4ec2-4167-95ee-5b50f550dc59", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Portfolio temperature score based on TETS = 2.0995755688941156\n" + ] + } + ], + "source": [ + "print(f\"Portfolio temperature score based on TETS = {portfolio_df['TETS_weight'].sum()}\")" + ] + }, + { + "cell_type": "markdown", + "id": "74453d3b-2288-4dfd-bb68-978c0cdf5f67", + "metadata": {}, + "source": [ + "### Calculate portfolio alignment temperature score based on MOTS, EOTS, ECOTS, AOTS, and ROTS\n", + "\n", + "* MOTS = market cap weights\n", + "* EOTS = enterprise value weights\n", + "* ECOTS = EVIC weights\n", + "* AOTS = asset weights\n", + "* ROTS = revenue weights" + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "id": "0df8c5fc-2939-4ac1-9448-499803583eb1", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Portfolio temperature score based on MOTS = 1.9553783519299202\n", + "Portfolio temperature score based on EOTS = 1.9642265800595662\n", + "Portfolio temperature score based on ECOTS = 1.9535230492185478\n", + "Portfolio temperature score based on AOTS = 1.7668105855433356\n", + "Portfolio temperature score based on ROTS = 1.7662923761353264\n" + ] + }, + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
company_namecompany_leiinvestment_valuepa_scoreWATS_weightTETS_weightMOTS_weightEOTS_weightECOTS_weightAOTS_weightROTS_weight
company_id
US00130H1059AES Corp.2NUNNB7D43COUIRE5295500002.1059090.0539984.326361e-020.0305320.0190730.0356160.0381410.055800
US0138721065Alcoa Corp.549300T12EZ1F6PWWU29500001.2622270.0323650.000000e+000.0040800.0039920.0060860.0099400.034246
US0158577090Algonquin Power & Utilities Corp.549300K5VIUTJXQL7X75500001.2622270.0323657.193075e-03NaNNaNNaN0.0074200.005339
US0185223007ALLETE, Inc.549300NNLSIMY6Z8OT86500002.0632240.0529031.548850e-020.0089710.0094370.0096660.0060890.006656
US0188021085Alliant Energy5493009ML300G373MZ12500001.9871870.0509543.771644e-020.0363960.0391150.0383270.0178640.018852
US0236081024Ameren Corp.XRZQ5S7HYJFPHJ78L959500002.4219830.0621029.710672e-020.0644850.0664200.0678780.0377190.037224
US0255371017American Electric Power Co., Inc.1B4S6S7G0TW5EE83BO58500002.2681670.0581582.332623e-010.1380650.1649530.1461010.0926550.091788
US05351W1036Avangrid, Inc.549300OX0Q38NLSKPB49500001.2996550.0333245.779251e-050.0047490.0141000.0053680.0240610.021414
US05379B1070Avista Corp.Q0IK63NITJD6RJ47SW96500001.2622270.0323655.288110e-030.0048010.0058670.0050690.0041320.004417
US0921131092Black Hills Corp.3MGELCRSTNSAMJ962671500002.0449670.0524351.002040e-020.0111060.0142550.0117120.0083200.009226
CA1125851040Brookfield Asset ManagementC6J3FGIWG6MBDGTE8F80500001.2622270.0323650.000000e+00NaNNaNNaN0.2201090.222636
US18551QAA58Cleco Partners LP5493002H80P81B3HXL31500001.2622270.0323651.826329e-02NaNNaNNaN0.0050790.005382
US1258961002CMS Energy Corp.549300IA9XFBAGNIBW29500002.0206820.0518124.330570e-020.0517730.0601950.0549040.0291900.035969
US2091151041Consolidated Edison, Inc.54930033SBW53OO8T749500001.5016920.0385053.093297e-030.0554700.0675810.0607190.0469460.049104
US25746U1097Dominion EnergyILUL7B6Z54MRYCF6H308500001.7435130.0447059.386318e-020.1824730.1767830.1922780.0974350.065295
US2333311072DTE Energy549300IX8SD6XXD71I78500002.5745960.0660151.190595e-010.0812320.0979430.0858150.0585760.084823
US26441C2044Duke Energy Corp.I1BZKREC126H0VB1BL91500001.9607950.0502772.807392e-010.1771120.2492580.1872460.1676420.127880
US29364G1031Entergy Corp.4XM3TW50JULSLG8BNC79500001.2622270.0323657.187317e-020.0365230.0494610.0392780.0351420.035709
US30034W1062Evergy, Inc.549300PGTHDQY6PSUI61500002.5194270.0646011.154258e-010.0520000.0583730.0547800.0352260.033728
US30040W1080Eversource EnergySJ7XXD41SQU3ZNWUJ746500001.2622270.0323654.783859e-070.0553590.0558260.0582500.0279400.027988
US3379321074FirstEnergy Corp.549300SVYJS666PQJH88500002.7252570.0698788.684604e-020.0879460.1139920.0952540.0620520.078206
CA3495531079Fortis, Inc.549300MQYQ9Y065XPR71500002.1266740.0545303.330246e-02NaNNaNNaN0.0468880.037256
US4198701009Hawaiian Electric Industries, Inc.JJ8FWOCWCV22X7GUPJ23500002.0491700.0525431.396500e-020.0124170.0122370.0137110.0151610.015315
US6362744095National Grid PLC8R95QZMKZLJX5Q2XR704500001.9724860.0505778.201740e-030.134077NaN0.1420460.0868170.099479
US6680743050Northwestern Corp.3BPWMBHR1R9SHUN7J795500001.7601930.0451337.643218e-030.0074700.0095240.0078700.0057640.005758
US6708371033OG&E Energy Corp.CE5OG6JPOZMDSA0LAQ19500002.6006240.0666834.494730e-020.024324NaNNaN0.0154320.015092
US6896481032Otter Tail Corp.549300HHVBQRQUVKKD91500002.7095760.0694761.208879e-020.0064490.0063000.0068750.0033160.006479
US69331C1080PG&E Corp.1HNPXZSMMB7HMBMVBS46500001.3333780.0341895.576292e-030.0248930.0171540.0295670.0611460.059395
US7234841010Pinnacle West Capital Corp.TWSEY0NEDUDCKS27AH81500001.8412680.0472123.326892e-020.0233280.0277850.0245630.0183150.016621
US69349H1077PNM Resources, Inc.5493003JOBJGLZSDDQ28500001.8965640.0486301.743624e-020.0089380.0110690.0094110.0074510.007189
US7365088472Portland General Electric Co.GJOUP9M7C39GLSK9R870500001.8546060.0475542.421048e-020.010635NaNNaN0.0083790.010239
US69351T1060PPL Corp.9N3UAJSNOUXFKQLF3V18500003.0595050.0784491.508039e-010.0935430.1311270.1024100.0752270.061813
US7445731067Public Service Enterprise GroupPUSS41EMO3E6XXNV3U28500001.2622270.0323652.501795e-020.0478840.0544690.0506570.0324280.033074
US8168511090SempraPBBKGKLRK5S5C0Y4T545500001.3647170.0349931.157839e-030.0720450.0785380.0760040.0482360.038432
US8425871071Southern Co.549300FC3G3YU2FBZD92500002.2497580.0576862.444344e-010.1897500.2228380.2067410.1437420.132199
CA87807B1076TC Energy Corp.549300UGKOFV2IWJJG27500001.2622270.0323651.261891e-03NaNNaNNaN0.0517350.033371
US92840M1027Vistra Corp.549300KP43CPCUJOOG15500001.2622270.0323651.478947e-020.0176480.0249540.0191730.0180830.038762
US92939U1060WEC Energy Group549300IGLYTZUK3PVP70500002.4623150.0631364.164368e-020.1045970.1016080.1101480.0463240.048173
US98389B1008Xcel Energy, Inc.LGJNMI9GH8XIDG5RCM61500001.8666820.0478641.379593e-010.094307NaNNaN0.0506890.055966
\n", + "
" + ], + "text/plain": [ + " company_name company_lei \\\n", + "company_id \n", + "US00130H1059 AES Corp. 2NUNNB7D43COUIRE5295 \n", + "US0138721065 Alcoa Corp. 549300T12EZ1F6PWWU29 \n", + "US0158577090 Algonquin Power & Utilities Corp. 549300K5VIUTJXQL7X75 \n", + "US0185223007 ALLETE, Inc. 549300NNLSIMY6Z8OT86 \n", + "US0188021085 Alliant Energy 5493009ML300G373MZ12 \n", + "US0236081024 Ameren Corp. XRZQ5S7HYJFPHJ78L959 \n", + "US0255371017 American Electric Power Co., Inc. 1B4S6S7G0TW5EE83BO58 \n", + "US05351W1036 Avangrid, Inc. 549300OX0Q38NLSKPB49 \n", + "US05379B1070 Avista Corp. Q0IK63NITJD6RJ47SW96 \n", + "US0921131092 Black Hills Corp. 3MGELCRSTNSAMJ962671 \n", + "CA1125851040 Brookfield Asset Management C6J3FGIWG6MBDGTE8F80 \n", + "US18551QAA58 Cleco Partners LP 5493002H80P81B3HXL31 \n", + "US1258961002 CMS Energy Corp. 549300IA9XFBAGNIBW29 \n", + "US2091151041 Consolidated Edison, Inc. 54930033SBW53OO8T749 \n", + "US25746U1097 Dominion Energy ILUL7B6Z54MRYCF6H308 \n", + "US2333311072 DTE Energy 549300IX8SD6XXD71I78 \n", + "US26441C2044 Duke Energy Corp. I1BZKREC126H0VB1BL91 \n", + "US29364G1031 Entergy Corp. 4XM3TW50JULSLG8BNC79 \n", + "US30034W1062 Evergy, Inc. 549300PGTHDQY6PSUI61 \n", + "US30040W1080 Eversource Energy SJ7XXD41SQU3ZNWUJ746 \n", + "US3379321074 FirstEnergy Corp. 549300SVYJS666PQJH88 \n", + "CA3495531079 Fortis, Inc. 549300MQYQ9Y065XPR71 \n", + "US4198701009 Hawaiian Electric Industries, Inc. JJ8FWOCWCV22X7GUPJ23 \n", + "US6362744095 National Grid PLC 8R95QZMKZLJX5Q2XR704 \n", + "US6680743050 Northwestern Corp. 3BPWMBHR1R9SHUN7J795 \n", + "US6708371033 OG&E Energy Corp. CE5OG6JPOZMDSA0LAQ19 \n", + "US6896481032 Otter Tail Corp. 549300HHVBQRQUVKKD91 \n", + "US69331C1080 PG&E Corp. 1HNPXZSMMB7HMBMVBS46 \n", + "US7234841010 Pinnacle West Capital Corp. TWSEY0NEDUDCKS27AH81 \n", + "US69349H1077 PNM Resources, Inc. 5493003JOBJGLZSDDQ28 \n", + "US7365088472 Portland General Electric Co. GJOUP9M7C39GLSK9R870 \n", + "US69351T1060 PPL Corp. 9N3UAJSNOUXFKQLF3V18 \n", + "US7445731067 Public Service Enterprise Group PUSS41EMO3E6XXNV3U28 \n", + "US8168511090 Sempra PBBKGKLRK5S5C0Y4T545 \n", + "US8425871071 Southern Co. 549300FC3G3YU2FBZD92 \n", + "CA87807B1076 TC Energy Corp. 549300UGKOFV2IWJJG27 \n", + "US92840M1027 Vistra Corp. 549300KP43CPCUJOOG15 \n", + "US92939U1060 WEC Energy Group 549300IGLYTZUK3PVP70 \n", + "US98389B1008 Xcel Energy, Inc. LGJNMI9GH8XIDG5RCM61 \n", + "\n", + " investment_value pa_score WATS_weight TETS_weight \\\n", + "company_id \n", + "US00130H1059 50000 2.105909 0.053998 4.326361e-02 \n", + "US0138721065 50000 1.262227 0.032365 0.000000e+00 \n", + "US0158577090 50000 1.262227 0.032365 7.193075e-03 \n", + "US0185223007 50000 2.063224 0.052903 1.548850e-02 \n", + "US0188021085 50000 1.987187 0.050954 3.771644e-02 \n", + "US0236081024 50000 2.421983 0.062102 9.710672e-02 \n", + "US0255371017 50000 2.268167 0.058158 2.332623e-01 \n", + "US05351W1036 50000 1.299655 0.033324 5.779251e-05 \n", + "US05379B1070 50000 1.262227 0.032365 5.288110e-03 \n", + "US0921131092 50000 2.044967 0.052435 1.002040e-02 \n", + "CA1125851040 50000 1.262227 0.032365 0.000000e+00 \n", + "US18551QAA58 50000 1.262227 0.032365 1.826329e-02 \n", + "US1258961002 50000 2.020682 0.051812 4.330570e-02 \n", + "US2091151041 50000 1.501692 0.038505 3.093297e-03 \n", + "US25746U1097 50000 1.743513 0.044705 9.386318e-02 \n", + "US2333311072 50000 2.574596 0.066015 1.190595e-01 \n", + "US26441C2044 50000 1.960795 0.050277 2.807392e-01 \n", + "US29364G1031 50000 1.262227 0.032365 7.187317e-02 \n", + "US30034W1062 50000 2.519427 0.064601 1.154258e-01 \n", + "US30040W1080 50000 1.262227 0.032365 4.783859e-07 \n", + "US3379321074 50000 2.725257 0.069878 8.684604e-02 \n", + "CA3495531079 50000 2.126674 0.054530 3.330246e-02 \n", + "US4198701009 50000 2.049170 0.052543 1.396500e-02 \n", + "US6362744095 50000 1.972486 0.050577 8.201740e-03 \n", + "US6680743050 50000 1.760193 0.045133 7.643218e-03 \n", + "US6708371033 50000 2.600624 0.066683 4.494730e-02 \n", + "US6896481032 50000 2.709576 0.069476 1.208879e-02 \n", + "US69331C1080 50000 1.333378 0.034189 5.576292e-03 \n", + "US7234841010 50000 1.841268 0.047212 3.326892e-02 \n", + "US69349H1077 50000 1.896564 0.048630 1.743624e-02 \n", + "US7365088472 50000 1.854606 0.047554 2.421048e-02 \n", + "US69351T1060 50000 3.059505 0.078449 1.508039e-01 \n", + "US7445731067 50000 1.262227 0.032365 2.501795e-02 \n", + "US8168511090 50000 1.364717 0.034993 1.157839e-03 \n", + "US8425871071 50000 2.249758 0.057686 2.444344e-01 \n", + "CA87807B1076 50000 1.262227 0.032365 1.261891e-03 \n", + "US92840M1027 50000 1.262227 0.032365 1.478947e-02 \n", + "US92939U1060 50000 2.462315 0.063136 4.164368e-02 \n", + "US98389B1008 50000 1.866682 0.047864 1.379593e-01 \n", + "\n", + " MOTS_weight EOTS_weight ECOTS_weight AOTS_weight ROTS_weight \n", + "company_id \n", + "US00130H1059 0.030532 0.019073 0.035616 0.038141 0.055800 \n", + "US0138721065 0.004080 0.003992 0.006086 0.009940 0.034246 \n", + "US0158577090 NaN NaN NaN 0.007420 0.005339 \n", + "US0185223007 0.008971 0.009437 0.009666 0.006089 0.006656 \n", + "US0188021085 0.036396 0.039115 0.038327 0.017864 0.018852 \n", + "US0236081024 0.064485 0.066420 0.067878 0.037719 0.037224 \n", + "US0255371017 0.138065 0.164953 0.146101 0.092655 0.091788 \n", + "US05351W1036 0.004749 0.014100 0.005368 0.024061 0.021414 \n", + "US05379B1070 0.004801 0.005867 0.005069 0.004132 0.004417 \n", + "US0921131092 0.011106 0.014255 0.011712 0.008320 0.009226 \n", + "CA1125851040 NaN NaN NaN 0.220109 0.222636 \n", + "US18551QAA58 NaN NaN NaN 0.005079 0.005382 \n", + "US1258961002 0.051773 0.060195 0.054904 0.029190 0.035969 \n", + "US2091151041 0.055470 0.067581 0.060719 0.046946 0.049104 \n", + "US25746U1097 0.182473 0.176783 0.192278 0.097435 0.065295 \n", + "US2333311072 0.081232 0.097943 0.085815 0.058576 0.084823 \n", + "US26441C2044 0.177112 0.249258 0.187246 0.167642 0.127880 \n", + "US29364G1031 0.036523 0.049461 0.039278 0.035142 0.035709 \n", + "US30034W1062 0.052000 0.058373 0.054780 0.035226 0.033728 \n", + "US30040W1080 0.055359 0.055826 0.058250 0.027940 0.027988 \n", + "US3379321074 0.087946 0.113992 0.095254 0.062052 0.078206 \n", + "CA3495531079 NaN NaN NaN 0.046888 0.037256 \n", + "US4198701009 0.012417 0.012237 0.013711 0.015161 0.015315 \n", + "US6362744095 0.134077 NaN 0.142046 0.086817 0.099479 \n", + "US6680743050 0.007470 0.009524 0.007870 0.005764 0.005758 \n", + "US6708371033 0.024324 NaN NaN 0.015432 0.015092 \n", + "US6896481032 0.006449 0.006300 0.006875 0.003316 0.006479 \n", + "US69331C1080 0.024893 0.017154 0.029567 0.061146 0.059395 \n", + "US7234841010 0.023328 0.027785 0.024563 0.018315 0.016621 \n", + "US69349H1077 0.008938 0.011069 0.009411 0.007451 0.007189 \n", + "US7365088472 0.010635 NaN NaN 0.008379 0.010239 \n", + "US69351T1060 0.093543 0.131127 0.102410 0.075227 0.061813 \n", + "US7445731067 0.047884 0.054469 0.050657 0.032428 0.033074 \n", + "US8168511090 0.072045 0.078538 0.076004 0.048236 0.038432 \n", + "US8425871071 0.189750 0.222838 0.206741 0.143742 0.132199 \n", + "CA87807B1076 NaN NaN NaN 0.051735 0.033371 \n", + "US92840M1027 0.017648 0.024954 0.019173 0.018083 0.038762 \n", + "US92939U1060 0.104597 0.101608 0.110148 0.046324 0.048173 \n", + "US98389B1008 0.094307 NaN NaN 0.050689 0.055966 " + ] + }, + "execution_count": 23, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "weighting_dict = {\n", + " 'MOTS': 'company_market_cap',\n", + " 'EOTS': 'company_enterprise_value',\n", + " 'ECOTS': 'company_evic',\n", + " 'AOTS': 'company_total_assets',\n", + " 'ROTS': 'company_revenue',\n", + "}\n", + "\n", + "for k, v in weighting_dict.items():\n", + " weight_column = f\"{k}_weight\"\n", + " portfolio_df[weight_column] = vault_company_data.compute_portfolio_weights(portfolio_df['pa_score'], 2019, v, EScope.S1S2)\n", + " print(f\"Portfolio temperature score based on {k} = {portfolio_df[weight_column].sum()}\")\n", + "\n", + "portfolio_df" + ] + }, + { + "cell_type": "markdown", + "id": "02416ac3-892e-4de7-b244-fc8311993ee9", + "metadata": {}, + "source": [ + "### Companies for which we lack production data (and thus cannot chart)" + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "id": "d1e39a38-9d3f-4ff7-aa46-965f6cbf4a76", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
company_namecompany_leiinvestment_valuepa_scoreWATS_weightTETS_weightMOTS_weightEOTS_weightECOTS_weightAOTS_weightROTS_weight
company_id
\n", + "
" + ], + "text/plain": [ + "Empty DataFrame\n", + "Columns: [company_name, company_lei, investment_value, pa_score, WATS_weight, TETS_weight, MOTS_weight, EOTS_weight, ECOTS_weight, AOTS_weight, ROTS_weight]\n", + "Index: []" + ] + }, + "execution_count": 24, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "portfolio_df[portfolio_df.pa_score.isnull()]" + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "id": "027bf69a-9c4a-48bc-979c-662a7409263d", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[('AES Corp.', '2NUNNB7D43COUIRE5295', 'US00130H1059', 4010, 2019, 'US', 'North America', 10189000000.0, 9420000000.0, 8652000000, 33648000000.0, 1029000000.0),\n", + " ('ALLETE, Inc.', '549300NNLSIMY6Z8OT86', 'US0185223007', 4010, 2019, 'US', 'North America', 1240500000.0, 2825208722.0, 4369708722, 5482800000.0, 69300000.0),\n", + " ('Alcoa Corp.', '549300T12EZ1F6PWWU29', 'US0138721065', 4010, 2019, 'US', 'North America', 10433000000.0, 2100000000.0, 3021000000, 14631000000.0, 879000000.0),\n", + " ('American States Water Co.', '529900L26LIS2V8PWM23', 'US0298991011', 4010, 2019, 'US', 'North America', 473869000.0, 2900179000.0, 3183544000, 1641331000.0, 1334000.0),\n", + " ('Avangrid, Inc.', '549300OX0Q38NLSKPB49', 'US05351W1036', 4010, 2019, 'US', 'North America', 6336000000.0, 2374000000.0, 10364000000, 34394000000.0, 178000000.0),\n", + " ('Avista Corp.', 'Q0IK63NITJD6RJ47SW96', 'US05379B1070', 4010, 2019, 'US', 'North America', 1345622000.0, 2471363713.0, 4440667713, 6082456000.0, 9896000.0),\n", + " ('Black Hills Corp.', '3MGELCRSTNSAMJ962671', 'US0921131092', 4010, 2019, 'US', 'North America', 1734900000.0, 3528768075.0, 6659087075, 7558457000.0, 9777000.0),\n", + " ('Brookfield Asset Management', 'C6J3FGIWG6MBDGTE8F80', 'CA1125851040', 4010, 2019, 'CA', 'North America', 67826000000.0, None, None, 323969000000.0, 6778000000.0),\n", + " ('CARPENTER TECHNOLOGY CORP', 'DX6I6ZD3X5WNNCDJKP85', 'US1442851036', 2410, 2019, 'US', 'North America', 2380200000.0, 1687208892.0, 2210808892, 3187800000.0, 27000000.0),\n", + " ('CMS Energy Corp.', '549300IA9XFBAGNIBW29', 'US1258961002', 4010, 2019, 'US', 'North America', 6845000000.0, 16647000000.0, 28458000000, 26837000000.0, 140000000.0),\n", + " ('COMMERCIAL METALS CO', '549300OQS2LO07ZJ7N73', 'US2017231034', 2410, 2019, 'US', 'North America', 5829002000.0, 2200000000.0, None, 3758771000.0, None),\n", + " ('Algonquin Power & Utilities Corp.', '549300K5VIUTJXQL7X75', 'US0158577090', 4010, 2019, 'CA', 'North America', 1626392000.0, None, None, 10920786000.0, 62485000.0),\n", + " ('Alliant Energy', '5493009ML300G373MZ12', 'US0188021085', 4010, 2019, 'US', 'North America', 3648000000.0, 11900000000.0, 18804000000, 16701000000.0, 16000000.0),\n", + " ('Ameren Corp.', 'XRZQ5S7HYJFPHJ78L959', 'US0236081024', 4010, 2019, 'US', 'North America', 5910000000.0, 17299078950.0, 26198078950, 28933000000.0, 16000000.0),\n", + " ('American Electric Power Co., Inc.', '1B4S6S7G0TW5EE83BO58', 'US0255371017', 4010, 2019, 'US', 'North America', 15561400000.0, 39549558010.0, 69474758010, 75892300000.0, 246800000.0),\n", + " ('Cleco Partners LP', '5493002H80P81B3HXL31', 'US18551QAA58', 4010, 2019, 'US', 'North America', 1639605000.0, None, None, 7476298000.0, 116292000.0),\n", + " ('Consolidated Edison, Inc.', '54930033SBW53OO8T749', 'US2091151041', 4010, 2019, 'US', 'North America', 12574000000.0, 24000000000.0, 42992000000, 58079000000.0, 981000000.0),\n", + " ('DTE Energy', '549300IX8SD6XXD71I78', 'US2333311072', 4010, 2019, 'US', 'North America', 12669000000.0, 20500000000.0, 36342000000, 42268000000.0, 93000000.0),\n", + " ('Dominion Energy', 'ILUL7B6Z54MRYCF6H308', 'US25746U1097', 4010, 2019, 'US', 'North America', 14401000000.0, 68000000000.0, 96863000000, 103823000000.0, 135000000.0),\n", + " ('Duke Energy Corp.', 'I1BZKREC126H0VB1BL91', 'US26441C2044', 4010, 2019, 'US', 'North America', 25079000000.0, 58688204289.0, 121439204289, 158838000000.0, 311000000.0),\n", + " ('Entergy Corp.', '4XM3TW50JULSLG8BNC79', 'US29364G1031', 4010, 2019, 'US', 'North America', 10878673000.0, 18800000000.0, 37434228000, 51723912000.0, 425722000.0),\n", + " ('Evergy, Inc.', '549300PGTHDQY6PSUI61', 'US30034W1062', 4010, 2019, 'US', 'North America', 5147800000.0, 13410149293.0, 22133649293, 25975900000.0, 23200000.0),\n", + " ('Eversource Energy', 'SJ7XXD41SQU3ZNWUJ746', 'US30040W1080', 4010, 2019, 'US', 'North America', 8526470000.0, 28496151703.0, 42251547703, 41123915000.0, 15432000.0),\n", + " ('Exelon Corp.', '3SOUA6IRML7435B56G12', 'US30161N1019', 4010, 2019, 'US', 'North America', 34438000000.0, 35402501369.0, 66144501369, 124977000000.0, 587000000.0),\n", + " ('FirstEnergy Corp.', '549300SVYJS666PQJH88', 'US3379321074', 4010, 2019, 'US', 'North America', 11035000000.0, 20967401361.0, 39958401361, 42301000000.0, 627000000.0),\n", + " ('Fortis, Inc.', '549300MQYQ9Y065XPR71', 'CA3495531079', 4010, 2019, 'CA', 'North America', 6736467578.207348, None, None, 40960299959.7615, 283786064.4354684),\n", + " ('GERDAU S.A.', '254900YDV6SEQQPZVG24', 'US3737371050', 2410, 2019, 'BR', 'Global', 9835514922.966234, None, None, 13397913513.781725, 655382935.9664574),\n", + " ('Hawaiian Electric Industries, Inc.', 'JJ8FWOCWCV22X7GUPJ23', 'US4198701009', 4010, 2019, 'US', 'North America', 2873948000.0, 3937071331.0, 5704623331, 13745251000.0, 196813000.0),\n", + " ('MDU Resources Group', '0T6SBMK3JTBI1JR36794', 'US5526901096', 1410, 2019, 'US', 'North America', 5336776000.0, 4447584104.0, 6624232104, 7683059000.0, 66459000.0),\n", + " ('NUCOR CORP', '549300GGJCRSI2TIEJ46', 'US6703461052', 2410, 2019, 'US', 'North America', 22588858000.0, 12430000000.0, 15186696000, 18344666000.0, 1534605000.0),\n", + " ('National Grid PLC', '8R95QZMKZLJX5Q2XR704', 'US6362744095', 4010, 2019, 'GB', 'Europe', 19393506493.506493, 44164533765.359474, None, 81770129870.12987, 327272727.27272725),\n", + " ('Northwestern Corp.', '3BPWMBHR1R9SHUN7J795', 'US6680743050', 4010, 2019, 'US', 'North America', 1257910000.0, 2757293172.0, 5168962172, 6083486000.0, 5145000.0),\n", + " ('OG&E Energy Corp.', 'CE5OG6JPOZMDSA0LAQ19', 'US6708371033', 4010, 2019, 'US', 'North America', 2231600000.0, 6077156282.0, None, 11024300000.0, None),\n", + " ('Otter Tail Corp.', '549300HHVBQRQUVKKD91', 'US6896481032', 4010, 2019, 'US', 'North America', 919503000.0, 1546518975.0, 2221083975, 2273595000.0, 21199000.0),\n", + " ('PG&E Corp.', '8YQ2GSDWYZXO2EDN3511', 'US69331C1080', 4010, 2019, 'US', 'North America', 17129000000.0, 12130000000.0, 12290000000, 85196000000.0, 1570000000.0),\n", + " ('PNM Resources, Inc.', '5493003JOBJGLZSDDQ28', 'US69349H1077', 4010, 2019, 'US', 'North America', 1457603000.0, 3061885307.0, 5575501307, 7298774000.0, 3833000.0),\n", + " ('POSCO', '988400E5HRVX81AYLM04', 'KR7005490008', 2410, 2019, 'KR', 'Global', 55955872344.10088, None, None, 68553124892.03662, 3035819657.972016),\n", + " ('PPL Corp.', '9N3UAJSNOUXFKQLF3V18', 'US69351T1060', 4010, 2019, 'US', 'North America', 7769000000.0, 19865342074.0, 40943342074, 45680000000.0, 815000000.0),\n", + " ('Pinnacle West Capital Corp.', 'TWSEY0NEDUDCKS27AH81', 'US7234841010', 4010, 2019, 'US', 'North America', 3471209000.0, 8231813171.0, 14415922171, 18479247000.0, 10283000.0),\n", + " ('Portland General Electric Co.', 'GJOUP9M7C39GLSK9R870', 'US7365088472', 4010, 2019, 'US', 'North America', 2123000000.0, 3725882304.0, None, 8394000000.0, None),\n", + " ('Public Service Enterprise Group', 'PUSS41EMO3E6XXNV3U28', 'US7445731067', 4010, 2019, 'US', 'North America', 10076000000.0, 24648067675.0, 41224067675, 47730000000.0, 147000000.0),\n", + " ('STEEL DYNAMICS INC', '549300HGGKEL4FYTTQ83', 'US8581191009', 2410, 2019, 'US', 'North America', 10464991000.0, 4100000000.0, 5452884000, 8275765000.0, 1381460000.0),\n", + " ('Sempra', 'PBBKGKLRK5S5C0Y4T545', 'US8168511090', 4010, 2019, 'US', 'North America', 10829000000.0, 34300000000.0, 54977000000, 65665000000.0, 108000000.0),\n", + " ('Southern Co.', '549300FC3G3YU2FBZD92', 'US8425871071', 4010, 2019, 'US', 'North America', 22596000000.0, 54800000000.0, 94623000000, 118700000000.0, 1975000000.0),\n", + " ('TC Energy Corp.', '549300UGKOFV2IWJJG27', 'CA87807B1076', 4010, 2019, 'CA', 'North America', 10166444011.05982, None, None, 76145937002.94287, 1030066714.9644163),\n", + " ('TENARIS SA', '549300Y7C05BKC4HZB40', 'US88031M1099', 2410, 2019, 'LU', 'Europe', 7294055000.0, None, None, 14842991000.0, 1554299000.0),\n", + " ('TIMKENSTEEL CORP', '549300QZTZWHDE9HJL14', 'US8873991033', 2410, 2019, 'US', 'North America', 1208800000.0, 160935221.0, 302435221, 1085200000.0, 27100000.0),\n", + " ('UNITED STATES STEEL CORP', 'JNLUVFYJT1OZSIQ24U47', 'US9129091081', 2410, 2019, 'US', 'North America', 12937000000.0, 1600000000.0, 4630000000, 11608000000.0, 749000000.0),\n", + " ('Verso Corp.', '549300FODXCTQ8DGT594', 'US92531L2079', 4010, 2019, 'US', 'North America', 2444000000.0, 400452075.0, 364452075, 1695000000.0, 42000000.0),\n", + " ('Vistra Corp.', '549300KP43CPCUJOOG15', 'US92840M1027', 4010, 2019, 'US', 'North America', 11809000000.0, 9084469142.0, 18886469142, 26616000000.0, 300000000.0),\n", + " ('WEC Energy Group', '549300IGLYTZUK3PVP70', 'US92939U1060', 4010, 2019, 'US', 'North America', 7523100000.0, 27600000000.0, 39420800000, 34951800000.0, 37500000.0),\n", + " ('WORTHINGTON INDUSTRIES INC', '1WRCIANKYOIK6KYE5E82', 'US9818111026', 2410, 2019, 'US', 'North America', 3759556000.0, 1633376617.0, 2294113617, 2510796000.0, 92363000.0),\n", + " ('Xcel Energy, Inc.', 'LGJNMI9GH8XIDG5RCM61', 'US98389B1008', 4010, 2019, 'US', 'North America', 11529000000.0, 32825311125.0, None, 50448000000.0, None)]" + ] + }, + "execution_count": 25, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "engine_user.execute(\"select * from demo.company_data\").fetchall()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "96697928-5b47-4e5a-955c-5892f2311535", + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.8.3" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} From b5bb3615b62fd85acde9ca708720600099fc33a0 Mon Sep 17 00:00:00 2001 From: MichaelTiemannOSC Date: Wed, 2 Feb 2022 12:36:47 +0000 Subject: [PATCH 022/345] Checking in outputs of current vault notebooks Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- examples/vault_demo_cleanup.ipynb | 12 +- examples/vault_demo_n1.ipynb | 644 +++++++++++++++--------------- examples/vault_demo_n2.ipynb | 169 +++----- 3 files changed, 396 insertions(+), 429 deletions(-) diff --git a/examples/vault_demo_cleanup.ipynb b/examples/vault_demo_cleanup.ipynb index ff9bed88..2e044a3d 100644 --- a/examples/vault_demo_cleanup.ipynb +++ b/examples/vault_demo_cleanup.ipynb @@ -97,8 +97,12 @@ { "data": { "text/plain": [ - "[('cat',),\n", + "[('benchmark_ei',),\n", + " ('benchmark_prod',),\n", + " ('cat',),\n", " ('company_data',),\n", + " ('cumulative_budget_1',),\n", + " ('cumulative_emissions',),\n", " ('data_vault',),\n", " ('demo_metastore',),\n", " ('emissions_data',),\n", @@ -116,9 +120,11 @@ " ('odsc_xxx',),\n", " ('osc_mlcop',),\n", " ('osc_rocks',),\n", + " ('overshoot_ratios',),\n", " ('parquet_partitions_tutorial',),\n", " ('production_data',),\n", " ('pudl_1995_al',),\n", + " ('temperature_scores',),\n", " ('test3',),\n", " ('trajectory_data',),\n", " ('zztop',)]" @@ -188,7 +194,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "Cleaning up Dev tables\n", + "Cleaning up Quant tables\n", "connecting with engine Engine(trino://os-climate-user2@trino-secure-odh-trino.apps.odh-cl1.apps.os-climate.org:443/)\n" ] }, @@ -214,9 +220,11 @@ " ('odsc_xxx',),\n", " ('osc_mlcop',),\n", " ('osc_rocks',),\n", + " ('overshoot_ratios',),\n", " ('parquet_partitions_tutorial',),\n", " ('production_data',),\n", " ('pudl_1995_al',),\n", + " ('temperature_scores',),\n", " ('test3',),\n", " ('trajectory_data',),\n", " ('zztop',)]" diff --git a/examples/vault_demo_n1.ipynb b/examples/vault_demo_n1.ipynb index 49c2ca09..a8e6dc4d 100644 --- a/examples/vault_demo_n1.ipynb +++ b/examples/vault_demo_n1.ipynb @@ -227,26 +227,36 @@ " \n", " \n", " 0\n", - " Hawaiian Electric Industries, Inc.\n", - " US4198701009\n", + " PNM Resources, Inc.\n", + " US69349H1077\n", " demo\n", " S1+S2\n", " benchmark_1\n", - " 2.335098\n", - " 1.763241\n", + " 2.168789\n", + " 1.624339\n", " \n", " \n", " 1\n", - " Northwestern Corp.\n", - " US6680743050\n", + " OG&E Energy Corp.\n", + " US6708371033\n", " demo\n", " S1+S2\n", " benchmark_1\n", - " 1.857969\n", - " 1.662417\n", + " 2.480501\n", + " 2.720746\n", " \n", " \n", " 2\n", + " Alcoa Corp.\n", + " US0138721065\n", + " demo\n", + " S1+S2\n", + " benchmark_1\n", + " 1.262227\n", + " 1.262227\n", + " \n", + " \n", + " 3\n", " Sempra\n", " US8168511090\n", " demo\n", @@ -256,9 +266,9 @@ " 1.344634\n", " \n", " \n", - " 3\n", - " Brookfield Asset Management\n", - " CA1125851040\n", + " 4\n", + " Public Service Enterprise Group\n", + " US7445731067\n", " demo\n", " S1+S2\n", " benchmark_1\n", @@ -266,27 +276,37 @@ " 1.262227\n", " \n", " \n", - " 4\n", - " Black Hills Corp.\n", - " US0921131092\n", + " 5\n", + " CMS Energy Corp.\n", + " US1258961002\n", " demo\n", " S1+S2\n", " benchmark_1\n", - " 2.205830\n", - " 1.884104\n", + " 2.289516\n", + " 1.751847\n", " \n", " \n", - " 5\n", - " Xcel Energy, Inc.\n", - " US98389B1008\n", + " 6\n", + " Ameren Corp.\n", + " US0236081024\n", " demo\n", " S1+S2\n", " benchmark_1\n", - " 2.146173\n", - " 1.587192\n", + " 2.642690\n", + " 2.201277\n", " \n", " \n", - " 6\n", + " 7\n", + " Black Hills Corp.\n", + " US0921131092\n", + " demo\n", + " S1+S2\n", + " benchmark_1\n", + " 2.205830\n", + " 1.884104\n", + " \n", + " \n", + " 8\n", " PPL Corp.\n", " US69351T1060\n", " demo\n", @@ -296,7 +316,7 @@ " 2.863050\n", " \n", " \n", - " 7\n", + " 9\n", " Dominion Energy\n", " US25746U1097\n", " demo\n", @@ -306,7 +326,7 @@ " 1.636624\n", " \n", " \n", - " 8\n", + " 10\n", " Algonquin Power & Utilities Corp.\n", " US0158577090\n", " demo\n", @@ -316,7 +336,7 @@ " 1.262227\n", " \n", " \n", - " 9\n", + " 11\n", " TIMKENSTEEL CORP\n", " US8873991033\n", " demo\n", @@ -326,404 +346,384 @@ " 1.281435\n", " \n", " \n", - " 10\n", - " Pinnacle West Capital Corp.\n", - " US7234841010\n", - " demo\n", - " S1+S2\n", - " benchmark_1\n", - " 2.066292\n", - " 1.616243\n", - " \n", - " \n", - " 11\n", - " Alcoa Corp.\n", - " US0138721065\n", - " demo\n", - " S1+S2\n", - " benchmark_1\n", - " 1.262227\n", - " 1.262227\n", - " \n", - " \n", " 12\n", - " OG&E Energy Corp.\n", - " US6708371033\n", + " Hawaiian Electric Industries, Inc.\n", + " US4198701009\n", " demo\n", " S1+S2\n", " benchmark_1\n", - " 2.480501\n", - " 2.720746\n", + " 2.335098\n", + " 1.763241\n", " \n", " \n", " 13\n", - " American Electric Power Co., Inc.\n", - " US0255371017\n", + " Eversource Energy\n", + " US30040W1080\n", " demo\n", " S1+S2\n", " benchmark_1\n", - " 2.482552\n", - " 2.053782\n", + " 1.262227\n", + " 1.262227\n", " \n", " \n", " 14\n", - " Duke Energy Corp.\n", - " US26441C2044\n", + " DTE Energy\n", + " US2333311072\n", " demo\n", " S1+S2\n", " benchmark_1\n", - " 2.070475\n", - " 1.851114\n", + " 2.906939\n", + " 2.242253\n", " \n", " \n", " 15\n", - " Evergy, Inc.\n", - " US30034W1062\n", + " ALLETE, Inc.\n", + " US0185223007\n", " demo\n", " S1+S2\n", " benchmark_1\n", - " 2.676849\n", - " 2.362005\n", + " 2.190575\n", + " 1.935872\n", " \n", " \n", " 16\n", - " Consolidated Edison, Inc.\n", - " US2091151041\n", + " Avista Corp.\n", + " US05379B1070\n", " demo\n", " S1+S2\n", " benchmark_1\n", - " 1.576269\n", - " 1.427115\n", + " 1.262227\n", + " 1.262227\n", " \n", " \n", " 17\n", - " Southern Co.\n", - " US8425871071\n", + " WORTHINGTON INDUSTRIES INC\n", + " US9818111026\n", " demo\n", " S1+S2\n", " benchmark_1\n", - " 2.328599\n", - " 2.170918\n", + " 1.267906\n", + " 1.267906\n", " \n", " \n", " 18\n", - " Vistra Corp.\n", - " US92840M1027\n", + " GERDAU S.A.\n", + " US3737371050\n", " demo\n", " S1+S2\n", " benchmark_1\n", - " 1.262227\n", - " 1.262227\n", + " 1.432999\n", + " 1.346019\n", " \n", " \n", " 19\n", - " POSCO\n", - " KR7005490008\n", + " NUCOR CORP\n", + " US6703461052\n", " demo\n", " S1+S2\n", " benchmark_1\n", - " 1.655297\n", - " 1.460259\n", + " 1.318407\n", + " 1.301686\n", " \n", " \n", " 20\n", - " FirstEnergy Corp.\n", - " US3379321074\n", + " PG&E Corp.\n", + " US69331C1080\n", " demo\n", " S1+S2\n", " benchmark_1\n", - " 3.373977\n", - " 2.076536\n", + " 1.357883\n", + " 1.308873\n", " \n", " \n", " 21\n", - " Alliant Energy\n", - " US0188021085\n", + " Verso Corp.\n", + " US92531L2079\n", " demo\n", " S1+S2\n", " benchmark_1\n", - " 2.170023\n", - " 1.804351\n", + " 1.262227\n", + " 1.262227\n", " \n", " \n", " 22\n", - " Eversource Energy\n", - " US30040W1080\n", + " COMMERCIAL METALS CO\n", + " US2017231034\n", " demo\n", " S1+S2\n", " benchmark_1\n", - " 1.262227\n", - " 1.262227\n", + " 1.333292\n", + " 1.295746\n", " \n", " \n", " 23\n", - " DTE Energy\n", - " US2333311072\n", + " Fortis, Inc.\n", + " CA3495531079\n", " demo\n", " S1+S2\n", " benchmark_1\n", - " 2.906939\n", - " 2.242253\n", + " 2.442952\n", + " 1.810396\n", " \n", " \n", " 24\n", - " Public Service Enterprise Group\n", - " US7445731067\n", + " Otter Tail Corp.\n", + " US6896481032\n", " demo\n", " S1+S2\n", " benchmark_1\n", - " 1.262227\n", - " 1.262227\n", + " 2.583744\n", + " 2.835409\n", " \n", " \n", " 25\n", - " GERDAU S.A.\n", - " US3737371050\n", + " Cleco Partners LP\n", + " US18551QAA58\n", " demo\n", " S1+S2\n", " benchmark_1\n", - " 1.432999\n", - " 1.346019\n", + " 1.262227\n", + " 1.262227\n", " \n", " \n", " 26\n", - " Cleco Partners LP\n", - " US18551QAA58\n", + " WEC Energy Group\n", + " US92939U1060\n", " demo\n", " S1+S2\n", " benchmark_1\n", - " 1.262227\n", - " 1.262227\n", + " 2.428914\n", + " 2.495716\n", " \n", " \n", " 27\n", - " TC Energy Corp.\n", - " CA87807B1076\n", + " Pinnacle West Capital Corp.\n", + " US7234841010\n", " demo\n", " S1+S2\n", " benchmark_1\n", - " 1.262227\n", - " 1.262227\n", + " 2.066292\n", + " 1.616243\n", " \n", " \n", " 28\n", - " TENARIS SA\n", - " US88031M1099\n", + " Xcel Energy, Inc.\n", + " US98389B1008\n", " demo\n", " S1+S2\n", " benchmark_1\n", - " 1.317665\n", - " 1.317665\n", + " 2.146173\n", + " 1.587192\n", " \n", " \n", " 29\n", - " Avangrid, Inc.\n", - " US05351W1036\n", + " Brookfield Asset Management\n", + " CA1125851040\n", " demo\n", " S1+S2\n", " benchmark_1\n", - " 1.327895\n", - " 1.271416\n", + " 1.262227\n", + " 1.262227\n", " \n", " \n", " 30\n", - " UNITED STATES STEEL CORP\n", - " US9129091081\n", + " Northwestern Corp.\n", + " US6680743050\n", " demo\n", " S1+S2\n", " benchmark_1\n", - " 1.623504\n", - " 1.445919\n", + " 1.857969\n", + " 1.662417\n", " \n", " \n", " 31\n", - " AES Corp.\n", - " US00130H1059\n", + " UNITED STATES STEEL CORP\n", + " US9129091081\n", " demo\n", " S1+S2\n", " benchmark_1\n", - " 2.351806\n", - " 1.860013\n", + " 1.623504\n", + " 1.445919\n", " \n", " \n", " 32\n", - " NUCOR CORP\n", - " US6703461052\n", + " TC Energy Corp.\n", + " CA87807B1076\n", " demo\n", " S1+S2\n", " benchmark_1\n", - " 1.318407\n", - " 1.301686\n", + " 1.262227\n", + " 1.262227\n", " \n", " \n", " 33\n", - " PG&E Corp.\n", - " US69331C1080\n", + " AES Corp.\n", + " US00130H1059\n", " demo\n", " S1+S2\n", " benchmark_1\n", - " 1.357883\n", - " 1.308873\n", + " 2.351806\n", + " 1.860013\n", " \n", " \n", " 34\n", - " Verso Corp.\n", - " US92531L2079\n", + " TENARIS SA\n", + " US88031M1099\n", " demo\n", " S1+S2\n", " benchmark_1\n", - " 1.262227\n", - " 1.262227\n", + " 1.317665\n", + " 1.317665\n", " \n", " \n", " 35\n", - " COMMERCIAL METALS CO\n", - " US2017231034\n", + " Avangrid, Inc.\n", + " US05351W1036\n", " demo\n", " S1+S2\n", " benchmark_1\n", - " 1.333292\n", - " 1.295746\n", + " 1.327895\n", + " 1.271416\n", " \n", " \n", " 36\n", - " Fortis, Inc.\n", - " CA3495531079\n", + " CARPENTER TECHNOLOGY CORP\n", + " US1442851036\n", " demo\n", " S1+S2\n", " benchmark_1\n", - " 2.442952\n", - " 1.810396\n", + " 1.584922\n", + " 1.408775\n", " \n", " \n", " 37\n", - " Entergy Corp.\n", - " US29364G1031\n", + " American Electric Power Co., Inc.\n", + " US0255371017\n", " demo\n", " S1+S2\n", " benchmark_1\n", - " 1.262227\n", - " 1.262227\n", + " 2.482552\n", + " 2.053782\n", " \n", " \n", " 38\n", - " CMS Energy Corp.\n", - " US1258961002\n", + " Duke Energy Corp.\n", + " US26441C2044\n", " demo\n", " S1+S2\n", " benchmark_1\n", - " 2.289516\n", - " 1.751847\n", + " 2.070475\n", + " 1.851114\n", " \n", " \n", " 39\n", - " Avista Corp.\n", - " US05379B1070\n", + " Evergy, Inc.\n", + " US30034W1062\n", " demo\n", " S1+S2\n", " benchmark_1\n", - " 1.262227\n", - " 1.262227\n", + " 2.676849\n", + " 2.362005\n", " \n", " \n", " 40\n", - " ALLETE, Inc.\n", - " US0185223007\n", + " Vistra Corp.\n", + " US92840M1027\n", " demo\n", " S1+S2\n", " benchmark_1\n", - " 2.190575\n", - " 1.935872\n", + " 1.262227\n", + " 1.262227\n", " \n", " \n", " 41\n", - " Ameren Corp.\n", - " US0236081024\n", + " Consolidated Edison, Inc.\n", + " US2091151041\n", " demo\n", " S1+S2\n", " benchmark_1\n", - " 2.642690\n", - " 2.201277\n", + " 1.576269\n", + " 1.427115\n", " \n", " \n", " 42\n", - " WEC Energy Group\n", - " US92939U1060\n", + " Southern Co.\n", + " US8425871071\n", " demo\n", " S1+S2\n", " benchmark_1\n", - " 2.428914\n", - " 2.495716\n", + " 2.328599\n", + " 2.170918\n", " \n", " \n", " 43\n", - " Otter Tail Corp.\n", - " US6896481032\n", + " POSCO\n", + " KR7005490008\n", " demo\n", " S1+S2\n", " benchmark_1\n", - " 2.583744\n", - " 2.835409\n", + " 1.655297\n", + " 1.460259\n", " \n", " \n", " 44\n", - " WORTHINGTON INDUSTRIES INC\n", - " US9818111026\n", + " FirstEnergy Corp.\n", + " US3379321074\n", " demo\n", " S1+S2\n", " benchmark_1\n", - " 1.267906\n", - " 1.267906\n", + " 3.373977\n", + " 2.076536\n", " \n", " \n", " 45\n", - " PNM Resources, Inc.\n", - " US69349H1077\n", + " Alliant Energy\n", + " US0188021085\n", " demo\n", " S1+S2\n", " benchmark_1\n", - " 2.168789\n", - " 1.624339\n", + " 2.170023\n", + " 1.804351\n", " \n", " \n", " 46\n", - " STEEL DYNAMICS INC\n", - " US8581191009\n", + " Entergy Corp.\n", + " US29364G1031\n", " demo\n", " S1+S2\n", " benchmark_1\n", - " 1.329345\n", - " 1.299339\n", + " 1.262227\n", + " 1.262227\n", " \n", " \n", " 47\n", - " Portland General Electric Co.\n", - " US7365088472\n", + " National Grid PLC\n", + " US6362744095\n", " demo\n", " S1+S2\n", " benchmark_1\n", - " 2.184997\n", - " 1.524214\n", + " 2.145314\n", + " 1.799658\n", " \n", " \n", " 48\n", - " National Grid PLC\n", - " US6362744095\n", + " Portland General Electric Co.\n", + " US7365088472\n", " demo\n", " S1+S2\n", " benchmark_1\n", - " 2.145314\n", - " 1.799658\n", + " 2.184997\n", + " 1.524214\n", " \n", " \n", " 49\n", - " CARPENTER TECHNOLOGY CORP\n", - " US1442851036\n", + " STEEL DYNAMICS INC\n", + " US8581191009\n", " demo\n", " S1+S2\n", " benchmark_1\n", - " 1.584922\n", - " 1.408775\n", + " 1.329345\n", + " 1.299339\n", " \n", " \n", "\n", @@ -731,108 +731,108 @@ ], "text/plain": [ " company_name company_id source scope \\\n", - "0 Hawaiian Electric Industries, Inc. US4198701009 demo S1+S2 \n", - "1 Northwestern Corp. US6680743050 demo S1+S2 \n", - "2 Sempra US8168511090 demo S1+S2 \n", - "3 Brookfield Asset Management CA1125851040 demo S1+S2 \n", - "4 Black Hills Corp. US0921131092 demo S1+S2 \n", - "5 Xcel Energy, Inc. US98389B1008 demo S1+S2 \n", - "6 PPL Corp. US69351T1060 demo S1+S2 \n", - "7 Dominion Energy US25746U1097 demo S1+S2 \n", - "8 Algonquin Power & Utilities Corp. US0158577090 demo S1+S2 \n", - "9 TIMKENSTEEL CORP US8873991033 demo S1+S2 \n", - "10 Pinnacle West Capital Corp. US7234841010 demo S1+S2 \n", - "11 Alcoa Corp. US0138721065 demo S1+S2 \n", - "12 OG&E Energy Corp. US6708371033 demo S1+S2 \n", - "13 American Electric Power Co., Inc. US0255371017 demo S1+S2 \n", - "14 Duke Energy Corp. US26441C2044 demo S1+S2 \n", - "15 Evergy, Inc. US30034W1062 demo S1+S2 \n", - "16 Consolidated Edison, Inc. US2091151041 demo S1+S2 \n", - "17 Southern Co. US8425871071 demo S1+S2 \n", - "18 Vistra Corp. US92840M1027 demo S1+S2 \n", - "19 POSCO KR7005490008 demo S1+S2 \n", - "20 FirstEnergy Corp. US3379321074 demo S1+S2 \n", - "21 Alliant Energy US0188021085 demo S1+S2 \n", - "22 Eversource Energy US30040W1080 demo S1+S2 \n", - "23 DTE Energy US2333311072 demo S1+S2 \n", - "24 Public Service Enterprise Group US7445731067 demo S1+S2 \n", - "25 GERDAU S.A. US3737371050 demo S1+S2 \n", - "26 Cleco Partners LP US18551QAA58 demo S1+S2 \n", - "27 TC Energy Corp. CA87807B1076 demo S1+S2 \n", - "28 TENARIS SA US88031M1099 demo S1+S2 \n", - "29 Avangrid, Inc. US05351W1036 demo S1+S2 \n", - "30 UNITED STATES STEEL CORP US9129091081 demo S1+S2 \n", - "31 AES Corp. US00130H1059 demo S1+S2 \n", - "32 NUCOR CORP US6703461052 demo S1+S2 \n", - "33 PG&E Corp. US69331C1080 demo S1+S2 \n", - "34 Verso Corp. US92531L2079 demo S1+S2 \n", - "35 COMMERCIAL METALS CO US2017231034 demo S1+S2 \n", - "36 Fortis, Inc. CA3495531079 demo S1+S2 \n", - "37 Entergy Corp. US29364G1031 demo S1+S2 \n", - "38 CMS Energy Corp. US1258961002 demo S1+S2 \n", - "39 Avista Corp. US05379B1070 demo S1+S2 \n", - "40 ALLETE, Inc. US0185223007 demo S1+S2 \n", - "41 Ameren Corp. US0236081024 demo S1+S2 \n", - "42 WEC Energy Group US92939U1060 demo S1+S2 \n", - "43 Otter Tail Corp. US6896481032 demo S1+S2 \n", - "44 WORTHINGTON INDUSTRIES INC US9818111026 demo S1+S2 \n", - "45 PNM Resources, Inc. US69349H1077 demo S1+S2 \n", - "46 STEEL DYNAMICS INC US8581191009 demo S1+S2 \n", - "47 Portland General Electric Co. US7365088472 demo S1+S2 \n", - "48 National Grid PLC US6362744095 demo S1+S2 \n", - "49 CARPENTER TECHNOLOGY CORP US1442851036 demo S1+S2 \n", + "0 PNM Resources, Inc. US69349H1077 demo S1+S2 \n", + "1 OG&E Energy Corp. US6708371033 demo S1+S2 \n", + "2 Alcoa Corp. US0138721065 demo S1+S2 \n", + "3 Sempra US8168511090 demo S1+S2 \n", + "4 Public Service Enterprise Group US7445731067 demo S1+S2 \n", + "5 CMS Energy Corp. US1258961002 demo S1+S2 \n", + "6 Ameren Corp. US0236081024 demo S1+S2 \n", + "7 Black Hills Corp. US0921131092 demo S1+S2 \n", + "8 PPL Corp. US69351T1060 demo S1+S2 \n", + "9 Dominion Energy US25746U1097 demo S1+S2 \n", + "10 Algonquin Power & Utilities Corp. US0158577090 demo S1+S2 \n", + "11 TIMKENSTEEL CORP US8873991033 demo S1+S2 \n", + "12 Hawaiian Electric Industries, Inc. US4198701009 demo S1+S2 \n", + "13 Eversource Energy US30040W1080 demo S1+S2 \n", + "14 DTE Energy US2333311072 demo S1+S2 \n", + "15 ALLETE, Inc. US0185223007 demo S1+S2 \n", + "16 Avista Corp. US05379B1070 demo S1+S2 \n", + "17 WORTHINGTON INDUSTRIES INC US9818111026 demo S1+S2 \n", + "18 GERDAU S.A. US3737371050 demo S1+S2 \n", + "19 NUCOR CORP US6703461052 demo S1+S2 \n", + "20 PG&E Corp. US69331C1080 demo S1+S2 \n", + "21 Verso Corp. US92531L2079 demo S1+S2 \n", + "22 COMMERCIAL METALS CO US2017231034 demo S1+S2 \n", + "23 Fortis, Inc. CA3495531079 demo S1+S2 \n", + "24 Otter Tail Corp. US6896481032 demo S1+S2 \n", + "25 Cleco Partners LP US18551QAA58 demo S1+S2 \n", + "26 WEC Energy Group US92939U1060 demo S1+S2 \n", + "27 Pinnacle West Capital Corp. US7234841010 demo S1+S2 \n", + "28 Xcel Energy, Inc. US98389B1008 demo S1+S2 \n", + "29 Brookfield Asset Management CA1125851040 demo S1+S2 \n", + "30 Northwestern Corp. US6680743050 demo S1+S2 \n", + "31 UNITED STATES STEEL CORP US9129091081 demo S1+S2 \n", + "32 TC Energy Corp. CA87807B1076 demo S1+S2 \n", + "33 AES Corp. US00130H1059 demo S1+S2 \n", + "34 TENARIS SA US88031M1099 demo S1+S2 \n", + "35 Avangrid, Inc. US05351W1036 demo S1+S2 \n", + "36 CARPENTER TECHNOLOGY CORP US1442851036 demo S1+S2 \n", + "37 American Electric Power Co., Inc. US0255371017 demo S1+S2 \n", + "38 Duke Energy Corp. US26441C2044 demo S1+S2 \n", + "39 Evergy, Inc. US30034W1062 demo S1+S2 \n", + "40 Vistra Corp. US92840M1027 demo S1+S2 \n", + "41 Consolidated Edison, Inc. US2091151041 demo S1+S2 \n", + "42 Southern Co. US8425871071 demo S1+S2 \n", + "43 POSCO KR7005490008 demo S1+S2 \n", + "44 FirstEnergy Corp. US3379321074 demo S1+S2 \n", + "45 Alliant Energy US0188021085 demo S1+S2 \n", + "46 Entergy Corp. US29364G1031 demo S1+S2 \n", + "47 National Grid PLC US6362744095 demo S1+S2 \n", + "48 Portland General Electric Co. US7365088472 demo S1+S2 \n", + "49 STEEL DYNAMICS INC US8581191009 demo S1+S2 \n", "\n", " benchmark trajectory_temperature_score target_temperature_score \n", - "0 benchmark_1 2.335098 1.763241 \n", - "1 benchmark_1 1.857969 1.662417 \n", - "2 benchmark_1 1.384800 1.344634 \n", - "3 benchmark_1 1.262227 1.262227 \n", - "4 benchmark_1 2.205830 1.884104 \n", - "5 benchmark_1 2.146173 1.587192 \n", - "6 benchmark_1 3.255960 2.863050 \n", - "7 benchmark_1 1.850402 1.636624 \n", - "8 benchmark_1 1.262227 1.262227 \n", - "9 benchmark_1 1.308265 1.281435 \n", - "10 benchmark_1 2.066292 1.616243 \n", - "11 benchmark_1 1.262227 1.262227 \n", - "12 benchmark_1 2.480501 2.720746 \n", - "13 benchmark_1 2.482552 2.053782 \n", - "14 benchmark_1 2.070475 1.851114 \n", - "15 benchmark_1 2.676849 2.362005 \n", - "16 benchmark_1 1.576269 1.427115 \n", - "17 benchmark_1 2.328599 2.170918 \n", - "18 benchmark_1 1.262227 1.262227 \n", - "19 benchmark_1 1.655297 1.460259 \n", - "20 benchmark_1 3.373977 2.076536 \n", - "21 benchmark_1 2.170023 1.804351 \n", - "22 benchmark_1 1.262227 1.262227 \n", - "23 benchmark_1 2.906939 2.242253 \n", - "24 benchmark_1 1.262227 1.262227 \n", - "25 benchmark_1 1.432999 1.346019 \n", - "26 benchmark_1 1.262227 1.262227 \n", - "27 benchmark_1 1.262227 1.262227 \n", - "28 benchmark_1 1.317665 1.317665 \n", - "29 benchmark_1 1.327895 1.271416 \n", - "30 benchmark_1 1.623504 1.445919 \n", - "31 benchmark_1 2.351806 1.860013 \n", - "32 benchmark_1 1.318407 1.301686 \n", - "33 benchmark_1 1.357883 1.308873 \n", - "34 benchmark_1 1.262227 1.262227 \n", - "35 benchmark_1 1.333292 1.295746 \n", - "36 benchmark_1 2.442952 1.810396 \n", - "37 benchmark_1 1.262227 1.262227 \n", - "38 benchmark_1 2.289516 1.751847 \n", - "39 benchmark_1 1.262227 1.262227 \n", - "40 benchmark_1 2.190575 1.935872 \n", - "41 benchmark_1 2.642690 2.201277 \n", - "42 benchmark_1 2.428914 2.495716 \n", - "43 benchmark_1 2.583744 2.835409 \n", - "44 benchmark_1 1.267906 1.267906 \n", - "45 benchmark_1 2.168789 1.624339 \n", - "46 benchmark_1 1.329345 1.299339 \n", - "47 benchmark_1 2.184997 1.524214 \n", - "48 benchmark_1 2.145314 1.799658 \n", - "49 benchmark_1 1.584922 1.408775 " + "0 benchmark_1 2.168789 1.624339 \n", + "1 benchmark_1 2.480501 2.720746 \n", + "2 benchmark_1 1.262227 1.262227 \n", + "3 benchmark_1 1.384800 1.344634 \n", + "4 benchmark_1 1.262227 1.262227 \n", + "5 benchmark_1 2.289516 1.751847 \n", + "6 benchmark_1 2.642690 2.201277 \n", + "7 benchmark_1 2.205830 1.884104 \n", + "8 benchmark_1 3.255960 2.863050 \n", + "9 benchmark_1 1.850402 1.636624 \n", + "10 benchmark_1 1.262227 1.262227 \n", + "11 benchmark_1 1.308265 1.281435 \n", + "12 benchmark_1 2.335098 1.763241 \n", + "13 benchmark_1 1.262227 1.262227 \n", + "14 benchmark_1 2.906939 2.242253 \n", + "15 benchmark_1 2.190575 1.935872 \n", + "16 benchmark_1 1.262227 1.262227 \n", + "17 benchmark_1 1.267906 1.267906 \n", + "18 benchmark_1 1.432999 1.346019 \n", + "19 benchmark_1 1.318407 1.301686 \n", + "20 benchmark_1 1.357883 1.308873 \n", + "21 benchmark_1 1.262227 1.262227 \n", + "22 benchmark_1 1.333292 1.295746 \n", + "23 benchmark_1 2.442952 1.810396 \n", + "24 benchmark_1 2.583744 2.835409 \n", + "25 benchmark_1 1.262227 1.262227 \n", + "26 benchmark_1 2.428914 2.495716 \n", + "27 benchmark_1 2.066292 1.616243 \n", + "28 benchmark_1 2.146173 1.587192 \n", + "29 benchmark_1 1.262227 1.262227 \n", + "30 benchmark_1 1.857969 1.662417 \n", + "31 benchmark_1 1.623504 1.445919 \n", + "32 benchmark_1 1.262227 1.262227 \n", + "33 benchmark_1 2.351806 1.860013 \n", + "34 benchmark_1 1.317665 1.317665 \n", + "35 benchmark_1 1.327895 1.271416 \n", + "36 benchmark_1 1.584922 1.408775 \n", + "37 benchmark_1 2.482552 2.053782 \n", + "38 benchmark_1 2.070475 1.851114 \n", + "39 benchmark_1 2.676849 2.362005 \n", + "40 benchmark_1 1.262227 1.262227 \n", + "41 benchmark_1 1.576269 1.427115 \n", + "42 benchmark_1 2.328599 2.170918 \n", + "43 benchmark_1 1.655297 1.460259 \n", + "44 benchmark_1 3.373977 2.076536 \n", + "45 benchmark_1 2.170023 1.804351 \n", + "46 benchmark_1 1.262227 1.262227 \n", + "47 benchmark_1 2.145314 1.799658 \n", + "48 benchmark_1 2.184997 1.524214 \n", + "49 benchmark_1 1.329345 1.299339 " ] }, "execution_count": 7, @@ -2838,34 +2838,10 @@ "[('AES Corp.', '2NUNNB7D43COUIRE5295', 'US00130H1059', 4010, 2019, 'US', 'North America', 10189000000.0, 9420000000.0, 8652000000, 33648000000.0, 1029000000.0),\n", " ('ALLETE, Inc.', '549300NNLSIMY6Z8OT86', 'US0185223007', 4010, 2019, 'US', 'North America', 1240500000.0, 2825208722.0, 4369708722, 5482800000.0, 69300000.0),\n", " ('Alcoa Corp.', '549300T12EZ1F6PWWU29', 'US0138721065', 4010, 2019, 'US', 'North America', 10433000000.0, 2100000000.0, 3021000000, 14631000000.0, 879000000.0),\n", - " ('American States Water Co.', '529900L26LIS2V8PWM23', 'US0298991011', 4010, 2019, 'US', 'North America', 473869000.0, 2900179000.0, 3183544000, 1641331000.0, 1334000.0),\n", - " ('Avangrid, Inc.', '549300OX0Q38NLSKPB49', 'US05351W1036', 4010, 2019, 'US', 'North America', 6336000000.0, 2374000000.0, 10364000000, 34394000000.0, 178000000.0),\n", - " ('Avista Corp.', 'Q0IK63NITJD6RJ47SW96', 'US05379B1070', 4010, 2019, 'US', 'North America', 1345622000.0, 2471363713.0, 4440667713, 6082456000.0, 9896000.0),\n", - " ('Black Hills Corp.', '3MGELCRSTNSAMJ962671', 'US0921131092', 4010, 2019, 'US', 'North America', 1734900000.0, 3528768075.0, 6659087075, 7558457000.0, 9777000.0),\n", - " ('Brookfield Asset Management', 'C6J3FGIWG6MBDGTE8F80', 'CA1125851040', 4010, 2019, 'CA', 'North America', 67826000000.0, None, None, 323969000000.0, 6778000000.0),\n", - " ('CARPENTER TECHNOLOGY CORP', 'DX6I6ZD3X5WNNCDJKP85', 'US1442851036', 2410, 2019, 'US', 'North America', 2380200000.0, 1687208892.0, 2210808892, 3187800000.0, 27000000.0),\n", - " ('CMS Energy Corp.', '549300IA9XFBAGNIBW29', 'US1258961002', 4010, 2019, 'US', 'North America', 6845000000.0, 16647000000.0, 28458000000, 26837000000.0, 140000000.0),\n", - " ('COMMERCIAL METALS CO', '549300OQS2LO07ZJ7N73', 'US2017231034', 2410, 2019, 'US', 'North America', 5829002000.0, 2200000000.0, None, 3758771000.0, None),\n", " ('Algonquin Power & Utilities Corp.', '549300K5VIUTJXQL7X75', 'US0158577090', 4010, 2019, 'CA', 'North America', 1626392000.0, None, None, 10920786000.0, 62485000.0),\n", " ('Alliant Energy', '5493009ML300G373MZ12', 'US0188021085', 4010, 2019, 'US', 'North America', 3648000000.0, 11900000000.0, 18804000000, 16701000000.0, 16000000.0),\n", " ('Ameren Corp.', 'XRZQ5S7HYJFPHJ78L959', 'US0236081024', 4010, 2019, 'US', 'North America', 5910000000.0, 17299078950.0, 26198078950, 28933000000.0, 16000000.0),\n", " ('American Electric Power Co., Inc.', '1B4S6S7G0TW5EE83BO58', 'US0255371017', 4010, 2019, 'US', 'North America', 15561400000.0, 39549558010.0, 69474758010, 75892300000.0, 246800000.0),\n", - " ('Cleco Partners LP', '5493002H80P81B3HXL31', 'US18551QAA58', 4010, 2019, 'US', 'North America', 1639605000.0, None, None, 7476298000.0, 116292000.0),\n", - " ('Consolidated Edison, Inc.', '54930033SBW53OO8T749', 'US2091151041', 4010, 2019, 'US', 'North America', 12574000000.0, 24000000000.0, 42992000000, 58079000000.0, 981000000.0),\n", - " ('DTE Energy', '549300IX8SD6XXD71I78', 'US2333311072', 4010, 2019, 'US', 'North America', 12669000000.0, 20500000000.0, 36342000000, 42268000000.0, 93000000.0),\n", - " ('Dominion Energy', 'ILUL7B6Z54MRYCF6H308', 'US25746U1097', 4010, 2019, 'US', 'North America', 14401000000.0, 68000000000.0, 96863000000, 103823000000.0, 135000000.0),\n", - " ('Duke Energy Corp.', 'I1BZKREC126H0VB1BL91', 'US26441C2044', 4010, 2019, 'US', 'North America', 25079000000.0, 58688204289.0, 121439204289, 158838000000.0, 311000000.0),\n", - " ('Entergy Corp.', '4XM3TW50JULSLG8BNC79', 'US29364G1031', 4010, 2019, 'US', 'North America', 10878673000.0, 18800000000.0, 37434228000, 51723912000.0, 425722000.0),\n", - " ('Evergy, Inc.', '549300PGTHDQY6PSUI61', 'US30034W1062', 4010, 2019, 'US', 'North America', 5147800000.0, 13410149293.0, 22133649293, 25975900000.0, 23200000.0),\n", - " ('Eversource Energy', 'SJ7XXD41SQU3ZNWUJ746', 'US30040W1080', 4010, 2019, 'US', 'North America', 8526470000.0, 28496151703.0, 42251547703, 41123915000.0, 15432000.0),\n", - " ('Exelon Corp.', '3SOUA6IRML7435B56G12', 'US30161N1019', 4010, 2019, 'US', 'North America', 34438000000.0, 35402501369.0, 66144501369, 124977000000.0, 587000000.0),\n", - " ('FirstEnergy Corp.', '549300SVYJS666PQJH88', 'US3379321074', 4010, 2019, 'US', 'North America', 11035000000.0, 20967401361.0, 39958401361, 42301000000.0, 627000000.0),\n", - " ('Fortis, Inc.', '549300MQYQ9Y065XPR71', 'CA3495531079', 4010, 2019, 'CA', 'North America', 6736467578.207348, None, None, 40960299959.7615, 283786064.4354684),\n", - " ('GERDAU S.A.', '254900YDV6SEQQPZVG24', 'US3737371050', 2410, 2019, 'BR', 'Global', 9835514922.966234, None, None, 13397913513.781725, 655382935.9664574),\n", - " ('Hawaiian Electric Industries, Inc.', 'JJ8FWOCWCV22X7GUPJ23', 'US4198701009', 4010, 2019, 'US', 'North America', 2873948000.0, 3937071331.0, 5704623331, 13745251000.0, 196813000.0),\n", - " ('MDU Resources Group', '0T6SBMK3JTBI1JR36794', 'US5526901096', 1410, 2019, 'US', 'North America', 5336776000.0, 4447584104.0, 6624232104, 7683059000.0, 66459000.0),\n", - " ('NUCOR CORP', '549300GGJCRSI2TIEJ46', 'US6703461052', 2410, 2019, 'US', 'North America', 22588858000.0, 12430000000.0, 15186696000, 18344666000.0, 1534605000.0),\n", - " ('National Grid PLC', '8R95QZMKZLJX5Q2XR704', 'US6362744095', 4010, 2019, 'GB', 'Europe', 19393506493.506493, 44164533765.359474, None, 81770129870.12987, 327272727.27272725),\n", " ('Northwestern Corp.', '3BPWMBHR1R9SHUN7J795', 'US6680743050', 4010, 2019, 'US', 'North America', 1257910000.0, 2757293172.0, 5168962172, 6083486000.0, 5145000.0),\n", " ('OG&E Energy Corp.', 'CE5OG6JPOZMDSA0LAQ19', 'US6708371033', 4010, 2019, 'US', 'North America', 2231600000.0, 6077156282.0, None, 11024300000.0, None),\n", " ('Otter Tail Corp.', '549300HHVBQRQUVKKD91', 'US6896481032', 4010, 2019, 'US', 'North America', 919503000.0, 1546518975.0, 2221083975, 2273595000.0, 21199000.0),\n", @@ -2887,7 +2863,31 @@ " ('Vistra Corp.', '549300KP43CPCUJOOG15', 'US92840M1027', 4010, 2019, 'US', 'North America', 11809000000.0, 9084469142.0, 18886469142, 26616000000.0, 300000000.0),\n", " ('WEC Energy Group', '549300IGLYTZUK3PVP70', 'US92939U1060', 4010, 2019, 'US', 'North America', 7523100000.0, 27600000000.0, 39420800000, 34951800000.0, 37500000.0),\n", " ('WORTHINGTON INDUSTRIES INC', '1WRCIANKYOIK6KYE5E82', 'US9818111026', 2410, 2019, 'US', 'North America', 3759556000.0, 1633376617.0, 2294113617, 2510796000.0, 92363000.0),\n", - " ('Xcel Energy, Inc.', 'LGJNMI9GH8XIDG5RCM61', 'US98389B1008', 4010, 2019, 'US', 'North America', 11529000000.0, 32825311125.0, None, 50448000000.0, None)]" + " ('Xcel Energy, Inc.', 'LGJNMI9GH8XIDG5RCM61', 'US98389B1008', 4010, 2019, 'US', 'North America', 11529000000.0, 32825311125.0, None, 50448000000.0, None),\n", + " ('American States Water Co.', '529900L26LIS2V8PWM23', 'US0298991011', 4010, 2019, 'US', 'North America', 473869000.0, 2900179000.0, 3183544000, 1641331000.0, 1334000.0),\n", + " ('Avangrid, Inc.', '549300OX0Q38NLSKPB49', 'US05351W1036', 4010, 2019, 'US', 'North America', 6336000000.0, 2374000000.0, 10364000000, 34394000000.0, 178000000.0),\n", + " ('Avista Corp.', 'Q0IK63NITJD6RJ47SW96', 'US05379B1070', 4010, 2019, 'US', 'North America', 1345622000.0, 2471363713.0, 4440667713, 6082456000.0, 9896000.0),\n", + " ('Black Hills Corp.', '3MGELCRSTNSAMJ962671', 'US0921131092', 4010, 2019, 'US', 'North America', 1734900000.0, 3528768075.0, 6659087075, 7558457000.0, 9777000.0),\n", + " ('Brookfield Asset Management', 'C6J3FGIWG6MBDGTE8F80', 'CA1125851040', 4010, 2019, 'CA', 'North America', 67826000000.0, None, None, 323969000000.0, 6778000000.0),\n", + " ('CARPENTER TECHNOLOGY CORP', 'DX6I6ZD3X5WNNCDJKP85', 'US1442851036', 2410, 2019, 'US', 'North America', 2380200000.0, 1687208892.0, 2210808892, 3187800000.0, 27000000.0),\n", + " ('CMS Energy Corp.', '549300IA9XFBAGNIBW29', 'US1258961002', 4010, 2019, 'US', 'North America', 6845000000.0, 16647000000.0, 28458000000, 26837000000.0, 140000000.0),\n", + " ('COMMERCIAL METALS CO', '549300OQS2LO07ZJ7N73', 'US2017231034', 2410, 2019, 'US', 'North America', 5829002000.0, 2200000000.0, None, 3758771000.0, None),\n", + " ('Cleco Partners LP', '5493002H80P81B3HXL31', 'US18551QAA58', 4010, 2019, 'US', 'North America', 1639605000.0, None, None, 7476298000.0, 116292000.0),\n", + " ('Consolidated Edison, Inc.', '54930033SBW53OO8T749', 'US2091151041', 4010, 2019, 'US', 'North America', 12574000000.0, 24000000000.0, 42992000000, 58079000000.0, 981000000.0),\n", + " ('DTE Energy', '549300IX8SD6XXD71I78', 'US2333311072', 4010, 2019, 'US', 'North America', 12669000000.0, 20500000000.0, 36342000000, 42268000000.0, 93000000.0),\n", + " ('Dominion Energy', 'ILUL7B6Z54MRYCF6H308', 'US25746U1097', 4010, 2019, 'US', 'North America', 14401000000.0, 68000000000.0, 96863000000, 103823000000.0, 135000000.0),\n", + " ('Duke Energy Corp.', 'I1BZKREC126H0VB1BL91', 'US26441C2044', 4010, 2019, 'US', 'North America', 25079000000.0, 58688204289.0, 121439204289, 158838000000.0, 311000000.0),\n", + " ('Entergy Corp.', '4XM3TW50JULSLG8BNC79', 'US29364G1031', 4010, 2019, 'US', 'North America', 10878673000.0, 18800000000.0, 37434228000, 51723912000.0, 425722000.0),\n", + " ('Evergy, Inc.', '549300PGTHDQY6PSUI61', 'US30034W1062', 4010, 2019, 'US', 'North America', 5147800000.0, 13410149293.0, 22133649293, 25975900000.0, 23200000.0),\n", + " ('Eversource Energy', 'SJ7XXD41SQU3ZNWUJ746', 'US30040W1080', 4010, 2019, 'US', 'North America', 8526470000.0, 28496151703.0, 42251547703, 41123915000.0, 15432000.0),\n", + " ('Exelon Corp.', '3SOUA6IRML7435B56G12', 'US30161N1019', 4010, 2019, 'US', 'North America', 34438000000.0, 35402501369.0, 66144501369, 124977000000.0, 587000000.0),\n", + " ('FirstEnergy Corp.', '549300SVYJS666PQJH88', 'US3379321074', 4010, 2019, 'US', 'North America', 11035000000.0, 20967401361.0, 39958401361, 42301000000.0, 627000000.0),\n", + " ('Fortis, Inc.', '549300MQYQ9Y065XPR71', 'CA3495531079', 4010, 2019, 'CA', 'North America', 6736467578.207348, None, None, 40960299959.7615, 283786064.4354684),\n", + " ('GERDAU S.A.', '254900YDV6SEQQPZVG24', 'US3737371050', 2410, 2019, 'BR', 'Global', 9835514922.966234, None, None, 13397913513.781725, 655382935.9664574),\n", + " ('Hawaiian Electric Industries, Inc.', 'JJ8FWOCWCV22X7GUPJ23', 'US4198701009', 4010, 2019, 'US', 'North America', 2873948000.0, 3937071331.0, 5704623331, 13745251000.0, 196813000.0),\n", + " ('MDU Resources Group', '0T6SBMK3JTBI1JR36794', 'US5526901096', 1410, 2019, 'US', 'North America', 5336776000.0, 4447584104.0, 6624232104, 7683059000.0, 66459000.0),\n", + " ('NUCOR CORP', '549300GGJCRSI2TIEJ46', 'US6703461052', 2410, 2019, 'US', 'North America', 22588858000.0, 12430000000.0, 15186696000, 18344666000.0, 1534605000.0),\n", + " ('National Grid PLC', '8R95QZMKZLJX5Q2XR704', 'US6362744095', 4010, 2019, 'GB', 'Europe', 19393506493.506493, 44164533765.359474, None, 81770129870.12987, 327272727.27272725)]" ] }, "execution_count": 21, diff --git a/examples/vault_demo_n2.ipynb b/examples/vault_demo_n2.ipynb index d8008bb3..5fe1d7d4 100644 --- a/examples/vault_demo_n2.ipynb +++ b/examples/vault_demo_n2.ipynb @@ -62,7 +62,7 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": 2, "id": "969b6d53-49d8-47d9-b218-6bdd790a7de4", "metadata": {}, "outputs": [], @@ -323,7 +323,7 @@ }, { "cell_type": "code", - "execution_count": 15, + "execution_count": 6, "id": "746fc07d-ca59-4af8-b5bb-9c4fcf4dea70", "metadata": {}, "outputs": [], @@ -351,7 +351,7 @@ }, { "cell_type": "code", - "execution_count": 16, + "execution_count": 7, "id": "3840f2c6-a938-43b0-b24e-37f0b284d2c6", "metadata": {}, "outputs": [], @@ -362,7 +362,7 @@ }, { "cell_type": "code", - "execution_count": 17, + "execution_count": 8, "id": "8031e3a0-3d22-4f16-8a9a-e85f855f1b02", "metadata": {}, "outputs": [ @@ -391,7 +391,6 @@ " company_lei\n", " investment_value\n", " pa_score\n", - " WATS_weight\n", " \n", " \n", " company_id\n", @@ -399,7 +398,6 @@ " \n", " \n", " \n", - " \n", " \n", " \n", " \n", @@ -409,7 +407,6 @@ " 2NUNNB7D43COUIRE5295\n", " 50000\n", " 2.105909\n", - " 0.053998\n", " \n", " \n", " US0185223007\n", @@ -417,7 +414,6 @@ " 549300NNLSIMY6Z8OT86\n", " 50000\n", " 2.063224\n", - " 0.052903\n", " \n", " \n", " US0138721065\n", @@ -425,7 +421,6 @@ " 549300T12EZ1F6PWWU29\n", " 50000\n", " 1.262227\n", - " 0.032365\n", " \n", " \n", " US0158577090\n", @@ -433,7 +428,6 @@ " 549300K5VIUTJXQL7X75\n", " 50000\n", " 1.262227\n", - " 0.032365\n", " \n", " \n", " US0188021085\n", @@ -441,7 +435,6 @@ " 5493009ML300G373MZ12\n", " 50000\n", " 1.987187\n", - " 0.050954\n", " \n", " \n", " US0236081024\n", @@ -449,7 +442,6 @@ " XRZQ5S7HYJFPHJ78L959\n", " 50000\n", " 2.421983\n", - " 0.062102\n", " \n", " \n", " US0255371017\n", @@ -457,7 +449,6 @@ " 1B4S6S7G0TW5EE83BO58\n", " 50000\n", " 2.268167\n", - " 0.058158\n", " \n", " \n", " US05351W1036\n", @@ -465,7 +456,6 @@ " 549300OX0Q38NLSKPB49\n", " 50000\n", " 1.299655\n", - " 0.033324\n", " \n", " \n", " US05379B1070\n", @@ -473,7 +463,6 @@ " Q0IK63NITJD6RJ47SW96\n", " 50000\n", " 1.262227\n", - " 0.032365\n", " \n", " \n", " US0921131092\n", @@ -481,7 +470,6 @@ " 3MGELCRSTNSAMJ962671\n", " 50000\n", " 2.044967\n", - " 0.052435\n", " \n", " \n", " CA1125851040\n", @@ -489,7 +477,6 @@ " C6J3FGIWG6MBDGTE8F80\n", " 50000\n", " 1.262227\n", - " 0.032365\n", " \n", " \n", " US1258961002\n", @@ -497,7 +484,6 @@ " 549300IA9XFBAGNIBW29\n", " 50000\n", " 2.020682\n", - " 0.051812\n", " \n", " \n", " US18551QAA58\n", @@ -505,7 +491,6 @@ " 5493002H80P81B3HXL31\n", " 50000\n", " 1.262227\n", - " 0.032365\n", " \n", " \n", " US2091151041\n", @@ -513,7 +498,6 @@ " 54930033SBW53OO8T749\n", " 50000\n", " 1.501692\n", - " 0.038505\n", " \n", " \n", " US2333311072\n", @@ -521,7 +505,6 @@ " 549300IX8SD6XXD71I78\n", " 50000\n", " 2.574596\n", - " 0.066015\n", " \n", " \n", " US25746U1097\n", @@ -529,7 +512,6 @@ " ILUL7B6Z54MRYCF6H308\n", " 50000\n", " 1.743513\n", - " 0.044705\n", " \n", " \n", " US26441C2044\n", @@ -537,7 +519,6 @@ " I1BZKREC126H0VB1BL91\n", " 50000\n", " 1.960795\n", - " 0.050277\n", " \n", " \n", " US29364G1031\n", @@ -545,7 +526,6 @@ " 4XM3TW50JULSLG8BNC79\n", " 50000\n", " 1.262227\n", - " 0.032365\n", " \n", " \n", " US30034W1062\n", @@ -553,7 +533,6 @@ " 549300PGTHDQY6PSUI61\n", " 50000\n", " 2.519427\n", - " 0.064601\n", " \n", " \n", " US30040W1080\n", @@ -561,7 +540,6 @@ " SJ7XXD41SQU3ZNWUJ746\n", " 50000\n", " 1.262227\n", - " 0.032365\n", " \n", " \n", " US3379321074\n", @@ -569,7 +547,6 @@ " 549300SVYJS666PQJH88\n", " 50000\n", " 2.725257\n", - " 0.069878\n", " \n", " \n", " CA3495531079\n", @@ -577,7 +554,6 @@ " 549300MQYQ9Y065XPR71\n", " 50000\n", " 2.126674\n", - " 0.054530\n", " \n", " \n", " US4198701009\n", @@ -585,7 +561,6 @@ " JJ8FWOCWCV22X7GUPJ23\n", " 50000\n", " 2.049170\n", - " 0.052543\n", " \n", " \n", " US6362744095\n", @@ -593,7 +568,6 @@ " 8R95QZMKZLJX5Q2XR704\n", " 50000\n", " 1.972486\n", - " 0.050577\n", " \n", " \n", " US6680743050\n", @@ -601,7 +575,6 @@ " 3BPWMBHR1R9SHUN7J795\n", " 50000\n", " 1.760193\n", - " 0.045133\n", " \n", " \n", " US6708371033\n", @@ -609,7 +582,6 @@ " CE5OG6JPOZMDSA0LAQ19\n", " 50000\n", " 2.600624\n", - " 0.066683\n", " \n", " \n", " US6896481032\n", @@ -617,7 +589,6 @@ " 549300HHVBQRQUVKKD91\n", " 50000\n", " 2.709576\n", - " 0.069476\n", " \n", " \n", " US69331C1080\n", @@ -625,7 +596,6 @@ " 1HNPXZSMMB7HMBMVBS46\n", " 50000\n", " 1.333378\n", - " 0.034189\n", " \n", " \n", " US69349H1077\n", @@ -633,7 +603,6 @@ " 5493003JOBJGLZSDDQ28\n", " 50000\n", " 1.896564\n", - " 0.048630\n", " \n", " \n", " US69351T1060\n", @@ -641,7 +610,6 @@ " 9N3UAJSNOUXFKQLF3V18\n", " 50000\n", " 3.059505\n", - " 0.078449\n", " \n", " \n", " US7234841010\n", @@ -649,7 +617,6 @@ " TWSEY0NEDUDCKS27AH81\n", " 50000\n", " 1.841268\n", - " 0.047212\n", " \n", " \n", " US7365088472\n", @@ -657,7 +624,6 @@ " GJOUP9M7C39GLSK9R870\n", " 50000\n", " 1.854606\n", - " 0.047554\n", " \n", " \n", " US7445731067\n", @@ -665,7 +631,6 @@ " PUSS41EMO3E6XXNV3U28\n", " 50000\n", " 1.262227\n", - " 0.032365\n", " \n", " \n", " US8168511090\n", @@ -673,7 +638,6 @@ " PBBKGKLRK5S5C0Y4T545\n", " 50000\n", " 1.364717\n", - " 0.034993\n", " \n", " \n", " US8425871071\n", @@ -681,7 +645,6 @@ " 549300FC3G3YU2FBZD92\n", " 50000\n", " 2.249758\n", - " 0.057686\n", " \n", " \n", " CA87807B1076\n", @@ -689,7 +652,6 @@ " 549300UGKOFV2IWJJG27\n", " 50000\n", " 1.262227\n", - " 0.032365\n", " \n", " \n", " US92840M1027\n", @@ -697,7 +659,6 @@ " 549300KP43CPCUJOOG15\n", " 50000\n", " 1.262227\n", - " 0.032365\n", " \n", " \n", " US92939U1060\n", @@ -705,7 +666,6 @@ " 549300IGLYTZUK3PVP70\n", " 50000\n", " 2.462315\n", - " 0.063136\n", " \n", " \n", " US98389B1008\n", @@ -713,7 +673,6 @@ " LGJNMI9GH8XIDG5RCM61\n", " 50000\n", " 1.866682\n", - " 0.047864\n", " \n", " \n", "\n", @@ -762,50 +721,50 @@ "US92939U1060 WEC Energy Group 549300IGLYTZUK3PVP70 \n", "US98389B1008 Xcel Energy, Inc. LGJNMI9GH8XIDG5RCM61 \n", "\n", - " investment_value pa_score WATS_weight \n", - "company_id \n", - "US00130H1059 50000 2.105909 0.053998 \n", - "US0185223007 50000 2.063224 0.052903 \n", - "US0138721065 50000 1.262227 0.032365 \n", - "US0158577090 50000 1.262227 0.032365 \n", - "US0188021085 50000 1.987187 0.050954 \n", - "US0236081024 50000 2.421983 0.062102 \n", - "US0255371017 50000 2.268167 0.058158 \n", - "US05351W1036 50000 1.299655 0.033324 \n", - "US05379B1070 50000 1.262227 0.032365 \n", - "US0921131092 50000 2.044967 0.052435 \n", - "CA1125851040 50000 1.262227 0.032365 \n", - "US1258961002 50000 2.020682 0.051812 \n", - "US18551QAA58 50000 1.262227 0.032365 \n", - "US2091151041 50000 1.501692 0.038505 \n", - "US2333311072 50000 2.574596 0.066015 \n", - "US25746U1097 50000 1.743513 0.044705 \n", - "US26441C2044 50000 1.960795 0.050277 \n", - "US29364G1031 50000 1.262227 0.032365 \n", - "US30034W1062 50000 2.519427 0.064601 \n", - "US30040W1080 50000 1.262227 0.032365 \n", - "US3379321074 50000 2.725257 0.069878 \n", - "CA3495531079 50000 2.126674 0.054530 \n", - "US4198701009 50000 2.049170 0.052543 \n", - "US6362744095 50000 1.972486 0.050577 \n", - "US6680743050 50000 1.760193 0.045133 \n", - "US6708371033 50000 2.600624 0.066683 \n", - "US6896481032 50000 2.709576 0.069476 \n", - "US69331C1080 50000 1.333378 0.034189 \n", - "US69349H1077 50000 1.896564 0.048630 \n", - "US69351T1060 50000 3.059505 0.078449 \n", - "US7234841010 50000 1.841268 0.047212 \n", - "US7365088472 50000 1.854606 0.047554 \n", - "US7445731067 50000 1.262227 0.032365 \n", - "US8168511090 50000 1.364717 0.034993 \n", - "US8425871071 50000 2.249758 0.057686 \n", - "CA87807B1076 50000 1.262227 0.032365 \n", - "US92840M1027 50000 1.262227 0.032365 \n", - "US92939U1060 50000 2.462315 0.063136 \n", - "US98389B1008 50000 1.866682 0.047864 " + " investment_value pa_score \n", + "company_id \n", + "US00130H1059 50000 2.105909 \n", + "US0185223007 50000 2.063224 \n", + "US0138721065 50000 1.262227 \n", + "US0158577090 50000 1.262227 \n", + "US0188021085 50000 1.987187 \n", + "US0236081024 50000 2.421983 \n", + "US0255371017 50000 2.268167 \n", + "US05351W1036 50000 1.299655 \n", + "US05379B1070 50000 1.262227 \n", + "US0921131092 50000 2.044967 \n", + "CA1125851040 50000 1.262227 \n", + "US1258961002 50000 2.020682 \n", + "US18551QAA58 50000 1.262227 \n", + "US2091151041 50000 1.501692 \n", + "US2333311072 50000 2.574596 \n", + "US25746U1097 50000 1.743513 \n", + "US26441C2044 50000 1.960795 \n", + "US29364G1031 50000 1.262227 \n", + "US30034W1062 50000 2.519427 \n", + "US30040W1080 50000 1.262227 \n", + "US3379321074 50000 2.725257 \n", + "CA3495531079 50000 2.126674 \n", + "US4198701009 50000 2.049170 \n", + "US6362744095 50000 1.972486 \n", + "US6680743050 50000 1.760193 \n", + "US6708371033 50000 2.600624 \n", + "US6896481032 50000 2.709576 \n", + "US69331C1080 50000 1.333378 \n", + "US69349H1077 50000 1.896564 \n", + "US69351T1060 50000 3.059505 \n", + "US7234841010 50000 1.841268 \n", + "US7365088472 50000 1.854606 \n", + "US7445731067 50000 1.262227 \n", + "US8168511090 50000 1.364717 \n", + "US8425871071 50000 2.249758 \n", + "CA87807B1076 50000 1.262227 \n", + "US92840M1027 50000 1.262227 \n", + "US92939U1060 50000 2.462315 \n", + "US98389B1008 50000 1.866682 " ] }, - "execution_count": 17, + "execution_count": 8, "metadata": {}, "output_type": "execute_result" } @@ -818,7 +777,7 @@ }, { "cell_type": "code", - "execution_count": 18, + "execution_count": 9, "id": "0e9f1e29-ccb8-4b59-a1ba-95fdf792bf76", "metadata": {}, "outputs": [ @@ -828,7 +787,7 @@ "1950000" ] }, - "execution_count": 18, + "execution_count": 9, "metadata": {}, "output_type": "execute_result" } @@ -840,7 +799,7 @@ }, { "cell_type": "code", - "execution_count": 19, + "execution_count": 10, "id": "f3193208-3029-40d4-a7a2-e820a32eea56", "metadata": {}, "outputs": [ @@ -943,7 +902,7 @@ "US0188021085 50000 1.987187 0.050954 " ] }, - "execution_count": 19, + "execution_count": 10, "metadata": {}, "output_type": "execute_result" } @@ -955,7 +914,7 @@ }, { "cell_type": "code", - "execution_count": 20, + "execution_count": 11, "id": "24fdeb51-94f1-40a4-ace9-5fdce4f5de8f", "metadata": {}, "outputs": [ @@ -983,7 +942,7 @@ }, { "cell_type": "code", - "execution_count": 21, + "execution_count": 12, "id": "fddd23f0-7ca4-4ea8-8a54-ea71fee0f40b", "metadata": {}, "outputs": [ @@ -1093,7 +1052,7 @@ "US0188021085 50000 1.987187 0.050954 0.037716 " ] }, - "execution_count": 21, + "execution_count": 12, "metadata": {}, "output_type": "execute_result" } @@ -1105,7 +1064,7 @@ }, { "cell_type": "code", - "execution_count": 22, + "execution_count": 13, "id": "68f22808-4ec2-4167-95ee-5b50f550dc59", "metadata": {}, "outputs": [ @@ -1137,7 +1096,7 @@ }, { "cell_type": "code", - "execution_count": 23, + "execution_count": 14, "id": "0df8c5fc-2939-4ac1-9448-499803583eb1", "metadata": {}, "outputs": [ @@ -1879,7 +1838,7 @@ "US98389B1008 0.094307 NaN NaN 0.050689 0.055966 " ] }, - "execution_count": 23, + "execution_count": 14, "metadata": {}, "output_type": "execute_result" } @@ -1911,7 +1870,7 @@ }, { "cell_type": "code", - "execution_count": 24, + "execution_count": 15, "id": "d1e39a38-9d3f-4ff7-aa46-965f6cbf4a76", "metadata": {}, "outputs": [ @@ -1974,7 +1933,7 @@ "Index: []" ] }, - "execution_count": 24, + "execution_count": 15, "metadata": {}, "output_type": "execute_result" } @@ -1985,7 +1944,7 @@ }, { "cell_type": "code", - "execution_count": 25, + "execution_count": 16, "id": "027bf69a-9c4a-48bc-979c-662a7409263d", "metadata": {}, "outputs": [ @@ -1995,6 +1954,10 @@ "[('AES Corp.', '2NUNNB7D43COUIRE5295', 'US00130H1059', 4010, 2019, 'US', 'North America', 10189000000.0, 9420000000.0, 8652000000, 33648000000.0, 1029000000.0),\n", " ('ALLETE, Inc.', '549300NNLSIMY6Z8OT86', 'US0185223007', 4010, 2019, 'US', 'North America', 1240500000.0, 2825208722.0, 4369708722, 5482800000.0, 69300000.0),\n", " ('Alcoa Corp.', '549300T12EZ1F6PWWU29', 'US0138721065', 4010, 2019, 'US', 'North America', 10433000000.0, 2100000000.0, 3021000000, 14631000000.0, 879000000.0),\n", + " ('Algonquin Power & Utilities Corp.', '549300K5VIUTJXQL7X75', 'US0158577090', 4010, 2019, 'CA', 'North America', 1626392000.0, None, None, 10920786000.0, 62485000.0),\n", + " ('Alliant Energy', '5493009ML300G373MZ12', 'US0188021085', 4010, 2019, 'US', 'North America', 3648000000.0, 11900000000.0, 18804000000, 16701000000.0, 16000000.0),\n", + " ('Ameren Corp.', 'XRZQ5S7HYJFPHJ78L959', 'US0236081024', 4010, 2019, 'US', 'North America', 5910000000.0, 17299078950.0, 26198078950, 28933000000.0, 16000000.0),\n", + " ('American Electric Power Co., Inc.', '1B4S6S7G0TW5EE83BO58', 'US0255371017', 4010, 2019, 'US', 'North America', 15561400000.0, 39549558010.0, 69474758010, 75892300000.0, 246800000.0),\n", " ('American States Water Co.', '529900L26LIS2V8PWM23', 'US0298991011', 4010, 2019, 'US', 'North America', 473869000.0, 2900179000.0, 3183544000, 1641331000.0, 1334000.0),\n", " ('Avangrid, Inc.', '549300OX0Q38NLSKPB49', 'US05351W1036', 4010, 2019, 'US', 'North America', 6336000000.0, 2374000000.0, 10364000000, 34394000000.0, 178000000.0),\n", " ('Avista Corp.', 'Q0IK63NITJD6RJ47SW96', 'US05379B1070', 4010, 2019, 'US', 'North America', 1345622000.0, 2471363713.0, 4440667713, 6082456000.0, 9896000.0),\n", @@ -2003,10 +1966,6 @@ " ('CARPENTER TECHNOLOGY CORP', 'DX6I6ZD3X5WNNCDJKP85', 'US1442851036', 2410, 2019, 'US', 'North America', 2380200000.0, 1687208892.0, 2210808892, 3187800000.0, 27000000.0),\n", " ('CMS Energy Corp.', '549300IA9XFBAGNIBW29', 'US1258961002', 4010, 2019, 'US', 'North America', 6845000000.0, 16647000000.0, 28458000000, 26837000000.0, 140000000.0),\n", " ('COMMERCIAL METALS CO', '549300OQS2LO07ZJ7N73', 'US2017231034', 2410, 2019, 'US', 'North America', 5829002000.0, 2200000000.0, None, 3758771000.0, None),\n", - " ('Algonquin Power & Utilities Corp.', '549300K5VIUTJXQL7X75', 'US0158577090', 4010, 2019, 'CA', 'North America', 1626392000.0, None, None, 10920786000.0, 62485000.0),\n", - " ('Alliant Energy', '5493009ML300G373MZ12', 'US0188021085', 4010, 2019, 'US', 'North America', 3648000000.0, 11900000000.0, 18804000000, 16701000000.0, 16000000.0),\n", - " ('Ameren Corp.', 'XRZQ5S7HYJFPHJ78L959', 'US0236081024', 4010, 2019, 'US', 'North America', 5910000000.0, 17299078950.0, 26198078950, 28933000000.0, 16000000.0),\n", - " ('American Electric Power Co., Inc.', '1B4S6S7G0TW5EE83BO58', 'US0255371017', 4010, 2019, 'US', 'North America', 15561400000.0, 39549558010.0, 69474758010, 75892300000.0, 246800000.0),\n", " ('Cleco Partners LP', '5493002H80P81B3HXL31', 'US18551QAA58', 4010, 2019, 'US', 'North America', 1639605000.0, None, None, 7476298000.0, 116292000.0),\n", " ('Consolidated Edison, Inc.', '54930033SBW53OO8T749', 'US2091151041', 4010, 2019, 'US', 'North America', 12574000000.0, 24000000000.0, 42992000000, 58079000000.0, 981000000.0),\n", " ('DTE Energy', '549300IX8SD6XXD71I78', 'US2333311072', 4010, 2019, 'US', 'North America', 12669000000.0, 20500000000.0, 36342000000, 42268000000.0, 93000000.0),\n", @@ -2047,7 +2006,7 @@ " ('Xcel Energy, Inc.', 'LGJNMI9GH8XIDG5RCM61', 'US98389B1008', 4010, 2019, 'US', 'North America', 11529000000.0, 32825311125.0, None, 50448000000.0, None)]" ] }, - "execution_count": 25, + "execution_count": 16, "metadata": {}, "output_type": "execute_result" } From 1685f7ca177e494752bbfed13f1dae2a74d9b703 Mon Sep 17 00:00:00 2001 From: David Kroon Date: Mon, 17 Jan 2022 13:42:26 +0100 Subject: [PATCH 023/345] Fix scrambling of rows in getting processed company data Signed-off-by: David Kroon Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- ITR/data/base_providers.py | 13 +++++++------ ITR/data/data_warehouse.py | 29 +++++++++++++++++------------ ITR/portfolio_aggregation.py | 8 ++++---- 3 files changed, 28 insertions(+), 22 deletions(-) diff --git a/ITR/data/base_providers.py b/ITR/data/base_providers.py index 86137952..8019a2f4 100644 --- a/ITR/data/base_providers.py +++ b/ITR/data/base_providers.py @@ -168,16 +168,17 @@ def _get_projected_production(self, scope: EScope = EScope.S1S2) -> pd.DataFrame return df_bm - def get_company_projected_production(self, ghg_scope12: pd.DataFrame) -> pd.DataFrame: + def get_company_projected_production(self, company_sector_region_info: pd.DataFrame) -> pd.DataFrame: """ get the projected productions for list of companies in ghg_scope12 - :param ghg_scope12: DataFrame with at least the following columns : - ColumnsConfig.COMPANY_ID,ColumnsConfig.GHG_SCOPE12, ColumnsConfig.SECTOR and ColumnsConfig.REGION + :param company_sector_region_info: DataFrame with at least the following columns : + ColumnsConfig.COMPANY_ID, ColumnsConfig.GHG_SCOPE12, ColumnsConfig.SECTOR and ColumnsConfig.REGION :return: DataFrame of projected productions for [base_year - base_year + 50] """ - benchmark_production_projections = self.get_benchmark_projections(ghg_scope12) - return benchmark_production_projections.add(1).cumprod(axis=1).mul( - ghg_scope12[self.column_config.GHG_SCOPE12].values, axis=0) + benchmark_production_projections = self.get_benchmark_projections(company_sector_region_info) + return benchmark_production_projections\ + .add(1).cumprod(axis=1).mul( + company_sector_region_info[self.column_config.GHG_SCOPE12].values, axis=0) def get_benchmark_projections(self, company_sector_region_info: pd.DataFrame, scope: EScope = EScope.S1S2) -> pd.DataFrame: diff --git a/ITR/data/data_warehouse.py b/ITR/data/data_warehouse.py index 7cb844da..2bbdce73 100644 --- a/ITR/data/data_warehouse.py +++ b/ITR/data/data_warehouse.py @@ -42,34 +42,35 @@ def get_preprocessed_company_data(self, company_ids: List[str]) -> List[ICompany :return: A list containing the company data and additional precalculated fields """ company_data = self.company_data.get_company_data(company_ids) - df_company_data = pd.DataFrame.from_records([c.dict() for c in company_data]) + df_company_data = pd.DataFrame.from_records([c.dict() for c in company_data])\ + .set_index(self.column_config.COMPANY_ID) - assert pd.Series(company_ids).isin(df_company_data.loc[:, self.column_config.COMPANY_ID]).all(), \ - "some of the company ids are not included in the fundamental data" + missing_ids = [c_id for c_id in company_ids if c_id not in df_company_data.index] + assert not missing_ids, f"Company IDs are not included in the fundamental data: {missing_ids}" company_info_at_base_year = self.company_data.get_company_intensity_and_production_at_base_year(company_ids) projected_production = self.benchmark_projected_production.get_company_projected_production( - company_info_at_base_year) + company_info_at_base_year).sort_index() - df_company_data.loc[:, self.column_config.CUMULATIVE_TRAJECTORY] = self._get_cumulative_emissions( - projected_emissions_intensity=self.company_data.get_company_projected_intensities(company_ids), - projected_production=projected_production).to_numpy() + df_company_data.loc[:, self.column_config.CUMULATIVE_TRAJECTORY] = self._get_cumulative_emission( + projected_emission_intensity=self.company_data.get_company_projected_intensities(company_ids), + projected_production=projected_production) - df_company_data.loc[:, self.column_config.CUMULATIVE_TARGET] = self._get_cumulative_emissions( - projected_emissions_intensity=self.company_data.get_company_projected_targets(company_ids), - projected_production=projected_production).to_numpy() + df_company_data.loc[:, self.column_config.CUMULATIVE_TARGET] = self._get_cumulative_emission( + projected_emission_intensity=self.company_data.get_company_projected_targets(company_ids), + projected_production=projected_production) df_company_data.loc[:, self.column_config.CUMULATIVE_BUDGET] = self._get_cumulative_emission( projected_emissions_intensity=self.benchmarks_projected_emissions_intensity.get_SDA_intensity_benchmarks( company_info_at_base_year), - projected_production=projected_production).to_numpy() + projected_production=projected_production) df_company_data.loc[:, self.column_config.BENCHMARK_GLOBAL_BUDGET] = self.benchmarks_projected_emissionsintensity.benchmark_global_budget df_company_data.loc[:, self.column_config.BENCHMARK_TEMP] = self.benchmarks_projected_emissions_intensity.benchmark_temperature - companies = df_company_data.to_dict(orient="records") + companies = df_company_data.reset_index().to_dict(orient="records") aggregate_company_data: List[ICompanyAggregates] = [ICompanyAggregates.parse_obj(company) for company in companies] @@ -107,6 +108,10 @@ def _get_cumulative_emissions(self, projected_emissions_intensity: pd.DataFrame, :param projected_production: series of projected production series :return: weighted sum of production and emissions """ +<<<<<<< HEAD return projected_emissions_intensity.reset_index(drop=True).multiply(projected_production.reset_index( drop=True)).sum(axis=1) +======= + return projected_emission_intensity.multiply(projected_production).sum(axis=1) +>>>>>>> Fix scrambling of rows in getting processed company data diff --git a/ITR/portfolio_aggregation.py b/ITR/portfolio_aggregation.py index f376e787..ad2f82b5 100644 --- a/ITR/portfolio_aggregation.py +++ b/ITR/portfolio_aggregation.py @@ -92,8 +92,8 @@ def _calculate_aggregate_score(self, data: pd.DataFrame, input_column: str, # Total emissions weighted temperature score (TETS) elif portfolio_aggregation_method == PortfolioAggregationMethod.TETS: - use_S1S2 = (data[self.c.COLS.SCOPE] == EScope.S1S2) | (data[self.c.COLS.SCOPE] == EScope.S1S2S3) - use_S3 = (data[self.c.COLS.SCOPE] == EScope.S3) | (data[self.c.COLS.SCOPE] == EScope.S1S2S3) + use_S1S2 = data[self.c.COLS.SCOPE].isin([EScope.S1S2, EScope.S1S2S3]) + use_S3 = data[self.c.COLS.SCOPE].isin([EScope.S3, EScope.S1S2S3]) if use_S3.any(): self._check_column(data, self.c.COLS.GHG_SCOPE3) if use_S1S2.any(): @@ -120,8 +120,8 @@ def _calculate_aggregate_score(self, data: pd.DataFrame, input_column: str, try: self._check_column(data, self.c.COLS.INVESTMENT_VALUE) self._check_column(data, value_column) - use_S1S2 = (data[self.c.COLS.SCOPE] == EScope.S1S2) | (data[self.c.COLS.SCOPE] == EScope.S1S2S3) - use_S3 = (data[self.c.COLS.SCOPE] == EScope.S3) | (data[self.c.COLS.SCOPE] == EScope.S1S2S3) + use_S1S2 = data[self.c.COLS.SCOPE].isin([EScope.S1S2, EScope.S1S2S3]) + use_S3 = data[self.c.COLS.SCOPE].isin([EScope.S3, EScope.S1S2S3]) if use_S1S2.any(): self._check_column(data, self.c.COLS.GHG_SCOPE12) if use_S3.any(): From 50ecbd89fa37eb9a2fa80a9d076d352c732ccc0e Mon Sep 17 00:00:00 2001 From: David Kroon Date: Fri, 7 Jan 2022 17:10:05 +0100 Subject: [PATCH 024/345] Add intial projector Signed-off-by: David Kroon Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- ITR/configs.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ITR/configs.py b/ITR/configs.py index 254504c7..a99f6c84 100644 --- a/ITR/configs.py +++ b/ITR/configs.py @@ -107,4 +107,4 @@ class ProjectionConfig: LOWER_DELTA: float = -0.10 UPPER_DELTA: float = +0.03 - TARGET_YEAR: int = 2050 \ No newline at end of file + TARGET_YEAR: int = 2050 From 4d95ccaf687af4ea2ec39f3f5d79eb4a6cb497be Mon Sep 17 00:00:00 2001 From: David Kroon Date: Fri, 7 Jan 2022 17:11:02 +0100 Subject: [PATCH 025/345] Add projection parameters to config Signed-off-by: David Kroon Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- ITR/configs.py | 1 + 1 file changed, 1 insertion(+) diff --git a/ITR/configs.py b/ITR/configs.py index a99f6c84..80b7c263 100644 --- a/ITR/configs.py +++ b/ITR/configs.py @@ -108,3 +108,4 @@ class ProjectionConfig: UPPER_DELTA: float = +0.03 TARGET_YEAR: int = 2050 + From 7b4f4eee0a1156d67e08085bd0d8349b2f124c99 Mon Sep 17 00:00:00 2001 From: David Kroon Date: Fri, 7 Jan 2022 17:19:12 +0100 Subject: [PATCH 026/345] Add interfaces Signed-off-by: David Kroon Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- ITR/interfaces.py | 1 - 1 file changed, 1 deletion(-) diff --git a/ITR/interfaces.py b/ITR/interfaces.py index e3759889..9f551eea 100644 --- a/ITR/interfaces.py +++ b/ITR/interfaces.py @@ -2,7 +2,6 @@ from typing import Optional, Dict, List from pydantic import BaseModel - class AggregationContribution(BaseModel): company_name: str company_id: str From 5d2afdfce11db72e25df9c032215ab7bacc23054 Mon Sep 17 00:00:00 2001 From: David Kroon Date: Fri, 7 Jan 2022 17:23:41 +0100 Subject: [PATCH 027/345] Update excel provider Signed-off-by: David Kroon Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- ITR/data/excel.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/ITR/data/excel.py b/ITR/data/excel.py index f9e05743..238fa05b 100644 --- a/ITR/data/excel.py +++ b/ITR/data/excel.py @@ -8,6 +8,7 @@ from ITR.interfaces import ICompanyData, ICompanyProjection, EScope, IEmissionIntensityBenchmarkScopes, \ IProductionBenchmarkScopes, IBenchmark, IBenchmarks, IBenchmarkProjection, IHistoricEmissionsScopes, \ IProductionRealization, IHistoricEIScopes, IHistoricData, IEmissionRealization, IEIRealization + import logging @@ -188,6 +189,11 @@ def _company_df_to_model(self, df_fundamentals: pd.DataFrame, df_targets: pd.Dat company_data[TabsConfig.HISTORIC_DATA] = self._convert_historic_data( df_historic.loc[company_data[ColumnsConfig.COMPANY_ID], :], convert_unit_of_measure) + if df_historic is not None: + company_data[ColumnsConfig.HISTORIC_PRODUCTIONS] = self._convert_to_historic_productions(df_historic) + company_data[ColumnsConfig.HISTORIC_EMISSIONS] = self._convert_to_historic_emissions(df_historic) + company_data[ColumnsConfig.HISTORIC_EI] = self._convert_to_historic_emission_intensities(df_historic) + model_companies.append(ICompanyData.parse_obj(company_data)) except ValidationError as e: From c020b6800646eee79faabf481d8f2455d72bf9a3 Mon Sep 17 00:00:00 2001 From: David Kroon Date: Fri, 7 Jan 2022 17:26:59 +0100 Subject: [PATCH 028/345] Add content to unit test for projection class Signed-off-by: David Kroon Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- test/test_projection.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/test_projection.py b/test/test_projection.py index bf1838e4..a96c6003 100644 --- a/test/test_projection.py +++ b/test/test_projection.py @@ -27,4 +27,4 @@ def test_project(self): # Column names from read_csv are read as strings projections.columns = [str(col) for col in projections.columns] reference = pd.read_csv(self.reference_path) - pd.testing.assert_frame_equal(projections, reference) \ No newline at end of file + pd.testing.assert_frame_equal(projections, reference) From 627a53c83c7d5e69db25683e112f4e4d90134d55 Mon Sep 17 00:00:00 2001 From: David Kroon Date: Fri, 7 Jan 2022 17:31:45 +0100 Subject: [PATCH 029/345] Fix unit test Signed-off-by: David Kroon Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- ITR/data/data_providers.py | 1 - 1 file changed, 1 deletion(-) diff --git a/ITR/data/data_providers.py b/ITR/data/data_providers.py index 93fd6630..b9fac03a 100644 --- a/ITR/data/data_providers.py +++ b/ITR/data/data_providers.py @@ -7,7 +7,6 @@ from ITR.interfaces import ICompanyData, EScope, IHistoricData, IProductionRealization, IHistoricEmissionsScopes, \ IHistoricEIScopes, ICompanyProjection, ICompanyProjectionsScopes, ICompanyProjections - class CompanyDataProvider(ABC): """ Company data provider super class. From 460ce7e8837e9318562ea41ea4535266d5c32c69 Mon Sep 17 00:00:00 2001 From: David Kroon Date: Fri, 7 Jan 2022 18:23:04 +0100 Subject: [PATCH 030/345] Fix excel provider tests Signed-off-by: David Kroon Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- ITR/data/excel.py | 1 - 1 file changed, 1 deletion(-) diff --git a/ITR/data/excel.py b/ITR/data/excel.py index 238fa05b..61e8fba5 100644 --- a/ITR/data/excel.py +++ b/ITR/data/excel.py @@ -230,7 +230,6 @@ def _get_projection(self, company_ids: List[str], projections: pd.DataFrame) -> def _get_historic_data(self, company_ids: List[str], historic_data: pd.DataFrame) -> pd.DataFrame: historic_data = historic_data.reset_index().drop(columns=['index']).set_index(ColumnsConfig.COMPANY_ID) self.historic_years = [column for column in historic_data.columns if type(column) == int] - missing_ids = [company_id for company_id in company_ids if company_id not in historic_data.index] assert not missing_ids, f"Company ids missing in provided historic data: {missing_ids}" From 563f956e061dc7e09a8d37b285d28574aa452e95 Mon Sep 17 00:00:00 2001 From: David Kroon Date: Mon, 10 Jan 2022 16:23:32 +0100 Subject: [PATCH 031/345] Projector works with ICompanyData objects Signed-off-by: David Kroon Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- ITR/data/data_providers.py | 2 ++ ITR/data/excel.py | 7 ------- 2 files changed, 2 insertions(+), 7 deletions(-) diff --git a/ITR/data/data_providers.py b/ITR/data/data_providers.py index b9fac03a..f946d3d0 100644 --- a/ITR/data/data_providers.py +++ b/ITR/data/data_providers.py @@ -7,6 +7,7 @@ from ITR.interfaces import ICompanyData, EScope, IHistoricData, IProductionRealization, IHistoricEmissionsScopes, \ IHistoricEIScopes, ICompanyProjection, ICompanyProjectionsScopes, ICompanyProjections + class CompanyDataProvider(ABC): """ Company data provider super class. @@ -203,6 +204,7 @@ class EmissionIntensityProjector(ABC): def __init__(self, companies: List[ICompanyData]): self.companies = companies self.historic_data = self._extract_historic_data(companies) + self.projection_data = None self.historic_years = [column for column in self.historic_data.columns if type(column) == int] self.projection_years = range(max(self.historic_years), ProjectionConfig.TARGET_YEAR) diff --git a/ITR/data/excel.py b/ITR/data/excel.py index 61e8fba5..80f9b8c9 100644 --- a/ITR/data/excel.py +++ b/ITR/data/excel.py @@ -9,8 +9,6 @@ IProductionBenchmarkScopes, IBenchmark, IBenchmarks, IBenchmarkProjection, IHistoricEmissionsScopes, \ IProductionRealization, IHistoricEIScopes, IHistoricData, IEmissionRealization, IEIRealization -import logging - # TODO: Force validation for excel benchmarks @@ -189,11 +187,6 @@ def _company_df_to_model(self, df_fundamentals: pd.DataFrame, df_targets: pd.Dat company_data[TabsConfig.HISTORIC_DATA] = self._convert_historic_data( df_historic.loc[company_data[ColumnsConfig.COMPANY_ID], :], convert_unit_of_measure) - if df_historic is not None: - company_data[ColumnsConfig.HISTORIC_PRODUCTIONS] = self._convert_to_historic_productions(df_historic) - company_data[ColumnsConfig.HISTORIC_EMISSIONS] = self._convert_to_historic_emissions(df_historic) - company_data[ColumnsConfig.HISTORIC_EI] = self._convert_to_historic_emission_intensities(df_historic) - model_companies.append(ICompanyData.parse_obj(company_data)) except ValidationError as e: From 0951af30983a5b2705ef59f901377f02de101553 Mon Sep 17 00:00:00 2001 From: David Kroon Date: Mon, 10 Jan 2022 16:31:24 +0100 Subject: [PATCH 032/345] Fix bug if all companies already have projections Signed-off-by: David Kroon Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- ITR/data/data_providers.py | 1 - 1 file changed, 1 deletion(-) diff --git a/ITR/data/data_providers.py b/ITR/data/data_providers.py index f946d3d0..93fd6630 100644 --- a/ITR/data/data_providers.py +++ b/ITR/data/data_providers.py @@ -204,7 +204,6 @@ class EmissionIntensityProjector(ABC): def __init__(self, companies: List[ICompanyData]): self.companies = companies self.historic_data = self._extract_historic_data(companies) - self.projection_data = None self.historic_years = [column for column in self.historic_data.columns if type(column) == int] self.projection_years = range(max(self.historic_years), ProjectionConfig.TARGET_YEAR) From 4604563a091fb58011574b02b992bbd528ec9ef0 Mon Sep 17 00:00:00 2001 From: David Kroon Date: Tue, 18 Jan 2022 16:16:12 +0100 Subject: [PATCH 033/345] Move intensity projector class, fix scope bug and make projector stateless Signed-off-by: David Kroon Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- ITR/data/base_providers.py | 154 +- ITR/data/data_providers.py | 136 - ITR/interfaces.py | 4 +- test/inputs/json/test_project_companies.json | 55 +- test/inputs/json/test_project_reference.json | 12759 +++++++++++++++++ test/inputs/test_projection_reference.csv | 174 - test/test_projection.py | 14 +- 7 files changed, 12972 insertions(+), 324 deletions(-) create mode 100644 test/inputs/json/test_project_reference.json delete mode 100644 test/inputs/test_projection_reference.csv diff --git a/ITR/data/base_providers.py b/ITR/data/base_providers.py index 8019a2f4..ec9ae33a 100644 --- a/ITR/data/base_providers.py +++ b/ITR/data/base_providers.py @@ -1,10 +1,12 @@ +import numpy as np import pandas as pd -from typing import List, Type -from ITR.configs import ColumnsConfig, TemperatureScoreConfig +from typing import List, Type, Dict +from ITR.configs import ColumnsConfig, TemperatureScoreConfig, ProjectionConfig, VariablesConfig from ITR.data.data_providers import CompanyDataProvider, ProductionBenchmarkDataProvider, \ - IntensityBenchmarkDataProvider, EmissionIntensityProjector + IntensityBenchmarkDataProvider from ITR.interfaces import ICompanyData, EScope, IProductionBenchmarkScopes, IEmissionIntensityBenchmarkScopes, \ - IBenchmark + IBenchmark, ICompanyProjections, ICompanyProjectionsScopes, ICompanyProjection, IHistoricEIScopes, \ + IHistoricEmissionsScopes, IProductionRealization # TODO handling of scopes in benchmarks @@ -35,7 +37,7 @@ def _validate_projected_trajectories(self, companies: List[ICompanyData]) -> Lis companies_without_projections = [c for c in companies if not c.projected_intensities] if companies_without_projections: companies_with_projections = [c for c in companies if c.projected_intensities] - return companies_with_projections + EmissionIntensityProjector(companies_without_projections).project() + return companies_with_projections + EmissionIntensityProjector().project_intensities(companies_without_projections) else: return companies @@ -296,3 +298,145 @@ def _get_intensity_benchmarks(self, company_sector_region_info: pd.DataFrame, benchmark_projection.index = sectors.index return benchmark_projection + + +class BaseEmissionIntensityProjector(object): + """ + This class projects emission intensities on company level based on historic data on: + - A company's emission history (in t CO2) + - A company's production history (units depend on industry, e.g. TWh for electricity) + """ + + def __init__(self): + pass + + def project_intensities(self, companies: List[ICompanyData]) -> List[ICompanyData]: + historic_data = self._extract_historic_data(companies) + self._compute_missing_historic_emission_intensities(companies, historic_data) + + historic_years = [column for column in historic_data.columns if type(column) == int] + projection_years = range(max(historic_years), ProjectionConfig.TARGET_YEAR) + + historic_intensities = historic_data[historic_years] + standardized_intensities = self._standardize(historic_intensities) + intensity_trends = self._get_trends(standardized_intensities) + extrapolated = self._extrapolate(intensity_trends, projection_years, historic_data) + + self._add_projections_to_companies(companies, extrapolated) + return companies + + def _extract_historic_data(self, companies: List[ICompanyData]) -> pd.DataFrame: + data = [] + for company in companies: + if company.historic_data.productions: + data.append(self._historic_productions_to_dict(company.company_id, company.historic_data.productions)) + if company.historic_data.emissions: + data.extend(self._historic_emissions_to_dicts(company.company_id, company.historic_data.emissions)) + if company.historic_data.emission_intensities: + data.extend(self._historic_emission_intensities_to_dicts(company.company_id, + company.historic_data.emission_intensities)) + return pd.DataFrame.from_records(data).set_index( + [ColumnsConfig.COMPANY_ID, ColumnsConfig.VARIABLE, ColumnsConfig.SCOPE]) + + def _historic_productions_to_dict(self, id: str, productions: List[IProductionRealization]) -> Dict[str, str]: + prods = {prod.dict()['year']: prod.dict()['value'] for prod in productions} + return {ColumnsConfig.COMPANY_ID: id, ColumnsConfig.VARIABLE: VariablesConfig.PRODUCTIONS, + ColumnsConfig.SCOPE: 'Production', **prods} + + def _historic_emissions_to_dicts(self, id: str, emission_scopes: IHistoricEmissionsScopes) -> List[Dict[str, str]]: + data = [] + for scope, emissions in emission_scopes.dict().items(): + if emissions: + ems = {em['year']: em['value'] for em in emissions} + data.append({ColumnsConfig.COMPANY_ID: id, ColumnsConfig.VARIABLE: VariablesConfig.EMISSIONS, + ColumnsConfig.SCOPE: scope, **ems}) + return data + + def _historic_emission_intensities_to_dicts(self, id: str, intensities_scopes: IHistoricEIScopes) \ + -> List[Dict[str, str]]: + data = [] + for scope, intensities in intensities_scopes.dict().items(): + if intensities: + intsties = {intsty['year']: intsty['value'] for intsty in intensities} + data.append({ColumnsConfig.COMPANY_ID: id, ColumnsConfig.VARIABLE: VariablesConfig.EMISSION_INTENSITIES, + ColumnsConfig.SCOPE: scope, **intsties}) + return data + + def _compute_missing_historic_emission_intensities(self, companies, historic_data): + scopes = EScope.get_scopes() + missing_data = [] + for company in companies: + # Create keys to index historic_data DataFrame for readability + production_key = (company.company_id, VariablesConfig.PRODUCTIONS, 'Production') + emission_keys = {scope: (company.company_id, VariablesConfig.EMISSIONS, scope) for scope in scopes} + ei_keys = {scope: (company.company_id, VariablesConfig.EMISSION_INTENSITIES, scope) for scope in scopes} + for scope in scopes: + if ei_keys[scope] not in historic_data.index: # Emission intensities not yet computed for this scope + if scope == EScope.S1S2.value: + try: # Try to add S1 and S2 emission intensities + historic_data.loc[ei_keys[scope]] = historic_data.loc[ei_keys['S1']] + \ + historic_data.loc[ei_keys['S2']] + except KeyError: # Either S1 or S2 emission intensities not readily available + try: # Try to compute S1+S2 EIs from S1+S2 emissions and productions + historic_data.loc[ei_keys[scope]] = historic_data.loc[emission_keys[scope]] / \ + historic_data.loc[production_key] + except KeyError: + missing_data.append(f"{company.company_id} - {scope}") + elif scope == EScope.S1S2S3.value: + pass + else: # S1 and S2 cannot be computed from other EIs, so use emissions and productions + try: + historic_data.loc[ei_keys[scope]] = historic_data.loc[emission_keys[scope]] / \ + historic_data.loc[production_key] + except KeyError: + missing_data.append(f"{company.company_id} - {scope}") + assert not missing_data, f"Provide either historic emission intensity data, or historic emission and " \ + f"production data for these company - scope combinations: {missing_data}" + + def _add_projections_to_companies(self, companies: List[ICompanyData], extrapolations: pd.DataFrame): + for company in companies: + results = extrapolations.loc[(company.company_id, VariablesConfig.EMISSION_INTENSITIES, EScope.S1S2.value)] + projections = [ICompanyProjection(year=year, value=value) for year, value in results.items() + if year >= TemperatureScoreConfig.CONTROLS_CONFIG.base_year] + company.projected_intensities = ICompanyProjectionsScopes( + S1S2=ICompanyProjections(projections=projections) + ) + + def _standardize(self, intensities: pd.DataFrame) -> pd.DataFrame: + winsorized_intensities: pd.DataFrame = self._winsorize(intensities) + standardized_intensities: pd.DataFrame = self._interpolate(winsorized_intensities) + return standardized_intensities + + def _winsorize(self, historic_intensities: pd.DataFrame) -> pd.DataFrame: + winsorized: pd.DataFrame = historic_intensities.clip( + lower=historic_intensities.quantile(q=ProjectionConfig.LOWER_PERCENTILE, axis='columns', numeric_only=True), + upper=historic_intensities.quantile(q=ProjectionConfig.UPPER_PERCENTILE, axis='columns', numeric_only=True), + axis='index' + ) + return winsorized + + def _interpolate(self, historic_intensities: pd.DataFrame) -> pd.DataFrame: + # Interpolate NaNs surrounded by values, and extrapolate NaNs with last known value + interpolated = historic_intensities.interpolate(method='linear', axis='columns', inplace=False, + limit_direction='forward') + return interpolated + + def _get_trends(self, intensities: pd.DataFrame): + # Compute year-on-year growth ratios of emission intensities + ratios: pd.DataFrame = intensities.rolling(window=2, axis='columns', closed='right') \ + .apply(func=self._year_on_year_ratio, raw=True) + + trends: pd.DataFrame = ratios.median(axis='columns', skipna=True).clip( + lower=ProjectionConfig.LOWER_DELTA, + upper=ProjectionConfig.UPPER_DELTA, + ) + return trends + + def _extrapolate(self, trends: pd.DataFrame, projection_years: range, historic_data: pd.DataFrame) -> pd.DataFrame: + projected_intensities = historic_data.copy() + for year in projection_years: + projected_intensities[year + 1] = projected_intensities[year] * (1 + trends) + return projected_intensities + + def _year_on_year_ratio(self, arr: np.ndarray) -> float: + return (arr[1] / arr[0]) - 1.0 diff --git a/ITR/data/data_providers.py b/ITR/data/data_providers.py index 93fd6630..8a8fe2a7 100644 --- a/ITR/data/data_providers.py +++ b/ITR/data/data_providers.py @@ -192,139 +192,3 @@ def get_SDA_intensity_benchmarks(self, company_sector_region_info: pd.DataFrame) :return: A DataFrame with company and intensity benchmarks per calendar year per row """ raise NotImplementedError - - -class EmissionIntensityProjector(ABC): - """ - This class projects emission intensities on company level based on historic data on: - - A company's emission history (in t CO2) - - A company's production history (units depend on industry, e.g. TWh for electricity) - """ - - def __init__(self, companies: List[ICompanyData]): - self.companies = companies - self.historic_data = self._extract_historic_data(companies) - self.historic_years = [column for column in self.historic_data.columns if type(column) == int] - self.projection_years = range(max(self.historic_years), ProjectionConfig.TARGET_YEAR) - - def _extract_historic_data(self, companies: List[ICompanyData]) -> pd.DataFrame: - data = [] - for company in companies: - if company.historic_data.productions: - data.append(self._historic_productions_to_dict(company.company_id, company.historic_data.productions)) - if company.historic_data.emissions: - data.extend(self._historic_emissions_to_dicts(company.company_id, company.historic_data.emissions)) - if company.historic_data.emission_intensities: - data.extend(self._historic_emission_intensities_to_dicts(company.company_id, - company.historic_data.emission_intensities)) - return pd.DataFrame.from_records(data).set_index( - [ColumnsConfig.COMPANY_ID, ColumnsConfig.VARIABLE, ColumnsConfig.SCOPE]) - - def _historic_productions_to_dict(self, id: str, productions: List[IProductionRealization]) -> Dict[str, str]: - prods = {prod.dict()['year']: prod.dict()['value'] for prod in productions} - return {ColumnsConfig.COMPANY_ID: id, ColumnsConfig.VARIABLE: VariablesConfig.PRODUCTIONS, - ColumnsConfig.SCOPE: 'Production', **prods} - - def _historic_emissions_to_dicts(self, id: str, emission_scopes: IHistoricEmissionsScopes) -> List[Dict[str, str]]: - data = [] - for scope, emissions in emission_scopes.dict().items(): - if emissions: - ems = {em['year']: em['value'] for em in emissions} - data.append({ColumnsConfig.COMPANY_ID: id, ColumnsConfig.VARIABLE: VariablesConfig.EMISSIONS, - ColumnsConfig.SCOPE: scope, **ems}) - return data - - def _historic_emission_intensities_to_dicts(self, id: str, intensities_scopes: IHistoricEIScopes) \ - -> List[Dict[str, str]]: - data = [] - for scope, intensities in intensities_scopes.dict().items(): - if intensities: - intsties = {intsty['year']: intsty['value'] for intsty in intensities} - data.append({ColumnsConfig.COMPANY_ID: id, ColumnsConfig.VARIABLE: VariablesConfig.EMISSION_INTENSITIES, - ColumnsConfig.SCOPE: scope, **intsties}) - return data - - def project(self, as_dataframe: bool = False) -> Union[pd.DataFrame, List[ICompanyData]]: - self._validate_historic_data() - historic_intensities = self.historic_data[self.historic_years] - standardized_intensities = self._standardize(historic_intensities) - intensity_trends = self._get_trends(standardized_intensities) - extrapolated = self._extrapolate(intensity_trends) - if as_dataframe: - return extrapolated.reset_index() - else: - self._add_projections_to_companies(extrapolated) - return self.companies - - def _add_projections_to_companies(self, extrapolations: pd.DataFrame): - for company in self.companies: - results = extrapolations.loc[(company.company_id, VariablesConfig.EMISSION_INTENSITIES, EScope.S1S2.value)] - projections = [ICompanyProjection(year=year, value=value) for year, value in results.items() - if year >= TemperatureScoreConfig.CONTROLS_CONFIG.base_year] - company.projected_intensities = ICompanyProjectionsScopes( - S1S2=ICompanyProjections(projections=projections) - ) - - def _validate_historic_data(self): - companies_without_ei = [company for company in self.companies if - not company.historic_data.emission_intensities] - companies_without_data = [company for company in companies_without_ei if - not company.historic_data.productions or not company.historic_data.emissions] - assert not companies_without_data, f"Provide either historic emission intensities, or both historic emissions" \ - f"and historic production values for companies: {companies_without_data}" - self._compute_emission_intensities(companies_without_ei) - - def _compute_emission_intensities(self, companies_without_ei: List[ICompanyData]): - for company in companies_without_ei: - for scope, emissions in company.historic_data.emissions.dict().items(): - if emissions: - ems = self.historic_data.loc[(company.company_id, VariablesConfig.EMISSIONS, scope)] - productions = self.historic_data.loc[(company.company_id, VariablesConfig.PRODUCTIONS, 'Production')] - self.historic_data.loc[(company.company_id, VariablesConfig.EMISSION_INTENSITIES, scope)] = ems / productions - - for company in self.companies: - try: - self.historic_data.loc[(company.company_id, VariablesConfig.EMISSION_INTENSITIES, EScope.S1S2.value)] = \ - self.historic_data.loc[(company.company_id, VariablesConfig.EMISSION_INTENSITIES, EScope.S1.value)] + \ - self.historic_data.loc[(company.company_id, VariablesConfig.EMISSION_INTENSITIES, EScope.S2.value)] - except: - pass - - def _standardize(self, intensities: pd.DataFrame) -> pd.DataFrame: - winsorized_intensities: pd.DataFrame = self._winsorize(intensities) - standardized_intensities: pd.DataFrame = self._interpolate(winsorized_intensities) - return standardized_intensities - - def _winsorize(self, historic_intensities: pd.DataFrame) -> pd.DataFrame: - winsorized: pd.DataFrame = historic_intensities.clip( - lower=historic_intensities.quantile(q=ProjectionConfig.LOWER_PERCENTILE, axis='columns', numeric_only=True), - upper=historic_intensities.quantile(q=ProjectionConfig.UPPER_PERCENTILE, axis='columns', numeric_only=True), - axis='index' - ) - return winsorized - - def _interpolate(self, historic_intensities: pd.DataFrame) -> pd.DataFrame: - # Interpolate NaNs surrounded by values, and extrapolate NaNs with last known value - interpolated = historic_intensities.interpolate(method='linear', axis='columns', inplace=False, - limit_direction='forward') - return interpolated - - def _get_trends(self, intensities: pd.DataFrame): - # Compute year-on-year growth ratios of emission intensities - ratios: pd.DataFrame = intensities.rolling(window=2, axis='columns', closed='right') \ - .apply(func=self._year_on_year_ratio, raw=True) - - trends: pd.DataFrame = ratios.median(axis='columns', skipna=True).clip( - lower=ProjectionConfig.LOWER_DELTA, - upper=ProjectionConfig.UPPER_DELTA, - ) - return trends - - def _extrapolate(self, trends: pd.DataFrame) -> pd.DataFrame: - projected_intensities = self.historic_data.copy() - for year in self.projection_years: - projected_intensities[year + 1] = projected_intensities[year] * (1 + trends) - return projected_intensities - - def _year_on_year_ratio(self, arr: np.ndarray) -> float: - return (arr[1] / arr[0]) - 1.0 diff --git a/ITR/interfaces.py b/ITR/interfaces.py index 9f551eea..3fc98652 100644 --- a/ITR/interfaces.py +++ b/ITR/interfaces.py @@ -246,12 +246,12 @@ class EScope(SortableEnum): S1S2S3 = "S1+S2+S3" @classmethod - def get_scopes(cls) -> List[str]: + def get_scopes(cls) -> List['EScope']: """ Get a list of all scopes. :return: A list of EScope objects """ - return ['S1', 'S2', 'S1S2', 'S3', 'S1S2S3'] + return [cls.S1.value, cls.S2.value, cls.S1S2.value, cls.S1S2S3.value] @classmethod def get_result_scopes(cls) -> List['EScope']: diff --git a/test/inputs/json/test_project_companies.json b/test/inputs/json/test_project_companies.json index d89d623e..d1762833 100644 --- a/test/inputs/json/test_project_companies.json +++ b/test/inputs/json/test_project_companies.json @@ -357,7 +357,60 @@ "S1S2S3": [] }, "emission_intensities": { - "S1": [], + "S1": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": 9.020587159252296e-09 + }, + { + "year": 2011, + "value": 9.143141676640597e-09 + }, + { + "year": 2012, + "value": 9.269072133483565e-09 + }, + { + "year": 2013, + "value": 0.016324063782454407 + }, + { + "year": 2014, + "value": 0.033110525388179275 + }, + { + "year": 2015, + "value": 0.0534276696850902 + }, + { + "year": 2016, + "value": 0.08085133557988561 + }, + { + "year": 2017, + "value": 0.06749219539186596 + }, + { + "year": 2018, + "value": 0.08300080315789345 + }, + { + "year": 2019, + "value": 0.08723928160449504 + }, + { + "year": 2020, + "value": 0.08723928160449504 + }, + { + "year": 2021, + "value": 0.08723928160449504 + } + ], "S2": [ { "year": 2009, diff --git a/test/inputs/json/test_project_reference.json b/test/inputs/json/test_project_reference.json new file mode 100644 index 00000000..56c83954 --- /dev/null +++ b/test/inputs/json/test_project_reference.json @@ -0,0 +1,12759 @@ +[ + { + "company_name": "Company AG", + "company_id": "US0079031078", + "region": "North America", + "sector": "Electricity Utilities", + "target_probability": 0.428571428571428, + "historic_data": { + "productions": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": null + }, + { + "year": 2011, + "value": null + }, + { + "year": 2012, + "value": null + }, + { + "year": 2013, + "value": null + }, + { + "year": 2014, + "value": 1682769059.4097404 + }, + { + "year": 2015, + "value": 1149435381.0097404 + }, + { + "year": 2016, + "value": 1351884837.0097404 + }, + { + "year": 2017, + "value": 870361875.4897404 + }, + { + "year": 2018, + "value": 388838913.9697404 + }, + { + "year": 2019, + "value": 377380291.0897404 + }, + { + "year": 2020, + "value": 377380291.0897404 + }, + { + "year": 2021, + "value": 377380291.0897404 + } + ], + "emissions": { + "S1": [ + { + "year": 2009, + "value": 74121549.8360392 + }, + { + "year": 2010, + "value": 77200005.8360392 + }, + { + "year": 2011, + "value": 74010717.8360392 + }, + { + "year": 2012, + "value": 78912218.8360392 + }, + { + "year": 2013, + "value": 75863005.8360392 + }, + { + "year": 2014, + "value": 79630005.8360392 + }, + { + "year": 2015, + "value": 70339005.8360392 + }, + { + "year": 2016, + "value": 70457005.8360392 + }, + { + "year": 2017, + "value": 64527005.8360392 + }, + { + "year": 2018, + "value": 54154005.8360392 + }, + { + "year": 2019, + "value": 49092005.8360392 + }, + { + "year": 2020, + "value": 49092005.8360392 + }, + { + "year": 2021, + "value": 49092005.8360392 + } + ], + "S2": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": null + }, + { + "year": 2011, + "value": null + }, + { + "year": 2012, + "value": 414929.856039191 + }, + { + "year": 2013, + "value": 90005.8360391907 + }, + { + "year": 2014, + "value": 290005.836039191 + }, + { + "year": 2015, + "value": 367805.836039191 + }, + { + "year": 2016, + "value": 306005.836039191 + }, + { + "year": 2017, + "value": 226005.836039191 + }, + { + "year": 2018, + "value": 360005.836039191 + }, + { + "year": 2019, + "value": 359005.836039191 + }, + { + "year": 2020, + "value": 359005.836039191 + }, + { + "year": 2021, + "value": 359005.836039191 + } + ], + "S1S2": [], + "S3": [], + "S1S2S3": [] + }, + "emission_intensities": { + "S1": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": null + }, + { + "year": 2011, + "value": null + }, + { + "year": 2012, + "value": null + }, + { + "year": 2013, + "value": null + }, + { + "year": 2014, + "value": 0.6132777815614572 + }, + { + "year": 2015, + "value": 0.793079394192882 + }, + { + "year": 2016, + "value": 0.6754442173157448 + }, + { + "year": 2017, + "value": 0.9608302238244408 + }, + { + "year": 2018, + "value": 1.8049528748804293 + }, + { + "year": 2019, + "value": 1.6859184505842997 + }, + { + "year": 2020, + "value": 1.6859184505842997 + }, + { + "year": 2021, + "value": 1.6859184505842997 + } + ], + "S2": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": null + }, + { + "year": 2011, + "value": null + }, + { + "year": 2012, + "value": null + }, + { + "year": 2013, + "value": null + }, + { + "year": 2014, + "value": 0.002233506501709902 + }, + { + "year": 2015, + "value": 0.00414704794529682 + }, + { + "year": 2016, + "value": 0.0029335602608281442 + }, + { + "year": 2017, + "value": 0.003365307830630542 + }, + { + "year": 2018, + "value": 0.011998993586920128 + }, + { + "year": 2019, + "value": 0.0123289841704041 + }, + { + "year": 2020, + "value": 0.0123289841704041 + }, + { + "year": 2021, + "value": 0.0123289841704041 + } + ], + "S1S2": [], + "S3": [], + "S1S2S3": [] + } + }, + "projected_targets": null, + "projected_intensities": { + "S1S2": { + "projections": [ + { + "year": 2019, + "value": 1.6982474347547039 + }, + { + "year": 2020, + "value": 1.6982474347547039 + }, + { + "year": 2021, + "value": 1.6982474347547039 + }, + { + "year": 2022, + "value": 1.6982474347547039 + }, + { + "year": 2023, + "value": 1.6982474347547039 + }, + { + "year": 2024, + "value": 1.6982474347547039 + }, + { + "year": 2025, + "value": 1.6982474347547039 + }, + { + "year": 2026, + "value": 1.6982474347547039 + }, + { + "year": 2027, + "value": 1.6982474347547039 + }, + { + "year": 2028, + "value": 1.6982474347547039 + }, + { + "year": 2029, + "value": 1.6982474347547039 + }, + { + "year": 2030, + "value": 1.6982474347547039 + }, + { + "year": 2031, + "value": 1.6982474347547039 + }, + { + "year": 2032, + "value": 1.6982474347547039 + }, + { + "year": 2033, + "value": 1.6982474347547039 + }, + { + "year": 2034, + "value": 1.6982474347547039 + }, + { + "year": 2035, + "value": 1.6982474347547039 + }, + { + "year": 2036, + "value": 1.6982474347547039 + }, + { + "year": 2037, + "value": 1.6982474347547039 + }, + { + "year": 2038, + "value": 1.6982474347547039 + }, + { + "year": 2039, + "value": 1.6982474347547039 + }, + { + "year": 2040, + "value": 1.6982474347547039 + }, + { + "year": 2041, + "value": 1.6982474347547039 + }, + { + "year": 2042, + "value": 1.6982474347547039 + }, + { + "year": 2043, + "value": 1.6982474347547039 + }, + { + "year": 2044, + "value": 1.6982474347547039 + }, + { + "year": 2045, + "value": 1.6982474347547039 + }, + { + "year": 2046, + "value": 1.6982474347547039 + }, + { + "year": 2047, + "value": 1.6982474347547039 + }, + { + "year": 2048, + "value": 1.6982474347547039 + }, + { + "year": 2049, + "value": 1.6982474347547039 + }, + { + "year": 2050, + "value": 1.6982474347547039 + } + ] + }, + "S3": null, + "S1S2S3": null + }, + "country": null, + "ghg_s1s2": null, + "ghg_s3": null, + "industry_level_1": null, + "industry_level_2": null, + "industry_level_3": null, + "industry_level_4": null, + "company_revenue": null, + "company_market_cap": null, + "company_enterprise_value": null, + "company_total_assets": null, + "company_cash_equivalents": null + }, + { + "company_name": "Company AH", + "company_id": "US00724F1012", + "region": "North America", + "sector": "Electricity Utilities", + "target_probability": 0.4285714285714285, + "historic_data": { + "productions": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": 2143661765.3714125 + }, + { + "year": 2011, + "value": 2114928159.0914125 + }, + { + "year": 2012, + "value": 2086194552.8114123 + }, + { + "year": 2013, + "value": 2057460946.5314126 + }, + { + "year": 2014, + "value": 2028727340.2514122 + }, + { + "year": 2015, + "value": 1885882971.9314125 + }, + { + "year": 2016, + "value": 1661622976.4114125 + }, + { + "year": 2017, + "value": 2488147559.6114125 + }, + { + "year": 2018, + "value": 2457602018.9714127 + }, + { + "year": 2019, + "value": 2156173206.8114123 + }, + { + "year": 2020, + "value": 2156173206.8114123 + }, + { + "year": 2021, + "value": 2156173206.8114123 + } + ], + "emissions": { + "S1": [], + "S2": [], + "S1S2": [], + "S3": [], + "S1S2S3": [] + }, + "emission_intensities": { + "S1": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": 9.020587159252296e-09 + }, + { + "year": 2011, + "value": 9.143141676640597e-09 + }, + { + "year": 2012, + "value": 9.269072133483565e-09 + }, + { + "year": 2013, + "value": 0.016324063782454407 + }, + { + "year": 2014, + "value": 0.033110525388179275 + }, + { + "year": 2015, + "value": 0.0534276696850902 + }, + { + "year": 2016, + "value": 0.08085133557988561 + }, + { + "year": 2017, + "value": 0.06749219539186596 + }, + { + "year": 2018, + "value": 0.08300080315789345 + }, + { + "year": 2019, + "value": 0.08723928160449504 + }, + { + "year": 2020, + "value": 0.08723928160449504 + }, + { + "year": 2021, + "value": 0.08723928160449504 + } + ], + "S2": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": 9.020587159252296e-09 + }, + { + "year": 2011, + "value": 9.143141676640597e-09 + }, + { + "year": 2012, + "value": 9.269072133483565e-09 + }, + { + "year": 2013, + "value": 0.016324063782454407 + }, + { + "year": 2014, + "value": 0.033110525388179275 + }, + { + "year": 2015, + "value": 0.0534276696850902 + }, + { + "year": 2016, + "value": 0.08085133557988561 + }, + { + "year": 2017, + "value": 0.06749219539186596 + }, + { + "year": 2018, + "value": 0.08300080315789345 + }, + { + "year": 2019, + "value": 0.08723928160449504 + }, + { + "year": 2020, + "value": 0.08723928160449504 + }, + { + "year": 2021, + "value": 0.08723928160449504 + } + ], + "S1S2": [], + "S3": [], + "S1S2S3": [] + } + }, + "projected_targets": null, + "projected_intensities": { + "S1S2": { + "projections": [ + { + "year": 2019, + "value": 0.17447856320899008 + }, + { + "year": 2020, + "value": 0.17447856320899008 + }, + { + "year": 2021, + "value": 0.17447856320899008 + }, + { + "year": 2022, + "value": 0.1797129201052598 + }, + { + "year": 2023, + "value": 0.1851043077084176 + }, + { + "year": 2024, + "value": 0.19065743693967013 + }, + { + "year": 2025, + "value": 0.19637716004786024 + }, + { + "year": 2026, + "value": 0.20226847484929605 + }, + { + "year": 2027, + "value": 0.20833652909477493 + }, + { + "year": 2028, + "value": 0.21458662496761818 + }, + { + "year": 2029, + "value": 0.22102422371664673 + }, + { + "year": 2030, + "value": 0.22765495042814615 + }, + { + "year": 2031, + "value": 0.23448459894099055 + }, + { + "year": 2032, + "value": 0.24151913690922028 + }, + { + "year": 2033, + "value": 0.2487647110164969 + }, + { + "year": 2034, + "value": 0.2562276523469918 + }, + { + "year": 2035, + "value": 0.2639144819174016 + }, + { + "year": 2036, + "value": 0.27183191637492365 + }, + { + "year": 2037, + "value": 0.2799868738661714 + }, + { + "year": 2038, + "value": 0.2883864800821565 + }, + { + "year": 2039, + "value": 0.2970380744846212 + }, + { + "year": 2040, + "value": 0.30594921671915987 + }, + { + "year": 2041, + "value": 0.3151276932207347 + }, + { + "year": 2042, + "value": 0.32458152401735674 + }, + { + "year": 2043, + "value": 0.33431896973787745 + }, + { + "year": 2044, + "value": 0.34434853883001376 + }, + { + "year": 2045, + "value": 0.3546789949949142 + }, + { + "year": 2046, + "value": 0.36531936484476163 + }, + { + "year": 2047, + "value": 0.3762789457901045 + }, + { + "year": 2048, + "value": 0.3875673141638077 + }, + { + "year": 2049, + "value": 0.3991943335887219 + }, + { + "year": 2050, + "value": 0.4111701635963836 + } + ] + }, + "S3": null, + "S1S2S3": null + }, + "country": null, + "ghg_s1s2": null, + "ghg_s3": null, + "industry_level_1": null, + "industry_level_2": null, + "industry_level_3": null, + "industry_level_4": null, + "company_revenue": null, + "company_market_cap": null, + "company_enterprise_value": null, + "company_total_assets": null, + "company_cash_equivalents": null + }, + { + "company_name": "Company AI", + "company_id": "FR0000125338", + "region": "Europe", + "sector": "Electricity Utilities", + "target_probability": 0.4285714285714285, + "historic_data": { + "productions": null, + "emissions": null, + "emission_intensities": { + "S1": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": 0.4605612425432028 + }, + { + "year": 2011, + "value": 0.47676992001722285 + }, + { + "year": 2012, + "value": 0.4935410421590952 + }, + { + "year": 2013, + "value": 0.4271137111711944 + }, + { + "year": 2014, + "value": 0.4050475894153404 + }, + { + "year": 2015, + "value": 1.7660044449376848 + }, + { + "year": 2016, + "value": 0.12641248982232864 + }, + { + "year": 2017, + "value": 0.11422094242724208 + }, + { + "year": 2018, + "value": 0.12432145953306709 + }, + { + "year": 2019, + "value": 0.14432694163463483 + }, + { + "year": 2020, + "value": 0.11410264669076498 + }, + { + "year": 2021, + "value": 0.11410264669076498 + } + ], + "S2": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": 0.019750986012689604 + }, + { + "year": 2011, + "value": 0.019542782620390428 + }, + { + "year": 2012, + "value": 0.016717335291559405 + }, + { + "year": 2013, + "value": 0.012755111704326829 + }, + { + "year": 2014, + "value": 0.016135716380506274 + }, + { + "year": 2015, + "value": 0.0816777616053006 + }, + { + "year": 2016, + "value": 0.07909610646488868 + }, + { + "year": 2017, + "value": 0.08497232976008089 + }, + { + "year": 2018, + "value": 0.078447410507817 + }, + { + "year": 2019, + "value": 0.08024699005813475 + }, + { + "year": 2020, + "value": 0.14391033829225056 + }, + { + "year": 2021, + "value": 0.14391033829225056 + } + ], + "S1S2": [], + "S3": [], + "S1S2S3": [] + } + }, + "projected_targets": null, + "projected_intensities": { + "S1S2": { + "projections": [ + { + "year": 2019, + "value": 0.22457393169276957 + }, + { + "year": 2020, + "value": 0.2580129849830155 + }, + { + "year": 2021, + "value": 0.2580129849830155 + }, + { + "year": 2022, + "value": 0.2580129849830155 + }, + { + "year": 2023, + "value": 0.2580129849830155 + }, + { + "year": 2024, + "value": 0.2580129849830155 + }, + { + "year": 2025, + "value": 0.2580129849830155 + }, + { + "year": 2026, + "value": 0.2580129849830155 + }, + { + "year": 2027, + "value": 0.2580129849830155 + }, + { + "year": 2028, + "value": 0.2580129849830155 + }, + { + "year": 2029, + "value": 0.2580129849830155 + }, + { + "year": 2030, + "value": 0.2580129849830155 + }, + { + "year": 2031, + "value": 0.2580129849830155 + }, + { + "year": 2032, + "value": 0.2580129849830155 + }, + { + "year": 2033, + "value": 0.2580129849830155 + }, + { + "year": 2034, + "value": 0.2580129849830155 + }, + { + "year": 2035, + "value": 0.2580129849830155 + }, + { + "year": 2036, + "value": 0.2580129849830155 + }, + { + "year": 2037, + "value": 0.2580129849830155 + }, + { + "year": 2038, + "value": 0.2580129849830155 + }, + { + "year": 2039, + "value": 0.2580129849830155 + }, + { + "year": 2040, + "value": 0.2580129849830155 + }, + { + "year": 2041, + "value": 0.2580129849830155 + }, + { + "year": 2042, + "value": 0.2580129849830155 + }, + { + "year": 2043, + "value": 0.2580129849830155 + }, + { + "year": 2044, + "value": 0.2580129849830155 + }, + { + "year": 2045, + "value": 0.2580129849830155 + }, + { + "year": 2046, + "value": 0.2580129849830155 + }, + { + "year": 2047, + "value": 0.2580129849830155 + }, + { + "year": 2048, + "value": 0.2580129849830155 + }, + { + "year": 2049, + "value": 0.2580129849830155 + }, + { + "year": 2050, + "value": 0.2580129849830155 + } + ] + }, + "S3": null, + "S1S2S3": null + }, + "country": null, + "ghg_s1s2": null, + "ghg_s3": null, + "industry_level_1": null, + "industry_level_2": null, + "industry_level_3": null, + "industry_level_4": null, + "company_revenue": null, + "company_market_cap": null, + "company_enterprise_value": null, + "company_total_assets": null, + "company_cash_equivalents": null + }, + { + "company_name": "Company AJ", + "company_id": "US17275R1023", + "region": "Europe", + "sector": "Electricity Utilities", + "target_probability": 0.4285714285714285, + "historic_data": { + "productions": [ + { + "year": 2009, + "value": 8015760033.846192 + }, + { + "year": 2010, + "value": 8169984033.846192 + }, + { + "year": 2011, + "value": 8141472033.846192 + }, + { + "year": 2012, + "value": 8328096033.846192 + }, + { + "year": 2013, + "value": 8474544033.846192 + }, + { + "year": 2014, + "value": 8080560033.846192 + }, + { + "year": 2015, + "value": 8026128033.846192 + }, + { + "year": 2016, + "value": 364176033.84621 + }, + { + "year": 2017, + "value": 381024033.84621 + }, + { + "year": 2018, + "value": 383616033.84621 + }, + { + "year": 2019, + "value": 360288033.84621 + }, + { + "year": 2020, + "value": 360288033.84621 + }, + { + "year": 2021, + "value": 360288033.84621 + } + ], + "emissions": { + "S1": [ + { + "year": 2009, + "value": 78192009.4017252 + }, + { + "year": 2010, + "value": 80575879.4017252 + }, + { + "year": 2011, + "value": 70935799.4017252 + }, + { + "year": 2012, + "value": 80283565.4017252 + }, + { + "year": 2013, + "value": 73222380.0683918 + }, + { + "year": 2014, + "value": 66161194.7350585 + }, + { + "year": 2015, + "value": 59100009.4017252 + }, + { + "year": 2016, + "value": 47700009.4017252 + }, + { + "year": 2017, + "value": 51300009.4017252 + }, + { + "year": 2018, + "value": 35700009.4017252 + }, + { + "year": 2019, + "value": 33100009.4017252 + }, + { + "year": 2020, + "value": 33100009.4017252 + }, + { + "year": 2021, + "value": 33100009.4017252 + } + ], + "S2": [ + { + "year": 2009, + "value": 480089.401725152 + }, + { + "year": 2010, + "value": 670709.401725152 + }, + { + "year": 2011, + "value": 81181.4017251516 + }, + { + "year": 2012, + "value": 74013.4017251516 + }, + { + "year": 2013, + "value": 159212.601725152 + }, + { + "year": 2014, + "value": 244411.801725152 + }, + { + "year": 2015, + "value": 329611.001725152 + }, + { + "year": 2016, + "value": 414810.201725152 + }, + { + "year": 2017, + "value": 500009.401725152 + }, + { + "year": 2018, + "value": 470009.401725152 + }, + { + "year": 2019, + "value": 290009.401725152 + }, + { + "year": 2020, + "value": 290009.401725152 + }, + { + "year": 2021, + "value": 290009.401725152 + } + ], + "S1S2": [], + "S3": [], + "S1S2S3": [] + }, + "emission_intensities": { + "S1": [ + { + "year": 2009, + "value": 0.12642200334933337 + }, + { + "year": 2010, + "value": 0.12781706704936452 + }, + { + "year": 2011, + "value": 0.1129191326119494 + }, + { + "year": 2012, + "value": 0.12493551988086661 + }, + { + "year": 2013, + "value": 0.11197794735579024 + }, + { + "year": 2014, + "value": 0.10611258132788423 + }, + { + "year": 2015, + "value": 0.09543033933877008 + }, + { + "year": 2016, + "value": 1.6975090736130565 + }, + { + "year": 2017, + "value": 1.7448981239716346 + }, + { + "year": 2018, + "value": 1.2060812922950988 + }, + { + "year": 2019, + "value": 1.1906477083539972 + }, + { + "year": 2020, + "value": 1.1906477083539972 + }, + { + "year": 2021, + "value": 1.1906477083539972 + } + ], + "S2": [ + { + "year": 2009, + "value": 0.0007762156826159988 + }, + { + "year": 2010, + "value": 0.001063942574471082 + }, + { + "year": 2011, + "value": 0.000129228591830085 + }, + { + "year": 2012, + "value": 0.0001151780289828102 + }, + { + "year": 2013, + "value": 0.00024348157377164316 + }, + { + "year": 2014, + "value": 0.0003919996803551076 + }, + { + "year": 2015, + "value": 0.0005322315522932028 + }, + { + "year": 2016, + "value": 0.01476192751505496 + }, + { + "year": 2017, + "value": 0.017007120996922403 + }, + { + "year": 2018, + "value": 0.01587869460326034 + }, + { + "year": 2019, + "value": 0.010431991887807995 + }, + { + "year": 2020, + "value": 0.010431991887807995 + }, + { + "year": 2021, + "value": 0.010431991887807995 + } + ], + "S1S2": [], + "S3": [], + "S1S2S3": [] + } + }, + "projected_targets": null, + "projected_intensities": { + "S1S2": { + "projections": [ + { + "year": 2019, + "value": 1.2010797002418052 + }, + { + "year": 2020, + "value": 1.2010797002418052 + }, + { + "year": 2021, + "value": 1.2010797002418052 + }, + { + "year": 2022, + "value": 1.2010797002418052 + }, + { + "year": 2023, + "value": 1.2010797002418052 + }, + { + "year": 2024, + "value": 1.2010797002418052 + }, + { + "year": 2025, + "value": 1.2010797002418052 + }, + { + "year": 2026, + "value": 1.2010797002418052 + }, + { + "year": 2027, + "value": 1.2010797002418052 + }, + { + "year": 2028, + "value": 1.2010797002418052 + }, + { + "year": 2029, + "value": 1.2010797002418052 + }, + { + "year": 2030, + "value": 1.2010797002418052 + }, + { + "year": 2031, + "value": 1.2010797002418052 + }, + { + "year": 2032, + "value": 1.2010797002418052 + }, + { + "year": 2033, + "value": 1.2010797002418052 + }, + { + "year": 2034, + "value": 1.2010797002418052 + }, + { + "year": 2035, + "value": 1.2010797002418052 + }, + { + "year": 2036, + "value": 1.2010797002418052 + }, + { + "year": 2037, + "value": 1.2010797002418052 + }, + { + "year": 2038, + "value": 1.2010797002418052 + }, + { + "year": 2039, + "value": 1.2010797002418052 + }, + { + "year": 2040, + "value": 1.2010797002418052 + }, + { + "year": 2041, + "value": 1.2010797002418052 + }, + { + "year": 2042, + "value": 1.2010797002418052 + }, + { + "year": 2043, + "value": 1.2010797002418052 + }, + { + "year": 2044, + "value": 1.2010797002418052 + }, + { + "year": 2045, + "value": 1.2010797002418052 + }, + { + "year": 2046, + "value": 1.2010797002418052 + }, + { + "year": 2047, + "value": 1.2010797002418052 + }, + { + "year": 2048, + "value": 1.2010797002418052 + }, + { + "year": 2049, + "value": 1.2010797002418052 + }, + { + "year": 2050, + "value": 1.2010797002418052 + } + ] + }, + "S3": null, + "S1S2S3": null + }, + "country": null, + "ghg_s1s2": null, + "ghg_s3": null, + "industry_level_1": null, + "industry_level_2": null, + "industry_level_3": null, + "industry_level_4": null, + "company_revenue": null, + "company_market_cap": null, + "company_enterprise_value": null, + "company_total_assets": null, + "company_cash_equivalents": null + }, + { + "company_name": "Company AK", + "company_id": "CH0198251305", + "region": "Europe", + "sector": "Electricity Utilities", + "target_probability": 0.4285714285714285, + "historic_data": { + "productions": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": 3760992023.3008924 + }, + { + "year": 2011, + "value": 3808944023.3008924 + }, + { + "year": 2012, + "value": 3833568023.3008924 + }, + { + "year": 2013, + "value": 3708452183.3008924 + }, + { + "year": 2014, + "value": 3668988983.3008924 + }, + { + "year": 2015, + "value": 3680795543.3008924 + }, + { + "year": 2016, + "value": 3393083543.3008957 + }, + { + "year": 2017, + "value": 3238392983.3008957 + }, + { + "year": 2018, + "value": 3244393463.3008957 + }, + { + "year": 2019, + "value": 2969511863.3008957 + }, + { + "year": 2020, + "value": 2684119703.3008957 + }, + { + "year": 2021, + "value": 2684119703.3008957 + } + ], + "emissions": { + "S1": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": 116400006.472471 + }, + { + "year": 2011, + "value": 123540195.472471 + }, + { + "year": 2012, + "value": 127800006.472471 + }, + { + "year": 2013, + "value": 115550006.472471 + }, + { + "year": 2014, + "value": 115480006.472471 + }, + { + "year": 2015, + "value": 119510006.472471 + }, + { + "year": 2016, + "value": 106730006.472471 + }, + { + "year": 2017, + "value": 105960006.472471 + }, + { + "year": 2018, + "value": 95230006.4724713 + }, + { + "year": 2019, + "value": 69980006.4724713 + }, + { + "year": 2020, + "value": 45260006.4724712 + }, + { + "year": 2021, + "value": 45260006.4724712 + } + ], + "S2": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": 245006.472471246 + }, + { + "year": 2011, + "value": 331647.472471246 + }, + { + "year": 2012, + "value": 370006.472471246 + }, + { + "year": 2013, + "value": 786006.472471246 + }, + { + "year": 2014, + "value": 636006.472471246 + }, + { + "year": 2015, + "value": 654006.472471246 + }, + { + "year": 2016, + "value": 1400006.47247125 + }, + { + "year": 2017, + "value": 5000006.47247125 + }, + { + "year": 2018, + "value": 5080006.47247125 + }, + { + "year": 2019, + "value": 5370006.47247125 + }, + { + "year": 2020, + "value": 5000006.47247125 + }, + { + "year": 2021, + "value": 5000006.47247125 + } + ], + "S1S2": [], + "S3": [], + "S1S2S3": [] + }, + "emission_intensities": { + "S1": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": 0.401102707620006 + }, + { + "year": 2011, + "value": 0.4203477193491828 + }, + { + "year": 2012, + "value": 0.43204870079677804 + }, + { + "year": 2013, + "value": 0.4038148558653588 + }, + { + "year": 2014, + "value": 0.40791097784566077 + }, + { + "year": 2015, + "value": 0.42079209933357004 + }, + { + "year": 2016, + "value": 0.4076589527582292 + }, + { + "year": 2017, + "value": 0.4240503518147712 + }, + { + "year": 2018, + "value": 0.380404195065648 + }, + { + "year": 2019, + "value": 0.3054174981052529 + }, + { + "year": 2020, + "value": 0.21853335496247459 + }, + { + "year": 2021, + "value": 0.21853335496247459 + } + ], + "S2": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": 0.0008442676462899023 + }, + { + "year": 2011, + "value": 0.001128436442471657 + }, + { + "year": 2012, + "value": 0.0012508670392910783 + }, + { + "year": 2013, + "value": 0.0027468721126020315 + }, + { + "year": 2014, + "value": 0.00224657090025156 + }, + { + "year": 2015, + "value": 0.0023027423782485457 + }, + { + "year": 2016, + "value": 0.005347373164168032 + }, + { + "year": 2017, + "value": 0.020009950681518757 + }, + { + "year": 2018, + "value": 0.020292509101606883 + }, + { + "year": 2019, + "value": 0.023436607458394043 + }, + { + "year": 2020, + "value": 0.024142024591353756 + }, + { + "year": 2021, + "value": 0.024142024591353756 + } + ], + "S1S2": [], + "S3": [], + "S1S2S3": [] + } + }, + "projected_targets": null, + "projected_intensities": { + "S1S2": { + "projections": [ + { + "year": 2019, + "value": 0.32885410556364697 + }, + { + "year": 2020, + "value": 0.24267537955382834 + }, + { + "year": 2021, + "value": 0.24267537955382834 + }, + { + "year": 2022, + "value": 0.24267537955382834 + }, + { + "year": 2023, + "value": 0.24267537955382834 + }, + { + "year": 2024, + "value": 0.24267537955382834 + }, + { + "year": 2025, + "value": 0.24267537955382834 + }, + { + "year": 2026, + "value": 0.24267537955382834 + }, + { + "year": 2027, + "value": 0.24267537955382834 + }, + { + "year": 2028, + "value": 0.24267537955382834 + }, + { + "year": 2029, + "value": 0.24267537955382834 + }, + { + "year": 2030, + "value": 0.24267537955382834 + }, + { + "year": 2031, + "value": 0.24267537955382834 + }, + { + "year": 2032, + "value": 0.24267537955382834 + }, + { + "year": 2033, + "value": 0.24267537955382834 + }, + { + "year": 2034, + "value": 0.24267537955382834 + }, + { + "year": 2035, + "value": 0.24267537955382834 + }, + { + "year": 2036, + "value": 0.24267537955382834 + }, + { + "year": 2037, + "value": 0.24267537955382834 + }, + { + "year": 2038, + "value": 0.24267537955382834 + }, + { + "year": 2039, + "value": 0.24267537955382834 + }, + { + "year": 2040, + "value": 0.24267537955382834 + }, + { + "year": 2041, + "value": 0.24267537955382834 + }, + { + "year": 2042, + "value": 0.24267537955382834 + }, + { + "year": 2043, + "value": 0.24267537955382834 + }, + { + "year": 2044, + "value": 0.24267537955382834 + }, + { + "year": 2045, + "value": 0.24267537955382834 + }, + { + "year": 2046, + "value": 0.24267537955382834 + }, + { + "year": 2047, + "value": 0.24267537955382834 + }, + { + "year": 2048, + "value": 0.24267537955382834 + }, + { + "year": 2049, + "value": 0.24267537955382834 + }, + { + "year": 2050, + "value": 0.24267537955382834 + } + ] + }, + "S3": null, + "S1S2S3": null + }, + "country": null, + "ghg_s1s2": null, + "ghg_s3": null, + "industry_level_1": null, + "industry_level_2": null, + "industry_level_3": null, + "industry_level_4": null, + "company_revenue": null, + "company_market_cap": null, + "company_enterprise_value": null, + "company_total_assets": null, + "company_cash_equivalents": null + }, + { + "company_name": "Company AL", + "company_id": "US1266501006", + "region": "Europe", + "sector": "Electricity Utilities", + "target_probability": 0.4285714285714285, + "historic_data": { + "productions": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": 4341600001.354788 + }, + { + "year": 2011, + "value": 6026400001.354788 + }, + { + "year": 2012, + "value": 6039360001.354788 + }, + { + "year": 2013, + "value": 6207840001.354788 + }, + { + "year": 2014, + "value": 6091200001.354788 + }, + { + "year": 2015, + "value": 6363360001.354788 + }, + { + "year": 2016, + "value": 3563902801.354802 + }, + { + "year": 2017, + "value": 764445601.3548025 + }, + { + "year": 2018, + "value": 739614241.3548025 + }, + { + "year": 2019, + "value": 797765761.3548025 + }, + { + "year": 2020, + "value": 718528321.3548025 + }, + { + "year": 2021, + "value": 718528321.3548025 + } + ], + "emissions": { + "S1": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": 109324454.376334 + }, + { + "year": 2011, + "value": 156899254.376334 + }, + { + "year": 2012, + "value": 154230874.376334 + }, + { + "year": 2013, + "value": 141984778.376334 + }, + { + "year": 2014, + "value": 131154736.376334 + }, + { + "year": 2015, + "value": 133757296.376334 + }, + { + "year": 2016, + "value": 120150105.376334 + }, + { + "year": 2017, + "value": 89756230.3763341 + }, + { + "year": 2018, + "value": 57205670.3763341 + }, + { + "year": 2019, + "value": 46188978.3763341 + }, + { + "year": 2020, + "value": 38589016.3763341 + }, + { + "year": 2021, + "value": 38589016.3763341 + } + ], + "S2": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": 3250751.37633413 + }, + { + "year": 2011, + "value": 3357343.37633413 + }, + { + "year": 2012, + "value": 3712790.37633413 + }, + { + "year": 2013, + "value": 3748376.12633413 + }, + { + "year": 2014, + "value": 3783961.87633413 + }, + { + "year": 2015, + "value": 3819547.62633413 + }, + { + "year": 2016, + "value": 3855133.37633413 + }, + { + "year": 2017, + "value": 3576861.37633413 + }, + { + "year": 2018, + "value": 2912586.37633413 + }, + { + "year": 2019, + "value": 2534464.37633413 + }, + { + "year": 2020, + "value": 2330625.37633413 + }, + { + "year": 2021, + "value": 2330625.37633413 + } + ], + "S1S2": [], + "S3": [], + "S1S2S3": [] + }, + "emission_intensities": { + "S1": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": 0.3263416547528934 + }, + { + "year": 2011, + "value": 0.33741775127109996 + }, + { + "year": 2012, + "value": 0.3309675415058707 + }, + { + "year": 2013, + "value": 0.2964191614725413 + }, + { + "year": 2014, + "value": 0.2790526305258781 + }, + { + "year": 2015, + "value": 0.27241811883473793 + }, + { + "year": 2016, + "value": 0.4369213899675792 + }, + { + "year": 2017, + "value": 1.521678905098956 + }, + { + "year": 2018, + "value": 1.0023948250634593 + }, + { + "year": 2019, + "value": 0.750357045582786 + }, + { + "year": 2020, + "value": 0.6960249684999396 + }, + { + "year": 2021, + "value": 0.6960249684999396 + } + ], + "S2": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": 0.009703735448715611 + }, + { + "year": 2011, + "value": 0.007220093280815844 + }, + { + "year": 2012, + "value": 0.007967361320818128 + }, + { + "year": 2013, + "value": 0.007825419886254877 + }, + { + "year": 2014, + "value": 0.008050982713813836 + }, + { + "year": 2015, + "value": 0.0077791194002462755 + }, + { + "year": 2016, + "value": 0.014019049155408301 + }, + { + "year": 2017, + "value": 0.06064018597940113 + }, + { + "year": 2018, + "value": 0.05103622581434676 + }, + { + "year": 2019, + "value": 0.04117331165166648 + }, + { + "year": 2020, + "value": 0.04203718069224924 + }, + { + "year": 2021, + "value": 0.04203718069224924 + } + ], + "S1S2": [], + "S3": [], + "S1S2S3": [] + } + }, + "projected_targets": null, + "projected_intensities": { + "S1S2": { + "projections": [ + { + "year": 2019, + "value": 0.7915303572344525 + }, + { + "year": 2020, + "value": 0.7380621491921888 + }, + { + "year": 2021, + "value": 0.7380621491921888 + }, + { + "year": 2022, + "value": 0.7380621491921888 + }, + { + "year": 2023, + "value": 0.7380621491921888 + }, + { + "year": 2024, + "value": 0.7380621491921888 + }, + { + "year": 2025, + "value": 0.7380621491921888 + }, + { + "year": 2026, + "value": 0.7380621491921888 + }, + { + "year": 2027, + "value": 0.7380621491921888 + }, + { + "year": 2028, + "value": 0.7380621491921888 + }, + { + "year": 2029, + "value": 0.7380621491921888 + }, + { + "year": 2030, + "value": 0.7380621491921888 + }, + { + "year": 2031, + "value": 0.7380621491921888 + }, + { + "year": 2032, + "value": 0.7380621491921888 + }, + { + "year": 2033, + "value": 0.7380621491921888 + }, + { + "year": 2034, + "value": 0.7380621491921888 + }, + { + "year": 2035, + "value": 0.7380621491921888 + }, + { + "year": 2036, + "value": 0.7380621491921888 + }, + { + "year": 2037, + "value": 0.7380621491921888 + }, + { + "year": 2038, + "value": 0.7380621491921888 + }, + { + "year": 2039, + "value": 0.7380621491921888 + }, + { + "year": 2040, + "value": 0.7380621491921888 + }, + { + "year": 2041, + "value": 0.7380621491921888 + }, + { + "year": 2042, + "value": 0.7380621491921888 + }, + { + "year": 2043, + "value": 0.7380621491921888 + }, + { + "year": 2044, + "value": 0.7380621491921888 + }, + { + "year": 2045, + "value": 0.7380621491921888 + }, + { + "year": 2046, + "value": 0.7380621491921888 + }, + { + "year": 2047, + "value": 0.7380621491921888 + }, + { + "year": 2048, + "value": 0.7380621491921888 + }, + { + "year": 2049, + "value": 0.7380621491921888 + }, + { + "year": 2050, + "value": 0.7380621491921888 + } + ] + }, + "S3": null, + "S1S2S3": null + }, + "country": null, + "ghg_s1s2": null, + "ghg_s3": null, + "industry_level_1": null, + "industry_level_2": null, + "industry_level_3": null, + "industry_level_4": null, + "company_revenue": null, + "company_market_cap": null, + "company_enterprise_value": null, + "company_total_assets": null, + "company_cash_equivalents": null + }, + { + "company_name": "Company AM", + "company_id": "FR0000120644", + "region": "Europe", + "sector": "Electricity Utilities", + "target_probability": 0.4285714285714285, + "historic_data": { + "productions": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": 1990487529.3093767 + }, + { + "year": 2011, + "value": 1881092169.3093767 + }, + { + "year": 2012, + "value": 1746463689.3093767 + }, + { + "year": 2013, + "value": 1768197609.3093767 + }, + { + "year": 2014, + "value": 1800040329.3093767 + }, + { + "year": 2015, + "value": 1741487049.3093767 + }, + { + "year": 2016, + "value": 1846359369.3093767 + }, + { + "year": 2017, + "value": 1782635049.3093767 + }, + { + "year": 2018, + "value": 1492136649.3093767 + }, + { + "year": 2019, + "value": 1480680009.3093767 + }, + { + "year": 2020, + "value": 1600080489.3093767 + }, + { + "year": 2021, + "value": 1600080489.3093767 + } + ], + "emissions": { + "S1": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": 39499002.5859383 + }, + { + "year": 2011, + "value": 36193002.5859383 + }, + { + "year": 2012, + "value": 35461094.5859383 + }, + { + "year": 2013, + "value": 31838172.5859383 + }, + { + "year": 2014, + "value": 30202558.5859383 + }, + { + "year": 2015, + "value": 31817606.5859383 + }, + { + "year": 2016, + "value": 26625135.5859383 + }, + { + "year": 2017, + "value": 15129771.5859383 + }, + { + "year": 2018, + "value": 13457443.5859383 + }, + { + "year": 2019, + "value": 12966980.5859383 + }, + { + "year": 2020, + "value": 13136322.5859383 + }, + { + "year": 2021, + "value": 13136322.5859383 + } + ], + "S2": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": 6236002.58593829 + }, + { + "year": 2011, + "value": 5189002.58593829 + }, + { + "year": 2012, + "value": 7189303.58593829 + }, + { + "year": 2013, + "value": 4181124.58593829 + }, + { + "year": 2014, + "value": 1547095.58593829 + }, + { + "year": 2015, + "value": 970947.585938292 + }, + { + "year": 2016, + "value": 4503672.58593829 + }, + { + "year": 2017, + "value": 5010565.58593829 + }, + { + "year": 2018, + "value": 2543866.58593829 + }, + { + "year": 2019, + "value": 2081746.58593829 + }, + { + "year": 2020, + "value": 2001731.58593829 + }, + { + "year": 2021, + "value": 2001731.58593829 + } + ], + "S1S2": [], + "S3": [], + "S1S2S3": [] + }, + "emission_intensities": { + "S1": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": 0.2571767298091901 + }, + { + "year": 2011, + "value": 0.2493558376174469 + }, + { + "year": 2012, + "value": 0.26314648775520477 + }, + { + "year": 2013, + "value": 0.2333578071485585 + }, + { + "year": 2014, + "value": 0.21745354973459868 + }, + { + "year": 2015, + "value": 0.23678394939387504 + }, + { + "year": 2016, + "value": 0.18688764653807832 + }, + { + "year": 2017, + "value": 0.10999550347095743 + }, + { + "year": 2018, + "value": 0.11688505134867072 + }, + { + "year": 2019, + "value": 0.11349654708456793 + }, + { + "year": 2020, + "value": 0.1063988604643518 + }, + { + "year": 2021, + "value": 0.1063988604643518 + } + ], + "S2": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": 0.0406024113809952 + }, + { + "year": 2011, + "value": 0.03575022777243828 + }, + { + "year": 2012, + "value": 0.05334973469193888 + }, + { + "year": 2013, + "value": 0.030645542301646213 + }, + { + "year": 2014, + "value": 0.011138838651161208 + }, + { + "year": 2015, + "value": 0.007225710187595436 + }, + { + "year": 2016, + "value": 0.03161226231683834 + }, + { + "year": 2017, + "value": 0.036427495363629124 + }, + { + "year": 2018, + "value": 0.02209483358579754 + }, + { + "year": 2019, + "value": 0.018220976567613723 + }, + { + "year": 2020, + "value": 0.01621321022729142 + }, + { + "year": 2021, + "value": 0.01621321022729142 + } + ], + "S1S2": [], + "S3": [], + "S1S2S3": [] + } + }, + "projected_targets": null, + "projected_intensities": { + "S1S2": { + "projections": [ + { + "year": 2019, + "value": 0.13171752365218165 + }, + { + "year": 2020, + "value": 0.12261207069164323 + }, + { + "year": 2021, + "value": 0.12261207069164323 + }, + { + "year": 2022, + "value": 0.11620500570269289 + }, + { + "year": 2023, + "value": 0.11013274039162965 + }, + { + "year": 2024, + "value": 0.10437777987983021 + }, + { + "year": 2025, + "value": 0.0989235434794494 + }, + { + "year": 2026, + "value": 0.09375431692259552 + }, + { + "year": 2027, + "value": 0.08885520708675897 + }, + { + "year": 2028, + "value": 0.0842120990860529 + }, + { + "year": 2029, + "value": 0.07981161560464115 + }, + { + "year": 2030, + "value": 0.07564107835518817 + }, + { + "year": 2031, + "value": 0.07168847155128884 + }, + { + "year": 2032, + "value": 0.06794240728863765 + }, + { + "year": 2033, + "value": 0.064392092735197 + }, + { + "year": 2034, + "value": 0.06102729903583536 + }, + { + "year": 2035, + "value": 0.05783833184184642 + }, + { + "year": 2036, + "value": 0.05481600338044117 + }, + { + "year": 2037, + "value": 0.05195160598374223 + }, + { + "year": 2038, + "value": 0.04923688700101434 + }, + { + "year": 2039, + "value": 0.0466640250218503 + }, + { + "year": 2040, + "value": 0.04422560734180881 + }, + { + "year": 2041, + "value": 0.041914608605580134 + }, + { + "year": 2042, + "value": 0.039724370566148075 + }, + { + "year": 2043, + "value": 0.037648582901632234 + }, + { + "year": 2044, + "value": 0.03568126503454166 + }, + { + "year": 2045, + "value": 0.033816748901059124 + }, + { + "year": 2046, + "value": 0.03204966262071244 + }, + { + "year": 2047, + "value": 0.030374915019383227 + }, + { + "year": 2048, + "value": 0.028787680961062274 + }, + { + "year": 2049, + "value": 0.027283387446090542 + }, + { + "year": 2050, + "value": 0.025857700435833336 + } + ] + }, + "S3": null, + "S1S2S3": null + }, + "country": null, + "ghg_s1s2": null, + "ghg_s3": null, + "industry_level_1": null, + "industry_level_2": null, + "industry_level_3": null, + "industry_level_4": null, + "company_revenue": null, + "company_market_cap": null, + "company_enterprise_value": null, + "company_total_assets": null, + "company_cash_equivalents": null + }, + { + "company_name": "Company AN", + "company_id": "US24703L1035", + "region": "Asia", + "sector": "Electricity Utilities", + "target_probability": 0.4285714285714285, + "historic_data": { + "productions": [ + { + "year": 2009, + "value": 5271868803.094344 + }, + { + "year": 2010, + "value": 5642576643.094344 + }, + { + "year": 2011, + "value": 5746580643.094344 + }, + { + "year": 2012, + "value": 5808127683.094344 + }, + { + "year": 2013, + "value": 5823226083.094344 + }, + { + "year": 2014, + "value": 5740165443.094344 + }, + { + "year": 2015, + "value": 5610643203.094344 + }, + { + "year": 2016, + "value": 5654577603.094344 + }, + { + "year": 2017, + "value": 5527232643.094344 + }, + { + "year": 2018, + "value": 5421517923.094344 + }, + { + "year": 2019, + "value": 5301547203.094344 + }, + { + "year": 2020, + "value": 5301547203.094344 + }, + { + "year": 2021, + "value": 5301547203.094344 + } + ], + "emissions": { + "S1": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": null + }, + { + "year": 2011, + "value": null + }, + { + "year": 2012, + "value": 1174220.85954061 + }, + { + "year": 2013, + "value": 1310000.85954061 + }, + { + "year": 2014, + "value": 1280000.85954061 + }, + { + "year": 2015, + "value": 1150000.85954061 + }, + { + "year": 2016, + "value": 1230000.85954061 + }, + { + "year": 2017, + "value": 1290000.85954061 + }, + { + "year": 2018, + "value": 1170000.85954061 + }, + { + "year": 2019, + "value": 910000.859540609 + }, + { + "year": 2020, + "value": 910000.859540609 + }, + { + "year": 2021, + "value": 910000.859540609 + } + ], + "S2": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": null + }, + { + "year": 2011, + "value": null + }, + { + "year": 2012, + "value": 132861.859540609 + }, + { + "year": 2013, + "value": 120000.859540609 + }, + { + "year": 2014, + "value": 140000.859540609 + }, + { + "year": 2015, + "value": 160000.859540609 + }, + { + "year": 2016, + "value": 170000.859540609 + }, + { + "year": 2017, + "value": 180000.859540609 + }, + { + "year": 2018, + "value": 190000.859540609 + }, + { + "year": 2019, + "value": 190000.859540609 + }, + { + "year": 2020, + "value": 190000.859540609 + }, + { + "year": 2021, + "value": 190000.859540609 + } + ], + "S1S2": [], + "S3": [], + "S1S2S3": [] + }, + "emission_intensities": { + "S1": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": null + }, + { + "year": 2011, + "value": null + }, + { + "year": 2012, + "value": 0.0026201046481710228 + }, + { + "year": 2013, + "value": 0.0029154992262681854 + }, + { + "year": 2014, + "value": 0.002889953487247187 + }, + { + "year": 2015, + "value": 0.0026563819156111223 + }, + { + "year": 2016, + "value": 0.0028190984824265257 + }, + { + "year": 2017, + "value": 0.003024734477303765 + }, + { + "year": 2018, + "value": 0.0027968571449436134 + }, + { + "year": 2019, + "value": 0.002224560243991176 + }, + { + "year": 2020, + "value": 0.002224560243991176 + }, + { + "year": 2021, + "value": 0.002224560243991176 + } + ], + "S2": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": null + }, + { + "year": 2011, + "value": null + }, + { + "year": 2012, + "value": 0.0002964620947742204 + }, + { + "year": 2013, + "value": 0.000267070369148347 + }, + { + "year": 2014, + "value": 0.00031609039105817065 + }, + { + "year": 2015, + "value": 0.000369585280080306 + }, + { + "year": 2016, + "value": 0.0003896331953142924 + }, + { + "year": 2017, + "value": 0.00042205770776825637 + }, + { + "year": 2018, + "value": 0.000454192197568326 + }, + { + "year": 2019, + "value": 0.0004644702848649636 + }, + { + "year": 2020, + "value": 0.0004644702848649636 + }, + { + "year": 2021, + "value": 0.0004644702848649636 + } + ], + "S1S2": [], + "S3": [], + "S1S2S3": [] + } + }, + "projected_targets": null, + "projected_intensities": { + "S1S2": { + "projections": [ + { + "year": 2019, + "value": 0.0026890305288561397 + }, + { + "year": 2020, + "value": 0.0026890305288561397 + }, + { + "year": 2021, + "value": 0.0026890305288561397 + }, + { + "year": 2022, + "value": 0.0026890305288561397 + }, + { + "year": 2023, + "value": 0.0026890305288561397 + }, + { + "year": 2024, + "value": 0.0026890305288561397 + }, + { + "year": 2025, + "value": 0.0026890305288561397 + }, + { + "year": 2026, + "value": 0.0026890305288561397 + }, + { + "year": 2027, + "value": 0.0026890305288561397 + }, + { + "year": 2028, + "value": 0.0026890305288561397 + }, + { + "year": 2029, + "value": 0.0026890305288561397 + }, + { + "year": 2030, + "value": 0.0026890305288561397 + }, + { + "year": 2031, + "value": 0.0026890305288561397 + }, + { + "year": 2032, + "value": 0.0026890305288561397 + }, + { + "year": 2033, + "value": 0.0026890305288561397 + }, + { + "year": 2034, + "value": 0.0026890305288561397 + }, + { + "year": 2035, + "value": 0.0026890305288561397 + }, + { + "year": 2036, + "value": 0.0026890305288561397 + }, + { + "year": 2037, + "value": 0.0026890305288561397 + }, + { + "year": 2038, + "value": 0.0026890305288561397 + }, + { + "year": 2039, + "value": 0.0026890305288561397 + }, + { + "year": 2040, + "value": 0.0026890305288561397 + }, + { + "year": 2041, + "value": 0.0026890305288561397 + }, + { + "year": 2042, + "value": 0.0026890305288561397 + }, + { + "year": 2043, + "value": 0.0026890305288561397 + }, + { + "year": 2044, + "value": 0.0026890305288561397 + }, + { + "year": 2045, + "value": 0.0026890305288561397 + }, + { + "year": 2046, + "value": 0.0026890305288561397 + }, + { + "year": 2047, + "value": 0.0026890305288561397 + }, + { + "year": 2048, + "value": 0.0026890305288561397 + }, + { + "year": 2049, + "value": 0.0026890305288561397 + }, + { + "year": 2050, + "value": 0.0026890305288561397 + } + ] + }, + "S3": null, + "S1S2S3": null + }, + "country": null, + "ghg_s1s2": null, + "ghg_s3": null, + "industry_level_1": null, + "industry_level_2": null, + "industry_level_3": null, + "industry_level_4": null, + "company_revenue": null, + "company_market_cap": null, + "company_enterprise_value": null, + "company_total_assets": null, + "company_cash_equivalents": null + }, + { + "company_name": "Company AO", + "company_id": "TW0002308004", + "region": "Europe", + "sector": "Electricity Utilities", + "target_probability": 0.4285714285714285, + "historic_data": { + "productions": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": null + }, + { + "year": 2011, + "value": null + }, + { + "year": 2012, + "value": 76114085.42779164 + }, + { + "year": 2013, + "value": 76114085.42779164 + }, + { + "year": 2014, + "value": 76114085.42779164 + }, + { + "year": 2015, + "value": 76114085.42779164 + }, + { + "year": 2016, + "value": 76114085.42779164 + }, + { + "year": 2017, + "value": 76114085.42779164 + }, + { + "year": 2018, + "value": 76114085.42779164 + }, + { + "year": 2019, + "value": 76114085.42779164 + }, + { + "year": 2020, + "value": 76114085.42779164 + }, + { + "year": 2021, + "value": 76114085.42779164 + } + ], + "emissions": { + "S1": [ + { + "year": 2009, + "value": 11074001.5077199 + }, + { + "year": 2010, + "value": 8500001.50771989 + }, + { + "year": 2011, + "value": 9328837.50771989 + }, + { + "year": 2012, + "value": 8328346.50771989 + }, + { + "year": 2013, + "value": 7914001.50771989 + }, + { + "year": 2014, + "value": 7250001.50771989 + }, + { + "year": 2015, + "value": 7020001.50771989 + }, + { + "year": 2016, + "value": 7038001.50771989 + }, + { + "year": 2017, + "value": 5800001.50771989 + }, + { + "year": 2018, + "value": 4000001.50771989 + }, + { + "year": 2019, + "value": 4500001.50771989 + }, + { + "year": 2020, + "value": 4500001.50771989 + }, + { + "year": 2021, + "value": 4500001.50771989 + } + ], + "S2": [ + { + "year": 2009, + "value": 266001.507719888 + }, + { + "year": 2010, + "value": 350001.507719888 + }, + { + "year": 2011, + "value": 329353.507719888 + }, + { + "year": 2012, + "value": 319181.507719888 + }, + { + "year": 2013, + "value": 250001.507719888 + }, + { + "year": 2014, + "value": 220001.507719888 + }, + { + "year": 2015, + "value": 230001.507719888 + }, + { + "year": 2016, + "value": 247001.507719888 + }, + { + "year": 2017, + "value": 3400001.50771989 + }, + { + "year": 2018, + "value": 2900001.50771989 + }, + { + "year": 2019, + "value": 2500001.50771989 + }, + { + "year": 2020, + "value": 2500001.50771989 + }, + { + "year": 2021, + "value": 2500001.50771989 + } + ], + "S1S2": [], + "S3": [], + "S1S2S3": [] + }, + "emission_intensities": { + "S1": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": null + }, + { + "year": 2011, + "value": null + }, + { + "year": 2012, + "value": 1.418073542280774 + }, + { + "year": 2013, + "value": 1.3475227214987966 + }, + { + "year": 2014, + "value": 1.2344629645348417 + }, + { + "year": 2015, + "value": 1.195300699321421 + }, + { + "year": 2016, + "value": 1.1983655722511666 + }, + { + "year": 2017, + "value": 0.9875704229719812 + }, + { + "year": 2018, + "value": 0.6810831299973996 + }, + { + "year": 2019, + "value": 0.7662184891570044 + }, + { + "year": 2020, + "value": 0.7662184891570044 + }, + { + "year": 2021, + "value": 0.7662184891570044 + } + ], + "S2": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": null + }, + { + "year": 2011, + "value": null + }, + { + "year": 2012, + "value": 0.05434726459367484 + }, + { + "year": 2013, + "value": 0.04256793630035172 + }, + { + "year": 2014, + "value": 0.037459814750775366 + }, + { + "year": 2015, + "value": 0.03916252193396724 + }, + { + "year": 2016, + "value": 0.04205712414539412 + }, + { + "year": 2017, + "value": 0.5789206990058725 + }, + { + "year": 2018, + "value": 0.493785339846264 + }, + { + "year": 2019, + "value": 0.4256770525185816 + }, + { + "year": 2020, + "value": 0.4256770525185816 + }, + { + "year": 2021, + "value": 0.4256770525185816 + } + ], + "S1S2": [], + "S3": [], + "S1S2S3": [] + } + }, + "projected_targets": null, + "projected_intensities": { + "S1S2": { + "projections": [ + { + "year": 2019, + "value": 1.191895541675586 + }, + { + "year": 2020, + "value": 1.191895541675586 + }, + { + "year": 2021, + "value": 1.191895541675586 + }, + { + "year": 2022, + "value": 1.191895541675586 + }, + { + "year": 2023, + "value": 1.191895541675586 + }, + { + "year": 2024, + "value": 1.191895541675586 + }, + { + "year": 2025, + "value": 1.191895541675586 + }, + { + "year": 2026, + "value": 1.191895541675586 + }, + { + "year": 2027, + "value": 1.191895541675586 + }, + { + "year": 2028, + "value": 1.191895541675586 + }, + { + "year": 2029, + "value": 1.191895541675586 + }, + { + "year": 2030, + "value": 1.191895541675586 + }, + { + "year": 2031, + "value": 1.191895541675586 + }, + { + "year": 2032, + "value": 1.191895541675586 + }, + { + "year": 2033, + "value": 1.191895541675586 + }, + { + "year": 2034, + "value": 1.191895541675586 + }, + { + "year": 2035, + "value": 1.191895541675586 + }, + { + "year": 2036, + "value": 1.191895541675586 + }, + { + "year": 2037, + "value": 1.191895541675586 + }, + { + "year": 2038, + "value": 1.191895541675586 + }, + { + "year": 2039, + "value": 1.191895541675586 + }, + { + "year": 2040, + "value": 1.191895541675586 + }, + { + "year": 2041, + "value": 1.191895541675586 + }, + { + "year": 2042, + "value": 1.191895541675586 + }, + { + "year": 2043, + "value": 1.191895541675586 + }, + { + "year": 2044, + "value": 1.191895541675586 + }, + { + "year": 2045, + "value": 1.191895541675586 + }, + { + "year": 2046, + "value": 1.191895541675586 + }, + { + "year": 2047, + "value": 1.191895541675586 + }, + { + "year": 2048, + "value": 1.191895541675586 + }, + { + "year": 2049, + "value": 1.191895541675586 + }, + { + "year": 2050, + "value": 1.191895541675586 + } + ] + }, + "S3": null, + "S1S2S3": null + }, + "country": null, + "ghg_s1s2": null, + "ghg_s3": null, + "industry_level_1": null, + "industry_level_2": null, + "industry_level_3": null, + "industry_level_4": null, + "company_revenue": null, + "company_market_cap": null, + "company_enterprise_value": null, + "company_total_assets": null, + "company_cash_equivalents": null + }, + { + "company_name": "Company AP", + "company_id": "FR0000120321", + "region": "Asia", + "sector": "Electricity Utilities", + "target_probability": 0.4285714285714285, + "historic_data": { + "productions": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": 2836166403.246948 + }, + { + "year": 2011, + "value": 2858198403.246948 + }, + { + "year": 2012, + "value": 2878027203.246948 + }, + { + "year": 2013, + "value": 3007082883.246948 + }, + { + "year": 2014, + "value": 3023360643.246948 + }, + { + "year": 2015, + "value": 3126729603.246948 + }, + { + "year": 2016, + "value": 3136060803.246948 + }, + { + "year": 2017, + "value": 3244017603.246948 + }, + { + "year": 2018, + "value": 3444768003.246948 + }, + { + "year": 2019, + "value": 3556872003.246948 + }, + { + "year": 2020, + "value": 3364675203.246948 + }, + { + "year": 2021, + "value": 3364675203.246948 + } + ], + "emissions": { + "S1": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": 185584163.90193 + }, + { + "year": 2011, + "value": 188513981.90193 + }, + { + "year": 2012, + "value": 189986958.90193 + }, + { + "year": 2013, + "value": 200994691.90193 + }, + { + "year": 2014, + "value": 201036494.90193 + }, + { + "year": 2015, + "value": 213050961.90193 + }, + { + "year": 2016, + "value": 231671486.101929 + }, + { + "year": 2017, + "value": 221222495.90193 + }, + { + "year": 2018, + "value": 231986764.90193 + }, + { + "year": 2019, + "value": 240369173.90193 + }, + { + "year": 2020, + "value": 226132940.90193 + }, + { + "year": 2021, + "value": 226132940.90193 + } + ], + "S2": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": null + }, + { + "year": 2011, + "value": null + }, + { + "year": 2012, + "value": 0.901929562977962 + }, + { + "year": 2013, + "value": 0.901929562977962 + }, + { + "year": 2014, + "value": 0.901929562977962 + }, + { + "year": 2015, + "value": 6235.05442956298 + }, + { + "year": 2016, + "value": 12469.206929563 + }, + { + "year": 2017, + "value": 18703.359429563 + }, + { + "year": 2018, + "value": 24937.511929563 + }, + { + "year": 2019, + "value": 23268.401929563 + }, + { + "year": 2020, + "value": 15845.901929563 + }, + { + "year": 2021, + "value": 15845.901929563 + } + ], + "S1S2": [], + "S3": [], + "S1S2S3": [] + }, + "emission_intensities": { + "S1": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": 0.848035842119658 + }, + { + "year": 2011, + "value": 0.8547836296716036 + }, + { + "year": 2012, + "value": 0.8555273503291261 + }, + { + "year": 2013, + "value": 0.8662518820353672 + }, + { + "year": 2014, + "value": 0.8617671794294748 + }, + { + "year": 2015, + "value": 0.8830761903369287 + }, + { + "year": 2016, + "value": 0.95739931342287 + }, + { + "year": 2017, + "value": 0.8837940780652285 + }, + { + "year": 2018, + "value": 0.8727869250687168 + }, + { + "year": 2019, + "value": 0.8758213652122596 + }, + { + "year": 2020, + "value": 0.8710151016243313 + }, + { + "year": 2021, + "value": 0.8710151016243313 + } + ], + "S2": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": null + }, + { + "year": 2011, + "value": null + }, + { + "year": 2012, + "value": 4.061465132437621e-09 + }, + { + "year": 2013, + "value": 3.887158282638696e-09 + }, + { + "year": 2014, + "value": 3.866229840063312e-09 + }, + { + "year": 2015, + "value": 2.5843713931394353e-05 + }, + { + "year": 2016, + "value": 5.15299070859282e-05 + }, + { + "year": 2017, + "value": 7.472078387137044e-05 + }, + { + "year": 2018, + "value": 9.382058655401627e-05 + }, + { + "year": 2019, + "value": 8.478193444460569e-05 + }, + { + "year": 2020, + "value": 6.103498156641072e-05 + }, + { + "year": 2021, + "value": 6.103498156641072e-05 + } + ], + "S1S2": [], + "S3": [], + "S1S2S3": [] + } + }, + "projected_targets": null, + "projected_intensities": { + "S1S2": { + "projections": [ + { + "year": 2019, + "value": 0.8759061471467042 + }, + { + "year": 2020, + "value": 0.8710761366058977 + }, + { + "year": 2021, + "value": 0.8710761366058977 + }, + { + "year": 2022, + "value": 0.8710761366058977 + }, + { + "year": 2023, + "value": 0.8710761366058977 + }, + { + "year": 2024, + "value": 0.8710761366058977 + }, + { + "year": 2025, + "value": 0.8710761366058977 + }, + { + "year": 2026, + "value": 0.8710761366058977 + }, + { + "year": 2027, + "value": 0.8710761366058977 + }, + { + "year": 2028, + "value": 0.8710761366058977 + }, + { + "year": 2029, + "value": 0.8710761366058977 + }, + { + "year": 2030, + "value": 0.8710761366058977 + }, + { + "year": 2031, + "value": 0.8710761366058977 + }, + { + "year": 2032, + "value": 0.8710761366058977 + }, + { + "year": 2033, + "value": 0.8710761366058977 + }, + { + "year": 2034, + "value": 0.8710761366058977 + }, + { + "year": 2035, + "value": 0.8710761366058977 + }, + { + "year": 2036, + "value": 0.8710761366058977 + }, + { + "year": 2037, + "value": 0.8710761366058977 + }, + { + "year": 2038, + "value": 0.8710761366058977 + }, + { + "year": 2039, + "value": 0.8710761366058977 + }, + { + "year": 2040, + "value": 0.8710761366058977 + }, + { + "year": 2041, + "value": 0.8710761366058977 + }, + { + "year": 2042, + "value": 0.8710761366058977 + }, + { + "year": 2043, + "value": 0.8710761366058977 + }, + { + "year": 2044, + "value": 0.8710761366058977 + }, + { + "year": 2045, + "value": 0.8710761366058977 + }, + { + "year": 2046, + "value": 0.8710761366058977 + }, + { + "year": 2047, + "value": 0.8710761366058977 + }, + { + "year": 2048, + "value": 0.8710761366058977 + }, + { + "year": 2049, + "value": 0.8710761366058977 + }, + { + "year": 2050, + "value": 0.8710761366058977 + } + ] + }, + "S3": null, + "S1S2S3": null + }, + "country": null, + "ghg_s1s2": null, + "ghg_s3": null, + "industry_level_1": null, + "industry_level_2": null, + "industry_level_3": null, + "industry_level_4": null, + "company_revenue": null, + "company_market_cap": null, + "company_enterprise_value": null, + "company_total_assets": null, + "company_cash_equivalents": null + }, + { + "company_name": "Company AQ", + "company_id": "CH0038863350", + "region": "Asia", + "sector": "Electricity Utilities", + "target_probability": 0.4285714285714285, + "historic_data": { + "productions": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": 125595364.15776384 + }, + { + "year": 2011, + "value": 127565284.15776384 + }, + { + "year": 2012, + "value": 138062884.15776384 + }, + { + "year": 2013, + "value": 203459044.15776384 + }, + { + "year": 2014, + "value": 222847204.15776384 + }, + { + "year": 2015, + "value": 258448324.15776387 + }, + { + "year": 2016, + "value": 260094244.15776387 + }, + { + "year": 2017, + "value": 263023204.15776387 + }, + { + "year": 2018, + "value": 279689764.1577639 + }, + { + "year": 2019, + "value": 262841764.15776387 + }, + { + "year": 2020, + "value": 236895844.15776384 + }, + { + "year": 2021, + "value": 236895844.15776384 + } + ], + "emissions": { + "S1": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": 1968704.15493443 + }, + { + "year": 2011, + "value": 2832949.15493443 + }, + { + "year": 2012, + "value": 12866001.1549344 + }, + { + "year": 2013, + "value": 13663001.1549344 + }, + { + "year": 2014, + "value": 14934001.1549344 + }, + { + "year": 2015, + "value": 16918001.1549344 + }, + { + "year": 2016, + "value": 16977001.1549344 + }, + { + "year": 2017, + "value": 17293001.1549344 + }, + { + "year": 2018, + "value": 18162001.1549344 + }, + { + "year": 2019, + "value": 17976001.1549344 + }, + { + "year": 2020, + "value": 16065001.1549344 + }, + { + "year": 2021, + "value": 16065001.1549344 + } + ], + "S2": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": 52966.1549344293 + }, + { + "year": 2011, + "value": 58302.1549344293 + }, + { + "year": 2012, + "value": 61001.1549344293 + }, + { + "year": 2013, + "value": 202001.154934429 + }, + { + "year": 2014, + "value": 130001.154934429 + }, + { + "year": 2015, + "value": 409001.154934429 + }, + { + "year": 2016, + "value": 1265001.15493443 + }, + { + "year": 2017, + "value": 1818001.15493443 + }, + { + "year": 2018, + "value": 2090001.15493443 + }, + { + "year": 2019, + "value": 2289001.15493443 + }, + { + "year": 2020, + "value": 2403001.15493443 + }, + { + "year": 2021, + "value": 2403001.15493443 + } + ], + "S1S2": [], + "S3": [], + "S1S2S3": [] + }, + "emission_intensities": { + "S1": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": 0.20314767204226442 + }, + { + "year": 2011, + "value": 0.28781357945742975 + }, + { + "year": 2012, + "value": 1.207734982396956 + }, + { + "year": 2013, + "value": 0.8703102666237157 + }, + { + "year": 2014, + "value": 0.8685083382555276 + }, + { + "year": 2015, + "value": 0.8483602889764117 + }, + { + "year": 2016, + "value": 0.84593158022556 + }, + { + "year": 2017, + "value": 0.852081836983182 + }, + { + "year": 2018, + "value": 0.841573647418788 + }, + { + "year": 2019, + "value": 0.8863468700054724 + }, + { + "year": 2020, + "value": 0.8788774480539012 + }, + { + "year": 2021, + "value": 0.8788774480539012 + } + ], + "S2": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": 0.00546549924476466 + }, + { + "year": 2011, + "value": 0.005923209695638932 + }, + { + "year": 2012, + "value": 0.0057261947899539594 + }, + { + "year": 2013, + "value": 0.012867134900723496 + }, + { + "year": 2014, + "value": 0.007560404333174592 + }, + { + "year": 2015, + "value": 0.020509535069434367 + }, + { + "year": 2016, + "value": 0.06303259428534648 + }, + { + "year": 2017, + "value": 0.0895787694602712 + }, + { + "year": 2018, + "value": 0.09684449858047572 + }, + { + "year": 2019, + "value": 0.1128643123478058 + }, + { + "year": 2020, + "value": 0.13146239470207932 + }, + { + "year": 2021, + "value": 0.13146239470207932 + } + ], + "S1S2": [], + "S3": [], + "S1S2S3": [] + } + }, + "projected_targets": null, + "projected_intensities": { + "S1S2": { + "projections": [ + { + "year": 2019, + "value": 0.9992111823532782 + }, + { + "year": 2020, + "value": 1.0103398427559807 + }, + { + "year": 2021, + "value": 1.0103398427559807 + }, + { + "year": 2022, + "value": 1.0103398427559807 + }, + { + "year": 2023, + "value": 1.0103398427559807 + }, + { + "year": 2024, + "value": 1.0103398427559807 + }, + { + "year": 2025, + "value": 1.0103398427559807 + }, + { + "year": 2026, + "value": 1.0103398427559807 + }, + { + "year": 2027, + "value": 1.0103398427559807 + }, + { + "year": 2028, + "value": 1.0103398427559807 + }, + { + "year": 2029, + "value": 1.0103398427559807 + }, + { + "year": 2030, + "value": 1.0103398427559807 + }, + { + "year": 2031, + "value": 1.0103398427559807 + }, + { + "year": 2032, + "value": 1.0103398427559807 + }, + { + "year": 2033, + "value": 1.0103398427559807 + }, + { + "year": 2034, + "value": 1.0103398427559807 + }, + { + "year": 2035, + "value": 1.0103398427559807 + }, + { + "year": 2036, + "value": 1.0103398427559807 + }, + { + "year": 2037, + "value": 1.0103398427559807 + }, + { + "year": 2038, + "value": 1.0103398427559807 + }, + { + "year": 2039, + "value": 1.0103398427559807 + }, + { + "year": 2040, + "value": 1.0103398427559807 + }, + { + "year": 2041, + "value": 1.0103398427559807 + }, + { + "year": 2042, + "value": 1.0103398427559807 + }, + { + "year": 2043, + "value": 1.0103398427559807 + }, + { + "year": 2044, + "value": 1.0103398427559807 + }, + { + "year": 2045, + "value": 1.0103398427559807 + }, + { + "year": 2046, + "value": 1.0103398427559807 + }, + { + "year": 2047, + "value": 1.0103398427559807 + }, + { + "year": 2048, + "value": 1.0103398427559807 + }, + { + "year": 2049, + "value": 1.0103398427559807 + }, + { + "year": 2050, + "value": 1.0103398427559807 + } + ] + }, + "S3": null, + "S1S2S3": null + }, + "country": null, + "ghg_s1s2": null, + "ghg_s3": null, + "industry_level_1": null, + "industry_level_2": null, + "industry_level_3": null, + "industry_level_4": null, + "company_revenue": null, + "company_market_cap": null, + "company_enterprise_value": null, + "company_total_assets": null, + "company_cash_equivalents": null + }, + { + "company_name": "Company AR", + "company_id": "US8356993076", + "region": "Europe", + "sector": "Electricity Utilities", + "target_probability": 0.4285714285714285, + "historic_data": { + "productions": [ + { + "year": 2009, + "value": 697248015.4129393 + }, + { + "year": 2010, + "value": 683380815.4129393 + }, + { + "year": 2011, + "value": 732499215.4129393 + }, + { + "year": 2012, + "value": 739368015.4129393 + }, + { + "year": 2013, + "value": 739238415.4129393 + }, + { + "year": 2014, + "value": 710726415.4129393 + }, + { + "year": 2015, + "value": 720316815.4129393 + }, + { + "year": 2016, + "value": 695563215.4129393 + }, + { + "year": 2017, + "value": 841262415.4129393 + }, + { + "year": 2018, + "value": 1038312015.4129393 + }, + { + "year": 2019, + "value": 1038312015.4129393 + }, + { + "year": 2020, + "value": 1038312015.4129393 + }, + { + "year": 2021, + "value": 1038312015.4129393 + } + ], + "emissions": { + "S1": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": null + }, + { + "year": 2011, + "value": null + }, + { + "year": 2012, + "value": null + }, + { + "year": 2013, + "value": null + }, + { + "year": 2014, + "value": null + }, + { + "year": 2015, + "value": null + }, + { + "year": 2016, + "value": null + }, + { + "year": 2017, + "value": null + }, + { + "year": 2018, + "value": null + }, + { + "year": 2019, + "value": null + }, + { + "year": 2020, + "value": null + }, + { + "year": 2021, + "value": null + } + ], + "S2": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": null + }, + { + "year": 2011, + "value": null + }, + { + "year": 2012, + "value": null + }, + { + "year": 2013, + "value": null + }, + { + "year": 2014, + "value": null + }, + { + "year": 2015, + "value": null + }, + { + "year": 2016, + "value": null + }, + { + "year": 2017, + "value": null + }, + { + "year": 2018, + "value": null + }, + { + "year": 2019, + "value": null + }, + { + "year": 2020, + "value": null + }, + { + "year": 2021, + "value": null + } + ], + "S1S2": [], + "S3": [], + "S1S2S3": [] + }, + "emission_intensities": { + "S1": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": null + }, + { + "year": 2011, + "value": null + }, + { + "year": 2012, + "value": null + }, + { + "year": 2013, + "value": null + }, + { + "year": 2014, + "value": null + }, + { + "year": 2015, + "value": null + }, + { + "year": 2016, + "value": null + }, + { + "year": 2017, + "value": null + }, + { + "year": 2018, + "value": null + }, + { + "year": 2019, + "value": null + }, + { + "year": 2020, + "value": null + }, + { + "year": 2021, + "value": null + } + ], + "S2": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": null + }, + { + "year": 2011, + "value": null + }, + { + "year": 2012, + "value": null + }, + { + "year": 2013, + "value": null + }, + { + "year": 2014, + "value": null + }, + { + "year": 2015, + "value": null + }, + { + "year": 2016, + "value": null + }, + { + "year": 2017, + "value": null + }, + { + "year": 2018, + "value": null + }, + { + "year": 2019, + "value": null + }, + { + "year": 2020, + "value": null + }, + { + "year": 2021, + "value": null + } + ], + "S1S2": [], + "S3": [], + "S1S2S3": [] + } + }, + "projected_targets": null, + "projected_intensities": { + "S1S2": { + "projections": [ + { + "year": 2019, + "value": NaN + }, + { + "year": 2020, + "value": NaN + }, + { + "year": 2021, + "value": NaN + }, + { + "year": 2022, + "value": NaN + }, + { + "year": 2023, + "value": NaN + }, + { + "year": 2024, + "value": NaN + }, + { + "year": 2025, + "value": NaN + }, + { + "year": 2026, + "value": NaN + }, + { + "year": 2027, + "value": NaN + }, + { + "year": 2028, + "value": NaN + }, + { + "year": 2029, + "value": NaN + }, + { + "year": 2030, + "value": NaN + }, + { + "year": 2031, + "value": NaN + }, + { + "year": 2032, + "value": NaN + }, + { + "year": 2033, + "value": NaN + }, + { + "year": 2034, + "value": NaN + }, + { + "year": 2035, + "value": NaN + }, + { + "year": 2036, + "value": NaN + }, + { + "year": 2037, + "value": NaN + }, + { + "year": 2038, + "value": NaN + }, + { + "year": 2039, + "value": NaN + }, + { + "year": 2040, + "value": NaN + }, + { + "year": 2041, + "value": NaN + }, + { + "year": 2042, + "value": NaN + }, + { + "year": 2043, + "value": NaN + }, + { + "year": 2044, + "value": NaN + }, + { + "year": 2045, + "value": NaN + }, + { + "year": 2046, + "value": NaN + }, + { + "year": 2047, + "value": NaN + }, + { + "year": 2048, + "value": NaN + }, + { + "year": 2049, + "value": NaN + }, + { + "year": 2050, + "value": NaN + } + ] + }, + "S3": null, + "S1S2S3": null + }, + "country": null, + "ghg_s1s2": null, + "ghg_s3": null, + "industry_level_1": null, + "industry_level_2": null, + "industry_level_3": null, + "industry_level_4": null, + "company_revenue": null, + "company_market_cap": null, + "company_enterprise_value": null, + "company_total_assets": null, + "company_cash_equivalents": null + }, + { + "company_name": "Company AS", + "company_id": "JP3401400001", + "region": "Asia", + "sector": "Electricity Utilities", + "target_probability": 0.4285714285714285, + "historic_data": { + "productions": [ + { + "year": 2009, + "value": 159563527.70578668 + }, + { + "year": 2010, + "value": 146979367.70578668 + }, + { + "year": 2011, + "value": 146435047.70578668 + }, + { + "year": 2012, + "value": 143026567.70578668 + }, + { + "year": 2013, + "value": 139618087.70578668 + }, + { + "year": 2014, + "value": 190050203.6009867 + }, + { + "year": 2015, + "value": 214535101.14178666 + }, + { + "year": 2016, + "value": 233145050.2433867 + }, + { + "year": 2017, + "value": 218105285.54578668 + }, + { + "year": 2018, + "value": 167479620.8129867 + }, + { + "year": 2019, + "value": 171690299.59138668 + }, + { + "year": 2020, + "value": 171690299.59138668 + }, + { + "year": 2021, + "value": 171690299.59138668 + } + ], + "emissions": { + "S1": [ + { + "year": 2009, + "value": 9150002.14049632 + }, + { + "year": 2010, + "value": 8650002.14049632 + }, + { + "year": 2011, + "value": 8631002.14049632 + }, + { + "year": 2012, + "value": 8960002.14049632 + }, + { + "year": 2013, + "value": 9296403.94049632 + }, + { + "year": 2014, + "value": 9632805.74049632 + }, + { + "year": 2015, + "value": 9969207.54049632 + }, + { + "year": 2016, + "value": 10305609.3404963 + }, + { + "year": 2017, + "value": 10642011.1404963 + }, + { + "year": 2018, + "value": 11403118.1404963 + }, + { + "year": 2019, + "value": 9681777.14049632 + }, + { + "year": 2020, + "value": 9681777.14049632 + }, + { + "year": 2021, + "value": 9681777.14049632 + } + ], + "S2": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": 2.14049631522688 + }, + { + "year": 2011, + "value": 2.14049631522688 + }, + { + "year": 2012, + "value": 2.14049631522688 + }, + { + "year": 2013, + "value": 310616.540496315 + }, + { + "year": 2014, + "value": 621230.940496315 + }, + { + "year": 2015, + "value": 931845.340496315 + }, + { + "year": 2016, + "value": 1242459.74049632 + }, + { + "year": 2017, + "value": 1553074.14049631 + }, + { + "year": 2018, + "value": 1239860.14049631 + }, + { + "year": 2019, + "value": 1203273.14049631 + }, + { + "year": 2020, + "value": 1203273.14049631 + }, + { + "year": 2021, + "value": 1203273.14049631 + } + ], + "S1S2": [], + "S3": [], + "S1S2S3": [] + }, + "emission_intensities": { + "S1": [ + { + "year": 2009, + "value": 0.7431775258785013 + }, + { + "year": 2010, + "value": 0.7627194856711764 + }, + { + "year": 2011, + "value": 0.7638730583512608 + }, + { + "year": 2012, + "value": 0.8118885155637708 + }, + { + "year": 2013, + "value": 0.8629354337148576 + }, + { + "year": 2014, + "value": 0.6568851810279456 + }, + { + "year": 2015, + "value": 0.6022367856691344 + }, + { + "year": 2016, + "value": 0.5728652481080088 + }, + { + "year": 2017, + "value": 0.6323572766047393 + }, + { + "year": 2018, + "value": 0.8824023507066155 + }, + { + "year": 2019, + "value": 0.7308265641067548 + }, + { + "year": 2020, + "value": 0.7308265641067548 + }, + { + "year": 2021, + "value": 0.7308265641067548 + } + ], + "S2": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": 1.8873963521784973e-07 + }, + { + "year": 2011, + "value": 1.894412074155671e-07 + }, + { + "year": 2012, + "value": 1.9395579919392828e-07 + }, + { + "year": 2013, + "value": 0.028832871377777763 + }, + { + "year": 2014, + "value": 0.042363295783338244 + }, + { + "year": 2015, + "value": 0.05629249269027864 + }, + { + "year": 2016, + "value": 0.0690654947210874 + }, + { + "year": 2017, + "value": 0.09228497516905357 + }, + { + "year": 2018, + "value": 0.0959435383411512 + }, + { + "year": 2019, + "value": 0.09082877680303489 + }, + { + "year": 2020, + "value": 0.09082877680303489 + }, + { + "year": 2021, + "value": 0.09082877680303489 + } + ], + "S1S2": [], + "S3": [], + "S1S2S3": [] + } + }, + "projected_targets": null, + "projected_intensities": { + "S1S2": { + "projections": [ + { + "year": 2019, + "value": 0.8216553409097898 + }, + { + "year": 2020, + "value": 0.8216553409097898 + }, + { + "year": 2021, + "value": 0.8216553409097898 + }, + { + "year": 2022, + "value": 0.8216553409097898 + }, + { + "year": 2023, + "value": 0.8216553409097898 + }, + { + "year": 2024, + "value": 0.8216553409097898 + }, + { + "year": 2025, + "value": 0.8216553409097898 + }, + { + "year": 2026, + "value": 0.8216553409097898 + }, + { + "year": 2027, + "value": 0.8216553409097898 + }, + { + "year": 2028, + "value": 0.8216553409097898 + }, + { + "year": 2029, + "value": 0.8216553409097898 + }, + { + "year": 2030, + "value": 0.8216553409097898 + }, + { + "year": 2031, + "value": 0.8216553409097898 + }, + { + "year": 2032, + "value": 0.8216553409097898 + }, + { + "year": 2033, + "value": 0.8216553409097898 + }, + { + "year": 2034, + "value": 0.8216553409097898 + }, + { + "year": 2035, + "value": 0.8216553409097898 + }, + { + "year": 2036, + "value": 0.8216553409097898 + }, + { + "year": 2037, + "value": 0.8216553409097898 + }, + { + "year": 2038, + "value": 0.8216553409097898 + }, + { + "year": 2039, + "value": 0.8216553409097898 + }, + { + "year": 2040, + "value": 0.8216553409097898 + }, + { + "year": 2041, + "value": 0.8216553409097898 + }, + { + "year": 2042, + "value": 0.8216553409097898 + }, + { + "year": 2043, + "value": 0.8216553409097898 + }, + { + "year": 2044, + "value": 0.8216553409097898 + }, + { + "year": 2045, + "value": 0.8216553409097898 + }, + { + "year": 2046, + "value": 0.8216553409097898 + }, + { + "year": 2047, + "value": 0.8216553409097898 + }, + { + "year": 2048, + "value": 0.8216553409097898 + }, + { + "year": 2049, + "value": 0.8216553409097898 + }, + { + "year": 2050, + "value": 0.8216553409097898 + } + ] + }, + "S3": null, + "S1S2S3": null + }, + "country": null, + "ghg_s1s2": null, + "ghg_s3": null, + "industry_level_1": null, + "industry_level_2": null, + "industry_level_3": null, + "industry_level_4": null, + "company_revenue": null, + "company_market_cap": null, + "company_enterprise_value": null, + "company_total_assets": null, + "company_cash_equivalents": null + }, + { + "company_name": "Company AT", + "company_id": "US6541061031", + "region": "Europe", + "sector": "Electricity Utilities", + "target_probability": 0.4285714285714285, + "historic_data": { + "productions": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": 2919888004.0657935 + }, + { + "year": 2011, + "value": 2665872004.0657935 + }, + { + "year": 2012, + "value": 2943216004.0657935 + }, + { + "year": 2013, + "value": 2808432004.0657935 + }, + { + "year": 2014, + "value": 2699568004.0657935 + }, + { + "year": 2015, + "value": 2760480004.0657935 + }, + { + "year": 2016, + "value": 2800656004.0657935 + }, + { + "year": 2017, + "value": 2594592004.0657935 + }, + { + "year": 2018, + "value": 2280960004.0657935 + }, + { + "year": 2019, + "value": 1985018404.0657933 + }, + { + "year": 2020, + "value": 1902204004.0657933 + }, + { + "year": 2021, + "value": 1902204004.0657933 + } + ], + "emissions": { + "S1": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": 167100001.129387 + }, + { + "year": 2011, + "value": 163800001.129387 + }, + { + "year": 2012, + "value": 181700001.129387 + }, + { + "year": 2013, + "value": 165800001.129387 + }, + { + "year": 2014, + "value": 156600001.129387 + }, + { + "year": 2015, + "value": 152300001.129387 + }, + { + "year": 2016, + "value": 154000001.129387 + }, + { + "year": 2017, + "value": 135600001.129387 + }, + { + "year": 2018, + "value": 120400001.129387 + }, + { + "year": 2019, + "value": 91700001.129387 + }, + { + "year": 2020, + "value": 70400001.129387 + }, + { + "year": 2021, + "value": 70400001.129387 + } + ], + "S2": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": 3100001.12938701 + }, + { + "year": 2011, + "value": 2400001.12938701 + }, + { + "year": 2012, + "value": 1900001.12938701 + }, + { + "year": 2013, + "value": 1500001.12938701 + }, + { + "year": 2014, + "value": 1400001.12938701 + }, + { + "year": 2015, + "value": 1300001.12938701 + }, + { + "year": 2016, + "value": 1300001.12938701 + }, + { + "year": 2017, + "value": 1000001.12938701 + }, + { + "year": 2018, + "value": 5000001.12938701 + }, + { + "year": 2019, + "value": 4700001.12938701 + }, + { + "year": 2020, + "value": 2600001.12938701 + }, + { + "year": 2021, + "value": 2600001.12938701 + } + ], + "S1S2": [], + "S3": [], + "S1S2S3": [] + }, + "emission_intensities": { + "S1": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": 0.7416777669627563 + }, + { + "year": 2011, + "value": 0.7963053032550852 + }, + { + "year": 2012, + "value": 0.8000880707986993 + }, + { + "year": 2013, + "value": 0.7651130636333952 + }, + { + "year": 2014, + "value": 0.7518002923357344 + }, + { + "year": 2015, + "value": 0.715023478427562 + }, + { + "year": 2016, + "value": 0.7126330444508124 + }, + { + "year": 2017, + "value": 0.6773226819025896 + }, + { + "year": 2018, + "value": 0.6840909142884937 + }, + { + "year": 2019, + "value": 0.5987007537072012 + }, + { + "year": 2020, + "value": 0.47964572290181157 + }, + { + "year": 2021, + "value": 0.47964572290181157 + } + ], + "S2": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": 0.013759436862274392 + }, + { + "year": 2011, + "value": 0.011667482380781245 + }, + { + "year": 2012, + "value": 0.008366363393933629 + }, + { + "year": 2013, + "value": 0.006922017199886688 + }, + { + "year": 2014, + "value": 0.00672108078386214 + }, + { + "year": 2015, + "value": 0.006103291678273692 + }, + { + "year": 2016, + "value": 0.006015738674223793 + }, + { + "year": 2017, + "value": 0.004995010628471448 + }, + { + "year": 2018, + "value": 0.028409097275423567 + }, + { + "year": 2019, + "value": 0.030685868963276727 + }, + { + "year": 2020, + "value": 0.017714196040400174 + }, + { + "year": 2021, + "value": 0.017714196040400174 + } + ], + "S1S2": [], + "S3": [], + "S1S2S3": [] + } + }, + "projected_targets": null, + "projected_intensities": { + "S1S2": { + "projections": [ + { + "year": 2019, + "value": 0.629386622670478 + }, + { + "year": 2020, + "value": 0.49735991894221177 + }, + { + "year": 2021, + "value": 0.49735991894221177 + }, + { + "year": 2022, + "value": 0.48865412727555213 + }, + { + "year": 2023, + "value": 0.4801007218500365 + }, + { + "year": 2024, + "value": 0.4716970352957829 + }, + { + "year": 2025, + "value": 0.4634404469325714 + }, + { + "year": 2026, + "value": 0.45532838195258785 + }, + { + "year": 2027, + "value": 0.44735831061747283 + }, + { + "year": 2028, + "value": 0.43952774746942586 + }, + { + "year": 2029, + "value": 0.4318342505561179 + }, + { + "year": 2030, + "value": 0.42427542066917145 + }, + { + "year": 2031, + "value": 0.41684890059597 + }, + { + "year": 2032, + "value": 0.409552374384564 + }, + { + "year": 2033, + "value": 0.4023835666214437 + }, + { + "year": 2034, + "value": 0.39534024172195426 + }, + { + "year": 2035, + "value": 0.38842020323313087 + }, + { + "year": 2036, + "value": 0.3816212931487376 + }, + { + "year": 2037, + "value": 0.37494139123629544 + }, + { + "year": 2038, + "value": 0.3683784143758903 + }, + { + "year": 2039, + "value": 0.3619303159105543 + }, + { + "year": 2040, + "value": 0.3555950850080181 + }, + { + "year": 2041, + "value": 0.3493707460336352 + }, + { + "year": 2042, + "value": 0.3432553579342824 + }, + { + "year": 2043, + "value": 0.3372470136330446 + }, + { + "year": 2044, + "value": 0.33134383943449497 + }, + { + "year": 2045, + "value": 0.3255439944403852 + }, + { + "year": 2046, + "value": 0.31984566997556335 + }, + { + "year": 2047, + "value": 0.3142470890239408 + }, + { + "year": 2048, + "value": 0.30874650567433126 + }, + { + "year": 2049, + "value": 0.30334220457599087 + }, + { + "year": 2050, + "value": 0.29803250040368773 + } + ] + }, + "S3": null, + "S1S2S3": null + }, + "country": null, + "ghg_s1s2": null, + "ghg_s3": null, + "industry_level_1": null, + "industry_level_2": null, + "industry_level_3": null, + "industry_level_4": null, + "company_revenue": null, + "company_market_cap": null, + "company_enterprise_value": null, + "company_total_assets": null, + "company_cash_equivalents": null + }, + { + "company_name": "Company AU", + "company_id": "GB0031274896", + "region": "North America", + "sector": "Electricity Utilities", + "target_probability": 0.4285714285714285, + "historic_data": { + "productions": [ + { + "year": 2009, + "value": 926887167.2113813 + }, + { + "year": 2010, + "value": 965233460.0113813 + }, + { + "year": 2011, + "value": 968392251.2113813 + }, + { + "year": 2012, + "value": 972920165.6113813 + }, + { + "year": 2013, + "value": 919330565.6113813 + }, + { + "year": 2014, + "value": 954115205.6113813 + }, + { + "year": 2015, + "value": 949695845.6113813 + }, + { + "year": 2016, + "value": 960753123.2113813 + }, + { + "year": 2017, + "value": 939777829.7713813 + }, + { + "year": 2018, + "value": 891855365.6113813 + }, + { + "year": 2019, + "value": 874385285.6113813 + }, + { + "year": 2020, + "value": 874385285.6113813 + }, + { + "year": 2021, + "value": 874385285.6113813 + } + ], + "emissions": { + "S1": [ + { + "year": 2009, + "value": 55192252.5587173 + }, + { + "year": 2010, + "value": 56075311.5587173 + }, + { + "year": 2011, + "value": 54746972.5587173 + }, + { + "year": 2012, + "value": 54472481.5587173 + }, + { + "year": 2013, + "value": 56535331.5587173 + }, + { + "year": 2014, + "value": 57593228.5587173 + }, + { + "year": 2015, + "value": 56978409.5587173 + }, + { + "year": 2016, + "value": 52832514.4587173 + }, + { + "year": 2017, + "value": 50919739.3587173 + }, + { + "year": 2018, + "value": 50723846.5587173 + }, + { + "year": 2019, + "value": 48061950.5587173 + }, + { + "year": 2020, + "value": 48061950.5587173 + }, + { + "year": 2021, + "value": 48061950.5587173 + } + ], + "S2": [ + { + "year": 2009, + "value": 1007225.55871729 + }, + { + "year": 2010, + "value": 1933034.55871729 + }, + { + "year": 2011, + "value": 1052282.55871729 + }, + { + "year": 2012, + "value": 1189960.55871729 + }, + { + "year": 2013, + "value": 774476.55871729 + }, + { + "year": 2014, + "value": 601657.55871729 + }, + { + "year": 2015, + "value": 1061617.55871729 + }, + { + "year": 2016, + "value": 891280.15871729 + }, + { + "year": 2017, + "value": 1153067.75871729 + }, + { + "year": 2018, + "value": 841797.55871729 + }, + { + "year": 2019, + "value": 607645.55871729 + }, + { + "year": 2020, + "value": 607645.55871729 + }, + { + "year": 2021, + "value": 607645.55871729 + } + ], + "S1S2": [], + "S3": [], + "S1S2S3": [] + }, + "emission_intensities": { + "S1": [ + { + "year": 2009, + "value": 0.771713773223328 + }, + { + "year": 2010, + "value": 0.7529121895467709 + }, + { + "year": 2011, + "value": 0.73267910133876 + }, + { + "year": 2012, + "value": 0.7256128364420833 + }, + { + "year": 2013, + "value": 0.7969906847529973 + }, + { + "year": 2014, + "value": 0.7823041051344408 + }, + { + "year": 2015, + "value": 0.7775544047005837 + }, + { + "year": 2016, + "value": 0.7126798454698644 + }, + { + "year": 2017, + "value": 0.7022083317814728 + }, + { + "year": 2018, + "value": 0.7370937898101109 + }, + { + "year": 2019, + "value": 0.7123666071364056 + }, + { + "year": 2020, + "value": 0.7123666071364056 + }, + { + "year": 2021, + "value": 0.7123666071364056 + } + ], + "S2": [ + { + "year": 2009, + "value": 0.014083314240123792 + }, + { + "year": 2010, + "value": 0.025954475180212513 + }, + { + "year": 2011, + "value": 0.014082704548612957 + }, + { + "year": 2012, + "value": 0.01585113495030187 + }, + { + "year": 2013, + "value": 0.010917962021964349 + }, + { + "year": 2014, + "value": 0.008172474262140671 + }, + { + "year": 2015, + "value": 0.01448733678740982 + }, + { + "year": 2016, + "value": 0.012022850176501211 + }, + { + "year": 2017, + "value": 0.015901373366736478 + }, + { + "year": 2018, + "value": 0.012232584768380328 + }, + { + "year": 2019, + "value": 0.009006426080774784 + }, + { + "year": 2020, + "value": 0.009006426080774784 + }, + { + "year": 2021, + "value": 0.009006426080774784 + } + ], + "S1S2": [], + "S3": [], + "S1S2S3": [] + } + }, + "projected_targets": null, + "projected_intensities": { + "S1S2": { + "projections": [ + { + "year": 2019, + "value": 0.7213730332171804 + }, + { + "year": 2020, + "value": 0.7213730332171804 + }, + { + "year": 2021, + "value": 0.7213730332171804 + }, + { + "year": 2022, + "value": 0.7191454204965274 + }, + { + "year": 2023, + "value": 0.7169246866834642 + }, + { + "year": 2024, + "value": 0.7147108105358021 + }, + { + "year": 2025, + "value": 0.7125037708769486 + }, + { + "year": 2026, + "value": 0.7103035465957052 + }, + { + "year": 2027, + "value": 0.7081101166460648 + }, + { + "year": 2028, + "value": 0.705923460047011 + }, + { + "year": 2029, + "value": 0.7037435558823171 + }, + { + "year": 2030, + "value": 0.7015703833003458 + }, + { + "year": 2031, + "value": 0.6994039215138506 + }, + { + "year": 2032, + "value": 0.6972441497997758 + }, + { + "year": 2033, + "value": 0.6950910474990591 + }, + { + "year": 2034, + "value": 0.692944594016434 + }, + { + "year": 2035, + "value": 0.6908047688202321 + }, + { + "year": 2036, + "value": 0.6886715514421875 + }, + { + "year": 2037, + "value": 0.6865449214772404 + }, + { + "year": 2038, + "value": 0.6844248585833425 + }, + { + "year": 2039, + "value": 0.6823113424812617 + }, + { + "year": 2040, + "value": 0.6802043529543889 + }, + { + "year": 2041, + "value": 0.6781038698485441 + }, + { + "year": 2042, + "value": 0.6760098730717837 + }, + { + "year": 2043, + "value": 0.6739223425942086 + }, + { + "year": 2044, + "value": 0.6718412584477721 + }, + { + "year": 2045, + "value": 0.6697666007260893 + }, + { + "year": 2046, + "value": 0.6676983495842467 + }, + { + "year": 2047, + "value": 0.665636485238612 + }, + { + "year": 2048, + "value": 0.6635809879666453 + }, + { + "year": 2049, + "value": 0.6615318381067102 + }, + { + "year": 2050, + "value": 0.6594890160578858 + } + ] + }, + "S3": null, + "S1S2S3": null + }, + "country": null, + "ghg_s1s2": null, + "ghg_s3": null, + "industry_level_1": null, + "industry_level_2": null, + "industry_level_3": null, + "industry_level_4": null, + "company_revenue": null, + "company_market_cap": null, + "company_enterprise_value": null, + "company_total_assets": null, + "company_cash_equivalents": null + }, + { + "company_name": "Company AV", + "company_id": "US6293775085", + "region": "Europe", + "sector": "Steel", + "target_probability": 0.4285714285714285, + "historic_data": { + "productions": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": null + }, + { + "year": 2011, + "value": null + }, + { + "year": 2012, + "value": null + }, + { + "year": 2013, + "value": null + }, + { + "year": 2014, + "value": 91200001.3960884 + }, + { + "year": 2015, + "value": 92479001.3960884 + }, + { + "year": 2016, + "value": 90800001.3960884 + }, + { + "year": 2017, + "value": 93100001.3960884 + }, + { + "year": 2018, + "value": 92500001.3960884 + }, + { + "year": 2019, + "value": 89800001.3960884 + }, + { + "year": 2020, + "value": 71500001.3960884 + }, + { + "year": 2021, + "value": 71500001.3960884 + } + ], + "emissions": { + "S1": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": 165226001.396088 + }, + { + "year": 2011, + "value": 162028001.396088 + }, + { + "year": 2012, + "value": 158192001.396088 + }, + { + "year": 2013, + "value": 169000001.396088 + }, + { + "year": 2014, + "value": 174000001.396088 + }, + { + "year": 2015, + "value": 176000001.396088 + }, + { + "year": 2016, + "value": 176000001.396088 + }, + { + "year": 2017, + "value": 179700001.396088 + }, + { + "year": 2018, + "value": 174900001.396088 + }, + { + "year": 2019, + "value": 169800001.396088 + }, + { + "year": 2020, + "value": 141300001.396088 + }, + { + "year": 2021, + "value": 141300001.396088 + } + ], + "S2": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": 19599001.3960884 + }, + { + "year": 2011, + "value": 17902001.3960884 + }, + { + "year": 2012, + "value": 17256001.3960884 + }, + { + "year": 2013, + "value": 21000001.3960884 + }, + { + "year": 2014, + "value": 17000001.3960884 + }, + { + "year": 2015, + "value": 16000001.3960884 + }, + { + "year": 2016, + "value": 14000001.3960884 + }, + { + "year": 2017, + "value": 15100001.3960884 + }, + { + "year": 2018, + "value": 13900001.3960884 + }, + { + "year": 2019, + "value": 12100001.3960884 + }, + { + "year": 2020, + "value": 9500001.3960884 + }, + { + "year": 2021, + "value": 9500001.3960884 + } + ], + "S1S2": [], + "S3": [], + "S1S2S3": [] + }, + "emission_intensities": null + }, + "projected_targets": null, + "projected_intensities": { + "S1S2": { + "projections": [ + { + "year": 2019, + "value": 2.0256124717621637 + }, + { + "year": 2020, + "value": 2.1090909069608257 + }, + { + "year": 2021, + "value": 2.1090909069608257 + }, + { + "year": 2022, + "value": 2.1089525981366672 + }, + { + "year": 2023, + "value": 2.10881429838245 + }, + { + "year": 2024, + "value": 2.1086760076975795 + }, + { + "year": 2025, + "value": 2.1085377260814604 + }, + { + "year": 2026, + "value": 2.1083994535334987 + }, + { + "year": 2027, + "value": 2.108261190053099 + }, + { + "year": 2028, + "value": 2.108122935639668 + }, + { + "year": 2029, + "value": 2.1079846902926094 + }, + { + "year": 2030, + "value": 2.1078464540113298 + }, + { + "year": 2031, + "value": 2.1077082267952343 + }, + { + "year": 2032, + "value": 2.107570008643729 + }, + { + "year": 2033, + "value": 2.107431799556218 + }, + { + "year": 2034, + "value": 2.1072935995321087 + }, + { + "year": 2035, + "value": 2.1071554085708057 + }, + { + "year": 2036, + "value": 2.107017226671715 + }, + { + "year": 2037, + "value": 2.106879053834242 + }, + { + "year": 2038, + "value": 2.106740890057793 + }, + { + "year": 2039, + "value": 2.1066027353417733 + }, + { + "year": 2040, + "value": 2.106464589685589 + }, + { + "year": 2041, + "value": 2.106326453088646 + }, + { + "year": 2042, + "value": 2.1061883255503497 + }, + { + "year": 2043, + "value": 2.106050207070107 + }, + { + "year": 2044, + "value": 2.105912097647323 + }, + { + "year": 2045, + "value": 2.1057739972814042 + }, + { + "year": 2046, + "value": 2.1056359059717566 + }, + { + "year": 2047, + "value": 2.1054978237177866 + }, + { + "year": 2048, + "value": 2.1053597505189 + }, + { + "year": 2049, + "value": 2.105221686374503 + }, + { + "year": 2050, + "value": 2.1050836312840016 + } + ] + }, + "S3": null, + "S1S2S3": null + }, + "country": null, + "ghg_s1s2": null, + "ghg_s3": null, + "industry_level_1": null, + "industry_level_2": null, + "industry_level_3": null, + "industry_level_4": null, + "company_revenue": null, + "company_market_cap": null, + "company_enterprise_value": null, + "company_total_assets": null, + "company_cash_equivalents": null + }, + { + "company_name": "Company AW", + "company_id": "US7134481081", + "region": "Asia", + "sector": "Steel", + "target_probability": 0.4285714285714285, + "historic_data": { + "productions": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": null + }, + { + "year": 2011, + "value": null + }, + { + "year": 2012, + "value": null + }, + { + "year": 2013, + "value": null + }, + { + "year": 2014, + "value": null + }, + { + "year": 2015, + "value": null + }, + { + "year": 2016, + "value": null + }, + { + "year": 2017, + "value": null + }, + { + "year": 2018, + "value": null + }, + { + "year": 2019, + "value": null + }, + { + "year": 2020, + "value": null + }, + { + "year": 2021, + "value": null + } + ], + "emissions": { + "S1": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": null + }, + { + "year": 2011, + "value": 13390004.4552317 + }, + { + "year": 2012, + "value": 9480004.45523172 + }, + { + "year": 2013, + "value": 8095004.45523172 + }, + { + "year": 2014, + "value": 7840004.45523172 + }, + { + "year": 2015, + "value": 7810004.45523172 + }, + { + "year": 2016, + "value": 8270004.45523172 + }, + { + "year": 2017, + "value": 8670004.45523172 + }, + { + "year": 2018, + "value": 8780004.45523172 + }, + { + "year": 2019, + "value": 8590004.45523172 + }, + { + "year": 2020, + "value": 8530004.45523172 + }, + { + "year": 2021, + "value": 8530004.45523172 + } + ], + "S2": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": null + }, + { + "year": 2011, + "value": 2530004.45523172 + }, + { + "year": 2012, + "value": 1970004.45523172 + }, + { + "year": 2013, + "value": 1781004.45523172 + }, + { + "year": 2014, + "value": 1541004.45523172 + }, + { + "year": 2015, + "value": 1570004.45523172 + }, + { + "year": 2016, + "value": 1830004.45523172 + }, + { + "year": 2017, + "value": 2000004.45523172 + }, + { + "year": 2018, + "value": 1970004.45523172 + }, + { + "year": 2019, + "value": 1810004.45523172 + }, + { + "year": 2020, + "value": 1750004.45523172 + }, + { + "year": 2021, + "value": 1750004.45523172 + } + ], + "S1S2": [], + "S3": [], + "S1S2S3": [] + }, + "emission_intensities": { + "S1": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": null + }, + { + "year": 2011, + "value": null + }, + { + "year": 2012, + "value": null + }, + { + "year": 2013, + "value": null + }, + { + "year": 2014, + "value": null + }, + { + "year": 2015, + "value": null + }, + { + "year": 2016, + "value": null + }, + { + "year": 2017, + "value": null + }, + { + "year": 2018, + "value": null + }, + { + "year": 2019, + "value": null + }, + { + "year": 2020, + "value": null + }, + { + "year": 2021, + "value": null + } + ], + "S2": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": null + }, + { + "year": 2011, + "value": null + }, + { + "year": 2012, + "value": null + }, + { + "year": 2013, + "value": null + }, + { + "year": 2014, + "value": null + }, + { + "year": 2015, + "value": null + }, + { + "year": 2016, + "value": null + }, + { + "year": 2017, + "value": null + }, + { + "year": 2018, + "value": null + }, + { + "year": 2019, + "value": null + }, + { + "year": 2020, + "value": null + }, + { + "year": 2021, + "value": null + } + ], + "S1S2": [], + "S3": [], + "S1S2S3": [] + } + }, + "projected_targets": null, + "projected_intensities": { + "S1S2": { + "projections": [ + { + "year": 2019, + "value": NaN + }, + { + "year": 2020, + "value": NaN + }, + { + "year": 2021, + "value": NaN + }, + { + "year": 2022, + "value": NaN + }, + { + "year": 2023, + "value": NaN + }, + { + "year": 2024, + "value": NaN + }, + { + "year": 2025, + "value": NaN + }, + { + "year": 2026, + "value": NaN + }, + { + "year": 2027, + "value": NaN + }, + { + "year": 2028, + "value": NaN + }, + { + "year": 2029, + "value": NaN + }, + { + "year": 2030, + "value": NaN + }, + { + "year": 2031, + "value": NaN + }, + { + "year": 2032, + "value": NaN + }, + { + "year": 2033, + "value": NaN + }, + { + "year": 2034, + "value": NaN + }, + { + "year": 2035, + "value": NaN + }, + { + "year": 2036, + "value": NaN + }, + { + "year": 2037, + "value": NaN + }, + { + "year": 2038, + "value": NaN + }, + { + "year": 2039, + "value": NaN + }, + { + "year": 2040, + "value": NaN + }, + { + "year": 2041, + "value": NaN + }, + { + "year": 2042, + "value": NaN + }, + { + "year": 2043, + "value": NaN + }, + { + "year": 2044, + "value": NaN + }, + { + "year": 2045, + "value": NaN + }, + { + "year": 2046, + "value": NaN + }, + { + "year": 2047, + "value": NaN + }, + { + "year": 2048, + "value": NaN + }, + { + "year": 2049, + "value": NaN + }, + { + "year": 2050, + "value": NaN + } + ] + }, + "S3": null, + "S1S2S3": null + }, + "country": null, + "ghg_s1s2": null, + "ghg_s3": null, + "industry_level_1": null, + "industry_level_2": null, + "industry_level_3": null, + "industry_level_4": null, + "company_revenue": null, + "company_market_cap": null, + "company_enterprise_value": null, + "company_total_assets": null, + "company_cash_equivalents": null + }, + { + "company_name": "Company A", + "company_id": "JP0000000001", + "region": "Asia", + "sector": "Steel", + "target_probability": 0.4285714285714285, + "historic_data": { + "productions": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": null + }, + { + "year": 2011, + "value": null + }, + { + "year": 2012, + "value": null + }, + { + "year": 2013, + "value": null + }, + { + "year": 2014, + "value": null + }, + { + "year": 2015, + "value": null + }, + { + "year": 2016, + "value": null + }, + { + "year": 2017, + "value": null + }, + { + "year": 2018, + "value": null + }, + { + "year": 2019, + "value": null + }, + { + "year": 2020, + "value": null + }, + { + "year": 2021, + "value": null + } + ], + "emissions": { + "S1": [ + { + "year": 2009, + "value": 21759305.8145184 + }, + { + "year": 2010, + "value": 20966413.8145184 + }, + { + "year": 2011, + "value": 21128989.8145184 + }, + { + "year": 2012, + "value": 20070402.8145184 + }, + { + "year": 2013, + "value": 19691129.8145184 + }, + { + "year": 2014, + "value": 19443564.8145184 + }, + { + "year": 2015, + "value": 20018158.8145184 + }, + { + "year": 2016, + "value": 21042990.8145184 + }, + { + "year": 2017, + "value": 20006804.8145184 + }, + { + "year": 2018, + "value": 20805771.8145184 + }, + { + "year": 2019, + "value": 20351815.8145184 + }, + { + "year": 2020, + "value": 20351815.8145184 + }, + { + "year": 2021, + "value": 20351815.8145184 + } + ], + "S2": [ + { + "year": 2009, + "value": 1337565.8145184 + }, + { + "year": 2010, + "value": 1349200.8145184 + }, + { + "year": 2011, + "value": 1371359.8145184 + }, + { + "year": 2012, + "value": 1243282.8145184 + }, + { + "year": 2013, + "value": 1257964.8145184 + }, + { + "year": 2014, + "value": 1185845.8145184 + }, + { + "year": 2015, + "value": 1109279.8145184 + }, + { + "year": 2016, + "value": 1275990.8145184 + }, + { + "year": 2017, + "value": 1298687.8145184 + }, + { + "year": 2018, + "value": 1294689.8145184 + }, + { + "year": 2019, + "value": 1181783.8145184 + }, + { + "year": 2020, + "value": 1181783.8145184 + }, + { + "year": 2021, + "value": 1181783.8145184 + } + ], + "S1S2": [], + "S3": [], + "S1S2S3": [] + }, + "emission_intensities": { + "S1": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": null + }, + { + "year": 2011, + "value": null + }, + { + "year": 2012, + "value": null + }, + { + "year": 2013, + "value": null + }, + { + "year": 2014, + "value": null + }, + { + "year": 2015, + "value": null + }, + { + "year": 2016, + "value": null + }, + { + "year": 2017, + "value": null + }, + { + "year": 2018, + "value": null + }, + { + "year": 2019, + "value": null + }, + { + "year": 2020, + "value": null + }, + { + "year": 2021, + "value": null + } + ], + "S2": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": null + }, + { + "year": 2011, + "value": null + }, + { + "year": 2012, + "value": null + }, + { + "year": 2013, + "value": null + }, + { + "year": 2014, + "value": null + }, + { + "year": 2015, + "value": null + }, + { + "year": 2016, + "value": null + }, + { + "year": 2017, + "value": null + }, + { + "year": 2018, + "value": null + }, + { + "year": 2019, + "value": null + }, + { + "year": 2020, + "value": null + }, + { + "year": 2021, + "value": null + } + ], + "S1S2": [], + "S3": [], + "S1S2S3": [] + } + }, + "projected_targets": null, + "projected_intensities": { + "S1S2": { + "projections": [ + { + "year": 2019, + "value": NaN + }, + { + "year": 2020, + "value": NaN + }, + { + "year": 2021, + "value": NaN + }, + { + "year": 2022, + "value": NaN + }, + { + "year": 2023, + "value": NaN + }, + { + "year": 2024, + "value": NaN + }, + { + "year": 2025, + "value": NaN + }, + { + "year": 2026, + "value": NaN + }, + { + "year": 2027, + "value": NaN + }, + { + "year": 2028, + "value": NaN + }, + { + "year": 2029, + "value": NaN + }, + { + "year": 2030, + "value": NaN + }, + { + "year": 2031, + "value": NaN + }, + { + "year": 2032, + "value": NaN + }, + { + "year": 2033, + "value": NaN + }, + { + "year": 2034, + "value": NaN + }, + { + "year": 2035, + "value": NaN + }, + { + "year": 2036, + "value": NaN + }, + { + "year": 2037, + "value": NaN + }, + { + "year": 2038, + "value": NaN + }, + { + "year": 2039, + "value": NaN + }, + { + "year": 2040, + "value": NaN + }, + { + "year": 2041, + "value": NaN + }, + { + "year": 2042, + "value": NaN + }, + { + "year": 2043, + "value": NaN + }, + { + "year": 2044, + "value": NaN + }, + { + "year": 2045, + "value": NaN + }, + { + "year": 2046, + "value": NaN + }, + { + "year": 2047, + "value": NaN + }, + { + "year": 2048, + "value": NaN + }, + { + "year": 2049, + "value": NaN + }, + { + "year": 2050, + "value": NaN + } + ] + }, + "S3": null, + "S1S2S3": null + }, + "country": null, + "ghg_s1s2": null, + "ghg_s3": null, + "industry_level_1": null, + "industry_level_2": null, + "industry_level_3": null, + "industry_level_4": null, + "company_revenue": null, + "company_market_cap": null, + "company_enterprise_value": null, + "company_total_assets": null, + "company_cash_equivalents": null + }, + { + "company_name": "Company B", + "company_id": "NL0000000002", + "region": "South America", + "sector": "Steel", + "target_probability": 0.4285714285714285, + "historic_data": { + "productions": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": null + }, + { + "year": 2011, + "value": null + }, + { + "year": 2012, + "value": null + }, + { + "year": 2013, + "value": null + }, + { + "year": 2014, + "value": null + }, + { + "year": 2015, + "value": null + }, + { + "year": 2016, + "value": null + }, + { + "year": 2017, + "value": 16120000.4760821 + }, + { + "year": 2018, + "value": 15342000.4760821 + }, + { + "year": 2019, + "value": 12453000.4760821 + }, + { + "year": 2020, + "value": 12194000.4760821 + }, + { + "year": 2021, + "value": 12194000.4760821 + } + ], + "emissions": { + "S1": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": null + }, + { + "year": 2011, + "value": null + }, + { + "year": 2012, + "value": null + }, + { + "year": 2013, + "value": null + }, + { + "year": 2014, + "value": null + }, + { + "year": 2015, + "value": null + }, + { + "year": 2016, + "value": null + }, + { + "year": 2017, + "value": null + }, + { + "year": 2018, + "value": null + }, + { + "year": 2019, + "value": 9056.99508207154 + }, + { + "year": 2020, + "value": 9056.99508207154 + }, + { + "year": 2021, + "value": 9056.99508207154 + } + ], + "S2": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": null + }, + { + "year": 2011, + "value": null + }, + { + "year": 2012, + "value": null + }, + { + "year": 2013, + "value": null + }, + { + "year": 2014, + "value": null + }, + { + "year": 2015, + "value": null + }, + { + "year": 2016, + "value": null + }, + { + "year": 2017, + "value": null + }, + { + "year": 2018, + "value": null + }, + { + "year": 2019, + "value": 2890986.47608207 + }, + { + "year": 2020, + "value": 2890986.47608207 + }, + { + "year": 2021, + "value": 2890986.47608207 + } + ], + "S1S2": [], + "S3": [], + "S1S2S3": [] + }, + "emission_intensities": { + "S1": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": null + }, + { + "year": 2011, + "value": null + }, + { + "year": 2012, + "value": null + }, + { + "year": 2013, + "value": null + }, + { + "year": 2014, + "value": null + }, + { + "year": 2015, + "value": null + }, + { + "year": 2016, + "value": null + }, + { + "year": 2017, + "value": null + }, + { + "year": 2018, + "value": null + }, + { + "year": 2019, + "value": 0.000727294205076673 + }, + { + "year": 2020, + "value": 0.000742741899988965 + }, + { + "year": 2021, + "value": 0.000742741899988965 + } + ], + "S2": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": null + }, + { + "year": 2011, + "value": null + }, + { + "year": 2012, + "value": null + }, + { + "year": 2013, + "value": null + }, + { + "year": 2014, + "value": null + }, + { + "year": 2015, + "value": null + }, + { + "year": 2016, + "value": null + }, + { + "year": 2017, + "value": null + }, + { + "year": 2018, + "value": null + }, + { + "year": 2019, + "value": 0.232151800012749 + }, + { + "year": 2020, + "value": 0.237082693391115 + }, + { + "year": 2021, + "value": 0.237082693391115 + } + ], + "S1S2": [], + "S3": [], + "S1S2S3": [] + } + }, + "projected_targets": null, + "projected_intensities": { + "S1S2": { + "projections": [ + { + "year": 2019, + "value": 0.23287909421782566 + }, + { + "year": 2020, + "value": 0.23782543529110398 + }, + { + "year": 2021, + "value": 0.23782543529110398 + }, + { + "year": 2022, + "value": 0.23983744872740673 + }, + { + "year": 2023, + "value": 0.24186648388412768 + }, + { + "year": 2024, + "value": 0.24391268476575548 + }, + { + "year": 2025, + "value": 0.2459761965950629 + }, + { + "year": 2026, + "value": 0.24805716582341367 + }, + { + "year": 2027, + "value": 0.2501557401411564 + }, + { + "year": 2028, + "value": 0.2522720684881063 + }, + { + "year": 2029, + "value": 0.254406301064116 + }, + { + "year": 2030, + "value": 0.25655858933973524 + }, + { + "year": 2031, + "value": 0.2587290860669612 + }, + { + "year": 2032, + "value": 0.2609179452900795 + }, + { + "year": 2033, + "value": 0.2631253223565971 + }, + { + "year": 2034, + "value": 0.2653513739282675 + }, + { + "year": 2035, + "value": 0.26759625799220954 + }, + { + "year": 2036, + "value": 0.2698601338721197 + }, + { + "year": 2037, + "value": 0.2721431622395799 + }, + { + "year": 2038, + "value": 0.2744455051254606 + }, + { + "year": 2039, + "value": 0.2767673259314204 + }, + { + "year": 2040, + "value": 0.27910878944150286 + }, + { + "year": 2041, + "value": 0.28147006183383183 + }, + { + "year": 2042, + "value": 0.2838513106924051 + }, + { + "year": 2043, + "value": 0.2862527050189884 + }, + { + "year": 2044, + "value": 0.28867441524510973 + }, + { + "year": 2045, + "value": 0.291116613244155 + }, + { + "year": 2046, + "value": 0.29357947234356646 + }, + { + "year": 2047, + "value": 0.29606316733714405 + }, + { + "year": 2048, + "value": 0.29856787449745076 + }, + { + "year": 2049, + "value": 0.301093771588323 + }, + { + "year": 2050, + "value": 0.303641037877487 + } + ] + }, + "S3": null, + "S1S2S3": null + }, + "country": null, + "ghg_s1s2": null, + "ghg_s3": null, + "industry_level_1": null, + "industry_level_2": null, + "industry_level_3": null, + "industry_level_4": null, + "company_revenue": null, + "company_market_cap": null, + "company_enterprise_value": null, + "company_total_assets": null, + "company_cash_equivalents": null + }, + { + "company_name": "Company C", + "company_id": "IT0000000003", + "region": "Asia", + "sector": "Steel", + "target_probability": 0.4285714285714285, + "historic_data": { + "productions": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": null + }, + { + "year": 2011, + "value": null + }, + { + "year": 2012, + "value": null + }, + { + "year": 2013, + "value": null + }, + { + "year": 2014, + "value": 19374009.677026 + }, + { + "year": 2015, + "value": 21182009.677026 + }, + { + "year": 2016, + "value": 22380009.677026 + }, + { + "year": 2017, + "value": 23290009.677026 + }, + { + "year": 2018, + "value": 23763009.677026 + }, + { + "year": 2019, + "value": 23303009.677026 + }, + { + "year": 2020, + "value": 23303009.677026 + }, + { + "year": 2021, + "value": 23303009.677026 + } + ], + "emissions": { + "S1": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": 766009.677026013 + }, + { + "year": 2011, + "value": 10247400.677026 + }, + { + "year": 2012, + "value": 10197994.677026 + }, + { + "year": 2013, + "value": 11080009.677026 + }, + { + "year": 2014, + "value": 13317009.677026 + }, + { + "year": 2015, + "value": 14157009.677026 + }, + { + "year": 2016, + "value": 15622009.677026 + }, + { + "year": 2017, + "value": 15710009.677026 + }, + { + "year": 2018, + "value": 16492009.677026 + }, + { + "year": 2019, + "value": 16442009.677026 + }, + { + "year": 2020, + "value": 16442009.677026 + }, + { + "year": 2021, + "value": 16442009.677026 + } + ], + "S2": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": 3518009.67702601 + }, + { + "year": 2011, + "value": 4342232.67702601 + }, + { + "year": 2012, + "value": 4164848.67702601 + }, + { + "year": 2013, + "value": 4818009.67702601 + }, + { + "year": 2014, + "value": 5480009.67702601 + }, + { + "year": 2015, + "value": 5416009.67702601 + }, + { + "year": 2016, + "value": 5653009.67702601 + }, + { + "year": 2017, + "value": 5769009.67702601 + }, + { + "year": 2018, + "value": 5806009.67702601 + }, + { + "year": 2019, + "value": 5803009.67702601 + }, + { + "year": 2020, + "value": 5803009.67702601 + }, + { + "year": 2021, + "value": 5803009.67702601 + } + ], + "S1S2": [], + "S3": [], + "S1S2S3": [] + }, + "emission_intensities": { + "S1": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": null + }, + { + "year": 2011, + "value": null + }, + { + "year": 2012, + "value": null + }, + { + "year": 2013, + "value": null + }, + { + "year": 2014, + "value": 0.687364665292674 + }, + { + "year": 2015, + "value": 0.66835063777639 + }, + { + "year": 2016, + "value": 0.698034089460767 + }, + { + "year": 2017, + "value": 0.67453856373975 + }, + { + "year": 2018, + "value": 0.694020239909696 + }, + { + "year": 2019, + "value": 0.705574511829511 + }, + { + "year": 2020, + "value": 0.705574511829511 + }, + { + "year": 2021, + "value": 0.705574511829511 + } + ], + "S2": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": null + }, + { + "year": 2011, + "value": null + }, + { + "year": 2012, + "value": null + }, + { + "year": 2013, + "value": null + }, + { + "year": 2014, + "value": 0.282853666761831 + }, + { + "year": 2015, + "value": 0.255689132410331 + }, + { + "year": 2016, + "value": 0.252591922818919 + }, + { + "year": 2017, + "value": 0.247703189351473 + }, + { + "year": 2018, + "value": 0.244329727418293 + }, + { + "year": 2019, + "value": 0.249024042707543 + }, + { + "year": 2020, + "value": 0.249024042707543 + }, + { + "year": 2021, + "value": 0.249024042707543 + } + ], + "S1S2": [], + "S3": [], + "S1S2S3": [] + } + }, + "projected_targets": null, + "projected_intensities": { + "S1S2": { + "projections": [ + { + "year": 2019, + "value": 0.954598554537054 + }, + { + "year": 2020, + "value": 0.954598554537054 + }, + { + "year": 2021, + "value": 0.954598554537054 + }, + { + "year": 2022, + "value": 0.954598554537054 + }, + { + "year": 2023, + "value": 0.954598554537054 + }, + { + "year": 2024, + "value": 0.954598554537054 + }, + { + "year": 2025, + "value": 0.954598554537054 + }, + { + "year": 2026, + "value": 0.954598554537054 + }, + { + "year": 2027, + "value": 0.954598554537054 + }, + { + "year": 2028, + "value": 0.954598554537054 + }, + { + "year": 2029, + "value": 0.954598554537054 + }, + { + "year": 2030, + "value": 0.954598554537054 + }, + { + "year": 2031, + "value": 0.954598554537054 + }, + { + "year": 2032, + "value": 0.954598554537054 + }, + { + "year": 2033, + "value": 0.954598554537054 + }, + { + "year": 2034, + "value": 0.954598554537054 + }, + { + "year": 2035, + "value": 0.954598554537054 + }, + { + "year": 2036, + "value": 0.954598554537054 + }, + { + "year": 2037, + "value": 0.954598554537054 + }, + { + "year": 2038, + "value": 0.954598554537054 + }, + { + "year": 2039, + "value": 0.954598554537054 + }, + { + "year": 2040, + "value": 0.954598554537054 + }, + { + "year": 2041, + "value": 0.954598554537054 + }, + { + "year": 2042, + "value": 0.954598554537054 + }, + { + "year": 2043, + "value": 0.954598554537054 + }, + { + "year": 2044, + "value": 0.954598554537054 + }, + { + "year": 2045, + "value": 0.954598554537054 + }, + { + "year": 2046, + "value": 0.954598554537054 + }, + { + "year": 2047, + "value": 0.954598554537054 + }, + { + "year": 2048, + "value": 0.954598554537054 + }, + { + "year": 2049, + "value": 0.954598554537054 + }, + { + "year": 2050, + "value": 0.954598554537054 + } + ] + }, + "S3": null, + "S1S2S3": null + }, + "country": null, + "ghg_s1s2": null, + "ghg_s3": null, + "industry_level_1": null, + "industry_level_2": null, + "industry_level_3": null, + "industry_level_4": null, + "company_revenue": null, + "company_market_cap": null, + "company_enterprise_value": null, + "company_total_assets": null, + "company_cash_equivalents": null + }, + { + "company_name": "Company D", + "company_id": "SE0000000004", + "region": "Asia", + "sector": "Steel", + "target_probability": 0.4285714285714285, + "historic_data": { + "productions": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": null + }, + { + "year": 2011, + "value": null + }, + { + "year": 2012, + "value": null + }, + { + "year": 2013, + "value": null + }, + { + "year": 2014, + "value": 31580000.2335485 + }, + { + "year": 2015, + "value": 31040000.2335485 + }, + { + "year": 2016, + "value": 29751000.2335485 + }, + { + "year": 2017, + "value": 30410000.2335485 + }, + { + "year": 2018, + "value": 29145000.2335485 + }, + { + "year": 2019, + "value": 27880000.2335485 + }, + { + "year": 2020, + "value": 28090000.2335485 + }, + { + "year": 2021, + "value": 28090000.2335485 + } + ], + "emissions": { + "S1": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": null + }, + { + "year": 2011, + "value": null + }, + { + "year": 2012, + "value": null + }, + { + "year": 2013, + "value": null + }, + { + "year": 2014, + "value": null + }, + { + "year": 2015, + "value": null + }, + { + "year": 2016, + "value": 54700000.2335485 + }, + { + "year": 2017, + "value": 55000000.2335485 + }, + { + "year": 2018, + "value": 54900000.2335485 + }, + { + "year": 2019, + "value": 52300000.2335485 + }, + { + "year": 2020, + "value": 52900000.2335485 + }, + { + "year": 2021, + "value": 52900000.2335485 + } + ], + "S2": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": null + }, + { + "year": 2011, + "value": null + }, + { + "year": 2012, + "value": null + }, + { + "year": 2013, + "value": null + }, + { + "year": 2014, + "value": null + }, + { + "year": 2015, + "value": null + }, + { + "year": 2016, + "value": 6600000.23354846 + }, + { + "year": 2017, + "value": 6400000.23354846 + }, + { + "year": 2018, + "value": 7400000.23354846 + }, + { + "year": 2019, + "value": 7500000.23354846 + }, + { + "year": 2020, + "value": 7600000.23354846 + }, + { + "year": 2021, + "value": 7600000.23354846 + } + ], + "S1S2": [], + "S3": [], + "S1S2S3": [] + }, + "emission_intensities": { + "S1": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": null + }, + { + "year": 2011, + "value": null + }, + { + "year": 2012, + "value": null + }, + { + "year": 2013, + "value": null + }, + { + "year": 2014, + "value": null + }, + { + "year": 2015, + "value": null + }, + { + "year": 2016, + "value": 1.83859365413424 + }, + { + "year": 2017, + "value": 1.80861558076781 + }, + { + "year": 2018, + "value": 1.8836850160788 + }, + { + "year": 2019, + "value": 1.87589669280616 + }, + { + "year": 2020, + "value": 1.88323245972668 + }, + { + "year": 2021, + "value": 1.88323245972668 + } + ], + "S2": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": null + }, + { + "year": 2011, + "value": null + }, + { + "year": 2012, + "value": null + }, + { + "year": 2013, + "value": null + }, + { + "year": 2014, + "value": null + }, + { + "year": 2015, + "value": null + }, + { + "year": 2016, + "value": 0.221841288754589 + }, + { + "year": 2017, + "value": 0.21045709254839 + }, + { + "year": 2018, + "value": 0.253902905275342 + }, + { + "year": 2019, + "value": 0.26901004916505 + }, + { + "year": 2020, + "value": 0.270558923829115 + }, + { + "year": 2021, + "value": 0.270558923829115 + } + ], + "S1S2": [], + "S3": [], + "S1S2S3": [] + } + }, + "projected_targets": null, + "projected_intensities": { + "S1S2": { + "projections": [ + { + "year": 2019, + "value": 2.14490674197121 + }, + { + "year": 2020, + "value": 2.153791383555795 + }, + { + "year": 2021, + "value": 2.153791383555795 + }, + { + "year": 2022, + "value": 2.161165682701744 + }, + { + "year": 2023, + "value": 2.16856523048055 + }, + { + "year": 2024, + "value": 2.175990113340219 + }, + { + "year": 2025, + "value": 2.183440418024745 + }, + { + "year": 2026, + "value": 2.1909162315751214 + }, + { + "year": 2027, + "value": 2.1984176413303578 + }, + { + "year": 2028, + "value": 2.205944734928502 + }, + { + "year": 2029, + "value": 2.213497600307663 + }, + { + "year": 2030, + "value": 2.221076325707038 + }, + { + "year": 2031, + "value": 2.228680999667943 + }, + { + "year": 2032, + "value": 2.236311711034849 + }, + { + "year": 2033, + "value": 2.2439685489564183 + }, + { + "year": 2034, + "value": 2.2516516028865468 + }, + { + "year": 2035, + "value": 2.2593609625854083 + }, + { + "year": 2036, + "value": 2.2670967181205044 + }, + { + "year": 2037, + "value": 2.274858959867715 + }, + { + "year": 2038, + "value": 2.2826477785123562 + }, + { + "year": 2039, + "value": 2.2904632650502377 + }, + { + "year": 2040, + "value": 2.298305510788728 + }, + { + "year": 2041, + "value": 2.3061746073478187 + }, + { + "year": 2042, + "value": 2.314070646661198 + }, + { + "year": 2043, + "value": 2.3219937209773214 + }, + { + "year": 2044, + "value": 2.3299439228604917 + }, + { + "year": 2045, + "value": 2.33792134519194 + }, + { + "year": 2046, + "value": 2.34592608117091 + }, + { + "year": 2047, + "value": 2.3539582243157473 + }, + { + "year": 2048, + "value": 2.3620178684649926 + }, + { + "year": 2049, + "value": 2.3701051077784774 + }, + { + "year": 2050, + "value": 2.3782200367384236 + } + ] + }, + "S3": null, + "S1S2S3": null + }, + "country": null, + "ghg_s1s2": null, + "ghg_s3": null, + "industry_level_1": null, + "industry_level_2": null, + "industry_level_3": null, + "industry_level_4": null, + "company_revenue": null, + "company_market_cap": null, + "company_enterprise_value": null, + "company_total_assets": null, + "company_cash_equivalents": null + }, + { + "company_name": "Company E", + "company_id": "SE0000000005", + "region": "Asia", + "sector": "Steel", + "target_probability": 0.4285714285714285, + "historic_data": { + "productions": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": null + }, + { + "year": 2011, + "value": null + }, + { + "year": 2012, + "value": null + }, + { + "year": 2013, + "value": null + }, + { + "year": 2014, + "value": 12170001.0468216 + }, + { + "year": 2015, + "value": 12630001.0468216 + }, + { + "year": 2016, + "value": 12630001.0468216 + }, + { + "year": 2017, + "value": 12630001.0468216 + }, + { + "year": 2018, + "value": 12630001.0468216 + }, + { + "year": 2019, + "value": 12630001.0468216 + }, + { + "year": 2020, + "value": 12630001.0468216 + }, + { + "year": 2021, + "value": 12630001.0468216 + } + ], + "emissions": { + "S1": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": 14667421.0468216 + }, + { + "year": 2011, + "value": 15541981.0468216 + }, + { + "year": 2012, + "value": 21355001.0468216 + }, + { + "year": 2013, + "value": 28086001.0468216 + }, + { + "year": 2014, + "value": 26077001.0468216 + }, + { + "year": 2015, + "value": 26816001.0468216 + }, + { + "year": 2016, + "value": 31440001.0468216 + }, + { + "year": 2017, + "value": 36610961.0468216 + }, + { + "year": 2018, + "value": 41528001.0468216 + }, + { + "year": 2019, + "value": 41938351.0468216 + }, + { + "year": 2020, + "value": 40045311.0468216 + }, + { + "year": 2021, + "value": 40045311.0468216 + } + ], + "S2": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": 976021.046821591 + }, + { + "year": 2011, + "value": 1550771.04682159 + }, + { + "year": 2012, + "value": 16541.0468215911 + }, + { + "year": 2013, + "value": 33601.0468215911 + }, + { + "year": 2014, + "value": 3742001.04682159 + }, + { + "year": 2015, + "value": 4157001.04682159 + }, + { + "year": 2016, + "value": 661001.046821591 + }, + { + "year": 2017, + "value": 1885181.04682159 + }, + { + "year": 2018, + "value": 626001.046821591 + }, + { + "year": 2019, + "value": 3909961.04682159 + }, + { + "year": 2020, + "value": 476901.046821591 + }, + { + "year": 2021, + "value": 476901.046821591 + } + ], + "S1S2": [], + "S3": [], + "S1S2S3": [] + }, + "emission_intensities": { + "S1": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": null + }, + { + "year": 2011, + "value": null + }, + { + "year": 2012, + "value": null + }, + { + "year": 2013, + "value": null + }, + { + "year": 2014, + "value": 2.14272792142709 + }, + { + "year": 2015, + "value": 2.12319864008008 + }, + { + "year": 2016, + "value": 2.48931104045582 + }, + { + "year": 2017, + "value": 2.89872985054383 + }, + { + "year": 2018, + "value": 3.28804414923404 + }, + { + "year": 2019, + "value": 3.32053424947068 + }, + { + "year": 2020, + "value": 3.17064985967671 + }, + { + "year": 2021, + "value": 3.17064985967671 + } + ], + "S2": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": null + }, + { + "year": 2011, + "value": null + }, + { + "year": 2012, + "value": null + }, + { + "year": 2013, + "value": null + }, + { + "year": 2014, + "value": 0.307477463019519 + }, + { + "year": 2015, + "value": 0.329137031058895 + }, + { + "year": 2016, + "value": 0.0523357871761963 + }, + { + "year": 2017, + "value": 0.149262144938302 + }, + { + "year": 2018, + "value": 0.0495646076750823 + }, + { + "year": 2019, + "value": 0.309577254374461 + }, + { + "year": 2020, + "value": 0.0377593830003368 + }, + { + "year": 2021, + "value": 0.0377593830003368 + } + ], + "S1S2": [], + "S3": [], + "S1S2S3": [] + } + }, + "projected_targets": null, + "projected_intensities": { + "S1S2": { + "projections": [ + { + "year": 2019, + "value": 3.630111503845141 + }, + { + "year": 2020, + "value": 3.2084092426770465 + }, + { + "year": 2021, + "value": 3.2084092426770465 + }, + { + "year": 2022, + "value": 3.2927632144991095 + }, + { + "year": 2023, + "value": 3.379334980880391 + }, + { + "year": 2024, + "value": 3.468182851021996 + }, + { + "year": 2025, + "value": 3.559366667162847 + }, + { + "year": 2026, + "value": 3.652947844885588 + }, + { + "year": 2027, + "value": 3.7489894144821885 + }, + { + "year": 2028, + "value": 3.8475560634071164 + }, + { + "year": 2029, + "value": 3.948714179846666 + }, + { + "year": 2030, + "value": 4.0525318974337905 + }, + { + "year": 2031, + "value": 4.159079141138558 + }, + { + "year": 2032, + "value": 4.268427674365136 + }, + { + "year": 2033, + "value": 4.380651147287026 + }, + { + "year": 2034, + "value": 4.495825146453109 + }, + { + "year": 2035, + "value": 4.614027245697903 + }, + { + "year": 2036, + "value": 4.735337058390338 + }, + { + "year": 2037, + "value": 4.859836291056224 + }, + { + "year": 2038, + "value": 4.987608798410536 + }, + { + "year": 2039, + "value": 5.1187406398365844 + }, + { + "year": 2040, + "value": 5.253320137350109 + }, + { + "year": 2041, + "value": 5.391437935087332 + }, + { + "year": 2042, + "value": 5.5331870603570525 + }, + { + "year": 2043, + "value": 5.678662986297883 + }, + { + "year": 2044, + "value": 5.827963696182847 + }, + { + "year": 2045, + "value": 5.981189749414641 + }, + { + "year": 2046, + "value": 6.1384443492560115 + }, + { + "year": 2047, + "value": 6.299833412340868 + }, + { + "year": 2048, + "value": 6.465465640012948 + }, + { + "year": 2049, + "value": 6.635452591540087 + }, + { + "year": 2050, + "value": 6.809908759253399 + } + ] + }, + "S3": null, + "S1S2S3": null + }, + "country": null, + "ghg_s1s2": null, + "ghg_s3": null, + "industry_level_1": null, + "industry_level_2": null, + "industry_level_3": null, + "industry_level_4": null, + "company_revenue": null, + "company_market_cap": null, + "company_enterprise_value": null, + "company_total_assets": null, + "company_cash_equivalents": null + }, + { + "company_name": "Company F", + "company_id": "NL0000000006", + "region": "Asia", + "sector": "Steel", + "target_probability": 0.4285714285714285, + "historic_data": { + "productions": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": null + }, + { + "year": 2011, + "value": null + }, + { + "year": 2012, + "value": null + }, + { + "year": 2013, + "value": 23001000.8292913 + }, + { + "year": 2014, + "value": 25222000.8292913 + }, + { + "year": 2015, + "value": 23424000.8292913 + }, + { + "year": 2016, + "value": 24100000.8292913 + }, + { + "year": 2017, + "value": 24193000.8292913 + }, + { + "year": 2018, + "value": 24328000.8292913 + }, + { + "year": 2019, + "value": 23779000.8292913 + }, + { + "year": 2020, + "value": 22329000.8292913 + }, + { + "year": 2021, + "value": 22329000.8292913 + } + ], + "emissions": { + "S1": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": null + }, + { + "year": 2011, + "value": null + }, + { + "year": 2012, + "value": null + }, + { + "year": 2013, + "value": null + }, + { + "year": 2014, + "value": null + }, + { + "year": 2015, + "value": null + }, + { + "year": 2016, + "value": 31300000.8292913 + }, + { + "year": 2017, + "value": 31072000.8292913 + }, + { + "year": 2018, + "value": 29491000.8292913 + }, + { + "year": 2019, + "value": 27206000.8292913 + }, + { + "year": 2020, + "value": 27206000.8292913 + }, + { + "year": 2021, + "value": 27206000.8292913 + } + ], + "S2": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": null + }, + { + "year": 2011, + "value": null + }, + { + "year": 2012, + "value": null + }, + { + "year": 2013, + "value": null + }, + { + "year": 2014, + "value": null + }, + { + "year": 2015, + "value": null + }, + { + "year": 2016, + "value": null + }, + { + "year": 2017, + "value": null + }, + { + "year": 2018, + "value": null + }, + { + "year": 2019, + "value": null + }, + { + "year": 2020, + "value": null + }, + { + "year": 2021, + "value": null + } + ], + "S1S2": [], + "S3": [], + "S1S2S3": [] + }, + "emission_intensities": { + "S1": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": null + }, + { + "year": 2011, + "value": null + }, + { + "year": 2012, + "value": null + }, + { + "year": 2013, + "value": null + }, + { + "year": 2014, + "value": null + }, + { + "year": 2015, + "value": null + }, + { + "year": 2016, + "value": 1.2987551764417 + }, + { + "year": 2017, + "value": 1.28433843525816 + }, + { + "year": 2018, + "value": 1.21222458993769 + }, + { + "year": 2019, + "value": 1.14411875522451 + }, + { + "year": 2020, + "value": 1.21841550534596 + }, + { + "year": 2021, + "value": 1.21841550534596 + } + ], + "S2": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": null + }, + { + "year": 2011, + "value": null + }, + { + "year": 2012, + "value": null + }, + { + "year": 2013, + "value": null + }, + { + "year": 2014, + "value": null + }, + { + "year": 2015, + "value": null + }, + { + "year": 2016, + "value": null + }, + { + "year": 2017, + "value": null + }, + { + "year": 2018, + "value": null + }, + { + "year": 2019, + "value": null + }, + { + "year": 2020, + "value": null + }, + { + "year": 2021, + "value": null + } + ], + "S1S2": [], + "S3": [], + "S1S2S3": [] + } + }, + "projected_targets": null, + "projected_intensities": { + "S1S2": { + "projections": [ + { + "year": 2019, + "value": NaN + }, + { + "year": 2020, + "value": NaN + }, + { + "year": 2021, + "value": NaN + }, + { + "year": 2022, + "value": NaN + }, + { + "year": 2023, + "value": NaN + }, + { + "year": 2024, + "value": NaN + }, + { + "year": 2025, + "value": NaN + }, + { + "year": 2026, + "value": NaN + }, + { + "year": 2027, + "value": NaN + }, + { + "year": 2028, + "value": NaN + }, + { + "year": 2029, + "value": NaN + }, + { + "year": 2030, + "value": NaN + }, + { + "year": 2031, + "value": NaN + }, + { + "year": 2032, + "value": NaN + }, + { + "year": 2033, + "value": NaN + }, + { + "year": 2034, + "value": NaN + }, + { + "year": 2035, + "value": NaN + }, + { + "year": 2036, + "value": NaN + }, + { + "year": 2037, + "value": NaN + }, + { + "year": 2038, + "value": NaN + }, + { + "year": 2039, + "value": NaN + }, + { + "year": 2040, + "value": NaN + }, + { + "year": 2041, + "value": NaN + }, + { + "year": 2042, + "value": NaN + }, + { + "year": 2043, + "value": NaN + }, + { + "year": 2044, + "value": NaN + }, + { + "year": 2045, + "value": NaN + }, + { + "year": 2046, + "value": NaN + }, + { + "year": 2047, + "value": NaN + }, + { + "year": 2048, + "value": NaN + }, + { + "year": 2049, + "value": NaN + }, + { + "year": 2050, + "value": NaN + } + ] + }, + "S3": null, + "S1S2S3": null + }, + "country": null, + "ghg_s1s2": null, + "ghg_s3": null, + "industry_level_1": null, + "industry_level_2": null, + "industry_level_3": null, + "industry_level_4": null, + "company_revenue": null, + "company_market_cap": null, + "company_enterprise_value": null, + "company_total_assets": null, + "company_cash_equivalents": null + }, + { + "company_name": "Company G", + "company_id": "CN0000000007", + "region": "Asia", + "sector": "Steel", + "target_probability": 0.4285714285714285, + "historic_data": { + "productions": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": null + }, + { + "year": 2011, + "value": null + }, + { + "year": 2012, + "value": null + }, + { + "year": 2013, + "value": 46030001.3676141 + }, + { + "year": 2014, + "value": 48160001.3676141 + }, + { + "year": 2015, + "value": 47320001.3676141 + }, + { + "year": 2016, + "value": 44530001.3676141 + }, + { + "year": 2017, + "value": 45170001.3676141 + }, + { + "year": 2018, + "value": 46505001.3676141 + }, + { + "year": 2019, + "value": 47840001.3676141 + }, + { + "year": 2020, + "value": 47050001.3676141 + }, + { + "year": 2021, + "value": 47050001.3676141 + } + ], + "emissions": { + "S1": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": null + }, + { + "year": 2011, + "value": null + }, + { + "year": 2012, + "value": null + }, + { + "year": 2013, + "value": null + }, + { + "year": 2014, + "value": null + }, + { + "year": 2015, + "value": null + }, + { + "year": 2016, + "value": 89000001.3676141 + }, + { + "year": 2017, + "value": 89000001.3676141 + }, + { + "year": 2018, + "value": 86000001.3676141 + }, + { + "year": 2019, + "value": 87000001.3676141 + }, + { + "year": 2020, + "value": 84000001.3676141 + }, + { + "year": 2021, + "value": 84000001.3676141 + } + ], + "S2": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": null + }, + { + "year": 2011, + "value": null + }, + { + "year": 2012, + "value": null + }, + { + "year": 2013, + "value": null + }, + { + "year": 2014, + "value": null + }, + { + "year": 2015, + "value": null + }, + { + "year": 2016, + "value": 11000001.3676141 + }, + { + "year": 2017, + "value": 10000001.3676141 + }, + { + "year": 2018, + "value": 10000001.3676141 + }, + { + "year": 2019, + "value": 10000001.3676141 + }, + { + "year": 2020, + "value": 9000001.36761412 + }, + { + "year": 2021, + "value": 9000001.36761412 + } + ], + "S1S2": [], + "S3": [], + "S1S2S3": [] + }, + "emission_intensities": { + "S1": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": null + }, + { + "year": 2011, + "value": null + }, + { + "year": 2012, + "value": null + }, + { + "year": 2013, + "value": null + }, + { + "year": 2014, + "value": null + }, + { + "year": 2015, + "value": null + }, + { + "year": 2016, + "value": 1.9986525630862 + }, + { + "year": 2017, + "value": 1.97033426329327 + }, + { + "year": 2018, + "value": 1.84926349507656 + }, + { + "year": 2019, + "value": 1.81856184950927 + }, + { + "year": 2020, + "value": 1.78533472743815 + }, + { + "year": 2021, + "value": 1.78533472743815 + } + ], + "S2": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": null + }, + { + "year": 2011, + "value": null + }, + { + "year": 2012, + "value": null + }, + { + "year": 2013, + "value": null + }, + { + "year": 2014, + "value": null + }, + { + "year": 2015, + "value": null + }, + { + "year": 2016, + "value": 0.247024501005612 + }, + { + "year": 2017, + "value": 0.221385899155272 + }, + { + "year": 2018, + "value": 0.215030664950761 + }, + { + "year": 2019, + "value": 0.209030122946103 + }, + { + "year": 2020, + "value": 0.191285889606989 + }, + { + "year": 2021, + "value": 0.191285889606989 + } + ], + "S1S2": [], + "S3": [], + "S1S2S3": [] + } + }, + "projected_targets": null, + "projected_intensities": { + "S1S2": { + "projections": [ + { + "year": 2019, + "value": 2.027591972455373 + }, + { + "year": 2020, + "value": 1.976620617045139 + }, + { + "year": 2021, + "value": 1.976620617045139 + }, + { + "year": 2022, + "value": 1.94147722418469 + }, + { + "year": 2023, + "value": 1.906958664461715 + }, + { + "year": 2024, + "value": 1.873053828634393 + }, + { + "year": 2025, + "value": 1.8397518049780428 + }, + { + "year": 2026, + "value": 1.8070418757733597 + }, + { + "year": 2027, + "value": 1.7749135138570904 + }, + { + "year": 2028, + "value": 1.7433563792340352 + }, + { + "year": 2029, + "value": 1.7123603157492877 + }, + { + "year": 2030, + "value": 1.68191534781964 + }, + { + "year": 2031, + "value": 1.6520116772231015 + }, + { + "year": 2032, + "value": 1.6226396799455 + }, + { + "year": 2033, + "value": 1.5937899030831475 + }, + { + "year": 2034, + "value": 1.5654530618005753 + }, + { + "year": 2035, + "value": 1.53762003634236 + }, + { + "year": 2036, + "value": 1.5102818690980773 + }, + { + "year": 2037, + "value": 1.4834297617194387 + }, + { + "year": 2038, + "value": 1.457055072288686 + }, + { + "year": 2039, + "value": 1.4311493125373285 + }, + { + "year": 2040, + "value": 1.4057041451143315 + }, + { + "year": 2041, + "value": 1.3807113809028742 + }, + { + "year": 2042, + "value": 1.3561629763848135 + }, + { + "year": 2043, + "value": 1.3320510310520086 + }, + { + "year": 2044, + "value": 1.3083677848636694 + }, + { + "year": 2045, + "value": 1.2851056157489125 + }, + { + "year": 2046, + "value": 1.2622570371537203 + }, + { + "year": 2047, + "value": 1.2398146956315148 + }, + { + "year": 2048, + "value": 1.2177713684765692 + }, + { + "year": 2049, + "value": 1.1961199613994966 + }, + { + "year": 2050, + "value": 1.1748535062440673 + } + ] + }, + "S3": null, + "S1S2S3": null + }, + "country": null, + "ghg_s1s2": null, + "ghg_s3": null, + "industry_level_1": null, + "industry_level_2": null, + "industry_level_3": null, + "industry_level_4": null, + "company_revenue": null, + "company_market_cap": null, + "company_enterprise_value": null, + "company_total_assets": null, + "company_cash_equivalents": null + }, + { + "company_name": "Company H", + "company_id": "CN0000000008", + "region": "Asia", + "sector": "Steel", + "target_probability": 0.4285714285714285, + "historic_data": { + "productions": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": null + }, + { + "year": 2011, + "value": null + }, + { + "year": 2012, + "value": null + }, + { + "year": 2013, + "value": null + }, + { + "year": 2014, + "value": 15921004.6310296 + }, + { + "year": 2015, + "value": 15855004.6310296 + }, + { + "year": 2016, + "value": 16419004.6310296 + }, + { + "year": 2017, + "value": 16850004.6310296 + }, + { + "year": 2018, + "value": 17286004.6310296 + }, + { + "year": 2019, + "value": 15520004.6310296 + }, + { + "year": 2020, + "value": 15520004.6310296 + }, + { + "year": 2021, + "value": 15520004.6310296 + } + ], + "emissions": { + "S1": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": null + }, + { + "year": 2011, + "value": null + }, + { + "year": 2012, + "value": null + }, + { + "year": 2013, + "value": null + }, + { + "year": 2014, + "value": null + }, + { + "year": 2015, + "value": 29200004.6310296 + }, + { + "year": 2016, + "value": 29200004.6310296 + }, + { + "year": 2017, + "value": 29600004.6310296 + }, + { + "year": 2018, + "value": 30200004.6310296 + }, + { + "year": 2019, + "value": 28400004.6310296 + }, + { + "year": 2020, + "value": 28400004.6310296 + }, + { + "year": 2021, + "value": 28400004.6310296 + } + ], + "S2": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": null + }, + { + "year": 2011, + "value": null + }, + { + "year": 2012, + "value": null + }, + { + "year": 2013, + "value": null + }, + { + "year": 2014, + "value": null + }, + { + "year": 2015, + "value": 3600004.63102958 + }, + { + "year": 2016, + "value": 3800004.63102958 + }, + { + "year": 2017, + "value": 4000004.63102958 + }, + { + "year": 2018, + "value": 4000004.63102958 + }, + { + "year": 2019, + "value": 3600004.63102958 + }, + { + "year": 2020, + "value": 3600004.63102958 + }, + { + "year": 2021, + "value": 3600004.63102958 + } + ], + "S1S2": [], + "S3": [], + "S1S2S3": [] + }, + "emission_intensities": { + "S1": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": null + }, + { + "year": 2011, + "value": null + }, + { + "year": 2012, + "value": null + }, + { + "year": 2013, + "value": null + }, + { + "year": 2014, + "value": null + }, + { + "year": 2015, + "value": 1.8416900726653 + }, + { + "year": 2016, + "value": 1.77842721207629 + }, + { + "year": 2017, + "value": 1.75667634989967 + }, + { + "year": 2018, + "value": 1.74707836053789 + }, + { + "year": 2019, + "value": 1.82989665958273 + }, + { + "year": 2020, + "value": 1.82989665958273 + }, + { + "year": 2021, + "value": 1.82989665958273 + } + ], + "S2": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": null + }, + { + "year": 2011, + "value": null + }, + { + "year": 2012, + "value": null + }, + { + "year": 2013, + "value": null + }, + { + "year": 2014, + "value": null + }, + { + "year": 2015, + "value": 0.22705793626727 + }, + { + "year": 2016, + "value": 0.231439403083431 + }, + { + "year": 2017, + "value": 0.237388933630528 + }, + { + "year": 2018, + "value": 0.231401339778036 + }, + { + "year": 2019, + "value": 0.231958992063184 + }, + { + "year": 2020, + "value": 0.231958992063184 + }, + { + "year": 2021, + "value": 0.231958992063184 + } + ], + "S1S2": [], + "S3": [], + "S1S2S3": [] + } + }, + "projected_targets": null, + "projected_intensities": { + "S1S2": { + "projections": [ + { + "year": 2019, + "value": 2.061855651645914 + }, + { + "year": 2020, + "value": 2.061855651645914 + }, + { + "year": 2021, + "value": 2.061855651645914 + }, + { + "year": 2022, + "value": 2.058632565310681 + }, + { + "year": 2023, + "value": 2.0554145172939724 + }, + { + "year": 2024, + "value": 2.0522014997199043 + }, + { + "year": 2025, + "value": 2.0489935047249044 + }, + { + "year": 2026, + "value": 2.045790524457693 + }, + { + "year": 2027, + "value": 2.042592551079263 + }, + { + "year": 2028, + "value": 2.039399576762862 + }, + { + "year": 2029, + "value": 2.0362115936939706 + }, + { + "year": 2030, + "value": 2.0330285940702875 + }, + { + "year": 2031, + "value": 2.029850570101706 + }, + { + "year": 2032, + "value": 2.0266775140102977 + }, + { + "year": 2033, + "value": 2.0235094180302924 + }, + { + "year": 2034, + "value": 2.0203462744080594 + }, + { + "year": 2035, + "value": 2.0171880754020886 + }, + { + "year": 2036, + "value": 2.014034813282971 + }, + { + "year": 2037, + "value": 2.0108864803333804 + }, + { + "year": 2038, + "value": 2.007743068848055 + }, + { + "year": 2039, + "value": 2.0046045711337763 + }, + { + "year": 2040, + "value": 2.001470979509353 + }, + { + "year": 2041, + "value": 1.998342286305601 + }, + { + "year": 2042, + "value": 1.9952184838653242 + }, + { + "year": 2043, + "value": 1.9920995645432964 + }, + { + "year": 2044, + "value": 1.9889855207062423 + }, + { + "year": 2045, + "value": 1.985876344732819 + }, + { + "year": 2046, + "value": 1.982772029013597 + }, + { + "year": 2047, + "value": 1.9796725659510424 + }, + { + "year": 2048, + "value": 1.9765779479594972 + }, + { + "year": 2049, + "value": 1.9734881674651614 + }, + { + "year": 2050, + "value": 1.9704032169060748 + } + ] + }, + "S3": null, + "S1S2S3": null + }, + "country": null, + "ghg_s1s2": null, + "ghg_s3": null, + "industry_level_1": null, + "industry_level_2": null, + "industry_level_3": null, + "industry_level_4": null, + "company_revenue": null, + "company_market_cap": null, + "company_enterprise_value": null, + "company_total_assets": null, + "company_cash_equivalents": null + }, + { + "company_name": "Company I", + "company_id": "CN0000000009", + "region": "Asia", + "sector": "Steel", + "target_probability": 0.4285714285714285, + "historic_data": { + "productions": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": null + }, + { + "year": 2011, + "value": null + }, + { + "year": 2012, + "value": null + }, + { + "year": 2013, + "value": null + }, + { + "year": 2014, + "value": null + }, + { + "year": 2015, + "value": null + }, + { + "year": 2016, + "value": null + }, + { + "year": 2017, + "value": null + }, + { + "year": 2018, + "value": null + }, + { + "year": 2019, + "value": null + }, + { + "year": 2020, + "value": null + }, + { + "year": 2021, + "value": null + } + ], + "emissions": { + "S1": [ + { + "year": 2009, + "value": 60457000.4256679 + }, + { + "year": 2010, + "value": 68748000.4256679 + }, + { + "year": 2011, + "value": 74602000.4256679 + }, + { + "year": 2012, + "value": 85678000.4256679 + }, + { + "year": 2013, + "value": 79928000.4256679 + }, + { + "year": 2014, + "value": 84451000.4256679 + }, + { + "year": 2015, + "value": 82741000.4256679 + }, + { + "year": 2016, + "value": 81346000.4256679 + }, + { + "year": 2017, + "value": 67743000.4256679 + }, + { + "year": 2018, + "value": 69687000.4256679 + }, + { + "year": 2019, + "value": 79447000.4256679 + }, + { + "year": 2020, + "value": 79447000.4256679 + }, + { + "year": 2021, + "value": 79447000.4256679 + } + ], + "S2": [ + { + "year": 2009, + "value": 2698000.42566793 + }, + { + "year": 2010, + "value": 3033000.42566793 + }, + { + "year": 2011, + "value": 3625000.42566793 + }, + { + "year": 2012, + "value": 3682000.42566793 + }, + { + "year": 2013, + "value": 4539000.42566793 + }, + { + "year": 2014, + "value": 5032000.42566793 + }, + { + "year": 2015, + "value": 4431000.42566793 + }, + { + "year": 2016, + "value": 3719000.42566793 + }, + { + "year": 2017, + "value": 2956000.42566793 + }, + { + "year": 2018, + "value": 2802000.42566793 + }, + { + "year": 2019, + "value": 795000.425667932 + }, + { + "year": 2020, + "value": 795000.425667932 + }, + { + "year": 2021, + "value": 795000.425667932 + } + ], + "S1S2": [], + "S3": [], + "S1S2S3": [] + }, + "emission_intensities": { + "S1": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": null + }, + { + "year": 2011, + "value": null + }, + { + "year": 2012, + "value": null + }, + { + "year": 2013, + "value": null + }, + { + "year": 2014, + "value": null + }, + { + "year": 2015, + "value": null + }, + { + "year": 2016, + "value": null + }, + { + "year": 2017, + "value": null + }, + { + "year": 2018, + "value": null + }, + { + "year": 2019, + "value": null + }, + { + "year": 2020, + "value": null + }, + { + "year": 2021, + "value": null + } + ], + "S2": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": null + }, + { + "year": 2011, + "value": null + }, + { + "year": 2012, + "value": null + }, + { + "year": 2013, + "value": null + }, + { + "year": 2014, + "value": null + }, + { + "year": 2015, + "value": null + }, + { + "year": 2016, + "value": null + }, + { + "year": 2017, + "value": null + }, + { + "year": 2018, + "value": null + }, + { + "year": 2019, + "value": null + }, + { + "year": 2020, + "value": null + }, + { + "year": 2021, + "value": null + } + ], + "S1S2": [], + "S3": [], + "S1S2S3": [] + } + }, + "projected_targets": null, + "projected_intensities": { + "S1S2": { + "projections": [ + { + "year": 2019, + "value": NaN + }, + { + "year": 2020, + "value": NaN + }, + { + "year": 2021, + "value": NaN + }, + { + "year": 2022, + "value": NaN + }, + { + "year": 2023, + "value": NaN + }, + { + "year": 2024, + "value": NaN + }, + { + "year": 2025, + "value": NaN + }, + { + "year": 2026, + "value": NaN + }, + { + "year": 2027, + "value": NaN + }, + { + "year": 2028, + "value": NaN + }, + { + "year": 2029, + "value": NaN + }, + { + "year": 2030, + "value": NaN + }, + { + "year": 2031, + "value": NaN + }, + { + "year": 2032, + "value": NaN + }, + { + "year": 2033, + "value": NaN + }, + { + "year": 2034, + "value": NaN + }, + { + "year": 2035, + "value": NaN + }, + { + "year": 2036, + "value": NaN + }, + { + "year": 2037, + "value": NaN + }, + { + "year": 2038, + "value": NaN + }, + { + "year": 2039, + "value": NaN + }, + { + "year": 2040, + "value": NaN + }, + { + "year": 2041, + "value": NaN + }, + { + "year": 2042, + "value": NaN + }, + { + "year": 2043, + "value": NaN + }, + { + "year": 2044, + "value": NaN + }, + { + "year": 2045, + "value": NaN + }, + { + "year": 2046, + "value": NaN + }, + { + "year": 2047, + "value": NaN + }, + { + "year": 2048, + "value": NaN + }, + { + "year": 2049, + "value": NaN + }, + { + "year": 2050, + "value": NaN + } + ] + }, + "S3": null, + "S1S2S3": null + }, + "country": null, + "ghg_s1s2": null, + "ghg_s3": null, + "industry_level_1": null, + "industry_level_2": null, + "industry_level_3": null, + "industry_level_4": null, + "company_revenue": null, + "company_market_cap": null, + "company_enterprise_value": null, + "company_total_assets": null, + "company_cash_equivalents": null + }, + { + "company_name": "Company J", + "company_id": "BR0000000010", + "region": "Asia", + "sector": "Steel", + "target_probability": 0.4285714285714285, + "historic_data": { + "productions": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": null + }, + { + "year": 2011, + "value": null + }, + { + "year": 2012, + "value": null + }, + { + "year": 2013, + "value": 15691492.9224849 + }, + { + "year": 2014, + "value": 11301980.9224849 + }, + { + "year": 2015, + "value": 11500001.9224849 + }, + { + "year": 2016, + "value": 11600001.9224849 + }, + { + "year": 2017, + "value": 3012108.92248495 + }, + { + "year": 2018, + "value": 12039001.9224849 + }, + { + "year": 2019, + "value": 11847001.9224849 + }, + { + "year": 2020, + "value": 11314001.9224849 + }, + { + "year": 2021, + "value": 11314001.9224849 + } + ], + "emissions": { + "S1": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": null + }, + { + "year": 2011, + "value": null + }, + { + "year": 2012, + "value": null + }, + { + "year": 2013, + "value": null + }, + { + "year": 2014, + "value": null + }, + { + "year": 2015, + "value": null + }, + { + "year": 2016, + "value": 23200001.9224849 + }, + { + "year": 2017, + "value": 22200001.9224849 + }, + { + "year": 2018, + "value": 22100001.9224849 + }, + { + "year": 2019, + "value": 23400001.9224849 + }, + { + "year": 2020, + "value": 23400001.9224849 + }, + { + "year": 2021, + "value": 23400001.9224849 + } + ], + "S2": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": null + }, + { + "year": 2011, + "value": null + }, + { + "year": 2012, + "value": null + }, + { + "year": 2013, + "value": null + }, + { + "year": 2014, + "value": null + }, + { + "year": 2015, + "value": null + }, + { + "year": 2016, + "value": null + }, + { + "year": 2017, + "value": null + }, + { + "year": 2018, + "value": null + }, + { + "year": 2019, + "value": null + }, + { + "year": 2020, + "value": null + }, + { + "year": 2021, + "value": null + } + ], + "S1S2": [], + "S3": [], + "S1S2S3": [] + }, + "emission_intensities": { + "S1": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": null + }, + { + "year": 2011, + "value": null + }, + { + "year": 2012, + "value": null + }, + { + "year": 2013, + "value": null + }, + { + "year": 2014, + "value": null + }, + { + "year": 2015, + "value": null + }, + { + "year": 2016, + "value": 1.99999983426857 + }, + { + "year": 2017, + "value": 7.37025203729028 + }, + { + "year": 2018, + "value": 1.83570050613659 + }, + { + "year": 2019, + "value": 1.97518343253351 + }, + { + "year": 2020, + "value": 2.06823386479905 + }, + { + "year": 2021, + "value": 2.06823386479905 + } + ], + "S2": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": null + }, + { + "year": 2011, + "value": null + }, + { + "year": 2012, + "value": null + }, + { + "year": 2013, + "value": null + }, + { + "year": 2014, + "value": null + }, + { + "year": 2015, + "value": null + }, + { + "year": 2016, + "value": null + }, + { + "year": 2017, + "value": null + }, + { + "year": 2018, + "value": null + }, + { + "year": 2019, + "value": null + }, + { + "year": 2020, + "value": null + }, + { + "year": 2021, + "value": null + } + ], + "S1S2": [], + "S3": [], + "S1S2S3": [] + } + }, + "projected_targets": null, + "projected_intensities": { + "S1S2": { + "projections": [ + { + "year": 2019, + "value": NaN + }, + { + "year": 2020, + "value": NaN + }, + { + "year": 2021, + "value": NaN + }, + { + "year": 2022, + "value": NaN + }, + { + "year": 2023, + "value": NaN + }, + { + "year": 2024, + "value": NaN + }, + { + "year": 2025, + "value": NaN + }, + { + "year": 2026, + "value": NaN + }, + { + "year": 2027, + "value": NaN + }, + { + "year": 2028, + "value": NaN + }, + { + "year": 2029, + "value": NaN + }, + { + "year": 2030, + "value": NaN + }, + { + "year": 2031, + "value": NaN + }, + { + "year": 2032, + "value": NaN + }, + { + "year": 2033, + "value": NaN + }, + { + "year": 2034, + "value": NaN + }, + { + "year": 2035, + "value": NaN + }, + { + "year": 2036, + "value": NaN + }, + { + "year": 2037, + "value": NaN + }, + { + "year": 2038, + "value": NaN + }, + { + "year": 2039, + "value": NaN + }, + { + "year": 2040, + "value": NaN + }, + { + "year": 2041, + "value": NaN + }, + { + "year": 2042, + "value": NaN + }, + { + "year": 2043, + "value": NaN + }, + { + "year": 2044, + "value": NaN + }, + { + "year": 2045, + "value": NaN + }, + { + "year": 2046, + "value": NaN + }, + { + "year": 2047, + "value": NaN + }, + { + "year": 2048, + "value": NaN + }, + { + "year": 2049, + "value": NaN + }, + { + "year": 2050, + "value": NaN + } + ] + }, + "S3": null, + "S1S2S3": null + }, + "country": null, + "ghg_s1s2": null, + "ghg_s3": null, + "industry_level_1": null, + "industry_level_2": null, + "industry_level_3": null, + "industry_level_4": null, + "company_revenue": null, + "company_market_cap": null, + "company_enterprise_value": null, + "company_total_assets": null, + "company_cash_equivalents": null + }, + { + "company_name": "Company K", + "company_id": "BR0000000011", + "region": "Europe", + "sector": "Steel", + "target_probability": 0.4285714285714285, + "historic_data": { + "productions": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": null + }, + { + "year": 2011, + "value": null + }, + { + "year": 2012, + "value": null + }, + { + "year": 2013, + "value": null + }, + { + "year": 2014, + "value": null + }, + { + "year": 2015, + "value": null + }, + { + "year": 2016, + "value": null + }, + { + "year": 2017, + "value": 15393000.0778486 + }, + { + "year": 2018, + "value": 15419000.0778486 + }, + { + "year": 2019, + "value": 14618000.0778486 + }, + { + "year": 2020, + "value": 14473000.0778486 + }, + { + "year": 2021, + "value": 14473000.0778486 + } + ], + "emissions": { + "S1": [ + { + "year": 2009, + "value": 4000000.07784856 + }, + { + "year": 2010, + "value": 6481635.07784856 + }, + { + "year": 2011, + "value": 10525000.0778486 + }, + { + "year": 2012, + "value": 9308000.07784856 + }, + { + "year": 2013, + "value": 9311000.07784856 + }, + { + "year": 2014, + "value": 9578000.07784856 + }, + { + "year": 2015, + "value": 9448000.07784856 + }, + { + "year": 2016, + "value": 9989000.07784856 + }, + { + "year": 2017, + "value": 9867000.07784856 + }, + { + "year": 2018, + "value": 9755000.07784856 + }, + { + "year": 2019, + "value": 9582000.07784856 + }, + { + "year": 2020, + "value": 9582000.07784856 + }, + { + "year": 2021, + "value": 9582000.07784856 + } + ], + "S2": [ + { + "year": 2009, + "value": 700993.077848565 + }, + { + "year": 2010, + "value": 1032496.57784856 + }, + { + "year": 2011, + "value": 1364000.07784857 + }, + { + "year": 2012, + "value": 1367000.07784857 + }, + { + "year": 2013, + "value": 1447000.07784857 + }, + { + "year": 2014, + "value": 1220000.07784857 + }, + { + "year": 2015, + "value": 1133000.07784857 + }, + { + "year": 2016, + "value": 1166000.07784857 + }, + { + "year": 2017, + "value": 1216000.07784857 + }, + { + "year": 2018, + "value": 1189000.07784857 + }, + { + "year": 2019, + "value": 1173000.07784857 + }, + { + "year": 2020, + "value": 1173000.07784857 + }, + { + "year": 2021, + "value": 1173000.07784857 + } + ], + "S1S2": [], + "S3": [], + "S1S2S3": [] + }, + "emission_intensities": { + "S1": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": null + }, + { + "year": 2011, + "value": null + }, + { + "year": 2012, + "value": null + }, + { + "year": 2013, + "value": null + }, + { + "year": 2014, + "value": null + }, + { + "year": 2015, + "value": null + }, + { + "year": 2016, + "value": null + }, + { + "year": 2017, + "value": 0.641005653735282 + }, + { + "year": 2018, + "value": 0.632661004513705 + }, + { + "year": 2019, + "value": 0.655493229362386 + }, + { + "year": 2020, + "value": 0.662060390127003 + }, + { + "year": 2021, + "value": 0.662060390127003 + } + ], + "S2": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": null + }, + { + "year": 2011, + "value": null + }, + { + "year": 2012, + "value": null + }, + { + "year": 2013, + "value": null + }, + { + "year": 2014, + "value": null + }, + { + "year": 2015, + "value": null + }, + { + "year": 2016, + "value": null + }, + { + "year": 2017, + "value": 0.0789969513219493 + }, + { + "year": 2018, + "value": 0.0771126578795937 + }, + { + "year": 2019, + "value": 0.0802435402655439 + }, + { + "year": 2020, + "value": 0.0810474726414106 + }, + { + "year": 2021, + "value": 0.0810474726414106 + } + ], + "S1S2": [], + "S3": [], + "S1S2S3": [] + } + }, + "projected_targets": null, + "projected_intensities": { + "S1S2": { + "projections": [ + { + "year": 2019, + "value": 0.7357367696279299 + }, + { + "year": 2020, + "value": 0.7431078627684136 + }, + { + "year": 2021, + "value": 0.7431078627684136 + }, + { + "year": 2022, + "value": 0.7468303335596055 + }, + { + "year": 2023, + "value": 0.7505714514267947 + }, + { + "year": 2024, + "value": 0.7543313097792954 + }, + { + "year": 2025, + "value": 0.7581100024943395 + }, + { + "year": 2026, + "value": 0.7619076239194207 + }, + { + "year": 2027, + "value": 0.7657242688746503 + }, + { + "year": 2028, + "value": 0.7695600326551245 + }, + { + "year": 2029, + "value": 0.773415011033304 + }, + { + "year": 2030, + "value": 0.7772893002614051 + }, + { + "year": 2031, + "value": 0.7811829970738029 + }, + { + "year": 2032, + "value": 0.7850961986894467 + }, + { + "year": 2033, + "value": 0.7890290028142876 + }, + { + "year": 2034, + "value": 0.7929815076437174 + }, + { + "year": 2035, + "value": 0.7969538118650213 + }, + { + "year": 2036, + "value": 0.8009460146598412 + }, + { + "year": 2037, + "value": 0.804958215706652 + }, + { + "year": 2038, + "value": 0.8089905151832515 + }, + { + "year": 2039, + "value": 0.8130430137692602 + }, + { + "year": 2040, + "value": 0.8171158126486363 + }, + { + "year": 2041, + "value": 0.8212090135122013 + }, + { + "year": 2042, + "value": 0.8253227185601795 + }, + { + "year": 2043, + "value": 0.8294570305047495 + }, + { + "year": 2044, + "value": 0.8336120525726091 + }, + { + "year": 2045, + "value": 0.8377878885075521 + }, + { + "year": 2046, + "value": 0.8419846425730594 + }, + { + "year": 2047, + "value": 0.8462024195549014 + }, + { + "year": 2048, + "value": 0.8504413247637549 + }, + { + "year": 2049, + "value": 0.8547014640378325 + }, + { + "year": 2050, + "value": 0.8589829437455252 + } + ] + }, + "S3": null, + "S1S2S3": null + }, + "country": null, + "ghg_s1s2": null, + "ghg_s3": null, + "industry_level_1": null, + "industry_level_2": null, + "industry_level_3": null, + "industry_level_4": null, + "company_revenue": null, + "company_market_cap": null, + "company_enterprise_value": null, + "company_total_assets": null, + "company_cash_equivalents": null + }, + { + "company_name": "Company L", + "company_id": "BR0000000012", + "region": "Asia", + "sector": "Steel", + "target_probability": 0.4285714285714285, + "historic_data": { + "productions": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": null + }, + { + "year": 2011, + "value": null + }, + { + "year": 2012, + "value": null + }, + { + "year": 2013, + "value": null + }, + { + "year": 2014, + "value": 9155004.34644718 + }, + { + "year": 2015, + "value": 9331004.34644718 + }, + { + "year": 2016, + "value": 20808004.3464472 + }, + { + "year": 2017, + "value": 21911004.3464472 + }, + { + "year": 2018, + "value": 25390004.3464472 + }, + { + "year": 2019, + "value": 27110004.3464472 + }, + { + "year": 2020, + "value": 30630004.3464472 + }, + { + "year": 2021, + "value": 28540004.3464472 + } + ], + "emissions": { + "S1": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": 14900657.0 + }, + { + "year": 2011, + "value": 17389874.39 + }, + { + "year": 2012, + "value": 16283032.0 + }, + { + "year": 2013, + "value": 18802944.0 + }, + { + "year": 2014, + "value": 20428595.0 + }, + { + "year": 2015, + "value": 23337931.0 + }, + { + "year": 2016, + "value": 23298343.0 + }, + { + "year": 2017, + "value": 38757404.0 + }, + { + "year": 2018, + "value": 47025134.0 + }, + { + "year": 2019, + "value": 56093007.0 + }, + { + "year": 2020, + "value": 60116322.0 + }, + { + "year": 2021, + "value": 60116322.0 + } + ], + "S2": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": 731525.0 + }, + { + "year": 2011, + "value": 853729.3263 + }, + { + "year": 2012, + "value": 789126.0 + }, + { + "year": 2013, + "value": 1174594.0 + }, + { + "year": 2014, + "value": 1266295.0 + }, + { + "year": 2015, + "value": 723978.0 + }, + { + "year": 2016, + "value": 1409816.0 + }, + { + "year": 2017, + "value": 3979125.0 + }, + { + "year": 2018, + "value": 3344945.0 + }, + { + "year": 2019, + "value": 4137575.0 + }, + { + "year": 2020, + "value": 2779523.0 + }, + { + "year": 2021, + "value": 2779523.0 + } + ], + "S1S2": [], + "S3": [], + "S1S2S3": [] + }, + "emission_intensities": { + "S1": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": null + }, + { + "year": 2011, + "value": null + }, + { + "year": 2012, + "value": null + }, + { + "year": 2013, + "value": null + }, + { + "year": 2014, + "value": 2.23141292204059 + }, + { + "year": 2015, + "value": 2.5011167215762815 + }, + { + "year": 2016, + "value": 1.1196817634257177 + }, + { + "year": 2017, + "value": 1.768855657512769 + }, + { + "year": 2018, + "value": 1.8521120894010474 + }, + { + "year": 2019, + "value": 2.0690888235638023 + }, + { + "year": 2020, + "value": 1.9626612298203263 + }, + { + "year": 2021, + "value": 2.1063879763383277 + } + ], + "S2": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": null + }, + { + "year": 2011, + "value": null + }, + { + "year": 2012, + "value": null + }, + { + "year": 2013, + "value": null + }, + { + "year": 2014, + "value": 0.13831724727595748 + }, + { + "year": 2015, + "value": 0.07758843240445577 + }, + { + "year": 2016, + "value": 0.06775354217189573 + }, + { + "year": 2017, + "value": 0.18160395283957864 + }, + { + "year": 2018, + "value": 0.13174259265016847 + }, + { + "year": 2019, + "value": 0.15262170183097867 + }, + { + "year": 2020, + "value": 0.09074510628733878 + }, + { + "year": 2021, + "value": 0.09739041964602954 + } + ], + "S1S2": [], + "S3": [], + "S1S2S3": [] + } + }, + "projected_targets": null, + "projected_intensities": { + "S1S2": { + "projections": [ + { + "year": 2019, + "value": 2.221710525394781 + }, + { + "year": 2020, + "value": 2.053406336107665 + }, + { + "year": 2021, + "value": 2.203778395984357 + }, + { + "year": 2022, + "value": 2.262080547317932 + }, + { + "year": 2023, + "value": 2.3219251136494563 + }, + { + "year": 2024, + "value": 2.3833529004032834 + }, + { + "year": 2025, + "value": 2.4464057925333744 + }, + { + "year": 2026, + "value": 2.5111267830828377 + }, + { + "year": 2027, + "value": 2.5775600024990277 + }, + { + "year": 2028, + "value": 2.6457507487241916 + }, + { + "year": 2029, + "value": 2.7157455180821772 + }, + { + "year": 2030, + "value": 2.7875920369822693 + }, + { + "year": 2031, + "value": 2.861339294461765 + }, + { + "year": 2032, + "value": 2.9370375755894824 + }, + { + "year": 2033, + "value": 3.0147384957529764 + }, + { + "year": 2034, + "value": 3.094495035852842 + }, + { + "year": 2035, + "value": 3.1763615784281005 + }, + { + "year": 2036, + "value": 3.2603939447373045 + }, + { + "year": 2037, + "value": 3.3466494328206418 + }, + { + "year": 2038, + "value": 3.4351868565689943 + }, + { + "year": 2039, + "value": 3.526066585826588 + }, + { + "year": 2040, + "value": 3.619350587554583 + }, + { + "year": 2041, + "value": 3.715102468083667 + }, + { + "year": 2042, + "value": 3.813387516484463 + }, + { + "year": 2043, + "value": 3.9142727490853275 + }, + { + "year": 2044, + "value": 4.017826955167889 + }, + { + "year": 2045, + "value": 4.124120743871487 + }, + { + "year": 2046, + "value": 4.233226592338492 + }, + { + "year": 2047, + "value": 4.3452188951333435 + }, + { + "year": 2048, + "value": 4.460174014968982 + }, + { + "year": 2049, + "value": 4.5781703347752885 + }, + { + "year": 2050, + "value": 4.699288311145017 + } + ] + }, + "S3": null, + "S1S2S3": null + }, + "country": null, + "ghg_s1s2": null, + "ghg_s3": null, + "industry_level_1": null, + "industry_level_2": null, + "industry_level_3": null, + "industry_level_4": null, + "company_revenue": null, + "company_market_cap": null, + "company_enterprise_value": null, + "company_total_assets": null, + "company_cash_equivalents": null + }, + { + "company_name": "Company M", + "company_id": "AR0000000013", + "region": "Europe", + "sector": "Steel", + "target_probability": 0.4285714285714285, + "historic_data": { + "productions": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": null + }, + { + "year": 2011, + "value": null + }, + { + "year": 2012, + "value": null + }, + { + "year": 2013, + "value": null + }, + { + "year": 2014, + "value": null + }, + { + "year": 2015, + "value": null + }, + { + "year": 2016, + "value": null + }, + { + "year": 2017, + "value": null + }, + { + "year": 2018, + "value": null + }, + { + "year": 2019, + "value": null + }, + { + "year": 2020, + "value": null + }, + { + "year": 2021, + "value": null + } + ], + "emissions": { + "S1": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": 24085969.3736674 + }, + { + "year": 2011, + "value": 30090002.3736674 + }, + { + "year": 2012, + "value": 16848002.3736674 + }, + { + "year": 2013, + "value": 26700002.3736674 + }, + { + "year": 2014, + "value": 32200002.3736674 + }, + { + "year": 2015, + "value": 32600002.3736674 + }, + { + "year": 2016, + "value": 32600002.3736674 + }, + { + "year": 2017, + "value": 22100002.3736674 + }, + { + "year": 2018, + "value": 22600002.3736674 + }, + { + "year": 2019, + "value": 22800002.3736674 + }, + { + "year": 2020, + "value": 21300002.3736674 + }, + { + "year": 2021, + "value": 21300002.3736674 + } + ], + "S2": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": 4781476.37366743 + }, + { + "year": 2011, + "value": 4287002.37366743 + }, + { + "year": 2012, + "value": 2116002.37366743 + }, + { + "year": 2013, + "value": 1800002.37366743 + }, + { + "year": 2014, + "value": 1700002.37366743 + }, + { + "year": 2015, + "value": 1200002.37366743 + }, + { + "year": 2016, + "value": 1200002.37366743 + }, + { + "year": 2017, + "value": 1300002.37366743 + }, + { + "year": 2018, + "value": 1400002.37366743 + }, + { + "year": 2019, + "value": 1300002.37366743 + }, + { + "year": 2020, + "value": 1400002.37366743 + }, + { + "year": 2021, + "value": 1400002.37366743 + } + ], + "S1S2": [], + "S3": [], + "S1S2S3": [] + }, + "emission_intensities": { + "S1": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": null + }, + { + "year": 2011, + "value": null + }, + { + "year": 2012, + "value": null + }, + { + "year": 2013, + "value": null + }, + { + "year": 2014, + "value": null + }, + { + "year": 2015, + "value": null + }, + { + "year": 2016, + "value": null + }, + { + "year": 2017, + "value": null + }, + { + "year": 2018, + "value": null + }, + { + "year": 2019, + "value": null + }, + { + "year": 2020, + "value": null + }, + { + "year": 2021, + "value": null + } + ], + "S2": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": null + }, + { + "year": 2011, + "value": null + }, + { + "year": 2012, + "value": null + }, + { + "year": 2013, + "value": null + }, + { + "year": 2014, + "value": null + }, + { + "year": 2015, + "value": null + }, + { + "year": 2016, + "value": null + }, + { + "year": 2017, + "value": null + }, + { + "year": 2018, + "value": null + }, + { + "year": 2019, + "value": null + }, + { + "year": 2020, + "value": null + }, + { + "year": 2021, + "value": null + } + ], + "S1S2": [], + "S3": [], + "S1S2S3": [] + } + }, + "projected_targets": null, + "projected_intensities": { + "S1S2": { + "projections": [ + { + "year": 2019, + "value": NaN + }, + { + "year": 2020, + "value": NaN + }, + { + "year": 2021, + "value": NaN + }, + { + "year": 2022, + "value": NaN + }, + { + "year": 2023, + "value": NaN + }, + { + "year": 2024, + "value": NaN + }, + { + "year": 2025, + "value": NaN + }, + { + "year": 2026, + "value": NaN + }, + { + "year": 2027, + "value": NaN + }, + { + "year": 2028, + "value": NaN + }, + { + "year": 2029, + "value": NaN + }, + { + "year": 2030, + "value": NaN + }, + { + "year": 2031, + "value": NaN + }, + { + "year": 2032, + "value": NaN + }, + { + "year": 2033, + "value": NaN + }, + { + "year": 2034, + "value": NaN + }, + { + "year": 2035, + "value": NaN + }, + { + "year": 2036, + "value": NaN + }, + { + "year": 2037, + "value": NaN + }, + { + "year": 2038, + "value": NaN + }, + { + "year": 2039, + "value": NaN + }, + { + "year": 2040, + "value": NaN + }, + { + "year": 2041, + "value": NaN + }, + { + "year": 2042, + "value": NaN + }, + { + "year": 2043, + "value": NaN + }, + { + "year": 2044, + "value": NaN + }, + { + "year": 2045, + "value": NaN + }, + { + "year": 2046, + "value": NaN + }, + { + "year": 2047, + "value": NaN + }, + { + "year": 2048, + "value": NaN + }, + { + "year": 2049, + "value": NaN + }, + { + "year": 2050, + "value": NaN + } + ] + }, + "S3": null, + "S1S2S3": null + }, + "country": null, + "ghg_s1s2": null, + "ghg_s3": null, + "industry_level_1": null, + "industry_level_2": null, + "industry_level_3": null, + "industry_level_4": null, + "company_revenue": null, + "company_market_cap": null, + "company_enterprise_value": null, + "company_total_assets": null, + "company_cash_equivalents": null + } +] \ No newline at end of file diff --git a/test/inputs/test_projection_reference.csv b/test/inputs/test_projection_reference.csv deleted file mode 100644 index f2364c46..00000000 --- a/test/inputs/test_projection_reference.csv +++ /dev/null @@ -1,174 +0,0 @@ -company_id,variable,scope,2009,2010,2011,2012,2013,2014,2015,2016,2017,2018,2019,2020,2021,2022,2023,2024,2025,2026,2027,2028,2029,2030,2031,2032,2033,2034,2035,2036,2037,2038,2039,2040,2041,2042,2043,2044,2045,2046,2047,2048,2049,2050 -US0079031078,Productions,Production,,,,,,1682769059.4097404,1149435381.0097404,1351884837.0097404,870361875.4897404,388838913.9697404,377380291.0897404,377380291.0897404,377380291.0897404,366259340.2728721,355466110.7228301,344990944.8815064,334824469.7876075,324957588.6899231,315381472.9077415,306087553.93112904,297067515.7540051,288313287.43315214,279817035.86650306,271571158.7842437,263568277.94645953,255801232.5412393,248263072.77732906,240947053.66560304,233846628.98378706,226955445.41903454,220267336.8831139,213776318.99512047,207476583.7267767,201362494.2055286,195428579.67078915,189669530.5788151,184080193.8518372,178655568.26719305,173390799.98233673,168281178.19172108,163322130.9116665,158509220.88944477 -US0079031078,Emissions,S1,74121549.8360392,77200005.8360392,74010717.8360392,78912218.8360392,75863005.8360392,79630005.8360392,70339005.8360392,70457005.8360392,64527005.8360392,54154005.8360392,49092005.8360392,49092005.8360392,49092005.8360392,48246383.03653919,47415326.313671336,46598584.762908734,45795911.801621385,45007065.094630376,44231806.481044434,43469901.90235669,42721121.33178004,41985238.70479968,41262031.85092195,40551282.426598765,39852775.84930747,39166301.232766174,38491651.323265046,37828622.43709428,37177014.3990499,36536630.48199883,35907277.34748494,35288764.98735821,34680906.66640932,34083518.86599237,33496421.22861872,32919436.50350524,32352390.493060477,31795112.000292607,31247432.77712332,30709187.473592017,30180213.587934937,29660351.41752424 -US0079031078,Emissions,S2,,,,414929.856039191,90005.8360391907,290005.836039191,367805.836039191,306005.836039191,226005.836039191,360005.836039191,359005.836039191,359005.836039191,359005.836039191,359005.836039191,359005.836039191,359005.836039191,359005.836039191,359005.836039191,359005.836039191,359005.836039191,359005.836039191,359005.836039191,359005.836039191,359005.836039191,359005.836039191,359005.836039191,359005.836039191,359005.836039191,359005.836039191,359005.836039191,359005.836039191,359005.836039191,359005.836039191,359005.836039191,359005.836039191,359005.836039191,359005.836039191,359005.836039191,359005.836039191,359005.836039191,359005.836039191,359005.836039191 -US0079031078,Emission Intensities,S1,,,,,,0.6132777815614572,0.793079394192882,0.6754442173157448,0.9608302238244408,1.8049528748804293,1.6859184505842997,1.6859184505842997,1.6859184505842997,1.6859184505842997,1.6859184505842997,1.6859184505842997,1.6859184505842997,1.6859184505842997,1.6859184505842997,1.6859184505842997,1.6859184505842997,1.6859184505842997,1.6859184505842997,1.6859184505842997,1.6859184505842997,1.6859184505842997,1.6859184505842997,1.6859184505842997,1.6859184505842997,1.6859184505842997,1.6859184505842997,1.6859184505842997,1.6859184505842997,1.6859184505842997,1.6859184505842997,1.6859184505842997,1.6859184505842997,1.6859184505842997,1.6859184505842997,1.6859184505842997,1.6859184505842997,1.6859184505842997 -US0079031078,Emission Intensities,S2,,,,,,0.002233506501709902,0.00414704794529682,0.0029335602608281442,0.003365307830630542,0.011998993586920128,0.0123289841704041,0.0123289841704041,0.0123289841704041,0.012668049997107368,0.013016440650029,0.013374412576080345,0.013742229274853074,0.014120161492578616,0.014508487421421778,0.014907492904255252,0.015317471645065715,0.015738725425146434,0.016171564325235484,0.01661630695376311,0.01707328068137625,0.01754282188191281,0.018025276180003127,0.01852099870548084,0.019030354354790446,0.01955371805958395,0.020091475062704357,0.020644021201759108,0.02121176320049223,0.02179511896816965,0.02239451790719808,0.023010401229203867,0.02364322227980452,0.024293446872311907,0.02496155363061285,0.02564803434147942,0.02635339431656831,0.027078152764375737 -US00724F1012,Productions,Production,,2143661765.3714125,2114928159.0914125,2086194552.8114123,2057460946.5314126,2028727340.2514122,1885882971.9314125,1661622976.4114125,2488147559.6114125,2457602018.9714127,2156173206.8114123,2156173206.8114123,2156173206.8114123,2127271897.3805983,2098757980.6157246,2070626263.9120066,2042871624.2662475,2015489007.343899,1988473426.558628,1961819962.1642213,1935523760.3586605,1909580032.4002085,1883984053.7353415,1858731163.1383724,1833816761.8626044,1809236312.802864,1784985339.66926,1761059426.1720147,1737454215.2172248,1714165408.1134005,1691188763.7886405,1668520098.0182998,1646155282.6630106,1624090244.9169154,1602320966.5659783,1580843483.2562366,1559653883.7718616,1538748309.3228958,1518122952.8425374,1497774058.293844,1477697919.9857295,1457890881.8981287 -US00724F1012,Emission Intensities,S2,,9.020587159252296e-09,9.143141676640597e-09,9.269072133483565e-09,0.016324063782454407,0.033110525388179275,0.0534276696850902,0.08085133557988561,0.06749219539186596,0.08300080315789345,0.08723928160449504,0.08723928160449504,0.08723928160449504,0.0898564600526299,0.0925521538542088,0.09532871846983507,0.09818858002393012,0.10113423742464803,0.10416826454738747,0.10729331248380909,0.11051211185832337,0.11382747521407308,0.11724229947049528,0.12075956845461014,0.12438235550824844,0.1281138261734959,0.1319572409587008,0.13591595818746183,0.1399934369330857,0.14419324004107825,0.1485190372423106,0.15297460835957993,0.15756384661036735,0.16229076200867837,0.16715948486893872,0.17217426941500688,0.1773394974974571,0.18265968242238081,0.18813947289505226,0.19378365708190384,0.19959716679436096,0.2055850817981918 -FR0000125338,Emission Intensities,S1,,0.4605612425432028,0.47676992001722285,0.4935410421590952,0.4271137111711944,0.4050475894153404,1.7660044449376848,0.12641248982232864,0.11422094242724208,0.12432145953306709,0.14432694163463483,0.11410264669076498,0.11410264669076498,0.11410264669076498,0.11410264669076498,0.11410264669076498,0.11410264669076498,0.11410264669076498,0.11410264669076498,0.11410264669076498,0.11410264669076498,0.11410264669076498,0.11410264669076498,0.11410264669076498,0.11410264669076498,0.11410264669076498,0.11410264669076498,0.11410264669076498,0.11410264669076498,0.11410264669076498,0.11410264669076498,0.11410264669076498,0.11410264669076498,0.11410264669076498,0.11410264669076498,0.11410264669076498,0.11410264669076498,0.11410264669076498,0.11410264669076498,0.11410264669076498,0.11410264669076498,0.11410264669076498 -FR0000125338,Emission Intensities,S2,,0.019750986012689604,0.019542782620390428,0.016717335291559405,0.012755111704326829,0.016135716380506274,0.0816777616053006,0.07909610646488868,0.08497232976008089,0.078447410507817,0.08024699005813475,0.14391033829225056,0.14391033829225056,0.14391033829225056,0.14391033829225056,0.14391033829225056,0.14391033829225056,0.14391033829225056,0.14391033829225056,0.14391033829225056,0.14391033829225056,0.14391033829225056,0.14391033829225056,0.14391033829225056,0.14391033829225056,0.14391033829225056,0.14391033829225056,0.14391033829225056,0.14391033829225056,0.14391033829225056,0.14391033829225056,0.14391033829225056,0.14391033829225056,0.14391033829225056,0.14391033829225056,0.14391033829225056,0.14391033829225056,0.14391033829225056,0.14391033829225056,0.14391033829225056,0.14391033829225056,0.14391033829225056 -US17275R1023,Productions,Production,8015760033.846192,8169984033.846192,8141472033.846192,8328096033.846192,8474544033.846192,8080560033.846192,8026128033.846192,364176033.84621,381024033.84621,383616033.84621,360288033.84621,360288033.84621,360288033.84621,360288033.84621,360288033.84621,360288033.84621,360288033.84621,360288033.84621,360288033.84621,360288033.84621,360288033.84621,360288033.84621,360288033.84621,360288033.84621,360288033.84621,360288033.84621,360288033.84621,360288033.84621,360288033.84621,360288033.84621,360288033.84621,360288033.84621,360288033.84621,360288033.84621,360288033.84621,360288033.84621,360288033.84621,360288033.84621,360288033.84621,360288033.84621,360288033.84621,360288033.84621 -US17275R1023,Emissions,S1,78192009.4017252,80575879.4017252,70935799.4017252,80283565.4017252,73222380.0683918,66161194.7350585,59100009.4017252,47700009.4017252,51300009.4017252,35700009.4017252,33100009.4017252,33100009.4017252,33100009.4017252,30518123.69432973,28137631.700306006,25942824.192994807,23919217.305744935,22053456.95068684,20333230.69308729,18747186.49973064,17284857.825134885,15936594.54123526,14693499.254729772,13547368.591835294,12490639.062983416,11516337.15020899,10618033.287850501,9789799.432873962,9026169.94482046,8322105.517218218,7672959.922437125,7074449.350529973,6522624.139722799,6013842.711999543,5544747.541778029,5112242.9990909,4713474.921055327,4345811.776820527,4006827.30169772,3694284.485872535,3406120.812038957,3140434.6445357157 -US17275R1023,Emissions,S2,480089.401725152,670709.401725152,81181.4017251516,74013.4017251516,159212.601725152,244411.801725152,329611.001725152,414810.201725152,500009.401725152,470009.401725152,290009.401725152,290009.401725152,290009.401725152,294822.6613068933,299715.8061187802,304690.1620086893,309747.0768294733,314887.9208041758,320114.0868973071,325426.9911922825,330828.07327512465,336318.7966245339,341900.6490084331,347575.1428870937,353343.8158229522,359208.2308972285,365169.9771334591,371230.66992805904,377391.95148803026,383655.4912759345,390022.9864622514,396496.1623852441,403076.7730184576,409766.6014459757,416567.46034556616,423481.19247984415,430509.67119558796,437654.80093134136,444918.51773344097,452302.7897806078,459809.6179172454,467441.0361955896 -US17275R1023,Emission Intensities,S1,0.12642200334933337,0.12781706704936452,0.1129191326119494,0.12493551988086661,0.11197794735579024,0.10611258132788423,0.09543033933877008,1.6975090736130565,1.7448981239716346,1.2060812922950988,1.1906477083539972,1.1906477083539972,1.1906477083539972,1.1906477083539972,1.1906477083539972,1.1906477083539972,1.1906477083539972,1.1906477083539972,1.1906477083539972,1.1906477083539972,1.1906477083539972,1.1906477083539972,1.1906477083539972,1.1906477083539972,1.1906477083539972,1.1906477083539972,1.1906477083539972,1.1906477083539972,1.1906477083539972,1.1906477083539972,1.1906477083539972,1.1906477083539972,1.1906477083539972,1.1906477083539972,1.1906477083539972,1.1906477083539972,1.1906477083539972,1.1906477083539972,1.1906477083539972,1.1906477083539972,1.1906477083539972,1.1906477083539972 -US17275R1023,Emission Intensities,S2,0.0007762156826159988,0.001063942574471082,0.000129228591830085,0.0001151780289828102,0.00024348157377164316,0.0003919996803551076,0.0005322315522932028,0.01476192751505496,0.017007120996922403,0.01587869460326034,0.010431991887807995,0.010431991887807995,0.010431991887807995,0.010744951644442235,0.011067300193775503,0.011399319199588769,0.011741298775576432,0.012093537738843725,0.012456343871009037,0.012830034187139308,0.013214935212753487,0.013611383269136093,0.014019724767210176,0.014440316510226483,0.014873526005533277,0.015319731785699276,0.015779323739270254,0.01625270345144836,0.016740284554991814,0.01724249309164157,0.017759767884390817,0.018292560920922542,0.018841337748550218,0.019406577881006724,0.019988775217436926,0.020588438473960035,0.021206091628178835,0.021842274377024202,0.02249754260833493,0.023172468886584977,0.023867642953182527,0.024583672241778005 -CH0198251305,Productions,Production,,3760992023.3008924,3808944023.3008924,3833568023.3008924,3708452183.3008924,3668988983.3008924,3680795543.3008924,3393083543.3008957,3238392983.3008957,3244393463.3008957,2969511863.3008957,2684119703.3008957,2684119703.3008957,2655556856.2046657,2627297958.3820987,2599339775.381088,2571679107.1686926,2544312787.764869,2517237684.880099,2490450699.5568748,2463948765.8149996,2437728850.300662,2411787951.9392447,2386123101.591828,2360731361.7153487,2335609826.0263753,2310755619.1684613,2286165896.3830376,2261837843.1838083,2237768675.03461,2213955637.0307,2190396003.5834374,2167087078.1083155,2144026192.7163184,2121210707.9085593,2098638012.2741702,2076305522.1914046,2054210681.531922,2032350961.3682194,2010723859.6841748,1989326901.0886729,1968157636.5322766 -CH0198251305,Emissions,S1,,116400006.472471,123540195.472471,127800006.472471,115550006.472471,115480006.472471,119510006.472471,106730006.472471,105960006.472471,95230006.4724713,69980006.4724713,45260006.4724712,45260006.4724712,44933479.69583513,44609308.63551839,44287476.296285756,43967965.805513546,43650760.41230505,43335843.48661233,43023198.518364355,42712809.11660145,42404659.00861597,42098732.03909914,41795012.169294134,41493483.47615518,41194130.15151277,40896936.50124492,40601886.944454335,40308966.012651585,40018158.34894412,39729448.70723118,39442821.95140447,39158263.054554634,38875757.09818346,38595289.27142171,38316844.87025267,38040409.296741255,37765968.05826868,37493506.76677267,37223011.137993135,36954466.99072329,36687860.24606618 -CH0198251305,Emissions,S2,,245006.472471246,331647.472471246,370006.472471246,786006.472471246,636006.472471246,654006.472471246,1400006.47247125,5000006.47247125,5080006.47247125,5370006.47247125,5000006.47247125,5000006.47247125,5072006.47247125,5145043.27112912,5219131.798326207,5294287.198933871,5370524.835909337,5447860.293436127,5526309.380109715,5605888.132169059,5686612.816774653,5768499.935333804,5851566.226873774,5935828.671463506,6021304.493684621,6108011.166152391,6195966.413087424,6285188.213938775,6375694.807059228,6467504.693433512,6560636.640460185,6655109.685787998,6750943.141207488,6848156.596598618,6946769.923935253,7046803.281347315,7148277.11724142,7251212.174480857,7355629.494625761,7461550.422234341,7568996.609226044 -CH0198251305,Emission Intensities,S1,,0.401102707620006,0.4203477193491828,0.43204870079677804,0.4038148558653588,0.40791097784566077,0.42079209933357004,0.4076589527582292,0.4240503518147712,0.380404195065648,0.3054174981052529,0.21853335496247459,0.21853335496247459,0.21853335496247459,0.21853335496247459,0.21853335496247459,0.21853335496247459,0.21853335496247459,0.21853335496247459,0.21853335496247459,0.21853335496247459,0.21853335496247459,0.21853335496247459,0.21853335496247459,0.21853335496247459,0.21853335496247459,0.21853335496247459,0.21853335496247459,0.21853335496247459,0.21853335496247459,0.21853335496247459,0.21853335496247459,0.21853335496247459,0.21853335496247459,0.21853335496247459,0.21853335496247459,0.21853335496247459,0.21853335496247459,0.21853335496247459,0.21853335496247459,0.21853335496247459,0.21853335496247459 -CH0198251305,Emission Intensities,S2,,0.0008442676462899023,0.001128436442471657,0.0012508670392910783,0.0027468721126020315,0.00224657090025156,0.0023027423782485457,0.005347373164168032,0.020009950681518757,0.020292509101606883,0.023436607458394043,0.024142024591353756,0.024142024591353756,0.02479600909065374,0.025467709408430596,0.026157605449368064,0.026866190118311616,0.027593969672430482,0.028341464082919418,0.02910920740649861,0.029897748166977177,0.030707649747152857,0.03153949079132789,0.03239386561872866,0.0332713846481245,0.034172674833949,0.03509838011423544,0.036049161870686366,0.037025699401206,0.03802869040523312,0.03905885148222115,0.04011691864362157,0.04120364783873651,0.04231981549481617,0.04346621907178697,0.04464367763200675,0.04585303242545411,0.04709514749076997,0.04837091027258076,0.049681232255544334,0.05102704961557157,0.05240932388868893 -US1266501006,Productions,Production,,4341600001.354788,6026400001.354788,6039360001.354788,6207840001.354788,6091200001.354788,6363360001.354788,3563902801.354802,764445601.3548025,739614241.3548025,797765761.3548025,718528321.3548025,718528321.3548025,718528321.3548025,718528321.3548025,718528321.3548025,718528321.3548025,718528321.3548025,718528321.3548025,718528321.3548025,718528321.3548025,718528321.3548025,718528321.3548025,718528321.3548025,718528321.3548025,718528321.3548025,718528321.3548025,718528321.3548025,718528321.3548025,718528321.3548025,718528321.3548025,718528321.3548025,718528321.3548025,718528321.3548025,718528321.3548025,718528321.3548025,718528321.3548025,718528321.3548025,718528321.3548025,718528321.3548025,718528321.3548025,718528321.3548025 -US1266501006,Emissions,S1,,109324454.376334,156899254.376334,154230874.376334,141984778.376334,131154736.376334,133757296.376334,120150105.376334,89756230.3763341,57205670.3763341,46188978.3763341,38589016.3763341,38589016.3763341,35645597.56148989,32926691.189126387,30415172.330716796,28095222.280114714,25952228.92003426,23972694.68818428,22144151.563384872,20455082.53620951,18894849.069538545,17453624.09213722,16122330.103220697,14892581.998160105,13756634.255219504,12707332.150681382,11738066.695091048,10842733.006787553,10015691.860538397,9251734.169093572,8546048.173947353,7894189.138660087,7292051.353854537,6735842.277561294,6222058.648037217,5747464.4186043935,5309070.375533039,4904115.310592343,4530048.629685294,4184514.2880286276,3865335.950694237 -US1266501006,Emissions,S2,,3250751.37633413,3357343.37633413,3712790.37633413,3748376.12633413,3783961.87633413,3819547.62633413,3855133.37633413,3576861.37633413,2912586.37633413,2534464.37633413,2330625.37633413,2330625.37633413,2330625.37633413,2330625.37633413,2330625.37633413,2330625.37633413,2330625.37633413,2330625.37633413,2330625.37633413,2330625.37633413,2330625.37633413,2330625.37633413,2330625.37633413,2330625.37633413,2330625.37633413,2330625.37633413,2330625.37633413,2330625.37633413,2330625.37633413,2330625.37633413,2330625.37633413,2330625.37633413,2330625.37633413,2330625.37633413,2330625.37633413,2330625.37633413,2330625.37633413,2330625.37633413,2330625.37633413,2330625.37633413,2330625.37633413 -US1266501006,Emission Intensities,S1,,0.3263416547528934,0.33741775127109996,0.3309675415058707,0.2964191614725413,0.2790526305258781,0.27241811883473793,0.4369213899675792,1.521678905098956,1.0023948250634593,0.750357045582786,0.6960249684999396,0.6960249684999396,0.6960249684999396,0.6960249684999396,0.6960249684999396,0.6960249684999396,0.6960249684999396,0.6960249684999396,0.6960249684999396,0.6960249684999396,0.6960249684999396,0.6960249684999396,0.6960249684999396,0.6960249684999396,0.6960249684999396,0.6960249684999396,0.6960249684999396,0.6960249684999396,0.6960249684999396,0.6960249684999396,0.6960249684999396,0.6960249684999396,0.6960249684999396,0.6960249684999396,0.6960249684999396,0.6960249684999396,0.6960249684999396,0.6960249684999396,0.6960249684999396,0.6960249684999396,0.6960249684999396 -US1266501006,Emission Intensities,S2,,0.009703735448715611,0.007220093280815844,0.007967361320818128,0.007825419886254877,0.008050982713813836,0.0077791194002462755,0.014019049155408301,0.06064018597940113,0.05103622581434676,0.04117331165166648,0.04203718069224924,0.04203718069224924,0.04203718069224924,0.04203718069224924,0.04203718069224924,0.04203718069224924,0.04203718069224924,0.04203718069224924,0.04203718069224924,0.04203718069224924,0.04203718069224924,0.04203718069224924,0.04203718069224924,0.04203718069224924,0.04203718069224924,0.04203718069224924,0.04203718069224924,0.04203718069224924,0.04203718069224924,0.04203718069224924,0.04203718069224924,0.04203718069224924,0.04203718069224924,0.04203718069224924,0.04203718069224924,0.04203718069224924,0.04203718069224924,0.04203718069224924,0.04203718069224924,0.04203718069224924,0.04203718069224924 -FR0000120644,Productions,Production,,1990487529.3093767,1881092169.3093767,1746463689.3093767,1768197609.3093767,1800040329.3093767,1741487049.3093767,1846359369.3093767,1782635049.3093767,1492136649.3093767,1480680009.3093767,1600080489.3093767,1600080489.3093767,1600080489.3093767,1600080489.3093767,1600080489.3093767,1600080489.3093767,1600080489.3093767,1600080489.3093767,1600080489.3093767,1600080489.3093767,1600080489.3093767,1600080489.3093767,1600080489.3093767,1600080489.3093767,1600080489.3093767,1600080489.3093767,1600080489.3093767,1600080489.3093767,1600080489.3093767,1600080489.3093767,1600080489.3093767,1600080489.3093767,1600080489.3093767,1600080489.3093767,1600080489.3093767,1600080489.3093767,1600080489.3093767,1600080489.3093767,1600080489.3093767,1600080489.3093767,1600080489.3093767 -FR0000120644,Emissions,S1,,39499002.5859383,36193002.5859383,35461094.5859383,31838172.5859383,30202558.5859383,31817606.5859383,26625135.5859383,15129771.5859383,13457443.5859383,12966980.5859383,13136322.5859383,13136322.5859383,12822864.162859576,12516885.472587062,12218208.034024915,11926657.62498632,11642064.180567568,11364261.693947122,11093088.11955182,10828385.278533725,10569998.766502466,10317777.863459283,10071575.445880217,9831247.900897162,9596655.042526737,9367660.02989809,9144129.287431955,8925932.426924387,8712942.171489736,8505034.281318493,8302087.481206691,8103983.389814604,7910606.450613472,7721843.864479967,7537585.523899096,7357723.948737142,7182154.223547193,7010773.936370689,6843483.118999276,6680184.188662133,6520781.891104754 -FR0000120644,Emissions,S2,,6236002.58593829,5189002.58593829,7189303.58593829,4181124.58593829,1547095.58593829,970947.585938292,4503672.58593829,5010565.58593829,2543866.58593829,2081746.58593829,2001731.58593829,2001731.58593829,1924792.0804620935,1850809.8583422203,1779671.2520317389,1711266.9629635108,1645491.893622009,1582244.9860697044,1521429.066679927,1462950.6968376513,1406720.0293788146,1352650.6705476036,1300659.5472596153,1250666.779466954,1202595.5574291653,1156372.0237014405,1111925.1596587806,1069186.67638177,1028090.9097363176,988574.719486161,950577.3922831323,914040.5483861348,878908.051965514,845125.9248550121,812642.2636187936,781407.1598061217,751372.6232711641,722492.508440115,694722.4434123492,668019.7617866775,642343.437107961 -FR0000120644,Emission Intensities,S1,,0.2571767298091901,0.2493558376174469,0.26314648775520477,0.2333578071485585,0.21745354973459868,0.23678394939387504,0.18688764653807832,0.10999550347095743,0.11688505134867072,0.11349654708456793,0.1063988604643518,0.1063988604643518,0.103314351468384,0.1003192625630514,0.09741100145485783,0.09458705100104248,0.09184496703095586,0.08918237623059418,0.08659697408846109,0.08408652290097922,0.08164884983572471,0.07928184505080883,0.07698345986877882,0.07475170500345736,0.07258464883818623,0.07048041575398359,0.06843718450616819,0.06645318664804535,0.0645267050002903,0.06265607216470423,0.06083966908105664,0.059075923625764866,0.057363309251198036,0.05570034366442762,0.054085587544281125,0.052517643295588404,0.05099515383954254,0.04951680143912814,0.04808130655860059,0.04668742675602903,0.045333955607944613 -FR0000120644,Emission Intensities,S2,,0.0406024113809952,0.03575022777243828,0.05334973469193888,0.030645542301646213,0.011138838651161208,0.007225710187595436,0.03161226231683834,0.036427495363629124,0.02209483358579754,0.018220976567613723,0.01621321022729142,0.01621321022729142,0.014591889204562279,0.013132700284106052,0.011819430255695446,0.010637487230125902,0.009573738507113311,0.008616364656401981,0.007754728190761783,0.006979255371685604,0.0062813298345170444,0.00565319685106534,0.005087877165958806,0.004579089449362925,0.004121180504426633,0.0037090624539839697,0.003338156208585573,0.003004340587727016,0.0027039065289543142,0.002433515876058883,0.0021901642884529946,0.0019711478596076953,0.0017740330736469257,0.0015966297662822332,0.00143696678965401,0.001293270110688609,0.001163943099619748,0.0010475487896577731,0.0009427939106919958,0.0008485145196227963,0.0007636630676605167 -US24703L1035,Productions,Production,5271868803.094344,5642576643.094344,5746580643.094344,5808127683.094344,5823226083.094344,5740165443.094344,5610643203.094344,5654577603.094344,5527232643.094344,5421517923.094344,5301547203.094344,5301547203.094344,5301547203.094344,5301547203.094344,5301547203.094344,5301547203.094344,5301547203.094344,5301547203.094344,5301547203.094344,5301547203.094344,5301547203.094344,5301547203.094344,5301547203.094344,5301547203.094344,5301547203.094344,5301547203.094344,5301547203.094344,5301547203.094344,5301547203.094344,5301547203.094344,5301547203.094344,5301547203.094344,5301547203.094344,5301547203.094344,5301547203.094344,5301547203.094344,5301547203.094344,5301547203.094344,5301547203.094344,5301547203.094344,5301547203.094344,5301547203.094344 -US24703L1035,Emissions,S1,,,,1174220.85954061,1310000.85954061,1280000.85954061,1150000.85954061,1230000.85954061,1290000.85954061,1170000.85954061,910000.859540609,910000.859540609,910000.859540609,910000.859540609,910000.859540609,910000.859540609,910000.859540609,910000.859540609,910000.859540609,910000.859540609,910000.859540609,910000.859540609,910000.859540609,910000.859540609,910000.859540609,910000.859540609,910000.859540609,910000.859540609,910000.859540609,910000.859540609,910000.859540609,910000.859540609,910000.859540609,910000.859540609,910000.859540609,910000.859540609,910000.859540609,910000.859540609,910000.859540609,910000.859540609,910000.859540609,910000.859540609 -US24703L1035,Emissions,S2,,,,132861.859540609,120000.859540609,140000.859540609,160000.859540609,170000.859540609,180000.859540609,190000.859540609,190000.859540609,190000.859540609,190000.859540609,195700.88532682727,201571.9118866321,207619.06924323106,213847.641320528,220263.07056014385,226870.96267694817,233677.09155725662,240687.40430397433,247908.02643309356,255345.26722608638,263005.62524286896,270895.79400015506,279022.6678201597,287393.3478547645,296015.14829040744,304895.60273911967,314042.47082129325,323463.74494593206,333167.65729431005,343162.68701313937,353457.56762353354,364061.29465223954,374983.13349180674,386232.627496561,397819.60632145783,409754.1945111016,422046.82034643466,434708.2249568277,447749.4717055326 -US24703L1035,Emission Intensities,S1,,,,0.0026201046481710228,0.0029154992262681854,0.002889953487247187,0.0026563819156111223,0.0028190984824265257,0.003024734477303765,0.0027968571449436134,0.002224560243991176,0.002224560243991176,0.002224560243991176,0.002224560243991176,0.002224560243991176,0.002224560243991176,0.002224560243991176,0.002224560243991176,0.002224560243991176,0.002224560243991176,0.002224560243991176,0.002224560243991176,0.002224560243991176,0.002224560243991176,0.002224560243991176,0.002224560243991176,0.002224560243991176,0.002224560243991176,0.002224560243991176,0.002224560243991176,0.002224560243991176,0.002224560243991176,0.002224560243991176,0.002224560243991176,0.002224560243991176,0.002224560243991176,0.002224560243991176,0.002224560243991176,0.002224560243991176,0.002224560243991176,0.002224560243991176,0.002224560243991176 -US24703L1035,Emission Intensities,S2,,,,0.0002964620947742204,0.000267070369148347,0.00031609039105817065,0.000369585280080306,0.0003896331953142924,0.00042205770776825637,0.000454192197568326,0.0004644702848649636,0.0004644702848649636,0.0004644702848649636,0.00047840439341091255,0.00049275652521324,0.0005075392209696372,0.0005227653975987263,0.0005384483595266881,0.0005546018103124888,0.0005712398646218636,0.0005883770605605194,0.000606028372377335,0.0006242092235486551,0.0006429355002551148,0.0006622235652627682,0.0006820902722206513,0.0007025529803872709,0.000723629569798889,0.0007453384568928557,0.0007676986105996414,0.0007907295689176307,0.0008144514559851596,0.0008388849996647144,0.0008640515496546559,0.0008899730961442956,0.0009166722890286245,0.0009441724576994832,0.0009724976314304677,0.0010016725603733817,0.0010317227371845832,0.0010626744193001207,0.0010945546518791242 -TW0002308004,Productions,Production,,,,76114085.42779164,76114085.42779164,76114085.42779164,76114085.42779164,76114085.42779164,76114085.42779164,76114085.42779164,76114085.42779164,76114085.42779164,76114085.42779164,76114085.42779164,76114085.42779164,76114085.42779164,76114085.42779164,76114085.42779164,76114085.42779164,76114085.42779164,76114085.42779164,76114085.42779164,76114085.42779164,76114085.42779164,76114085.42779164,76114085.42779164,76114085.42779164,76114085.42779164,76114085.42779164,76114085.42779164,76114085.42779164,76114085.42779164,76114085.42779164,76114085.42779164,76114085.42779164,76114085.42779164,76114085.42779164,76114085.42779164,76114085.42779164,76114085.42779164,76114085.42779164,76114085.42779164 -TW0002308004,Emissions,S1,11074001.5077199,8500001.50771989,9328837.50771989,8328346.50771989,7914001.50771989,7250001.50771989,7020001.50771989,7038001.50771989,5800001.50771989,4000001.50771989,4500001.50771989,4500001.50771989,4500001.50771989,4316682.013685079,4140830.525346606,3972142.8136895793,3810327.043274751,3655103.267353349,3506202.943549745,3363368.4692740724,3226352.7360610473,3094918.702063974,2968838.981964343,2847895.4535875516,2731878.880544171,2620588.550243927,2513831.926656138,2411424.317215879,2313188.553299604,2218954.683717444,2128559.680691908,2041847.1578143206,1958667.099491052,1878875.6014114742,1802334.621588642,1728911.7415419943,1658479.9372089077,1590917.359188779,1526107.1219394456,1463937.1015612492,1404299.741818902,1347091.8680655672 -TW0002308004,Emissions,S2,266001.507719888,350001.507719888,329353.507719888,319181.507719888,250001.507719888,220001.507719888,230001.507719888,247001.507719888,3400001.50771989,2900001.50771989,2500001.50771989,2500001.50771989,2500001.50771989,2500001.50771989,2500001.50771989,2500001.50771989,2500001.50771989,2500001.50771989,2500001.50771989,2500001.50771989,2500001.50771989,2500001.50771989,2500001.50771989,2500001.50771989,2500001.50771989,2500001.50771989,2500001.50771989,2500001.50771989,2500001.50771989,2500001.50771989,2500001.50771989,2500001.50771989,2500001.50771989,2500001.50771989,2500001.50771989,2500001.50771989,2500001.50771989,2500001.50771989,2500001.50771989,2500001.50771989,2500001.50771989,2500001.50771989 -TW0002308004,Emission Intensities,S1,,,,1.418073542280774,1.3475227214987966,1.2344629645348417,1.195300699321421,1.1983655722511666,0.9875704229719812,0.6810831299973996,0.7662184891570044,0.7662184891570044,0.7662184891570044,0.7622277738827984,0.7582578435526066,0.7543085899116757,0.7503799052690783,0.7464716824947764,0.7425838150167001,0.7387161968178418,0.7348687224333647,0.7310412869477271,0.7272337859918219,0.7234461157401301,0.7196781729078897,0.7159298547482796,0.7122010590496175,0.7084916841325726,0.7048016288473934,0.7011307925711492,0.6974790752049861,0.6938463771713977,0.6902325994115099,0.6866376433823792,0.6830614110543057,0.6795038049081604,0.6759647279327254,0.6724440836220491,0.6689417759728139,0.6654577094817191,0.661991789142876,0.6585439204452178 -TW0002308004,Emission Intensities,S2,,,,0.05434726459367484,0.04256793630035172,0.037459814750775366,0.03916252193396724,0.04205712414539412,0.5789206990058725,0.493785339846264,0.4256770525185816,0.4256770525185816,0.4256770525185816,0.4256770525185816,0.4256770525185816,0.4256770525185816,0.4256770525185816,0.4256770525185816,0.4256770525185816,0.4256770525185816,0.4256770525185816,0.4256770525185816,0.4256770525185816,0.4256770525185816,0.4256770525185816,0.4256770525185816,0.4256770525185816,0.4256770525185816,0.4256770525185816,0.4256770525185816,0.4256770525185816,0.4256770525185816,0.4256770525185816,0.4256770525185816,0.4256770525185816,0.4256770525185816,0.4256770525185816,0.4256770525185816,0.4256770525185816,0.4256770525185816,0.4256770525185816,0.4256770525185816 -FR0000120321,Productions,Production,,2836166403.246948,2858198403.246948,2878027203.246948,3007082883.246948,3023360643.246948,3126729603.246948,3136060803.246948,3244017603.246948,3444768003.246948,3556872003.246948,3364675203.246948,3364675203.246948,3382888660.46209,3401200709.667154,3419611884.554363,3438122721.7048903,3456733760.6045,3475445543.659266,3494258616.2113833,3513173526.55506,3532190825.9524975,3551311068.649956,3570534811.89391,3589862615.9472847,3609295044.105788,3628832662.714327,3648476041.183511,3668225752.0062494,3688082370.774437,3708046476.1957264,3728118650.1103964,3748299477.508308,3768589546.545954,3788989448.563602,3809499778.102525,3830121132.9223332,3850854114.018391,3871699325.639336,3892657375.304688,3913728873.822554,3934914435.3074327 -FR0000120321,Emissions,S1,,185584163.90193,188513981.90193,189986958.90193,200994691.90193,201036494.90193,213050961.90193,231671486.101929,221222495.90193,231986764.90193,240369173.90193,226132940.90193,226132940.90193,226179972.17046288,226227013.22058797,226274064.0543397,226321124.67375284,226368195.08086264,226415275.27770475,226462365.26631522,226509465.04873058,226556574.62698776,226603694.00312406,226650823.17917728,226697962.1571856,226745110.93918768,226792269.52722248,226839437.92332953,226886616.1295487,226933804.14792028,226981001.98048505,227028209.62928414,227075427.09635913,227122654.38375208,227169891.49350536,227217138.42766187,227264395.18826488,227311661.7773581,227358938.19698572,227406224.44919223,227453520.53602263,227500826.45952237 -FR0000120321,Emissions,S2,,,,0.901929562977962,0.901929562977962,0.901929562977962,6235.05442956298,12469.206929563,18703.359429563,24937.511929563,23268.401929563,15845.901929563,15845.901929563,15845.901929563,15845.901929563,15845.901929563,15845.901929563,15845.901929563,15845.901929563,15845.901929563,15845.901929563,15845.901929563,15845.901929563,15845.901929563,15845.901929563,15845.901929563,15845.901929563,15845.901929563,15845.901929563,15845.901929563,15845.901929563,15845.901929563,15845.901929563,15845.901929563,15845.901929563,15845.901929563,15845.901929563,15845.901929563,15845.901929563,15845.901929563,15845.901929563,15845.901929563 -FR0000120321,Emission Intensities,S1,,0.848035842119658,0.8547836296716036,0.8555273503291261,0.8662518820353672,0.8617671794294748,0.8830761903369287,0.95739931342287,0.8837940780652285,0.8727869250687168,0.8758213652122596,0.8710151016243313,0.8710151016243313,0.8710151016243313,0.8710151016243313,0.8710151016243313,0.8710151016243313,0.8710151016243313,0.8710151016243313,0.8710151016243313,0.8710151016243313,0.8710151016243313,0.8710151016243313,0.8710151016243313,0.8710151016243313,0.8710151016243313,0.8710151016243313,0.8710151016243313,0.8710151016243313,0.8710151016243313,0.8710151016243313,0.8710151016243313,0.8710151016243313,0.8710151016243313,0.8710151016243313,0.8710151016243313,0.8710151016243313,0.8710151016243313,0.8710151016243313,0.8710151016243313,0.8710151016243313,0.8710151016243313 -FR0000120321,Emission Intensities,S2,,,,4.061465132437621e-09,3.887158282638696e-09,3.866229840063312e-09,2.5843713931394353e-05,5.15299070859282e-05,7.472078387137044e-05,9.382058655401627e-05,8.478193444460569e-05,6.103498156641072e-05,6.103498156641072e-05,6.103498156641072e-05,6.103498156641072e-05,6.103498156641072e-05,6.103498156641072e-05,6.103498156641072e-05,6.103498156641072e-05,6.103498156641072e-05,6.103498156641072e-05,6.103498156641072e-05,6.103498156641072e-05,6.103498156641072e-05,6.103498156641072e-05,6.103498156641072e-05,6.103498156641072e-05,6.103498156641072e-05,6.103498156641072e-05,6.103498156641072e-05,6.103498156641072e-05,6.103498156641072e-05,6.103498156641072e-05,6.103498156641072e-05,6.103498156641072e-05,6.103498156641072e-05,6.103498156641072e-05,6.103498156641072e-05,6.103498156641072e-05,6.103498156641072e-05,6.103498156641072e-05,6.103498156641072e-05 -CH0038863350,Productions,Production,,125595364.15776384,127565284.15776384,138062884.15776384,203459044.15776384,222847204.15776384,258448324.15776387,260094244.15776387,263023204.15776387,279689764.1577639,262841764.15776387,236895844.15776384,236895844.15776384,238404507.86872736,239922779.45694542,241450720.10988122,242988391.40466845,244535855.3105928,246093174.19158942,247660410.80875614,249237628.32288298,250824890.29699737,252422260.69892588,254029803.90387222,255647584.6970115,257275668.2761012,258914120.25410867,260563006.66185537,262222393.95067793,263892348.99510625,265572939.09555858,267264231.98105374,268966295.8119406,270679199.18264526,272403011.124435,274137801.1082008,275883639.0472566,277640595.3001572,279408740.6735336,281188146.42494667,282978884.2657587,284781026.3640235 -CH0038863350,Emissions,S1,,1968704.15493443,2832949.15493443,12866001.1549344,13663001.1549344,14934001.1549344,16918001.1549344,16977001.1549344,17293001.1549344,18162001.1549344,17976001.1549344,16065001.1549344,16065001.1549344,16364025.718732808,16668616.151396861,16978876.0527641,17294910.951019026,17616828.33858624,17944737.708691645,18278750.592604212,18618980.59757091,18965543.445457764,19318557.01211013,19678141.36744561,20044418.816293254,20417513.939992867,20797553.638768673,21184667.174891673,21578986.21664541,21980644.883110072,22389779.789780207,22806530.095031507,23231037.54745253,23663446.534057412,24103904.12939596,24552560.145577908,25009567.18322823,25475080.683390956,25949258.980399072,26432263.355728507,26924258.092854537,27425410.533129256 -CH0038863350,Emissions,S2,,52966.1549344293,58302.1549344293,61001.1549344293,202001.154934429,130001.154934429,409001.154934429,1265001.15493443,1818001.15493443,2090001.15493443,2289001.15493443,2403001.15493443,2403001.15493443,2475091.189582463,2549343.9252699367,2625824.243028035,2704598.970318876,2785736.9394284426,2869309.047611296,2955388.3190396354,3044049.9686108246,3135371.4676691494,3229432.611699224,3326315.590050201,3426105.0577517073,3528888.2094842587,3634754.8557687867,3743797.5014418503,3856111.426485106,3971794.7692796593,4090948.612358049,4213677.070728791,4340087.382850654,4470290.004336175,4604398.70446626,4742530.665600248,4884806.585568255,5031350.783135302,5182291.306629362,5337760.045828243,5497892.84720309,5662829.632619183 -CH0038863350,Emission Intensities,S1,,0.20314767204226442,0.28781357945742975,1.207734982396956,0.8703102666237157,0.8685083382555276,0.8483602889764117,0.84593158022556,0.852081836983182,0.841573647418788,0.8863468700054724,0.8788774480539012,0.8788774480539012,0.8770577818192918,0.8752418831010895,0.8734297440988639,0.8716213570283349,0.8698167141213392,0.8680158076257973,0.8662186298056799,0.8644251729409745,0.8626354293276527,0.8608493912776366,0.8590670511187662,0.8572884011947663,0.8555134338652136,0.8537421415055036,0.8519745165068185,0.8502105512760939,0.8484502382359863,0.846693569824841,0.844940538496659,0.8431911367210649,0.8414453569832747,0.8397031917840633,0.837964633639732,0.836229675082077,0.8344983086583571,0.8327705269312611,0.8310463224788768,0.8293256878946584,0.8276086157873951 -CH0038863350,Emission Intensities,S2,,0.00546549924476466,0.005923209695638932,0.0057261947899539594,0.012867134900723496,0.007560404333174592,0.020509535069434367,0.06303259428534648,0.0895787694602712,0.09684449858047572,0.1128643123478058,0.13146239470207932,0.13146239470207932,0.1354062665431417,0.13946845453943596,0.14365250817561903,0.1479620834208876,0.15240094592351422,0.15697297430121965,0.16168216353025625,0.16653262843616393,0.17152860728924885,0.17667446550792631,0.1819746994731641,0.18743394045735903,0.1930569586710798,0.1988486674312122,0.2048141274541486,0.21095855127777305,0.21728730781610625,0.22380592705058944,0.23052010486210714,0.23743570800797037,0.24455877924820948,0.2518955426256558,0.25945240890442545,0.2672359811715582,0.27525306060670496,0.28351065242490614,0.29201597199765333,0.30077645115758295,0.3097997446923104 -US8356993076,Productions,Production,697248015.4129393,683380815.4129393,732499215.4129393,739368015.4129393,739238415.4129393,710726415.4129393,720316815.4129393,695563215.4129393,841262415.4129393,1038312015.4129393,1038312015.4129393,1038312015.4129393,1038312015.4129393,1038312015.4129393,1038312015.4129393,1038312015.4129393,1038312015.4129393,1038312015.4129393,1038312015.4129393,1038312015.4129393,1038312015.4129393,1038312015.4129393,1038312015.4129393,1038312015.4129393,1038312015.4129393,1038312015.4129393,1038312015.4129393,1038312015.4129393,1038312015.4129393,1038312015.4129393,1038312015.4129393,1038312015.4129393,1038312015.4129393,1038312015.4129393,1038312015.4129393,1038312015.4129393,1038312015.4129393,1038312015.4129393,1038312015.4129393,1038312015.4129393,1038312015.4129393,1038312015.4129393 -US8356993076,Emissions,S1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -US8356993076,Emissions,S2,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -US8356993076,Emission Intensities,S1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -US8356993076,Emission Intensities,S2,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -JP3401400001,Productions,Production,159563527.70578668,146979367.70578668,146435047.70578668,143026567.70578668,139618087.70578668,190050203.6009867,214535101.14178666,233145050.2433867,218105285.54578668,167479620.8129867,171690299.59138668,171690299.59138668,171690299.59138668,171690299.59138668,171690299.59138668,171690299.59138668,171690299.59138668,171690299.59138668,171690299.59138668,171690299.59138668,171690299.59138668,171690299.59138668,171690299.59138668,171690299.59138668,171690299.59138668,171690299.59138668,171690299.59138668,171690299.59138668,171690299.59138668,171690299.59138668,171690299.59138668,171690299.59138668,171690299.59138668,171690299.59138668,171690299.59138668,171690299.59138668,171690299.59138668,171690299.59138668,171690299.59138668,171690299.59138668,171690299.59138668,171690299.59138668 -JP3401400001,Emissions,S1,9150002.14049632,8650002.14049632,8631002.14049632,8960002.14049632,9296403.94049632,9632805.74049632,9969207.54049632,10305609.3404963,10642011.1404963,11403118.1404963,9681777.14049632,9681777.14049632,9681777.14049632,9808192.460528428,9936258.390041308,10065996.481103629,10197428.56719021,10330576.766856354,10465463.487460157,10602111.42893341,10740543.58760175,10880783.260054681,11022854.047066135,11166779.857566217,11312584.912664806,11460293.749727711,11609931.226506023,11761522.525319403,11915093.157293988,12070668.966655625,12228276.135079168,12387941.186094563,12549690.989550462,12713552.766136115,12879554.091962317,13047722.903202152,13218087.500792343,13390676.555195987,13565519.11122747,13742644.592940385,13922082.808579277,14103863.955596037 -JP3401400001,Emissions,S2,,2.14049631522688,2.14049631522688,2.14049631522688,310616.540496315,621230.940496315,931845.340496315,1242459.74049632,1553074.14049631,1239860.14049631,1203273.14049631,1203273.14049631,1203273.14049631,1203273.14049631,1203273.14049631,1203273.14049631,1203273.14049631,1203273.14049631,1203273.14049631,1203273.14049631,1203273.14049631,1203273.14049631,1203273.14049631,1203273.14049631,1203273.14049631,1203273.14049631,1203273.14049631,1203273.14049631,1203273.14049631,1203273.14049631,1203273.14049631,1203273.14049631,1203273.14049631,1203273.14049631,1203273.14049631,1203273.14049631,1203273.14049631,1203273.14049631,1203273.14049631,1203273.14049631,1203273.14049631,1203273.14049631 -JP3401400001,Emission Intensities,S1,0.7431775258785013,0.7627194856711764,0.7638730583512608,0.8118885155637708,0.8629354337148576,0.6568851810279456,0.6022367856691344,0.5728652481080088,0.6323572766047393,0.8824023507066155,0.7308265641067548,0.7308265641067548,0.7308265641067548,0.7313792322724906,0.7319323183788382,0.7324858227418543,0.7330397456778343,0.7335940875033128,0.734148848535064,0.7347040290901015,0.7352596294856785,0.7358156500392883,0.7363720910686643,0.7369289528917801,0.7374862358268497,0.7380439401923279,0.7386020663069103,0.7391606144895333,0.7397195850593747,0.7402789783358538,0.740838794638631,0.7413990342876088,0.7419596976029315,0.7425207849049854,0.7430822965143994,0.7436442327520446,0.7442065939390348,0.7447693803967266,0.7453325924467197,0.745896230410857,0.7464602946112247,0.7470247853701526 -JP3401400001,Emission Intensities,S2,,1.8873963521784973e-07,1.894412074155671e-07,1.9395579919392828e-07,0.028832871377777763,0.042363295783338244,0.05629249269027864,0.0690654947210874,0.09228497516905357,0.0959435383411512,0.09082877680303489,0.09082877680303489,0.09082877680303489,0.09277223976405818,0.09475728699400827,0.09678480827131514,0.09885571241299414,0.10097092768201453,0.1031314022033845,0.1053381043891391,0.10759202337242169,0.10989416945085338,0.11224557453938933,0.11464729263286466,0.1171004002784377,0.11960599705814179,0.12216520608176251,0.12477917449026088,0.1274490739699683,0.13017610127778376,0.13296147877760864,0.1358064549882597,0.13871230514310556,0.14168033176167805,0.14471186523351395,0.14780826441448952,0.1509709172359145,0.15420124132665916,0.15750068464859282,0.16087072614561893,0.1643128764065975,0.16782867834245216 -US6541061031,Productions,Production,,2919888004.0657935,2665872004.0657935,2943216004.0657935,2808432004.0657935,2699568004.0657935,2760480004.0657935,2800656004.0657935,2594592004.0657935,2280960004.0657935,1985018404.0657933,1902204004.0657933,1902204004.0657933,1830780537.8367233,1762038861.5299075,1695878279.9877622,1632201878.9285572,1570916382.9830623,1511932019.0615978,1455162384.8513439,1400524322.251278,1347937795.5593462,1297325774.2334306,1248614120.0543773,1201731478.5257986,1156609174.351567,1113181110.8378944,1071383673.0726341,1031155634.7399834,992438068.4340831,955174259.3401383,919309622.1566191,884791621.1368445,851569693.132825,819595173.5286343,788821224.9548165,759202768.6794057,730696418.5750588,703260417.5655725,676854576.4586904,651440215.0756005,626980105.5908867 -US6541061031,Emissions,S1,,167100001.129387,163800001.129387,181700001.129387,165800001.129387,156600001.129387,152300001.129387,154000001.129387,135600001.129387,120400001.129387,91700001.129387,70400001.129387,70400001.129387,68466923.20682526,66586924.690438904,64758548.09973685,62980375.97444551,61251029.77561399,59569168.81689325,57933489.22516064,56342722.929684274,54795636.679043256,53291031.085041955,51827739.69287683,50404628.076835155,49020592.96082443,47674561.363050774,46365489.76418315,45092363.29835853,43854194.96640086,42650024.87064384,41478919.470764294,40339970.86004927,39232296.061535746,38155036.34347725,37107356.55360678,36088444.471679814,35097510.179795556,34133785.45000818,33196523.148753375,32284996.657628387,31398499.31007664 -US6541061031,Emissions,S2,,3100001.12938701,2400001.12938701,1900001.12938701,1500001.12938701,1400001.12938701,1300001.12938701,1300001.12938701,1000001.12938701,5000001.12938701,4700001.12938701,2600001.12938701,2600001.12938701,2426667.8512681113,2264890.1163233523,2113897.55558782,1972971.157988927,1841439.8464895017,1718677.2824878315,1604098.8832575467,1497159.0382246915,1397348.5108261874,1304192.0135776002,1217245.944802934,1136096.276248993,1060356.5815253449,989666.195981524,923688.4992589914,862109.3123395479,804635.4014571037,750993.0817485895,700926.9139947366,654198.4882447389,610585.2885325438,569879.6332786664,531887.6863318295,496428.53394111164,463333.32326323824,432444.4583026776,403614.8494556896,376707.21308473364,351593.41778788087 -US6541061031,Emission Intensities,S1,,0.7416777669627563,0.7963053032550852,0.8000880707986993,0.7651130636333952,0.7518002923357344,0.715023478427562,0.7126330444508124,0.6773226819025896,0.6840909142884937,0.5987007537072012,0.47964572290181157,0.47964572290181157,0.4713000102007766,0.4630995107627034,0.4550416979140177,0.44712408894461814,0.4393442443429231,0.4316997670442275,0.4241883016921381,0.41680753391285946,0.40955518960210724,0.40242903422442905,0.39542687212471705,0.3885465458516996,0.38178593549320466,0.3751429580229888,0.3686155666589316,0.36220175023239715,0.3558995325685686,0.3497069718775647,0.34362216015615066,0.3376432225998591,0.3317683170253402,0.3259956333027624,0.3203233927980894,0.3147498478250617,0.30927328110671287,0.3038920052462557,0.2986043622071749,0.2934087228023657,0.28830348619216156 -US6541061031,Emission Intensities,S2,,0.013759436862274392,0.011667482380781245,0.008366363393933629,0.006922017199886688,0.00672108078386214,0.006103291678273692,0.006015738674223793,0.004995010628471448,0.028409097275423567,0.030685868963276727,0.017714196040400174,0.017714196040400174,0.017199977863483117,0.016700686716439095,0.016215889288601876,0.015745164847703944,0.015288104874743299,0.014844312709449543,0.014413403206041595,0.013995002398978282,0.013588747178411699,0.013194284975061723,0.012811273454238162,0.012439380218745019,0.012078282520409019,0.011727666979982065,0.011387229315174528,0.011056674076583341,0.010735714391285744,0.010424071713876125,0.010121475584729924,0.009827663395284788,0.009542380160135287,0.009265378295743398,0.008996417405572714,0.008735264071459902,0.008481691651042355,0.008235480081066239,0.007996415686404218,0.007764290994617141,0.0075389045558987315 -GB0031274896,Productions,Production,926887167.2113813,965233460.0113813,968392251.2113813,972920165.6113813,919330565.6113813,954115205.6113813,949695845.6113813,960753123.2113813,939777829.7713813,891855365.6113813,874385285.6113813,874385285.6113813,874385285.6113813,874385285.6113813,874385285.6113813,874385285.6113813,874385285.6113813,874385285.6113813,874385285.6113813,874385285.6113813,874385285.6113813,874385285.6113813,874385285.6113813,874385285.6113813,874385285.6113813,874385285.6113813,874385285.6113813,874385285.6113813,874385285.6113813,874385285.6113813,874385285.6113813,874385285.6113813,874385285.6113813,874385285.6113813,874385285.6113813,874385285.6113813,874385285.6113813,874385285.6113813,874385285.6113813,874385285.6113813,874385285.6113813,874385285.6113813 -GB0031274896,Emissions,S1,55192252.5587173,56075311.5587173,54746972.5587173,54472481.5587173,56535331.5587173,57593228.5587173,56978409.5587173,52832514.4587173,50919739.3587173,50723846.5587173,48061950.5587173,48061950.5587173,48061950.5587173,47969501.24351086,47877229.75870419,47785135.762232564,47693218.91268922,47601478.86932409,47509915.292042576,47418527.84140427,47327316.178621665,47236279.96555896,47145418.86473075,47054732.539300814,46964220.653080836,46873882.87052918,46783718.85674965,46693728.277490206,46603910.799141794,46514266.088737056,46424793.81394911,46335493.643090315,46246365.24511106,46157408.28959852,46068622.446775414,45980007.38749883,45891562.78325897,45803288.306177914,45715183.629008465,45627248.425132886,45539482.3685617,45451885.133932486 -GB0031274896,Emissions,S2,1007225.55871729,1933034.55871729,1052282.55871729,1189960.55871729,774476.55871729,601657.55871729,1061617.55871729,891280.15871729,1153067.75871729,841797.55871729,607645.55871729,607645.55871729,607645.55871729,574169.7083723544,542538.0787910529,512649.06985897553,484406.67872178636,457720.19142611866,432503.8915483062,408676.7848750728,386162.3392518596,364888.23876318976,344786.15145550197,325791.509856384,307843.3035852392,290883.8833892551,274858.77597524226,259716.5090425874,245408.44595532992,231888.62952233257,219113.6343837711,207042.4275298118,195636.23650346577,184858.42486429034,174674.37451292973,165051.37449852395,155958.5159518376,147366.5928066361,139248.00799042874,131576.68478326488,124327.98305986985,117478.6201460922 -GB0031274896,Emission Intensities,S1,0.771713773223328,0.7529121895467709,0.73267910133876,0.7256128364420833,0.7969906847529973,0.7823041051344408,0.7775544047005837,0.7126798454698644,0.7022083317814728,0.7370937898101109,0.7123666071364056,0.7123666071364056,0.7123666071364056,0.7104779214277235,0.708594243159972,0.7067155590570064,0.7048418558778811,0.7029731204167554,0.7011093395028016,0.6992505000001115,0.6973965888076036,0.6955475928589313,0.6937034991223907,0.6918642946008284,0.6900299663315503,0.68820050138623,0.6863758868708177,0.6845561099254496,0.6827411577243567,0.6809310174757752,0.6791256764218555,0.6773251218385727,0.6755293410356372,0.6737383213564047,0.6719520501777871,0.6701705149101641,0.6683937029972938,0.6666216019162245,0.6648541991772063,0.6630914823236034,0.6613334389318057,0.6595800566111422 -GB0031274896,Emission Intensities,S2,0.014083314240123792,0.025954475180212513,0.014082704548612957,0.01585113495030187,0.010917962021964349,0.008172474262140671,0.01448733678740982,0.012022850176501211,0.015901373366736478,0.012232584768380328,0.009006426080774784,0.009006426080774784,0.009006426080774784,0.008493907085081503,0.00801055345627078,0.007554705512199044,0.00712479801646821,0.006719354803903295,0.006336983711872183,0.005976371800043332,0.005636280842167579,0.005315543074404264,0.005013057185592784,0.004727784535701454,0.004458745589469022,0.00420501655299311,0.0039657262017166964,0.003740052888920959,0.003527221724452597,0.003326501913998276,0.003137204249770124,0.002958678743986085,0.002790312397019258,0.002631527092552761,0.0024817776125127516,0.002340549764963518,0.0022073586185364265,0.002081746837330326,0.0019632831105659775,0.0018515606716024528,0.0017461959012302706,0.0016468270104454284 -US6293775085,Productions,Production,,,,,,91200001.3960884,92479001.3960884,90800001.3960884,93100001.3960884,92500001.3960884,89800001.3960884,71500001.3960884,71500001.3960884,71361136.48394525,71222541.27059157,71084215.2322274,70946157.84607008,70808368.59035227,70670846.94432,70533592.38823068,70396604.40335116,70259882.47195575,70123426.07732426,69987234.70374006,69851307.83648816,69715644.96185318,69580245.56711748,69445109.14055924,69310235.17145044,69175623.15005499,69041272.5676268,68907182.91640787,68773353.6896263,68639784.38149448,68506474.48720707,68373423.5029392,68240630.92584448,68108096.25405313,67975818.9866701,67843798.62377317,67712034.66641101,67580526.61660138 -US6293775085,Emissions,S1,,165226001.396088,162028001.396088,158192001.396088,169000001.396088,174000001.396088,176000001.396088,176000001.396088,179700001.396088,174900001.396088,169800001.396088,141300001.396088,141300001.396088,141300001.396088,141300001.396088,141300001.396088,141300001.396088,141300001.396088,141300001.396088,141300001.396088,141300001.396088,141300001.396088,141300001.396088,141300001.396088,141300001.396088,141300001.396088,141300001.396088,141300001.396088,141300001.396088,141300001.396088,141300001.396088,141300001.396088,141300001.396088,141300001.396088,141300001.396088,141300001.396088,141300001.396088,141300001.396088,141300001.396088,141300001.396088,141300001.396088,141300001.396088 -US6293775085,Emissions,S2,,19599001.3960884,17902001.3960884,17256001.3960884,21000001.3960884,17000001.3960884,16000001.3960884,14000001.3960884,15100001.3960884,13900001.3960884,12100001.3960884,9500001.3960884,9500001.3960884,8753224.564721376,8065150.42323987,7431164.466138286,6847014.9253103295,6308784.255959974,5812862.863950093,5355924.898393682,4934905.947142892,4546982.485592764,4189552.9409749657,3860220.245150952,3556775.758896495,3277184.459867274,3019571.2949099913,2782208.6051920536,2563504.539817613,2361992.3802269613,2176320.7037843433,2005244.3205872094,1847615.9227154558,1702378.389917111,1568557.7001292706,1445256.3972893374,1331647.572629054,1226969.319087431,1130519.6216516034,1041651.6493581627,959769.4173812058,884323.7901152956 -US7134481081,Productions,Production,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -US7134481081,Emissions,S1,,,13390004.4552317,9480004.45523172,8095004.45523172,7840004.45523172,7810004.45523172,8270004.45523172,8670004.45523172,8780004.45523172,8590004.45523172,8530004.45523172,8530004.45523172,8530004.45523172,8530004.45523172,8530004.45523172,8530004.45523172,8530004.45523172,8530004.45523172,8530004.45523172,8530004.45523172,8530004.45523172,8530004.45523172,8530004.45523172,8530004.45523172,8530004.45523172,8530004.45523172,8530004.45523172,8530004.45523172,8530004.45523172,8530004.45523172,8530004.45523172,8530004.45523172,8530004.45523172,8530004.45523172,8530004.45523172,8530004.45523172,8530004.45523172,8530004.45523172,8530004.45523172,8530004.45523172,8530004.45523172 -US7134481081,Emissions,S2,,,2530004.45523172,1970004.45523172,1781004.45523172,1541004.45523172,1570004.45523172,1830004.45523172,2000004.45523172,1970004.45523172,1810004.45523172,1750004.45523172,1750004.45523172,1723754.4468781792,1697898.1877728193,1672429.7716900746,1647343.380997565,1622633.2853272026,1598293.8402662284,1574319.4860678865,1550704.7463814367,1527444.227001217,1504532.6146344696,1481964.6756876511,1459735.2550709462,1437839.2750207144,1416271.7339396002,1395027.7052540414,1374102.3362889146,1353490.8471590609,1333188.5296774392,1313190.7462796571,1293492.9289646326,1274090.5782511472,1254979.2621500508,1236154.6151518822,1217612.3372296763,1199348.1928567288,1181358.0100390944,1163637.6793625976,1146183.1530541382,1128990.4440570774 -US7134481081,Emission Intensities,S1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -US7134481081,Emission Intensities,S2,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -JP0000000001,Productions,Production,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -JP0000000001,Emissions,S1,21759305.8145184,20966413.8145184,21128989.8145184,20070402.8145184,19691129.8145184,19443564.8145184,20018158.8145184,21042990.8145184,20006804.8145184,20805771.8145184,20351815.8145184,20351815.8145184,20351815.8145184,20351815.8145184,20351815.8145184,20351815.8145184,20351815.8145184,20351815.8145184,20351815.8145184,20351815.8145184,20351815.8145184,20351815.8145184,20351815.8145184,20351815.8145184,20351815.8145184,20351815.8145184,20351815.8145184,20351815.8145184,20351815.8145184,20351815.8145184,20351815.8145184,20351815.8145184,20351815.8145184,20351815.8145184,20351815.8145184,20351815.8145184,20351815.8145184,20351815.8145184,20351815.8145184,20351815.8145184,20351815.8145184,20351815.8145184 -JP0000000001,Emissions,S2,1337565.8145184,1349200.8145184,1371359.8145184,1243282.8145184,1257964.8145184,1185845.8145184,1109279.8145184,1275990.8145184,1298687.8145184,1294689.8145184,1181783.8145184,1181783.8145184,1181783.8145184,1181783.8145184,1181783.8145184,1181783.8145184,1181783.8145184,1181783.8145184,1181783.8145184,1181783.8145184,1181783.8145184,1181783.8145184,1181783.8145184,1181783.8145184,1181783.8145184,1181783.8145184,1181783.8145184,1181783.8145184,1181783.8145184,1181783.8145184,1181783.8145184,1181783.8145184,1181783.8145184,1181783.8145184,1181783.8145184,1181783.8145184,1181783.8145184,1181783.8145184,1181783.8145184,1181783.8145184,1181783.8145184,1181783.8145184 -JP0000000001,Emission Intensities,S1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -JP0000000001,Emission Intensities,S2,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -NL0000000002,Productions,Production,,,,,,,,,16120000.4760821,15342000.4760821,12453000.4760821,12194000.4760821,12194000.4760821,11887162.491804026,11588045.48053891,11296455.159221027,11012202.133535014,10735101.774900107,10464974.100549823,10201643.656629203,9944939.404233681,9694694.60831556,9450746.729385935,9212937.317941735,8981111.911549283,8755119.934517559,8534814.600095982,8320052.81513319,8110695.087134902,7906605.433660479,7707651.293999339,7513703.443069871,7324635.907484902,7140325.883729222,6960653.658396001,6785502.530430304,6614758.735329194,6448311.37124919,6286052.3269730825,6127876.211689329,5973680.286538403,5823364.397881653 -NL0000000002,Emissions,S1,,,,,,,,,,,9056.99508207154,9056.99508207154,9056.99508207154,9056.99508207154,9056.99508207154,9056.99508207154,9056.99508207154,9056.99508207154,9056.99508207154,9056.99508207154,9056.99508207154,9056.99508207154,9056.99508207154,9056.99508207154,9056.99508207154,9056.99508207154,9056.99508207154,9056.99508207154,9056.99508207154,9056.99508207154,9056.99508207154,9056.99508207154,9056.99508207154,9056.99508207154,9056.99508207154,9056.99508207154,9056.99508207154,9056.99508207154,9056.99508207154,9056.99508207154,9056.99508207154,9056.99508207154 -NL0000000002,Emissions,S2,,,,,,,,,,,2890986.47608207,2890986.47608207,2890986.47608207,2890986.47608207,2890986.47608207,2890986.47608207,2890986.47608207,2890986.47608207,2890986.47608207,2890986.47608207,2890986.47608207,2890986.47608207,2890986.47608207,2890986.47608207,2890986.47608207,2890986.47608207,2890986.47608207,2890986.47608207,2890986.47608207,2890986.47608207,2890986.47608207,2890986.47608207,2890986.47608207,2890986.47608207,2890986.47608207,2890986.47608207,2890986.47608207,2890986.47608207,2890986.47608207,2890986.47608207,2890986.47608207,2890986.47608207 -NL0000000002,Emission Intensities,S1,,,,,,,,,,,0.000727294205076673,0.000742741899988965,0.000742741899988965,0.0007490255284858647,0.0007553623167507641,0.0007617527145175923,0.0007681971753250472,0.0007746961565487832,0.0007812501194338728,0.0007878595291275415,0.0007945248547121805,0.0008012465692386381,0.0008080251497597934,0.0008148610773644131,0.000821754837211296,0.0008287069185637049,0.0008357178148240913,0.0008427880235691122,0.000849918046584945,0.0008571083899028994,0.0008643595638353324,0.0008716720830118648,0.0008790464664159068,0.0008864832374214904,0.0008939829238304144,0.0009015460579097035,0.0009091731764293847,0.0009168648207005822,0.000924621536613936,0.0009324438746783442,0.000940332390060034,0.0009482876426219627 -NL0000000002,Emission Intensities,S2,,,,,,,,,,,0.232151800012749,0.237082693391115,0.237082693391115,0.23908842319892087,0.24111112156737693,0.2431509320512379,0.24520799941973784,0.24728246966686487,0.2493744900217225,0.2514842089589787,0.2536117762094038,0.25575734277049655,0.25792106091720135,0.26010308421271505,0.26230356751938577,0.2645226670097038,0.26676054017738543,0.2690173458485506,0.27129324419299494,0.2735883967355577,0.275902966367585,0.27823711735849094,0.2805910153674159,0.2829648274549836,0.285358722095158,0.2877728691872,0.2902074400677256,0.2926626075228659,0.2951385458005301,0.2976354306227724,0.300153439198263,0.302692750234865 -IT0000000003,Productions,Production,,,,,,19374009.677026,21182009.677026,22380009.677026,23290009.677026,23763009.677026,23303009.677026,23303009.677026,23303009.677026,23454093.96209188,23606157.797074717,23759207.53285368,23913249.561483663,24068290.316462222,24224336.272998292,24381393.948282603,24539469.901759874,24698570.735402763,24858703.0939876,25019873.6653719,25182089.18077368,25345356.41505258,25509682.186992824,25675073.359587986,25841536.840327635,26009079.58148582,26177708.58041142,26347430.879820395,26518253.568089925,26690183.779554438,26863228.694803584,27037395.540982127,27212691.592091784,27389124.169295017,27566700.641220797,27745428.424272362,27925314.982936952,28106367.830097556 -IT0000000003,Emissions,S1,,766009.677026013,10247400.677026,10197994.677026,11080009.677026,13317009.677026,14157009.677026,15622009.677026,15710009.677026,16492009.677026,16442009.677026,16442009.677026,16442009.677026,16534628.801037049,16627769.65580371,16721435.180276057,16815628.329959497,16910352.077008035,17005609.410318047,17101403.335622597,17197736.87558628,17294613.069900587,17392034.975379843,17490005.666057635,17588528.23328383,17687605.7858221,17787241.44994804,17887438.369547784,17988199.706217233,18089528.6393618,18191428.36629673,18293902.10234801,18396953.0809538,18500584.553766463,18604799.79075519,18709602.08030915,18814994.72934127,18920981.063392576,19027564.426737126,19134748.182487532,19242535.712701086,19350930.418486472 -IT0000000003,Emissions,S2,,3518009.67702601,4342232.67702601,4164848.67702601,4818009.67702601,5480009.67702601,5416009.67702601,5653009.67702601,5769009.67702601,5806009.67702601,5803009.67702601,5803009.67702601,5803009.67702601,5837210.058038475,5871612.001020762,5906216.693890271,5941025.331565462,5976039.11600712,6011259.256259856,6046686.968493856,6082323.476046877,6118170.009466493,6154227.806552577,6190498.112400054,6226982.179441888,6263681.26749233,6300596.64379042,6337729.583043749,6375081.367472472,6412653.286853582,6450446.638565452,6488462.727632629,6526702.866770901,6565168.376432623,6603860.584852315,6642780.828092525,6681930.450089966,6721310.80270192,6760923.245752921,6800769.1470817095,6840849.882588463,6881166.836282309 -IT0000000003,Emission Intensities,S1,,,,,,0.687364665292674,0.66835063777639,0.698034089460767,0.67453856373975,0.694020239909696,0.705574511829511,0.705574511829511,0.705574511829511,0.705574511829511,0.705574511829511,0.705574511829511,0.705574511829511,0.705574511829511,0.705574511829511,0.705574511829511,0.705574511829511,0.705574511829511,0.705574511829511,0.705574511829511,0.705574511829511,0.705574511829511,0.705574511829511,0.705574511829511,0.705574511829511,0.705574511829511,0.705574511829511,0.705574511829511,0.705574511829511,0.705574511829511,0.705574511829511,0.705574511829511,0.705574511829511,0.705574511829511,0.705574511829511,0.705574511829511,0.705574511829511,0.705574511829511 -IT0000000003,Emission Intensities,S2,,,,,,0.282853666761831,0.255689132410331,0.252591922818919,0.247703189351473,0.244329727418293,0.249024042707543,0.249024042707543,0.249024042707543,0.24800660752951406,0.24699332927677728,0.2459841909654223,0.24497917568092972,0.24397826657788768,0.2429814468797094,0.2419886998783521,0.24100000893403684,0.2400153574749697,0.23903472899706396,0.23805810706366354,0.23708547530526738,0.23611681741925522,0.23515211716961418,0.23419135838666674,0.2332345249667997,0.23228160087219418,0.2313325701305569,0.23038741683485248,0.22944612514303667,0.22850867927779095,0.22757506352625806,0.2266452622397786,0.22571925983362875,0.22479704078675905,0.22387858964153423,0.22296389100347416,0.22205292954099576,0.22114568998515607 -SE0000000004,Productions,Production,,,,,,31580000.2335485,31040000.2335485,29751000.2335485,30410000.2335485,29145000.2335485,27880000.2335485,28090000.2335485,28090000.2335485,27944157.6592336,27799072.295894347,27654740.21211041,27511157.4968733,27368320.259480376,27226224.62942943,27084866.75631381,26944242.809718065,26804348.979114182,26665181.473758303,26526736.52258802,26389010.37412018,26251999.296349242,26115699.576646145,25980107.521657705,25845219.45720653,25711031.72819146,25577540.698488545,25444742.750852484,25312634.286818627,25181211.726605464,25050471.50901762,24920410.091349356,24791023.94928857,24662309.5768213,24534263.486136727,24406882.207532648,24280162.289321475,24154100.29773669 -SE0000000004,Emissions,S1,,,,,,,,54700000.2335485,55000000.2335485,54900000.2335485,52300000.2335485,52900000.2335485,52900000.2335485,52900000.2335485,52900000.2335485,52900000.2335485,52900000.2335485,52900000.2335485,52900000.2335485,52900000.2335485,52900000.2335485,52900000.2335485,52900000.2335485,52900000.2335485,52900000.2335485,52900000.2335485,52900000.2335485,52900000.2335485,52900000.2335485,52900000.2335485,52900000.2335485,52900000.2335485,52900000.2335485,52900000.2335485,52900000.2335485,52900000.2335485,52900000.2335485,52900000.2335485,52900000.2335485,52900000.2335485,52900000.2335485,52900000.2335485 -SE0000000004,Emissions,S2,,,,,,,,6600000.23354846,6400000.23354846,7400000.23354846,7500000.23354846,7600000.23354846,7600000.23354846,7701333.566840272,7804018.01120057,7908071.581443036,8013512.532578866,8120359.363019395,8228630.817821435,8338345.8919758815,8449523.833740167,8562184.148015149,8676346.599767022,8792031.217494853,8909258.296744356,9028048.403668514,9148422.378635673,9270401.339885747,9394006.687235178,9519260.10583128,9646183.569956658,9774799.346884344,9905130.00078433,10037198.396682205,10171027.704470549,10306641.402973838,10444063.284067532,10583317.456852086,10724428.351882614,10867420.725454962,11012319.663948905,11159150.58822927 -SE0000000004,Emission Intensities,S1,,,,,,,,1.83859365413424,1.80861558076781,1.8836850160788,1.87589669280616,1.88323245972668,1.88323245972668,1.88323245972668,1.88323245972668,1.88323245972668,1.88323245972668,1.88323245972668,1.88323245972668,1.88323245972668,1.88323245972668,1.88323245972668,1.88323245972668,1.88323245972668,1.88323245972668,1.88323245972668,1.88323245972668,1.88323245972668,1.88323245972668,1.88323245972668,1.88323245972668,1.88323245972668,1.88323245972668,1.88323245972668,1.88323245972668,1.88323245972668,1.88323245972668,1.88323245972668,1.88323245972668,1.88323245972668,1.88323245972668,1.88323245972668 -SE0000000004,Emission Intensities,S2,,,,,,,,0.221841288754589,0.21045709254839,0.253902905275342,0.26901004916505,0.270558923829115,0.270558923829115,0.2721167164229467,0.27368347829316025,0.2752592610820083,0.27684411672908343,0.2784380974730297,0.28004125585326495,0.28165364471171217,0.2832753171945416,0.284906326753922,0.2865467271497832,0.2881965724515873,0.28985591704011143,0.29152481560924,0.2932033231677674,0.2948914950412114,0.29658938687363645,0.29829705462948786,0.3000145545954366,0.30174194338223437,0.30347927792657975,0.3052266154929947,0.3069840136757122,0.3087515304005747,0.31052922392694304,0.3123171528496173,0.3141153761007677,0.31592395295187714,0.31774294301569517,0.31957240624820255 -SE0000000005,Productions,Production,,,,,,12170001.0468216,12630001.0468216,12630001.0468216,12630001.0468216,12630001.0468216,12630001.0468216,12630001.0468216,12630001.0468216,12630001.0468216,12630001.0468216,12630001.0468216,12630001.0468216,12630001.0468216,12630001.0468216,12630001.0468216,12630001.0468216,12630001.0468216,12630001.0468216,12630001.0468216,12630001.0468216,12630001.0468216,12630001.0468216,12630001.0468216,12630001.0468216,12630001.0468216,12630001.0468216,12630001.0468216,12630001.0468216,12630001.0468216,12630001.0468216,12630001.0468216,12630001.0468216,12630001.0468216,12630001.0468216,12630001.0468216,12630001.0468216,12630001.0468216 -SE0000000005,Emissions,S1,,14667421.0468216,15541981.0468216,21355001.0468216,28086001.0468216,26077001.0468216,26816001.0468216,31440001.0468216,36610961.0468216,41528001.0468216,41938351.0468216,40045311.0468216,40045311.0468216,41180161.0554735,42347171.74682384,43547254.52722918,44781346.63152599,46050411.85498777,47355441.30602519,48697454.18021718,50077498.55627731,51496652.21457727,52956023.47886654,54456752.081845686,56000010.055269316,57587002.64527376,59218969.25364433,60897184.40575735,62622958.7459528,64397640.06111498,66222614.3332606,68099306.82195628,70029183.17741087,72013750.58511186,74054558.94289976,76153202.0713999,78311318.95875661,80530595.04064237,82812763.51654111,85159606.70333397,87572957.42724454,90054700.45523056 -SE0000000005,Emissions,S2,,976021.046821591,1550771.04682159,16541.0468215911,33601.0468215911,3742001.04682159,4157001.04682159,661001.046821591,1885181.04682159,626001.046821591,3909961.04682159,476901.046821591,476901.046821591,476901.046821591,476901.046821591,476901.046821591,476901.046821591,476901.046821591,476901.046821591,476901.046821591,476901.046821591,476901.046821591,476901.046821591,476901.046821591,476901.046821591,476901.046821591,476901.046821591,476901.046821591,476901.046821591,476901.046821591,476901.046821591,476901.046821591,476901.046821591,476901.046821591,476901.046821591,476901.046821591,476901.046821591,476901.046821591,476901.046821591,476901.046821591,476901.046821591,476901.046821591 -SE0000000005,Emission Intensities,S1,,,,,,2.14272792142709,2.12319864008008,2.48931104045582,2.89872985054383,3.28804414923404,3.32053424947068,3.17064985967671,3.17064985967671,3.180048887829679,3.18947577832448,3.198930613755832,3.208413476963298,3.2179244510320073,3.2274636192933874,3.237031065325891,3.2466268729557295,3.2562511262576086,3.265903909555463,3.2755853074231966,3.285295404685422,3.2950342864182054,3.304802037949811,3.314598744861449,3.3244244929880256,3.3342793684188936,3.344163457498609,3.3540768468276863,3.3640196232633564,3.373991873920329,3.3839936861715563,3.3940251476489958,3.4040863462443807,3.41417737010999,3.4242983076594187,3.4344492475683546,3.4446302787753544,3.4548414904826226 -SE0000000005,Emission Intensities,S2,,,,,,0.307477463019519,0.329137031058895,0.0523357871761963,0.149262144938302,0.0495646076750823,0.309577254374461,0.0377593830003368,0.0377593830003368,0.0377593830003368,0.0377593830003368,0.0377593830003368,0.0377593830003368,0.0377593830003368,0.0377593830003368,0.0377593830003368,0.0377593830003368,0.0377593830003368,0.0377593830003368,0.0377593830003368,0.0377593830003368,0.0377593830003368,0.0377593830003368,0.0377593830003368,0.0377593830003368,0.0377593830003368,0.0377593830003368,0.0377593830003368,0.0377593830003368,0.0377593830003368,0.0377593830003368,0.0377593830003368,0.0377593830003368,0.0377593830003368,0.0377593830003368,0.0377593830003368,0.0377593830003368,0.0377593830003368 -NL0000000006,Productions,Production,,,,,23001000.8292913,25222000.8292913,23424000.8292913,24100000.8292913,24193000.8292913,24328000.8292913,23779000.8292913,22329000.8292913,22329000.8292913,22372083.754720084,22415249.806952335,22458499.146377936,22501831.933696236,22545248.329916652,22588748.49635926,22632332.59465539,22676000.786748245,22719753.234893482,22763590.10165983,22807511.549929686,22851517.742899716,22895608.844081476,22939785.01730201,22984046.426704455,23028393.236748658,23072825.612211786,23117343.718188938,23161947.720093753,23206637.783659033,23251414.074937355,23296276.760301683,23341226.006445996,23386261.980385903,23431384.84945926,23476594.781326797,23521891.943972737,23567276.50570542,23612748.635157935 -NL0000000006,Emissions,S1,,,,,,,,31300000.8292913,31072000.8292913,29491000.8292913,27206000.8292913,27206000.8292913,27206000.8292913,27106549.66492058,27007462.04292262,26908736.634373236,26810372.11520612,26712367.16619506,26614720.47293627,26517430.725830734,26420496.62006667,26323916.85560201,26227690.13714698,26131815.174146708,26036290.680763938,25941115.375861768,25846287.98298648,25751807.230350412,25657671.850814905,25563880.58187331,25470432.165634047,25377325.34880375,25284558.882670447,25192131.523086812,25100042.03045349,25008289.16970245,24916871.710280456,24825788.426132526,24735038.09568551,24644619.501831707,24554531.431912526,24464772.677702244 -NL0000000006,Emissions,S2,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -NL0000000006,Emission Intensities,S1,,,,,,,,1.2987551764417,1.28433843525816,1.21222458993769,1.14411875522451,1.21841550534596,1.21841550534596,1.2116152945773593,1.2048530370901265,1.1981285210597143,1.1914415358438093,1.1847918719757329,1.1781793211578802,1.1716036762551951,1.1650647312886826,1.1585622814289556,1.152096122989819,1.1456660534218897,1.139271871306251,1.132913376348145,1.126590369370696,1.1203026523086737,1.1140500282022872,1.107832301191016,1.1016492765074752,1.0955007604713138,1.089386560483148,1.0833064850185283,1.0772603436219395,1.0712479469008354,1.0652691065197062,1.0593236351941784,1.0534113466851487,1.0475320557929497,1.0416855783515493,1.0358717312227812 -NL0000000006,Emission Intensities,S2,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -CN0000000007,Productions,Production,,,,,46030001.3676141,48160001.3676141,47320001.3676141,44530001.3676141,45170001.3676141,46505001.3676141,47840001.3676141,47050001.3676141,47050001.3676141,47116854.526801035,47183802.67737508,47250845.95430911,47317984.4927678,47385218.428107865,47452547.89587835,47519973.03182091,47587493.971870065,47655110.85215349,47722823.808992274,47790632.97890122,47858538.4985891,47926540.50495891,47994639.13510821,48062834.52632934,48131126.81610972,48199516.14213212,48268002.64227495,48336586.45461254,48405267.717415385,48474046.56915047,48542923.14848152,48611897.59426928,48680970.04557182,48750140.641644776,48819409.52194166,48888776.82611414,48958242.6940123,49027807.26568495 -CN0000000007,Emissions,S1,,,,,,,,89000001.3676141,89000001.3676141,86000001.3676141,87000001.3676141,84000001.3676141,84000001.3676141,84000001.3676141,84000001.3676141,84000001.3676141,84000001.3676141,84000001.3676141,84000001.3676141,84000001.3676141,84000001.3676141,84000001.3676141,84000001.3676141,84000001.3676141,84000001.3676141,84000001.3676141,84000001.3676141,84000001.3676141,84000001.3676141,84000001.3676141,84000001.3676141,84000001.3676141,84000001.3676141,84000001.3676141,84000001.3676141,84000001.3676141,84000001.3676141,84000001.3676141,84000001.3676141,84000001.3676141,84000001.3676141,84000001.3676141 -CN0000000007,Emissions,S2,,,,,,,,11000001.3676141,10000001.3676141,10000001.3676141,10000001.3676141,9000001.36761412,9000001.36761412,9000001.36761412,9000001.36761412,9000001.36761412,9000001.36761412,9000001.36761412,9000001.36761412,9000001.36761412,9000001.36761412,9000001.36761412,9000001.36761412,9000001.36761412,9000001.36761412,9000001.36761412,9000001.36761412,9000001.36761412,9000001.36761412,9000001.36761412,9000001.36761412,9000001.36761412,9000001.36761412,9000001.36761412,9000001.36761412,9000001.36761412,9000001.36761412,9000001.36761412,9000001.36761412,9000001.36761412,9000001.36761412,9000001.36761412 -CN0000000007,Emission Intensities,S1,,,,,,,,1.9986525630862,1.97033426329327,1.84926349507656,1.81856184950927,1.78533472743815,1.78533472743815,1.7556944332525388,1.7265462300042222,1.697881947953418,1.669693552995128,1.641973144407317,1.614712952636476,1.5879053371199512,1.5615427841444236,1.5356179047399465,1.5101234326089437,1.4850522220895905,1.460397246153009,1.436151594433712,1.4123084712927467,1.388861193912994,1.3658031904260897,1.3431279980704434,1.320829261379837,1.2989007304020974,1.2773362589473423,1.2561298028653083,1.235275418351281,1.2147672602801476,1.194599580568109,1.1747667265615918,1.1552631394529054,1.136083352722205,1.1172219906053198,1.0986737665870185 -CN0000000007,Emission Intensities,S2,,,,,,,,0.247024501005612,0.221385899155272,0.215030664950761,0.209030122946103,0.191285889606989,0.191285889606989,0.18579472403091038,0.18046119109279507,0.1752807656971589,0.17024905264857773,0.1653617829226998,0.16061481004430436,0.15600410656933425,0.1515257606679169,0.14717597280547545,0.14295105251911375,0.13884741528654035,0.13486157948487498,0.13099016343675743,0.12722988254125245,0.12357754648711661,0.12003005654606286,0.1165844029437261,0.11323766230609948,0.10998699517927471,0.10682964362038223,0.10376292885768727,0.10078424901785653,0.09789107691846728,0.09508095792388613,0.09235150786269798,0.0897004110049187,0.08712541809727499,0.08462434445488472,0.08219506810771862 -CN0000000008,Productions,Production,,,,,,15921004.6310296,15855004.6310296,16419004.6310296,16850004.6310296,17286004.6310296,15520004.6310296,15520004.6310296,15520004.6310296,15520004.6310296,15520004.6310296,15520004.6310296,15520004.6310296,15520004.6310296,15520004.6310296,15520004.6310296,15520004.6310296,15520004.6310296,15520004.6310296,15520004.6310296,15520004.6310296,15520004.6310296,15520004.6310296,15520004.6310296,15520004.6310296,15520004.6310296,15520004.6310296,15520004.6310296,15520004.6310296,15520004.6310296,15520004.6310296,15520004.6310296,15520004.6310296,15520004.6310296,15520004.6310296,15520004.6310296,15520004.6310296,15520004.6310296 -CN0000000008,Emissions,S1,,,,,,,29200004.6310296,29200004.6310296,29600004.6310296,30200004.6310296,28400004.6310296,28400004.6310296,28400004.6310296,28400004.6310296,28400004.6310296,28400004.6310296,28400004.6310296,28400004.6310296,28400004.6310296,28400004.6310296,28400004.6310296,28400004.6310296,28400004.6310296,28400004.6310296,28400004.6310296,28400004.6310296,28400004.6310296,28400004.6310296,28400004.6310296,28400004.6310296,28400004.6310296,28400004.6310296,28400004.6310296,28400004.6310296,28400004.6310296,28400004.6310296,28400004.6310296,28400004.6310296,28400004.6310296,28400004.6310296,28400004.6310296,28400004.6310296 -CN0000000008,Emissions,S2,,,,,,,3600004.63102958,3800004.63102958,4000004.63102958,4000004.63102958,3600004.63102958,3600004.63102958,3600004.63102958,3600004.63102958,3600004.63102958,3600004.63102958,3600004.63102958,3600004.63102958,3600004.63102958,3600004.63102958,3600004.63102958,3600004.63102958,3600004.63102958,3600004.63102958,3600004.63102958,3600004.63102958,3600004.63102958,3600004.63102958,3600004.63102958,3600004.63102958,3600004.63102958,3600004.63102958,3600004.63102958,3600004.63102958,3600004.63102958,3600004.63102958,3600004.63102958,3600004.63102958,3600004.63102958,3600004.63102958,3600004.63102958,3600004.63102958 -CN0000000008,Emission Intensities,S1,,,,,,,1.8416900726653,1.77842721207629,1.75667634989967,1.74707836053789,1.82989665958273,1.82989665958273,1.82989665958273,1.8278970506424908,1.8258996267633,1.8239043855574453,1.8219113246398229,1.8199204416279353,1.817931734141889,1.8159451998043905,1.8139608362407444,1.8119786410788505,1.8099986119492,1.8080207464848739,1.8060450423215395,1.8040714970974479,1.8021001084534303,1.8001308740328967,1.798163791481832,1.7961988584487931,1.7942360725849067,1.7922754315438663,1.790316932981929,1.7883605745579136,1.7864063539331965,1.78445426877171,1.782504316739939,1.7805564955069186,1.778610802744231,1.776667236126002,1.7747257933289002,1.772786472032132 -CN0000000008,Emission Intensities,S2,,,,,,,0.22705793626727,0.231439403083431,0.237388933630528,0.231401339778036,0.231958992063184,0.231958992063184,0.231958992063184,0.23223849014670572,0.23251832501035397,0.2327984970599306,0.23307900670172654,0.23335985434252218,0.2336410403895881,0.23392256525068564,0.23420442933406743,0.23448663304847803,0.23476917680315454,0.23505206100782716,0.23533528607271978,0.23561885240855057,0.23590276042653263,0.23618701053837454,0.236471603156281,0.2367565386929533,0.2370418175615901,0.2373274401758879,0.23761340695004168,0.23789971829874557,0.23818637463719328,0.23847337638107888,0.2387607239465973,0.239048417750445,0.23933645820982047,0.23962484574242493,0.23991358076646294,0.24020266370064294 -CN0000000009,Productions,Production,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -CN0000000009,Emissions,S1,60457000.4256679,68748000.4256679,74602000.4256679,85678000.4256679,79928000.4256679,84451000.4256679,82741000.4256679,81346000.4256679,67743000.4256679,69687000.4256679,79447000.4256679,79447000.4256679,79447000.4256679,79917059.50330581,80389899.74996565,80865537.62081552,81343989.66838273,81825272.54312994,82309402.9940345,82796397.86917144,83286274.1162997,83779048.78345199,84274739.019528,84773362.07489128,85274935.30196951,85779476.15585838,86287002.19492906,86797531.08143923,87311080.58214772,87827668.56893285,88347313.01941435,88870032.01757902,89395843.75441003,89924766.52852,90456818.74678782,90992018.92499916,91530385.68849093,92071937.77279937,92616694.0243121,93164673.40092397,93715894.97269683,94270377.92252314 -CN0000000009,Emissions,S2,2698000.42566793,3033000.42566793,3625000.42566793,3682000.42566793,4539000.42566793,5032000.42566793,4431000.42566793,3719000.42566793,2956000.42566793,2802000.42566793,795000.425667932,795000.425667932,795000.425667932,795000.425667932,795000.425667932,795000.425667932,795000.425667932,795000.425667932,795000.425667932,795000.425667932,795000.425667932,795000.425667932,795000.425667932,795000.425667932,795000.425667932,795000.425667932,795000.425667932,795000.425667932,795000.425667932,795000.425667932,795000.425667932,795000.425667932,795000.425667932,795000.425667932,795000.425667932,795000.425667932,795000.425667932,795000.425667932,795000.425667932,795000.425667932,795000.425667932,795000.425667932 -CN0000000009,Emission Intensities,S1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -CN0000000009,Emission Intensities,S2,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -BR0000000010,Productions,Production,,,,,15691492.9224849,11301980.9224849,11500001.9224849,11600001.9224849,3012108.92248495,12039001.9224849,11847001.9224849,11314001.9224849,11314001.9224849,11223783.132625751,11134283.75488085,11045498.052598318,10957420.334870819,10870044.95617078,10783366.315988539,10697378.858473353,10612077.072077302,10527455.489202004,10443508.68584816,10360231.281267889,10277617.937619844,10195663.359627066,10114362.29423757,10033709.530287651,9953699.898167849,9874328.2694916,9795589.556766523,9717478.71306832,9639990.731717287,9563120.6459574,9486863.528637957,9411214.49189777,9336168.686851855,9261721.303280644,9187867.569321657,9114602.75116364,9041922.152743142,8969821.115443517 -BR0000000010,Emissions,S1,,,,,,,,23200001.9224849,22200001.9224849,22100001.9224849,23400001.9224849,23400001.9224849,23400001.9224849,23400001.9224849,23400001.9224849,23400001.9224849,23400001.9224849,23400001.9224849,23400001.9224849,23400001.9224849,23400001.9224849,23400001.9224849,23400001.9224849,23400001.9224849,23400001.9224849,23400001.9224849,23400001.9224849,23400001.9224849,23400001.9224849,23400001.9224849,23400001.9224849,23400001.9224849,23400001.9224849,23400001.9224849,23400001.9224849,23400001.9224849,23400001.9224849,23400001.9224849,23400001.9224849,23400001.9224849,23400001.9224849,23400001.9224849 -BR0000000010,Emissions,S2,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -BR0000000010,Emission Intensities,S1,,,,,,,,1.99999983426857,7.37025203729028,1.83570050613659,1.97518343253351,2.06823386479905,2.06823386479905,2.1302808807430216,2.1941893071653125,2.260014986380272,2.3278154359716803,2.3976498990508306,2.4695793960223558,2.5436667779030264,2.6199767812401173,2.698576084677321,2.7795333672176405,2.86291936823417,2.9488069492811952,3.037271157759631,3.1283892924924204,3.222240971267193,3.318908200405209,3.4184754464173652,3.5210297098098864,3.626660601104183,3.7354604191373086,3.847524231711428,3.962949958662771,4.081838457422654,4.204293611145333,4.330422419479693,4.460335092064084,4.594145144826006,4.731969499170787,4.873928584145911 -BR0000000010,Emission Intensities,S2,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -BR0000000011,Productions,Production,,,,,,,,,15393000.0778486,15419000.0778486,14618000.0778486,14473000.0778486,14473000.0778486,14401219.225470984,14329794.380192127,14258723.776345417,14188005.657021312,14117638.274023907,14047619.887827717,13977948.767534671,13908623.190831335,13839641.44394632,13771001.821607929,13702702.627001991,13634742.171729928,13567118.775767002,13499830.767420797,13432876.48328988,13366254.268222697,13299962.475276642,13233999.46567735,13168363.608778188,13103053.282019937,13038066.870890688,12973402.76888593,12909059.377468826,12845035.106030716,12781328.371851774,12717937.600061899,12654861.223601775,12592097.683184134,12529645.427255208 -BR0000000011,Emissions,S1,4000000.07784856,6481635.07784856,10525000.0778486,9308000.07784856,9311000.07784856,9578000.07784856,9448000.07784856,9989000.07784856,9867000.07784856,9755000.07784856,9582000.07784856,9582000.07784856,9582000.07784856,9582000.07784856,9582000.07784856,9582000.07784856,9582000.07784856,9582000.07784856,9582000.07784856,9582000.07784856,9582000.07784856,9582000.07784856,9582000.07784856,9582000.07784856,9582000.07784856,9582000.07784856,9582000.07784856,9582000.07784856,9582000.07784856,9582000.07784856,9582000.07784856,9582000.07784856,9582000.07784856,9582000.07784856,9582000.07784856,9582000.07784856,9582000.07784856,9582000.07784856,9582000.07784856,9582000.07784856,9582000.07784856,9582000.07784856 -BR0000000011,Emissions,S2,700993.077848565,1032496.57784856,1364000.07784857,1367000.07784857,1447000.07784857,1220000.07784857,1133000.07784857,1166000.07784857,1216000.07784857,1189000.07784857,1173000.07784857,1173000.07784857,1173000.07784857,1173000.07784857,1173000.07784857,1173000.07784857,1173000.07784857,1173000.07784857,1173000.07784857,1173000.07784857,1173000.07784857,1173000.07784857,1173000.07784857,1173000.07784857,1173000.07784857,1173000.07784857,1173000.07784857,1173000.07784857,1173000.07784857,1173000.07784857,1173000.07784857,1173000.07784857,1173000.07784857,1173000.07784857,1173000.07784857,1173000.07784857,1173000.07784857,1173000.07784857,1173000.07784857,1173000.07784857,1173000.07784857,1173000.07784857 -BR0000000011,Emission Intensities,S1,,,,,,,,,0.641005653735282,0.632661004513705,0.655493229362386,0.662060390127003,0.662060390127003,0.6653768675695529,0.6687099583343782,0.672059745643054,0.6754263131340399,0.6788097448647676,0.6822101253137403,0.6856275393826413,0.6890620723984547,0.6925138101155953,0.6959828387180497,0.6994692448215283,0.7029731154756282,0.7064945381660065,0.7100336008165644,0.7135903917916429,0.7171649998982286,0.7207575143881718,0.7243680249604145,0.72799662176323,0.7316433953964738,0.7353084369138458,0.7389918378251639,0.7426936900986483,0.7464140861632185,0.7501531189108005,0.7539108816986466,0.757687468351666,0.7614829731647677,0.7652974909052147 -BR0000000011,Emission Intensities,S2,,,,,,,,,0.0789969513219493,0.0771126578795937,0.0802435402655439,0.0810474726414106,0.0810474726414106,0.08145346599005264,0.08186149309241667,0.0822715641362415,0.08268368936029968,0.08309787905465314,0.08351414356091008,0.08393249327248321,0.08435293863484927,0.08477549014580979,0.08520015835575323,0.08562695386791841,0.08605588733865925,0.08648696947771084,0.08692021104845683,0.0873556228681982,0.08779321580842334,0.08823300079507945,0.08867498880884543,0.08911919088540597,0.08956561811572714,0.09001428164633325,0.09046519267958526,0.0909183624739604,0.09137380234433329,0.09183152366225847,0.09229153785625434,0.09275385641208848,0.09321849087306446,0.09368545284031 -BR0000000012,Productions,Production,,,,,,9155004.34644718,9331004.34644718,20808004.3464472,21911004.3464472,25390004.3464472,27110004.3464472,30630004.3464472,28540004.3464472,29396204.476840615,30278090.611145835,31186433.329480212,32122026.32936462,33085687.11924556,34078257.732822925,35100605.464807615,36153623.628751844,37238232.3376144,38355379.307742834,39506040.68697512,40691221.90758438,41911958.56481191,43169317.321756266,44464396.84140895,45798328.746651225,47172278.609050766,48587446.96732229,50045070.37634196,51546422.48763222,53092815.16226119,54685599.61712903,56326167.6056429,58015952.63381219,59756431.21282656,61549124.149211355,63395597.8736877,65297465.80989833,67256389.78419529 -BR0000000012,Emissions,S1,,14900657.0,17389874.39,16283032.0,18802944.0,20428595.0,23337931.0,23298343.0,38757404.0,47025134.0,56093007.0,60116322.0,60116322.0,61919811.660000004,63777406.0098,65690728.190094,67661450.03579682,69691293.53687073,71782032.34297685,73935493.31326616,76153558.11266415,78438164.85604407,80791309.80172539,83215049.09577715,85711500.56865047,88282845.58570999,90931330.9532813,93659270.88187975,96469049.00833614,99363120.47858623,102344014.09294382,105414334.51573214,108576764.5512041,111834067.48774023,115189089.51237245,118644762.19774362,122204105.06367594,125870228.21558622,129646335.0620538,133535725.11391541,137541796.86733288,141668050.77335286 -BR0000000012,Emissions,S2,,731525.0,853729.3263,789126.0,1174594.0,1266295.0,723978.0,1409816.0,3979125.0,3344945.0,4137575.0,2779523.0,2779523.0,2862908.69,2948795.9507,3037259.829221,3128377.62409763,3222228.952820559,3318895.821405176,3418462.6960473317,3521016.5769287515,3626647.074236614,3735446.4864637125,3847509.881057624,3962935.1774893524,4081823.232814033,4204277.929798454,4330406.267692408,4460318.4557231795,4594128.009394875,4731951.849676721,4873910.405167023,5020127.717322034,5170731.548841695,5325853.495306946,5485629.100166155,5650197.97317114,5819703.912366275,5994295.029737263,6174123.880629381,6359347.597048263,6550128.024959711 -BR0000000012,Emission Intensities,S1,,,,,,2.23141292204059,2.5011167215762815,1.1196817634257177,1.768855657512769,1.8521120894010474,2.0690888235638023,1.9626612298203263,2.1063879763383277,2.1695796156284777,2.234667004097332,2.301707014220252,2.3707582246468597,2.4418809713862655,2.5151374005278533,2.590591522543689,2.66830926822,2.7483585462666,2.830809302654598,2.9157335817342362,3.0032055891862632,3.0933017568618513,3.186100809567707,3.2816838338547383,3.3801343488703806,3.481538379336492,3.585984530716587,3.6935640666380847,3.8043709886372272,3.918502118296344,4.036057181845234,4.157138897300592,4.28185306421961,4.410308656146198,4.542617915830585,4.678896453305502,4.819263346904668,4.963841247311808 -BR0000000012,Emission Intensities,S2,,,,,,0.13831724727595748,0.07758843240445577,0.06775354217189573,0.18160395283957864,0.13174259265016847,0.15262170183097867,0.09074510628733878,0.09739041964602954,0.09368693940842655,0.09012429197470885,0.08669712187451406,0.08340027729076233,0.08022880231530215,0.07717792949905186,0.07424307268543807,0.07141982011635797,0.06870392780030227,0.06609131313266955,0.06357804875868191,0.06116035666967634,0.058834602523897474,0.05659729018325428,0.0544450564578284,0.05237466605023386,0.05038300669222836,0.04846708446626541,0.046624019304954474,0.04485104066166388,0.043145483345758295,0.041504783516210335,0.039926474827563646,0.038408184722454074,0.036947630865115676,0.03554261771051033,0.0341910332039236,0.032890845606065554,0.03164010043890392 -AR0000000013,Productions,Production,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -AR0000000013,Emissions,S1,,24085969.3736674,30090002.3736674,16848002.3736674,26700002.3736674,32200002.3736674,32600002.3736674,32600002.3736674,22100002.3736674,22600002.3736674,22800002.3736674,21300002.3736674,21300002.3736674,21488497.950096946,21678661.62879757,21870508.17173472,22064052.4715107,22259309.552520737,22456294.57211929,22655022.82179668,22855509.728366155,23057770.855161402,23261821.90324472,23467678.712625843,23675357.263491567,23884873.67744626,24096244.218763337,24309485.29564782,24524613.46151007,24741645.416250795,24960598.007557414,25181488.23221191,25404333.23741025,25629150.322093487,25855956.938290622,26084770.692473385,26315609.346922968,26548490.821108874,26783433.19307997,27020454.70086784,27259573.743902553,27500808.884440985 -AR0000000013,Emissions,S2,,4781476.37366743,4287002.37366743,2116002.37366743,1800002.37366743,1700002.37366743,1200002.37366743,1200002.37366743,1300002.37366743,1400002.37366743,1300002.37366743,1400002.37366743,1400002.37366743,1400002.37366743,1400002.37366743,1400002.37366743,1400002.37366743,1400002.37366743,1400002.37366743,1400002.37366743,1400002.37366743,1400002.37366743,1400002.37366743,1400002.37366743,1400002.37366743,1400002.37366743,1400002.37366743,1400002.37366743,1400002.37366743,1400002.37366743,1400002.37366743,1400002.37366743,1400002.37366743,1400002.37366743,1400002.37366743,1400002.37366743,1400002.37366743,1400002.37366743,1400002.37366743,1400002.37366743,1400002.37366743,1400002.37366743 -AR0000000013,Emission Intensities,S1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -AR0000000013,Emission Intensities,S2,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -US6293775085,Emission Intensities,S1,,,,,,1.9078947229440604,1.9031347520966235,1.938325976762264,1.9301825854069008,1.8908107973659347,1.890868583031941,1.9762237571623067,1.9762237571623067,1.9762237571623067,1.9762237571623067,1.9762237571623067,1.9762237571623067,1.9762237571623067,1.9762237571623067,1.9762237571623067,1.9762237571623067,1.9762237571623067,1.9762237571623067,1.9762237571623067,1.9762237571623067,1.9762237571623067,1.9762237571623067,1.9762237571623067,1.9762237571623067,1.9762237571623067,1.9762237571623067,1.9762237571623067,1.9762237571623067,1.9762237571623067,1.9762237571623067,1.9762237571623067,1.9762237571623067,1.9762237571623067,1.9762237571623067,1.9762237571623067,1.9762237571623067,1.9762237571623067 -US6293775085,Emission Intensities,S2,,,,,,0.18640352122645398,0.17301226391448854,0.15418503503119452,0.16219120482980817,0.15027028309511137,0.13474388873022294,0.13286714979851907,0.13286714979851907,0.12985196288384893,0.1269052003475461,0.1240253094183604,0.12121077256246163,0.11846010668378809,0.11577186234254185,0.11314462299141884,0.11057700422917145,0.10806765307111012,0.10561524723615967,0.10321849445009465,0.10087613176458647,0.09858692489170365,0.09634966755351436,0.09416318084644862,0.09202631262008516,0.08993793687003565,0.0878969531446063,0.08590228596492436,0.08395288425822364,0.08204772080399085,0.08018579169268046,0.07836611579671321,0.07658773425347935,0.07484970996007423,0.07315112707949989,0.07149109055807269,0.0698687256537824,0.0682831774753544 -US0079031078,Emission Intensities,S1+S2,,,,,,0.6155112880631671,0.7972264421381788,0.6783777775765729,0.9641955316550713,1.8169518684673494,1.6982474347547039,1.6982474347547039,1.6982474347547039,1.6982474347547039,1.6982474347547039,1.6982474347547039,1.6982474347547039,1.6982474347547039,1.6982474347547039,1.6982474347547039,1.6982474347547039,1.6982474347547039,1.6982474347547039,1.6982474347547039,1.6982474347547039,1.6982474347547039,1.6982474347547039,1.6982474347547039,1.6982474347547039,1.6982474347547039,1.6982474347547039,1.6982474347547039,1.6982474347547039,1.6982474347547039,1.6982474347547039,1.6982474347547039,1.6982474347547039,1.6982474347547039,1.6982474347547039,1.6982474347547039,1.6982474347547039,1.6982474347547039 -FR0000125338,Emission Intensities,S1+S2,,0.4803122285558924,0.4963127026376133,0.5102583774506546,0.4398688228755212,0.4211833057958467,1.8476822065429854,0.20550859628721732,0.19919327218732297,0.2027688700408841,0.22457393169276957,0.2580129849830155,0.2580129849830155,0.2580129849830155,0.2580129849830155,0.2580129849830155,0.2580129849830155,0.2580129849830155,0.2580129849830155,0.2580129849830155,0.2580129849830155,0.2580129849830155,0.2580129849830155,0.2580129849830155,0.2580129849830155,0.2580129849830155,0.2580129849830155,0.2580129849830155,0.2580129849830155,0.2580129849830155,0.2580129849830155,0.2580129849830155,0.2580129849830155,0.2580129849830155,0.2580129849830155,0.2580129849830155,0.2580129849830155,0.2580129849830155,0.2580129849830155,0.2580129849830155,0.2580129849830155,0.2580129849830155 -US17275R1023,Emission Intensities,S1+S2,0.12719821903194936,0.1288810096238356,0.11304836120377948,0.12505069790984943,0.11222142892956188,0.10650458100823934,0.09596257089106329,1.7122710011281115,1.761905244968557,1.221959986898359,1.2010797002418052,1.2010797002418052,1.2010797002418052,1.2010797002418052,1.2010797002418052,1.2010797002418052,1.2010797002418052,1.2010797002418052,1.2010797002418052,1.2010797002418052,1.2010797002418052,1.2010797002418052,1.2010797002418052,1.2010797002418052,1.2010797002418052,1.2010797002418052,1.2010797002418052,1.2010797002418052,1.2010797002418052,1.2010797002418052,1.2010797002418052,1.2010797002418052,1.2010797002418052,1.2010797002418052,1.2010797002418052,1.2010797002418052,1.2010797002418052,1.2010797002418052,1.2010797002418052,1.2010797002418052,1.2010797002418052,1.2010797002418052 -CH0198251305,Emission Intensities,S1+S2,,0.4019469752662959,0.4214761557916545,0.4332995678360691,0.40656172797796086,0.4101575487459123,0.4230948417118186,0.4130063259223973,0.4440603024962899,0.4006967041672549,0.32885410556364697,0.24267537955382834,0.24267537955382834,0.24267537955382834,0.24267537955382834,0.24267537955382834,0.24267537955382834,0.24267537955382834,0.24267537955382834,0.24267537955382834,0.24267537955382834,0.24267537955382834,0.24267537955382834,0.24267537955382834,0.24267537955382834,0.24267537955382834,0.24267537955382834,0.24267537955382834,0.24267537955382834,0.24267537955382834,0.24267537955382834,0.24267537955382834,0.24267537955382834,0.24267537955382834,0.24267537955382834,0.24267537955382834,0.24267537955382834,0.24267537955382834,0.24267537955382834,0.24267537955382834,0.24267537955382834,0.24267537955382834 -US1266501006,Emission Intensities,S1+S2,,0.336045390201609,0.3446378445519158,0.3389349028266888,0.30424458135879623,0.2871036132396919,0.2801972382349842,0.4509404391229875,1.5823190910783573,1.0534310508778062,0.7915303572344525,0.7380621491921888,0.7380621491921888,0.7380621491921888,0.7380621491921888,0.7380621491921888,0.7380621491921888,0.7380621491921888,0.7380621491921888,0.7380621491921888,0.7380621491921888,0.7380621491921888,0.7380621491921888,0.7380621491921888,0.7380621491921888,0.7380621491921888,0.7380621491921888,0.7380621491921888,0.7380621491921888,0.7380621491921888,0.7380621491921888,0.7380621491921888,0.7380621491921888,0.7380621491921888,0.7380621491921888,0.7380621491921888,0.7380621491921888,0.7380621491921888,0.7380621491921888,0.7380621491921888,0.7380621491921888,0.7380621491921888 -FR0000120644,Emission Intensities,S1+S2,,0.2977791411901853,0.2851060653898852,0.31649622244714365,0.2640033494502047,0.2285923883857599,0.24400965958147047,0.21849990885491666,0.14642299883458657,0.13897988493446825,0.13171752365218165,0.12261207069164323,0.12261207069164323,0.11620500570269289,0.11013274039162965,0.10437777987983021,0.0989235434794494,0.09375431692259552,0.08885520708675897,0.0842120990860529,0.07981161560464115,0.07564107835518817,0.07168847155128884,0.06794240728863765,0.064392092735197,0.06102729903583536,0.05783833184184642,0.05481600338044117,0.05195160598374223,0.04923688700101434,0.0466640250218503,0.04422560734180881,0.041914608605580134,0.039724370566148075,0.037648582901632234,0.03568126503454166,0.033816748901059124,0.03204966262071244,0.030374915019383227,0.028787680961062274,0.027283387446090542,0.025857700435833336 -US24703L1035,Emission Intensities,S1+S2,,,,0.0029165667429452433,0.0031825695954165326,0.0032060438783053577,0.0030259671956914284,0.003208731677740818,0.0034467921850720212,0.003251049342511939,0.0026890305288561397,0.0026890305288561397,0.0026890305288561397,0.0026890305288561397,0.0026890305288561397,0.0026890305288561397,0.0026890305288561397,0.0026890305288561397,0.0026890305288561397,0.0026890305288561397,0.0026890305288561397,0.0026890305288561397,0.0026890305288561397,0.0026890305288561397,0.0026890305288561397,0.0026890305288561397,0.0026890305288561397,0.0026890305288561397,0.0026890305288561397,0.0026890305288561397,0.0026890305288561397,0.0026890305288561397,0.0026890305288561397,0.0026890305288561397,0.0026890305288561397,0.0026890305288561397,0.0026890305288561397,0.0026890305288561397,0.0026890305288561397,0.0026890305288561397,0.0026890305288561397,0.0026890305288561397 -TW0002308004,Emission Intensities,S1+S2,,,,1.4724208068744489,1.3900906577991483,1.2719227792856171,1.2344632212553883,1.2404226963965608,1.5664911219778537,1.1748684698436636,1.191895541675586,1.191895541675586,1.191895541675586,1.191895541675586,1.191895541675586,1.191895541675586,1.191895541675586,1.191895541675586,1.191895541675586,1.191895541675586,1.191895541675586,1.191895541675586,1.191895541675586,1.191895541675586,1.191895541675586,1.191895541675586,1.191895541675586,1.191895541675586,1.191895541675586,1.191895541675586,1.191895541675586,1.191895541675586,1.191895541675586,1.191895541675586,1.191895541675586,1.191895541675586,1.191895541675586,1.191895541675586,1.191895541675586,1.191895541675586,1.191895541675586,1.191895541675586 -FR0000120321,Emission Intensities,S1+S2,,,,0.8555273543905912,0.8662518859225254,0.8617671832957047,0.8831020340508602,0.9574508433299559,0.8838687988490999,0.8728807456552709,0.8759061471467042,0.8710761366058977,0.8710761366058977,0.8710761366058977,0.8710761366058977,0.8710761366058977,0.8710761366058977,0.8710761366058977,0.8710761366058977,0.8710761366058977,0.8710761366058977,0.8710761366058977,0.8710761366058977,0.8710761366058977,0.8710761366058977,0.8710761366058977,0.8710761366058977,0.8710761366058977,0.8710761366058977,0.8710761366058977,0.8710761366058977,0.8710761366058977,0.8710761366058977,0.8710761366058977,0.8710761366058977,0.8710761366058977,0.8710761366058977,0.8710761366058977,0.8710761366058977,0.8710761366058977,0.8710761366058977,0.8710761366058977 -CH0038863350,Emission Intensities,S1+S2,,0.20861317128702908,0.29373678915306867,1.2134611771869102,0.8831774015244391,0.8760687425887023,0.868869824045846,0.9089641745109065,0.9416606064434532,0.9384181459992638,0.9992111823532782,1.0103398427559807,1.0103398427559807,1.0103398427559807,1.0103398427559807,1.0103398427559807,1.0103398427559807,1.0103398427559807,1.0103398427559807,1.0103398427559807,1.0103398427559807,1.0103398427559807,1.0103398427559807,1.0103398427559807,1.0103398427559807,1.0103398427559807,1.0103398427559807,1.0103398427559807,1.0103398427559807,1.0103398427559807,1.0103398427559807,1.0103398427559807,1.0103398427559807,1.0103398427559807,1.0103398427559807,1.0103398427559807,1.0103398427559807,1.0103398427559807,1.0103398427559807,1.0103398427559807,1.0103398427559807,1.0103398427559807 -US8356993076,Emission Intensities,S1+S2,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -JP3401400001,Emission Intensities,S1+S2,,0.7627196744108117,0.7638732477924682,0.81188870951957,0.8917683050926354,0.6992484768112838,0.658529278359413,0.6419307428290961,0.7246422517737928,0.9783458890477668,0.8216553409097898,0.8216553409097898,0.8216553409097898,0.8216553409097898,0.8216553409097898,0.8216553409097898,0.8216553409097898,0.8216553409097898,0.8216553409097898,0.8216553409097898,0.8216553409097898,0.8216553409097898,0.8216553409097898,0.8216553409097898,0.8216553409097898,0.8216553409097898,0.8216553409097898,0.8216553409097898,0.8216553409097898,0.8216553409097898,0.8216553409097898,0.8216553409097898,0.8216553409097898,0.8216553409097898,0.8216553409097898,0.8216553409097898,0.8216553409097898,0.8216553409097898,0.8216553409097898,0.8216553409097898,0.8216553409097898,0.8216553409097898 -US6541061031,Emission Intensities,S1+S2,,0.7554372038250308,0.8079727856358664,0.8084544341926329,0.7720350808332819,0.7585213731195966,0.7211267701058357,0.7186487831250362,0.682317692531061,0.7125000115639173,0.629386622670478,0.49735991894221177,0.49735991894221177,0.48865412727555213,0.4801007218500365,0.4716970352957829,0.4634404469325714,0.45532838195258785,0.44735831061747283,0.43952774746942586,0.4318342505561179,0.42427542066917145,0.41684890059597,0.409552374384564,0.4023835666214437,0.39534024172195426,0.38842020323313087,0.3816212931487376,0.37494139123629544,0.3683784143758903,0.3619303159105543,0.3555950850080181,0.3493707460336352,0.3432553579342824,0.3372470136330446,0.33134383943449497,0.3255439944403852,0.31984566997556335,0.3142470890239408,0.30874650567433126,0.30334220457599087,0.29803250040368773 -GB0031274896,Emission Intensities,S1+S2,0.7857970874634518,0.7788666647269834,0.746761805887373,0.7414639713923852,0.8079086467749617,0.7904765793965814,0.7920417414879934,0.7247026956463656,0.7181097051482093,0.7493263745784912,0.7213730332171804,0.7213730332171804,0.7213730332171804,0.7191454204965274,0.7169246866834642,0.7147108105358021,0.7125037708769486,0.7103035465957052,0.7081101166460648,0.705923460047011,0.7037435558823171,0.7015703833003458,0.6994039215138506,0.6972441497997758,0.6950910474990591,0.692944594016434,0.6908047688202321,0.6886715514421875,0.6865449214772404,0.6844248585833425,0.6823113424812617,0.6802043529543889,0.6781038698485441,0.6760098730717837,0.6739223425942086,0.6718412584477721,0.6697666007260893,0.6676983495842467,0.665636485238612,0.6635809879666453,0.6615318381067102,0.6594890160578858 -US6293775085,Emission Intensities,S1+S2,,,,,,2.0942982441705142,2.076147016011112,2.0925110117934587,2.0923737902367088,2.041081080461046,2.0256124717621637,2.1090909069608257,2.1090909069608257,2.1089525981366672,2.10881429838245,2.1086760076975795,2.1085377260814604,2.1083994535334987,2.108261190053099,2.108122935639668,2.1079846902926094,2.1078464540113298,2.1077082267952343,2.107570008643729,2.107431799556218,2.1072935995321087,2.1071554085708057,2.107017226671715,2.106879053834242,2.106740890057793,2.1066027353417733,2.106464589685589,2.106326453088646,2.1061883255503497,2.106050207070107,2.105912097647323,2.1057739972814042,2.1056359059717566,2.1054978237177866,2.1053597505189,2.105221686374503,2.1050836312840016 -US7134481081,Emission Intensities,S1+S2,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -JP0000000001,Emission Intensities,S1+S2,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -NL0000000002,Emission Intensities,S1+S2,,,,,,,,,,,0.23287909421782566,0.23782543529110398,0.23782543529110398,0.23983744872740673,0.24186648388412768,0.24391268476575548,0.2459761965950629,0.24805716582341367,0.2501557401411564,0.2522720684881063,0.254406301064116,0.25655858933973524,0.2587290860669612,0.2609179452900795,0.2631253223565971,0.2653513739282675,0.26759625799220954,0.2698601338721197,0.2721431622395799,0.2744455051254606,0.2767673259314204,0.27910878944150286,0.28147006183383183,0.2838513106924051,0.2862527050189884,0.28867441524510973,0.291116613244155,0.29357947234356646,0.29606316733714405,0.29856787449745076,0.301093771588323,0.303641037877487 -IT0000000003,Emission Intensities,S1+S2,,,,,,0.970218332054505,0.924039770186721,0.9506260122796859,0.922241753091223,0.9383499673279889,0.954598554537054,0.954598554537054,0.954598554537054,0.954598554537054,0.954598554537054,0.954598554537054,0.954598554537054,0.954598554537054,0.954598554537054,0.954598554537054,0.954598554537054,0.954598554537054,0.954598554537054,0.954598554537054,0.954598554537054,0.954598554537054,0.954598554537054,0.954598554537054,0.954598554537054,0.954598554537054,0.954598554537054,0.954598554537054,0.954598554537054,0.954598554537054,0.954598554537054,0.954598554537054,0.954598554537054,0.954598554537054,0.954598554537054,0.954598554537054,0.954598554537054,0.954598554537054 -SE0000000004,Emission Intensities,S1+S2,,,,,,,,2.060434942888829,2.0190726733162,2.1375879213541418,2.14490674197121,2.153791383555795,2.153791383555795,2.161165682701744,2.16856523048055,2.175990113340219,2.183440418024745,2.1909162315751214,2.1984176413303578,2.205944734928502,2.213497600307663,2.221076325707038,2.228680999667943,2.236311711034849,2.2439685489564183,2.2516516028865468,2.2593609625854083,2.2670967181205044,2.274858959867715,2.2826477785123562,2.2904632650502377,2.298305510788728,2.3061746073478187,2.314070646661198,2.3219937209773214,2.3299439228604917,2.33792134519194,2.34592608117091,2.3539582243157473,2.3620178684649926,2.3701051077784774,2.3782200367384236 -SE0000000005,Emission Intensities,S1+S2,,,,,,2.450205384446609,2.452335671138975,2.5416468276320163,3.047991995482132,3.3376087569091224,3.630111503845141,3.2084092426770465,3.2084092426770465,3.2927632144991095,3.379334980880391,3.468182851021996,3.559366667162847,3.652947844885588,3.7489894144821885,3.8475560634071164,3.948714179846666,4.0525318974337905,4.159079141138558,4.268427674365136,4.380651147287026,4.495825146453109,4.614027245697903,4.735337058390338,4.859836291056224,4.987608798410536,5.1187406398365844,5.253320137350109,5.391437935087332,5.5331870603570525,5.678662986297883,5.827963696182847,5.981189749414641,6.1384443492560115,6.299833412340868,6.465465640012948,6.635452591540087,6.809908759253399 -NL0000000006,Emission Intensities,S1+S2,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -CN0000000007,Emission Intensities,S1+S2,,,,,,,,2.245677064091812,2.1917201624485423,2.064294160027321,2.027591972455373,1.976620617045139,1.976620617045139,1.94147722418469,1.906958664461715,1.873053828634393,1.8397518049780428,1.8070418757733597,1.7749135138570904,1.7433563792340352,1.7123603157492877,1.68191534781964,1.6520116772231015,1.6226396799455,1.5937899030831475,1.5654530618005753,1.53762003634236,1.5102818690980773,1.4834297617194387,1.457055072288686,1.4311493125373285,1.4057041451143315,1.3807113809028742,1.3561629763848135,1.3320510310520086,1.3083677848636694,1.2851056157489125,1.2622570371537203,1.2398146956315148,1.2177713684765692,1.1961199613994966,1.1748535062440673 -CN0000000008,Emission Intensities,S1+S2,,,,,,,2.06874800893257,2.009866615159721,1.994065283530198,1.9784797003159258,2.061855651645914,2.061855651645914,2.061855651645914,2.058632565310681,2.0554145172939724,2.0522014997199043,2.0489935047249044,2.045790524457693,2.042592551079263,2.039399576762862,2.0362115936939706,2.0330285940702875,2.029850570101706,2.0266775140102977,2.0235094180302924,2.0203462744080594,2.0171880754020886,2.014034813282971,2.0108864803333804,2.007743068848055,2.0046045711337763,2.001470979509353,1.998342286305601,1.9952184838653242,1.9920995645432964,1.9889855207062423,1.985876344732819,1.982772029013597,1.9796725659510424,1.9765779479594972,1.9734881674651614,1.9704032169060748 -CN0000000009,Emission Intensities,S1+S2,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -BR0000000010,Emission Intensities,S1+S2,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -BR0000000011,Emission Intensities,S1+S2,,,,,,,,,0.7200026050572312,0.7097736623932986,0.7357367696279299,0.7431078627684136,0.7431078627684136,0.7468303335596055,0.7505714514267947,0.7543313097792954,0.7581100024943395,0.7619076239194207,0.7657242688746503,0.7695600326551245,0.773415011033304,0.7772893002614051,0.7811829970738029,0.7850961986894467,0.7890290028142876,0.7929815076437174,0.7969538118650213,0.8009460146598412,0.804958215706652,0.8089905151832515,0.8130430137692602,0.8171158126486363,0.8212090135122013,0.8253227185601795,0.8294570305047495,0.8336120525726091,0.8377878885075521,0.8419846425730594,0.8462024195549014,0.8504413247637549,0.8547014640378325,0.8589829437455252 -BR0000000012,Emission Intensities,S1+S2,,,,,,2.369730169316547,2.5787051539807373,1.1874353055976135,1.9504596103523477,1.983854682051216,2.221710525394781,2.053406336107665,2.203778395984357,2.262080547317932,2.3219251136494563,2.3833529004032834,2.4464057925333744,2.5111267830828377,2.5775600024990277,2.6457507487241916,2.7157455180821772,2.7875920369822693,2.861339294461765,2.9370375755894824,3.0147384957529764,3.094495035852842,3.1763615784281005,3.2603939447373045,3.3466494328206418,3.4351868565689943,3.526066585826588,3.619350587554583,3.715102468083667,3.813387516484463,3.9142727490853275,4.017826955167889,4.124120743871487,4.233226592338492,4.3452188951333435,4.460174014968982,4.5781703347752885,4.699288311145017 -AR0000000013,Emission Intensities,S1+S2,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, diff --git a/test/test_projection.py b/test/test_projection.py index a96c6003..50bc717c 100644 --- a/test/test_projection.py +++ b/test/test_projection.py @@ -1,8 +1,8 @@ import json import unittest -import pandas as pd import os -from ITR.data.data_providers import EmissionIntensityProjector + +from ITR.data.base_providers import BaseEmissionIntensityProjector from ITR.interfaces import ICompanyData @@ -14,15 +14,17 @@ class TestProjector(unittest.TestCase): def setUp(self) -> None: self.root: str = os.path.dirname(os.path.abspath(__file__)) self.source_path: str = os.path.join(self.root, "inputs", "json", "test_project_companies.json") - self.reference_path: str = os.path.join(self.root, "inputs", "test_projection_reference.csv") + self.json_reference_path: str = os.path.join(self.root, "inputs", "json", "test_project_reference.json") with open(self.source_path, 'r') as file: company_dicts = json.load(file) - companies = [ICompanyData(**company_dict) for company_dict in company_dicts] - self.projector = EmissionIntensityProjector(companies) + self.companies = [ICompanyData(**company_dict) for company_dict in company_dicts] + self.projector = BaseEmissionIntensityProjector() def test_project(self): - projections = self.projector.project(as_dataframe=True) + projections = self.projector.project_intensities(self.companies) + with open(self.json_reference_path, 'r') as file: + reference_projections = json.load(file) # Column names from read_csv are read as strings projections.columns = [str(col) for col in projections.columns] From 734bde7e82b3713986b9f9e2470217cd90766d57 Mon Sep 17 00:00:00 2001 From: David Kroon Date: Mon, 17 Jan 2022 13:42:26 +0100 Subject: [PATCH 034/345] Fix scrambling of rows in getting processed company data Signed-off-by: David Kroon Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- ITR/data/data_warehouse.py | 4 ---- 1 file changed, 4 deletions(-) diff --git a/ITR/data/data_warehouse.py b/ITR/data/data_warehouse.py index 2bbdce73..fd0d83a7 100644 --- a/ITR/data/data_warehouse.py +++ b/ITR/data/data_warehouse.py @@ -108,10 +108,6 @@ def _get_cumulative_emissions(self, projected_emissions_intensity: pd.DataFrame, :param projected_production: series of projected production series :return: weighted sum of production and emissions """ -<<<<<<< HEAD return projected_emissions_intensity.reset_index(drop=True).multiply(projected_production.reset_index( drop=True)).sum(axis=1) -======= - return projected_emission_intensity.multiply(projected_production).sum(axis=1) ->>>>>>> Fix scrambling of rows in getting processed company data From e539691f5dc3ef9518fec56ebf96357f41e8c3e8 Mon Sep 17 00:00:00 2001 From: David Kroon Date: Tue, 18 Jan 2022 16:41:06 +0100 Subject: [PATCH 035/345] Fix tests Signed-off-by: David Kroon Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- ITR/data/base_providers.py | 10 ++++++---- ITR/interfaces.py | 6 +++--- test/test_projection.py | 4 ++-- 3 files changed, 11 insertions(+), 9 deletions(-) diff --git a/ITR/data/base_providers.py b/ITR/data/base_providers.py index ec9ae33a..ba1d48c8 100644 --- a/ITR/data/base_providers.py +++ b/ITR/data/base_providers.py @@ -300,7 +300,7 @@ def _get_intensity_benchmarks(self, company_sector_region_info: pd.DataFrame, return benchmark_projection -class BaseEmissionIntensityProjector(object): +class EmissionIntensityProjector(object): """ This class projects emission intensities on company level based on historic data on: - A company's emission history (in t CO2) @@ -372,7 +372,7 @@ def _compute_missing_historic_emission_intensities(self, companies, historic_dat ei_keys = {scope: (company.company_id, VariablesConfig.EMISSION_INTENSITIES, scope) for scope in scopes} for scope in scopes: if ei_keys[scope] not in historic_data.index: # Emission intensities not yet computed for this scope - if scope == EScope.S1S2.value: + if scope == 'S1S2': try: # Try to add S1 and S2 emission intensities historic_data.loc[ei_keys[scope]] = historic_data.loc[ei_keys['S1']] + \ historic_data.loc[ei_keys['S2']] @@ -382,7 +382,9 @@ def _compute_missing_historic_emission_intensities(self, companies, historic_dat historic_data.loc[production_key] except KeyError: missing_data.append(f"{company.company_id} - {scope}") - elif scope == EScope.S1S2S3.value: + elif scope == 'S1S2S3': # Implement when S3 data is available + pass + elif scope == 'S3': # Remove when S3 data is available - will be handled by 'else' pass else: # S1 and S2 cannot be computed from other EIs, so use emissions and productions try: @@ -395,7 +397,7 @@ def _compute_missing_historic_emission_intensities(self, companies, historic_dat def _add_projections_to_companies(self, companies: List[ICompanyData], extrapolations: pd.DataFrame): for company in companies: - results = extrapolations.loc[(company.company_id, VariablesConfig.EMISSION_INTENSITIES, EScope.S1S2.value)] + results = extrapolations.loc[(company.company_id, VariablesConfig.EMISSION_INTENSITIES, 'S1S2')] projections = [ICompanyProjection(year=year, value=value) for year, value in results.items() if year >= TemperatureScoreConfig.CONTROLS_CONFIG.base_year] company.projected_intensities = ICompanyProjectionsScopes( diff --git a/ITR/interfaces.py b/ITR/interfaces.py index 3fc98652..5359499c 100644 --- a/ITR/interfaces.py +++ b/ITR/interfaces.py @@ -246,12 +246,12 @@ class EScope(SortableEnum): S1S2S3 = "S1+S2+S3" @classmethod - def get_scopes(cls) -> List['EScope']: + def get_scopes(cls) -> List[str]: """ Get a list of all scopes. - :return: A list of EScope objects + :return: A list of EScope string values """ - return [cls.S1.value, cls.S2.value, cls.S1S2.value, cls.S1S2S3.value] + return ['S1', 'S2', 'S3', 'S1S2', 'S1S2S3'] @classmethod def get_result_scopes(cls) -> List['EScope']: diff --git a/test/test_projection.py b/test/test_projection.py index 50bc717c..a27d3e7b 100644 --- a/test/test_projection.py +++ b/test/test_projection.py @@ -2,7 +2,7 @@ import unittest import os -from ITR.data.base_providers import BaseEmissionIntensityProjector +from ITR.data.base_providers import EmissionIntensityProjector from ITR.interfaces import ICompanyData @@ -19,7 +19,7 @@ def setUp(self) -> None: with open(self.source_path, 'r') as file: company_dicts = json.load(file) self.companies = [ICompanyData(**company_dict) for company_dict in company_dicts] - self.projector = BaseEmissionIntensityProjector() + self.projector = EmissionIntensityProjector() def test_project(self): projections = self.projector.project_intensities(self.companies) From be9dd1174a7a4a9687a47de11f09b5276d542fe6 Mon Sep 17 00:00:00 2001 From: Joris Cramwinckel <8858036+joriscram@users.noreply.github.com> Date: Tue, 25 Jan 2022 09:54:37 +0100 Subject: [PATCH 036/345] hotfix - custom sphinx-autoapi dependency decrecated -> updated to community version Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index 52ff1e7e..1c54a307 100644 --- a/requirements.txt +++ b/requirements.txt @@ -3,7 +3,7 @@ pydantic==1.8.2 six==1.15.0 Sphinx==3.0.3 sphinx-autodoc-typehints==1.10.3 -git+https://github.com/OFBDABV/sphinx-autoapi.git +sphinx-autoapi==1.8.4 sphinx-rtd-theme==0.4.3 pandas==1.3.0 xlrd==2.0.1 From 4253db664c1d59c0d308a3f12b16522659f98b1c Mon Sep 17 00:00:00 2001 From: Oleksandr Anufriyev Date: Wed, 16 Feb 2022 22:54:18 +0100 Subject: [PATCH 037/345] Adding latest version of UI It is just a single file, so I thought I could put it to develop branch, as we are using it for testing Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- examples/ITR_dash_app.py | 692 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 692 insertions(+) create mode 100644 examples/ITR_dash_app.py diff --git a/examples/ITR_dash_app.py b/examples/ITR_dash_app.py new file mode 100644 index 00000000..4b655a98 --- /dev/null +++ b/examples/ITR_dash_app.py @@ -0,0 +1,692 @@ +# Run this app with `python ITR_dash_app.py` and +# visit http://127.0.0.1:8050/ in your web browser +# and pray. + + +import pandas as pd +import json +import os +import base64 +import datetime +import io + +import dash +from dash import html +from dash import dcc +from dash import dash_table + +import dash_bootstrap_components as dbc # should be installed separately + +from dash.dependencies import Input, Output, State +from dash.exceptions import PreventUpdate +import plotly.express as px +import plotly.graph_objects as go + +import ITR + +from ITR.data.data_warehouse import DataWarehouse +from ITR.portfolio_aggregation import PortfolioAggregationMethod +from ITR.temperature_score import TemperatureScore +from ITR.configs import ColumnsConfig, TemperatureScoreConfig + +from ITR.data.base_providers import BaseCompanyDataProvider, BaseProviderProductionBenchmark, BaseProviderIntensityBenchmark +from ITR.interfaces import ICompanyData, EScope, ETimeFrames, PortfolioCompany, IEmissionIntensityBenchmarkScopes, IProductionBenchmarkScopes + + +# Initial calculations +print('Start!!!!!!!!!') + +directory1 ='' #'examples' +directory2="data" +directory3="json" + +company_json_file = "fundamental_data.json" +benchmark_prod_json_file = "benchmark_production_OECM.json" +benchmark_EI_OECM_file = "benchmark_EI_OECM.json" +benchmark_EI_TPI_file = "benchmark_EI_TPI_2_degrees.json" +benchmark_EI_TPI_below_2_file = "benchmark_EI_TPI_below_2_degrees.json" + +root = os.path.dirname(os.path.abspath("__file__")) +# root = os.path.dirname(os.path.abspath(__file__)) +company_json = os.path.join(root, directory1, directory2, directory3, company_json_file) +benchmark_prod_json = os.path.join(root, directory1, directory2, directory3, benchmark_prod_json_file) +benchmark_EI_OECM = os.path.join(root, directory1, directory2, directory3, benchmark_EI_OECM_file) +benchmark_EI_TPI = os.path.join(root, directory1, directory2, directory3, benchmark_EI_TPI_file) +benchmark_EI_TPI_below_2 = os.path.join(root, directory1, directory2, directory3, benchmark_EI_TPI_below_2_file) + + +# load company data +with open(company_json) as json_file: + parsed_json = json.load(json_file) +companies = [ICompanyData.parse_obj(company_data) for company_data in parsed_json] +base_company_data = BaseCompanyDataProvider(companies) + +# load production benchmarks +with open(benchmark_prod_json) as json_file: + parsed_json = json.load(json_file) +prod_bms = IProductionBenchmarkScopes.parse_obj(parsed_json) +base_production_bm = BaseProviderProductionBenchmark(production_benchmarks=prod_bms) + +# load intensity benchmarks + +# OECM +with open(benchmark_EI_OECM) as json_file: + parsed_json = json.load(json_file) +ei_bms = IEmissionIntensityBenchmarkScopes.parse_obj(parsed_json) +OECM_EI_bm = BaseProviderIntensityBenchmark(EI_benchmarks=ei_bms) + +# TPI +with open(benchmark_EI_TPI) as json_file: + parsed_json = json.load(json_file) +ei_bms = IEmissionIntensityBenchmarkScopes.parse_obj(parsed_json) +TPI_EI_bm = BaseProviderIntensityBenchmark(EI_benchmarks=ei_bms) + +# TPI below 2 +with open(benchmark_EI_TPI_below_2) as json_file: + parsed_json = json.load(json_file) +ei_bms = IEmissionIntensityBenchmarkScopes.parse_obj(parsed_json) +TPI_below_2_EI_bm = BaseProviderIntensityBenchmark(EI_benchmarks=ei_bms) + +OECM_warehouse = DataWarehouse(base_company_data, base_production_bm, OECM_EI_bm) +TPI_warehouse = DataWarehouse(base_company_data, base_production_bm, TPI_EI_bm) +TPI_below_2_warehouse = DataWarehouse(base_company_data, base_production_bm, TPI_below_2_EI_bm) + +# dummy_portfolio = "example_portfolio.csv" +dummy_portfolio = "example_portfolio_clean.csv" +df_portfolio = pd.read_csv(os.path.join(directory1,directory2,dummy_portfolio), encoding="iso-8859-1", sep=';') +print('got till here 1') +companies = ITR.utils.dataframe_to_portfolio(df_portfolio) +temperature_score = TemperatureScore(time_frames = [ETimeFrames.LONG],scopes=[EScope.S1S2],aggregation_method=PortfolioAggregationMethod.WATS) # Options for the aggregation method are WATS, TETS, AOTS, MOTS, EOTS, ECOTS, and ROTS + +portfolio_data = ITR.utils.get_data(OECM_warehouse, companies) +amended_portfolio_global = temperature_score.calculate(portfolio_data) +initial_portfolio = amended_portfolio_global +print('got till here 2') + + +# nice cheatsheet for managing layout via className attribute: https://hackerthemes.com/bootstrap-cheatsheet/ + +# Define app +app = dash.Dash(__name__, external_stylesheets=[dbc.themes.BOOTSTRAP], # theme should be written in CAPITAL letters; list of themes https://www.bootstrapcdn.com/bootswatch/ + meta_tags=[{'name': 'viewport', # this thing makes layout responsible to mobile view + 'content': 'width=device-width, initial-scale=1.0'}] + ) +app.title = "ITR Tool" # this puts text to the browser tab +server = app.server + +controls = dbc.Row( # always do in rows ... + [ + dbc.Col( # ... and then split to columns + children=[ + # dbc.Row( + # [ + # dbc.Col( # Carbon budget slider + # dbc.Label("\N{scroll} Benchmark carbon budget"), + # width=9, # max is 12 per column + # ), + # dbc.Col( + # [ + # dbc.Button("\N{books}",id="hover-target1", color="link", n_clicks=0, className="text-right"), + # dbc.Popover(dbc.PopoverBody("And here's some amazing content. Cool!"),id="hover1",target="hover-target1",trigger="hover"), + # ], width=2, + # ), + # ], + # align="center", + # ), + # dcc.RangeSlider( + # id="carb-budg", + # min=initial_portfolio.cumulative_budget.min(),max=initial_portfolio.cumulative_budget.max(), + # value=[initial_portfolio.cumulative_budget.min(), initial_portfolio.cumulative_budget.max()], + # tooltip={'placement': 'bottom'}, + # marks={i*(10**8): str(i) for i in range(0, int(initial_portfolio.cumulative_budget.max()/(10**8)), 10)}, + # ), + dbc.Row( + [ + dbc.Col( + dbc.Label("\N{thermometer} Individual temperature score"), + width=9, + ), + dbc.Col( + [ + dbc.Button("\N{books}",id="hover-target2", color="link", n_clicks=0), + dbc.Popover(dbc.PopoverBody("And here's some amazing content. Cool!"),id="hover2",target="hover-target2",trigger="hover"), + ], width=2, align="center", + ), + ], + align="center", + ), + dcc.RangeSlider( + id="temp-score", + min = 0, max = 4, value=[0,4], + step=0.5, + marks={i / 10: str(i / 10) for i in range(0, 40, 5)}, + ), + dbc.Row( + [ + dbc.Col( + dbc.Label("\N{factory} Focus on a specific sector "), + width=9, + ), + dbc.Col( + [ + dbc.Button("\N{books}",id="hover-target3", color="link", n_clicks=0), + dbc.Popover(dbc.PopoverBody("And here's some amazing content. Cool!"),id="hover3",target="hover-target3",trigger="hover"), + ], width=2, + ), + ], + align="center", + ), + dcc.Dropdown(id="sector-dropdown", + options=[{"label": i, "value": i} for i in initial_portfolio["sector"].unique()] + [{'label': 'All Sectors', 'value': 'all_values'}], + value = 'all_values', + clearable =False, + placeholder="Select a sector"), + dbc.Row( + [ + dbc.Col( + dbc.Label("\N{globe with meridians} Focus on a specific region "), + width=9, + ), + dbc.Col( + [ + dbc.Button("\N{books}",id="hover-target4", color="link", n_clicks=0), + dbc.Popover(dbc.PopoverBody("And here's some amazing content. Cool!"),id="hover4",target="hover-target4",trigger="hover"), + ], width=2, + ), + ], + align="center", + ), + dcc.Dropdown(id="region-dropdown", + options=[{"label": i, "value": i} for i in initial_portfolio["region"].unique()] + [{'label': 'All Regions', 'value': 'all_values'}], + value = 'all_values', + clearable =False, + placeholder="Select a region"), + + ], + ), + ], +) + +macro = dbc.Row( + [ + dbc.Col( + children=[ + dbc.Row( + [ + dbc.Col( + dbc.Label("\N{bar chart} Select Benchmark "), + width=9, + ), + dbc.Col( + [ + dbc.Button("\N{books}",id="hover-target5", color="link", n_clicks=0), + dbc.Popover(dbc.PopoverBody("And here's some amazing content. Cool!"),id="hover5",target="hover-target5",trigger="hover"), + ], width=2, + ), + ], + align="center", + ), + dcc.Dropdown(id="scenario-dropdown", + options=[ + {'label': 'OECM 1.5 degrees', 'value': 'OECM'}, + {'label': 'TPI 2 degrees', 'value': 'TPI_2_degrees'}, + {'label': 'TPI below 2 degrees', 'value': 'TPI_below_2_degrees'} + ], + value='OECM', + clearable =False, + placeholder="Select emission scenario"), + html.Div(id='hidden-div', style={'display':'none'}) + ], + ), + ], +) + + +# Define Layout +app.layout = dbc.Container( # always start with container + children=[ + # dcc.Store(id='memory-output'), # not used, but the idea is to use as clipboard to store dataframe + html.Hr(), # small space from the top + dbc.Row( # upload portfolio + [ + dbc.Col( + dbc.CardImg( + src="https://os-climate.org/wp-content/uploads/sites/138/2021/10/OSC-Logo.png", + className='h-60 w-60 float-right align-middle', # reducing size and alligning + bottom=False), + width = 2, + ), + dbc.Col( + [ + html.H1(id="banner-title",children=[html.A("OS-Climate Portfolio Alignment Tool",href="https://github.com/plotly/dash-svm",style={"text-decoration": "none","color": "inherit"})]), + html.Div(children='Prototype tool for calculating the Implied Temperature Rise of investor portfolio in the steel and electric utilities sectors \N{deciduous tree}'), + ], + width = 6, + ), + dbc.Col([ + dcc.Upload( + id='upload-data', + children=html.Div( + dbc.Button('Upload portfolio', size="lg", color="primary",className='align-bottom',), + ), + multiple=False # Allow multiple files to be uploaded + ), + ], + width=2, + ), + dbc.Col(html.Div(dbc.Button('Get template', size="lg", color="secondary", + href="https://raw.githubusercontent.com/os-c/ITR/e772349117d41e1b62e3f9bcfb904b7e9c5e6c35/examples/data/example_portfolio.csv?token=AD3GZXC7GFH2O6EC7Z3X3KLBOE5MO", + download="Dummy_portfolio.csv.txt", + external_link=True, + ), + ), + width=2, + className='align-middle', + ) + ], + # no_gutters=False, # deprecated, creates spaces btw components + justify='center', # for this to work you need some space left (in total there 12 columns) + align = 'center', + ), + # dbc.Row( # the row below is commented out, but left just in case to reverse upload functionality + # [ + # dbc.Col( + # [dbc.InputGroup( + # [dbc.InputGroupAddon("Put the URL of a csv portfolio here:", addon_type="prepend"), + # dbc.Input(id="input-url",value = 'data/example_portfolio_main.csv',), + # ] + # ), + # ], + # width = 9, + # ), + # dbc.Col(dbc.Button("Upload new portfolio", id="run-url", color="primary", ), + # width=3, + # ), + # ] + # ), + html.Hr(), + dbc.Row( + [ + dbc.Col([ # filters pane + dbc.Card(dbc.CardBody( + [ + dbc.Row([ # Row with key figures + dbc.Col(html.H5("Filters", className="pf-filter")), # PF score + dbc.Col( + html.Div( + dbc.Button("Reset filters", + id="reset-filters-but", + outline=True, color="dark",size="sm",className="me-md-2" + ), + className="d-grid gap-2 d-md-flex justify-content-md-end" + ) + ), + ]), + html.P("Select part of your portfolio", className="text-black-50"), + controls, + ] + ) + ), + html.Br(), + dbc.Card(dbc.CardBody( + [ + html.H5("Scenario assumptions", className="macro-filters"), + html.P("Here you could adjust basic assumptions of calculations", className="text-black-50"), + macro, + ] + ) + ), + ], + width=3, + ), + dbc.Col([ # main pane + dbc.Row([ # Row with key figures + dbc.Col( # PF score + dbc.Card(dbc.CardBody( + [ + html.H1(id="output-info"), + html.P('Portfolio-level temperature rating of selected companies'), + ] + ) + ), + ), + dbc.Col( # Portfolio EVIC + dbc.Card(dbc.CardBody( + [ + html.H1(id="evic-info"), + html.P('Enterprise Value incl. Cash of selected portfolio in Bn'), + ] + ) + ), + ), + dbc.Col( # Portfolio notional + dbc.Card(dbc.CardBody( + [ + html.H1(id="pf-info"), + html.P('Total Notional of a selected portfolio in Mn'), + ] + ) + ), + ), + dbc.Col( # Number of companies + dbc.Card(dbc.CardBody( + [ + html.H1(id="comp-info"), + html.P('Number of companies in the selected portfolio'), + ] + ) + ), + ), + ], + ), + dbc.Row([dbc.Col(dcc.Graph(id="graph-2"),width=8), # big bubble graph + dbc.Col(dcc.Graph(id="graph-6"),), # covered graph + ], + ), + dbc.Row([ # 2 graphs + dbc.Col(dcc.Graph(id="graph-3", + # style={"height": "70vh", "max-height": "90vw",'title': 'Dash Data Visualization'}, + ), + ), + dbc.Col(dcc.Graph(id="graph-4", + # style={"height": "70vh", "max-height": "90vw",'title': 'Dash Data Visualization'}, + ), + ), + ]), + dbc.Row([ # 2 graphs + dbc.Col(dcc.Graph(id="graph-5", + # style={"height": "70vh", "max-height": "90vw",'title': 'Dash Data Visualization'}, + ), + ), + ]), + html.Br(), + dbc.Card(dbc.CardBody( # Table + [ + dbc.Row( + [ + dbc.Col( + html.H5("Table below contains details about the members of the selected portfolio"), + width=10, + ), + dbc.Col( + html.Div( + [ + dbc.Button("\N{books}",id="hover-target7", color="link", n_clicks=0, className="text-right"), + dbc.Popover(dbc.PopoverBody([ + html.P("Emission budget: ..."), + html.P("Trajectory score: ..."), + html.P("Target score: ..."), + html.P("Temperature score: ..."), + ] + ), + id="hover7",target="hover-target7",trigger="hover"), + ], + className="d-grid gap-2 d-md-flex justify-content-md-end", + ), + width=2, + ), + ], + align="center", + ), + html.Br(), + html.Div(id='container-button-basic'), + ] + ), + ), + + ] + ), + ] + ) + ], + style={"max-width": "1500px", + # "margin": "auto" + }, + ) +print('got till here 4') + + + +def parse_contents(contents, filename): + content_type, content_string = contents.split(',') + decoded = base64.b64decode(content_string) + try: + if 'csv' in filename: # Assume that the user uploaded a CSV file + df = pd.read_csv(io.StringIO(decoded.decode('iso-8859-1'))) + elif 'xls' in filename: # Assume that the user uploaded an excel file + df = pd.read_excel(io.BytesIO(decoded)) + # print(df) + return df + except Exception as e: + print(e) + + +@app.callback( + [ + Output("graph-2", "figure"), Output("graph-6", "figure"),Output("graph-3", "figure"), Output("graph-4", "figure"), Output("graph-5", "figure"), + Output('output-info','children'), # portfolio score + Output('output-info','style'), # conditional color + Output('evic-info','children'), # portfolio evic + Output('pf-info','children'), # portfolio notional + Output('comp-info','children'), # num of companies + # Output('carb-budg', 'min'), Output('carb-budg', 'max'), # this was an adjusting of min-max of a slider + Output('container-button-basic', 'children'), # Table + ], + [ +# Input('memory-output', 'data'), # here is our imported csv in memory + Input("scenario-dropdown", "value"), + # Input("carb-budg", "value"), # carbon budget + Input("temp-score", "value"), + # Input("run-url", "n_clicks"), + # Input("input-url", "n_submit"), + Input("sector-dropdown", "value"), + Input("region-dropdown", "value"), + Input('upload-data', 'contents'), + ], + [ + # State("input-url", "value"), # url functionality + State('upload-data', 'filename'), # upload functionality + ], +) + +def update_graph( + # df_store, + scenario, + # ca_bu, + te_sc, + sec, reg, + list_of_contents, list_of_names, # related to upload + # url, + ): + + global amended_portfolio_global, initial_portfolio, temperature_score, companies + + print('got till here 5') + + changed_id = [p['prop_id'] for p in dash.callback_context.triggered][0] # to catch which widgets were pressed + if 'upload-data' in changed_id: # if "upload new pf" button was clicked + df_portfolio = parse_contents(list_of_contents, list_of_names) + # df_portfolio = pd.read_csv(url, encoding="iso-8859-1", sep=';') + companies = ITR.utils.dataframe_to_portfolio(df_portfolio) + portfolio_data = ITR.utils.get_data(OECM_warehouse, companies) + initial_portfolio = temperature_score.calculate(portfolio_data) + initial_portfolio = initial_portfolio.sort_values(by='temperature_score', ascending=False) + filt_df = initial_portfolio + amended_portfolio_global = filt_df + aggregated_scores = temperature_score.aggregate_scores(filt_df) + + else: # no new portfolio + if scenario == 'OECM': + portfolio_data = ITR.utils.get_data(OECM_warehouse, companies) + elif scenario == 'TPI_2_degrees': + portfolio_data = ITR.utils.get_data(TPI_warehouse, companies) + else: + portfolio_data = ITR.utils.get_data(TPI_below_2_warehouse, companies) + + amended_portfolio_global = temperature_score.calculate(portfolio_data) + initial_portfolio = amended_portfolio_global + + # carbon_mask = (initial_portfolio.cumulative_budget >= ca_bu[0]) & (initial_portfolio.cumulative_budget <= ca_bu[1]) + temp_score_mask = (initial_portfolio.temperature_score >= te_sc[0]) & (initial_portfolio.temperature_score <= te_sc[1]) + + # Dropdown filters + if sec == 'all_values': + sec_mask = (initial_portfolio.sector != 'dummy') # select all + else: + sec_mask = initial_portfolio.sector == sec + if reg == 'all_values': + reg_mask = (initial_portfolio.region != 'dummy') # select all + else: + reg_mask = (initial_portfolio.region == reg) + filt_df = initial_portfolio.loc[temp_score_mask & sec_mask & reg_mask] # filtering + filt_df = filt_df.sort_values(by='temperature_score', ascending=False) + if len(filt_df) == 0: # if after filtering the dataframe is empty + raise PreventUpdate + amended_portfolio_global = filt_df + aggregated_scores = temperature_score.aggregate_scores(filt_df) # calc temp score for companies left in pf + + + # Calculate different weighting methods + def agg_score(agg_method): + temperature_score = TemperatureScore(time_frames = [ETimeFrames.LONG], + scopes=[EScope.S1S2], + aggregation_method=agg_method) # Options for the aggregation method are WATS, TETS, AOTS, MOTS, EOTS, ECOTS, and ROTS + aggregated_scores = temperature_score.aggregate_scores(filt_df) + return [agg_method.value,aggregated_scores.long.S1S2.all.score] + + agg_temp_scores = [agg_score(i) for i in PortfolioAggregationMethod] + df_temp_score = pd.DataFrame(agg_temp_scores) + # Separate column for names on Bar chart + # Highlight WATS and TETS + Weight_Dict = {'WATS': 'Investment
weighted', #
is needed to wrap x-axis label + 'TETS': 'Total emissions
weighted', + 'EOTS': "Enterprise Value
weighted", + 'ECOTS': "Enterprise Value
+ Cash weighted", + 'AOTS': "Total Assets
weighted", + 'ROTS': "Revenues
weigted", + 'MOTS': 'Market Cap
weighted'} + df_temp_score['Weight_method'] = df_temp_score[0].map(Weight_Dict) # Mapping code to text + df_temp_score[1]=df_temp_score[1].round(decimals = 2) + # Creating barchart + fig4 = px.bar(df_temp_score, x='Weight_method', y=1, text=1,title = "Score by weighting scheme
Assess the influence of weighting schemes on scores") + fig4.update_traces(textposition='inside', textangle=0) + fig4.update_yaxes(title_text='Temperature score', range = [1,3]) + fig4.update_xaxes(title_text=None, tickangle=0) + fig4.add_annotation(x=0.5, y=2.6,text="Main methodologies",showarrow=False) + fig4.add_shape( + dict(type="rect", x0=-0.45, x1=1.5, y0=0, y1=2.7, line_dash="dot",line_color="LightSeaGreen"), + row="all", + col="all", + ) + fig4.add_hline(y=2, line_dash="dot",line_color="red",annotation_text="Critical value") # horizontal line + fig4.update_layout(transition_duration=500) + + + + + # Scatter plot + fig1 = px.scatter(filt_df, x="cumulative_target", y="cumulative_budget", + size="investment_value", + color = "sector", labels={"color": "Sector"}, + hover_data=["company_name", "investment_value", "temperature_score"], + title="Overview of portfolio") + fig1.update_layout({'legend_title_text': '','transition_duration':500}) + fig1.update_layout(legend=dict(orientation = "h",yanchor="bottom",y=1,xanchor="center",x=0.5)) + + + # Covered companies analysis + coverage=filt_df[['company_id','ghg_s1s2','cumulative_target']] + def f(row): + if (pd.isna(row['ghg_s1s2']) and row['cumulative_target']==0): + val = "Not Covered" + elif (pd.isna(row['ghg_s1s2']) and row['cumulative_target']>0): + val = "Covered only
by target" + elif (row['ghg_s1s2']>0 and row['cumulative_target']==0): + val = "Covered only
by emissions" + else: + val = "Covered by
emissions and targets" + return val + coverage['coverage_category'] = coverage.apply(f, axis=1) + dfg=coverage.groupby('coverage_category').count().reset_index() + dfg['portfolio']='Portfolio' # 1 column to have just 1 bar. I didn't figure out how to do it more ellegant + fig5 = px.bar(dfg, x='portfolio',y="company_id", color="coverage_category",text='company_id',title="Coverage of companies in portfolio") + fig5.update_xaxes(visible=False) # hide axis + fig5.update_yaxes(visible=False) # hide axis + fig5.update_layout({'legend_title_text': '','transition_duration':500, 'plot_bgcolor':'white'}) + fig5.update_layout(legend=dict(yanchor="middle",y=0.5,xanchor="left",x=1)) # location of legend + + # Heatmap + trace = go.Heatmap( + x = filt_df.sector, + y = filt_df.region, + z = filt_df.temperature_score, + type = 'heatmap', + colorscale = 'Temps', + ) + data = [trace] + fig2 = go.Figure(data = data) + fig2.update_layout(title = "Industry vs Region ratings") + + + fig3 = px.bar(filt_df.query("temperature_score > 2"), + x="company_name", y="temperature_score", + text ="temperature_score", + color="sector",title="Highest temperature scores by company") + fig3.update_traces(textposition='inside', textangle=0) + fig3.update_yaxes(title_text='Temperature score', range = [1,4]) + fig3.update_layout({'legend_title_text': '','transition_duration':500}) + fig3.update_layout(xaxis_title = None,legend=dict(orientation = "h",yanchor="bottom",y=1,xanchor="center",x=0.5)) + + + # Carbon budget slider update + # drop_d_min = initial_portfolio.cumulative_budget.min() + # drop_d_max = initial_portfolio.cumulative_budget.max() + + df=amended_portfolio_global[['company_name', 'company_id','region','sector','cumulative_budget','investment_value','trajectory_score', 'target_score','temperature_score']] + df['temperature_score']=df['temperature_score'].round(decimals = 2) # formating column + df['trajectory_score']=df['trajectory_score'].round(decimals = 2) # formating column + df['target_score']=df['target_score'].round(decimals = 2) # formating column + df['cumulative_budget'] = df['cumulative_budget'].apply(lambda x: "{:,.1f}".format((x/1000000))) # formating column + df['investment_value'] = df['investment_value'].apply(lambda x: "${:,.1f} Mn".format((x/1000000))) # formating column + df.rename(columns={'company_name':'Name', 'company_id':'ISIN','region':'Region','sector':'Industry','cumulative_budget':'Emission budget','investment_value':'Notional','trajectory_score':'Historical emissions score', 'target_score':'Target score','temperature_score':'Weighted temperature score'}, inplace=True) + + return ( + fig1, fig5, fig2, fig3, fig4, + "{:.2f}".format(aggregated_scores.long.S1S2.all.score), # portfolio score + {'color': 'ForestGreen'} if aggregated_scores.long.S1S2.all.score < 2 else {'color': 'Red'}, # conditional color + str(round((filt_df.company_enterprise_value.sum()+filt_df.company_cash_equivalents.sum())/10**9,0)), + str(filt_df.investment_value.sum()/10**6), + str(len(filt_df)), # num of companies + # str(len(filt_df.sector.unique())), # num of sectors in pf + # drop_d_min, drop_d_max, # Carbon budget slider update + dbc.Table.from_dataframe(df, + striped=True, + bordered=True, + hover=True, + responsive=True, + ), + ) + + +@app.callback( # reseting dropdowns + [ + # Output("carb-budg", "value"), # Carbon budget slider update + Output("temp-score", "value"), + Output("sector-dropdown", "value"), + Output("region-dropdown", "value"), + ], + [Input('reset-filters-but', 'n_clicks')] +) + +def reset_filters(n_clicks): + if n_clicks is None: + raise PreventUpdate + return ( # if button is clicked, reset filters + # [initial_portfolio.cumulative_budget.min(), initial_portfolio.cumulative_budget.max()], # Carbon budget slider update + [0,4], + 'all_values', + 'all_values', + ) + +if __name__ == "__main__": + app.run_server(debug=True) \ No newline at end of file From 426fa121a6a397fdc6ce2920a3fcab4dd994666b Mon Sep 17 00:00:00 2001 From: MichaelTiemannOSC Date: Mon, 27 Dec 2021 20:47:08 +0000 Subject: [PATCH 038/345] WIP Checkpoint Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- ITR/configs.py | 7 +- ITR/data/base_providers.py | 1 + ITR/data/data_providers.py | 13 +- ITR/data/data_warehouse.py | 12 +- ITR/data/excel.py | 80 ++- ITR/interfaces.py | 77 +-- ITR/temperature_score.py | 8 +- ITR/utils.py | 8 +- examples/quick_temp_score_calculation.ipynb | 687 ++++++-------------- 9 files changed, 312 insertions(+), 581 deletions(-) diff --git a/ITR/configs.py b/ITR/configs.py index 80b7c263..6d8ae989 100644 --- a/ITR/configs.py +++ b/ITR/configs.py @@ -4,6 +4,11 @@ """ from .interfaces import TemperatureScoreControls +from pint import Quantity +import pint +import pint_pandas +ureg = pint.get_application_registry() +Q_ = ureg.Quantity class ColumnsConfig: # Define a constant for each column used in the @@ -96,7 +101,7 @@ class TemperatureScoreConfig(PortfolioAggregationConfig): projection_end_year=2019, tcre=2.2, carbon_conversion=3664.0, - scenario_target_temperature=1.5 + scenario_target_temperature=Q_(1.5, ureg.degC) ) diff --git a/ITR/data/base_providers.py b/ITR/data/base_providers.py index ba1d48c8..11f51e09 100644 --- a/ITR/data/base_providers.py +++ b/ITR/data/base_providers.py @@ -49,6 +49,7 @@ def _convert_projections_to_series(self, company: ICompanyData, feature: str, :param scope: a scope :return: pd.Series """ + print("returning Series...") return pd.Series( {r['year']: r['value'] for r in company.dict()[feature][str(scope)]['projections']}, name=company.company_id) diff --git a/ITR/data/data_providers.py b/ITR/data/data_providers.py index 8a8fe2a7..b15e1472 100644 --- a/ITR/data/data_providers.py +++ b/ITR/data/data_providers.py @@ -1,12 +1,19 @@ from abc import ABC, abstractmethod from typing import List, Dict, Union import pandas as pd + import numpy as np from ITR.configs import ProjectionConfig, TabsConfig, VariablesConfig, ColumnsConfig, TemperatureScoreConfig from ITR.interfaces import ICompanyData, EScope, IHistoricData, IProductionRealization, IHistoricEmissionsScopes, \ IHistoricEIScopes, ICompanyProjection, ICompanyProjectionsScopes, ICompanyProjections +from pint import Quantity +import pint +import pint_pandas +ureg = pint.get_application_registry() +Q_ = ureg.Quantity + class CompanyDataProvider(ABC): """ @@ -131,7 +138,7 @@ class IntensityBenchmarkDataProvider(ABC): """ AFOLU_CORRECTION_FACTOR = 0.76 # AFOLU -> Acronym of agriculture, forestry and other land use - def __init__(self, benchmark_temperature: float, benchmark_global_budget: float, is_AFOLU_included: bool, + def __init__(self, benchmark_temperature: Quantity['degC'], benchmark_global_budget: Quantity['CO2'], is_AFOLU_included: bool, **kwargs): """ Create a new data provider instance. @@ -155,14 +162,14 @@ def is_AFOLU_included(self, value): self._is_AFOLU_included = value @property - def benchmark_temperature(self) -> float: + def benchmark_temperature(self) -> Quantity['degC']: """ :return: assumed temperature for the benchmark. for OECM 1.5C for example """ return self._benchmark_temperature @property - def benchmark_global_budget(self) -> float: + def benchmark_global_budget(self) -> Quantity['CO2']: """ :return: Benchmark provider assumed global budget. if AFOLU is not included global budget is divided by 0.76 """ diff --git a/ITR/data/data_warehouse.py b/ITR/data/data_warehouse.py index fd0d83a7..de437399 100644 --- a/ITR/data/data_warehouse.py +++ b/ITR/data/data_warehouse.py @@ -3,6 +3,13 @@ import pandas as pd from pydantic import ValidationError import numpy as np + +import pint +import pint_pandas + +ureg = pint.get_application_registry() +Q_ = ureg.Quantity + from ITR.interfaces import ICompanyAggregates from ITR.data.data_providers import CompanyDataProvider, ProductionBenchmarkDataProvider, IntensityBenchmarkDataProvider from ITR.configs import ColumnsConfig, TemperatureScoreConfig @@ -41,6 +48,7 @@ def get_preprocessed_company_data(self, company_ids: List[str]) -> List[ICompany :param company_ids: A list of company IDs (ISINs) :return: A list containing the company data and additional precalculated fields """ + print(f"company_ids = {company_ids}\n\n") company_data = self.company_data.get_company_data(company_ids) df_company_data = pd.DataFrame.from_records([c.dict() for c in company_data])\ .set_index(self.column_config.COMPANY_ID) @@ -65,6 +73,7 @@ def get_preprocessed_company_data(self, company_ids: List[str]) -> List[ICompany company_info_at_base_year), projected_production=projected_production) + print(f"self.benchmarks_projected_emission_intensity.benchmark_global_budget = {self.benchmarks_projected_emission_intensity.benchmark_global_budget}\n\n") df_company_data.loc[:, self.column_config.BENCHMARK_GLOBAL_BUDGET] = self.benchmarks_projected_emissionsintensity.benchmark_global_budget df_company_data.loc[:, @@ -94,8 +103,9 @@ def _convert_df_to_model(self, df_company_data: pd.DataFrame) -> List[ICompanyAg try: model_companies.append(ICompanyAggregates.parse_obj(company_data)) except ValidationError as e: + print(__name__, e) logger.warning( - "(one of) the input(s) of company %s is invalid and will be skipped" % company_data[ + "DW: (one of) the input(s) of company %s is invalid and will be skipped" % company_data[ self.column_config.COMPANY_NAME]) pass return model_companies diff --git a/ITR/data/excel.py b/ITR/data/excel.py index 80f9b8c9..3289c8e5 100644 --- a/ITR/data/excel.py +++ b/ITR/data/excel.py @@ -1,6 +1,13 @@ from typing import Type, List, Union, Optional import pandas as pd import numpy as np + +from pint import Quantity +import pint +import pint_pandas +ureg = pint.get_application_registry() +Q_ = ureg.Quantity + from pydantic import ValidationError from ITR.data.base_providers import BaseCompanyDataProvider, BaseProviderProductionBenchmark, \ BaseProviderIntensityBenchmark @@ -9,24 +16,27 @@ IProductionBenchmarkScopes, IBenchmark, IBenchmarks, IBenchmarkProjection, IHistoricEmissionsScopes, \ IProductionRealization, IHistoricEIScopes, IHistoricData, IEmissionRealization, IEIRealization +import logging + # TODO: Force validation for excel benchmarks # Utils functions: def convert_benchmark_excel_to_model(df_excel: pd.DataFrame, sheetname: str, column_name_region: str, - column_name_sector: str) -> IBenchmarks: + column_name_sector: str, cell_unit: str) -> IBenchmarks: """ Converts excel into IBenchmarks :param excal_path: file path to excel :return: IBenchmarks instance (list of IBenchmark) """ + print("here") df_ei_bms = df_excel[sheetname].reset_index().drop(columns=['index']).set_index( [column_name_region, column_name_sector]) result = [] for index, row in df_ei_bms.iterrows(): bm = IBenchmark(region=index[0], sector=index[1], - projections=[IBenchmarkProjection(year=int(k), value=v) for k, v in row.items()]) + projections=[IBenchmarkProjection(year=int(k), value=Q_(v, cell_unit)) for k, v in row.items()]) result.append(bm) return IBenchmarks(benchmarks=result) @@ -44,7 +54,7 @@ def __init__(self, excel_path: str, column_config: Type[ColumnsConfig] = Columns self._check_sector_data() self._convert_excel_to_model = convert_benchmark_excel_to_model production_bms = self._convert_excel_to_model(self.benchmark_excel, TabsConfig.PROJECTED_PRODUCTION, - column_config.REGION, column_config.SECTOR) + column_config.REGION, column_config.SECTOR, 'Mt CO2') super().__init__( IProductionBenchmarkScopes(S1S2=production_bms), column_config, tempscore_config) @@ -69,15 +79,15 @@ def _get_projected_production(self, scope: EScope = EScope.S1S2) -> pd.DataFrame class ExcelProviderIntensityBenchmark(BaseProviderIntensityBenchmark): - def __init__(self, excel_path: str, benchmark_temperature: float, - benchmark_global_budget: float, is_AFOLU_included: bool, + def __init__(self, excel_path: str, benchmark_temperature: Quantity['degC'], + benchmark_global_budget: Quantity['CO2'], is_AFOLU_included: bool, column_config: Type[ColumnsConfig] = ColumnsConfig, tempscore_config: Type[TemperatureScoreConfig] = TemperatureScoreConfig): self.benchmark_excel = pd.read_excel(excel_path, sheet_name=None, skiprows=0) self._check_sector_data() self._convert_excel_to_model = convert_benchmark_excel_to_model EI_benchmarks = self._convert_excel_to_model(self.benchmark_excel, TabsConfig.PROJECTED_EI, - column_config.REGION, column_config.SECTOR) + column_config.REGION, column_config.SECTOR, 't CO2/MWh') super().__init__( IEmissionIntensityBenchmarkScopes(S1S2=EI_benchmarks, benchmark_temperature=benchmark_temperature, benchmark_global_budget=benchmark_global_budget, @@ -102,12 +112,10 @@ class ExcelProviderCompany(BaseCompanyDataProvider): :param tempscore_config: An optional TemperatureScoreConfig object containing temperature scoring settings """ - def __init__(self, excel_path: str): - self.ENERGY_UNIT_CONVERSION_FACTOR = 3.6 - self.CORRECTION_SECTORS = [SectorsConfig.ELECTRICITY] - self._companies = self._convert_from_excel_data(excel_path) - self.historic_years = None - super().__init__(self._companies, ColumnsConfig, TemperatureScoreConfig) + def __init__(self, excel_path: str, column_config: Type[ColumnsConfig] = ColumnsConfig, + tempscore_config: Type[TemperatureScoreConfig] = TemperatureScoreConfig): + super().__init__(None, column_config, tempscore_config) + self._companies = self._convert_excel_data_to_ICompanyData(excel_path) def _check_company_data(self, df: pd.DataFrame) -> None: """ @@ -132,14 +140,14 @@ def _convert_from_excel_data(self, excel_path: str) -> List[ICompanyData]: self._check_company_data(df_company_data) df_fundamentals = df_company_data[TabsConfig.FUNDAMENTAL] - company_ids = df_fundamentals[ColumnsConfig.COMPANY_ID].unique() - df_targets = self._get_projection(company_ids, df_company_data[TabsConfig.PROJECTED_TARGET]) + company_ids = df_fundamentals[self.column_config.COMPANY_ID].unique() + df_targets = self._get_projection(company_ids, df_company_data[TabsConfig.PROJECTED_TARGET], 'pint[Mt CO2]') if TabsConfig.PROJECTED_EI in df_company_data.keys(): - df_ei = self._get_projection(company_ids, df_company_data[TabsConfig.PROJECTED_EI]) + df_ei = self._get_projection(company_ids, df_company_data[TabsConfig.PROJECTED_EI], 'pint[t CO2/MWh]') else: df_ei = None if TabsConfig.HISTORIC_DATA in df_company_data.keys(): - df_historic = self._get_historic_data(company_ids, df_company_data[TabsConfig.HISTORIC_DATA]) + df_historic = self._get_historic_data(company_ids, df_company_data[TabsConfig.HISTORIC_DATA], 'pint[t CO2/MWh]' else: df_historic = None return self._company_df_to_model(df_fundamentals, df_targets, df_ei, df_historic) @@ -173,30 +181,35 @@ def _company_df_to_model(self, df_fundamentals: pd.DataFrame, df_targets: pd.Dat model_companies: List[ICompanyData] = [] for company_data in companies_data_dict: try: - convert_unit_of_measure = company_data[ColumnsConfig.SECTOR] in self.CORRECTION_SECTORS - company_targets = self._convert_series_to_projections( - df_targets.loc[company_data[ColumnsConfig.COMPANY_ID], :], convert_unit_of_measure) - company_ei = self._convert_series_to_projections( - df_ei.loc[company_data[ColumnsConfig.COMPANY_ID], :], - convert_unit_of_measure) + # convert_unit_of_measure = company_data[ColumnsConfig.SECTOR] in self.CORRECTION_SECTORS + # company_targets = self._convert_series_to_projections( + # df_targets.loc[company_data[ColumnsConfig.COMPANY_ID], :], convert_unit_of_measure) + # company_ei = self._convert_series_to_projections( + # df_ei.loc[company_data[ColumnsConfig.COMPANY_ID], :], + # convert_unit_of_measure) - company_data.update({ColumnsConfig.PROJECTED_TARGETS: {'S1S2': {'projections': company_targets}}}) - company_data.update({ColumnsConfig.PROJECTED_EI: {'S1S2': {'projections': company_ei}}}) + company_data.update({ColumnsConfig.PROJECTED_TARGETS: {'S1S2': {'projections': df_targets}}}) + company_data.update({ColumnsConfig.PROJECTED_EI: {'S1S2': {'projections': df_ei}}}) if df_historic is not None: - company_data[TabsConfig.HISTORIC_DATA] = self._convert_historic_data( - df_historic.loc[company_data[ColumnsConfig.COMPANY_ID], :], convert_unit_of_measure) + company_data[TabsConfig.HISTORIC_DATA] = df_historic.loc[company_data[ColumnsConfig.COMPANY_ID], :] model_companies.append(ICompanyData.parse_obj(company_data)) + print("after model_companies.append") except ValidationError as e: + print(__name__, e) logger.warning( "(one of) the input(s) of company %s is invalid and will be skipped" % company_data[ ColumnsConfig.COMPANY_NAME]) pass return model_companies + + # Workaround for bug (https://github.com/pandas-dev/pandas/issues/20824) in Pandas where NaN are treated as zero + def _np_sum(g): + return np.sum(g.values) - def _get_projection(self, company_ids: List[str], projections: pd.DataFrame) -> pd.DataFrame: + def _get_projection(self, company_ids: List[str], projections: pd.DataFrame, astype: str) -> pd.DataFrame: """ get the projected emissions for list of companies :param company_ids: list of company ids @@ -210,13 +223,14 @@ def _get_projection(self, company_ids: List[str], projections: pd.DataFrame) -> f"company ids missing in provided projections" projections = projections.loc[company_ids, :] - projections = projections.loc[:, range(TemperatureScoreConfig.CONTROLS_CONFIG.base_year, - TemperatureScoreConfig.CONTROLS_CONFIG.target_end_year + 1)] - + projections = projections.loc[:, range(self.temp_config.CONTROLS_CONFIG.base_year, + self.temp_config.CONTROLS_CONFIG.target_end_year + 1)] # Due to bug (https://github.com/pandas-dev/pandas/issues/20824) in Pandas where NaN are treated as zero workaround below: - projections = projections.fillna(np.inf) - projected_emissions_s1s2 = projections.groupby(level=0, sort=False).sum() # add scope 1 and 2 - projected_emissions_s1s2 = projected_emissions_s1s2.replace(np.inf, np.nan) + projected_emissions_s1s2 = projections.groupby(level=0, sort=False).agg(ExcelProviderCompany._np_sum) # add scope 1 and 2 + # print("about to convert in _get_projection") + for col in projected_emissions_s1s2.columns: + projected_emissions_s1s2[col] = projected_emissions_s1s2[col].astype(astype) + # print(f"projected_emissions_s1s2.loc[{astype}] = {projected_emissions_s1s2.iloc[0:7, 0:7]}") return projected_emissions_s1s2 diff --git a/ITR/interfaces.py b/ITR/interfaces.py index 5359499c..ff9b2fb8 100644 --- a/ITR/interfaces.py +++ b/ITR/interfaces.py @@ -1,11 +1,12 @@ from enum import Enum from typing import Optional, Dict, List from pydantic import BaseModel +from pint import Quantity class AggregationContribution(BaseModel): company_name: str company_id: str - temperature_score: float + temperature_score: Quantity['degC'] contribution_relative: Optional[float] contribution: Optional[float] @@ -13,8 +14,8 @@ def __getitem__(self, item): return getattr(self, item) -class Aggregation(BaseModel): - score: float +class Aggregation(PintModel): + score: Quantity['degC'] proportion: float contributions: List[AggregationContribution] @@ -22,7 +23,7 @@ def __getitem__(self, item): return getattr(self, item) -class ScoreAggregation(BaseModel): +class ScoreAggregation(PintModel): all: Aggregation influence_percentage: float grouped: Dict[str, Aggregation] @@ -31,7 +32,7 @@ def __getitem__(self, item): return getattr(self, item) -class ScoreAggregationScopes(BaseModel): +class ScoreAggregationScopes(PintModel): S1S2: Optional[ScoreAggregation] S3: Optional[ScoreAggregation] S1S2S3: Optional[ScoreAggregation] @@ -40,7 +41,7 @@ def __getitem__(self, item): return getattr(self, item) -class ScoreAggregations(BaseModel): +class ScoreAggregations(PintModel): short: Optional[ScoreAggregationScopes] mid: Optional[ScoreAggregationScopes] long: Optional[ScoreAggregationScopes] @@ -49,7 +50,7 @@ def __getitem__(self, item): return getattr(self, item) -class PortfolioCompany(BaseModel): +class PortfolioCompany(PintModel): company_name: str company_id: str company_isin: Optional[str] @@ -57,12 +58,12 @@ class PortfolioCompany(BaseModel): user_fields: Optional[dict] -class IBenchmarkProjection(BaseModel): +class IBenchmarkProjection(PintModel): year: int - value: float + value: Quantity['CO2/Wh'] -class IBenchmark(BaseModel): +class IBenchmark(PintModel): sector: str region: str projections: List[IBenchmarkProjection] @@ -71,46 +72,46 @@ def __getitem__(self, item): return getattr(self, item) -class IBenchmarks(BaseModel): +class IBenchmarks(PintModel): benchmarks: List[IBenchmark] def __getitem__(self, item): return getattr(self, item) -class IProductionBenchmarkScopes(BaseModel): +class IProductionBenchmarkScopes(PintModel): S1S2: Optional[IBenchmarks] S3: Optional[IBenchmarks] S1S2S3: Optional[IBenchmarks] -class IEmissionIntensityBenchmarkScopes(BaseModel): +class IEmissionIntensityBenchmarkScopes(PintModel): S1S2: Optional[IBenchmarks] S3: Optional[IBenchmarks] S1S2S3: Optional[IBenchmarks] - benchmark_temperature: float - benchmark_global_budget: float + benchmark_temperature: Quantity['degC'] + benchmark_global_budget: Quantity['CO2'] is_AFOLU_included: bool def __getitem__(self, item): return getattr(self, item) -class ICompanyProjection(BaseModel): +class ICompanyProjection(PintModel): year: int - value: Optional[float] + value: Optional[Quantity['CO2']] def __getitem__(self, item): return getattr(self, item) -class ICompanyProjections(BaseModel): +class ICompanyProjections(PintModel): projections: List[ICompanyProjection] def __getitem__(self, item): return getattr(self, item) -class ICompanyProjectionsScopes(BaseModel): +class ICompanyProjectionsScopes(PintModel): S1S2: Optional[ICompanyProjections] S3: Optional[ICompanyProjections] S1S2S3: Optional[ICompanyProjections] @@ -119,17 +120,17 @@ def __getitem__(self, item): return getattr(self, item) -class IProductionRealization(BaseModel): +class IProductionRealization(PintModel): year: int - value: Optional[float] + value: Optional[Quantity['CO2/Wh']] -class IEmissionRealization(BaseModel): +class IEmissionRealization(PintModel): year: int - value: Optional[float] + value: Optional[Quantity['CO2/Wh']] -class IHistoricEmissionsScopes(BaseModel): +class IHistoricEmissionsScopes(PintModel): S1: List[IEmissionRealization] S2: List[IEmissionRealization] S1S2: List[IEmissionRealization] @@ -137,12 +138,12 @@ class IHistoricEmissionsScopes(BaseModel): S1S2S3: List[IEmissionRealization] -class IEIRealization(BaseModel): +class IEIRealization(PintModel): year: int - value: Optional[float] + value: Optional[Quantity['CO2/Wh']] -class IHistoricEIScopes(BaseModel): +class IHistoricEIScopes(PintModel): S1: List[IEIRealization] S2: List[IEIRealization] S1S2: List[IEIRealization] @@ -150,13 +151,13 @@ class IHistoricEIScopes(BaseModel): S1S2S3: List[IEIRealization] -class IHistoricData(BaseModel): +class IHistoricData(PintModel): productions: Optional[List[IProductionRealization]] emissions: Optional[IHistoricEmissionsScopes] emission_intensities: Optional[IHistoricEIScopes] -class ICompanyData(BaseModel): +class ICompanyData(PintModel): company_name: str company_id: str @@ -169,8 +170,8 @@ class ICompanyData(BaseModel): projected_intensities: Optional[ICompanyProjectionsScopes] country: Optional[str] - ghg_s1s2: Optional[float] - ghg_s3: Optional[float] + ghg_s1s2: Optional[Quantity['CO2']] + ghg_s3: Optional[Quantity['CO2']] industry_level_1: Optional[str] industry_level_2: Optional[str] @@ -185,11 +186,11 @@ class ICompanyData(BaseModel): class ICompanyAggregates(ICompanyData): - cumulative_budget: float - cumulative_trajectory: float - cumulative_target: float - benchmark_temperature: float - benchmark_global_budget: float + cumulative_budget: Quantity['CO2'] + cumulative_trajectory: Quantity['CO2'] + cumulative_target: Quantity['CO2'] + benchmark_temperature: Quantity['degC'] + benchmark_global_budget: Quantity['CO2'] class SortableEnum(Enum): @@ -221,14 +222,14 @@ def __lt__(self, other): return NotImplemented -class TemperatureScoreControls(BaseModel): +class TemperatureScoreControls(PintModel): base_year: int target_end_year: int projection_start_year: int projection_end_year: int tcre: float carbon_conversion: float - scenario_target_temperature: float + scenario_target_temperature: Quantity['degC'] def __getitem__(self, item): return getattr(self, item) diff --git a/ITR/temperature_score.py b/ITR/temperature_score.py index f4962979..75b362e9 100644 --- a/ITR/temperature_score.py +++ b/ITR/temperature_score.py @@ -1,8 +1,14 @@ from typing import Optional, Tuple, Type, List +from pint import Quantity import pandas as pd import numpy as np import itertools +import pint +import pint_pandas + +ureg = pint.get_application_registry() +Q_ = ureg.Quantity from ITR.interfaces import EScope, ETimeFrames, Aggregation, AggregationContribution, ScoreAggregation, \ ScoreAggregationScopes, ScoreAggregations, PortfolioCompany @@ -22,7 +28,7 @@ class TemperatureScore(PortfolioAggregation): class and overwriting one of the parameters. """ - def __init__(self, time_frames: List[ETimeFrames], scopes: List[EScope], fallback_score: float = 3.2, + def __init__(self, time_frames: List[ETimeFrames], scopes: List[EScope], fallback_score: float = Q_(3.2, ureg.degC), aggregation_method: PortfolioAggregationMethod = PortfolioAggregationMethod.WATS, grouping: Optional[List] = None, config: Type[TemperatureScoreConfig] = TemperatureScoreConfig): super().__init__(config) diff --git a/ITR/utils.py b/ITR/utils.py index a0b7e3d6..a1705606 100644 --- a/ITR/utils.py +++ b/ITR/utils.py @@ -9,6 +9,12 @@ from .data.data_warehouse import DataWarehouse +from pint import Quantity +import pint +import pint_pandas +ureg = pint.get_application_registry() +Q_ = ureg.Quantity + def _flatten_user_fields(record: PortfolioCompany): """ Flatten the user fields in a portfolio company and return it as a dictionary. @@ -71,7 +77,7 @@ def get_data(data_warehouse: DataWarehouse, portfolio: List[PortfolioCompany]) - return portfolio_data -def calculate(portfolio_data: pd.DataFrame, fallback_score: float, aggregation_method: PortfolioAggregationMethod, +def calculate(portfolio_data: pd.DataFrame, fallback_score: Quantity['degC'], aggregation_method: PortfolioAggregationMethod, grouping: Optional[List[str]], time_frames: List[ETimeFrames], scopes: List[EScope], anonymize: bool, aggregate: bool = True, controls: Optional[TemperatureScoreControls] = None) -> Tuple[pd.DataFrame, diff --git a/examples/quick_temp_score_calculation.ipynb b/examples/quick_temp_score_calculation.ipynb index 0cb10f99..fe98b6be 100644 --- a/examples/quick_temp_score_calculation.ipynb +++ b/examples/quick_temp_score_calculation.ipynb @@ -29,8 +29,61 @@ { "cell_type": "code", "execution_count": 2, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "1 CO2e\n", + "1 CO2e * gigametric_ton\n" + ] + } + ], + "source": [ + "import pint\n", + "import pint_pandas\n", + "import iam_units\n", + "from openscm_units import unit_registry\n", + "pint_pandas.PintType.ureg = unit_registry\n", + "ureg = unit_registry\n", + "pint.set_application_registry(ureg)\n", + "Q_ = ureg.Quantity\n", + "\n", + "ureg.define('fraction = [] = frac')\n", + "ureg.define('percent = 1e-2 frac = pct = percentage')\n", + "ureg.define('ppm = 1e-6 fraction')\n", + "\n", + "ureg.define(\"USD = [currency]\")\n", + "ureg.define(\"EUR = nan USD\")\n", + "ureg.define(\"JPY = nan USD\")\n", + "ureg.define(\"MM_USD = 1000000 USD\")\n", + "ureg.define(\"revenue = USD\")\n", + "\n", + "ureg.define(\"btu = Btu\")\n", + "ureg.define(\"boe = 5.712 GJ\")\n", + "\n", + "ureg.define(\"CO2e = CO2 = CO2eq = CO2_eq\")\n", + "# ureg.define(\"HFC = [ HFC_emissions ]\")\n", + "# ureg.define(\"PFC = [ PFC_emissions ]\")\n", + "# ureg.define(\"mercury = Hg = Mercury\")\n", + "# ureg.define(\"mercure = Hg = Mercury\")\n", + "ureg.define(\"PM10 = [ PM10_emissions ]\")\n", + "\n", + "ureg.define(\"production = [ output ]\")\n", + "\n", + "one_co2 = ureg(\"CO2e\")\n", + "print(one_co2)\n", + "\n", + "one_Gt_co2 = ureg(\"Gt CO2e\")\n", + "print(one_Gt_co2)" + ] + }, + { + "cell_type": "code", + "execution_count": 3, "metadata": { - "scrolled": true + "tags": [] }, "outputs": [], "source": [ @@ -56,7 +109,7 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 4, "metadata": {}, "outputs": [], "source": [ @@ -91,7 +144,7 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 5, "metadata": {}, "outputs": [], "source": [ @@ -110,14 +163,64 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "before df_targets set\n", + "after df_ei set\n", + "company_data = {'company_name': 'Company AG', 'company_id': 'US0079031078', 'isic': None, 'country': 'United States of America', 'region': 'North America', 'industry_level_1': None, 'industry_level_2': None, 'industry_level_3': None, 'industry_level_4': None, 'sector': 'Electricity Utilities', 'ghg_s1s2': 104827858.636039, 'ghg_s3': 104827858.636039, 'company_revenue': 20248547996.8143, 'company_market_cap': 10464805624.2886, 'company_enterprise_value': 20370723452.9736, 'company_total_assets': 814618.205724596, 'company_cash_equivalents': 4528467714.72676, 'target_probability': 0.428571428571428}\n" + ] + } + ], + "source": [ + "excel_company_data = ExcelProviderCompany(excel_path=\"data/test_data_company.xlsx\")" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "here\n" + ] + } + ], + "source": [ + "excel_production_bm = ExcelProviderProductionBenchmark(excel_path=\"data/OECM_EI_and_production_benchmarks.xlsx\")" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "here\n" + ] + } + ], + "source": [ + "excel_EI_bm = ExcelProviderIntensityBenchmark(excel_path=\"data/OECM_EI_and_production_benchmarks.xlsx\",benchmark_temperature=Q_(1.5, ureg.degC),\n", + " benchmark_global_budget=396 * ureg('Gt CO2'), is_AFOLU_included=False)" + ] + }, + { + "cell_type": "code", + "execution_count": 9, "metadata": {}, "outputs": [], "source": [ - "excel_company_data = ExcelProviderCompany(excel_path=\"data/test_data_company.xlsx\")\n", - "excel_production_bm = ExcelProviderProductionBenchmark(excel_path=\"data/OECM_EI_and_production_benchmarks.xlsx\")\n", - "excel_EI_bm = ExcelProviderIntensityBenchmark(excel_path=\"data/OECM_EI_and_production_benchmarks.xlsx\",benchmark_temperature=1.5,\n", - " benchmark_global_budget=396, is_AFOLU_included=False)\n", "excel_provider = DataWarehouse(excel_company_data, excel_production_bm, excel_EI_bm)" ] }, @@ -133,7 +236,7 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 10, "metadata": {}, "outputs": [], "source": [ @@ -142,7 +245,7 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 11, "metadata": {}, "outputs": [ { @@ -221,7 +324,7 @@ "4 Company AK CH0198251305 CH0198251305 10000000" ] }, - "execution_count": 7, + "execution_count": 11, "metadata": {}, "output_type": "execute_result" } @@ -239,7 +342,7 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 12, "metadata": {}, "outputs": [], "source": [ @@ -256,9 +359,57 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 13, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "company_ids = ['US0079031078', 'US00724F1012', 'FR0000125338', 'US17275R1023', 'CH0198251305', 'US1266501006', 'FR0000120644', 'US24703L1035', 'TW0002308004', 'FR0000120321', 'CH0038863350', 'US8356993076', 'JP3401400001', 'US6541061031', 'GB0031274896', 'US6293775085', 'US7134481081', 'JP0000000001', 'NL0000000002', 'IT0000000003', 'SE0000000004', 'SE0000000005', 'NL0000000006', 'CN0000000007', 'CN0000000008', 'CN0000000009', 'BR0000000010', 'BR0000000011', 'BR0000000012', 'AR0000000013']\n", + "\n", + "\n", + "company_data = []\n", + "\n", + "\n", + "df_company_data = Empty DataFrame\n", + "Columns: []\n", + "Index: []\n", + "\n", + "\n" + ] + }, + { + "ename": "KeyError", + "evalue": "'company_id'", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mKeyError\u001b[0m Traceback (most recent call last)", + "\u001b[0;32m/opt/app-root/lib64/python3.8/site-packages/pandas/core/indexes/base.py\u001b[0m in \u001b[0;36mget_loc\u001b[0;34m(self, key, method, tolerance)\u001b[0m\n\u001b[1;32m 3360\u001b[0m \u001b[0;32mtry\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 3361\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_engine\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mget_loc\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mcasted_key\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 3362\u001b[0m \u001b[0;32mexcept\u001b[0m \u001b[0mKeyError\u001b[0m \u001b[0;32mas\u001b[0m \u001b[0merr\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m/opt/app-root/lib64/python3.8/site-packages/pandas/_libs/index.pyx\u001b[0m in \u001b[0;36mpandas._libs.index.IndexEngine.get_loc\u001b[0;34m()\u001b[0m\n", + "\u001b[0;32m/opt/app-root/lib64/python3.8/site-packages/pandas/_libs/index.pyx\u001b[0m in \u001b[0;36mpandas._libs.index.IndexEngine.get_loc\u001b[0;34m()\u001b[0m\n", + "\u001b[0;32mpandas/_libs/hashtable_class_helper.pxi\u001b[0m in \u001b[0;36mpandas._libs.hashtable.PyObjectHashTable.get_item\u001b[0;34m()\u001b[0m\n", + "\u001b[0;32mpandas/_libs/hashtable_class_helper.pxi\u001b[0m in \u001b[0;36mpandas._libs.hashtable.PyObjectHashTable.get_item\u001b[0;34m()\u001b[0m\n", + "\u001b[0;31mKeyError\u001b[0m: 'company_id'", + "\nThe above exception was the direct cause of the following exception:\n", + "\u001b[0;31mKeyError\u001b[0m Traceback (most recent call last)", + "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m\u001b[0m\n\u001b[1;32m 4\u001b[0m \u001b[0maggregation_method\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mPortfolioAggregationMethod\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mWATS\u001b[0m \u001b[0;31m# Options for the aggregation method are WATS, TETS, AOTS, MOTS, EOTS, ECOTS, and ROTS.\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 5\u001b[0m )\n\u001b[0;32m----> 6\u001b[0;31m \u001b[0mamended_portfolio\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mtemperature_score\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcalculate\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mdata_warehouse\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mexcel_provider\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mportfolio\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mcompanies\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", + "\u001b[0;32m~/ITR/ITR/temperature_score.py\u001b[0m in \u001b[0;36mcalculate\u001b[0;34m(self, data, data_warehouse, portfolio)\u001b[0m\n\u001b[1;32m 172\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mdata\u001b[0m \u001b[0;32mis\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 173\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mdata_warehouse\u001b[0m \u001b[0;32mis\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0;32mNone\u001b[0m \u001b[0;32mand\u001b[0m \u001b[0mportfolio\u001b[0m \u001b[0;32mis\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 174\u001b[0;31m \u001b[0mdata\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mutils\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mget_data\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mdata_warehouse\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mportfolio\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 175\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 176\u001b[0m \u001b[0;32mraise\u001b[0m \u001b[0mValueError\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\"You need to pass and either a data set or a datawarehouse and companies\"\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/ITR/ITR/utils.py\u001b[0m in \u001b[0;36mget_data\u001b[0;34m(data_warehouse, portfolio)\u001b[0m\n\u001b[1;32m 66\u001b[0m \u001b[0mdf_portfolio\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mpd\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mDataFrame\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mfrom_records\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0m_flatten_user_fields\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mc\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0mc\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mportfolio\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 67\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 68\u001b[0;31m \u001b[0mcompany_data\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mdata_warehouse\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mget_preprocessed_company_data\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mdf_portfolio\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mColumnsConfig\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mCOMPANY_ID\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mto_list\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 69\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 70\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mlen\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mcompany_data\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;34m==\u001b[0m \u001b[0;36m0\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/ITR/ITR/data/data_warehouse.py\u001b[0m in \u001b[0;36mget_preprocessed_company_data\u001b[0;34m(self, company_ids)\u001b[0m\n\u001b[1;32m 55\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 56\u001b[0m \u001b[0mprint\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34mf\"df_company_data = {df_company_data}\\n\\n\"\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 57\u001b[0;31m \u001b[0;32massert\u001b[0m \u001b[0mpd\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mSeries\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mcompany_ids\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0misin\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mdf_company_data\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mloc\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcolumn_config\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mCOMPANY_ID\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mall\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;31m \u001b[0m\u001b[0;31m\\\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 58\u001b[0m \u001b[0;34m\"some of the company ids are not included in the fundamental data\"\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 59\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m/opt/app-root/lib64/python3.8/site-packages/pandas/core/indexing.py\u001b[0m in \u001b[0;36m__getitem__\u001b[0;34m(self, key)\u001b[0m\n\u001b[1;32m 923\u001b[0m \u001b[0;32mwith\u001b[0m \u001b[0msuppress\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mKeyError\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mIndexError\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 924\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mobj\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_get_value\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0mkey\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mtakeable\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_takeable\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 925\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_getitem_tuple\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mkey\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 926\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 927\u001b[0m \u001b[0;31m# we by definition only have the 0th axis\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m/opt/app-root/lib64/python3.8/site-packages/pandas/core/indexing.py\u001b[0m in \u001b[0;36m_getitem_tuple\u001b[0;34m(self, tup)\u001b[0m\n\u001b[1;32m 1098\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0m_getitem_tuple\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mtup\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0mtuple\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1099\u001b[0m \u001b[0;32mwith\u001b[0m \u001b[0msuppress\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mIndexingError\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1100\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_getitem_lowerdim\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mtup\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 1101\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1102\u001b[0m \u001b[0;31m# no multi-index, so validate all of the indexers\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m/opt/app-root/lib64/python3.8/site-packages/pandas/core/indexing.py\u001b[0m in \u001b[0;36m_getitem_lowerdim\u001b[0;34m(self, tup)\u001b[0m\n\u001b[1;32m 836\u001b[0m \u001b[0;31m# We don't need to check for tuples here because those are\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 837\u001b[0m \u001b[0;31m# caught by the _is_nested_tuple_indexer check above.\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 838\u001b[0;31m \u001b[0msection\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_getitem_axis\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mkey\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0maxis\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mi\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 839\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 840\u001b[0m \u001b[0;31m# We should never have a scalar section here, because\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m/opt/app-root/lib64/python3.8/site-packages/pandas/core/indexing.py\u001b[0m in \u001b[0;36m_getitem_axis\u001b[0;34m(self, key, axis)\u001b[0m\n\u001b[1;32m 1162\u001b[0m \u001b[0;31m# fall thru to straight lookup\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1163\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_validate_key\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mkey\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0maxis\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1164\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_get_label\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mkey\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0maxis\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0maxis\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 1165\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1166\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0m_get_slice_axis\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mslice_obj\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0mslice\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0maxis\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0mint\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m/opt/app-root/lib64/python3.8/site-packages/pandas/core/indexing.py\u001b[0m in \u001b[0;36m_get_label\u001b[0;34m(self, label, axis)\u001b[0m\n\u001b[1;32m 1111\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0m_get_label\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mlabel\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0maxis\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0mint\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1112\u001b[0m \u001b[0;31m# GH#5667 this will fail if the label is not present in the axis.\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1113\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mobj\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mxs\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mlabel\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0maxis\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0maxis\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 1114\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1115\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0m_handle_lowerdim_multi_index_axis0\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mtup\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0mtuple\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m/opt/app-root/lib64/python3.8/site-packages/pandas/core/generic.py\u001b[0m in \u001b[0;36mxs\u001b[0;34m(self, key, axis, level, drop_level)\u001b[0m\n\u001b[1;32m 3759\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0maxis\u001b[0m \u001b[0;34m==\u001b[0m \u001b[0;36m1\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 3760\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mdrop_level\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 3761\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mkey\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 3762\u001b[0m \u001b[0mindex\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcolumns\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 3763\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m/opt/app-root/lib64/python3.8/site-packages/pandas/core/frame.py\u001b[0m in \u001b[0;36m__getitem__\u001b[0;34m(self, key)\u001b[0m\n\u001b[1;32m 3456\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcolumns\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mnlevels\u001b[0m \u001b[0;34m>\u001b[0m \u001b[0;36m1\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 3457\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_getitem_multilevel\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mkey\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 3458\u001b[0;31m \u001b[0mindexer\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcolumns\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mget_loc\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mkey\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 3459\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mis_integer\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mindexer\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 3460\u001b[0m \u001b[0mindexer\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m[\u001b[0m\u001b[0mindexer\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m/opt/app-root/lib64/python3.8/site-packages/pandas/core/indexes/base.py\u001b[0m in \u001b[0;36mget_loc\u001b[0;34m(self, key, method, tolerance)\u001b[0m\n\u001b[1;32m 3361\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_engine\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mget_loc\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mcasted_key\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 3362\u001b[0m \u001b[0;32mexcept\u001b[0m \u001b[0mKeyError\u001b[0m \u001b[0;32mas\u001b[0m \u001b[0merr\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 3363\u001b[0;31m \u001b[0;32mraise\u001b[0m \u001b[0mKeyError\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mkey\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;32mfrom\u001b[0m \u001b[0merr\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 3364\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 3365\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mis_scalar\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mkey\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;32mand\u001b[0m \u001b[0misna\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mkey\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;32mand\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mhasnans\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;31mKeyError\u001b[0m: 'company_id'" + ] + } + ], "source": [ "temperature_score = TemperatureScore( \n", " time_frames = [ETimeFrames.LONG], \n", @@ -277,122 +428,9 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
company_nametime_framescopetemperature_score
0Company AGLONGS1S22.05
1Company AHLONGS1S22.22
2Company AILONGS1S22.06
3Company AJLONGS1S22.01
4Company AKLONGS1S21.93
5Company ALLONGS1S21.78
6Company AMLONGS1S21.71
7Company ANLONGS1S21.34
8Company AOLONGS1S22.21
\n", - "
" - ], - "text/plain": [ - " company_name time_frame scope temperature_score\n", - "0 Company AG LONG S1S2 2.05\n", - "1 Company AH LONG S1S2 2.22\n", - "2 Company AI LONG S1S2 2.06\n", - "3 Company AJ LONG S1S2 2.01\n", - "4 Company AK LONG S1S2 1.93\n", - "5 Company AL LONG S1S2 1.78\n", - "6 Company AM LONG S1S2 1.71\n", - "7 Company AN LONG S1S2 1.34\n", - "8 Company AO LONG S1S2 2.21" - ] - }, - "execution_count": 10, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "amended_portfolio[['company_name', 'time_frame', 'scope', 'temperature_score']].head(9)" ] @@ -407,7 +445,7 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -416,20 +454,9 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "2.242923076923077" - ] - }, - "execution_count": 12, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "aggregated_scores.long.S1S2.all.score" ] @@ -450,7 +477,7 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": null, "metadata": { "scrolled": true }, @@ -478,22 +505,9 @@ }, { "cell_type": "code", - "execution_count": 14, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "analysis_parameters = ([ETimeFrames.LONG], [EScope.S1S2], grouping)\n", "plot_grouped_heatmap(grouped_aggregations, analysis_parameters)" @@ -501,163 +515,9 @@ }, { "cell_type": "code", - "execution_count": 15, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
groupcompany_namecompany_idtemperature_scorecontribution_relative
0Steel-AsiaCompany AWUS71344810813.2011.94
1Steel-AsiaCompany AJP00000000013.2011.94
2Steel-AsiaCompany FNL00000000063.2011.94
3Steel-AsiaCompany ICN00000000093.2011.94
4Steel-AsiaCompany JBR00000000103.2011.94
5Steel-AsiaCompany LBR00000000121.887.02
6Steel-AsiaCompany HCN00000000081.846.87
7Steel-AsiaCompany ESE00000000051.816.76
8Steel-AsiaCompany GCN00000000071.786.64
9Steel-AsiaCompany DSE00000000041.766.57
10Steel-AsiaCompany CIT00000000031.726.42
\n", - "
" - ], - "text/plain": [ - " group company_name company_id temperature_score \\\n", - "0 Steel-Asia Company AW US7134481081 3.20 \n", - "1 Steel-Asia Company A JP0000000001 3.20 \n", - "2 Steel-Asia Company F NL0000000006 3.20 \n", - "3 Steel-Asia Company I CN0000000009 3.20 \n", - "4 Steel-Asia Company J BR0000000010 3.20 \n", - "5 Steel-Asia Company L BR0000000012 1.88 \n", - "6 Steel-Asia Company H CN0000000008 1.84 \n", - "7 Steel-Asia Company E SE0000000005 1.81 \n", - "8 Steel-Asia Company G CN0000000007 1.78 \n", - "9 Steel-Asia Company D SE0000000004 1.76 \n", - "10 Steel-Asia Company C IT0000000003 1.72 \n", - "\n", - " contribution_relative \n", - "0 11.94 \n", - "1 11.94 \n", - "2 11.94 \n", - "3 11.94 \n", - "4 11.94 \n", - "5 7.02 \n", - "6 6.87 \n", - "7 6.76 \n", - "8 6.64 \n", - "9 6.57 \n", - "10 6.42 " - ] - }, - "execution_count": 15, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "region = 'Asia'\n", "sector = 'Steel'\n", @@ -687,7 +547,7 @@ }, { "cell_type": "code", - "execution_count": 16, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -706,22 +566,9 @@ }, { "cell_type": "code", - "execution_count": 17, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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EZFckKcCLPeEn3na1jppG0xEREQkm6lPmIiI5JxoLD6qLedXNqmk6dUXmvW9731v76effrpXXl6ey8vL47777lv8n//8p/MNN9ywpmvXrg0tz2F75557bvT000+vuPzyy9fvzvPFHxVhIiIiKfDyyy93fvHFF/d699135xUWFroVK1YU1NTU2CWXXLLflVdeuW53izDJXNodKSIikgLLli1r17Nnz7rCwkIH0Ldv37pHH320x6pVq9qNGTNm6FFHHTUU4Jlnnuk2cuTIYcOHDz/w1FNP3a+ioiIP4N///nenI4888oARI0YceNxxxw1ZvHhxO5+vR/acijAREZEUOPvsszcuX768fTQaPejiiy8eFI/Hu9x2222rioqKaqdNm7bojTfeWLRixYqCCRMm9J0+ffqiefPmzT/88MO33HnnnZGamhq77rrrBv3lL3/58L333pt/6aWXrrnpppv6+35Nsme0O1JERCQFunfv3jB37tx5L7zwQtdXXnml66WXXjr4Bz/4wdLEaV599dXOH374YcfRo0cPA6itrbVRo0ZtmjNnTof333+/8IQTThgK0NDQQJ8+fWp9vA5pOyrCREREUqSgoIDTTz+98vTTT6885JBDqh555JFeieOdcxx33HEbn3vuuY8Th//vf/8r3H///atmz569ILWJJZlUhOWAaCyeB3QPb3sBHQmu91gN1IR/q4HKskklW33lFEmFaCxuQFegkGBd6BD+7UjQRWMzsAmoANaXTSrRuaWkTbzzzjsd8vLyOPjgg2sA3n777cIBAwZsXbp0afuKioq8vn37Mnbs2M3jx48fNHfu3A4HHXRQTWVlZd7HH3/c7pBDDqlet25dwcsvv9z5xBNP3FxTU2PvvvtuhyOOOKLa9+uS3aciLAtEY/F8IAoc0OS2L9CDYINjrZiVi8bia4BlwCfAR8CHwHvAzLJJJZVtHl4kCcJCazjBmbKj4W3f8O8+BAVXa9RHY/F1QDmwCJifcFtQNqlkS1vmltRp7Skl2tLGjRvzr7vuukEbN27Mz8/Pd9FotOYPf/jD4ocffrjnqaeeOqSoqKj2jTfeWDR58uSyCy64YL+tW7cawO23377skEMOqXn88cc/vO666wZVVlbm19fX27XXXluuIiyz6QLeGSgai3cEioEx4a2Y4Fd9MjUA84A3Em7vqpVA0kE0Ft8LOAo4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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "plot_grouped_statistics(aggregated_portfolio, company_contributions, analysis_parameters)" ] @@ -737,175 +584,9 @@ }, { "cell_type": "code", - "execution_count": 18, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
company_namecompany_idsectorcontributiontemperature_scoreownership_percentageportfolio_percentage
2Company JBR0000000010Steel4.393.200.833.08
3Company ICN0000000009Steel4.393.200.333.08
4Company FNL0000000006Steel4.393.200.113.08
5Company AJP0000000001Steel4.393.201.073.08
6Company AWUS7134481081Steel4.393.200.103.08
7Company MAR0000000013Steel4.393.201.073.08
18Company LBR0000000012Steel2.581.880.153.08
19Company HCN0000000008Steel2.521.840.183.08
20Company ESE0000000005Steel2.481.813.393.08
21Company GCN0000000007Steel2.441.780.053.08
\n", - "
" - ], - "text/plain": [ - " company_name company_id sector contribution temperature_score \\\n", - "2 Company J BR0000000010 Steel 4.39 3.20 \n", - "3 Company I CN0000000009 Steel 4.39 3.20 \n", - "4 Company F NL0000000006 Steel 4.39 3.20 \n", - "5 Company A JP0000000001 Steel 4.39 3.20 \n", - "6 Company AW US7134481081 Steel 4.39 3.20 \n", - "7 Company M AR0000000013 Steel 4.39 3.20 \n", - "18 Company L BR0000000012 Steel 2.58 1.88 \n", - "19 Company H CN0000000008 Steel 2.52 1.84 \n", - "20 Company E SE0000000005 Steel 2.48 1.81 \n", - "21 Company G CN0000000007 Steel 2.44 1.78 \n", - "\n", - " ownership_percentage portfolio_percentage \n", - "2 0.83 3.08 \n", - "3 0.33 3.08 \n", - "4 0.11 3.08 \n", - "5 1.07 3.08 \n", - "6 0.10 3.08 \n", - "7 1.07 3.08 \n", - "18 0.15 3.08 \n", - "19 0.18 3.08 \n", - "20 3.39 3.08 \n", - "21 0.05 3.08 " - ] - }, - "execution_count": 18, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "sector_contributions = company_contributions[['company_name', 'company_id', 'sector', 'contribution', 'temperature_score', 'ownership_percentage', 'portfolio_percentage']]\n", "sector_contributions.loc[sector_contributions['sector'] == 'Steel'][:10].round(2)" @@ -925,7 +606,7 @@ }, { "cell_type": "code", - "execution_count": 19, + "execution_count": null, "metadata": { "pycharm": { "name": "#%%\n" @@ -940,7 +621,7 @@ ], "metadata": { "kernelspec": { - "display_name": "Python 3 (ipykernel)", + "display_name": "Python 3", "language": "python", "name": "python3" }, @@ -954,9 +635,9 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.7.8" + "version": "3.8.3" } }, "nbformat": 4, "nbformat_minor": 4 -} \ No newline at end of file +} From 08bb32f888f76e038af76b85fd9610800671f77b Mon Sep 17 00:00:00 2001 From: MichaelTiemannOSC Date: Tue, 28 Dec 2021 17:44:29 +0000 Subject: [PATCH 039/345] Latest WIP checkpoint We are now to the point where pint is raising questions about way our equations are using their units. We know that the two ratios (target_overshoot_ratio and trajectory_overshoot_ratio) should be dimensionless, but there seems to be some confusion between emissions production and emissions intensity along the way... Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- ITR/configs.py | 4 +- ITR/data/base_providers.py | 18 +- ITR/data/data_warehouse.py | 7 +- ITR/data/excel.py | 26 +- ITR/interfaces.py | 8 +- ITR/temperature_score.py | 27 +- examples/quick_temp_score_calculation.ipynb | 400 +++++++++++++++++--- 7 files changed, 404 insertions(+), 86 deletions(-) diff --git a/ITR/configs.py b/ITR/configs.py index 6d8ae989..c6b4c620 100644 --- a/ITR/configs.py +++ b/ITR/configs.py @@ -99,8 +99,8 @@ class TemperatureScoreConfig(PortfolioAggregationConfig): target_end_year=2050, projection_start_year=2010, projection_end_year=2019, - tcre=2.2, - carbon_conversion=3664.0, + tcre=Q_(2.2, ureg.delta_degC), + carbon_conversion=Q_(3664.0, ureg('Gt CO2')), scenario_target_temperature=Q_(1.5, ureg.degC) ) diff --git a/ITR/data/base_providers.py b/ITR/data/base_providers.py index 11f51e09..a5439306 100644 --- a/ITR/data/base_providers.py +++ b/ITR/data/base_providers.py @@ -1,9 +1,17 @@ import numpy as np import pandas as pd + +import pint +import pint_pandas + +ureg = pint.get_application_registry() +Q_ = ureg.Quantity + from typing import List, Type, Dict from ITR.configs import ColumnsConfig, TemperatureScoreConfig, ProjectionConfig, VariablesConfig from ITR.data.data_providers import CompanyDataProvider, ProductionBenchmarkDataProvider, \ IntensityBenchmarkDataProvider + from ITR.interfaces import ICompanyData, EScope, IProductionBenchmarkScopes, IEmissionIntensityBenchmarkScopes, \ IBenchmark, ICompanyProjections, ICompanyProjectionsScopes, ICompanyProjection, IHistoricEIScopes, \ IHistoricEmissionsScopes, IProductionRealization @@ -49,7 +57,6 @@ def _convert_projections_to_series(self, company: ICompanyData, feature: str, :param scope: a scope :return: pd.Series """ - print("returning Series...") return pd.Series( {r['year']: r['value'] for r in company.dict()[feature][str(scope)]['projections']}, name=company.company_id) @@ -227,7 +234,9 @@ def get_SDA_intensity_benchmarks(self, company_info_at_base_year: pd.DataFrame) :return: A DataFrame with company and SDA intensity benchmarks per calendar year per row """ intensity_benchmarks = self._get_intensity_benchmarks(company_info_at_base_year) + print("before decarb paths") decarbonization_paths = self._get_decarbonizations_paths(intensity_benchmarks) + print("after decarb paths") last_ei = intensity_benchmarks[self.temp_config.CONTROLS_CONFIG.target_end_year] ei_base = company_info_at_base_year[self.column_config.BASE_EI] @@ -246,12 +255,13 @@ def _get_decarbonization(self, intensity_benchmark_row: pd.Series) -> pd.Series: """ Overrides subclass method returns a Series with the decarbonization path for a benchmark. - :param: A Series with company and intensity benchmarks per calendar year per row - :return: A pd.Series with company and decarbonisation path s per calendar year per row + :param: A Series with a company's intensity benchmarks per calendar year per row + :return: A pd.Series with a company's decarbonisation paths per calendar year per row """ first_ei = intensity_benchmark_row[self.temp_config.CONTROLS_CONFIG.base_year] last_ei = intensity_benchmark_row[self.temp_config.CONTROLS_CONFIG.target_end_year] - return intensity_benchmark_row.apply(lambda x: (x - last_ei) / (first_ei - last_ei)) + # This throws a warning when processing a NaN + return intensity_benchmark_row.apply(lambda x: Q_((x - last_ei) / (first_ei - last_ei)), ureg('t CO2/MWh')) def _convert_benchmark_to_series(self, benchmark: IBenchmark) -> pd.Series: """ diff --git a/ITR/data/data_warehouse.py b/ITR/data/data_warehouse.py index de437399..a2cef831 100644 --- a/ITR/data/data_warehouse.py +++ b/ITR/data/data_warehouse.py @@ -48,7 +48,7 @@ def get_preprocessed_company_data(self, company_ids: List[str]) -> List[ICompany :param company_ids: A list of company IDs (ISINs) :return: A list containing the company data and additional precalculated fields """ - print(f"company_ids = {company_ids}\n\n") + # print(f"company_ids = {company_ids}\n\n") company_data = self.company_data.get_company_data(company_ids) df_company_data = pd.DataFrame.from_records([c.dict() for c in company_data])\ .set_index(self.column_config.COMPANY_ID) @@ -56,7 +56,10 @@ def get_preprocessed_company_data(self, company_ids: List[str]) -> List[ICompany missing_ids = [c_id for c_id in company_ids if c_id not in df_company_data.index] assert not missing_ids, f"Company IDs are not included in the fundamental data: {missing_ids}" + print(f"before company_info_at_base_year") company_info_at_base_year = self.company_data.get_company_intensity_and_production_at_base_year(company_ids) + # print(f"after company_info_at_base_year\n\n{company_info_at_base_year}") + # print(f"DW: company_info_at_base_year.loc[] = {company_info_at_base_year.loc['US0185223007']}") projected_production = self.benchmark_projected_production.get_company_projected_production( company_info_at_base_year).sort_index() @@ -64,7 +67,7 @@ def get_preprocessed_company_data(self, company_ids: List[str]) -> List[ICompany projected_emission_intensity=self.company_data.get_company_projected_intensities(company_ids), projected_production=projected_production) - df_company_data.loc[:, self.column_config.CUMULATIVE_TARGET] = self._get_cumulative_emission( + df_new = self._get_cumulative_emission( projected_emission_intensity=self.company_data.get_company_projected_targets(company_ids), projected_production=projected_production) diff --git a/ITR/data/excel.py b/ITR/data/excel.py index 3289c8e5..02330b30 100644 --- a/ITR/data/excel.py +++ b/ITR/data/excel.py @@ -18,6 +18,8 @@ import logging +from ITR.interfaces import ICompanyProjections +import inspect # TODO: Force validation for excel benchmarks @@ -30,7 +32,6 @@ def convert_benchmark_excel_to_model(df_excel: pd.DataFrame, sheetname: str, col :param excal_path: file path to excel :return: IBenchmarks instance (list of IBenchmark) """ - print("here") df_ei_bms = df_excel[sheetname].reset_index().drop(columns=['index']).set_index( [column_name_region, column_name_sector]) result = [] @@ -165,6 +166,7 @@ def _convert_series_to_projections(self, projections: pd.Series, convert_unit: b def _company_df_to_model(self, df_fundamentals: pd.DataFrame, df_targets: pd.DataFrame, df_ei: pd.DataFrame, df_historic: pd.DataFrame) -> List[ICompanyData]: + """ transforms target Dataframe into list of IDataProviderTarget instances @@ -180,6 +182,7 @@ def _company_df_to_model(self, df_fundamentals: pd.DataFrame, df_targets: pd.Dat companies_data_dict = df_fundamentals.to_dict(orient="records") model_companies: List[ICompanyData] = [] for company_data in companies_data_dict: + # company_data is a dict, not a dataframe try: # convert_unit_of_measure = company_data[ColumnsConfig.SECTOR] in self.CORRECTION_SECTORS # company_targets = self._convert_series_to_projections( @@ -188,15 +191,28 @@ def _company_df_to_model(self, df_fundamentals: pd.DataFrame, df_targets: pd.Dat # df_ei.loc[company_data[ColumnsConfig.COMPANY_ID], :], # convert_unit_of_measure) - company_data.update({ColumnsConfig.PROJECTED_TARGETS: {'S1S2': {'projections': df_targets}}}) - company_data.update({ColumnsConfig.PROJECTED_EI: {'S1S2': {'projections': df_ei}}}) + # company_data.update({ColumnsConfig.PROJECTED_TARGETS: {'S1S2': {'projections': df_targets}}}) + # company_data.update({ColumnsConfig.PROJECTED_EI: {'S1S2': {'projections': df_ei}}}) + + company_id = company_data[self.column_config.COMPANY_ID] + # pint automatically handles any unit conversions required + ghg_s1s2 = df_fundamentals[df_fundamentals[self.column_config.COMPANY_ID]==company_id][self.column_config.GHG_SCOPE12].squeeze() + if ghg_s1s2 is None: + ghg_s1s2 = 1 + company_data[self.column_config.GHG_SCOPE12] = Q_(ghg_s1s2, ureg('t CO2')) + ghg_s3 = df_fundamentals[df_fundamentals[self.column_config.COMPANY_ID]==company_id][self.column_config.GHG_SCOPE3].squeeze() + if ghg_s3 is None: + ghg_s3 = 1 + company_data[self.column_config.GHG_SCOPE3] = Q_(ghg_s3, ureg('t CO2')) + company_data[self.column_config.PROJECTED_TARGETS] = {'S1S2': {'projections': self._convert_series_to_projections (df_targets.loc[company_id, :])}} + company_data[self.column_config.PROJECTED_EI] = {'S1S2': {'projections': self._convert_series_to_projections (df_ei.loc[company_id, :])}} if df_historic is not None: company_data[TabsConfig.HISTORIC_DATA] = df_historic.loc[company_data[ColumnsConfig.COMPANY_ID], :] + # The call to parse_obj essentially says "I put it all together manually, please validate that it's correct", + # as opposed to using constructors to build the object validly in the first place. model_companies.append(ICompanyData.parse_obj(company_data)) - print("after model_companies.append") - except ValidationError as e: print(__name__, e) logger.warning( diff --git a/ITR/interfaces.py b/ITR/interfaces.py index ff9b2fb8..21c31bff 100644 --- a/ITR/interfaces.py +++ b/ITR/interfaces.py @@ -105,7 +105,7 @@ def __getitem__(self, item): class ICompanyProjections(PintModel): - projections: List[ICompanyProjection] + projections: Optional[List[ICompanyProjection]] def __getitem__(self, item): return getattr(self, item) @@ -227,15 +227,15 @@ class TemperatureScoreControls(PintModel): target_end_year: int projection_start_year: int projection_end_year: int - tcre: float - carbon_conversion: float + tcre: Quantity['delta_degC'] + carbon_conversion: Quantity['CO2'] scenario_target_temperature: Quantity['degC'] def __getitem__(self, item): return getattr(self, item) @property - def tcre_multiplier(self) -> float: + def tcre_multiplier(self) -> Quantity['delta_degC/CO2']: return self.tcre / self.carbon_conversion diff --git a/ITR/temperature_score.py b/ITR/temperature_score.py index 75b362e9..5f382dc5 100644 --- a/ITR/temperature_score.py +++ b/ITR/temperature_score.py @@ -43,7 +43,7 @@ def __init__(self, time_frames: List[ETimeFrames], scopes: List[EScope], fallbac if grouping is not None: self.grouping = grouping - def get_score(self, scorable_row: pd.Series) -> Tuple[float, float, float, float, float, float]: + def get_score(self, scorable_row: pd.Series) -> Tuple[Quantity['degC'], Quantity['degC'], float, Quantity['degC'], float, float]: """ Get the temperature score for a certain target based on the annual reduction rate and the regression parameters. @@ -63,21 +63,24 @@ def get_score(self, scorable_row: pd.Series) -> Tuple[float, float, float, float target_overshoot_ratio = 0 trajectory_overshoot_ratio = 0 + print(f"scorable_row = {scorable_row}") + print(f"self.c.CONTROLS_CONFIG.tcre_multiplier = {self.c.CONTROLS_CONFIG.tcre_multiplier}") + print(f"target_overshoot_ratio = {target_overshoot_ratio}") target_temperature_score = scorable_row[self.c.COLS.BENCHMARK_TEMP] + \ (scorable_row[self.c.COLS.BENCHMARK_GLOBAL_BUDGET] * ( target_overshoot_ratio - 1.0) * self.c.CONTROLS_CONFIG.tcre_multiplier) trajectory_temperature_score = scorable_row[self.c.COLS.BENCHMARK_TEMP] + \ (scorable_row[self.c.COLS.BENCHMARK_GLOBAL_BUDGET] * ( trajectory_overshoot_ratio - 1.0) * self.c.CONTROLS_CONFIG.tcre_multiplier) - score = target_temperature_score * scorable_row[self.c.COLS.TARGET_PROBABILITY] + \ - trajectory_temperature_score * (1 - scorable_row[self.c.COLS.TARGET_PROBABILITY]) + score = Q_(target_temperature_score.m * scorable_row[self.c.COLS.TARGET_PROBABILITY] + \ + trajectory_temperature_score.m * (1 - scorable_row[self.c.COLS.TARGET_PROBABILITY]), target_temperature_score.u) # Safeguard: If score is NaN due to missing data assign default score. if np.isnan(score): return self.get_default_score(scorable_row), 1 return score, trajectory_temperature_score, trajectory_overshoot_ratio, target_temperature_score, target_overshoot_ratio, 0 - def get_ghc_temperature_score(self, row: pd.Series, company_data: pd.DataFrame) -> Tuple[float, float]: + def get_ghc_temperature_score(self, row: pd.Series, company_data: pd.DataFrame) -> Tuple[Quantity['degC'], Quantity['degC']]: """ Get the aggregated temperature score and a temperature result, which indicates how much of the score is based on the default score for a certain company based on the emissions of company. @@ -96,15 +99,17 @@ def get_ghc_temperature_score(self, row: pd.Series, company_data: pd.DataFrame) return s1s2[self.c.COLS.TEMPERATURE_SCORE], s1s2[self.c.TEMPERATURE_RESULTS] else: company_emissions = s1s2[self.c.COLS.GHG_SCOPE12] + s3[self.c.COLS.GHG_SCOPE3] - return ((s1s2[self.c.COLS.TEMPERATURE_SCORE] * s1s2[self.c.COLS.GHG_SCOPE12] + - s3[self.c.COLS.TEMPERATURE_SCORE] * s3[self.c.COLS.GHG_SCOPE3]) / company_emissions, - (s1s2[self.c.TEMPERATURE_RESULTS] * s1s2[self.c.COLS.GHG_SCOPE12] + - s3[self.c.TEMPERATURE_RESULTS] * s3[self.c.COLS.GHG_SCOPE3]) / company_emissions) + return (Q_((s1s2[self.c.COLS.TEMPERATURE_SCORE].m * s1s2[self.c.COLS.GHG_SCOPE12] + + s3[self.c.COLS.TEMPERATURE_SCORE].m * s3[self.c.COLS.GHG_SCOPE3]) / company_emissions, + s1s2[self.c.COLS.TEMPERATURE_SCORE].u), + Q_((s1s2[self.c.TEMPERATURE_RESULTS].m * s1s2[self.c.COLS.GHG_SCOPE12] + + s3[self.c.TEMPERATURE_RESULTS].m * s3[self.c.COLS.GHG_SCOPE3]) / company_emissions, + s1s2[self.c.TEMPERATURE_RESULTS].u)) except ZeroDivisionError: raise ValueError("The mean of the S1+S2 plus the S3 emissions is zero") - def get_default_score(self, target: pd.Series) -> float: + def get_default_score(self, target: pd.Series) -> Quantity['degC']: """ :param target: The target as a row of a dataframe :return: The temperature score @@ -130,7 +135,9 @@ def _prepare_data(self, data: pd.DataFrame): score_combinations = pd.DataFrame(list(itertools.product(*[companies, scopes, self.time_frames])), columns=[self.c.COLS.COMPANY_ID, self.c.COLS.SCOPE, self.c.COLS.TIME_FRAME]) scoring_data = pd.merge(left=data, right=score_combinations, how='outer', on=[self.c.COLS.COMPANY_ID]) - + print(scoring_data.columns) + print(scoring_data.dtypes) + print(scoring_data.iloc[0:5]) scoring_data[self.c.COLS.TEMPERATURE_SCORE], scoring_data[self.c.COLS.TRAJECTORY_SCORE], scoring_data[ self.c.COLS.TRAJECTORY_OVERSHOOT], scoring_data[self.c.COLS.TARGET_SCORE], scoring_data[ self.c.COLS.TARGET_OVERSHOOT], scoring_data[self.c.TEMPERATURE_RESULTS] = zip(*scoring_data.apply( diff --git a/examples/quick_temp_score_calculation.ipynb b/examples/quick_temp_score_calculation.ipynb index fe98b6be..8dd08487 100644 --- a/examples/quick_temp_score_calculation.ipynb +++ b/examples/quick_temp_score_calculation.ipynb @@ -164,18 +164,10 @@ { "cell_type": "code", "execution_count": 6, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "before df_targets set\n", - "after df_ei set\n", - "company_data = {'company_name': 'Company AG', 'company_id': 'US0079031078', 'isic': None, 'country': 'United States of America', 'region': 'North America', 'industry_level_1': None, 'industry_level_2': None, 'industry_level_3': None, 'industry_level_4': None, 'sector': 'Electricity Utilities', 'ghg_s1s2': 104827858.636039, 'ghg_s3': 104827858.636039, 'company_revenue': 20248547996.8143, 'company_market_cap': 10464805624.2886, 'company_enterprise_value': 20370723452.9736, 'company_total_assets': 814618.205724596, 'company_cash_equivalents': 4528467714.72676, 'target_probability': 0.428571428571428}\n" - ] - } - ], + "metadata": { + "tags": [] + }, + "outputs": [], "source": [ "excel_company_data = ExcelProviderCompany(excel_path=\"data/test_data_company.xlsx\")" ] @@ -184,15 +176,7 @@ "cell_type": "code", "execution_count": 7, "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "here\n" - ] - } - ], + "outputs": [], "source": [ "excel_production_bm = ExcelProviderProductionBenchmark(excel_path=\"data/OECM_EI_and_production_benchmarks.xlsx\")" ] @@ -201,15 +185,7 @@ "cell_type": "code", "execution_count": 8, "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "here\n" - ] - } - ], + "outputs": [], "source": [ "excel_EI_bm = ExcelProviderIntensityBenchmark(excel_path=\"data/OECM_EI_and_production_benchmarks.xlsx\",benchmark_temperature=Q_(1.5, ureg.degC),\n", " benchmark_global_budget=396 * ureg('Gt CO2'), is_AFOLU_included=False)" @@ -366,47 +342,353 @@ "name": "stdout", "output_type": "stream", "text": [ - "company_ids = ['US0079031078', 'US00724F1012', 'FR0000125338', 'US17275R1023', 'CH0198251305', 'US1266501006', 'FR0000120644', 'US24703L1035', 'TW0002308004', 'FR0000120321', 'CH0038863350', 'US8356993076', 'JP3401400001', 'US6541061031', 'GB0031274896', 'US6293775085', 'US7134481081', 'JP0000000001', 'NL0000000002', 'IT0000000003', 'SE0000000004', 'SE0000000005', 'NL0000000006', 'CN0000000007', 'CN0000000008', 'CN0000000009', 'BR0000000010', 'BR0000000011', 'BR0000000012', 'AR0000000013']\n", + "before company_info_at_base_year\n", + "projected_production = 2019 \\\n", + "AR0000000013 1.0 CO2 * metric_ton \n", + "BR0000000010 11847001.9224849 CO2 * metric_ton \n", + "BR0000000011 14618000.0778486 CO2 * metric_ton \n", + "BR0000000012 27110004.3464472 CO2 * metric_ton \n", + "CH0038863350 73011601.1549344 CO2 * metric_ton \n", + "\n", + " 2020 \\\n", + "AR0000000013 1.015 CO2 * metric_ton \n", + "BR0000000010 12024706.951322174 CO2 * metric_ton \n", + "BR0000000011 14837270.079016328 CO2 * metric_ton \n", + "BR0000000012 27516654.411643904 CO2 * metric_ton \n", + "CH0038863350 67433621.07659335 CO2 * metric_ton \n", + "\n", + " 2021 \\\n", + "AR0000000013 1.0302249999999997 CO2 * metric_ton \n", + "BR0000000010 12205077.555592004 CO2 * metric_ton \n", + "BR0000000011 15059829.13020157 CO2 * metric_ton \n", + "BR0000000012 27929404.22781856 CO2 * metric_ton \n", + "CH0038863350 71476830.37892087 CO2 * metric_ton \n", + "\n", + " 2022 \\\n", + "AR0000000013 1.0456783749999996 CO2 * metric_ton \n", + "BR0000000010 12388153.718925882 CO2 * metric_ton \n", + "BR0000000011 15285726.567154592 CO2 * metric_ton \n", + "BR0000000012 28348345.291235834 CO2 * metric_ton \n", + "CH0038863350 75762463.87857659 CO2 * metric_ton \n", + "\n", + " 2023 \n", + "AR0000000013 1.0613635506249994 CO2 * metric_ton \n", + "BR0000000010 12573976.024709769 CO2 * metric_ton \n", + "BR0000000011 15515012.465661908 CO2 * metric_ton \n", + "BR0000000012 28773570.470604368 CO2 * metric_ton \n", + "CH0038863350 80305056.93276212 CO2 * metric_ton \n", + "production_sum = 2019 6376079873.31004 CO2 * metric_ton\n", + "2020 5917434641.831634 CO2 * metric_ton\n", + "2021 6142945948.865509 CO2 * metric_ton\n", + "2022 6379004260.048121 CO2 * metric_ton\n", + "2023 6626171651.186672 CO2 * metric_ton\n", + "dtype: object\n", + "production_weights = 2019 \\\n", + "AR0000000013 1.5683617832109526e-10 dimensionless \n", + "BR0000000010 0.0018580385060852002 dimensionless \n", + "BR0000000011 0.0022926312669072474 dimensionless \n", + "BR0000000012 0.00425182947596506 dimensionless \n", + "CH0038863350 0.011450860498243978 dimensionless \n", + "\n", + " 2020 \\\n", + "AR0000000013 1.7152703180272478e-10 dimensionless \n", + "BR0000000010 0.0020320810755250092 dimensionless \n", + "BR0000000011 0.00250738216424537 dimensionless \n", + "BR0000000012 0.004650098577705056 dimensionless \n", + "CH0038863350 0.011395752578303173 dimensionless \n", + "\n", + " 2021 \\\n", + "AR0000000013 1.6770862198295326e-10 dimensionless \n", + "BR0000000010 0.0019868443670493408 dimensionless \n", + "BR0000000011 0.0024515646492026923 dimensionless \n", + "BR0000000012 0.0045465814708945335 dimensionless \n", + "CH0038863350 0.011635594871565059 dimensionless \n", + "\n", + " 2022 \\\n", + "AR0000000013 1.6392501593847678e-10 dimensionless \n", + "BR0000000010 0.0019420199789665024 dimensionless \n", + "BR0000000011 0.0023962558957499867 dimensionless \n", + "BR0000000012 0.004444007894583532 dimensionless \n", + "CH0038863350 0.011876847982855095 dimensionless \n", + "\n", + " 2023 \n", + "AR0000000013 1.6017749109094105e-10 dimensionless \n", + "BR0000000010 0.0018976230448931868 dimensionless \n", + "BR0000000011 0.0023414745772369697 dimensionless \n", + "BR0000000012 0.00434241247967842 dimensionless \n", + "CH0038863350 0.012119374679703686 dimensionless \n", + "df_target = company_id cumulative_target\n", + "0 AR0000000013 nan CO2 * megametric_ton\n", + "1 BR0000000010 nan CO2 * megametric_ton\n", + "2 BR0000000011 0.035267977886912605 CO2 * megametric_ton\n", + "3 BR0000000012 0.22393182906271158 CO2 * megametric_ton\n", + "4 CH0038863350 0.07591311170696782 CO2 * megametric_ton\n", + "5 CH0198251305 0.15027676352024827 CO2 * megametric_ton\n", + "6 CN0000000007 0.3168473318218108 CO2 * megametric_ton\n", + "7 CN0000000008 0.11365125294778876 CO2 * megametric_ton\n", + "8 CN0000000009 nan CO2 * megametric_ton\n", + "9 FR0000120321 1.0615267598468603 CO2 * megametric_ton\n", + "10 FR0000120644 0.020537128998060077 CO2 * megametric_ton\n", + "11 FR0000125338 0.012552944496918565 CO2 * megametric_ton\n", + "12 GB0031274896 0.11298548827221226 CO2 * megametric_ton\n", + "13 IT0000000003 0.06393108123568635 CO2 * megametric_ton\n", + "14 JP0000000001 nan CO2 * megametric_ton\n", + "15 JP3401400001 0.05418356019585116 CO2 * megametric_ton\n", + "16 NL0000000002 0.009487105123077844 CO2 * megametric_ton\n", + "17 NL0000000006 nan CO2 * megametric_ton\n", + "18 SE0000000004 0.16557735475841284 CO2 * megametric_ton\n", + "19 SE0000000005 0.14719124143952145 CO2 * megametric_ton\n", + "20 TW0002308004 0.020406681941566005 CO2 * megametric_ton\n", + "21 US00724F1012 0.19245497637163447 CO2 * megametric_ton\n", + "22 US0079031078 0.11795568506761583 CO2 * megametric_ton\n", + "23 US1266501006 0.015781214336452166 CO2 * megametric_ton\n", + "24 US17275R1023 0.004751406363831042 CO2 * megametric_ton\n", + "25 US24703L1035 0.00484369687909756 CO2 * megametric_ton\n", + "26 US6293775085 0.439111590966201 CO2 * megametric_ton\n", + "27 US6541061031 0.20509224198641904 CO2 * megametric_ton\n", + "28 US7134481081 nan CO2 * megametric_ton\n", + "29 US8356993076 nan CO2 * megametric_ton\n", + "\n", + "\n", + "before CUMULATIVE_BUDGET\n", + "before decarb paths\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/opt/app-root/lib64/python3.8/site-packages/pandas/core/dtypes/cast.py:1990: UnitStrippedWarning: The unit of the quantity is stripped when downcasting to ndarray.\n", + " result[:] = values\n", + "/opt/app-root/lib64/python3.8/site-packages/pandas/core/dtypes/cast.py:1990: UnitStrippedWarning: The unit of the quantity is stripped when downcasting to ndarray.\n", + " result[:] = values\n", + "/opt/app-root/lib64/python3.8/site-packages/pandas/core/dtypes/cast.py:1990: UnitStrippedWarning: The unit of the quantity is stripped when downcasting to ndarray.\n", + " result[:] = values\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "after decarb paths\n", + "Index(['company_name', 'company_id', 'region', 'sector', 'target_probability',\n", + " 'projected_targets', 'projected_intensities', 'country', 'ghg_s1s2',\n", + " 'ghg_s3', 'industry_level_1', 'industry_level_2', 'industry_level_3',\n", + " 'industry_level_4', 'company_revenue', 'company_market_cap',\n", + " 'company_enterprise_value', 'company_total_assets',\n", + " 'company_cash_equivalents', 'cumulative_budget',\n", + " 'cumulative_trajectory', 'cumulative_target', 'benchmark_temperature',\n", + " 'benchmark_global_budget', 'company_isin', 'investment_value', 'scope',\n", + " 'time_frame'],\n", + " dtype='object')\n", + "company_name object\n", + "company_id object\n", + "region object\n", + "sector object\n", + "target_probability float64\n", + "projected_targets object\n", + "projected_intensities object\n", + "country object\n", + "ghg_s1s2 object\n", + "ghg_s3 object\n", + "industry_level_1 object\n", + "industry_level_2 object\n", + "industry_level_3 object\n", + "industry_level_4 object\n", + "company_revenue float64\n", + "company_market_cap float64\n", + "company_enterprise_value float64\n", + "company_total_assets float64\n", + "company_cash_equivalents float64\n", + "cumulative_budget object\n", + "cumulative_trajectory object\n", + "cumulative_target object\n", + "benchmark_temperature object\n", + "benchmark_global_budget object\n", + "company_isin object\n", + "investment_value float64\n", + "scope object\n", + "time_frame object\n", + "dtype: object\n", + " company_name company_id region sector \\\n", + "0 Company M AR0000000013 Europe Steel \n", + "1 Company J BR0000000010 Asia Steel \n", + "2 Company K BR0000000011 Europe Steel \n", + "3 Company L BR0000000012 Asia Steel \n", + "4 Company AQ CH0038863350 Asia Electricity Utilities \n", + "\n", + " target_probability projected_targets \\\n", + "0 0.428571 {'S1S2': {'projections': [{'year': 2019, 'valu... \n", + "1 0.428571 {'S1S2': {'projections': [{'year': 2019, 'valu... \n", + "2 0.428571 {'S1S2': {'projections': [{'year': 2019, 'valu... \n", + "3 0.428571 {'S1S2': {'projections': [{'year': 2019, 'valu... \n", + "4 0.428571 {'S1S2': {'projections': [{'year': 2019, 'valu... \n", + "\n", + " projected_intensities country \\\n", + "0 {'S1S2': {'projections': [{'year': 2019, 'valu... Germany \n", + "1 {'S1S2': {'projections': [{'year': 2019, 'valu... Russia \n", + "2 {'S1S2': {'projections': [{'year': 2019, 'valu... Sweden \n", + "3 {'S1S2': {'projections': [{'year': 2019, 'valu... India \n", + "4 {'S1S2': {'projections': [{'year': 2019, 'valu... Australia \n", + "\n", + " ghg_s1s2 ghg_s3 ... \\\n", + "0 1 CO2 * metric_ton 1 CO2 * metric_ton ... \n", + "1 11847001.9224849 CO2 * metric_ton 11847001.9224849 CO2 * metric_ton ... \n", + "2 14618000.0778486 CO2 * metric_ton 14618000.0778486 CO2 * metric_ton ... \n", + "3 27110004.3464472 CO2 * metric_ton 27110004.3464472 CO2 * metric_ton ... \n", + "4 73011601.1549344 CO2 * metric_ton 73011601.1549344 CO2 * metric_ton ... \n", + "\n", + " company_cash_equivalents cumulative_budget \\\n", + "0 2.597399e+08 nan CO2 * metric_ton / megawatt_hour \n", + "1 4.086329e+08 nan CO2 * metric_ton / megawatt_hour \n", + "2 2.233573e+08 0.02492409347626564 CO2 * metric_ton / megawat... \n", + "3 1.279584e+09 0.12043289849295982 CO2 * metric_ton / megawat... \n", + "4 5.055193e+08 0.025031746155189858 CO2 * metric_ton / megawa... \n", "\n", + " cumulative_trajectory \\\n", + "0 nan CO2 * metric_ton / megawatt_hour \n", + "1 nan CO2 * metric_ton / megawatt_hour \n", + "2 0.042864648985326034 CO2 * metric_ton / megawa... \n", + "3 0.22393182906271158 CO2 * metric_ton / megawat... \n", + "4 0.0989743755671423 CO2 * metric_ton / megawatt... \n", "\n", - "company_data = []\n", + " cumulative_target benchmark_temperature \\\n", + "0 nan CO2 * megametric_ton 1.5 degree_Celsius \n", + "1 nan CO2 * megametric_ton 1.5 degree_Celsius \n", + "2 0.035267977886912605 CO2 * megametric_ton 1.5 degree_Celsius \n", + "3 0.22393182906271158 CO2 * megametric_ton 1.5 degree_Celsius \n", + "4 0.07591311170696782 CO2 * megametric_ton 1.5 degree_Celsius \n", "\n", + " benchmark_global_budget company_isin investment_value scope \\\n", + "0 521.0526315789474 CO2 * metric_ton AR0000000013 10000000.0 S1S2 \n", + "1 521.0526315789474 CO2 * metric_ton BR0000000010 10000000.0 S1S2 \n", + "2 521.0526315789474 CO2 * metric_ton BR0000000011 10000000.0 S1S2 \n", + "3 521.0526315789474 CO2 * metric_ton BR0000000012 10000000.0 S1S2 \n", + "4 521.0526315789474 CO2 * metric_ton CH0038863350 10000000.0 S1S2 \n", "\n", - "df_company_data = Empty DataFrame\n", - "Columns: []\n", - "Index: []\n", + " time_frame \n", + "0 LONG \n", + "1 LONG \n", + "2 LONG \n", + "3 LONG \n", + "4 LONG \n", "\n", - "\n" + "[5 rows x 28 columns]\n", + "scorable_row = company_name Company M\n", + "company_id AR0000000013\n", + "region Europe\n", + "sector Steel\n", + "target_probability 0.428571\n", + "projected_targets {'S1S2': {'projections': [{'year': 2019, 'valu...\n", + "projected_intensities {'S1S2': {'projections': [{'year': 2019, 'valu...\n", + "country Germany\n", + "ghg_s1s2 1 CO2 * metric_ton\n", + "ghg_s3 1 CO2 * metric_ton\n", + "industry_level_1 None\n", + "industry_level_2 None\n", + "industry_level_3 None\n", + "industry_level_4 None\n", + "company_revenue 9338027130.327995\n", + "company_market_cap 933460072.78718\n", + "company_enterprise_value 2521235187.169247\n", + "company_total_assets 18868083.741258\n", + "company_cash_equivalents 259739897.261901\n", + "cumulative_budget nan CO2 * metric_ton / megawatt_hour\n", + "cumulative_trajectory nan CO2 * metric_ton / megawatt_hour\n", + "cumulative_target nan CO2 * megametric_ton\n", + "benchmark_temperature 1.5 degree_Celsius\n", + "benchmark_global_budget 521.0526315789474 CO2 * metric_ton\n", + "company_isin AR0000000013\n", + "investment_value 10000000.0\n", + "scope S1S2\n", + "time_frame LONG\n", + "Name: 0, dtype: object\n", + "self.c.CONTROLS_CONFIG.tcre_multiplier = 0.0006004366812227075 delta_degree_Celsius / CO2 / gigametric_ton\n", + "target_overshoot_ratio = 0\n", + "scorable_row = company_name Company J\n", + "company_id BR0000000010\n", + "region Asia\n", + "sector Steel\n", + "target_probability 0.428571\n", + "projected_targets {'S1S2': {'projections': [{'year': 2019, 'valu...\n", + "projected_intensities {'S1S2': {'projections': [{'year': 2019, 'valu...\n", + "country Russia\n", + "ghg_s1s2 11847001.9224849 CO2 * metric_ton\n", + "ghg_s3 11847001.9224849 CO2 * metric_ton\n", + "industry_level_1 None\n", + "industry_level_2 None\n", + "industry_level_3 None\n", + "industry_level_4 None\n", + "company_revenue 1955329090.52114\n", + "company_market_cap 1202043687.03022\n", + "company_enterprise_value 4172635345.018464\n", + "company_total_assets 22152151.290723\n", + "company_cash_equivalents 408632883.321407\n", + "cumulative_budget nan CO2 * metric_ton / megawatt_hour\n", + "cumulative_trajectory nan CO2 * metric_ton / megawatt_hour\n", + "cumulative_target nan CO2 * megametric_ton\n", + "benchmark_temperature 1.5 degree_Celsius\n", + "benchmark_global_budget 521.0526315789474 CO2 * metric_ton\n", + "company_isin BR0000000010\n", + "investment_value 10000000.0\n", + "scope S1S2\n", + "time_frame LONG\n", + "Name: 1, dtype: object\n", + "self.c.CONTROLS_CONFIG.tcre_multiplier = 0.0006004366812227075 delta_degree_Celsius / CO2 / gigametric_ton\n", + "target_overshoot_ratio = 0\n", + "scorable_row = company_name Company K\n", + "company_id BR0000000011\n", + "region Europe\n", + "sector Steel\n", + "target_probability 0.428571\n", + "projected_targets {'S1S2': {'projections': [{'year': 2019, 'valu...\n", + "projected_intensities {'S1S2': {'projections': [{'year': 2019, 'valu...\n", + "country Sweden\n", + "ghg_s1s2 14618000.0778486 CO2 * metric_ton\n", + "ghg_s3 14618000.0778486 CO2 * metric_ton\n", + "industry_level_1 None\n", + "industry_level_2 None\n", + "industry_level_3 None\n", + "industry_level_4 None\n", + "company_revenue 679399572.3481\n", + "company_market_cap 989091472.70855\n", + "company_enterprise_value 1824699389.596552\n", + "company_total_assets 12700301.946415\n", + "company_cash_equivalents 223357269.549214\n", + "cumulative_budget 0.02492409347626564 CO2 * metric_ton / megawat...\n", + "cumulative_trajectory 0.042864648985326034 CO2 * metric_ton / megawa...\n", + "cumulative_target 0.035267977886912605 CO2 * megametric_ton\n", + "benchmark_temperature 1.5 degree_Celsius\n", + "benchmark_global_budget 521.0526315789474 CO2 * metric_ton\n", + "company_isin BR0000000011\n", + "investment_value 10000000.0\n", + "scope S1S2\n", + "time_frame LONG\n", + "Name: 2, dtype: object\n", + "self.c.CONTROLS_CONFIG.tcre_multiplier = 0.0006004366812227075 delta_degree_Celsius / CO2 / gigametric_ton\n", + "target_overshoot_ratio = 1.4150154716959753 megametric_ton * megawatt_hour / metric_ton\n" ] }, { - "ename": "KeyError", - "evalue": "'company_id'", + "ename": "DimensionalityError", + "evalue": "Cannot convert from 'megametric_ton * megawatt_hour / metric_ton' to 'dimensionless'", "output_type": "error", "traceback": [ "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[0;31mKeyError\u001b[0m Traceback (most recent call last)", - "\u001b[0;32m/opt/app-root/lib64/python3.8/site-packages/pandas/core/indexes/base.py\u001b[0m in \u001b[0;36mget_loc\u001b[0;34m(self, key, method, tolerance)\u001b[0m\n\u001b[1;32m 3360\u001b[0m \u001b[0;32mtry\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 3361\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_engine\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mget_loc\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mcasted_key\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 3362\u001b[0m \u001b[0;32mexcept\u001b[0m \u001b[0mKeyError\u001b[0m \u001b[0;32mas\u001b[0m \u001b[0merr\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m/opt/app-root/lib64/python3.8/site-packages/pandas/_libs/index.pyx\u001b[0m in \u001b[0;36mpandas._libs.index.IndexEngine.get_loc\u001b[0;34m()\u001b[0m\n", - "\u001b[0;32m/opt/app-root/lib64/python3.8/site-packages/pandas/_libs/index.pyx\u001b[0m in \u001b[0;36mpandas._libs.index.IndexEngine.get_loc\u001b[0;34m()\u001b[0m\n", - "\u001b[0;32mpandas/_libs/hashtable_class_helper.pxi\u001b[0m in \u001b[0;36mpandas._libs.hashtable.PyObjectHashTable.get_item\u001b[0;34m()\u001b[0m\n", - "\u001b[0;32mpandas/_libs/hashtable_class_helper.pxi\u001b[0m in \u001b[0;36mpandas._libs.hashtable.PyObjectHashTable.get_item\u001b[0;34m()\u001b[0m\n", - "\u001b[0;31mKeyError\u001b[0m: 'company_id'", - "\nThe above exception was the direct cause of the following exception:\n", - "\u001b[0;31mKeyError\u001b[0m Traceback (most recent call last)", + "\u001b[0;31mDimensionalityError\u001b[0m Traceback (most recent call last)", "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m\u001b[0m\n\u001b[1;32m 4\u001b[0m \u001b[0maggregation_method\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mPortfolioAggregationMethod\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mWATS\u001b[0m \u001b[0;31m# Options for the aggregation method are WATS, TETS, AOTS, MOTS, EOTS, ECOTS, and ROTS.\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 5\u001b[0m )\n\u001b[0;32m----> 6\u001b[0;31m \u001b[0mamended_portfolio\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mtemperature_score\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcalculate\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mdata_warehouse\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mexcel_provider\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mportfolio\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mcompanies\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", - "\u001b[0;32m~/ITR/ITR/temperature_score.py\u001b[0m in \u001b[0;36mcalculate\u001b[0;34m(self, data, data_warehouse, portfolio)\u001b[0m\n\u001b[1;32m 172\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mdata\u001b[0m \u001b[0;32mis\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 173\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mdata_warehouse\u001b[0m \u001b[0;32mis\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0;32mNone\u001b[0m \u001b[0;32mand\u001b[0m \u001b[0mportfolio\u001b[0m \u001b[0;32mis\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 174\u001b[0;31m \u001b[0mdata\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mutils\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mget_data\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mdata_warehouse\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mportfolio\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 175\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 176\u001b[0m \u001b[0;32mraise\u001b[0m \u001b[0mValueError\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\"You need to pass and either a data set or a datawarehouse and companies\"\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m~/ITR/ITR/utils.py\u001b[0m in \u001b[0;36mget_data\u001b[0;34m(data_warehouse, portfolio)\u001b[0m\n\u001b[1;32m 66\u001b[0m \u001b[0mdf_portfolio\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mpd\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mDataFrame\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mfrom_records\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0m_flatten_user_fields\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mc\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0mc\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mportfolio\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 67\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 68\u001b[0;31m \u001b[0mcompany_data\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mdata_warehouse\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mget_preprocessed_company_data\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mdf_portfolio\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mColumnsConfig\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mCOMPANY_ID\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mto_list\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 69\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 70\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mlen\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mcompany_data\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;34m==\u001b[0m \u001b[0;36m0\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m~/ITR/ITR/data/data_warehouse.py\u001b[0m in \u001b[0;36mget_preprocessed_company_data\u001b[0;34m(self, company_ids)\u001b[0m\n\u001b[1;32m 55\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 56\u001b[0m \u001b[0mprint\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34mf\"df_company_data = {df_company_data}\\n\\n\"\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 57\u001b[0;31m \u001b[0;32massert\u001b[0m \u001b[0mpd\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mSeries\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mcompany_ids\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0misin\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mdf_company_data\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mloc\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcolumn_config\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mCOMPANY_ID\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mall\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;31m \u001b[0m\u001b[0;31m\\\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 58\u001b[0m \u001b[0;34m\"some of the company ids are not included in the fundamental data\"\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 59\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m/opt/app-root/lib64/python3.8/site-packages/pandas/core/indexing.py\u001b[0m in \u001b[0;36m__getitem__\u001b[0;34m(self, key)\u001b[0m\n\u001b[1;32m 923\u001b[0m \u001b[0;32mwith\u001b[0m \u001b[0msuppress\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mKeyError\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mIndexError\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 924\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mobj\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_get_value\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0mkey\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mtakeable\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_takeable\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 925\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_getitem_tuple\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mkey\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 926\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 927\u001b[0m \u001b[0;31m# we by definition only have the 0th axis\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m/opt/app-root/lib64/python3.8/site-packages/pandas/core/indexing.py\u001b[0m in \u001b[0;36m_getitem_tuple\u001b[0;34m(self, tup)\u001b[0m\n\u001b[1;32m 1098\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0m_getitem_tuple\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mtup\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0mtuple\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1099\u001b[0m \u001b[0;32mwith\u001b[0m \u001b[0msuppress\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mIndexingError\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1100\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_getitem_lowerdim\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mtup\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 1101\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1102\u001b[0m \u001b[0;31m# no multi-index, so validate all of the indexers\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m/opt/app-root/lib64/python3.8/site-packages/pandas/core/indexing.py\u001b[0m in \u001b[0;36m_getitem_lowerdim\u001b[0;34m(self, tup)\u001b[0m\n\u001b[1;32m 836\u001b[0m \u001b[0;31m# We don't need to check for tuples here because those are\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 837\u001b[0m \u001b[0;31m# caught by the _is_nested_tuple_indexer check above.\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 838\u001b[0;31m \u001b[0msection\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_getitem_axis\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mkey\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0maxis\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mi\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 839\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 840\u001b[0m \u001b[0;31m# We should never have a scalar section here, because\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m/opt/app-root/lib64/python3.8/site-packages/pandas/core/indexing.py\u001b[0m in \u001b[0;36m_getitem_axis\u001b[0;34m(self, key, axis)\u001b[0m\n\u001b[1;32m 1162\u001b[0m \u001b[0;31m# fall thru to straight lookup\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1163\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_validate_key\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mkey\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0maxis\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1164\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_get_label\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mkey\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0maxis\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0maxis\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 1165\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1166\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0m_get_slice_axis\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mslice_obj\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0mslice\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0maxis\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0mint\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m/opt/app-root/lib64/python3.8/site-packages/pandas/core/indexing.py\u001b[0m in \u001b[0;36m_get_label\u001b[0;34m(self, label, axis)\u001b[0m\n\u001b[1;32m 1111\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0m_get_label\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mlabel\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0maxis\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0mint\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1112\u001b[0m \u001b[0;31m# GH#5667 this will fail if the label is not present in the axis.\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1113\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mobj\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mxs\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mlabel\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0maxis\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0maxis\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 1114\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1115\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0m_handle_lowerdim_multi_index_axis0\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mtup\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0mtuple\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m/opt/app-root/lib64/python3.8/site-packages/pandas/core/generic.py\u001b[0m in \u001b[0;36mxs\u001b[0;34m(self, key, axis, level, drop_level)\u001b[0m\n\u001b[1;32m 3759\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0maxis\u001b[0m \u001b[0;34m==\u001b[0m \u001b[0;36m1\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 3760\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mdrop_level\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 3761\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mkey\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 3762\u001b[0m \u001b[0mindex\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcolumns\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 3763\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m/opt/app-root/lib64/python3.8/site-packages/pandas/core/frame.py\u001b[0m in \u001b[0;36m__getitem__\u001b[0;34m(self, key)\u001b[0m\n\u001b[1;32m 3456\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcolumns\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mnlevels\u001b[0m \u001b[0;34m>\u001b[0m \u001b[0;36m1\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 3457\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_getitem_multilevel\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mkey\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 3458\u001b[0;31m \u001b[0mindexer\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcolumns\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mget_loc\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mkey\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 3459\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mis_integer\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mindexer\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 3460\u001b[0m \u001b[0mindexer\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m[\u001b[0m\u001b[0mindexer\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m/opt/app-root/lib64/python3.8/site-packages/pandas/core/indexes/base.py\u001b[0m in \u001b[0;36mget_loc\u001b[0;34m(self, key, method, tolerance)\u001b[0m\n\u001b[1;32m 3361\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_engine\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mget_loc\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mcasted_key\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 3362\u001b[0m \u001b[0;32mexcept\u001b[0m \u001b[0mKeyError\u001b[0m \u001b[0;32mas\u001b[0m \u001b[0merr\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 3363\u001b[0;31m \u001b[0;32mraise\u001b[0m \u001b[0mKeyError\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mkey\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;32mfrom\u001b[0m \u001b[0merr\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 3364\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 3365\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mis_scalar\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mkey\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;32mand\u001b[0m \u001b[0misna\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mkey\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;32mand\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mhasnans\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;31mKeyError\u001b[0m: 'company_id'" + "\u001b[0;32m~/ITR/ITR/temperature_score.py\u001b[0m in \u001b[0;36mcalculate\u001b[0;34m(self, data, data_warehouse, portfolio)\u001b[0m\n\u001b[1;32m 183\u001b[0m \u001b[0;32mraise\u001b[0m \u001b[0mValueError\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\"You need to pass and either a data set or a datawarehouse and companies\"\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 184\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 185\u001b[0;31m \u001b[0mdata\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_prepare_data\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mdata\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 186\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 187\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mEScope\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mS1S2S3\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mscopes\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/ITR/ITR/temperature_score.py\u001b[0m in \u001b[0;36m_prepare_data\u001b[0;34m(self, data)\u001b[0m\n\u001b[1;32m 141\u001b[0m scoring_data[self.c.COLS.TEMPERATURE_SCORE], scoring_data[self.c.COLS.TRAJECTORY_SCORE], scoring_data[\n\u001b[1;32m 142\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mc\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mCOLS\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mTRAJECTORY_OVERSHOOT\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mscoring_data\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mc\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mCOLS\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mTARGET_SCORE\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mscoring_data\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 143\u001b[0;31m self.c.COLS.TARGET_OVERSHOOT], scoring_data[self.c.TEMPERATURE_RESULTS] = zip(*scoring_data.apply(\n\u001b[0m\u001b[1;32m 144\u001b[0m lambda row: self.get_score(row), axis=1))\n\u001b[1;32m 145\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m/opt/app-root/lib64/python3.8/site-packages/pandas/core/frame.py\u001b[0m in \u001b[0;36mapply\u001b[0;34m(self, func, axis, raw, result_type, args, **kwargs)\u001b[0m\n\u001b[1;32m 8738\u001b[0m \u001b[0mkwargs\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 8739\u001b[0m )\n\u001b[0;32m-> 8740\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mop\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mapply\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 8741\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 8742\u001b[0m def applymap(\n", + "\u001b[0;32m/opt/app-root/lib64/python3.8/site-packages/pandas/core/apply.py\u001b[0m in \u001b[0;36mapply\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 686\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mapply_raw\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 687\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 688\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mapply_standard\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 689\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 690\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0magg\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m/opt/app-root/lib64/python3.8/site-packages/pandas/core/apply.py\u001b[0m in \u001b[0;36mapply_standard\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 810\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 811\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0mapply_standard\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 812\u001b[0;31m \u001b[0mresults\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mres_index\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mapply_series_generator\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 813\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 814\u001b[0m \u001b[0;31m# wrap results\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m/opt/app-root/lib64/python3.8/site-packages/pandas/core/apply.py\u001b[0m in \u001b[0;36mapply_series_generator\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 826\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0mi\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mv\u001b[0m \u001b[0;32min\u001b[0m \u001b[0menumerate\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mseries_gen\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 827\u001b[0m \u001b[0;31m# ignore SettingWithCopy here in case the user mutates\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 828\u001b[0;31m \u001b[0mresults\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mi\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mf\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mv\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 829\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0misinstance\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mresults\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mi\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mABCSeries\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 830\u001b[0m \u001b[0;31m# If we have a view on v, we need to make a copy because\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/ITR/ITR/temperature_score.py\u001b[0m in \u001b[0;36m\u001b[0;34m(row)\u001b[0m\n\u001b[1;32m 142\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mc\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mCOLS\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mTRAJECTORY_OVERSHOOT\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mscoring_data\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mc\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mCOLS\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mTARGET_SCORE\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mscoring_data\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 143\u001b[0m self.c.COLS.TARGET_OVERSHOOT], scoring_data[self.c.TEMPERATURE_RESULTS] = zip(*scoring_data.apply(\n\u001b[0;32m--> 144\u001b[0;31m lambda row: self.get_score(row), axis=1))\n\u001b[0m\u001b[1;32m 145\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 146\u001b[0m \u001b[0mscoring_data\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcap_scores\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mscoring_data\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/ITR/ITR/temperature_score.py\u001b[0m in \u001b[0;36mget_score\u001b[0;34m(self, scorable_row)\u001b[0m\n\u001b[1;32m 69\u001b[0m \u001b[0mtarget_temperature_score\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mscorable_row\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mc\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mCOLS\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mBENCHMARK_TEMP\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;34m+\u001b[0m\u001b[0;31m \u001b[0m\u001b[0;31m\\\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 70\u001b[0m (scorable_row[self.c.COLS.BENCHMARK_GLOBAL_BUDGET] * (\n\u001b[0;32m---> 71\u001b[0;31m target_overshoot_ratio - 1.0) * self.c.CONTROLS_CONFIG.tcre_multiplier)\n\u001b[0m\u001b[1;32m 72\u001b[0m \u001b[0mtrajectory_temperature_score\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mscorable_row\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mc\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mCOLS\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mBENCHMARK_TEMP\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;34m+\u001b[0m\u001b[0;31m \u001b[0m\u001b[0;31m\\\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 73\u001b[0m (scorable_row[self.c.COLS.BENCHMARK_GLOBAL_BUDGET] * (\n", + "\u001b[0;32m/opt/app-root/lib64/python3.8/site-packages/pint/quantity.py\u001b[0m in \u001b[0;36m__sub__\u001b[0;34m(self, other)\u001b[0m\n\u001b[1;32m 1159\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1160\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0m__sub__\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mother\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1161\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_add_sub\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mother\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0moperator\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0msub\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 1162\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1163\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0m__rsub__\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mother\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m/opt/app-root/lib64/python3.8/site-packages/pint/quantity.py\u001b[0m in \u001b[0;36mwrapped\u001b[0;34m(self, *args, **kwargs)\u001b[0m\n\u001b[1;32m 138\u001b[0m \u001b[0;32melif\u001b[0m \u001b[0misinstance\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mother\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mlist\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;32mand\u001b[0m \u001b[0mother\u001b[0m \u001b[0;32mand\u001b[0m \u001b[0misinstance\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mother\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m0\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mtype\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 139\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mNotImplemented\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 140\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mf\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m*\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 141\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 142\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mwrapped\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m/opt/app-root/lib64/python3.8/site-packages/pint/quantity.py\u001b[0m in \u001b[0;36m_add_sub\u001b[0;34m(self, other, op)\u001b[0m\n\u001b[1;32m 1046\u001b[0m )\n\u001b[1;32m 1047\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1048\u001b[0;31m \u001b[0;32mraise\u001b[0m \u001b[0mDimensionalityError\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_units\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m\"dimensionless\"\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 1049\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m__class__\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mmagnitude\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0munits\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1050\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;31mDimensionalityError\u001b[0m: Cannot convert from 'megametric_ton * megawatt_hour / metric_ton' to 'dimensionless'" ] } ], From 01f9e3e05514840aff4db1ad8da629cb00995939 Mon Sep 17 00:00:00 2001 From: MichaelTiemannOSC Date: Tue, 28 Dec 2021 21:03:17 +0000 Subject: [PATCH 040/345] WIP -- almost complete, except for aggregation Temperature aggregation is non-trivial, because pint is very particular about the concept of adding temperatures, generally. We will address that next. This changeset includes some obvious fixes to units (e.g. data was reported in tons CO2, not Mt CO2). Also adjusted code to accep the fact that as far as the test dataset goes, data labeled protected_target, which by all rights should be t CO2, is in this case some kind of reverse-engineered emissions intensity. We'll discuss and decide what to do about that. Also removed many print statements no longer needed. Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- ITR/data/base_providers.py | 2 - ITR/data/data_warehouse.py | 7 +- ITR/data/excel.py | 7 +- ITR/temperature_score.py | 14 +- examples/quick_temp_score_calculation.ipynb | 491 ++++++-------------- 5 files changed, 150 insertions(+), 371 deletions(-) diff --git a/ITR/data/base_providers.py b/ITR/data/base_providers.py index a5439306..061add0b 100644 --- a/ITR/data/base_providers.py +++ b/ITR/data/base_providers.py @@ -234,9 +234,7 @@ def get_SDA_intensity_benchmarks(self, company_info_at_base_year: pd.DataFrame) :return: A DataFrame with company and SDA intensity benchmarks per calendar year per row """ intensity_benchmarks = self._get_intensity_benchmarks(company_info_at_base_year) - print("before decarb paths") decarbonization_paths = self._get_decarbonizations_paths(intensity_benchmarks) - print("after decarb paths") last_ei = intensity_benchmarks[self.temp_config.CONTROLS_CONFIG.target_end_year] ei_base = company_info_at_base_year[self.column_config.BASE_EI] diff --git a/ITR/data/data_warehouse.py b/ITR/data/data_warehouse.py index a2cef831..9b23f3bf 100644 --- a/ITR/data/data_warehouse.py +++ b/ITR/data/data_warehouse.py @@ -48,7 +48,6 @@ def get_preprocessed_company_data(self, company_ids: List[str]) -> List[ICompany :param company_ids: A list of company IDs (ISINs) :return: A list containing the company data and additional precalculated fields """ - # print(f"company_ids = {company_ids}\n\n") company_data = self.company_data.get_company_data(company_ids) df_company_data = pd.DataFrame.from_records([c.dict() for c in company_data])\ .set_index(self.column_config.COMPANY_ID) @@ -56,10 +55,7 @@ def get_preprocessed_company_data(self, company_ids: List[str]) -> List[ICompany missing_ids = [c_id for c_id in company_ids if c_id not in df_company_data.index] assert not missing_ids, f"Company IDs are not included in the fundamental data: {missing_ids}" - print(f"before company_info_at_base_year") company_info_at_base_year = self.company_data.get_company_intensity_and_production_at_base_year(company_ids) - # print(f"after company_info_at_base_year\n\n{company_info_at_base_year}") - # print(f"DW: company_info_at_base_year.loc[] = {company_info_at_base_year.loc['US0185223007']}") projected_production = self.benchmark_projected_production.get_company_projected_production( company_info_at_base_year).sort_index() @@ -106,9 +102,8 @@ def _convert_df_to_model(self, df_company_data: pd.DataFrame) -> List[ICompanyAg try: model_companies.append(ICompanyAggregates.parse_obj(company_data)) except ValidationError as e: - print(__name__, e) logger.warning( - "DW: (one of) the input(s) of company %s is invalid and will be skipped" % company_data[ + "(one of) the input(s) of company %s is invalid and will be skipped" % company_data[ self.column_config.COMPANY_NAME]) pass return model_companies diff --git a/ITR/data/excel.py b/ITR/data/excel.py index 02330b30..59fd2f6f 100644 --- a/ITR/data/excel.py +++ b/ITR/data/excel.py @@ -153,7 +153,7 @@ def _convert_from_excel_data(self, excel_path: str) -> List[ICompanyData]: df_historic = None return self._company_df_to_model(df_fundamentals, df_targets, df_ei, df_historic) - def _convert_series_to_projections(self, projections: pd.Series, convert_unit: bool = False) -> List[ + def _convert_series_to_projections(self, projections: pd.Series) -> List[ ICompanyProjection]: """ Converts a Pandas Series in a list of ICompanyProjections @@ -214,10 +214,9 @@ def _company_df_to_model(self, df_fundamentals: pd.DataFrame, df_targets: pd.Dat # as opposed to using constructors to build the object validly in the first place. model_companies.append(ICompanyData.parse_obj(company_data)) except ValidationError as e: - print(__name__, e) logger.warning( "(one of) the input(s) of company %s is invalid and will be skipped" % company_data[ - ColumnsConfig.COMPANY_NAME]) + self.column_config.COMPANY_NAME]) pass return model_companies @@ -243,10 +242,8 @@ def _get_projection(self, company_ids: List[str], projections: pd.DataFrame, ast self.temp_config.CONTROLS_CONFIG.target_end_year + 1)] # Due to bug (https://github.com/pandas-dev/pandas/issues/20824) in Pandas where NaN are treated as zero workaround below: projected_emissions_s1s2 = projections.groupby(level=0, sort=False).agg(ExcelProviderCompany._np_sum) # add scope 1 and 2 - # print("about to convert in _get_projection") for col in projected_emissions_s1s2.columns: projected_emissions_s1s2[col] = projected_emissions_s1s2[col].astype(astype) - # print(f"projected_emissions_s1s2.loc[{astype}] = {projected_emissions_s1s2.iloc[0:7, 0:7]}") return projected_emissions_s1s2 diff --git a/ITR/temperature_score.py b/ITR/temperature_score.py index 5f382dc5..e098f37d 100644 --- a/ITR/temperature_score.py +++ b/ITR/temperature_score.py @@ -63,9 +63,6 @@ def get_score(self, scorable_row: pd.Series) -> Tuple[Quantity['degC'], Quantity target_overshoot_ratio = 0 trajectory_overshoot_ratio = 0 - print(f"scorable_row = {scorable_row}") - print(f"self.c.CONTROLS_CONFIG.tcre_multiplier = {self.c.CONTROLS_CONFIG.tcre_multiplier}") - print(f"target_overshoot_ratio = {target_overshoot_ratio}") target_temperature_score = scorable_row[self.c.COLS.BENCHMARK_TEMP] + \ (scorable_row[self.c.COLS.BENCHMARK_GLOBAL_BUDGET] * ( target_overshoot_ratio - 1.0) * self.c.CONTROLS_CONFIG.tcre_multiplier) @@ -135,9 +132,6 @@ def _prepare_data(self, data: pd.DataFrame): score_combinations = pd.DataFrame(list(itertools.product(*[companies, scopes, self.time_frames])), columns=[self.c.COLS.COMPANY_ID, self.c.COLS.SCOPE, self.c.COLS.TIME_FRAME]) scoring_data = pd.merge(left=data, right=score_combinations, how='outer', on=[self.c.COLS.COMPANY_ID]) - print(scoring_data.columns) - print(scoring_data.dtypes) - print(scoring_data.iloc[0:5]) scoring_data[self.c.COLS.TEMPERATURE_SCORE], scoring_data[self.c.COLS.TRAJECTORY_SCORE], scoring_data[ self.c.COLS.TRAJECTORY_OVERSHOOT], scoring_data[self.c.COLS.TARGET_SCORE], scoring_data[ self.c.COLS.TARGET_OVERSHOOT], scoring_data[self.c.TEMPERATURE_RESULTS] = zip(*scoring_data.apply( @@ -189,9 +183,9 @@ def calculate(self, data: Optional[pd.DataFrame] = None, self._check_column(data, self.c.COLS.GHG_SCOPE3) data = self._calculate_company_score(data) - # We need to filter the scopes again, because we might have had to add a scope in te preparation step + # We need to filter the scopes again, because we might have had to add a scope in the preparation step data = data[data[self.c.COLS.SCOPE].isin(self.scopes)] - data[self.c.COLS.TEMPERATURE_SCORE] = data[self.c.COLS.TEMPERATURE_SCORE].round(2) + data[self.c.COLS.TEMPERATURE_SCORE] = data[self.c.COLS.TEMPERATURE_SCORE].map(lambda x: Q_(x.m.round(2), x.u)) return data def _get_aggregations(self, data: pd.DataFrame, total_companies: int) -> Tuple[Aggregation, pd.Series, pd.Series]: @@ -210,13 +204,15 @@ def _get_aggregations(self, data: pd.DataFrame, total_companies: int) -> Tuple[A .sort_values(self.c.COLS.CONTRIBUTION_RELATIVE, ascending=False) \ .where(pd.notnull(data), None) \ .to_dict(orient="records") - return Aggregation( + aggregations = Aggregation( score=weighted_scores.sum(), proportion=len(weighted_scores) / (total_companies / 100.0), contributions=[AggregationContribution.parse_obj(contribution) for contribution in contributions] ), \ data[self.c.COLS.CONTRIBUTION_RELATIVE], \ data[self.c.COLS.CONTRIBUTION] + + return aggregations def _get_score_aggregation(self, data: pd.DataFrame, time_frame: ETimeFrames, scope: EScope) -> \ Optional[ScoreAggregation]: diff --git a/examples/quick_temp_score_calculation.ipynb b/examples/quick_temp_score_calculation.ipynb index 8dd08487..31d8cbec 100644 --- a/examples/quick_temp_score_calculation.ipynb +++ b/examples/quick_temp_score_calculation.ipynb @@ -338,358 +338,13 @@ "execution_count": 13, "metadata": {}, "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "before company_info_at_base_year\n", - "projected_production = 2019 \\\n", - "AR0000000013 1.0 CO2 * metric_ton \n", - "BR0000000010 11847001.9224849 CO2 * metric_ton \n", - "BR0000000011 14618000.0778486 CO2 * metric_ton \n", - "BR0000000012 27110004.3464472 CO2 * metric_ton \n", - "CH0038863350 73011601.1549344 CO2 * metric_ton \n", - "\n", - " 2020 \\\n", - "AR0000000013 1.015 CO2 * metric_ton \n", - "BR0000000010 12024706.951322174 CO2 * metric_ton \n", - "BR0000000011 14837270.079016328 CO2 * metric_ton \n", - "BR0000000012 27516654.411643904 CO2 * metric_ton \n", - "CH0038863350 67433621.07659335 CO2 * metric_ton \n", - "\n", - " 2021 \\\n", - "AR0000000013 1.0302249999999997 CO2 * metric_ton \n", - "BR0000000010 12205077.555592004 CO2 * metric_ton \n", - "BR0000000011 15059829.13020157 CO2 * metric_ton \n", - "BR0000000012 27929404.22781856 CO2 * metric_ton \n", - "CH0038863350 71476830.37892087 CO2 * metric_ton \n", - "\n", - " 2022 \\\n", - "AR0000000013 1.0456783749999996 CO2 * metric_ton \n", - "BR0000000010 12388153.718925882 CO2 * metric_ton \n", - "BR0000000011 15285726.567154592 CO2 * metric_ton \n", - "BR0000000012 28348345.291235834 CO2 * metric_ton \n", - "CH0038863350 75762463.87857659 CO2 * metric_ton \n", - "\n", - " 2023 \n", - "AR0000000013 1.0613635506249994 CO2 * metric_ton \n", - "BR0000000010 12573976.024709769 CO2 * metric_ton \n", - "BR0000000011 15515012.465661908 CO2 * metric_ton \n", - "BR0000000012 28773570.470604368 CO2 * metric_ton \n", - "CH0038863350 80305056.93276212 CO2 * metric_ton \n", - "production_sum = 2019 6376079873.31004 CO2 * metric_ton\n", - "2020 5917434641.831634 CO2 * metric_ton\n", - "2021 6142945948.865509 CO2 * metric_ton\n", - "2022 6379004260.048121 CO2 * metric_ton\n", - "2023 6626171651.186672 CO2 * metric_ton\n", - "dtype: object\n", - "production_weights = 2019 \\\n", - "AR0000000013 1.5683617832109526e-10 dimensionless \n", - "BR0000000010 0.0018580385060852002 dimensionless \n", - "BR0000000011 0.0022926312669072474 dimensionless \n", - "BR0000000012 0.00425182947596506 dimensionless \n", - "CH0038863350 0.011450860498243978 dimensionless \n", - "\n", - " 2020 \\\n", - "AR0000000013 1.7152703180272478e-10 dimensionless \n", - "BR0000000010 0.0020320810755250092 dimensionless \n", - "BR0000000011 0.00250738216424537 dimensionless \n", - "BR0000000012 0.004650098577705056 dimensionless \n", - "CH0038863350 0.011395752578303173 dimensionless \n", - "\n", - " 2021 \\\n", - "AR0000000013 1.6770862198295326e-10 dimensionless \n", - "BR0000000010 0.0019868443670493408 dimensionless \n", - "BR0000000011 0.0024515646492026923 dimensionless \n", - "BR0000000012 0.0045465814708945335 dimensionless \n", - "CH0038863350 0.011635594871565059 dimensionless \n", - "\n", - " 2022 \\\n", - "AR0000000013 1.6392501593847678e-10 dimensionless \n", - "BR0000000010 0.0019420199789665024 dimensionless \n", - "BR0000000011 0.0023962558957499867 dimensionless \n", - "BR0000000012 0.004444007894583532 dimensionless \n", - "CH0038863350 0.011876847982855095 dimensionless \n", - "\n", - " 2023 \n", - "AR0000000013 1.6017749109094105e-10 dimensionless \n", - "BR0000000010 0.0018976230448931868 dimensionless \n", - "BR0000000011 0.0023414745772369697 dimensionless \n", - "BR0000000012 0.00434241247967842 dimensionless \n", - "CH0038863350 0.012119374679703686 dimensionless \n", - "df_target = company_id cumulative_target\n", - "0 AR0000000013 nan CO2 * megametric_ton\n", - "1 BR0000000010 nan CO2 * megametric_ton\n", - "2 BR0000000011 0.035267977886912605 CO2 * megametric_ton\n", - "3 BR0000000012 0.22393182906271158 CO2 * megametric_ton\n", - "4 CH0038863350 0.07591311170696782 CO2 * megametric_ton\n", - "5 CH0198251305 0.15027676352024827 CO2 * megametric_ton\n", - "6 CN0000000007 0.3168473318218108 CO2 * megametric_ton\n", - "7 CN0000000008 0.11365125294778876 CO2 * megametric_ton\n", - "8 CN0000000009 nan CO2 * megametric_ton\n", - "9 FR0000120321 1.0615267598468603 CO2 * megametric_ton\n", - "10 FR0000120644 0.020537128998060077 CO2 * megametric_ton\n", - "11 FR0000125338 0.012552944496918565 CO2 * megametric_ton\n", - "12 GB0031274896 0.11298548827221226 CO2 * megametric_ton\n", - "13 IT0000000003 0.06393108123568635 CO2 * megametric_ton\n", - "14 JP0000000001 nan CO2 * megametric_ton\n", - "15 JP3401400001 0.05418356019585116 CO2 * megametric_ton\n", - "16 NL0000000002 0.009487105123077844 CO2 * megametric_ton\n", - "17 NL0000000006 nan CO2 * megametric_ton\n", - "18 SE0000000004 0.16557735475841284 CO2 * megametric_ton\n", - "19 SE0000000005 0.14719124143952145 CO2 * megametric_ton\n", - "20 TW0002308004 0.020406681941566005 CO2 * megametric_ton\n", - "21 US00724F1012 0.19245497637163447 CO2 * megametric_ton\n", - "22 US0079031078 0.11795568506761583 CO2 * megametric_ton\n", - "23 US1266501006 0.015781214336452166 CO2 * megametric_ton\n", - "24 US17275R1023 0.004751406363831042 CO2 * megametric_ton\n", - "25 US24703L1035 0.00484369687909756 CO2 * megametric_ton\n", - "26 US6293775085 0.439111590966201 CO2 * megametric_ton\n", - "27 US6541061031 0.20509224198641904 CO2 * megametric_ton\n", - "28 US7134481081 nan CO2 * megametric_ton\n", - "29 US8356993076 nan CO2 * megametric_ton\n", - "\n", - "\n", - "before CUMULATIVE_BUDGET\n", - "before decarb paths\n" - ] - }, { "name": "stderr", "output_type": "stream", "text": [ - "/opt/app-root/lib64/python3.8/site-packages/pandas/core/dtypes/cast.py:1990: UnitStrippedWarning: The unit of the quantity is stripped when downcasting to ndarray.\n", - " result[:] = values\n", - "/opt/app-root/lib64/python3.8/site-packages/pandas/core/dtypes/cast.py:1990: UnitStrippedWarning: The unit of the quantity is stripped when downcasting to ndarray.\n", - " result[:] = values\n", "/opt/app-root/lib64/python3.8/site-packages/pandas/core/dtypes/cast.py:1990: UnitStrippedWarning: The unit of the quantity is stripped when downcasting to ndarray.\n", " result[:] = values\n" ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "after decarb paths\n", - "Index(['company_name', 'company_id', 'region', 'sector', 'target_probability',\n", - " 'projected_targets', 'projected_intensities', 'country', 'ghg_s1s2',\n", - " 'ghg_s3', 'industry_level_1', 'industry_level_2', 'industry_level_3',\n", - " 'industry_level_4', 'company_revenue', 'company_market_cap',\n", - " 'company_enterprise_value', 'company_total_assets',\n", - " 'company_cash_equivalents', 'cumulative_budget',\n", - " 'cumulative_trajectory', 'cumulative_target', 'benchmark_temperature',\n", - " 'benchmark_global_budget', 'company_isin', 'investment_value', 'scope',\n", - " 'time_frame'],\n", - " dtype='object')\n", - "company_name object\n", - "company_id object\n", - "region object\n", - "sector object\n", - "target_probability float64\n", - "projected_targets object\n", - "projected_intensities object\n", - "country object\n", - "ghg_s1s2 object\n", - "ghg_s3 object\n", - "industry_level_1 object\n", - "industry_level_2 object\n", - "industry_level_3 object\n", - "industry_level_4 object\n", - "company_revenue float64\n", - "company_market_cap float64\n", - "company_enterprise_value float64\n", - "company_total_assets float64\n", - "company_cash_equivalents float64\n", - "cumulative_budget object\n", - "cumulative_trajectory object\n", - "cumulative_target object\n", - "benchmark_temperature object\n", - "benchmark_global_budget object\n", - "company_isin object\n", - "investment_value float64\n", - "scope object\n", - "time_frame object\n", - "dtype: object\n", - " company_name company_id region sector \\\n", - "0 Company M AR0000000013 Europe Steel \n", - "1 Company J BR0000000010 Asia Steel \n", - "2 Company K BR0000000011 Europe Steel \n", - "3 Company L BR0000000012 Asia Steel \n", - "4 Company AQ CH0038863350 Asia Electricity Utilities \n", - "\n", - " target_probability projected_targets \\\n", - "0 0.428571 {'S1S2': {'projections': [{'year': 2019, 'valu... \n", - "1 0.428571 {'S1S2': {'projections': [{'year': 2019, 'valu... \n", - "2 0.428571 {'S1S2': {'projections': [{'year': 2019, 'valu... \n", - "3 0.428571 {'S1S2': {'projections': [{'year': 2019, 'valu... \n", - "4 0.428571 {'S1S2': {'projections': [{'year': 2019, 'valu... \n", - "\n", - " projected_intensities country \\\n", - "0 {'S1S2': {'projections': [{'year': 2019, 'valu... Germany \n", - "1 {'S1S2': {'projections': [{'year': 2019, 'valu... Russia \n", - "2 {'S1S2': {'projections': [{'year': 2019, 'valu... Sweden \n", - "3 {'S1S2': {'projections': [{'year': 2019, 'valu... India \n", - "4 {'S1S2': {'projections': [{'year': 2019, 'valu... Australia \n", - "\n", - " ghg_s1s2 ghg_s3 ... \\\n", - "0 1 CO2 * metric_ton 1 CO2 * metric_ton ... \n", - "1 11847001.9224849 CO2 * metric_ton 11847001.9224849 CO2 * metric_ton ... \n", - "2 14618000.0778486 CO2 * metric_ton 14618000.0778486 CO2 * metric_ton ... \n", - "3 27110004.3464472 CO2 * metric_ton 27110004.3464472 CO2 * metric_ton ... \n", - "4 73011601.1549344 CO2 * metric_ton 73011601.1549344 CO2 * metric_ton ... \n", - "\n", - " company_cash_equivalents cumulative_budget \\\n", - "0 2.597399e+08 nan CO2 * metric_ton / megawatt_hour \n", - "1 4.086329e+08 nan CO2 * metric_ton / megawatt_hour \n", - "2 2.233573e+08 0.02492409347626564 CO2 * metric_ton / megawat... \n", - "3 1.279584e+09 0.12043289849295982 CO2 * metric_ton / megawat... \n", - "4 5.055193e+08 0.025031746155189858 CO2 * metric_ton / megawa... \n", - "\n", - " cumulative_trajectory \\\n", - "0 nan CO2 * metric_ton / megawatt_hour \n", - "1 nan CO2 * metric_ton / megawatt_hour \n", - "2 0.042864648985326034 CO2 * metric_ton / megawa... \n", - "3 0.22393182906271158 CO2 * metric_ton / megawat... \n", - "4 0.0989743755671423 CO2 * metric_ton / megawatt... \n", - "\n", - " cumulative_target benchmark_temperature \\\n", - "0 nan CO2 * megametric_ton 1.5 degree_Celsius \n", - "1 nan CO2 * megametric_ton 1.5 degree_Celsius \n", - "2 0.035267977886912605 CO2 * megametric_ton 1.5 degree_Celsius \n", - "3 0.22393182906271158 CO2 * megametric_ton 1.5 degree_Celsius \n", - "4 0.07591311170696782 CO2 * megametric_ton 1.5 degree_Celsius \n", - "\n", - " benchmark_global_budget company_isin investment_value scope \\\n", - "0 521.0526315789474 CO2 * metric_ton AR0000000013 10000000.0 S1S2 \n", - "1 521.0526315789474 CO2 * metric_ton BR0000000010 10000000.0 S1S2 \n", - "2 521.0526315789474 CO2 * metric_ton BR0000000011 10000000.0 S1S2 \n", - "3 521.0526315789474 CO2 * metric_ton BR0000000012 10000000.0 S1S2 \n", - "4 521.0526315789474 CO2 * metric_ton CH0038863350 10000000.0 S1S2 \n", - "\n", - " time_frame \n", - "0 LONG \n", - "1 LONG \n", - "2 LONG \n", - "3 LONG \n", - "4 LONG \n", - "\n", - "[5 rows x 28 columns]\n", - "scorable_row = company_name Company M\n", - "company_id AR0000000013\n", - "region Europe\n", - "sector Steel\n", - "target_probability 0.428571\n", - "projected_targets {'S1S2': {'projections': [{'year': 2019, 'valu...\n", - "projected_intensities {'S1S2': {'projections': [{'year': 2019, 'valu...\n", - "country Germany\n", - "ghg_s1s2 1 CO2 * metric_ton\n", - "ghg_s3 1 CO2 * metric_ton\n", - "industry_level_1 None\n", - "industry_level_2 None\n", - "industry_level_3 None\n", - "industry_level_4 None\n", - "company_revenue 9338027130.327995\n", - "company_market_cap 933460072.78718\n", - "company_enterprise_value 2521235187.169247\n", - "company_total_assets 18868083.741258\n", - "company_cash_equivalents 259739897.261901\n", - "cumulative_budget nan CO2 * metric_ton / megawatt_hour\n", - "cumulative_trajectory nan CO2 * metric_ton / megawatt_hour\n", - "cumulative_target nan CO2 * megametric_ton\n", - "benchmark_temperature 1.5 degree_Celsius\n", - "benchmark_global_budget 521.0526315789474 CO2 * metric_ton\n", - "company_isin AR0000000013\n", - "investment_value 10000000.0\n", - "scope S1S2\n", - "time_frame LONG\n", - "Name: 0, dtype: object\n", - "self.c.CONTROLS_CONFIG.tcre_multiplier = 0.0006004366812227075 delta_degree_Celsius / CO2 / gigametric_ton\n", - "target_overshoot_ratio = 0\n", - "scorable_row = company_name Company J\n", - "company_id BR0000000010\n", - "region Asia\n", - "sector Steel\n", - "target_probability 0.428571\n", - "projected_targets {'S1S2': {'projections': [{'year': 2019, 'valu...\n", - "projected_intensities {'S1S2': {'projections': [{'year': 2019, 'valu...\n", - "country Russia\n", - "ghg_s1s2 11847001.9224849 CO2 * metric_ton\n", - "ghg_s3 11847001.9224849 CO2 * metric_ton\n", - "industry_level_1 None\n", - "industry_level_2 None\n", - "industry_level_3 None\n", - "industry_level_4 None\n", - "company_revenue 1955329090.52114\n", - "company_market_cap 1202043687.03022\n", - "company_enterprise_value 4172635345.018464\n", - "company_total_assets 22152151.290723\n", - "company_cash_equivalents 408632883.321407\n", - "cumulative_budget nan CO2 * metric_ton / megawatt_hour\n", - "cumulative_trajectory nan CO2 * metric_ton / megawatt_hour\n", - "cumulative_target nan CO2 * megametric_ton\n", - "benchmark_temperature 1.5 degree_Celsius\n", - "benchmark_global_budget 521.0526315789474 CO2 * metric_ton\n", - "company_isin BR0000000010\n", - "investment_value 10000000.0\n", - "scope S1S2\n", - "time_frame LONG\n", - "Name: 1, dtype: object\n", - "self.c.CONTROLS_CONFIG.tcre_multiplier = 0.0006004366812227075 delta_degree_Celsius / CO2 / gigametric_ton\n", - "target_overshoot_ratio = 0\n", - "scorable_row = company_name Company K\n", - "company_id BR0000000011\n", - "region Europe\n", - "sector Steel\n", - "target_probability 0.428571\n", - "projected_targets {'S1S2': {'projections': [{'year': 2019, 'valu...\n", - "projected_intensities {'S1S2': {'projections': [{'year': 2019, 'valu...\n", - "country Sweden\n", - "ghg_s1s2 14618000.0778486 CO2 * metric_ton\n", - "ghg_s3 14618000.0778486 CO2 * metric_ton\n", - "industry_level_1 None\n", - "industry_level_2 None\n", - "industry_level_3 None\n", - "industry_level_4 None\n", - "company_revenue 679399572.3481\n", - "company_market_cap 989091472.70855\n", - "company_enterprise_value 1824699389.596552\n", - "company_total_assets 12700301.946415\n", - "company_cash_equivalents 223357269.549214\n", - "cumulative_budget 0.02492409347626564 CO2 * metric_ton / megawat...\n", - "cumulative_trajectory 0.042864648985326034 CO2 * metric_ton / megawa...\n", - "cumulative_target 0.035267977886912605 CO2 * megametric_ton\n", - "benchmark_temperature 1.5 degree_Celsius\n", - "benchmark_global_budget 521.0526315789474 CO2 * metric_ton\n", - "company_isin BR0000000011\n", - "investment_value 10000000.0\n", - "scope S1S2\n", - "time_frame LONG\n", - "Name: 2, dtype: object\n", - "self.c.CONTROLS_CONFIG.tcre_multiplier = 0.0006004366812227075 delta_degree_Celsius / CO2 / gigametric_ton\n", - "target_overshoot_ratio = 1.4150154716959753 megametric_ton * megawatt_hour / metric_ton\n" - ] - }, - { - "ename": "DimensionalityError", - "evalue": "Cannot convert from 'megametric_ton * megawatt_hour / metric_ton' to 'dimensionless'", - "output_type": "error", - "traceback": [ - "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[0;31mDimensionalityError\u001b[0m Traceback (most recent call last)", - "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m\u001b[0m\n\u001b[1;32m 4\u001b[0m \u001b[0maggregation_method\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mPortfolioAggregationMethod\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mWATS\u001b[0m \u001b[0;31m# Options for the aggregation method are WATS, TETS, AOTS, MOTS, EOTS, ECOTS, and ROTS.\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 5\u001b[0m )\n\u001b[0;32m----> 6\u001b[0;31m \u001b[0mamended_portfolio\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mtemperature_score\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcalculate\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mdata_warehouse\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mexcel_provider\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mportfolio\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mcompanies\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", - "\u001b[0;32m~/ITR/ITR/temperature_score.py\u001b[0m in \u001b[0;36mcalculate\u001b[0;34m(self, data, data_warehouse, portfolio)\u001b[0m\n\u001b[1;32m 183\u001b[0m \u001b[0;32mraise\u001b[0m \u001b[0mValueError\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\"You need to pass and either a data set or a datawarehouse and companies\"\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 184\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 185\u001b[0;31m \u001b[0mdata\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_prepare_data\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mdata\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 186\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 187\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mEScope\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mS1S2S3\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mscopes\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m~/ITR/ITR/temperature_score.py\u001b[0m in \u001b[0;36m_prepare_data\u001b[0;34m(self, data)\u001b[0m\n\u001b[1;32m 141\u001b[0m scoring_data[self.c.COLS.TEMPERATURE_SCORE], scoring_data[self.c.COLS.TRAJECTORY_SCORE], scoring_data[\n\u001b[1;32m 142\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mc\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mCOLS\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mTRAJECTORY_OVERSHOOT\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mscoring_data\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mc\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mCOLS\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mTARGET_SCORE\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mscoring_data\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 143\u001b[0;31m self.c.COLS.TARGET_OVERSHOOT], scoring_data[self.c.TEMPERATURE_RESULTS] = zip(*scoring_data.apply(\n\u001b[0m\u001b[1;32m 144\u001b[0m lambda row: self.get_score(row), axis=1))\n\u001b[1;32m 145\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m/opt/app-root/lib64/python3.8/site-packages/pandas/core/frame.py\u001b[0m in \u001b[0;36mapply\u001b[0;34m(self, func, axis, raw, result_type, args, **kwargs)\u001b[0m\n\u001b[1;32m 8738\u001b[0m \u001b[0mkwargs\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 8739\u001b[0m )\n\u001b[0;32m-> 8740\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mop\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mapply\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 8741\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 8742\u001b[0m def applymap(\n", - "\u001b[0;32m/opt/app-root/lib64/python3.8/site-packages/pandas/core/apply.py\u001b[0m in \u001b[0;36mapply\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 686\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mapply_raw\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 687\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 688\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mapply_standard\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 689\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 690\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0magg\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m/opt/app-root/lib64/python3.8/site-packages/pandas/core/apply.py\u001b[0m in \u001b[0;36mapply_standard\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 810\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 811\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0mapply_standard\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 812\u001b[0;31m \u001b[0mresults\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mres_index\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mapply_series_generator\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 813\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 814\u001b[0m \u001b[0;31m# wrap results\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m/opt/app-root/lib64/python3.8/site-packages/pandas/core/apply.py\u001b[0m in \u001b[0;36mapply_series_generator\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 826\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0mi\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mv\u001b[0m \u001b[0;32min\u001b[0m \u001b[0menumerate\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mseries_gen\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 827\u001b[0m \u001b[0;31m# ignore SettingWithCopy here in case the user mutates\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 828\u001b[0;31m \u001b[0mresults\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mi\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mf\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mv\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 829\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0misinstance\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mresults\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mi\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mABCSeries\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 830\u001b[0m \u001b[0;31m# If we have a view on v, we need to make a copy because\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m~/ITR/ITR/temperature_score.py\u001b[0m in \u001b[0;36m\u001b[0;34m(row)\u001b[0m\n\u001b[1;32m 142\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mc\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mCOLS\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mTRAJECTORY_OVERSHOOT\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mscoring_data\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mc\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mCOLS\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mTARGET_SCORE\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mscoring_data\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 143\u001b[0m self.c.COLS.TARGET_OVERSHOOT], scoring_data[self.c.TEMPERATURE_RESULTS] = zip(*scoring_data.apply(\n\u001b[0;32m--> 144\u001b[0;31m lambda row: self.get_score(row), axis=1))\n\u001b[0m\u001b[1;32m 145\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 146\u001b[0m \u001b[0mscoring_data\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcap_scores\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mscoring_data\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m~/ITR/ITR/temperature_score.py\u001b[0m in \u001b[0;36mget_score\u001b[0;34m(self, scorable_row)\u001b[0m\n\u001b[1;32m 69\u001b[0m \u001b[0mtarget_temperature_score\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mscorable_row\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mc\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mCOLS\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mBENCHMARK_TEMP\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;34m+\u001b[0m\u001b[0;31m \u001b[0m\u001b[0;31m\\\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 70\u001b[0m (scorable_row[self.c.COLS.BENCHMARK_GLOBAL_BUDGET] * (\n\u001b[0;32m---> 71\u001b[0;31m target_overshoot_ratio - 1.0) * self.c.CONTROLS_CONFIG.tcre_multiplier)\n\u001b[0m\u001b[1;32m 72\u001b[0m \u001b[0mtrajectory_temperature_score\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mscorable_row\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mc\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mCOLS\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mBENCHMARK_TEMP\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;34m+\u001b[0m\u001b[0;31m \u001b[0m\u001b[0;31m\\\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 73\u001b[0m (scorable_row[self.c.COLS.BENCHMARK_GLOBAL_BUDGET] * (\n", - "\u001b[0;32m/opt/app-root/lib64/python3.8/site-packages/pint/quantity.py\u001b[0m in \u001b[0;36m__sub__\u001b[0;34m(self, other)\u001b[0m\n\u001b[1;32m 1159\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1160\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0m__sub__\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mother\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1161\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_add_sub\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mother\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0moperator\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0msub\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 1162\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1163\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0m__rsub__\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mother\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m/opt/app-root/lib64/python3.8/site-packages/pint/quantity.py\u001b[0m in \u001b[0;36mwrapped\u001b[0;34m(self, *args, **kwargs)\u001b[0m\n\u001b[1;32m 138\u001b[0m \u001b[0;32melif\u001b[0m \u001b[0misinstance\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mother\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mlist\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;32mand\u001b[0m \u001b[0mother\u001b[0m \u001b[0;32mand\u001b[0m \u001b[0misinstance\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mother\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m0\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mtype\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 139\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mNotImplemented\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 140\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mf\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m*\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 141\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 142\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mwrapped\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m/opt/app-root/lib64/python3.8/site-packages/pint/quantity.py\u001b[0m in \u001b[0;36m_add_sub\u001b[0;34m(self, other, op)\u001b[0m\n\u001b[1;32m 1046\u001b[0m )\n\u001b[1;32m 1047\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1048\u001b[0;31m \u001b[0;32mraise\u001b[0m \u001b[0mDimensionalityError\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_units\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m\"dimensionless\"\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 1049\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m__class__\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mmagnitude\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0munits\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1050\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;31mDimensionalityError\u001b[0m: Cannot convert from 'megametric_ton * megawatt_hour / metric_ton' to 'dimensionless'" - ] } ], "source": [ @@ -710,9 +365,122 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 14, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
company_nametime_framescopetemperature_score
0Company MLONGS1S21.5 degree_Celsius
1Company JLONGS1S21.5 degree_Celsius
2Company KLONGS1S21.5 degree_Celsius
3Company LLONGS1S21.5 degree_Celsius
4Company AQLONGS1S21.5 degree_Celsius
5Company AKLONGS1S21.5 degree_Celsius
6Company GLONGS1S21.5 degree_Celsius
7Company HLONGS1S21.5 degree_Celsius
8Company ILONGS1S21.5 degree_Celsius
\n", + "
" + ], + "text/plain": [ + " company_name time_frame scope temperature_score\n", + "0 Company M LONG S1S2 1.5 degree_Celsius\n", + "1 Company J LONG S1S2 1.5 degree_Celsius\n", + "2 Company K LONG S1S2 1.5 degree_Celsius\n", + "3 Company L LONG S1S2 1.5 degree_Celsius\n", + "4 Company AQ LONG S1S2 1.5 degree_Celsius\n", + "5 Company AK LONG S1S2 1.5 degree_Celsius\n", + "6 Company G LONG S1S2 1.5 degree_Celsius\n", + "7 Company H LONG S1S2 1.5 degree_Celsius\n", + "8 Company I LONG S1S2 1.5 degree_Celsius" + ] + }, + "execution_count": 14, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "amended_portfolio[['company_name', 'time_frame', 'scope', 'temperature_score']].head(9)" ] @@ -727,9 +495,34 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 15, "metadata": {}, - "outputs": [], + "outputs": [ + { + "ename": "OffsetUnitCalculusError", + "evalue": "Ambiguous operation with offset unit (degree_Celsius, ). See https://pint.readthedocs.io/en/latest/nonmult.html for guidance.", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mOffsetUnitCalculusError\u001b[0m Traceback (most recent call last)", + "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0maggregated_scores\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mtemperature_score\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0maggregate_scores\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mamended_portfolio\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", + "\u001b[0;32m~/ITR/ITR/temperature_score.py\u001b[0m in \u001b[0;36maggregate_scores\u001b[0;34m(self, data)\u001b[0m\n\u001b[1;32m 264\u001b[0m \u001b[0mscore_aggregation_scopes\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mScoreAggregationScopes\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 265\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0mscope\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mscopes\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 266\u001b[0;31m \u001b[0mscore_aggregation_scopes\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m__setattr__\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mscope\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mname\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_get_score_aggregation\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mdata\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mtime_frame\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mscope\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 267\u001b[0m \u001b[0mscore_aggregations\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m__setattr__\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mtime_frame\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mvalue\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mscore_aggregation_scopes\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 268\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/ITR/ITR/temperature_score.py\u001b[0m in \u001b[0;36m_get_score_aggregation\u001b[0;34m(self, data, time_frame, scope)\u001b[0m\n\u001b[1;32m 233\u001b[0m \u001b[0mscore_aggregation_all\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;31m \u001b[0m\u001b[0;31m\\\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 234\u001b[0m \u001b[0mfiltered_data\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mc\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mCOLS\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mCONTRIBUTION_RELATIVE\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;31m \u001b[0m\u001b[0;31m\\\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 235\u001b[0;31m \u001b[0mfiltered_data\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mc\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mCOLS\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mCONTRIBUTION\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_get_aggregations\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mfiltered_data\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mtotal_companies\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 236\u001b[0m score_aggregation = ScoreAggregation(\n\u001b[1;32m 237\u001b[0m \u001b[0mgrouped\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m{\u001b[0m\u001b[0;34m}\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/ITR/ITR/temperature_score.py\u001b[0m in \u001b[0;36m_get_aggregations\u001b[0;34m(self, data, total_companies)\u001b[0m\n\u001b[1;32m 197\u001b[0m \"\"\"\n\u001b[1;32m 198\u001b[0m \u001b[0mdata\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mdata\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcopy\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 199\u001b[0;31m weighted_scores = self._calculate_aggregate_score(data, self.c.COLS.TEMPERATURE_SCORE,\n\u001b[0m\u001b[1;32m 200\u001b[0m self.aggregation_method)\n\u001b[1;32m 201\u001b[0m \u001b[0mdata\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mc\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mCOLS\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mCONTRIBUTION_RELATIVE\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mweighted_scores\u001b[0m \u001b[0;34m/\u001b[0m \u001b[0;34m(\u001b[0m\u001b[0mweighted_scores\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0msum\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;34m/\u001b[0m \u001b[0;36m100\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/ITR/ITR/portfolio_aggregation.py\u001b[0m in \u001b[0;36m_calculate_aggregate_score\u001b[0;34m(self, data, input_column, portfolio_aggregation_method)\u001b[0m\n\u001b[1;32m 85\u001b[0m \u001b[0mtotal_investment_weight\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mdata\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mc\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mCOLS\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mINVESTMENT_VALUE\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0msum\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 86\u001b[0m \u001b[0;32mtry\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 87\u001b[0;31m return data.apply(\n\u001b[0m\u001b[1;32m 88\u001b[0m \u001b[0;32mlambda\u001b[0m \u001b[0mrow\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0;34m(\u001b[0m\u001b[0mrow\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mc\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mCOLS\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mINVESTMENT_VALUE\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;34m*\u001b[0m \u001b[0mrow\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0minput_column\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;34m/\u001b[0m \u001b[0mtotal_investment_weight\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 89\u001b[0m axis=1)\n", + "\u001b[0;32m/opt/app-root/lib64/python3.8/site-packages/pandas/core/frame.py\u001b[0m in \u001b[0;36mapply\u001b[0;34m(self, func, axis, raw, result_type, args, **kwargs)\u001b[0m\n\u001b[1;32m 8738\u001b[0m \u001b[0mkwargs\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 8739\u001b[0m )\n\u001b[0;32m-> 8740\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mop\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mapply\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 8741\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 8742\u001b[0m def applymap(\n", + "\u001b[0;32m/opt/app-root/lib64/python3.8/site-packages/pandas/core/apply.py\u001b[0m in \u001b[0;36mapply\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 686\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mapply_raw\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 687\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 688\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mapply_standard\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 689\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 690\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0magg\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m/opt/app-root/lib64/python3.8/site-packages/pandas/core/apply.py\u001b[0m in \u001b[0;36mapply_standard\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 810\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 811\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0mapply_standard\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 812\u001b[0;31m \u001b[0mresults\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mres_index\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mapply_series_generator\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 813\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 814\u001b[0m \u001b[0;31m# wrap results\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m/opt/app-root/lib64/python3.8/site-packages/pandas/core/apply.py\u001b[0m in \u001b[0;36mapply_series_generator\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 826\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0mi\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mv\u001b[0m \u001b[0;32min\u001b[0m \u001b[0menumerate\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mseries_gen\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 827\u001b[0m \u001b[0;31m# ignore SettingWithCopy here in case the user mutates\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 828\u001b[0;31m \u001b[0mresults\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mi\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mf\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mv\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 829\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0misinstance\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mresults\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mi\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mABCSeries\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 830\u001b[0m \u001b[0;31m# If we have a view on v, we need to make a copy because\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/ITR/ITR/portfolio_aggregation.py\u001b[0m in \u001b[0;36m\u001b[0;34m(row)\u001b[0m\n\u001b[1;32m 86\u001b[0m \u001b[0;32mtry\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 87\u001b[0m return data.apply(\n\u001b[0;32m---> 88\u001b[0;31m \u001b[0;32mlambda\u001b[0m \u001b[0mrow\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0;34m(\u001b[0m\u001b[0mrow\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mc\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mCOLS\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mINVESTMENT_VALUE\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;34m*\u001b[0m \u001b[0mrow\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0minput_column\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;34m/\u001b[0m \u001b[0mtotal_investment_weight\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 89\u001b[0m axis=1)\n\u001b[1;32m 90\u001b[0m \u001b[0;32mexcept\u001b[0m \u001b[0mZeroDivisionError\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m/opt/app-root/lib64/python3.8/site-packages/pint/quantity.py\u001b[0m in \u001b[0;36m__mul__\u001b[0;34m(self, other)\u001b[0m\n\u001b[1;32m 1319\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1320\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0m__mul__\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mother\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1321\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_mul_div\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mother\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0moperator\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mmul\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 1322\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1323\u001b[0m \u001b[0m__rmul__\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0m__mul__\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m/opt/app-root/lib64/python3.8/site-packages/pint/quantity.py\u001b[0m in \u001b[0;36mwrapped\u001b[0;34m(self, *args, **kwargs)\u001b[0m\n\u001b[1;32m 138\u001b[0m \u001b[0;32melif\u001b[0m \u001b[0misinstance\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mother\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mlist\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;32mand\u001b[0m \u001b[0mother\u001b[0m \u001b[0;32mand\u001b[0m \u001b[0misinstance\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mother\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m0\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mtype\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 139\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mNotImplemented\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 140\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mf\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m*\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 141\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 142\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mwrapped\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m/opt/app-root/lib64/python3.8/site-packages/pint/quantity.py\u001b[0m in \u001b[0;36mwrapped\u001b[0;34m(self, *args, **kwargs)\u001b[0m\n\u001b[1;32m 118\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0mireduce_dimensions\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mf\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 119\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0mwrapped\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m*\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 120\u001b[0;31m \u001b[0mresult\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mf\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m*\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 121\u001b[0m \u001b[0;32mtry\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 122\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mresult\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_REGISTRY\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mauto_reduce_dimensions\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m/opt/app-root/lib64/python3.8/site-packages/pint/quantity.py\u001b[0m in \u001b[0;36m_mul_div\u001b[0;34m(self, other, magnitude_op, units_op)\u001b[0m\n\u001b[1;32m 1267\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1268\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_ok_for_muldiv\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mno_offset_units_self\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1269\u001b[0;31m \u001b[0;32mraise\u001b[0m \u001b[0mOffsetUnitCalculusError\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_units\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mgetattr\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mother\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m\"units\"\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m\"\"\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 1270\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mlen\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0moffset_units_self\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;34m==\u001b[0m \u001b[0;36m1\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1271\u001b[0m if self._units[offset_units_self[0]] != 1 or magnitude_op not in [\n", + "\u001b[0;31mOffsetUnitCalculusError\u001b[0m: Ambiguous operation with offset unit (degree_Celsius, ). See https://pint.readthedocs.io/en/latest/nonmult.html for guidance." + ] + } + ], "source": [ "aggregated_scores = temperature_score.aggregate_scores(amended_portfolio)" ] From 90e16b4d98be16ae80c52deedeb9dde6f1e5f1a2 Mon Sep 17 00:00:00 2001 From: MichaelTiemannOSC Date: Wed, 29 Dec 2021 00:56:59 +0000 Subject: [PATCH 041/345] First end-to-end runthrough of "quick_temp_score" notebook This changeset provides the unit-tracking ability of `Pint` for temperature scores. Technically, we are tracking delta_degC not degC. And with that realization, there's probably some parts of the changes that can be made simpler (because there are many math operations one cannot do with degC that one can do with delta_degC). We leave that as an exercise for the reader. It's also quite likely that some legit math errors have crept in that need to be chased out--nowhere does the documentation tell us what the units are in the data. But sorting that should be the easy part. This branch is completely orthogonal to the rmi data branch. I did need to borrow one bugfix from there, but that's a separate world (especially considering the data units there are almost certainly different than the data units in this branch). Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- ITR/configs.py | 2 +- ITR/interfaces.py | 12 +- ITR/portfolio_aggregation.py | 33 +- ITR/temperature_score.py | 20 +- examples/quick_temp_score_calculation.ipynb | 439 ++++++++++++++++++-- examples/utils.py | 6 +- 6 files changed, 446 insertions(+), 66 deletions(-) diff --git a/ITR/configs.py b/ITR/configs.py index c6b4c620..00f0d895 100644 --- a/ITR/configs.py +++ b/ITR/configs.py @@ -101,7 +101,7 @@ class TemperatureScoreConfig(PortfolioAggregationConfig): projection_end_year=2019, tcre=Q_(2.2, ureg.delta_degC), carbon_conversion=Q_(3664.0, ureg('Gt CO2')), - scenario_target_temperature=Q_(1.5, ureg.degC) + scenario_target_temperature=Q_(1.5, ureg.delta_degC) ) diff --git a/ITR/interfaces.py b/ITR/interfaces.py index 21c31bff..9adf85cb 100644 --- a/ITR/interfaces.py +++ b/ITR/interfaces.py @@ -7,15 +7,15 @@ class AggregationContribution(BaseModel): company_name: str company_id: str temperature_score: Quantity['degC'] - contribution_relative: Optional[float] - contribution: Optional[float] + contribution_relative: Optional[Quantity['delta_degC']] + contribution: Optional[Quantity['delta_degC']] def __getitem__(self, item): return getattr(self, item) class Aggregation(PintModel): - score: Quantity['degC'] + score: Quantity['delta_degC'] proportion: float contributions: List[AggregationContribution] @@ -88,7 +88,7 @@ class IEmissionIntensityBenchmarkScopes(PintModel): S1S2: Optional[IBenchmarks] S3: Optional[IBenchmarks] S1S2S3: Optional[IBenchmarks] - benchmark_temperature: Quantity['degC'] + benchmark_temperature: Quantity['delta_degC'] benchmark_global_budget: Quantity['CO2'] is_AFOLU_included: bool @@ -189,7 +189,7 @@ class ICompanyAggregates(ICompanyData): cumulative_budget: Quantity['CO2'] cumulative_trajectory: Quantity['CO2'] cumulative_target: Quantity['CO2'] - benchmark_temperature: Quantity['degC'] + benchmark_temperature: Quantity['delta_degC'] benchmark_global_budget: Quantity['CO2'] @@ -229,7 +229,7 @@ class TemperatureScoreControls(PintModel): projection_end_year: int tcre: Quantity['delta_degC'] carbon_conversion: Quantity['CO2'] - scenario_target_temperature: Quantity['degC'] + scenario_target_temperature: Quantity['delta_degC'] def __getitem__(self, item): return getattr(self, item) diff --git a/ITR/portfolio_aggregation.py b/ITR/portfolio_aggregation.py index ad2f82b5..91ef37b8 100644 --- a/ITR/portfolio_aggregation.py +++ b/ITR/portfolio_aggregation.py @@ -2,7 +2,17 @@ from enum import Enum from typing import Type +from pint import Quantity +from pint_pandas import PintArray + import pandas as pd +import pint +import pint_pandas + +ureg = pint.get_application_registry() +Q_ = ureg.Quantity +PA_ = pint_pandas.PintArray + from .configs import PortfolioAggregationConfig, ColumnsConfig from .interfaces import EScope @@ -28,9 +38,9 @@ def is_emissions_based(method: 'PortfolioAggregationMethod') -> bool: :param method: The method to check :return: """ - return method == PortfolioAggregationMethod.MOTS or method == PortfolioAggregationMethod.EOTS or \ - method == PortfolioAggregationMethod.ECOTS or method == PortfolioAggregationMethod.AOTS or \ - method == PortfolioAggregationMethod.ROTS + return method in [PortfolioAggregationMethod.MOTS, PortfolioAggregationMethod.EOTS, + PortfolioAggregationMethod.ECOTS, PortfolioAggregationMethod.AOTS, + PortfolioAggregationMethod.ROTS] @staticmethod def get_value_column(method: 'PortfolioAggregationMethod', column_config: Type[ColumnsConfig]) -> str: @@ -72,7 +82,7 @@ def _check_column(self, data: pd.DataFrame, column: str): )) def _calculate_aggregate_score(self, data: pd.DataFrame, input_column: str, - portfolio_aggregation_method: PortfolioAggregationMethod) -> pd.Series: + portfolio_aggregation_method: PortfolioAggregationMethod) -> PintArray: """ Aggregate the scores in a given column based on a certain portfolio aggregation method. @@ -84,9 +94,9 @@ def _calculate_aggregate_score(self, data: pd.DataFrame, input_column: str, if portfolio_aggregation_method == PortfolioAggregationMethod.WATS: total_investment_weight = data[self.c.COLS.INVESTMENT_VALUE].sum() try: - return data.apply( - lambda row: (row[self.c.COLS.INVESTMENT_VALUE] * row[input_column]) / total_investment_weight, - axis=1) + return PA_(data.apply( + lambda row: row[self.c.COLS.INVESTMENT_VALUE] * row[input_column].m / total_investment_weight, + axis=1), dtype=ureg.delta_degC) except ZeroDivisionError: raise ValueError("The portfolio weight is not allowed to be zero") @@ -101,8 +111,8 @@ def _calculate_aggregate_score(self, data: pd.DataFrame, input_column: str, # Calculate the total emissions of all companies emissions = (use_S1S2 * data[self.c.COLS.GHG_SCOPE12]).sum() + (use_S3 * data[self.c.COLS.GHG_SCOPE3]).sum() try: - return (use_S1S2 * data[self.c.COLS.GHG_SCOPE12] + use_S3 * data[self.c.COLS.GHG_SCOPE3]) / emissions * \ - data[input_column] + return PA_((use_S1S2 * data[self.c.COLS.GHG_SCOPE12] + use_S3 * data[self.c.COLS.GHG_SCOPE3]) / emissions * \ + data[input_column], dtype=ureg.delta_degC) except ZeroDivisionError: raise ValueError("The total emissions should be higher than zero") @@ -126,6 +136,7 @@ def _calculate_aggregate_score(self, data: pd.DataFrame, input_column: str, self._check_column(data, self.c.COLS.GHG_SCOPE12) if use_S3.any(): self._check_column(data, self.c.COLS.GHG_SCOPE3) + error () # not yet handled... data[self.c.COLS.OWNED_EMISSIONS] = (data[self.c.COLS.INVESTMENT_VALUE] / data[value_column]) * ( use_S1S2 * data[self.c.COLS.GHG_SCOPE12] + use_S3 * data[self.c.COLS.GHG_SCOPE3]) except ZeroDivisionError: @@ -134,9 +145,9 @@ def _calculate_aggregate_score(self, data: pd.DataFrame, input_column: str, try: # Calculate the MOTS value per company - return data.apply( + return PA_(data.apply( lambda row: (row[self.c.COLS.OWNED_EMISSIONS] / owned_emissions) * row[input_column], - axis=1 + axis=1), dtype=ureg.delta_degC ) except ZeroDivisionError: raise ValueError("The total owned emissions can not be zero") diff --git a/ITR/temperature_score.py b/ITR/temperature_score.py index e098f37d..0c3e37a9 100644 --- a/ITR/temperature_score.py +++ b/ITR/temperature_score.py @@ -1,5 +1,6 @@ from typing import Optional, Tuple, Type, List from pint import Quantity +from pint_pandas import PintArray import pandas as pd import numpy as np @@ -9,6 +10,7 @@ ureg = pint.get_application_registry() Q_ = ureg.Quantity +PA_ = pint_pandas.PintArray from ITR.interfaces import EScope, ETimeFrames, Aggregation, AggregationContribution, ScoreAggregation, \ ScoreAggregationScopes, ScoreAggregations, PortfolioCompany @@ -28,7 +30,7 @@ class TemperatureScore(PortfolioAggregation): class and overwriting one of the parameters. """ - def __init__(self, time_frames: List[ETimeFrames], scopes: List[EScope], fallback_score: float = Q_(3.2, ureg.degC), + def __init__(self, time_frames: List[ETimeFrames], scopes: List[EScope], fallback_score: float = Q_(3.2, ureg.delta_degC), aggregation_method: PortfolioAggregationMethod = PortfolioAggregationMethod.WATS, grouping: Optional[List] = None, config: Type[TemperatureScoreConfig] = TemperatureScoreConfig): super().__init__(config) @@ -43,7 +45,7 @@ def __init__(self, time_frames: List[ETimeFrames], scopes: List[EScope], fallbac if grouping is not None: self.grouping = grouping - def get_score(self, scorable_row: pd.Series) -> Tuple[Quantity['degC'], Quantity['degC'], float, Quantity['degC'], float, float]: + def get_score(self, scorable_row: pd.Series) -> Tuple[Quantity['delta_degC'], Quantity['delta_degC'], float, Quantity['delta_degC'], float, Quantity['delta_degC']]: """ Get the temperature score for a certain target based on the annual reduction rate and the regression parameters. @@ -75,9 +77,9 @@ def get_score(self, scorable_row: pd.Series) -> Tuple[Quantity['degC'], Quantity # Safeguard: If score is NaN due to missing data assign default score. if np.isnan(score): return self.get_default_score(scorable_row), 1 - return score, trajectory_temperature_score, trajectory_overshoot_ratio, target_temperature_score, target_overshoot_ratio, 0 + return score, trajectory_temperature_score, trajectory_overshoot_ratio, target_temperature_score, target_overshoot_ratio, Q_(0.0, ureg.delta_degC) - def get_ghc_temperature_score(self, row: pd.Series, company_data: pd.DataFrame) -> Tuple[Quantity['degC'], Quantity['degC']]: + def get_ghc_temperature_score(self, row: pd.Series, company_data: pd.DataFrame) -> Tuple[Quantity['delta_degC'], Quantity['delta_degC']]: """ Get the aggregated temperature score and a temperature result, which indicates how much of the score is based on the default score for a certain company based on the emissions of company. @@ -106,7 +108,7 @@ def get_ghc_temperature_score(self, row: pd.Series, company_data: pd.DataFrame) except ZeroDivisionError: raise ValueError("The mean of the S1+S2 plus the S3 emissions is zero") - def get_default_score(self, target: pd.Series) -> Quantity['degC']: + def get_default_score(self, target: pd.Series) -> Quantity['delta_degC']: """ :param target: The target as a row of a dataframe :return: The temperature score @@ -198,14 +200,14 @@ def _get_aggregations(self, data: pd.DataFrame, total_companies: int) -> Tuple[A data = data.copy() weighted_scores = self._calculate_aggregate_score(data, self.c.COLS.TEMPERATURE_SCORE, self.aggregation_method) - data[self.c.COLS.CONTRIBUTION_RELATIVE] = weighted_scores / (weighted_scores.sum() / 100) + data[self.c.COLS.CONTRIBUTION_RELATIVE] = PA_(weighted_scores.quantity.m / (weighted_scores.quantity.m.sum() / 100), ureg.delta_degC) data[self.c.COLS.CONTRIBUTION] = weighted_scores contributions = data \ + .where(pd.notnull(data), 0) \ .sort_values(self.c.COLS.CONTRIBUTION_RELATIVE, ascending=False) \ - .where(pd.notnull(data), None) \ .to_dict(orient="records") aggregations = Aggregation( - score=weighted_scores.sum(), + score=Q_(weighted_scores.quantity.m.sum(), ureg.delta_degC), proportion=len(weighted_scores) / (total_companies / 100.0), contributions=[AggregationContribution.parse_obj(contribution) for contribution in contributions] ), \ @@ -237,7 +239,7 @@ def _get_score_aggregation(self, data: pd.DataFrame, time_frame: ETimeFrames, sc grouped={}, all=score_aggregation_all, influence_percentage=self._calculate_aggregate_score( - filtered_data, self.c.TEMPERATURE_RESULTS, self.aggregation_method).sum() * 100) + filtered_data, self.c.TEMPERATURE_RESULTS, self.aggregation_method).quantity.m.sum() * 100) # If there are grouping column(s) we'll group in pandas and pass the results to the aggregation if len(self.grouping) > 0: diff --git a/examples/quick_temp_score_calculation.ipynb b/examples/quick_temp_score_calculation.ipynb index 31d8cbec..7438ca30 100644 --- a/examples/quick_temp_score_calculation.ipynb +++ b/examples/quick_temp_score_calculation.ipynb @@ -499,27 +499,11 @@ "metadata": {}, "outputs": [ { - "ename": "OffsetUnitCalculusError", - "evalue": "Ambiguous operation with offset unit (degree_Celsius, ). See https://pint.readthedocs.io/en/latest/nonmult.html for guidance.", - "output_type": "error", - "traceback": [ - "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[0;31mOffsetUnitCalculusError\u001b[0m Traceback (most recent call last)", - "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0maggregated_scores\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mtemperature_score\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0maggregate_scores\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mamended_portfolio\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", - "\u001b[0;32m~/ITR/ITR/temperature_score.py\u001b[0m in \u001b[0;36maggregate_scores\u001b[0;34m(self, data)\u001b[0m\n\u001b[1;32m 264\u001b[0m \u001b[0mscore_aggregation_scopes\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mScoreAggregationScopes\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 265\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0mscope\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mscopes\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 266\u001b[0;31m \u001b[0mscore_aggregation_scopes\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m__setattr__\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mscope\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mname\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_get_score_aggregation\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mdata\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mtime_frame\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mscope\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 267\u001b[0m \u001b[0mscore_aggregations\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m__setattr__\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mtime_frame\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mvalue\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mscore_aggregation_scopes\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 268\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m~/ITR/ITR/temperature_score.py\u001b[0m in \u001b[0;36m_get_score_aggregation\u001b[0;34m(self, data, time_frame, scope)\u001b[0m\n\u001b[1;32m 233\u001b[0m \u001b[0mscore_aggregation_all\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;31m \u001b[0m\u001b[0;31m\\\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 234\u001b[0m \u001b[0mfiltered_data\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mc\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mCOLS\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mCONTRIBUTION_RELATIVE\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;31m \u001b[0m\u001b[0;31m\\\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 235\u001b[0;31m \u001b[0mfiltered_data\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mc\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mCOLS\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mCONTRIBUTION\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_get_aggregations\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mfiltered_data\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mtotal_companies\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 236\u001b[0m score_aggregation = ScoreAggregation(\n\u001b[1;32m 237\u001b[0m \u001b[0mgrouped\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m{\u001b[0m\u001b[0;34m}\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m~/ITR/ITR/temperature_score.py\u001b[0m in \u001b[0;36m_get_aggregations\u001b[0;34m(self, data, total_companies)\u001b[0m\n\u001b[1;32m 197\u001b[0m \"\"\"\n\u001b[1;32m 198\u001b[0m \u001b[0mdata\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mdata\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcopy\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 199\u001b[0;31m weighted_scores = self._calculate_aggregate_score(data, self.c.COLS.TEMPERATURE_SCORE,\n\u001b[0m\u001b[1;32m 200\u001b[0m self.aggregation_method)\n\u001b[1;32m 201\u001b[0m \u001b[0mdata\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mc\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mCOLS\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mCONTRIBUTION_RELATIVE\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mweighted_scores\u001b[0m \u001b[0;34m/\u001b[0m \u001b[0;34m(\u001b[0m\u001b[0mweighted_scores\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0msum\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;34m/\u001b[0m \u001b[0;36m100\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m~/ITR/ITR/portfolio_aggregation.py\u001b[0m in \u001b[0;36m_calculate_aggregate_score\u001b[0;34m(self, data, input_column, portfolio_aggregation_method)\u001b[0m\n\u001b[1;32m 85\u001b[0m \u001b[0mtotal_investment_weight\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mdata\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mc\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mCOLS\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mINVESTMENT_VALUE\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0msum\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 86\u001b[0m \u001b[0;32mtry\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 87\u001b[0;31m return data.apply(\n\u001b[0m\u001b[1;32m 88\u001b[0m \u001b[0;32mlambda\u001b[0m \u001b[0mrow\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0;34m(\u001b[0m\u001b[0mrow\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mc\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mCOLS\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mINVESTMENT_VALUE\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;34m*\u001b[0m \u001b[0mrow\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0minput_column\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;34m/\u001b[0m \u001b[0mtotal_investment_weight\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 89\u001b[0m axis=1)\n", - "\u001b[0;32m/opt/app-root/lib64/python3.8/site-packages/pandas/core/frame.py\u001b[0m in \u001b[0;36mapply\u001b[0;34m(self, func, axis, raw, result_type, args, **kwargs)\u001b[0m\n\u001b[1;32m 8738\u001b[0m \u001b[0mkwargs\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 8739\u001b[0m )\n\u001b[0;32m-> 8740\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mop\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mapply\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 8741\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 8742\u001b[0m def applymap(\n", - "\u001b[0;32m/opt/app-root/lib64/python3.8/site-packages/pandas/core/apply.py\u001b[0m in \u001b[0;36mapply\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 686\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mapply_raw\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 687\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 688\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mapply_standard\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 689\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 690\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0magg\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m/opt/app-root/lib64/python3.8/site-packages/pandas/core/apply.py\u001b[0m in \u001b[0;36mapply_standard\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 810\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 811\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0mapply_standard\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 812\u001b[0;31m \u001b[0mresults\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mres_index\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mapply_series_generator\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 813\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 814\u001b[0m \u001b[0;31m# wrap results\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m/opt/app-root/lib64/python3.8/site-packages/pandas/core/apply.py\u001b[0m in \u001b[0;36mapply_series_generator\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 826\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0mi\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mv\u001b[0m \u001b[0;32min\u001b[0m \u001b[0menumerate\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mseries_gen\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 827\u001b[0m \u001b[0;31m# ignore SettingWithCopy here in case the user mutates\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 828\u001b[0;31m \u001b[0mresults\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mi\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mf\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mv\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 829\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0misinstance\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mresults\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mi\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mABCSeries\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 830\u001b[0m \u001b[0;31m# If we have a view on v, we need to make a copy because\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m~/ITR/ITR/portfolio_aggregation.py\u001b[0m in \u001b[0;36m\u001b[0;34m(row)\u001b[0m\n\u001b[1;32m 86\u001b[0m \u001b[0;32mtry\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 87\u001b[0m return data.apply(\n\u001b[0;32m---> 88\u001b[0;31m \u001b[0;32mlambda\u001b[0m \u001b[0mrow\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0;34m(\u001b[0m\u001b[0mrow\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mc\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mCOLS\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mINVESTMENT_VALUE\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;34m*\u001b[0m \u001b[0mrow\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0minput_column\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;34m/\u001b[0m \u001b[0mtotal_investment_weight\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 89\u001b[0m axis=1)\n\u001b[1;32m 90\u001b[0m \u001b[0;32mexcept\u001b[0m \u001b[0mZeroDivisionError\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m/opt/app-root/lib64/python3.8/site-packages/pint/quantity.py\u001b[0m in \u001b[0;36m__mul__\u001b[0;34m(self, other)\u001b[0m\n\u001b[1;32m 1319\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1320\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0m__mul__\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mother\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1321\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_mul_div\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mother\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0moperator\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mmul\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 1322\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1323\u001b[0m \u001b[0m__rmul__\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0m__mul__\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m/opt/app-root/lib64/python3.8/site-packages/pint/quantity.py\u001b[0m in \u001b[0;36mwrapped\u001b[0;34m(self, *args, **kwargs)\u001b[0m\n\u001b[1;32m 138\u001b[0m \u001b[0;32melif\u001b[0m \u001b[0misinstance\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mother\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mlist\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;32mand\u001b[0m \u001b[0mother\u001b[0m \u001b[0;32mand\u001b[0m \u001b[0misinstance\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mother\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m0\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mtype\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 139\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mNotImplemented\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 140\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mf\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m*\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 141\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 142\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mwrapped\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m/opt/app-root/lib64/python3.8/site-packages/pint/quantity.py\u001b[0m in \u001b[0;36mwrapped\u001b[0;34m(self, *args, **kwargs)\u001b[0m\n\u001b[1;32m 118\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0mireduce_dimensions\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mf\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 119\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0mwrapped\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m*\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 120\u001b[0;31m \u001b[0mresult\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mf\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m*\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 121\u001b[0m \u001b[0;32mtry\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 122\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mresult\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_REGISTRY\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mauto_reduce_dimensions\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m/opt/app-root/lib64/python3.8/site-packages/pint/quantity.py\u001b[0m in \u001b[0;36m_mul_div\u001b[0;34m(self, other, magnitude_op, units_op)\u001b[0m\n\u001b[1;32m 1267\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1268\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_ok_for_muldiv\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mno_offset_units_self\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1269\u001b[0;31m \u001b[0;32mraise\u001b[0m \u001b[0mOffsetUnitCalculusError\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_units\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mgetattr\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mother\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m\"units\"\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m\"\"\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 1270\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mlen\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0moffset_units_self\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;34m==\u001b[0m \u001b[0;36m1\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1271\u001b[0m if self._units[offset_units_self[0]] != 1 or magnitude_op not in [\n", - "\u001b[0;31mOffsetUnitCalculusError\u001b[0m: Ambiguous operation with offset unit (degree_Celsius, ). See https://pint.readthedocs.io/en/latest/nonmult.html for guidance." + "name": "stderr", + "output_type": "stream", + "text": [ + "/opt/app-root/lib64/python3.8/site-packages/pint_pandas/pint_array.py:648: UnitStrippedWarning: The unit of the quantity is stripped when downcasting to ndarray.\n", + " return np.array(qtys, dtype=\"object\", copy=copy)\n" ] } ], @@ -529,9 +513,26 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 16, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/html": [ + "1.5000000000000004 delta_degree_Celsius" + ], + "text/latex": [ + "$1.5000000000000004\\ \\mathrm{delta\\_degree\\_Celsius}$" + ], + "text/plain": [ + "1.5000000000000004 " + ] + }, + "execution_count": 16, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "aggregated_scores.long.S1S2.all.score" ] @@ -552,11 +553,20 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 17, "metadata": { "scrolled": true }, - "outputs": [], + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/opt/app-root/lib64/python3.8/site-packages/pandas/core/dtypes/cast.py:1990: UnitStrippedWarning: The unit of the quantity is stripped when downcasting to ndarray.\n", + " result[:] = values\n" + ] + } + ], "source": [ "grouping = ['sector', 'region']\n", "temperature_score.grouping = grouping\n", @@ -580,9 +590,22 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 18, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], "source": [ "analysis_parameters = ([ETimeFrames.LONG], [EScope.S1S2], grouping)\n", "plot_grouped_heatmap(grouped_aggregations, analysis_parameters)" @@ -590,9 +613,163 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 19, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
groupcompany_namecompany_idtemperature_scorecontribution_relative
0Steel-AsiaCompany JBR00000000101.5 degree_Celsius9.090909090909093 delta_degree_Celsius
1Steel-AsiaCompany LBR00000000121.5 degree_Celsius9.090909090909093 delta_degree_Celsius
2Steel-AsiaCompany GCN00000000071.5 degree_Celsius9.090909090909093 delta_degree_Celsius
3Steel-AsiaCompany HCN00000000081.5 degree_Celsius9.090909090909093 delta_degree_Celsius
4Steel-AsiaCompany ICN00000000091.5 degree_Celsius9.090909090909093 delta_degree_Celsius
5Steel-AsiaCompany CIT00000000031.5 degree_Celsius9.090909090909093 delta_degree_Celsius
6Steel-AsiaCompany AJP00000000011.5 degree_Celsius9.090909090909093 delta_degree_Celsius
7Steel-AsiaCompany FNL00000000061.5 degree_Celsius9.090909090909093 delta_degree_Celsius
8Steel-AsiaCompany DSE00000000041.5 degree_Celsius9.090909090909093 delta_degree_Celsius
9Steel-AsiaCompany ESE00000000051.5 degree_Celsius9.090909090909093 delta_degree_Celsius
10Steel-AsiaCompany AWUS71344810811.5 degree_Celsius9.090909090909093 delta_degree_Celsius
\n", + "
" + ], + "text/plain": [ + " group company_name company_id temperature_score \\\n", + "0 Steel-Asia Company J BR0000000010 1.5 degree_Celsius \n", + "1 Steel-Asia Company L BR0000000012 1.5 degree_Celsius \n", + "2 Steel-Asia Company G CN0000000007 1.5 degree_Celsius \n", + "3 Steel-Asia Company H CN0000000008 1.5 degree_Celsius \n", + "4 Steel-Asia Company I CN0000000009 1.5 degree_Celsius \n", + "5 Steel-Asia Company C IT0000000003 1.5 degree_Celsius \n", + "6 Steel-Asia Company A JP0000000001 1.5 degree_Celsius \n", + "7 Steel-Asia Company F NL0000000006 1.5 degree_Celsius \n", + "8 Steel-Asia Company D SE0000000004 1.5 degree_Celsius \n", + "9 Steel-Asia Company E SE0000000005 1.5 degree_Celsius \n", + "10 Steel-Asia Company AW US7134481081 1.5 degree_Celsius \n", + "\n", + " contribution_relative \n", + "0 9.090909090909093 delta_degree_Celsius \n", + "1 9.090909090909093 delta_degree_Celsius \n", + "2 9.090909090909093 delta_degree_Celsius \n", + "3 9.090909090909093 delta_degree_Celsius \n", + "4 9.090909090909093 delta_degree_Celsius \n", + "5 9.090909090909093 delta_degree_Celsius \n", + "6 9.090909090909093 delta_degree_Celsius \n", + "7 9.090909090909093 delta_degree_Celsius \n", + "8 9.090909090909093 delta_degree_Celsius \n", + "9 9.090909090909093 delta_degree_Celsius \n", + "10 9.090909090909093 delta_degree_Celsius " + ] + }, + "execution_count": 19, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "region = 'Asia'\n", "sector = 'Steel'\n", @@ -622,9 +799,20 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 20, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/opt/app-root/lib64/python3.8/site-packages/pandas/core/dtypes/cast.py:1990: UnitStrippedWarning: The unit of the quantity is stripped when downcasting to ndarray.\n", + " result[:] = values\n", + "/opt/app-root/lib64/python3.8/site-packages/pint_pandas/pint_array.py:648: UnitStrippedWarning: The unit of the quantity is stripped when downcasting to ndarray.\n", + " return np.array(qtys, dtype=\"object\", copy=copy)\n" + ] + } + ], "source": [ "time_frames = [ETimeFrames.LONG]\n", "scopes = [EScope.S1S2]\n", @@ -641,9 +829,22 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 21, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "image/png": "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kgXHHnvswunTp7dIJBI7n3baad2TyWTba665Zmbnzp1XDRs2bOJ77703ccaMGc1uuummrd96662J48aN+2SPPfZYesMNN5SvWLHCLrzwwu7//Oc/Pxs7duwnZ5xxxuzLLrusS+jXJJtGhyNFRESyoEOHDjVjxowZ99JLL7V7/fXX251xxhk9fvWrX01NXebNN9/c7LPPPmu155579gFYtWqV9e/ff/FHH33U8tNPP2194IEH9gKoqamhrKxsVYjXIU1HRZiIiEiWNGvWjCOPPHLRkUceuWjXXXdd9vDDD3dMne/u7Lvvvgufe+65L1Kn//e//229ww47LBs9evT47CaWTFIRVgQSVckSoEN82xxoBawElgMr4p/LgUWTBw9aGSimSNYkqpKlrL1PtCTaF2r3h9qfCycPHqTWBmkSH374YcuSkhJ22WWXFQAffPBB665du66cOnVqiwULFpRsvfXW7L///ksuvfTS7mPGjGm58847r1i4cGHJ5MmTm++6667L586d2+y1117b7OCDD16yYsUK+/jjj1sOGDBgeejXJRtPRVgBiD9QEkDvOrftgC2AdoClsSpPVCVnA9OAr4DPgc+AscCIyYMHLWry8CIZkKhKNiN6/9fdJxJE+0Rb0t8nZhHtE1/yzT4xBhg5efCgJU0eXrIi3SElmtLChQtLL7zwwu4LFy4sLS0t9UQiseKhhx768oEHHthy4MCBvcrLy1e+9957E4cMGTL55JNP3n7lypUGcO21107bddddVzz22GOfXXjhhd0XLVpUumbNGvvxj39crSIsv+kC3nkoUZVsBVQA+8W3CqB1hjdbA4wD3ku5fTx58CC9gSS4RFWyDbAP3+wTexK1bmXSGqJirHZ/GA58on0iN3344YeTd9ttt9mhc0j2ffjhh5122223ROgc9VERlicSVclewEnAIWTnAyYdXwPPAc8Ar08ePGhF2DhSTBJVyZ2I9omDgQFALpyuPxV4lmifeFOHMnOHirDipSJMNkqiKrktcHJ86xc2TaMWAS8BTwHPqCCTTEhUJXsApxDtEzsFjtOY+cALRPvEcyrIwlIRVrxUhEnaElXJ5kQfMucBe5Nev5VcMxt4APjL5MGDJgfOInkuPvx+OnAuUYtXPvoauA8YMnnwoKmNLSxNT0VY8VIRJo1KVCW3ICq8LgC2CRynqdQQtY7dBbw4efAgXZJD0paoSpYBP4lvnQPHaSpriA7h3wW8pv5j2aMirHjlchGmEfMDS1Qlt01UJe8ApgA3UzgFGETvryOA54EPE1XJY8PGkXyQqEr2TFQlhxCdoXsdhVOAAZQCxwKvAO8nqpIDw8YRkZDUEhZIoirZAbgauJDc6GSfLe8BV00ePOhfoYNIbklUJTsSFV3nU1zD57xFtE+8EzpIIVNLWPHK5ZYwFWFZFo/pdR7Rh01Z2DRB/Qv4RYixeiS3JKqSLYgOw19DNHBqsXoBuGLy4EFjQgcpRHWLsKHDq/s35forK8ob/V9WWlrav2fPnstqHx933HFzb7rppq/33HPP3rfeeuuU7373u0s3ZJvvvvtu6ylTprQ46aSTFtQ3/6233mrzwAMPdHzwwQenrG8d++233w5PPfXUFwD33XffllVVVbPS3f7zzz/f7rbbbit/4403JtVOO/744xNHHnnkgrPOOmve9ddf3/nnP//57Hbt2tWkbqtTp05r2rRps/vSpUs/mDx5cvPzzz+/20svvfR53dfz6KOPdhg7dmzrm2666et0M9Unl4swHY7MokRV8lDgI+BOirsAAzgQeC9RlbwtHuNJilCiKnkM0WDAt1LcBRhEh+5HJaqSN8SFqRSYli1b1owfP35c7W1Ti4sRI0a0SSaTHeqbt2rVKr773e8ubagAAxg2bNikTp06rZkzZ07p/fff36SH/ocMGVK+ePHi/9UZtdtKXSaRSKx66aWXPod1X8+pp566YFN/R7lORVgWJKqSHRJVyb8CLwN9Q+fJIaXAJcDHiarkgaHDSPYkqpKdElXJfxCNp7VD4Di5pDlRi+DoRFVyn9BhJPuefvrp9v369evTt2/fHQ8//PDtFyxYUAIwbNiwNrvvvnuf3r17991ll112nDNnTunNN9+8zXPPPbdFnz59+t57771bXHLJJdsce+yx2+2xxx59jjvuuO2ef/75dgcccMAOAAsWLCg54YQTEr169erbq1evvg8++ODmAF26dNllxowZzS699NKuU6ZMadmnT5++5513XtfKysrEww8/vHltrqOPPnq7Rx55ZPN6Itfrxhtv7Dxz5szm++23X6+99tqrV+q2UpebMGFCi549e+60fPlyq/t67rjjjo4/+MEPugNMnz692WGHHdZj55133nHnnXfe8ZVXXtkMIJlMtu3Tp0/fPn36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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], "source": [ "plot_grouped_statistics(aggregated_portfolio, company_contributions, analysis_parameters)" ] @@ -659,9 +860,175 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 22, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
company_namecompany_idsectorcontributiontemperature_scoreownership_percentageportfolio_percentage
1Company MAR0000000013Steel3.076923076923076 delta_degree_Celsius1.5 degree_Celsius1.073.08
28Company KBR0000000011Steel3.076923076923076 delta_degree_Celsius1.5 degree_Celsius1.013.08
27Company LBR0000000012Steel3.076923076923076 delta_degree_Celsius1.5 degree_Celsius0.153.08
24Company GCN0000000007Steel3.076923076923076 delta_degree_Celsius1.5 degree_Celsius0.053.08
23Company HCN0000000008Steel3.076923076923076 delta_degree_Celsius1.5 degree_Celsius0.183.08
22Company ICN0000000009Steel3.076923076923076 delta_degree_Celsius1.5 degree_Celsius0.333.08
17Company CIT0000000003Steel3.076923076923076 delta_degree_Celsius1.5 degree_Celsius0.343.08
16Company AJP0000000001Steel3.076923076923076 delta_degree_Celsius1.5 degree_Celsius1.073.08
14Company BNL0000000002Steel3.076923076923076 delta_degree_Celsius1.5 degree_Celsius1.513.08
13Company FNL0000000006Steel3.076923076923076 delta_degree_Celsius1.5 degree_Celsius0.113.08
\n", + "
" + ], + "text/plain": [ + " company_name company_id sector contribution \\\n", + "1 Company M AR0000000013 Steel 3.076923076923076 delta_degree_Celsius \n", + "28 Company K BR0000000011 Steel 3.076923076923076 delta_degree_Celsius \n", + "27 Company L BR0000000012 Steel 3.076923076923076 delta_degree_Celsius \n", + "24 Company G CN0000000007 Steel 3.076923076923076 delta_degree_Celsius \n", + "23 Company H CN0000000008 Steel 3.076923076923076 delta_degree_Celsius \n", + "22 Company I CN0000000009 Steel 3.076923076923076 delta_degree_Celsius \n", + "17 Company C IT0000000003 Steel 3.076923076923076 delta_degree_Celsius \n", + "16 Company A JP0000000001 Steel 3.076923076923076 delta_degree_Celsius \n", + "14 Company B NL0000000002 Steel 3.076923076923076 delta_degree_Celsius \n", + "13 Company F NL0000000006 Steel 3.076923076923076 delta_degree_Celsius \n", + "\n", + " temperature_score ownership_percentage portfolio_percentage \n", + "1 1.5 degree_Celsius 1.07 3.08 \n", + "28 1.5 degree_Celsius 1.01 3.08 \n", + "27 1.5 degree_Celsius 0.15 3.08 \n", + "24 1.5 degree_Celsius 0.05 3.08 \n", + "23 1.5 degree_Celsius 0.18 3.08 \n", + "22 1.5 degree_Celsius 0.33 3.08 \n", + "17 1.5 degree_Celsius 0.34 3.08 \n", + "16 1.5 degree_Celsius 1.07 3.08 \n", + "14 1.5 degree_Celsius 1.51 3.08 \n", + "13 1.5 degree_Celsius 0.11 3.08 " + ] + }, + "execution_count": 22, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "sector_contributions = company_contributions[['company_name', 'company_id', 'sector', 'contribution', 'temperature_score', 'ownership_percentage', 'portfolio_percentage']]\n", "sector_contributions.loc[sector_contributions['sector'] == 'Steel'][:10].round(2)" @@ -681,7 +1048,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 23, "metadata": { "pycharm": { "name": "#%%\n" diff --git a/examples/utils.py b/examples/utils.py index 8544c0cd..8fb9cc76 100644 --- a/examples/utils.py +++ b/examples/utils.py @@ -66,9 +66,9 @@ def plot_grouped_statistics(aggregated_portfolio, company_contributions, analysi timeframe = str(timeframe[0]).lower() sector_investments = company_contributions.groupby(grouping).investment_value.sum().values - sector_contributions = company_contributions.groupby(grouping).contribution.sum().values + sector_contributions = [v.m for v in company_contributions.groupby(grouping).contribution.sum().values] sector_names = company_contributions.groupby(grouping).contribution.sum().keys() - sector_temp_scores = [aggregation.score for aggregation in aggregated_portfolio[timeframe][scope]['grouped'].values()] + sector_temp_scores = [v.m for v in [aggregation.score for aggregation in aggregated_portfolio[timeframe][scope]['grouped'].values()]] sector_temp_scores, sector_names, sector_contributions, sector_investments = \ zip(*sorted(zip(sector_temp_scores, sector_names, sector_contributions, sector_investments), reverse=True)) @@ -145,7 +145,7 @@ def plot_grouped_heatmap(grouped_aggregations, analysis_parameters): for j, item_group_1 in enumerate(groups[group_1]): key = item_group_1+'-'+item_group_2 if key in combinations: - grid[i, j] = aggregations[item_group_1+'-'+item_group_2].score + grid[i, j] = aggregations[item_group_1+'-'+item_group_2].score.m else: grid[i, j] = np.nan From dded7bcd345a942fd4fd1a6cdc72b7da8a4bd66f Mon Sep 17 00:00:00 2001 From: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> Date: Wed, 29 Dec 2021 05:01:28 -0500 Subject: [PATCH 042/345] Update requirements.txt Add Pint, Pint-Pandas, and openscm-units. Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- requirements.txt | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/requirements.txt b/requirements.txt index 1c54a307..0837b585 100644 --- a/requirements.txt +++ b/requirements.txt @@ -5,10 +5,13 @@ Sphinx==3.0.3 sphinx-autodoc-typehints==1.10.3 sphinx-autoapi==1.8.4 sphinx-rtd-theme==0.4.3 -pandas==1.3.0 +pandas==1.3.5 xlrd==2.0.1 openpyxl==3.0.7 matplotlib==3.2.2 jupyter==1.0.0 chardet==4.0.0 -numpy==1.19.5 \ No newline at end of file +numpy==1.21.5 +Pint==0.18 +Pint-Pandas==0.2 +openscm-units=0.5.0 From 29cf2bf3b06dc22d133f0c0db56db282ffe7a85c Mon Sep 17 00:00:00 2001 From: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> Date: Wed, 29 Dec 2021 05:04:05 -0500 Subject: [PATCH 043/345] Update requirements.txt Fix typo. Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index 0837b585..1b7661f3 100644 --- a/requirements.txt +++ b/requirements.txt @@ -14,4 +14,4 @@ chardet==4.0.0 numpy==1.21.5 Pint==0.18 Pint-Pandas==0.2 -openscm-units=0.5.0 +openscm-units==0.5.0 From 3d4c481cb7fc3a8f4d7d06a71a5e8f8a86f18ab3 Mon Sep 17 00:00:00 2001 From: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> Date: Wed, 29 Dec 2021 05:09:27 -0500 Subject: [PATCH 044/345] Update requirements.txt We need iam-units, not necessarily openscm-units. Should check import statements more carefully. Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- requirements.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/requirements.txt b/requirements.txt index 1b7661f3..2992e8ac 100644 --- a/requirements.txt +++ b/requirements.txt @@ -15,3 +15,4 @@ numpy==1.21.5 Pint==0.18 Pint-Pandas==0.2 openscm-units==0.5.0 +iam-units==2021.11.12 From 94dfebe94dfd2b11c6ad8b90ae0b3a447c19b5a3 Mon Sep 17 00:00:00 2001 From: MichaelTiemannOSC Date: Wed, 29 Dec 2021 11:05:08 +0000 Subject: [PATCH 045/345] Fix lingering degC vs. delta_degC units Upon reflection, we are dealing *only* with delta_degC units. We are still seeing strange results, so more investigations are needed. Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- ITR/data/data_providers.py | 4 +- ITR/data/data_warehouse.py | 9 +- ITR/data/excel.py | 5 +- ITR/interfaces.py | 2 +- ITR/temperature_score.py | 12 +- ITR/utils.py | 2 +- examples/quick_temp_score_calculation.ipynb | 245 ++++++++++++++------ 7 files changed, 197 insertions(+), 82 deletions(-) diff --git a/ITR/data/data_providers.py b/ITR/data/data_providers.py index b15e1472..ee225b1a 100644 --- a/ITR/data/data_providers.py +++ b/ITR/data/data_providers.py @@ -138,7 +138,7 @@ class IntensityBenchmarkDataProvider(ABC): """ AFOLU_CORRECTION_FACTOR = 0.76 # AFOLU -> Acronym of agriculture, forestry and other land use - def __init__(self, benchmark_temperature: Quantity['degC'], benchmark_global_budget: Quantity['CO2'], is_AFOLU_included: bool, + def __init__(self, benchmark_temperature: Quantity['delta_degC'], benchmark_global_budget: Quantity['CO2'], is_AFOLU_included: bool, **kwargs): """ Create a new data provider instance. @@ -162,7 +162,7 @@ def is_AFOLU_included(self, value): self._is_AFOLU_included = value @property - def benchmark_temperature(self) -> Quantity['degC']: + def benchmark_temperature(self) -> Quantity['delta_degC']: """ :return: assumed temperature for the benchmark. for OECM 1.5C for example """ diff --git a/ITR/data/data_warehouse.py b/ITR/data/data_warehouse.py index 9b23f3bf..618751a6 100644 --- a/ITR/data/data_warehouse.py +++ b/ITR/data/data_warehouse.py @@ -72,11 +72,10 @@ def get_preprocessed_company_data(self, company_ids: List[str]) -> List[ICompany company_info_at_base_year), projected_production=projected_production) - print(f"self.benchmarks_projected_emission_intensity.benchmark_global_budget = {self.benchmarks_projected_emission_intensity.benchmark_global_budget}\n\n") - df_company_data.loc[:, - self.column_config.BENCHMARK_GLOBAL_BUDGET] = self.benchmarks_projected_emissionsintensity.benchmark_global_budget - df_company_data.loc[:, - self.column_config.BENCHMARK_TEMP] = self.benchmarks_projected_emissions_intensity.benchmark_temperature + df_company_data[self.column_config.BENCHMARK_GLOBAL_BUDGET] = pint_pandas.PintArray([self.benchmarks_projected_emission_intensity.benchmark_global_budget.m]* + len(df_company_data), dtype='pint[t CO2]') + df_company_data[self.column_config.BENCHMARK_TEMP] = pint_pandas.PintArray([self.benchmarks_projected_emission_intensity.benchmark_temperature.m]* + len(df_company_data), dtype='pint[delta_degC]') companies = df_company_data.reset_index().to_dict(orient="records") diff --git a/ITR/data/excel.py b/ITR/data/excel.py index 59fd2f6f..e7963e58 100644 --- a/ITR/data/excel.py +++ b/ITR/data/excel.py @@ -3,10 +3,13 @@ import numpy as np from pint import Quantity +# from pint_pandas import PintArray + import pint import pint_pandas ureg = pint.get_application_registry() Q_ = ureg.Quantity +# PA_ = pint_pandas.PintArray from pydantic import ValidationError from ITR.data.base_providers import BaseCompanyDataProvider, BaseProviderProductionBenchmark, \ @@ -80,7 +83,7 @@ def _get_projected_production(self, scope: EScope = EScope.S1S2) -> pd.DataFrame class ExcelProviderIntensityBenchmark(BaseProviderIntensityBenchmark): - def __init__(self, excel_path: str, benchmark_temperature: Quantity['degC'], + def __init__(self, excel_path: str, benchmark_temperature: Quantity['delta_degC'], benchmark_global_budget: Quantity['CO2'], is_AFOLU_included: bool, column_config: Type[ColumnsConfig] = ColumnsConfig, tempscore_config: Type[TemperatureScoreConfig] = TemperatureScoreConfig): diff --git a/ITR/interfaces.py b/ITR/interfaces.py index 9adf85cb..f54449b4 100644 --- a/ITR/interfaces.py +++ b/ITR/interfaces.py @@ -6,7 +6,7 @@ class AggregationContribution(BaseModel): company_name: str company_id: str - temperature_score: Quantity['degC'] + temperature_score: Quantity['delta_degC'] contribution_relative: Optional[Quantity['delta_degC']] contribution: Optional[Quantity['delta_degC']] diff --git a/ITR/temperature_score.py b/ITR/temperature_score.py index 0c3e37a9..d2575818 100644 --- a/ITR/temperature_score.py +++ b/ITR/temperature_score.py @@ -53,8 +53,8 @@ def get_score(self, scorable_row: pd.Series) -> Tuple[Quantity['delta_degC'], Qu :return: The temperature score """ # if either cum target or trajectory is zero return default. - if scorable_row[self.c.COLS.CUMULATIVE_TARGET] * scorable_row[self.c.COLS.CUMULATIVE_TRAJECTORY] == 0.0: - return self.get_default_score(scorable_row), np.nan, np.nan, np.nan, np.nan, 1 + if scorable_row[self.c.COLS.CUMULATIVE_TARGET].m==0 or scorable_row[self.c.COLS.CUMULATIVE_TRAJECTORY].m == 0.0: + return self.get_default_score(scorable_row), np.nan, np.nan, np.nan, np.nan, Q_(1, ureg.delta_degC) if scorable_row[self.c.COLS.CUMULATIVE_BUDGET] > 0: target_overshoot_ratio = scorable_row[self.c.COLS.CUMULATIVE_TARGET] / scorable_row[ @@ -71,12 +71,12 @@ def get_score(self, scorable_row: pd.Series) -> Tuple[Quantity['delta_degC'], Qu trajectory_temperature_score = scorable_row[self.c.COLS.BENCHMARK_TEMP] + \ (scorable_row[self.c.COLS.BENCHMARK_GLOBAL_BUDGET] * ( trajectory_overshoot_ratio - 1.0) * self.c.CONTROLS_CONFIG.tcre_multiplier) - score = Q_(target_temperature_score.m * scorable_row[self.c.COLS.TARGET_PROBABILITY] + \ - trajectory_temperature_score.m * (1 - scorable_row[self.c.COLS.TARGET_PROBABILITY]), target_temperature_score.u) + score = target_temperature_score * scorable_row[self.c.COLS.TARGET_PROBABILITY] + \ + trajectory_temperature_score * (1 - scorable_row[self.c.COLS.TARGET_PROBABILITY]) # Safeguard: If score is NaN due to missing data assign default score. if np.isnan(score): - return self.get_default_score(scorable_row), 1 + return self.get_default_score(scorable_row), target_overshoot_ratio, Q_(1.0, ureg.delta_degC) return score, trajectory_temperature_score, trajectory_overshoot_ratio, target_temperature_score, target_overshoot_ratio, Q_(0.0, ureg.delta_degC) def get_ghc_temperature_score(self, row: pd.Series, company_data: pd.DataFrame) -> Tuple[Quantity['delta_degC'], Quantity['delta_degC']]: @@ -203,8 +203,8 @@ def _get_aggregations(self, data: pd.DataFrame, total_companies: int) -> Tuple[A data[self.c.COLS.CONTRIBUTION_RELATIVE] = PA_(weighted_scores.quantity.m / (weighted_scores.quantity.m.sum() / 100), ureg.delta_degC) data[self.c.COLS.CONTRIBUTION] = weighted_scores contributions = data \ - .where(pd.notnull(data), 0) \ .sort_values(self.c.COLS.CONTRIBUTION_RELATIVE, ascending=False) \ + .where(pd.notnull(data), 0) \ .to_dict(orient="records") aggregations = Aggregation( score=Q_(weighted_scores.quantity.m.sum(), ureg.delta_degC), diff --git a/ITR/utils.py b/ITR/utils.py index a1705606..729b10c4 100644 --- a/ITR/utils.py +++ b/ITR/utils.py @@ -77,7 +77,7 @@ def get_data(data_warehouse: DataWarehouse, portfolio: List[PortfolioCompany]) - return portfolio_data -def calculate(portfolio_data: pd.DataFrame, fallback_score: Quantity['degC'], aggregation_method: PortfolioAggregationMethod, +def calculate(portfolio_data: pd.DataFrame, fallback_score: Quantity['delta_degC'], aggregation_method: PortfolioAggregationMethod, grouping: Optional[List[str]], time_frames: List[ETimeFrames], scopes: List[EScope], anonymize: bool, aggregate: bool = True, controls: Optional[TemperatureScoreControls] = None) -> Tuple[pd.DataFrame, diff --git a/examples/quick_temp_score_calculation.ipynb b/examples/quick_temp_score_calculation.ipynb index 7438ca30..55bb2c08 100644 --- a/examples/quick_temp_score_calculation.ipynb +++ b/examples/quick_temp_score_calculation.ipynb @@ -43,7 +43,6 @@ "source": [ "import pint\n", "import pint_pandas\n", - "import iam_units\n", "from openscm_units import unit_registry\n", "pint_pandas.PintType.ureg = unit_registry\n", "ureg = unit_registry\n", @@ -187,7 +186,7 @@ "metadata": {}, "outputs": [], "source": [ - "excel_EI_bm = ExcelProviderIntensityBenchmark(excel_path=\"data/OECM_EI_and_production_benchmarks.xlsx\",benchmark_temperature=Q_(1.5, ureg.degC),\n", + "excel_EI_bm = ExcelProviderIntensityBenchmark(excel_path=\"data/OECM_EI_and_production_benchmarks.xlsx\",benchmark_temperature=Q_(1.5, ureg.delta_degC),\n", " benchmark_global_budget=396 * ureg('Gt CO2'), is_AFOLU_included=False)" ] }, @@ -345,6 +344,42 @@ "/opt/app-root/lib64/python3.8/site-packages/pandas/core/dtypes/cast.py:1990: UnitStrippedWarning: The unit of the quantity is stripped when downcasting to ndarray.\n", " result[:] = values\n" ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "1.499999999687141 delta_degree_Celsius\n", + "1.499999999687141 delta_degree_Celsius\n", + "1.5000000001298415 delta_degree_Celsius\n", + "1.5000000002688683 delta_degree_Celsius\n", + "1.5000000006359404 delta_degree_Celsius\n", + "1.5000000001498563 delta_degree_Celsius\n", + "1.5000000001942115 delta_degree_Celsius\n", + "1.5000000002393006 delta_degree_Celsius\n", + "1.499999999687141 delta_degree_Celsius\n", + "1.500000000797013 delta_degree_Celsius\n", + "1.499999999946247 delta_degree_Celsius\n", + "1.5000000000437816 delta_degree_Celsius\n", + "1.50000000032397 delta_degree_Celsius\n", + "1.5000000000922724 delta_degree_Celsius\n", + "1.499999999687141 delta_degree_Celsius\n", + "1.5000000009331538 delta_degree_Celsius\n", + "1.4999999999869267 delta_degree_Celsius\n", + "1.499999999687141 delta_degree_Celsius\n", + "1.5000000001190916 delta_degree_Celsius\n", + "1.5000000002061389 delta_degree_Celsius\n", + "1.5000000004448852 delta_degree_Celsius\n", + "1.500000000329292 delta_degree_Celsius\n", + "1.5000000003696699 delta_degree_Celsius\n", + "1.500000000088038 delta_degree_Celsius\n", + "1.5000000000937326 delta_degree_Celsius\n", + "1.499999999739421 delta_degree_Celsius\n", + "1.5000000000655198 delta_degree_Celsius\n", + "1.5000000002183678 delta_degree_Celsius\n", + "1.499999999687141 delta_degree_Celsius\n", + "1.499999999687141 delta_degree_Celsius\n" + ] } ], "source": [ @@ -401,79 +436,79 @@ " Company M\n", " LONG\n", " S1S2\n", - " 1.5 degree_Celsius\n", + " 1.5 delta_degree_Celsius\n", " \n", " \n", " 1\n", " Company J\n", " LONG\n", " S1S2\n", - " 1.5 degree_Celsius\n", + " 1.5 delta_degree_Celsius\n", " \n", " \n", " 2\n", " Company K\n", " LONG\n", " S1S2\n", - " 1.5 degree_Celsius\n", + " 1.5 delta_degree_Celsius\n", " \n", " \n", " 3\n", " Company L\n", " LONG\n", " S1S2\n", - " 1.5 degree_Celsius\n", + " 1.5 delta_degree_Celsius\n", " \n", " \n", " 4\n", " Company AQ\n", " LONG\n", " S1S2\n", - " 1.5 degree_Celsius\n", + " 1.5 delta_degree_Celsius\n", " \n", " \n", " 5\n", " Company AK\n", " LONG\n", " S1S2\n", - " 1.5 degree_Celsius\n", + " 1.5 delta_degree_Celsius\n", " \n", " \n", " 6\n", " Company G\n", " LONG\n", " S1S2\n", - " 1.5 degree_Celsius\n", + " 1.5 delta_degree_Celsius\n", " \n", " \n", " 7\n", " Company H\n", " LONG\n", " S1S2\n", - " 1.5 degree_Celsius\n", + " 1.5 delta_degree_Celsius\n", " \n", " \n", " 8\n", " Company I\n", " LONG\n", " S1S2\n", - " 1.5 degree_Celsius\n", + " 1.5 delta_degree_Celsius\n", " \n", " \n", "\n", "" ], "text/plain": [ - " company_name time_frame scope temperature_score\n", - "0 Company M LONG S1S2 1.5 degree_Celsius\n", - "1 Company J LONG S1S2 1.5 degree_Celsius\n", - "2 Company K LONG S1S2 1.5 degree_Celsius\n", - "3 Company L LONG S1S2 1.5 degree_Celsius\n", - "4 Company AQ LONG S1S2 1.5 degree_Celsius\n", - "5 Company AK LONG S1S2 1.5 degree_Celsius\n", - "6 Company G LONG S1S2 1.5 degree_Celsius\n", - "7 Company H LONG S1S2 1.5 degree_Celsius\n", - "8 Company I LONG S1S2 1.5 degree_Celsius" + " company_name time_frame scope temperature_score\n", + "0 Company M LONG S1S2 1.5 delta_degree_Celsius\n", + "1 Company J LONG S1S2 1.5 delta_degree_Celsius\n", + "2 Company K LONG S1S2 1.5 delta_degree_Celsius\n", + "3 Company L LONG S1S2 1.5 delta_degree_Celsius\n", + "4 Company AQ LONG S1S2 1.5 delta_degree_Celsius\n", + "5 Company AK LONG S1S2 1.5 delta_degree_Celsius\n", + "6 Company G LONG S1S2 1.5 delta_degree_Celsius\n", + "7 Company H LONG S1S2 1.5 delta_degree_Celsius\n", + "8 Company I LONG S1S2 1.5 delta_degree_Celsius" ] }, "execution_count": 14, @@ -565,6 +600,42 @@ "/opt/app-root/lib64/python3.8/site-packages/pandas/core/dtypes/cast.py:1990: UnitStrippedWarning: The unit of the quantity is stripped when downcasting to ndarray.\n", " result[:] = values\n" ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "1.499999999687141 delta_degree_Celsius\n", + "1.499999999687141 delta_degree_Celsius\n", + "1.5000000001298415 delta_degree_Celsius\n", + "1.5000000002688683 delta_degree_Celsius\n", + "1.5000000006359404 delta_degree_Celsius\n", + "1.5000000001498563 delta_degree_Celsius\n", + "1.5000000001942115 delta_degree_Celsius\n", + "1.5000000002393006 delta_degree_Celsius\n", + "1.499999999687141 delta_degree_Celsius\n", + "1.500000000797013 delta_degree_Celsius\n", + "1.499999999946247 delta_degree_Celsius\n", + "1.5000000000437816 delta_degree_Celsius\n", + "1.50000000032397 delta_degree_Celsius\n", + "1.5000000000922724 delta_degree_Celsius\n", + "1.499999999687141 delta_degree_Celsius\n", + "1.5000000009331538 delta_degree_Celsius\n", + "1.4999999999869267 delta_degree_Celsius\n", + "1.499999999687141 delta_degree_Celsius\n", + "1.5000000001190916 delta_degree_Celsius\n", + "1.5000000002061389 delta_degree_Celsius\n", + "1.5000000004448852 delta_degree_Celsius\n", + "1.500000000329292 delta_degree_Celsius\n", + "1.5000000003696699 delta_degree_Celsius\n", + "1.500000000088038 delta_degree_Celsius\n", + "1.5000000000937326 delta_degree_Celsius\n", + "1.499999999739421 delta_degree_Celsius\n", + "1.5000000000655198 delta_degree_Celsius\n", + "1.5000000002183678 delta_degree_Celsius\n", + "1.499999999687141 delta_degree_Celsius\n", + "1.499999999687141 delta_degree_Celsius\n" + ] } ], "source": [ @@ -650,7 +721,7 @@ " Steel-Asia\n", " Company J\n", " BR0000000010\n", - " 1.5 degree_Celsius\n", + " 1.5 delta_degree_Celsius\n", " 9.090909090909093 delta_degree_Celsius\n", " \n", " \n", @@ -658,7 +729,7 @@ " Steel-Asia\n", " Company L\n", " BR0000000012\n", - " 1.5 degree_Celsius\n", + " 1.5 delta_degree_Celsius\n", " 9.090909090909093 delta_degree_Celsius\n", " \n", " \n", @@ -666,7 +737,7 @@ " Steel-Asia\n", " Company G\n", " CN0000000007\n", - " 1.5 degree_Celsius\n", + " 1.5 delta_degree_Celsius\n", " 9.090909090909093 delta_degree_Celsius\n", " \n", " \n", @@ -674,7 +745,7 @@ " Steel-Asia\n", " Company H\n", " CN0000000008\n", - " 1.5 degree_Celsius\n", + " 1.5 delta_degree_Celsius\n", " 9.090909090909093 delta_degree_Celsius\n", " \n", " \n", @@ -682,7 +753,7 @@ " Steel-Asia\n", " Company I\n", " CN0000000009\n", - " 1.5 degree_Celsius\n", + " 1.5 delta_degree_Celsius\n", " 9.090909090909093 delta_degree_Celsius\n", " \n", " \n", @@ -690,7 +761,7 @@ " Steel-Asia\n", " Company C\n", " IT0000000003\n", - " 1.5 degree_Celsius\n", + " 1.5 delta_degree_Celsius\n", " 9.090909090909093 delta_degree_Celsius\n", " \n", " \n", @@ -698,7 +769,7 @@ " Steel-Asia\n", " Company A\n", " JP0000000001\n", - " 1.5 degree_Celsius\n", + " 1.5 delta_degree_Celsius\n", " 9.090909090909093 delta_degree_Celsius\n", " \n", " \n", @@ -706,7 +777,7 @@ " Steel-Asia\n", " Company F\n", " NL0000000006\n", - " 1.5 degree_Celsius\n", + " 1.5 delta_degree_Celsius\n", " 9.090909090909093 delta_degree_Celsius\n", " \n", " \n", @@ -714,7 +785,7 @@ " Steel-Asia\n", " Company D\n", " SE0000000004\n", - " 1.5 degree_Celsius\n", + " 1.5 delta_degree_Celsius\n", " 9.090909090909093 delta_degree_Celsius\n", " \n", " \n", @@ -722,7 +793,7 @@ " Steel-Asia\n", " Company E\n", " SE0000000005\n", - " 1.5 degree_Celsius\n", + " 1.5 delta_degree_Celsius\n", " 9.090909090909093 delta_degree_Celsius\n", " \n", " \n", @@ -730,7 +801,7 @@ " Steel-Asia\n", " Company AW\n", " US7134481081\n", - " 1.5 degree_Celsius\n", + " 1.5 delta_degree_Celsius\n", " 9.090909090909093 delta_degree_Celsius\n", " \n", " \n", @@ -738,18 +809,18 @@ "" ], "text/plain": [ - " group company_name company_id temperature_score \\\n", - "0 Steel-Asia Company J BR0000000010 1.5 degree_Celsius \n", - "1 Steel-Asia Company L BR0000000012 1.5 degree_Celsius \n", - "2 Steel-Asia Company G CN0000000007 1.5 degree_Celsius \n", - "3 Steel-Asia Company H CN0000000008 1.5 degree_Celsius \n", - "4 Steel-Asia Company I CN0000000009 1.5 degree_Celsius \n", - "5 Steel-Asia Company C IT0000000003 1.5 degree_Celsius \n", - "6 Steel-Asia Company A JP0000000001 1.5 degree_Celsius \n", - "7 Steel-Asia Company F NL0000000006 1.5 degree_Celsius \n", - "8 Steel-Asia Company D SE0000000004 1.5 degree_Celsius \n", - "9 Steel-Asia Company E SE0000000005 1.5 degree_Celsius \n", - "10 Steel-Asia Company AW US7134481081 1.5 degree_Celsius \n", + " group company_name company_id temperature_score \\\n", + "0 Steel-Asia Company J BR0000000010 1.5 delta_degree_Celsius \n", + "1 Steel-Asia Company L BR0000000012 1.5 delta_degree_Celsius \n", + "2 Steel-Asia Company G CN0000000007 1.5 delta_degree_Celsius \n", + "3 Steel-Asia Company H CN0000000008 1.5 delta_degree_Celsius \n", + "4 Steel-Asia Company I CN0000000009 1.5 delta_degree_Celsius \n", + "5 Steel-Asia Company C IT0000000003 1.5 delta_degree_Celsius \n", + "6 Steel-Asia Company A JP0000000001 1.5 delta_degree_Celsius \n", + "7 Steel-Asia Company F NL0000000006 1.5 delta_degree_Celsius \n", + "8 Steel-Asia Company D SE0000000004 1.5 delta_degree_Celsius \n", + "9 Steel-Asia Company E SE0000000005 1.5 delta_degree_Celsius \n", + "10 Steel-Asia Company AW US7134481081 1.5 delta_degree_Celsius \n", "\n", " contribution_relative \n", "0 9.090909090909093 delta_degree_Celsius \n", @@ -807,7 +878,49 @@ "output_type": "stream", "text": [ "/opt/app-root/lib64/python3.8/site-packages/pandas/core/dtypes/cast.py:1990: UnitStrippedWarning: The unit of the quantity is stripped when downcasting to ndarray.\n", - " result[:] = values\n", + " result[:] = values\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "1.499999999687141 delta_degree_Celsius\n", + "1.499999999687141 delta_degree_Celsius\n", + "1.5000000001298415 delta_degree_Celsius\n", + "1.5000000002688683 delta_degree_Celsius\n", + "1.5000000006359404 delta_degree_Celsius\n", + "1.5000000001498563 delta_degree_Celsius\n", + "1.5000000001942115 delta_degree_Celsius\n", + "1.5000000002393006 delta_degree_Celsius\n", + "1.499999999687141 delta_degree_Celsius\n", + "1.500000000797013 delta_degree_Celsius\n", + "1.499999999946247 delta_degree_Celsius\n", + "1.5000000000437816 delta_degree_Celsius\n", + "1.50000000032397 delta_degree_Celsius\n", + "1.5000000000922724 delta_degree_Celsius\n", + "1.499999999687141 delta_degree_Celsius\n", + "1.5000000009331538 delta_degree_Celsius\n", + "1.4999999999869267 delta_degree_Celsius\n", + "1.499999999687141 delta_degree_Celsius\n", + "1.5000000001190916 delta_degree_Celsius\n", + "1.5000000002061389 delta_degree_Celsius\n", + "1.5000000004448852 delta_degree_Celsius\n", + "1.500000000329292 delta_degree_Celsius\n", + "1.5000000003696699 delta_degree_Celsius\n", + "1.500000000088038 delta_degree_Celsius\n", + "1.5000000000937326 delta_degree_Celsius\n", + "1.499999999739421 delta_degree_Celsius\n", + "1.5000000000655198 delta_degree_Celsius\n", + "1.5000000002183678 delta_degree_Celsius\n", + "1.499999999687141 delta_degree_Celsius\n", + "1.499999999687141 delta_degree_Celsius\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ "/opt/app-root/lib64/python3.8/site-packages/pint_pandas/pint_array.py:648: UnitStrippedWarning: The unit of the quantity is stripped when downcasting to ndarray.\n", " return np.array(qtys, dtype=\"object\", copy=copy)\n" ] @@ -900,7 +1013,7 @@ " AR0000000013\n", " Steel\n", " 3.076923076923076 delta_degree_Celsius\n", - " 1.5 degree_Celsius\n", + " 1.5 delta_degree_Celsius\n", " 1.07\n", " 3.08\n", " \n", @@ -910,7 +1023,7 @@ " BR0000000011\n", " Steel\n", " 3.076923076923076 delta_degree_Celsius\n", - " 1.5 degree_Celsius\n", + " 1.5 delta_degree_Celsius\n", " 1.01\n", " 3.08\n", " \n", @@ -920,7 +1033,7 @@ " BR0000000012\n", " Steel\n", " 3.076923076923076 delta_degree_Celsius\n", - " 1.5 degree_Celsius\n", + " 1.5 delta_degree_Celsius\n", " 0.15\n", " 3.08\n", " \n", @@ -930,7 +1043,7 @@ " CN0000000007\n", " Steel\n", " 3.076923076923076 delta_degree_Celsius\n", - " 1.5 degree_Celsius\n", + " 1.5 delta_degree_Celsius\n", " 0.05\n", " 3.08\n", " \n", @@ -940,7 +1053,7 @@ " CN0000000008\n", " Steel\n", " 3.076923076923076 delta_degree_Celsius\n", - " 1.5 degree_Celsius\n", + " 1.5 delta_degree_Celsius\n", " 0.18\n", " 3.08\n", " \n", @@ -950,7 +1063,7 @@ " CN0000000009\n", " Steel\n", " 3.076923076923076 delta_degree_Celsius\n", - " 1.5 degree_Celsius\n", + " 1.5 delta_degree_Celsius\n", " 0.33\n", " 3.08\n", " \n", @@ -960,7 +1073,7 @@ " IT0000000003\n", " Steel\n", " 3.076923076923076 delta_degree_Celsius\n", - " 1.5 degree_Celsius\n", + " 1.5 delta_degree_Celsius\n", " 0.34\n", " 3.08\n", " \n", @@ -970,7 +1083,7 @@ " JP0000000001\n", " Steel\n", " 3.076923076923076 delta_degree_Celsius\n", - " 1.5 degree_Celsius\n", + " 1.5 delta_degree_Celsius\n", " 1.07\n", " 3.08\n", " \n", @@ -980,7 +1093,7 @@ " NL0000000002\n", " Steel\n", " 3.076923076923076 delta_degree_Celsius\n", - " 1.5 degree_Celsius\n", + " 1.5 delta_degree_Celsius\n", " 1.51\n", " 3.08\n", " \n", @@ -990,7 +1103,7 @@ " NL0000000006\n", " Steel\n", " 3.076923076923076 delta_degree_Celsius\n", - " 1.5 degree_Celsius\n", + " 1.5 delta_degree_Celsius\n", " 0.11\n", " 3.08\n", " \n", @@ -1011,17 +1124,17 @@ "14 Company B NL0000000002 Steel 3.076923076923076 delta_degree_Celsius \n", "13 Company F NL0000000006 Steel 3.076923076923076 delta_degree_Celsius \n", "\n", - " temperature_score ownership_percentage portfolio_percentage \n", - "1 1.5 degree_Celsius 1.07 3.08 \n", - "28 1.5 degree_Celsius 1.01 3.08 \n", - "27 1.5 degree_Celsius 0.15 3.08 \n", - "24 1.5 degree_Celsius 0.05 3.08 \n", - "23 1.5 degree_Celsius 0.18 3.08 \n", - "22 1.5 degree_Celsius 0.33 3.08 \n", - "17 1.5 degree_Celsius 0.34 3.08 \n", - "16 1.5 degree_Celsius 1.07 3.08 \n", - "14 1.5 degree_Celsius 1.51 3.08 \n", - "13 1.5 degree_Celsius 0.11 3.08 " + " temperature_score ownership_percentage portfolio_percentage \n", + "1 1.5 delta_degree_Celsius 1.07 3.08 \n", + "28 1.5 delta_degree_Celsius 1.01 3.08 \n", + "27 1.5 delta_degree_Celsius 0.15 3.08 \n", + "24 1.5 delta_degree_Celsius 0.05 3.08 \n", + "23 1.5 delta_degree_Celsius 0.18 3.08 \n", + "22 1.5 delta_degree_Celsius 0.33 3.08 \n", + "17 1.5 delta_degree_Celsius 0.34 3.08 \n", + "16 1.5 delta_degree_Celsius 1.07 3.08 \n", + "14 1.5 delta_degree_Celsius 1.51 3.08 \n", + "13 1.5 delta_degree_Celsius 0.11 3.08 " ] }, "execution_count": 22, From 882f413b1982a7bf27dffbf3aad21ca39393501a Mon Sep 17 00:00:00 2001 From: MichaelTiemannOSC Date: Fri, 31 Dec 2021 04:43:40 +0000 Subject: [PATCH 046/345] WIP Checkin This check-in now passes 2/6 tests and gets a third test correct (but testing framework is not pint-friendly). 3 more failures to go, but lots of progress since initial PR. More to come... Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- ITR/__init__.py | 1 + ITR/configs.py | 7 +- ITR/data/__init__.py | 1 + ITR/data/base_providers.py | 70 +- ITR/data/data_providers.py | 13 +- ITR/data/data_warehouse.py | 27 +- ITR/interfaces.py | 113 +- ITR/temperature_score.py | 19 +- ITR/utils.py | 10 +- examples/quick_temp_score_calculation.ipynb | 134 +- test/inputs/json/benchmark_EI_OECM.json | 386 +-- test/inputs/json/fundamental_data.json | 3170 +++++++++---------- test/test_base_providers.py | 97 +- 13 files changed, 2039 insertions(+), 2009 deletions(-) diff --git a/ITR/__init__.py b/ITR/__init__.py index 42641e82..103286d8 100644 --- a/ITR/__init__.py +++ b/ITR/__init__.py @@ -2,6 +2,7 @@ This package helps companies and financial institutions to assess the temperature alignment of investment and lending portfolios. """ +from .data import osc_units from . import data from . import utils from . import temperature_score diff --git a/ITR/configs.py b/ITR/configs.py index 00f0d895..e68ec75c 100644 --- a/ITR/configs.py +++ b/ITR/configs.py @@ -4,11 +4,9 @@ """ from .interfaces import TemperatureScoreControls -from pint import Quantity import pint import pint_pandas -ureg = pint.get_application_registry() -Q_ = ureg.Quantity +from ITR.data.osc_units import ureg, Q_ class ColumnsConfig: # Define a constant for each column used in the @@ -30,7 +28,7 @@ class ColumnsConfig: OWNED_EMISSIONS = "owned_emissions" COUNTRY = 'country' SECTOR = 'sector' - GHG_SCOPE12 = 'ghg_s1s2' + GHG_SCOPE12 = 'ghg_s1s2' # This seems to be the base year PRODUCTION number, nothing at all to do with any quantity of actual S1S2 emissions GHG_SCOPE3 = 'ghg_s3' COMPANY_REVENUE = 'company_revenue' CASH_EQUIVALENTS = 'company_cash_equivalents' @@ -54,6 +52,7 @@ class ColumnsConfig: HISTORIC_PRODUCTIONS = 'historic_productions' HISTORIC_EMISSIONS = 'historic_emissions' HISTORIC_EI = 'historic_emission_intensities' + TRAJECTORY_SCORE = 'trajectory_score' TRAJECTORY_OVERSHOOT = 'trajectory_overshoot_ratio' TARGET_SCORE = 'target_score' diff --git a/ITR/data/__init__.py b/ITR/data/__init__.py index a068d16b..9ec2779e 100644 --- a/ITR/data/__init__.py +++ b/ITR/data/__init__.py @@ -2,5 +2,6 @@ This module contains classes that create connections to data providers. """ +from .osc_units import ureg from .data_providers import CompanyDataProvider from .excel import ExcelProviderCompany diff --git a/ITR/data/base_providers.py b/ITR/data/base_providers.py index 061add0b..f1bc03d6 100644 --- a/ITR/data/base_providers.py +++ b/ITR/data/base_providers.py @@ -3,9 +3,7 @@ import pint import pint_pandas - -ureg = pint.get_application_registry() -Q_ = ureg.Quantity +from ITR.data.osc_units import ureg, PA_ from typing import List, Type, Dict from ITR.configs import ColumnsConfig, TemperatureScoreConfig, ProjectionConfig, VariablesConfig @@ -53,14 +51,16 @@ def _convert_projections_to_series(self, company: ICompanyData, feature: str, scope: EScope = EScope.S1S2) -> pd.Series: """ extracts the company projected intensities or targets for a given scope - :param feature: PROJECTED_EI or PROJECTED_TARGETS + :param feature: PROJECTED_TRAJECTORIES or PROJECTED_TARGETS (both are intensities) :param scope: a scope :return: pd.Series """ + feature_to_units = { self.column_config.PROJECTED_TRAJECTORIES:'pint[t CO2/MWh]', self.column_config.PROJECTED_TARGETS:'pint[t CO2/MWh]' } return pd.Series( {r['year']: r['value'] for r in company.dict()[feature][str(scope)]['projections']}, - name=company.company_id) + name=company.company_id, dtype=feature_to_units[feature]) + # ??? Why prefer TRAJECTORY over TARGET? def _get_company_intensity_at_year(self, year: int, company_ids: List[str]) -> pd.Series: """ Returns projected intensities for a given set of companies and year @@ -68,7 +68,7 @@ def _get_company_intensity_at_year(self, year: int, company_ids: List[str]) -> p :param company_ids: List of company ids :return: pd.Series with intensities for given company ids """ - return self.get_company_projected_intensities(company_ids)[year] + return self.get_company_projected_trajectories(company_ids)[year] def get_company_data(self, company_ids: List[str]) -> List[ICompanyData]: """ @@ -100,10 +100,11 @@ def get_company_intensity_and_production_at_base_year(self, company_ids: List[st overrides subclass method :param: company_ids: list of company ids :return: DataFrame the following columns : - ColumnsConfig.COMPANY_ID, ColumnsConfig.GHG_S1S2, ColumnsConfig.BASE_EI, ColumnsConfig.SECTOR and - ColumnsConfig.REGION + ColumnsConfig.COMPANY_ID, ColumnsConfig.GHG_S1S2, ColumnsConfig.BASE_EI, + ColumnsConfig.SECTOR and ColumnsConfig.REGION """ df_fundamentals = self.get_company_fundamentals(company_ids) + # print(f"df_fundamentals = {df_fundamentals}") base_year = self.temp_config.CONTROLS_CONFIG.base_year company_info = df_fundamentals.loc[ company_ids, [self.column_config.SECTOR, self.column_config.REGION, @@ -114,39 +115,41 @@ def get_company_intensity_and_production_at_base_year(self, company_ids: List[st def get_company_fundamentals(self, company_ids: List[str]) -> pd.DataFrame: """ :param company_ids: A list of company IDs - :return: A pandas DataFrame with company fundamental info per company + :return: A pandas DataFrame with company fundamental info per company (company_id is a column) """ return pd.DataFrame.from_records( [ICompanyData.parse_obj(c).dict() for c in self.get_company_data(company_ids)], - exclude=['projected_targets', 'projected_intensities']).set_index(self.column_config.COMPANY_ID) + exclude=['projected_ei_targets', 'projected_ei_trajectories']).set_index(self.column_config.COMPANY_ID) - def get_company_projected_intensities(self, company_ids: List[str]) -> pd.DataFrame: + def get_company_projected_trajectories(self, company_ids: List[str]) -> pd.DataFrame: """ :param company_ids: A list of company IDs - :return: A pandas DataFrame with projected intensities per company + :return: A pandas DataFrame with projected intensity trajectories per company, indexed by company_id """ return pd.DataFrame( - [self._convert_projections_to_series(c, self.column_config.PROJECTED_EI) for c in + [self._convert_projections_to_series(c, self.column_config.PROJECTED_TRAJECTORIES) for c in self.get_company_data(company_ids)]) def get_company_projected_targets(self, company_ids: List[str]) -> pd.DataFrame: """ :param company_ids: A list of company IDs - :return: A pandas DataFrame with projected targets per company + :return: A pandas DataFrame with projected intensity targets per company, indexed by company_id """ return pd.DataFrame( [self._convert_projections_to_series(c, self.column_config.PROJECTED_TARGETS) for c in self.get_company_data(company_ids)]) +# This is actual output production (whatever the output production units may be). +# Not to be confused with the term "projected production" as it relates to energy intensity. class BaseProviderProductionBenchmark(ProductionBenchmarkDataProvider): - def __init__(self, production_benchmarks: IProductionBenchmarkScopes, + def __init__(self, production_benchmarks: IYOYBenchmarkScopes, column_config: Type[ColumnsConfig] = ColumnsConfig, tempscore_config: Type[TemperatureScoreConfig] = TemperatureScoreConfig): """ Base provider that relies on pydantic interfaces. Default for FastAPI usage - :param production_benchmarks: List of IBenchmarkScopes + :param production_benchmarks: List of IYOYBenchmarkScopes :param column_config: An optional ColumnsConfig object containing relevant variable names :param tempscore_config: An optional TemperatureScoreConfig object containing temperature scoring settings """ @@ -155,24 +158,26 @@ def __init__(self, production_benchmarks: IProductionBenchmarkScopes, self.column_config = column_config self._productions_benchmarks = production_benchmarks - def _convert_benchmark_to_series(self, benchmark: IBenchmark) -> pd.Series: + # Note that bencharmk production series are dimensionless. + def _convert_benchmark_to_series(self, benchmark: IYOYBenchmark) -> pd.Series: """ - extracts the company projected intensities or targets for a given scope - :param feature: PROJECTED_EI or PROJECTED_TARGETS + extracts the company projected intensity or production targets for a given scope :param scope: a scope :return: pd.Series """ return pd.Series({r.year: r.value for r in benchmark.projections}, name=(benchmark.region, benchmark.sector)) + # YOY production benchmarks are dimensionless. S1S2 has nothing to do with any company data. + # It's a label in the top-level of benchmark data. Currently S1S2 is the only label with any data. def _get_projected_production(self, scope: EScope = EScope.S1S2) -> pd.DataFrame: """ - Converts IBenchmarkScopes into dataframe for a scope + Converts IYOYBenchmarkScopes into dataframe for a scope :param scope: a scope - :return: pd.Series + :return: pd.DataFrame """ result = [] for bm in self._productions_benchmarks.dict()[str(scope)]['benchmarks']: - result.append(self._convert_benchmark_to_series(IBenchmark.parse_obj(bm))) + result.append(self._convert_benchmark_to_series(IYOYBenchmark.parse_obj(bm))) df_bm = pd.DataFrame(result) df_bm.index.names = [self.column_config.REGION, self.column_config.SECTOR] @@ -238,7 +243,9 @@ def get_SDA_intensity_benchmarks(self, company_info_at_base_year: pd.DataFrame) last_ei = intensity_benchmarks[self.temp_config.CONTROLS_CONFIG.target_end_year] ei_base = company_info_at_base_year[self.column_config.BASE_EI] - return decarbonization_paths.mul((ei_base - last_ei), axis=0).add(last_ei, axis=0) + df = decarbonization_paths.mul((ei_base - last_ei), axis=0) + df = df.add(last_ei, axis=0) + return df def _get_decarbonizations_paths(self, intensity_benchmarks: pd.DataFrame) -> pd.DataFrame: """ @@ -259,29 +266,27 @@ def _get_decarbonization(self, intensity_benchmark_row: pd.Series) -> pd.Series: first_ei = intensity_benchmark_row[self.temp_config.CONTROLS_CONFIG.base_year] last_ei = intensity_benchmark_row[self.temp_config.CONTROLS_CONFIG.target_end_year] # This throws a warning when processing a NaN - return intensity_benchmark_row.apply(lambda x: Q_((x - last_ei) / (first_ei - last_ei)), ureg('t CO2/MWh')) + return intensity_benchmark_row.apply(lambda x: (x.m - last_ei.m) / (first_ei.m - last_ei.m)) - def _convert_benchmark_to_series(self, benchmark: IBenchmark) -> pd.Series: + def _convert_benchmark_to_series(self, benchmark: IEIBenchmark) -> pd.Series: """ extracts the company projected intensities or targets for a given scope - :param feature: PROJECTED_EI or PROJECTED_TARGETS :param scope: a scope :return: pd.Series """ - return pd.Series({r.year: r.value for r in benchmark.projections}, name=(benchmark.region, benchmark.sector)) + return pd.Series({r.year: r.value for r in benchmark.projections}, name=(benchmark.region, benchmark.sector), dtype='pint[t CO2/MWh]') - def _get_projected_intensities(self, scope: EScope = EScope.S1S2) -> pd.Series: + def _get_projected_intensities(self, scope: EScope = EScope.S1S2) -> pd.DataFrame: """ - Converts IBenchmarkScopes into dataframe for a scope + Converts IEIBenchmarkScopes into dataframe for a scope :param scope: a scope - :return: pd.Series + :return: pd.DataFrame """ result = [] for bm in self._EI_benchmarks.dict()[str(scope)]['benchmarks']: - result.append(self._convert_benchmark_to_series(IBenchmark.parse_obj(bm))) + result.append(self._convert_benchmark_to_series(IEIBenchmark.parse_obj(bm))) df_bm = pd.DataFrame(result) df_bm.index.names = [self.column_config.REGION, self.column_config.SECTOR] - return df_bm def _get_intensity_benchmarks(self, company_sector_region_info: pd.DataFrame, @@ -305,7 +310,6 @@ def _get_intensity_benchmarks(self, company_sector_region_info: pd.DataFrame, range(self.temp_config.CONTROLS_CONFIG.base_year, self.temp_config.CONTROLS_CONFIG.target_end_year + 1)] benchmark_projection.index = sectors.index - return benchmark_projection diff --git a/ITR/data/data_providers.py b/ITR/data/data_providers.py index ee225b1a..24f69f57 100644 --- a/ITR/data/data_providers.py +++ b/ITR/data/data_providers.py @@ -8,11 +8,10 @@ from ITR.interfaces import ICompanyData, EScope, IHistoricData, IProductionRealization, IHistoricEmissionsScopes, \ IHistoricEIScopes, ICompanyProjection, ICompanyProjectionsScopes, ICompanyProjections -from pint import Quantity import pint -import pint_pandas -ureg = pint.get_application_registry() -Q_ = ureg.Quantity +from pint import Quantity +from ITR.data.osc_units import ureg +from ITR.interfaces import ICompanyData class CompanyDataProvider(ABC): @@ -65,11 +64,11 @@ def get_company_intensity_and_production_at_base_year(self, company_ids: List[st raise NotImplementedError @abstractmethod - def get_company_projected_intensities(self, company_ids: List[str]) -> pd.DataFrame: + def get_company_projected_trajectories(self, company_ids: List[str]) -> pd.DataFrame: """ Gets the emission intensities for a list of companies :param company_ids: list of company ids - :return: dataframe of projected intensities for each company in company_ids + :return: dataframe of projected intensity trajectories for each company in company_ids """ raise NotImplementedError @@ -79,7 +78,7 @@ def get_company_projected_targets(self, company_ids: List[str]) -> pd.DataFrame: """ Gets the projected targets for a list of companies :param company_ids: list of company ids - :return: dataframe of projected targets for each company in company_ids + :return: dataframe of projected intensity targets for each company in company_ids """ raise NotImplementedError diff --git a/ITR/data/data_warehouse.py b/ITR/data/data_warehouse.py index 618751a6..2b5ef814 100644 --- a/ITR/data/data_warehouse.py +++ b/ITR/data/data_warehouse.py @@ -6,9 +6,7 @@ import pint import pint_pandas - -ureg = pint.get_application_registry() -Q_ = ureg.Quantity +from ITR.data.osc_units import ureg, Q_, PA_ from ITR.interfaces import ICompanyAggregates from ITR.data.data_providers import CompanyDataProvider, ProductionBenchmarkDataProvider, IntensityBenchmarkDataProvider @@ -67,18 +65,23 @@ def get_preprocessed_company_data(self, company_ids: List[str]) -> List[ICompany projected_emission_intensity=self.company_data.get_company_projected_targets(company_ids), projected_production=projected_production) - df_company_data.loc[:, self.column_config.CUMULATIVE_BUDGET] = self._get_cumulative_emission( - projected_emissions_intensity=self.benchmarks_projected_emissions_intensity.get_SDA_intensity_benchmarks( + df_trajectory = self._get_cumulative_emission( + projected_emission_intensity=self.company_data.get_company_projected_trajectories(company_ids), + projected_production=projected_production).rename(self.column_config.CUMULATIVE_TRAJECTORY) + df_target = self._get_cumulative_emission( + projected_emission_intensity=self.company_data.get_company_projected_targets(company_ids), + projected_production=projected_production).rename(self.column_config.CUMULATIVE_TARGET) + df_budget = self._get_cumulative_emission( + projected_emission_intensity=self.benchmarks_projected_emission_intensity.get_SDA_intensity_benchmarks( company_info_at_base_year), - projected_production=projected_production) - - df_company_data[self.column_config.BENCHMARK_GLOBAL_BUDGET] = pint_pandas.PintArray([self.benchmarks_projected_emission_intensity.benchmark_global_budget.m]* + projected_production=projected_production).rename(self.column_config.CUMULATIVE_BUDGET) + df_company_data = pd.concat([df_company_data, df_trajectory, df_target, df_budget], axis=1) + df_company_data[self.column_config.BENCHMARK_GLOBAL_BUDGET] = pd.Series([self.benchmarks_projected_emission_intensity.benchmark_global_budget.m]* len(df_company_data), dtype='pint[t CO2]') - df_company_data[self.column_config.BENCHMARK_TEMP] = pint_pandas.PintArray([self.benchmarks_projected_emission_intensity.benchmark_temperature.m]* + df_company_data[self.column_config.BENCHMARK_TEMP] = pd.Series([self.benchmarks_projected_emission_intensity.benchmark_temperature.m]* len(df_company_data), dtype='pint[delta_degC]') - companies = df_company_data.reset_index().to_dict(orient="records") - + companies = df_company_data.to_dict(orient="records") aggregate_company_data: List[ICompanyAggregates] = [ICompanyAggregates.parse_obj(company) for company in companies] @@ -87,7 +90,7 @@ def get_preprocessed_company_data(self, company_ids: List[str]) -> List[ICompany def _convert_df_to_model(self, df_company_data: pd.DataFrame) -> List[ICompanyAggregates]: """ - transforms Dataframe Company data and preprocessed values into list of IDataProviderTarget instances + transforms Dataframe Company data and preprocessed values into list of ICompanyAggregates instances :param df_company_data: pandas Dataframe with targets :return: A list containing the targets diff --git a/ITR/interfaces.py b/ITR/interfaces.py index f54449b4..34801b10 100644 --- a/ITR/interfaces.py +++ b/ITR/interfaces.py @@ -2,6 +2,7 @@ from typing import Optional, Dict, List from pydantic import BaseModel from pint import Quantity +from ITR.data.osc_units import ureg, Q_ class AggregationContribution(BaseModel): company_name: str @@ -58,10 +59,29 @@ class PortfolioCompany(PintModel): user_fields: Optional[dict] +def pint_ify(x, units): + if x is None: + return x + if type(x)==str: + return ureg(x) + return Q_(x, ureg(units)) + + class IBenchmarkProjection(PintModel): + year: int + value: Quantity['Wh'] + + def __init__(self, year, value): + super().__init__(year=year, value=pint_ify(value, 'MWh')) + + +class IEIBenchmarkProjection(PintModel): year: int value: Quantity['CO2/Wh'] + def __init__(self, year, value): + super().__init__(year=year, value=pint_ify(value, 't CO2/MWh')) + class IBenchmark(PintModel): sector: str @@ -78,16 +98,60 @@ class IBenchmarks(PintModel): def __getitem__(self, item): return getattr(self, item) + class IProductionBenchmarkScopes(PintModel): S1S2: Optional[IBenchmarks] S3: Optional[IBenchmarks] S1S2S3: Optional[IBenchmarks] +class IYOYBenchmarkProjection(PintModel): + year: int + value: float + + +class IYOYBenchmark(PintModel): + sector: str + region: str + projections: List[IYOYBenchmarkProjection] + + def __getitem__(self, item): + return getattr(self, item) + + +class IYOYBenchmarks(PintModel): + benchmarks: List[IYOYBenchmark] + + def __getitem__(self, item): + return getattr(self, item) + + +class IYOYBenchmarkScopes(PintModel): + S1S2: Optional[IYOYBenchmarks] + S3: Optional[IYOYBenchmarks] + S1S2S3: Optional[IYOYBenchmarks] + + +class IEIBenchmark(PintModel): + sector: str + region: str + projections: List[IEIBenchmarkProjection] + + def __getitem__(self, item): + return getattr(self, item) + + +class IEIBenchmarks(PintModel): + benchmarks: List[IEIBenchmark] + + def __getitem__(self, item): + return getattr(self, item) + + class IEmissionIntensityBenchmarkScopes(PintModel): - S1S2: Optional[IBenchmarks] - S3: Optional[IBenchmarks] - S1S2S3: Optional[IBenchmarks] + S1S2: Optional[IEIBenchmarks] + S3: Optional[IEIBenchmarks] + S1S2S3: Optional[IEIBenchmarks] benchmark_temperature: Quantity['delta_degC'] benchmark_global_budget: Quantity['CO2'] is_AFOLU_included: bool @@ -95,17 +159,25 @@ class IEmissionIntensityBenchmarkScopes(PintModel): def __getitem__(self, item): return getattr(self, item) + def __init__(self, benchmark_temperature, benchmark_global_budget, *args, **kwargs): + super().__init__(benchmark_temperature=Q_(benchmark_temperature, ureg.delta_degC), + benchmark_global_budget=Q_(benchmark_temperature, ureg('t CO2')), + *args, **kwargs) + class ICompanyProjection(PintModel): year: int - value: Optional[Quantity['CO2']] + value: Optional[Quantity['Wh']] + + def __init__(self, year, value): + super().__init__(year=year, value=pint_ify(value, 'MWh')) def __getitem__(self, item): return getattr(self, item) class ICompanyProjections(PintModel): - projections: Optional[List[ICompanyProjection]] + projections: List[ICompanyProjection] def __getitem__(self, item): return getattr(self, item) @@ -120,10 +192,15 @@ def __getitem__(self, item): return getattr(self, item) -class IProductionRealization(PintModel): +class ICompanyEIProjection(PintModel): year: int value: Optional[Quantity['CO2/Wh']] + def __init__(self, year, value): + super().__init__(year=year, value=pint_ify(value, 't CO2/MWh')) + + def __getitem__(self, item): + return getattr(self, item) class IEmissionRealization(PintModel): year: int @@ -166,12 +243,12 @@ class ICompanyData(PintModel): target_probability: float historic_data: Optional[IHistoricData] - projected_targets: Optional[ICompanyProjectionsScopes] - projected_intensities: Optional[ICompanyProjectionsScopes] + projected_targets: Optional[ICompanyProjectionsScopes] = None + projected_intensities: Optional[ICompanyProjectionsScopes] = None country: Optional[str] - ghg_s1s2: Optional[Quantity['CO2']] - ghg_s3: Optional[Quantity['CO2']] + ghg_s1s2: Optional[Quantity['Wh']] # This seems to be the base year PRODUCTION number, nothing at all to do with any quantity of actual S1S2 emissions + ghg_s3: Optional[Quantity['Wh']] industry_level_1: Optional[str] industry_level_2: Optional[str] @@ -184,14 +261,24 @@ class ICompanyData(PintModel): company_total_assets: Optional[float] company_cash_equivalents: Optional[float] + def __init__(self, ghg_s1s2, ghg_s3, *args, **kwargs): + super().__init__(ghg_s1s2=pint_ify(ghg_s1s2, 'MWh'), ghg_s3=pint_ify(ghg_s3, 'MWh'), *args, **kwargs) class ICompanyAggregates(ICompanyData): - cumulative_budget: Quantity['CO2'] - cumulative_trajectory: Quantity['CO2'] - cumulative_target: Quantity['CO2'] + cumulative_budget: Quantity['CO2/Wh'] + cumulative_trajectory: Quantity['CO2/Wh'] + cumulative_target: Quantity['CO2/Wh'] benchmark_temperature: Quantity['delta_degC'] benchmark_global_budget: Quantity['CO2'] + def __init__(self, cumulative_budget, cumulative_trajectory, cumulative_target, benchmark_temperature, benchmark_global_budget, *args, **kwargs): + super().__init__(cumulative_budget=pint_ify(cumulative_budget, 't CO2'), + cumulative_trajectory=pint_ify(cumulative_trajectory, 't CO2'), + cumulative_target=pint_ify(cumulative_target, 't CO2'), + benchmark_temperature=pint_ify(benchmark_temperature, 'delta_degC'), + benchmark_global_budget=pint_ify(benchmark_global_budget, 'Gt CO2'), + *args, **kwargs) + class SortableEnum(Enum): def __str__(self): diff --git a/ITR/temperature_score.py b/ITR/temperature_score.py index d2575818..6f088d13 100644 --- a/ITR/temperature_score.py +++ b/ITR/temperature_score.py @@ -1,17 +1,11 @@ from typing import Optional, Tuple, Type, List -from pint import Quantity -from pint_pandas import PintArray import pandas as pd import numpy as np import itertools -import pint -import pint_pandas - -ureg = pint.get_application_registry() -Q_ = ureg.Quantity -PA_ = pint_pandas.PintArray +from pint import Quantity +from .data.osc_units import ureg, Q_, PA_ from ITR.interfaces import EScope, ETimeFrames, Aggregation, AggregationContribution, ScoreAggregation, \ ScoreAggregationScopes, ScoreAggregations, PortfolioCompany from ITR.portfolio_aggregation import PortfolioAggregation, PortfolioAggregationMethod @@ -76,7 +70,8 @@ def get_score(self, scorable_row: pd.Series) -> Tuple[Quantity['delta_degC'], Qu # Safeguard: If score is NaN due to missing data assign default score. if np.isnan(score): - return self.get_default_score(scorable_row), target_overshoot_ratio, Q_(1.0, ureg.delta_degC) + default_score = self.get_default_score(scorable_row) + return default_score, trajectory_temperature_score, trajectory_overshoot_ratio, target_temperature_score, target_overshoot_ratio, Q_(1.0, ureg.delta_degC) return score, trajectory_temperature_score, trajectory_overshoot_ratio, target_temperature_score, target_overshoot_ratio, Q_(0.0, ureg.delta_degC) def get_ghc_temperature_score(self, row: pd.Series, company_data: pd.DataFrame) -> Tuple[Quantity['delta_degC'], Quantity['delta_degC']]: @@ -95,9 +90,11 @@ def get_ghc_temperature_score(self, row: pd.Series, company_data: pd.DataFrame) try: # If the s3 emissions are less than 40 percent, we'll ignore them altogether, if not, we'll weigh them if s3[self.c.COLS.GHG_SCOPE3] / (s1s2[self.c.COLS.GHG_SCOPE12] + s3[self.c.COLS.GHG_SCOPE3]) < 0.4: + print(f"ignoring s3: {row}") return s1s2[self.c.COLS.TEMPERATURE_SCORE], s1s2[self.c.TEMPERATURE_RESULTS] else: company_emissions = s1s2[self.c.COLS.GHG_SCOPE12] + s3[self.c.COLS.GHG_SCOPE3] + print(company_emissions) return (Q_((s1s2[self.c.COLS.TEMPERATURE_SCORE].m * s1s2[self.c.COLS.GHG_SCOPE12] + s3[self.c.COLS.TEMPERATURE_SCORE].m * s3[self.c.COLS.GHG_SCOPE3]) / company_emissions, s1s2[self.c.COLS.TEMPERATURE_SCORE].u), @@ -184,10 +181,12 @@ def calculate(self, data: Optional[pd.DataFrame] = None, self._check_column(data, self.c.COLS.GHG_SCOPE12) self._check_column(data, self.c.COLS.GHG_SCOPE3) data = self._calculate_company_score(data) + else: + print(f"calculate scopes = {self.scopes}") # We need to filter the scopes again, because we might have had to add a scope in the preparation step data = data[data[self.c.COLS.SCOPE].isin(self.scopes)] - data[self.c.COLS.TEMPERATURE_SCORE] = data[self.c.COLS.TEMPERATURE_SCORE].map(lambda x: Q_(x.m.round(2), x.u)) + data[self.c.COLS.TEMPERATURE_SCORE] = data[self.c.COLS.TEMPERATURE_SCORE].map(lambda x: Q_(round (x.m, 2), x.u)) return data def _get_aggregations(self, data: pd.DataFrame, total_companies: int) -> Tuple[Aggregation, pd.Series, pd.Series]: diff --git a/ITR/utils.py b/ITR/utils.py index 729b10c4..59ec04c6 100644 --- a/ITR/utils.py +++ b/ITR/utils.py @@ -1,6 +1,10 @@ import pandas as pd from typing import List, Optional, Tuple +from pint import Quantity +from .data.osc_units import ureg, Q_, PA_ +# ureg = pint.get_application_registry() + from .configs import ColumnsConfig, TemperatureScoreConfig from .interfaces import PortfolioCompany, EScope, ETimeFrames, ScoreAggregations, TemperatureScoreControls @@ -9,12 +13,6 @@ from .data.data_warehouse import DataWarehouse -from pint import Quantity -import pint -import pint_pandas -ureg = pint.get_application_registry() -Q_ = ureg.Quantity - def _flatten_user_fields(record: PortfolioCompany): """ Flatten the user fields in a portfolio company and return it as a dictionary. diff --git a/examples/quick_temp_score_calculation.ipynb b/examples/quick_temp_score_calculation.ipynb index 55bb2c08..f73b959a 100644 --- a/examples/quick_temp_score_calculation.ipynb +++ b/examples/quick_temp_score_calculation.ipynb @@ -27,19 +27,8 @@ ] }, { - "cell_type": "code", - "execution_count": 2, + "cell_type": "raw", "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "1 CO2e\n", - "1 CO2e * gigametric_ton\n" - ] - } - ], "source": [ "import pint\n", "import pint_pandas\n", @@ -80,7 +69,7 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 2, "metadata": { "tags": [] }, @@ -92,7 +81,31 @@ "from ITR.portfolio_aggregation import PortfolioAggregationMethod\n", "from ITR.temperature_score import TemperatureScore\n", "from ITR.interfaces import ETimeFrames, EScope\n", - "import pandas as pd" + "import pandas as pd\n", + "\n", + "from ITR.data.osc_units import ureg, Q_, PA_" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "1 CO2e\n", + "1 CO2e * gigametric_ton\n" + ] + } + ], + "source": [ + "one_co2 = ureg(\"CO2e\")\n", + "print(one_co2)\n", + "\n", + "one_Gt_co2 = ureg(\"Gt CO2e\")\n", + "print(one_Gt_co2)" ] }, { @@ -349,36 +362,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "1.499999999687141 delta_degree_Celsius\n", - "1.499999999687141 delta_degree_Celsius\n", - "1.5000000001298415 delta_degree_Celsius\n", - "1.5000000002688683 delta_degree_Celsius\n", - "1.5000000006359404 delta_degree_Celsius\n", - "1.5000000001498563 delta_degree_Celsius\n", - "1.5000000001942115 delta_degree_Celsius\n", - "1.5000000002393006 delta_degree_Celsius\n", - "1.499999999687141 delta_degree_Celsius\n", - "1.500000000797013 delta_degree_Celsius\n", - "1.499999999946247 delta_degree_Celsius\n", - "1.5000000000437816 delta_degree_Celsius\n", - "1.50000000032397 delta_degree_Celsius\n", - "1.5000000000922724 delta_degree_Celsius\n", - "1.499999999687141 delta_degree_Celsius\n", - "1.5000000009331538 delta_degree_Celsius\n", - "1.4999999999869267 delta_degree_Celsius\n", - "1.499999999687141 delta_degree_Celsius\n", - "1.5000000001190916 delta_degree_Celsius\n", - "1.5000000002061389 delta_degree_Celsius\n", - "1.5000000004448852 delta_degree_Celsius\n", - "1.500000000329292 delta_degree_Celsius\n", - "1.5000000003696699 delta_degree_Celsius\n", - "1.500000000088038 delta_degree_Celsius\n", - "1.5000000000937326 delta_degree_Celsius\n", - "1.499999999739421 delta_degree_Celsius\n", - "1.5000000000655198 delta_degree_Celsius\n", - "1.5000000002183678 delta_degree_Celsius\n", - "1.499999999687141 delta_degree_Celsius\n", - "1.499999999687141 delta_degree_Celsius\n" + "calculate scopes = []\n" ] } ], @@ -605,36 +589,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "1.499999999687141 delta_degree_Celsius\n", - "1.499999999687141 delta_degree_Celsius\n", - "1.5000000001298415 delta_degree_Celsius\n", - "1.5000000002688683 delta_degree_Celsius\n", - "1.5000000006359404 delta_degree_Celsius\n", - "1.5000000001498563 delta_degree_Celsius\n", - "1.5000000001942115 delta_degree_Celsius\n", - "1.5000000002393006 delta_degree_Celsius\n", - "1.499999999687141 delta_degree_Celsius\n", - "1.500000000797013 delta_degree_Celsius\n", - "1.499999999946247 delta_degree_Celsius\n", - "1.5000000000437816 delta_degree_Celsius\n", - "1.50000000032397 delta_degree_Celsius\n", - "1.5000000000922724 delta_degree_Celsius\n", - "1.499999999687141 delta_degree_Celsius\n", - "1.5000000009331538 delta_degree_Celsius\n", - "1.4999999999869267 delta_degree_Celsius\n", - "1.499999999687141 delta_degree_Celsius\n", - "1.5000000001190916 delta_degree_Celsius\n", - "1.5000000002061389 delta_degree_Celsius\n", - "1.5000000004448852 delta_degree_Celsius\n", - "1.500000000329292 delta_degree_Celsius\n", - "1.5000000003696699 delta_degree_Celsius\n", - "1.500000000088038 delta_degree_Celsius\n", - "1.5000000000937326 delta_degree_Celsius\n", - "1.499999999739421 delta_degree_Celsius\n", - "1.5000000000655198 delta_degree_Celsius\n", - "1.5000000002183678 delta_degree_Celsius\n", - "1.499999999687141 delta_degree_Celsius\n", - "1.499999999687141 delta_degree_Celsius\n" + "calculate scopes = []\n" ] } ], @@ -885,36 +840,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "1.499999999687141 delta_degree_Celsius\n", - "1.499999999687141 delta_degree_Celsius\n", - "1.5000000001298415 delta_degree_Celsius\n", - "1.5000000002688683 delta_degree_Celsius\n", - "1.5000000006359404 delta_degree_Celsius\n", - "1.5000000001498563 delta_degree_Celsius\n", - "1.5000000001942115 delta_degree_Celsius\n", - "1.5000000002393006 delta_degree_Celsius\n", - "1.499999999687141 delta_degree_Celsius\n", - "1.500000000797013 delta_degree_Celsius\n", - "1.499999999946247 delta_degree_Celsius\n", - "1.5000000000437816 delta_degree_Celsius\n", - "1.50000000032397 delta_degree_Celsius\n", - "1.5000000000922724 delta_degree_Celsius\n", - "1.499999999687141 delta_degree_Celsius\n", - "1.5000000009331538 delta_degree_Celsius\n", - "1.4999999999869267 delta_degree_Celsius\n", - "1.499999999687141 delta_degree_Celsius\n", - "1.5000000001190916 delta_degree_Celsius\n", - "1.5000000002061389 delta_degree_Celsius\n", - "1.5000000004448852 delta_degree_Celsius\n", - "1.500000000329292 delta_degree_Celsius\n", - "1.5000000003696699 delta_degree_Celsius\n", - "1.500000000088038 delta_degree_Celsius\n", - "1.5000000000937326 delta_degree_Celsius\n", - "1.499999999739421 delta_degree_Celsius\n", - "1.5000000000655198 delta_degree_Celsius\n", - "1.5000000002183678 delta_degree_Celsius\n", - "1.499999999687141 delta_degree_Celsius\n", - "1.499999999687141 delta_degree_Celsius\n" + "calculate scopes = []\n" ] }, { diff --git a/test/inputs/json/benchmark_EI_OECM.json b/test/inputs/json/benchmark_EI_OECM.json index 252992ea..abff5d48 100644 --- a/test/inputs/json/benchmark_EI_OECM.json +++ b/test/inputs/json/benchmark_EI_OECM.json @@ -10,131 +10,131 @@ "projections": [ { "year": 2019, - "value": 3.3220564752850343 + "value": "3.3220564752850343 t CO2/MWh" }, { "year": 2020, - "value": 3.1503497972403762 + "value": "3.1503497972403762 t CO2/MWh" }, { "year": 2021, - "value": 3.0527921157410978 + "value": "3.0527921157410978 t CO2/MWh" }, { "year": 2022, - "value": 2.9552344342418193 + "value": "2.9552344342418193 t CO2/MWh" }, { "year": 2023, - "value": 2.857676752742541 + "value": "2.857676752742541 t CO2/MWh" }, { "year": 2024, - "value": 2.7601190712432624 + "value": "2.7601190712432624 t CO2/MWh" }, { "year": 2025, - "value": 2.662561389743985 + "value": "2.662561389743985 t CO2/MWh" }, { "year": 2026, - "value": 2.4712202694763543 + "value": "2.4712202694763543 t CO2/MWh" }, { "year": 2027, - "value": 2.279879149208724 + "value": "2.279879149208724 t CO2/MWh" }, { "year": 2028, - "value": 2.0885380289410933 + "value": "2.0885380289410933 t CO2/MWh" }, { "year": 2029, - "value": 1.897196908673463 + "value": "1.897196908673463 t CO2/MWh" }, { "year": 2030, - "value": 1.7058557884058332 + "value": "1.7058557884058332 t CO2/MWh" }, { "year": 2031, - "value": 1.5675115369354773 + "value": "1.5675115369354773 t CO2/MWh" }, { "year": 2032, - "value": 1.4291672854651214 + "value": "1.4291672854651214 t CO2/MWh" }, { "year": 2033, - "value": 1.2908230339947655 + "value": "1.2908230339947655 t CO2/MWh" }, { "year": 2034, - "value": 1.1524787825244096 + "value": "1.1524787825244096 t CO2/MWh" }, { "year": 2035, - "value": 1.014134531054054 + "value": "1.014134531054054 t CO2/MWh" }, { "year": 2036, - "value": 0.931354020885741 + "value": "0.931354020885741 t CO2/MWh" }, { "year": 2037, - "value": 0.8485735107174281 + "value": "0.8485735107174281 t CO2/MWh" }, { "year": 2038, - "value": 0.7657930005491153 + "value": "0.7657930005491153 t CO2/MWh" }, { "year": 2039, - "value": 0.6830124903808024 + "value": "0.6830124903808024 t CO2/MWh" }, { "year": 2040, - "value": 0.6002319802124896 + "value": "0.6002319802124896 t CO2/MWh" }, { "year": 2041, - "value": 0.5476438118058607 + "value": "0.5476438118058607 t CO2/MWh" }, { "year": 2042, - "value": 0.4950556433992319 + "value": "0.4950556433992319 t CO2/MWh" }, { "year": 2043, - "value": 0.4424674749926031 + "value": "0.4424674749926031 t CO2/MWh" }, { "year": 2044, - "value": 0.38987930658597425 + "value": "0.38987930658597425 t CO2/MWh" }, { "year": 2045, - "value": 0.33729113817934536 + "value": "0.33729113817934536 t CO2/MWh" }, { "year": 2046, - "value": 0.3018329516910954 + "value": "0.3018329516910954 t CO2/MWh" }, { "year": 2047, - "value": 0.2663747652028455 + "value": "0.2663747652028455 t CO2/MWh" }, { "year": 2048, - "value": 0.23091657871459553 + "value": "0.23091657871459553 t CO2/MWh" }, { "year": 2049, - "value": 0.1954583922263456 + "value": "0.1954583922263456 t CO2/MWh" }, { "year": 2050, - "value": 0.16000020573809565 + "value": "0.16000020573809565 t CO2/MWh" } ] }, @@ -144,131 +144,131 @@ "projections": [ { "year": 2019, - "value": 3.131211962564734 + "value": "3.131211962564734 t CO2/MWh" }, { "year": 2020, - "value": 2.9869966982706138 + "value": "2.9869966982706138 t CO2/MWh" }, { "year": 2021, - "value": 2.8847804173877667 + "value": "2.8847804173877667 t CO2/MWh" }, { "year": 2022, - "value": 2.7825641365049196 + "value": "2.7825641365049196 t CO2/MWh" }, { "year": 2023, - "value": 2.6803478556220726 + "value": "2.6803478556220726 t CO2/MWh" }, { "year": 2024, - "value": 2.5781315747392255 + "value": "2.5781315747392255 t CO2/MWh" }, { "year": 2025, - "value": 2.475915293856379 + "value": "2.475915293856379 t CO2/MWh" }, { "year": 2026, - "value": 2.2910527372934544 + "value": "2.2910527372934544 t CO2/MWh" }, { "year": 2027, - "value": 2.10619018073053 + "value": "2.10619018073053 t CO2/MWh" }, { "year": 2028, - "value": 1.9213276241676056 + "value": "1.9213276241676056 t CO2/MWh" }, { "year": 2029, - "value": 1.7364650676046813 + "value": "1.7364650676046813 t CO2/MWh" }, { "year": 2030, - "value": 1.5516025110417573 + "value": "1.5516025110417573 t CO2/MWh" }, { "year": 2031, - "value": 1.432600820509025 + "value": "1.432600820509025 t CO2/MWh" }, { "year": 2032, - "value": 1.3135991299762928 + "value": "1.3135991299762928 t CO2/MWh" }, { "year": 2033, - "value": 1.1945974394435606 + "value": "1.1945974394435606 t CO2/MWh" }, { "year": 2034, - "value": 1.0755957489108283 + "value": "1.0755957489108283 t CO2/MWh" }, { "year": 2035, - "value": 0.9565940583780966 + "value": "0.9565940583780966 t CO2/MWh" }, { "year": 2036, - "value": 0.8773327230164034 + "value": "0.8773327230164034 t CO2/MWh" }, { "year": 2037, - "value": 0.7980713876547102 + "value": "0.7980713876547102 t CO2/MWh" }, { "year": 2038, - "value": 0.718810052293017 + "value": "0.718810052293017 t CO2/MWh" }, { "year": 2039, - "value": 0.6395487169313238 + "value": "0.6395487169313238 t CO2/MWh" }, { "year": 2040, - "value": 0.5602873815696308 + "value": "0.5602873815696308 t CO2/MWh" }, { "year": 2041, - "value": 0.5163674619712709 + "value": "0.5163674619712709 t CO2/MWh" }, { "year": 2042, - "value": 0.47244754237291103 + "value": "0.47244754237291103 t CO2/MWh" }, { "year": 2043, - "value": 0.42852762277455114 + "value": "0.42852762277455114 t CO2/MWh" }, { "year": 2044, - "value": 0.38460770317619125 + "value": "0.38460770317619125 t CO2/MWh" }, { "year": 2045, - "value": 0.34068778357783136 + "value": "0.34068778357783136 t CO2/MWh" }, { "year": 2046, - "value": 0.30455031546034383 + "value": "0.30455031546034383 t CO2/MWh" }, { "year": 2047, - "value": 0.2684128473428563 + "value": "0.2684128473428563 t CO2/MWh" }, { "year": 2048, - "value": 0.23227537922536876 + "value": "0.23227537922536876 t CO2/MWh" }, { "year": 2049, - "value": 0.1961379111078812 + "value": "0.1961379111078812 t CO2/MWh" }, { "year": 2050, - "value": 0.16000044299039362 + "value": "0.16000044299039362 t CO2/MWh" } ] }, @@ -278,131 +278,131 @@ "projections": [ { "year": 2019, - "value": 2.9870685915231707 + "value": "2.9870685915231707 t CO2/MWh" }, { "year": 2020, - "value": 2.9486311713663316 + "value": "2.9486311713663316 t CO2/MWh" }, { "year": 2021, - "value": 2.911342598101551 + "value": "2.911342598101551 t CO2/MWh" }, { "year": 2022, - "value": 2.87405402483677 + "value": "2.87405402483677 t CO2/MWh" }, { "year": 2023, - "value": 2.8367654515719893 + "value": "2.8367654515719893 t CO2/MWh" }, { "year": 2024, - "value": 2.7994768783072086 + "value": "2.7994768783072086 t CO2/MWh" }, { "year": 2025, - "value": 2.972782901473998 + "value": "2.972782901473998 t CO2/MWh" }, { "year": 2026, - "value": 2.831475560118695 + "value": "2.831475560118695 t CO2/MWh" }, { "year": 2027, - "value": 2.690168218763392 + "value": "2.690168218763392 t CO2/MWh" }, { "year": 2028, - "value": 2.548860877408089 + "value": "2.548860877408089 t CO2/MWh" }, { "year": 2029, - "value": 2.407553536052786 + "value": "2.407553536052786 t CO2/MWh" }, { "year": 2030, - "value": 2.266246194697484 + "value": "2.266246194697484 t CO2/MWh" }, { "year": 2031, - "value": 2.1619493306345343 + "value": "2.1619493306345343 t CO2/MWh" }, { "year": 2032, - "value": 2.0576524665715845 + "value": "2.0576524665715845 t CO2/MWh" }, { "year": 2033, - "value": 1.9533556025086347 + "value": "1.9533556025086347 t CO2/MWh" }, { "year": 2034, - "value": 1.849058738445685 + "value": "1.849058738445685 t CO2/MWh" }, { "year": 2035, - "value": 1.7447618743827347 + "value": "1.7447618743827347 t CO2/MWh" }, { "year": 2036, - "value": 1.6053321610476659 + "value": "1.6053321610476659 t CO2/MWh" }, { "year": 2037, - "value": 1.465902447712597 + "value": "1.465902447712597 t CO2/MWh" }, { "year": 2038, - "value": 1.3264727343775282 + "value": "1.3264727343775282 t CO2/MWh" }, { "year": 2039, - "value": 1.1870430210424594 + "value": "1.1870430210424594 t CO2/MWh" }, { "year": 2040, - "value": 1.0476133077073908 + "value": "1.0476133077073908 t CO2/MWh" }, { "year": 2041, - "value": 0.9551204892179995 + "value": "0.9551204892179995 t CO2/MWh" }, { "year": 2042, - "value": 0.8626276707286082 + "value": "0.8626276707286082 t CO2/MWh" }, { "year": 2043, - "value": 0.770134852239217 + "value": "0.770134852239217 t CO2/MWh" }, { "year": 2044, - "value": 0.6776420337498257 + "value": "0.6776420337498257 t CO2/MWh" }, { "year": 2045, - "value": 0.5851492152604343 + "value": "0.5851492152604343 t CO2/MWh" }, { "year": 2046, - "value": 0.5001218018675508 + "value": "0.5001218018675508 t CO2/MWh" }, { "year": 2047, - "value": 0.41509438847466734 + "value": "0.41509438847466734 t CO2/MWh" }, { "year": 2048, - "value": 0.33006697508178384 + "value": "0.33006697508178384 t CO2/MWh" }, { "year": 2049, - "value": 0.24503956168890034 + "value": "0.24503956168890034 t CO2/MWh" }, { "year": 2050, - "value": 0.1600121482960168 + "value": "0.1600121482960168 t CO2/MWh" } ] }, @@ -412,131 +412,131 @@ "projections": [ { "year": 2019, - "value": 0.6075603731304943 + "value": "0.6075603731304943 t CO2/MWh" }, { "year": 2020, - "value": 0.45274433529466107 + "value": "0.45274433529466107 t CO2/MWh" }, { "year": 2021, - "value": 0.41508425410495076 + "value": "0.41508425410495076 t CO2/MWh" }, { "year": 2022, - "value": 0.37742417291524044 + "value": "0.37742417291524044 t CO2/MWh" }, { "year": 2023, - "value": 0.3397640917255301 + "value": "0.3397640917255301 t CO2/MWh" }, { "year": 2024, - "value": 0.3021040105358198 + "value": "0.3021040105358198 t CO2/MWh" }, { "year": 2025, - "value": 0.26444392934610944 + "value": "0.26444392934610944 t CO2/MWh" }, { "year": 2026, - "value": 0.23622922761637988 + "value": "0.23622922761637988 t CO2/MWh" }, { "year": 2027, - "value": 0.20801452588665031 + "value": "0.20801452588665031 t CO2/MWh" }, { "year": 2028, - "value": 0.17979982415692075 + "value": "0.17979982415692075 t CO2/MWh" }, { "year": 2029, - "value": 0.1515851224271912 + "value": "0.1515851224271912 t CO2/MWh" }, { "year": 2030, - "value": 0.12337042069746158 + "value": "0.12337042069746158 t CO2/MWh" }, { "year": 2031, - "value": 0.10876688805755423 + "value": "0.10876688805755423 t CO2/MWh" }, { "year": 2032, - "value": 0.09416335541764688 + "value": "0.09416335541764688 t CO2/MWh" }, { "year": 2033, - "value": 0.07955982277773953 + "value": "0.07955982277773953 t CO2/MWh" }, { "year": 2034, - "value": 0.06495629013783218 + "value": "0.06495629013783218 t CO2/MWh" }, { "year": 2035, - "value": 0.05035275749792479 + "value": "0.05035275749792479 t CO2/MWh" }, { "year": 2036, - "value": 0.04437091407361017 + "value": "0.04437091407361017 t CO2/MWh" }, { "year": 2037, - "value": 0.03838907064929556 + "value": "0.03838907064929556 t CO2/MWh" }, { "year": 2038, - "value": 0.03240722722498095 + "value": "0.03240722722498095 t CO2/MWh" }, { "year": 2039, - "value": 0.026425383800666332 + "value": "0.026425383800666332 t CO2/MWh" }, { "year": 2040, - "value": 0.020443540376351713 + "value": "0.020443540376351713 t CO2/MWh" }, { "year": 2041, - "value": 0.01831849355545248 + "value": "0.01831849355545248 t CO2/MWh" }, { "year": 2042, - "value": 0.01619344673455325 + "value": "0.01619344673455325 t CO2/MWh" }, { "year": 2043, - "value": 0.014068399913654016 + "value": "0.014068399913654016 t CO2/MWh" }, { "year": 2044, - "value": 0.011943353092754783 + "value": "0.011943353092754783 t CO2/MWh" }, { "year": 2045, - "value": 0.009818306271855556 + "value": "0.009818306271855556 t CO2/MWh" }, { "year": 2046, - "value": 0.008652674634510546 + "value": "0.008652674634510546 t CO2/MWh" }, { "year": 2047, - "value": 0.007487042997165536 + "value": "0.007487042997165536 t CO2/MWh" }, { "year": 2048, - "value": 0.0063214113598205265 + "value": "0.0063214113598205265 t CO2/MWh" }, { "year": 2049, - "value": 0.005155779722475517 + "value": "0.005155779722475517 t CO2/MWh" }, { "year": 2050, - "value": 0.0039901480851305075 + "value": "0.0039901480851305075 t CO2/MWh" } ] }, @@ -546,131 +546,131 @@ "projections": [ { "year": 2019, - "value": 0.35881498057849487 + "value": "0.35881498057849487 t CO2/MWh" }, { "year": 2020, - "value": 0.2865468233079732 + "value": "0.2865468233079732 t CO2/MWh" }, { "year": 2021, - "value": 0.2607557025877874 + "value": "0.2607557025877874 t CO2/MWh" }, { "year": 2022, - "value": 0.2349645818676016 + "value": "0.2349645818676016 t CO2/MWh" }, { "year": 2023, - "value": 0.2091734611474158 + "value": "0.2091734611474158 t CO2/MWh" }, { "year": 2024, - "value": 0.18338234042723 + "value": "0.18338234042723 t CO2/MWh" }, { "year": 2025, - "value": 0.15759121970704418 + "value": "0.15759121970704418 t CO2/MWh" }, { "year": 2026, - "value": 0.14282943407381637 + "value": "0.14282943407381637 t CO2/MWh" }, { "year": 2027, - "value": 0.12806764844058857 + "value": "0.12806764844058857 t CO2/MWh" }, { "year": 2028, - "value": 0.11330586280736078 + "value": "0.11330586280736078 t CO2/MWh" }, { "year": 2029, - "value": 0.098544077174133 + "value": "0.098544077174133 t CO2/MWh" }, { "year": 2030, - "value": 0.0837822915409052 + "value": "0.0837822915409052 t CO2/MWh" }, { "year": 2031, - "value": 0.07746160146599985 + "value": "0.07746160146599985 t CO2/MWh" }, { "year": 2032, - "value": 0.0711409113910945 + "value": "0.0711409113910945 t CO2/MWh" }, { "year": 2033, - "value": 0.06482022131618916 + "value": "0.06482022131618916 t CO2/MWh" }, { "year": 2034, - "value": 0.05849953124128381 + "value": "0.05849953124128381 t CO2/MWh" }, { "year": 2035, - "value": 0.052178841166378484 + "value": "0.052178841166378484 t CO2/MWh" }, { "year": 2036, - "value": 0.04684755406645104 + "value": "0.04684755406645104 t CO2/MWh" }, { "year": 2037, - "value": 0.04151626696652359 + "value": "0.04151626696652359 t CO2/MWh" }, { "year": 2038, - "value": 0.03618497986659615 + "value": "0.03618497986659615 t CO2/MWh" }, { "year": 2039, - "value": 0.0308536927666687 + "value": "0.0308536927666687 t CO2/MWh" }, { "year": 2040, - "value": 0.02552240566674124 + "value": "0.02552240566674124 t CO2/MWh" }, { "year": 2041, - "value": 0.02274307056582293 + "value": "0.02274307056582293 t CO2/MWh" }, { "year": 2042, - "value": 0.01996373546490462 + "value": "0.01996373546490462 t CO2/MWh" }, { "year": 2043, - "value": 0.017184400363986312 + "value": "0.017184400363986312 t CO2/MWh" }, { "year": 2044, - "value": 0.014405065263068003 + "value": "0.014405065263068003 t CO2/MWh" }, { "year": 2045, - "value": 0.011625730162149695 + "value": "0.011625730162149695 t CO2/MWh" }, { "year": 2046, - "value": 0.01038065721709401 + "value": "0.01038065721709401 t CO2/MWh" }, { "year": 2047, - "value": 0.009135584272038323 + "value": "0.009135584272038323 t CO2/MWh" }, { "year": 2048, - "value": 0.007890511326982637 + "value": "0.007890511326982637 t CO2/MWh" }, { "year": 2049, - "value": 0.00664543838192695 + "value": "0.00664543838192695 t CO2/MWh" }, { "year": 2050, - "value": 0.005400365436871264 + "value": "0.005400365436871264 t CO2/MWh" } ] }, @@ -680,131 +680,131 @@ "projections": [ { "year": 2019, - "value": 0.4125934987501587 + "value": "0.4125934987501587 t CO2/MWh" }, { "year": 2020, - "value": 0.38454300118653756 + "value": "0.38454300118653756 t CO2/MWh" }, { "year": 2021, - "value": 0.3374576897313128 + "value": "0.3374576897313128 t CO2/MWh" }, { "year": 2022, - "value": 0.29037237827608803 + "value": "0.29037237827608803 t CO2/MWh" }, { "year": 2023, - "value": 0.24328706682086326 + "value": "0.24328706682086326 t CO2/MWh" }, { "year": 2024, - "value": 0.1962017553656385 + "value": "0.1962017553656385 t CO2/MWh" }, { "year": 2025, - "value": 0.1923140908240688 + "value": "0.1923140908240688 t CO2/MWh" }, { "year": 2026, - "value": 0.16704492796205822 + "value": "0.16704492796205822 t CO2/MWh" }, { "year": 2027, - "value": 0.14177576510004763 + "value": "0.14177576510004763 t CO2/MWh" }, { "year": 2028, - "value": 0.11650660223803705 + "value": "0.11650660223803705 t CO2/MWh" }, { "year": 2029, - "value": 0.09123743937602646 + "value": "0.09123743937602646 t CO2/MWh" }, { "year": 2030, - "value": 0.06596827651401585 + "value": "0.06596827651401585 t CO2/MWh" }, { "year": 2031, - "value": 0.06014607184262098 + "value": "0.06014607184262098 t CO2/MWh" }, { "year": 2032, - "value": 0.054323867171226115 + "value": "0.054323867171226115 t CO2/MWh" }, { "year": 2033, - "value": 0.04850166249983125 + "value": "0.04850166249983125 t CO2/MWh" }, { "year": 2034, - "value": 0.04267945782843638 + "value": "0.04267945782843638 t CO2/MWh" }, { "year": 2035, - "value": 0.036857253157041525 + "value": "0.036857253157041525 t CO2/MWh" }, { "year": 2036, - "value": 0.0339296363678427 + "value": "0.0339296363678427 t CO2/MWh" }, { "year": 2037, - "value": 0.031002019578643875 + "value": "0.031002019578643875 t CO2/MWh" }, { "year": 2038, - "value": 0.02807440278944505 + "value": "0.02807440278944505 t CO2/MWh" }, { "year": 2039, - "value": 0.025146786000246224 + "value": "0.025146786000246224 t CO2/MWh" }, { "year": 2040, - "value": 0.0222191692110474 + "value": "0.0222191692110474 t CO2/MWh" }, { "year": 2041, - "value": 0.018843767894743155 + "value": "0.018843767894743155 t CO2/MWh" }, { "year": 2042, - "value": 0.015468366578438914 + "value": "0.015468366578438914 t CO2/MWh" }, { "year": 2043, - "value": 0.012092965262134672 + "value": "0.012092965262134672 t CO2/MWh" }, { "year": 2044, - "value": 0.00871756394583043 + "value": "0.00871756394583043 t CO2/MWh" }, { "year": 2045, - "value": 0.005342162629526188 + "value": "0.005342162629526188 t CO2/MWh" }, { "year": 2046, - "value": 0.005298989223589939 + "value": "0.005298989223589939 t CO2/MWh" }, { "year": 2047, - "value": 0.005255815817653689 + "value": "0.005255815817653689 t CO2/MWh" }, { "year": 2048, - "value": 0.00521264241171744 + "value": "0.00521264241171744 t CO2/MWh" }, { "year": 2049, - "value": 0.00516946900578119 + "value": "0.00516946900578119 t CO2/MWh" }, { "year": 2050, - "value": 0.005126295599844942 + "value": "0.005126295599844942 t CO2/MWh" } ] } @@ -812,4 +812,4 @@ }, "S3": null, "S1S2S3": null -} \ No newline at end of file +} diff --git a/test/inputs/json/fundamental_data.json b/test/inputs/json/fundamental_data.json index 0e621f24..367db588 100644 --- a/test/inputs/json/fundamental_data.json +++ b/test/inputs/json/fundamental_data.json @@ -5,272 +5,272 @@ "region": "North America", "sector": "Electricity Utilities", "target_probability": 0.428571428571428, - "projected_targets": { + "projected_ei_targets": { "S1S2": { "projections": [ { "year": 2019, - "value": 1.6982474347547039 + "value": "1.6982474347547039 t CO2/MWh" }, { "year": 2020, - "value": 1.6982474347547039 + "value": "1.6982474347547039 t CO2/MWh" }, { "year": 2021, - "value": 1.5577542305393455 + "value": "1.5577542305393455 t CO2/MWh" }, { "year": 2022, - "value": 1.4175814131267945 + "value": "1.4175814131267945 t CO2/MWh" }, { "year": 2023, - "value": 1.3757498305423044 + "value": "1.3757498305423044 t CO2/MWh" }, { "year": 2024, - "value": 1.333906842328756 + "value": "1.333906842328756 t CO2/MWh" }, { "year": 2025, - "value": 1.2920428864089595 + "value": "1.2920428864089595 t CO2/MWh" }, { "year": 2026, - "value": 1.2501484659966773 + "value": "1.2501484659966773 t CO2/MWh" }, { "year": 2027, - "value": 1.208217599749575 + "value": "1.208217599749575 t CO2/MWh" }, { "year": 2028, - "value": 1.1662487949464946 + "value": "1.1662487949464946 t CO2/MWh" }, { "year": 2029, - "value": 1.1242411674193187 + "value": "1.1242411674193187 t CO2/MWh" }, { "year": 2030, - "value": 1.0821881325764464 + "value": "1.0821881325764464 t CO2/MWh" }, { "year": 2031, - "value": 1.0336668334595036 + "value": "1.0336668334595036 t CO2/MWh" }, { "year": 2032, - "value": 1.0060112712997695 + "value": "1.0060112712997695 t CO2/MWh" }, { "year": 2033, - "value": 0.9761745320942703 + "value": "0.9761745320942703 t CO2/MWh" }, { "year": 2034, - "value": 0.9425400205253531 + "value": "0.9425400205253531 t CO2/MWh" }, { "year": 2035, - "value": 0.9039393234183674 + "value": "0.9039393234183674 t CO2/MWh" }, { "year": 2036, - "value": 0.8602347104642204 + "value": "0.8602347104642204 t CO2/MWh" }, { "year": 2037, - "value": 0.8125797891612297 + "value": "0.8125797891612297 t CO2/MWh" }, { "year": 2038, - "value": 0.7629485261651574 + "value": "0.7629485261651574 t CO2/MWh" }, { "year": 2039, - "value": 0.7133146578424875 + "value": "0.7133146578424875 t CO2/MWh" }, { "year": 2040, - "value": 0.6651284434989193 + "value": "0.6651284434989193 t CO2/MWh" }, { "year": 2041, - "value": 0.6192381388976574 + "value": "0.6192381388976574 t CO2/MWh" }, { "year": 2042, - "value": 0.5760361799379609 + "value": "0.5760361799379609 t CO2/MWh" }, { "year": 2043, - "value": 0.535632683016501 + "value": "0.535632683016501 t CO2/MWh" }, { "year": 2044, - "value": 0.4979831917544518 + "value": "0.4979831917544518 t CO2/MWh" }, { "year": 2045, - "value": 0.4629668805902728 + "value": "0.4629668805902728 t CO2/MWh" }, { "year": 2046, - "value": 0.4304301348728542 + "value": "0.4304301348728542 t CO2/MWh" }, { "year": 2047, - "value": 0.40020948027188047 + "value": "0.40020948027188047 t CO2/MWh" }, { "year": 2048, - "value": 0.37214308377617 + "value": "0.37214308377617 t CO2/MWh" }, { "year": 2049, - "value": 0.3460761777533931 + "value": "0.3460761777533931 t CO2/MWh" }, { "year": 2050, - "value": 0.32186333388002936 + "value": "0.32186333388002936 t CO2/MWh" } ] }, "S3": null, "S1S2S3": null }, - "projected_intensities": { + "projected_ei_trajectories": { "S1S2": { "projections": [ { "year": 2019, - "value": 1.6982474347547039 + "value": "1.6982474347547039 t CO2/MWh" }, { "year": 2020, - "value": 1.6982474347547039 + "value": "1.6982474347547039 t CO2/MWh" }, { "year": 2021, - "value": 1.5908285727976155 + "value": "1.5908285727976155 t CO2/MWh" }, { "year": 2022, - "value": 1.4927079868414053 + "value": "1.4927079868414053 t CO2/MWh" }, { "year": 2023, - "value": 1.40389082098226 + "value": "1.40389082098226 t CO2/MWh" }, { "year": 2024, - "value": 1.32502588419455 + "value": "1.32502588419455 t CO2/MWh" }, { "year": 2025, - "value": 1.2569008331330909 + "value": "1.2569008331330909 t CO2/MWh" }, { "year": 2026, - "value": 1.1998929619569179 + "value": "1.1998929619569179 t CO2/MWh" }, { "year": 2027, - "value": 1.153286422184539 + "value": "1.153286422184539 t CO2/MWh" }, { "year": 2028, - "value": 1.1151320189357772 + "value": "1.1151320189357772 t CO2/MWh" }, { "year": 2029, - "value": 1.0828716192035852 + "value": "1.0828716192035852 t CO2/MWh" }, { "year": 2030, - "value": 1.0540625049962402 + "value": "1.0540625049962402 t CO2/MWh" }, { "year": 2031, - "value": 1.026649108683692 + "value": "1.026649108683692 t CO2/MWh" }, { "year": 2032, - "value": 0.9988596299898522 + "value": "0.9988596299898522 t CO2/MWh" }, { "year": 2033, - "value": 0.96902907553976 + "value": "0.96902907553976 t CO2/MWh" }, { "year": 2034, - "value": 0.9356001506697456 + "value": "0.9356001506697456 t CO2/MWh" }, { "year": 2035, - "value": 0.897456358810864 + "value": "0.897456358810864 t CO2/MWh" }, { "year": 2036, - "value": 0.8544664234169373 + "value": "0.8544664234169373 t CO2/MWh" }, { "year": 2037, - "value": 0.8077218576734648 + "value": "0.8077218576734648 t CO2/MWh" }, { "year": 2038, - "value": 0.7590881112787137 + "value": "0.7590881112787137 t CO2/MWh" }, { "year": 2039, - "value": 0.7104327175253642 + "value": "0.7104327175253642 t CO2/MWh" }, { "year": 2040, - "value": 0.6631344017977762 + "value": "0.6631344017977762 t CO2/MWh" }, { "year": 2041, - "value": 0.6180079848270246 + "value": "0.6180079848270246 t CO2/MWh" }, { "year": 2042, - "value": 0.5754393574567898 + "value": "0.5754393574567898 t CO2/MWh" }, { "year": 2043, - "value": 0.535546775490256 + "value": "0.535546775490256 t CO2/MWh" }, { "year": 2044, - "value": 0.4983002114580005 + "value": "0.4983002114580005 t CO2/MWh" }, { "year": 2045, - "value": 0.4635948642367862 + "value": "0.4635948642367862 t CO2/MWh" }, { "year": 2046, - "value": 0.43129246081540834 + "value": "0.43129246081540834 t CO2/MWh" }, { "year": 2047, - "value": 0.4012432459353121 + "value": "0.4012432459353121 t CO2/MWh" }, { "year": 2048, - "value": 0.3732972177077626 + "value": "0.3732972177077626 t CO2/MWh" }, { "year": 2049, - "value": 0.3473095993533106 + "value": "0.3473095993533106 t CO2/MWh" }, { "year": 2050, - "value": 0.32314328995492764 + "value": "0.32314328995492764 t CO2/MWh" } ] }, @@ -278,8 +278,8 @@ "S1S2S3": null }, "country": "United States of America", - "ghg_s1s2": 104827858.636039, - "ghg_s3": 104827858.636039, + "ghg_s1s2": "104827858.636039 MWh", + "ghg_s3": "104827858.636039 MWh", "industry_level_1": null, "industry_level_2": null, "industry_level_3": null, @@ -296,272 +296,272 @@ "region": "North America", "sector": "Electricity Utilities", "target_probability": 0.4285714285714285, - "projected_targets": { + "projected_ei_targets": { "S1S2": { "projections": [ { "year": 2019, - "value": 0.47658693158227944 + "value": "0.47658693158227944 t CO2/MWh" }, { "year": 2020, - "value": 0.47658693158227944 + "value": "0.47658693158227944 t CO2/MWh" }, { "year": 2021, - "value": 0.4638779467400853 + "value": "0.4638779467400853 t CO2/MWh" }, { "year": 2022, - "value": 0.4511689618978912 + "value": "0.4511689618978912 t CO2/MWh" }, { "year": 2023, - "value": 0.43845997705569717 + "value": "0.43845997705569717 t CO2/MWh" }, { "year": 2024, - "value": 0.4257509922135031 + "value": "0.4257509922135031 t CO2/MWh" }, { "year": 2025, - "value": 0.413042007371309 + "value": "0.413042007371309 t CO2/MWh" }, { "year": 2026, - "value": 0.40033302252911485 + "value": "0.40033302252911485 t CO2/MWh" }, { "year": 2027, - "value": 0.3876240376869207 + "value": "0.3876240376869207 t CO2/MWh" }, { "year": 2028, - "value": 0.37491505284472665 + "value": "0.37491505284472665 t CO2/MWh" }, { "year": 2029, - "value": 0.3622060680025326 + "value": "0.3622060680025326 t CO2/MWh" }, { "year": 2030, - "value": 0.3494970831603385 + "value": "0.3494970831603385 t CO2/MWh" }, { "year": 2031, - "value": 0.33202222900232153 + "value": "0.33202222900232153 t CO2/MWh" }, { "year": 2032, - "value": 0.31454737484430456 + "value": "0.31454737484430456 t CO2/MWh" }, { "year": 2033, - "value": 0.2970725206862877 + "value": "0.2970725206862877 t CO2/MWh" }, { "year": 2034, - "value": 0.27959766652827067 + "value": "0.27959766652827067 t CO2/MWh" }, { "year": 2035, - "value": 0.26212281237025375 + "value": "0.26212281237025375 t CO2/MWh" }, { "year": 2036, - "value": 0.24464795821223684 + "value": "0.24464795821223684 t CO2/MWh" }, { "year": 2037, - "value": 0.2271731040542199 + "value": "0.2271731040542199 t CO2/MWh" }, { "year": 2038, - "value": 0.20969824989620298 + "value": "0.20969824989620298 t CO2/MWh" }, { "year": 2039, - "value": 0.19222339573818606 + "value": "0.19222339573818606 t CO2/MWh" }, { "year": 2040, - "value": 0.17474854158016914 + "value": "0.17474854158016914 t CO2/MWh" }, { "year": 2041, - "value": 0.15727368742215223 + "value": "0.15727368742215223 t CO2/MWh" }, { "year": 2042, - "value": 0.1397988332641353 + "value": "0.1397988332641353 t CO2/MWh" }, { "year": 2043, - "value": 0.12232397910611839 + "value": "0.12232397910611839 t CO2/MWh" }, { "year": 2044, - "value": 0.10484912494810146 + "value": "0.10484912494810146 t CO2/MWh" }, { "year": 2045, - "value": 0.08737427079008454 + "value": "0.08737427079008454 t CO2/MWh" }, { "year": 2046, - "value": 0.06989941663206761 + "value": "0.06989941663206761 t CO2/MWh" }, { "year": 2047, - "value": 0.0524245624740507 + "value": "0.0524245624740507 t CO2/MWh" }, { "year": 2048, - "value": 0.03494970831603377 + "value": "0.03494970831603377 t CO2/MWh" }, { "year": 2049, - "value": 0.017474854158016848 + "value": "0.017474854158016848 t CO2/MWh" }, { "year": 2050, - "value": 0.0 + "value": "0.0 t CO2/MWh" } ] }, "S3": null, "S1S2S3": null }, - "projected_intensities": { + "projected_ei_trajectories": { "S1S2": { "projections": [ { "year": 2019, - "value": 0.47658693158227944 + "value": "0.47658693158227944 t CO2/MWh" }, { "year": 2020, - "value": 0.47658693158227944 + "value": "0.47658693158227944 t CO2/MWh" }, { "year": 2021, - "value": 0.46469562756682775 + "value": "0.46469562756682775 t CO2/MWh" }, { "year": 2022, - "value": 0.4647548888456499 + "value": "0.4647548888456499 t CO2/MWh" }, { "year": 2023, - "value": 0.46633236949094614 + "value": "0.46633236949094614 t CO2/MWh" }, { "year": 2024, - "value": 0.46916211543340447 + "value": "0.46916211543340447 t CO2/MWh" }, { "year": 2025, - "value": 0.47272579700319967 + "value": "0.47272579700319967 t CO2/MWh" }, { "year": 2026, - "value": 0.476297380468674 + "value": "0.476297380468674 t CO2/MWh" }, { "year": 2027, - "value": 0.47917664907701873 + "value": "0.47917664907701873 t CO2/MWh" }, { "year": 2028, - "value": 0.48095457621703386 + "value": "0.48095457621703386 t CO2/MWh" }, { "year": 2029, - "value": 0.4815325131927147 + "value": "0.4815325131927147 t CO2/MWh" }, { "year": 2030, - "value": 0.48089866695678 + "value": "0.48089866695678 t CO2/MWh" }, { "year": 2031, - "value": 0.4788731437775647 + "value": "0.4788731437775647 t CO2/MWh" }, { "year": 2032, - "value": 0.4749200564812563 + "value": "0.4749200564812563 t CO2/MWh" }, { "year": 2033, - "value": 0.4680373257828999 + "value": "0.4680373257828999 t CO2/MWh" }, { "year": 2034, - "value": 0.456822974997255 + "value": "0.456822974997255 t CO2/MWh" }, { "year": 2035, - "value": 0.43992414191953577 + "value": "0.43992414191953577 t CO2/MWh" }, { "year": 2036, - "value": 0.41686871286337673 + "value": "0.41686871286337673 t CO2/MWh" }, { "year": 2037, - "value": 0.38867473018726767 + "value": "0.38867473018726767 t CO2/MWh" }, { "year": 2038, - "value": 0.3575275342519104 + "value": "0.3575275342519104 t CO2/MWh" }, { "year": 2039, - "value": 0.32578957147485127 + "value": "0.32578957147485127 t CO2/MWh" }, { "year": 2040, - "value": 0.2952358348870772 + "value": "0.2952358348870772 t CO2/MWh" }, { "year": 2041, - "value": 0.26687296857116094 + "value": "0.26687296857116094 t CO2/MWh" }, { "year": 2042, - "value": 0.2411077146972847 + "value": "0.2411077146972847 t CO2/MWh" }, { "year": 2043, - "value": 0.21798083999859974 + "value": "0.21798083999859974 t CO2/MWh" }, { "year": 2044, - "value": 0.1973452622150422 + "value": "0.1973452622150422 t CO2/MWh" }, { "year": 2045, - "value": 0.1789746807517556 + "value": "0.1789746807517556 t CO2/MWh" }, { "year": 2046, - "value": 0.16262213627268932 + "value": "0.16262213627268932 t CO2/MWh" }, { "year": 2047, - "value": 0.14804865736582992 + "value": "0.14804865736582992 t CO2/MWh" }, { "year": 2048, - "value": 0.1350356279896691 + "value": "0.1350356279896691 t CO2/MWh" }, { "year": 2049, - "value": 0.12338881327823215 + "value": "0.12338881327823215 t CO2/MWh" }, { "year": 2050, - "value": 0.11293834909899002 + "value": "0.11293834909899002 t CO2/MWh" } ] }, @@ -569,8 +569,8 @@ "S1S2S3": null }, "country": "United States of America", - "ghg_s1s2": 598937001.892059, - "ghg_s3": 598937001.892059, + "ghg_s1s2": "598937001.892059 MWh", + "ghg_s3": "598937001.892059 MWh", "industry_level_1": null, "industry_level_2": null, "industry_level_3": null, @@ -587,272 +587,272 @@ "region": "Europe", "sector": "Electricity Utilities", "target_probability": 0.4285714285714285, - "projected_targets": { + "projected_ei_targets": { "S1S2": { "projections": [ { "year": 2019, - "value": 0.2245739316927696 + "value": "0.2245739316927696 t CO2/MWh" }, { "year": 2020, - "value": 0.2580129849830155 + "value": "0.2580129849830155 t CO2/MWh" }, { "year": 2021, - "value": 0.24042119055235542 + "value": "0.24042119055235542 t CO2/MWh" }, { "year": 2022, - "value": 0.22282939612169528 + "value": "0.22282939612169528 t CO2/MWh" }, { "year": 2023, - "value": 0.20523760169103514 + "value": "0.20523760169103514 t CO2/MWh" }, { "year": 2024, - "value": 0.187645807260375 + "value": "0.187645807260375 t CO2/MWh" }, { "year": 2025, - "value": 0.17005401282971486 + "value": "0.17005401282971486 t CO2/MWh" }, { "year": 2026, - "value": 0.15246221839905472 + "value": "0.15246221839905472 t CO2/MWh" }, { "year": 2027, - "value": 0.13487042396839458 + "value": "0.13487042396839458 t CO2/MWh" }, { "year": 2028, - "value": 0.11727862953773445 + "value": "0.11727862953773445 t CO2/MWh" }, { "year": 2029, - "value": 0.0996868351070743 + "value": "0.0996868351070743 t CO2/MWh" }, { "year": 2030, - "value": 0.08209504067641414 + "value": "0.08209504067641414 t CO2/MWh" }, { "year": 2031, - "value": 0.07388553660877273 + "value": "0.07388553660877273 t CO2/MWh" }, { "year": 2032, - "value": 0.06567603254113132 + "value": "0.06567603254113132 t CO2/MWh" }, { "year": 2033, - "value": 0.0574665284734899 + "value": "0.0574665284734899 t CO2/MWh" }, { "year": 2034, - "value": 0.0492570244058485 + "value": "0.0492570244058485 t CO2/MWh" }, { "year": 2035, - "value": 0.041047520338207084 + "value": "0.041047520338207084 t CO2/MWh" }, { "year": 2036, - "value": 0.032838016270565665 + "value": "0.032838016270565665 t CO2/MWh" }, { "year": 2037, - "value": 0.024628512202924252 + "value": "0.024628512202924252 t CO2/MWh" }, { "year": 2038, - "value": 0.016419008135282843 + "value": "0.016419008135282843 t CO2/MWh" }, { "year": 2039, - "value": 0.008209504067641425 + "value": "0.008209504067641425 t CO2/MWh" }, { "year": 2040, - "value": 0.0 + "value": "0.0 t CO2/MWh" }, { "year": 2041, - "value": 0.0 + "value": "0.0 t CO2/MWh" }, { "year": 2042, - "value": 0.0 + "value": "0.0 t CO2/MWh" }, { "year": 2043, - "value": 0.0 + "value": "0.0 t CO2/MWh" }, { "year": 2044, - "value": 0.0 + "value": "0.0 t CO2/MWh" }, { "year": 2045, - "value": 0.0 + "value": "0.0 t CO2/MWh" }, { "year": 2046, - "value": 0.0 + "value": "0.0 t CO2/MWh" }, { "year": 2047, - "value": 0.0 + "value": "0.0 t CO2/MWh" }, { "year": 2048, - "value": 0.0 + "value": "0.0 t CO2/MWh" }, { "year": 2049, - "value": 0.0 + "value": "0.0 t CO2/MWh" }, { "year": 2050, - "value": 0.0 + "value": "0.0 t CO2/MWh" } ] }, "S3": null, "S1S2S3": null }, - "projected_intensities": { + "projected_ei_trajectories": { "S1S2": { "projections": [ { "year": 2019, - "value": 0.2245739316927696 + "value": "0.2245739316927696 t CO2/MWh" }, { "year": 2020, - "value": 0.2580129849830155 + "value": "0.2580129849830155 t CO2/MWh" }, { "year": 2021, - "value": 0.26177945879248193 + "value": "0.26177945879248193 t CO2/MWh" }, { "year": 2022, - "value": 0.2641607100651649 + "value": "0.2641607100651649 t CO2/MWh" }, { "year": 2023, - "value": 0.26650337879692015 + "value": "0.26650337879692015 t CO2/MWh" }, { "year": 2024, - "value": 0.2686911139325781 + "value": "0.2686911139325781 t CO2/MWh" }, { "year": 2025, - "value": 0.27056941251245425 + "value": "0.27056941251245425 t CO2/MWh" }, { "year": 2026, - "value": 0.2719804346544648 + "value": "0.2719804346544648 t CO2/MWh" }, { "year": 2027, - "value": 0.2728233367299267 + "value": "0.2728233367299267 t CO2/MWh" }, { "year": 2028, - "value": 0.27308083760219315 + "value": "0.27308083760219315 t CO2/MWh" }, { "year": 2029, - "value": 0.2727671049650463 + "value": "0.2727671049650463 t CO2/MWh" }, { "year": 2030, - "value": 0.27183449034074286 + "value": "0.27183449034074286 t CO2/MWh" }, { "year": 2031, - "value": 0.2700901241414129 + "value": "0.2700901241414129 t CO2/MWh" }, { "year": 2032, - "value": 0.2671298769114037 + "value": "0.2671298769114037 t CO2/MWh" }, { "year": 2033, - "value": 0.26230202631499844 + "value": "0.26230202631499844 t CO2/MWh" }, { "year": 2034, - "value": 0.25477759230500713 + "value": "0.25477759230500713 t CO2/MWh" }, { "year": 2035, - "value": 0.24384528110981835 + "value": "0.24384528110981835 t CO2/MWh" }, { "year": 2036, - "value": 0.22939320881946781 + "value": "0.22939320881946781 t CO2/MWh" }, { "year": 2037, - "value": 0.21219242867517268 + "value": "0.21219242867517268 t CO2/MWh" }, { "year": 2038, - "value": 0.19361663923163058 + "value": "0.19361663923163058 t CO2/MWh" }, { "year": 2039, - "value": 0.17503814781395072 + "value": "0.17503814781395072 t CO2/MWh" }, { "year": 2040, - "value": 0.15742325486563583 + "value": "0.15742325486563583 t CO2/MWh" }, { "year": 2041, - "value": 0.14127686604553363 + "value": "0.14127686604553363 t CO2/MWh" }, { "year": 2042, - "value": 0.12676706957864525 + "value": "0.12676706957864525 t CO2/MWh" }, { "year": 2043, - "value": 0.11386749628109935 + "value": "0.11386749628109935 t CO2/MWh" }, { "year": 2044, - "value": 0.10245835732472205 + "value": "0.10245835732472205 t CO2/MWh" }, { "year": 2045, - "value": 0.09238520094315875 + "value": "0.09238520094315875 t CO2/MWh" }, { "year": 2046, - "value": 0.08348922300821485 + "value": "0.08348922300821485 t CO2/MWh" }, { "year": 2047, - "value": 0.07562130040069098 + "value": "0.07562130040069098 t CO2/MWh" }, { "year": 2048, - "value": 0.06864747304171097 + "value": "0.06864747304171097 t CO2/MWh" }, { "year": 2049, - "value": 0.06245019857761241 + "value": "0.06245019857761241 t CO2/MWh" }, { "year": 2050, - "value": 0.056927654404565015 + "value": "0.056927654404565015 t CO2/MWh" } ] }, @@ -860,8 +860,8 @@ "S1S2S3": null }, "country": "Germany", - "ghg_s1s2": 122472002.661096, - "ghg_s3": 122472002.661096, + "ghg_s1s2": "122472002.661096 MWh", + "ghg_s3": "122472002.661096 MWh", "industry_level_1": null, "industry_level_2": null, "industry_level_3": null, @@ -878,272 +878,272 @@ "region": "Europe", "sector": "Electricity Utilities", "target_probability": 0.4285714285714285, - "projected_targets": { + "projected_ei_targets": { "S1S2": { "projections": [ { "year": 2019, - "value": 0.05724003223448632 + "value": "0.05724003223448632 t CO2/MWh" }, { "year": 2020, - "value": 0.05724003223448632 + "value": "0.05724003223448632 t CO2/MWh" }, { "year": 2021, - "value": 0.05503849253315993 + "value": "0.05503849253315993 t CO2/MWh" }, { "year": 2022, - "value": 0.05283695283183353 + "value": "0.05283695283183353 t CO2/MWh" }, { "year": 2023, - "value": 0.05063541313050714 + "value": "0.05063541313050714 t CO2/MWh" }, { "year": 2024, - "value": 0.048433873429180735 + "value": "0.048433873429180735 t CO2/MWh" }, { "year": 2025, - "value": 0.04623233372785435 + "value": "0.04623233372785435 t CO2/MWh" }, { "year": 2026, - "value": 0.044030794026527945 + "value": "0.044030794026527945 t CO2/MWh" }, { "year": 2027, - "value": 0.041829254325201556 + "value": "0.041829254325201556 t CO2/MWh" }, { "year": 2028, - "value": 0.039627714623875154 + "value": "0.039627714623875154 t CO2/MWh" }, { "year": 2029, - "value": 0.037426174922548766 + "value": "0.037426174922548766 t CO2/MWh" }, { "year": 2030, - "value": 0.035224635221222364 + "value": "0.035224635221222364 t CO2/MWh" }, { "year": 2031, - "value": 0.035224635221222364 + "value": "0.035224635221222364 t CO2/MWh" }, { "year": 2032, - "value": 0.035224635221222364 + "value": "0.035224635221222364 t CO2/MWh" }, { "year": 2033, - "value": 0.035224635221222364 + "value": "0.035224635221222364 t CO2/MWh" }, { "year": 2034, - "value": 0.035224635221222364 + "value": "0.035224635221222364 t CO2/MWh" }, { "year": 2035, - "value": 0.035224635221222364 + "value": "0.035224635221222364 t CO2/MWh" }, { "year": 2036, - "value": 0.035224635221222364 + "value": "0.035224635221222364 t CO2/MWh" }, { "year": 2037, - "value": 0.035224635221222364 + "value": "0.035224635221222364 t CO2/MWh" }, { "year": 2038, - "value": 0.035224635221222364 + "value": "0.035224635221222364 t CO2/MWh" }, { "year": 2039, - "value": 0.035224635221222364 + "value": "0.035224635221222364 t CO2/MWh" }, { "year": 2040, - "value": 0.035224635221222364 + "value": "0.035224635221222364 t CO2/MWh" }, { "year": 2041, - "value": 0.035224635221222364 + "value": "0.035224635221222364 t CO2/MWh" }, { "year": 2042, - "value": 0.034377382463503116 + "value": "0.034377382463503116 t CO2/MWh" }, { "year": 2043, - "value": 0.03205116202181782 + "value": "0.03205116202181782 t CO2/MWh" }, { "year": 2044, - "value": 0.029863295768792552 + "value": "0.029863295768792552 t CO2/MWh" }, { "year": 2045, - "value": 0.027813643646546475 + "value": "0.027813643646546475 t CO2/MWh" }, { "year": 2046, - "value": 0.02589814089554389 + "value": "0.02589814089554389 t CO2/MWh" }, { "year": 2047, - "value": 0.02411071887691341 + "value": "0.02411071887691341 t CO2/MWh" }, { "year": 2048, - "value": 0.022444401628175067 + "value": "0.022444401628175067 t CO2/MWh" }, { "year": 2049, - "value": 0.02089192129440824 + "value": "0.02089192129440824 t CO2/MWh" }, { "year": 2050, - "value": 0.019446057728423578 + "value": "0.019446057728423578 t CO2/MWh" } ] }, "S3": null, "S1S2S3": null }, - "projected_intensities": { + "projected_ei_trajectories": { "S1S2": { "projections": [ { "year": 2019, - "value": 0.05724003223448632 + "value": "0.05724003223448632 t CO2/MWh" }, { "year": 2020, - "value": 0.05724003223448632 + "value": "0.05724003223448632 t CO2/MWh" }, { "year": 2021, - "value": 0.05724003223448632 + "value": "0.05724003223448632 t CO2/MWh" }, { "year": 2022, - "value": 0.05771285904689459 + "value": "0.05771285904689459 t CO2/MWh" }, { "year": 2023, - "value": 0.05813380982894399 + "value": "0.05813380982894399 t CO2/MWh" }, { "year": 2024, - "value": 0.05846658186194516 + "value": "0.05846658186194516 t CO2/MWh" }, { "year": 2025, - "value": 0.05866567752158908 + "value": "0.05866567752158908 t CO2/MWh" }, { "year": 2026, - "value": 0.05868918063328215 + "value": "0.05868918063328215 t CO2/MWh" }, { "year": 2027, - "value": 0.05851907058710368 + "value": "0.05851907058710368 t CO2/MWh" }, { "year": 2028, - "value": 0.05817029119812636 + "value": "0.05817029119812636 t CO2/MWh" }, { "year": 2029, - "value": 0.0576764574644776 + "value": "0.0576764574644776 t CO2/MWh" }, { "year": 2030, - "value": 0.05706627123655193 + "value": "0.05706627123655193 t CO2/MWh" }, { "year": 2031, - "value": 0.056347417934553105 + "value": "0.056347417934553105 t CO2/MWh" }, { "year": 2032, - "value": 0.055498976797223154 + "value": "0.055498976797223154 t CO2/MWh" }, { "year": 2033, - "value": 0.054468751288682456 + "value": "0.054468751288682456 t CO2/MWh" }, { "year": 2034, - "value": 0.05317938393618243 + "value": "0.05317938393618243 t CO2/MWh" }, { "year": 2035, - "value": 0.05155357418089301 + "value": "0.05155357418089301 t CO2/MWh" }, { "year": 2036, - "value": 0.049557819480595636 + "value": "0.049557819480595636 t CO2/MWh" }, { "year": 2037, - "value": 0.047234621634526436 + "value": "0.047234621634526436 t CO2/MWh" }, { "year": 2038, - "value": 0.04468952296242749 + "value": "0.04468952296242749 t CO2/MWh" }, { "year": 2039, - "value": 0.04204531759673595 + "value": "0.04204531759673595 t CO2/MWh" }, { "year": 2040, - "value": 0.03940414234055353 + "value": "0.03940414234055353 t CO2/MWh" }, { "year": 2041, - "value": 0.03683489723360438 + "value": "0.03683489723360438 t CO2/MWh" }, { "year": 2042, - "value": 0.034377382463503116 + "value": "0.034377382463503116 t CO2/MWh" }, { "year": 2043, - "value": 0.03205116202181782 + "value": "0.03205116202181782 t CO2/MWh" }, { "year": 2044, - "value": 0.02986329576879256 + "value": "0.02986329576879256 t CO2/MWh" }, { "year": 2045, - "value": 0.027813643646546475 + "value": "0.027813643646546475 t CO2/MWh" }, { "year": 2046, - "value": 0.02589814089554389 + "value": "0.02589814089554389 t CO2/MWh" }, { "year": 2047, - "value": 0.02411071887691341 + "value": "0.02411071887691341 t CO2/MWh" }, { "year": 2048, - "value": 0.022444401628175067 + "value": "0.022444401628175067 t CO2/MWh" }, { "year": 2049, - "value": 0.02089192129440824 + "value": "0.02089192129440824 t CO2/MWh" }, { "year": 2050, - "value": 0.01944605772842358 + "value": "0.01944605772842358 t CO2/MWh" } ] }, @@ -1151,8 +1151,8 @@ "S1S2S3": null }, "country": "France", - "ghg_s1s2": 100080009.401725, - "ghg_s3": 100080009.401725, + "ghg_s1s2": "100080009.401725 MWh", + "ghg_s3": "100080009.401725 MWh", "industry_level_1": null, "industry_level_2": null, "industry_level_3": null, @@ -1169,272 +1169,272 @@ "region": "Europe", "sector": "Electricity Utilities", "target_probability": 0.4285714285714285, - "projected_targets": { + "projected_ei_targets": { "S1S2": { "projections": [ { "year": 2019, - "value": 0.32885410556364697 + "value": "0.32885410556364697 t CO2/MWh" }, { "year": 2020, - "value": 0.24267537955382837 + "value": "0.24267537955382837 t CO2/MWh" }, { "year": 2021, - "value": 0.2292271730945991 + "value": "0.2292271730945991 t CO2/MWh" }, { "year": 2022, - "value": 0.21874565974086543 + "value": "0.21874565974086543 t CO2/MWh" }, { "year": 2023, - "value": 0.2084827854944359 + "value": "0.2084827854944359 t CO2/MWh" }, { "year": 2024, - "value": 0.19834320266760228 + "value": "0.19834320266760228 t CO2/MWh" }, { "year": 2025, - "value": 0.1881647584132854 + "value": "0.1881647584132854 t CO2/MWh" }, { "year": 2026, - "value": 0.17774385033046483 + "value": "0.17774385033046483 t CO2/MWh" }, { "year": 2027, - "value": 0.1669124201885628 + "value": "0.1669124201885628 t CO2/MWh" }, { "year": 2028, - "value": 0.15561003127403028 + "value": "0.15561003127403028 t CO2/MWh" }, { "year": 2029, - "value": 0.1438749152521488 + "value": "0.1438749152521488 t CO2/MWh" }, { "year": 2030, - "value": 0.13177137671503097 + "value": "0.13177137671503097 t CO2/MWh" }, { "year": 2031, - "value": 0.13276929275040422 + "value": "0.13276929275040422 t CO2/MWh" }, { "year": 2032, - "value": 0.13335784521876742 + "value": "0.13335784521876742 t CO2/MWh" }, { "year": 2033, - "value": 0.1333692776196653 + "value": "0.1333692776196653 t CO2/MWh" }, { "year": 2034, - "value": 0.13254441770964823 + "value": "0.13254441770964823 t CO2/MWh" }, { "year": 2035, - "value": 0.13062227989187505 + "value": "0.13062227989187505 t CO2/MWh" }, { "year": 2036, - "value": 0.12750949848494236 + "value": "0.12750949848494236 t CO2/MWh" }, { "year": 2037, - "value": 0.12340891587446856 + "value": "0.12340891587446856 t CO2/MWh" }, { "year": 2038, - "value": 0.11875791839377972 + "value": "0.11875791839377972 t CO2/MWh" }, { "year": 2039, - "value": 0.11402643138455733 + "value": "0.11402643138455733 t CO2/MWh" }, { "year": 2040, - "value": 0.10956018713497392 + "value": "0.10956018713497392 t CO2/MWh" }, { "year": 2041, - "value": 0.105545520564094 + "value": "0.105545520564094 t CO2/MWh" }, { "year": 2042, - "value": 0.1020465962914532 + "value": "0.1020465962914532 t CO2/MWh" }, { "year": 2043, - "value": 0.09905522969770901 + "value": "0.09905522969770901 t CO2/MWh" }, { "year": 2044, - "value": 0.09652810581191351 + "value": "0.09652810581191351 t CO2/MWh" }, { "year": 2045, - "value": 0.09440897997906797 + "value": "0.09440897997906797 t CO2/MWh" }, { "year": 2046, - "value": 0.09264026712668219 + "value": "0.09264026712668219 t CO2/MWh" }, { "year": 2047, - "value": 0.08517362334139754 + "value": "0.08517362334139754 t CO2/MWh" }, { "year": 2048, - "value": 0.07790417551833904 + "value": "0.07790417551833904 t CO2/MWh" }, { "year": 2049, - "value": 0.07136834505417619 + "value": "0.07136834505417619 t CO2/MWh" }, { "year": 2050, - "value": 0.065478378493248 + "value": "0.065478378493248 t CO2/MWh" } ] }, "S3": null, "S1S2S3": null }, - "projected_intensities": { + "projected_ei_trajectories": { "S1S2": { "projections": [ { "year": 2019, - "value": 0.32885410556364697 + "value": "0.32885410556364697 t CO2/MWh" }, { "year": 2020, - "value": 0.24267537955382837 + "value": "0.24267537955382837 t CO2/MWh" }, { "year": 2021, - "value": 0.24033457148509993 + "value": "0.24033457148509993 t CO2/MWh" }, { "year": 2022, - "value": 0.2409579106377267 + "value": "0.2409579106377267 t CO2/MWh" }, { "year": 2023, - "value": 0.2417818462064969 + "value": "0.2417818462064969 t CO2/MWh" }, { "year": 2024, - "value": 0.24268976440202267 + "value": "0.24268976440202267 t CO2/MWh" }, { "year": 2025, - "value": 0.24349460161928416 + "value": "0.24349460161928416 t CO2/MWh" }, { "year": 2026, - "value": 0.24397138892257464 + "value": "0.24397138892257464 t CO2/MWh" }, { "year": 2027, - "value": 0.24394253485616385 + "value": "0.24394253485616385 t CO2/MWh" }, { "year": 2028, - "value": 0.24334831939244259 + "value": "0.24334831939244259 t CO2/MWh" }, { "year": 2029, - "value": 0.24222255223671108 + "value": "0.24222255223671108 t CO2/MWh" }, { "year": 2030, - "value": 0.24059988604314503 + "value": "0.24059988604314503 t CO2/MWh" }, { "year": 2031, - "value": 0.23842889156088481 + "value": "0.23842889156088481 t CO2/MWh" }, { "year": 2032, - "value": 0.2355131231197212 + "value": "0.2355131231197212 t CO2/MWh" }, { "year": 2033, - "value": 0.23147855790212343 + "value": "0.23147855790212343 t CO2/MWh" }, { "year": 2034, - "value": 0.2258037992235861 + "value": "0.2258037992235861 t CO2/MWh" }, { "year": 2035, - "value": 0.21798746842676195 + "value": "0.21798746842676195 t CO2/MWh" }, { "year": 2036, - "value": 0.20784958694524855 + "value": "0.20784958694524855 t CO2/MWh" }, { "year": 2037, - "value": 0.19574887338422736 + "value": "0.19574887338422736 t CO2/MWh" }, { "year": 2038, - "value": 0.18246782565903438 + "value": "0.18246782565903438 t CO2/MWh" }, { "year": 2039, - "value": 0.16886324586102514 + "value": "0.16886324586102514 t CO2/MWh" }, { "year": 2040, - "value": 0.15559468476457258 + "value": "0.15559468476457258 t CO2/MWh" }, { "year": 2041, - "value": 0.14305525832021382 + "value": "0.14305525832021382 t CO2/MWh" }, { "year": 2042, - "value": 0.1314251517577364 + "value": "0.1314251517577364 t CO2/MWh" }, { "year": 2043, - "value": 0.12075040166572187 + "value": "0.12075040166572187 t CO2/MWh" }, { "year": 2044, - "value": 0.11100441183553697 + "value": "0.11100441183553697 t CO2/MWh" }, { "year": 2045, - "value": 0.10212645769373127 + "value": "0.10212645769373127 t CO2/MWh" }, { "year": 2046, - "value": 0.09404317361078214 + "value": "0.09404317361078214 t CO2/MWh" }, { "year": 2047, - "value": 0.0866796376574657 + "value": "0.0866796376574657 t CO2/MWh" }, { "year": 2048, - "value": 0.07996464424982233 + "value": "0.07996464424982233 t CO2/MWh" }, { "year": 2049, - "value": 0.07383289435141957 + "value": "0.07383289435141957 t CO2/MWh" }, { "year": 2050, - "value": 0.0682256166185565 + "value": "0.0682256166185565 t CO2/MWh" } ] }, @@ -1442,8 +1442,8 @@ "S1S2S3": null }, "country": "Italy", - "ghg_s1s2": 824864406.472471, - "ghg_s3": 824864406.472471, + "ghg_s1s2": "824864406.472471 MWh", + "ghg_s3": "824864406.472471 MWh", "industry_level_1": null, "industry_level_2": null, "industry_level_3": null, @@ -1460,272 +1460,272 @@ "region": "Europe", "sector": "Electricity Utilities", "target_probability": 0.4285714285714285, - "projected_targets": { + "projected_ei_targets": { "S1S2": { "projections": [ { "year": 2019, - "value": 0.11693626260640376 + "value": "0.11693626260640376 t CO2/MWh" }, { "year": 2020, - "value": 0.09820714020640375 + "value": "0.09820714020640375 t CO2/MWh" }, { "year": 2021, - "value": 0.09450259463427568 + "value": "0.09450259463427568 t CO2/MWh" }, { "year": 2022, - "value": 0.09042451580120292 + "value": "0.09042451580120292 t CO2/MWh" }, { "year": 2023, - "value": 0.0863859166070523 + "value": "0.0863859166070523 t CO2/MWh" }, { "year": 2024, - "value": 0.08238806892622057 + "value": "0.08238806892622057 t CO2/MWh" }, { "year": 2025, - "value": 0.07843287107853578 + "value": "0.07843287107853578 t CO2/MWh" }, { "year": 2026, - "value": 0.074520788083014 + "value": "0.074520788083014 t CO2/MWh" }, { "year": 2027, - "value": 0.0706483732393083 + "value": "0.0706483732393083 t CO2/MWh" }, { "year": 2028, - "value": 0.06680783388137478 + "value": "0.06680783388137478 t CO2/MWh" }, { "year": 2029, - "value": 0.0629893644649377 + "value": "0.0629893644649377 t CO2/MWh" }, { "year": 2030, - "value": 0.0591837718038815 + "value": "0.0591837718038815 t CO2/MWh" }, { "year": 2031, - "value": 0.05908796042308796 + "value": "0.05908796042308796 t CO2/MWh" }, { "year": 2032, - "value": 0.05899087998837707 + "value": "0.05899087998837707 t CO2/MWh" }, { "year": 2033, - "value": 0.058260966679067036 + "value": "0.058260966679067036 t CO2/MWh" }, { "year": 2034, - "value": 0.05620300525458842 + "value": "0.05620300525458842 t CO2/MWh" }, { "year": 2035, - "value": 0.05385193734355564 + "value": "0.05385193734355564 t CO2/MWh" }, { "year": 2036, - "value": 0.05120334775837065 + "value": "0.05120334775837065 t CO2/MWh" }, { "year": 2037, - "value": 0.04832937913827607 + "value": "0.04832937913827607 t CO2/MWh" }, { "year": 2038, - "value": 0.0453487042989272 + "value": "0.0453487042989272 t CO2/MWh" }, { "year": 2039, - "value": 0.042377599117382966 + "value": "0.042377599117382966 t CO2/MWh" }, { "year": 2040, - "value": 0.039500064614602357 + "value": "0.039500064614602357 t CO2/MWh" }, { "year": 2041, - "value": 0.036764300222194735 + "value": "0.036764300222194735 t CO2/MWh" }, { "year": 2042, - "value": 0.034191888556344675 + "value": "0.034191888556344675 t CO2/MWh" }, { "year": 2043, - "value": 0.03178815623656653 + "value": "0.03178815623656653 t CO2/MWh" }, { "year": 2044, - "value": 0.02954965284120169 + "value": "0.02954965284120169 t CO2/MWh" }, { "year": 2045, - "value": 0.027468670206231026 + "value": "0.027468670206231026 t CO2/MWh" }, { "year": 2046, - "value": 0.02553573366073086 + "value": "0.02553573366073086 t CO2/MWh" }, { "year": 2047, - "value": 0.023740898407848238 + "value": "0.023740898407848238 t CO2/MWh" }, { "year": 2048, - "value": 0.022074390976748723 + "value": "0.022074390976748723 t CO2/MWh" }, { "year": 2049, - "value": 0.020526905480782127 + "value": "0.020526905480782127 t CO2/MWh" }, { "year": 2050, - "value": 0.01908972259658938 + "value": "0.01908972259658938 t CO2/MWh" } ] }, "S3": null, "S1S2S3": null }, - "projected_intensities": { + "projected_ei_trajectories": { "S1S2": { "projections": [ { "year": 2019, - "value": 0.11693626260640376 + "value": "0.11693626260640376 t CO2/MWh" }, { "year": 2020, - "value": 0.09820714020640375 + "value": "0.09820714020640375 t CO2/MWh" }, { "year": 2021, - "value": 0.09820714020640375 + "value": "0.09820714020640375 t CO2/MWh" }, { "year": 2022, - "value": 0.091648880189256 + "value": "0.091648880189256 t CO2/MWh" }, { "year": 2023, - "value": 0.0857837786254669 + "value": "0.0857837786254669 t CO2/MWh" }, { "year": 2024, - "value": 0.08063416627878701 + "value": "0.08063416627878701 t CO2/MWh" }, { "year": 2025, - "value": 0.07623337264441737 + "value": "0.07623337264441737 t CO2/MWh" }, { "year": 2026, - "value": 0.0725895622312225 + "value": "0.0725895622312225 t CO2/MWh" }, { "year": 2027, - "value": 0.06964222006118144 + "value": "0.06964222006118144 t CO2/MWh" }, { "year": 2028, - "value": 0.06725452744775011 + "value": "0.06725452744775011 t CO2/MWh" }, { "year": 2029, - "value": 0.06525432486541016 + "value": "0.06525432486541016 t CO2/MWh" }, { "year": 2030, - "value": 0.06348020418472294 + "value": "0.06348020418472294 t CO2/MWh" }, { "year": 2031, - "value": 0.06179800874580328 + "value": "0.06179800874580328 t CO2/MWh" }, { "year": 2032, - "value": 0.06009353206332086 + "value": "0.06009353206332086 t CO2/MWh" }, { "year": 2033, - "value": 0.058260966679067036 + "value": "0.058260966679067036 t CO2/MWh" }, { "year": 2034, - "value": 0.05620300525458842 + "value": "0.05620300525458842 t CO2/MWh" }, { "year": 2035, - "value": 0.053851937343555645 + "value": "0.053851937343555645 t CO2/MWh" }, { "year": 2036, - "value": 0.05120334775837065 + "value": "0.05120334775837065 t CO2/MWh" }, { "year": 2037, - "value": 0.04832937913827606 + "value": "0.04832937913827606 t CO2/MWh" }, { "year": 2038, - "value": 0.045348704298927206 + "value": "0.045348704298927206 t CO2/MWh" }, { "year": 2039, - "value": 0.042377599117382966 + "value": "0.042377599117382966 t CO2/MWh" }, { "year": 2040, - "value": 0.039500064614602357 + "value": "0.039500064614602357 t CO2/MWh" }, { "year": 2041, - "value": 0.03676430022219473 + "value": "0.03676430022219473 t CO2/MWh" }, { "year": 2042, - "value": 0.034191888556344675 + "value": "0.034191888556344675 t CO2/MWh" }, { "year": 2043, - "value": 0.03178815623656653 + "value": "0.03178815623656653 t CO2/MWh" }, { "year": 2044, - "value": 0.02954965284120169 + "value": "0.02954965284120169 t CO2/MWh" }, { "year": 2045, - "value": 0.027468670206231026 + "value": "0.027468670206231026 t CO2/MWh" }, { "year": 2046, - "value": 0.02553573366073086 + "value": "0.02553573366073086 t CO2/MWh" }, { "year": 2047, - "value": 0.023740898407848238 + "value": "0.023740898407848238 t CO2/MWh" }, { "year": 2048, - "value": 0.022074390976748723 + "value": "0.022074390976748723 t CO2/MWh" }, { "year": 2049, - "value": 0.020526905480782127 + "value": "0.020526905480782127 t CO2/MWh" }, { "year": 2050, - "value": 0.01908972259658938 + "value": "0.01908972259658938 t CO2/MWh" } ] }, @@ -1733,8 +1733,8 @@ "S1S2S3": null }, "country": "France", - "ghg_s1s2": 221601600.376334, - "ghg_s3": 221601600.376334, + "ghg_s1s2": "221601600.376334 MWh", + "ghg_s3": "221601600.376334 MWh", "industry_level_1": null, "industry_level_2": null, "industry_level_3": null, @@ -1751,272 +1751,272 @@ "region": "Europe", "sector": "Electricity Utilities", "target_probability": 0.4285714285714285, - "projected_targets": { + "projected_ei_targets": { "S1S2": { "projections": [ { "year": 2019, - "value": 0.13171752365218167 + "value": "0.13171752365218167 t CO2/MWh" }, { "year": 2020, - "value": 0.12261207069164322 + "value": "0.12261207069164322 t CO2/MWh" }, { "year": 2021, - "value": 0.11302603607393294 + "value": "0.11302603607393294 t CO2/MWh" }, { "year": 2022, - "value": 0.10344000145622266 + "value": "0.10344000145622266 t CO2/MWh" }, { "year": 2023, - "value": 0.09385396683851237 + "value": "0.09385396683851237 t CO2/MWh" }, { "year": 2024, - "value": 0.0842679322208021 + "value": "0.0842679322208021 t CO2/MWh" }, { "year": 2025, - "value": 0.07468189760309181 + "value": "0.07468189760309181 t CO2/MWh" }, { "year": 2026, - "value": 0.06509586298538153 + "value": "0.06509586298538153 t CO2/MWh" }, { "year": 2027, - "value": 0.05550982836767124 + "value": "0.05550982836767124 t CO2/MWh" }, { "year": 2028, - "value": 0.04592379374996095 + "value": "0.04592379374996095 t CO2/MWh" }, { "year": 2029, - "value": 0.036337759132250666 + "value": "0.036337759132250666 t CO2/MWh" }, { "year": 2030, - "value": 0.026751724514540373 + "value": "0.026751724514540373 t CO2/MWh" }, { "year": 2031, - "value": 0.025414138288813358 + "value": "0.025414138288813358 t CO2/MWh" }, { "year": 2032, - "value": 0.02407655206308634 + "value": "0.02407655206308634 t CO2/MWh" }, { "year": 2033, - "value": 0.02273896583735932 + "value": "0.02273896583735932 t CO2/MWh" }, { "year": 2034, - "value": 0.0214013796116323 + "value": "0.0214013796116323 t CO2/MWh" }, { "year": 2035, - "value": 0.02006379338590528 + "value": "0.02006379338590528 t CO2/MWh" }, { "year": 2036, - "value": 0.018726207160178265 + "value": "0.018726207160178265 t CO2/MWh" }, { "year": 2037, - "value": 0.017388620934451246 + "value": "0.017388620934451246 t CO2/MWh" }, { "year": 2038, - "value": 0.016051034708724224 + "value": "0.016051034708724224 t CO2/MWh" }, { "year": 2039, - "value": 0.014713448482997205 + "value": "0.014713448482997205 t CO2/MWh" }, { "year": 2040, - "value": 0.013375862257270187 + "value": "0.013375862257270187 t CO2/MWh" }, { "year": 2041, - "value": 0.01203827603154317 + "value": "0.01203827603154317 t CO2/MWh" }, { "year": 2042, - "value": 0.01070068980581615 + "value": "0.01070068980581615 t CO2/MWh" }, { "year": 2043, - "value": 0.009363103580089132 + "value": "0.009363103580089132 t CO2/MWh" }, { "year": 2044, - "value": 0.008025517354362112 + "value": "0.008025517354362112 t CO2/MWh" }, { "year": 2045, - "value": 0.006687931128635093 + "value": "0.006687931128635093 t CO2/MWh" }, { "year": 2046, - "value": 0.005350344902908075 + "value": "0.005350344902908075 t CO2/MWh" }, { "year": 2047, - "value": 0.004012758677181056 + "value": "0.004012758677181056 t CO2/MWh" }, { "year": 2048, - "value": 0.0026751724514540373 + "value": "0.0026751724514540373 t CO2/MWh" }, { "year": 2049, - "value": 0.0013375862257270187 + "value": "0.0013375862257270187 t CO2/MWh" }, { "year": 2050, - "value": 0.0 + "value": "0.0 t CO2/MWh" } ] }, "S3": null, "S1S2S3": null }, - "projected_intensities": { + "projected_ei_trajectories": { "S1S2": { "projections": [ { "year": 2019, - "value": 0.13171752365218167 + "value": "0.13171752365218167 t CO2/MWh" }, { "year": 2020, - "value": 0.12261207069164322 + "value": "0.12261207069164322 t CO2/MWh" }, { "year": 2021, - "value": 0.11781480053060323 + "value": "0.11781480053060323 t CO2/MWh" }, { "year": 2022, - "value": 0.11110279571939191 + "value": "0.11110279571939191 t CO2/MWh" }, { "year": 2023, - "value": 0.10511033126462122 + "value": "0.10511033126462122 t CO2/MWh" }, { "year": 2024, - "value": 0.0998440625805136 + "value": "0.0998440625805136 t CO2/MWh" }, { "year": 2025, - "value": 0.09532472621216159 + "value": "0.09532472621216159 t CO2/MWh" }, { "year": 2026, - "value": 0.09155174748227121 + "value": "0.09155174748227121 t CO2/MWh" }, { "year": 2027, - "value": 0.08846033202293997 + "value": "0.08846033202293997 t CO2/MWh" }, { "year": 2028, - "value": 0.08591247273271758 + "value": "0.08591247273271758 t CO2/MWh" }, { "year": 2029, - "value": 0.08373448642509536 + "value": "0.08373448642509536 t CO2/MWh" }, { "year": 2030, - "value": 0.08175955764990796 + "value": "0.08175955764990796 t CO2/MWh" }, { "year": 2031, - "value": 0.07984147590506223 + "value": "0.07984147590506223 t CO2/MWh" }, { "year": 2032, - "value": 0.07784495230409737 + "value": "0.07784495230409737 t CO2/MWh" }, { "year": 2033, - "value": 0.07563283464330266 + "value": "0.07563283464330266 t CO2/MWh" }, { "year": 2034, - "value": 0.07306982432940241 + "value": "0.07306982432940241 t CO2/MWh" }, { "year": 2035, - "value": 0.07005696438144916 + "value": "0.07005696438144916 t CO2/MWh" }, { "year": 2036, - "value": 0.06658601046251224 + "value": "0.06658601046251224 t CO2/MWh" }, { "year": 2037, - "value": 0.06276370448860528 + "value": "0.06276370448860528 t CO2/MWh" }, { "year": 2038, - "value": 0.05876872390303274 + "value": "0.05876872390303274 t CO2/MWh" }, { "year": 2039, - "value": 0.054777147572727725 + "value": "0.054777147572727725 t CO2/MWh" }, { "year": 2040, - "value": 0.05091594691972929 + "value": "0.05091594691972929 t CO2/MWh" }, { "year": 2041, - "value": 0.04725718943754817 + "value": "0.04725718943754817 t CO2/MWh" }, { "year": 2042, - "value": 0.04383217630275563 + "value": "0.04383217630275563 t CO2/MWh" }, { "year": 2043, - "value": 0.0406474949482153 + "value": "0.0406474949482153 t CO2/MWh" }, { "year": 2044, - "value": 0.03769659487458629 + "value": "0.03769659487458629 t CO2/MWh" }, { "year": 2045, - "value": 0.034966751370449696 + "value": "0.034966751370449696 t CO2/MWh" }, { "year": 2046, - "value": 0.032442872696675215 + "value": "0.032442872696675215 t CO2/MWh" }, { "year": 2047, - "value": 0.030109452553962107 + "value": "0.030109452553962107 t CO2/MWh" }, { "year": 2048, - "value": 0.02795151004903131 + "value": "0.02795151004903131 t CO2/MWh" }, { "year": 2049, - "value": 0.02595499944003199 + "value": "0.02595499944003199 t CO2/MWh" }, { "year": 2050, - "value": 0.02410695065139955 + "value": "0.02410695065139955 t CO2/MWh" } ] }, @@ -2024,8 +2024,8 @@ "S1S2S3": null }, "country": "Spain", - "ghg_s1s2": 411300002.585938, - "ghg_s3": 411300002.585938, + "ghg_s1s2": "411300002.585938 MWh", + "ghg_s3": "411300002.585938 MWh", "industry_level_1": null, "industry_level_2": null, "industry_level_3": null, @@ -2042,272 +2042,272 @@ "region": "Asia", "sector": "Electricity Utilities", "target_probability": 0.4285714285714285, - "projected_targets": { + "projected_ei_targets": { "S1S2": { "projections": [ { "year": 2019, - "value": 0.0026890305288561397 + "value": "0.0026890305288561397 t CO2/MWh" }, { "year": 2020, - "value": 0.0026890305288561397 + "value": "0.0026890305288561397 t CO2/MWh" }, { "year": 2021, - "value": 0.002668971468365766 + "value": "0.002668971468365766 t CO2/MWh" }, { "year": 2022, - "value": 0.002681781276043892 + "value": "0.002681781276043892 t CO2/MWh" }, { "year": 2023, - "value": 0.0026950164809220857 + "value": "0.0026950164809220857 t CO2/MWh" }, { "year": 2024, - "value": 0.0027073640637838743 + "value": "0.0027073640637838743 t CO2/MWh" }, { "year": 2025, - "value": 0.0027169929075958367 + "value": "0.0027169929075958367 t CO2/MWh" }, { "year": 2026, - "value": 0.002721958787988488 + "value": "0.002721958787988488 t CO2/MWh" }, { "year": 2027, - "value": 0.0027209811199068205 + "value": "0.0027209811199068205 t CO2/MWh" }, { "year": 2028, - "value": 0.002713900288318041 + "value": "0.002713900288318041 t CO2/MWh" }, { "year": 2029, - "value": 0.0027012227413963 + "value": "0.0027012227413963 t CO2/MWh" }, { "year": 2030, - "value": 0.0026831563334262145 + "value": "0.0026831563334262145 t CO2/MWh" }, { "year": 2031, - "value": 0.0026587802269145366 + "value": "0.0026587802269145366 t CO2/MWh" }, { "year": 2032, - "value": 0.002625463804896353 + "value": "0.002625463804896353 t CO2/MWh" }, { "year": 2033, - "value": 0.0025785410976512943 + "value": "0.0025785410976512943 t CO2/MWh" }, { "year": 2034, - "value": 0.002511739142069507 + "value": "0.002511739142069507 t CO2/MWh" }, { "year": 2035, - "value": 0.0024192586249034147 + "value": "0.0024192586249034147 t CO2/MWh" }, { "year": 2036, - "value": 0.0022993852541420318 + "value": "0.0022993852541420318 t CO2/MWh" }, { "year": 2037, - "value": 0.00215692574292776 + "value": "0.00215692574292776 t CO2/MWh" }, { "year": 2038, - "value": 0.0020015798378847324 + "value": "0.0020015798378847324 t CO2/MWh" }, { "year": 2039, - "value": 0.0018436363925601895 + "value": "0.0018436363925601895 t CO2/MWh" }, { "year": 2040, - "value": 0.0016907946863419904 + "value": "0.0016907946863419904 t CO2/MWh" }, { "year": 2041, - "value": 0.0015474741248293325 + "value": "0.0015474741248293325 t CO2/MWh" }, { "year": 2042, - "value": 0.001415551845222879 + "value": "0.001415551845222879 t CO2/MWh" }, { "year": 2043, - "value": 0.0012953462271072822 + "value": "0.0012953462271072822 t CO2/MWh" }, { "year": 2044, - "value": 0.0011863596973796262 + "value": "0.0011863596973796262 t CO2/MWh" }, { "year": 2045, - "value": 0.0010877326764421394 + "value": "0.0010877326764421394 t CO2/MWh" }, { "year": 2046, - "value": 0.000998490941168868 + "value": "0.000998490941168868 t CO2/MWh" }, { "year": 2047, - "value": 0.0009176694545361819 + "value": "0.0009176694545361819 t CO2/MWh" }, { "year": 2048, - "value": 0.0008443685027029736 + "value": "0.0008443685027029736 t CO2/MWh" }, { "year": 2049, - "value": 0.0007777746729560217 + "value": "0.0007777746729560217 t CO2/MWh" }, { "year": 2050, - "value": 0.0007171644063577842 + "value": "0.0007171644063577842 t CO2/MWh" } ] }, "S3": null, "S1S2S3": null }, - "projected_intensities": { + "projected_ei_trajectories": { "S1S2": { "projections": [ { "year": 2019, - "value": 0.0026890305288561397 + "value": "0.0026890305288561397 t CO2/MWh" }, { "year": 2020, - "value": 0.0026890305288561397 + "value": "0.0026890305288561397 t CO2/MWh" }, { "year": 2021, - "value": 0.002668971468365766 + "value": "0.002668971468365766 t CO2/MWh" }, { "year": 2022, - "value": 0.002681781276043892 + "value": "0.002681781276043892 t CO2/MWh" }, { "year": 2023, - "value": 0.0026950164809220857 + "value": "0.0026950164809220857 t CO2/MWh" }, { "year": 2024, - "value": 0.0027073640637838743 + "value": "0.0027073640637838743 t CO2/MWh" }, { "year": 2025, - "value": 0.0027169929075958367 + "value": "0.0027169929075958367 t CO2/MWh" }, { "year": 2026, - "value": 0.002721958787988488 + "value": "0.002721958787988488 t CO2/MWh" }, { "year": 2027, - "value": 0.0027209811199068205 + "value": "0.0027209811199068205 t CO2/MWh" }, { "year": 2028, - "value": 0.002713900288318041 + "value": "0.002713900288318041 t CO2/MWh" }, { "year": 2029, - "value": 0.0027012227413963 + "value": "0.0027012227413963 t CO2/MWh" }, { "year": 2030, - "value": 0.0026831563334262145 + "value": "0.0026831563334262145 t CO2/MWh" }, { "year": 2031, - "value": 0.0026587802269145366 + "value": "0.0026587802269145366 t CO2/MWh" }, { "year": 2032, - "value": 0.002625463804896353 + "value": "0.002625463804896353 t CO2/MWh" }, { "year": 2033, - "value": 0.0025785410976512943 + "value": "0.0025785410976512943 t CO2/MWh" }, { "year": 2034, - "value": 0.002511739142069507 + "value": "0.002511739142069507 t CO2/MWh" }, { "year": 2035, - "value": 0.0024192586249034147 + "value": "0.0024192586249034147 t CO2/MWh" }, { "year": 2036, - "value": 0.0022993852541420318 + "value": "0.0022993852541420318 t CO2/MWh" }, { "year": 2037, - "value": 0.00215692574292776 + "value": "0.00215692574292776 t CO2/MWh" }, { "year": 2038, - "value": 0.0020015798378847324 + "value": "0.0020015798378847324 t CO2/MWh" }, { "year": 2039, - "value": 0.0018436363925601895 + "value": "0.0018436363925601895 t CO2/MWh" }, { "year": 2040, - "value": 0.0016907946863419904 + "value": "0.0016907946863419904 t CO2/MWh" }, { "year": 2041, - "value": 0.0015474741248293325 + "value": "0.0015474741248293325 t CO2/MWh" }, { "year": 2042, - "value": 0.001415551845222879 + "value": "0.001415551845222879 t CO2/MWh" }, { "year": 2043, - "value": 0.0012953462271072822 + "value": "0.0012953462271072822 t CO2/MWh" }, { "year": 2044, - "value": 0.0011863596973796262 + "value": "0.0011863596973796262 t CO2/MWh" }, { "year": 2045, - "value": 0.0010877326764421394 + "value": "0.0010877326764421394 t CO2/MWh" }, { "year": 2046, - "value": 0.000998490941168868 + "value": "0.000998490941168868 t CO2/MWh" }, { "year": 2047, - "value": 0.0009176694545361819 + "value": "0.0009176694545361819 t CO2/MWh" }, { "year": 2048, - "value": 0.0008443685027029736 + "value": "0.0008443685027029736 t CO2/MWh" }, { "year": 2049, - "value": 0.0007777746729560217 + "value": "0.0007777746729560217 t CO2/MWh" }, { "year": 2050, - "value": 0.0007171644063577842 + "value": "0.0007171644063577842 t CO2/MWh" } ] }, @@ -2315,8 +2315,8 @@ "S1S2S3": null }, "country": "South Korea", - "ghg_s1s2": 1472652000.85954, - "ghg_s3": 1472652000.85954, + "ghg_s1s2": "1472652000.85954 MWh", + "ghg_s3": "1472652000.85954 MWh", "industry_level_1": null, "industry_level_2": null, "industry_level_3": null, @@ -2333,272 +2333,272 @@ "region": "Europe", "sector": "Electricity Utilities", "target_probability": 0.4285714285714285, - "projected_targets": { + "projected_ei_targets": { "S1S2": { "projections": [ { "year": 2019, - "value": 1.191895541675586 + "value": "1.191895541675586 t CO2/MWh" }, { "year": 2020, - "value": 1.191895541675586 + "value": "1.191895541675586 t CO2/MWh" }, { "year": 2021, - "value": 1.1784867181153384 + "value": "1.1784867181153384 t CO2/MWh" }, { "year": 2022, - "value": 1.1652549347367014 + "value": "1.1652549347367014 t CO2/MWh" }, { "year": 2023, - "value": 1.1521033390928492 + "value": "1.1521033390928492 t CO2/MWh" }, { "year": 2024, - "value": 1.1390810993752805 + "value": "1.1390810993752805 t CO2/MWh" }, { "year": 2025, - "value": 1.1262566319505123 + "value": "1.1262566319505123 t CO2/MWh" }, { "year": 2026, - "value": 1.1136913569217828 + "value": "1.1136913569217828 t CO2/MWh" }, { "year": 2027, - "value": 1.101379774383997 + "value": "1.101379774383997 t CO2/MWh" }, { "year": 2028, - "value": 1.0891833791776324 + "value": "1.0891833791776324 t CO2/MWh" }, { "year": 2029, - "value": 1.0767919410014775 + "value": "1.0767919410014775 t CO2/MWh" }, { "year": 2030, - "value": 1.063690242482851 + "value": "1.063690242482851 t CO2/MWh" }, { "year": 2031, - "value": 1.0308822499058719 + "value": "1.0308822499058719 t CO2/MWh" }, { "year": 2032, - "value": 0.9953541981486743 + "value": "0.9953541981486743 t CO2/MWh" }, { "year": 2033, - "value": 0.9553862765454333 + "value": "0.9553862765454333 t CO2/MWh" }, { "year": 2034, - "value": 0.9089210669859736 + "value": "0.9089210669859736 t CO2/MWh" }, { "year": 2035, - "value": 0.8542988752019585 + "value": "0.8542988752019585 t CO2/MWh" }, { "year": 2036, - "value": 0.7914397913799283 + "value": "0.7914397913799283 t CO2/MWh" }, { "year": 2037, - "value": 0.722482599199799 + "value": "0.722482599199799 t CO2/MWh" }, { "year": 2038, - "value": 0.6509845078808817 + "value": "0.6509845078808817 t CO2/MWh" }, { "year": 2039, - "value": 0.5803529201379924 + "value": "0.5803529201379924 t CO2/MWh" }, { "year": 2040, - "value": 0.5128556964634278 + "value": "0.5128556964634278 t CO2/MWh" }, { "year": 2041, - "value": 0.44954742920472673 + "value": "0.44954742920472673 t CO2/MWh" }, { "year": 2042, - "value": 0.39063748084363503 + "value": "0.39063748084363503 t CO2/MWh" }, { "year": 2043, - "value": 0.3358760622401324 + "value": "0.3358760622401324 t CO2/MWh" }, { "year": 2044, - "value": 0.2848161835955829 + "value": "0.2848161835955829 t CO2/MWh" }, { "year": 2045, - "value": 0.23695917182771603 + "value": "0.23695917182771603 t CO2/MWh" }, { "year": 2046, - "value": 0.19182516848955786 + "value": "0.19182516848955786 t CO2/MWh" }, { "year": 2047, - "value": 0.14898234057954354 + "value": "0.14898234057954354 t CO2/MWh" }, { "year": 2048, - "value": 0.10805536556109702 + "value": "0.10805536556109702 t CO2/MWh" }, { "year": 2049, - "value": 0.06872430309122506 + "value": "0.06872430309122506 t CO2/MWh" }, { "year": 2050, - "value": 0.030719485801461905 + "value": "0.030719485801461905 t CO2/MWh" } ] }, "S3": null, "S1S2S3": null }, - "projected_intensities": { + "projected_ei_trajectories": { "S1S2": { "projections": [ { "year": 2019, - "value": 1.191895541675586 + "value": "1.191895541675586 t CO2/MWh" }, { "year": 2020, - "value": 1.191895541675586 + "value": "1.191895541675586 t CO2/MWh" }, { "year": 2021, - "value": 1.1914079783329325 + "value": "1.1914079783329325 t CO2/MWh" }, { "year": 2022, - "value": 1.190784602860643 + "value": "1.190784602860643 t CO2/MWh" }, { "year": 2023, - "value": 1.1897460701445728 + "value": "1.1897460701445728 t CO2/MWh" }, { "year": 2024, - "value": 1.1880785232412383 + "value": "1.1880785232412383 t CO2/MWh" }, { "year": 2025, - "value": 1.185527520927333 + "value": "1.185527520927333 t CO2/MWh" }, { "year": 2026, - "value": 1.1818688853322172 + "value": "1.1818688853322172 t CO2/MWh" }, { "year": 2027, - "value": 1.1769914953619132 + "value": "1.1769914953619132 t CO2/MWh" }, { "year": 2028, - "value": 1.170879032843097 + "value": "1.170879032843097 t CO2/MWh" }, { "year": 2029, - "value": 1.1634457602046508 + "value": "1.1634457602046508 t CO2/MWh" }, { "year": 2030, - "value": 1.1543153098250205 + "value": "1.1543153098250205 t CO2/MWh" }, { "year": 2031, - "value": 1.1426089520502793 + "value": "1.1426089520502793 t CO2/MWh" }, { "year": 2032, - "value": 1.1267379271357045 + "value": "1.1267379271357045 t CO2/MWh" }, { "year": 2033, - "value": 1.104271074659159 + "value": "1.104271074659159 t CO2/MWh" }, { "year": 2034, - "value": 1.0721753974293307 + "value": "1.0721753974293307 t CO2/MWh" }, { "year": 2035, - "value": 1.0278552160629018 + "value": "1.0278552160629018 t CO2/MWh" }, { "year": 2036, - "value": 0.9708556454949443 + "value": "0.9708556454949443 t CO2/MWh" }, { "year": 2037, - "value": 0.9038704386353956 + "value": "0.9038704386353956 t CO2/MWh" }, { "year": 2038, - "value": 0.8317623522508689 + "value": "0.8317623522508689 t CO2/MWh" }, { "year": 2039, - "value": 0.759432810919983 + "value": "0.759432810919983 t CO2/MWh" }, { "year": 2040, - "value": 0.6903793059305394 + "value": "0.6903793059305394 t CO2/MWh" }, { "year": 2041, - "value": 0.6264782551809344 + "value": "0.6264782551809344 t CO2/MWh" }, { "year": 2042, - "value": 0.5684086193545546 + "value": "0.5684086193545546 t CO2/MWh" }, { "year": 2043, - "value": 0.5161473206295295 + "value": "0.5161473206295295 t CO2/MWh" }, { "year": 2044, - "value": 0.4693250070565412 + "value": "0.4693250070565412 t CO2/MWh" }, { "year": 2045, - "value": 0.42743535163089424 + "value": "0.42743535163089424 t CO2/MWh" }, { "year": 2046, - "value": 0.3899446765292378 + "value": "0.3899446765292378 t CO2/MWh" }, { "year": 2047, - "value": 0.35634398477407864 + "value": "0.35634398477407864 t CO2/MWh" }, { "year": 2048, - "value": 0.32617040920818324 + "value": "0.32617040920818324 t CO2/MWh" }, { "year": 2049, - "value": 0.2990133267475179 + "value": "0.2990133267475179 t CO2/MWh" }, { "year": 2050, - "value": 0.274513227726025 + "value": "0.274513227726025 t CO2/MWh" } ] }, @@ -2606,8 +2606,8 @@ "S1S2S3": null }, "country": "United Kingdom", - "ghg_s1s2": 21142801.5077199, - "ghg_s3": 21142801.5077199, + "ghg_s1s2": "21142801.5077199 MWh", + "ghg_s3": "21142801.5077199 MWh", "industry_level_1": null, "industry_level_2": null, "industry_level_3": null, @@ -2624,272 +2624,272 @@ "region": "Asia", "sector": "Electricity Utilities", "target_probability": 0.4285714285714285, - "projected_targets": { + "projected_ei_targets": { "S1S2": { "projections": [ { "year": 2019, - "value": 0.8759061471467042 + "value": "0.8759061471467042 t CO2/MWh" }, { "year": 2020, - "value": 0.8710761366058977 + "value": "0.8710761366058977 t CO2/MWh" }, { "year": 2021, - "value": 0.87233257371262 + "value": "0.87233257371262 t CO2/MWh" }, { "year": 2022, - "value": 0.8731795494365063 + "value": "0.8731795494365063 t CO2/MWh" }, { "year": 2023, - "value": 0.8733811639019202 + "value": "0.8733811639019202 t CO2/MWh" }, { "year": 2024, - "value": 0.8725897216554522 + "value": "0.8725897216554522 t CO2/MWh" }, { "year": 2025, - "value": 0.8703762869410826 + "value": "0.8703762869410826 t CO2/MWh" }, { "year": 2026, - "value": 0.8663587020539113 + "value": "0.8663587020539113 t CO2/MWh" }, { "year": 2027, - "value": 0.8603930175807132 + "value": "0.8603930175807132 t CO2/MWh" }, { "year": 2028, - "value": 0.852642949257223 + "value": "0.852642949257223 t CO2/MWh" }, { "year": 2029, - "value": 0.8434205038290371 + "value": "0.8434205038290371 t CO2/MWh" }, { "year": 2030, - "value": 0.8329427969769639 + "value": "0.8329427969769639 t CO2/MWh" }, { "year": 2031, - "value": 0.8211620263463444 + "value": "0.8211620263463444 t CO2/MWh" }, { "year": 2032, - "value": 0.807672315915647 + "value": "0.807672315915647 t CO2/MWh" }, { "year": 2033, - "value": 0.7916681808246369 + "value": "0.7916681808246369 t CO2/MWh" }, { "year": 2034, - "value": 0.7720267284765746 + "value": "0.7720267284765746 t CO2/MWh" }, { "year": 2035, - "value": 0.7476606709729696 + "value": "0.7476606709729696 t CO2/MWh" }, { "year": 2036, - "value": 0.7181256859452584 + "value": "0.7181256859452584 t CO2/MWh" }, { "year": 2037, - "value": 0.6840543664153996 + "value": "0.6840543664153996 t CO2/MWh" }, { "year": 2038, - "value": 0.6469543346153854 + "value": "0.6469543346153854 t CO2/MWh" }, { "year": 2039, - "value": 0.6085581112867321 + "value": "0.6085581112867321 t CO2/MWh" }, { "year": 2040, - "value": 0.5702957411984311 + "value": "0.5702957411984311 t CO2/MWh" }, { "year": 2041, - "value": 0.5331256402850014 + "value": "0.5331256402850014 t CO2/MWh" }, { "year": 2042, - "value": 0.4975973549571816 + "value": "0.4975973549571816 t CO2/MWh" }, { "year": 2043, - "value": 0.46397778181495414 + "value": "0.46397778181495414 t CO2/MWh" }, { "year": 2044, - "value": 0.4323599585173005 + "value": "0.4323599585173005 t CO2/MWh" }, { "year": 2045, - "value": 0.40273722118393573 + "value": "0.40273722118393573 t CO2/MWh" }, { "year": 2046, - "value": 0.37504878792884877 + "value": "0.37504878792884877 t CO2/MWh" }, { "year": 2047, - "value": 0.3492063950129044 + "value": "0.3492063950129044 t CO2/MWh" }, { "year": 2048, - "value": 0.3251094561969139 + "value": "0.3251094561969139 t CO2/MWh" }, { "year": 2049, - "value": 0.3026535488613751 + "value": "0.3026535488613751 t CO2/MWh" }, { "year": 2050, - "value": 0.28173508695317845 + "value": "0.28173508695317845 t CO2/MWh" } ] }, "S3": null, "S1S2S3": null }, - "projected_intensities": { + "projected_ei_trajectories": { "S1S2": { "projections": [ { "year": 2019, - "value": 0.8759061471467042 + "value": "0.8759061471467042 t CO2/MWh" }, { "year": 2020, - "value": 0.8710761366058977 + "value": "0.8710761366058977 t CO2/MWh" }, { "year": 2021, - "value": 0.87233257371262 + "value": "0.87233257371262 t CO2/MWh" }, { "year": 2022, - "value": 0.8731795494365063 + "value": "0.8731795494365063 t CO2/MWh" }, { "year": 2023, - "value": 0.8733811639019202 + "value": "0.8733811639019202 t CO2/MWh" }, { "year": 2024, - "value": 0.8725897216554522 + "value": "0.8725897216554522 t CO2/MWh" }, { "year": 2025, - "value": 0.8703762869410826 + "value": "0.8703762869410826 t CO2/MWh" }, { "year": 2026, - "value": 0.8663587020539113 + "value": "0.8663587020539113 t CO2/MWh" }, { "year": 2027, - "value": 0.8603930175807132 + "value": "0.8603930175807132 t CO2/MWh" }, { "year": 2028, - "value": 0.852642949257223 + "value": "0.852642949257223 t CO2/MWh" }, { "year": 2029, - "value": 0.8434205038290371 + "value": "0.8434205038290371 t CO2/MWh" }, { "year": 2030, - "value": 0.8329427969769639 + "value": "0.8329427969769639 t CO2/MWh" }, { "year": 2031, - "value": 0.8211620263463444 + "value": "0.8211620263463444 t CO2/MWh" }, { "year": 2032, - "value": 0.807672315915647 + "value": "0.807672315915647 t CO2/MWh" }, { "year": 2033, - "value": 0.7916681808246369 + "value": "0.7916681808246369 t CO2/MWh" }, { "year": 2034, - "value": 0.7720267284765746 + "value": "0.7720267284765746 t CO2/MWh" }, { "year": 2035, - "value": 0.7476606709729696 + "value": "0.7476606709729696 t CO2/MWh" }, { "year": 2036, - "value": 0.7181256859452584 + "value": "0.7181256859452584 t CO2/MWh" }, { "year": 2037, - "value": 0.6840543664153996 + "value": "0.6840543664153996 t CO2/MWh" }, { "year": 2038, - "value": 0.6469543346153854 + "value": "0.6469543346153854 t CO2/MWh" }, { "year": 2039, - "value": 0.6085581112867321 + "value": "0.6085581112867321 t CO2/MWh" }, { "year": 2040, - "value": 0.5702957411984311 + "value": "0.5702957411984311 t CO2/MWh" }, { "year": 2041, - "value": 0.5331256402850014 + "value": "0.5331256402850014 t CO2/MWh" }, { "year": 2042, - "value": 0.4975973549571816 + "value": "0.4975973549571816 t CO2/MWh" }, { "year": 2043, - "value": 0.46397778181495414 + "value": "0.46397778181495414 t CO2/MWh" }, { "year": 2044, - "value": 0.4323599585173005 + "value": "0.4323599585173005 t CO2/MWh" }, { "year": 2045, - "value": 0.40273722118393573 + "value": "0.40273722118393573 t CO2/MWh" }, { "year": 2046, - "value": 0.37504878792884877 + "value": "0.37504878792884877 t CO2/MWh" }, { "year": 2047, - "value": 0.3492063950129044 + "value": "0.3492063950129044 t CO2/MWh" }, { "year": 2048, - "value": 0.3251094561969139 + "value": "0.3251094561969139 t CO2/MWh" }, { "year": 2049, - "value": 0.3026535488613751 + "value": "0.3026535488613751 t CO2/MWh" }, { "year": 2050, - "value": 0.28173508695317845 + "value": "0.28173508695317845 t CO2/MWh" } ] }, @@ -2897,8 +2897,8 @@ "S1S2S3": null }, "country": "India", - "ghg_s1s2": 988020000.90193, - "ghg_s3": 988020000.90193, + "ghg_s1s2": "988020000.90193 MWh", + "ghg_s3": "988020000.90193 MWh", "industry_level_1": null, "industry_level_2": null, "industry_level_3": null, @@ -2915,272 +2915,272 @@ "region": "Asia", "sector": "Electricity Utilities", "target_probability": 0.4285714285714285, - "projected_targets": { + "projected_ei_targets": { "S1S2": { "projections": [ { "year": 2019, - "value": 0.9992111823532782 + "value": "0.9992111823532782 t CO2/MWh" }, { "year": 2020, - "value": 1.0103398427559804 + "value": "1.0103398427559804 t CO2/MWh" }, { "year": 2021, - "value": 0.9956918852884153 + "value": "0.9956918852884153 t CO2/MWh" }, { "year": 2022, - "value": 1.0012791550610378 + "value": "1.0012791550610378 t CO2/MWh" }, { "year": 2023, - "value": 1.0089503553840877 + "value": "1.0089503553840877 t CO2/MWh" }, { "year": 2024, - "value": 1.0018093082170547 + "value": "1.0018093082170547 t CO2/MWh" }, { "year": 2025, - "value": 0.9949424043532965 + "value": "0.9949424043532965 t CO2/MWh" }, { "year": 2026, - "value": 0.9867390954359995 + "value": "0.9867390954359995 t CO2/MWh" }, { "year": 2027, - "value": 0.9757622063943475 + "value": "0.9757622063943475 t CO2/MWh" }, { "year": 2028, - "value": 0.9613833928741916 + "value": "0.9613833928741916 t CO2/MWh" }, { "year": 2029, - "value": 0.9438045441854004 + "value": "0.9438045441854004 t CO2/MWh" }, { "year": 2030, - "value": 0.9235280248451119 + "value": "0.9235280248451119 t CO2/MWh" }, { "year": 2031, - "value": 0.9008159614373377 + "value": "0.9008159614373377 t CO2/MWh" }, { "year": 2032, - "value": 0.8753597024903548 + "value": "0.8753597024903548 t CO2/MWh" }, { "year": 2033, - "value": 0.8461128134246444 + "value": "0.8461128134246444 t CO2/MWh" }, { "year": 2034, - "value": 0.8113582559054615 + "value": "0.8113582559054615 t CO2/MWh" }, { "year": 2035, - "value": 0.7692858373477657 + "value": "0.7692858373477657 t CO2/MWh" }, { "year": 2036, - "value": 0.7191363964574996 + "value": "0.7191363964574996 t CO2/MWh" }, { "year": 2037, - "value": 0.6621270762176754 + "value": "0.6621270762176754 t CO2/MWh" }, { "year": 2038, - "value": 0.6011136519924398 + "value": "0.6011136519924398 t CO2/MWh" }, { "year": 2039, - "value": 0.5392560449767507 + "value": "0.5392560449767507 t CO2/MWh" }, { "year": 2040, - "value": 0.4789322540371506 + "value": "0.4789322540371506 t CO2/MWh" }, { "year": 2041, - "value": 0.4214608727336099 + "value": "0.4214608727336099 t CO2/MWh" }, { "year": 2042, - "value": 0.3673292808327215 + "value": "0.3673292808327215 t CO2/MWh" }, { "year": 2043, - "value": 0.31652321414784873 + "value": "0.31652321414784873 t CO2/MWh" }, { "year": 2044, - "value": 0.26877906546540586 + "value": "0.26877906546540586 t CO2/MWh" }, { "year": 2045, - "value": 0.2237368584766153 + "value": "0.2237368584766153 t CO2/MWh" }, { "year": 2046, - "value": 0.1810213531499593 + "value": "0.1810213531499593 t CO2/MWh" }, { "year": 2047, - "value": 0.1402803762086245 + "value": "0.1402803762086245 t CO2/MWh" }, { "year": 2048, - "value": 0.10120010555296251 + "value": "0.10120010555296251 t CO2/MWh" }, { "year": 2049, - "value": 0.06350876058804442 + "value": "0.06350876058804442 t CO2/MWh" }, { "year": 2050, - "value": 0.026974867145530285 + "value": "0.026974867145530285 t CO2/MWh" } ] }, "S3": null, "S1S2S3": null }, - "projected_intensities": { + "projected_ei_trajectories": { "S1S2": { "projections": [ { "year": 2019, - "value": 0.9992111823532782 + "value": "0.9992111823532782 t CO2/MWh" }, { "year": 2020, - "value": 1.0103398427559804 + "value": "1.0103398427559804 t CO2/MWh" }, { "year": 2021, - "value": 1.0077070564272337 + "value": "1.0077070564272337 t CO2/MWh" }, { "year": 2022, - "value": 1.025016728126704 + "value": "1.025016728126704 t CO2/MWh" }, { "year": 2023, - "value": 1.0439447193674907 + "value": "1.0439447193674907 t CO2/MWh" }, { "year": 2024, - "value": 1.0636226213883666 + "value": "1.0636226213883666 t CO2/MWh" }, { "year": 2025, - "value": 1.082559148211577 + "value": "1.082559148211577 t CO2/MWh" }, { "year": 2026, - "value": 1.0988786127737018 + "value": "1.0988786127737018 t CO2/MWh" }, { "year": 2027, - "value": 1.1110470492716042 + "value": "1.1110470492716042 t CO2/MWh" }, { "year": 2028, - "value": 1.1185463596198226 + "value": "1.1185463596198226 t CO2/MWh" }, { "year": 2029, - "value": 1.1217709668143654 + "value": "1.1217709668143654 t CO2/MWh" }, { "year": 2030, - "value": 1.121315483997907 + "value": "1.121315483997907 t CO2/MWh" }, { "year": 2031, - "value": 1.117300801389678 + "value": "1.117300801389678 t CO2/MWh" }, { "year": 2032, - "value": 1.1089596162754503 + "value": "1.1089596162754503 t CO2/MWh" }, { "year": 2033, - "value": 1.0944259660255098 + "value": "1.0944259660255098 t CO2/MWh" }, { "year": 2034, - "value": 1.0708792507706404 + "value": "1.0708792507706404 t CO2/MWh" }, { "year": 2035, - "value": 1.0354616274415578 + "value": "1.0354616274415578 t CO2/MWh" }, { "year": 2036, - "value": 0.9870039512902982 + "value": "0.9870039512902982 t CO2/MWh" }, { "year": 2037, - "value": 0.9273580045136894 + "value": "0.9273580045136894 t CO2/MWh" }, { "year": 2038, - "value": 0.8608508436740142 + "value": "0.8608508436740142 t CO2/MWh" }, { "year": 2039, - "value": 0.7923179796811393 + "value": "0.7923179796811393 t CO2/MWh" }, { "year": 2040, - "value": 0.7255118652043424 + "value": "0.7255118652043424 t CO2/MWh" }, { "year": 2041, - "value": 0.6626667415033559 + "value": "0.6626667415033559 t CO2/MWh" }, { "year": 2042, - "value": 0.6047910562642032 + "value": "0.6047910562642032 t CO2/MWh" }, { "year": 2043, - "value": 0.5521203117082054 + "value": "0.5521203117082054 t CO2/MWh" }, { "year": 2044, - "value": 0.5044745831076901 + "value": "0.5044745831076901 t CO2/MWh" }, { "year": 2045, - "value": 0.46148281149329234 + "value": "0.46148281149329234 t CO2/MWh" }, { "year": 2046, - "value": 0.4227075550217969 + "value": "0.4227075550217969 t CO2/MWh" }, { "year": 2047, - "value": 0.387708721079145 + "value": "0.387708721079145 t CO2/MWh" }, { "year": 2048, - "value": 0.3560732489596707 + "value": "0.3560732489596707 t CO2/MWh" }, { "year": 2049, - "value": 0.32742682453181926 + "value": "0.32742682453181926 t CO2/MWh" }, { "year": 2050, - "value": 0.30143654033545186 + "value": "0.30143654033545186 t CO2/MWh" } ] }, @@ -3188,8 +3188,8 @@ "S1S2S3": null }, "country": "Australia", - "ghg_s1s2": 73011601.1549344, - "ghg_s3": 73011601.1549344, + "ghg_s1s2": "73011601.1549344 MWh", + "ghg_s3": "73011601.1549344 MWh", "industry_level_1": null, "industry_level_2": null, "industry_level_3": null, @@ -3206,7 +3206,7 @@ "region": "Europe", "sector": "Electricity Utilities", "target_probability": 0.4285714285714285, - "projected_targets": { + "projected_ei_targets": { "S1S2": { "projections": [ { @@ -3342,7 +3342,7 @@ "S3": null, "S1S2S3": null }, - "projected_intensities": { + "projected_ei_trajectories": { "S1S2": { "projections": [ { @@ -3479,8 +3479,8 @@ "S1S2S3": null }, "country": "Poland", - "ghg_s1s2": 288420004.281372, - "ghg_s3": 288420004.281372, + "ghg_s1s2": "288420004.281372 MWh", + "ghg_s3": "288420004.281372 MWh", "industry_level_1": null, "industry_level_2": null, "industry_level_3": null, @@ -3497,272 +3497,272 @@ "region": "Asia", "sector": "Electricity Utilities", "target_probability": 0.4285714285714285, - "projected_targets": { + "projected_ei_targets": { "S1S2": { "projections": [ { "year": 2019, - "value": 0.8216553409097898 + "value": "0.8216553409097898 t CO2/MWh" }, { "year": 2020, - "value": 0.8216553409097898 + "value": "0.8216553409097898 t CO2/MWh" }, { "year": 2021, - "value": 0.839571252418603 + "value": "0.839571252418603 t CO2/MWh" }, { "year": 2022, - "value": 0.8582955407397551 + "value": "0.8582955407397551 t CO2/MWh" }, { "year": 2023, - "value": 0.876060259960367 + "value": "0.876060259960367 t CO2/MWh" }, { "year": 2024, - "value": 0.8920216776655728 + "value": "0.8920216776655728 t CO2/MWh" }, { "year": 2025, - "value": 0.9050906501522457 + "value": "0.9050906501522457 t CO2/MWh" }, { "year": 2026, - "value": 0.9142238570532936 + "value": "0.9142238570532936 t CO2/MWh" }, { "year": 2027, - "value": 0.9189144369121717 + "value": "0.9189144369121717 t CO2/MWh" }, { "year": 2028, - "value": 0.9194427268256747 + "value": "0.9194427268256747 t CO2/MWh" }, { "year": 2029, - "value": 0.9165735326005275 + "value": "0.9165735326005275 t CO2/MWh" }, { "year": 2030, - "value": 0.911011246089303 + "value": "0.911011246089303 t CO2/MWh" }, { "year": 2031, - "value": 0.9030201759984526 + "value": "0.9030201759984526 t CO2/MWh" }, { "year": 2032, - "value": 0.8922499745204598 + "value": "0.8922499745204598 t CO2/MWh" }, { "year": 2033, - "value": 0.8776792896597859 + "value": "0.8776792896597859 t CO2/MWh" }, { "year": 2034, - "value": 0.8577497701976301 + "value": "0.8577497701976301 t CO2/MWh" }, { "year": 2035, - "value": 0.8309095837324832 + "value": "0.8309095837324832 t CO2/MWh" }, { "year": 2036, - "value": 0.7965535983998453 + "value": "0.7965535983998453 t CO2/MWh" }, { "year": 2037, - "value": 0.7557008906815798 + "value": "0.7557008906815798 t CO2/MWh" }, { "year": 2038, - "value": 0.7106744132774588 + "value": "0.7106744132774588 t CO2/MWh" }, { "year": 2039, - "value": 0.6640778432165056 + "value": "0.6640778432165056 t CO2/MWh" }, { "year": 2040, - "value": 0.6179853372564201 + "value": "0.6179853372564201 t CO2/MWh" }, { "year": 2041, - "value": 0.5737112051679787 + "value": "0.5737112051679787 t CO2/MWh" }, { "year": 2042, - "value": 0.5319399188112491 + "value": "0.5319399188112491 t CO2/MWh" }, { "year": 2043, - "value": 0.4929409579278257 + "value": "0.4929409579278257 t CO2/MWh" }, { "year": 2044, - "value": 0.45674377196784977 + "value": "0.45674377196784977 t CO2/MWh" }, { "year": 2045, - "value": 0.42325174057782106 + "value": "0.42325174057782106 t CO2/MWh" }, { "year": 2046, - "value": 0.39230892919531823 + "value": "0.39230892919531823 t CO2/MWh" }, { "year": 2047, - "value": 0.3637368879238732 + "value": "0.3637368879238732 t CO2/MWh" }, { "year": 2048, - "value": 0.33735402627252425 + "value": "0.33735402627252425 t CO2/MWh" }, { "year": 2049, - "value": 0.3129852876511019 + "value": "0.3129852876511019 t CO2/MWh" }, { "year": 2050, - "value": 0.290466560681228 + "value": "0.290466560681228 t CO2/MWh" } ] }, "S3": null, "S1S2S3": null }, - "projected_intensities": { + "projected_ei_trajectories": { "S1S2": { "projections": [ { "year": 2019, - "value": 0.8216553409097898 + "value": "0.8216553409097898 t CO2/MWh" }, { "year": 2020, - "value": 0.8216553409097898 + "value": "0.8216553409097898 t CO2/MWh" }, { "year": 2021, - "value": 0.839571252418603 + "value": "0.839571252418603 t CO2/MWh" }, { "year": 2022, - "value": 0.8582955407397551 + "value": "0.8582955407397551 t CO2/MWh" }, { "year": 2023, - "value": 0.876060259960367 + "value": "0.876060259960367 t CO2/MWh" }, { "year": 2024, - "value": 0.8920216776655728 + "value": "0.8920216776655728 t CO2/MWh" }, { "year": 2025, - "value": 0.9050906501522457 + "value": "0.9050906501522457 t CO2/MWh" }, { "year": 2026, - "value": 0.9142238570532936 + "value": "0.9142238570532936 t CO2/MWh" }, { "year": 2027, - "value": 0.9189144369121717 + "value": "0.9189144369121717 t CO2/MWh" }, { "year": 2028, - "value": 0.9194427268256747 + "value": "0.9194427268256747 t CO2/MWh" }, { "year": 2029, - "value": 0.9165735326005275 + "value": "0.9165735326005275 t CO2/MWh" }, { "year": 2030, - "value": 0.911011246089303 + "value": "0.911011246089303 t CO2/MWh" }, { "year": 2031, - "value": 0.9030201759984526 + "value": "0.9030201759984526 t CO2/MWh" }, { "year": 2032, - "value": 0.8922499745204598 + "value": "0.8922499745204598 t CO2/MWh" }, { "year": 2033, - "value": 0.8776792896597859 + "value": "0.8776792896597859 t CO2/MWh" }, { "year": 2034, - "value": 0.8577497701976301 + "value": "0.8577497701976301 t CO2/MWh" }, { "year": 2035, - "value": 0.8309095837324832 + "value": "0.8309095837324832 t CO2/MWh" }, { "year": 2036, - "value": 0.7965535983998453 + "value": "0.7965535983998453 t CO2/MWh" }, { "year": 2037, - "value": 0.7557008906815798 + "value": "0.7557008906815798 t CO2/MWh" }, { "year": 2038, - "value": 0.7106744132774588 + "value": "0.7106744132774588 t CO2/MWh" }, { "year": 2039, - "value": 0.6640778432165056 + "value": "0.6640778432165056 t CO2/MWh" }, { "year": 2040, - "value": 0.6179853372564201 + "value": "0.6179853372564201 t CO2/MWh" }, { "year": 2041, - "value": 0.5737112051679787 + "value": "0.5737112051679787 t CO2/MWh" }, { "year": 2042, - "value": 0.5319399188112491 + "value": "0.5319399188112491 t CO2/MWh" }, { "year": 2043, - "value": 0.4929409579278257 + "value": "0.4929409579278257 t CO2/MWh" }, { "year": 2044, - "value": 0.45674377196784977 + "value": "0.45674377196784977 t CO2/MWh" }, { "year": 2045, - "value": 0.42325174057782106 + "value": "0.42325174057782106 t CO2/MWh" }, { "year": 2046, - "value": 0.39230892919531823 + "value": "0.39230892919531823 t CO2/MWh" }, { "year": 2047, - "value": 0.3637368879238732 + "value": "0.3637368879238732 t CO2/MWh" }, { "year": 2048, - "value": 0.33735402627252425 + "value": "0.33735402627252425 t CO2/MWh" }, { "year": 2049, - "value": 0.3129852876511019 + "value": "0.3129852876511019 t CO2/MWh" }, { "year": 2050, - "value": 0.290466560681228 + "value": "0.290466560681228 t CO2/MWh" } ] }, @@ -3770,8 +3770,8 @@ "S1S2S3": null }, "country": "Hong Kong", - "ghg_s1s2": 47691749.8864963, - "ghg_s3": 47691749.8864963, + "ghg_s1s2": "47691749.8864963 MWh", + "ghg_s3": "47691749.8864963 MWh", "industry_level_1": null, "industry_level_2": null, "industry_level_3": null, @@ -3788,272 +3788,272 @@ "region": "Europe", "sector": "Electricity Utilities", "target_probability": 0.4285714285714285, - "projected_targets": { + "projected_ei_targets": { "S1S2": { "projections": [ { "year": 2019, - "value": 0.629386622670478 + "value": "0.629386622670478 t CO2/MWh" }, { "year": 2020, - "value": 0.49735991894221177 + "value": "0.49735991894221177 t CO2/MWh" }, { "year": 2021, - "value": 0.474752649899384 + "value": "0.474752649899384 t CO2/MWh" }, { "year": 2022, - "value": 0.45214538085655614 + "value": "0.45214538085655614 t CO2/MWh" }, { "year": 2023, - "value": 0.4295381118137284 + "value": "0.4295381118137284 t CO2/MWh" }, { "year": 2024, - "value": 0.4069308427709006 + "value": "0.4069308427709006 t CO2/MWh" }, { "year": 2025, - "value": 0.3843235737280728 + "value": "0.3843235737280728 t CO2/MWh" }, { "year": 2026, - "value": 0.36171630468524507 + "value": "0.36171630468524507 t CO2/MWh" }, { "year": 2027, - "value": 0.33910903564241723 + "value": "0.33910903564241723 t CO2/MWh" }, { "year": 2028, - "value": 0.31650176659958945 + "value": "0.31650176659958945 t CO2/MWh" }, { "year": 2029, - "value": 0.2938944975567617 + "value": "0.2938944975567617 t CO2/MWh" }, { "year": 2030, - "value": 0.2712872285139339 + "value": "0.2712872285139339 t CO2/MWh" }, { "year": 2031, - "value": 0.2712872285139339 + "value": "0.2712872285139339 t CO2/MWh" }, { "year": 2032, - "value": 0.2712872285139339 + "value": "0.2712872285139339 t CO2/MWh" }, { "year": 2033, - "value": 0.2712872285139339 + "value": "0.2712872285139339 t CO2/MWh" }, { "year": 2034, - "value": 0.2712872285139339 + "value": "0.2712872285139339 t CO2/MWh" }, { "year": 2035, - "value": 0.2712872285139339 + "value": "0.2712872285139339 t CO2/MWh" }, { "year": 2036, - "value": 0.2712872285139339 + "value": "0.2712872285139339 t CO2/MWh" }, { "year": 2037, - "value": 0.2712872285139339 + "value": "0.2712872285139339 t CO2/MWh" }, { "year": 2038, - "value": 0.2712872285139339 + "value": "0.2712872285139339 t CO2/MWh" }, { "year": 2039, - "value": 0.26643595573586704 + "value": "0.26643595573586704 t CO2/MWh" }, { "year": 2040, - "value": 0.24893234723624588 + "value": "0.24893234723624588 t CO2/MWh" }, { "year": 2041, - "value": 0.23212577790171932 + "value": "0.23212577790171932 t CO2/MWh" }, { "year": 2042, - "value": 0.2162058650114187 + "value": "0.2162058650114187 t CO2/MWh" }, { "year": 2043, - "value": 0.20124719185437925 + "value": "0.20124719185437925 t CO2/MWh" }, { "year": 2044, - "value": 0.18725778017720415 + "value": "0.18725778017720415 t CO2/MWh" }, { "year": 2045, - "value": 0.17421016813874166 + "value": "0.17421016813874166 t CO2/MWh" }, { "year": 2046, - "value": 0.16205953153291905 + "value": "0.16205953153291905 t CO2/MWh" }, { "year": 2047, - "value": 0.1507537220349898 + "value": "0.1507537220349898 t CO2/MWh" }, { "year": 2048, - "value": 0.14023864416724455 + "value": "0.14023864416724455 t CO2/MWh" }, { "year": 2049, - "value": 0.13046104410909345 + "value": "0.13046104410909345 t CO2/MWh" }, { "year": 2050, - "value": 0.12136988857034575 + "value": "0.12136988857034575 t CO2/MWh" } ] }, "S3": null, "S1S2S3": null }, - "projected_intensities": { + "projected_ei_trajectories": { "S1S2": { "projections": [ { "year": 2019, - "value": 0.629386622670478 + "value": "0.629386622670478 t CO2/MWh" }, { "year": 2020, - "value": 0.49735991894221177 + "value": "0.49735991894221177 t CO2/MWh" }, { "year": 2021, - "value": 0.48303602405469037 + "value": "0.48303602405469037 t CO2/MWh" }, { "year": 2022, - "value": 0.46732753099437646 + "value": "0.46732753099437646 t CO2/MWh" }, { "year": 2023, - "value": 0.45262372165326814 + "value": "0.45262372165326814 t CO2/MWh" }, { "year": 2024, - "value": 0.43902972338800816 + "value": "0.43902972338800816 t CO2/MWh" }, { "year": 2025, - "value": 0.42667964726166113 + "value": "0.42667964726166113 t CO2/MWh" }, { "year": 2026, - "value": 0.41566585956199315 + "value": "0.41566585956199315 t CO2/MWh" }, { "year": 2027, - "value": 0.4059394704000186 + "value": "0.4059394704000186 t CO2/MWh" }, { "year": 2028, - "value": 0.39727086488944763 + "value": "0.39727086488944763 t CO2/MWh" }, { "year": 2029, - "value": 0.38931252607554373 + "value": "0.38931252607554373 t CO2/MWh" }, { "year": 2030, - "value": 0.38168354663755155 + "value": "0.38168354663755155 t CO2/MWh" }, { "year": 2031, - "value": 0.37399487697657396 + "value": "0.37399487697657396 t CO2/MWh" }, { "year": 2032, - "value": 0.36581878663821166 + "value": "0.36581878663821166 t CO2/MWh" }, { "year": 2033, - "value": 0.35665221048674645 + "value": "0.35665221048674645 t CO2/MWh" }, { "year": 2034, - "value": 0.3459409332948065 + "value": "0.3459409332948065 t CO2/MWh" }, { "year": 2035, - "value": 0.33322931414564744 + "value": "0.33322931414564744 t CO2/MWh" }, { "year": 2036, - "value": 0.31840641041721496 + "value": "0.31840641041721496 t CO2/MWh" }, { "year": 2037, - "value": 0.30184697939561933 + "value": "0.30184697939561933 t CO2/MWh" }, { "year": 2038, - "value": 0.28427006024113044 + "value": "0.28427006024113044 t CO2/MWh" }, { "year": 2039, - "value": 0.26643595573586704 + "value": "0.26643595573586704 t CO2/MWh" }, { "year": 2040, - "value": 0.24893234723624583 + "value": "0.24893234723624583 t CO2/MWh" }, { "year": 2041, - "value": 0.23212577790171932 + "value": "0.23212577790171932 t CO2/MWh" }, { "year": 2042, - "value": 0.2162058650114187 + "value": "0.2162058650114187 t CO2/MWh" }, { "year": 2043, - "value": 0.20124719185437925 + "value": "0.20124719185437925 t CO2/MWh" }, { "year": 2044, - "value": 0.18725778017720415 + "value": "0.18725778017720415 t CO2/MWh" }, { "year": 2045, - "value": 0.17421016813874166 + "value": "0.17421016813874166 t CO2/MWh" }, { "year": 2046, - "value": 0.16205953153291902 + "value": "0.16205953153291902 t CO2/MWh" }, { "year": 2047, - "value": 0.15075372203498982 + "value": "0.15075372203498982 t CO2/MWh" }, { "year": 2048, - "value": 0.14023864416724455 + "value": "0.14023864416724455 t CO2/MWh" }, { "year": 2049, - "value": 0.13046104410909343 + "value": "0.13046104410909343 t CO2/MWh" }, { "year": 2050, - "value": 0.12136988857034575 + "value": "0.12136988857034575 t CO2/MWh" } ] }, @@ -4061,8 +4061,8 @@ "S1S2S3": null }, "country": "Germany", - "ghg_s1s2": 551394001.129387, - "ghg_s3": 551394001.129387, + "ghg_s1s2": "551394001.129387 MWh", + "ghg_s3": "551394001.129387 MWh", "industry_level_1": null, "industry_level_2": null, "industry_level_3": null, @@ -4079,272 +4079,272 @@ "region": "North America", "sector": "Electricity Utilities", "target_probability": 0.4285714285714285, - "projected_targets": { + "projected_ei_targets": { "S1S2": { "projections": [ { "year": 2019, - "value": 0.7213730332171805 + "value": "0.7213730332171805 t CO2/MWh" }, { "year": 2020, - "value": 0.7213730332171805 + "value": "0.7213730332171805 t CO2/MWh" }, { "year": 2021, - "value": 0.6982890961542306 + "value": "0.6982890961542306 t CO2/MWh" }, { "year": 2022, - "value": 0.6752051590912809 + "value": "0.6752051590912809 t CO2/MWh" }, { "year": 2023, - "value": 0.652121222028331 + "value": "0.652121222028331 t CO2/MWh" }, { "year": 2024, - "value": 0.6290372849653812 + "value": "0.6290372849653812 t CO2/MWh" }, { "year": 2025, - "value": 0.6059533479024314 + "value": "0.6059533479024314 t CO2/MWh" }, { "year": 2026, - "value": 0.5828694108394817 + "value": "0.5828694108394817 t CO2/MWh" }, { "year": 2027, - "value": 0.5597854737765319 + "value": "0.5597854737765319 t CO2/MWh" }, { "year": 2028, - "value": 0.536701536713582 + "value": "0.536701536713582 t CO2/MWh" }, { "year": 2029, - "value": 0.5136175996506324 + "value": "0.5136175996506324 t CO2/MWh" }, { "year": 2030, - "value": 0.4905336625876825 + "value": "0.4905336625876825 t CO2/MWh" }, { "year": 2031, - "value": 0.46600697945829833 + "value": "0.46600697945829833 t CO2/MWh" }, { "year": 2032, - "value": 0.4414802963289142 + "value": "0.4414802963289142 t CO2/MWh" }, { "year": 2033, - "value": 0.41695361319953006 + "value": "0.41695361319953006 t CO2/MWh" }, { "year": 2034, - "value": 0.3924269300701459 + "value": "0.3924269300701459 t CO2/MWh" }, { "year": 2035, - "value": 0.36790024694076173 + "value": "0.36790024694076173 t CO2/MWh" }, { "year": 2036, - "value": 0.34337356381137757 + "value": "0.34337356381137757 t CO2/MWh" }, { "year": 2037, - "value": 0.31884688068199346 + "value": "0.31884688068199346 t CO2/MWh" }, { "year": 2038, - "value": 0.29432019755260935 + "value": "0.29432019755260935 t CO2/MWh" }, { "year": 2039, - "value": 0.26979351442322524 + "value": "0.26979351442322524 t CO2/MWh" }, { "year": 2040, - "value": 0.24526683129384108 + "value": "0.24526683129384108 t CO2/MWh" }, { "year": 2041, - "value": 0.22074014816445703 + "value": "0.22074014816445703 t CO2/MWh" }, { "year": 2042, - "value": 0.1962134650350729 + "value": "0.1962134650350729 t CO2/MWh" }, { "year": 2043, - "value": 0.17168678190568878 + "value": "0.17168678190568878 t CO2/MWh" }, { "year": 2044, - "value": 0.14716009877630465 + "value": "0.14716009877630465 t CO2/MWh" }, { "year": 2045, - "value": 0.12263341564692054 + "value": "0.12263341564692054 t CO2/MWh" }, { "year": 2046, - "value": 0.09810673251753642 + "value": "0.09810673251753642 t CO2/MWh" }, { "year": 2047, - "value": 0.07358004938815231 + "value": "0.07358004938815231 t CO2/MWh" }, { "year": 2048, - "value": 0.049053366258768175 + "value": "0.049053366258768175 t CO2/MWh" }, { "year": 2049, - "value": 0.024526683129384046 + "value": "0.024526683129384046 t CO2/MWh" }, { "year": 2050, - "value": 0.0 + "value": "0.0 t CO2/MWh" } ] }, "S3": null, "S1S2S3": null }, - "projected_intensities": { + "projected_ei_trajectories": { "S1S2": { "projections": [ { "year": 2019, - "value": 0.7213730332171805 + "value": "0.7213730332171805 t CO2/MWh" }, { "year": 2020, - "value": 0.7213730332171805 + "value": "0.7213730332171805 t CO2/MWh" }, { "year": 2021, - "value": 0.7096360463343725 + "value": "0.7096360463343725 t CO2/MWh" }, { "year": 2022, - "value": 0.6964411027710348 + "value": "0.6964411027710348 t CO2/MWh" }, { "year": 2023, - "value": 0.68384613604692 + "value": "0.68384613604692 t CO2/MWh" }, { "year": 2024, - "value": 0.6718041628022702 + "value": "0.6718041628022702 t CO2/MWh" }, { "year": 2025, - "value": 0.6602875522978253 + "value": "0.6602875522978253 t CO2/MWh" }, { "year": 2026, - "value": 0.6492678739015747 + "value": "0.6492678739015747 t CO2/MWh" }, { "year": 2027, - "value": 0.6386842733988106 + "value": "0.6386842733988106 t CO2/MWh" }, { "year": 2028, - "value": 0.6284183082538842 + "value": "0.6284183082538842 t CO2/MWh" }, { "year": 2029, - "value": 0.6182876798700144 + "value": "0.6182876798700144 t CO2/MWh" }, { "year": 2030, - "value": 0.6080411602277801 + "value": "0.6080411602277801 t CO2/MWh" }, { "year": 2031, - "value": 0.5973301378916037 + "value": "0.5973301378916037 t CO2/MWh" }, { "year": 2032, - "value": 0.5856558513883539 + "value": "0.5856558513883539 t CO2/MWh" }, { "year": 2033, - "value": 0.5723260297981299 + "value": "0.5723260297981299 t CO2/MWh" }, { "year": 2034, - "value": 0.5565021750206457 + "value": "0.5565021750206457 t CO2/MWh" }, { "year": 2035, - "value": 0.5374406121599999 + "value": "0.5374406121599999 t CO2/MWh" }, { "year": 2036, - "value": 0.5148977292507196 + "value": "0.5148977292507196 t CO2/MWh" }, { "year": 2037, - "value": 0.48939093915311077 + "value": "0.48939093915311077 t CO2/MWh" }, { "year": 2038, - "value": 0.4620155928970045 + "value": "0.4620155928970045 t CO2/MWh" }, { "year": 2039, - "value": 0.4339792123160576 + "value": "0.4339792123160576 t CO2/MWh" }, { "year": 2040, - "value": 0.4062488247754412 + "value": "0.4062488247754412 t CO2/MWh" }, { "year": 2041, - "value": 0.37945305867971707 + "value": "0.37945305867971707 t CO2/MWh" }, { "year": 2042, - "value": 0.35393813282296316 + "value": "0.35393813282296316 t CO2/MWh" }, { "year": 2043, - "value": 0.3298602176693171 + "value": "0.3298602176693171 t CO2/MWh" }, { "year": 2044, - "value": 0.3072614529719901 + "value": "0.3072614529719901 t CO2/MWh" }, { "year": 2045, - "value": 0.28612035604771263 + "value": "0.28612035604771263 t CO2/MWh" }, { "year": 2046, - "value": 0.2663821228609691 + "value": "0.2663821228609691 t CO2/MWh" }, { "year": 2047, - "value": 0.24797596300666216 + "value": "0.24797596300666216 t CO2/MWh" }, { "year": 2048, - "value": 0.23082474747951603 + "value": "0.23082474747951603 t CO2/MWh" }, { "year": 2049, - "value": 0.21485027166592152 + "value": "0.21485027166592152 t CO2/MWh" }, { "year": 2050, - "value": 0.19997605950297165 + "value": "0.19997605950297165 t CO2/MWh" } ] }, @@ -4352,8 +4352,8 @@ "S1S2S3": null }, "country": "United States of America", - "ghg_s1s2": 242884801.558717, - "ghg_s3": 242884801.558717, + "ghg_s1s2": "242884801.558717 MWh", + "ghg_s3": "242884801.558717 MWh", "industry_level_1": null, "industry_level_2": null, "industry_level_3": null, @@ -4370,272 +4370,272 @@ "region": "Europe", "sector": "Steel", "target_probability": 0.4285714285714285, - "projected_targets": { + "projected_ei_targets": { "S1S2": { "projections": [ { "year": 2019, - "value": 2.025612471762173 + "value": "2.025612471762173 t CO2/MWh" }, { "year": 2020, - "value": 2.1090909069608292 + "value": "2.1090909069608292 t CO2/MWh" }, { "year": 2021, - "value": 2.0432167817220854 + "value": "2.0432167817220854 t CO2/MWh" }, { "year": 2022, - "value": 1.968186818466775 + "value": "1.968186818466775 t CO2/MWh" }, { "year": 2023, - "value": 1.8940656476672468 + "value": "1.8940656476672468 t CO2/MWh" }, { "year": 2024, - "value": 1.8208945239208314 + "value": "1.8208945239208314 t CO2/MWh" }, { "year": 2025, - "value": 1.7487256213323736 + "value": "1.7487256213323736 t CO2/MWh" }, { "year": 2026, - "value": 1.6775745737622894 + "value": "1.6775745737622894 t CO2/MWh" }, { "year": 2027, - "value": 1.6073634282391835 + "value": "1.6073634282391835 t CO2/MWh" }, { "year": 2028, - "value": 1.5379117473263144 + "value": "1.5379117473263144 t CO2/MWh" }, { "year": 2029, - "value": 1.4689925043047871 + "value": "1.4689925043047871 t CO2/MWh" }, { "year": 2030, - "value": 1.40039446769001 + "value": "1.40039446769001 t CO2/MWh" }, { "year": 2031, - "value": 1.3319449239497403 + "value": "1.3319449239497403 t CO2/MWh" }, { "year": 2032, - "value": 1.263500744160184 + "value": "1.263500744160184 t CO2/MWh" }, { "year": 2033, - "value": 1.1949334758349643 + "value": "1.1949334758349643 t CO2/MWh" }, { "year": 2034, - "value": 1.1261281790479682 + "value": "1.1261281790479682 t CO2/MWh" }, { "year": 2035, - "value": 1.0570066079958613 + "value": "1.0570066079958613 t CO2/MWh" }, { "year": 2036, - "value": 0.9875645503841134 + "value": "0.9875645503841134 t CO2/MWh" }, { "year": 2037, - "value": 0.9178856805325853 + "value": "0.9178856805325853 t CO2/MWh" }, { "year": 2038, - "value": 0.8481066643149975 + "value": "0.8481066643149975 t CO2/MWh" }, { "year": 2039, - "value": 0.7783614247807794 + "value": "0.7783614247807794 t CO2/MWh" }, { "year": 2040, - "value": 0.7087471147801374 + "value": "0.7087471147801374 t CO2/MWh" }, { "year": 2041, - "value": 0.6393198746814442 + "value": "0.6393198746814442 t CO2/MWh" }, { "year": 2042, - "value": 0.5701050764484741 + "value": "0.5701050764484741 t CO2/MWh" }, { "year": 2043, - "value": 0.5011090570114368 + "value": "0.5011090570114368 t CO2/MWh" }, { "year": 2044, - "value": 0.4323276860805817 + "value": "0.4323276860805817 t CO2/MWh" }, { "year": 2045, - "value": 0.36375160924689426 + "value": "0.36375160924689426 t CO2/MWh" }, { "year": 2046, - "value": 0.2953691836040519 + "value": "0.2953691836040519 t CO2/MWh" }, { "year": 2047, - "value": 0.22716803802895327 + "value": "0.22716803802895327 t CO2/MWh" }, { "year": 2048, - "value": 0.15913587010331076 + "value": "0.15913587010331076 t CO2/MWh" }, { "year": 2049, - "value": 0.09126083449356556 + "value": "0.09126083449356556 t CO2/MWh" }, { "year": 2050, - "value": 0.023531717117231055 + "value": "0.023531717117231055 t CO2/MWh" } ] }, "S3": null, "S1S2S3": null }, - "projected_intensities": { + "projected_ei_trajectories": { "S1S2": { "projections": [ { "year": 2019, - "value": 2.025612471762173 + "value": "2.025612471762173 t CO2/MWh" }, { "year": 2020, - "value": 2.1090909069608292 + "value": "2.1090909069608292 t CO2/MWh" }, { "year": 2021, - "value": 2.1060961743220625 + "value": "2.1060961743220625 t CO2/MWh" }, { "year": 2022, - "value": 2.0935998411634373 + "value": "2.0935998411634373 t CO2/MWh" }, { "year": 2023, - "value": 2.08146363597004 + "value": "2.08146363597004 t CO2/MWh" }, { "year": 2024, - "value": 2.0694338897316635 + "value": "2.0694338897316635 t CO2/MWh" }, { "year": 2025, - "value": 2.0571974490608764 + "value": "2.0571974490608764 t CO2/MWh" }, { "year": 2026, - "value": 2.0444439933614214 + "value": "2.0444439933614214 t CO2/MWh" }, { "year": 2027, - "value": 2.0309772569252997 + "value": "2.0309772569252997 t CO2/MWh" }, { "year": 2028, - "value": 2.016776357008506 + "value": "2.016776357008506 t CO2/MWh" }, { "year": 2029, - "value": 2.0019296717028428 + "value": "2.0019296717028428 t CO2/MWh" }, { "year": 2030, - "value": 1.9865042889569182 + "value": "1.9865042889569182 t CO2/MWh" }, { "year": 2031, - "value": 1.970442028164512 + "value": "1.970442028164512 t CO2/MWh" }, { "year": 2032, - "value": 1.9534944783850734 + "value": "1.9534944783850734 t CO2/MWh" }, { "year": 2033, - "value": 1.9351859852300182 + "value": "1.9351859852300182 t CO2/MWh" }, { "year": 2034, - "value": 1.9148420990044046 + "value": "1.9148420990044046 t CO2/MWh" }, { "year": 2035, - "value": 1.8917649466011601 + "value": "1.8917649466011601 t CO2/MWh" }, { "year": 2036, - "value": 1.8655580488668244 + "value": "1.8655580488668244 t CO2/MWh" }, { "year": 2037, - "value": 1.836385145194536 + "value": "1.836385145194536 t CO2/MWh" }, { "year": 2038, - "value": 1.8049091094154828 + "value": "1.8049091094154828 t CO2/MWh" }, { "year": 2039, - "value": 1.771979743427035 + "value": "1.771979743427035 t CO2/MWh" }, { "year": 2040, - "value": 1.7383543190634416 + "value": "1.7383543190634416 t CO2/MWh" }, { "year": 2041, - "value": 1.7045865456755531 + "value": "1.7045865456755531 t CO2/MWh" }, { "year": 2042, - "value": 1.6710364329768397 + "value": "1.6710364329768397 t CO2/MWh" }, { "year": 2043, - "value": 1.6379211570268835 + "value": "1.6379211570268835 t CO2/MWh" }, { "year": 2044, - "value": 1.6053642758401603 + "value": "1.6053642758401603 t CO2/MWh" }, { "year": 2045, - "value": 1.573431481364922 + "value": "1.573431481364922 t CO2/MWh" }, { "year": 2046, - "value": 1.5421537322142225 + "value": "1.5421537322142225 t CO2/MWh" }, { "year": 2047, - "value": 1.511541454044459 + "value": "1.511541454044459 t CO2/MWh" }, { "year": 2048, - "value": 1.4815930596667921 + "value": "1.4815930596667921 t CO2/MWh" }, { "year": 2049, - "value": 1.4523000222576947 + "value": "1.4523000222576947 t CO2/MWh" }, { "year": 2050, - "value": 1.4236498966235975 + "value": "1.4236498966235975 t CO2/MWh" } ] }, @@ -4643,8 +4643,8 @@ "S1S2S3": null }, "country": "Netherlands", - "ghg_s1s2": 89800001.3960884, - "ghg_s3": 89800001.3960884, + "ghg_s1s2": "89800001.3960884 MWh", + "ghg_s3": "89800001.3960884 MWh", "industry_level_1": null, "industry_level_2": null, "industry_level_3": null, @@ -4661,7 +4661,7 @@ "region": "Asia", "sector": "Steel", "target_probability": 0.4285714285714285, - "projected_targets": { + "projected_ei_targets": { "S1S2": { "projections": [ { @@ -4797,7 +4797,7 @@ "S3": null, "S1S2S3": null }, - "projected_intensities": { + "projected_ei_trajectories": { "S1S2": { "projections": [ { @@ -4952,7 +4952,7 @@ "region": "Asia", "sector": "Steel", "target_probability": 0.4285714285714285, - "projected_targets": { + "projected_ei_targets": { "S1S2": { "projections": [ { @@ -5088,7 +5088,7 @@ "S3": null, "S1S2S3": null }, - "projected_intensities": { + "projected_ei_trajectories": { "S1S2": { "projections": [ { @@ -5243,272 +5243,272 @@ "region": "South America", "sector": "Steel", "target_probability": 0.4285714285714285, - "projected_targets": { + "projected_ei_targets": { "S1S2": { "projections": [ { "year": 2019, - "value": 0.23287909421782566 + "value": "0.23287909421782566 t CO2/MWh" }, { "year": 2020, - "value": 0.23782543529110398 + "value": "0.23782543529110398 t CO2/MWh" }, { "year": 2021, - "value": 0.23782518510683523 + "value": "0.23782518510683523 t CO2/MWh" }, { "year": 2022, - "value": 0.2375065252639072 + "value": "0.2375065252639072 t CO2/MWh" }, { "year": 2023, - "value": 0.23699212499214328 + "value": "0.23699212499214328 t CO2/MWh" }, { "year": 2024, - "value": 0.23617802108935954 + "value": "0.23617802108935954 t CO2/MWh" }, { "year": 2025, - "value": 0.23493667553780867 + "value": "0.23493667553780867 t CO2/MWh" }, { "year": 2026, - "value": 0.23315623559783574 + "value": "0.23315623559783574 t CO2/MWh" }, { "year": 2027, - "value": 0.2307987617233072 + "value": "0.2307987617233072 t CO2/MWh" }, { "year": 2028, - "value": 0.22792115109494807 + "value": "0.22792115109494807 t CO2/MWh" }, { "year": 2029, - "value": 0.22462699773845451 + "value": "0.22462699773845451 t CO2/MWh" }, { "year": 2030, - "value": 0.22099427923282483 + "value": "0.22099427923282483 t CO2/MWh" }, { "year": 2031, - "value": 0.2170268710424221 + "value": "0.2170268710424221 t CO2/MWh" }, { "year": 2032, - "value": 0.21263073927094378 + "value": "0.21263073927094378 t CO2/MWh" }, { "year": 2033, - "value": 0.20760551668200722 + "value": "0.20760551668200722 t CO2/MWh" }, { "year": 2034, - "value": 0.20166854855470678 + "value": "0.20166854855470678 t CO2/MWh" }, { "year": 2035, - "value": 0.19454858286795956 + "value": "0.19454858286795956 t CO2/MWh" }, { "year": 2036, - "value": 0.1861434343092031 + "value": "0.1861434343092031 t CO2/MWh" }, { "year": 2037, - "value": 0.176629849481309 + "value": "0.176629849481309 t CO2/MWh" }, { "year": 2038, - "value": 0.1664074292482413 + "value": "0.1664074292482413 t CO2/MWh" }, { "year": 2039, - "value": 0.1559282641165899 + "value": "0.1559282641165899 t CO2/MWh" }, { "year": 2040, - "value": 0.14556103610535465 + "value": "0.14556103610535465 t CO2/MWh" }, { "year": 2041, - "value": 0.13554911080700055 + "value": "0.13554911080700055 t CO2/MWh" }, { "year": 2042, - "value": 0.12602849929850368 + "value": "0.12602849929850368 t CO2/MWh" }, { "year": 2043, - "value": 0.11706162635131759 + "value": "0.11706162635131759 t CO2/MWh" }, { "year": 2044, - "value": 0.10866606511374256 + "value": "0.10866606511374256 t CO2/MWh" }, { "year": 2045, - "value": 0.10083399039878226 + "value": "0.10083399039878226 t CO2/MWh" }, { "year": 2046, - "value": 0.0935440708385071 + "value": "0.0935440708385071 t CO2/MWh" }, { "year": 2047, - "value": 0.08676837808993242 + "value": "0.08676837808993242 t CO2/MWh" }, { "year": 2048, - "value": 0.08047629066798251 + "value": "0.08047629066798251 t CO2/MWh" }, { "year": 2049, - "value": 0.07463665673377298 + "value": "0.07463665673377298 t CO2/MWh" }, { "year": 2050, - "value": 0.06921896577724047 + "value": "0.06921896577724047 t CO2/MWh" } ] }, "S3": null, "S1S2S3": null }, - "projected_intensities": { + "projected_ei_trajectories": { "S1S2": { "projections": [ { "year": 2019, - "value": 0.23287909421782566 + "value": "0.23287909421782566 t CO2/MWh" }, { "year": 2020, - "value": 0.23782543529110398 + "value": "0.23782543529110398 t CO2/MWh" }, { "year": 2021, - "value": 0.23782518510683523 + "value": "0.23782518510683523 t CO2/MWh" }, { "year": 2022, - "value": 0.2375065252639072 + "value": "0.2375065252639072 t CO2/MWh" }, { "year": 2023, - "value": 0.23699212499214328 + "value": "0.23699212499214328 t CO2/MWh" }, { "year": 2024, - "value": 0.23617802108935954 + "value": "0.23617802108935954 t CO2/MWh" }, { "year": 2025, - "value": 0.23493667553780867 + "value": "0.23493667553780867 t CO2/MWh" }, { "year": 2026, - "value": 0.23315623559783574 + "value": "0.23315623559783574 t CO2/MWh" }, { "year": 2027, - "value": 0.2307987617233072 + "value": "0.2307987617233072 t CO2/MWh" }, { "year": 2028, - "value": 0.22792115109494807 + "value": "0.22792115109494807 t CO2/MWh" }, { "year": 2029, - "value": 0.22462699773845451 + "value": "0.22462699773845451 t CO2/MWh" }, { "year": 2030, - "value": 0.22099427923282483 + "value": "0.22099427923282483 t CO2/MWh" }, { "year": 2031, - "value": 0.2170268710424221 + "value": "0.2170268710424221 t CO2/MWh" }, { "year": 2032, - "value": 0.21263073927094378 + "value": "0.21263073927094378 t CO2/MWh" }, { "year": 2033, - "value": 0.20760551668200722 + "value": "0.20760551668200722 t CO2/MWh" }, { "year": 2034, - "value": 0.20166854855470678 + "value": "0.20166854855470678 t CO2/MWh" }, { "year": 2035, - "value": 0.19454858286795956 + "value": "0.19454858286795956 t CO2/MWh" }, { "year": 2036, - "value": 0.1861434343092031 + "value": "0.1861434343092031 t CO2/MWh" }, { "year": 2037, - "value": 0.176629849481309 + "value": "0.176629849481309 t CO2/MWh" }, { "year": 2038, - "value": 0.1664074292482413 + "value": "0.1664074292482413 t CO2/MWh" }, { "year": 2039, - "value": 0.1559282641165899 + "value": "0.1559282641165899 t CO2/MWh" }, { "year": 2040, - "value": 0.14556103610535465 + "value": "0.14556103610535465 t CO2/MWh" }, { "year": 2041, - "value": 0.13554911080700055 + "value": "0.13554911080700055 t CO2/MWh" }, { "year": 2042, - "value": 0.12602849929850368 + "value": "0.12602849929850368 t CO2/MWh" }, { "year": 2043, - "value": 0.11706162635131759 + "value": "0.11706162635131759 t CO2/MWh" }, { "year": 2044, - "value": 0.10866606511374256 + "value": "0.10866606511374256 t CO2/MWh" }, { "year": 2045, - "value": 0.10083399039878226 + "value": "0.10083399039878226 t CO2/MWh" }, { "year": 2046, - "value": 0.0935440708385071 + "value": "0.0935440708385071 t CO2/MWh" }, { "year": 2047, - "value": 0.08676837808993242 + "value": "0.08676837808993242 t CO2/MWh" }, { "year": 2048, - "value": 0.08047629066798251 + "value": "0.08047629066798251 t CO2/MWh" }, { "year": 2049, - "value": 0.07463665673377298 + "value": "0.07463665673377298 t CO2/MWh" }, { "year": 2050, - "value": 0.06921896577724047 + "value": "0.06921896577724047 t CO2/MWh" } ] }, @@ -5516,8 +5516,8 @@ "S1S2S3": null }, "country": "Brazil", - "ghg_s1s2": 12453000.4760821, - "ghg_s3": 12453000.4760821, + "ghg_s1s2": "12453000.4760821 MWh", + "ghg_s3": "12453000.4760821 MWh", "industry_level_1": null, "industry_level_2": null, "industry_level_3": null, @@ -5534,272 +5534,272 @@ "region": "Asia", "sector": "Steel", "target_probability": 0.4285714285714285, - "projected_targets": { + "projected_ei_targets": { "S1S2": { "projections": [ { "year": 2019, - "value": 0.954598554537054 + "value": "0.954598554537054 t CO2/MWh" }, { "year": 2020, - "value": 0.954598554537054 + "value": "0.954598554537054 t CO2/MWh" }, { "year": 2021, - "value": 0.9493773031495156 + "value": "0.9493773031495156 t CO2/MWh" }, { "year": 2022, - "value": 0.9406684403451895 + "value": "0.9406684403451895 t CO2/MWh" }, { "year": 2023, - "value": 0.9319466759219065 + "value": "0.9319466759219065 t CO2/MWh" }, { "year": 2024, - "value": 0.9231819496177506 + "value": "0.9231819496177506 t CO2/MWh" }, { "year": 2025, - "value": 0.9143391448880038 + "value": "0.9143391448880038 t CO2/MWh" }, { "year": 2026, - "value": 0.9053887695950591 + "value": "0.9053887695950591 t CO2/MWh" }, { "year": 2027, - "value": 0.8963198998415938 + "value": "0.8963198998415938 t CO2/MWh" }, { "year": 2028, - "value": 0.8871396514522941 + "value": "0.8871396514522941 t CO2/MWh" }, { "year": 2029, - "value": 0.8778531927316303 + "value": "0.8778531927316303 t CO2/MWh" }, { "year": 2030, - "value": 0.868437667604648 + "value": "0.868437667604648 t CO2/MWh" }, { "year": 2031, - "value": 0.8313736611627646 + "value": "0.8313736611627646 t CO2/MWh" }, { "year": 2032, - "value": 0.7939673821275138 + "value": "0.7939673821275138 t CO2/MWh" }, { "year": 2033, - "value": 0.755998996322505 + "value": "0.755998996322505 t CO2/MWh" }, { "year": 2034, - "value": 0.7171894836036795 + "value": "0.7171894836036795 t CO2/MWh" }, { "year": 2035, - "value": 0.6772870255256789 + "value": "0.6772870255256789 t CO2/MWh" }, { "year": 2036, - "value": 0.6362103647059111 + "value": "0.6362103647059111 t CO2/MWh" }, { "year": 2037, - "value": 0.5941421302097765 + "value": "0.5941421302097765 t CO2/MWh" }, { "year": 2038, - "value": 0.5514666618988123 + "value": "0.5514666618988123 t CO2/MWh" }, { "year": 2039, - "value": 0.5086075978265583 + "value": "0.5086075978265583 t CO2/MWh" }, { "year": 2040, - "value": 0.4659039155581829 + "value": "0.4659039155581829 t CO2/MWh" }, { "year": 2041, - "value": 0.4235750916327392 + "value": "0.4235750916327392 t CO2/MWh" }, { "year": 2042, - "value": 0.3817405963568331 + "value": "0.3817405963568331 t CO2/MWh" }, { "year": 2043, - "value": 0.34045246360077625 + "value": "0.34045246360077625 t CO2/MWh" }, { "year": 2044, - "value": 0.2997222356105952 + "value": "0.2997222356105952 t CO2/MWh" }, { "year": 2045, - "value": 0.25953890166543986 + "value": "0.25953890166543986 t CO2/MWh" }, { "year": 2046, - "value": 0.21987971829009964 + "value": "0.21987971829009964 t CO2/MWh" }, { "year": 2047, - "value": 0.18071641738884092 + "value": "0.18071641738884092 t CO2/MWh" }, { "year": 2048, - "value": 0.14201866858776052 + "value": "0.14201866858776052 t CO2/MWh" }, { "year": 2049, - "value": 0.10375596910276078 + "value": "0.10375596910276078 t CO2/MWh" }, { "year": 2050, - "value": 0.06589864832712344 + "value": "0.06589864832712344 t CO2/MWh" } ] }, "S3": null, "S1S2S3": null }, - "projected_intensities": { + "projected_ei_trajectories": { "S1S2": { "projections": [ { "year": 2019, - "value": 0.954598554537054 + "value": "0.954598554537054 t CO2/MWh" }, { "year": 2020, - "value": 0.954598554537054 + "value": "0.954598554537054 t CO2/MWh" }, { "year": 2021, - "value": 0.9655963665703597 + "value": "0.9655963665703597 t CO2/MWh" }, { "year": 2022, - "value": 0.9728087126240174 + "value": "0.9728087126240174 t CO2/MWh" }, { "year": 2023, - "value": 0.9794132729011352 + "value": "0.9794132729011352 t CO2/MWh" }, { "year": 2024, - "value": 0.9849363131571196 + "value": "0.9849363131571196 t CO2/MWh" }, { "year": 2025, - "value": 0.9887745468551721 + "value": "0.9887745468551721 t CO2/MWh" }, { "year": 2026, - "value": 0.9903630412525899 + "value": "0.9903630412525899 t CO2/MWh" }, { "year": 2027, - "value": 0.989451922884395 + "value": "0.989451922884395 t CO2/MWh" }, { "year": 2028, - "value": 0.9862459966785303 + "value": "0.9862459966785303 t CO2/MWh" }, { "year": 2029, - "value": 0.981238595975061 + "value": "0.981238595975061 t CO2/MWh" }, { "year": 2030, - "value": 0.9749193867243784 + "value": "0.9749193867243784 t CO2/MWh" }, { "year": 2031, - "value": 0.9675842149583522 + "value": "0.9675842149583522 t CO2/MWh" }, { "year": 2032, - "value": 0.9592660434355568 + "value": "0.9592660434355568 t CO2/MWh" }, { "year": 2033, - "value": 0.9497232088593415 + "value": "0.9497232088593415 t CO2/MWh" }, { "year": 2034, - "value": 0.9384828380128959 + "value": "0.9384828380128959 t CO2/MWh" }, { "year": 2035, - "value": 0.9250039484395483 + "value": "0.9250039484395483 t CO2/MWh" }, { "year": 2036, - "value": 0.9089714346178235 + "value": "0.9089714346178235 t CO2/MWh" }, { "year": 2037, - "value": 0.8905396376320079 + "value": "0.8905396376320079 t CO2/MWh" }, { "year": 2038, - "value": 0.8702949656500503 + "value": "0.8702949656500503 t CO2/MWh" }, { "year": 2039, - "value": 0.8489868944198742 + "value": "0.8489868944198742 t CO2/MWh" }, { "year": 2040, - "value": 0.8272796296170838 + "value": "0.8272796296170838 t CO2/MWh" }, { "year": 2041, - "value": 0.805652059718927 + "value": "0.805652059718927 t CO2/MWh" }, { "year": 2042, - "value": 0.7844068309345155 + "value": "0.7844068309345155 t CO2/MWh" }, { "year": 2043, - "value": 0.7637169192061212 + "value": "0.7637169192061212 t CO2/MWh" }, { "year": 2044, - "value": 0.7436707900311434 + "value": "0.7436707900311434 t CO2/MWh" }, { "year": 2045, - "value": 0.7243052459211291 + "value": "0.7243052459211291 t CO2/MWh" }, { "year": 2046, - "value": 0.7056266891343271 + "value": "0.7056266891343271 t CO2/MWh" }, { "year": 2047, - "value": 0.6876241663313545 + "value": "0.6876241663313545 t CO2/MWh" }, { "year": 2048, - "value": 0.6702771769934004 + "value": "0.6702771769934004 t CO2/MWh" }, { "year": 2049, - "value": 0.6535602977549326 + "value": "0.6535602977549326 t CO2/MWh" }, { "year": 2050, - "value": 0.6374459070572828 + "value": "0.6374459070572828 t CO2/MWh" } ] }, @@ -5807,8 +5807,8 @@ "S1S2S3": null }, "country": "South Korea", - "ghg_s1s2": 23303009.677026, - "ghg_s3": 23303009.677026, + "ghg_s1s2": "23303009.677026 MWh", + "ghg_s3": "23303009.677026 MWh", "industry_level_1": null, "industry_level_2": null, "industry_level_3": null, @@ -5825,272 +5825,272 @@ "region": "Asia", "sector": "Steel", "target_probability": 0.4285714285714285, - "projected_targets": { + "projected_ei_targets": { "S1S2": { "projections": [ { "year": 2019, - "value": 2.14490674197121 + "value": "2.14490674197121 t CO2/MWh" }, { "year": 2020, - "value": 2.153791383555795 + "value": "2.153791383555795 t CO2/MWh" }, { "year": 2021, - "value": 2.1316357075590107 + "value": "2.1316357075590107 t CO2/MWh" }, { "year": 2022, - "value": 2.10338635628874 + "value": "2.10338635628874 t CO2/MWh" }, { "year": 2023, - "value": 2.0753102109663826 + "value": "2.0753102109663826 t CO2/MWh" }, { "year": 2024, - "value": 2.0474218323118896 + "value": "2.0474218323118896 t CO2/MWh" }, { "year": 2025, - "value": 2.019740357611701 + "value": "2.019740357611701 t CO2/MWh" }, { "year": 2026, - "value": 1.9922804017762967 + "value": "1.9922804017762967 t CO2/MWh" }, { "year": 2027, - "value": 1.9650360848448274 + "value": "1.9650360848448274 t CO2/MWh" }, { "year": 2028, - "value": 1.9379692586029384 + "value": "1.9379692586029384 t CO2/MWh" }, { "year": 2029, - "value": 1.9110102953863057 + "value": "1.9110102953863057 t CO2/MWh" }, { "year": 2030, - "value": 1.8840621944304483 + "value": "1.8840621944304483 t CO2/MWh" }, { "year": 2031, - "value": 1.7960665866965249 + "value": "1.7960665866965249 t CO2/MWh" }, { "year": 2032, - "value": 1.7077712639660214 + "value": "1.7077712639660214 t CO2/MWh" }, { "year": 2033, - "value": 1.618931618568693 + "value": "1.618931618568693 t CO2/MWh" }, { "year": 2034, - "value": 1.5292566420374998 + "value": "1.5292566420374998 t CO2/MWh" }, { "year": 2035, - "value": 1.4384945259364372 + "value": "1.4384945259364372 t CO2/MWh" }, { "year": 2036, - "value": 1.3465735522319446 + "value": "1.3465735522319446 t CO2/MWh" }, { "year": 2037, - "value": 1.2536890912474092 + "value": "1.2536890912474092 t CO2/MWh" }, { "year": 2038, - "value": 1.1602343453499224 + "value": "1.1602343453499224 t CO2/MWh" }, { "year": 2039, - "value": 1.0666351493391608 + "value": "1.0666351493391608 t CO2/MWh" }, { "year": 2040, - "value": 0.9732277190735656 + "value": "0.9732277190735656 t CO2/MWh" }, { "year": 2041, - "value": 0.8802267058753541 + "value": "0.8802267058753541 t CO2/MWh" }, { "year": 2042, - "value": 0.7877466416340048 + "value": "0.7877466416340048 t CO2/MWh" }, { "year": 2043, - "value": 0.6958353223549808 + "value": "0.6958353223549808 t CO2/MWh" }, { "year": 2044, - "value": 0.6045009075351638 + "value": "0.6045009075351638 t CO2/MWh" }, { "year": 2045, - "value": 0.513729751924258 + "value": "0.513729751924258 t CO2/MWh" }, { "year": 2046, - "value": 0.423497058313256 + "value": "0.423497058313256 t CO2/MWh" }, { "year": 2047, - "value": 0.3337729335837493 + "value": "0.3337729335837493 t CO2/MWh" }, { "year": 2048, - "value": 0.24452573329864757 + "value": "0.24452573329864757 t CO2/MWh" }, { "year": 2049, - "value": 0.15572386643766856 + "value": "0.15572386643766856 t CO2/MWh" }, { "year": 2050, - "value": 0.0673367403352704 + "value": "0.0673367403352704 t CO2/MWh" } ] }, "S3": null, "S1S2S3": null }, - "projected_intensities": { + "projected_ei_trajectories": { "S1S2": { "projections": [ { "year": 2019, - "value": 2.14490674197121 + "value": "2.14490674197121 t CO2/MWh" }, { "year": 2020, - "value": 2.153791383555795 + "value": "2.153791383555795 t CO2/MWh" }, { "year": 2021, - "value": 2.141994163770733 + "value": "2.141994163770733 t CO2/MWh" }, { "year": 2022, - "value": 2.1240930072766893 + "value": "2.1240930072766893 t CO2/MWh" }, { "year": 2023, - "value": 2.106306776157942 + "value": "2.106306776157942 t CO2/MWh" }, { "year": 2024, - "value": 2.08858213908493 + "value": "2.08858213908493 t CO2/MWh" }, { "year": 2025, - "value": 2.07085621688143 + "value": "2.07085621688143 t CO2/MWh" }, { "year": 2026, - "value": 2.053071393949981 + "value": "2.053071393949981 t CO2/MWh" }, { "year": 2027, - "value": 2.035191801734204 + "value": "2.035191801734204 t CO2/MWh" }, { "year": 2028, - "value": 2.0171971432104647 + "value": "2.0171971432104647 t CO2/MWh" }, { "year": 2029, - "value": 1.999044850714704 + "value": "1.999044850714704 t CO2/MWh" }, { "year": 2030, - "value": 1.9806192264561941 + "value": "1.9806192264561941 t CO2/MWh" }, { "year": 2031, - "value": 1.961679963499026 + "value": "1.961679963499026 t CO2/MWh" }, { "year": 2032, - "value": 1.9418073731580183 + "value": "1.9418073731580183 t CO2/MWh" }, { "year": 2033, - "value": 1.9203597155500025 + "value": "1.9203597155500025 t CO2/MWh" }, { "year": 2034, - "value": 1.8965094419293478 + "value": "1.8965094419293478 t CO2/MWh" }, { "year": 2035, - "value": 1.8694581822731782 + "value": "1.8694581822731782 t CO2/MWh" }, { "year": 2036, - "value": 1.8388197850620962 + "value": "1.8388197850620962 t CO2/MWh" }, { "year": 2037, - "value": 1.8049002977676218 + "value": "1.8049002977676218 t CO2/MWh" }, { "year": 2038, - "value": 1.7685826490696894 + "value": "1.7685826490696894 t CO2/MWh" }, { "year": 2039, - "value": 1.730927644500349 + "value": "1.730927644500349 t CO2/MWh" }, { "year": 2040, - "value": 1.6928417911889748 + "value": "1.6928417911889748 t CO2/MWh" }, { "year": 2041, - "value": 1.6549608222198926 + "value": "1.6549608222198926 t CO2/MWh" }, { "year": 2042, - "value": 1.617677095579325 + "value": "1.617677095579325 t CO2/MWh" }, { "year": 2043, - "value": 1.5812100314367101 + "value": "1.5812100314367101 t CO2/MWh" }, { "year": 2044, - "value": 1.5456694471097814 + "value": "1.5456694471097814 t CO2/MWh" }, { "year": 2045, - "value": 1.5110998263829376 + "value": "1.5110998263829376 t CO2/MWh" }, { "year": 2046, - "value": 1.4775081218797617 + "value": "1.4775081218797617 t CO2/MWh" }, { "year": 2047, - "value": 1.4448803582847825 + "value": "1.4448803582847825 t CO2/MWh" }, { "year": 2048, - "value": 1.4131913169725197 + "value": "1.4131913169725197 t CO2/MWh" }, { "year": 2049, - "value": 1.3824101257921226 + "value": "1.3824101257921226 t CO2/MWh" }, { "year": 2050, - "value": 1.3525034681569517 + "value": "1.3525034681569517 t CO2/MWh" } ] }, @@ -6098,8 +6098,8 @@ "S1S2S3": null }, "country": "Japan", - "ghg_s1s2": 27880000.2335485, - "ghg_s3": 27880000.2335485, + "ghg_s1s2": "27880000.2335485 MWh", + "ghg_s3": "27880000.2335485 MWh", "industry_level_1": null, "industry_level_2": null, "industry_level_3": null, @@ -6116,272 +6116,272 @@ "region": "Asia", "sector": "Steel", "target_probability": 0.4285714285714285, - "projected_targets": { + "projected_ei_targets": { "S1S2": { "projections": [ { "year": 2019, - "value": 3.630111503845141 + "value": "3.630111503845141 t CO2/MWh" }, { "year": 2020, - "value": 3.2084092426770465 + "value": "3.2084092426770465 t CO2/MWh" }, { "year": 2021, - "value": 3.1797007574907754 + "value": "3.1797007574907754 t CO2/MWh" }, { "year": 2022, - "value": 3.1537780303458103 + "value": "3.1537780303458103 t CO2/MWh" }, { "year": 2023, - "value": 3.128275296291899 + "value": "3.128275296291899 t CO2/MWh" }, { "year": 2024, - "value": 3.103169274537815 + "value": "3.103169274537815 t CO2/MWh" }, { "year": 2025, - "value": 3.0784157969608446 + "value": "3.0784157969608446 t CO2/MWh" }, { "year": 2026, - "value": 3.053946522109776 + "value": "3.053946522109776 t CO2/MWh" }, { "year": 2027, - "value": 3.0296740030374125 + "value": "3.0296740030374125 t CO2/MWh" }, { "year": 2028, - "value": 3.0054966115150594 + "value": "3.0054966115150594 t CO2/MWh" }, { "year": 2029, - "value": 2.981285231148825 + "value": "2.981285231148825 t CO2/MWh" }, { "year": 2030, - "value": 2.956846183659979 + "value": "2.956846183659979 t CO2/MWh" }, { "year": 2031, - "value": 2.9318657063413673 + "value": "2.9318657063413673 t CO2/MWh" }, { "year": 2032, - "value": 2.9058411081553905 + "value": "2.9058411081553905 t CO2/MWh" }, { "year": 2033, - "value": 2.8780224302434974 + "value": "2.8780224302434974 t CO2/MWh" }, { "year": 2034, - "value": 2.8474408247832557 + "value": "2.8474408247832557 t CO2/MWh" }, { "year": 2035, - "value": 2.8131374763554997 + "value": "2.8131374763554997 t CO2/MWh" }, { "year": 2036, - "value": 2.774589629905306 + "value": "2.774589629905306 t CO2/MWh" }, { "year": 2037, - "value": 2.732040379080609 + "value": "2.732040379080609 t CO2/MWh" }, { "year": 2038, - "value": 2.6863990545032768 + "value": "2.6863990545032768 t CO2/MWh" }, { "year": 2039, - "value": 2.638814551059191 + "value": "2.638814551059191 t CO2/MWh" }, { "year": 2040, - "value": 2.5903022536726255 + "value": "2.5903022536726255 t CO2/MWh" }, { "year": 2041, - "value": 2.541600104039621 + "value": "2.541600104039621 t CO2/MWh" }, { "year": 2042, - "value": 2.4931857193239786 + "value": "2.4931857193239786 t CO2/MWh" }, { "year": 2043, - "value": 2.4453465388873754 + "value": "2.4453465388873754 t CO2/MWh" }, { "year": 2044, - "value": 2.398246379616986 + "value": "2.398246379616986 t CO2/MWh" }, { "year": 2045, - "value": 2.351973250264482 + "value": "2.351973250264482 t CO2/MWh" }, { "year": 2046, - "value": 2.3065699961585597 + "value": "2.3065699961585597 t CO2/MWh" }, { "year": 2047, - "value": 2.2620529338308883 + "value": "2.2620529338308883 t CO2/MWh" }, { "year": 2048, - "value": 2.2184229217959324 + "value": "2.2184229217959324 t CO2/MWh" }, { "year": 2049, - "value": 2.1756718847945424 + "value": "2.1756718847945424 t CO2/MWh" }, { "year": 2050, - "value": 2.13378665842693 + "value": "2.13378665842693 t CO2/MWh" } ] }, "S3": null, "S1S2S3": null }, - "projected_intensities": { + "projected_ei_trajectories": { "S1S2": { "projections": [ { "year": 2019, - "value": 3.630111503845141 + "value": "3.630111503845141 t CO2/MWh" }, { "year": 2020, - "value": 3.2084092426770465 + "value": "3.2084092426770465 t CO2/MWh" }, { "year": 2021, - "value": 3.1797007574907754 + "value": "3.1797007574907754 t CO2/MWh" }, { "year": 2022, - "value": 3.1537780303458103 + "value": "3.1537780303458103 t CO2/MWh" }, { "year": 2023, - "value": 3.128275296291899 + "value": "3.128275296291899 t CO2/MWh" }, { "year": 2024, - "value": 3.103169274537815 + "value": "3.103169274537815 t CO2/MWh" }, { "year": 2025, - "value": 3.0784157969608446 + "value": "3.0784157969608446 t CO2/MWh" }, { "year": 2026, - "value": 3.053946522109776 + "value": "3.053946522109776 t CO2/MWh" }, { "year": 2027, - "value": 3.0296740030374125 + "value": "3.0296740030374125 t CO2/MWh" }, { "year": 2028, - "value": 3.0054966115150594 + "value": "3.0054966115150594 t CO2/MWh" }, { "year": 2029, - "value": 2.981285231148825 + "value": "2.981285231148825 t CO2/MWh" }, { "year": 2030, - "value": 2.956846183659979 + "value": "2.956846183659979 t CO2/MWh" }, { "year": 2031, - "value": 2.9318657063413673 + "value": "2.9318657063413673 t CO2/MWh" }, { "year": 2032, - "value": 2.9058411081553905 + "value": "2.9058411081553905 t CO2/MWh" }, { "year": 2033, - "value": 2.8780224302434974 + "value": "2.8780224302434974 t CO2/MWh" }, { "year": 2034, - "value": 2.8474408247832557 + "value": "2.8474408247832557 t CO2/MWh" }, { "year": 2035, - "value": 2.8131374763554997 + "value": "2.8131374763554997 t CO2/MWh" }, { "year": 2036, - "value": 2.774589629905306 + "value": "2.774589629905306 t CO2/MWh" }, { "year": 2037, - "value": 2.732040379080609 + "value": "2.732040379080609 t CO2/MWh" }, { "year": 2038, - "value": 2.6863990545032768 + "value": "2.6863990545032768 t CO2/MWh" }, { "year": 2039, - "value": 2.638814551059191 + "value": "2.638814551059191 t CO2/MWh" }, { "year": 2040, - "value": 2.5903022536726255 + "value": "2.5903022536726255 t CO2/MWh" }, { "year": 2041, - "value": 2.541600104039621 + "value": "2.541600104039621 t CO2/MWh" }, { "year": 2042, - "value": 2.4931857193239786 + "value": "2.4931857193239786 t CO2/MWh" }, { "year": 2043, - "value": 2.4453465388873754 + "value": "2.4453465388873754 t CO2/MWh" }, { "year": 2044, - "value": 2.398246379616986 + "value": "2.398246379616986 t CO2/MWh" }, { "year": 2045, - "value": 2.351973250264482 + "value": "2.351973250264482 t CO2/MWh" }, { "year": 2046, - "value": 2.3065699961585597 + "value": "2.3065699961585597 t CO2/MWh" }, { "year": 2047, - "value": 2.2620529338308883 + "value": "2.2620529338308883 t CO2/MWh" }, { "year": 2048, - "value": 2.2184229217959324 + "value": "2.2184229217959324 t CO2/MWh" }, { "year": 2049, - "value": 2.1756718847945424 + "value": "2.1756718847945424 t CO2/MWh" }, { "year": 2050, - "value": 2.13378665842693 + "value": "2.13378665842693 t CO2/MWh" } ] }, @@ -6389,8 +6389,8 @@ "S1S2S3": null }, "country": "India", - "ghg_s1s2": 12630001.0468216, - "ghg_s3": 12630001.0468216, + "ghg_s1s2": "12630001.0468216 MWh", + "ghg_s3": "12630001.0468216 MWh", "industry_level_1": null, "industry_level_2": null, "industry_level_3": null, @@ -6407,7 +6407,7 @@ "region": "Asia", "sector": "Steel", "target_probability": 0.4285714285714285, - "projected_targets": { + "projected_ei_targets": { "S1S2": { "projections": [ { @@ -6543,7 +6543,7 @@ "S3": null, "S1S2S3": null }, - "projected_intensities": { + "projected_ei_trajectories": { "S1S2": { "projections": [ { @@ -6680,8 +6680,8 @@ "S1S2S3": null }, "country": "Russia", - "ghg_s1s2": 23779000.8292913, - "ghg_s3": 23779000.8292913, + "ghg_s1s2": "23779000.8292913 MWh", + "ghg_s3": "23779000.8292913 MWh", "industry_level_1": null, "industry_level_2": null, "industry_level_3": null, @@ -6698,272 +6698,272 @@ "region": "Asia", "sector": "Steel", "target_probability": 0.4285714285714285, - "projected_targets": { + "projected_ei_targets": { "S1S2": { "projections": [ { "year": 2019, - "value": 2.027591972455373 + "value": "2.027591972455373 t CO2/MWh" }, { "year": 2020, - "value": 1.976620617045139 + "value": "1.976620617045139 t CO2/MWh" }, { "year": 2021, - "value": 1.948321405929883 + "value": "1.948321405929883 t CO2/MWh" }, { "year": 2022, - "value": 1.903826426375229 + "value": "1.903826426375229 t CO2/MWh" }, { "year": 2023, - "value": 1.862438512611207 + "value": "1.862438512611207 t CO2/MWh" }, { "year": 2024, - "value": 1.8244439841029152 + "value": "1.8244439841029152 t CO2/MWh" }, { "year": 2025, - "value": 1.7902131798499714 + "value": "1.7902131798499714 t CO2/MWh" }, { "year": 2026, - "value": 1.7599918438367868 + "value": "1.7599918438367868 t CO2/MWh" }, { "year": 2027, - "value": 1.7336203510235477 + "value": "1.7336203510235477 t CO2/MWh" }, { "year": 2028, - "value": 1.7104459987047824 + "value": "1.7104459987047824 t CO2/MWh" }, { "year": 2029, - "value": 1.6895421116638003 + "value": "1.6895421116638003 t CO2/MWh" }, { "year": 2030, - "value": 1.6699903140176984 + "value": "1.6699903140176984 t CO2/MWh" }, { "year": 2031, - "value": 1.650997709678666 + "value": "1.650997709678666 t CO2/MWh" }, { "year": 2032, - "value": 1.631863992673249 + "value": "1.631863992673249 t CO2/MWh" }, { "year": 2033, - "value": 1.6119111616280717 + "value": "1.6119111616280717 t CO2/MWh" }, { "year": 2034, - "value": 1.5904745104367044 + "value": "1.5904745104367044 t CO2/MWh" }, { "year": 2035, - "value": 1.5670204721219367 + "value": "1.5670204721219367 t CO2/MWh" }, { "year": 2036, - "value": 1.5413586771198822 + "value": "1.5413586771198822 t CO2/MWh" }, { "year": 2037, - "value": 1.5137622140741056 + "value": "1.5137622140741056 t CO2/MWh" }, { "year": 2038, - "value": 1.4848394633731865 + "value": "1.4848394633731865 t CO2/MWh" }, { "year": 2039, - "value": 1.4552644841971172 + "value": "1.4552644841971172 t CO2/MWh" }, { "year": 2040, - "value": 1.425582842432673 + "value": "1.425582842432673 t CO2/MWh" }, { "year": 2041, - "value": 1.3961597031365163 + "value": "1.3961597031365163 t CO2/MWh" }, { "year": 2042, - "value": 1.3672101712138889 + "value": "1.3672101712138889 t CO2/MWh" }, { "year": 2043, - "value": 1.338848217369191 + "value": "1.338848217369191 t CO2/MWh" }, { "year": 2044, - "value": 1.3111266047580625 + "value": "1.3111266047580625 t CO2/MWh" }, { "year": 2045, - "value": 1.2840632318532665 + "value": "1.2840632318532665 t CO2/MWh" }, { "year": 2046, - "value": 1.2576569144325096 + "value": "1.2576569144325096 t CO2/MWh" }, { "year": 2047, - "value": 1.2318963980591733 + "value": "1.2318963980591733 t CO2/MWh" }, { "year": 2048, - "value": 1.2067653793105761 + "value": "1.2067653793105761 t CO2/MWh" }, { "year": 2049, - "value": 1.1822452648395976 + "value": "1.1822452648395976 t CO2/MWh" }, { "year": 2050, - "value": 1.158316671492553 + "value": "1.158316671492553 t CO2/MWh" } ] }, "S3": null, "S1S2S3": null }, - "projected_intensities": { + "projected_ei_trajectories": { "S1S2": { "projections": [ { "year": 2019, - "value": 2.027591972455373 + "value": "2.027591972455373 t CO2/MWh" }, { "year": 2020, - "value": 1.976620617045139 + "value": "1.976620617045139 t CO2/MWh" }, { "year": 2021, - "value": 1.948321405929883 + "value": "1.948321405929883 t CO2/MWh" }, { "year": 2022, - "value": 1.903826426375229 + "value": "1.903826426375229 t CO2/MWh" }, { "year": 2023, - "value": 1.862438512611207 + "value": "1.862438512611207 t CO2/MWh" }, { "year": 2024, - "value": 1.8244439841029152 + "value": "1.8244439841029152 t CO2/MWh" }, { "year": 2025, - "value": 1.7902131798499714 + "value": "1.7902131798499714 t CO2/MWh" }, { "year": 2026, - "value": 1.7599918438367868 + "value": "1.7599918438367868 t CO2/MWh" }, { "year": 2027, - "value": 1.7336203510235477 + "value": "1.7336203510235477 t CO2/MWh" }, { "year": 2028, - "value": 1.7104459987047824 + "value": "1.7104459987047824 t CO2/MWh" }, { "year": 2029, - "value": 1.6895421116638003 + "value": "1.6895421116638003 t CO2/MWh" }, { "year": 2030, - "value": 1.6699903140176984 + "value": "1.6699903140176984 t CO2/MWh" }, { "year": 2031, - "value": 1.650997709678666 + "value": "1.650997709678666 t CO2/MWh" }, { "year": 2032, - "value": 1.631863992673249 + "value": "1.631863992673249 t CO2/MWh" }, { "year": 2033, - "value": 1.6119111616280717 + "value": "1.6119111616280717 t CO2/MWh" }, { "year": 2034, - "value": 1.5904745104367044 + "value": "1.5904745104367044 t CO2/MWh" }, { "year": 2035, - "value": 1.5670204721219367 + "value": "1.5670204721219367 t CO2/MWh" }, { "year": 2036, - "value": 1.5413586771198822 + "value": "1.5413586771198822 t CO2/MWh" }, { "year": 2037, - "value": 1.5137622140741056 + "value": "1.5137622140741056 t CO2/MWh" }, { "year": 2038, - "value": 1.4848394633731865 + "value": "1.4848394633731865 t CO2/MWh" }, { "year": 2039, - "value": 1.4552644841971172 + "value": "1.4552644841971172 t CO2/MWh" }, { "year": 2040, - "value": 1.425582842432673 + "value": "1.425582842432673 t CO2/MWh" }, { "year": 2041, - "value": 1.3961597031365163 + "value": "1.3961597031365163 t CO2/MWh" }, { "year": 2042, - "value": 1.3672101712138889 + "value": "1.3672101712138889 t CO2/MWh" }, { "year": 2043, - "value": 1.338848217369191 + "value": "1.338848217369191 t CO2/MWh" }, { "year": 2044, - "value": 1.3111266047580625 + "value": "1.3111266047580625 t CO2/MWh" }, { "year": 2045, - "value": 1.2840632318532665 + "value": "1.2840632318532665 t CO2/MWh" }, { "year": 2046, - "value": 1.2576569144325096 + "value": "1.2576569144325096 t CO2/MWh" }, { "year": 2047, - "value": 1.2318963980591733 + "value": "1.2318963980591733 t CO2/MWh" }, { "year": 2048, - "value": 1.2067653793105761 + "value": "1.2067653793105761 t CO2/MWh" }, { "year": 2049, - "value": 1.1822452648395976 + "value": "1.1822452648395976 t CO2/MWh" }, { "year": 2050, - "value": 1.158316671492553 + "value": "1.158316671492553 t CO2/MWh" } ] }, @@ -6971,8 +6971,8 @@ "S1S2S3": null }, "country": "Japan", - "ghg_s1s2": 47840001.3676141, - "ghg_s3": 47840001.3676141, + "ghg_s1s2": "47840001.3676141 MWh", + "ghg_s3": "47840001.3676141 MWh", "industry_level_1": null, "industry_level_2": null, "industry_level_3": null, @@ -6989,272 +6989,272 @@ "region": "Asia", "sector": "Steel", "target_probability": 0.4285714285714285, - "projected_targets": { + "projected_ei_targets": { "S1S2": { "projections": [ { "year": 2019, - "value": 2.061855651645914 + "value": "2.061855651645914 t CO2/MWh" }, { "year": 2020, - "value": 2.061855651645914 + "value": "2.061855651645914 t CO2/MWh" }, { "year": 2021, - "value": 2.0435566850500866 + "value": "2.0435566850500866 t CO2/MWh" }, { "year": 2022, - "value": 2.027287100012685 + "value": "2.027287100012685 t CO2/MWh" }, { "year": 2023, - "value": 2.0107342361237563 + "value": "2.0107342361237563 t CO2/MWh" }, { "year": 2024, - "value": 2.012026764785486 + "value": "2.012026764785486 t CO2/MWh" }, { "year": 2025, - "value": 2.0030980948826973 + "value": "2.0030980948826973 t CO2/MWh" }, { "year": 2026, - "value": 1.9895087890921241 + "value": "1.9895087890921241 t CO2/MWh" }, { "year": 2027, - "value": 1.974455843324461 + "value": "1.974455843324461 t CO2/MWh" }, { "year": 2028, - "value": 1.9580501600215243 + "value": "1.9580501600215243 t CO2/MWh" }, { "year": 2029, - "value": 1.9405260657558827 + "value": "1.9405260657558827 t CO2/MWh" }, { "year": 2030, - "value": 1.9220392967604456 + "value": "1.9220392967604456 t CO2/MWh" }, { "year": 2031, - "value": 1.9025215704757057 + "value": "1.9025215704757057 t CO2/MWh" }, { "year": 2032, - "value": 1.8815968571399804 + "value": "1.8815968571399804 t CO2/MWh" }, { "year": 2033, - "value": 1.8585396742902418 + "value": "1.8585396742902418 t CO2/MWh" }, { "year": 2034, - "value": 1.832337927723912 + "value": "1.832337927723912 t CO2/MWh" }, { "year": 2035, - "value": 1.8019881107011875 + "value": "1.8019881107011875 t CO2/MWh" }, { "year": 2036, - "value": 1.7670148530936824 + "value": "1.7670148530936824 t CO2/MWh" }, { "year": 2037, - "value": 1.7278567894639287 + "value": "1.7278567894639287 t CO2/MWh" }, { "year": 2038, - "value": 1.6857203797006854 + "value": "1.6857203797006854 t CO2/MWh" }, { "year": 2039, - "value": 1.6420440115023238 + "value": "1.6420440115023238 t CO2/MWh" }, { "year": 2040, - "value": 1.5980478305727301 + "value": "1.5980478305727301 t CO2/MWh" }, { "year": 2041, - "value": 1.5545765314454727 + "value": "1.5545765314454727 t CO2/MWh" }, { "year": 2042, - "value": 1.5121390533112595 + "value": "1.5121390533112595 t CO2/MWh" }, { "year": 2043, - "value": 1.4710069881680552 + "value": "1.4710069881680552 t CO2/MWh" }, { "year": 2044, - "value": 1.4313026542006284 + "value": "1.4313026542006284 t CO2/MWh" }, { "year": 2045, - "value": 1.3930604562851605 + "value": "1.3930604562851605 t CO2/MWh" }, { "year": 2046, - "value": 1.3562652786406195 + "value": "1.3562652786406195 t CO2/MWh" }, { "year": 2047, - "value": 1.3208753009393037 + "value": "1.3208753009393037 t CO2/MWh" }, { "year": 2048, - "value": 1.286835217194566 + "value": "1.286835217194566 t CO2/MWh" }, { "year": 2049, - "value": 1.254083790803529 + "value": "1.254083790803529 t CO2/MWh" }, { "year": 2050, - "value": 1.2225581277619404 + "value": "1.2225581277619404 t CO2/MWh" } ] }, "S3": null, "S1S2S3": null }, - "projected_intensities": { + "projected_ei_trajectories": { "S1S2": { "projections": [ { "year": 2019, - "value": 2.061855651645914 + "value": "2.061855651645914 t CO2/MWh" }, { "year": 2020, - "value": 2.061855651645914 + "value": "2.061855651645914 t CO2/MWh" }, { "year": 2021, - "value": 2.045754544770144 + "value": "2.045754544770144 t CO2/MWh" }, { "year": 2022, - "value": 2.031871238340029 + "value": "2.031871238340029 t CO2/MWh" }, { "year": 2023, - "value": 2.0179173897341585 + "value": "2.0179173897341585 t CO2/MWh" }, { "year": 2024, - "value": 2.0037602736389872 + "value": "2.0037602736389872 t CO2/MWh" }, { "year": 2025, - "value": 1.9892346465281572 + "value": "1.9892346465281572 t CO2/MWh" }, { "year": 2026, - "value": 1.974187924297524 + "value": "1.974187924297524 t CO2/MWh" }, { "year": 2027, - "value": 1.9585476910028747 + "value": "1.9585476910028747 t CO2/MWh" }, { "year": 2028, - "value": 1.9423425952973061 + "value": "1.9423425952973061 t CO2/MWh" }, { "year": 2029, - "value": 1.925636133185111 + "value": "1.925636133185111 t CO2/MWh" }, { "year": 2030, - "value": 1.9084251897263624 + "value": "1.9084251897263624 t CO2/MWh" }, { "year": 2031, - "value": 1.8905587797565466 + "value": "1.8905587797565466 t CO2/MWh" }, { "year": 2032, - "value": 1.8716777675180514 + "value": "1.8716777675180514 t CO2/MWh" }, { "year": 2033, - "value": 1.8511759539710897 + "value": "1.8511759539710897 t CO2/MWh" }, { "year": 2034, - "value": 1.8282400883048167 + "value": "1.8282400883048167 t CO2/MWh" }, { "year": 2035, - "value": 1.8020686636628185 + "value": "1.8020686636628185 t CO2/MWh" }, { "year": 2036, - "value": 1.7722634208858175 + "value": "1.7722634208858175 t CO2/MWh" }, { "year": 2037, - "value": 1.739122527006039 + "value": "1.739122527006039 t CO2/MWh" }, { "year": 2038, - "value": 1.7035339693865368 + "value": "1.7035339693865368 t CO2/MWh" }, { "year": 2039, - "value": 1.6665741359741721 + "value": "1.6665741359741721 t CO2/MWh" }, { "year": 2040, - "value": 1.6291675495460778 + "value": "1.6291675495460778 t CO2/MWh" }, { "year": 2041, - "value": 1.5919645590027791 + "value": "1.5919645590027791 t CO2/MWh" }, { "year": 2042, - "value": 1.5553670624603537 + "value": "1.5553670624603537 t CO2/MWh" }, { "year": 2043, - "value": 1.5195996371089702 + "value": "1.5195996371089702 t CO2/MWh" }, { "year": 2044, - "value": 1.4847741892317674 + "value": "1.4847741892317674 t CO2/MWh" }, { "year": 2045, - "value": 1.4509353780179215 + "value": "1.4509353780179215 t CO2/MWh" }, { "year": 2046, - "value": 1.418089233688979 + "value": "1.418089233688979 t CO2/MWh" }, { "year": 2047, - "value": 1.3862202824921672 + "value": "1.3862202824921672 t CO2/MWh" }, { "year": 2048, - "value": 1.3553015470583867 + "value": "1.3553015470583867 t CO2/MWh" }, { "year": 2049, - "value": 1.3253003200331763 + "value": "1.3253003200331763 t CO2/MWh" }, { "year": 2050, - "value": 1.2961814763575168 + "value": "1.2961814763575168 t CO2/MWh" } ] }, @@ -7262,8 +7262,8 @@ "S1S2S3": null }, "country": "Russia", - "ghg_s1s2": 15520004.6310296, - "ghg_s3": 15520004.6310296, + "ghg_s1s2": "15520004.6310296 MWh", + "ghg_s3": "15520004.6310296 MWh", "industry_level_1": null, "industry_level_2": null, "industry_level_3": null, @@ -7280,7 +7280,7 @@ "region": "Asia", "sector": "Steel", "target_probability": 0.4285714285714285, - "projected_targets": { + "projected_ei_targets": { "S1S2": { "projections": [ { @@ -7416,7 +7416,7 @@ "S3": null, "S1S2S3": null }, - "projected_intensities": { + "projected_ei_trajectories": { "S1S2": { "projections": [ { @@ -7571,7 +7571,7 @@ "region": "Asia", "sector": "Steel", "target_probability": 0.4285714285714285, - "projected_targets": { + "projected_ei_targets": { "S1S2": { "projections": [ { @@ -7707,7 +7707,7 @@ "S3": null, "S1S2S3": null }, - "projected_intensities": { + "projected_ei_trajectories": { "S1S2": { "projections": [ { @@ -7844,8 +7844,8 @@ "S1S2S3": null }, "country": "Russia", - "ghg_s1s2": 11847001.9224849, - "ghg_s3": 11847001.9224849, + "ghg_s1s2": "11847001.9224849 MWh", + "ghg_s3": "11847001.9224849 MWh", "industry_level_1": null, "industry_level_2": null, "industry_level_3": null, @@ -7862,272 +7862,272 @@ "region": "Europe", "sector": "Steel", "target_probability": 0.4285714285714285, - "projected_targets": { + "projected_ei_targets": { "S1S2": { "projections": [ { "year": 2019, - "value": 0.7357367696279299 + "value": "0.7357367696279299 t CO2/MWh" }, { "year": 2020, - "value": 0.7431078627684136 + "value": "0.7431078627684136 t CO2/MWh" }, { "year": 2021, - "value": 0.7245301661992033 + "value": "0.7245301661992033 t CO2/MWh" }, { "year": 2022, - "value": 0.7059524696299929 + "value": "0.7059524696299929 t CO2/MWh" }, { "year": 2023, - "value": 0.6873747730607825 + "value": "0.6873747730607825 t CO2/MWh" }, { "year": 2024, - "value": 0.6687970764915722 + "value": "0.6687970764915722 t CO2/MWh" }, { "year": 2025, - "value": 0.6502193799223618 + "value": "0.6502193799223618 t CO2/MWh" }, { "year": 2026, - "value": 0.6316416833531514 + "value": "0.6316416833531514 t CO2/MWh" }, { "year": 2027, - "value": 0.613063986783941 + "value": "0.613063986783941 t CO2/MWh" }, { "year": 2028, - "value": 0.5944862902147308 + "value": "0.5944862902147308 t CO2/MWh" }, { "year": 2029, - "value": 0.5759085936455205 + "value": "0.5759085936455205 t CO2/MWh" }, { "year": 2030, - "value": 0.55733089707631 + "value": "0.55733089707631 t CO2/MWh" }, { "year": 2031, - "value": 0.5387532005070996 + "value": "0.5387532005070996 t CO2/MWh" }, { "year": 2032, - "value": 0.5201755039378894 + "value": "0.5201755039378894 t CO2/MWh" }, { "year": 2033, - "value": 0.5201755039378894 + "value": "0.5201755039378894 t CO2/MWh" }, { "year": 2034, - "value": 0.5201755039378894 + "value": "0.5201755039378894 t CO2/MWh" }, { "year": 2035, - "value": 0.5201755039378894 + "value": "0.5201755039378894 t CO2/MWh" }, { "year": 2036, - "value": 0.5201755039378894 + "value": "0.5201755039378894 t CO2/MWh" }, { "year": 2037, - "value": 0.5201755039378894 + "value": "0.5201755039378894 t CO2/MWh" }, { "year": 2038, - "value": 0.5201755039378894 + "value": "0.5201755039378894 t CO2/MWh" }, { "year": 2039, - "value": 0.5201755039378894 + "value": "0.5201755039378894 t CO2/MWh" }, { "year": 2040, - "value": 0.5201755039378894 + "value": "0.5201755039378894 t CO2/MWh" }, { "year": 2041, - "value": 0.5201755039378894 + "value": "0.5201755039378894 t CO2/MWh" }, { "year": 2042, - "value": 0.5201755039378894 + "value": "0.5201755039378894 t CO2/MWh" }, { "year": 2043, - "value": 0.5201755039378894 + "value": "0.5201755039378894 t CO2/MWh" }, { "year": 2044, - "value": 0.5201755039378894 + "value": "0.5201755039378894 t CO2/MWh" }, { "year": 2045, - "value": 0.5201755039378894 + "value": "0.5201755039378894 t CO2/MWh" }, { "year": 2046, - "value": 0.5201755039378894 + "value": "0.5201755039378894 t CO2/MWh" }, { "year": 2047, - "value": 0.5201755039378894 + "value": "0.5201755039378894 t CO2/MWh" }, { "year": 2048, - "value": 0.5201755039378894 + "value": "0.5201755039378894 t CO2/MWh" }, { "year": 2049, - "value": 0.5201755039378894 + "value": "0.5201755039378894 t CO2/MWh" }, { "year": 2050, - "value": 0.5201755039378894 + "value": "0.5201755039378894 t CO2/MWh" } ] }, "S3": null, "S1S2S3": null }, - "projected_intensities": { + "projected_ei_trajectories": { "S1S2": { "projections": [ { "year": 2019, - "value": 0.7357367696279299 + "value": "0.7357367696279299 t CO2/MWh" }, { "year": 2020, - "value": 0.7431078627684136 + "value": "0.7431078627684136 t CO2/MWh" }, { "year": 2021, - "value": 0.7501897627904324 + "value": "0.7501897627904324 t CO2/MWh" }, { "year": 2022, - "value": 0.7575228048533635 + "value": "0.7575228048533635 t CO2/MWh" }, { "year": 2023, - "value": 0.7642769108038575 + "value": "0.7642769108038575 t CO2/MWh" }, { "year": 2024, - "value": 0.770079988325912 + "value": "0.770079988325912 t CO2/MWh" }, { "year": 2025, - "value": 0.7744610023258718 + "value": "0.7744610023258718 t CO2/MWh" }, { "year": 2026, - "value": 0.7769844247438745 + "value": "0.7769844247438745 t CO2/MWh" }, { "year": 2027, - "value": 0.7774691964796803 + "value": "0.7774691964796803 t CO2/MWh" }, { "year": 2028, - "value": 0.7760973492675399 + "value": "0.7760973492675399 t CO2/MWh" }, { "year": 2029, - "value": 0.7732814664561758 + "value": "0.7732814664561758 t CO2/MWh" }, { "year": 2030, - "value": 0.7694357369527733 + "value": "0.7694357369527733 t CO2/MWh" }, { "year": 2031, - "value": 0.7648309413072225 + "value": "0.7648309413072225 t CO2/MWh" }, { "year": 2032, - "value": 0.7595467522491223 + "value": "0.7595467522491223 t CO2/MWh" }, { "year": 2033, - "value": 0.7534670767018642 + "value": "0.7534670767018642 t CO2/MWh" }, { "year": 2034, - "value": 0.7463079172067101 + "value": "0.7463079172067101 t CO2/MWh" }, { "year": 2035, - "value": 0.7377176945962935 + "value": "0.7377176945962935 t CO2/MWh" }, { "year": 2036, - "value": 0.7274635720901763 + "value": "0.7274635720901763 t CO2/MWh" }, { "year": 2037, - "value": 0.715596692156447 + "value": "0.715596692156447 t CO2/MWh" }, { "year": 2038, - "value": 0.7024470715735162 + "value": "0.7024470715735162 t CO2/MWh" }, { "year": 2039, - "value": 0.6884660207225256 + "value": "0.6884660207225256 t CO2/MWh" }, { "year": 2040, - "value": 0.6740694806292995 + "value": "0.6740694806292995 t CO2/MWh" }, { "year": 2041, - "value": 0.6595683491608161 + "value": "0.6595683491608161 t CO2/MWh" }, { "year": 2042, - "value": 0.6451677015578025 + "value": "0.6451677015578025 t CO2/MWh" }, { "year": 2043, - "value": 0.6309921128941456 + "value": "0.6309921128941456 t CO2/MWh" }, { "year": 2044, - "value": 0.6171122176111137 + "value": "0.6171122176111137 t CO2/MWh" }, { "year": 2045, - "value": 0.6035647360408168 + "value": "0.6035647360408168 t CO2/MWh" }, { "year": 2046, - "value": 0.5903657697796953 + "value": "0.5903657697796953 t CO2/MWh" }, { "year": 2047, - "value": 0.5775191356372302 + "value": "0.5775191356372302 t CO2/MWh" }, { "year": 2048, - "value": 0.5650214577321281 + "value": "0.5650214577321281 t CO2/MWh" }, { "year": 2049, - "value": 0.5528652485062721 + "value": "0.5528652485062721 t CO2/MWh" }, { "year": 2050, - "value": 0.5410407687401423 + "value": "0.5410407687401423 t CO2/MWh" } ] }, @@ -8135,8 +8135,8 @@ "S1S2S3": null }, "country": "Sweden", - "ghg_s1s2": 14618000.0778486, - "ghg_s3": 14618000.0778486, + "ghg_s1s2": "14618000.0778486 MWh", + "ghg_s3": "14618000.0778486 MWh", "industry_level_1": null, "industry_level_2": null, "industry_level_3": null, @@ -8153,272 +8153,272 @@ "region": "Asia", "sector": "Steel", "target_probability": 0.4285714285714285, - "projected_targets": { + "projected_ei_targets": { "S1S2": { "projections": [ { "year": 2019, - "value": 2.221710525394781 + "value": "2.221710525394781 t CO2/MWh" }, { "year": 2020, - "value": 2.053406336107665 + "value": "2.053406336107665 t CO2/MWh" }, { "year": 2021, - "value": 2.203778395984357 + "value": "2.203778395984357 t CO2/MWh" }, { "year": 2022, - "value": 2.2024949174905872 + "value": "2.2024949174905872 t CO2/MWh" }, { "year": 2023, - "value": 2.200429645011074 + "value": "2.200429645011074 t CO2/MWh" }, { "year": 2024, - "value": 2.1971633082109605 + "value": "2.1971633082109605 t CO2/MWh" }, { "year": 2025, - "value": 2.192175750447834 + "value": "2.192175750447834 t CO2/MWh" }, { "year": 2026, - "value": 2.1850020256567952 + "value": "2.1850020256567952 t CO2/MWh" }, { "year": 2027, - "value": 2.1754728952891043 + "value": "2.1754728952891043 t CO2/MWh" }, { "year": 2028, - "value": 2.163817002526768 + "value": "2.163817002526768 t CO2/MWh" }, { "year": 2029, - "value": 2.150489509542201 + "value": "2.150489509542201 t CO2/MWh" }, { "year": 2030, - "value": 2.1358996422225753 + "value": "2.1358996422225753 t CO2/MWh" }, { "year": 2031, - "value": 2.1202336706821407 + "value": "2.1202336706821407 t CO2/MWh" }, { "year": 2032, - "value": 2.103380601639589 + "value": "2.103380601639589 t CO2/MWh" }, { "year": 2033, - "value": 2.0849070654192112 + "value": "2.0849070654192112 t CO2/MWh" }, { "year": 2034, - "value": 2.064101482026832 + "value": "2.064101482026832 t CO2/MWh" }, { "year": 2035, - "value": 2.040179208416509 + "value": "2.040179208416509 t CO2/MWh" }, { "year": 2036, - "value": 2.0126628784932996 + "value": "2.0126628784932996 t CO2/MWh" }, { "year": 2037, - "value": 1.9817003593041698 + "value": "1.9817003593041698 t CO2/MWh" }, { "year": 2038, - "value": 1.9480199529935047 + "value": "1.9480199529935047 t CO2/MWh" }, { "year": 2039, - "value": 1.9125840124454299 + "value": "1.9125840124454299 t CO2/MWh" }, { "year": 2040, - "value": 1.8762645826219602 + "value": "1.8762645826219602 t CO2/MWh" }, { "year": 2041, - "value": 1.8397073526053476 + "value": "1.8397073526053476 t CO2/MWh" }, { "year": 2042, - "value": 1.8033367816493635 + "value": "1.8033367816493635 t CO2/MWh" }, { "year": 2043, - "value": 1.7674117401514629 + "value": "1.7674117401514629 t CO2/MWh" }, { "year": 2044, - "value": 1.7320813586942272 + "value": "1.7320813586942272 t CO2/MWh" }, { "year": 2045, - "value": 1.6974263000853436 + "value": "1.6974263000853436 t CO2/MWh" }, { "year": 2046, - "value": 1.6634857796054385 + "value": "1.6634857796054385 t CO2/MWh" }, { "year": 2047, - "value": 1.6302743103925983 + "value": "1.6302743103925983 t CO2/MWh" }, { "year": 2048, - "value": 1.5977918349149562 + "value": "1.5977918349149562 t CO2/MWh" }, { "year": 2049, - "value": 1.566029804055538 + "value": "1.566029804055538 t CO2/MWh" }, { "year": 2050, - "value": 1.534974823445468 + "value": "1.534974823445468 t CO2/MWh" } ] }, "S3": null, "S1S2S3": null }, - "projected_intensities": { + "projected_ei_trajectories": { "S1S2": { "projections": [ { "year": 2019, - "value": 2.221710525394781 + "value": "2.221710525394781 t CO2/MWh" }, { "year": 2020, - "value": 2.053406336107665 + "value": "2.053406336107665 t CO2/MWh" }, { "year": 2021, - "value": 2.203778395984357 + "value": "2.203778395984357 t CO2/MWh" }, { "year": 2022, - "value": 2.2024949174905872 + "value": "2.2024949174905872 t CO2/MWh" }, { "year": 2023, - "value": 2.200429645011074 + "value": "2.200429645011074 t CO2/MWh" }, { "year": 2024, - "value": 2.1971633082109605 + "value": "2.1971633082109605 t CO2/MWh" }, { "year": 2025, - "value": 2.192175750447834 + "value": "2.192175750447834 t CO2/MWh" }, { "year": 2026, - "value": 2.1850020256567952 + "value": "2.1850020256567952 t CO2/MWh" }, { "year": 2027, - "value": 2.1754728952891043 + "value": "2.1754728952891043 t CO2/MWh" }, { "year": 2028, - "value": 2.163817002526768 + "value": "2.163817002526768 t CO2/MWh" }, { "year": 2029, - "value": 2.150489509542201 + "value": "2.150489509542201 t CO2/MWh" }, { "year": 2030, - "value": 2.1358996422225753 + "value": "2.1358996422225753 t CO2/MWh" }, { "year": 2031, - "value": 2.1202336706821407 + "value": "2.1202336706821407 t CO2/MWh" }, { "year": 2032, - "value": 2.103380601639589 + "value": "2.103380601639589 t CO2/MWh" }, { "year": 2033, - "value": 2.0849070654192112 + "value": "2.0849070654192112 t CO2/MWh" }, { "year": 2034, - "value": 2.064101482026832 + "value": "2.064101482026832 t CO2/MWh" }, { "year": 2035, - "value": 2.040179208416509 + "value": "2.040179208416509 t CO2/MWh" }, { "year": 2036, - "value": 2.0126628784932996 + "value": "2.0126628784932996 t CO2/MWh" }, { "year": 2037, - "value": 1.9817003593041698 + "value": "1.9817003593041698 t CO2/MWh" }, { "year": 2038, - "value": 1.9480199529935047 + "value": "1.9480199529935047 t CO2/MWh" }, { "year": 2039, - "value": 1.9125840124454299 + "value": "1.9125840124454299 t CO2/MWh" }, { "year": 2040, - "value": 1.8762645826219602 + "value": "1.8762645826219602 t CO2/MWh" }, { "year": 2041, - "value": 1.8397073526053476 + "value": "1.8397073526053476 t CO2/MWh" }, { "year": 2042, - "value": 1.8033367816493635 + "value": "1.8033367816493635 t CO2/MWh" }, { "year": 2043, - "value": 1.7674117401514629 + "value": "1.7674117401514629 t CO2/MWh" }, { "year": 2044, - "value": 1.7320813586942272 + "value": "1.7320813586942272 t CO2/MWh" }, { "year": 2045, - "value": 1.6974263000853436 + "value": "1.6974263000853436 t CO2/MWh" }, { "year": 2046, - "value": 1.6634857796054385 + "value": "1.6634857796054385 t CO2/MWh" }, { "year": 2047, - "value": 1.6302743103925983 + "value": "1.6302743103925983 t CO2/MWh" }, { "year": 2048, - "value": 1.5977918349149562 + "value": "1.5977918349149562 t CO2/MWh" }, { "year": 2049, - "value": 1.566029804055538 + "value": "1.566029804055538 t CO2/MWh" }, { "year": 2050, - "value": 1.534974823445468 + "value": "1.534974823445468 t CO2/MWh" } ] }, @@ -8426,8 +8426,8 @@ "S1S2S3": null }, "country": "India", - "ghg_s1s2": 27110004.3464472, - "ghg_s3": 27110004.3464472, + "ghg_s1s2": "27110004.3464472 MWh", + "ghg_s3": "27110004.3464472 MWh", "industry_level_1": null, "industry_level_2": null, "industry_level_3": null, @@ -8444,7 +8444,7 @@ "region": "Europe", "sector": "Steel", "target_probability": 0.4285714285714285, - "projected_targets": { + "projected_ei_targets": { "S1S2": { "projections": [ { @@ -8580,7 +8580,7 @@ "S3": null, "S1S2S3": null }, - "projected_intensities": { + "projected_ei_trajectories": { "S1S2": { "projections": [ { @@ -8729,4 +8729,4 @@ "company_total_assets": 18868083.741257884, "company_cash_equivalents": 259739897.26190066 } -] \ No newline at end of file +] diff --git a/test/test_base_providers.py b/test/test_base_providers.py index 074a2a00..fed6e8d7 100644 --- a/test/test_base_providers.py +++ b/test/test_base_providers.py @@ -12,8 +12,9 @@ from ITR.data.base_providers import BaseCompanyDataProvider, BaseProviderProductionBenchmark, \ BaseProviderIntensityBenchmark from ITR.interfaces import ICompanyData, EScope, ETimeFrames, PortfolioCompany, IEmissionIntensityBenchmarkScopes, \ - IProductionBenchmarkScopes + IProductionBenchmarkScopes, IYOYBenchmarkScopes +from ITR.data.osc_units import ureg, Q_, PA_ class TestBaseProvider(unittest.TestCase): """ @@ -36,7 +37,7 @@ def setUp(self) -> None: # load production benchmarks with open(self.benchmark_prod_json) as json_file: parsed_json = json.load(json_file) - prod_bms = IProductionBenchmarkScopes.parse_obj(parsed_json) + prod_bms = IYOYBenchmarkScopes.parse_obj(parsed_json) self.base_production_bm = BaseProviderProductionBenchmark(production_benchmarks=prod_bms) # load intensity benchmarks @@ -50,9 +51,9 @@ def setUp(self) -> None: "US00724F1012", "FR0000125338"] self.company_info_at_base_year = pd.DataFrame( - [[1.6982474347547, 1.04827859e+08, 'Electricity Utilities', 'North America'], - [0.476586931582279, 5.98937002e+08, 'Electricity Utilities', 'North America'], - [0.22457393169277, 1.22472003e+08, 'Electricity Utilities', 'Europe']], + [[Q_(1.6982474347547, 't CO2/MWh'), Q_(1.04827859e+08, 'MWh'), 'Electricity Utilities', 'North America'], + [Q_(0.476586931582279, 't CO2/MWh'), Q_(5.98937002e+08, 'MWh'), 'Electricity Utilities', 'North America'], + [Q_(0.22457393169277, 't CO2/MWh'), Q_(1.22472003e+08, 'MWh'), 'Electricity Utilities', 'Europe']], index=self.company_ids, columns=[ColumnsConfig.BASE_EI, ColumnsConfig.GHG_SCOPE12, ColumnsConfig.SECTOR, ColumnsConfig.REGION]) @@ -84,30 +85,34 @@ def test_temp_score_from_excel_data(self): # verify that results exist self.assertAlmostEqual(agg_scores.long.S1S2.all.score, 2.11, places=2) + def test_get_benchmark(self): - expected_data = pd.DataFrame([[1.698247435, 1.581691084, 1.386040647, 1.190390211, 0.994739774, 0.799089338, - 0.782935186, 0.677935928, 0.572936671, 0.467937413, 0.362938156, 0.257938898, - 0.233746281, 0.209553665, 0.185361048, 0.161168432, 0.136975815, 0.124810886, - 0.112645956, 0.100481026, 0.088316097, 0.076151167, 0.062125588, 0.048100009, - 0.034074431, 0.020048852, 0.006023273, 0.005843878, 0.005664482, 0.005485087, - 0.005305691, 0.005126296 - ], - [0.476586932, 0.444131055, 0.389650913, 0.335170772, 0.28069063, 0.226210489, - 0.22171226, 0.192474531, 0.163236802, 0.133999073, 0.104761344, 0.075523615, - 0.068787023, 0.062050431, 0.055313839, 0.048577247, 0.041840655, 0.038453251, - 0.035065847, 0.031678443, 0.028291039, 0.024903635, 0.020998121, 0.017092607, - 0.013187093, 0.009281579, 0.005376065, 0.005326111, 0.005276157, 0.005226203, - 0.005176249, 0.005126296 - ], - [0.224573932, 0.17975612, 0.163761501, 0.147766883, 0.131772265, 0.115777646, - 0.099783028, 0.090628361, 0.081473693, 0.072319026, 0.063164359, 0.054009692, - 0.050089853, 0.046170015, 0.042250176, 0.038330338, 0.034410499, 0.031104249, - 0.027797999, 0.024491748, 0.021185498, 0.017879248, 0.016155615, 0.014431983, - 0.012708351, 0.010984719, 0.009261087, 0.008488943, 0.007716798, 0.006944654, - 0.00617251, 0.005400365]], - index=self.company_ids, - columns=range(TemperatureScoreConfig.CONTROLS_CONFIG.base_year, + seq_index = pd.RangeIndex.from_range(range(TemperatureScoreConfig.CONTROLS_CONFIG.base_year, TemperatureScoreConfig.CONTROLS_CONFIG.target_end_year + 1)) + data = [pd.Series([1.698247435, 1.581691084, 1.386040647, 1.190390211, 0.994739774, 0.799089338, + 0.782935186, 0.677935928, 0.572936671, 0.467937413, 0.362938156, 0.257938898, + 0.233746281, 0.209553665, 0.185361048, 0.161168432, 0.136975815, 0.124810886, + 0.112645956, 0.100481026, 0.088316097, 0.076151167, 0.062125588, 0.048100009, + 0.034074431, 0.020048852, 0.006023273, 0.005843878, 0.005664482, 0.005485087, + 0.005305691, 0.005126296 + ], index=seq_index, dtype="pint[delta_degC]"), + pd.Series([0.476586932, 0.444131055, 0.389650913, 0.335170772, 0.28069063, 0.226210489, + 0.22171226, 0.192474531, 0.163236802, 0.133999073, 0.104761344, 0.075523615, + 0.068787023, 0.062050431, 0.055313839, 0.048577247, 0.041840655, 0.038453251, + 0.035065847, 0.031678443, 0.028291039, 0.024903635, 0.020998121, 0.017092607, + 0.013187093, 0.009281579, 0.005376065, 0.005326111, 0.005276157, 0.005226203, + 0.005176249, 0.005126296 + ], index=seq_index, dtype="pint[delta_degC]"), + pd.Series([0.224573932, 0.17975612, 0.163761501, 0.147766883, 0.131772265, 0.115777646, + 0.099783028, 0.090628361, 0.081473693, 0.072319026, 0.063164359, 0.054009692, + 0.050089853, 0.046170015, 0.042250176, 0.038330338, 0.034410499, 0.031104249, + 0.027797999, 0.024491748, 0.021185498, 0.017879248, 0.016155615, 0.014431983, + 0.012708351, 0.010984719, 0.009261087, 0.008488943, 0.007716798, 0.006944654, + 0.00617251, 0.005400365 + ], index=seq_index, dtype="pint[delta_degC]")] + expected_data = pd.concat(data, axis=1, ignore_index=True).T + expected_data.index=self.company_ids + pd.testing.assert_frame_equal( self.base_EI_bm.get_SDA_intensity_benchmarks(self.company_info_at_base_year), @@ -116,17 +121,25 @@ def test_get_benchmark(self): def test_get_projected_production(self): expected_data_2025 = pd.Series([1.06866370e+08, 6.10584093e+08, 1.28474171e+08], index=self.company_ids, - name=2025) + name=2025, + dtype='pint[MWh]') + print(self.base_production_bm.get_company_projected_production(self.company_info_at_base_year)[2025]['US0079031078']) + print(expected_data_2025['US0079031078']) pd.testing.assert_series_equal( self.base_production_bm.get_company_projected_production(self.company_info_at_base_year)[2025], - expected_data_2025) + expected_data_2025, check_dtype=False) def test_get_cumulative_value(self): - projected_emission = pd.DataFrame([[1.0, 2.0], [3.0, 4.0]]) - projected_production = pd.DataFrame([[2.0, 4.0], [6.0, 8.0]]) - expected_data = pd.Series([10.0, 50.0]) - pd.testing.assert_series_equal( - self.base_warehouse._get_cumulative_emission(projected_emission_intensity=projected_emission, + projected_ei = pd.DataFrame([[Q_(1.0, 't CO2/MWh'), Q_(2.0, 't CO2/MWh')], [Q_(3.0, 't CO2/MWh'), Q_(4.0, 't CO2/MWh')]], dtype='pint[t CO2/MWh]') + projected_production = pd.DataFrame([[Q_(2.0, 'TWh'), Q_(4.0, 'TWh')], [Q_(6.0, 'TWh'), Q_(8.0, 'TWh')]], dtype='pint[TWh]') + expected_data = pd.Series([10.0, 50.0], + index=[0, 1], + dtype='pint[Mt CO2]') + print(self.base_warehouse._get_cumulative_emission(projected_emission_intensity=projected_ei, + projected_production=projected_production)) + print(f"expected_data = {expected_data}") + pd.testing.assert_frame_equal( + self.base_warehouse._get_cumulative_emission(projected_emission_intensity=projected_ei, projected_production=projected_production), expected_data) def test_get_company_data(self): @@ -136,14 +149,14 @@ def test_get_company_data(self): self.assertEqual(company_2.company_name, "Company AH") self.assertEqual(company_1.company_id, "US0079031078") self.assertEqual(company_2.company_id, "US00724F1012") - self.assertAlmostEqual(company_1.ghg_s1s2, 104827858.636039) - self.assertAlmostEqual(company_2.ghg_s1s2, 598937001.892059) - self.assertAlmostEqual(company_1.cumulative_budget, 1362284467.0830, places=4) - self.assertAlmostEqual(company_2.cumulative_budget, 2262242040.68059, places=4) - self.assertAlmostEqual(company_1.cumulative_target, 3769096510.09909, places=4) - self.assertAlmostEqual(company_2.cumulative_target, 5912426347.23670, places=4) - self.assertAlmostEqual(company_1.cumulative_trajectory, 3745094638.52858, places=4) - self.assertAlmostEqual(company_2.cumulative_trajectory, 8631481789.38558, places=4) + self.assertAlmostEqual(company_1.ghg_s1s2, Q_(104827858.636039, 'MWh')) # These are apparently production numbers, not emissions numbers + self.assertAlmostEqual(company_2.ghg_s1s2, Q_(598937001.892059, 'MWh')) # These are apparently production numbers, not emissions numbers + self.assertAlmostEqual(company_1.cumulative_budget, Q_(1362284467.0830, 't CO2'), places=4) + self.assertAlmostEqual(company_2.cumulative_budget, Q_(2262242040.68059, 't CO2'), places=4) + self.assertAlmostEqual(company_1.cumulative_target, Q_(3769096510.09909, 't CO2'), places=4) + self.assertAlmostEqual(company_2.cumulative_target, Q_(5912426347.23670, 't CO2'), places=4) + self.assertAlmostEqual(company_1.cumulative_trajectory, Q_(3745094638.52858, 't CO2'), places=4) + self.assertAlmostEqual(company_2.cumulative_trajectory, Q_(8631481789.38558, 't CO2'), places=4) def test_get_value(self): expected_data = pd.Series([20248547997.0, From e2c2de15346b6934ddb799c83accb89c82ea87c8 Mon Sep 17 00:00:00 2001 From: MichaelTiemannOSC Date: Fri, 31 Dec 2021 11:04:13 +0000 Subject: [PATCH 047/345] Initial commit Provide interfaces necessary to initialize Pydantic pint things. Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- ITR/data/osc_units.py | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 ITR/data/osc_units.py diff --git a/ITR/data/osc_units.py b/ITR/data/osc_units.py new file mode 100644 index 00000000..078e133c --- /dev/null +++ b/ITR/data/osc_units.py @@ -0,0 +1,34 @@ +""" +This module handles initialization of pint functionality +""" + +from pint import set_application_registry +from pint_pandas import PintArray, PintType +from openscm_units import unit_registry +PintType.ureg = unit_registry +ureg = unit_registry +set_application_registry(ureg) +Q_ = ureg.Quantity +PA_ = PintArray + +ureg.define('fraction = [] = frac') +ureg.define('percent = 1e-2 frac = pct = percentage') +ureg.define('ppm = 1e-6 fraction') + +ureg.define("USD = [currency]") +ureg.define("EUR = nan USD") +ureg.define("JPY = nan USD") +ureg.define("MM_USD = 1000000 USD") +ureg.define("revenue = USD") + +ureg.define("btu = Btu") +ureg.define("boe = 5.712 GJ") + +ureg.define("CO2e = CO2 = CO2eq = CO2_eq") +# ureg.define("HFC = [ HFC_emissions ]") +# ureg.define("PFC = [ PFC_emissions ]") +# ureg.define("mercury = Hg = Mercury") +# ureg.define("mercure = Hg = Mercury") +ureg.define("PM10 = [ PM10_emissions ]") + +ureg.define("production = [ output ]") From d6f8c7dd092c0b0624b5275f7f5bcbca2fe95497 Mon Sep 17 00:00:00 2001 From: MichaelTiemannOSC Date: Fri, 31 Dec 2021 11:54:45 +0000 Subject: [PATCH 048/345] Reconcile latest changes with notebook Fix notebook failures identified by CI. Still work to do... Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- ITR/data/excel.py | 55 +- ITR/interfaces.py | 2 +- examples/quick_temp_score_calculation.ipynb | 699 ++------------------ 3 files changed, 85 insertions(+), 671 deletions(-) diff --git a/ITR/data/excel.py b/ITR/data/excel.py index e7963e58..e6dd84be 100644 --- a/ITR/data/excel.py +++ b/ITR/data/excel.py @@ -21,28 +21,45 @@ import logging -from ITR.interfaces import ICompanyProjections +from ITR.interfaces import ICompanyProjections, ICompanyEIProjections import inspect # TODO: Force validation for excel benchmarks # Utils functions: -def convert_benchmark_excel_to_model(df_excel: pd.DataFrame, sheetname: str, column_name_region: str, - column_name_sector: str, cell_unit: str) -> IBenchmarks: +def convert_yoy_benchmark_excel_to_model(df_excel: pd.DataFrame, sheetname: str, column_name_region: str, + column_name_sector: str) -> IYOYBenchmarks: """ - Converts excel into IBenchmarks + Converts excel into IYOYBenchmarks :param excal_path: file path to excel - :return: IBenchmarks instance (list of IBenchmark) + :return: IYOYBenchmarks instance (list of IYOYBenchmark) """ df_ei_bms = df_excel[sheetname].reset_index().drop(columns=['index']).set_index( [column_name_region, column_name_sector]) result = [] for index, row in df_ei_bms.iterrows(): - bm = IBenchmark(region=index[0], sector=index[1], - projections=[IBenchmarkProjection(year=int(k), value=Q_(v, cell_unit)) for k, v in row.items()]) + bm = IYOYBenchmark(region=index[0], sector=index[1], + projections=[IYOYBenchmarkProjection(year=int(k), value=v) for k, v in row.items()]) result.append(bm) - return IBenchmarks(benchmarks=result) + return IYOYBenchmarks(benchmarks=result) + + +def convert_intensity_benchmark_excel_to_model(df_excel: pd.DataFrame, sheetname: str, column_name_region: str, + column_name_sector: str) -> IEIBenchmarks: + """ + Converts excel into IEIBenchmarks + :param excal_path: file path to excel + :return: IEIBenchmarks instance (list of IEIBenchmark) + """ + df_ei_bms = df_excel[sheetname].reset_index().drop(columns=['index']).set_index( + [column_name_region, column_name_sector]) + result = [] + for index, row in df_ei_bms.iterrows(): + bm = IEIBenchmark(region=index[0], sector=index[1], + projections=[IEIBenchmarkProjection(year=int(k), value=Q_(v, ureg('t CO2/MWh'))) for k, v in row.items()]) + result.append(bm) + return IEIBenchmarks(benchmarks=result) class ExcelProviderProductionBenchmark(BaseProviderProductionBenchmark): @@ -56,9 +73,9 @@ def __init__(self, excel_path: str, column_config: Type[ColumnsConfig] = Columns """ self.benchmark_excel = pd.read_excel(excel_path, sheet_name=None, skiprows=0) self._check_sector_data() - self._convert_excel_to_model = convert_benchmark_excel_to_model + self._convert_excel_to_model = convert_yoy_benchmark_excel_to_model production_bms = self._convert_excel_to_model(self.benchmark_excel, TabsConfig.PROJECTED_PRODUCTION, - column_config.REGION, column_config.SECTOR, 'Mt CO2') + column_config.REGION, column_config.SECTOR) super().__init__( IProductionBenchmarkScopes(S1S2=production_bms), column_config, tempscore_config) @@ -89,9 +106,9 @@ def __init__(self, excel_path: str, benchmark_temperature: Quantity['delta_degC' tempscore_config: Type[TemperatureScoreConfig] = TemperatureScoreConfig): self.benchmark_excel = pd.read_excel(excel_path, sheet_name=None, skiprows=0) self._check_sector_data() - self._convert_excel_to_model = convert_benchmark_excel_to_model + self._convert_excel_to_model = convert_intensity_benchmark_excel_to_model EI_benchmarks = self._convert_excel_to_model(self.benchmark_excel, TabsConfig.PROJECTED_EI, - column_config.REGION, column_config.SECTOR, 't CO2/MWh') + column_config.REGION, column_config.SECTOR) super().__init__( IEmissionIntensityBenchmarkScopes(S1S2=EI_benchmarks, benchmark_temperature=benchmark_temperature, benchmark_global_budget=benchmark_global_budget, @@ -157,15 +174,13 @@ def _convert_from_excel_data(self, excel_path: str) -> List[ICompanyData]: return self._company_df_to_model(df_fundamentals, df_targets, df_ei, df_historic) def _convert_series_to_projections(self, projections: pd.Series) -> List[ - ICompanyProjection]: + ICompanyEIProjection]: """ - Converts a Pandas Series in a list of ICompanyProjections + Converts a Pandas Series in a list of ICompanyEIProjections :param projections: Pandas Series with years as indices - :param convert_unit: Boolean if series values needs conversion for unit of measure - :return: List of ICompanyProjection objects + :return: List of ICompanyEIProjection objects """ - projections = projections * self.ENERGY_UNIT_CONVERSION_FACTOR if convert_unit else projections - return [ICompanyProjection(year=y, value=v) for y, v in projections.items()] + return [ICompanyEIProjection(year=y, value=v) for y, v in projections.items()] def _company_df_to_model(self, df_fundamentals: pd.DataFrame, df_targets: pd.DataFrame, df_ei: pd.DataFrame, df_historic: pd.DataFrame) -> List[ICompanyData]: @@ -202,11 +217,11 @@ def _company_df_to_model(self, df_fundamentals: pd.DataFrame, df_targets: pd.Dat ghg_s1s2 = df_fundamentals[df_fundamentals[self.column_config.COMPANY_ID]==company_id][self.column_config.GHG_SCOPE12].squeeze() if ghg_s1s2 is None: ghg_s1s2 = 1 - company_data[self.column_config.GHG_SCOPE12] = Q_(ghg_s1s2, ureg('t CO2')) + company_data[self.column_config.GHG_SCOPE12] = Q_(ghg_s1s2, ureg('MWh')) ghg_s3 = df_fundamentals[df_fundamentals[self.column_config.COMPANY_ID]==company_id][self.column_config.GHG_SCOPE3].squeeze() if ghg_s3 is None: ghg_s3 = 1 - company_data[self.column_config.GHG_SCOPE3] = Q_(ghg_s3, ureg('t CO2')) + company_data[self.column_config.GHG_SCOPE3] = Q_(ghg_s3, ureg('MWh')) company_data[self.column_config.PROJECTED_TARGETS] = {'S1S2': {'projections': self._convert_series_to_projections (df_targets.loc[company_id, :])}} company_data[self.column_config.PROJECTED_EI] = {'S1S2': {'projections': self._convert_series_to_projections (df_ei.loc[company_id, :])}} diff --git a/ITR/interfaces.py b/ITR/interfaces.py index 34801b10..4b08ec63 100644 --- a/ITR/interfaces.py +++ b/ITR/interfaces.py @@ -161,7 +161,7 @@ def __getitem__(self, item): def __init__(self, benchmark_temperature, benchmark_global_budget, *args, **kwargs): super().__init__(benchmark_temperature=Q_(benchmark_temperature, ureg.delta_degC), - benchmark_global_budget=Q_(benchmark_temperature, ureg('t CO2')), + benchmark_global_budget=Q_(benchmark_global_budget, ureg('t CO2')), *args, **kwargs) diff --git a/examples/quick_temp_score_calculation.ipynb b/examples/quick_temp_score_calculation.ipynb index f73b959a..7b33fae1 100644 --- a/examples/quick_temp_score_calculation.ipynb +++ b/examples/quick_temp_score_calculation.ipynb @@ -114,7 +114,7 @@ "source": [ "## Download the dummy data warehouse\n", "\n", - "We have prepared dummy data for you to be able to run the tool as it is to familiarise yourself with how it works. To use your own data; please check out to the [Data Requirements section](https://os-c.github.io/ITR/DataRequirements.html) of the technical documentation for more details on data requirements and formatting. \n", + "We have prepared dummy data for you to be able to run the tool as it is to familiarise yourself with how it works. To use your own data; please check out to the [Data Requirements section](https://github.com/os-c/ITR/blob/main/docs/DataRequirements.rst) of the technical documentation for more details on data requirements and formatting. \n", "\n", "*The dummy data may include some company names, but the data associated with those company names is completely random and any similarities with real world data is purely coincidental. \n" ] @@ -197,7 +197,28 @@ "cell_type": "code", "execution_count": 8, "metadata": {}, - "outputs": [], + "outputs": [ + { + "ename": "DimensionalityError", + "evalue": "Cannot convert from 'delta_degree_Celsius' ([temperature]) to 'CO2 * metric_ton' ([carbon] * [mass])", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mDimensionalityError\u001b[0m Traceback (most recent call last)", + "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m excel_EI_bm = ExcelProviderIntensityBenchmark(excel_path=\"data/OECM_EI_and_production_benchmarks.xlsx\",benchmark_temperature=Q_(1.5, ureg.delta_degC),\n\u001b[0m\u001b[1;32m 2\u001b[0m benchmark_global_budget=396 * ureg('Gt CO2'), is_AFOLU_included=False)\n", + "\u001b[0;32m~/ITR/ITR/data/excel.py\u001b[0m in \u001b[0;36m__init__\u001b[0;34m(self, excel_path, benchmark_temperature, benchmark_global_budget, is_AFOLU_included, column_config, tempscore_config)\u001b[0m\n\u001b[1;32m 117\u001b[0m column_config.REGION, column_config.SECTOR)\n\u001b[1;32m 118\u001b[0m super().__init__(\n\u001b[0;32m--> 119\u001b[0;31m IEmissionIntensityBenchmarkScopes(S1S2=EI_benchmarks, benchmark_temperature=benchmark_temperature,\n\u001b[0m\u001b[1;32m 120\u001b[0m \u001b[0mbenchmark_global_budget\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mbenchmark_global_budget\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 121\u001b[0m is_AFOLU_included=is_AFOLU_included), column_config,\n", + "\u001b[0;32m~/ITR/ITR/interfaces.py\u001b[0m in \u001b[0;36m__init__\u001b[0;34m(self, benchmark_temperature, benchmark_global_budget, *args, **kwargs)\u001b[0m\n\u001b[1;32m 166\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0m__init__\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mbenchmark_temperature\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mbenchmark_global_budget\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m*\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 167\u001b[0m super().__init__(benchmark_temperature=Q_(benchmark_temperature, ureg.delta_degC),\n\u001b[0;32m--> 168\u001b[0;31m \u001b[0mbenchmark_global_budget\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mQ_\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mbenchmark_temperature\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mureg\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m't CO2'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 169\u001b[0m *args, **kwargs)\n\u001b[1;32m 170\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m/opt/app-root/lib64/python3.8/site-packages/pint/quantity.py\u001b[0m in \u001b[0;36m__new__\u001b[0;34m(cls, value, units)\u001b[0m\n\u001b[1;32m 292\u001b[0m )\n\u001b[1;32m 293\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0misinstance\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mvalue\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcls\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 294\u001b[0;31m \u001b[0mmagnitude\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mvalue\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mto\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0munits\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_magnitude\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 295\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 296\u001b[0m magnitude = _to_magnitude(\n", + "\u001b[0;32m/opt/app-root/lib64/python3.8/site-packages/pint/quantity.py\u001b[0m in \u001b[0;36mto\u001b[0;34m(self, other, *contexts, **ctx_kwargs)\u001b[0m\n\u001b[1;32m 722\u001b[0m \u001b[0mother\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mto_units_container\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mother\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_REGISTRY\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 723\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 724\u001b[0;31m \u001b[0mmagnitude\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_convert_magnitude_not_inplace\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mother\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m*\u001b[0m\u001b[0mcontexts\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mctx_kwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 725\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 726\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m__class__\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mmagnitude\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mother\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m/opt/app-root/lib64/python3.8/site-packages/pint/quantity.py\u001b[0m in \u001b[0;36m_convert_magnitude_not_inplace\u001b[0;34m(self, other, *contexts, **ctx_kwargs)\u001b[0m\n\u001b[1;32m 671\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_REGISTRY\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mconvert\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_magnitude\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_units\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mother\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 672\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 673\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_REGISTRY\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mconvert\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_magnitude\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_units\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mother\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 674\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 675\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0m_convert_magnitude\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mother\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m*\u001b[0m\u001b[0mcontexts\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mctx_kwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m/opt/app-root/lib64/python3.8/site-packages/pint/registry.py\u001b[0m in \u001b[0;36mconvert\u001b[0;34m(self, value, src, dst, inplace)\u001b[0m\n\u001b[1;32m 1001\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mvalue\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1002\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1003\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_convert\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mvalue\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0msrc\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdst\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0minplace\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 1004\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1005\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0m_convert\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mvalue\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0msrc\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdst\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0minplace\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mFalse\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcheck_dimensionality\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mTrue\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m/opt/app-root/lib64/python3.8/site-packages/pint/registry.py\u001b[0m in \u001b[0;36m_convert\u001b[0;34m(self, value, src, dst, inplace)\u001b[0m\n\u001b[1;32m 1915\u001b[0m \u001b[0mvalue\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0msrc\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0msrc\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_magnitude\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0msrc\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_units\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1916\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1917\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0msuper\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_convert\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mvalue\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0msrc\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdst\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0minplace\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 1918\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1919\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0m_get_compatible_units\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0minput_units\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mgroup_or_system\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m/opt/app-root/lib64/python3.8/site-packages/pint/registry.py\u001b[0m in \u001b[0;36m_convert\u001b[0;34m(self, value, src, dst, inplace)\u001b[0m\n\u001b[1;32m 1516\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1517\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0;34m(\u001b[0m\u001b[0msrc_offset_unit\u001b[0m \u001b[0;32mor\u001b[0m \u001b[0mdst_offset_unit\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1518\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0msuper\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_convert\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mvalue\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0msrc\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdst\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0minplace\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 1519\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1520\u001b[0m \u001b[0msrc_dim\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_get_dimensionality\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0msrc\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m/opt/app-root/lib64/python3.8/site-packages/pint/registry.py\u001b[0m in \u001b[0;36m_convert\u001b[0;34m(self, value, src, dst, inplace, check_dimensionality)\u001b[0m\n\u001b[1;32m 1034\u001b[0m \u001b[0;31m# then the conversion cannot be performed.\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1035\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0msrc_dim\u001b[0m \u001b[0;34m!=\u001b[0m \u001b[0mdst_dim\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1036\u001b[0;31m \u001b[0;32mraise\u001b[0m \u001b[0mDimensionalityError\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0msrc\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdst\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0msrc_dim\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdst_dim\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 1037\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1038\u001b[0m \u001b[0;31m# Here src and dst have only multiplicative units left. Thus we can\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;31mDimensionalityError\u001b[0m: Cannot convert from 'delta_degree_Celsius' ([temperature]) to 'CO2 * metric_ton' ([carbon] * [mass])" + ] + } + ], "source": [ "excel_EI_bm = ExcelProviderIntensityBenchmark(excel_path=\"data/OECM_EI_and_production_benchmarks.xlsx\",benchmark_temperature=Q_(1.5, ureg.delta_degC),\n", " benchmark_global_budget=396 * ureg('Gt CO2'), is_AFOLU_included=False)" @@ -205,7 +226,7 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -224,7 +245,7 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -233,90 +254,9 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
company_namecompany_idcompany_isininvestment_value
0Company AGUS0079031078US007903107835000000
1Company AHUS00724F1012US00724F101210000000
2Company AIFR0000125338FR000012533810000000
3Company AJUS17275R1023US17275R102310000000
4Company AKCH0198251305CH019825130510000000
\n", - "
" - ], - "text/plain": [ - " company_name company_id company_isin investment_value\n", - "0 Company AG US0079031078 US0079031078 35000000\n", - "1 Company AH US00724F1012 US00724F1012 10000000\n", - "2 Company AI FR0000125338 FR0000125338 10000000\n", - "3 Company AJ US17275R1023 US17275R1023 10000000\n", - "4 Company AK CH0198251305 CH0198251305 10000000" - ] - }, - "execution_count": 11, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "df_portfolio.head(5)" ] @@ -330,7 +270,7 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -347,25 +287,9 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/opt/app-root/lib64/python3.8/site-packages/pandas/core/dtypes/cast.py:1990: UnitStrippedWarning: The unit of the quantity is stripped when downcasting to ndarray.\n", - " result[:] = values\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "calculate scopes = []\n" - ] - } - ], + "outputs": [], "source": [ "temperature_score = TemperatureScore( \n", " time_frames = [ETimeFrames.LONG], \n", @@ -384,122 +308,9 @@ }, { "cell_type": "code", - "execution_count": 14, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
company_nametime_framescopetemperature_score
0Company MLONGS1S21.5 delta_degree_Celsius
1Company JLONGS1S21.5 delta_degree_Celsius
2Company KLONGS1S21.5 delta_degree_Celsius
3Company LLONGS1S21.5 delta_degree_Celsius
4Company AQLONGS1S21.5 delta_degree_Celsius
5Company AKLONGS1S21.5 delta_degree_Celsius
6Company GLONGS1S21.5 delta_degree_Celsius
7Company HLONGS1S21.5 delta_degree_Celsius
8Company ILONGS1S21.5 delta_degree_Celsius
\n", - "
" - ], - "text/plain": [ - " company_name time_frame scope temperature_score\n", - "0 Company M LONG S1S2 1.5 delta_degree_Celsius\n", - "1 Company J LONG S1S2 1.5 delta_degree_Celsius\n", - "2 Company K LONG S1S2 1.5 delta_degree_Celsius\n", - "3 Company L LONG S1S2 1.5 delta_degree_Celsius\n", - "4 Company AQ LONG S1S2 1.5 delta_degree_Celsius\n", - "5 Company AK LONG S1S2 1.5 delta_degree_Celsius\n", - "6 Company G LONG S1S2 1.5 delta_degree_Celsius\n", - "7 Company H LONG S1S2 1.5 delta_degree_Celsius\n", - "8 Company I LONG S1S2 1.5 delta_degree_Celsius" - ] - }, - "execution_count": 14, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "amended_portfolio[['company_name', 'time_frame', 'scope', 'temperature_score']].head(9)" ] @@ -514,44 +325,18 @@ }, { "cell_type": "code", - "execution_count": 15, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/opt/app-root/lib64/python3.8/site-packages/pint_pandas/pint_array.py:648: UnitStrippedWarning: The unit of the quantity is stripped when downcasting to ndarray.\n", - " return np.array(qtys, dtype=\"object\", copy=copy)\n" - ] - } - ], + "outputs": [], "source": [ "aggregated_scores = temperature_score.aggregate_scores(amended_portfolio)" ] }, { "cell_type": "code", - "execution_count": 16, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "1.5000000000000004 delta_degree_Celsius" - ], - "text/latex": [ - "$1.5000000000000004\\ \\mathrm{delta\\_degree\\_Celsius}$" - ], - "text/plain": [ - "1.5000000000000004 " - ] - }, - "execution_count": 16, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "aggregated_scores.long.S1S2.all.score" ] @@ -572,27 +357,11 @@ }, { "cell_type": "code", - "execution_count": 17, + "execution_count": null, "metadata": { "scrolled": true }, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/opt/app-root/lib64/python3.8/site-packages/pandas/core/dtypes/cast.py:1990: UnitStrippedWarning: The unit of the quantity is stripped when downcasting to ndarray.\n", - " result[:] = values\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "calculate scopes = []\n" - ] - } - ], + "outputs": [], "source": [ "grouping = ['sector', 'region']\n", "temperature_score.grouping = grouping\n", @@ -616,22 +385,9 @@ }, { "cell_type": "code", - "execution_count": 18, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "analysis_parameters = ([ETimeFrames.LONG], [EScope.S1S2], grouping)\n", "plot_grouped_heatmap(grouped_aggregations, analysis_parameters)" @@ -639,163 +395,9 @@ }, { "cell_type": "code", - "execution_count": 19, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
groupcompany_namecompany_idtemperature_scorecontribution_relative
0Steel-AsiaCompany JBR00000000101.5 delta_degree_Celsius9.090909090909093 delta_degree_Celsius
1Steel-AsiaCompany LBR00000000121.5 delta_degree_Celsius9.090909090909093 delta_degree_Celsius
2Steel-AsiaCompany GCN00000000071.5 delta_degree_Celsius9.090909090909093 delta_degree_Celsius
3Steel-AsiaCompany HCN00000000081.5 delta_degree_Celsius9.090909090909093 delta_degree_Celsius
4Steel-AsiaCompany ICN00000000091.5 delta_degree_Celsius9.090909090909093 delta_degree_Celsius
5Steel-AsiaCompany CIT00000000031.5 delta_degree_Celsius9.090909090909093 delta_degree_Celsius
6Steel-AsiaCompany AJP00000000011.5 delta_degree_Celsius9.090909090909093 delta_degree_Celsius
7Steel-AsiaCompany FNL00000000061.5 delta_degree_Celsius9.090909090909093 delta_degree_Celsius
8Steel-AsiaCompany DSE00000000041.5 delta_degree_Celsius9.090909090909093 delta_degree_Celsius
9Steel-AsiaCompany ESE00000000051.5 delta_degree_Celsius9.090909090909093 delta_degree_Celsius
10Steel-AsiaCompany AWUS71344810811.5 delta_degree_Celsius9.090909090909093 delta_degree_Celsius
\n", - "
" - ], - "text/plain": [ - " group company_name company_id temperature_score \\\n", - "0 Steel-Asia Company J BR0000000010 1.5 delta_degree_Celsius \n", - "1 Steel-Asia Company L BR0000000012 1.5 delta_degree_Celsius \n", - "2 Steel-Asia Company G CN0000000007 1.5 delta_degree_Celsius \n", - "3 Steel-Asia Company H CN0000000008 1.5 delta_degree_Celsius \n", - "4 Steel-Asia Company I CN0000000009 1.5 delta_degree_Celsius \n", - "5 Steel-Asia Company C IT0000000003 1.5 delta_degree_Celsius \n", - "6 Steel-Asia Company A JP0000000001 1.5 delta_degree_Celsius \n", - "7 Steel-Asia Company F NL0000000006 1.5 delta_degree_Celsius \n", - "8 Steel-Asia Company D SE0000000004 1.5 delta_degree_Celsius \n", - "9 Steel-Asia Company E SE0000000005 1.5 delta_degree_Celsius \n", - "10 Steel-Asia Company AW US7134481081 1.5 delta_degree_Celsius \n", - "\n", - " contribution_relative \n", - "0 9.090909090909093 delta_degree_Celsius \n", - "1 9.090909090909093 delta_degree_Celsius \n", - "2 9.090909090909093 delta_degree_Celsius \n", - "3 9.090909090909093 delta_degree_Celsius \n", - "4 9.090909090909093 delta_degree_Celsius \n", - "5 9.090909090909093 delta_degree_Celsius \n", - "6 9.090909090909093 delta_degree_Celsius \n", - "7 9.090909090909093 delta_degree_Celsius \n", - "8 9.090909090909093 delta_degree_Celsius \n", - "9 9.090909090909093 delta_degree_Celsius \n", - "10 9.090909090909093 delta_degree_Celsius " - ] - }, - "execution_count": 19, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "region = 'Asia'\n", "sector = 'Steel'\n", @@ -825,33 +427,9 @@ }, { "cell_type": "code", - "execution_count": 20, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/opt/app-root/lib64/python3.8/site-packages/pandas/core/dtypes/cast.py:1990: UnitStrippedWarning: The unit of the quantity is stripped when downcasting to ndarray.\n", - " result[:] = values\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "calculate scopes = []\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/opt/app-root/lib64/python3.8/site-packages/pint_pandas/pint_array.py:648: UnitStrippedWarning: The unit of the quantity is stripped when downcasting to ndarray.\n", - " return np.array(qtys, dtype=\"object\", copy=copy)\n" - ] - } - ], + "outputs": [], "source": [ "time_frames = [ETimeFrames.LONG]\n", "scopes = [EScope.S1S2]\n", @@ -868,22 +446,9 @@ }, { "cell_type": "code", - "execution_count": 21, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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kgXHHnvswunTp7dIJBI7n3baad2TyWTba665Zmbnzp1XDRs2bOJ77703ccaMGc1uuummrd96662J48aN+2SPPfZYesMNN5SvWLHCLrzwwu7//Oc/Pxs7duwnZ5xxxuzLLrusS+jXJJtGhyNFRESyoEOHDjVjxowZ99JLL7V7/fXX251xxhk9fvWrX01NXebNN9/c7LPPPmu155579gFYtWqV9e/ff/FHH33U8tNPP2194IEH9gKoqamhrKxsVYjXIU1HRZiIiEiWNGvWjCOPPHLRkUceuWjXXXdd9vDDD3dMne/u7Lvvvgufe+65L1Kn//e//229ww47LBs9evT47CaWTFIRVgQSVckSoEN82xxoBawElgMr4p/LgUWTBw9aGSimSNYkqpKlrL1PtCTaF2r3h9qfCycPHqTWBmkSH374YcuSkhJ22WWXFQAffPBB665du66cOnVqiwULFpRsvfXW7L///ksuvfTS7mPGjGm58847r1i4cGHJ5MmTm++6667L586d2+y1117b7OCDD16yYsUK+/jjj1sOGDBgeejXJRtPRVgBiD9QEkDvOrftgC2AdoClsSpPVCVnA9OAr4DPgc+AscCIyYMHLWry8CIZkKhKNiN6/9fdJxJE+0Rb0t8nZhHtE1/yzT4xBhg5efCgJU0eXrIi3SElmtLChQtLL7zwwu4LFy4sLS0t9UQiseKhhx768oEHHthy4MCBvcrLy1e+9957E4cMGTL55JNP3n7lypUGcO21107bddddVzz22GOfXXjhhd0XLVpUumbNGvvxj39crSIsv+kC3nkoUZVsBVQA+8W3CqB1hjdbA4wD3ku5fTx58CC9gSS4RFWyDbAP3+wTexK1bmXSGqJirHZ/GA58on0iN3344YeTd9ttt9mhc0j2ffjhh5122223ROgc9VERlicSVclewEnAIWTnAyYdXwPPAc8Ar08ePGhF2DhSTBJVyZ2I9omDgQFALpyuPxV4lmifeFOHMnOHirDipSJMNkqiKrktcHJ86xc2TaMWAS8BTwHPqCCTTEhUJXsApxDtEzsFjtOY+cALRPvEcyrIwlIRVrxUhEnaElXJ5kQfMucBe5Nev5VcMxt4APjL5MGDJgfOInkuPvx+OnAuUYtXPvoauA8YMnnwoKmNLSxNT0VY8VIRJo1KVCW3ICq8LgC2CRynqdQQtY7dBbw4efAgXZJD0paoSpYBP4lvnQPHaSpriA7h3wW8pv5j2aMirHjlchGmEfMDS1Qlt01UJe8ApgA3UzgFGETvryOA54EPE1XJY8PGkXyQqEr2TFQlhxCdoXsdhVOAAZQCxwKvAO8nqpIDw8YRkZDUEhZIoirZAbgauJDc6GSfLe8BV00ePOhfoYNIbklUJTsSFV3nU1zD57xFtE+8EzpIIVNLWPHK5ZYwFWFZFo/pdR7Rh01Z2DRB/Qv4RYixeiS3JKqSLYgOw19DNHBqsXoBuGLy4EFjQgcpRHWLsKHDq/s35forK8ob/V9WWlrav2fPnstqHx933HFzb7rppq/33HPP3rfeeuuU7373u0s3ZJvvvvtu6ylTprQ46aSTFtQ3/6233mrzwAMPdHzwwQenrG8d++233w5PPfXUFwD33XffllVVVbPS3f7zzz/f7rbbbit/4403JtVOO/744xNHHnnkgrPOOmve9ddf3/nnP//57Hbt2tWkbqtTp05r2rRps/vSpUs/mDx5cvPzzz+/20svvfR53dfz6KOPdhg7dmzrm2666et0M9Unl4swHY7MokRV8lDgI+BOirsAAzgQeC9RlbwtHuNJilCiKnkM0WDAt1LcBRhEh+5HJaqSN8SFqRSYli1b1owfP35c7W1Ti4sRI0a0SSaTHeqbt2rVKr773e8ubagAAxg2bNikTp06rZkzZ07p/fff36SH/ocMGVK+ePHi/9UZtdtKXSaRSKx66aWXPod1X8+pp566YFN/R7lORVgWJKqSHRJVyb8CLwN9Q+fJIaXAJcDHiarkgaHDSPYkqpKdElXJfxCNp7VD4Di5pDlRi+DoRFVyn9BhJPuefvrp9v369evTt2/fHQ8//PDtFyxYUAIwbNiwNrvvvnuf3r17991ll112nDNnTunNN9+8zXPPPbdFnz59+t57771bXHLJJdsce+yx2+2xxx59jjvuuO2ef/75dgcccMAOAAsWLCg54YQTEr169erbq1evvg8++ODmAF26dNllxowZzS699NKuU6ZMadmnT5++5513XtfKysrEww8/vHltrqOPPnq7Rx55ZPN6Itfrxhtv7Dxz5szm++23X6+99tqrV+q2UpebMGFCi549e+60fPlyq/t67rjjjo4/+MEPugNMnz692WGHHdZj55133nHnnXfe8ZVXXtkMIJlMtu3Tp0/fPn36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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "plot_grouped_statistics(aggregated_portfolio, company_contributions, analysis_parameters)" ] @@ -899,175 +464,9 @@ }, { "cell_type": "code", - "execution_count": 22, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
company_namecompany_idsectorcontributiontemperature_scoreownership_percentageportfolio_percentage
1Company MAR0000000013Steel3.076923076923076 delta_degree_Celsius1.5 delta_degree_Celsius1.073.08
28Company KBR0000000011Steel3.076923076923076 delta_degree_Celsius1.5 delta_degree_Celsius1.013.08
27Company LBR0000000012Steel3.076923076923076 delta_degree_Celsius1.5 delta_degree_Celsius0.153.08
24Company GCN0000000007Steel3.076923076923076 delta_degree_Celsius1.5 delta_degree_Celsius0.053.08
23Company HCN0000000008Steel3.076923076923076 delta_degree_Celsius1.5 delta_degree_Celsius0.183.08
22Company ICN0000000009Steel3.076923076923076 delta_degree_Celsius1.5 delta_degree_Celsius0.333.08
17Company CIT0000000003Steel3.076923076923076 delta_degree_Celsius1.5 delta_degree_Celsius0.343.08
16Company AJP0000000001Steel3.076923076923076 delta_degree_Celsius1.5 delta_degree_Celsius1.073.08
14Company BNL0000000002Steel3.076923076923076 delta_degree_Celsius1.5 delta_degree_Celsius1.513.08
13Company FNL0000000006Steel3.076923076923076 delta_degree_Celsius1.5 delta_degree_Celsius0.113.08
\n", - "
" - ], - "text/plain": [ - " company_name company_id sector contribution \\\n", - "1 Company M AR0000000013 Steel 3.076923076923076 delta_degree_Celsius \n", - "28 Company K BR0000000011 Steel 3.076923076923076 delta_degree_Celsius \n", - "27 Company L BR0000000012 Steel 3.076923076923076 delta_degree_Celsius \n", - "24 Company G CN0000000007 Steel 3.076923076923076 delta_degree_Celsius \n", - "23 Company H CN0000000008 Steel 3.076923076923076 delta_degree_Celsius \n", - "22 Company I CN0000000009 Steel 3.076923076923076 delta_degree_Celsius \n", - "17 Company C IT0000000003 Steel 3.076923076923076 delta_degree_Celsius \n", - "16 Company A JP0000000001 Steel 3.076923076923076 delta_degree_Celsius \n", - "14 Company B NL0000000002 Steel 3.076923076923076 delta_degree_Celsius \n", - "13 Company F NL0000000006 Steel 3.076923076923076 delta_degree_Celsius \n", - "\n", - " temperature_score ownership_percentage portfolio_percentage \n", - "1 1.5 delta_degree_Celsius 1.07 3.08 \n", - "28 1.5 delta_degree_Celsius 1.01 3.08 \n", - "27 1.5 delta_degree_Celsius 0.15 3.08 \n", - "24 1.5 delta_degree_Celsius 0.05 3.08 \n", - "23 1.5 delta_degree_Celsius 0.18 3.08 \n", - "22 1.5 delta_degree_Celsius 0.33 3.08 \n", - "17 1.5 delta_degree_Celsius 0.34 3.08 \n", - "16 1.5 delta_degree_Celsius 1.07 3.08 \n", - "14 1.5 delta_degree_Celsius 1.51 3.08 \n", - "13 1.5 delta_degree_Celsius 0.11 3.08 " - ] - }, - "execution_count": 22, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "sector_contributions = company_contributions[['company_name', 'company_id', 'sector', 'contribution', 'temperature_score', 'ownership_percentage', 'portfolio_percentage']]\n", "sector_contributions.loc[sector_contributions['sector'] == 'Steel'][:10].round(2)" @@ -1087,7 +486,7 @@ }, { "cell_type": "code", - "execution_count": 23, + "execution_count": null, "metadata": { "pycharm": { "name": "#%%\n" From da81d9d3c05b11744bc5f07bf7f40f560924e0c1 Mon Sep 17 00:00:00 2001 From: MichaelTiemannOSC Date: Fri, 31 Dec 2021 12:51:55 +0000 Subject: [PATCH 049/345] WIP: 5/6 test cases working I have commented an issue concerning unittest vs. pint_pandas here: https://github.com/hgrecco/pint-pandas/issues/26. When that has resolved we should see that 5/6 assertion failures are actually good. There remains a problem with the temperature score calculation. That's next... Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- ITR/data/base_providers.py | 2 +- examples/quick_temp_score_calculation.ipynb | 705 ++++++++++++++++++-- test/test_base_providers.py | 8 +- 3 files changed, 662 insertions(+), 53 deletions(-) diff --git a/ITR/data/base_providers.py b/ITR/data/base_providers.py index f1bc03d6..7c87fedc 100644 --- a/ITR/data/base_providers.py +++ b/ITR/data/base_providers.py @@ -244,7 +244,7 @@ def get_SDA_intensity_benchmarks(self, company_info_at_base_year: pd.DataFrame) ei_base = company_info_at_base_year[self.column_config.BASE_EI] df = decarbonization_paths.mul((ei_base - last_ei), axis=0) - df = df.add(last_ei, axis=0) + df = df.add(last_ei, axis=0).astype('pint[t CO2/MWh]') return df def _get_decarbonizations_paths(self, intensity_benchmarks: pd.DataFrame) -> pd.DataFrame: diff --git a/examples/quick_temp_score_calculation.ipynb b/examples/quick_temp_score_calculation.ipynb index 7b33fae1..b3a7f8d7 100644 --- a/examples/quick_temp_score_calculation.ipynb +++ b/examples/quick_temp_score_calculation.ipynb @@ -197,28 +197,7 @@ "cell_type": "code", "execution_count": 8, "metadata": {}, - "outputs": [ - { - "ename": "DimensionalityError", - "evalue": "Cannot convert from 'delta_degree_Celsius' ([temperature]) to 'CO2 * metric_ton' ([carbon] * [mass])", - "output_type": "error", - "traceback": [ - "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[0;31mDimensionalityError\u001b[0m Traceback (most recent call last)", - "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m excel_EI_bm = ExcelProviderIntensityBenchmark(excel_path=\"data/OECM_EI_and_production_benchmarks.xlsx\",benchmark_temperature=Q_(1.5, ureg.delta_degC),\n\u001b[0m\u001b[1;32m 2\u001b[0m benchmark_global_budget=396 * ureg('Gt CO2'), is_AFOLU_included=False)\n", - "\u001b[0;32m~/ITR/ITR/data/excel.py\u001b[0m in \u001b[0;36m__init__\u001b[0;34m(self, excel_path, benchmark_temperature, benchmark_global_budget, is_AFOLU_included, column_config, tempscore_config)\u001b[0m\n\u001b[1;32m 117\u001b[0m column_config.REGION, column_config.SECTOR)\n\u001b[1;32m 118\u001b[0m super().__init__(\n\u001b[0;32m--> 119\u001b[0;31m IEmissionIntensityBenchmarkScopes(S1S2=EI_benchmarks, benchmark_temperature=benchmark_temperature,\n\u001b[0m\u001b[1;32m 120\u001b[0m \u001b[0mbenchmark_global_budget\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mbenchmark_global_budget\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 121\u001b[0m is_AFOLU_included=is_AFOLU_included), column_config,\n", - "\u001b[0;32m~/ITR/ITR/interfaces.py\u001b[0m in \u001b[0;36m__init__\u001b[0;34m(self, benchmark_temperature, benchmark_global_budget, *args, **kwargs)\u001b[0m\n\u001b[1;32m 166\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0m__init__\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mbenchmark_temperature\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mbenchmark_global_budget\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m*\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 167\u001b[0m super().__init__(benchmark_temperature=Q_(benchmark_temperature, ureg.delta_degC),\n\u001b[0;32m--> 168\u001b[0;31m \u001b[0mbenchmark_global_budget\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mQ_\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mbenchmark_temperature\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mureg\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m't CO2'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 169\u001b[0m *args, **kwargs)\n\u001b[1;32m 170\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m/opt/app-root/lib64/python3.8/site-packages/pint/quantity.py\u001b[0m in \u001b[0;36m__new__\u001b[0;34m(cls, value, units)\u001b[0m\n\u001b[1;32m 292\u001b[0m )\n\u001b[1;32m 293\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0misinstance\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mvalue\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcls\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 294\u001b[0;31m \u001b[0mmagnitude\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mvalue\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mto\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0munits\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_magnitude\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 295\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 296\u001b[0m magnitude = _to_magnitude(\n", - "\u001b[0;32m/opt/app-root/lib64/python3.8/site-packages/pint/quantity.py\u001b[0m in \u001b[0;36mto\u001b[0;34m(self, other, *contexts, **ctx_kwargs)\u001b[0m\n\u001b[1;32m 722\u001b[0m \u001b[0mother\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mto_units_container\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mother\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_REGISTRY\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 723\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 724\u001b[0;31m \u001b[0mmagnitude\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_convert_magnitude_not_inplace\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mother\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m*\u001b[0m\u001b[0mcontexts\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mctx_kwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 725\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 726\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m__class__\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mmagnitude\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mother\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m/opt/app-root/lib64/python3.8/site-packages/pint/quantity.py\u001b[0m in \u001b[0;36m_convert_magnitude_not_inplace\u001b[0;34m(self, other, *contexts, **ctx_kwargs)\u001b[0m\n\u001b[1;32m 671\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_REGISTRY\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mconvert\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_magnitude\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_units\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mother\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 672\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 673\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_REGISTRY\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mconvert\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_magnitude\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_units\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mother\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 674\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 675\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0m_convert_magnitude\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mother\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m*\u001b[0m\u001b[0mcontexts\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mctx_kwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m/opt/app-root/lib64/python3.8/site-packages/pint/registry.py\u001b[0m in \u001b[0;36mconvert\u001b[0;34m(self, value, src, dst, inplace)\u001b[0m\n\u001b[1;32m 1001\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mvalue\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1002\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1003\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_convert\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mvalue\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0msrc\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdst\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0minplace\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 1004\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1005\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0m_convert\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mvalue\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0msrc\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdst\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0minplace\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mFalse\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcheck_dimensionality\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mTrue\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m/opt/app-root/lib64/python3.8/site-packages/pint/registry.py\u001b[0m in \u001b[0;36m_convert\u001b[0;34m(self, value, src, dst, inplace)\u001b[0m\n\u001b[1;32m 1915\u001b[0m \u001b[0mvalue\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0msrc\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0msrc\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_magnitude\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0msrc\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_units\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1916\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1917\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0msuper\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_convert\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mvalue\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0msrc\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdst\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0minplace\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 1918\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1919\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0m_get_compatible_units\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0minput_units\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mgroup_or_system\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m/opt/app-root/lib64/python3.8/site-packages/pint/registry.py\u001b[0m in \u001b[0;36m_convert\u001b[0;34m(self, value, src, dst, inplace)\u001b[0m\n\u001b[1;32m 1516\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1517\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0;34m(\u001b[0m\u001b[0msrc_offset_unit\u001b[0m \u001b[0;32mor\u001b[0m \u001b[0mdst_offset_unit\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1518\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0msuper\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_convert\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mvalue\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0msrc\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdst\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0minplace\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 1519\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1520\u001b[0m \u001b[0msrc_dim\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_get_dimensionality\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0msrc\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m/opt/app-root/lib64/python3.8/site-packages/pint/registry.py\u001b[0m in \u001b[0;36m_convert\u001b[0;34m(self, value, src, dst, inplace, check_dimensionality)\u001b[0m\n\u001b[1;32m 1034\u001b[0m \u001b[0;31m# then the conversion cannot be performed.\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1035\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0msrc_dim\u001b[0m \u001b[0;34m!=\u001b[0m \u001b[0mdst_dim\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1036\u001b[0;31m \u001b[0;32mraise\u001b[0m \u001b[0mDimensionalityError\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0msrc\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdst\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0msrc_dim\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdst_dim\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 1037\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1038\u001b[0m \u001b[0;31m# Here src and dst have only multiplicative units left. Thus we can\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;31mDimensionalityError\u001b[0m: Cannot convert from 'delta_degree_Celsius' ([temperature]) to 'CO2 * metric_ton' ([carbon] * [mass])" - ] - } - ], + "outputs": [], "source": [ "excel_EI_bm = ExcelProviderIntensityBenchmark(excel_path=\"data/OECM_EI_and_production_benchmarks.xlsx\",benchmark_temperature=Q_(1.5, ureg.delta_degC),\n", " benchmark_global_budget=396 * ureg('Gt CO2'), is_AFOLU_included=False)" @@ -226,7 +205,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 9, "metadata": {}, "outputs": [], "source": [ @@ -245,7 +224,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 10, "metadata": {}, "outputs": [], "source": [ @@ -254,9 +233,90 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 11, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
company_namecompany_idcompany_isininvestment_value
0Company AGUS0079031078US007903107835000000
1Company AHUS00724F1012US00724F101210000000
2Company AIFR0000125338FR000012533810000000
3Company AJUS17275R1023US17275R102310000000
4Company AKCH0198251305CH019825130510000000
\n", + "
" + ], + "text/plain": [ + " company_name company_id company_isin investment_value\n", + "0 Company AG US0079031078 US0079031078 35000000\n", + "1 Company AH US00724F1012 US00724F1012 10000000\n", + "2 Company AI FR0000125338 FR0000125338 10000000\n", + "3 Company AJ US17275R1023 US17275R1023 10000000\n", + "4 Company AK CH0198251305 CH0198251305 10000000" + ] + }, + "execution_count": 11, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "df_portfolio.head(5)" ] @@ -270,7 +330,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 12, "metadata": {}, "outputs": [], "source": [ @@ -287,9 +347,33 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 13, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/opt/app-root/lib64/python3.8/site-packages/pint_pandas/pint_array.py:648: UnitStrippedWarning: The unit of the quantity is stripped when downcasting to ndarray.\n", + " return np.array(qtys, dtype=\"object\", copy=copy)\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "calculate scopes = []\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/opt/app-root/lib64/python3.8/site-packages/pandas/core/dtypes/cast.py:1990: UnitStrippedWarning: The unit of the quantity is stripped when downcasting to ndarray.\n", + " result[:] = values\n" + ] + } + ], "source": [ "temperature_score = TemperatureScore( \n", " time_frames = [ETimeFrames.LONG], \n", @@ -308,9 +392,122 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 14, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
company_nametime_framescopetemperature_score
0Company AGLONGS1S23.2 delta_degree_Celsius
1Company AHLONGS1S23.2 delta_degree_Celsius
2Company AILONGS1S23.2 delta_degree_Celsius
3Company AJLONGS1S23.2 delta_degree_Celsius
4Company AKLONGS1S23.2 delta_degree_Celsius
5Company ALLONGS1S23.2 delta_degree_Celsius
6Company AMLONGS1S23.2 delta_degree_Celsius
7Company ANLONGS1S23.2 delta_degree_Celsius
8Company AOLONGS1S23.2 delta_degree_Celsius
\n", + "
" + ], + "text/plain": [ + " company_name time_frame scope temperature_score\n", + "0 Company AG LONG S1S2 3.2 delta_degree_Celsius\n", + "1 Company AH LONG S1S2 3.2 delta_degree_Celsius\n", + "2 Company AI LONG S1S2 3.2 delta_degree_Celsius\n", + "3 Company AJ LONG S1S2 3.2 delta_degree_Celsius\n", + "4 Company AK LONG S1S2 3.2 delta_degree_Celsius\n", + "5 Company AL LONG S1S2 3.2 delta_degree_Celsius\n", + "6 Company AM LONG S1S2 3.2 delta_degree_Celsius\n", + "7 Company AN LONG S1S2 3.2 delta_degree_Celsius\n", + "8 Company AO LONG S1S2 3.2 delta_degree_Celsius" + ] + }, + "execution_count": 14, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "amended_portfolio[['company_name', 'time_frame', 'scope', 'temperature_score']].head(9)" ] @@ -325,18 +522,44 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 15, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/opt/app-root/lib64/python3.8/site-packages/pint_pandas/pint_array.py:648: UnitStrippedWarning: The unit of the quantity is stripped when downcasting to ndarray.\n", + " return np.array(qtys, dtype=\"object\", copy=copy)\n" + ] + } + ], "source": [ "aggregated_scores = temperature_score.aggregate_scores(amended_portfolio)" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 16, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/html": [ + "3.1999999999999993 delta_degree_Celsius" + ], + "text/latex": [ + "$3.1999999999999993\\ \\mathrm{delta\\_degree\\_Celsius}$" + ], + "text/plain": [ + "3.1999999999999993 " + ] + }, + "execution_count": 16, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "aggregated_scores.long.S1S2.all.score" ] @@ -357,11 +580,27 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 17, "metadata": { "scrolled": true }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "calculate scopes = []\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/opt/app-root/lib64/python3.8/site-packages/pandas/core/dtypes/cast.py:1990: UnitStrippedWarning: The unit of the quantity is stripped when downcasting to ndarray.\n", + " result[:] = values\n" + ] + } + ], "source": [ "grouping = ['sector', 'region']\n", "temperature_score.grouping = grouping\n", @@ -385,9 +624,22 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 18, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], "source": [ "analysis_parameters = ([ETimeFrames.LONG], [EScope.S1S2], grouping)\n", "plot_grouped_heatmap(grouped_aggregations, analysis_parameters)" @@ -395,9 +647,163 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 19, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
groupcompany_namecompany_idtemperature_scorecontribution_relative
0Steel-AsiaCompany AWUS71344810813.2 delta_degree_Celsius9.09090909090909 delta_degree_Celsius
1Steel-AsiaCompany AJP00000000013.2 delta_degree_Celsius9.09090909090909 delta_degree_Celsius
2Steel-AsiaCompany CIT00000000033.2 delta_degree_Celsius9.09090909090909 delta_degree_Celsius
3Steel-AsiaCompany DSE00000000043.2 delta_degree_Celsius9.09090909090909 delta_degree_Celsius
4Steel-AsiaCompany ESE00000000053.2 delta_degree_Celsius9.09090909090909 delta_degree_Celsius
5Steel-AsiaCompany FNL00000000063.2 delta_degree_Celsius9.09090909090909 delta_degree_Celsius
6Steel-AsiaCompany GCN00000000073.2 delta_degree_Celsius9.09090909090909 delta_degree_Celsius
7Steel-AsiaCompany HCN00000000083.2 delta_degree_Celsius9.09090909090909 delta_degree_Celsius
8Steel-AsiaCompany ICN00000000093.2 delta_degree_Celsius9.09090909090909 delta_degree_Celsius
9Steel-AsiaCompany JBR00000000103.2 delta_degree_Celsius9.09090909090909 delta_degree_Celsius
10Steel-AsiaCompany LBR00000000123.2 delta_degree_Celsius9.09090909090909 delta_degree_Celsius
\n", + "
" + ], + "text/plain": [ + " group company_name company_id temperature_score \\\n", + "0 Steel-Asia Company AW US7134481081 3.2 delta_degree_Celsius \n", + "1 Steel-Asia Company A JP0000000001 3.2 delta_degree_Celsius \n", + "2 Steel-Asia Company C IT0000000003 3.2 delta_degree_Celsius \n", + "3 Steel-Asia Company D SE0000000004 3.2 delta_degree_Celsius \n", + "4 Steel-Asia Company E SE0000000005 3.2 delta_degree_Celsius \n", + "5 Steel-Asia Company F NL0000000006 3.2 delta_degree_Celsius \n", + "6 Steel-Asia Company G CN0000000007 3.2 delta_degree_Celsius \n", + "7 Steel-Asia Company H CN0000000008 3.2 delta_degree_Celsius \n", + "8 Steel-Asia Company I CN0000000009 3.2 delta_degree_Celsius \n", + "9 Steel-Asia Company J BR0000000010 3.2 delta_degree_Celsius \n", + "10 Steel-Asia Company L BR0000000012 3.2 delta_degree_Celsius \n", + "\n", + " contribution_relative \n", + "0 9.09090909090909 delta_degree_Celsius \n", + "1 9.09090909090909 delta_degree_Celsius \n", + "2 9.09090909090909 delta_degree_Celsius \n", + "3 9.09090909090909 delta_degree_Celsius \n", + "4 9.09090909090909 delta_degree_Celsius \n", + "5 9.09090909090909 delta_degree_Celsius \n", + "6 9.09090909090909 delta_degree_Celsius \n", + "7 9.09090909090909 delta_degree_Celsius \n", + "8 9.09090909090909 delta_degree_Celsius \n", + "9 9.09090909090909 delta_degree_Celsius \n", + "10 9.09090909090909 delta_degree_Celsius " + ] + }, + "execution_count": 19, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "region = 'Asia'\n", "sector = 'Steel'\n", @@ -427,9 +833,33 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 20, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/opt/app-root/lib64/python3.8/site-packages/pint_pandas/pint_array.py:648: UnitStrippedWarning: The unit of the quantity is stripped when downcasting to ndarray.\n", + " return np.array(qtys, dtype=\"object\", copy=copy)\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "calculate scopes = []\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/opt/app-root/lib64/python3.8/site-packages/pandas/core/dtypes/cast.py:1990: UnitStrippedWarning: The unit of the quantity is stripped when downcasting to ndarray.\n", + " result[:] = values\n" + ] + } + ], "source": [ "time_frames = [ETimeFrames.LONG]\n", "scopes = [EScope.S1S2]\n", @@ -446,9 +876,22 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 21, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "image/png": "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WXDSSSctmzNnTvNEIrH3WWed1SOZTLa59tpr53Xu3Hn9iBEjpr377rvT5s6d2/Tmm2/eeeTIkdMmTZo0+YADDlh14403lq1du9YuueSSHv/4xz8+nThx4uRzzjlnwZVXXtk19GuS7aPDkSIiIlnQvn376gkTJkx6+eWX2/7zn/9se8455/T85S9/OSt1mTfffHOHTz/9tOWgQYP6Aqxfv94GDBiwYvz48S0+/vjjVocffnhvgOrqakpLS9eHeB3SeFSEiYiIZEnTpk0ZMmTI8iFDhizfd999Vz/88MMdU+e7O4cccsiy559//r+p0997771We+yxx+px48ZNyW5iySQVYUUgUZksAdrHtx2BlsA6YA2wNv65Blg+fejgdYFiimRNojLZhE33iRZE+0LN/lDzc9n0oYPV2iCN4sMPP2xRUlLCPvvssxbggw8+aNWtW7d1s2bNar506dKSnXfemcMOO2zlFVdc0WPChAkt9t5777XLli0rmT59erN99913zaJFi5q+/vrrOxx55JEr165dax999FGLgQMHrgn9umTbqQgrAPEHSgLoU+u2G7AT0BawNFblicrkAmA28DnwGfApMBEYPX3o4OWNHl4kAxKVyaZE7//a+0SCaJ9oQ/r7xHyifWIGX+4TE4Ax04cOXtno4SUr0h1SojEtW7asySWXXNJj2bJlTZo0aeKJRGLtQw89NOOBBx7ocMwxx/QuKytb9+67704bNmzY9DPOOGP3devWGcB11103e99991372GOPfXrJJZf0WL58eZONGzfaD37wgyoVYflNF/DOQ4nKZEugHDg0vpUDrTK82WpgEvBuyu2j6UMH6w0kwSUqk62Bg/lynxhE1LqVSRuJirGa/WEUMFn7RG768MMPp++3334LQueQ7Pvwww877bfffonQOeqiIixPJCqTvYHTgaPIzgdMOr4AngeeBf45fejgtWHjSDFJVCb3ItonjgQGArlwuv4s4DmifeJNHcrMHSrCipeKMNkmicrkrsAZ8a1/2DQNWg68DDwNPKuCTDIhUZnsCZxJtE/sFThOQ5YALxLtE8+rIAtLRVjxUhEmaUtUJpsRfchcBBxEev1Wcs0C4AHgL9OHDp4eOIvkufjw+9nAhUQtXvnoC+A+YNj0oYNnNbSwND4VYcVLRZg0KFGZ3Imo8PoJsEvgOI2lmqh17C7gpelDB+uSHJK2RGWyFPhhfOscOE5j2Uh0CP8u4HX1H8seFWHFK5eLMI2YH1iiMrlrojJ5BzATuIXCKcAgen8dB7wAfJioTJ4UNo7kg0RlsleiMjmM6Azd6ymcAgygCXAS8CrwfqIyeUzYOCISklrCAklUJtsDvwAuITc62WfLu8A104cO/lfoIJJbEpXJjkRF18UU1/A5I4n2ibdDBylkagkrXrncEqYiLMviMb0uIvqwKQ2bJqh/AT8PMVaP5JZEZbI50WH4a4kGTi1WLwJXTR86eELoIIWodhE2fFTVgMZcf0V5WYP/y5o0aTKgV69eq2sen3zyyYtuvvnmLwYNGtTn1ltvnfn1r3991dZs85133mk1c+bM5qeffvrSuuaPHDmy9QMPPNDxwQcfnLmldRx66KF7PP300/8FuO+++zpUVlbOT3f7L7zwQtvbbrut7I033vikZtopp5ySGDJkyNLzzjtv8Q033ND5pz/96YK2bdtWp26rU6dOG1u3br3/qlWrPpg+fXqziy++uPvLL7/8We3X8+ijj7afOHFiq5tvvvmLdDPVJZeLMB2OzKJEZfKbwHjgToq7AAM4HHg3UZm8LR7jSYpQojJ5ItFgwLdS3AUYRIfuxyYqkzfGhakUmBYtWlRPmTJlUs1te4uL0aNHt04mk+3rmrd+/Xq+/vWvr6qvAAMYMWLEJ506ddq4cOHCJvfff3+jHvofNmxY2YoVK/5XZ9RsK3WZRCKx/uWXX/4MNn893/nOd5Zu7+8o16kIy4JEZbJ9ojL5V+AVoF/oPDmkCXA58FGiMnl46DCSPYnKZKdEZfJxovG09ggcJ5c0I2oRHJeoTB4cOoxk3zPPPNOuf//+ffv167fnscceu/vSpUtLAEaMGNF6//3379unT59+++yzz54LFy5scsstt+zy/PPP79S3b99+9957706XX375LieddNJuBxxwQN+TTz55txdeeKHtN77xjT0Ali5dWnLqqacmevfu3a937979HnzwwR0Bunbtus/cuXObXnHFFd1mzpzZom/fvv0uuuiibhUVFYmHH354x5pcJ5xwwm6PPPLIjnVErtNNN93Ued68ec0OPfTQ3gceeGDv1G2lLjd16tTmvXr12mvNmjVW+/XccccdHb/73e/2AJgzZ07To48+uufee++95957773nq6++ugNAMpls07dv3359+/bt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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], "source": [ "plot_grouped_statistics(aggregated_portfolio, company_contributions, analysis_parameters)" ] @@ -464,9 +907,175 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 22, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
company_namecompany_idsectorcontributiontemperature_scoreownership_percentageportfolio_percentage
15Company AVUS6293775085Steel3.0769230769230775 delta_degree_Celsius3.2 delta_degree_Celsius0.143.08
14Company AWUS7134481081Steel3.0769230769230775 delta_degree_Celsius3.2 delta_degree_Celsius0.103.08
13Company AJP0000000001Steel3.0769230769230775 delta_degree_Celsius3.2 delta_degree_Celsius1.073.08
12Company BNL0000000002Steel3.0769230769230775 delta_degree_Celsius3.2 delta_degree_Celsius1.513.08
11Company CIT0000000003Steel3.0769230769230775 delta_degree_Celsius3.2 delta_degree_Celsius0.343.08
10Company DSE0000000004Steel3.0769230769230775 delta_degree_Celsius3.2 delta_degree_Celsius0.483.08
9Company ESE0000000005Steel3.0769230769230775 delta_degree_Celsius3.2 delta_degree_Celsius3.393.08
8Company FNL0000000006Steel3.0769230769230775 delta_degree_Celsius3.2 delta_degree_Celsius0.113.08
7Company GCN0000000007Steel3.0769230769230775 delta_degree_Celsius3.2 delta_degree_Celsius0.053.08
6Company HCN0000000008Steel3.0769230769230775 delta_degree_Celsius3.2 delta_degree_Celsius0.183.08
\n", + "
" + ], + "text/plain": [ + " company_name company_id sector contribution \\\n", + "15 Company AV US6293775085 Steel 3.0769230769230775 delta_degree_Celsius \n", + "14 Company AW US7134481081 Steel 3.0769230769230775 delta_degree_Celsius \n", + "13 Company A JP0000000001 Steel 3.0769230769230775 delta_degree_Celsius \n", + "12 Company B NL0000000002 Steel 3.0769230769230775 delta_degree_Celsius \n", + "11 Company C IT0000000003 Steel 3.0769230769230775 delta_degree_Celsius \n", + "10 Company D SE0000000004 Steel 3.0769230769230775 delta_degree_Celsius \n", + "9 Company E SE0000000005 Steel 3.0769230769230775 delta_degree_Celsius \n", + "8 Company F NL0000000006 Steel 3.0769230769230775 delta_degree_Celsius \n", + "7 Company G CN0000000007 Steel 3.0769230769230775 delta_degree_Celsius \n", + "6 Company H CN0000000008 Steel 3.0769230769230775 delta_degree_Celsius \n", + "\n", + " temperature_score ownership_percentage portfolio_percentage \n", + "15 3.2 delta_degree_Celsius 0.14 3.08 \n", + "14 3.2 delta_degree_Celsius 0.10 3.08 \n", + "13 3.2 delta_degree_Celsius 1.07 3.08 \n", + "12 3.2 delta_degree_Celsius 1.51 3.08 \n", + "11 3.2 delta_degree_Celsius 0.34 3.08 \n", + "10 3.2 delta_degree_Celsius 0.48 3.08 \n", + "9 3.2 delta_degree_Celsius 3.39 3.08 \n", + "8 3.2 delta_degree_Celsius 0.11 3.08 \n", + "7 3.2 delta_degree_Celsius 0.05 3.08 \n", + "6 3.2 delta_degree_Celsius 0.18 3.08 " + ] + }, + "execution_count": 22, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "sector_contributions = company_contributions[['company_name', 'company_id', 'sector', 'contribution', 'temperature_score', 'ownership_percentage', 'portfolio_percentage']]\n", "sector_contributions.loc[sector_contributions['sector'] == 'Steel'][:10].round(2)" @@ -486,7 +1095,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 23, "metadata": { "pycharm": { "name": "#%%\n" diff --git a/test/test_base_providers.py b/test/test_base_providers.py index fed6e8d7..0b56bc13 100644 --- a/test/test_base_providers.py +++ b/test/test_base_providers.py @@ -95,21 +95,21 @@ def test_get_benchmark(self): 0.112645956, 0.100481026, 0.088316097, 0.076151167, 0.062125588, 0.048100009, 0.034074431, 0.020048852, 0.006023273, 0.005843878, 0.005664482, 0.005485087, 0.005305691, 0.005126296 - ], index=seq_index, dtype="pint[delta_degC]"), + ], index=seq_index, dtype="pint[t CO2/MWh]"), pd.Series([0.476586932, 0.444131055, 0.389650913, 0.335170772, 0.28069063, 0.226210489, 0.22171226, 0.192474531, 0.163236802, 0.133999073, 0.104761344, 0.075523615, 0.068787023, 0.062050431, 0.055313839, 0.048577247, 0.041840655, 0.038453251, 0.035065847, 0.031678443, 0.028291039, 0.024903635, 0.020998121, 0.017092607, 0.013187093, 0.009281579, 0.005376065, 0.005326111, 0.005276157, 0.005226203, 0.005176249, 0.005126296 - ], index=seq_index, dtype="pint[delta_degC]"), + ], index=seq_index, dtype="pint[t CO2/MWh]"), pd.Series([0.224573932, 0.17975612, 0.163761501, 0.147766883, 0.131772265, 0.115777646, 0.099783028, 0.090628361, 0.081473693, 0.072319026, 0.063164359, 0.054009692, 0.050089853, 0.046170015, 0.042250176, 0.038330338, 0.034410499, 0.031104249, 0.027797999, 0.024491748, 0.021185498, 0.017879248, 0.016155615, 0.014431983, 0.012708351, 0.010984719, 0.009261087, 0.008488943, 0.007716798, 0.006944654, 0.00617251, 0.005400365 - ], index=seq_index, dtype="pint[delta_degC]")] + ], index=seq_index, dtype="pint[t CO2/MWh]")] expected_data = pd.concat(data, axis=1, ignore_index=True).T expected_data.index=self.company_ids @@ -138,7 +138,7 @@ def test_get_cumulative_value(self): print(self.base_warehouse._get_cumulative_emission(projected_emission_intensity=projected_ei, projected_production=projected_production)) print(f"expected_data = {expected_data}") - pd.testing.assert_frame_equal( + pd.testing.assert_series_equal( self.base_warehouse._get_cumulative_emission(projected_emission_intensity=projected_ei, projected_production=projected_production), expected_data) From c2dd6b791cd4dfd63f1aa012e28f8b333d7eeed3 Mon Sep 17 00:00:00 2001 From: MichaelTiemannOSC Date: Fri, 31 Dec 2021 19:14:27 +0000 Subject: [PATCH 050/345] Reconcile test_excel unit test + unittest meta test There remains an outstanding temperature score problem, but other problems seem to be resolved down to the level of what the test suite can see Added unittest_vs_pint notebook to illustrate the aforementioned limitation. Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- ITR/data/base_providers.py | 10 +-- ITR/data/excel.py | 10 ++- ITR/temperature_score.py | 11 ++-- examples/unittest_vs_pint.ipynb | 111 ++++++++++++++++++++++++++++++++ test/test_base_providers.py | 2 + test/test_excel_provider.py | 55 +++++++++------- 6 files changed, 158 insertions(+), 41 deletions(-) create mode 100644 examples/unittest_vs_pint.ipynb diff --git a/ITR/data/base_providers.py b/ITR/data/base_providers.py index 7c87fedc..b8bdcf5e 100644 --- a/ITR/data/base_providers.py +++ b/ITR/data/base_providers.py @@ -128,7 +128,7 @@ def get_company_projected_trajectories(self, company_ids: List[str]) -> pd.DataF """ return pd.DataFrame( [self._convert_projections_to_series(c, self.column_config.PROJECTED_TRAJECTORIES) for c in - self.get_company_data(company_ids)]) + self.get_company_data(company_ids)], dtype='pint[t CO2/MWh]') def get_company_projected_targets(self, company_ids: List[str]) -> pd.DataFrame: """ @@ -137,7 +137,7 @@ def get_company_projected_targets(self, company_ids: List[str]) -> pd.DataFrame: """ return pd.DataFrame( [self._convert_projections_to_series(c, self.column_config.PROJECTED_TARGETS) for c in - self.get_company_data(company_ids)]) + self.get_company_data(company_ids)], dtype='pint[t CO2/MWh]') # This is actual output production (whatever the output production units may be). # Not to be confused with the term "projected production" as it relates to energy intensity. @@ -191,9 +191,9 @@ def get_company_projected_production(self, company_sector_region_info: pd.DataFr :return: DataFrame of projected productions for [base_year - base_year + 50] """ benchmark_production_projections = self.get_benchmark_projections(company_sector_region_info) - return benchmark_production_projections\ - .add(1).cumprod(axis=1).mul( - company_sector_region_info[self.column_config.GHG_SCOPE12].values, axis=0) + company_production = company_sector_region_info[self.column_config.GHG_SCOPE12] + return benchmark_production_projections.add(1).cumprod(axis=1).mul( + company_production, axis=0).astype('pint[MWh]') def get_benchmark_projections(self, company_sector_region_info: pd.DataFrame, scope: EScope = EScope.S1S2) -> pd.DataFrame: diff --git a/ITR/data/excel.py b/ITR/data/excel.py index e6dd84be..9367a7aa 100644 --- a/ITR/data/excel.py +++ b/ITR/data/excel.py @@ -215,13 +215,11 @@ def _company_df_to_model(self, df_fundamentals: pd.DataFrame, df_targets: pd.Dat company_id = company_data[self.column_config.COMPANY_ID] # pint automatically handles any unit conversions required ghg_s1s2 = df_fundamentals[df_fundamentals[self.column_config.COMPANY_ID]==company_id][self.column_config.GHG_SCOPE12].squeeze() - if ghg_s1s2 is None: - ghg_s1s2 = 1 - company_data[self.column_config.GHG_SCOPE12] = Q_(ghg_s1s2, ureg('MWh')) + if ghg_s1s2: + company_data[self.column_config.GHG_SCOPE12] = Q_(ghg_s1s2, ureg('MWh')) ghg_s3 = df_fundamentals[df_fundamentals[self.column_config.COMPANY_ID]==company_id][self.column_config.GHG_SCOPE3].squeeze() - if ghg_s3 is None: - ghg_s3 = 1 - company_data[self.column_config.GHG_SCOPE3] = Q_(ghg_s3, ureg('MWh')) + if ghg_s3: + company_data[self.column_config.GHG_SCOPE3] = Q_(ghg_s3, ureg('MWh')) company_data[self.column_config.PROJECTED_TARGETS] = {'S1S2': {'projections': self._convert_series_to_projections (df_targets.loc[company_id, :])}} company_data[self.column_config.PROJECTED_EI] = {'S1S2': {'projections': self._convert_series_to_projections (df_ei.loc[company_id, :])}} diff --git a/ITR/temperature_score.py b/ITR/temperature_score.py index 6f088d13..48a0a298 100644 --- a/ITR/temperature_score.py +++ b/ITR/temperature_score.py @@ -44,7 +44,7 @@ def get_score(self, scorable_row: pd.Series) -> Tuple[Quantity['delta_degC'], Qu Get the temperature score for a certain target based on the annual reduction rate and the regression parameters. :param scorable_row: The target as a row of a data frame - :return: The temperature score + :return: The temperature score, which is a tuple of (TEMPERATURE_SCORE,TRAJECTORY_SCORE,TRAJECTORY_OVERSHOOT,TARGET_SCORE,TARGET_OVERSHOOT,TEMPERATURE_RESULTS]) """ # if either cum target or trajectory is zero return default. if scorable_row[self.c.COLS.CUMULATIVE_TARGET].m==0 or scorable_row[self.c.COLS.CUMULATIVE_TRAJECTORY].m == 0.0: @@ -90,11 +90,11 @@ def get_ghc_temperature_score(self, row: pd.Series, company_data: pd.DataFrame) try: # If the s3 emissions are less than 40 percent, we'll ignore them altogether, if not, we'll weigh them if s3[self.c.COLS.GHG_SCOPE3] / (s1s2[self.c.COLS.GHG_SCOPE12] + s3[self.c.COLS.GHG_SCOPE3]) < 0.4: - print(f"ignoring s3: {row}") + # print(f"ignoring s3: {row}") return s1s2[self.c.COLS.TEMPERATURE_SCORE], s1s2[self.c.TEMPERATURE_RESULTS] else: company_emissions = s1s2[self.c.COLS.GHG_SCOPE12] + s3[self.c.COLS.GHG_SCOPE3] - print(company_emissions) + # print(company_emissions) return (Q_((s1s2[self.c.COLS.TEMPERATURE_SCORE].m * s1s2[self.c.COLS.GHG_SCOPE12] + s3[self.c.COLS.TEMPERATURE_SCORE].m * s3[self.c.COLS.GHG_SCOPE3]) / company_emissions, s1s2[self.c.COLS.TEMPERATURE_SCORE].u), @@ -130,7 +130,10 @@ def _prepare_data(self, data: pd.DataFrame): score_combinations = pd.DataFrame(list(itertools.product(*[companies, scopes, self.time_frames])), columns=[self.c.COLS.COMPANY_ID, self.c.COLS.SCOPE, self.c.COLS.TIME_FRAME]) + # print(f"data = {data}") + # print(f"score_combinations = {score_combinations}") scoring_data = pd.merge(left=data, right=score_combinations, how='outer', on=[self.c.COLS.COMPANY_ID]) + # print(f"scoring_data = {scoring_data}") scoring_data[self.c.COLS.TEMPERATURE_SCORE], scoring_data[self.c.COLS.TRAJECTORY_SCORE], scoring_data[ self.c.COLS.TRAJECTORY_OVERSHOOT], scoring_data[self.c.COLS.TARGET_SCORE], scoring_data[ self.c.COLS.TARGET_OVERSHOOT], scoring_data[self.c.TEMPERATURE_RESULTS] = zip(*scoring_data.apply( @@ -181,8 +184,6 @@ def calculate(self, data: Optional[pd.DataFrame] = None, self._check_column(data, self.c.COLS.GHG_SCOPE12) self._check_column(data, self.c.COLS.GHG_SCOPE3) data = self._calculate_company_score(data) - else: - print(f"calculate scopes = {self.scopes}") # We need to filter the scopes again, because we might have had to add a scope in the preparation step data = data[data[self.c.COLS.SCOPE].isin(self.scopes)] diff --git a/examples/unittest_vs_pint.ipynb b/examples/unittest_vs_pint.ipynb new file mode 100644 index 00000000..0f60315a --- /dev/null +++ b/examples/unittest_vs_pint.ipynb @@ -0,0 +1,111 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 13, + "id": "42085b49-fb8d-4d44-886b-316d5d6d8284", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "0 10.000000000000002\n", + "1 50.000000000000014\n", + "dtype: pint[CO2 * megametric_ton]\n", + "expected_data = 0 10.0\n", + "1 50.0\n", + "dtype: pint[CO2 * megametric_ton]\n" + ] + }, + { + "ename": "AssertionError", + "evalue": "Series Expected type , found instead", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mAssertionError\u001b[0m Traceback (most recent call last)", + "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m\u001b[0m\n\u001b[1;32m 41\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 42\u001b[0m \u001b[0mx\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mTestBaseProvider\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'test_pint_series_equality'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 43\u001b[0;31m \u001b[0mTestBaseProvider\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mtest_pint_series_equality\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mx\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", + "\u001b[0;32m\u001b[0m in \u001b[0;36mtest_pint_series_equality\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 35\u001b[0m projected_production=projected_production))\n\u001b[1;32m 36\u001b[0m \u001b[0mprint\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34mf\"expected_data = {expected_data}\"\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 37\u001b[0;31m pd.testing.assert_series_equal(\n\u001b[0m\u001b[1;32m 38\u001b[0m PA_._from_sequence(_get_cumulative_emission(projected_emission_intensity=projected_ei,\n\u001b[1;32m 39\u001b[0m projected_production=projected_production)),\n", + " \u001b[0;31m[... skipping hidden 1 frame]\u001b[0m\n", + "\u001b[0;32m/opt/app-root/lib64/python3.8/site-packages/pandas/_testing/asserters.py\u001b[0m in \u001b[0;36m_check_isinstance\u001b[0;34m(left, right, cls)\u001b[0m\n\u001b[1;32m 230\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 231\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0misinstance\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mleft\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcls\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 232\u001b[0;31m raise AssertionError(\n\u001b[0m\u001b[1;32m 233\u001b[0m \u001b[0;34mf\"{cls_name} Expected type {cls}, found {type(left)} instead\"\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 234\u001b[0m )\n", + "\u001b[0;31mAssertionError\u001b[0m: Series Expected type , found instead" + ] + } + ], + "source": [ + "import unittest\n", + "import pandas as pd\n", + "from numpy.testing import assert_array_equal\n", + "\n", + "from pint import set_application_registry\n", + "from pint_pandas import PintArray, PintType\n", + "from openscm_units import unit_registry\n", + "PintType.ureg = unit_registry\n", + "ureg = unit_registry\n", + "set_application_registry(ureg)\n", + "Q_ = ureg.Quantity\n", + "PA_ = PintArray\n", + "\n", + "ureg.define(\"CO2e = CO2 = CO2eq = CO2_eq\")\n", + "\n", + "def _get_cumulative_emission(projected_emission_intensity, projected_production):\n", + " df = projected_emission_intensity.multiply(projected_production)\n", + " return df.sum(axis=1).astype('pint[Mt CO2]')\n", + "\n", + "class TestBaseProvider(unittest.TestCase):\n", + " \"\"\"\n", + " Test the Base provider\n", + " \"\"\"\n", + "\n", + " def setUp(self) -> None:\n", + " pass\n", + " \n", + " def test_pint_series_equality(self):\n", + " projected_ei = pd.DataFrame([[Q_(1.0, 't CO2/MWh'), Q_(2.0, 't CO2/MWh')], [Q_(3.0, 't CO2/MWh'), Q_(4.0, 't CO2/MWh')]], dtype='pint[t CO2/MWh]')\n", + " projected_production = pd.DataFrame([[Q_(2.0, 'TWh'), Q_(4.0, 'TWh')], [Q_(6.0, 'TWh'), Q_(8.0, 'TWh')]], dtype='pint[TWh]')\n", + " expected_data = pd.Series([10.0, 50.0],\n", + " index=[0, 1],\n", + " dtype='pint[Mt CO2]')\n", + " print(_get_cumulative_emission(projected_emission_intensity=projected_ei,\n", + " projected_production=projected_production))\n", + " print(f\"expected_data = {expected_data}\")\n", + " pd.testing.assert_series_equal(\n", + " _get_cumulative_emission(projected_emission_intensity=projected_ei,\n", + " projected_production=projected_production), expected_data)\n", + "\n", + "x = TestBaseProvider('test_pint_series_equality')\n", + "TestBaseProvider.test_pint_series_equality(x)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "9e730bfc-22ef-42c0-8d7f-3bfd14b30517", + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.8.3" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/test/test_base_providers.py b/test/test_base_providers.py index 0b56bc13..62758d3c 100644 --- a/test/test_base_providers.py +++ b/test/test_base_providers.py @@ -76,7 +76,9 @@ def test_temp_score_from_excel_data(self): ) # portfolio data portfolio_data = ITR.utils.get_data(self.base_warehouse, portfolio) + print(f"portfolio_data = {portfolio_data}") scores = temp_score.calculate(portfolio_data) + print(f"scores = {scores}") agg_scores = temp_score.aggregate_scores(scores) # verify company scores: diff --git a/test/test_excel_provider.py b/test/test_excel_provider.py index 989f4064..cff355a7 100644 --- a/test/test_excel_provider.py +++ b/test/test_excel_provider.py @@ -12,6 +12,7 @@ from ITR.temperature_score import TemperatureScore from ITR.portfolio_aggregation import PortfolioAggregationMethod +from ITR.data.osc_units import ureg, Q_, PA_ class TestExcelProvider(unittest.TestCase): """ @@ -24,16 +25,16 @@ def setUp(self) -> None: self.sector_data_path = os.path.join(self.root, "inputs", "OECM_EI_and_production_benchmarks.xlsx") self.excel_company_data = ExcelProviderCompany(excel_path=self.company_data_path) self.excel_production_bm = ExcelProviderProductionBenchmark(excel_path=self.sector_data_path) - self.excel_EI_bm = ExcelProviderIntensityBenchmark(excel_path=self.sector_data_path, benchmark_temperature=1.5, - benchmark_global_budget=396, is_AFOLU_included=False) + self.excel_EI_bm = ExcelProviderIntensityBenchmark(excel_path=self.sector_data_path, benchmark_temperature=Q_(1.5, ureg.delta_degC), + benchmark_global_budget=Q_(396, ureg('Gt CO2')), is_AFOLU_included=False) self.excel_provider = DataWarehouse(self.excel_company_data, self.excel_production_bm, self.excel_EI_bm) self.company_ids = ["US0079031078", "US00724F1012", "FR0000125338"] self.company_info_at_base_year = pd.DataFrame( - [[1.6982474347547, 1.04827859e+08, 'Electricity Utilities', 'North America'], - [0.476586931582279, 5.98937002e+08, 'Electricity Utilities', 'North America'], - [0.22457393169277, 1.22472003e+08, 'Electricity Utilities', 'Europe']], + [[Q_(1.6982474347547, ureg('t CO2/MWh')), Q_(1.04827859e+08, ureg('MWh')), 'Electricity Utilities', 'North America'], + [Q_(0.476586931582279, ureg('t CO2/MWh')), Q_(5.98937002e+08, ureg('MWh')), 'Electricity Utilities', 'North America'], + [Q_(0.22457393169277, ureg('t CO2/MWh')), Q_(1.22472003e+08, ureg('MWh')), 'Electricity Utilities', 'Europe']], index=self.company_ids, columns=[ColumnsConfig.BASE_EI, ColumnsConfig.GHG_SCOPE12, ColumnsConfig.SECTOR, ColumnsConfig.REGION]) @@ -66,13 +67,13 @@ def test_temp_score_from_excel_data(self): agg_scores = temp_score.aggregate_scores(scores) # verify company scores: - expected = [2.05, 2.22, 2.06, 2.01, 1.93, 1.78, 1.71, 1.34, 2.21, 2.69, 2.65, temp_score.fallback_score, 2.89, + expected = pd.Series([2.05, 2.22, 2.06, 2.01, 1.93, 1.78, 1.71, 1.34, 2.21, 2.69, 2.65, temp_score.fallback_score, 2.89, 1.91, 2.16, 1.76, temp_score.fallback_score, temp_score.fallback_score, 1.47, 1.72, 1.76, 1.81, temp_score.fallback_score, 1.78, 1.84, temp_score.fallback_score, temp_score.fallback_score, 1.74, - 1.88, temp_score.fallback_score] + 1.88, temp_score.fallback_score], dtype='pint[delta_degC]') assert_array_equal(scores.temperature_score.values, expected) # verify that results exist - self.assertAlmostEqual(agg_scores.long.S1S2.all.score, 2.259, places=2) + self.assertAlmostEqual(agg_scores.long.S1S2.all.score, Q_(2.259, ureg.delta_degC), places=2) def test_get_projected_value(self): expected_data = pd.DataFrame([[1.698247435, 1.698247435, 1.590828573, 1.492707987, 1.403890821, 1.325025884, @@ -95,8 +96,9 @@ def test_get_projected_value(self): 0.062450199, 0.056927654]], columns=range(TemperatureScoreConfig.CONTROLS_CONFIG.base_year, TemperatureScoreConfig.CONTROLS_CONFIG.target_end_year + 1), - index=self.company_ids) - pd.testing.assert_frame_equal(self.excel_company_data.get_company_projected_intensities(self.company_ids), + index=self.company_ids, + dtype='pint[t CO2/MWh]') + pd.testing.assert_frame_equal(self.excel_company_data.get_company_projected_trajectories(self.company_ids), expected_data, check_names=False) def test_get_benchmark(self): @@ -122,8 +124,8 @@ def test_get_benchmark(self): 0.00617251, 0.005400365]], index=self.company_ids, columns=range(TemperatureScoreConfig.CONTROLS_CONFIG.base_year, - TemperatureScoreConfig.CONTROLS_CONFIG.target_end_year + 1)) - + TemperatureScoreConfig.CONTROLS_CONFIG.target_end_year + 1), + dtype='pint[t CO2/MWh]') pd.testing.assert_frame_equal( self.excel_EI_bm.get_SDA_intensity_benchmarks(self.company_info_at_base_year), expected_data) @@ -131,15 +133,18 @@ def test_get_benchmark(self): def test_get_projected_production(self): expected_data_2025 = pd.Series([1.06866370e+08, 6.10584093e+08, 1.28474171e+08], index=self.company_ids, - name=2025) + name=2025, + dtype='pint[MWh]') pd.testing.assert_series_equal( self.excel_production_bm.get_company_projected_production(self.company_info_at_base_year)[2025], expected_data_2025) def test_get_cumulative_value(self): - projected_emission = pd.DataFrame([[1.0, 2.0], [3.0, 4.0]]) - projected_production = pd.DataFrame([[2.0, 4.0], [6.0, 8.0]]) - expected_data = pd.Series([10.0, 50.0]) + projected_emission = pd.DataFrame([[1.0, 2.0], [3.0, 4.0]], + dtype='pint[t CO2/MWh]') + projected_production = pd.DataFrame([[2.0, 4.0], [6.0, 8.0]], + dtype='pint[MWh]') + expected_data = pd.Series([10.0, 50.0], dtype='pint[Mt CO2]') pd.testing.assert_series_equal( self.excel_provider._get_cumulative_emission(projected_emission_intensity=projected_emission, projected_production=projected_production), expected_data) @@ -151,14 +156,14 @@ def test_get_company_data(self): self.assertEqual(company_2.company_name, "Company AH") self.assertEqual(company_1.company_id, "US0079031078") self.assertEqual(company_2.company_id, "US00724F1012") - self.assertAlmostEqual(company_1.ghg_s1s2, 104827858.636039) - self.assertAlmostEqual(company_2.ghg_s1s2, 598937001.892059) - self.assertAlmostEqual(company_1.cumulative_budget, 1362284467.0830, places=4) - self.assertAlmostEqual(company_2.cumulative_budget, 2262242040.68059, places=4) - self.assertAlmostEqual(company_1.cumulative_target, 3769096510.09909, places=4) - self.assertAlmostEqual(company_2.cumulative_target, 5912426347.23670, places=4) - self.assertAlmostEqual(company_1.cumulative_trajectory, 3745094638.52858, places=4) - self.assertAlmostEqual(company_2.cumulative_trajectory, 8631481789.38558, places=4) + self.assertAlmostEqual(company_1.ghg_s1s2, Q_(104827858.636039, ureg('MWh'))) + self.assertAlmostEqual(company_2.ghg_s1s2, Q_(598937001.892059, ureg('MWh'))) + self.assertAlmostEqual(company_1.cumulative_budget, Q_(1362284467.0830, ureg('t CO2')), places=4) + self.assertAlmostEqual(company_2.cumulative_budget, Q_(2262242040.68059, ureg('t CO2')), places=4) + self.assertAlmostEqual(company_1.cumulative_target, Q_(3769096510.09909, ureg('t CO2')), places=4) + self.assertAlmostEqual(company_2.cumulative_target, Q_(5912426347.23670, ureg('t CO2')), places=4) + self.assertAlmostEqual(company_1.cumulative_trajectory, Q_(3745094638.52858, ureg('t CO2')), places=4) + self.assertAlmostEqual(company_2.cumulative_trajectory, Q_(8631481789.38558, ureg('t CO2')), places=4) def test_get_value(self): expected_data = pd.Series([20248547997.0, @@ -168,4 +173,4 @@ def test_get_value(self): name='company_revenue') pd.testing.assert_series_equal(self.excel_company_data.get_value(company_ids=self.company_ids, variable_name=ColumnsConfig.COMPANY_REVENUE), - expected_data) + expected_data) \ No newline at end of file From 3d59cbc3b12dd7209e3d578f224a520a27a211a2 Mon Sep 17 00:00:00 2001 From: MichaelTiemannOSC Date: Fri, 31 Dec 2021 21:55:49 +0000 Subject: [PATCH 051/345] Sorted units problem in excel test (MWh vs GJ) The test_data_company.xlsx file has intensities given in t CO2/GJ, whereas in the JSON files they are given in t CO2/MWh. Also, disabled some print statements so that things look clean when run. Still confused about temperature score calculation. But everything else behaving OK. Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- ITR/data/base_providers.py | 2 ++ ITR/data/data_warehouse.py | 12 +++++++----- ITR/data/excel.py | 8 ++++---- test/test_base_providers.py | 14 +++++++------- 4 files changed, 20 insertions(+), 16 deletions(-) diff --git a/ITR/data/base_providers.py b/ITR/data/base_providers.py index b8bdcf5e..0866f943 100644 --- a/ITR/data/base_providers.py +++ b/ITR/data/base_providers.py @@ -110,6 +110,8 @@ def get_company_intensity_and_production_at_base_year(self, company_ids: List[st company_ids, [self.column_config.SECTOR, self.column_config.REGION, self.column_config.GHG_SCOPE12]] ei_at_base = self._get_company_intensity_at_year(base_year, company_ids).rename(self.column_config.BASE_EI) + # print(f"\ncompany_info = {company_info}\n\n") + # print(f"\nei_at_base = {ei_at_base}\n\n") return company_info.merge(ei_at_base, left_index=True, right_index=True) def get_company_fundamentals(self, company_ids: List[str]) -> pd.DataFrame: diff --git a/ITR/data/data_warehouse.py b/ITR/data/data_warehouse.py index 2b5ef814..5be6b7b1 100644 --- a/ITR/data/data_warehouse.py +++ b/ITR/data/data_warehouse.py @@ -65,6 +65,7 @@ def get_preprocessed_company_data(self, company_ids: List[str]) -> List[ICompany projected_emission_intensity=self.company_data.get_company_projected_targets(company_ids), projected_production=projected_production) + # print(f"company_info_at_base_year = {company_info_at_base_year}") df_trajectory = self._get_cumulative_emission( projected_emission_intensity=self.company_data.get_company_projected_trajectories(company_ids), projected_production=projected_production).rename(self.column_config.CUMULATIVE_TRAJECTORY) @@ -75,10 +76,11 @@ def get_preprocessed_company_data(self, company_ids: List[str]) -> List[ICompany projected_emission_intensity=self.benchmarks_projected_emission_intensity.get_SDA_intensity_benchmarks( company_info_at_base_year), projected_production=projected_production).rename(self.column_config.CUMULATIVE_BUDGET) + # print(f"""\ndf_budget = {df_budget}\n\nf_budget.sum() = {df_budget.sum()}\n\n""") df_company_data = pd.concat([df_company_data, df_trajectory, df_target, df_budget], axis=1) - df_company_data[self.column_config.BENCHMARK_GLOBAL_BUDGET] = pd.Series([self.benchmarks_projected_emission_intensity.benchmark_global_budget.m]* - len(df_company_data), dtype='pint[t CO2]') - df_company_data[self.column_config.BENCHMARK_TEMP] = pd.Series([self.benchmarks_projected_emission_intensity.benchmark_temperature.m]* + df_company_data[self.column_config.BENCHMARK_GLOBAL_BUDGET] = pd.Series([self.benchmarks_projected_emission_intensity.benchmark_global_budget]* + len(df_company_data), dtype='pint[Gt CO2]') + df_company_data[self.column_config.BENCHMARK_TEMP] = pd.Series([self.benchmarks_projected_emission_intensity.benchmark_temperature]* len(df_company_data), dtype='pint[delta_degC]') companies = df_company_data.to_dict(orient="records") @@ -119,5 +121,5 @@ def _get_cumulative_emissions(self, projected_emissions_intensity: pd.DataFrame, :return: weighted sum of production and emissions """ - return projected_emissions_intensity.reset_index(drop=True).multiply(projected_production.reset_index( - drop=True)).sum(axis=1) + df = projected_emission_intensity.multiply(projected_production) + return df.sum(axis=1).astype('pint[Mt CO2]') diff --git a/ITR/data/excel.py b/ITR/data/excel.py index 9367a7aa..1f53f7a2 100644 --- a/ITR/data/excel.py +++ b/ITR/data/excel.py @@ -162,13 +162,13 @@ def _convert_from_excel_data(self, excel_path: str) -> List[ICompanyData]: df_fundamentals = df_company_data[TabsConfig.FUNDAMENTAL] company_ids = df_fundamentals[self.column_config.COMPANY_ID].unique() - df_targets = self._get_projection(company_ids, df_company_data[TabsConfig.PROJECTED_TARGET], 'pint[Mt CO2]') + df_targets = self._get_projection(company_ids, df_company_data[TabsConfig.PROJECTED_TARGET], 'pint[t CO2/GJ]') if TabsConfig.PROJECTED_EI in df_company_data.keys(): - df_ei = self._get_projection(company_ids, df_company_data[TabsConfig.PROJECTED_EI], 'pint[t CO2/MWh]') + df_ei = self._get_projection(company_ids, df_company_data[TabsConfig.PROJECTED_EI], 'pint[t CO2/GJ]') else: df_ei = None if TabsConfig.HISTORIC_DATA in df_company_data.keys(): - df_historic = self._get_historic_data(company_ids, df_company_data[TabsConfig.HISTORIC_DATA], 'pint[t CO2/MWh]' + df_historic = self._get_historic_data(company_ids, df_company_data[TabsConfig.HISTORIC_DATA], 'pint[t CO2/GJ]' else: df_historic = None return self._company_df_to_model(df_fundamentals, df_targets, df_ei, df_historic) @@ -245,7 +245,7 @@ def _get_projection(self, company_ids: List[str], projections: pd.DataFrame, ast get the projected emissions for list of companies :param company_ids: list of company ids :param projections: Dataframe with listed projections per company - :return: series of projected emissions + :return: series of projected emission intensities """ projections = projections.reset_index().set_index(ColumnsConfig.COMPANY_ID) diff --git a/test/test_base_providers.py b/test/test_base_providers.py index 62758d3c..62132c8f 100644 --- a/test/test_base_providers.py +++ b/test/test_base_providers.py @@ -76,9 +76,9 @@ def test_temp_score_from_excel_data(self): ) # portfolio data portfolio_data = ITR.utils.get_data(self.base_warehouse, portfolio) - print(f"portfolio_data = {portfolio_data}") + # print(f"portfolio_data = {portfolio_data}") scores = temp_score.calculate(portfolio_data) - print(f"scores = {scores}") + # print(f"scores = {scores}") agg_scores = temp_score.aggregate_scores(scores) # verify company scores: @@ -125,8 +125,8 @@ def test_get_projected_production(self): index=self.company_ids, name=2025, dtype='pint[MWh]') - print(self.base_production_bm.get_company_projected_production(self.company_info_at_base_year)[2025]['US0079031078']) - print(expected_data_2025['US0079031078']) + # print(self.base_production_bm.get_company_projected_production(self.company_info_at_base_year)[2025]['US0079031078']) + # print(expected_data_2025['US0079031078']) pd.testing.assert_series_equal( self.base_production_bm.get_company_projected_production(self.company_info_at_base_year)[2025], expected_data_2025, check_dtype=False) @@ -137,9 +137,9 @@ def test_get_cumulative_value(self): expected_data = pd.Series([10.0, 50.0], index=[0, 1], dtype='pint[Mt CO2]') - print(self.base_warehouse._get_cumulative_emission(projected_emission_intensity=projected_ei, - projected_production=projected_production)) - print(f"expected_data = {expected_data}") + # print(self.base_warehouse._get_cumulative_emission(projected_emission_intensity=projected_ei, + # projected_production=projected_production)) + # print(f"expected_data = {expected_data}") pd.testing.assert_series_equal( self.base_warehouse._get_cumulative_emission(projected_emission_intensity=projected_ei, projected_production=projected_production), expected_data) From b0c9531453891ffcdb96c4efd047a448315feaf0 Mon Sep 17 00:00:00 2001 From: MichaelTiemannOSC Date: Sat, 1 Jan 2022 00:58:18 +0000 Subject: [PATCH 052/345] Add units to csv ingest and test cases Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- test/test_temperature_score.py | 37 +++++++++++++++++++++------------- 1 file changed, 23 insertions(+), 14 deletions(-) diff --git a/test/test_temperature_score.py b/test/test_temperature_score.py index b0714b96..30e84901 100644 --- a/test/test_temperature_score.py +++ b/test/test_temperature_score.py @@ -7,6 +7,7 @@ from ITR.temperature_score import TemperatureScore from ITR.portfolio_aggregation import PortfolioAggregationMethod +from ITR.data.osc_units import ureg, Q_, PA_ class TestTemperatureScore(unittest.TestCase): """ @@ -20,8 +21,16 @@ def setUp(self) -> None: :return: """ self.temperature_score = TemperatureScore(time_frames=[ETimeFrames.LONG], scopes=EScope.get_result_scopes()) - self.data = pd.read_csv(os.path.join(os.path.dirname(os.path.realpath(__file__)), "inputs", + df = pd.read_csv(os.path.join(os.path.dirname(os.path.realpath(__file__)), "inputs", "data_test_temperature_score.csv"), sep=";") + df['ghg_s1s2'] = df['ghg_s1s2'].astype('pint[MWh]') + df['ghg_s3'] = df['ghg_s3'].astype('pint[MWh]') + for cumulative in ['cumulative_budget', 'cumulative_target', 'cumulative_trajectory']: + df[cumulative] = df[cumulative].astype('pint[Mt CO2]') + df['benchmark_global_budget'] = df['benchmark_global_budget'].astype('pint[Gt CO2]') + df['benchmark_temperature'] = df['benchmark_temperature'].astype('pint[delta_degC]') + print(f"df = {df}") + self.data = df def test_temp_score(self) -> None: """ @@ -33,17 +42,17 @@ def test_temp_score(self) -> None: self.assertAlmostEqual(scores[ (scores["company_name"] == "Company T") & (scores["scope"] == EScope.S1S2) - ]["temperature_score"].iloc[0], 1.82, places=2, msg="The temp score was incorrect") + ]["temperature_score"].iloc[0], Q_(1.82, ureg.delta_degC), places=2, msg="The temp score was incorrect") self.assertAlmostEqual(scores[ (scores["company_name"] == "Company E") & (scores["scope"] == EScope.S1S2) - ]["temperature_score"].iloc[0], 1.84, places=2, + ]["temperature_score"].iloc[0], Q_(1.84, ureg.delta_degC), places=2, msg="The fallback temp score was incorrect") self.assertAlmostEqual(scores[ (scores["company_name"] == "Company AA") & (scores["time_frame"] == ETimeFrames.LONG) & (scores["scope"] == EScope.S1S2S3) - ]["temperature_score"].iloc[0], 1.79, places=5, + ]["temperature_score"].iloc[0], Q_(1.79, ureg.delta_degC), places=5, msg="The aggregated fallback temp score was incorrect") def test_temp_score_overwrite_tcre(self) -> None: @@ -53,48 +62,48 @@ def test_temp_score_overwrite_tcre(self) -> None: :return: """ overwritten_temp_score = self.temperature_score - overwritten_temp_score.c.CONTROLS_CONFIG.tcre = 1.0 + overwritten_temp_score.c.CONTROLS_CONFIG.tcre = Q_(1.0, ureg.delta_degC) scores = overwritten_temp_score.calculate(self.data) self.assertAlmostEqual(scores[ (scores["company_name"] == "Company T") & (scores["scope"] == EScope.S1S2) - ]["temperature_score"].iloc[0], 1.65, places=2, msg="The temp score was incorrect") + ]["temperature_score"].iloc[0], Q_(1.65, ureg.delta_degC), places=2, msg="The temp score was incorrect") self.assertAlmostEqual(scores[ (scores["company_name"] == "Company E") & (scores["scope"] == EScope.S1S2) - ]["temperature_score"].iloc[0], 1.65, places=2, + ]["temperature_score"].iloc[0], Q_(1.65, ureg.delta_degC), places=2, msg="The fallback temp score was incorrect") self.assertAlmostEqual(scores[ (scores["company_name"] == "Company AA") & (scores["time_frame"] == ETimeFrames.LONG) & (scores["scope"] == EScope.S1S2S3) - ]["temperature_score"].iloc[0], 1.63, places=5, + ]["temperature_score"].iloc[0], Q_(1.63, ureg.delta_degC), places=5, msg="The aggregated fallback temp score was incorrect") def test_portfolio_aggregations(self): scores = self.temperature_score.calculate(self.data) aggregations = self.temperature_score.aggregate_scores(scores) - self.assertAlmostEqual(aggregations.long.S1S2.all.score, 1.857, places=2, + self.assertAlmostEqual(aggregations.long.S1S2.all.score, Q_(1.857, ureg.delta_degC), places=2, msg="Long WATS aggregation failed") self.temperature_score.aggregation_method = PortfolioAggregationMethod.TETS aggregations = self.temperature_score.aggregate_scores(scores) - self.assertAlmostEqual(aggregations.long.S1S2.all.score, 1.875, places=2, + self.assertAlmostEqual(aggregations.long.S1S2.all.score, Q_(1.875, ureg.delta_degC), places=2, msg="Long TETS aggregation failed") self.temperature_score.aggregation_method = PortfolioAggregationMethod.MOTS aggregations = self.temperature_score.aggregate_scores(scores) - self.assertAlmostEqual(aggregations.long.S1S2.all.score, 1.869, places=2, + self.assertAlmostEqual(aggregations.long.S1S2.all.score, Q_(1.869, ureg.delta_degC), places=2, msg="Long MOTS aggregation failed") self.temperature_score.aggregation_method = PortfolioAggregationMethod.EOTS aggregations = self.temperature_score.aggregate_scores(scores) - self.assertAlmostEqual(aggregations.long.S1S2.all.score, 1.840, places=2, + self.assertAlmostEqual(aggregations.long.S1S2.all.score, Q_(1.840, ureg.delta_degC), places=2, msg="Long EOTS aggregation failed") self.temperature_score.aggregation_method = PortfolioAggregationMethod.ECOTS aggregations = self.temperature_score.aggregate_scores(scores) - self.assertAlmostEqual(aggregations.long.S1S2.all.score, 1.840, places=2, + self.assertAlmostEqual(aggregations.long.S1S2.all.score, Q_(1.840, ureg.delta_degC), places=2, msg="Long ECOTS aggregation failed") self.temperature_score.aggregation_method = PortfolioAggregationMethod.AOTS aggregations = self.temperature_score.aggregate_scores(scores) - self.assertAlmostEqual(aggregations.long.S1S2.all.score, 1.869, places=2, + self.assertAlmostEqual(aggregations.long.S1S2.all.score, Q_(1.869, ureg.delta_degC), places=2, msg="Long AOTS aggregation failed") From d6e28e0e100ba15d574cb6c5251db24f13868f10 Mon Sep 17 00:00:00 2001 From: MichaelTiemannOSC Date: Sat, 1 Jan 2022 19:36:35 +0000 Subject: [PATCH 053/345] Temperature scores working...PR is ready for review I sorted the problems with temperature scores and modified both input data and unit tests to work as well as can be (given outstanding issue of the test suite and pint_pandas not being too happy about the current idioms we are using). There's much to think about in this PR. Happy to answer questions / write up docs if/when we're ready to move forward. Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- ITR/data/data_warehouse.py | 7 +- ITR/interfaces.py | 4 +- ITR/portfolio_aggregation.py | 25 ++-- ITR/temperature_score.py | 29 ++-- test/inputs/json/benchmark_EI_OECM.json | 4 +- .../json/benchmark_EI_TPI_2_degrees.json | 134 +++++++++--------- .../benchmark_EI_TPI_below_2_degrees.json | 134 +++++++++--------- test/test_base_providers.py | 12 +- test/test_different_benchmarks.py | 17 +-- test/test_e2e.py | 25 ++-- test/test_portfolio_aggregation.py | 35 ++--- test/test_temperature_score.py | 1 - 12 files changed, 212 insertions(+), 215 deletions(-) diff --git a/ITR/data/data_warehouse.py b/ITR/data/data_warehouse.py index 5be6b7b1..fd661253 100644 --- a/ITR/data/data_warehouse.py +++ b/ITR/data/data_warehouse.py @@ -79,10 +79,11 @@ def get_preprocessed_company_data(self, company_ids: List[str]) -> List[ICompany # print(f"""\ndf_budget = {df_budget}\n\nf_budget.sum() = {df_budget.sum()}\n\n""") df_company_data = pd.concat([df_company_data, df_trajectory, df_target, df_budget], axis=1) df_company_data[self.column_config.BENCHMARK_GLOBAL_BUDGET] = pd.Series([self.benchmarks_projected_emission_intensity.benchmark_global_budget]* - len(df_company_data), dtype='pint[Gt CO2]') + len(df_company_data), dtype='pint[Gt CO2]', + index=df_company_data.index) df_company_data[self.column_config.BENCHMARK_TEMP] = pd.Series([self.benchmarks_projected_emission_intensity.benchmark_temperature]* - len(df_company_data), dtype='pint[delta_degC]') - + len(df_company_data), dtype='pint[delta_degC]', + index=df_company_data.index) companies = df_company_data.to_dict(orient="records") aggregate_company_data: List[ICompanyAggregates] = [ICompanyAggregates.parse_obj(company) for company in companies] diff --git a/ITR/interfaces.py b/ITR/interfaces.py index 4b08ec63..ca16b906 100644 --- a/ITR/interfaces.py +++ b/ITR/interfaces.py @@ -160,8 +160,8 @@ def __getitem__(self, item): return getattr(self, item) def __init__(self, benchmark_temperature, benchmark_global_budget, *args, **kwargs): - super().__init__(benchmark_temperature=Q_(benchmark_temperature, ureg.delta_degC), - benchmark_global_budget=Q_(benchmark_global_budget, ureg('t CO2')), + super().__init__(benchmark_temperature=pint_ify(benchmark_temperature, 'delta_degC'), + benchmark_global_budget=pint_ify(benchmark_global_budget, 'Gt CO2'), *args, **kwargs) diff --git a/ITR/portfolio_aggregation.py b/ITR/portfolio_aggregation.py index 91ef37b8..3225a037 100644 --- a/ITR/portfolio_aggregation.py +++ b/ITR/portfolio_aggregation.py @@ -82,21 +82,21 @@ def _check_column(self, data: pd.DataFrame, column: str): )) def _calculate_aggregate_score(self, data: pd.DataFrame, input_column: str, - portfolio_aggregation_method: PortfolioAggregationMethod) -> PintArray: + portfolio_aggregation_method: PortfolioAggregationMethod) -> pd.Series: """ Aggregate the scores in a given column based on a certain portfolio aggregation method. :param data: The data to run the calculations on :param input_column: The input column (containing the scores) :param portfolio_aggregation_method: The method to use - :return: The aggregates score + :return: The aggregates score as a pd.Series """ if portfolio_aggregation_method == PortfolioAggregationMethod.WATS: total_investment_weight = data[self.c.COLS.INVESTMENT_VALUE].sum() try: - return PA_(data.apply( - lambda row: row[self.c.COLS.INVESTMENT_VALUE] * row[input_column].m / total_investment_weight, - axis=1), dtype=ureg.delta_degC) + return pd.Series(data.apply( + lambda row: row[self.c.COLS.INVESTMENT_VALUE] * row[input_column] / total_investment_weight, + axis=1), dtype='pint[delta_degC]') except ZeroDivisionError: raise ValueError("The portfolio weight is not allowed to be zero") @@ -109,10 +109,10 @@ def _calculate_aggregate_score(self, data: pd.DataFrame, input_column: str, if use_S1S2.any(): self._check_column(data, self.c.COLS.GHG_SCOPE12) # Calculate the total emissions of all companies - emissions = (use_S1S2 * data[self.c.COLS.GHG_SCOPE12]).sum() + (use_S3 * data[self.c.COLS.GHG_SCOPE3]).sum() + emissions = data.loc[use_S1S2, self.c.COLS.GHG_SCOPE12].sum() + data.loc[use_S3, self.c.COLS.GHG_SCOPE3].sum() try: - return PA_((use_S1S2 * data[self.c.COLS.GHG_SCOPE12] + use_S3 * data[self.c.COLS.GHG_SCOPE3]) / emissions * \ - data[input_column], dtype=ureg.delta_degC) + return pd.Series((data[self.c.COLS.GHG_SCOPE12].where(use_S1S2,0) + data[self.c.COLS.GHG_SCOPE3].where(use_S3, 0)) \ + / emissions * data[input_column], dtype='pint[delta_degC]') except ZeroDivisionError: raise ValueError("The total emissions should be higher than zero") @@ -136,19 +136,18 @@ def _calculate_aggregate_score(self, data: pd.DataFrame, input_column: str, self._check_column(data, self.c.COLS.GHG_SCOPE12) if use_S3.any(): self._check_column(data, self.c.COLS.GHG_SCOPE3) - error () # not yet handled... data[self.c.COLS.OWNED_EMISSIONS] = (data[self.c.COLS.INVESTMENT_VALUE] / data[value_column]) * ( - use_S1S2 * data[self.c.COLS.GHG_SCOPE12] + use_S3 * data[self.c.COLS.GHG_SCOPE3]) + data[self.c.COLS.GHG_SCOPE12].where(use_S1S2, 0) + data[self.c.COLS.GHG_SCOPE3].where(use_S3, 0)) except ZeroDivisionError: raise ValueError("To calculate the aggregation, the {} column may not be zero".format(value_column)) owned_emissions = data[self.c.COLS.OWNED_EMISSIONS].sum() try: # Calculate the MOTS value per company - return PA_(data.apply( + result = data.apply( lambda row: (row[self.c.COLS.OWNED_EMISSIONS] / owned_emissions) * row[input_column], - axis=1), dtype=ureg.delta_degC - ) + axis=1) + return result.astype('pint[delta_degC]') except ZeroDivisionError: raise ValueError("The total owned emissions can not be zero") else: diff --git a/ITR/temperature_score.py b/ITR/temperature_score.py index 48a0a298..74b41b12 100644 --- a/ITR/temperature_score.py +++ b/ITR/temperature_score.py @@ -79,7 +79,7 @@ def get_ghc_temperature_score(self, row: pd.Series, company_data: pd.DataFrame) Get the aggregated temperature score and a temperature result, which indicates how much of the score is based on the default score for a certain company based on the emissions of company. :param company_data: The original data, grouped by company, time frame and scope category - :param row: The row to calculate the temperature score for (if the scope of the row isn't s1s2s3, it will return the original score + :param row: The row to calculate the temperature score for (if the scope of the row isn't s1s2s3, it will return the original score) :return: The aggregated temperature score for a company """ if row[self.c.COLS.SCOPE] != EScope.S1S2S3: @@ -90,17 +90,13 @@ def get_ghc_temperature_score(self, row: pd.Series, company_data: pd.DataFrame) try: # If the s3 emissions are less than 40 percent, we'll ignore them altogether, if not, we'll weigh them if s3[self.c.COLS.GHG_SCOPE3] / (s1s2[self.c.COLS.GHG_SCOPE12] + s3[self.c.COLS.GHG_SCOPE3]) < 0.4: - # print(f"ignoring s3: {row}") return s1s2[self.c.COLS.TEMPERATURE_SCORE], s1s2[self.c.TEMPERATURE_RESULTS] else: company_emissions = s1s2[self.c.COLS.GHG_SCOPE12] + s3[self.c.COLS.GHG_SCOPE3] - # print(company_emissions) - return (Q_((s1s2[self.c.COLS.TEMPERATURE_SCORE].m * s1s2[self.c.COLS.GHG_SCOPE12] + - s3[self.c.COLS.TEMPERATURE_SCORE].m * s3[self.c.COLS.GHG_SCOPE3]) / company_emissions, - s1s2[self.c.COLS.TEMPERATURE_SCORE].u), - Q_((s1s2[self.c.TEMPERATURE_RESULTS].m * s1s2[self.c.COLS.GHG_SCOPE12] + - s3[self.c.TEMPERATURE_RESULTS].m * s3[self.c.COLS.GHG_SCOPE3]) / company_emissions, - s1s2[self.c.TEMPERATURE_RESULTS].u)) + return ((s1s2[self.c.COLS.TEMPERATURE_SCORE] * s1s2[self.c.COLS.GHG_SCOPE12] + + s3[self.c.COLS.TEMPERATURE_SCORE] * s3[self.c.COLS.GHG_SCOPE3]) / company_emissions, + (s1s2[self.c.TEMPERATURE_RESULTS] * s1s2[self.c.COLS.GHG_SCOPE12] + + s3[self.c.TEMPERATURE_RESULTS] * s3[self.c.COLS.GHG_SCOPE3]) / company_emissions) except ZeroDivisionError: raise ValueError("The mean of the S1+S2 plus the S3 emissions is zero") @@ -130,15 +126,16 @@ def _prepare_data(self, data: pd.DataFrame): score_combinations = pd.DataFrame(list(itertools.product(*[companies, scopes, self.time_frames])), columns=[self.c.COLS.COMPANY_ID, self.c.COLS.SCOPE, self.c.COLS.TIME_FRAME]) - # print(f"data = {data}") - # print(f"score_combinations = {score_combinations}") scoring_data = pd.merge(left=data, right=score_combinations, how='outer', on=[self.c.COLS.COMPANY_ID]) - # print(f"scoring_data = {scoring_data}") scoring_data[self.c.COLS.TEMPERATURE_SCORE], scoring_data[self.c.COLS.TRAJECTORY_SCORE], scoring_data[ self.c.COLS.TRAJECTORY_OVERSHOOT], scoring_data[self.c.COLS.TARGET_SCORE], scoring_data[ self.c.COLS.TARGET_OVERSHOOT], scoring_data[self.c.TEMPERATURE_RESULTS] = zip(*scoring_data.apply( lambda row: self.get_score(row), axis=1)) + # Fix up dtypes for the new columns we just added + for c in [self.c.COLS.TEMPERATURE_SCORE, self.c.COLS.TRAJECTORY_SCORE, self.c.COLS.TRAJECTORY_SCORE, self.c.COLS.TARGET_SCORE, self.c.TEMPERATURE_RESULTS]: + scoring_data[c] = scoring_data[c].astype('pint[delta_degC]') + scoring_data = self.cap_scores(scoring_data) return scoring_data @@ -187,7 +184,7 @@ def calculate(self, data: Optional[pd.DataFrame] = None, # We need to filter the scopes again, because we might have had to add a scope in the preparation step data = data[data[self.c.COLS.SCOPE].isin(self.scopes)] - data[self.c.COLS.TEMPERATURE_SCORE] = data[self.c.COLS.TEMPERATURE_SCORE].map(lambda x: Q_(round (x.m, 2), x.u)) + data[self.c.COLS.TEMPERATURE_SCORE] = data[self.c.COLS.TEMPERATURE_SCORE].map(lambda x: Q_(round (x.m, 2), x.u)).astype('pint[delta_degC]') return data def _get_aggregations(self, data: pd.DataFrame, total_companies: int) -> Tuple[Aggregation, pd.Series, pd.Series]: @@ -200,14 +197,14 @@ def _get_aggregations(self, data: pd.DataFrame, total_companies: int) -> Tuple[A data = data.copy() weighted_scores = self._calculate_aggregate_score(data, self.c.COLS.TEMPERATURE_SCORE, self.aggregation_method) - data[self.c.COLS.CONTRIBUTION_RELATIVE] = PA_(weighted_scores.quantity.m / (weighted_scores.quantity.m.sum() / 100), ureg.delta_degC) + data[self.c.COLS.CONTRIBUTION_RELATIVE] = pd.Series(weighted_scores / weighted_scores.sum(), dtype='pint[percent]') data[self.c.COLS.CONTRIBUTION] = weighted_scores contributions = data \ .sort_values(self.c.COLS.CONTRIBUTION_RELATIVE, ascending=False) \ .where(pd.notnull(data), 0) \ .to_dict(orient="records") aggregations = Aggregation( - score=Q_(weighted_scores.quantity.m.sum(), ureg.delta_degC), + score=weighted_scores.sum(), proportion=len(weighted_scores) / (total_companies / 100.0), contributions=[AggregationContribution.parse_obj(contribution) for contribution in contributions] ), \ @@ -239,7 +236,7 @@ def _get_score_aggregation(self, data: pd.DataFrame, time_frame: ETimeFrames, sc grouped={}, all=score_aggregation_all, influence_percentage=self._calculate_aggregate_score( - filtered_data, self.c.TEMPERATURE_RESULTS, self.aggregation_method).quantity.m.sum() * 100) + filtered_data, self.c.TEMPERATURE_RESULTS, self.aggregation_method).sum().m * 100) # If there are grouping column(s) we'll group in pandas and pass the results to the aggregation if len(self.grouping) > 0: diff --git a/test/inputs/json/benchmark_EI_OECM.json b/test/inputs/json/benchmark_EI_OECM.json index abff5d48..f1ff625a 100644 --- a/test/inputs/json/benchmark_EI_OECM.json +++ b/test/inputs/json/benchmark_EI_OECM.json @@ -1,6 +1,6 @@ { - "benchmark_temperature": 1.5, - "benchmark_global_budget": 396, + "benchmark_temperature": "1.5 delta_degC", + "benchmark_global_budget": "396 Gt CO2", "is_AFOLU_included": false, "S1S2": { "benchmarks": [ diff --git a/test/inputs/json/benchmark_EI_TPI_2_degrees.json b/test/inputs/json/benchmark_EI_TPI_2_degrees.json index d4079775..c229f6b5 100644 --- a/test/inputs/json/benchmark_EI_TPI_2_degrees.json +++ b/test/inputs/json/benchmark_EI_TPI_2_degrees.json @@ -1,6 +1,6 @@ { - "benchmark_temperature": 2.0, - "benchmark_global_budget": 500, + "benchmark_temperature": "2.0 delta_degC", + "benchmark_global_budget": "500 Gt CO2", "is_AFOLU_included": false, "S1S2": { "benchmarks": [ @@ -10,131 +10,131 @@ "projections": [ { "year": 2019, - "value": 0.6075603731304943 + "value": "0.6075603731304943 t CO2/MWh" }, { "year": 2020, - "value": 0.457 + "value": "0.457 t CO2/MWh" }, { "year": 2021, - "value": 0.4376 + "value": "0.4376 t CO2/MWh" }, { "year": 2022, - "value": 0.41819999999999996 + "value": "0.41819999999999996 t CO2/MWh" }, { "year": 2023, - "value": 0.39879999999999993 + "value": "0.39879999999999993 t CO2/MWh" }, { "year": 2024, - "value": 0.3793999999999999 + "value": "0.3793999999999999 t CO2/MWh" }, { "year": 2025, - "value": 0.36 + "value": "0.36 t CO2/MWh" }, { "year": 2026, - "value": 0.33699999999999997 + "value": "0.33699999999999997 t CO2/MWh" }, { "year": 2027, - "value": 0.31399999999999995 + "value": "0.31399999999999995 t CO2/MWh" }, { "year": 2028, - "value": 0.2909999999999999 + "value": "0.2909999999999999 t CO2/MWh" }, { "year": 2029, - "value": 0.2679999999999999 + "value": "0.2679999999999999 t CO2/MWh" }, { "year": 2030, - "value": 0.245 + "value": "0.245 t CO2/MWh" }, { "year": 2031, - "value": 0.22619999999999998 + "value": "0.22619999999999998 t CO2/MWh" }, { "year": 2032, - "value": 0.20739999999999997 + "value": "0.20739999999999997 t CO2/MWh" }, { "year": 2033, - "value": 0.18859999999999996 + "value": "0.18859999999999996 t CO2/MWh" }, { "year": 2034, - "value": 0.16979999999999995 + "value": "0.16979999999999995 t CO2/MWh" }, { "year": 2035, - "value": 0.151 + "value": "0.151 t CO2/MWh" }, { "year": 2036, - "value": 0.1402 + "value": "0.1402 t CO2/MWh" }, { "year": 2037, - "value": 0.1294 + "value": "0.1294 t CO2/MWh" }, { "year": 2038, - "value": 0.11859999999999998 + "value": "0.11859999999999998 t CO2/MWh" }, { "year": 2039, - "value": 0.10779999999999998 + "value": "0.10779999999999998 t CO2/MWh" }, { "year": 2040, - "value": 0.097 + "value": "0.097 t CO2/MWh" }, { "year": 2041, - "value": 0.0888 + "value": "0.0888 t CO2/MWh" }, { "year": 2042, - "value": 0.0806 + "value": "0.0806 t CO2/MWh" }, { "year": 2043, - "value": 0.0724 + "value": "0.0724 t CO2/MWh" }, { "year": 2044, - "value": 0.06420000000000001 + "value": "0.06420000000000001 t CO2/MWh" }, { "year": 2045, - "value": 0.056 + "value": "0.056 t CO2/MWh" }, { "year": 2046, - "value": 0.0528 + "value": "0.0528 t CO2/MWh" }, { "year": 2047, - "value": 0.0496 + "value": "0.0496 t CO2/MWh" }, { "year": 2048, - "value": 0.0464 + "value": "0.0464 t CO2/MWh" }, { "year": 2049, - "value": 0.043199999999999995 + "value": "0.043199999999999995 t CO2/MWh" }, { "year": 2050, - "value": 0.04 + "value": "0.04 t CO2/MWh" } ] }, @@ -144,131 +144,131 @@ "projections": [ { "year": 2019, - "value": 1.669 + "value": "1.669 t CO2/MWh" }, { "year": 2020, - "value": 1.498 + "value": "1.498 t CO2/MWh" }, { "year": 2021, - "value": 1.4718 + "value": "1.4718 t CO2/MWh" }, { "year": 2022, - "value": 1.4456 + "value": "1.4456 t CO2/MWh" }, { "year": 2023, - "value": 1.4194 + "value": "1.4194 t CO2/MWh" }, { "year": 2024, - "value": 1.3932 + "value": "1.3932 t CO2/MWh" }, { "year": 2025, - "value": 1.367 + "value": "1.367 t CO2/MWh" }, { "year": 2026, - "value": 1.3195999999999999 + "value": "1.3195999999999999 t CO2/MWh" }, { "year": 2027, - "value": 1.2721999999999998 + "value": "1.2721999999999998 t CO2/MWh" }, { "year": 2028, - "value": 1.2247999999999997 + "value": "1.2247999999999997 t CO2/MWh" }, { "year": 2029, - "value": 1.1773999999999996 + "value": "1.1773999999999996 t CO2/MWh" }, { "year": 2030, - "value": 1.13 + "value": "1.13 t CO2/MWh" }, { "year": 2031, - "value": 1.0948 + "value": "1.0948 t CO2/MWh" }, { "year": 2032, - "value": 1.0596 + "value": "1.0596 t CO2/MWh" }, { "year": 2033, - "value": 1.0244000000000002 + "value": "1.0244000000000002 t CO2/MWh" }, { "year": 2034, - "value": 0.9892000000000002 + "value": "0.9892000000000002 t CO2/MWh" }, { "year": 2035, - "value": 0.954 + "value": "0.954 t CO2/MWh" }, { "year": 2036, - "value": 0.9258 + "value": "0.9258 t CO2/MWh" }, { "year": 2037, - "value": 0.8976 + "value": "0.8976 t CO2/MWh" }, { "year": 2038, - "value": 0.8694 + "value": "0.8694 t CO2/MWh" }, { "year": 2039, - "value": 0.8412 + "value": "0.8412 t CO2/MWh" }, { "year": 2040, - "value": 0.813 + "value": "0.813 t CO2/MWh" }, { "year": 2041, - "value": 0.7857999999999999 + "value": "0.7857999999999999 t CO2/MWh" }, { "year": 2042, - "value": 0.7585999999999999 + "value": "0.7585999999999999 t CO2/MWh" }, { "year": 2043, - "value": 0.7313999999999999 + "value": "0.7313999999999999 t CO2/MWh" }, { "year": 2044, - "value": 0.7041999999999999 + "value": "0.7041999999999999 t CO2/MWh" }, { "year": 2045, - "value": 0.677 + "value": "0.677 t CO2/MWh" }, { "year": 2046, - "value": 0.6658000000000001 + "value": "0.6658000000000001 t CO2/MWh" }, { "year": 2047, - "value": 0.6546000000000001 + "value": "0.6546000000000001 t CO2/MWh" }, { "year": 2048, - "value": 0.6434000000000001 + "value": "0.6434000000000001 t CO2/MWh" }, { "year": 2049, - "value": 0.6322000000000001 + "value": "0.6322000000000001 t CO2/MWh" }, { "year": 2050, - "value": 0.621 + "value": "0.621 t CO2/MWh" } ] } @@ -276,4 +276,4 @@ }, "S3": null, "S1S2S3": null -} \ No newline at end of file +} diff --git a/test/inputs/json/benchmark_EI_TPI_below_2_degrees.json b/test/inputs/json/benchmark_EI_TPI_below_2_degrees.json index e674f691..4dacad7e 100644 --- a/test/inputs/json/benchmark_EI_TPI_below_2_degrees.json +++ b/test/inputs/json/benchmark_EI_TPI_below_2_degrees.json @@ -1,6 +1,6 @@ { - "benchmark_temperature": 1.75, - "benchmark_global_budget": 500, + "benchmark_temperature": "1.75 delta_degC", + "benchmark_global_budget": "500 Gt CO2", "is_AFOLU_included": false, "S1S2": { "benchmarks": [ @@ -10,131 +10,131 @@ "projections": [ { "year": 2019, - "value": 0.6075603731304943 + "value": "0.6075603731304943 t CO2/MWh" }, { "year": 2020, - "value": 0.44 + "value": "0.44 t CO2/MWh" }, { "year": 2021, - "value": 0.418 + "value": "0.418 t CO2/MWh" }, { "year": 2022, - "value": 0.39599999999999996 + "value": "0.39599999999999996 t CO2/MWh" }, { "year": 2023, - "value": 0.37399999999999994 + "value": "0.37399999999999994 t CO2/MWh" }, { "year": 2024, - "value": 0.3519999999999999 + "value": "0.3519999999999999 t CO2/MWh" }, { "year": 2025, - "value": 0.33 + "value": "0.33 t CO2/MWh" }, { "year": 2026, - "value": 0.3098 + "value": "0.3098 t CO2/MWh" }, { "year": 2027, - "value": 0.2896 + "value": "0.2896 t CO2/MWh" }, { "year": 2028, - "value": 0.26940000000000003 + "value": "0.26940000000000003 t CO2/MWh" }, { "year": 2029, - "value": 0.24920000000000003 + "value": "0.24920000000000003 t CO2/MWh" }, { "year": 2030, - "value": 0.229 + "value": "0.229 t CO2/MWh" }, { "year": 2031, - "value": 0.2114 + "value": "0.2114 t CO2/MWh" }, { "year": 2032, - "value": 0.1938 + "value": "0.1938 t CO2/MWh" }, { "year": 2033, - "value": 0.1762 + "value": "0.1762 t CO2/MWh" }, { "year": 2034, - "value": 0.1586 + "value": "0.1586 t CO2/MWh" }, { "year": 2035, - "value": 0.141 + "value": "0.141 t CO2/MWh" }, { "year": 2036, - "value": 0.12719999999999998 + "value": "0.12719999999999998 t CO2/MWh" }, { "year": 2037, - "value": 0.11339999999999999 + "value": "0.11339999999999999 t CO2/MWh" }, { "year": 2038, - "value": 0.0996 + "value": "0.0996 t CO2/MWh" }, { "year": 2039, - "value": 0.0858 + "value": "0.0858 t CO2/MWh" }, { "year": 2040, - "value": 0.072 + "value": "0.072 t CO2/MWh" }, { "year": 2041, - "value": 0.061599999999999995 + "value": "0.061599999999999995 t CO2/MWh" }, { "year": 2042, - "value": 0.051199999999999996 + "value": "0.051199999999999996 t CO2/MWh" }, { "year": 2043, - "value": 0.040799999999999996 + "value": "0.040799999999999996 t CO2/MWh" }, { "year": 2044, - "value": 0.030399999999999996 + "value": "0.030399999999999996 t CO2/MWh" }, { "year": 2045, - "value": 0.02 + "value": "0.02 t CO2/MWh" }, { "year": 2046, - "value": 0.0144 + "value": "0.0144 t CO2/MWh" }, { "year": 2047, - "value": 0.008799999999999999 + "value": "0.008799999999999999 t CO2/MWh" }, { "year": 2048, - "value": 0.003199999999999999 + "value": "0.003199999999999999 t CO2/MWh" }, { "year": 2049, - "value": -0.002400000000000001 + "value": "-0.002400000000000001 t CO2/MWh" }, { "year": 2050, - "value": -0.008 + "value": "-0.008 t CO2/MWh" } ] }, @@ -144,131 +144,131 @@ "projections": [ { "year": 2019, - "value": 1.669 + "value": "1.669 t CO2/MWh" }, { "year": 2020, - "value": 1.325 + "value": "1.325 t CO2/MWh" }, { "year": 2021, - "value": 1.2691999999999999 + "value": "1.2691999999999999 t CO2/MWh" }, { "year": 2022, - "value": 1.2133999999999998 + "value": "1.2133999999999998 t CO2/MWh" }, { "year": 2023, - "value": 1.1575999999999997 + "value": "1.1575999999999997 t CO2/MWh" }, { "year": 2024, - "value": 1.1017999999999997 + "value": "1.1017999999999997 t CO2/MWh" }, { "year": 2025, - "value": 1.046 + "value": "1.046 t CO2/MWh" }, { "year": 2026, - "value": 0.9998 + "value": "0.9998 t CO2/MWh" }, { "year": 2027, - "value": 0.9536 + "value": "0.9536 t CO2/MWh" }, { "year": 2028, - "value": 0.9074 + "value": "0.9074 t CO2/MWh" }, { "year": 2029, - "value": 0.8612 + "value": "0.8612 t CO2/MWh" }, { "year": 2030, - "value": 0.815 + "value": "0.815 t CO2/MWh" }, { "year": 2031, - "value": 0.7714 + "value": "0.7714 t CO2/MWh" }, { "year": 2032, - "value": 0.7278 + "value": "0.7278 t CO2/MWh" }, { "year": 2033, - "value": 0.6842 + "value": "0.6842 t CO2/MWh" }, { "year": 2034, - "value": 0.6406000000000001 + "value": "0.6406000000000001 t CO2/MWh" }, { "year": 2035, - "value": 0.597 + "value": "0.597 t CO2/MWh" }, { "year": 2036, - "value": 0.573 + "value": "0.573 t CO2/MWh" }, { "year": 2037, - "value": 0.5489999999999999 + "value": "0.5489999999999999 t CO2/MWh" }, { "year": 2038, - "value": 0.5249999999999999 + "value": "0.5249999999999999 t CO2/MWh" }, { "year": 2039, - "value": 0.5009999999999999 + "value": "0.5009999999999999 t CO2/MWh" }, { "year": 2040, - "value": 0.477 + "value": "0.477 t CO2/MWh" }, { "year": 2041, - "value": 0.4566 + "value": "0.4566 t CO2/MWh" }, { "year": 2042, - "value": 0.43620000000000003 + "value": "0.43620000000000003 t CO2/MWh" }, { "year": 2043, - "value": 0.41580000000000006 + "value": "0.41580000000000006 t CO2/MWh" }, { "year": 2044, - "value": 0.3954000000000001 + "value": "0.3954000000000001 t CO2/MWh" }, { "year": 2045, - "value": 0.375 + "value": "0.375 t CO2/MWh" }, { "year": 2046, - "value": 0.3526 + "value": "0.3526 t CO2/MWh" }, { "year": 2047, - "value": 0.33020000000000005 + "value": "0.33020000000000005 t CO2/MWh" }, { "year": 2048, - "value": 0.3078000000000001 + "value": "0.3078000000000001 t CO2/MWh" }, { "year": 2049, - "value": 0.2854000000000001 + "value": "0.2854000000000001 t CO2/MWh" }, { "year": 2050, - "value": 0.263 + "value": "0.263 t CO2/MWh" } ] } @@ -276,4 +276,4 @@ }, "S3": null, "S1S2S3": null -} \ No newline at end of file +} diff --git a/test/test_base_providers.py b/test/test_base_providers.py index 62132c8f..2ec23e7c 100644 --- a/test/test_base_providers.py +++ b/test/test_base_providers.py @@ -26,7 +26,7 @@ def setUp(self) -> None: self.company_json = os.path.join(self.root, "inputs", "json", "fundamental_data.json") self.benchmark_prod_json = os.path.join(self.root, "inputs", "json", "benchmark_production_OECM.json") self.benchmark_EI_json = os.path.join(self.root, "inputs", "json", "benchmark_EI_OECM.json") - self.excel_data_path = os.path.join(self.root, "inputs", "test_data_company.xlsx") + # self.excel_data_path = os.path.join(self.root, "inputs", "test_data_company.xlsx") # load company data with open(self.company_json) as json_file: @@ -57,7 +57,7 @@ def setUp(self) -> None: index=self.company_ids, columns=[ColumnsConfig.BASE_EI, ColumnsConfig.GHG_SCOPE12, ColumnsConfig.SECTOR, ColumnsConfig.REGION]) - def test_temp_score_from_excel_data(self): + def test_temp_score_from_json_data(self): # Calculate Temp Scores temp_score = TemperatureScore( time_frames=[ETimeFrames.LONG], @@ -76,16 +76,14 @@ def test_temp_score_from_excel_data(self): ) # portfolio data portfolio_data = ITR.utils.get_data(self.base_warehouse, portfolio) - # print(f"portfolio_data = {portfolio_data}") scores = temp_score.calculate(portfolio_data) - # print(f"scores = {scores}") agg_scores = temp_score.aggregate_scores(scores) # verify company scores: - expected = [2.05, 2.22, 2.06] - assert_array_equal(scores.temperature_score.values, expected) + expected = pd.Series([2.05, 2.22, 2.06], dtype='pint[delta_degC]', name='temperature_score') + pd.testing.assert_series_equal(scores.temperature_score, expected) # verify that results exist - self.assertAlmostEqual(agg_scores.long.S1S2.all.score, 2.11, places=2) + self.assertAlmostEqual(agg_scores.long.S1S2.all.score, Q_(2.11, ureg.delta_degC), places=2) def test_get_benchmark(self): diff --git a/test/test_different_benchmarks.py b/test/test_different_benchmarks.py index 8fc2eb34..2afe90a8 100644 --- a/test/test_different_benchmarks.py +++ b/test/test_different_benchmarks.py @@ -12,8 +12,9 @@ from ITR.data.base_providers import BaseCompanyDataProvider, BaseProviderProductionBenchmark, \ BaseProviderIntensityBenchmark from ITR.interfaces import ICompanyData, EScope, ETimeFrames, PortfolioCompany, IEmissionIntensityBenchmarkScopes, \ - IProductionBenchmarkScopes + IProductionBenchmarkScopes, IYOYBenchmarkScopes +from ITR.data.osc_units import ureg, Q_, PA_ class TestEIBenchmarks(unittest.TestCase): """ @@ -38,7 +39,7 @@ def setUp(self) -> None: # load production benchmarks with open(self.benchmark_prod_json) as json_file: parsed_json = json.load(json_file) - prod_bms = IProductionBenchmarkScopes.parse_obj(parsed_json) + prod_bms = IYOYBenchmarkScopes.parse_obj(parsed_json) self.base_production_bm = BaseProviderProductionBenchmark(production_benchmarks=prod_bms) # load intensity benchmarks @@ -94,10 +95,10 @@ def test_all_benchmarks(self): agg_scores = temp_score.aggregate_scores(scores) # verify company scores: - expected = [2.05, 2.22, 2.06] + expected = pd.Series([2.05, 2.22, 2.06], dtype='pint[delta_degC]') assert_array_equal(scores.temperature_score.values, expected) # verify that results exist - self.assertAlmostEqual(agg_scores.long.S1S2.all.score, 2.11, places=2) + self.assertAlmostEqual(agg_scores.long.S1S2.all.score, Q_(2.11, ureg.delta_degC), places=2) # TPI # portfolio data @@ -106,10 +107,10 @@ def test_all_benchmarks(self): agg_scores = temp_score.aggregate_scores(scores) # verify company scores: - expected = [2.35, 2.39, 2.22] + expected = pd.Series([2.35, 2.39, 2.22], dtype='pint[delta_degC]') assert_array_equal(scores.temperature_score.values, expected) # verify that results exist - self.assertAlmostEqual(agg_scores.long.S1S2.all.score, 2.32, places=2) + self.assertAlmostEqual(agg_scores.long.S1S2.all.score, Q_(2.32, ureg.delta_degC), places=2) # TPI below 2 # portfolio data @@ -118,7 +119,7 @@ def test_all_benchmarks(self): agg_scores = temp_score.aggregate_scores(scores) # verify company scores: - expected = [2.11, 2.32, 2.35] + expected = pd.Series([2.11, 2.32, 2.35], dtype='pint[delta_degC]') assert_array_equal(scores.temperature_score.values, expected) # verify that results exist - self.assertAlmostEqual(agg_scores.long.S1S2.all.score, 2.26, places=2) + self.assertAlmostEqual(agg_scores.long.S1S2.all.score, Q_(2.26, ureg.delta_degC), places=2) diff --git a/test/test_e2e.py b/test/test_e2e.py index db8d98cf..8ab648cc 100644 --- a/test/test_e2e.py +++ b/test/test_e2e.py @@ -4,6 +4,7 @@ ETimeFrames, PortfolioCompany, ) +from ITR.data.osc_units import ureg, Q_, PA_ from ITR.temperature_score import TemperatureScore from ITR.portfolio_aggregation import PortfolioAggregationMethod @@ -35,7 +36,7 @@ class EndToEndTest(unittest.TestCase): def setUp(self): company_id = "BaseCompany" - self.BASE_COMP_SCORE = 3.85 + self.BASE_COMP_SCORE = Q_(3.85, ureg.delta_degC) self.company_base = ICompanyAggregates( company_name=company_id, company_id=company_id, @@ -46,29 +47,29 @@ def setUp(self): company_enterprise_value=100, company_total_assets=100, company_cash_equivalents=100, - cumulative_budget=345325664.840567, - cumulative_trajectory=3745094638.52858, - cumulative_target=3769096510.09909, + cumulative_budget="345325664.840567 t CO2", + cumulative_trajectory="3745094638.52858 t CO2", + cumulative_target="3769096510.09909 t CO2", target_probability=0.428571428571428, isic='A12', sector='Steel', region='Europe', - benchmark_global_budget=396, - benchmark_temperature=1.5, + benchmark_global_budget="396 Gt CO2", + benchmark_temperature="1.5 delta_degC", projected_intensities=ICompanyProjectionsScopes.parse_obj({ "S1S2": { "projections": [ { "year": "2019", - "value": 1.6982474347547039 + "value": "1.6982474347547039 t CO2/MWh" }, { "year": "2020", - "value": 1.6982474347547039 + "value": "1.6982474347547039 t CO2/MWh" }, { "year": "2021", - "value": 1.5908285727976157 + "value": "1.5908285727976157 t CO2/MWh" } ] } @@ -78,15 +79,15 @@ def setUp(self): "projections": [ { "year": "2019", - "value": 1.6982474347547039 + "value": "1.6982474347547039 t CO2/MWh" }, { "year": "2020", - "value": 1.6982474347547039 + "value": "1.6982474347547039 t CO2/MWh" }, { "year": "2021", - "value": 1.5577542305393455 + "value": "1.5577542305393455 t CO2/MWh" } ] } diff --git a/test/test_portfolio_aggregation.py b/test/test_portfolio_aggregation.py index 63a0fa0a..012d094c 100644 --- a/test/test_portfolio_aggregation.py +++ b/test/test_portfolio_aggregation.py @@ -21,12 +21,13 @@ def setUp(self) -> None: self.data.loc[:, ColumnsConfig.MARKET_CAP] = [1.0, 2.0, 3.0] self.data.loc[:, ColumnsConfig.INVESTMENT_VALUE] = [1.0, 2.0, 3.0] self.data.loc[:, ColumnsConfig.SCOPE] = [EScope.S1S2, EScope.S1S2, EScope.S1S2S3] - self.data.loc[:, ColumnsConfig.GHG_SCOPE12] = [1.0, 2.0, 3.0] - self.data.loc[:, ColumnsConfig.GHG_SCOPE3] = [1.0, 2.0, 3.0] + self.data.loc[:, ColumnsConfig.GHG_SCOPE12] = pd.Series([1.0, 2.0, 3.0], dtype='pint[MWh]') + self.data.loc[:, ColumnsConfig.GHG_SCOPE3] = pd.Series([1.0, 2.0, 3.0], dtype='pint[MWh]') self.data.loc[:, ColumnsConfig.COMPANY_ENTERPRISE_VALUE] = [1.0, 2.0, 3.0] self.data.loc[:, ColumnsConfig.CASH_EQUIVALENTS] = [1.0, 2.0, 3.0] self.data.loc[:, ColumnsConfig.COMPANY_EV_PLUS_CASH] = [1.0, 2.0, 3.0] self.data.loc[:, ColumnsConfig.COMPANY_TOTAL_ASSETS] = [1.0, 2.0, 3.0] + self.data.loc[:, ColumnsConfig.TEMPERATURE_SCORE] = pd.Series([1.0, 2.0, 3.0], dtype='pint[delta_degC]') def test_is_emissions_based(self): self.assertTrue(PortfolioAggregationMethod.is_emissions_based(PortfolioAggregationMethod.MOTS)) @@ -59,56 +60,56 @@ def test_check_column(self): self.data.loc[0, ColumnsConfig.MARKET_CAP] = pd.NA with self.assertRaises(ValueError): - PortfolioAggregation()._check_column(data=self.data, column=ColumnsConfig.MARKET_CAP) + PortfolioAggregation()._check_column(data=self.data, column=ColumnsConfig.TEMPERATURE_SCORE) def test_calculate_aggregate_score_WATS(self): pd.testing.assert_series_equal( PortfolioAggregation()._calculate_aggregate_score(data=self.data, - input_column=ColumnsConfig.MARKET_CAP, + input_column=ColumnsConfig.TEMPERATURE_SCORE, portfolio_aggregation_method=PortfolioAggregationMethod.WATS), - pd.Series([0.166667, 0.666667, 1.5])) + pd.Series([0.166667, 0.666667, 1.5], dtype='pint[delta_degC]')) def test_calculate_aggregate_score_TETS(self): pd.testing.assert_series_equal( PortfolioAggregation()._calculate_aggregate_score(data=self.data, - input_column=ColumnsConfig.MARKET_CAP, + input_column=ColumnsConfig.TEMPERATURE_SCORE, portfolio_aggregation_method=PortfolioAggregationMethod.TETS), - pd.Series([0.111111, 0.444444, 2.0])) + pd.Series([0.111111, 0.444444, 2.0], dtype='pint[delta_degC]')) def test_calculate_aggregate_score_ECOTS(self): pd.testing.assert_series_equal( PortfolioAggregation()._calculate_aggregate_score(data=self.data, - input_column=ColumnsConfig.MARKET_CAP, + input_column=ColumnsConfig.TEMPERATURE_SCORE, portfolio_aggregation_method=PortfolioAggregationMethod.ECOTS), - pd.Series([0.111111, 0.444444, 2.0])) + pd.Series([0.111111, 0.444444, 2.0], dtype='pint[delta_degC]')) def test_calculate_aggregate_score_MOTS(self): pd.testing.assert_series_equal( PortfolioAggregation()._calculate_aggregate_score(data=self.data, - input_column=ColumnsConfig.MARKET_CAP, + input_column=ColumnsConfig.TEMPERATURE_SCORE, portfolio_aggregation_method=PortfolioAggregationMethod.MOTS), - pd.Series([0.111111, 0.444444, 2.0])) + pd.Series([0.111111, 0.444444, 2.0], dtype='pint[delta_degC]')) def test_calculate_aggregate_score_EOTS(self): pd.testing.assert_series_equal( PortfolioAggregation()._calculate_aggregate_score(data=self.data, - input_column=ColumnsConfig.MARKET_CAP, + input_column=ColumnsConfig.TEMPERATURE_SCORE, portfolio_aggregation_method=PortfolioAggregationMethod.EOTS), - pd.Series([0.111111, 0.444444, 2.0])) + pd.Series([0.111111, 0.444444, 2.0], dtype='pint[delta_degC]')) def test_calculate_aggregate_score_AOTS(self): pd.testing.assert_series_equal( PortfolioAggregation()._calculate_aggregate_score(data=self.data, - input_column=ColumnsConfig.MARKET_CAP, + input_column=ColumnsConfig.TEMPERATURE_SCORE, portfolio_aggregation_method=PortfolioAggregationMethod.AOTS), - pd.Series([0.111111, 0.444444, 2.0])) + pd.Series([0.111111, 0.444444, 2.0], dtype='pint[delta_degC]')) def test_calculate_aggregate_score_ROTS(self): pd.testing.assert_series_equal( PortfolioAggregation()._calculate_aggregate_score(data=self.data, - input_column=ColumnsConfig.MARKET_CAP, + input_column=ColumnsConfig.TEMPERATURE_SCORE, portfolio_aggregation_method=PortfolioAggregationMethod.ROTS), - pd.Series([0.111111, 0.444444, 2.0])) + pd.Series([0.111111, 0.444444, 2.0], dtype='pint[delta_degC]')) diff --git a/test/test_temperature_score.py b/test/test_temperature_score.py index 30e84901..211c5903 100644 --- a/test/test_temperature_score.py +++ b/test/test_temperature_score.py @@ -29,7 +29,6 @@ def setUp(self) -> None: df[cumulative] = df[cumulative].astype('pint[Mt CO2]') df['benchmark_global_budget'] = df['benchmark_global_budget'].astype('pint[Gt CO2]') df['benchmark_temperature'] = df['benchmark_temperature'].astype('pint[delta_degC]') - print(f"df = {df}") self.data = df def test_temp_score(self) -> None: From 2e2be556951122918b6ca36552a001be4a1b730b Mon Sep 17 00:00:00 2001 From: MichaelTiemannOSC Date: Sun, 2 Jan 2022 22:31:11 +0000 Subject: [PATCH 054/345] WIP check-in. Only test_base_providers works so far WIP is sufficient for first round of discussions. More work to be done to get other test cases working, but what that works should be will determine how much of what work should be done. Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- ITR/configs.py | 1 + ITR/data/base_providers.py | 47 +- ITR/data/data_warehouse.py | 17 +- ITR/data/excel.py | 20 +- ITR/data/osc_units.py | 7 +- ITR/interfaces.py | 114 +- test/inputs/json/benchmark_EI_OECM.json | 582 +- .../json/benchmark_EI_TPI_2_degrees.json | 64 +- .../benchmark_EI_TPI_below_2_degrees.json | 64 +- test/inputs/json/fundamental_data.json | 4810 +++++++++++------ test/test_base_providers.py | 15 +- 11 files changed, 3833 insertions(+), 1908 deletions(-) diff --git a/ITR/configs.py b/ITR/configs.py index e68ec75c..b8ba7f2e 100644 --- a/ITR/configs.py +++ b/ITR/configs.py @@ -28,6 +28,7 @@ class ColumnsConfig: OWNED_EMISSIONS = "owned_emissions" COUNTRY = 'country' SECTOR = 'sector' + PRODUCTION_METRIC = 'production_metric' # The unit of production (i.e., power generated, tons of steel produced, vehicles manufactured, etc.) GHG_SCOPE12 = 'ghg_s1s2' # This seems to be the base year PRODUCTION number, nothing at all to do with any quantity of actual S1S2 emissions GHG_SCOPE3 = 'ghg_s3' COMPANY_REVENUE = 'company_revenue' diff --git a/ITR/data/base_providers.py b/ITR/data/base_providers.py index 0866f943..d462ae32 100644 --- a/ITR/data/base_providers.py +++ b/ITR/data/base_providers.py @@ -3,7 +3,7 @@ import pint import pint_pandas -from ITR.data.osc_units import ureg, PA_ +from ITR.data.osc_units import ureg, Q_, PA_ from typing import List, Type, Dict from ITR.configs import ColumnsConfig, TemperatureScoreConfig, ProjectionConfig, VariablesConfig @@ -55,10 +55,10 @@ def _convert_projections_to_series(self, company: ICompanyData, feature: str, :param scope: a scope :return: pd.Series """ - feature_to_units = { self.column_config.PROJECTED_TRAJECTORIES:'pint[t CO2/MWh]', self.column_config.PROJECTED_TARGETS:'pint[t CO2/MWh]' } + units = company.dict()[self.column_config.PRODUCTION_METRIC]['units'] return pd.Series( {r['year']: r['value'] for r in company.dict()[feature][str(scope)]['projections']}, - name=company.company_id, dtype=feature_to_units[feature]) + name=company.company_id, dtype=f'pint[t CO2/{units}]') # ??? Why prefer TRAJECTORY over TARGET? def _get_company_intensity_at_year(self, year: int, company_ids: List[str]) -> pd.Series: @@ -100,7 +100,7 @@ def get_company_intensity_and_production_at_base_year(self, company_ids: List[st overrides subclass method :param: company_ids: list of company ids :return: DataFrame the following columns : - ColumnsConfig.COMPANY_ID, ColumnsConfig.GHG_S1S2, ColumnsConfig.BASE_EI, + ColumnsConfig.COMPANY_ID, ColumnsConfig.PRODUCTION_METRIC, ColumnsConfig.GHG_S1S2, ColumnsConfig.BASE_EI, ColumnsConfig.SECTOR and ColumnsConfig.REGION """ df_fundamentals = self.get_company_fundamentals(company_ids) @@ -108,9 +108,14 @@ def get_company_intensity_and_production_at_base_year(self, company_ids: List[st base_year = self.temp_config.CONTROLS_CONFIG.base_year company_info = df_fundamentals.loc[ company_ids, [self.column_config.SECTOR, self.column_config.REGION, + self.column_config.PRODUCTION_METRIC, self.column_config.GHG_SCOPE12]] + company_info[self.column_config.PRODUCTION_METRIC] = company_info[self.column_config.PRODUCTION_METRIC].apply(lambda x: x['units']) + # units = company_info[self.column_config.PRODUCTION_METRIC].values[0] + # print(f"\nunits = {units}\n\n") + company_info[self.column_config.GHG_SCOPE12] = company_info[self.column_config.GHG_SCOPE12].apply(lambda x: Q_(x['value'], x['units'])) # .astype(f'pint[{units}]') + # print(f"\ncompany_info.ghg_s12 = {company_info[self.column_config.GHG_SCOPE12]}\n\n") ei_at_base = self._get_company_intensity_at_year(base_year, company_ids).rename(self.column_config.BASE_EI) - # print(f"\ncompany_info = {company_info}\n\n") # print(f"\nei_at_base = {ei_at_base}\n\n") return company_info.merge(ei_at_base, left_index=True, right_index=True) @@ -128,18 +133,22 @@ def get_company_projected_trajectories(self, company_ids: List[str]) -> pd.DataF :param company_ids: A list of company IDs :return: A pandas DataFrame with projected intensity trajectories per company, indexed by company_id """ - return pd.DataFrame( - [self._convert_projections_to_series(c, self.column_config.PROJECTED_TRAJECTORIES) for c in - self.get_company_data(company_ids)], dtype='pint[t CO2/MWh]') + trajectory_list = [self._convert_projections_to_series(c, self.column_config.PROJECTED_TRAJECTORIES) for c in + self.get_company_data(company_ids)] + if trajectory_list: + return pd.DataFrame(trajectory_list, dtype=trajectory_list[0].dtype) + return pd.DataFrame() def get_company_projected_targets(self, company_ids: List[str]) -> pd.DataFrame: """ :param company_ids: A list of company IDs :return: A pandas DataFrame with projected intensity targets per company, indexed by company_id """ - return pd.DataFrame( - [self._convert_projections_to_series(c, self.column_config.PROJECTED_TARGETS) for c in - self.get_company_data(company_ids)], dtype='pint[t CO2/MWh]') + target_list = [self._convert_projections_to_series(c, self.column_config.PROJECTED_TARGETS) for c in + self.get_company_data(company_ids)] + if target_list: + return pd.DataFrame(target_list, dtype=target_list[0].dtype) + return pd.DataFrame() # This is actual output production (whatever the output production units may be). # Not to be confused with the term "projected production" as it relates to energy intensity. @@ -195,7 +204,7 @@ def get_company_projected_production(self, company_sector_region_info: pd.DataFr benchmark_production_projections = self.get_benchmark_projections(company_sector_region_info) company_production = company_sector_region_info[self.column_config.GHG_SCOPE12] return benchmark_production_projections.add(1).cumprod(axis=1).mul( - company_production, axis=0).astype('pint[MWh]') + company_production, axis=0) # .astype(f"pint[{units}]") def get_benchmark_projections(self, company_sector_region_info: pd.DataFrame, scope: EScope = EScope.S1S2) -> pd.DataFrame: @@ -237,16 +246,16 @@ def get_SDA_intensity_benchmarks(self, company_info_at_base_year: pd.DataFrame) Overrides subclass method returns a Dataframe with intensity benchmarks per company_id given a region and sector. :param company_info_at_base_year: DataFrame with at least the following columns : - ColumnsConfig.COMPANY_ID, ColumnsConfig.BASE_EI ColumnsConfig.SECTOR and ColumnsConfig.REGION + ColumnsConfig.COMPANY_ID, ColumnsConfig.BASE_EI, ColumnsConfig.SECTOR and ColumnsConfig.REGION :return: A DataFrame with company and SDA intensity benchmarks per calendar year per row """ intensity_benchmarks = self._get_intensity_benchmarks(company_info_at_base_year) decarbonization_paths = self._get_decarbonizations_paths(intensity_benchmarks) last_ei = intensity_benchmarks[self.temp_config.CONTROLS_CONFIG.target_end_year] ei_base = company_info_at_base_year[self.column_config.BASE_EI] - + print(f"\nei_base.dtype = {ei_base.dtype}\n\n") df = decarbonization_paths.mul((ei_base - last_ei), axis=0) - df = df.add(last_ei, axis=0).astype('pint[t CO2/MWh]') + df = df.add(last_ei, axis=0).astype(ei_base.dtype) return df def _get_decarbonizations_paths(self, intensity_benchmarks: pd.DataFrame) -> pd.DataFrame: @@ -270,23 +279,23 @@ def _get_decarbonization(self, intensity_benchmark_row: pd.Series) -> pd.Series: # This throws a warning when processing a NaN return intensity_benchmark_row.apply(lambda x: (x.m - last_ei.m) / (first_ei.m - last_ei.m)) - def _convert_benchmark_to_series(self, benchmark: IEIBenchmark) -> pd.Series: + def _convert_benchmark_to_series(self, benchmark: IBenchmark) -> pd.Series: """ extracts the company projected intensities or targets for a given scope :param scope: a scope :return: pd.Series """ - return pd.Series({r.year: r.value for r in benchmark.projections}, name=(benchmark.region, benchmark.sector), dtype='pint[t CO2/MWh]') + return pd.Series({r.year: r.value for r in benchmark.projections}, name=(benchmark.region, benchmark.sector), dtype=f'pint[{benchmark.benchmark_metric.units}]') def _get_projected_intensities(self, scope: EScope = EScope.S1S2) -> pd.DataFrame: """ - Converts IEIBenchmarkScopes into dataframe for a scope + Converts IBenchmarkScopes into dataframe for a scope :param scope: a scope :return: pd.DataFrame """ result = [] for bm in self._EI_benchmarks.dict()[str(scope)]['benchmarks']: - result.append(self._convert_benchmark_to_series(IEIBenchmark.parse_obj(bm))) + result.append(self._convert_benchmark_to_series(IBenchmark.parse_obj(bm))) df_bm = pd.DataFrame(result) df_bm.index.names = [self.column_config.REGION, self.column_config.SECTOR] return df_bm diff --git a/ITR/data/data_warehouse.py b/ITR/data/data_warehouse.py index fd661253..45dd975d 100644 --- a/ITR/data/data_warehouse.py +++ b/ITR/data/data_warehouse.py @@ -47,11 +47,12 @@ def get_preprocessed_company_data(self, company_ids: List[str]) -> List[ICompany :return: A list containing the company data and additional precalculated fields """ company_data = self.company_data.get_company_data(company_ids) - df_company_data = pd.DataFrame.from_records([c.dict() for c in company_data])\ - .set_index(self.column_config.COMPANY_ID) + df_company_data = pd.DataFrame.from_records([c.dict() for c in company_data]).set_index(self.column_config.COMPANY_ID, drop=False) + df_company_data['ghg_s1s2'] = df_company_data['ghg_s1s2'].apply(lambda x: Q_(x['value'], x['units'])) + df_company_data['production_metric'] = df_company_data['production_metric'].apply(lambda x: x['units']) - missing_ids = [c_id for c_id in company_ids if c_id not in df_company_data.index] - assert not missing_ids, f"Company IDs are not included in the fundamental data: {missing_ids}" + assert pd.Series(company_ids).isin(df_company_data.index).all(), \ + "some of the company ids are not included in the fundamental data" company_info_at_base_year = self.company_data.get_company_intensity_and_production_at_base_year(company_ids) projected_production = self.benchmark_projected_production.get_company_projected_production( @@ -76,7 +77,7 @@ def get_preprocessed_company_data(self, company_ids: List[str]) -> List[ICompany projected_emission_intensity=self.benchmarks_projected_emission_intensity.get_SDA_intensity_benchmarks( company_info_at_base_year), projected_production=projected_production).rename(self.column_config.CUMULATIVE_BUDGET) - # print(f"""\ndf_budget = {df_budget}\n\nf_budget.sum() = {df_budget.sum()}\n\n""") + # print(f"\ndf_trajectory.values.quantity[0] = {df_trajectory.values.quantity[0]}\n\n") df_company_data = pd.concat([df_company_data, df_trajectory, df_target, df_budget], axis=1) df_company_data[self.column_config.BENCHMARK_GLOBAL_BUDGET] = pd.Series([self.benchmarks_projected_emission_intensity.benchmark_global_budget]* len(df_company_data), dtype='pint[Gt CO2]', @@ -84,10 +85,14 @@ def get_preprocessed_company_data(self, company_ids: List[str]) -> List[ICompany df_company_data[self.column_config.BENCHMARK_TEMP] = pd.Series([self.benchmarks_projected_emission_intensity.benchmark_temperature]* len(df_company_data), dtype='pint[delta_degC]', index=df_company_data.index) + df_company_data['ghg_s1s2'] = df_company_data['ghg_s1s2'].apply(lambda x: {'year':2019, 'value':x.m, 'units':str(x.u)}) + df_company_data['production_metric'] = df_company_data['production_metric'].apply(lambda x: {'units':x}) + for col in [ self.column_config.CUMULATIVE_TRAJECTORY, self.column_config.CUMULATIVE_TARGET, self.column_config.CUMULATIVE_BUDGET]: + df_company_data[col] = df_company_data[col].apply(lambda x: str(x)) companies = df_company_data.to_dict(orient="records") aggregate_company_data: List[ICompanyAggregates] = [ICompanyAggregates.parse_obj(company) for company in companies] - + return aggregate_company_data def _convert_df_to_model(self, df_company_data: pd.DataFrame) -> List[ICompanyAggregates]: diff --git a/ITR/data/excel.py b/ITR/data/excel.py index 1f53f7a2..b099b419 100644 --- a/ITR/data/excel.py +++ b/ITR/data/excel.py @@ -21,7 +21,7 @@ import logging -from ITR.interfaces import ICompanyProjections, ICompanyEIProjections +from ITR.interfaces import ICompanyProjections, ICompanyProjections import inspect # TODO: Force validation for excel benchmarks @@ -46,20 +46,20 @@ def convert_yoy_benchmark_excel_to_model(df_excel: pd.DataFrame, sheetname: str, def convert_intensity_benchmark_excel_to_model(df_excel: pd.DataFrame, sheetname: str, column_name_region: str, - column_name_sector: str) -> IEIBenchmarks: + column_name_sector: str) -> IBenchmarks: """ - Converts excel into IEIBenchmarks + Converts excel into IBenchmarks :param excal_path: file path to excel - :return: IEIBenchmarks instance (list of IEIBenchmark) + :return: IBenchmarks instance (list of IBenchmark) """ df_ei_bms = df_excel[sheetname].reset_index().drop(columns=['index']).set_index( [column_name_region, column_name_sector]) result = [] for index, row in df_ei_bms.iterrows(): - bm = IEIBenchmark(region=index[0], sector=index[1], - projections=[IEIBenchmarkProjection(year=int(k), value=Q_(v, ureg('t CO2/MWh'))) for k, v in row.items()]) + bm = IBenchmark(region=index[0], sector=index[1], + projections=[IBenchmarkProjection(year=int(k), value=Q_(v, ureg('t CO2/MWh'))) for k, v in row.items()]) result.append(bm) - return IEIBenchmarks(benchmarks=result) + return IBenchmarks(benchmarks=result) class ExcelProviderProductionBenchmark(BaseProviderProductionBenchmark): @@ -174,13 +174,13 @@ def _convert_from_excel_data(self, excel_path: str) -> List[ICompanyData]: return self._company_df_to_model(df_fundamentals, df_targets, df_ei, df_historic) def _convert_series_to_projections(self, projections: pd.Series) -> List[ - ICompanyEIProjection]: + ICompanyProjection]: """ - Converts a Pandas Series in a list of ICompanyEIProjections + Converts a Pandas Series in a list of ICompanyProjections :param projections: Pandas Series with years as indices :return: List of ICompanyEIProjection objects """ - return [ICompanyEIProjection(year=y, value=v) for y, v in projections.items()] + return [ICompanyProjection(year=y, value=v) for y, v in projections.items()] def _company_df_to_model(self, df_fundamentals: pd.DataFrame, df_targets: pd.DataFrame, df_ei: pd.DataFrame, df_historic: pd.DataFrame) -> List[ICompanyData]: diff --git a/ITR/data/osc_units.py b/ITR/data/osc_units.py index 078e133c..453f1767 100644 --- a/ITR/data/osc_units.py +++ b/ITR/data/osc_units.py @@ -25,10 +25,13 @@ ureg.define("boe = 5.712 GJ") ureg.define("CO2e = CO2 = CO2eq = CO2_eq") + +ureg.define("Fe_ton = [produced_ton] = Fe_") +ureg.define("J_gen = [power_generation]") +ureg.define("Wh_gen = 3600 * J_gen") + # ureg.define("HFC = [ HFC_emissions ]") # ureg.define("PFC = [ PFC_emissions ]") # ureg.define("mercury = Hg = Mercury") # ureg.define("mercure = Hg = Mercury") ureg.define("PM10 = [ PM10_emissions ]") - -ureg.define("production = [ output ]") diff --git a/ITR/interfaces.py b/ITR/interfaces.py index ca16b906..12615e85 100644 --- a/ITR/interfaces.py +++ b/ITR/interfaces.py @@ -1,6 +1,8 @@ from enum import Enum -from typing import Optional, Dict, List -from pydantic import BaseModel +from typing import Optional, Dict, List, Literal, Union +from typing_extensions import Annotated +from pydantic import BaseModel, Field, ValidationError + from pint import Quantity from ITR.data.osc_units import ureg, Q_ @@ -24,7 +26,7 @@ def __getitem__(self, item): return getattr(self, item) -class ScoreAggregation(PintModel): +class ScoreAggregation(BaseModel): all: Aggregation influence_percentage: float grouped: Dict[str, Aggregation] @@ -33,7 +35,7 @@ def __getitem__(self, item): return getattr(self, item) -class ScoreAggregationScopes(PintModel): +class ScoreAggregationScopes(BaseModel): S1S2: Optional[ScoreAggregation] S3: Optional[ScoreAggregation] S1S2S3: Optional[ScoreAggregation] @@ -42,7 +44,7 @@ def __getitem__(self, item): return getattr(self, item) -class ScoreAggregations(PintModel): +class ScoreAggregations(BaseModel): short: Optional[ScoreAggregationScopes] mid: Optional[ScoreAggregationScopes] long: Optional[ScoreAggregationScopes] @@ -51,7 +53,7 @@ def __getitem__(self, item): return getattr(self, item) -class PortfolioCompany(PintModel): +class PortfolioCompany(BaseModel): company_name: str company_id: str company_isin: Optional[str] @@ -59,58 +61,72 @@ class PortfolioCompany(PintModel): user_fields: Optional[dict] -def pint_ify(x, units): +def pint_ify(x, units='error'): if x is None: return x if type(x)==str: return ureg(x) + if isinstance(x, Quantity): + return x return Q_(x, ureg(units)) -class IBenchmarkProjection(PintModel): - year: int - value: Quantity['Wh'] +class PowerGenerationWh(BaseModel): + units: Literal['MWh'] +class PowerGenerationJ(BaseModel): + units: Literal['GJ'] +PowerGeneration = Annotated[Union[PowerGenerationWh, PowerGenerationJ], Field(discriminator='units')] - def __init__(self, year, value): - super().__init__(year=year, value=pint_ify(value, 'MWh')) +class ManufactureSteel(BaseModel): + units: Literal['Fe_ton'] +Manufacturing = Annotated[Union[ManufactureSteel], Field(discriminator='units')] -class IEIBenchmarkProjection(PintModel): - year: int - value: Quantity['CO2/Wh'] - def __init__(self, year, value): - super().__init__(year=year, value=pint_ify(value, 't CO2/MWh')) +ProductionMetric = Annotated[Union[PowerGeneration, ManufactureSteel], Field(discriminator='units')] + +class EmissionIntensity(BaseModel): + units: str -class IBenchmark(PintModel): + +BenchmarkMetric = Annotated[Union[ProductionMetric,EmissionIntensity], Field(discriminator='units')] + +class IBenchmarkProjection(BaseModel): + year: int + value: float + units: str + + +class IBenchmark(BaseModel): sector: str region: str + benchmark_metric: BenchmarkMetric projections: List[IBenchmarkProjection] def __getitem__(self, item): return getattr(self, item) -class IBenchmarks(PintModel): +class IBenchmarks(BaseModel): benchmarks: List[IBenchmark] def __getitem__(self, item): return getattr(self, item) -class IProductionBenchmarkScopes(PintModel): +class IProductionBenchmarkScopes(BaseModel): S1S2: Optional[IBenchmarks] S3: Optional[IBenchmarks] S1S2S3: Optional[IBenchmarks] -class IYOYBenchmarkProjection(PintModel): +class IYOYBenchmarkProjection(BaseModel): year: int value: float -class IYOYBenchmark(PintModel): +class IYOYBenchmark(BaseModel): sector: str region: str projections: List[IYOYBenchmarkProjection] @@ -119,39 +135,23 @@ def __getitem__(self, item): return getattr(self, item) -class IYOYBenchmarks(PintModel): +class IYOYBenchmarks(BaseModel): benchmarks: List[IYOYBenchmark] def __getitem__(self, item): return getattr(self, item) -class IYOYBenchmarkScopes(PintModel): +class IYOYBenchmarkScopes(BaseModel): S1S2: Optional[IYOYBenchmarks] S3: Optional[IYOYBenchmarks] S1S2S3: Optional[IYOYBenchmarks] -class IEIBenchmark(PintModel): - sector: str - region: str - projections: List[IEIBenchmarkProjection] - - def __getitem__(self, item): - return getattr(self, item) - - -class IEIBenchmarks(PintModel): - benchmarks: List[IEIBenchmark] - - def __getitem__(self, item): - return getattr(self, item) - - class IEmissionIntensityBenchmarkScopes(PintModel): - S1S2: Optional[IEIBenchmarks] - S3: Optional[IEIBenchmarks] - S1S2S3: Optional[IEIBenchmarks] + S1S2: Optional[IBenchmarks] + S3: Optional[IBenchmarks] + S1S2S3: Optional[IBenchmarks] benchmark_temperature: Quantity['delta_degC'] benchmark_global_budget: Quantity['CO2'] is_AFOLU_included: bool @@ -165,25 +165,23 @@ def __init__(self, benchmark_temperature, benchmark_global_budget, *args, **kwar *args, **kwargs) -class ICompanyProjection(PintModel): +class ICompanyProjection(BaseModel): year: int - value: Optional[Quantity['Wh']] - - def __init__(self, year, value): - super().__init__(year=year, value=pint_ify(value, 'MWh')) + value: Optional[float] + units: Optional[str] # Annotated[Union[ProductionMetric, EmissionIntensity], Field(discriminator='units')] def __getitem__(self, item): return getattr(self, item) -class ICompanyProjections(PintModel): +class ICompanyProjections(BaseModel): projections: List[ICompanyProjection] def __getitem__(self, item): return getattr(self, item) -class ICompanyProjectionsScopes(PintModel): +class ICompanyProjectionsScopes(BaseModel): S1S2: Optional[ICompanyProjections] S3: Optional[ICompanyProjections] S1S2S3: Optional[ICompanyProjections] @@ -191,7 +189,6 @@ class ICompanyProjectionsScopes(PintModel): def __getitem__(self, item): return getattr(self, item) - class ICompanyEIProjection(PintModel): year: int value: Optional[Quantity['CO2/Wh']] @@ -242,13 +239,14 @@ class ICompanyData(PintModel): sector: str # TODO: make SortableEnums target_probability: float - historic_data: Optional[IHistoricData] + historic_data: Optional[IHistoricData] = None projected_targets: Optional[ICompanyProjectionsScopes] = None projected_intensities: Optional[ICompanyProjectionsScopes] = None country: Optional[str] - ghg_s1s2: Optional[Quantity['Wh']] # This seems to be the base year PRODUCTION number, nothing at all to do with any quantity of actual S1S2 emissions - ghg_s3: Optional[Quantity['Wh']] + production_metric: ProductionMetric + ghg_s1s2: Optional[ICompanyProjection] # This seems to be the base year PRODUCTION number, nothing at all to do with any quantity of actual S1S2 emissions + ghg_s3: Optional[ICompanyProjection] industry_level_1: Optional[str] industry_level_2: Optional[str] @@ -261,13 +259,11 @@ class ICompanyData(PintModel): company_total_assets: Optional[float] company_cash_equivalents: Optional[float] - def __init__(self, ghg_s1s2, ghg_s3, *args, **kwargs): - super().__init__(ghg_s1s2=pint_ify(ghg_s1s2, 'MWh'), ghg_s3=pint_ify(ghg_s3, 'MWh'), *args, **kwargs) class ICompanyAggregates(ICompanyData): - cumulative_budget: Quantity['CO2/Wh'] - cumulative_trajectory: Quantity['CO2/Wh'] - cumulative_target: Quantity['CO2/Wh'] + cumulative_budget: Quantity['CO2'] + cumulative_trajectory: Quantity['CO2'] + cumulative_target: Quantity['CO2'] benchmark_temperature: Quantity['delta_degC'] benchmark_global_budget: Quantity['CO2'] diff --git a/test/inputs/json/benchmark_EI_OECM.json b/test/inputs/json/benchmark_EI_OECM.json index f1ff625a..a251e1fa 100644 --- a/test/inputs/json/benchmark_EI_OECM.json +++ b/test/inputs/json/benchmark_EI_OECM.json @@ -7,804 +7,1002 @@ { "sector": "Steel", "region": "Global", + "benchmark_metric": { "units": "t CO2/Fe_ton" }, "projections": [ { "year": 2019, - "value": "3.3220564752850343 t CO2/MWh" + "value": 3.3220564752850343, + "units": "t CO2/Fe_ton" }, { "year": 2020, - "value": "3.1503497972403762 t CO2/MWh" + "value": 3.1503497972403762, + "units": "t CO2/Fe_ton" }, { "year": 2021, - "value": "3.0527921157410978 t CO2/MWh" + "value": 3.0527921157410978, + "units": "t CO2/Fe_ton" }, { "year": 2022, - "value": "2.9552344342418193 t CO2/MWh" + "value": 2.9552344342418193, + "units": "t CO2/Fe_ton" }, { "year": 2023, - "value": "2.857676752742541 t CO2/MWh" + "value": 2.857676752742541, + "units": "t CO2/Fe_ton" }, { "year": 2024, - "value": "2.7601190712432624 t CO2/MWh" + "value": 2.7601190712432624, + "units": "t CO2/Fe_ton" }, { "year": 2025, - "value": "2.662561389743985 t CO2/MWh" + "value": 2.662561389743985, + "units": "t CO2/Fe_ton" }, { "year": 2026, - "value": "2.4712202694763543 t CO2/MWh" + "value": 2.4712202694763543, + "units": "t CO2/Fe_ton" }, { "year": 2027, - "value": "2.279879149208724 t CO2/MWh" + "value": 2.279879149208724, + "units": "t CO2/Fe_ton" }, { "year": 2028, - "value": "2.0885380289410933 t CO2/MWh" + "value": 2.0885380289410933, + "units": "t CO2/Fe_ton" }, { "year": 2029, - "value": "1.897196908673463 t CO2/MWh" + "value": 1.897196908673463, + "units": "t CO2/Fe_ton" }, { "year": 2030, - "value": "1.7058557884058332 t CO2/MWh" + "value": 1.7058557884058332, + "units": "t CO2/Fe_ton" }, { "year": 2031, - "value": "1.5675115369354773 t CO2/MWh" + "value": 1.5675115369354773, + "units": "t CO2/Fe_ton" }, { "year": 2032, - "value": "1.4291672854651214 t CO2/MWh" + "value": 1.4291672854651214, + "units": "t CO2/Fe_ton" }, { "year": 2033, - "value": "1.2908230339947655 t CO2/MWh" + "value": 1.2908230339947655, + "units": "t CO2/Fe_ton" }, { "year": 2034, - "value": "1.1524787825244096 t CO2/MWh" + "value": 1.1524787825244096, + "units": "t CO2/Fe_ton" }, { "year": 2035, - "value": "1.014134531054054 t CO2/MWh" + "value": 1.014134531054054, + "units": "t CO2/Fe_ton" }, { "year": 2036, - "value": "0.931354020885741 t CO2/MWh" + "value": 0.931354020885741, + "units": "t CO2/Fe_ton" }, { "year": 2037, - "value": "0.8485735107174281 t CO2/MWh" + "value": 0.8485735107174281, + "units": "t CO2/Fe_ton" }, { "year": 2038, - "value": "0.7657930005491153 t CO2/MWh" + "value": 0.7657930005491153, + "units": "t CO2/Fe_ton" }, { "year": 2039, - "value": "0.6830124903808024 t CO2/MWh" + "value": 0.6830124903808024, + "units": "t CO2/Fe_ton" }, { "year": 2040, - "value": "0.6002319802124896 t CO2/MWh" + "value": 0.6002319802124896, + "units": "t CO2/Fe_ton" }, { "year": 2041, - "value": "0.5476438118058607 t CO2/MWh" + "value": 0.5476438118058607, + "units": "t CO2/Fe_ton" }, { "year": 2042, - "value": "0.4950556433992319 t CO2/MWh" + "value": 0.4950556433992319, + "units": "t CO2/Fe_ton" }, { "year": 2043, - "value": "0.4424674749926031 t CO2/MWh" + "value": 0.4424674749926031, + "units": "t CO2/Fe_ton" }, { "year": 2044, - "value": "0.38987930658597425 t CO2/MWh" + "value": 0.38987930658597425, + "units": "t CO2/Fe_ton" }, { "year": 2045, - "value": "0.33729113817934536 t CO2/MWh" + "value": 0.33729113817934536, + "units": "t CO2/Fe_ton" }, { "year": 2046, - "value": "0.3018329516910954 t CO2/MWh" + "value": 0.3018329516910954, + "units": "t CO2/Fe_ton" }, { "year": 2047, - "value": "0.2663747652028455 t CO2/MWh" + "value": 0.2663747652028455, + "units": "t CO2/Fe_ton" }, { "year": 2048, - "value": "0.23091657871459553 t CO2/MWh" + "value": 0.23091657871459553, + "units": "t CO2/Fe_ton" }, { "year": 2049, - "value": "0.1954583922263456 t CO2/MWh" + "value": 0.1954583922263456, + "units": "t CO2/Fe_ton" }, { "year": 2050, - "value": "0.16000020573809565 t CO2/MWh" + "value": 0.16000020573809565, + "units": "t CO2/Fe_ton" } ] }, { "sector": "Steel", "region": "Europe", + "benchmark_metric": { "units": "t CO2/Fe_ton" }, "projections": [ { "year": 2019, - "value": "3.131211962564734 t CO2/MWh" + "value": 3.131211962564734, + "units": "t CO2/Fe_ton" }, { "year": 2020, - "value": "2.9869966982706138 t CO2/MWh" + "value": 2.9869966982706138, + "units": "t CO2/Fe_ton" }, { "year": 2021, - "value": "2.8847804173877667 t CO2/MWh" + "value": 2.8847804173877667, + "units": "t CO2/Fe_ton" }, { "year": 2022, - "value": "2.7825641365049196 t CO2/MWh" + "value": 2.7825641365049196, + "units": "t CO2/Fe_ton" }, { "year": 2023, - "value": "2.6803478556220726 t CO2/MWh" + "value": 2.6803478556220726, + "units": "t CO2/Fe_ton" }, { "year": 2024, - "value": "2.5781315747392255 t CO2/MWh" + "value": 2.5781315747392255, + "units": "t CO2/Fe_ton" }, { "year": 2025, - "value": "2.475915293856379 t CO2/MWh" + "value": 2.475915293856379, + "units": "t CO2/Fe_ton" }, { "year": 2026, - "value": "2.2910527372934544 t CO2/MWh" + "value": 2.2910527372934544, + "units": "t CO2/Fe_ton" }, { "year": 2027, - "value": "2.10619018073053 t CO2/MWh" + "value": 2.10619018073053, + "units": "t CO2/Fe_ton" }, { "year": 2028, - "value": "1.9213276241676056 t CO2/MWh" + "value": 1.9213276241676056, + "units": "t CO2/Fe_ton" }, { "year": 2029, - "value": "1.7364650676046813 t CO2/MWh" + "value": 1.7364650676046813, + "units": "t CO2/Fe_ton" }, { "year": 2030, - "value": "1.5516025110417573 t CO2/MWh" + "value": 1.5516025110417573, + "units": "t CO2/Fe_ton" }, { "year": 2031, - "value": "1.432600820509025 t CO2/MWh" + "value": 1.432600820509025, + "units": "t CO2/Fe_ton" }, { "year": 2032, - "value": "1.3135991299762928 t CO2/MWh" + "value": 1.3135991299762928, + "units": "t CO2/Fe_ton" }, { "year": 2033, - "value": "1.1945974394435606 t CO2/MWh" + "value": 1.1945974394435606, + "units": "t CO2/Fe_ton" }, { "year": 2034, - "value": "1.0755957489108283 t CO2/MWh" + "value": 1.0755957489108283, + "units": "t CO2/Fe_ton" }, { "year": 2035, - "value": "0.9565940583780966 t CO2/MWh" + "value": 0.9565940583780966, + "units": "t CO2/Fe_ton" }, { "year": 2036, - "value": "0.8773327230164034 t CO2/MWh" + "value": 0.8773327230164034, + "units": "t CO2/Fe_ton" }, { "year": 2037, - "value": "0.7980713876547102 t CO2/MWh" + "value": 0.7980713876547102, + "units": "t CO2/Fe_ton" }, { "year": 2038, - "value": "0.718810052293017 t CO2/MWh" + "value": 0.718810052293017, + "units": "t CO2/Fe_ton" }, { "year": 2039, - "value": "0.6395487169313238 t CO2/MWh" + "value": 0.6395487169313238, + "units": "t CO2/Fe_ton" }, { "year": 2040, - "value": "0.5602873815696308 t CO2/MWh" + "value": 0.5602873815696308, + "units": "t CO2/Fe_ton" }, { "year": 2041, - "value": "0.5163674619712709 t CO2/MWh" + "value": 0.5163674619712709, + "units": "t CO2/Fe_ton" }, { "year": 2042, - "value": "0.47244754237291103 t CO2/MWh" + "value": 0.47244754237291103, + "units": "t CO2/Fe_ton" }, { "year": 2043, - "value": "0.42852762277455114 t CO2/MWh" + "value": 0.42852762277455114, + "units": "t CO2/Fe_ton" }, { "year": 2044, - "value": "0.38460770317619125 t CO2/MWh" + "value": 0.38460770317619125, + "units": "t CO2/Fe_ton" }, { "year": 2045, - "value": "0.34068778357783136 t CO2/MWh" + "value": 0.34068778357783136, + "units": "t CO2/Fe_ton" }, { "year": 2046, - "value": "0.30455031546034383 t CO2/MWh" + "value": 0.30455031546034383, + "units": "t CO2/Fe_ton" }, { "year": 2047, - "value": "0.2684128473428563 t CO2/MWh" + "value": 0.2684128473428563, + "units": "t CO2/Fe_ton" }, { "year": 2048, - "value": "0.23227537922536876 t CO2/MWh" + "value": 0.23227537922536876, + "units": "t CO2/Fe_ton" }, { "year": 2049, - "value": "0.1961379111078812 t CO2/MWh" + "value": 0.1961379111078812, + "units": "t CO2/Fe_ton" }, { "year": 2050, - "value": "0.16000044299039362 t CO2/MWh" + "value": 0.16000044299039362, + "units": "t CO2/Fe_ton" } ] }, { "sector": "Steel", "region": "North America", + "benchmark_metric": { "units": "t CO2/Fe_ton" }, "projections": [ { "year": 2019, - "value": "2.9870685915231707 t CO2/MWh" + "value": 2.9870685915231707, + "units": "t CO2/Fe_ton" }, { "year": 2020, - "value": "2.9486311713663316 t CO2/MWh" + "value": 2.9486311713663316, + "units": "t CO2/Fe_ton" }, { "year": 2021, - "value": "2.911342598101551 t CO2/MWh" + "value": 2.911342598101551, + "units": "t CO2/Fe_ton" }, { "year": 2022, - "value": "2.87405402483677 t CO2/MWh" + "value": 2.87405402483677, + "units": "t CO2/Fe_ton" }, { "year": 2023, - "value": "2.8367654515719893 t CO2/MWh" + "value": 2.8367654515719893, + "units": "t CO2/Fe_ton" }, { "year": 2024, - "value": "2.7994768783072086 t CO2/MWh" + "value": 2.7994768783072086, + "units": "t CO2/Fe_ton" }, { "year": 2025, - "value": "2.972782901473998 t CO2/MWh" + "value": 2.972782901473998, + "units": "t CO2/Fe_ton" }, { "year": 2026, - "value": "2.831475560118695 t CO2/MWh" + "value": 2.831475560118695, + "units": "t CO2/Fe_ton" }, { "year": 2027, - "value": "2.690168218763392 t CO2/MWh" + "value": 2.690168218763392, + "units": "t CO2/Fe_ton" }, { "year": 2028, - "value": "2.548860877408089 t CO2/MWh" + "value": 2.548860877408089, + "units": "t CO2/Fe_ton" }, { "year": 2029, - "value": "2.407553536052786 t CO2/MWh" + "value": 2.407553536052786, + "units": "t CO2/Fe_ton" }, { "year": 2030, - "value": "2.266246194697484 t CO2/MWh" + "value": 2.266246194697484, + "units": "t CO2/Fe_ton" }, { "year": 2031, - "value": "2.1619493306345343 t CO2/MWh" + "value": 2.1619493306345343, + "units": "t CO2/Fe_ton" }, { "year": 2032, - "value": "2.0576524665715845 t CO2/MWh" + "value": 2.0576524665715845, + "units": "t CO2/Fe_ton" }, { "year": 2033, - "value": "1.9533556025086347 t CO2/MWh" + "value": 1.9533556025086347, + "units": "t CO2/Fe_ton" }, { "year": 2034, - "value": "1.849058738445685 t CO2/MWh" + "value": 1.849058738445685, + "units": "t CO2/Fe_ton" }, { "year": 2035, - "value": "1.7447618743827347 t CO2/MWh" + "value": 1.7447618743827347, + "units": "t CO2/Fe_ton" }, { "year": 2036, - "value": "1.6053321610476659 t CO2/MWh" + "value": 1.6053321610476659, + "units": "t CO2/Fe_ton" }, { "year": 2037, - "value": "1.465902447712597 t CO2/MWh" + "value": 1.465902447712597, + "units": "t CO2/Fe_ton" }, { "year": 2038, - "value": "1.3264727343775282 t CO2/MWh" + "value": 1.3264727343775282, + "units": "t CO2/Fe_ton" }, { "year": 2039, - "value": "1.1870430210424594 t CO2/MWh" + "value": 1.1870430210424594, + "units": "t CO2/Fe_ton" }, { "year": 2040, - "value": "1.0476133077073908 t CO2/MWh" + "value": 1.0476133077073908, + "units": "t CO2/Fe_ton" }, { "year": 2041, - "value": "0.9551204892179995 t CO2/MWh" + "value": 0.9551204892179995, + "units": "t CO2/Fe_ton" }, { "year": 2042, - "value": "0.8626276707286082 t CO2/MWh" + "value": 0.8626276707286082, + "units": "t CO2/Fe_ton" }, { "year": 2043, - "value": "0.770134852239217 t CO2/MWh" + "value": 0.770134852239217, + "units": "t CO2/Fe_ton" }, { "year": 2044, - "value": "0.6776420337498257 t CO2/MWh" + "value": 0.6776420337498257, + "units": "t CO2/Fe_ton" }, { "year": 2045, - "value": "0.5851492152604343 t CO2/MWh" + "value": 0.5851492152604343, + "units": "t CO2/Fe_ton" }, { "year": 2046, - "value": "0.5001218018675508 t CO2/MWh" + "value": 0.5001218018675508, + "units": "t CO2/Fe_ton" }, { "year": 2047, - "value": "0.41509438847466734 t CO2/MWh" + "value": 0.41509438847466734, + "units": "t CO2/Fe_ton" }, { "year": 2048, - "value": "0.33006697508178384 t CO2/MWh" + "value": 0.33006697508178384, + "units": "t CO2/Fe_ton" }, { "year": 2049, - "value": "0.24503956168890034 t CO2/MWh" + "value": 0.24503956168890034, + "units": "t CO2/Fe_ton" }, { "year": 2050, - "value": "0.1600121482960168 t CO2/MWh" + "value": 0.1600121482960168, + "units": "t CO2/Fe_ton" } ] }, { "sector": "Electricity Utilities", "region": "Global", + "benchmark_metric": { "units": "t CO2/MWh" }, "projections": [ { "year": 2019, - "value": "0.6075603731304943 t CO2/MWh" + "value": 0.6075603731304943, + "units": "t CO2/MWh" }, { "year": 2020, - "value": "0.45274433529466107 t CO2/MWh" + "value": 0.45274433529466107, + "units": "t CO2/MWh" }, { "year": 2021, - "value": "0.41508425410495076 t CO2/MWh" + "value": 0.41508425410495076, + "units": "t CO2/MWh" }, { "year": 2022, - "value": "0.37742417291524044 t CO2/MWh" + "value": 0.37742417291524044, + "units": "t CO2/MWh" }, { "year": 2023, - "value": "0.3397640917255301 t CO2/MWh" + "value": 0.3397640917255301, + "units": "t CO2/MWh" }, { "year": 2024, - "value": "0.3021040105358198 t CO2/MWh" + "value": 0.3021040105358198, + "units": "t CO2/MWh" }, { "year": 2025, - "value": "0.26444392934610944 t CO2/MWh" + "value": 0.26444392934610944, + "units": "t CO2/MWh" }, { "year": 2026, - "value": "0.23622922761637988 t CO2/MWh" + "value": 0.23622922761637988, + "units": "t CO2/MWh" }, { "year": 2027, - "value": "0.20801452588665031 t CO2/MWh" + "value": 0.20801452588665031, + "units": "t CO2/MWh" }, { "year": 2028, - "value": "0.17979982415692075 t CO2/MWh" + "value": 0.17979982415692075, + "units": "t CO2/MWh" }, { "year": 2029, - "value": "0.1515851224271912 t CO2/MWh" + "value": 0.1515851224271912, + "units": "t CO2/MWh" }, { "year": 2030, - "value": "0.12337042069746158 t CO2/MWh" + "value": 0.12337042069746158, + "units": "t CO2/MWh" }, { "year": 2031, - "value": "0.10876688805755423 t CO2/MWh" + "value": 0.10876688805755423, + "units": "t CO2/MWh" }, { "year": 2032, - "value": "0.09416335541764688 t CO2/MWh" + "value": 0.09416335541764688, + "units": "t CO2/MWh" }, { "year": 2033, - "value": "0.07955982277773953 t CO2/MWh" + "value": 0.07955982277773953, + "units": "t CO2/MWh" }, { "year": 2034, - "value": "0.06495629013783218 t CO2/MWh" + "value": 0.06495629013783218, + "units": "t CO2/MWh" }, { "year": 2035, - "value": "0.05035275749792479 t CO2/MWh" + "value": 0.05035275749792479, + "units": "t CO2/MWh" }, { "year": 2036, - "value": "0.04437091407361017 t CO2/MWh" + "value": 0.04437091407361017, + "units": "t CO2/MWh" }, { "year": 2037, - "value": "0.03838907064929556 t CO2/MWh" + "value": 0.03838907064929556, + "units": "t CO2/MWh" }, { "year": 2038, - "value": "0.03240722722498095 t CO2/MWh" + "value": 0.03240722722498095, + "units": "t CO2/MWh" }, { "year": 2039, - "value": "0.026425383800666332 t CO2/MWh" + "value": 0.026425383800666332, + "units": "t CO2/MWh" }, { "year": 2040, - "value": "0.020443540376351713 t CO2/MWh" + "value": 0.020443540376351713, + "units": "t CO2/MWh" }, { "year": 2041, - "value": "0.01831849355545248 t CO2/MWh" + "value": 0.01831849355545248, + "units": "t CO2/MWh" }, { "year": 2042, - "value": "0.01619344673455325 t CO2/MWh" + "value": 0.01619344673455325, + "units": "t CO2/MWh" }, { "year": 2043, - "value": "0.014068399913654016 t CO2/MWh" + "value": 0.014068399913654016, + "units": "t CO2/MWh" }, { "year": 2044, - "value": "0.011943353092754783 t CO2/MWh" + "value": 0.011943353092754783, + "units": "t CO2/MWh" }, { "year": 2045, - "value": "0.009818306271855556 t CO2/MWh" + "value": 0.009818306271855556, + "units": "t CO2/MWh" }, { "year": 2046, - "value": "0.008652674634510546 t CO2/MWh" + "value": 0.008652674634510546, + "units": "t CO2/MWh" }, { "year": 2047, - "value": "0.007487042997165536 t CO2/MWh" + "value": 0.007487042997165536, + "units": "t CO2/MWh" }, { "year": 2048, - "value": "0.0063214113598205265 t CO2/MWh" + "value": 0.0063214113598205265, + "units": "t CO2/MWh" }, { "year": 2049, - "value": "0.005155779722475517 t CO2/MWh" + "value": 0.005155779722475517, + "units": "t CO2/MWh" }, { "year": 2050, - "value": "0.0039901480851305075 t CO2/MWh" + "value": 0.0039901480851305075, + "units": "t CO2/MWh" } ] }, { "sector": "Electricity Utilities", "region": "Europe", + "benchmark_metric": { "units": "t CO2/MWh" }, "projections": [ { "year": 2019, - "value": "0.35881498057849487 t CO2/MWh" + "value": 0.35881498057849487, + "units": "t CO2/MWh" }, { "year": 2020, - "value": "0.2865468233079732 t CO2/MWh" + "value": 0.2865468233079732, + "units": "t CO2/MWh" }, { "year": 2021, - "value": "0.2607557025877874 t CO2/MWh" + "value": 0.2607557025877874, + "units": "t CO2/MWh" }, { "year": 2022, - "value": "0.2349645818676016 t CO2/MWh" + "value": 0.2349645818676016, + "units": "t CO2/MWh" }, { "year": 2023, - "value": "0.2091734611474158 t CO2/MWh" + "value": 0.2091734611474158, + "units": "t CO2/MWh" }, { "year": 2024, - "value": "0.18338234042723 t CO2/MWh" + "value": 0.18338234042723, + "units": "t CO2/MWh" }, { "year": 2025, - "value": "0.15759121970704418 t CO2/MWh" + "value": 0.15759121970704418, + "units": "t CO2/MWh" }, { "year": 2026, - "value": "0.14282943407381637 t CO2/MWh" + "value": 0.14282943407381637, + "units": "t CO2/MWh" }, { "year": 2027, - "value": "0.12806764844058857 t CO2/MWh" + "value": 0.12806764844058857, + "units": "t CO2/MWh" }, { "year": 2028, - "value": "0.11330586280736078 t CO2/MWh" + "value": 0.11330586280736078, + "units": "t CO2/MWh" }, { "year": 2029, - "value": "0.098544077174133 t CO2/MWh" + "value": 0.098544077174133, + "units": "t CO2/MWh" }, { "year": 2030, - "value": "0.0837822915409052 t CO2/MWh" + "value": 0.0837822915409052, + "units": "t CO2/MWh" }, { "year": 2031, - "value": "0.07746160146599985 t CO2/MWh" + "value": 0.07746160146599985, + "units": "t CO2/MWh" }, { "year": 2032, - "value": "0.0711409113910945 t CO2/MWh" + "value": 0.0711409113910945, + "units": "t CO2/MWh" }, { "year": 2033, - "value": "0.06482022131618916 t CO2/MWh" + "value": 0.06482022131618916, + "units": "t CO2/MWh" }, { "year": 2034, - "value": "0.05849953124128381 t CO2/MWh" + "value": 0.05849953124128381, + "units": "t CO2/MWh" }, { "year": 2035, - "value": "0.052178841166378484 t CO2/MWh" + "value": 0.052178841166378484, + "units": "t CO2/MWh" }, { "year": 2036, - "value": "0.04684755406645104 t CO2/MWh" + "value": 0.04684755406645104, + "units": "t CO2/MWh" }, { "year": 2037, - "value": "0.04151626696652359 t CO2/MWh" + "value": 0.04151626696652359, + "units": "t CO2/MWh" }, { "year": 2038, - "value": "0.03618497986659615 t CO2/MWh" + "value": 0.03618497986659615, + "units": "t CO2/MWh" }, { "year": 2039, - "value": "0.0308536927666687 t CO2/MWh" + "value": 0.0308536927666687, + "units": "t CO2/MWh" }, { "year": 2040, - "value": "0.02552240566674124 t CO2/MWh" + "value": 0.02552240566674124, + "units": "t CO2/MWh" }, { "year": 2041, - "value": "0.02274307056582293 t CO2/MWh" + "value": 0.02274307056582293, + "units": "t CO2/MWh" }, { "year": 2042, - "value": "0.01996373546490462 t CO2/MWh" + "value": 0.01996373546490462, + "units": "t CO2/MWh" }, { "year": 2043, - "value": "0.017184400363986312 t CO2/MWh" + "value": 0.017184400363986312, + "units": "t CO2/MWh" }, { "year": 2044, - "value": "0.014405065263068003 t CO2/MWh" + "value": 0.014405065263068003, + "units": "t CO2/MWh" }, { "year": 2045, - "value": "0.011625730162149695 t CO2/MWh" + "value": 0.011625730162149695, + "units": "t CO2/MWh" }, { "year": 2046, - "value": "0.01038065721709401 t CO2/MWh" + "value": 0.01038065721709401, + "units": "t CO2/MWh" }, { "year": 2047, - "value": "0.009135584272038323 t CO2/MWh" + "value": 0.009135584272038323, + "units": "t CO2/MWh" }, { "year": 2048, - "value": "0.007890511326982637 t CO2/MWh" + "value": 0.007890511326982637, + "units": "t CO2/MWh" }, { "year": 2049, - "value": "0.00664543838192695 t CO2/MWh" + "value": 0.00664543838192695, + "units": "t CO2/MWh" }, { "year": 2050, - "value": "0.005400365436871264 t CO2/MWh" + "value": 0.005400365436871264, + "units": "t CO2/MWh" } ] }, { "sector": "Electricity Utilities", "region": "North America", + "benchmark_metric": { "units": "t CO2/MWh" }, "projections": [ { "year": 2019, - "value": "0.4125934987501587 t CO2/MWh" + "value": 0.4125934987501587, + "units": "t CO2/MWh" }, { "year": 2020, - "value": "0.38454300118653756 t CO2/MWh" + "value": 0.38454300118653756, + "units": "t CO2/MWh" }, { "year": 2021, - "value": "0.3374576897313128 t CO2/MWh" + "value": 0.3374576897313128, + "units": "t CO2/MWh" }, { "year": 2022, - "value": "0.29037237827608803 t CO2/MWh" + "value": 0.29037237827608803, + "units": "t CO2/MWh" }, { "year": 2023, - "value": "0.24328706682086326 t CO2/MWh" + "value": 0.24328706682086326, + "units": "t CO2/MWh" }, { "year": 2024, - "value": "0.1962017553656385 t CO2/MWh" + "value": 0.1962017553656385, + "units": "t CO2/MWh" }, { "year": 2025, - "value": "0.1923140908240688 t CO2/MWh" + "value": 0.1923140908240688, + "units": "t CO2/MWh" }, { "year": 2026, - "value": "0.16704492796205822 t CO2/MWh" + "value": 0.16704492796205822, + "units": "t CO2/MWh" }, { "year": 2027, - "value": "0.14177576510004763 t CO2/MWh" + "value": 0.14177576510004763, + "units": "t CO2/MWh" }, { "year": 2028, - "value": "0.11650660223803705 t CO2/MWh" + "value": 0.11650660223803705, + "units": "t CO2/MWh" }, { "year": 2029, - "value": "0.09123743937602646 t CO2/MWh" + "value": 0.09123743937602646, + "units": "t CO2/MWh" }, { "year": 2030, - "value": "0.06596827651401585 t CO2/MWh" + "value": 0.06596827651401585, + "units": "t CO2/MWh" }, { "year": 2031, - "value": "0.06014607184262098 t CO2/MWh" + "value": 0.06014607184262098, + "units": "t CO2/MWh" }, { "year": 2032, - "value": "0.054323867171226115 t CO2/MWh" + "value": 0.054323867171226115, + "units": "t CO2/MWh" }, { "year": 2033, - "value": "0.04850166249983125 t CO2/MWh" + "value": 0.04850166249983125, + "units": "t CO2/MWh" }, { "year": 2034, - "value": "0.04267945782843638 t CO2/MWh" + "value": 0.04267945782843638, + "units": "t CO2/MWh" }, { "year": 2035, - "value": "0.036857253157041525 t CO2/MWh" + "value": 0.036857253157041525, + "units": "t CO2/MWh" }, { "year": 2036, - "value": "0.0339296363678427 t CO2/MWh" + "value": 0.0339296363678427, + "units": "t CO2/MWh" }, { "year": 2037, - "value": "0.031002019578643875 t CO2/MWh" + "value": 0.031002019578643875, + "units": "t CO2/MWh" }, { "year": 2038, - "value": "0.02807440278944505 t CO2/MWh" + "value": 0.02807440278944505, + "units": "t CO2/MWh" }, { "year": 2039, - "value": "0.025146786000246224 t CO2/MWh" + "value": 0.025146786000246224, + "units": "t CO2/MWh" }, { "year": 2040, - "value": "0.0222191692110474 t CO2/MWh" + "value": 0.0222191692110474, + "units": "t CO2/MWh" }, { "year": 2041, - "value": "0.018843767894743155 t CO2/MWh" + "value": 0.018843767894743155, + "units": "t CO2/MWh" }, { "year": 2042, - "value": "0.015468366578438914 t CO2/MWh" + "value": 0.015468366578438914, + "units": "t CO2/MWh" }, { "year": 2043, - "value": "0.012092965262134672 t CO2/MWh" + "value": 0.012092965262134672, + "units": "t CO2/MWh" }, { "year": 2044, - "value": "0.00871756394583043 t CO2/MWh" + "value": 0.00871756394583043, + "units": "t CO2/MWh" }, { "year": 2045, - "value": "0.005342162629526188 t CO2/MWh" + "value": 0.005342162629526188, + "units": "t CO2/MWh" }, { "year": 2046, - "value": "0.005298989223589939 t CO2/MWh" + "value": 0.005298989223589939, + "units": "t CO2/MWh" }, { "year": 2047, - "value": "0.005255815817653689 t CO2/MWh" + "value": 0.005255815817653689, + "units": "t CO2/MWh" }, { "year": 2048, - "value": "0.00521264241171744 t CO2/MWh" + "value": 0.00521264241171744, + "units": "t CO2/MWh" }, { "year": 2049, - "value": "0.00516946900578119 t CO2/MWh" + "value": 0.00516946900578119, + "units": "t CO2/MWh" }, { "year": 2050, - "value": "0.005126295599844942 t CO2/MWh" + "value": 0.005126295599844942, + "units": "t CO2/MWh" } ] } diff --git a/test/inputs/json/benchmark_EI_TPI_2_degrees.json b/test/inputs/json/benchmark_EI_TPI_2_degrees.json index c229f6b5..dbd92528 100644 --- a/test/inputs/json/benchmark_EI_TPI_2_degrees.json +++ b/test/inputs/json/benchmark_EI_TPI_2_degrees.json @@ -144,131 +144,131 @@ "projections": [ { "year": 2019, - "value": "1.669 t CO2/MWh" + "value": "1.669 t CO2/Fe_ton" }, { "year": 2020, - "value": "1.498 t CO2/MWh" + "value": "1.498 t CO2/Fe_ton" }, { "year": 2021, - "value": "1.4718 t CO2/MWh" + "value": "1.4718 t CO2/Fe_ton" }, { "year": 2022, - "value": "1.4456 t CO2/MWh" + "value": "1.4456 t CO2/Fe_ton" }, { "year": 2023, - "value": "1.4194 t CO2/MWh" + "value": "1.4194 t CO2/Fe_ton" }, { "year": 2024, - "value": "1.3932 t CO2/MWh" + "value": "1.3932 t CO2/Fe_ton" }, { "year": 2025, - "value": "1.367 t CO2/MWh" + "value": "1.367 t CO2/Fe_ton" }, { "year": 2026, - "value": "1.3195999999999999 t CO2/MWh" + "value": "1.3195999999999999 t CO2/Fe_ton" }, { "year": 2027, - "value": "1.2721999999999998 t CO2/MWh" + "value": "1.2721999999999998 t CO2/Fe_ton" }, { "year": 2028, - "value": "1.2247999999999997 t CO2/MWh" + "value": "1.2247999999999997 t CO2/Fe_ton" }, { "year": 2029, - "value": "1.1773999999999996 t CO2/MWh" + "value": "1.1773999999999996 t CO2/Fe_ton" }, { "year": 2030, - "value": "1.13 t CO2/MWh" + "value": "1.13 t CO2/Fe_ton" }, { "year": 2031, - "value": "1.0948 t CO2/MWh" + "value": "1.0948 t CO2/Fe_ton" }, { "year": 2032, - "value": "1.0596 t CO2/MWh" + "value": "1.0596 t CO2/Fe_ton" }, { "year": 2033, - "value": "1.0244000000000002 t CO2/MWh" + "value": "1.0244000000000002 t CO2/Fe_ton" }, { "year": 2034, - "value": "0.9892000000000002 t CO2/MWh" + "value": "0.9892000000000002 t CO2/Fe_ton" }, { "year": 2035, - "value": "0.954 t CO2/MWh" + "value": "0.954 t CO2/Fe_ton" }, { "year": 2036, - "value": "0.9258 t CO2/MWh" + "value": "0.9258 t CO2/Fe_ton" }, { "year": 2037, - "value": "0.8976 t CO2/MWh" + "value": "0.8976 t CO2/Fe_ton" }, { "year": 2038, - "value": "0.8694 t CO2/MWh" + "value": "0.8694 t CO2/Fe_ton" }, { "year": 2039, - "value": "0.8412 t CO2/MWh" + "value": "0.8412 t CO2/Fe_ton" }, { "year": 2040, - "value": "0.813 t CO2/MWh" + "value": "0.813 t CO2/Fe_ton" }, { "year": 2041, - "value": "0.7857999999999999 t CO2/MWh" + "value": "0.7857999999999999 t CO2/Fe_ton" }, { "year": 2042, - "value": "0.7585999999999999 t CO2/MWh" + "value": "0.7585999999999999 t CO2/Fe_ton" }, { "year": 2043, - "value": "0.7313999999999999 t CO2/MWh" + "value": "0.7313999999999999 t CO2/Fe_ton" }, { "year": 2044, - "value": "0.7041999999999999 t CO2/MWh" + "value": "0.7041999999999999 t CO2/Fe_ton" }, { "year": 2045, - "value": "0.677 t CO2/MWh" + "value": "0.677 t CO2/Fe_ton" }, { "year": 2046, - "value": "0.6658000000000001 t CO2/MWh" + "value": "0.6658000000000001 t CO2/Fe_ton" }, { "year": 2047, - "value": "0.6546000000000001 t CO2/MWh" + "value": "0.6546000000000001 t CO2/Fe_ton" }, { "year": 2048, - "value": "0.6434000000000001 t CO2/MWh" + "value": "0.6434000000000001 t CO2/Fe_ton" }, { "year": 2049, - "value": "0.6322000000000001 t CO2/MWh" + "value": "0.6322000000000001 t CO2/Fe_ton" }, { "year": 2050, - "value": "0.621 t CO2/MWh" + "value": "0.621 t CO2/Fe_ton" } ] } diff --git a/test/inputs/json/benchmark_EI_TPI_below_2_degrees.json b/test/inputs/json/benchmark_EI_TPI_below_2_degrees.json index 4dacad7e..745d8a06 100644 --- a/test/inputs/json/benchmark_EI_TPI_below_2_degrees.json +++ b/test/inputs/json/benchmark_EI_TPI_below_2_degrees.json @@ -144,131 +144,131 @@ "projections": [ { "year": 2019, - "value": "1.669 t CO2/MWh" + "value": "1.669 t CO2/Fe_ton" }, { "year": 2020, - "value": "1.325 t CO2/MWh" + "value": "1.325 t CO2/Fe_ton" }, { "year": 2021, - "value": "1.2691999999999999 t CO2/MWh" + "value": "1.2691999999999999 t CO2/Fe_ton" }, { "year": 2022, - "value": "1.2133999999999998 t CO2/MWh" + "value": "1.2133999999999998 t CO2/Fe_ton" }, { "year": 2023, - "value": "1.1575999999999997 t CO2/MWh" + "value": "1.1575999999999997 t CO2/Fe_ton" }, { "year": 2024, - "value": "1.1017999999999997 t CO2/MWh" + "value": "1.1017999999999997 t CO2/Fe_ton" }, { "year": 2025, - "value": "1.046 t CO2/MWh" + "value": "1.046 t CO2/Fe_ton" }, { "year": 2026, - "value": "0.9998 t CO2/MWh" + "value": "0.9998 t CO2/Fe_ton" }, { "year": 2027, - "value": "0.9536 t CO2/MWh" + "value": "0.9536 t CO2/Fe_ton" }, { "year": 2028, - "value": "0.9074 t CO2/MWh" + "value": "0.9074 t CO2/Fe_ton" }, { "year": 2029, - "value": "0.8612 t CO2/MWh" + "value": "0.8612 t CO2/Fe_ton" }, { "year": 2030, - "value": "0.815 t CO2/MWh" + "value": "0.815 t CO2/Fe_ton" }, { "year": 2031, - "value": "0.7714 t CO2/MWh" + "value": "0.7714 t CO2/Fe_ton" }, { "year": 2032, - "value": "0.7278 t CO2/MWh" + "value": "0.7278 t CO2/Fe_ton" }, { "year": 2033, - "value": "0.6842 t CO2/MWh" + "value": "0.6842 t CO2/Fe_ton" }, { "year": 2034, - "value": "0.6406000000000001 t CO2/MWh" + "value": "0.6406000000000001 t CO2/Fe_ton" }, { "year": 2035, - "value": "0.597 t CO2/MWh" + "value": "0.597 t CO2/Fe_ton" }, { "year": 2036, - "value": "0.573 t CO2/MWh" + "value": "0.573 t CO2/Fe_ton" }, { "year": 2037, - "value": "0.5489999999999999 t CO2/MWh" + "value": "0.5489999999999999 t CO2/Fe_ton" }, { "year": 2038, - "value": "0.5249999999999999 t CO2/MWh" + "value": "0.5249999999999999 t CO2/Fe_ton" }, { "year": 2039, - "value": "0.5009999999999999 t CO2/MWh" + "value": "0.5009999999999999 t CO2/Fe_ton" }, { "year": 2040, - "value": "0.477 t CO2/MWh" + "value": "0.477 t CO2/Fe_ton" }, { "year": 2041, - "value": "0.4566 t CO2/MWh" + "value": "0.4566 t CO2/Fe_ton" }, { "year": 2042, - "value": "0.43620000000000003 t CO2/MWh" + "value": "0.43620000000000003 t CO2/Fe_ton" }, { "year": 2043, - "value": "0.41580000000000006 t CO2/MWh" + "value": "0.41580000000000006 t CO2/Fe_ton" }, { "year": 2044, - "value": "0.3954000000000001 t CO2/MWh" + "value": "0.3954000000000001 t CO2/Fe_ton" }, { "year": 2045, - "value": "0.375 t CO2/MWh" + "value": "0.375 t CO2/Fe_ton" }, { "year": 2046, - "value": "0.3526 t CO2/MWh" + "value": "0.3526 t CO2/Fe_ton" }, { "year": 2047, - "value": "0.33020000000000005 t CO2/MWh" + "value": "0.33020000000000005 t CO2/Fe_ton" }, { "year": 2048, - "value": "0.3078000000000001 t CO2/MWh" + "value": "0.3078000000000001 t CO2/Fe_ton" }, { "year": 2049, - "value": "0.2854000000000001 t CO2/MWh" + "value": "0.2854000000000001 t CO2/Fe_ton" }, { "year": 2050, - "value": "0.263 t CO2/MWh" + "value": "0.263 t CO2/Fe_ton" } ] } diff --git a/test/inputs/json/fundamental_data.json b/test/inputs/json/fundamental_data.json index 367db588..5e01b647 100644 --- a/test/inputs/json/fundamental_data.json +++ b/test/inputs/json/fundamental_data.json @@ -4,137 +4,170 @@ "company_id": "US0079031078", "region": "North America", "sector": "Electricity Utilities", + "production_metric": { "units": "MWh"}, "target_probability": 0.428571428571428, "projected_ei_targets": { "S1S2": { "projections": [ { "year": 2019, - "value": "1.6982474347547039 t CO2/MWh" + "value": 1.6982474347547039, + "units": "t CO2/MWh" }, { "year": 2020, - "value": "1.6982474347547039 t CO2/MWh" + "value": 1.6982474347547039, + "units": "t CO2/MWh" }, { "year": 2021, - "value": "1.5577542305393455 t CO2/MWh" + "value": 1.5577542305393455, + "units": "t CO2/MWh" }, { "year": 2022, - "value": "1.4175814131267945 t CO2/MWh" + "value": 1.4175814131267945, + "units": "t CO2/MWh" }, { "year": 2023, - "value": "1.3757498305423044 t CO2/MWh" + "value": 1.3757498305423044, + "units": "t CO2/MWh" }, { "year": 2024, - "value": "1.333906842328756 t CO2/MWh" + "value": 1.333906842328756, + "units": "t CO2/MWh" }, { "year": 2025, - "value": "1.2920428864089595 t CO2/MWh" + "value": 1.2920428864089595, + "units": "t CO2/MWh" }, { "year": 2026, - "value": "1.2501484659966773 t CO2/MWh" + "value": 1.2501484659966773, + "units": "t CO2/MWh" }, { "year": 2027, - "value": "1.208217599749575 t CO2/MWh" + "value": 1.208217599749575, + "units": "t CO2/MWh" }, { "year": 2028, - "value": "1.1662487949464946 t CO2/MWh" + "value": 1.1662487949464946, + "units": "t CO2/MWh" }, { "year": 2029, - "value": "1.1242411674193187 t CO2/MWh" + "value": 1.1242411674193187, + "units": "t CO2/MWh" }, { "year": 2030, - "value": "1.0821881325764464 t CO2/MWh" + "value": 1.0821881325764464, + "units": "t CO2/MWh" }, { "year": 2031, - "value": "1.0336668334595036 t CO2/MWh" + "value": 1.0336668334595036, + "units": "t CO2/MWh" }, { "year": 2032, - "value": "1.0060112712997695 t CO2/MWh" + "value": 1.0060112712997695, + "units": "t CO2/MWh" }, { "year": 2033, - "value": "0.9761745320942703 t CO2/MWh" + "value": 0.9761745320942703, + "units": "t CO2/MWh" }, { "year": 2034, - "value": "0.9425400205253531 t CO2/MWh" + "value": 0.9425400205253531, + "units": "t CO2/MWh" }, { "year": 2035, - "value": "0.9039393234183674 t CO2/MWh" + "value": 0.9039393234183674, + "units": "t CO2/MWh" }, { "year": 2036, - "value": "0.8602347104642204 t CO2/MWh" + "value": 0.8602347104642204, + "units": "t CO2/MWh" }, { "year": 2037, - "value": "0.8125797891612297 t CO2/MWh" + "value": 0.8125797891612297, + "units": "t CO2/MWh" }, { "year": 2038, - "value": "0.7629485261651574 t CO2/MWh" + "value": 0.7629485261651574, + "units": "t CO2/MWh" }, { "year": 2039, - "value": "0.7133146578424875 t CO2/MWh" + "value": 0.7133146578424875, + "units": "t CO2/MWh" }, { "year": 2040, - "value": "0.6651284434989193 t CO2/MWh" + "value": 0.6651284434989193, + "units": "t CO2/MWh" }, { "year": 2041, - "value": "0.6192381388976574 t CO2/MWh" + "value": 0.6192381388976574, + "units": "t CO2/MWh" }, { "year": 2042, - "value": "0.5760361799379609 t CO2/MWh" + "value": 0.5760361799379609, + "units": "t CO2/MWh" }, { "year": 2043, - "value": "0.535632683016501 t CO2/MWh" + "value": 0.535632683016501, + "units": "t CO2/MWh" }, { "year": 2044, - "value": "0.4979831917544518 t CO2/MWh" + "value": 0.4979831917544518, + "units": "t CO2/MWh" }, { "year": 2045, - "value": "0.4629668805902728 t CO2/MWh" + "value": 0.4629668805902728, + "units": "t CO2/MWh" }, { "year": 2046, - "value": "0.4304301348728542 t CO2/MWh" + "value": 0.4304301348728542, + "units": "t CO2/MWh" }, { "year": 2047, - "value": "0.40020948027188047 t CO2/MWh" + "value": 0.40020948027188047, + "units": "t CO2/MWh" }, { "year": 2048, - "value": "0.37214308377617 t CO2/MWh" + "value": 0.37214308377617, + "units": "t CO2/MWh" }, { "year": 2049, - "value": "0.3460761777533931 t CO2/MWh" + "value": 0.3460761777533931, + "units": "t CO2/MWh" }, { "year": 2050, - "value": "0.32186333388002936 t CO2/MWh" + "value": 0.32186333388002936, + "units": "t CO2/MWh" } ] }, @@ -146,131 +179,163 @@ "projections": [ { "year": 2019, - "value": "1.6982474347547039 t CO2/MWh" + "value": 1.6982474347547039, + "units": "t CO2/MWh" }, { "year": 2020, - "value": "1.6982474347547039 t CO2/MWh" + "value": 1.6982474347547039, + "units": "t CO2/MWh" }, { "year": 2021, - "value": "1.5908285727976155 t CO2/MWh" + "value": 1.5908285727976155, + "units": "t CO2/MWh" }, { "year": 2022, - "value": "1.4927079868414053 t CO2/MWh" + "value": 1.4927079868414053, + "units": "t CO2/MWh" }, { "year": 2023, - "value": "1.40389082098226 t CO2/MWh" + "value": 1.40389082098226, + "units": "t CO2/MWh" }, { "year": 2024, - "value": "1.32502588419455 t CO2/MWh" + "value": 1.32502588419455, + "units": "t CO2/MWh" }, { "year": 2025, - "value": "1.2569008331330909 t CO2/MWh" + "value": 1.2569008331330909, + "units": "t CO2/MWh" }, { "year": 2026, - "value": "1.1998929619569179 t CO2/MWh" + "value": 1.1998929619569179, + "units": "t CO2/MWh" }, { "year": 2027, - "value": "1.153286422184539 t CO2/MWh" + "value": 1.153286422184539, + "units": "t CO2/MWh" }, { "year": 2028, - "value": "1.1151320189357772 t CO2/MWh" + "value": 1.1151320189357772, + "units": "t CO2/MWh" }, { "year": 2029, - "value": "1.0828716192035852 t CO2/MWh" + "value": 1.0828716192035852, + "units": "t CO2/MWh" }, { "year": 2030, - "value": "1.0540625049962402 t CO2/MWh" + "value": 1.0540625049962402, + "units": "t CO2/MWh" }, { "year": 2031, - "value": "1.026649108683692 t CO2/MWh" + "value": 1.026649108683692, + "units": "t CO2/MWh" }, { "year": 2032, - "value": "0.9988596299898522 t CO2/MWh" + "value": 0.9988596299898522, + "units": "t CO2/MWh" }, { "year": 2033, - "value": "0.96902907553976 t CO2/MWh" + "value": 0.96902907553976, + "units": "t CO2/MWh" }, { "year": 2034, - "value": "0.9356001506697456 t CO2/MWh" + "value": 0.9356001506697456, + "units": "t CO2/MWh" }, { "year": 2035, - "value": "0.897456358810864 t CO2/MWh" + "value": 0.897456358810864, + "units": "t CO2/MWh" }, { "year": 2036, - "value": "0.8544664234169373 t CO2/MWh" + "value": 0.8544664234169373, + "units": "t CO2/MWh" }, { "year": 2037, - "value": "0.8077218576734648 t CO2/MWh" + "value": 0.8077218576734648, + "units": "t CO2/MWh" }, { "year": 2038, - "value": "0.7590881112787137 t CO2/MWh" + "value": 0.7590881112787137, + "units": "t CO2/MWh" }, { "year": 2039, - "value": "0.7104327175253642 t CO2/MWh" + "value": 0.7104327175253642, + "units": "t CO2/MWh" }, { "year": 2040, - "value": "0.6631344017977762 t CO2/MWh" + "value": 0.6631344017977762, + "units": "t CO2/MWh" }, { "year": 2041, - "value": "0.6180079848270246 t CO2/MWh" + "value": 0.6180079848270246, + "units": "t CO2/MWh" }, { "year": 2042, - "value": "0.5754393574567898 t CO2/MWh" + "value": 0.5754393574567898, + "units": "t CO2/MWh" }, { "year": 2043, - "value": "0.535546775490256 t CO2/MWh" + "value": 0.535546775490256, + "units": "t CO2/MWh" }, { "year": 2044, - "value": "0.4983002114580005 t CO2/MWh" + "value": 0.4983002114580005, + "units": "t CO2/MWh" }, { "year": 2045, - "value": "0.4635948642367862 t CO2/MWh" + "value": 0.4635948642367862, + "units": "t CO2/MWh" }, { "year": 2046, - "value": "0.43129246081540834 t CO2/MWh" + "value": 0.43129246081540834, + "units": "t CO2/MWh" }, { "year": 2047, - "value": "0.4012432459353121 t CO2/MWh" + "value": 0.4012432459353121, + "units": "t CO2/MWh" }, { "year": 2048, - "value": "0.3732972177077626 t CO2/MWh" + "value": 0.3732972177077626, + "units": "t CO2/MWh" }, { "year": 2049, - "value": "0.3473095993533106 t CO2/MWh" + "value": 0.3473095993533106, + "units": "t CO2/MWh" }, { "year": 2050, - "value": "0.32314328995492764 t CO2/MWh" + "value": 0.32314328995492764, + "units": "t CO2/MWh" } ] }, @@ -278,9 +343,17 @@ "S1S2S3": null }, "country": "United States of America", - "ghg_s1s2": "104827858.636039 MWh", - "ghg_s3": "104827858.636039 MWh", - "industry_level_1": null, + "ghg_s1s2": { + "year": 2019, + "value": 104827858.636039, + "units": "MWh" + }, + "ghg_s3": { + "year": 2019, + "value": 104827858.636039, + "units": "MWh" + }, + "industry_level_1": null, "industry_level_2": null, "industry_level_3": null, "industry_level_4": null, @@ -295,137 +368,170 @@ "company_id": "US00724F1012", "region": "North America", "sector": "Electricity Utilities", + "production_metric": { "units": "MWh"}, "target_probability": 0.4285714285714285, "projected_ei_targets": { "S1S2": { "projections": [ { "year": 2019, - "value": "0.47658693158227944 t CO2/MWh" + "value": 0.47658693158227944, + "units": "t CO2/MWh" }, { "year": 2020, - "value": "0.47658693158227944 t CO2/MWh" + "value": 0.47658693158227944, + "units": "t CO2/MWh" }, { "year": 2021, - "value": "0.4638779467400853 t CO2/MWh" + "value": 0.4638779467400853, + "units": "t CO2/MWh" }, { "year": 2022, - "value": "0.4511689618978912 t CO2/MWh" + "value": 0.4511689618978912, + "units": "t CO2/MWh" }, { "year": 2023, - "value": "0.43845997705569717 t CO2/MWh" + "value": 0.43845997705569717, + "units": "t CO2/MWh" }, { "year": 2024, - "value": "0.4257509922135031 t CO2/MWh" + "value": 0.4257509922135031, + "units": "t CO2/MWh" }, { "year": 2025, - "value": "0.413042007371309 t CO2/MWh" + "value": 0.413042007371309, + "units": "t CO2/MWh" }, { "year": 2026, - "value": "0.40033302252911485 t CO2/MWh" + "value": 0.40033302252911485, + "units": "t CO2/MWh" }, { "year": 2027, - "value": "0.3876240376869207 t CO2/MWh" + "value": 0.3876240376869207, + "units": "t CO2/MWh" }, { "year": 2028, - "value": "0.37491505284472665 t CO2/MWh" + "value": 0.37491505284472665, + "units": "t CO2/MWh" }, { "year": 2029, - "value": "0.3622060680025326 t CO2/MWh" + "value": 0.3622060680025326, + "units": "t CO2/MWh" }, { "year": 2030, - "value": "0.3494970831603385 t CO2/MWh" + "value": 0.3494970831603385, + "units": "t CO2/MWh" }, { "year": 2031, - "value": "0.33202222900232153 t CO2/MWh" + "value": 0.33202222900232153, + "units": "t CO2/MWh" }, { "year": 2032, - "value": "0.31454737484430456 t CO2/MWh" + "value": 0.31454737484430456, + "units": "t CO2/MWh" }, { "year": 2033, - "value": "0.2970725206862877 t CO2/MWh" + "value": 0.2970725206862877, + "units": "t CO2/MWh" }, { "year": 2034, - "value": "0.27959766652827067 t CO2/MWh" + "value": 0.27959766652827067, + "units": "t CO2/MWh" }, { "year": 2035, - "value": "0.26212281237025375 t CO2/MWh" + "value": 0.26212281237025375, + "units": "t CO2/MWh" }, { "year": 2036, - "value": "0.24464795821223684 t CO2/MWh" + "value": 0.24464795821223684, + "units": "t CO2/MWh" }, { "year": 2037, - "value": "0.2271731040542199 t CO2/MWh" + "value": 0.2271731040542199, + "units": "t CO2/MWh" }, { "year": 2038, - "value": "0.20969824989620298 t CO2/MWh" + "value": 0.20969824989620298, + "units": "t CO2/MWh" }, { "year": 2039, - "value": "0.19222339573818606 t CO2/MWh" + "value": 0.19222339573818606, + "units": "t CO2/MWh" }, { "year": 2040, - "value": "0.17474854158016914 t CO2/MWh" + "value": 0.17474854158016914, + "units": "t CO2/MWh" }, { "year": 2041, - "value": "0.15727368742215223 t CO2/MWh" + "value": 0.15727368742215223, + "units": "t CO2/MWh" }, { "year": 2042, - "value": "0.1397988332641353 t CO2/MWh" + "value": 0.1397988332641353, + "units": "t CO2/MWh" }, { "year": 2043, - "value": "0.12232397910611839 t CO2/MWh" + "value": 0.12232397910611839, + "units": "t CO2/MWh" }, { "year": 2044, - "value": "0.10484912494810146 t CO2/MWh" + "value": 0.10484912494810146, + "units": "t CO2/MWh" }, { "year": 2045, - "value": "0.08737427079008454 t CO2/MWh" + "value": 0.08737427079008454, + "units": "t CO2/MWh" }, { "year": 2046, - "value": "0.06989941663206761 t CO2/MWh" + "value": 0.06989941663206761, + "units": "t CO2/MWh" }, { "year": 2047, - "value": "0.0524245624740507 t CO2/MWh" + "value": 0.0524245624740507, + "units": "t CO2/MWh" }, { "year": 2048, - "value": "0.03494970831603377 t CO2/MWh" + "value": 0.03494970831603377, + "units": "t CO2/MWh" }, { "year": 2049, - "value": "0.017474854158016848 t CO2/MWh" + "value": 0.017474854158016848, + "units": "t CO2/MWh" }, { "year": 2050, - "value": "0.0 t CO2/MWh" + "value": 0.0, + "units": "t CO2/MWh" } ] }, @@ -437,131 +543,163 @@ "projections": [ { "year": 2019, - "value": "0.47658693158227944 t CO2/MWh" + "value": 0.47658693158227944, + "units": "t CO2/MWh" }, { "year": 2020, - "value": "0.47658693158227944 t CO2/MWh" + "value": 0.47658693158227944, + "units": "t CO2/MWh" }, { "year": 2021, - "value": "0.46469562756682775 t CO2/MWh" + "value": 0.46469562756682775, + "units": "t CO2/MWh" }, { "year": 2022, - "value": "0.4647548888456499 t CO2/MWh" + "value": 0.4647548888456499, + "units": "t CO2/MWh" }, { "year": 2023, - "value": "0.46633236949094614 t CO2/MWh" + "value": 0.46633236949094614, + "units": "t CO2/MWh" }, { "year": 2024, - "value": "0.46916211543340447 t CO2/MWh" + "value": 0.46916211543340447, + "units": "t CO2/MWh" }, { "year": 2025, - "value": "0.47272579700319967 t CO2/MWh" + "value": 0.47272579700319967, + "units": "t CO2/MWh" }, { "year": 2026, - "value": "0.476297380468674 t CO2/MWh" + "value": 0.476297380468674, + "units": "t CO2/MWh" }, { "year": 2027, - "value": "0.47917664907701873 t CO2/MWh" + "value": 0.47917664907701873, + "units": "t CO2/MWh" }, { "year": 2028, - "value": "0.48095457621703386 t CO2/MWh" + "value": 0.48095457621703386, + "units": "t CO2/MWh" }, { "year": 2029, - "value": "0.4815325131927147 t CO2/MWh" + "value": 0.4815325131927147, + "units": "t CO2/MWh" }, { "year": 2030, - "value": "0.48089866695678 t CO2/MWh" + "value": 0.48089866695678, + "units": "t CO2/MWh" }, { "year": 2031, - "value": "0.4788731437775647 t CO2/MWh" + "value": 0.4788731437775647, + "units": "t CO2/MWh" }, { "year": 2032, - "value": "0.4749200564812563 t CO2/MWh" + "value": 0.4749200564812563, + "units": "t CO2/MWh" }, { "year": 2033, - "value": "0.4680373257828999 t CO2/MWh" + "value": 0.4680373257828999, + "units": "t CO2/MWh" }, { "year": 2034, - "value": "0.456822974997255 t CO2/MWh" + "value": 0.456822974997255, + "units": "t CO2/MWh" }, { "year": 2035, - "value": "0.43992414191953577 t CO2/MWh" + "value": 0.43992414191953577, + "units": "t CO2/MWh" }, { "year": 2036, - "value": "0.41686871286337673 t CO2/MWh" + "value": 0.41686871286337673, + "units": "t CO2/MWh" }, { "year": 2037, - "value": "0.38867473018726767 t CO2/MWh" + "value": 0.38867473018726767, + "units": "t CO2/MWh" }, { "year": 2038, - "value": "0.3575275342519104 t CO2/MWh" + "value": 0.3575275342519104, + "units": "t CO2/MWh" }, { "year": 2039, - "value": "0.32578957147485127 t CO2/MWh" + "value": 0.32578957147485127, + "units": "t CO2/MWh" }, { "year": 2040, - "value": "0.2952358348870772 t CO2/MWh" + "value": 0.2952358348870772, + "units": "t CO2/MWh" }, { "year": 2041, - "value": "0.26687296857116094 t CO2/MWh" + "value": 0.26687296857116094, + "units": "t CO2/MWh" }, { "year": 2042, - "value": "0.2411077146972847 t CO2/MWh" + "value": 0.2411077146972847, + "units": "t CO2/MWh" }, { "year": 2043, - "value": "0.21798083999859974 t CO2/MWh" + "value": 0.21798083999859974, + "units": "t CO2/MWh" }, { "year": 2044, - "value": "0.1973452622150422 t CO2/MWh" + "value": 0.1973452622150422, + "units": "t CO2/MWh" }, { "year": 2045, - "value": "0.1789746807517556 t CO2/MWh" + "value": 0.1789746807517556, + "units": "t CO2/MWh" }, { "year": 2046, - "value": "0.16262213627268932 t CO2/MWh" + "value": 0.16262213627268932, + "units": "t CO2/MWh" }, { "year": 2047, - "value": "0.14804865736582992 t CO2/MWh" + "value": 0.14804865736582992, + "units": "t CO2/MWh" }, { "year": 2048, - "value": "0.1350356279896691 t CO2/MWh" + "value": 0.1350356279896691, + "units": "t CO2/MWh" }, { "year": 2049, - "value": "0.12338881327823215 t CO2/MWh" + "value": 0.12338881327823215, + "units": "t CO2/MWh" }, { "year": 2050, - "value": "0.11293834909899002 t CO2/MWh" + "value": 0.11293834909899002, + "units": "t CO2/MWh" } ] }, @@ -569,9 +707,17 @@ "S1S2S3": null }, "country": "United States of America", - "ghg_s1s2": "598937001.892059 MWh", - "ghg_s3": "598937001.892059 MWh", - "industry_level_1": null, + "ghg_s1s2": { + "year": 2019, + "value": 598937001.892059, + "units": "MWh" + }, + "ghg_s3": { + "year": 2019, + "value": 598937001.892059, + "units": "MWh" + }, + "industry_level_1": null, "industry_level_2": null, "industry_level_3": null, "industry_level_4": null, @@ -586,137 +732,170 @@ "company_id": "FR0000125338", "region": "Europe", "sector": "Electricity Utilities", + "production_metric": { "units": "MWh"}, "target_probability": 0.4285714285714285, "projected_ei_targets": { "S1S2": { "projections": [ { "year": 2019, - "value": "0.2245739316927696 t CO2/MWh" + "value": 0.2245739316927696, + "units": "t CO2/MWh" }, { "year": 2020, - "value": "0.2580129849830155 t CO2/MWh" + "value": 0.2580129849830155, + "units": "t CO2/MWh" }, { "year": 2021, - "value": "0.24042119055235542 t CO2/MWh" + "value": 0.24042119055235542, + "units": "t CO2/MWh" }, { "year": 2022, - "value": "0.22282939612169528 t CO2/MWh" + "value": 0.22282939612169528, + "units": "t CO2/MWh" }, { "year": 2023, - "value": "0.20523760169103514 t CO2/MWh" + "value": 0.20523760169103514, + "units": "t CO2/MWh" }, { "year": 2024, - "value": "0.187645807260375 t CO2/MWh" + "value": 0.187645807260375, + "units": "t CO2/MWh" }, { "year": 2025, - "value": "0.17005401282971486 t CO2/MWh" + "value": 0.17005401282971486, + "units": "t CO2/MWh" }, { "year": 2026, - "value": "0.15246221839905472 t CO2/MWh" + "value": 0.15246221839905472, + "units": "t CO2/MWh" }, { "year": 2027, - "value": "0.13487042396839458 t CO2/MWh" + "value": 0.13487042396839458, + "units": "t CO2/MWh" }, { "year": 2028, - "value": "0.11727862953773445 t CO2/MWh" + "value": 0.11727862953773445, + "units": "t CO2/MWh" }, { "year": 2029, - "value": "0.0996868351070743 t CO2/MWh" + "value": 0.0996868351070743, + "units": "t CO2/MWh" }, { "year": 2030, - "value": "0.08209504067641414 t CO2/MWh" + "value": 0.08209504067641414, + "units": "t CO2/MWh" }, { "year": 2031, - "value": "0.07388553660877273 t CO2/MWh" + "value": 0.07388553660877273, + "units": "t CO2/MWh" }, { "year": 2032, - "value": "0.06567603254113132 t CO2/MWh" + "value": 0.06567603254113132, + "units": "t CO2/MWh" }, { "year": 2033, - "value": "0.0574665284734899 t CO2/MWh" + "value": 0.0574665284734899, + "units": "t CO2/MWh" }, { "year": 2034, - "value": "0.0492570244058485 t CO2/MWh" + "value": 0.0492570244058485, + "units": "t CO2/MWh" }, { "year": 2035, - "value": "0.041047520338207084 t CO2/MWh" + "value": 0.041047520338207084, + "units": "t CO2/MWh" }, { "year": 2036, - "value": "0.032838016270565665 t CO2/MWh" + "value": 0.032838016270565665, + "units": "t CO2/MWh" }, { "year": 2037, - "value": "0.024628512202924252 t CO2/MWh" + "value": 0.024628512202924252, + "units": "t CO2/MWh" }, { "year": 2038, - "value": "0.016419008135282843 t CO2/MWh" + "value": 0.016419008135282843, + "units": "t CO2/MWh" }, { "year": 2039, - "value": "0.008209504067641425 t CO2/MWh" + "value": 0.008209504067641425, + "units": "t CO2/MWh" }, { "year": 2040, - "value": "0.0 t CO2/MWh" + "value": 0.0, + "units": "t CO2/MWh" }, { "year": 2041, - "value": "0.0 t CO2/MWh" + "value": 0.0, + "units": "t CO2/MWh" }, { "year": 2042, - "value": "0.0 t CO2/MWh" + "value": 0.0, + "units": "t CO2/MWh" }, { "year": 2043, - "value": "0.0 t CO2/MWh" + "value": 0.0, + "units": "t CO2/MWh" }, { "year": 2044, - "value": "0.0 t CO2/MWh" + "value": 0.0, + "units": "t CO2/MWh" }, { "year": 2045, - "value": "0.0 t CO2/MWh" + "value": 0.0, + "units": "t CO2/MWh" }, { "year": 2046, - "value": "0.0 t CO2/MWh" + "value": 0.0, + "units": "t CO2/MWh" }, { "year": 2047, - "value": "0.0 t CO2/MWh" + "value": 0.0, + "units": "t CO2/MWh" }, { "year": 2048, - "value": "0.0 t CO2/MWh" + "value": 0.0, + "units": "t CO2/MWh" }, { "year": 2049, - "value": "0.0 t CO2/MWh" + "value": 0.0, + "units": "t CO2/MWh" }, { "year": 2050, - "value": "0.0 t CO2/MWh" + "value": 0.0, + "units": "t CO2/MWh" } ] }, @@ -728,131 +907,163 @@ "projections": [ { "year": 2019, - "value": "0.2245739316927696 t CO2/MWh" + "value": 0.2245739316927696, + "units": "t CO2/MWh" }, { "year": 2020, - "value": "0.2580129849830155 t CO2/MWh" + "value": 0.2580129849830155, + "units": "t CO2/MWh" }, { "year": 2021, - "value": "0.26177945879248193 t CO2/MWh" + "value": 0.26177945879248193, + "units": "t CO2/MWh" }, { "year": 2022, - "value": "0.2641607100651649 t CO2/MWh" + "value": 0.2641607100651649, + "units": "t CO2/MWh" }, { "year": 2023, - "value": "0.26650337879692015 t CO2/MWh" + "value": 0.26650337879692015, + "units": "t CO2/MWh" }, { "year": 2024, - "value": "0.2686911139325781 t CO2/MWh" + "value": 0.2686911139325781, + "units": "t CO2/MWh" }, { "year": 2025, - "value": "0.27056941251245425 t CO2/MWh" + "value": 0.27056941251245425, + "units": "t CO2/MWh" }, { "year": 2026, - "value": "0.2719804346544648 t CO2/MWh" + "value": 0.2719804346544648, + "units": "t CO2/MWh" }, { "year": 2027, - "value": "0.2728233367299267 t CO2/MWh" + "value": 0.2728233367299267, + "units": "t CO2/MWh" }, { "year": 2028, - "value": "0.27308083760219315 t CO2/MWh" + "value": 0.27308083760219315, + "units": "t CO2/MWh" }, { "year": 2029, - "value": "0.2727671049650463 t CO2/MWh" + "value": 0.2727671049650463, + "units": "t CO2/MWh" }, { "year": 2030, - "value": "0.27183449034074286 t CO2/MWh" + "value": 0.27183449034074286, + "units": "t CO2/MWh" }, { "year": 2031, - "value": "0.2700901241414129 t CO2/MWh" + "value": 0.2700901241414129, + "units": "t CO2/MWh" }, { "year": 2032, - "value": "0.2671298769114037 t CO2/MWh" + "value": 0.2671298769114037, + "units": "t CO2/MWh" }, { "year": 2033, - "value": "0.26230202631499844 t CO2/MWh" + "value": 0.26230202631499844, + "units": "t CO2/MWh" }, { "year": 2034, - "value": "0.25477759230500713 t CO2/MWh" + "value": 0.25477759230500713, + "units": "t CO2/MWh" }, { "year": 2035, - "value": "0.24384528110981835 t CO2/MWh" + "value": 0.24384528110981835, + "units": "t CO2/MWh" }, { "year": 2036, - "value": "0.22939320881946781 t CO2/MWh" + "value": 0.22939320881946781, + "units": "t CO2/MWh" }, { "year": 2037, - "value": "0.21219242867517268 t CO2/MWh" + "value": 0.21219242867517268, + "units": "t CO2/MWh" }, { "year": 2038, - "value": "0.19361663923163058 t CO2/MWh" + "value": 0.19361663923163058, + "units": "t CO2/MWh" }, { "year": 2039, - "value": "0.17503814781395072 t CO2/MWh" + "value": 0.17503814781395072, + "units": "t CO2/MWh" }, { "year": 2040, - "value": "0.15742325486563583 t CO2/MWh" + "value": 0.15742325486563583, + "units": "t CO2/MWh" }, { "year": 2041, - "value": "0.14127686604553363 t CO2/MWh" + "value": 0.14127686604553363, + "units": "t CO2/MWh" }, { "year": 2042, - "value": "0.12676706957864525 t CO2/MWh" + "value": 0.12676706957864525, + "units": "t CO2/MWh" }, { "year": 2043, - "value": "0.11386749628109935 t CO2/MWh" + "value": 0.11386749628109935, + "units": "t CO2/MWh" }, { "year": 2044, - "value": "0.10245835732472205 t CO2/MWh" + "value": 0.10245835732472205, + "units": "t CO2/MWh" }, { "year": 2045, - "value": "0.09238520094315875 t CO2/MWh" + "value": 0.09238520094315875, + "units": "t CO2/MWh" }, { "year": 2046, - "value": "0.08348922300821485 t CO2/MWh" + "value": 0.08348922300821485, + "units": "t CO2/MWh" }, { "year": 2047, - "value": "0.07562130040069098 t CO2/MWh" + "value": 0.07562130040069098, + "units": "t CO2/MWh" }, { "year": 2048, - "value": "0.06864747304171097 t CO2/MWh" + "value": 0.06864747304171097, + "units": "t CO2/MWh" }, { "year": 2049, - "value": "0.06245019857761241 t CO2/MWh" + "value": 0.06245019857761241, + "units": "t CO2/MWh" }, { "year": 2050, - "value": "0.056927654404565015 t CO2/MWh" + "value": 0.056927654404565015, + "units": "t CO2/MWh" } ] }, @@ -860,9 +1071,17 @@ "S1S2S3": null }, "country": "Germany", - "ghg_s1s2": "122472002.661096 MWh", - "ghg_s3": "122472002.661096 MWh", - "industry_level_1": null, + "ghg_s1s2": { + "year": 2019, + "value": 122472002.661096, + "units": "MWh" + }, + "ghg_s3": { + "year": 2019, + "value": 122472002.661096, + "units": "MWh" + }, + "industry_level_1": null, "industry_level_2": null, "industry_level_3": null, "industry_level_4": null, @@ -877,137 +1096,170 @@ "company_id": "US17275R1023", "region": "Europe", "sector": "Electricity Utilities", + "production_metric": { "units": "MWh"}, "target_probability": 0.4285714285714285, "projected_ei_targets": { "S1S2": { "projections": [ { "year": 2019, - "value": "0.05724003223448632 t CO2/MWh" + "value": 0.05724003223448632, + "units": "t CO2/MWh" }, { "year": 2020, - "value": "0.05724003223448632 t CO2/MWh" + "value": 0.05724003223448632, + "units": "t CO2/MWh" }, { "year": 2021, - "value": "0.05503849253315993 t CO2/MWh" + "value": 0.05503849253315993, + "units": "t CO2/MWh" }, { "year": 2022, - "value": "0.05283695283183353 t CO2/MWh" + "value": 0.05283695283183353, + "units": "t CO2/MWh" }, { "year": 2023, - "value": "0.05063541313050714 t CO2/MWh" + "value": 0.05063541313050714, + "units": "t CO2/MWh" }, { "year": 2024, - "value": "0.048433873429180735 t CO2/MWh" + "value": 0.048433873429180735, + "units": "t CO2/MWh" }, { "year": 2025, - "value": "0.04623233372785435 t CO2/MWh" + "value": 0.04623233372785435, + "units": "t CO2/MWh" }, { "year": 2026, - "value": "0.044030794026527945 t CO2/MWh" + "value": 0.044030794026527945, + "units": "t CO2/MWh" }, { "year": 2027, - "value": "0.041829254325201556 t CO2/MWh" + "value": 0.041829254325201556, + "units": "t CO2/MWh" }, { "year": 2028, - "value": "0.039627714623875154 t CO2/MWh" + "value": 0.039627714623875154, + "units": "t CO2/MWh" }, { "year": 2029, - "value": "0.037426174922548766 t CO2/MWh" + "value": 0.037426174922548766, + "units": "t CO2/MWh" }, { "year": 2030, - "value": "0.035224635221222364 t CO2/MWh" + "value": 0.035224635221222364, + "units": "t CO2/MWh" }, { "year": 2031, - "value": "0.035224635221222364 t CO2/MWh" + "value": 0.035224635221222364, + "units": "t CO2/MWh" }, { "year": 2032, - "value": "0.035224635221222364 t CO2/MWh" + "value": 0.035224635221222364, + "units": "t CO2/MWh" }, { "year": 2033, - "value": "0.035224635221222364 t CO2/MWh" + "value": 0.035224635221222364, + "units": "t CO2/MWh" }, { "year": 2034, - "value": "0.035224635221222364 t CO2/MWh" + "value": 0.035224635221222364, + "units": "t CO2/MWh" }, { "year": 2035, - "value": "0.035224635221222364 t CO2/MWh" + "value": 0.035224635221222364, + "units": "t CO2/MWh" }, { "year": 2036, - "value": "0.035224635221222364 t CO2/MWh" + "value": 0.035224635221222364, + "units": "t CO2/MWh" }, { "year": 2037, - "value": "0.035224635221222364 t CO2/MWh" + "value": 0.035224635221222364, + "units": "t CO2/MWh" }, { "year": 2038, - "value": "0.035224635221222364 t CO2/MWh" + "value": 0.035224635221222364, + "units": "t CO2/MWh" }, { "year": 2039, - "value": "0.035224635221222364 t CO2/MWh" + "value": 0.035224635221222364, + "units": "t CO2/MWh" }, { "year": 2040, - "value": "0.035224635221222364 t CO2/MWh" + "value": 0.035224635221222364, + "units": "t CO2/MWh" }, { "year": 2041, - "value": "0.035224635221222364 t CO2/MWh" + "value": 0.035224635221222364, + "units": "t CO2/MWh" }, { "year": 2042, - "value": "0.034377382463503116 t CO2/MWh" + "value": 0.034377382463503116, + "units": "t CO2/MWh" }, { "year": 2043, - "value": "0.03205116202181782 t CO2/MWh" + "value": 0.03205116202181782, + "units": "t CO2/MWh" }, { "year": 2044, - "value": "0.029863295768792552 t CO2/MWh" + "value": 0.029863295768792552, + "units": "t CO2/MWh" }, { "year": 2045, - "value": "0.027813643646546475 t CO2/MWh" + "value": 0.027813643646546475, + "units": "t CO2/MWh" }, { "year": 2046, - "value": "0.02589814089554389 t CO2/MWh" + "value": 0.02589814089554389, + "units": "t CO2/MWh" }, { "year": 2047, - "value": "0.02411071887691341 t CO2/MWh" + "value": 0.02411071887691341, + "units": "t CO2/MWh" }, { "year": 2048, - "value": "0.022444401628175067 t CO2/MWh" + "value": 0.022444401628175067, + "units": "t CO2/MWh" }, { "year": 2049, - "value": "0.02089192129440824 t CO2/MWh" + "value": 0.02089192129440824, + "units": "t CO2/MWh" }, { "year": 2050, - "value": "0.019446057728423578 t CO2/MWh" + "value": 0.019446057728423578, + "units": "t CO2/MWh" } ] }, @@ -1019,131 +1271,163 @@ "projections": [ { "year": 2019, - "value": "0.05724003223448632 t CO2/MWh" + "value": 0.05724003223448632, + "units": "t CO2/MWh" }, { "year": 2020, - "value": "0.05724003223448632 t CO2/MWh" + "value": 0.05724003223448632, + "units": "t CO2/MWh" }, { "year": 2021, - "value": "0.05724003223448632 t CO2/MWh" + "value": 0.05724003223448632, + "units": "t CO2/MWh" }, { "year": 2022, - "value": "0.05771285904689459 t CO2/MWh" + "value": 0.05771285904689459, + "units": "t CO2/MWh" }, { "year": 2023, - "value": "0.05813380982894399 t CO2/MWh" + "value": 0.05813380982894399, + "units": "t CO2/MWh" }, { "year": 2024, - "value": "0.05846658186194516 t CO2/MWh" + "value": 0.05846658186194516, + "units": "t CO2/MWh" }, { "year": 2025, - "value": "0.05866567752158908 t CO2/MWh" + "value": 0.05866567752158908, + "units": "t CO2/MWh" }, { "year": 2026, - "value": "0.05868918063328215 t CO2/MWh" + "value": 0.05868918063328215, + "units": "t CO2/MWh" }, { "year": 2027, - "value": "0.05851907058710368 t CO2/MWh" + "value": 0.05851907058710368, + "units": "t CO2/MWh" }, { "year": 2028, - "value": "0.05817029119812636 t CO2/MWh" + "value": 0.05817029119812636, + "units": "t CO2/MWh" }, { "year": 2029, - "value": "0.0576764574644776 t CO2/MWh" + "value": 0.0576764574644776, + "units": "t CO2/MWh" }, { "year": 2030, - "value": "0.05706627123655193 t CO2/MWh" + "value": 0.05706627123655193, + "units": "t CO2/MWh" }, { "year": 2031, - "value": "0.056347417934553105 t CO2/MWh" + "value": 0.056347417934553105, + "units": "t CO2/MWh" }, { "year": 2032, - "value": "0.055498976797223154 t CO2/MWh" + "value": 0.055498976797223154, + "units": "t CO2/MWh" }, { "year": 2033, - "value": "0.054468751288682456 t CO2/MWh" + "value": 0.054468751288682456, + "units": "t CO2/MWh" }, { "year": 2034, - "value": "0.05317938393618243 t CO2/MWh" + "value": 0.05317938393618243, + "units": "t CO2/MWh" }, { "year": 2035, - "value": "0.05155357418089301 t CO2/MWh" + "value": 0.05155357418089301, + "units": "t CO2/MWh" }, { "year": 2036, - "value": "0.049557819480595636 t CO2/MWh" + "value": 0.049557819480595636, + "units": "t CO2/MWh" }, { "year": 2037, - "value": "0.047234621634526436 t CO2/MWh" + "value": 0.047234621634526436, + "units": "t CO2/MWh" }, { "year": 2038, - "value": "0.04468952296242749 t CO2/MWh" + "value": 0.04468952296242749, + "units": "t CO2/MWh" }, { "year": 2039, - "value": "0.04204531759673595 t CO2/MWh" + "value": 0.04204531759673595, + "units": "t CO2/MWh" }, { "year": 2040, - "value": "0.03940414234055353 t CO2/MWh" + "value": 0.03940414234055353, + "units": "t CO2/MWh" }, { "year": 2041, - "value": "0.03683489723360438 t CO2/MWh" + "value": 0.03683489723360438, + "units": "t CO2/MWh" }, { "year": 2042, - "value": "0.034377382463503116 t CO2/MWh" + "value": 0.034377382463503116, + "units": "t CO2/MWh" }, { "year": 2043, - "value": "0.03205116202181782 t CO2/MWh" + "value": 0.03205116202181782, + "units": "t CO2/MWh" }, { "year": 2044, - "value": "0.02986329576879256 t CO2/MWh" + "value": 0.02986329576879256, + "units": "t CO2/MWh" }, { "year": 2045, - "value": "0.027813643646546475 t CO2/MWh" + "value": 0.027813643646546475, + "units": "t CO2/MWh" }, { "year": 2046, - "value": "0.02589814089554389 t CO2/MWh" + "value": 0.02589814089554389, + "units": "t CO2/MWh" }, { "year": 2047, - "value": "0.02411071887691341 t CO2/MWh" + "value": 0.02411071887691341, + "units": "t CO2/MWh" }, { "year": 2048, - "value": "0.022444401628175067 t CO2/MWh" + "value": 0.022444401628175067, + "units": "t CO2/MWh" }, { "year": 2049, - "value": "0.02089192129440824 t CO2/MWh" + "value": 0.02089192129440824, + "units": "t CO2/MWh" }, { "year": 2050, - "value": "0.01944605772842358 t CO2/MWh" + "value": 0.01944605772842358, + "units": "t CO2/MWh" } ] }, @@ -1151,9 +1435,17 @@ "S1S2S3": null }, "country": "France", - "ghg_s1s2": "100080009.401725 MWh", - "ghg_s3": "100080009.401725 MWh", - "industry_level_1": null, + "ghg_s1s2": { + "year": 2019, + "value": 100080009.401725, + "units": "MWh" + }, + "ghg_s3": { + "year": 2019, + "value": 100080009.401725, + "units": "MWh" + }, + "industry_level_1": null, "industry_level_2": null, "industry_level_3": null, "industry_level_4": null, @@ -1168,137 +1460,170 @@ "company_id": "CH0198251305", "region": "Europe", "sector": "Electricity Utilities", + "production_metric": { "units": "MWh"}, "target_probability": 0.4285714285714285, "projected_ei_targets": { "S1S2": { "projections": [ { "year": 2019, - "value": "0.32885410556364697 t CO2/MWh" + "value": 0.32885410556364697, + "units": "t CO2/MWh" }, { "year": 2020, - "value": "0.24267537955382837 t CO2/MWh" + "value": 0.24267537955382837, + "units": "t CO2/MWh" }, { "year": 2021, - "value": "0.2292271730945991 t CO2/MWh" + "value": 0.2292271730945991, + "units": "t CO2/MWh" }, { "year": 2022, - "value": "0.21874565974086543 t CO2/MWh" + "value": 0.21874565974086543, + "units": "t CO2/MWh" }, { "year": 2023, - "value": "0.2084827854944359 t CO2/MWh" + "value": 0.2084827854944359, + "units": "t CO2/MWh" }, { "year": 2024, - "value": "0.19834320266760228 t CO2/MWh" + "value": 0.19834320266760228, + "units": "t CO2/MWh" }, { "year": 2025, - "value": "0.1881647584132854 t CO2/MWh" + "value": 0.1881647584132854, + "units": "t CO2/MWh" }, { "year": 2026, - "value": "0.17774385033046483 t CO2/MWh" + "value": 0.17774385033046483, + "units": "t CO2/MWh" }, { "year": 2027, - "value": "0.1669124201885628 t CO2/MWh" + "value": 0.1669124201885628, + "units": "t CO2/MWh" }, { "year": 2028, - "value": "0.15561003127403028 t CO2/MWh" + "value": 0.15561003127403028, + "units": "t CO2/MWh" }, { "year": 2029, - "value": "0.1438749152521488 t CO2/MWh" + "value": 0.1438749152521488, + "units": "t CO2/MWh" }, { "year": 2030, - "value": "0.13177137671503097 t CO2/MWh" + "value": 0.13177137671503097, + "units": "t CO2/MWh" }, { "year": 2031, - "value": "0.13276929275040422 t CO2/MWh" + "value": 0.13276929275040422, + "units": "t CO2/MWh" }, { "year": 2032, - "value": "0.13335784521876742 t CO2/MWh" + "value": 0.13335784521876742, + "units": "t CO2/MWh" }, { "year": 2033, - "value": "0.1333692776196653 t CO2/MWh" + "value": 0.1333692776196653, + "units": "t CO2/MWh" }, { "year": 2034, - "value": "0.13254441770964823 t CO2/MWh" + "value": 0.13254441770964823, + "units": "t CO2/MWh" }, { "year": 2035, - "value": "0.13062227989187505 t CO2/MWh" + "value": 0.13062227989187505, + "units": "t CO2/MWh" }, { "year": 2036, - "value": "0.12750949848494236 t CO2/MWh" + "value": 0.12750949848494236, + "units": "t CO2/MWh" }, { "year": 2037, - "value": "0.12340891587446856 t CO2/MWh" + "value": 0.12340891587446856, + "units": "t CO2/MWh" }, { "year": 2038, - "value": "0.11875791839377972 t CO2/MWh" + "value": 0.11875791839377972, + "units": "t CO2/MWh" }, { "year": 2039, - "value": "0.11402643138455733 t CO2/MWh" + "value": 0.11402643138455733, + "units": "t CO2/MWh" }, { "year": 2040, - "value": "0.10956018713497392 t CO2/MWh" + "value": 0.10956018713497392, + "units": "t CO2/MWh" }, { "year": 2041, - "value": "0.105545520564094 t CO2/MWh" + "value": 0.105545520564094, + "units": "t CO2/MWh" }, { "year": 2042, - "value": "0.1020465962914532 t CO2/MWh" + "value": 0.1020465962914532, + "units": "t CO2/MWh" }, { "year": 2043, - "value": "0.09905522969770901 t CO2/MWh" + "value": 0.09905522969770901, + "units": "t CO2/MWh" }, { "year": 2044, - "value": "0.09652810581191351 t CO2/MWh" + "value": 0.09652810581191351, + "units": "t CO2/MWh" }, { "year": 2045, - "value": "0.09440897997906797 t CO2/MWh" + "value": 0.09440897997906797, + "units": "t CO2/MWh" }, { "year": 2046, - "value": "0.09264026712668219 t CO2/MWh" + "value": 0.09264026712668219, + "units": "t CO2/MWh" }, { "year": 2047, - "value": "0.08517362334139754 t CO2/MWh" + "value": 0.08517362334139754, + "units": "t CO2/MWh" }, { "year": 2048, - "value": "0.07790417551833904 t CO2/MWh" + "value": 0.07790417551833904, + "units": "t CO2/MWh" }, { "year": 2049, - "value": "0.07136834505417619 t CO2/MWh" + "value": 0.07136834505417619, + "units": "t CO2/MWh" }, { "year": 2050, - "value": "0.065478378493248 t CO2/MWh" + "value": 0.065478378493248, + "units": "t CO2/MWh" } ] }, @@ -1310,131 +1635,163 @@ "projections": [ { "year": 2019, - "value": "0.32885410556364697 t CO2/MWh" + "value": 0.32885410556364697, + "units": "t CO2/MWh" }, { "year": 2020, - "value": "0.24267537955382837 t CO2/MWh" + "value": 0.24267537955382837, + "units": "t CO2/MWh" }, { "year": 2021, - "value": "0.24033457148509993 t CO2/MWh" + "value": 0.24033457148509993, + "units": "t CO2/MWh" }, { "year": 2022, - "value": "0.2409579106377267 t CO2/MWh" + "value": 0.2409579106377267, + "units": "t CO2/MWh" }, { "year": 2023, - "value": "0.2417818462064969 t CO2/MWh" + "value": 0.2417818462064969, + "units": "t CO2/MWh" }, { "year": 2024, - "value": "0.24268976440202267 t CO2/MWh" + "value": 0.24268976440202267, + "units": "t CO2/MWh" }, { "year": 2025, - "value": "0.24349460161928416 t CO2/MWh" + "value": 0.24349460161928416, + "units": "t CO2/MWh" }, { "year": 2026, - "value": "0.24397138892257464 t CO2/MWh" + "value": 0.24397138892257464, + "units": "t CO2/MWh" }, { "year": 2027, - "value": "0.24394253485616385 t CO2/MWh" + "value": 0.24394253485616385, + "units": "t CO2/MWh" }, { "year": 2028, - "value": "0.24334831939244259 t CO2/MWh" + "value": 0.24334831939244259, + "units": "t CO2/MWh" }, { "year": 2029, - "value": "0.24222255223671108 t CO2/MWh" + "value": 0.24222255223671108, + "units": "t CO2/MWh" }, { "year": 2030, - "value": "0.24059988604314503 t CO2/MWh" + "value": 0.24059988604314503, + "units": "t CO2/MWh" }, { "year": 2031, - "value": "0.23842889156088481 t CO2/MWh" + "value": 0.23842889156088481, + "units": "t CO2/MWh" }, { "year": 2032, - "value": "0.2355131231197212 t CO2/MWh" + "value": 0.2355131231197212, + "units": "t CO2/MWh" }, { "year": 2033, - "value": "0.23147855790212343 t CO2/MWh" + "value": 0.23147855790212343, + "units": "t CO2/MWh" }, { "year": 2034, - "value": "0.2258037992235861 t CO2/MWh" + "value": 0.2258037992235861, + "units": "t CO2/MWh" }, { "year": 2035, - "value": "0.21798746842676195 t CO2/MWh" + "value": 0.21798746842676195, + "units": "t CO2/MWh" }, { "year": 2036, - "value": "0.20784958694524855 t CO2/MWh" + "value": 0.20784958694524855, + "units": "t CO2/MWh" }, { "year": 2037, - "value": "0.19574887338422736 t CO2/MWh" + "value": 0.19574887338422736, + "units": "t CO2/MWh" }, { "year": 2038, - "value": "0.18246782565903438 t CO2/MWh" + "value": 0.18246782565903438, + "units": "t CO2/MWh" }, { "year": 2039, - "value": "0.16886324586102514 t CO2/MWh" + "value": 0.16886324586102514, + "units": "t CO2/MWh" }, { "year": 2040, - "value": "0.15559468476457258 t CO2/MWh" + "value": 0.15559468476457258, + "units": "t CO2/MWh" }, { "year": 2041, - "value": "0.14305525832021382 t CO2/MWh" + "value": 0.14305525832021382, + "units": "t CO2/MWh" }, { "year": 2042, - "value": "0.1314251517577364 t CO2/MWh" + "value": 0.1314251517577364, + "units": "t CO2/MWh" }, { "year": 2043, - "value": "0.12075040166572187 t CO2/MWh" + "value": 0.12075040166572187, + "units": "t CO2/MWh" }, { "year": 2044, - "value": "0.11100441183553697 t CO2/MWh" + "value": 0.11100441183553697, + "units": "t CO2/MWh" }, { "year": 2045, - "value": "0.10212645769373127 t CO2/MWh" + "value": 0.10212645769373127, + "units": "t CO2/MWh" }, { "year": 2046, - "value": "0.09404317361078214 t CO2/MWh" + "value": 0.09404317361078214, + "units": "t CO2/MWh" }, { "year": 2047, - "value": "0.0866796376574657 t CO2/MWh" + "value": 0.0866796376574657, + "units": "t CO2/MWh" }, { "year": 2048, - "value": "0.07996464424982233 t CO2/MWh" + "value": 0.07996464424982233, + "units": "t CO2/MWh" }, { "year": 2049, - "value": "0.07383289435141957 t CO2/MWh" + "value": 0.07383289435141957, + "units": "t CO2/MWh" }, { "year": 2050, - "value": "0.0682256166185565 t CO2/MWh" + "value": 0.0682256166185565, + "units": "t CO2/MWh" } ] }, @@ -1442,9 +1799,17 @@ "S1S2S3": null }, "country": "Italy", - "ghg_s1s2": "824864406.472471 MWh", - "ghg_s3": "824864406.472471 MWh", - "industry_level_1": null, + "ghg_s1s2": { + "year": 2019, + "value": 824864406.472471, + "units": "MWh" + }, + "ghg_s3": { + "year": 2019, + "value": 824864406.472471, + "units": "MWh" + }, + "industry_level_1": null, "industry_level_2": null, "industry_level_3": null, "industry_level_4": null, @@ -1459,137 +1824,170 @@ "company_id": "US1266501006", "region": "Europe", "sector": "Electricity Utilities", + "production_metric": { "units": "MWh"}, "target_probability": 0.4285714285714285, "projected_ei_targets": { "S1S2": { "projections": [ { "year": 2019, - "value": "0.11693626260640376 t CO2/MWh" + "value": 0.11693626260640376, + "units": "t CO2/MWh" }, { "year": 2020, - "value": "0.09820714020640375 t CO2/MWh" + "value": 0.09820714020640375, + "units": "t CO2/MWh" }, { "year": 2021, - "value": "0.09450259463427568 t CO2/MWh" + "value": 0.09450259463427568, + "units": "t CO2/MWh" }, { "year": 2022, - "value": "0.09042451580120292 t CO2/MWh" + "value": 0.09042451580120292, + "units": "t CO2/MWh" }, { "year": 2023, - "value": "0.0863859166070523 t CO2/MWh" + "value": 0.0863859166070523, + "units": "t CO2/MWh" }, { "year": 2024, - "value": "0.08238806892622057 t CO2/MWh" + "value": 0.08238806892622057, + "units": "t CO2/MWh" }, { "year": 2025, - "value": "0.07843287107853578 t CO2/MWh" + "value": 0.07843287107853578, + "units": "t CO2/MWh" }, { "year": 2026, - "value": "0.074520788083014 t CO2/MWh" + "value": 0.074520788083014, + "units": "t CO2/MWh" }, { "year": 2027, - "value": "0.0706483732393083 t CO2/MWh" + "value": 0.0706483732393083, + "units": "t CO2/MWh" }, { "year": 2028, - "value": "0.06680783388137478 t CO2/MWh" + "value": 0.06680783388137478, + "units": "t CO2/MWh" }, { "year": 2029, - "value": "0.0629893644649377 t CO2/MWh" + "value": 0.0629893644649377, + "units": "t CO2/MWh" }, { "year": 2030, - "value": "0.0591837718038815 t CO2/MWh" + "value": 0.0591837718038815, + "units": "t CO2/MWh" }, { "year": 2031, - "value": "0.05908796042308796 t CO2/MWh" + "value": 0.05908796042308796, + "units": "t CO2/MWh" }, { "year": 2032, - "value": "0.05899087998837707 t CO2/MWh" + "value": 0.05899087998837707, + "units": "t CO2/MWh" }, { "year": 2033, - "value": "0.058260966679067036 t CO2/MWh" + "value": 0.058260966679067036, + "units": "t CO2/MWh" }, { "year": 2034, - "value": "0.05620300525458842 t CO2/MWh" + "value": 0.05620300525458842, + "units": "t CO2/MWh" }, { "year": 2035, - "value": "0.05385193734355564 t CO2/MWh" + "value": 0.05385193734355564, + "units": "t CO2/MWh" }, { "year": 2036, - "value": "0.05120334775837065 t CO2/MWh" + "value": 0.05120334775837065, + "units": "t CO2/MWh" }, { "year": 2037, - "value": "0.04832937913827607 t CO2/MWh" + "value": 0.04832937913827607, + "units": "t CO2/MWh" }, { "year": 2038, - "value": "0.0453487042989272 t CO2/MWh" + "value": 0.0453487042989272, + "units": "t CO2/MWh" }, { "year": 2039, - "value": "0.042377599117382966 t CO2/MWh" + "value": 0.042377599117382966, + "units": "t CO2/MWh" }, { "year": 2040, - "value": "0.039500064614602357 t CO2/MWh" + "value": 0.039500064614602357, + "units": "t CO2/MWh" }, { "year": 2041, - "value": "0.036764300222194735 t CO2/MWh" + "value": 0.036764300222194735, + "units": "t CO2/MWh" }, { "year": 2042, - "value": "0.034191888556344675 t CO2/MWh" + "value": 0.034191888556344675, + "units": "t CO2/MWh" }, { "year": 2043, - "value": "0.03178815623656653 t CO2/MWh" + "value": 0.03178815623656653, + "units": "t CO2/MWh" }, { "year": 2044, - "value": "0.02954965284120169 t CO2/MWh" + "value": 0.02954965284120169, + "units": "t CO2/MWh" }, { "year": 2045, - "value": "0.027468670206231026 t CO2/MWh" + "value": 0.027468670206231026, + "units": "t CO2/MWh" }, { "year": 2046, - "value": "0.02553573366073086 t CO2/MWh" + "value": 0.02553573366073086, + "units": "t CO2/MWh" }, { "year": 2047, - "value": "0.023740898407848238 t CO2/MWh" + "value": 0.023740898407848238, + "units": "t CO2/MWh" }, { "year": 2048, - "value": "0.022074390976748723 t CO2/MWh" + "value": 0.022074390976748723, + "units": "t CO2/MWh" }, { "year": 2049, - "value": "0.020526905480782127 t CO2/MWh" + "value": 0.020526905480782127, + "units": "t CO2/MWh" }, { "year": 2050, - "value": "0.01908972259658938 t CO2/MWh" + "value": 0.01908972259658938, + "units": "t CO2/MWh" } ] }, @@ -1601,131 +1999,163 @@ "projections": [ { "year": 2019, - "value": "0.11693626260640376 t CO2/MWh" + "value": 0.11693626260640376, + "units": "t CO2/MWh" }, { "year": 2020, - "value": "0.09820714020640375 t CO2/MWh" + "value": 0.09820714020640375, + "units": "t CO2/MWh" }, { "year": 2021, - "value": "0.09820714020640375 t CO2/MWh" + "value": 0.09820714020640375, + "units": "t CO2/MWh" }, { "year": 2022, - "value": "0.091648880189256 t CO2/MWh" + "value": 0.091648880189256, + "units": "t CO2/MWh" }, { "year": 2023, - "value": "0.0857837786254669 t CO2/MWh" + "value": 0.0857837786254669, + "units": "t CO2/MWh" }, { "year": 2024, - "value": "0.08063416627878701 t CO2/MWh" + "value": 0.08063416627878701, + "units": "t CO2/MWh" }, { "year": 2025, - "value": "0.07623337264441737 t CO2/MWh" + "value": 0.07623337264441737, + "units": "t CO2/MWh" }, { "year": 2026, - "value": "0.0725895622312225 t CO2/MWh" + "value": 0.0725895622312225, + "units": "t CO2/MWh" }, { "year": 2027, - "value": "0.06964222006118144 t CO2/MWh" + "value": 0.06964222006118144, + "units": "t CO2/MWh" }, { "year": 2028, - "value": "0.06725452744775011 t CO2/MWh" + "value": 0.06725452744775011, + "units": "t CO2/MWh" }, { "year": 2029, - "value": "0.06525432486541016 t CO2/MWh" + "value": 0.06525432486541016, + "units": "t CO2/MWh" }, { "year": 2030, - "value": "0.06348020418472294 t CO2/MWh" + "value": 0.06348020418472294, + "units": "t CO2/MWh" }, { "year": 2031, - "value": "0.06179800874580328 t CO2/MWh" + "value": 0.06179800874580328, + "units": "t CO2/MWh" }, { "year": 2032, - "value": "0.06009353206332086 t CO2/MWh" + "value": 0.06009353206332086, + "units": "t CO2/MWh" }, { "year": 2033, - "value": "0.058260966679067036 t CO2/MWh" + "value": 0.058260966679067036, + "units": "t CO2/MWh" }, { "year": 2034, - "value": "0.05620300525458842 t CO2/MWh" + "value": 0.05620300525458842, + "units": "t CO2/MWh" }, { "year": 2035, - "value": "0.053851937343555645 t CO2/MWh" + "value": 0.053851937343555645, + "units": "t CO2/MWh" }, { "year": 2036, - "value": "0.05120334775837065 t CO2/MWh" + "value": 0.05120334775837065, + "units": "t CO2/MWh" }, { "year": 2037, - "value": "0.04832937913827606 t CO2/MWh" + "value": 0.04832937913827606, + "units": "t CO2/MWh" }, { "year": 2038, - "value": "0.045348704298927206 t CO2/MWh" + "value": 0.045348704298927206, + "units": "t CO2/MWh" }, { "year": 2039, - "value": "0.042377599117382966 t CO2/MWh" + "value": 0.042377599117382966, + "units": "t CO2/MWh" }, { "year": 2040, - "value": "0.039500064614602357 t CO2/MWh" + "value": 0.039500064614602357, + "units": "t CO2/MWh" }, { "year": 2041, - "value": "0.03676430022219473 t CO2/MWh" + "value": 0.03676430022219473, + "units": "t CO2/MWh" }, { "year": 2042, - "value": "0.034191888556344675 t CO2/MWh" + "value": 0.034191888556344675, + "units": "t CO2/MWh" }, { "year": 2043, - "value": "0.03178815623656653 t CO2/MWh" + "value": 0.03178815623656653, + "units": "t CO2/MWh" }, { "year": 2044, - "value": "0.02954965284120169 t CO2/MWh" + "value": 0.02954965284120169, + "units": "t CO2/MWh" }, { "year": 2045, - "value": "0.027468670206231026 t CO2/MWh" + "value": 0.027468670206231026, + "units": "t CO2/MWh" }, { "year": 2046, - "value": "0.02553573366073086 t CO2/MWh" + "value": 0.02553573366073086, + "units": "t CO2/MWh" }, { "year": 2047, - "value": "0.023740898407848238 t CO2/MWh" + "value": 0.023740898407848238, + "units": "t CO2/MWh" }, { "year": 2048, - "value": "0.022074390976748723 t CO2/MWh" + "value": 0.022074390976748723, + "units": "t CO2/MWh" }, { "year": 2049, - "value": "0.020526905480782127 t CO2/MWh" + "value": 0.020526905480782127, + "units": "t CO2/MWh" }, { "year": 2050, - "value": "0.01908972259658938 t CO2/MWh" + "value": 0.01908972259658938, + "units": "t CO2/MWh" } ] }, @@ -1733,9 +2163,17 @@ "S1S2S3": null }, "country": "France", - "ghg_s1s2": "221601600.376334 MWh", - "ghg_s3": "221601600.376334 MWh", - "industry_level_1": null, + "ghg_s1s2": { + "year": 2019, + "value": 221601600.376334, + "units": "MWh" + }, + "ghg_s3": { + "year": 2019, + "value": 221601600.376334, + "units": "MWh" + }, + "industry_level_1": null, "industry_level_2": null, "industry_level_3": null, "industry_level_4": null, @@ -1750,137 +2188,170 @@ "company_id": "FR0000120644", "region": "Europe", "sector": "Electricity Utilities", + "production_metric": { "units": "MWh"}, "target_probability": 0.4285714285714285, "projected_ei_targets": { "S1S2": { "projections": [ { "year": 2019, - "value": "0.13171752365218167 t CO2/MWh" + "value": 0.13171752365218167, + "units": "t CO2/MWh" }, { "year": 2020, - "value": "0.12261207069164322 t CO2/MWh" + "value": 0.12261207069164322, + "units": "t CO2/MWh" }, { "year": 2021, - "value": "0.11302603607393294 t CO2/MWh" + "value": 0.11302603607393294, + "units": "t CO2/MWh" }, { "year": 2022, - "value": "0.10344000145622266 t CO2/MWh" + "value": 0.10344000145622266, + "units": "t CO2/MWh" }, { "year": 2023, - "value": "0.09385396683851237 t CO2/MWh" + "value": 0.09385396683851237, + "units": "t CO2/MWh" }, { "year": 2024, - "value": "0.0842679322208021 t CO2/MWh" + "value": 0.0842679322208021, + "units": "t CO2/MWh" }, { "year": 2025, - "value": "0.07468189760309181 t CO2/MWh" + "value": 0.07468189760309181, + "units": "t CO2/MWh" }, { "year": 2026, - "value": "0.06509586298538153 t CO2/MWh" + "value": 0.06509586298538153, + "units": "t CO2/MWh" }, { "year": 2027, - "value": "0.05550982836767124 t CO2/MWh" + "value": 0.05550982836767124, + "units": "t CO2/MWh" }, { "year": 2028, - "value": "0.04592379374996095 t CO2/MWh" + "value": 0.04592379374996095, + "units": "t CO2/MWh" }, { "year": 2029, - "value": "0.036337759132250666 t CO2/MWh" + "value": 0.036337759132250666, + "units": "t CO2/MWh" }, { "year": 2030, - "value": "0.026751724514540373 t CO2/MWh" + "value": 0.026751724514540373, + "units": "t CO2/MWh" }, { "year": 2031, - "value": "0.025414138288813358 t CO2/MWh" + "value": 0.025414138288813358, + "units": "t CO2/MWh" }, { "year": 2032, - "value": "0.02407655206308634 t CO2/MWh" + "value": 0.02407655206308634, + "units": "t CO2/MWh" }, { "year": 2033, - "value": "0.02273896583735932 t CO2/MWh" + "value": 0.02273896583735932, + "units": "t CO2/MWh" }, { "year": 2034, - "value": "0.0214013796116323 t CO2/MWh" + "value": 0.0214013796116323, + "units": "t CO2/MWh" }, { "year": 2035, - "value": "0.02006379338590528 t CO2/MWh" + "value": 0.02006379338590528, + "units": "t CO2/MWh" }, { "year": 2036, - "value": "0.018726207160178265 t CO2/MWh" + "value": 0.018726207160178265, + "units": "t CO2/MWh" }, { "year": 2037, - "value": "0.017388620934451246 t CO2/MWh" + "value": 0.017388620934451246, + "units": "t CO2/MWh" }, { "year": 2038, - "value": "0.016051034708724224 t CO2/MWh" + "value": 0.016051034708724224, + "units": "t CO2/MWh" }, { "year": 2039, - "value": "0.014713448482997205 t CO2/MWh" + "value": 0.014713448482997205, + "units": "t CO2/MWh" }, { "year": 2040, - "value": "0.013375862257270187 t CO2/MWh" + "value": 0.013375862257270187, + "units": "t CO2/MWh" }, { "year": 2041, - "value": "0.01203827603154317 t CO2/MWh" + "value": 0.01203827603154317, + "units": "t CO2/MWh" }, { "year": 2042, - "value": "0.01070068980581615 t CO2/MWh" + "value": 0.01070068980581615, + "units": "t CO2/MWh" }, { "year": 2043, - "value": "0.009363103580089132 t CO2/MWh" + "value": 0.009363103580089132, + "units": "t CO2/MWh" }, { "year": 2044, - "value": "0.008025517354362112 t CO2/MWh" + "value": 0.008025517354362112, + "units": "t CO2/MWh" }, { "year": 2045, - "value": "0.006687931128635093 t CO2/MWh" + "value": 0.006687931128635093, + "units": "t CO2/MWh" }, { "year": 2046, - "value": "0.005350344902908075 t CO2/MWh" + "value": 0.005350344902908075, + "units": "t CO2/MWh" }, { "year": 2047, - "value": "0.004012758677181056 t CO2/MWh" + "value": 0.004012758677181056, + "units": "t CO2/MWh" }, { "year": 2048, - "value": "0.0026751724514540373 t CO2/MWh" + "value": 0.0026751724514540373, + "units": "t CO2/MWh" }, { "year": 2049, - "value": "0.0013375862257270187 t CO2/MWh" + "value": 0.0013375862257270187, + "units": "t CO2/MWh" }, { "year": 2050, - "value": "0.0 t CO2/MWh" + "value": 0.0, + "units": "t CO2/MWh" } ] }, @@ -1892,131 +2363,163 @@ "projections": [ { "year": 2019, - "value": "0.13171752365218167 t CO2/MWh" + "value": 0.13171752365218167, + "units": "t CO2/MWh" }, { "year": 2020, - "value": "0.12261207069164322 t CO2/MWh" + "value": 0.12261207069164322, + "units": "t CO2/MWh" }, { "year": 2021, - "value": "0.11781480053060323 t CO2/MWh" + "value": 0.11781480053060323, + "units": "t CO2/MWh" }, { "year": 2022, - "value": "0.11110279571939191 t CO2/MWh" + "value": 0.11110279571939191, + "units": "t CO2/MWh" }, { "year": 2023, - "value": "0.10511033126462122 t CO2/MWh" + "value": 0.10511033126462122, + "units": "t CO2/MWh" }, { "year": 2024, - "value": "0.0998440625805136 t CO2/MWh" + "value": 0.0998440625805136, + "units": "t CO2/MWh" }, { "year": 2025, - "value": "0.09532472621216159 t CO2/MWh" + "value": 0.09532472621216159, + "units": "t CO2/MWh" }, { "year": 2026, - "value": "0.09155174748227121 t CO2/MWh" + "value": 0.09155174748227121, + "units": "t CO2/MWh" }, { "year": 2027, - "value": "0.08846033202293997 t CO2/MWh" + "value": 0.08846033202293997, + "units": "t CO2/MWh" }, { "year": 2028, - "value": "0.08591247273271758 t CO2/MWh" + "value": 0.08591247273271758, + "units": "t CO2/MWh" }, { "year": 2029, - "value": "0.08373448642509536 t CO2/MWh" + "value": 0.08373448642509536, + "units": "t CO2/MWh" }, { "year": 2030, - "value": "0.08175955764990796 t CO2/MWh" + "value": 0.08175955764990796, + "units": "t CO2/MWh" }, { "year": 2031, - "value": "0.07984147590506223 t CO2/MWh" + "value": 0.07984147590506223, + "units": "t CO2/MWh" }, { "year": 2032, - "value": "0.07784495230409737 t CO2/MWh" + "value": 0.07784495230409737, + "units": "t CO2/MWh" }, { "year": 2033, - "value": "0.07563283464330266 t CO2/MWh" + "value": 0.07563283464330266, + "units": "t CO2/MWh" }, { "year": 2034, - "value": "0.07306982432940241 t CO2/MWh" + "value": 0.07306982432940241, + "units": "t CO2/MWh" }, { "year": 2035, - "value": "0.07005696438144916 t CO2/MWh" + "value": 0.07005696438144916, + "units": "t CO2/MWh" }, { "year": 2036, - "value": "0.06658601046251224 t CO2/MWh" + "value": 0.06658601046251224, + "units": "t CO2/MWh" }, { "year": 2037, - "value": "0.06276370448860528 t CO2/MWh" + "value": 0.06276370448860528, + "units": "t CO2/MWh" }, { "year": 2038, - "value": "0.05876872390303274 t CO2/MWh" + "value": 0.05876872390303274, + "units": "t CO2/MWh" }, { "year": 2039, - "value": "0.054777147572727725 t CO2/MWh" + "value": 0.054777147572727725, + "units": "t CO2/MWh" }, { "year": 2040, - "value": "0.05091594691972929 t CO2/MWh" + "value": 0.05091594691972929, + "units": "t CO2/MWh" }, { "year": 2041, - "value": "0.04725718943754817 t CO2/MWh" + "value": 0.04725718943754817, + "units": "t CO2/MWh" }, { "year": 2042, - "value": "0.04383217630275563 t CO2/MWh" + "value": 0.04383217630275563, + "units": "t CO2/MWh" }, { "year": 2043, - "value": "0.0406474949482153 t CO2/MWh" + "value": 0.0406474949482153, + "units": "t CO2/MWh" }, { "year": 2044, - "value": "0.03769659487458629 t CO2/MWh" + "value": 0.03769659487458629, + "units": "t CO2/MWh" }, { "year": 2045, - "value": "0.034966751370449696 t CO2/MWh" + "value": 0.034966751370449696, + "units": "t CO2/MWh" }, { "year": 2046, - "value": "0.032442872696675215 t CO2/MWh" + "value": 0.032442872696675215, + "units": "t CO2/MWh" }, { "year": 2047, - "value": "0.030109452553962107 t CO2/MWh" + "value": 0.030109452553962107, + "units": "t CO2/MWh" }, { "year": 2048, - "value": "0.02795151004903131 t CO2/MWh" + "value": 0.02795151004903131, + "units": "t CO2/MWh" }, { "year": 2049, - "value": "0.02595499944003199 t CO2/MWh" + "value": 0.02595499944003199, + "units": "t CO2/MWh" }, { "year": 2050, - "value": "0.02410695065139955 t CO2/MWh" + "value": 0.02410695065139955, + "units": "t CO2/MWh" } ] }, @@ -2024,9 +2527,17 @@ "S1S2S3": null }, "country": "Spain", - "ghg_s1s2": "411300002.585938 MWh", - "ghg_s3": "411300002.585938 MWh", - "industry_level_1": null, + "ghg_s1s2": { + "year": 2019, + "value": 411300002.585938, + "units": "MWh" + }, + "ghg_s3": { + "year": 2019, + "value": 411300002.585938, + "units": "MWh" + }, + "industry_level_1": null, "industry_level_2": null, "industry_level_3": null, "industry_level_4": null, @@ -2041,137 +2552,170 @@ "company_id": "US24703L1035", "region": "Asia", "sector": "Electricity Utilities", + "production_metric": { "units": "MWh"}, "target_probability": 0.4285714285714285, "projected_ei_targets": { "S1S2": { "projections": [ { "year": 2019, - "value": "0.0026890305288561397 t CO2/MWh" + "value": 0.0026890305288561397, + "units": "t CO2/MWh" }, { "year": 2020, - "value": "0.0026890305288561397 t CO2/MWh" + "value": 0.0026890305288561397, + "units": "t CO2/MWh" }, { "year": 2021, - "value": "0.002668971468365766 t CO2/MWh" + "value": 0.002668971468365766, + "units": "t CO2/MWh" }, { "year": 2022, - "value": "0.002681781276043892 t CO2/MWh" + "value": 0.002681781276043892, + "units": "t CO2/MWh" }, { "year": 2023, - "value": "0.0026950164809220857 t CO2/MWh" + "value": 0.0026950164809220857, + "units": "t CO2/MWh" }, { "year": 2024, - "value": "0.0027073640637838743 t CO2/MWh" + "value": 0.0027073640637838743, + "units": "t CO2/MWh" }, { "year": 2025, - "value": "0.0027169929075958367 t CO2/MWh" + "value": 0.0027169929075958367, + "units": "t CO2/MWh" }, { "year": 2026, - "value": "0.002721958787988488 t CO2/MWh" + "value": 0.002721958787988488, + "units": "t CO2/MWh" }, { "year": 2027, - "value": "0.0027209811199068205 t CO2/MWh" + "value": 0.0027209811199068205, + "units": "t CO2/MWh" }, { "year": 2028, - "value": "0.002713900288318041 t CO2/MWh" + "value": 0.002713900288318041, + "units": "t CO2/MWh" }, { "year": 2029, - "value": "0.0027012227413963 t CO2/MWh" + "value": 0.0027012227413963, + "units": "t CO2/MWh" }, { "year": 2030, - "value": "0.0026831563334262145 t CO2/MWh" + "value": 0.0026831563334262145, + "units": "t CO2/MWh" }, { "year": 2031, - "value": "0.0026587802269145366 t CO2/MWh" + "value": 0.0026587802269145366, + "units": "t CO2/MWh" }, { "year": 2032, - "value": "0.002625463804896353 t CO2/MWh" + "value": 0.002625463804896353, + "units": "t CO2/MWh" }, { "year": 2033, - "value": "0.0025785410976512943 t CO2/MWh" + "value": 0.0025785410976512943, + "units": "t CO2/MWh" }, { "year": 2034, - "value": "0.002511739142069507 t CO2/MWh" + "value": 0.002511739142069507, + "units": "t CO2/MWh" }, { "year": 2035, - "value": "0.0024192586249034147 t CO2/MWh" + "value": 0.0024192586249034147, + "units": "t CO2/MWh" }, { "year": 2036, - "value": "0.0022993852541420318 t CO2/MWh" + "value": 0.0022993852541420318, + "units": "t CO2/MWh" }, { "year": 2037, - "value": "0.00215692574292776 t CO2/MWh" + "value": 0.00215692574292776, + "units": "t CO2/MWh" }, { "year": 2038, - "value": "0.0020015798378847324 t CO2/MWh" + "value": 0.0020015798378847324, + "units": "t CO2/MWh" }, { "year": 2039, - "value": "0.0018436363925601895 t CO2/MWh" + "value": 0.0018436363925601895, + "units": "t CO2/MWh" }, { "year": 2040, - "value": "0.0016907946863419904 t CO2/MWh" + "value": 0.0016907946863419904, + "units": "t CO2/MWh" }, { "year": 2041, - "value": "0.0015474741248293325 t CO2/MWh" + "value": 0.0015474741248293325, + "units": "t CO2/MWh" }, { "year": 2042, - "value": "0.001415551845222879 t CO2/MWh" + "value": 0.001415551845222879, + "units": "t CO2/MWh" }, { "year": 2043, - "value": "0.0012953462271072822 t CO2/MWh" + "value": 0.0012953462271072822, + "units": "t CO2/MWh" }, { "year": 2044, - "value": "0.0011863596973796262 t CO2/MWh" + "value": 0.0011863596973796262, + "units": "t CO2/MWh" }, { "year": 2045, - "value": "0.0010877326764421394 t CO2/MWh" + "value": 0.0010877326764421394, + "units": "t CO2/MWh" }, { "year": 2046, - "value": "0.000998490941168868 t CO2/MWh" + "value": 0.000998490941168868, + "units": "t CO2/MWh" }, { "year": 2047, - "value": "0.0009176694545361819 t CO2/MWh" + "value": 0.0009176694545361819, + "units": "t CO2/MWh" }, { "year": 2048, - "value": "0.0008443685027029736 t CO2/MWh" + "value": 0.0008443685027029736, + "units": "t CO2/MWh" }, { "year": 2049, - "value": "0.0007777746729560217 t CO2/MWh" + "value": 0.0007777746729560217, + "units": "t CO2/MWh" }, { "year": 2050, - "value": "0.0007171644063577842 t CO2/MWh" + "value": 0.0007171644063577842, + "units": "t CO2/MWh" } ] }, @@ -2183,131 +2727,163 @@ "projections": [ { "year": 2019, - "value": "0.0026890305288561397 t CO2/MWh" + "value": 0.0026890305288561397, + "units": "t CO2/MWh" }, { "year": 2020, - "value": "0.0026890305288561397 t CO2/MWh" + "value": 0.0026890305288561397, + "units": "t CO2/MWh" }, { "year": 2021, - "value": "0.002668971468365766 t CO2/MWh" + "value": 0.002668971468365766, + "units": "t CO2/MWh" }, { "year": 2022, - "value": "0.002681781276043892 t CO2/MWh" + "value": 0.002681781276043892, + "units": "t CO2/MWh" }, { "year": 2023, - "value": "0.0026950164809220857 t CO2/MWh" + "value": 0.0026950164809220857, + "units": "t CO2/MWh" }, { "year": 2024, - "value": "0.0027073640637838743 t CO2/MWh" + "value": 0.0027073640637838743, + "units": "t CO2/MWh" }, { "year": 2025, - "value": "0.0027169929075958367 t CO2/MWh" + "value": 0.0027169929075958367, + "units": "t CO2/MWh" }, { "year": 2026, - "value": "0.002721958787988488 t CO2/MWh" + "value": 0.002721958787988488, + "units": "t CO2/MWh" }, { "year": 2027, - "value": "0.0027209811199068205 t CO2/MWh" + "value": 0.0027209811199068205, + "units": "t CO2/MWh" }, { "year": 2028, - "value": "0.002713900288318041 t CO2/MWh" + "value": 0.002713900288318041, + "units": "t CO2/MWh" }, { "year": 2029, - "value": "0.0027012227413963 t CO2/MWh" + "value": 0.0027012227413963, + "units": "t CO2/MWh" }, { "year": 2030, - "value": "0.0026831563334262145 t CO2/MWh" + "value": 0.0026831563334262145, + "units": "t CO2/MWh" }, { "year": 2031, - "value": "0.0026587802269145366 t CO2/MWh" + "value": 0.0026587802269145366, + "units": "t CO2/MWh" }, { "year": 2032, - "value": "0.002625463804896353 t CO2/MWh" + "value": 0.002625463804896353, + "units": "t CO2/MWh" }, { "year": 2033, - "value": "0.0025785410976512943 t CO2/MWh" + "value": 0.0025785410976512943, + "units": "t CO2/MWh" }, { "year": 2034, - "value": "0.002511739142069507 t CO2/MWh" + "value": 0.002511739142069507, + "units": "t CO2/MWh" }, { "year": 2035, - "value": "0.0024192586249034147 t CO2/MWh" + "value": 0.0024192586249034147, + "units": "t CO2/MWh" }, { "year": 2036, - "value": "0.0022993852541420318 t CO2/MWh" + "value": 0.0022993852541420318, + "units": "t CO2/MWh" }, { "year": 2037, - "value": "0.00215692574292776 t CO2/MWh" + "value": 0.00215692574292776, + "units": "t CO2/MWh" }, { "year": 2038, - "value": "0.0020015798378847324 t CO2/MWh" + "value": 0.0020015798378847324, + "units": "t CO2/MWh" }, { "year": 2039, - "value": "0.0018436363925601895 t CO2/MWh" + "value": 0.0018436363925601895, + "units": "t CO2/MWh" }, { "year": 2040, - "value": "0.0016907946863419904 t CO2/MWh" + "value": 0.0016907946863419904, + "units": "t CO2/MWh" }, { "year": 2041, - "value": "0.0015474741248293325 t CO2/MWh" + "value": 0.0015474741248293325, + "units": "t CO2/MWh" }, { "year": 2042, - "value": "0.001415551845222879 t CO2/MWh" + "value": 0.001415551845222879, + "units": "t CO2/MWh" }, { "year": 2043, - "value": "0.0012953462271072822 t CO2/MWh" + "value": 0.0012953462271072822, + "units": "t CO2/MWh" }, { "year": 2044, - "value": "0.0011863596973796262 t CO2/MWh" + "value": 0.0011863596973796262, + "units": "t CO2/MWh" }, { "year": 2045, - "value": "0.0010877326764421394 t CO2/MWh" + "value": 0.0010877326764421394, + "units": "t CO2/MWh" }, { "year": 2046, - "value": "0.000998490941168868 t CO2/MWh" + "value": 0.000998490941168868, + "units": "t CO2/MWh" }, { "year": 2047, - "value": "0.0009176694545361819 t CO2/MWh" + "value": 0.0009176694545361819, + "units": "t CO2/MWh" }, { "year": 2048, - "value": "0.0008443685027029736 t CO2/MWh" + "value": 0.0008443685027029736, + "units": "t CO2/MWh" }, { "year": 2049, - "value": "0.0007777746729560217 t CO2/MWh" + "value": 0.0007777746729560217, + "units": "t CO2/MWh" }, { "year": 2050, - "value": "0.0007171644063577842 t CO2/MWh" + "value": 0.0007171644063577842, + "units": "t CO2/MWh" } ] }, @@ -2315,9 +2891,17 @@ "S1S2S3": null }, "country": "South Korea", - "ghg_s1s2": "1472652000.85954 MWh", - "ghg_s3": "1472652000.85954 MWh", - "industry_level_1": null, + "ghg_s1s2": { + "year": 2019, + "value": 1472652000.85954, + "units": "MWh" + }, + "ghg_s3": { + "year": 2019, + "value": 1472652000.85954, + "units": "MWh" + }, + "industry_level_1": null, "industry_level_2": null, "industry_level_3": null, "industry_level_4": null, @@ -2332,137 +2916,170 @@ "company_id": "TW0002308004", "region": "Europe", "sector": "Electricity Utilities", + "production_metric": { "units": "MWh"}, "target_probability": 0.4285714285714285, "projected_ei_targets": { "S1S2": { "projections": [ { "year": 2019, - "value": "1.191895541675586 t CO2/MWh" + "value": 1.191895541675586, + "units": "t CO2/MWh" }, { "year": 2020, - "value": "1.191895541675586 t CO2/MWh" + "value": 1.191895541675586, + "units": "t CO2/MWh" }, { "year": 2021, - "value": "1.1784867181153384 t CO2/MWh" + "value": 1.1784867181153384, + "units": "t CO2/MWh" }, { "year": 2022, - "value": "1.1652549347367014 t CO2/MWh" + "value": 1.1652549347367014, + "units": "t CO2/MWh" }, { "year": 2023, - "value": "1.1521033390928492 t CO2/MWh" + "value": 1.1521033390928492, + "units": "t CO2/MWh" }, { "year": 2024, - "value": "1.1390810993752805 t CO2/MWh" + "value": 1.1390810993752805, + "units": "t CO2/MWh" }, { "year": 2025, - "value": "1.1262566319505123 t CO2/MWh" + "value": 1.1262566319505123, + "units": "t CO2/MWh" }, { "year": 2026, - "value": "1.1136913569217828 t CO2/MWh" + "value": 1.1136913569217828, + "units": "t CO2/MWh" }, { "year": 2027, - "value": "1.101379774383997 t CO2/MWh" + "value": 1.101379774383997, + "units": "t CO2/MWh" }, { "year": 2028, - "value": "1.0891833791776324 t CO2/MWh" + "value": 1.0891833791776324, + "units": "t CO2/MWh" }, { "year": 2029, - "value": "1.0767919410014775 t CO2/MWh" + "value": 1.0767919410014775, + "units": "t CO2/MWh" }, { "year": 2030, - "value": "1.063690242482851 t CO2/MWh" + "value": 1.063690242482851, + "units": "t CO2/MWh" }, { "year": 2031, - "value": "1.0308822499058719 t CO2/MWh" + "value": 1.0308822499058719, + "units": "t CO2/MWh" }, { "year": 2032, - "value": "0.9953541981486743 t CO2/MWh" + "value": 0.9953541981486743, + "units": "t CO2/MWh" }, { "year": 2033, - "value": "0.9553862765454333 t CO2/MWh" + "value": 0.9553862765454333, + "units": "t CO2/MWh" }, { "year": 2034, - "value": "0.9089210669859736 t CO2/MWh" + "value": 0.9089210669859736, + "units": "t CO2/MWh" }, { "year": 2035, - "value": "0.8542988752019585 t CO2/MWh" + "value": 0.8542988752019585, + "units": "t CO2/MWh" }, { "year": 2036, - "value": "0.7914397913799283 t CO2/MWh" + "value": 0.7914397913799283, + "units": "t CO2/MWh" }, { "year": 2037, - "value": "0.722482599199799 t CO2/MWh" + "value": 0.722482599199799, + "units": "t CO2/MWh" }, { "year": 2038, - "value": "0.6509845078808817 t CO2/MWh" + "value": 0.6509845078808817, + "units": "t CO2/MWh" }, { "year": 2039, - "value": "0.5803529201379924 t CO2/MWh" + "value": 0.5803529201379924, + "units": "t CO2/MWh" }, { "year": 2040, - "value": "0.5128556964634278 t CO2/MWh" + "value": 0.5128556964634278, + "units": "t CO2/MWh" }, { "year": 2041, - "value": "0.44954742920472673 t CO2/MWh" + "value": 0.44954742920472673, + "units": "t CO2/MWh" }, { "year": 2042, - "value": "0.39063748084363503 t CO2/MWh" + "value": 0.39063748084363503, + "units": "t CO2/MWh" }, { "year": 2043, - "value": "0.3358760622401324 t CO2/MWh" + "value": 0.3358760622401324, + "units": "t CO2/MWh" }, { "year": 2044, - "value": "0.2848161835955829 t CO2/MWh" + "value": 0.2848161835955829, + "units": "t CO2/MWh" }, { "year": 2045, - "value": "0.23695917182771603 t CO2/MWh" + "value": 0.23695917182771603, + "units": "t CO2/MWh" }, { "year": 2046, - "value": "0.19182516848955786 t CO2/MWh" + "value": 0.19182516848955786, + "units": "t CO2/MWh" }, { "year": 2047, - "value": "0.14898234057954354 t CO2/MWh" + "value": 0.14898234057954354, + "units": "t CO2/MWh" }, { "year": 2048, - "value": "0.10805536556109702 t CO2/MWh" + "value": 0.10805536556109702, + "units": "t CO2/MWh" }, { "year": 2049, - "value": "0.06872430309122506 t CO2/MWh" + "value": 0.06872430309122506, + "units": "t CO2/MWh" }, { "year": 2050, - "value": "0.030719485801461905 t CO2/MWh" + "value": 0.030719485801461905, + "units": "t CO2/MWh" } ] }, @@ -2474,131 +3091,163 @@ "projections": [ { "year": 2019, - "value": "1.191895541675586 t CO2/MWh" + "value": 1.191895541675586, + "units": "t CO2/MWh" }, { "year": 2020, - "value": "1.191895541675586 t CO2/MWh" + "value": 1.191895541675586, + "units": "t CO2/MWh" }, { "year": 2021, - "value": "1.1914079783329325 t CO2/MWh" + "value": 1.1914079783329325, + "units": "t CO2/MWh" }, { "year": 2022, - "value": "1.190784602860643 t CO2/MWh" + "value": 1.190784602860643, + "units": "t CO2/MWh" }, { "year": 2023, - "value": "1.1897460701445728 t CO2/MWh" + "value": 1.1897460701445728, + "units": "t CO2/MWh" }, { "year": 2024, - "value": "1.1880785232412383 t CO2/MWh" + "value": 1.1880785232412383, + "units": "t CO2/MWh" }, { "year": 2025, - "value": "1.185527520927333 t CO2/MWh" + "value": 1.185527520927333, + "units": "t CO2/MWh" }, { "year": 2026, - "value": "1.1818688853322172 t CO2/MWh" + "value": 1.1818688853322172, + "units": "t CO2/MWh" }, { "year": 2027, - "value": "1.1769914953619132 t CO2/MWh" + "value": 1.1769914953619132, + "units": "t CO2/MWh" }, { "year": 2028, - "value": "1.170879032843097 t CO2/MWh" + "value": 1.170879032843097, + "units": "t CO2/MWh" }, { "year": 2029, - "value": "1.1634457602046508 t CO2/MWh" + "value": 1.1634457602046508, + "units": "t CO2/MWh" }, { "year": 2030, - "value": "1.1543153098250205 t CO2/MWh" + "value": 1.1543153098250205, + "units": "t CO2/MWh" }, { "year": 2031, - "value": "1.1426089520502793 t CO2/MWh" + "value": 1.1426089520502793, + "units": "t CO2/MWh" }, { "year": 2032, - "value": "1.1267379271357045 t CO2/MWh" + "value": 1.1267379271357045, + "units": "t CO2/MWh" }, { "year": 2033, - "value": "1.104271074659159 t CO2/MWh" + "value": 1.104271074659159, + "units": "t CO2/MWh" }, { "year": 2034, - "value": "1.0721753974293307 t CO2/MWh" + "value": 1.0721753974293307, + "units": "t CO2/MWh" }, { "year": 2035, - "value": "1.0278552160629018 t CO2/MWh" + "value": 1.0278552160629018, + "units": "t CO2/MWh" }, { "year": 2036, - "value": "0.9708556454949443 t CO2/MWh" + "value": 0.9708556454949443, + "units": "t CO2/MWh" }, { "year": 2037, - "value": "0.9038704386353956 t CO2/MWh" + "value": 0.9038704386353956, + "units": "t CO2/MWh" }, { "year": 2038, - "value": "0.8317623522508689 t CO2/MWh" + "value": 0.8317623522508689, + "units": "t CO2/MWh" }, { "year": 2039, - "value": "0.759432810919983 t CO2/MWh" + "value": 0.759432810919983, + "units": "t CO2/MWh" }, { "year": 2040, - "value": "0.6903793059305394 t CO2/MWh" + "value": 0.6903793059305394, + "units": "t CO2/MWh" }, { "year": 2041, - "value": "0.6264782551809344 t CO2/MWh" + "value": 0.6264782551809344, + "units": "t CO2/MWh" }, { "year": 2042, - "value": "0.5684086193545546 t CO2/MWh" + "value": 0.5684086193545546, + "units": "t CO2/MWh" }, { "year": 2043, - "value": "0.5161473206295295 t CO2/MWh" + "value": 0.5161473206295295, + "units": "t CO2/MWh" }, { "year": 2044, - "value": "0.4693250070565412 t CO2/MWh" + "value": 0.4693250070565412, + "units": "t CO2/MWh" }, { "year": 2045, - "value": "0.42743535163089424 t CO2/MWh" + "value": 0.42743535163089424, + "units": "t CO2/MWh" }, { "year": 2046, - "value": "0.3899446765292378 t CO2/MWh" + "value": 0.3899446765292378, + "units": "t CO2/MWh" }, { "year": 2047, - "value": "0.35634398477407864 t CO2/MWh" + "value": 0.35634398477407864, + "units": "t CO2/MWh" }, { "year": 2048, - "value": "0.32617040920818324 t CO2/MWh" + "value": 0.32617040920818324, + "units": "t CO2/MWh" }, { "year": 2049, - "value": "0.2990133267475179 t CO2/MWh" + "value": 0.2990133267475179, + "units": "t CO2/MWh" }, { "year": 2050, - "value": "0.274513227726025 t CO2/MWh" + "value": 0.274513227726025, + "units": "t CO2/MWh" } ] }, @@ -2606,9 +3255,17 @@ "S1S2S3": null }, "country": "United Kingdom", - "ghg_s1s2": "21142801.5077199 MWh", - "ghg_s3": "21142801.5077199 MWh", - "industry_level_1": null, + "ghg_s1s2": { + "year": 2019, + "value": 21142801.5077199, + "units": "MWh" + }, + "ghg_s3": { + "year": 2019, + "value": 21142801.5077199, + "units": "MWh" + }, + "industry_level_1": null, "industry_level_2": null, "industry_level_3": null, "industry_level_4": null, @@ -2623,137 +3280,170 @@ "company_id": "FR0000120321", "region": "Asia", "sector": "Electricity Utilities", + "production_metric": { "units": "MWh"}, "target_probability": 0.4285714285714285, "projected_ei_targets": { "S1S2": { "projections": [ { "year": 2019, - "value": "0.8759061471467042 t CO2/MWh" + "value": 0.8759061471467042, + "units": "t CO2/MWh" }, { "year": 2020, - "value": "0.8710761366058977 t CO2/MWh" + "value": 0.8710761366058977, + "units": "t CO2/MWh" }, { "year": 2021, - "value": "0.87233257371262 t CO2/MWh" + "value": 0.87233257371262, + "units": "t CO2/MWh" }, { "year": 2022, - "value": "0.8731795494365063 t CO2/MWh" + "value": 0.8731795494365063, + "units": "t CO2/MWh" }, { "year": 2023, - "value": "0.8733811639019202 t CO2/MWh" + "value": 0.8733811639019202, + "units": "t CO2/MWh" }, { "year": 2024, - "value": "0.8725897216554522 t CO2/MWh" + "value": 0.8725897216554522, + "units": "t CO2/MWh" }, { "year": 2025, - "value": "0.8703762869410826 t CO2/MWh" + "value": 0.8703762869410826, + "units": "t CO2/MWh" }, { "year": 2026, - "value": "0.8663587020539113 t CO2/MWh" + "value": 0.8663587020539113, + "units": "t CO2/MWh" }, { "year": 2027, - "value": "0.8603930175807132 t CO2/MWh" + "value": 0.8603930175807132, + "units": "t CO2/MWh" }, { "year": 2028, - "value": "0.852642949257223 t CO2/MWh" + "value": 0.852642949257223, + "units": "t CO2/MWh" }, { "year": 2029, - "value": "0.8434205038290371 t CO2/MWh" + "value": 0.8434205038290371, + "units": "t CO2/MWh" }, { "year": 2030, - "value": "0.8329427969769639 t CO2/MWh" + "value": 0.8329427969769639, + "units": "t CO2/MWh" }, { "year": 2031, - "value": "0.8211620263463444 t CO2/MWh" + "value": 0.8211620263463444, + "units": "t CO2/MWh" }, { "year": 2032, - "value": "0.807672315915647 t CO2/MWh" + "value": 0.807672315915647, + "units": "t CO2/MWh" }, { "year": 2033, - "value": "0.7916681808246369 t CO2/MWh" + "value": 0.7916681808246369, + "units": "t CO2/MWh" }, { "year": 2034, - "value": "0.7720267284765746 t CO2/MWh" + "value": 0.7720267284765746, + "units": "t CO2/MWh" }, { "year": 2035, - "value": "0.7476606709729696 t CO2/MWh" + "value": 0.7476606709729696, + "units": "t CO2/MWh" }, { "year": 2036, - "value": "0.7181256859452584 t CO2/MWh" + "value": 0.7181256859452584, + "units": "t CO2/MWh" }, { "year": 2037, - "value": "0.6840543664153996 t CO2/MWh" + "value": 0.6840543664153996, + "units": "t CO2/MWh" }, { "year": 2038, - "value": "0.6469543346153854 t CO2/MWh" + "value": 0.6469543346153854, + "units": "t CO2/MWh" }, { "year": 2039, - "value": "0.6085581112867321 t CO2/MWh" + "value": 0.6085581112867321, + "units": "t CO2/MWh" }, { "year": 2040, - "value": "0.5702957411984311 t CO2/MWh" + "value": 0.5702957411984311, + "units": "t CO2/MWh" }, { "year": 2041, - "value": "0.5331256402850014 t CO2/MWh" + "value": 0.5331256402850014, + "units": "t CO2/MWh" }, { "year": 2042, - "value": "0.4975973549571816 t CO2/MWh" + "value": 0.4975973549571816, + "units": "t CO2/MWh" }, { "year": 2043, - "value": "0.46397778181495414 t CO2/MWh" + "value": 0.46397778181495414, + "units": "t CO2/MWh" }, { "year": 2044, - "value": "0.4323599585173005 t CO2/MWh" + "value": 0.4323599585173005, + "units": "t CO2/MWh" }, { "year": 2045, - "value": "0.40273722118393573 t CO2/MWh" + "value": 0.40273722118393573, + "units": "t CO2/MWh" }, { "year": 2046, - "value": "0.37504878792884877 t CO2/MWh" + "value": 0.37504878792884877, + "units": "t CO2/MWh" }, { "year": 2047, - "value": "0.3492063950129044 t CO2/MWh" + "value": 0.3492063950129044, + "units": "t CO2/MWh" }, { "year": 2048, - "value": "0.3251094561969139 t CO2/MWh" + "value": 0.3251094561969139, + "units": "t CO2/MWh" }, { "year": 2049, - "value": "0.3026535488613751 t CO2/MWh" + "value": 0.3026535488613751, + "units": "t CO2/MWh" }, { "year": 2050, - "value": "0.28173508695317845 t CO2/MWh" + "value": 0.28173508695317845, + "units": "t CO2/MWh" } ] }, @@ -2765,131 +3455,163 @@ "projections": [ { "year": 2019, - "value": "0.8759061471467042 t CO2/MWh" + "value": 0.8759061471467042, + "units": "t CO2/MWh" }, { "year": 2020, - "value": "0.8710761366058977 t CO2/MWh" + "value": 0.8710761366058977, + "units": "t CO2/MWh" }, { "year": 2021, - "value": "0.87233257371262 t CO2/MWh" + "value": 0.87233257371262, + "units": "t CO2/MWh" }, { "year": 2022, - "value": "0.8731795494365063 t CO2/MWh" + "value": 0.8731795494365063, + "units": "t CO2/MWh" }, { "year": 2023, - "value": "0.8733811639019202 t CO2/MWh" + "value": 0.8733811639019202, + "units": "t CO2/MWh" }, { "year": 2024, - "value": "0.8725897216554522 t CO2/MWh" + "value": 0.8725897216554522, + "units": "t CO2/MWh" }, { "year": 2025, - "value": "0.8703762869410826 t CO2/MWh" + "value": 0.8703762869410826, + "units": "t CO2/MWh" }, { "year": 2026, - "value": "0.8663587020539113 t CO2/MWh" + "value": 0.8663587020539113, + "units": "t CO2/MWh" }, { "year": 2027, - "value": "0.8603930175807132 t CO2/MWh" + "value": 0.8603930175807132, + "units": "t CO2/MWh" }, { "year": 2028, - "value": "0.852642949257223 t CO2/MWh" + "value": 0.852642949257223, + "units": "t CO2/MWh" }, { "year": 2029, - "value": "0.8434205038290371 t CO2/MWh" + "value": 0.8434205038290371, + "units": "t CO2/MWh" }, { "year": 2030, - "value": "0.8329427969769639 t CO2/MWh" + "value": 0.8329427969769639, + "units": "t CO2/MWh" }, { "year": 2031, - "value": "0.8211620263463444 t CO2/MWh" + "value": 0.8211620263463444, + "units": "t CO2/MWh" }, { "year": 2032, - "value": "0.807672315915647 t CO2/MWh" + "value": 0.807672315915647, + "units": "t CO2/MWh" }, { "year": 2033, - "value": "0.7916681808246369 t CO2/MWh" + "value": 0.7916681808246369, + "units": "t CO2/MWh" }, { "year": 2034, - "value": "0.7720267284765746 t CO2/MWh" + "value": 0.7720267284765746, + "units": "t CO2/MWh" }, { "year": 2035, - "value": "0.7476606709729696 t CO2/MWh" + "value": 0.7476606709729696, + "units": "t CO2/MWh" }, { "year": 2036, - "value": "0.7181256859452584 t CO2/MWh" + "value": 0.7181256859452584, + "units": "t CO2/MWh" }, { "year": 2037, - "value": "0.6840543664153996 t CO2/MWh" + "value": 0.6840543664153996, + "units": "t CO2/MWh" }, { "year": 2038, - "value": "0.6469543346153854 t CO2/MWh" + "value": 0.6469543346153854, + "units": "t CO2/MWh" }, { "year": 2039, - "value": "0.6085581112867321 t CO2/MWh" + "value": 0.6085581112867321, + "units": "t CO2/MWh" }, { "year": 2040, - "value": "0.5702957411984311 t CO2/MWh" + "value": 0.5702957411984311, + "units": "t CO2/MWh" }, { "year": 2041, - "value": "0.5331256402850014 t CO2/MWh" + "value": 0.5331256402850014, + "units": "t CO2/MWh" }, { "year": 2042, - "value": "0.4975973549571816 t CO2/MWh" + "value": 0.4975973549571816, + "units": "t CO2/MWh" }, { "year": 2043, - "value": "0.46397778181495414 t CO2/MWh" + "value": 0.46397778181495414, + "units": "t CO2/MWh" }, { "year": 2044, - "value": "0.4323599585173005 t CO2/MWh" + "value": 0.4323599585173005, + "units": "t CO2/MWh" }, { "year": 2045, - "value": "0.40273722118393573 t CO2/MWh" + "value": 0.40273722118393573, + "units": "t CO2/MWh" }, { "year": 2046, - "value": "0.37504878792884877 t CO2/MWh" + "value": 0.37504878792884877, + "units": "t CO2/MWh" }, { "year": 2047, - "value": "0.3492063950129044 t CO2/MWh" + "value": 0.3492063950129044, + "units": "t CO2/MWh" }, { "year": 2048, - "value": "0.3251094561969139 t CO2/MWh" + "value": 0.3251094561969139, + "units": "t CO2/MWh" }, { "year": 2049, - "value": "0.3026535488613751 t CO2/MWh" + "value": 0.3026535488613751, + "units": "t CO2/MWh" }, { "year": 2050, - "value": "0.28173508695317845 t CO2/MWh" + "value": 0.28173508695317845, + "units": "t CO2/MWh" } ] }, @@ -2897,9 +3619,17 @@ "S1S2S3": null }, "country": "India", - "ghg_s1s2": "988020000.90193 MWh", - "ghg_s3": "988020000.90193 MWh", - "industry_level_1": null, + "ghg_s1s2": { + "year": 2019, + "value": 988020000.90193, + "units": "MWh" + }, + "ghg_s3": { + "year": 2019, + "value": 988020000.90193, + "units": "MWh" + }, + "industry_level_1": null, "industry_level_2": null, "industry_level_3": null, "industry_level_4": null, @@ -2914,137 +3644,170 @@ "company_id": "CH0038863350", "region": "Asia", "sector": "Electricity Utilities", + "production_metric": { "units": "MWh"}, "target_probability": 0.4285714285714285, "projected_ei_targets": { "S1S2": { "projections": [ { "year": 2019, - "value": "0.9992111823532782 t CO2/MWh" + "value": 0.9992111823532782, + "units": "t CO2/MWh" }, { "year": 2020, - "value": "1.0103398427559804 t CO2/MWh" + "value": 1.0103398427559804, + "units": "t CO2/MWh" }, { "year": 2021, - "value": "0.9956918852884153 t CO2/MWh" + "value": 0.9956918852884153, + "units": "t CO2/MWh" }, { "year": 2022, - "value": "1.0012791550610378 t CO2/MWh" + "value": 1.0012791550610378, + "units": "t CO2/MWh" }, { "year": 2023, - "value": "1.0089503553840877 t CO2/MWh" + "value": 1.0089503553840877, + "units": "t CO2/MWh" }, { "year": 2024, - "value": "1.0018093082170547 t CO2/MWh" + "value": 1.0018093082170547, + "units": "t CO2/MWh" }, { "year": 2025, - "value": "0.9949424043532965 t CO2/MWh" + "value": 0.9949424043532965, + "units": "t CO2/MWh" }, { "year": 2026, - "value": "0.9867390954359995 t CO2/MWh" + "value": 0.9867390954359995, + "units": "t CO2/MWh" }, { "year": 2027, - "value": "0.9757622063943475 t CO2/MWh" + "value": 0.9757622063943475, + "units": "t CO2/MWh" }, { "year": 2028, - "value": "0.9613833928741916 t CO2/MWh" + "value": 0.9613833928741916, + "units": "t CO2/MWh" }, { "year": 2029, - "value": "0.9438045441854004 t CO2/MWh" + "value": 0.9438045441854004, + "units": "t CO2/MWh" }, { "year": 2030, - "value": "0.9235280248451119 t CO2/MWh" + "value": 0.9235280248451119, + "units": "t CO2/MWh" }, { "year": 2031, - "value": "0.9008159614373377 t CO2/MWh" + "value": 0.9008159614373377, + "units": "t CO2/MWh" }, { "year": 2032, - "value": "0.8753597024903548 t CO2/MWh" + "value": 0.8753597024903548, + "units": "t CO2/MWh" }, { "year": 2033, - "value": "0.8461128134246444 t CO2/MWh" + "value": 0.8461128134246444, + "units": "t CO2/MWh" }, { "year": 2034, - "value": "0.8113582559054615 t CO2/MWh" + "value": 0.8113582559054615, + "units": "t CO2/MWh" }, { "year": 2035, - "value": "0.7692858373477657 t CO2/MWh" + "value": 0.7692858373477657, + "units": "t CO2/MWh" }, { "year": 2036, - "value": "0.7191363964574996 t CO2/MWh" + "value": 0.7191363964574996, + "units": "t CO2/MWh" }, { "year": 2037, - "value": "0.6621270762176754 t CO2/MWh" + "value": 0.6621270762176754, + "units": "t CO2/MWh" }, { "year": 2038, - "value": "0.6011136519924398 t CO2/MWh" + "value": 0.6011136519924398, + "units": "t CO2/MWh" }, { "year": 2039, - "value": "0.5392560449767507 t CO2/MWh" + "value": 0.5392560449767507, + "units": "t CO2/MWh" }, { "year": 2040, - "value": "0.4789322540371506 t CO2/MWh" + "value": 0.4789322540371506, + "units": "t CO2/MWh" }, { "year": 2041, - "value": "0.4214608727336099 t CO2/MWh" + "value": 0.4214608727336099, + "units": "t CO2/MWh" }, { "year": 2042, - "value": "0.3673292808327215 t CO2/MWh" + "value": 0.3673292808327215, + "units": "t CO2/MWh" }, { "year": 2043, - "value": "0.31652321414784873 t CO2/MWh" + "value": 0.31652321414784873, + "units": "t CO2/MWh" }, { "year": 2044, - "value": "0.26877906546540586 t CO2/MWh" + "value": 0.26877906546540586, + "units": "t CO2/MWh" }, { "year": 2045, - "value": "0.2237368584766153 t CO2/MWh" + "value": 0.2237368584766153, + "units": "t CO2/MWh" }, { "year": 2046, - "value": "0.1810213531499593 t CO2/MWh" + "value": 0.1810213531499593, + "units": "t CO2/MWh" }, { "year": 2047, - "value": "0.1402803762086245 t CO2/MWh" + "value": 0.1402803762086245, + "units": "t CO2/MWh" }, { "year": 2048, - "value": "0.10120010555296251 t CO2/MWh" + "value": 0.10120010555296251, + "units": "t CO2/MWh" }, { "year": 2049, - "value": "0.06350876058804442 t CO2/MWh" + "value": 0.06350876058804442, + "units": "t CO2/MWh" }, { "year": 2050, - "value": "0.026974867145530285 t CO2/MWh" + "value": 0.026974867145530285, + "units": "t CO2/MWh" } ] }, @@ -3056,131 +3819,163 @@ "projections": [ { "year": 2019, - "value": "0.9992111823532782 t CO2/MWh" + "value": 0.9992111823532782, + "units": "t CO2/MWh" }, { "year": 2020, - "value": "1.0103398427559804 t CO2/MWh" + "value": 1.0103398427559804, + "units": "t CO2/MWh" }, { "year": 2021, - "value": "1.0077070564272337 t CO2/MWh" + "value": 1.0077070564272337, + "units": "t CO2/MWh" }, { "year": 2022, - "value": "1.025016728126704 t CO2/MWh" + "value": 1.025016728126704, + "units": "t CO2/MWh" }, { "year": 2023, - "value": "1.0439447193674907 t CO2/MWh" + "value": 1.0439447193674907, + "units": "t CO2/MWh" }, { "year": 2024, - "value": "1.0636226213883666 t CO2/MWh" + "value": 1.0636226213883666, + "units": "t CO2/MWh" }, { "year": 2025, - "value": "1.082559148211577 t CO2/MWh" + "value": 1.082559148211577, + "units": "t CO2/MWh" }, { "year": 2026, - "value": "1.0988786127737018 t CO2/MWh" + "value": 1.0988786127737018, + "units": "t CO2/MWh" }, { "year": 2027, - "value": "1.1110470492716042 t CO2/MWh" + "value": 1.1110470492716042, + "units": "t CO2/MWh" }, { "year": 2028, - "value": "1.1185463596198226 t CO2/MWh" + "value": 1.1185463596198226, + "units": "t CO2/MWh" }, { "year": 2029, - "value": "1.1217709668143654 t CO2/MWh" + "value": 1.1217709668143654, + "units": "t CO2/MWh" }, { "year": 2030, - "value": "1.121315483997907 t CO2/MWh" + "value": 1.121315483997907, + "units": "t CO2/MWh" }, { "year": 2031, - "value": "1.117300801389678 t CO2/MWh" + "value": 1.117300801389678, + "units": "t CO2/MWh" }, { "year": 2032, - "value": "1.1089596162754503 t CO2/MWh" + "value": 1.1089596162754503, + "units": "t CO2/MWh" }, { "year": 2033, - "value": "1.0944259660255098 t CO2/MWh" + "value": 1.0944259660255098, + "units": "t CO2/MWh" }, { "year": 2034, - "value": "1.0708792507706404 t CO2/MWh" + "value": 1.0708792507706404, + "units": "t CO2/MWh" }, { "year": 2035, - "value": "1.0354616274415578 t CO2/MWh" + "value": 1.0354616274415578, + "units": "t CO2/MWh" }, { "year": 2036, - "value": "0.9870039512902982 t CO2/MWh" + "value": 0.9870039512902982, + "units": "t CO2/MWh" }, { "year": 2037, - "value": "0.9273580045136894 t CO2/MWh" + "value": 0.9273580045136894, + "units": "t CO2/MWh" }, { "year": 2038, - "value": "0.8608508436740142 t CO2/MWh" + "value": 0.8608508436740142, + "units": "t CO2/MWh" }, { "year": 2039, - "value": "0.7923179796811393 t CO2/MWh" + "value": 0.7923179796811393, + "units": "t CO2/MWh" }, { "year": 2040, - "value": "0.7255118652043424 t CO2/MWh" + "value": 0.7255118652043424, + "units": "t CO2/MWh" }, { "year": 2041, - "value": "0.6626667415033559 t CO2/MWh" + "value": 0.6626667415033559, + "units": "t CO2/MWh" }, { "year": 2042, - "value": "0.6047910562642032 t CO2/MWh" + "value": 0.6047910562642032, + "units": "t CO2/MWh" }, { "year": 2043, - "value": "0.5521203117082054 t CO2/MWh" + "value": 0.5521203117082054, + "units": "t CO2/MWh" }, { "year": 2044, - "value": "0.5044745831076901 t CO2/MWh" + "value": 0.5044745831076901, + "units": "t CO2/MWh" }, { "year": 2045, - "value": "0.46148281149329234 t CO2/MWh" + "value": 0.46148281149329234, + "units": "t CO2/MWh" }, { "year": 2046, - "value": "0.4227075550217969 t CO2/MWh" + "value": 0.4227075550217969, + "units": "t CO2/MWh" }, { "year": 2047, - "value": "0.387708721079145 t CO2/MWh" + "value": 0.387708721079145, + "units": "t CO2/MWh" }, { "year": 2048, - "value": "0.3560732489596707 t CO2/MWh" + "value": 0.3560732489596707, + "units": "t CO2/MWh" }, { "year": 2049, - "value": "0.32742682453181926 t CO2/MWh" + "value": 0.32742682453181926, + "units": "t CO2/MWh" }, { "year": 2050, - "value": "0.30143654033545186 t CO2/MWh" + "value": 0.30143654033545186, + "units": "t CO2/MWh" } ] }, @@ -3188,9 +3983,17 @@ "S1S2S3": null }, "country": "Australia", - "ghg_s1s2": "73011601.1549344 MWh", - "ghg_s3": "73011601.1549344 MWh", - "industry_level_1": null, + "ghg_s1s2": { + "year": 2019, + "value": 73011601.1549344, + "units": "MWh" + }, + "ghg_s3": { + "year": 2019, + "value": 73011601.1549344, + "units": "MWh" + }, + "industry_level_1": null, "industry_level_2": null, "industry_level_3": null, "industry_level_4": null, @@ -3205,6 +4008,7 @@ "company_id": "US8356993076", "region": "Europe", "sector": "Electricity Utilities", + "production_metric": { "units": "MWh"}, "target_probability": 0.4285714285714285, "projected_ei_targets": { "S1S2": { @@ -3479,9 +4283,17 @@ "S1S2S3": null }, "country": "Poland", - "ghg_s1s2": "288420004.281372 MWh", - "ghg_s3": "288420004.281372 MWh", - "industry_level_1": null, + "ghg_s1s2": { + "year": 2019, + "value": 288420004.281372, + "units": "MWh" + }, + "ghg_s3": { + "year": 2019, + "value": 288420004.281372, + "units": "MWh" + }, + "industry_level_1": null, "industry_level_2": null, "industry_level_3": null, "industry_level_4": null, @@ -3496,137 +4308,170 @@ "company_id": "JP3401400001", "region": "Asia", "sector": "Electricity Utilities", + "production_metric": { "units": "MWh"}, "target_probability": 0.4285714285714285, "projected_ei_targets": { "S1S2": { "projections": [ { "year": 2019, - "value": "0.8216553409097898 t CO2/MWh" + "value": 0.8216553409097898, + "units": "t CO2/MWh" }, { "year": 2020, - "value": "0.8216553409097898 t CO2/MWh" + "value": 0.8216553409097898, + "units": "t CO2/MWh" }, { "year": 2021, - "value": "0.839571252418603 t CO2/MWh" + "value": 0.839571252418603, + "units": "t CO2/MWh" }, { "year": 2022, - "value": "0.8582955407397551 t CO2/MWh" + "value": 0.8582955407397551, + "units": "t CO2/MWh" }, { "year": 2023, - "value": "0.876060259960367 t CO2/MWh" + "value": 0.876060259960367, + "units": "t CO2/MWh" }, { "year": 2024, - "value": "0.8920216776655728 t CO2/MWh" + "value": 0.8920216776655728, + "units": "t CO2/MWh" }, { "year": 2025, - "value": "0.9050906501522457 t CO2/MWh" + "value": 0.9050906501522457, + "units": "t CO2/MWh" }, { "year": 2026, - "value": "0.9142238570532936 t CO2/MWh" + "value": 0.9142238570532936, + "units": "t CO2/MWh" }, { "year": 2027, - "value": "0.9189144369121717 t CO2/MWh" + "value": 0.9189144369121717, + "units": "t CO2/MWh" }, { "year": 2028, - "value": "0.9194427268256747 t CO2/MWh" + "value": 0.9194427268256747, + "units": "t CO2/MWh" }, { "year": 2029, - "value": "0.9165735326005275 t CO2/MWh" + "value": 0.9165735326005275, + "units": "t CO2/MWh" }, { "year": 2030, - "value": "0.911011246089303 t CO2/MWh" + "value": 0.911011246089303, + "units": "t CO2/MWh" }, { "year": 2031, - "value": "0.9030201759984526 t CO2/MWh" + "value": 0.9030201759984526, + "units": "t CO2/MWh" }, { "year": 2032, - "value": "0.8922499745204598 t CO2/MWh" + "value": 0.8922499745204598, + "units": "t CO2/MWh" }, { "year": 2033, - "value": "0.8776792896597859 t CO2/MWh" + "value": 0.8776792896597859, + "units": "t CO2/MWh" }, { "year": 2034, - "value": "0.8577497701976301 t CO2/MWh" + "value": 0.8577497701976301, + "units": "t CO2/MWh" }, { "year": 2035, - "value": "0.8309095837324832 t CO2/MWh" + "value": 0.8309095837324832, + "units": "t CO2/MWh" }, { "year": 2036, - "value": "0.7965535983998453 t CO2/MWh" + "value": 0.7965535983998453, + "units": "t CO2/MWh" }, { "year": 2037, - "value": "0.7557008906815798 t CO2/MWh" + "value": 0.7557008906815798, + "units": "t CO2/MWh" }, { "year": 2038, - "value": "0.7106744132774588 t CO2/MWh" + "value": 0.7106744132774588, + "units": "t CO2/MWh" }, { "year": 2039, - "value": "0.6640778432165056 t CO2/MWh" + "value": 0.6640778432165056, + "units": "t CO2/MWh" }, { "year": 2040, - "value": "0.6179853372564201 t CO2/MWh" + "value": 0.6179853372564201, + "units": "t CO2/MWh" }, { "year": 2041, - "value": "0.5737112051679787 t CO2/MWh" + "value": 0.5737112051679787, + "units": "t CO2/MWh" }, { "year": 2042, - "value": "0.5319399188112491 t CO2/MWh" + "value": 0.5319399188112491, + "units": "t CO2/MWh" }, { "year": 2043, - "value": "0.4929409579278257 t CO2/MWh" + "value": 0.4929409579278257, + "units": "t CO2/MWh" }, { "year": 2044, - "value": "0.45674377196784977 t CO2/MWh" + "value": 0.45674377196784977, + "units": "t CO2/MWh" }, { "year": 2045, - "value": "0.42325174057782106 t CO2/MWh" + "value": 0.42325174057782106, + "units": "t CO2/MWh" }, { "year": 2046, - "value": "0.39230892919531823 t CO2/MWh" + "value": 0.39230892919531823, + "units": "t CO2/MWh" }, { "year": 2047, - "value": "0.3637368879238732 t CO2/MWh" + "value": 0.3637368879238732, + "units": "t CO2/MWh" }, { "year": 2048, - "value": "0.33735402627252425 t CO2/MWh" + "value": 0.33735402627252425, + "units": "t CO2/MWh" }, { "year": 2049, - "value": "0.3129852876511019 t CO2/MWh" + "value": 0.3129852876511019, + "units": "t CO2/MWh" }, { "year": 2050, - "value": "0.290466560681228 t CO2/MWh" + "value": 0.290466560681228, + "units": "t CO2/MWh" } ] }, @@ -3638,131 +4483,163 @@ "projections": [ { "year": 2019, - "value": "0.8216553409097898 t CO2/MWh" + "value": 0.8216553409097898, + "units": "t CO2/MWh" }, { "year": 2020, - "value": "0.8216553409097898 t CO2/MWh" + "value": 0.8216553409097898, + "units": "t CO2/MWh" }, { "year": 2021, - "value": "0.839571252418603 t CO2/MWh" + "value": 0.839571252418603, + "units": "t CO2/MWh" }, { "year": 2022, - "value": "0.8582955407397551 t CO2/MWh" + "value": 0.8582955407397551, + "units": "t CO2/MWh" }, { "year": 2023, - "value": "0.876060259960367 t CO2/MWh" + "value": 0.876060259960367, + "units": "t CO2/MWh" }, { "year": 2024, - "value": "0.8920216776655728 t CO2/MWh" + "value": 0.8920216776655728, + "units": "t CO2/MWh" }, { "year": 2025, - "value": "0.9050906501522457 t CO2/MWh" + "value": 0.9050906501522457, + "units": "t CO2/MWh" }, { "year": 2026, - "value": "0.9142238570532936 t CO2/MWh" + "value": 0.9142238570532936, + "units": "t CO2/MWh" }, { "year": 2027, - "value": "0.9189144369121717 t CO2/MWh" + "value": 0.9189144369121717, + "units": "t CO2/MWh" }, { "year": 2028, - "value": "0.9194427268256747 t CO2/MWh" + "value": 0.9194427268256747, + "units": "t CO2/MWh" }, { "year": 2029, - "value": "0.9165735326005275 t CO2/MWh" + "value": 0.9165735326005275, + "units": "t CO2/MWh" }, { "year": 2030, - "value": "0.911011246089303 t CO2/MWh" + "value": 0.911011246089303, + "units": "t CO2/MWh" }, { "year": 2031, - "value": "0.9030201759984526 t CO2/MWh" + "value": 0.9030201759984526, + "units": "t CO2/MWh" }, { "year": 2032, - "value": "0.8922499745204598 t CO2/MWh" + "value": 0.8922499745204598, + "units": "t CO2/MWh" }, { "year": 2033, - "value": "0.8776792896597859 t CO2/MWh" + "value": 0.8776792896597859, + "units": "t CO2/MWh" }, { "year": 2034, - "value": "0.8577497701976301 t CO2/MWh" + "value": 0.8577497701976301, + "units": "t CO2/MWh" }, { "year": 2035, - "value": "0.8309095837324832 t CO2/MWh" + "value": 0.8309095837324832, + "units": "t CO2/MWh" }, { "year": 2036, - "value": "0.7965535983998453 t CO2/MWh" + "value": 0.7965535983998453, + "units": "t CO2/MWh" }, { "year": 2037, - "value": "0.7557008906815798 t CO2/MWh" + "value": 0.7557008906815798, + "units": "t CO2/MWh" }, { "year": 2038, - "value": "0.7106744132774588 t CO2/MWh" + "value": 0.7106744132774588, + "units": "t CO2/MWh" }, { "year": 2039, - "value": "0.6640778432165056 t CO2/MWh" + "value": 0.6640778432165056, + "units": "t CO2/MWh" }, { "year": 2040, - "value": "0.6179853372564201 t CO2/MWh" + "value": 0.6179853372564201, + "units": "t CO2/MWh" }, { "year": 2041, - "value": "0.5737112051679787 t CO2/MWh" + "value": 0.5737112051679787, + "units": "t CO2/MWh" }, { "year": 2042, - "value": "0.5319399188112491 t CO2/MWh" + "value": 0.5319399188112491, + "units": "t CO2/MWh" }, { "year": 2043, - "value": "0.4929409579278257 t CO2/MWh" + "value": 0.4929409579278257, + "units": "t CO2/MWh" }, { "year": 2044, - "value": "0.45674377196784977 t CO2/MWh" + "value": 0.45674377196784977, + "units": "t CO2/MWh" }, { "year": 2045, - "value": "0.42325174057782106 t CO2/MWh" + "value": 0.42325174057782106, + "units": "t CO2/MWh" }, { "year": 2046, - "value": "0.39230892919531823 t CO2/MWh" + "value": 0.39230892919531823, + "units": "t CO2/MWh" }, { "year": 2047, - "value": "0.3637368879238732 t CO2/MWh" + "value": 0.3637368879238732, + "units": "t CO2/MWh" }, { "year": 2048, - "value": "0.33735402627252425 t CO2/MWh" + "value": 0.33735402627252425, + "units": "t CO2/MWh" }, { "year": 2049, - "value": "0.3129852876511019 t CO2/MWh" + "value": 0.3129852876511019, + "units": "t CO2/MWh" }, { "year": 2050, - "value": "0.290466560681228 t CO2/MWh" + "value": 0.290466560681228, + "units": "t CO2/MWh" } ] }, @@ -3770,9 +4647,17 @@ "S1S2S3": null }, "country": "Hong Kong", - "ghg_s1s2": "47691749.8864963 MWh", - "ghg_s3": "47691749.8864963 MWh", - "industry_level_1": null, + "ghg_s1s2": { + "year": 2019, + "value": 47691749.8864963, + "units": "MWh" + }, + "ghg_s3": { + "year": 2019, + "value": 47691749.8864963, + "units": "MWh" + }, + "industry_level_1": null, "industry_level_2": null, "industry_level_3": null, "industry_level_4": null, @@ -3787,137 +4672,170 @@ "company_id": "US6541061031", "region": "Europe", "sector": "Electricity Utilities", + "production_metric": { "units": "MWh"}, "target_probability": 0.4285714285714285, "projected_ei_targets": { "S1S2": { "projections": [ { "year": 2019, - "value": "0.629386622670478 t CO2/MWh" + "value": 0.629386622670478, + "units": "t CO2/MWh" }, { "year": 2020, - "value": "0.49735991894221177 t CO2/MWh" + "value": 0.49735991894221177, + "units": "t CO2/MWh" }, { "year": 2021, - "value": "0.474752649899384 t CO2/MWh" + "value": 0.474752649899384, + "units": "t CO2/MWh" }, { "year": 2022, - "value": "0.45214538085655614 t CO2/MWh" + "value": 0.45214538085655614, + "units": "t CO2/MWh" }, { "year": 2023, - "value": "0.4295381118137284 t CO2/MWh" + "value": 0.4295381118137284, + "units": "t CO2/MWh" }, { "year": 2024, - "value": "0.4069308427709006 t CO2/MWh" + "value": 0.4069308427709006, + "units": "t CO2/MWh" }, { "year": 2025, - "value": "0.3843235737280728 t CO2/MWh" + "value": 0.3843235737280728, + "units": "t CO2/MWh" }, { "year": 2026, - "value": "0.36171630468524507 t CO2/MWh" + "value": 0.36171630468524507, + "units": "t CO2/MWh" }, { "year": 2027, - "value": "0.33910903564241723 t CO2/MWh" + "value": 0.33910903564241723, + "units": "t CO2/MWh" }, { "year": 2028, - "value": "0.31650176659958945 t CO2/MWh" + "value": 0.31650176659958945, + "units": "t CO2/MWh" }, { "year": 2029, - "value": "0.2938944975567617 t CO2/MWh" + "value": 0.2938944975567617, + "units": "t CO2/MWh" }, { "year": 2030, - "value": "0.2712872285139339 t CO2/MWh" + "value": 0.2712872285139339, + "units": "t CO2/MWh" }, { "year": 2031, - "value": "0.2712872285139339 t CO2/MWh" + "value": 0.2712872285139339, + "units": "t CO2/MWh" }, { "year": 2032, - "value": "0.2712872285139339 t CO2/MWh" + "value": 0.2712872285139339, + "units": "t CO2/MWh" }, { "year": 2033, - "value": "0.2712872285139339 t CO2/MWh" + "value": 0.2712872285139339, + "units": "t CO2/MWh" }, { "year": 2034, - "value": "0.2712872285139339 t CO2/MWh" + "value": 0.2712872285139339, + "units": "t CO2/MWh" }, { "year": 2035, - "value": "0.2712872285139339 t CO2/MWh" + "value": 0.2712872285139339, + "units": "t CO2/MWh" }, { "year": 2036, - "value": "0.2712872285139339 t CO2/MWh" + "value": 0.2712872285139339, + "units": "t CO2/MWh" }, { "year": 2037, - "value": "0.2712872285139339 t CO2/MWh" + "value": 0.2712872285139339, + "units": "t CO2/MWh" }, { "year": 2038, - "value": "0.2712872285139339 t CO2/MWh" + "value": 0.2712872285139339, + "units": "t CO2/MWh" }, { "year": 2039, - "value": "0.26643595573586704 t CO2/MWh" + "value": 0.26643595573586704, + "units": "t CO2/MWh" }, { "year": 2040, - "value": "0.24893234723624588 t CO2/MWh" + "value": 0.24893234723624588, + "units": "t CO2/MWh" }, { "year": 2041, - "value": "0.23212577790171932 t CO2/MWh" + "value": 0.23212577790171932, + "units": "t CO2/MWh" }, { "year": 2042, - "value": "0.2162058650114187 t CO2/MWh" + "value": 0.2162058650114187, + "units": "t CO2/MWh" }, { "year": 2043, - "value": "0.20124719185437925 t CO2/MWh" + "value": 0.20124719185437925, + "units": "t CO2/MWh" }, { "year": 2044, - "value": "0.18725778017720415 t CO2/MWh" + "value": 0.18725778017720415, + "units": "t CO2/MWh" }, { "year": 2045, - "value": "0.17421016813874166 t CO2/MWh" + "value": 0.17421016813874166, + "units": "t CO2/MWh" }, { "year": 2046, - "value": "0.16205953153291905 t CO2/MWh" + "value": 0.16205953153291905, + "units": "t CO2/MWh" }, { "year": 2047, - "value": "0.1507537220349898 t CO2/MWh" + "value": 0.1507537220349898, + "units": "t CO2/MWh" }, { "year": 2048, - "value": "0.14023864416724455 t CO2/MWh" + "value": 0.14023864416724455, + "units": "t CO2/MWh" }, { "year": 2049, - "value": "0.13046104410909345 t CO2/MWh" + "value": 0.13046104410909345, + "units": "t CO2/MWh" }, { "year": 2050, - "value": "0.12136988857034575 t CO2/MWh" + "value": 0.12136988857034575, + "units": "t CO2/MWh" } ] }, @@ -3929,131 +4847,163 @@ "projections": [ { "year": 2019, - "value": "0.629386622670478 t CO2/MWh" + "value": 0.629386622670478, + "units": "t CO2/MWh" }, { "year": 2020, - "value": "0.49735991894221177 t CO2/MWh" + "value": 0.49735991894221177, + "units": "t CO2/MWh" }, { "year": 2021, - "value": "0.48303602405469037 t CO2/MWh" + "value": 0.48303602405469037, + "units": "t CO2/MWh" }, { "year": 2022, - "value": "0.46732753099437646 t CO2/MWh" + "value": 0.46732753099437646, + "units": "t CO2/MWh" }, { "year": 2023, - "value": "0.45262372165326814 t CO2/MWh" + "value": 0.45262372165326814, + "units": "t CO2/MWh" }, { "year": 2024, - "value": "0.43902972338800816 t CO2/MWh" + "value": 0.43902972338800816, + "units": "t CO2/MWh" }, { "year": 2025, - "value": "0.42667964726166113 t CO2/MWh" + "value": 0.42667964726166113, + "units": "t CO2/MWh" }, { "year": 2026, - "value": "0.41566585956199315 t CO2/MWh" + "value": 0.41566585956199315, + "units": "t CO2/MWh" }, { "year": 2027, - "value": "0.4059394704000186 t CO2/MWh" + "value": 0.4059394704000186, + "units": "t CO2/MWh" }, { "year": 2028, - "value": "0.39727086488944763 t CO2/MWh" + "value": 0.39727086488944763, + "units": "t CO2/MWh" }, { "year": 2029, - "value": "0.38931252607554373 t CO2/MWh" + "value": 0.38931252607554373, + "units": "t CO2/MWh" }, { "year": 2030, - "value": "0.38168354663755155 t CO2/MWh" + "value": 0.38168354663755155, + "units": "t CO2/MWh" }, { "year": 2031, - "value": "0.37399487697657396 t CO2/MWh" + "value": 0.37399487697657396, + "units": "t CO2/MWh" }, { "year": 2032, - "value": "0.36581878663821166 t CO2/MWh" + "value": 0.36581878663821166, + "units": "t CO2/MWh" }, { "year": 2033, - "value": "0.35665221048674645 t CO2/MWh" + "value": 0.35665221048674645, + "units": "t CO2/MWh" }, { "year": 2034, - "value": "0.3459409332948065 t CO2/MWh" + "value": 0.3459409332948065, + "units": "t CO2/MWh" }, { "year": 2035, - "value": "0.33322931414564744 t CO2/MWh" + "value": 0.33322931414564744, + "units": "t CO2/MWh" }, { "year": 2036, - "value": "0.31840641041721496 t CO2/MWh" + "value": 0.31840641041721496, + "units": "t CO2/MWh" }, { "year": 2037, - "value": "0.30184697939561933 t CO2/MWh" + "value": 0.30184697939561933, + "units": "t CO2/MWh" }, { "year": 2038, - "value": "0.28427006024113044 t CO2/MWh" + "value": 0.28427006024113044, + "units": "t CO2/MWh" }, { "year": 2039, - "value": "0.26643595573586704 t CO2/MWh" + "value": 0.26643595573586704, + "units": "t CO2/MWh" }, { "year": 2040, - "value": "0.24893234723624583 t CO2/MWh" + "value": 0.24893234723624583, + "units": "t CO2/MWh" }, { "year": 2041, - "value": "0.23212577790171932 t CO2/MWh" + "value": 0.23212577790171932, + "units": "t CO2/MWh" }, { "year": 2042, - "value": "0.2162058650114187 t CO2/MWh" + "value": 0.2162058650114187, + "units": "t CO2/MWh" }, { "year": 2043, - "value": "0.20124719185437925 t CO2/MWh" + "value": 0.20124719185437925, + "units": "t CO2/MWh" }, { "year": 2044, - "value": "0.18725778017720415 t CO2/MWh" + "value": 0.18725778017720415, + "units": "t CO2/MWh" }, { "year": 2045, - "value": "0.17421016813874166 t CO2/MWh" + "value": 0.17421016813874166, + "units": "t CO2/MWh" }, { "year": 2046, - "value": "0.16205953153291902 t CO2/MWh" + "value": 0.16205953153291902, + "units": "t CO2/MWh" }, { "year": 2047, - "value": "0.15075372203498982 t CO2/MWh" + "value": 0.15075372203498982, + "units": "t CO2/MWh" }, { "year": 2048, - "value": "0.14023864416724455 t CO2/MWh" + "value": 0.14023864416724455, + "units": "t CO2/MWh" }, { "year": 2049, - "value": "0.13046104410909343 t CO2/MWh" + "value": 0.13046104410909343, + "units": "t CO2/MWh" }, { "year": 2050, - "value": "0.12136988857034575 t CO2/MWh" + "value": 0.12136988857034575, + "units": "t CO2/MWh" } ] }, @@ -4061,9 +5011,17 @@ "S1S2S3": null }, "country": "Germany", - "ghg_s1s2": "551394001.129387 MWh", - "ghg_s3": "551394001.129387 MWh", - "industry_level_1": null, + "ghg_s1s2": { + "year": 2019, + "value": 551394001.129387, + "units": "MWh" + }, + "ghg_s3": { + "year": 2019, + "value": 551394001.129387, + "units": "MWh" + }, + "industry_level_1": null, "industry_level_2": null, "industry_level_3": null, "industry_level_4": null, @@ -4078,137 +5036,170 @@ "company_id": "GB0031274896", "region": "North America", "sector": "Electricity Utilities", + "production_metric": { "units": "MWh"}, "target_probability": 0.4285714285714285, "projected_ei_targets": { "S1S2": { "projections": [ { "year": 2019, - "value": "0.7213730332171805 t CO2/MWh" + "value": 0.7213730332171805, + "units": "t CO2/MWh" }, { "year": 2020, - "value": "0.7213730332171805 t CO2/MWh" + "value": 0.7213730332171805, + "units": "t CO2/MWh" }, { "year": 2021, - "value": "0.6982890961542306 t CO2/MWh" + "value": 0.6982890961542306, + "units": "t CO2/MWh" }, { "year": 2022, - "value": "0.6752051590912809 t CO2/MWh" + "value": 0.6752051590912809, + "units": "t CO2/MWh" }, { "year": 2023, - "value": "0.652121222028331 t CO2/MWh" + "value": 0.652121222028331, + "units": "t CO2/MWh" }, { "year": 2024, - "value": "0.6290372849653812 t CO2/MWh" + "value": 0.6290372849653812, + "units": "t CO2/MWh" }, { "year": 2025, - "value": "0.6059533479024314 t CO2/MWh" + "value": 0.6059533479024314, + "units": "t CO2/MWh" }, { "year": 2026, - "value": "0.5828694108394817 t CO2/MWh" + "value": 0.5828694108394817, + "units": "t CO2/MWh" }, { "year": 2027, - "value": "0.5597854737765319 t CO2/MWh" + "value": 0.5597854737765319, + "units": "t CO2/MWh" }, { "year": 2028, - "value": "0.536701536713582 t CO2/MWh" + "value": 0.536701536713582, + "units": "t CO2/MWh" }, { "year": 2029, - "value": "0.5136175996506324 t CO2/MWh" + "value": 0.5136175996506324, + "units": "t CO2/MWh" }, { "year": 2030, - "value": "0.4905336625876825 t CO2/MWh" + "value": 0.4905336625876825, + "units": "t CO2/MWh" }, { "year": 2031, - "value": "0.46600697945829833 t CO2/MWh" + "value": 0.46600697945829833, + "units": "t CO2/MWh" }, { "year": 2032, - "value": "0.4414802963289142 t CO2/MWh" + "value": 0.4414802963289142, + "units": "t CO2/MWh" }, { "year": 2033, - "value": "0.41695361319953006 t CO2/MWh" + "value": 0.41695361319953006, + "units": "t CO2/MWh" }, { "year": 2034, - "value": "0.3924269300701459 t CO2/MWh" + "value": 0.3924269300701459, + "units": "t CO2/MWh" }, { "year": 2035, - "value": "0.36790024694076173 t CO2/MWh" + "value": 0.36790024694076173, + "units": "t CO2/MWh" }, { "year": 2036, - "value": "0.34337356381137757 t CO2/MWh" + "value": 0.34337356381137757, + "units": "t CO2/MWh" }, { "year": 2037, - "value": "0.31884688068199346 t CO2/MWh" + "value": 0.31884688068199346, + "units": "t CO2/MWh" }, { "year": 2038, - "value": "0.29432019755260935 t CO2/MWh" + "value": 0.29432019755260935, + "units": "t CO2/MWh" }, { "year": 2039, - "value": "0.26979351442322524 t CO2/MWh" + "value": 0.26979351442322524, + "units": "t CO2/MWh" }, { "year": 2040, - "value": "0.24526683129384108 t CO2/MWh" + "value": 0.24526683129384108, + "units": "t CO2/MWh" }, { "year": 2041, - "value": "0.22074014816445703 t CO2/MWh" + "value": 0.22074014816445703, + "units": "t CO2/MWh" }, { "year": 2042, - "value": "0.1962134650350729 t CO2/MWh" + "value": 0.1962134650350729, + "units": "t CO2/MWh" }, { "year": 2043, - "value": "0.17168678190568878 t CO2/MWh" + "value": 0.17168678190568878, + "units": "t CO2/MWh" }, { "year": 2044, - "value": "0.14716009877630465 t CO2/MWh" + "value": 0.14716009877630465, + "units": "t CO2/MWh" }, { "year": 2045, - "value": "0.12263341564692054 t CO2/MWh" + "value": 0.12263341564692054, + "units": "t CO2/MWh" }, { "year": 2046, - "value": "0.09810673251753642 t CO2/MWh" + "value": 0.09810673251753642, + "units": "t CO2/MWh" }, { "year": 2047, - "value": "0.07358004938815231 t CO2/MWh" + "value": 0.07358004938815231, + "units": "t CO2/MWh" }, { "year": 2048, - "value": "0.049053366258768175 t CO2/MWh" + "value": 0.049053366258768175, + "units": "t CO2/MWh" }, { "year": 2049, - "value": "0.024526683129384046 t CO2/MWh" + "value": 0.024526683129384046, + "units": "t CO2/MWh" }, { "year": 2050, - "value": "0.0 t CO2/MWh" + "value": 0.0, + "units": "t CO2/MWh" } ] }, @@ -4220,131 +5211,163 @@ "projections": [ { "year": 2019, - "value": "0.7213730332171805 t CO2/MWh" + "value": 0.7213730332171805, + "units": "t CO2/MWh" }, { "year": 2020, - "value": "0.7213730332171805 t CO2/MWh" + "value": 0.7213730332171805, + "units": "t CO2/MWh" }, { "year": 2021, - "value": "0.7096360463343725 t CO2/MWh" + "value": 0.7096360463343725, + "units": "t CO2/MWh" }, { "year": 2022, - "value": "0.6964411027710348 t CO2/MWh" + "value": 0.6964411027710348, + "units": "t CO2/MWh" }, { "year": 2023, - "value": "0.68384613604692 t CO2/MWh" + "value": 0.68384613604692, + "units": "t CO2/MWh" }, { "year": 2024, - "value": "0.6718041628022702 t CO2/MWh" + "value": 0.6718041628022702, + "units": "t CO2/MWh" }, { "year": 2025, - "value": "0.6602875522978253 t CO2/MWh" + "value": 0.6602875522978253, + "units": "t CO2/MWh" }, { "year": 2026, - "value": "0.6492678739015747 t CO2/MWh" + "value": 0.6492678739015747, + "units": "t CO2/MWh" }, { "year": 2027, - "value": "0.6386842733988106 t CO2/MWh" + "value": 0.6386842733988106, + "units": "t CO2/MWh" }, { "year": 2028, - "value": "0.6284183082538842 t CO2/MWh" + "value": 0.6284183082538842, + "units": "t CO2/MWh" }, { "year": 2029, - "value": "0.6182876798700144 t CO2/MWh" + "value": 0.6182876798700144, + "units": "t CO2/MWh" }, { "year": 2030, - "value": "0.6080411602277801 t CO2/MWh" + "value": 0.6080411602277801, + "units": "t CO2/MWh" }, { "year": 2031, - "value": "0.5973301378916037 t CO2/MWh" + "value": 0.5973301378916037, + "units": "t CO2/MWh" }, { "year": 2032, - "value": "0.5856558513883539 t CO2/MWh" + "value": 0.5856558513883539, + "units": "t CO2/MWh" }, { "year": 2033, - "value": "0.5723260297981299 t CO2/MWh" + "value": 0.5723260297981299, + "units": "t CO2/MWh" }, { "year": 2034, - "value": "0.5565021750206457 t CO2/MWh" + "value": 0.5565021750206457, + "units": "t CO2/MWh" }, { "year": 2035, - "value": "0.5374406121599999 t CO2/MWh" + "value": 0.5374406121599999, + "units": "t CO2/MWh" }, { "year": 2036, - "value": "0.5148977292507196 t CO2/MWh" + "value": 0.5148977292507196, + "units": "t CO2/MWh" }, { "year": 2037, - "value": "0.48939093915311077 t CO2/MWh" + "value": 0.48939093915311077, + "units": "t CO2/MWh" }, { "year": 2038, - "value": "0.4620155928970045 t CO2/MWh" + "value": 0.4620155928970045, + "units": "t CO2/MWh" }, { "year": 2039, - "value": "0.4339792123160576 t CO2/MWh" + "value": 0.4339792123160576, + "units": "t CO2/MWh" }, { "year": 2040, - "value": "0.4062488247754412 t CO2/MWh" + "value": 0.4062488247754412, + "units": "t CO2/MWh" }, { "year": 2041, - "value": "0.37945305867971707 t CO2/MWh" + "value": 0.37945305867971707, + "units": "t CO2/MWh" }, { "year": 2042, - "value": "0.35393813282296316 t CO2/MWh" + "value": 0.35393813282296316, + "units": "t CO2/MWh" }, { "year": 2043, - "value": "0.3298602176693171 t CO2/MWh" + "value": 0.3298602176693171, + "units": "t CO2/MWh" }, { "year": 2044, - "value": "0.3072614529719901 t CO2/MWh" + "value": 0.3072614529719901, + "units": "t CO2/MWh" }, { "year": 2045, - "value": "0.28612035604771263 t CO2/MWh" + "value": 0.28612035604771263, + "units": "t CO2/MWh" }, { "year": 2046, - "value": "0.2663821228609691 t CO2/MWh" + "value": 0.2663821228609691, + "units": "t CO2/MWh" }, { "year": 2047, - "value": "0.24797596300666216 t CO2/MWh" + "value": 0.24797596300666216, + "units": "t CO2/MWh" }, { "year": 2048, - "value": "0.23082474747951603 t CO2/MWh" + "value": 0.23082474747951603, + "units": "t CO2/MWh" }, { "year": 2049, - "value": "0.21485027166592152 t CO2/MWh" + "value": 0.21485027166592152, + "units": "t CO2/MWh" }, { "year": 2050, - "value": "0.19997605950297165 t CO2/MWh" + "value": 0.19997605950297165, + "units": "t CO2/MWh" } ] }, @@ -4352,9 +5375,17 @@ "S1S2S3": null }, "country": "United States of America", - "ghg_s1s2": "242884801.558717 MWh", - "ghg_s3": "242884801.558717 MWh", - "industry_level_1": null, + "ghg_s1s2": { + "year": 2019, + "value": 242884801.558717, + "units": "MWh" + }, + "ghg_s3": { + "year": 2019, + "value": 242884801.558717, + "units": "MWh" + }, + "industry_level_1": null, "industry_level_2": null, "industry_level_3": null, "industry_level_4": null, @@ -4369,137 +5400,170 @@ "company_id": "US6293775085", "region": "Europe", "sector": "Steel", + "production_metric": { "units": "Fe_ton"}, "target_probability": 0.4285714285714285, "projected_ei_targets": { "S1S2": { "projections": [ { "year": 2019, - "value": "2.025612471762173 t CO2/MWh" + "value": 2.025612471762173, + "units": "t CO2/Fe_ton" }, { "year": 2020, - "value": "2.1090909069608292 t CO2/MWh" + "value": 2.1090909069608292, + "units": "t CO2/Fe_ton" }, { "year": 2021, - "value": "2.0432167817220854 t CO2/MWh" + "value": 2.0432167817220854, + "units": "t CO2/Fe_ton" }, { "year": 2022, - "value": "1.968186818466775 t CO2/MWh" + "value": 1.968186818466775, + "units": "t CO2/Fe_ton" }, { "year": 2023, - "value": "1.8940656476672468 t CO2/MWh" + "value": 1.8940656476672468, + "units": "t CO2/Fe_ton" }, { "year": 2024, - "value": "1.8208945239208314 t CO2/MWh" + "value": 1.8208945239208314, + "units": "t CO2/Fe_ton" }, { "year": 2025, - "value": "1.7487256213323736 t CO2/MWh" + "value": 1.7487256213323736, + "units": "t CO2/Fe_ton" }, { "year": 2026, - "value": "1.6775745737622894 t CO2/MWh" + "value": 1.6775745737622894, + "units": "t CO2/Fe_ton" }, { "year": 2027, - "value": "1.6073634282391835 t CO2/MWh" + "value": 1.6073634282391835, + "units": "t CO2/Fe_ton" }, { "year": 2028, - "value": "1.5379117473263144 t CO2/MWh" + "value": 1.5379117473263144, + "units": "t CO2/Fe_ton" }, { "year": 2029, - "value": "1.4689925043047871 t CO2/MWh" + "value": 1.4689925043047871, + "units": "t CO2/Fe_ton" }, { "year": 2030, - "value": "1.40039446769001 t CO2/MWh" + "value": 1.40039446769001, + "units": "t CO2/Fe_ton" }, { "year": 2031, - "value": "1.3319449239497403 t CO2/MWh" + "value": 1.3319449239497403, + "units": "t CO2/Fe_ton" }, { "year": 2032, - "value": "1.263500744160184 t CO2/MWh" + "value": 1.263500744160184, + "units": "t CO2/Fe_ton" }, { "year": 2033, - "value": "1.1949334758349643 t CO2/MWh" + "value": 1.1949334758349643, + "units": "t CO2/Fe_ton" }, { "year": 2034, - "value": "1.1261281790479682 t CO2/MWh" + "value": 1.1261281790479682, + "units": "t CO2/Fe_ton" }, { "year": 2035, - "value": "1.0570066079958613 t CO2/MWh" + "value": 1.0570066079958613, + "units": "t CO2/Fe_ton" }, { "year": 2036, - "value": "0.9875645503841134 t CO2/MWh" + "value": 0.9875645503841134, + "units": "t CO2/Fe_ton" }, { "year": 2037, - "value": "0.9178856805325853 t CO2/MWh" + "value": 0.9178856805325853, + "units": "t CO2/Fe_ton" }, { "year": 2038, - "value": "0.8481066643149975 t CO2/MWh" + "value": 0.8481066643149975, + "units": "t CO2/Fe_ton" }, { "year": 2039, - "value": "0.7783614247807794 t CO2/MWh" + "value": 0.7783614247807794, + "units": "t CO2/Fe_ton" }, { "year": 2040, - "value": "0.7087471147801374 t CO2/MWh" + "value": 0.7087471147801374, + "units": "t CO2/Fe_ton" }, { "year": 2041, - "value": "0.6393198746814442 t CO2/MWh" + "value": 0.6393198746814442, + "units": "t CO2/Fe_ton" }, { "year": 2042, - "value": "0.5701050764484741 t CO2/MWh" + "value": 0.5701050764484741, + "units": "t CO2/Fe_ton" }, { "year": 2043, - "value": "0.5011090570114368 t CO2/MWh" + "value": 0.5011090570114368, + "units": "t CO2/Fe_ton" }, { "year": 2044, - "value": "0.4323276860805817 t CO2/MWh" + "value": 0.4323276860805817, + "units": "t CO2/Fe_ton" }, { "year": 2045, - "value": "0.36375160924689426 t CO2/MWh" + "value": 0.36375160924689426, + "units": "t CO2/Fe_ton" }, { "year": 2046, - "value": "0.2953691836040519 t CO2/MWh" + "value": 0.2953691836040519, + "units": "t CO2/Fe_ton" }, { "year": 2047, - "value": "0.22716803802895327 t CO2/MWh" + "value": 0.22716803802895327, + "units": "t CO2/Fe_ton" }, { "year": 2048, - "value": "0.15913587010331076 t CO2/MWh" + "value": 0.15913587010331076, + "units": "t CO2/Fe_ton" }, { "year": 2049, - "value": "0.09126083449356556 t CO2/MWh" + "value": 0.09126083449356556, + "units": "t CO2/Fe_ton" }, { "year": 2050, - "value": "0.023531717117231055 t CO2/MWh" + "value": 0.023531717117231055, + "units": "t CO2/Fe_ton" } ] }, @@ -4511,131 +5575,163 @@ "projections": [ { "year": 2019, - "value": "2.025612471762173 t CO2/MWh" + "value": 2.025612471762173, + "units": "t CO2/Fe_ton" }, { "year": 2020, - "value": "2.1090909069608292 t CO2/MWh" + "value": 2.1090909069608292, + "units": "t CO2/Fe_ton" }, { "year": 2021, - "value": "2.1060961743220625 t CO2/MWh" + "value": 2.1060961743220625, + "units": "t CO2/Fe_ton" }, { "year": 2022, - "value": "2.0935998411634373 t CO2/MWh" + "value": 2.0935998411634373, + "units": "t CO2/Fe_ton" }, { "year": 2023, - "value": "2.08146363597004 t CO2/MWh" + "value": 2.08146363597004, + "units": "t CO2/Fe_ton" }, { "year": 2024, - "value": "2.0694338897316635 t CO2/MWh" + "value": 2.0694338897316635, + "units": "t CO2/Fe_ton" }, { "year": 2025, - "value": "2.0571974490608764 t CO2/MWh" + "value": 2.0571974490608764, + "units": "t CO2/Fe_ton" }, { "year": 2026, - "value": "2.0444439933614214 t CO2/MWh" + "value": 2.0444439933614214, + "units": "t CO2/Fe_ton" }, { "year": 2027, - "value": "2.0309772569252997 t CO2/MWh" + "value": 2.0309772569252997, + "units": "t CO2/Fe_ton" }, { "year": 2028, - "value": "2.016776357008506 t CO2/MWh" + "value": 2.016776357008506, + "units": "t CO2/Fe_ton" }, { "year": 2029, - "value": "2.0019296717028428 t CO2/MWh" + "value": 2.0019296717028428, + "units": "t CO2/Fe_ton" }, { "year": 2030, - "value": "1.9865042889569182 t CO2/MWh" + "value": 1.9865042889569182, + "units": "t CO2/Fe_ton" }, { "year": 2031, - "value": "1.970442028164512 t CO2/MWh" + "value": 1.970442028164512, + "units": "t CO2/Fe_ton" }, { "year": 2032, - "value": "1.9534944783850734 t CO2/MWh" + "value": 1.9534944783850734, + "units": "t CO2/Fe_ton" }, { "year": 2033, - "value": "1.9351859852300182 t CO2/MWh" + "value": 1.9351859852300182, + "units": "t CO2/Fe_ton" }, { "year": 2034, - "value": "1.9148420990044046 t CO2/MWh" + "value": 1.9148420990044046, + "units": "t CO2/Fe_ton" }, { "year": 2035, - "value": "1.8917649466011601 t CO2/MWh" + "value": 1.8917649466011601, + "units": "t CO2/Fe_ton" }, { "year": 2036, - "value": "1.8655580488668244 t CO2/MWh" + "value": 1.8655580488668244, + "units": "t CO2/Fe_ton" }, { "year": 2037, - "value": "1.836385145194536 t CO2/MWh" + "value": 1.836385145194536, + "units": "t CO2/Fe_ton" }, { "year": 2038, - "value": "1.8049091094154828 t CO2/MWh" + "value": 1.8049091094154828, + "units": "t CO2/Fe_ton" }, { "year": 2039, - "value": "1.771979743427035 t CO2/MWh" + "value": 1.771979743427035, + "units": "t CO2/Fe_ton" }, { "year": 2040, - "value": "1.7383543190634416 t CO2/MWh" + "value": 1.7383543190634416, + "units": "t CO2/Fe_ton" }, { "year": 2041, - "value": "1.7045865456755531 t CO2/MWh" + "value": 1.7045865456755531, + "units": "t CO2/Fe_ton" }, { "year": 2042, - "value": "1.6710364329768397 t CO2/MWh" + "value": 1.6710364329768397, + "units": "t CO2/Fe_ton" }, { "year": 2043, - "value": "1.6379211570268835 t CO2/MWh" + "value": 1.6379211570268835, + "units": "t CO2/Fe_ton" }, { "year": 2044, - "value": "1.6053642758401603 t CO2/MWh" + "value": 1.6053642758401603, + "units": "t CO2/Fe_ton" }, { "year": 2045, - "value": "1.573431481364922 t CO2/MWh" + "value": 1.573431481364922, + "units": "t CO2/Fe_ton" }, { "year": 2046, - "value": "1.5421537322142225 t CO2/MWh" + "value": 1.5421537322142225, + "units": "t CO2/Fe_ton" }, { "year": 2047, - "value": "1.511541454044459 t CO2/MWh" + "value": 1.511541454044459, + "units": "t CO2/Fe_ton" }, { "year": 2048, - "value": "1.4815930596667921 t CO2/MWh" + "value": 1.4815930596667921, + "units": "t CO2/Fe_ton" }, { "year": 2049, - "value": "1.4523000222576947 t CO2/MWh" + "value": 1.4523000222576947, + "units": "t CO2/Fe_ton" }, { "year": 2050, - "value": "1.4236498966235975 t CO2/MWh" + "value": 1.4236498966235975, + "units": "t CO2/Fe_ton" } ] }, @@ -4643,9 +5739,17 @@ "S1S2S3": null }, "country": "Netherlands", - "ghg_s1s2": "89800001.3960884 MWh", - "ghg_s3": "89800001.3960884 MWh", - "industry_level_1": null, + "ghg_s1s2": { + "year": 2019, + "value": 89800001.3960884, + "units": "Fe_ton" + }, + "ghg_s3": { + "year": 2019, + "value": 89800001.3960884, + "units": "Fe_ton" + }, + "industry_level_1": null, "industry_level_2": null, "industry_level_3": null, "industry_level_4": null, @@ -4660,6 +5764,7 @@ "company_id": "US7134481081", "region": "Asia", "sector": "Steel", + "production_metric": { "units": "Fe_ton"}, "target_probability": 0.4285714285714285, "projected_ei_targets": { "S1S2": { @@ -4951,6 +6056,7 @@ "company_id": "JP0000000001", "region": "Asia", "sector": "Steel", + "production_metric": { "units": "Fe_ton"}, "target_probability": 0.4285714285714285, "projected_ei_targets": { "S1S2": { @@ -5242,137 +6348,170 @@ "company_id": "NL0000000002", "region": "South America", "sector": "Steel", + "production_metric": { "units": "Fe_ton"}, "target_probability": 0.4285714285714285, "projected_ei_targets": { "S1S2": { "projections": [ { "year": 2019, - "value": "0.23287909421782566 t CO2/MWh" + "value": 0.23287909421782566, + "units": "t CO2/Fe_ton" }, { "year": 2020, - "value": "0.23782543529110398 t CO2/MWh" + "value": 0.23782543529110398, + "units": "t CO2/Fe_ton" }, { "year": 2021, - "value": "0.23782518510683523 t CO2/MWh" + "value": 0.23782518510683523, + "units": "t CO2/Fe_ton" }, { "year": 2022, - "value": "0.2375065252639072 t CO2/MWh" + "value": 0.2375065252639072, + "units": "t CO2/Fe_ton" }, { "year": 2023, - "value": "0.23699212499214328 t CO2/MWh" + "value": 0.23699212499214328, + "units": "t CO2/Fe_ton" }, { "year": 2024, - "value": "0.23617802108935954 t CO2/MWh" + "value": 0.23617802108935954, + "units": "t CO2/Fe_ton" }, { "year": 2025, - "value": "0.23493667553780867 t CO2/MWh" + "value": 0.23493667553780867, + "units": "t CO2/Fe_ton" }, { "year": 2026, - "value": "0.23315623559783574 t CO2/MWh" + "value": 0.23315623559783574, + "units": "t CO2/Fe_ton" }, { "year": 2027, - "value": "0.2307987617233072 t CO2/MWh" + "value": 0.2307987617233072, + "units": "t CO2/Fe_ton" }, { "year": 2028, - "value": "0.22792115109494807 t CO2/MWh" + "value": 0.22792115109494807, + "units": "t CO2/Fe_ton" }, { "year": 2029, - "value": "0.22462699773845451 t CO2/MWh" + "value": 0.22462699773845451, + "units": "t CO2/Fe_ton" }, { "year": 2030, - "value": "0.22099427923282483 t CO2/MWh" + "value": 0.22099427923282483, + "units": "t CO2/Fe_ton" }, { "year": 2031, - "value": "0.2170268710424221 t CO2/MWh" + "value": 0.2170268710424221, + "units": "t CO2/Fe_ton" }, { "year": 2032, - "value": "0.21263073927094378 t CO2/MWh" + "value": 0.21263073927094378, + "units": "t CO2/Fe_ton" }, { "year": 2033, - "value": "0.20760551668200722 t CO2/MWh" + "value": 0.20760551668200722, + "units": "t CO2/Fe_ton" }, { "year": 2034, - "value": "0.20166854855470678 t CO2/MWh" + "value": 0.20166854855470678, + "units": "t CO2/Fe_ton" }, { "year": 2035, - "value": "0.19454858286795956 t CO2/MWh" + "value": 0.19454858286795956, + "units": "t CO2/Fe_ton" }, { "year": 2036, - "value": "0.1861434343092031 t CO2/MWh" + "value": 0.1861434343092031, + "units": "t CO2/Fe_ton" }, { "year": 2037, - "value": "0.176629849481309 t CO2/MWh" + "value": 0.176629849481309, + "units": "t CO2/Fe_ton" }, { "year": 2038, - "value": "0.1664074292482413 t CO2/MWh" + "value": 0.1664074292482413, + "units": "t CO2/Fe_ton" }, { "year": 2039, - "value": "0.1559282641165899 t CO2/MWh" + "value": 0.1559282641165899, + "units": "t CO2/Fe_ton" }, { "year": 2040, - "value": "0.14556103610535465 t CO2/MWh" + "value": 0.14556103610535465, + "units": "t CO2/Fe_ton" }, { "year": 2041, - "value": "0.13554911080700055 t CO2/MWh" + "value": 0.13554911080700055, + "units": "t CO2/Fe_ton" }, { "year": 2042, - "value": "0.12602849929850368 t CO2/MWh" + "value": 0.12602849929850368, + "units": "t CO2/Fe_ton" }, { "year": 2043, - "value": "0.11706162635131759 t CO2/MWh" + "value": 0.11706162635131759, + "units": "t CO2/Fe_ton" }, { "year": 2044, - "value": "0.10866606511374256 t CO2/MWh" + "value": 0.10866606511374256, + "units": "t CO2/Fe_ton" }, { "year": 2045, - "value": "0.10083399039878226 t CO2/MWh" + "value": 0.10083399039878226, + "units": "t CO2/Fe_ton" }, { "year": 2046, - "value": "0.0935440708385071 t CO2/MWh" + "value": 0.0935440708385071, + "units": "t CO2/Fe_ton" }, { "year": 2047, - "value": "0.08676837808993242 t CO2/MWh" + "value": 0.08676837808993242, + "units": "t CO2/Fe_ton" }, { "year": 2048, - "value": "0.08047629066798251 t CO2/MWh" + "value": 0.08047629066798251, + "units": "t CO2/Fe_ton" }, { "year": 2049, - "value": "0.07463665673377298 t CO2/MWh" + "value": 0.07463665673377298, + "units": "t CO2/Fe_ton" }, { "year": 2050, - "value": "0.06921896577724047 t CO2/MWh" + "value": 0.06921896577724047, + "units": "t CO2/Fe_ton" } ] }, @@ -5384,131 +6523,163 @@ "projections": [ { "year": 2019, - "value": "0.23287909421782566 t CO2/MWh" + "value": 0.23287909421782566, + "units": "t CO2/Fe_ton" }, { "year": 2020, - "value": "0.23782543529110398 t CO2/MWh" + "value": 0.23782543529110398, + "units": "t CO2/Fe_ton" }, { "year": 2021, - "value": "0.23782518510683523 t CO2/MWh" + "value": 0.23782518510683523, + "units": "t CO2/Fe_ton" }, { "year": 2022, - "value": "0.2375065252639072 t CO2/MWh" + "value": 0.2375065252639072, + "units": "t CO2/Fe_ton" }, { "year": 2023, - "value": "0.23699212499214328 t CO2/MWh" + "value": 0.23699212499214328, + "units": "t CO2/Fe_ton" }, { "year": 2024, - "value": "0.23617802108935954 t CO2/MWh" + "value": 0.23617802108935954, + "units": "t CO2/Fe_ton" }, { "year": 2025, - "value": "0.23493667553780867 t CO2/MWh" + "value": 0.23493667553780867, + "units": "t CO2/Fe_ton" }, { "year": 2026, - "value": "0.23315623559783574 t CO2/MWh" + "value": 0.23315623559783574, + "units": "t CO2/Fe_ton" }, { "year": 2027, - "value": "0.2307987617233072 t CO2/MWh" + "value": 0.2307987617233072, + "units": "t CO2/Fe_ton" }, { "year": 2028, - "value": "0.22792115109494807 t CO2/MWh" + "value": 0.22792115109494807, + "units": "t CO2/Fe_ton" }, { "year": 2029, - "value": "0.22462699773845451 t CO2/MWh" + "value": 0.22462699773845451, + "units": "t CO2/Fe_ton" }, { "year": 2030, - "value": "0.22099427923282483 t CO2/MWh" + "value": 0.22099427923282483, + "units": "t CO2/Fe_ton" }, { "year": 2031, - "value": "0.2170268710424221 t CO2/MWh" + "value": 0.2170268710424221, + "units": "t CO2/Fe_ton" }, { "year": 2032, - "value": "0.21263073927094378 t CO2/MWh" + "value": 0.21263073927094378, + "units": "t CO2/Fe_ton" }, { "year": 2033, - "value": "0.20760551668200722 t CO2/MWh" + "value": 0.20760551668200722, + "units": "t CO2/Fe_ton" }, { "year": 2034, - "value": "0.20166854855470678 t CO2/MWh" + "value": 0.20166854855470678, + "units": "t CO2/Fe_ton" }, { "year": 2035, - "value": "0.19454858286795956 t CO2/MWh" + "value": 0.19454858286795956, + "units": "t CO2/Fe_ton" }, { "year": 2036, - "value": "0.1861434343092031 t CO2/MWh" + "value": 0.1861434343092031, + "units": "t CO2/Fe_ton" }, { "year": 2037, - "value": "0.176629849481309 t CO2/MWh" + "value": 0.176629849481309, + "units": "t CO2/Fe_ton" }, { "year": 2038, - "value": "0.1664074292482413 t CO2/MWh" + "value": 0.1664074292482413, + "units": "t CO2/Fe_ton" }, { "year": 2039, - "value": "0.1559282641165899 t CO2/MWh" + "value": 0.1559282641165899, + "units": "t CO2/Fe_ton" }, { "year": 2040, - "value": "0.14556103610535465 t CO2/MWh" + "value": 0.14556103610535465, + "units": "t CO2/Fe_ton" }, { "year": 2041, - "value": "0.13554911080700055 t CO2/MWh" + "value": 0.13554911080700055, + "units": "t CO2/Fe_ton" }, { "year": 2042, - "value": "0.12602849929850368 t CO2/MWh" + "value": 0.12602849929850368, + "units": "t CO2/Fe_ton" }, { "year": 2043, - "value": "0.11706162635131759 t CO2/MWh" + "value": 0.11706162635131759, + "units": "t CO2/Fe_ton" }, { "year": 2044, - "value": "0.10866606511374256 t CO2/MWh" + "value": 0.10866606511374256, + "units": "t CO2/Fe_ton" }, { "year": 2045, - "value": "0.10083399039878226 t CO2/MWh" + "value": 0.10083399039878226, + "units": "t CO2/Fe_ton" }, { "year": 2046, - "value": "0.0935440708385071 t CO2/MWh" + "value": 0.0935440708385071, + "units": "t CO2/Fe_ton" }, { "year": 2047, - "value": "0.08676837808993242 t CO2/MWh" + "value": 0.08676837808993242, + "units": "t CO2/Fe_ton" }, { "year": 2048, - "value": "0.08047629066798251 t CO2/MWh" + "value": 0.08047629066798251, + "units": "t CO2/Fe_ton" }, { "year": 2049, - "value": "0.07463665673377298 t CO2/MWh" + "value": 0.07463665673377298, + "units": "t CO2/Fe_ton" }, { "year": 2050, - "value": "0.06921896577724047 t CO2/MWh" + "value": 0.06921896577724047, + "units": "t CO2/Fe_ton" } ] }, @@ -5516,9 +6687,17 @@ "S1S2S3": null }, "country": "Brazil", - "ghg_s1s2": "12453000.4760821 MWh", - "ghg_s3": "12453000.4760821 MWh", - "industry_level_1": null, + "ghg_s1s2": { + "year": 2019, + "value": 12453000.4760821, + "units": "Fe_ton" + }, + "ghg_s3": { + "year": 2019, + "value": 12453000.4760821, + "units": "Fe_ton" + }, + "industry_level_1": null, "industry_level_2": null, "industry_level_3": null, "industry_level_4": null, @@ -5533,137 +6712,170 @@ "company_id": "IT0000000003", "region": "Asia", "sector": "Steel", + "production_metric": { "units": "Fe_ton"}, "target_probability": 0.4285714285714285, "projected_ei_targets": { "S1S2": { "projections": [ { "year": 2019, - "value": "0.954598554537054 t CO2/MWh" + "value": 0.954598554537054, + "units": "t CO2/Fe_ton" }, { "year": 2020, - "value": "0.954598554537054 t CO2/MWh" + "value": 0.954598554537054, + "units": "t CO2/Fe_ton" }, { "year": 2021, - "value": "0.9493773031495156 t CO2/MWh" + "value": 0.9493773031495156, + "units": "t CO2/Fe_ton" }, { "year": 2022, - "value": "0.9406684403451895 t CO2/MWh" + "value": 0.9406684403451895, + "units": "t CO2/Fe_ton" }, { "year": 2023, - "value": "0.9319466759219065 t CO2/MWh" + "value": 0.9319466759219065, + "units": "t CO2/Fe_ton" }, { "year": 2024, - "value": "0.9231819496177506 t CO2/MWh" + "value": 0.9231819496177506, + "units": "t CO2/Fe_ton" }, { "year": 2025, - "value": "0.9143391448880038 t CO2/MWh" + "value": 0.9143391448880038, + "units": "t CO2/Fe_ton" }, { "year": 2026, - "value": "0.9053887695950591 t CO2/MWh" + "value": 0.9053887695950591, + "units": "t CO2/Fe_ton" }, { "year": 2027, - "value": "0.8963198998415938 t CO2/MWh" + "value": 0.8963198998415938, + "units": "t CO2/Fe_ton" }, { "year": 2028, - "value": "0.8871396514522941 t CO2/MWh" + "value": 0.8871396514522941, + "units": "t CO2/Fe_ton" }, { "year": 2029, - "value": "0.8778531927316303 t CO2/MWh" + "value": 0.8778531927316303, + "units": "t CO2/Fe_ton" }, { "year": 2030, - "value": "0.868437667604648 t CO2/MWh" + "value": 0.868437667604648, + "units": "t CO2/Fe_ton" }, { "year": 2031, - "value": "0.8313736611627646 t CO2/MWh" + "value": 0.8313736611627646, + "units": "t CO2/Fe_ton" }, { "year": 2032, - "value": "0.7939673821275138 t CO2/MWh" + "value": 0.7939673821275138, + "units": "t CO2/Fe_ton" }, { "year": 2033, - "value": "0.755998996322505 t CO2/MWh" + "value": 0.755998996322505, + "units": "t CO2/Fe_ton" }, { "year": 2034, - "value": "0.7171894836036795 t CO2/MWh" + "value": 0.7171894836036795, + "units": "t CO2/Fe_ton" }, { "year": 2035, - "value": "0.6772870255256789 t CO2/MWh" + "value": 0.6772870255256789, + "units": "t CO2/Fe_ton" }, { "year": 2036, - "value": "0.6362103647059111 t CO2/MWh" + "value": 0.6362103647059111, + "units": "t CO2/Fe_ton" }, { "year": 2037, - "value": "0.5941421302097765 t CO2/MWh" + "value": 0.5941421302097765, + "units": "t CO2/Fe_ton" }, { "year": 2038, - "value": "0.5514666618988123 t CO2/MWh" + "value": 0.5514666618988123, + "units": "t CO2/Fe_ton" }, { "year": 2039, - "value": "0.5086075978265583 t CO2/MWh" + "value": 0.5086075978265583, + "units": "t CO2/Fe_ton" }, { "year": 2040, - "value": "0.4659039155581829 t CO2/MWh" + "value": 0.4659039155581829, + "units": "t CO2/Fe_ton" }, { "year": 2041, - "value": "0.4235750916327392 t CO2/MWh" + "value": 0.4235750916327392, + "units": "t CO2/Fe_ton" }, { "year": 2042, - "value": "0.3817405963568331 t CO2/MWh" + "value": 0.3817405963568331, + "units": "t CO2/Fe_ton" }, { "year": 2043, - "value": "0.34045246360077625 t CO2/MWh" + "value": 0.34045246360077625, + "units": "t CO2/Fe_ton" }, { "year": 2044, - "value": "0.2997222356105952 t CO2/MWh" + "value": 0.2997222356105952, + "units": "t CO2/Fe_ton" }, { "year": 2045, - "value": "0.25953890166543986 t CO2/MWh" + "value": 0.25953890166543986, + "units": "t CO2/Fe_ton" }, { "year": 2046, - "value": "0.21987971829009964 t CO2/MWh" + "value": 0.21987971829009964, + "units": "t CO2/Fe_ton" }, { "year": 2047, - "value": "0.18071641738884092 t CO2/MWh" + "value": 0.18071641738884092, + "units": "t CO2/Fe_ton" }, { "year": 2048, - "value": "0.14201866858776052 t CO2/MWh" + "value": 0.14201866858776052, + "units": "t CO2/Fe_ton" }, { "year": 2049, - "value": "0.10375596910276078 t CO2/MWh" + "value": 0.10375596910276078, + "units": "t CO2/Fe_ton" }, { "year": 2050, - "value": "0.06589864832712344 t CO2/MWh" + "value": 0.06589864832712344, + "units": "t CO2/Fe_ton" } ] }, @@ -5675,131 +6887,163 @@ "projections": [ { "year": 2019, - "value": "0.954598554537054 t CO2/MWh" + "value": 0.954598554537054, + "units": "t CO2/Fe_ton" }, { "year": 2020, - "value": "0.954598554537054 t CO2/MWh" + "value": 0.954598554537054, + "units": "t CO2/Fe_ton" }, { "year": 2021, - "value": "0.9655963665703597 t CO2/MWh" + "value": 0.9655963665703597, + "units": "t CO2/Fe_ton" }, { "year": 2022, - "value": "0.9728087126240174 t CO2/MWh" + "value": 0.9728087126240174, + "units": "t CO2/Fe_ton" }, { "year": 2023, - "value": "0.9794132729011352 t CO2/MWh" + "value": 0.9794132729011352, + "units": "t CO2/Fe_ton" }, { "year": 2024, - "value": "0.9849363131571196 t CO2/MWh" + "value": 0.9849363131571196, + "units": "t CO2/Fe_ton" }, { "year": 2025, - "value": "0.9887745468551721 t CO2/MWh" + "value": 0.9887745468551721, + "units": "t CO2/Fe_ton" }, { "year": 2026, - "value": "0.9903630412525899 t CO2/MWh" + "value": 0.9903630412525899, + "units": "t CO2/Fe_ton" }, { "year": 2027, - "value": "0.989451922884395 t CO2/MWh" + "value": 0.989451922884395, + "units": "t CO2/Fe_ton" }, { "year": 2028, - "value": "0.9862459966785303 t CO2/MWh" + "value": 0.9862459966785303, + "units": "t CO2/Fe_ton" }, { "year": 2029, - "value": "0.981238595975061 t CO2/MWh" + "value": 0.981238595975061, + "units": "t CO2/Fe_ton" }, { "year": 2030, - "value": "0.9749193867243784 t CO2/MWh" + "value": 0.9749193867243784, + "units": "t CO2/Fe_ton" }, { "year": 2031, - "value": "0.9675842149583522 t CO2/MWh" + "value": 0.9675842149583522, + "units": "t CO2/Fe_ton" }, { "year": 2032, - "value": "0.9592660434355568 t CO2/MWh" + "value": 0.9592660434355568, + "units": "t CO2/Fe_ton" }, { "year": 2033, - "value": "0.9497232088593415 t CO2/MWh" + "value": 0.9497232088593415, + "units": "t CO2/Fe_ton" }, { "year": 2034, - "value": "0.9384828380128959 t CO2/MWh" + "value": 0.9384828380128959, + "units": "t CO2/Fe_ton" }, { "year": 2035, - "value": "0.9250039484395483 t CO2/MWh" + "value": 0.9250039484395483, + "units": "t CO2/Fe_ton" }, { "year": 2036, - "value": "0.9089714346178235 t CO2/MWh" + "value": 0.9089714346178235, + "units": "t CO2/Fe_ton" }, { "year": 2037, - "value": "0.8905396376320079 t CO2/MWh" + "value": 0.8905396376320079, + "units": "t CO2/Fe_ton" }, { "year": 2038, - "value": "0.8702949656500503 t CO2/MWh" + "value": 0.8702949656500503, + "units": "t CO2/Fe_ton" }, { "year": 2039, - "value": "0.8489868944198742 t CO2/MWh" + "value": 0.8489868944198742, + "units": "t CO2/Fe_ton" }, { "year": 2040, - "value": "0.8272796296170838 t CO2/MWh" + "value": 0.8272796296170838, + "units": "t CO2/Fe_ton" }, { "year": 2041, - "value": "0.805652059718927 t CO2/MWh" + "value": 0.805652059718927, + "units": "t CO2/Fe_ton" }, { "year": 2042, - "value": "0.7844068309345155 t CO2/MWh" + "value": 0.7844068309345155, + "units": "t CO2/Fe_ton" }, { "year": 2043, - "value": "0.7637169192061212 t CO2/MWh" + "value": 0.7637169192061212, + "units": "t CO2/Fe_ton" }, { "year": 2044, - "value": "0.7436707900311434 t CO2/MWh" + "value": 0.7436707900311434, + "units": "t CO2/Fe_ton" }, { "year": 2045, - "value": "0.7243052459211291 t CO2/MWh" + "value": 0.7243052459211291, + "units": "t CO2/Fe_ton" }, { "year": 2046, - "value": "0.7056266891343271 t CO2/MWh" + "value": 0.7056266891343271, + "units": "t CO2/Fe_ton" }, { "year": 2047, - "value": "0.6876241663313545 t CO2/MWh" + "value": 0.6876241663313545, + "units": "t CO2/Fe_ton" }, { "year": 2048, - "value": "0.6702771769934004 t CO2/MWh" + "value": 0.6702771769934004, + "units": "t CO2/Fe_ton" }, { "year": 2049, - "value": "0.6535602977549326 t CO2/MWh" + "value": 0.6535602977549326, + "units": "t CO2/Fe_ton" }, { "year": 2050, - "value": "0.6374459070572828 t CO2/MWh" + "value": 0.6374459070572828, + "units": "t CO2/Fe_ton" } ] }, @@ -5807,9 +7051,17 @@ "S1S2S3": null }, "country": "South Korea", - "ghg_s1s2": "23303009.677026 MWh", - "ghg_s3": "23303009.677026 MWh", - "industry_level_1": null, + "ghg_s1s2": { + "year": 2019, + "value": 23303009.677026, + "units": "Fe_ton" + }, + "ghg_s3": { + "year": 2019, + "value": 23303009.677026, + "units": "Fe_ton" + }, + "industry_level_1": null, "industry_level_2": null, "industry_level_3": null, "industry_level_4": null, @@ -5824,137 +7076,170 @@ "company_id": "SE0000000004", "region": "Asia", "sector": "Steel", + "production_metric": { "units": "Fe_ton"}, "target_probability": 0.4285714285714285, "projected_ei_targets": { "S1S2": { "projections": [ { "year": 2019, - "value": "2.14490674197121 t CO2/MWh" + "value": 2.14490674197121, + "units": "t CO2/Fe_ton" }, { "year": 2020, - "value": "2.153791383555795 t CO2/MWh" + "value": 2.153791383555795, + "units": "t CO2/Fe_ton" }, { "year": 2021, - "value": "2.1316357075590107 t CO2/MWh" + "value": 2.1316357075590107, + "units": "t CO2/Fe_ton" }, { "year": 2022, - "value": "2.10338635628874 t CO2/MWh" + "value": 2.10338635628874, + "units": "t CO2/Fe_ton" }, { "year": 2023, - "value": "2.0753102109663826 t CO2/MWh" + "value": 2.0753102109663826, + "units": "t CO2/Fe_ton" }, { "year": 2024, - "value": "2.0474218323118896 t CO2/MWh" + "value": 2.0474218323118896, + "units": "t CO2/Fe_ton" }, { "year": 2025, - "value": "2.019740357611701 t CO2/MWh" + "value": 2.019740357611701, + "units": "t CO2/Fe_ton" }, { "year": 2026, - "value": "1.9922804017762967 t CO2/MWh" + "value": 1.9922804017762967, + "units": "t CO2/Fe_ton" }, { "year": 2027, - "value": "1.9650360848448274 t CO2/MWh" + "value": 1.9650360848448274, + "units": "t CO2/Fe_ton" }, { "year": 2028, - "value": "1.9379692586029384 t CO2/MWh" + "value": 1.9379692586029384, + "units": "t CO2/Fe_ton" }, { "year": 2029, - "value": "1.9110102953863057 t CO2/MWh" + "value": 1.9110102953863057, + "units": "t CO2/Fe_ton" }, { "year": 2030, - "value": "1.8840621944304483 t CO2/MWh" + "value": 1.8840621944304483, + "units": "t CO2/Fe_ton" }, { "year": 2031, - "value": "1.7960665866965249 t CO2/MWh" + "value": 1.7960665866965249, + "units": "t CO2/Fe_ton" }, { "year": 2032, - "value": "1.7077712639660214 t CO2/MWh" + "value": 1.7077712639660214, + "units": "t CO2/Fe_ton" }, { "year": 2033, - "value": "1.618931618568693 t CO2/MWh" + "value": 1.618931618568693, + "units": "t CO2/Fe_ton" }, { "year": 2034, - "value": "1.5292566420374998 t CO2/MWh" + "value": 1.5292566420374998, + "units": "t CO2/Fe_ton" }, { "year": 2035, - "value": "1.4384945259364372 t CO2/MWh" + "value": 1.4384945259364372, + "units": "t CO2/Fe_ton" }, { "year": 2036, - "value": "1.3465735522319446 t CO2/MWh" + "value": 1.3465735522319446, + "units": "t CO2/Fe_ton" }, { "year": 2037, - "value": "1.2536890912474092 t CO2/MWh" + "value": 1.2536890912474092, + "units": "t CO2/Fe_ton" }, { "year": 2038, - "value": "1.1602343453499224 t CO2/MWh" + "value": 1.1602343453499224, + "units": "t CO2/Fe_ton" }, { "year": 2039, - "value": "1.0666351493391608 t CO2/MWh" + "value": 1.0666351493391608, + "units": "t CO2/Fe_ton" }, { "year": 2040, - "value": "0.9732277190735656 t CO2/MWh" + "value": 0.9732277190735656, + "units": "t CO2/Fe_ton" }, { "year": 2041, - "value": "0.8802267058753541 t CO2/MWh" + "value": 0.8802267058753541, + "units": "t CO2/Fe_ton" }, { "year": 2042, - "value": "0.7877466416340048 t CO2/MWh" + "value": 0.7877466416340048, + "units": "t CO2/Fe_ton" }, { "year": 2043, - "value": "0.6958353223549808 t CO2/MWh" + "value": 0.6958353223549808, + "units": "t CO2/Fe_ton" }, { "year": 2044, - "value": "0.6045009075351638 t CO2/MWh" + "value": 0.6045009075351638, + "units": "t CO2/Fe_ton" }, { "year": 2045, - "value": "0.513729751924258 t CO2/MWh" + "value": 0.513729751924258, + "units": "t CO2/Fe_ton" }, { "year": 2046, - "value": "0.423497058313256 t CO2/MWh" + "value": 0.423497058313256, + "units": "t CO2/Fe_ton" }, { "year": 2047, - "value": "0.3337729335837493 t CO2/MWh" + "value": 0.3337729335837493, + "units": "t CO2/Fe_ton" }, { "year": 2048, - "value": "0.24452573329864757 t CO2/MWh" + "value": 0.24452573329864757, + "units": "t CO2/Fe_ton" }, { "year": 2049, - "value": "0.15572386643766856 t CO2/MWh" + "value": 0.15572386643766856, + "units": "t CO2/Fe_ton" }, { "year": 2050, - "value": "0.0673367403352704 t CO2/MWh" + "value": 0.0673367403352704, + "units": "t CO2/Fe_ton" } ] }, @@ -5966,131 +7251,163 @@ "projections": [ { "year": 2019, - "value": "2.14490674197121 t CO2/MWh" + "value": 2.14490674197121, + "units": "t CO2/Fe_ton" }, { "year": 2020, - "value": "2.153791383555795 t CO2/MWh" + "value": 2.153791383555795, + "units": "t CO2/Fe_ton" }, { "year": 2021, - "value": "2.141994163770733 t CO2/MWh" + "value": 2.141994163770733, + "units": "t CO2/Fe_ton" }, { "year": 2022, - "value": "2.1240930072766893 t CO2/MWh" + "value": 2.1240930072766893, + "units": "t CO2/Fe_ton" }, { "year": 2023, - "value": "2.106306776157942 t CO2/MWh" + "value": 2.106306776157942, + "units": "t CO2/Fe_ton" }, { "year": 2024, - "value": "2.08858213908493 t CO2/MWh" + "value": 2.08858213908493, + "units": "t CO2/Fe_ton" }, { "year": 2025, - "value": "2.07085621688143 t CO2/MWh" + "value": 2.07085621688143, + "units": "t CO2/Fe_ton" }, { "year": 2026, - "value": "2.053071393949981 t CO2/MWh" + "value": 2.053071393949981, + "units": "t CO2/Fe_ton" }, { "year": 2027, - "value": "2.035191801734204 t CO2/MWh" + "value": 2.035191801734204, + "units": "t CO2/Fe_ton" }, { "year": 2028, - "value": "2.0171971432104647 t CO2/MWh" + "value": 2.0171971432104647, + "units": "t CO2/Fe_ton" }, { "year": 2029, - "value": "1.999044850714704 t CO2/MWh" + "value": 1.999044850714704, + "units": "t CO2/Fe_ton" }, { "year": 2030, - "value": "1.9806192264561941 t CO2/MWh" + "value": 1.9806192264561941, + "units": "t CO2/Fe_ton" }, { "year": 2031, - "value": "1.961679963499026 t CO2/MWh" + "value": 1.961679963499026, + "units": "t CO2/Fe_ton" }, { "year": 2032, - "value": "1.9418073731580183 t CO2/MWh" + "value": 1.9418073731580183, + "units": "t CO2/Fe_ton" }, { "year": 2033, - "value": "1.9203597155500025 t CO2/MWh" + "value": 1.9203597155500025, + "units": "t CO2/Fe_ton" }, { "year": 2034, - "value": "1.8965094419293478 t CO2/MWh" + "value": 1.8965094419293478, + "units": "t CO2/Fe_ton" }, { "year": 2035, - "value": "1.8694581822731782 t CO2/MWh" + "value": 1.8694581822731782, + "units": "t CO2/Fe_ton" }, { "year": 2036, - "value": "1.8388197850620962 t CO2/MWh" + "value": 1.8388197850620962, + "units": "t CO2/Fe_ton" }, { "year": 2037, - "value": "1.8049002977676218 t CO2/MWh" + "value": 1.8049002977676218, + "units": "t CO2/Fe_ton" }, { "year": 2038, - "value": "1.7685826490696894 t CO2/MWh" + "value": 1.7685826490696894, + "units": "t CO2/Fe_ton" }, { "year": 2039, - "value": "1.730927644500349 t CO2/MWh" + "value": 1.730927644500349, + "units": "t CO2/Fe_ton" }, { "year": 2040, - "value": "1.6928417911889748 t CO2/MWh" + "value": 1.6928417911889748, + "units": "t CO2/Fe_ton" }, { "year": 2041, - "value": "1.6549608222198926 t CO2/MWh" + "value": 1.6549608222198926, + "units": "t CO2/Fe_ton" }, { "year": 2042, - "value": "1.617677095579325 t CO2/MWh" + "value": 1.617677095579325, + "units": "t CO2/Fe_ton" }, { "year": 2043, - "value": "1.5812100314367101 t CO2/MWh" + "value": 1.5812100314367101, + "units": "t CO2/Fe_ton" }, { "year": 2044, - "value": "1.5456694471097814 t CO2/MWh" + "value": 1.5456694471097814, + "units": "t CO2/Fe_ton" }, { "year": 2045, - "value": "1.5110998263829376 t CO2/MWh" + "value": 1.5110998263829376, + "units": "t CO2/Fe_ton" }, { "year": 2046, - "value": "1.4775081218797617 t CO2/MWh" + "value": 1.4775081218797617, + "units": "t CO2/Fe_ton" }, { "year": 2047, - "value": "1.4448803582847825 t CO2/MWh" + "value": 1.4448803582847825, + "units": "t CO2/Fe_ton" }, { "year": 2048, - "value": "1.4131913169725197 t CO2/MWh" + "value": 1.4131913169725197, + "units": "t CO2/Fe_ton" }, { "year": 2049, - "value": "1.3824101257921226 t CO2/MWh" + "value": 1.3824101257921226, + "units": "t CO2/Fe_ton" }, { "year": 2050, - "value": "1.3525034681569517 t CO2/MWh" + "value": 1.3525034681569517, + "units": "t CO2/Fe_ton" } ] }, @@ -6098,9 +7415,17 @@ "S1S2S3": null }, "country": "Japan", - "ghg_s1s2": "27880000.2335485 MWh", - "ghg_s3": "27880000.2335485 MWh", - "industry_level_1": null, + "ghg_s1s2": { + "year": 2019, + "value": 27880000.2335485, + "units": "Fe_ton" + }, + "ghg_s3": { + "year": 2019, + "value": 27880000.2335485, + "units": "Fe_ton" + }, + "industry_level_1": null, "industry_level_2": null, "industry_level_3": null, "industry_level_4": null, @@ -6115,137 +7440,170 @@ "company_id": "SE0000000005", "region": "Asia", "sector": "Steel", + "production_metric": { "units": "Fe_ton"}, "target_probability": 0.4285714285714285, "projected_ei_targets": { "S1S2": { "projections": [ { "year": 2019, - "value": "3.630111503845141 t CO2/MWh" + "value": 3.630111503845141, + "units": "t CO2/Fe_ton" }, { "year": 2020, - "value": "3.2084092426770465 t CO2/MWh" + "value": 3.2084092426770465, + "units": "t CO2/Fe_ton" }, { "year": 2021, - "value": "3.1797007574907754 t CO2/MWh" + "value": 3.1797007574907754, + "units": "t CO2/Fe_ton" }, { "year": 2022, - "value": "3.1537780303458103 t CO2/MWh" + "value": 3.1537780303458103, + "units": "t CO2/Fe_ton" }, { "year": 2023, - "value": "3.128275296291899 t CO2/MWh" + "value": 3.128275296291899, + "units": "t CO2/Fe_ton" }, { "year": 2024, - "value": "3.103169274537815 t CO2/MWh" + "value": 3.103169274537815, + "units": "t CO2/Fe_ton" }, { "year": 2025, - "value": "3.0784157969608446 t CO2/MWh" + "value": 3.0784157969608446, + "units": "t CO2/Fe_ton" }, { "year": 2026, - "value": "3.053946522109776 t CO2/MWh" + "value": 3.053946522109776, + "units": "t CO2/Fe_ton" }, { "year": 2027, - "value": "3.0296740030374125 t CO2/MWh" + "value": 3.0296740030374125, + "units": "t CO2/Fe_ton" }, { "year": 2028, - "value": "3.0054966115150594 t CO2/MWh" + "value": 3.0054966115150594, + "units": "t CO2/Fe_ton" }, { "year": 2029, - "value": "2.981285231148825 t CO2/MWh" + "value": 2.981285231148825, + "units": "t CO2/Fe_ton" }, { "year": 2030, - "value": "2.956846183659979 t CO2/MWh" + "value": 2.956846183659979, + "units": "t CO2/Fe_ton" }, { "year": 2031, - "value": "2.9318657063413673 t CO2/MWh" + "value": 2.9318657063413673, + "units": "t CO2/Fe_ton" }, { "year": 2032, - "value": "2.9058411081553905 t CO2/MWh" + "value": 2.9058411081553905, + "units": "t CO2/Fe_ton" }, { "year": 2033, - "value": "2.8780224302434974 t CO2/MWh" + "value": 2.8780224302434974, + "units": "t CO2/Fe_ton" }, { "year": 2034, - "value": "2.8474408247832557 t CO2/MWh" + "value": 2.8474408247832557, + "units": "t CO2/Fe_ton" }, { "year": 2035, - "value": "2.8131374763554997 t CO2/MWh" + "value": 2.8131374763554997, + "units": "t CO2/Fe_ton" }, { "year": 2036, - "value": "2.774589629905306 t CO2/MWh" + "value": 2.774589629905306, + "units": "t CO2/Fe_ton" }, { "year": 2037, - "value": "2.732040379080609 t CO2/MWh" + "value": 2.732040379080609, + "units": "t CO2/Fe_ton" }, { "year": 2038, - "value": "2.6863990545032768 t CO2/MWh" + "value": 2.6863990545032768, + "units": "t CO2/Fe_ton" }, { "year": 2039, - "value": "2.638814551059191 t CO2/MWh" + "value": 2.638814551059191, + "units": "t CO2/Fe_ton" }, { "year": 2040, - "value": "2.5903022536726255 t CO2/MWh" + "value": 2.5903022536726255, + "units": "t CO2/Fe_ton" }, { "year": 2041, - "value": "2.541600104039621 t CO2/MWh" + "value": 2.541600104039621, + "units": "t CO2/Fe_ton" }, { "year": 2042, - "value": "2.4931857193239786 t CO2/MWh" + "value": 2.4931857193239786, + "units": "t CO2/Fe_ton" }, { "year": 2043, - "value": "2.4453465388873754 t CO2/MWh" + "value": 2.4453465388873754, + "units": "t CO2/Fe_ton" }, { "year": 2044, - "value": "2.398246379616986 t CO2/MWh" + "value": 2.398246379616986, + "units": "t CO2/Fe_ton" }, { "year": 2045, - "value": "2.351973250264482 t CO2/MWh" + "value": 2.351973250264482, + "units": "t CO2/Fe_ton" }, { "year": 2046, - "value": "2.3065699961585597 t CO2/MWh" + "value": 2.3065699961585597, + "units": "t CO2/Fe_ton" }, { "year": 2047, - "value": "2.2620529338308883 t CO2/MWh" + "value": 2.2620529338308883, + "units": "t CO2/Fe_ton" }, { "year": 2048, - "value": "2.2184229217959324 t CO2/MWh" + "value": 2.2184229217959324, + "units": "t CO2/Fe_ton" }, { "year": 2049, - "value": "2.1756718847945424 t CO2/MWh" + "value": 2.1756718847945424, + "units": "t CO2/Fe_ton" }, { "year": 2050, - "value": "2.13378665842693 t CO2/MWh" + "value": 2.13378665842693, + "units": "t CO2/Fe_ton" } ] }, @@ -6257,131 +7615,163 @@ "projections": [ { "year": 2019, - "value": "3.630111503845141 t CO2/MWh" + "value": 3.630111503845141, + "units": "t CO2/Fe_ton" }, { "year": 2020, - "value": "3.2084092426770465 t CO2/MWh" + "value": 3.2084092426770465, + "units": "t CO2/Fe_ton" }, { "year": 2021, - "value": "3.1797007574907754 t CO2/MWh" + "value": 3.1797007574907754, + "units": "t CO2/Fe_ton" }, { "year": 2022, - "value": "3.1537780303458103 t CO2/MWh" + "value": 3.1537780303458103, + "units": "t CO2/Fe_ton" }, { "year": 2023, - "value": "3.128275296291899 t CO2/MWh" + "value": 3.128275296291899, + "units": "t CO2/Fe_ton" }, { "year": 2024, - "value": "3.103169274537815 t CO2/MWh" + "value": 3.103169274537815, + "units": "t CO2/Fe_ton" }, { "year": 2025, - "value": "3.0784157969608446 t CO2/MWh" + "value": 3.0784157969608446, + "units": "t CO2/Fe_ton" }, { "year": 2026, - "value": "3.053946522109776 t CO2/MWh" + "value": 3.053946522109776, + "units": "t CO2/Fe_ton" }, { "year": 2027, - "value": "3.0296740030374125 t CO2/MWh" + "value": 3.0296740030374125, + "units": "t CO2/Fe_ton" }, { "year": 2028, - "value": "3.0054966115150594 t CO2/MWh" + "value": 3.0054966115150594, + "units": "t CO2/Fe_ton" }, { "year": 2029, - "value": "2.981285231148825 t CO2/MWh" + "value": 2.981285231148825, + "units": "t CO2/Fe_ton" }, { "year": 2030, - "value": "2.956846183659979 t CO2/MWh" + "value": 2.956846183659979, + "units": "t CO2/Fe_ton" }, { "year": 2031, - "value": "2.9318657063413673 t CO2/MWh" + "value": 2.9318657063413673, + "units": "t CO2/Fe_ton" }, { "year": 2032, - "value": "2.9058411081553905 t CO2/MWh" + "value": 2.9058411081553905, + "units": "t CO2/Fe_ton" }, { "year": 2033, - "value": "2.8780224302434974 t CO2/MWh" + "value": 2.8780224302434974, + "units": "t CO2/Fe_ton" }, { "year": 2034, - "value": "2.8474408247832557 t CO2/MWh" + "value": 2.8474408247832557, + "units": "t CO2/Fe_ton" }, { "year": 2035, - "value": "2.8131374763554997 t CO2/MWh" + "value": 2.8131374763554997, + "units": "t CO2/Fe_ton" }, { "year": 2036, - "value": "2.774589629905306 t CO2/MWh" + "value": 2.774589629905306, + "units": "t CO2/Fe_ton" }, { "year": 2037, - "value": "2.732040379080609 t CO2/MWh" + "value": 2.732040379080609, + "units": "t CO2/Fe_ton" }, { "year": 2038, - "value": "2.6863990545032768 t CO2/MWh" + "value": 2.6863990545032768, + "units": "t CO2/Fe_ton" }, { "year": 2039, - "value": "2.638814551059191 t CO2/MWh" + "value": 2.638814551059191, + "units": "t CO2/Fe_ton" }, { "year": 2040, - "value": "2.5903022536726255 t CO2/MWh" + "value": 2.5903022536726255, + "units": "t CO2/Fe_ton" }, { "year": 2041, - "value": "2.541600104039621 t CO2/MWh" + "value": 2.541600104039621, + "units": "t CO2/Fe_ton" }, { "year": 2042, - "value": "2.4931857193239786 t CO2/MWh" + "value": 2.4931857193239786, + "units": "t CO2/Fe_ton" }, { "year": 2043, - "value": "2.4453465388873754 t CO2/MWh" + "value": 2.4453465388873754, + "units": "t CO2/Fe_ton" }, { "year": 2044, - "value": "2.398246379616986 t CO2/MWh" + "value": 2.398246379616986, + "units": "t CO2/Fe_ton" }, { "year": 2045, - "value": "2.351973250264482 t CO2/MWh" + "value": 2.351973250264482, + "units": "t CO2/Fe_ton" }, { "year": 2046, - "value": "2.3065699961585597 t CO2/MWh" + "value": 2.3065699961585597, + "units": "t CO2/Fe_ton" }, { "year": 2047, - "value": "2.2620529338308883 t CO2/MWh" + "value": 2.2620529338308883, + "units": "t CO2/Fe_ton" }, { "year": 2048, - "value": "2.2184229217959324 t CO2/MWh" + "value": 2.2184229217959324, + "units": "t CO2/Fe_ton" }, { "year": 2049, - "value": "2.1756718847945424 t CO2/MWh" + "value": 2.1756718847945424, + "units": "t CO2/Fe_ton" }, { "year": 2050, - "value": "2.13378665842693 t CO2/MWh" + "value": 2.13378665842693, + "units": "t CO2/Fe_ton" } ] }, @@ -6389,9 +7779,17 @@ "S1S2S3": null }, "country": "India", - "ghg_s1s2": "12630001.0468216 MWh", - "ghg_s3": "12630001.0468216 MWh", - "industry_level_1": null, + "ghg_s1s2": { + "year": 2019, + "value": 12630001.0468216, + "units": "Fe_ton" + }, + "ghg_s3": { + "year": 2019, + "value": 12630001.0468216, + "units": "Fe_ton" + }, + "industry_level_1": null, "industry_level_2": null, "industry_level_3": null, "industry_level_4": null, @@ -6406,6 +7804,7 @@ "company_id": "NL0000000006", "region": "Asia", "sector": "Steel", + "production_metric": { "units": "Fe_ton"}, "target_probability": 0.4285714285714285, "projected_ei_targets": { "S1S2": { @@ -6680,9 +8079,17 @@ "S1S2S3": null }, "country": "Russia", - "ghg_s1s2": "23779000.8292913 MWh", - "ghg_s3": "23779000.8292913 MWh", - "industry_level_1": null, + "ghg_s1s2": { + "year": 2019, + "value": 23779000.8292913, + "units": "Fe_ton" + }, + "ghg_s3": { + "year": 2019, + "value": 23779000.8292913, + "units": "Fe_ton" + }, + "industry_level_1": null, "industry_level_2": null, "industry_level_3": null, "industry_level_4": null, @@ -6697,137 +8104,170 @@ "company_id": "CN0000000007", "region": "Asia", "sector": "Steel", + "production_metric": { "units": "Fe_ton"}, "target_probability": 0.4285714285714285, "projected_ei_targets": { "S1S2": { "projections": [ { "year": 2019, - "value": "2.027591972455373 t CO2/MWh" + "value": 2.027591972455373, + "units": "t CO2/Fe_ton" }, { "year": 2020, - "value": "1.976620617045139 t CO2/MWh" + "value": 1.976620617045139, + "units": "t CO2/Fe_ton" }, { "year": 2021, - "value": "1.948321405929883 t CO2/MWh" + "value": 1.948321405929883, + "units": "t CO2/Fe_ton" }, { "year": 2022, - "value": "1.903826426375229 t CO2/MWh" + "value": 1.903826426375229, + "units": "t CO2/Fe_ton" }, { "year": 2023, - "value": "1.862438512611207 t CO2/MWh" + "value": 1.862438512611207, + "units": "t CO2/Fe_ton" }, { "year": 2024, - "value": "1.8244439841029152 t CO2/MWh" + "value": 1.8244439841029152, + "units": "t CO2/Fe_ton" }, { "year": 2025, - "value": "1.7902131798499714 t CO2/MWh" + "value": 1.7902131798499714, + "units": "t CO2/Fe_ton" }, { "year": 2026, - "value": "1.7599918438367868 t CO2/MWh" + "value": 1.7599918438367868, + "units": "t CO2/Fe_ton" }, { "year": 2027, - "value": "1.7336203510235477 t CO2/MWh" + "value": 1.7336203510235477, + "units": "t CO2/Fe_ton" }, { "year": 2028, - "value": "1.7104459987047824 t CO2/MWh" + "value": 1.7104459987047824, + "units": "t CO2/Fe_ton" }, { "year": 2029, - "value": "1.6895421116638003 t CO2/MWh" + "value": 1.6895421116638003, + "units": "t CO2/Fe_ton" }, { "year": 2030, - "value": "1.6699903140176984 t CO2/MWh" + "value": 1.6699903140176984, + "units": "t CO2/Fe_ton" }, { "year": 2031, - "value": "1.650997709678666 t CO2/MWh" + "value": 1.650997709678666, + "units": "t CO2/Fe_ton" }, { "year": 2032, - "value": "1.631863992673249 t CO2/MWh" + "value": 1.631863992673249, + "units": "t CO2/Fe_ton" }, { "year": 2033, - "value": "1.6119111616280717 t CO2/MWh" + "value": 1.6119111616280717, + "units": "t CO2/Fe_ton" }, { "year": 2034, - "value": "1.5904745104367044 t CO2/MWh" + "value": 1.5904745104367044, + "units": "t CO2/Fe_ton" }, { "year": 2035, - "value": "1.5670204721219367 t CO2/MWh" + "value": 1.5670204721219367, + "units": "t CO2/Fe_ton" }, { "year": 2036, - "value": "1.5413586771198822 t CO2/MWh" + "value": 1.5413586771198822, + "units": "t CO2/Fe_ton" }, { "year": 2037, - "value": "1.5137622140741056 t CO2/MWh" + "value": 1.5137622140741056, + "units": "t CO2/Fe_ton" }, { "year": 2038, - "value": "1.4848394633731865 t CO2/MWh" + "value": 1.4848394633731865, + "units": "t CO2/Fe_ton" }, { "year": 2039, - "value": "1.4552644841971172 t CO2/MWh" + "value": 1.4552644841971172, + "units": "t CO2/Fe_ton" }, { "year": 2040, - "value": "1.425582842432673 t CO2/MWh" + "value": 1.425582842432673, + "units": "t CO2/Fe_ton" }, { "year": 2041, - "value": "1.3961597031365163 t CO2/MWh" + "value": 1.3961597031365163, + "units": "t CO2/Fe_ton" }, { "year": 2042, - "value": "1.3672101712138889 t CO2/MWh" + "value": 1.3672101712138889, + "units": "t CO2/Fe_ton" }, { "year": 2043, - "value": "1.338848217369191 t CO2/MWh" + "value": 1.338848217369191, + "units": "t CO2/Fe_ton" }, { "year": 2044, - "value": "1.3111266047580625 t CO2/MWh" + "value": 1.3111266047580625, + "units": "t CO2/Fe_ton" }, { "year": 2045, - "value": "1.2840632318532665 t CO2/MWh" + "value": 1.2840632318532665, + "units": "t CO2/Fe_ton" }, { "year": 2046, - "value": "1.2576569144325096 t CO2/MWh" + "value": 1.2576569144325096, + "units": "t CO2/Fe_ton" }, { "year": 2047, - "value": "1.2318963980591733 t CO2/MWh" + "value": 1.2318963980591733, + "units": "t CO2/Fe_ton" }, { "year": 2048, - "value": "1.2067653793105761 t CO2/MWh" + "value": 1.2067653793105761, + "units": "t CO2/Fe_ton" }, { "year": 2049, - "value": "1.1822452648395976 t CO2/MWh" + "value": 1.1822452648395976, + "units": "t CO2/Fe_ton" }, { "year": 2050, - "value": "1.158316671492553 t CO2/MWh" + "value": 1.158316671492553, + "units": "t CO2/Fe_ton" } ] }, @@ -6839,131 +8279,163 @@ "projections": [ { "year": 2019, - "value": "2.027591972455373 t CO2/MWh" + "value": 2.027591972455373, + "units": "t CO2/Fe_ton" }, { "year": 2020, - "value": "1.976620617045139 t CO2/MWh" + "value": 1.976620617045139, + "units": "t CO2/Fe_ton" }, { "year": 2021, - "value": "1.948321405929883 t CO2/MWh" + "value": 1.948321405929883, + "units": "t CO2/Fe_ton" }, { "year": 2022, - "value": "1.903826426375229 t CO2/MWh" + "value": 1.903826426375229, + "units": "t CO2/Fe_ton" }, { "year": 2023, - "value": "1.862438512611207 t CO2/MWh" + "value": 1.862438512611207, + "units": "t CO2/Fe_ton" }, { "year": 2024, - "value": "1.8244439841029152 t CO2/MWh" + "value": 1.8244439841029152, + "units": "t CO2/Fe_ton" }, { "year": 2025, - "value": "1.7902131798499714 t CO2/MWh" + "value": 1.7902131798499714, + "units": "t CO2/Fe_ton" }, { "year": 2026, - "value": "1.7599918438367868 t CO2/MWh" + "value": 1.7599918438367868, + "units": "t CO2/Fe_ton" }, { "year": 2027, - "value": "1.7336203510235477 t CO2/MWh" + "value": 1.7336203510235477, + "units": "t CO2/Fe_ton" }, { "year": 2028, - "value": "1.7104459987047824 t CO2/MWh" + "value": 1.7104459987047824, + "units": "t CO2/Fe_ton" }, { "year": 2029, - "value": "1.6895421116638003 t CO2/MWh" + "value": 1.6895421116638003, + "units": "t CO2/Fe_ton" }, { "year": 2030, - "value": "1.6699903140176984 t CO2/MWh" + "value": 1.6699903140176984, + "units": "t CO2/Fe_ton" }, { "year": 2031, - "value": "1.650997709678666 t CO2/MWh" + "value": 1.650997709678666, + "units": "t CO2/Fe_ton" }, { "year": 2032, - "value": "1.631863992673249 t CO2/MWh" + "value": 1.631863992673249, + "units": "t CO2/Fe_ton" }, { "year": 2033, - "value": "1.6119111616280717 t CO2/MWh" + "value": 1.6119111616280717, + "units": "t CO2/Fe_ton" }, { "year": 2034, - "value": "1.5904745104367044 t CO2/MWh" + "value": 1.5904745104367044, + "units": "t CO2/Fe_ton" }, { "year": 2035, - "value": "1.5670204721219367 t CO2/MWh" + "value": 1.5670204721219367, + "units": "t CO2/Fe_ton" }, { "year": 2036, - "value": "1.5413586771198822 t CO2/MWh" + "value": 1.5413586771198822, + "units": "t CO2/Fe_ton" }, { "year": 2037, - "value": "1.5137622140741056 t CO2/MWh" + "value": 1.5137622140741056, + "units": "t CO2/Fe_ton" }, { "year": 2038, - "value": "1.4848394633731865 t CO2/MWh" + "value": 1.4848394633731865, + "units": "t CO2/Fe_ton" }, { "year": 2039, - "value": "1.4552644841971172 t CO2/MWh" + "value": 1.4552644841971172, + "units": "t CO2/Fe_ton" }, { "year": 2040, - "value": "1.425582842432673 t CO2/MWh" + "value": 1.425582842432673, + "units": "t CO2/Fe_ton" }, { "year": 2041, - "value": "1.3961597031365163 t CO2/MWh" + "value": 1.3961597031365163, + "units": "t CO2/Fe_ton" }, { "year": 2042, - "value": "1.3672101712138889 t CO2/MWh" + "value": 1.3672101712138889, + "units": "t CO2/Fe_ton" }, { "year": 2043, - "value": "1.338848217369191 t CO2/MWh" + "value": 1.338848217369191, + "units": "t CO2/Fe_ton" }, { "year": 2044, - "value": "1.3111266047580625 t CO2/MWh" + "value": 1.3111266047580625, + "units": "t CO2/Fe_ton" }, { "year": 2045, - "value": "1.2840632318532665 t CO2/MWh" + "value": 1.2840632318532665, + "units": "t CO2/Fe_ton" }, { "year": 2046, - "value": "1.2576569144325096 t CO2/MWh" + "value": 1.2576569144325096, + "units": "t CO2/Fe_ton" }, { "year": 2047, - "value": "1.2318963980591733 t CO2/MWh" + "value": 1.2318963980591733, + "units": "t CO2/Fe_ton" }, { "year": 2048, - "value": "1.2067653793105761 t CO2/MWh" + "value": 1.2067653793105761, + "units": "t CO2/Fe_ton" }, { "year": 2049, - "value": "1.1822452648395976 t CO2/MWh" + "value": 1.1822452648395976, + "units": "t CO2/Fe_ton" }, { "year": 2050, - "value": "1.158316671492553 t CO2/MWh" + "value": 1.158316671492553, + "units": "t CO2/Fe_ton" } ] }, @@ -6971,9 +8443,17 @@ "S1S2S3": null }, "country": "Japan", - "ghg_s1s2": "47840001.3676141 MWh", - "ghg_s3": "47840001.3676141 MWh", - "industry_level_1": null, + "ghg_s1s2": { + "year": 2019, + "value": 47840001.3676141, + "units": "Fe_ton" + }, + "ghg_s3": { + "year": 2019, + "value": 47840001.3676141, + "units": "Fe_ton" + }, + "industry_level_1": null, "industry_level_2": null, "industry_level_3": null, "industry_level_4": null, @@ -6988,137 +8468,170 @@ "company_id": "CN0000000008", "region": "Asia", "sector": "Steel", + "production_metric": { "units": "Fe_ton"}, "target_probability": 0.4285714285714285, "projected_ei_targets": { "S1S2": { "projections": [ { "year": 2019, - "value": "2.061855651645914 t CO2/MWh" + "value": 2.061855651645914, + "units": "t CO2/Fe_ton" }, { "year": 2020, - "value": "2.061855651645914 t CO2/MWh" + "value": 2.061855651645914, + "units": "t CO2/Fe_ton" }, { "year": 2021, - "value": "2.0435566850500866 t CO2/MWh" + "value": 2.0435566850500866, + "units": "t CO2/Fe_ton" }, { "year": 2022, - "value": "2.027287100012685 t CO2/MWh" + "value": 2.027287100012685, + "units": "t CO2/Fe_ton" }, { "year": 2023, - "value": "2.0107342361237563 t CO2/MWh" + "value": 2.0107342361237563, + "units": "t CO2/Fe_ton" }, { "year": 2024, - "value": "2.012026764785486 t CO2/MWh" + "value": 2.012026764785486, + "units": "t CO2/Fe_ton" }, { "year": 2025, - "value": "2.0030980948826973 t CO2/MWh" + "value": 2.0030980948826973, + "units": "t CO2/Fe_ton" }, { "year": 2026, - "value": "1.9895087890921241 t CO2/MWh" + "value": 1.9895087890921241, + "units": "t CO2/Fe_ton" }, { "year": 2027, - "value": "1.974455843324461 t CO2/MWh" + "value": 1.974455843324461, + "units": "t CO2/Fe_ton" }, { "year": 2028, - "value": "1.9580501600215243 t CO2/MWh" + "value": 1.9580501600215243, + "units": "t CO2/Fe_ton" }, { "year": 2029, - "value": "1.9405260657558827 t CO2/MWh" + "value": 1.9405260657558827, + "units": "t CO2/Fe_ton" }, { "year": 2030, - "value": "1.9220392967604456 t CO2/MWh" + "value": 1.9220392967604456, + "units": "t CO2/Fe_ton" }, { "year": 2031, - "value": "1.9025215704757057 t CO2/MWh" + "value": 1.9025215704757057, + "units": "t CO2/Fe_ton" }, { "year": 2032, - "value": "1.8815968571399804 t CO2/MWh" + "value": 1.8815968571399804, + "units": "t CO2/Fe_ton" }, { "year": 2033, - "value": "1.8585396742902418 t CO2/MWh" + "value": 1.8585396742902418, + "units": "t CO2/Fe_ton" }, { "year": 2034, - "value": "1.832337927723912 t CO2/MWh" + "value": 1.832337927723912, + "units": "t CO2/Fe_ton" }, { "year": 2035, - "value": "1.8019881107011875 t CO2/MWh" + "value": 1.8019881107011875, + "units": "t CO2/Fe_ton" }, { "year": 2036, - "value": "1.7670148530936824 t CO2/MWh" + "value": 1.7670148530936824, + "units": "t CO2/Fe_ton" }, { "year": 2037, - "value": "1.7278567894639287 t CO2/MWh" + "value": 1.7278567894639287, + "units": "t CO2/Fe_ton" }, { "year": 2038, - "value": "1.6857203797006854 t CO2/MWh" + "value": 1.6857203797006854, + "units": "t CO2/Fe_ton" }, { "year": 2039, - "value": "1.6420440115023238 t CO2/MWh" + "value": 1.6420440115023238, + "units": "t CO2/Fe_ton" }, { "year": 2040, - "value": "1.5980478305727301 t CO2/MWh" + "value": 1.5980478305727301, + "units": "t CO2/Fe_ton" }, { "year": 2041, - "value": "1.5545765314454727 t CO2/MWh" + "value": 1.5545765314454727, + "units": "t CO2/Fe_ton" }, { "year": 2042, - "value": "1.5121390533112595 t CO2/MWh" + "value": 1.5121390533112595, + "units": "t CO2/Fe_ton" }, { "year": 2043, - "value": "1.4710069881680552 t CO2/MWh" + "value": 1.4710069881680552, + "units": "t CO2/Fe_ton" }, { "year": 2044, - "value": "1.4313026542006284 t CO2/MWh" + "value": 1.4313026542006284, + "units": "t CO2/Fe_ton" }, { "year": 2045, - "value": "1.3930604562851605 t CO2/MWh" + "value": 1.3930604562851605, + "units": "t CO2/Fe_ton" }, { "year": 2046, - "value": "1.3562652786406195 t CO2/MWh" + "value": 1.3562652786406195, + "units": "t CO2/Fe_ton" }, { "year": 2047, - "value": "1.3208753009393037 t CO2/MWh" + "value": 1.3208753009393037, + "units": "t CO2/Fe_ton" }, { "year": 2048, - "value": "1.286835217194566 t CO2/MWh" + "value": 1.286835217194566, + "units": "t CO2/Fe_ton" }, { "year": 2049, - "value": "1.254083790803529 t CO2/MWh" + "value": 1.254083790803529, + "units": "t CO2/Fe_ton" }, { "year": 2050, - "value": "1.2225581277619404 t CO2/MWh" + "value": 1.2225581277619404, + "units": "t CO2/Fe_ton" } ] }, @@ -7130,131 +8643,163 @@ "projections": [ { "year": 2019, - "value": "2.061855651645914 t CO2/MWh" + "value": 2.061855651645914, + "units": "t CO2/Fe_ton" }, { "year": 2020, - "value": "2.061855651645914 t CO2/MWh" + "value": 2.061855651645914, + "units": "t CO2/Fe_ton" }, { "year": 2021, - "value": "2.045754544770144 t CO2/MWh" + "value": 2.045754544770144, + "units": "t CO2/Fe_ton" }, { "year": 2022, - "value": "2.031871238340029 t CO2/MWh" + "value": 2.031871238340029, + "units": "t CO2/Fe_ton" }, { "year": 2023, - "value": "2.0179173897341585 t CO2/MWh" + "value": 2.0179173897341585, + "units": "t CO2/Fe_ton" }, { "year": 2024, - "value": "2.0037602736389872 t CO2/MWh" + "value": 2.0037602736389872, + "units": "t CO2/Fe_ton" }, { "year": 2025, - "value": "1.9892346465281572 t CO2/MWh" + "value": 1.9892346465281572, + "units": "t CO2/Fe_ton" }, { "year": 2026, - "value": "1.974187924297524 t CO2/MWh" + "value": 1.974187924297524, + "units": "t CO2/Fe_ton" }, { "year": 2027, - "value": "1.9585476910028747 t CO2/MWh" + "value": 1.9585476910028747, + "units": "t CO2/Fe_ton" }, { "year": 2028, - "value": "1.9423425952973061 t CO2/MWh" + "value": 1.9423425952973061, + "units": "t CO2/Fe_ton" }, { "year": 2029, - "value": "1.925636133185111 t CO2/MWh" + "value": 1.925636133185111, + "units": "t CO2/Fe_ton" }, { "year": 2030, - "value": "1.9084251897263624 t CO2/MWh" + "value": 1.9084251897263624, + "units": "t CO2/Fe_ton" }, { "year": 2031, - "value": "1.8905587797565466 t CO2/MWh" + "value": 1.8905587797565466, + "units": "t CO2/Fe_ton" }, { "year": 2032, - "value": "1.8716777675180514 t CO2/MWh" + "value": 1.8716777675180514, + "units": "t CO2/Fe_ton" }, { "year": 2033, - "value": "1.8511759539710897 t CO2/MWh" + "value": 1.8511759539710897, + "units": "t CO2/Fe_ton" }, { "year": 2034, - "value": "1.8282400883048167 t CO2/MWh" + "value": 1.8282400883048167, + "units": "t CO2/Fe_ton" }, { "year": 2035, - "value": "1.8020686636628185 t CO2/MWh" + "value": 1.8020686636628185, + "units": "t CO2/Fe_ton" }, { "year": 2036, - "value": "1.7722634208858175 t CO2/MWh" + "value": 1.7722634208858175, + "units": "t CO2/Fe_ton" }, { "year": 2037, - "value": "1.739122527006039 t CO2/MWh" + "value": 1.739122527006039, + "units": "t CO2/Fe_ton" }, { "year": 2038, - "value": "1.7035339693865368 t CO2/MWh" + "value": 1.7035339693865368, + "units": "t CO2/Fe_ton" }, { "year": 2039, - "value": "1.6665741359741721 t CO2/MWh" + "value": 1.6665741359741721, + "units": "t CO2/Fe_ton" }, { "year": 2040, - "value": "1.6291675495460778 t CO2/MWh" + "value": 1.6291675495460778, + "units": "t CO2/Fe_ton" }, { "year": 2041, - "value": "1.5919645590027791 t CO2/MWh" + "value": 1.5919645590027791, + "units": "t CO2/Fe_ton" }, { "year": 2042, - "value": "1.5553670624603537 t CO2/MWh" + "value": 1.5553670624603537, + "units": "t CO2/Fe_ton" }, { "year": 2043, - "value": "1.5195996371089702 t CO2/MWh" + "value": 1.5195996371089702, + "units": "t CO2/Fe_ton" }, { "year": 2044, - "value": "1.4847741892317674 t CO2/MWh" + "value": 1.4847741892317674, + "units": "t CO2/Fe_ton" }, { "year": 2045, - "value": "1.4509353780179215 t CO2/MWh" + "value": 1.4509353780179215, + "units": "t CO2/Fe_ton" }, { "year": 2046, - "value": "1.418089233688979 t CO2/MWh" + "value": 1.418089233688979, + "units": "t CO2/Fe_ton" }, { "year": 2047, - "value": "1.3862202824921672 t CO2/MWh" + "value": 1.3862202824921672, + "units": "t CO2/Fe_ton" }, { "year": 2048, - "value": "1.3553015470583867 t CO2/MWh" + "value": 1.3553015470583867, + "units": "t CO2/Fe_ton" }, { "year": 2049, - "value": "1.3253003200331763 t CO2/MWh" + "value": 1.3253003200331763, + "units": "t CO2/Fe_ton" }, { "year": 2050, - "value": "1.2961814763575168 t CO2/MWh" + "value": 1.2961814763575168, + "units": "t CO2/Fe_ton" } ] }, @@ -7262,9 +8807,17 @@ "S1S2S3": null }, "country": "Russia", - "ghg_s1s2": "15520004.6310296 MWh", - "ghg_s3": "15520004.6310296 MWh", - "industry_level_1": null, + "ghg_s1s2": { + "year": 2019, + "value": 15520004.6310296, + "units": "Fe_ton" + }, + "ghg_s3": { + "year": 2019, + "value": 15520004.6310296, + "units": "Fe_ton" + }, + "industry_level_1": null, "industry_level_2": null, "industry_level_3": null, "industry_level_4": null, @@ -7279,6 +8832,7 @@ "company_id": "CN0000000009", "region": "Asia", "sector": "Steel", + "production_metric": { "units": "Fe_ton"}, "target_probability": 0.4285714285714285, "projected_ei_targets": { "S1S2": { @@ -7570,6 +9124,7 @@ "company_id": "BR0000000010", "region": "Asia", "sector": "Steel", + "production_metric": { "units": "Fe_ton"}, "target_probability": 0.4285714285714285, "projected_ei_targets": { "S1S2": { @@ -7844,9 +9399,17 @@ "S1S2S3": null }, "country": "Russia", - "ghg_s1s2": "11847001.9224849 MWh", - "ghg_s3": "11847001.9224849 MWh", - "industry_level_1": null, + "ghg_s1s2": { + "year": 2019, + "value": 11847001.9224849, + "units": "Fe_ton" + }, + "ghg_s3": { + "year": 2019, + "value": 11847001.9224849, + "units": "Fe_ton" + }, + "industry_level_1": null, "industry_level_2": null, "industry_level_3": null, "industry_level_4": null, @@ -7861,137 +9424,170 @@ "company_id": "BR0000000011", "region": "Europe", "sector": "Steel", + "production_metric": { "units": "Fe_ton"}, "target_probability": 0.4285714285714285, "projected_ei_targets": { "S1S2": { "projections": [ { "year": 2019, - "value": "0.7357367696279299 t CO2/MWh" + "value": 0.7357367696279299, + "units": "t CO2/Fe_ton" }, { "year": 2020, - "value": "0.7431078627684136 t CO2/MWh" + "value": 0.7431078627684136, + "units": "t CO2/Fe_ton" }, { "year": 2021, - "value": "0.7245301661992033 t CO2/MWh" + "value": 0.7245301661992033, + "units": "t CO2/Fe_ton" }, { "year": 2022, - "value": "0.7059524696299929 t CO2/MWh" + "value": 0.7059524696299929, + "units": "t CO2/Fe_ton" }, { "year": 2023, - "value": "0.6873747730607825 t CO2/MWh" + "value": 0.6873747730607825, + "units": "t CO2/Fe_ton" }, { "year": 2024, - "value": "0.6687970764915722 t CO2/MWh" + "value": 0.6687970764915722, + "units": "t CO2/Fe_ton" }, { "year": 2025, - "value": "0.6502193799223618 t CO2/MWh" + "value": 0.6502193799223618, + "units": "t CO2/Fe_ton" }, { "year": 2026, - "value": "0.6316416833531514 t CO2/MWh" + "value": 0.6316416833531514, + "units": "t CO2/Fe_ton" }, { "year": 2027, - "value": "0.613063986783941 t CO2/MWh" + "value": 0.613063986783941, + "units": "t CO2/Fe_ton" }, { "year": 2028, - "value": "0.5944862902147308 t CO2/MWh" + "value": 0.5944862902147308, + "units": "t CO2/Fe_ton" }, { "year": 2029, - "value": "0.5759085936455205 t CO2/MWh" + "value": 0.5759085936455205, + "units": "t CO2/Fe_ton" }, { "year": 2030, - "value": "0.55733089707631 t CO2/MWh" + "value": 0.55733089707631, + "units": "t CO2/Fe_ton" }, { "year": 2031, - "value": "0.5387532005070996 t CO2/MWh" + "value": 0.5387532005070996, + "units": "t CO2/Fe_ton" }, { "year": 2032, - "value": "0.5201755039378894 t CO2/MWh" + "value": 0.5201755039378894, + "units": "t CO2/Fe_ton" }, { "year": 2033, - "value": "0.5201755039378894 t CO2/MWh" + "value": 0.5201755039378894, + "units": "t CO2/Fe_ton" }, { "year": 2034, - "value": "0.5201755039378894 t CO2/MWh" + "value": 0.5201755039378894, + "units": "t CO2/Fe_ton" }, { "year": 2035, - "value": "0.5201755039378894 t CO2/MWh" + "value": 0.5201755039378894, + "units": "t CO2/Fe_ton" }, { "year": 2036, - "value": "0.5201755039378894 t CO2/MWh" + "value": 0.5201755039378894, + "units": "t CO2/Fe_ton" }, { "year": 2037, - "value": "0.5201755039378894 t CO2/MWh" + "value": 0.5201755039378894, + "units": "t CO2/Fe_ton" }, { "year": 2038, - "value": "0.5201755039378894 t CO2/MWh" + "value": 0.5201755039378894, + "units": "t CO2/Fe_ton" }, { "year": 2039, - "value": "0.5201755039378894 t CO2/MWh" + "value": 0.5201755039378894, + "units": "t CO2/Fe_ton" }, { "year": 2040, - "value": "0.5201755039378894 t CO2/MWh" + "value": 0.5201755039378894, + "units": "t CO2/Fe_ton" }, { "year": 2041, - "value": "0.5201755039378894 t CO2/MWh" + "value": 0.5201755039378894, + "units": "t CO2/Fe_ton" }, { "year": 2042, - "value": "0.5201755039378894 t CO2/MWh" + "value": 0.5201755039378894, + "units": "t CO2/Fe_ton" }, { "year": 2043, - "value": "0.5201755039378894 t CO2/MWh" + "value": 0.5201755039378894, + "units": "t CO2/Fe_ton" }, { "year": 2044, - "value": "0.5201755039378894 t CO2/MWh" + "value": 0.5201755039378894, + "units": "t CO2/Fe_ton" }, { "year": 2045, - "value": "0.5201755039378894 t CO2/MWh" + "value": 0.5201755039378894, + "units": "t CO2/Fe_ton" }, { "year": 2046, - "value": "0.5201755039378894 t CO2/MWh" + "value": 0.5201755039378894, + "units": "t CO2/Fe_ton" }, { "year": 2047, - "value": "0.5201755039378894 t CO2/MWh" + "value": 0.5201755039378894, + "units": "t CO2/Fe_ton" }, { "year": 2048, - "value": "0.5201755039378894 t CO2/MWh" + "value": 0.5201755039378894, + "units": "t CO2/Fe_ton" }, { "year": 2049, - "value": "0.5201755039378894 t CO2/MWh" + "value": 0.5201755039378894, + "units": "t CO2/Fe_ton" }, { "year": 2050, - "value": "0.5201755039378894 t CO2/MWh" + "value": 0.5201755039378894, + "units": "t CO2/Fe_ton" } ] }, @@ -8003,131 +9599,163 @@ "projections": [ { "year": 2019, - "value": "0.7357367696279299 t CO2/MWh" + "value": 0.7357367696279299, + "units": "t CO2/Fe_ton" }, { "year": 2020, - "value": "0.7431078627684136 t CO2/MWh" + "value": 0.7431078627684136, + "units": "t CO2/Fe_ton" }, { "year": 2021, - "value": "0.7501897627904324 t CO2/MWh" + "value": 0.7501897627904324, + "units": "t CO2/Fe_ton" }, { "year": 2022, - "value": "0.7575228048533635 t CO2/MWh" + "value": 0.7575228048533635, + "units": "t CO2/Fe_ton" }, { "year": 2023, - "value": "0.7642769108038575 t CO2/MWh" + "value": 0.7642769108038575, + "units": "t CO2/Fe_ton" }, { "year": 2024, - "value": "0.770079988325912 t CO2/MWh" + "value": 0.770079988325912, + "units": "t CO2/Fe_ton" }, { "year": 2025, - "value": "0.7744610023258718 t CO2/MWh" + "value": 0.7744610023258718, + "units": "t CO2/Fe_ton" }, { "year": 2026, - "value": "0.7769844247438745 t CO2/MWh" + "value": 0.7769844247438745, + "units": "t CO2/Fe_ton" }, { "year": 2027, - "value": "0.7774691964796803 t CO2/MWh" + "value": 0.7774691964796803, + "units": "t CO2/Fe_ton" }, { "year": 2028, - "value": "0.7760973492675399 t CO2/MWh" + "value": 0.7760973492675399, + "units": "t CO2/Fe_ton" }, { "year": 2029, - "value": "0.7732814664561758 t CO2/MWh" + "value": 0.7732814664561758, + "units": "t CO2/Fe_ton" }, { "year": 2030, - "value": "0.7694357369527733 t CO2/MWh" + "value": 0.7694357369527733, + "units": "t CO2/Fe_ton" }, { "year": 2031, - "value": "0.7648309413072225 t CO2/MWh" + "value": 0.7648309413072225, + "units": "t CO2/Fe_ton" }, { "year": 2032, - "value": "0.7595467522491223 t CO2/MWh" + "value": 0.7595467522491223, + "units": "t CO2/Fe_ton" }, { "year": 2033, - "value": "0.7534670767018642 t CO2/MWh" + "value": 0.7534670767018642, + "units": "t CO2/Fe_ton" }, { "year": 2034, - "value": "0.7463079172067101 t CO2/MWh" + "value": 0.7463079172067101, + "units": "t CO2/Fe_ton" }, { "year": 2035, - "value": "0.7377176945962935 t CO2/MWh" + "value": 0.7377176945962935, + "units": "t CO2/Fe_ton" }, { "year": 2036, - "value": "0.7274635720901763 t CO2/MWh" + "value": 0.7274635720901763, + "units": "t CO2/Fe_ton" }, { "year": 2037, - "value": "0.715596692156447 t CO2/MWh" + "value": 0.715596692156447, + "units": "t CO2/Fe_ton" }, { "year": 2038, - "value": "0.7024470715735162 t CO2/MWh" + "value": 0.7024470715735162, + "units": "t CO2/Fe_ton" }, { "year": 2039, - "value": "0.6884660207225256 t CO2/MWh" + "value": 0.6884660207225256, + "units": "t CO2/Fe_ton" }, { "year": 2040, - "value": "0.6740694806292995 t CO2/MWh" + "value": 0.6740694806292995, + "units": "t CO2/Fe_ton" }, { "year": 2041, - "value": "0.6595683491608161 t CO2/MWh" + "value": 0.6595683491608161, + "units": "t CO2/Fe_ton" }, { "year": 2042, - "value": "0.6451677015578025 t CO2/MWh" + "value": 0.6451677015578025, + "units": "t CO2/Fe_ton" }, { "year": 2043, - "value": "0.6309921128941456 t CO2/MWh" + "value": 0.6309921128941456, + "units": "t CO2/Fe_ton" }, { "year": 2044, - "value": "0.6171122176111137 t CO2/MWh" + "value": 0.6171122176111137, + "units": "t CO2/Fe_ton" }, { "year": 2045, - "value": "0.6035647360408168 t CO2/MWh" + "value": 0.6035647360408168, + "units": "t CO2/Fe_ton" }, { "year": 2046, - "value": "0.5903657697796953 t CO2/MWh" + "value": 0.5903657697796953, + "units": "t CO2/Fe_ton" }, { "year": 2047, - "value": "0.5775191356372302 t CO2/MWh" + "value": 0.5775191356372302, + "units": "t CO2/Fe_ton" }, { "year": 2048, - "value": "0.5650214577321281 t CO2/MWh" + "value": 0.5650214577321281, + "units": "t CO2/Fe_ton" }, { "year": 2049, - "value": "0.5528652485062721 t CO2/MWh" + "value": 0.5528652485062721, + "units": "t CO2/Fe_ton" }, { "year": 2050, - "value": "0.5410407687401423 t CO2/MWh" + "value": 0.5410407687401423, + "units": "t CO2/Fe_ton" } ] }, @@ -8135,9 +9763,17 @@ "S1S2S3": null }, "country": "Sweden", - "ghg_s1s2": "14618000.0778486 MWh", - "ghg_s3": "14618000.0778486 MWh", - "industry_level_1": null, + "ghg_s1s2": { + "year": 2019, + "value": 14618000.0778486, + "units": "Fe_ton" + }, + "ghg_s3": { + "year": 2019, + "value": 14618000.0778486, + "units": "Fe_ton" + }, + "industry_level_1": null, "industry_level_2": null, "industry_level_3": null, "industry_level_4": null, @@ -8152,137 +9788,170 @@ "company_id": "BR0000000012", "region": "Asia", "sector": "Steel", + "production_metric": { "units": "Fe_ton"}, "target_probability": 0.4285714285714285, "projected_ei_targets": { "S1S2": { "projections": [ { "year": 2019, - "value": "2.221710525394781 t CO2/MWh" + "value": 2.221710525394781, + "units": "t CO2/Fe_ton" }, { "year": 2020, - "value": "2.053406336107665 t CO2/MWh" + "value": 2.053406336107665, + "units": "t CO2/Fe_ton" }, { "year": 2021, - "value": "2.203778395984357 t CO2/MWh" + "value": 2.203778395984357, + "units": "t CO2/Fe_ton" }, { "year": 2022, - "value": "2.2024949174905872 t CO2/MWh" + "value": 2.2024949174905872, + "units": "t CO2/Fe_ton" }, { "year": 2023, - "value": "2.200429645011074 t CO2/MWh" + "value": 2.200429645011074, + "units": "t CO2/Fe_ton" }, { "year": 2024, - "value": "2.1971633082109605 t CO2/MWh" + "value": 2.1971633082109605, + "units": "t CO2/Fe_ton" }, { "year": 2025, - "value": "2.192175750447834 t CO2/MWh" + "value": 2.192175750447834, + "units": "t CO2/Fe_ton" }, { "year": 2026, - "value": "2.1850020256567952 t CO2/MWh" + "value": 2.1850020256567952, + "units": "t CO2/Fe_ton" }, { "year": 2027, - "value": "2.1754728952891043 t CO2/MWh" + "value": 2.1754728952891043, + "units": "t CO2/Fe_ton" }, { "year": 2028, - "value": "2.163817002526768 t CO2/MWh" + "value": 2.163817002526768, + "units": "t CO2/Fe_ton" }, { "year": 2029, - "value": "2.150489509542201 t CO2/MWh" + "value": 2.150489509542201, + "units": "t CO2/Fe_ton" }, { "year": 2030, - "value": "2.1358996422225753 t CO2/MWh" + "value": 2.1358996422225753, + "units": "t CO2/Fe_ton" }, { "year": 2031, - "value": "2.1202336706821407 t CO2/MWh" + "value": 2.1202336706821407, + "units": "t CO2/Fe_ton" }, { "year": 2032, - "value": "2.103380601639589 t CO2/MWh" + "value": 2.103380601639589, + "units": "t CO2/Fe_ton" }, { "year": 2033, - "value": "2.0849070654192112 t CO2/MWh" + "value": 2.0849070654192112, + "units": "t CO2/Fe_ton" }, { "year": 2034, - "value": "2.064101482026832 t CO2/MWh" + "value": 2.064101482026832, + "units": "t CO2/Fe_ton" }, { "year": 2035, - "value": "2.040179208416509 t CO2/MWh" + "value": 2.040179208416509, + "units": "t CO2/Fe_ton" }, { "year": 2036, - "value": "2.0126628784932996 t CO2/MWh" + "value": 2.0126628784932996, + "units": "t CO2/Fe_ton" }, { "year": 2037, - "value": "1.9817003593041698 t CO2/MWh" + "value": 1.9817003593041698, + "units": "t CO2/Fe_ton" }, { "year": 2038, - "value": "1.9480199529935047 t CO2/MWh" + "value": 1.9480199529935047, + "units": "t CO2/Fe_ton" }, { "year": 2039, - "value": "1.9125840124454299 t CO2/MWh" + "value": 1.9125840124454299, + "units": "t CO2/Fe_ton" }, { "year": 2040, - "value": "1.8762645826219602 t CO2/MWh" + "value": 1.8762645826219602, + "units": "t CO2/Fe_ton" }, { "year": 2041, - "value": "1.8397073526053476 t CO2/MWh" + "value": 1.8397073526053476, + "units": "t CO2/Fe_ton" }, { "year": 2042, - "value": "1.8033367816493635 t CO2/MWh" + "value": 1.8033367816493635, + "units": "t CO2/Fe_ton" }, { "year": 2043, - "value": "1.7674117401514629 t CO2/MWh" + "value": 1.7674117401514629, + "units": "t CO2/Fe_ton" }, { "year": 2044, - "value": "1.7320813586942272 t CO2/MWh" + "value": 1.7320813586942272, + "units": "t CO2/Fe_ton" }, { "year": 2045, - "value": "1.6974263000853436 t CO2/MWh" + "value": 1.6974263000853436, + "units": "t CO2/Fe_ton" }, { "year": 2046, - "value": "1.6634857796054385 t CO2/MWh" + "value": 1.6634857796054385, + "units": "t CO2/Fe_ton" }, { "year": 2047, - "value": "1.6302743103925983 t CO2/MWh" + "value": 1.6302743103925983, + "units": "t CO2/Fe_ton" }, { "year": 2048, - "value": "1.5977918349149562 t CO2/MWh" + "value": 1.5977918349149562, + "units": "t CO2/Fe_ton" }, { "year": 2049, - "value": "1.566029804055538 t CO2/MWh" + "value": 1.566029804055538, + "units": "t CO2/Fe_ton" }, { "year": 2050, - "value": "1.534974823445468 t CO2/MWh" + "value": 1.534974823445468, + "units": "t CO2/Fe_ton" } ] }, @@ -8294,131 +9963,163 @@ "projections": [ { "year": 2019, - "value": "2.221710525394781 t CO2/MWh" + "value": 2.221710525394781, + "units": "t CO2/Fe_ton" }, { "year": 2020, - "value": "2.053406336107665 t CO2/MWh" + "value": 2.053406336107665, + "units": "t CO2/Fe_ton" }, { "year": 2021, - "value": "2.203778395984357 t CO2/MWh" + "value": 2.203778395984357, + "units": "t CO2/Fe_ton" }, { "year": 2022, - "value": "2.2024949174905872 t CO2/MWh" + "value": 2.2024949174905872, + "units": "t CO2/Fe_ton" }, { "year": 2023, - "value": "2.200429645011074 t CO2/MWh" + "value": 2.200429645011074, + "units": "t CO2/Fe_ton" }, { "year": 2024, - "value": "2.1971633082109605 t CO2/MWh" + "value": 2.1971633082109605, + "units": "t CO2/Fe_ton" }, { "year": 2025, - "value": "2.192175750447834 t CO2/MWh" + "value": 2.192175750447834, + "units": "t CO2/Fe_ton" }, { "year": 2026, - "value": "2.1850020256567952 t CO2/MWh" + "value": 2.1850020256567952, + "units": "t CO2/Fe_ton" }, { "year": 2027, - "value": "2.1754728952891043 t CO2/MWh" + "value": 2.1754728952891043, + "units": "t CO2/Fe_ton" }, { "year": 2028, - "value": "2.163817002526768 t CO2/MWh" + "value": 2.163817002526768, + "units": "t CO2/Fe_ton" }, { "year": 2029, - "value": "2.150489509542201 t CO2/MWh" + "value": 2.150489509542201, + "units": "t CO2/Fe_ton" }, { "year": 2030, - "value": "2.1358996422225753 t CO2/MWh" + "value": 2.1358996422225753, + "units": "t CO2/Fe_ton" }, { "year": 2031, - "value": "2.1202336706821407 t CO2/MWh" + "value": 2.1202336706821407, + "units": "t CO2/Fe_ton" }, { "year": 2032, - "value": "2.103380601639589 t CO2/MWh" + "value": 2.103380601639589, + "units": "t CO2/Fe_ton" }, { "year": 2033, - "value": "2.0849070654192112 t CO2/MWh" + "value": 2.0849070654192112, + "units": "t CO2/Fe_ton" }, { "year": 2034, - "value": "2.064101482026832 t CO2/MWh" + "value": 2.064101482026832, + "units": "t CO2/Fe_ton" }, { "year": 2035, - "value": "2.040179208416509 t CO2/MWh" + "value": 2.040179208416509, + "units": "t CO2/Fe_ton" }, { "year": 2036, - "value": "2.0126628784932996 t CO2/MWh" + "value": 2.0126628784932996, + "units": "t CO2/Fe_ton" }, { "year": 2037, - "value": "1.9817003593041698 t CO2/MWh" + "value": 1.9817003593041698, + "units": "t CO2/Fe_ton" }, { "year": 2038, - "value": "1.9480199529935047 t CO2/MWh" + "value": 1.9480199529935047, + "units": "t CO2/Fe_ton" }, { "year": 2039, - "value": "1.9125840124454299 t CO2/MWh" + "value": 1.9125840124454299, + "units": "t CO2/Fe_ton" }, { "year": 2040, - "value": "1.8762645826219602 t CO2/MWh" + "value": 1.8762645826219602, + "units": "t CO2/Fe_ton" }, { "year": 2041, - "value": "1.8397073526053476 t CO2/MWh" + "value": 1.8397073526053476, + "units": "t CO2/Fe_ton" }, { "year": 2042, - "value": "1.8033367816493635 t CO2/MWh" + "value": 1.8033367816493635, + "units": "t CO2/Fe_ton" }, { "year": 2043, - "value": "1.7674117401514629 t CO2/MWh" + "value": 1.7674117401514629, + "units": "t CO2/Fe_ton" }, { "year": 2044, - "value": "1.7320813586942272 t CO2/MWh" + "value": 1.7320813586942272, + "units": "t CO2/Fe_ton" }, { "year": 2045, - "value": "1.6974263000853436 t CO2/MWh" + "value": 1.6974263000853436, + "units": "t CO2/Fe_ton" }, { "year": 2046, - "value": "1.6634857796054385 t CO2/MWh" + "value": 1.6634857796054385, + "units": "t CO2/Fe_ton" }, { "year": 2047, - "value": "1.6302743103925983 t CO2/MWh" + "value": 1.6302743103925983, + "units": "t CO2/Fe_ton" }, { "year": 2048, - "value": "1.5977918349149562 t CO2/MWh" + "value": 1.5977918349149562, + "units": "t CO2/Fe_ton" }, { "year": 2049, - "value": "1.566029804055538 t CO2/MWh" + "value": 1.566029804055538, + "units": "t CO2/Fe_ton" }, { "year": 2050, - "value": "1.534974823445468 t CO2/MWh" + "value": 1.534974823445468, + "units": "t CO2/Fe_ton" } ] }, @@ -8426,9 +10127,17 @@ "S1S2S3": null }, "country": "India", - "ghg_s1s2": "27110004.3464472 MWh", - "ghg_s3": "27110004.3464472 MWh", - "industry_level_1": null, + "ghg_s1s2": { + "year": 2019, + "value": 27110004.3464472, + "units": "Fe_ton" + }, + "ghg_s3": { + "year": 2019, + "value": 27110004.3464472, + "units": "Fe_ton" + }, + "industry_level_1": null, "industry_level_2": null, "industry_level_3": null, "industry_level_4": null, @@ -8443,6 +10152,7 @@ "company_id": "AR0000000013", "region": "Europe", "sector": "Steel", + "production_metric": { "units": "Fe_ton"}, "target_probability": 0.4285714285714285, "projected_ei_targets": { "S1S2": { diff --git a/test/test_base_providers.py b/test/test_base_providers.py index 2ec23e7c..6959fe21 100644 --- a/test/test_base_providers.py +++ b/test/test_base_providers.py @@ -51,11 +51,13 @@ def setUp(self) -> None: "US00724F1012", "FR0000125338"] self.company_info_at_base_year = pd.DataFrame( - [[Q_(1.6982474347547, 't CO2/MWh'), Q_(1.04827859e+08, 'MWh'), 'Electricity Utilities', 'North America'], - [Q_(0.476586931582279, 't CO2/MWh'), Q_(5.98937002e+08, 'MWh'), 'Electricity Utilities', 'North America'], - [Q_(0.22457393169277, 't CO2/MWh'), Q_(1.22472003e+08, 'MWh'), 'Electricity Utilities', 'Europe']], + [[Q_(1.6982474347547, 't CO2/MWh'), Q_(1.04827859e+08, 'MWh'), 'MWh', 'Electricity Utilities', 'North America'], + [Q_(0.476586931582279, 't CO2/MWh'), Q_(5.98937002e+08, 'MWh'), 'MWh', 'Electricity Utilities', 'North America'], + [Q_(0.22457393169277, 't CO2/MWh'), Q_(1.22472003e+08, 'MWh'), 'MWh', 'Electricity Utilities', 'Europe']], index=self.company_ids, - columns=[ColumnsConfig.BASE_EI, ColumnsConfig.GHG_SCOPE12, ColumnsConfig.SECTOR, ColumnsConfig.REGION]) + columns=[ColumnsConfig.BASE_EI, ColumnsConfig.GHG_SCOPE12, ColumnsConfig.PRODUCTION_METRIC, ColumnsConfig.SECTOR, ColumnsConfig.REGION]) + self.company_info_at_base_year[ColumnsConfig.BASE_EI] = self.company_info_at_base_year[ColumnsConfig.BASE_EI].astype('pint[t CO2/MWh]') + self.company_info_at_base_year[ColumnsConfig.GHG_SCOPE12] = self.company_info_at_base_year[ColumnsConfig.GHG_SCOPE12].astype('pint[MWh]') def test_temp_score_from_json_data(self): # Calculate Temp Scores @@ -149,8 +151,9 @@ def test_get_company_data(self): self.assertEqual(company_2.company_name, "Company AH") self.assertEqual(company_1.company_id, "US0079031078") self.assertEqual(company_2.company_id, "US00724F1012") - self.assertAlmostEqual(company_1.ghg_s1s2, Q_(104827858.636039, 'MWh')) # These are apparently production numbers, not emissions numbers - self.assertAlmostEqual(company_2.ghg_s1s2, Q_(598937001.892059, 'MWh')) # These are apparently production numbers, not emissions numbers + # print(f"\nghg_s1s2 = {company_1.ghg_s1s2}\n\n") + self.assertAlmostEqual(Q_(company_1.ghg_s1s2.value,company_1.ghg_s1s2.units), Q_(104827858.636039, 'MWh')) # These are apparently production numbers, not emissions numbers + self.assertAlmostEqual(Q_(company_2.ghg_s1s2.value,company_2.ghg_s1s2.units), Q_(598937001.892059, 'MWh')) # These are apparently production numbers, not emissions numbers self.assertAlmostEqual(company_1.cumulative_budget, Q_(1362284467.0830, 't CO2'), places=4) self.assertAlmostEqual(company_2.cumulative_budget, Q_(2262242040.68059, 't CO2'), places=4) self.assertAlmostEqual(company_1.cumulative_target, Q_(3769096510.09909, 't CO2'), places=4) From b1b2d2e64347965d3aaf81ad494f26eb527ff843 Mon Sep 17 00:00:00 2001 From: MichaelTiemannOSC Date: Sun, 2 Jan 2022 22:32:37 +0000 Subject: [PATCH 055/345] Remove errant print statement Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- ITR/data/base_providers.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ITR/data/base_providers.py b/ITR/data/base_providers.py index d462ae32..d0f5060a 100644 --- a/ITR/data/base_providers.py +++ b/ITR/data/base_providers.py @@ -253,7 +253,7 @@ def get_SDA_intensity_benchmarks(self, company_info_at_base_year: pd.DataFrame) decarbonization_paths = self._get_decarbonizations_paths(intensity_benchmarks) last_ei = intensity_benchmarks[self.temp_config.CONTROLS_CONFIG.target_end_year] ei_base = company_info_at_base_year[self.column_config.BASE_EI] - print(f"\nei_base.dtype = {ei_base.dtype}\n\n") + # print(f"\nei_base.dtype = {ei_base.dtype}\n\n") df = decarbonization_paths.mul((ei_base - last_ei), axis=0) df = df.add(last_ei, axis=0).astype(ei_base.dtype) return df From 7050c71e11dfb5f075cedbbd4c06f5171fdf91e8 Mon Sep 17 00:00:00 2001 From: MichaelTiemannOSC Date: Mon, 3 Jan 2022 01:58:51 +0000 Subject: [PATCH 056/345] WIP reconciliation Simple reconciliation of some json input files and test harness files. One more big fix needed. Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- .../json/benchmark_EI_TPI_2_degrees.json | 194 ++++++++++++------ .../benchmark_EI_TPI_below_2_degrees.json | 194 ++++++++++++------ test/test_excel_provider.py | 8 +- 3 files changed, 264 insertions(+), 132 deletions(-) diff --git a/test/inputs/json/benchmark_EI_TPI_2_degrees.json b/test/inputs/json/benchmark_EI_TPI_2_degrees.json index dbd92528..e4d2ba38 100644 --- a/test/inputs/json/benchmark_EI_TPI_2_degrees.json +++ b/test/inputs/json/benchmark_EI_TPI_2_degrees.json @@ -7,268 +7,334 @@ { "sector": "Electricity Utilities", "region": "Global", + "benchmark_metric": { "units": "t CO2/MWh" }, "projections": [ { "year": 2019, - "value": "0.6075603731304943 t CO2/MWh" + "value": 0.6075603731304943, + "units": "t CO2/MWh" }, { "year": 2020, - "value": "0.457 t CO2/MWh" + "value": 0.457, + "units": "t CO2/MWh" }, { "year": 2021, - "value": "0.4376 t CO2/MWh" + "value": 0.4376, + "units": "t CO2/MWh" }, { "year": 2022, - "value": "0.41819999999999996 t CO2/MWh" + "value": 0.41819999999999996, + "units": "t CO2/MWh" }, { "year": 2023, - "value": "0.39879999999999993 t CO2/MWh" + "value": 0.39879999999999993, + "units": "t CO2/MWh" }, { "year": 2024, - "value": "0.3793999999999999 t CO2/MWh" + "value": 0.3793999999999999, + "units": "t CO2/MWh" }, { "year": 2025, - "value": "0.36 t CO2/MWh" + "value": 0.36, + "units": "t CO2/MWh" }, { "year": 2026, - "value": "0.33699999999999997 t CO2/MWh" + "value": 0.33699999999999997, + "units": "t CO2/MWh" }, { "year": 2027, - "value": "0.31399999999999995 t CO2/MWh" + "value": 0.31399999999999995, + "units": "t CO2/MWh" }, { "year": 2028, - "value": "0.2909999999999999 t CO2/MWh" + "value": 0.2909999999999999, + "units": "t CO2/MWh" }, { "year": 2029, - "value": "0.2679999999999999 t CO2/MWh" + "value": 0.2679999999999999, + "units": "t CO2/MWh" }, { "year": 2030, - "value": "0.245 t CO2/MWh" + "value": 0.245, + "units": "t CO2/MWh" }, { "year": 2031, - "value": "0.22619999999999998 t CO2/MWh" + "value": 0.22619999999999998, + "units": "t CO2/MWh" }, { "year": 2032, - "value": "0.20739999999999997 t CO2/MWh" + "value": 0.20739999999999997, + "units": "t CO2/MWh" }, { "year": 2033, - "value": "0.18859999999999996 t CO2/MWh" + "value": 0.18859999999999996, + "units": "t CO2/MWh" }, { "year": 2034, - "value": "0.16979999999999995 t CO2/MWh" + "value": 0.16979999999999995, + "units": "t CO2/MWh" }, { "year": 2035, - "value": "0.151 t CO2/MWh" + "value": 0.151, + "units": "t CO2/MWh" }, { "year": 2036, - "value": "0.1402 t CO2/MWh" + "value": 0.1402, + "units": "t CO2/MWh" }, { "year": 2037, - "value": "0.1294 t CO2/MWh" + "value": 0.1294, + "units": "t CO2/MWh" }, { "year": 2038, - "value": "0.11859999999999998 t CO2/MWh" + "value": 0.11859999999999998, + "units": "t CO2/MWh" }, { "year": 2039, - "value": "0.10779999999999998 t CO2/MWh" + "value": 0.10779999999999998, + "units": "t CO2/MWh" }, { "year": 2040, - "value": "0.097 t CO2/MWh" + "value": 0.097, + "units": "t CO2/MWh" }, { "year": 2041, - "value": "0.0888 t CO2/MWh" + "value": 0.0888, + "units": "t CO2/MWh" }, { "year": 2042, - "value": "0.0806 t CO2/MWh" + "value": 0.0806, + "units": "t CO2/MWh" }, { "year": 2043, - "value": "0.0724 t CO2/MWh" + "value": 0.0724, + "units": "t CO2/MWh" }, { "year": 2044, - "value": "0.06420000000000001 t CO2/MWh" + "value": 0.06420000000000001, + "units": "t CO2/MWh" }, { "year": 2045, - "value": "0.056 t CO2/MWh" + "value": 0.056, + "units": "t CO2/MWh" }, { "year": 2046, - "value": "0.0528 t CO2/MWh" + "value": 0.0528, + "units": "t CO2/MWh" }, { "year": 2047, - "value": "0.0496 t CO2/MWh" + "value": 0.0496, + "units": "t CO2/MWh" }, { "year": 2048, - "value": "0.0464 t CO2/MWh" + "value": 0.0464, + "units": "t CO2/MWh" }, { "year": 2049, - "value": "0.043199999999999995 t CO2/MWh" + "value": 0.043199999999999995, + "units": "t CO2/MWh" }, { "year": 2050, - "value": "0.04 t CO2/MWh" + "value": 0.04, + "units": "t CO2/MWh" } ] }, { "sector": "Steel", "region": "Global", + "benchmark_metric": { "units": "t CO2/Fe_ton" }, "projections": [ { "year": 2019, - "value": "1.669 t CO2/Fe_ton" + "value": 1.669, + "units": "t CO2/Fe_ton" }, { "year": 2020, - "value": "1.498 t CO2/Fe_ton" + "value": 1.498, + "units": "t CO2/Fe_ton" }, { "year": 2021, - "value": "1.4718 t CO2/Fe_ton" + "value": 1.4718, + "units": "t CO2/Fe_ton" }, { "year": 2022, - "value": "1.4456 t CO2/Fe_ton" + "value": 1.4456, + "units": "t CO2/Fe_ton" }, { "year": 2023, - "value": "1.4194 t CO2/Fe_ton" + "value": 1.4194, + "units": "t CO2/Fe_ton" }, { "year": 2024, - "value": "1.3932 t CO2/Fe_ton" + "value": 1.3932, + "units": "t CO2/Fe_ton" }, { "year": 2025, - "value": "1.367 t CO2/Fe_ton" + "value": 1.367, + "units": "t CO2/Fe_ton" }, { "year": 2026, - "value": "1.3195999999999999 t CO2/Fe_ton" + "value": 1.3195999999999999, + "units": "t CO2/Fe_ton" }, { "year": 2027, - "value": "1.2721999999999998 t CO2/Fe_ton" + "value": 1.2721999999999998, + "units": "t CO2/Fe_ton" }, { "year": 2028, - "value": "1.2247999999999997 t CO2/Fe_ton" + "value": 1.2247999999999997, + "units": "t CO2/Fe_ton" }, { "year": 2029, - "value": "1.1773999999999996 t CO2/Fe_ton" + "value": 1.1773999999999996, + "units": "t CO2/Fe_ton" }, { "year": 2030, - "value": "1.13 t CO2/Fe_ton" + "value": 1.13, + "units": "t CO2/Fe_ton" }, { "year": 2031, - "value": "1.0948 t CO2/Fe_ton" + "value": 1.0948, + "units": "t CO2/Fe_ton" }, { "year": 2032, - "value": "1.0596 t CO2/Fe_ton" + "value": 1.0596, + "units": "t CO2/Fe_ton" }, { "year": 2033, - "value": "1.0244000000000002 t CO2/Fe_ton" + "value": 1.0244000000000002, + "units": "t CO2/Fe_ton" }, { "year": 2034, - "value": "0.9892000000000002 t CO2/Fe_ton" + "value": 0.9892000000000002, + "units": "t CO2/Fe_ton" }, { "year": 2035, - "value": "0.954 t CO2/Fe_ton" + "value": 0.954, + "units": "t CO2/Fe_ton" }, { "year": 2036, - "value": "0.9258 t CO2/Fe_ton" + "value": 0.9258, + "units": "t CO2/Fe_ton" }, { "year": 2037, - "value": "0.8976 t CO2/Fe_ton" + "value": 0.8976, + "units": "t CO2/Fe_ton" }, { "year": 2038, - "value": "0.8694 t CO2/Fe_ton" + "value": 0.8694, + "units": "t CO2/Fe_ton" }, { "year": 2039, - "value": "0.8412 t CO2/Fe_ton" + "value": 0.8412, + "units": "t CO2/Fe_ton" }, { "year": 2040, - "value": "0.813 t CO2/Fe_ton" + "value": 0.813, + "units": "t CO2/Fe_ton" }, { "year": 2041, - "value": "0.7857999999999999 t CO2/Fe_ton" + "value": 0.7857999999999999, + "units": "t CO2/Fe_ton" }, { "year": 2042, - "value": "0.7585999999999999 t CO2/Fe_ton" + "value": 0.7585999999999999, + "units": "t CO2/Fe_ton" }, { "year": 2043, - "value": "0.7313999999999999 t CO2/Fe_ton" + "value": 0.7313999999999999, + "units": "t CO2/Fe_ton" }, { "year": 2044, - "value": "0.7041999999999999 t CO2/Fe_ton" + "value": 0.7041999999999999, + "units": "t CO2/Fe_ton" }, { "year": 2045, - "value": "0.677 t CO2/Fe_ton" + "value": 0.677, + "units": "t CO2/Fe_ton" }, { "year": 2046, - "value": "0.6658000000000001 t CO2/Fe_ton" + "value": 0.6658000000000001, + "units": "t CO2/Fe_ton" }, { "year": 2047, - "value": "0.6546000000000001 t CO2/Fe_ton" + "value": 0.6546000000000001, + "units": "t CO2/Fe_ton" }, { "year": 2048, - "value": "0.6434000000000001 t CO2/Fe_ton" + "value": 0.6434000000000001, + "units": "t CO2/Fe_ton" }, { "year": 2049, - "value": "0.6322000000000001 t CO2/Fe_ton" + "value": 0.6322000000000001, + "units": "t CO2/Fe_ton" }, { "year": 2050, - "value": "0.621 t CO2/Fe_ton" + "value": 0.621, + "units": "t CO2/Fe_ton" } ] } diff --git a/test/inputs/json/benchmark_EI_TPI_below_2_degrees.json b/test/inputs/json/benchmark_EI_TPI_below_2_degrees.json index 745d8a06..1c6e6047 100644 --- a/test/inputs/json/benchmark_EI_TPI_below_2_degrees.json +++ b/test/inputs/json/benchmark_EI_TPI_below_2_degrees.json @@ -7,268 +7,334 @@ { "sector": "Electricity Utilities", "region": "Global", + "benchmark_metric": { "units": "t CO2/MWh" }, "projections": [ { "year": 2019, - "value": "0.6075603731304943 t CO2/MWh" + "value": 0.6075603731304943, + "units": "t CO2/MWh" }, { "year": 2020, - "value": "0.44 t CO2/MWh" + "value": 0.44, + "units": "t CO2/MWh" }, { "year": 2021, - "value": "0.418 t CO2/MWh" + "value": 0.418, + "units": "t CO2/MWh" }, { "year": 2022, - "value": "0.39599999999999996 t CO2/MWh" + "value": 0.39599999999999996, + "units": "t CO2/MWh" }, { "year": 2023, - "value": "0.37399999999999994 t CO2/MWh" + "value": 0.37399999999999994, + "units": "t CO2/MWh" }, { "year": 2024, - "value": "0.3519999999999999 t CO2/MWh" + "value": 0.3519999999999999, + "units": "t CO2/MWh" }, { "year": 2025, - "value": "0.33 t CO2/MWh" + "value": 0.33, + "units": "t CO2/MWh" }, { "year": 2026, - "value": "0.3098 t CO2/MWh" + "value": 0.3098, + "units": "t CO2/MWh" }, { "year": 2027, - "value": "0.2896 t CO2/MWh" + "value": 0.2896, + "units": "t CO2/MWh" }, { "year": 2028, - "value": "0.26940000000000003 t CO2/MWh" + "value": 0.26940000000000003, + "units": "t CO2/MWh" }, { "year": 2029, - "value": "0.24920000000000003 t CO2/MWh" + "value": 0.24920000000000003, + "units": "t CO2/MWh" }, { "year": 2030, - "value": "0.229 t CO2/MWh" + "value": 0.229, + "units": "t CO2/MWh" }, { "year": 2031, - "value": "0.2114 t CO2/MWh" + "value": 0.2114, + "units": "t CO2/MWh" }, { "year": 2032, - "value": "0.1938 t CO2/MWh" + "value": 0.1938, + "units": "t CO2/MWh" }, { "year": 2033, - "value": "0.1762 t CO2/MWh" + "value": 0.1762, + "units": "t CO2/MWh" }, { "year": 2034, - "value": "0.1586 t CO2/MWh" + "value": 0.1586, + "units": "t CO2/MWh" }, { "year": 2035, - "value": "0.141 t CO2/MWh" + "value": 0.141, + "units": "t CO2/MWh" }, { "year": 2036, - "value": "0.12719999999999998 t CO2/MWh" + "value": 0.12719999999999998, + "units": "t CO2/MWh" }, { "year": 2037, - "value": "0.11339999999999999 t CO2/MWh" + "value": 0.11339999999999999, + "units": "t CO2/MWh" }, { "year": 2038, - "value": "0.0996 t CO2/MWh" + "value": 0.0996, + "units": "t CO2/MWh" }, { "year": 2039, - "value": "0.0858 t CO2/MWh" + "value": 0.0858, + "units": "t CO2/MWh" }, { "year": 2040, - "value": "0.072 t CO2/MWh" + "value": 0.072, + "units": "t CO2/MWh" }, { "year": 2041, - "value": "0.061599999999999995 t CO2/MWh" + "value": 0.061599999999999995, + "units": "t CO2/MWh" }, { "year": 2042, - "value": "0.051199999999999996 t CO2/MWh" + "value": 0.051199999999999996, + "units": "t CO2/MWh" }, { "year": 2043, - "value": "0.040799999999999996 t CO2/MWh" + "value": 0.040799999999999996, + "units": "t CO2/MWh" }, { "year": 2044, - "value": "0.030399999999999996 t CO2/MWh" + "value": 0.030399999999999996, + "units": "t CO2/MWh" }, { "year": 2045, - "value": "0.02 t CO2/MWh" + "value": 0.02, + "units": "t CO2/MWh" }, { "year": 2046, - "value": "0.0144 t CO2/MWh" + "value": 0.0144, + "units": "t CO2/MWh" }, { "year": 2047, - "value": "0.008799999999999999 t CO2/MWh" + "value": 0.008799999999999999, + "units": "t CO2/MWh" }, { "year": 2048, - "value": "0.003199999999999999 t CO2/MWh" + "value": 0.003199999999999999, + "units": "t CO2/MWh" }, { "year": 2049, - "value": "-0.002400000000000001 t CO2/MWh" + "value": -0.002400000000000001, + "units": "t CO2/MWh" }, { "year": 2050, - "value": "-0.008 t CO2/MWh" + "value": -0.008, + "units": "t CO2/MWh" } ] }, { "sector": "Steel", "region": "Global", + "benchmark_metric": { "units": "t CO2/Fe_ton" }, "projections": [ { "year": 2019, - "value": "1.669 t CO2/Fe_ton" + "value": 1.669, + "units": "t CO2/Fe_ton" }, { "year": 2020, - "value": "1.325 t CO2/Fe_ton" + "value": 1.325, + "units": "t CO2/Fe_ton" }, { "year": 2021, - "value": "1.2691999999999999 t CO2/Fe_ton" + "value": 1.2691999999999999, + "units": "t CO2/Fe_ton" }, { "year": 2022, - "value": "1.2133999999999998 t CO2/Fe_ton" + "value": 1.2133999999999998, + "units": "t CO2/Fe_ton" }, { "year": 2023, - "value": "1.1575999999999997 t CO2/Fe_ton" + "value": 1.1575999999999997, + "units": "t CO2/Fe_ton" }, { "year": 2024, - "value": "1.1017999999999997 t CO2/Fe_ton" + "value": 1.1017999999999997, + "units": "t CO2/Fe_ton" }, { "year": 2025, - "value": "1.046 t CO2/Fe_ton" + "value": 1.046, + "units": "t CO2/Fe_ton" }, { "year": 2026, - "value": "0.9998 t CO2/Fe_ton" + "value": 0.9998, + "units": "t CO2/Fe_ton" }, { "year": 2027, - "value": "0.9536 t CO2/Fe_ton" + "value": 0.9536, + "units": "t CO2/Fe_ton" }, { "year": 2028, - "value": "0.9074 t CO2/Fe_ton" + "value": 0.9074, + "units": "t CO2/Fe_ton" }, { "year": 2029, - "value": "0.8612 t CO2/Fe_ton" + "value": 0.8612, + "units": "t CO2/Fe_ton" }, { "year": 2030, - "value": "0.815 t CO2/Fe_ton" + "value": 0.815, + "units": "t CO2/Fe_ton" }, { "year": 2031, - "value": "0.7714 t CO2/Fe_ton" + "value": 0.7714, + "units": "t CO2/Fe_ton" }, { "year": 2032, - "value": "0.7278 t CO2/Fe_ton" + "value": 0.7278, + "units": "t CO2/Fe_ton" }, { "year": 2033, - "value": "0.6842 t CO2/Fe_ton" + "value": 0.6842, + "units": "t CO2/Fe_ton" }, { "year": 2034, - "value": "0.6406000000000001 t CO2/Fe_ton" + "value": 0.6406000000000001, + "units": "t CO2/Fe_ton" }, { "year": 2035, - "value": "0.597 t CO2/Fe_ton" + "value": 0.597, + "units": "t CO2/Fe_ton" }, { "year": 2036, - "value": "0.573 t CO2/Fe_ton" + "value": 0.573, + "units": "t CO2/Fe_ton" }, { "year": 2037, - "value": "0.5489999999999999 t CO2/Fe_ton" + "value": 0.5489999999999999, + "units": "t CO2/Fe_ton" }, { "year": 2038, - "value": "0.5249999999999999 t CO2/Fe_ton" + "value": 0.5249999999999999, + "units": "t CO2/Fe_ton" }, { "year": 2039, - "value": "0.5009999999999999 t CO2/Fe_ton" + "value": 0.5009999999999999, + "units": "t CO2/Fe_ton" }, { "year": 2040, - "value": "0.477 t CO2/Fe_ton" + "value": 0.477, + "units": "t CO2/Fe_ton" }, { "year": 2041, - "value": "0.4566 t CO2/Fe_ton" + "value": 0.4566, + "units": "t CO2/Fe_ton" }, { "year": 2042, - "value": "0.43620000000000003 t CO2/Fe_ton" + "value": 0.43620000000000003, + "units": "t CO2/Fe_ton" }, { "year": 2043, - "value": "0.41580000000000006 t CO2/Fe_ton" + "value": 0.41580000000000006, + "units": "t CO2/Fe_ton" }, { "year": 2044, - "value": "0.3954000000000001 t CO2/Fe_ton" + "value": 0.3954000000000001, + "units": "t CO2/Fe_ton" }, { "year": 2045, - "value": "0.375 t CO2/Fe_ton" + "value": 0.375, + "units": "t CO2/Fe_ton" }, { "year": 2046, - "value": "0.3526 t CO2/Fe_ton" + "value": 0.3526, + "units": "t CO2/Fe_ton" }, { "year": 2047, - "value": "0.33020000000000005 t CO2/Fe_ton" + "value": 0.33020000000000005, + "units": "t CO2/Fe_ton" }, { "year": 2048, - "value": "0.3078000000000001 t CO2/Fe_ton" + "value": 0.3078000000000001, + "units": "t CO2/Fe_ton" }, { "year": 2049, - "value": "0.2854000000000001 t CO2/Fe_ton" + "value": 0.2854000000000001, + "units": "t CO2/Fe_ton" }, { "year": 2050, - "value": "0.263 t CO2/Fe_ton" + "value": 0.263, + "units": "t CO2/Fe_ton" } ] } diff --git a/test/test_excel_provider.py b/test/test_excel_provider.py index cff355a7..f35187b0 100644 --- a/test/test_excel_provider.py +++ b/test/test_excel_provider.py @@ -32,11 +32,11 @@ def setUp(self) -> None: "US00724F1012", "FR0000125338"] self.company_info_at_base_year = pd.DataFrame( - [[Q_(1.6982474347547, ureg('t CO2/MWh')), Q_(1.04827859e+08, ureg('MWh')), 'Electricity Utilities', 'North America'], - [Q_(0.476586931582279, ureg('t CO2/MWh')), Q_(5.98937002e+08, ureg('MWh')), 'Electricity Utilities', 'North America'], - [Q_(0.22457393169277, ureg('t CO2/MWh')), Q_(1.22472003e+08, ureg('MWh')), 'Electricity Utilities', 'Europe']], + [[Q_(1.6982474347547, ureg('t CO2/MWh')), Q_(1.04827859e+08, ureg('MWh')), 'MWh', 'Electricity Utilities', 'North America'], + [Q_(0.476586931582279, ureg('t CO2/MWh')), Q_(5.98937002e+08, ureg('MWh')), 'MWh', 'Electricity Utilities', 'North America'], + [Q_(0.22457393169277, ureg('t CO2/MWh')), Q_(1.22472003e+08, ureg('MWh')), 'MWh', 'Electricity Utilities', 'Europe']], index=self.company_ids, - columns=[ColumnsConfig.BASE_EI, ColumnsConfig.GHG_SCOPE12, ColumnsConfig.SECTOR, ColumnsConfig.REGION]) + columns=[ColumnsConfig.BASE_EI, ColumnsConfig.GHG_SCOPE12, ColumnsConfig.PRODUCTION_METRIC, ColumnsConfig.SECTOR, ColumnsConfig.REGION]) def test_temp_score_from_excel_data(self): comids = ['US0079031078', 'US00724F1012', 'FR0000125338', 'US17275R1023', 'CH0198251305', 'US1266501006', From 55f71c5c03101491169fad9852dab59d3a5e1061 Mon Sep 17 00:00:00 2001 From: MichaelTiemannOSC Date: Mon, 3 Jan 2022 02:26:23 +0000 Subject: [PATCH 057/345] Fix up ghg_s1s2 handling for excel reader This is really only for testing purposes anyway. Remaining task is dealing with OECM benchmark spreadsheets (json already works). Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- ITR/data/excel.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/ITR/data/excel.py b/ITR/data/excel.py index b099b419..c7468a56 100644 --- a/ITR/data/excel.py +++ b/ITR/data/excel.py @@ -199,6 +199,7 @@ def _company_df_to_model(self, df_fundamentals: pd.DataFrame, df_targets: pd.Dat companies_data_dict = df_fundamentals.to_dict(orient="records") model_companies: List[ICompanyData] = [] + sector_to_production_metric = { 'Electricity Utilities':'MWh', 'Steel':'Fe_ton' } for company_data in companies_data_dict: # company_data is a dict, not a dataframe try: @@ -213,13 +214,14 @@ def _company_df_to_model(self, df_fundamentals: pd.DataFrame, df_targets: pd.Dat # company_data.update({ColumnsConfig.PROJECTED_EI: {'S1S2': {'projections': df_ei}}}) company_id = company_data[self.column_config.COMPANY_ID] + company_data[self.column_config.PRODUCTION_METRIC] = sector_to_production_metric[company_data[self.column_config.SECTOR]] # pint automatically handles any unit conversions required ghg_s1s2 = df_fundamentals[df_fundamentals[self.column_config.COMPANY_ID]==company_id][self.column_config.GHG_SCOPE12].squeeze() if ghg_s1s2: - company_data[self.column_config.GHG_SCOPE12] = Q_(ghg_s1s2, ureg('MWh')) + company_data[self.column_config.GHG_SCOPE12] = Q_(ghg_s1s2, company_data[self.column_config.PRODUCTION_METRIC]) ghg_s3 = df_fundamentals[df_fundamentals[self.column_config.COMPANY_ID]==company_id][self.column_config.GHG_SCOPE3].squeeze() if ghg_s3: - company_data[self.column_config.GHG_SCOPE3] = Q_(ghg_s3, ureg('MWh')) + company_data[self.column_config.GHG_SCOPE3] = Q_(ghg_s3, company_data[self.column_config.PRODUCTION_METRIC]) company_data[self.column_config.PROJECTED_TARGETS] = {'S1S2': {'projections': self._convert_series_to_projections (df_targets.loc[company_id, :])}} company_data[self.column_config.PROJECTED_EI] = {'S1S2': {'projections': self._convert_series_to_projections (df_ei.loc[company_id, :])}} From 46857b6f84bb167fd8a5d7c39172b444c73bd017 Mon Sep 17 00:00:00 2001 From: MichaelTiemannOSC Date: Mon, 3 Jan 2022 08:40:01 +0000 Subject: [PATCH 058/345] Update with fresh run that starts from [1] Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- examples/unittest_vs_pint.ipynb | 36 ++++++++++++++++++--------------- 1 file changed, 20 insertions(+), 16 deletions(-) diff --git a/examples/unittest_vs_pint.ipynb b/examples/unittest_vs_pint.ipynb index 0f60315a..18420586 100644 --- a/examples/unittest_vs_pint.ipynb +++ b/examples/unittest_vs_pint.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "code", - "execution_count": 13, + "execution_count": 1, "id": "42085b49-fb8d-4d44-886b-316d5d6d8284", "metadata": {}, "outputs": [ @@ -19,17 +19,29 @@ ] }, { - "ename": "AssertionError", - "evalue": "Series Expected type , found instead", + "name": "stderr", + "output_type": "stream", + "text": [ + "/opt/app-root/lib64/python3.8/site-packages/pint_pandas/pint_array.py:648: UnitStrippedWarning: The unit of the quantity is stripped when downcasting to ndarray.\n", + " return np.array(qtys, dtype=\"object\", copy=copy)\n" + ] + }, + { + "ename": "TypeError", + "evalue": "object of type 'numpy.float64' has no len()", "output_type": "error", "traceback": [ "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[0;31mAssertionError\u001b[0m Traceback (most recent call last)", - "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m\u001b[0m\n\u001b[1;32m 41\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 42\u001b[0m \u001b[0mx\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mTestBaseProvider\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'test_pint_series_equality'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 43\u001b[0;31m \u001b[0mTestBaseProvider\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mtest_pint_series_equality\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mx\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", - "\u001b[0;32m\u001b[0m in \u001b[0;36mtest_pint_series_equality\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 35\u001b[0m projected_production=projected_production))\n\u001b[1;32m 36\u001b[0m \u001b[0mprint\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34mf\"expected_data = {expected_data}\"\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 37\u001b[0;31m pd.testing.assert_series_equal(\n\u001b[0m\u001b[1;32m 38\u001b[0m PA_._from_sequence(_get_cumulative_emission(projected_emission_intensity=projected_ei,\n\u001b[1;32m 39\u001b[0m projected_production=projected_production)),\n", + "\u001b[0;31mTypeError\u001b[0m Traceback (most recent call last)", + "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m\u001b[0m\n\u001b[1;32m 40\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 41\u001b[0m \u001b[0mx\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mTestBaseProvider\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'test_pint_series_equality'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 42\u001b[0;31m \u001b[0mTestBaseProvider\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mtest_pint_series_equality\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mx\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", + "\u001b[0;32m\u001b[0m in \u001b[0;36mtest_pint_series_equality\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 35\u001b[0m projected_production=projected_production))\n\u001b[1;32m 36\u001b[0m \u001b[0mprint\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34mf\"expected_data = {expected_data}\"\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 37\u001b[0;31m pd.testing.assert_series_equal(\n\u001b[0m\u001b[1;32m 38\u001b[0m _get_cumulative_emission(projected_emission_intensity=projected_ei,\n\u001b[1;32m 39\u001b[0m projected_production=projected_production), expected_data)\n", " \u001b[0;31m[... skipping hidden 1 frame]\u001b[0m\n", - "\u001b[0;32m/opt/app-root/lib64/python3.8/site-packages/pandas/_testing/asserters.py\u001b[0m in \u001b[0;36m_check_isinstance\u001b[0;34m(left, right, cls)\u001b[0m\n\u001b[1;32m 230\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 231\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0misinstance\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mleft\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcls\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 232\u001b[0;31m raise AssertionError(\n\u001b[0m\u001b[1;32m 233\u001b[0m \u001b[0;34mf\"{cls_name} Expected type {cls}, found {type(left)} instead\"\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 234\u001b[0m )\n", - "\u001b[0;31mAssertionError\u001b[0m: Series Expected type , found instead" + "\u001b[0;32m/opt/app-root/lib64/python3.8/site-packages/pandas/_testing/asserters.py\u001b[0m in \u001b[0;36massert_extension_array_equal\u001b[0;34m(left, right, check_dtype, index_values, check_less_precise, check_exact, rtol, atol)\u001b[0m\n\u001b[1;32m 839\u001b[0m )\n\u001b[1;32m 840\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 841\u001b[0;31m _testing.assert_almost_equal(\n\u001b[0m\u001b[1;32m 842\u001b[0m \u001b[0mleft_valid\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 843\u001b[0m \u001b[0mright_valid\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m/opt/app-root/lib64/python3.8/site-packages/pandas/_libs/testing.pyx\u001b[0m in \u001b[0;36mpandas._libs.testing.assert_almost_equal\u001b[0;34m()\u001b[0m\n", + "\u001b[0;32m/opt/app-root/lib64/python3.8/site-packages/pandas/_libs/testing.pyx\u001b[0m in \u001b[0;36mpandas._libs.testing.assert_almost_equal\u001b[0;34m()\u001b[0m\n", + "\u001b[0;32m/opt/app-root/lib64/python3.8/site-packages/pandas/_libs/testing.pyx\u001b[0m in \u001b[0;36mpandas._libs.testing.assert_almost_equal\u001b[0;34m()\u001b[0m\n", + "\u001b[0;32m/opt/app-root/lib64/python3.8/site-packages/pint/quantity.py\u001b[0m in \u001b[0;36m__len__\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 1862\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1863\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0m__len__\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;34m->\u001b[0m \u001b[0mint\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1864\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mlen\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_magnitude\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 1865\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1866\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0m__getattr__\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mitem\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;34m->\u001b[0m \u001b[0mAny\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;31mTypeError\u001b[0m: object of type 'numpy.float64' has no len()" ] } ], @@ -77,14 +89,6 @@ "x = TestBaseProvider('test_pint_series_equality')\n", "TestBaseProvider.test_pint_series_equality(x)" ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "9e730bfc-22ef-42c0-8d7f-3bfd14b30517", - "metadata": {}, - "outputs": [], - "source": [] } ], "metadata": { From f384cc46dfafc6a4802bc674cf03c8df83721606 Mon Sep 17 00:00:00 2001 From: MichaelTiemannOSC Date: Mon, 3 Jan 2022 08:41:11 +0000 Subject: [PATCH 059/345] Update with fresh run that starts from [1] (for real) Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- examples/unittest_vs_pint.ipynb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/examples/unittest_vs_pint.ipynb b/examples/unittest_vs_pint.ipynb index 18420586..0534877e 100644 --- a/examples/unittest_vs_pint.ipynb +++ b/examples/unittest_vs_pint.ipynb @@ -33,8 +33,8 @@ "traceback": [ "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", "\u001b[0;31mTypeError\u001b[0m Traceback (most recent call last)", - "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m\u001b[0m\n\u001b[1;32m 40\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 41\u001b[0m \u001b[0mx\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mTestBaseProvider\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'test_pint_series_equality'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 42\u001b[0;31m \u001b[0mTestBaseProvider\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mtest_pint_series_equality\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mx\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", - "\u001b[0;32m\u001b[0m in \u001b[0;36mtest_pint_series_equality\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 35\u001b[0m projected_production=projected_production))\n\u001b[1;32m 36\u001b[0m \u001b[0mprint\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34mf\"expected_data = {expected_data}\"\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 37\u001b[0;31m pd.testing.assert_series_equal(\n\u001b[0m\u001b[1;32m 38\u001b[0m _get_cumulative_emission(projected_emission_intensity=projected_ei,\n\u001b[1;32m 39\u001b[0m projected_production=projected_production), expected_data)\n", + "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m\u001b[0m\n\u001b[1;32m 40\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 41\u001b[0m \u001b[0mx\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mTestBaseProvider\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'test_pint_series_equality'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 42\u001b[0;31m \u001b[0mTestBaseProvider\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mtest_pint_series_equality\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mx\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", + "\u001b[0;32m\u001b[0m in \u001b[0;36mtest_pint_series_equality\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 35\u001b[0m projected_production=projected_production))\n\u001b[1;32m 36\u001b[0m \u001b[0mprint\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34mf\"expected_data = {expected_data}\"\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 37\u001b[0;31m pd.testing.assert_series_equal(\n\u001b[0m\u001b[1;32m 38\u001b[0m _get_cumulative_emission(projected_emission_intensity=projected_ei,\n\u001b[1;32m 39\u001b[0m projected_production=projected_production), expected_data)\n", " \u001b[0;31m[... skipping hidden 1 frame]\u001b[0m\n", "\u001b[0;32m/opt/app-root/lib64/python3.8/site-packages/pandas/_testing/asserters.py\u001b[0m in \u001b[0;36massert_extension_array_equal\u001b[0;34m(left, right, check_dtype, index_values, check_less_precise, check_exact, rtol, atol)\u001b[0m\n\u001b[1;32m 839\u001b[0m )\n\u001b[1;32m 840\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 841\u001b[0;31m _testing.assert_almost_equal(\n\u001b[0m\u001b[1;32m 842\u001b[0m \u001b[0mleft_valid\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 843\u001b[0m \u001b[0mright_valid\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32m/opt/app-root/lib64/python3.8/site-packages/pandas/_libs/testing.pyx\u001b[0m in \u001b[0;36mpandas._libs.testing.assert_almost_equal\u001b[0;34m()\u001b[0m\n", From 5e0610bd7810ffea2b724bcb8e61a7dbd85a80dd Mon Sep 17 00:00:00 2001 From: MichaelTiemannOSC Date: Mon, 3 Jan 2022 09:02:59 +0000 Subject: [PATCH 060/345] Remove commented print statements Create a clean check-in for reference. Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- ITR/data/base_providers.py | 6 ------ ITR/data/data_warehouse.py | 2 -- 2 files changed, 8 deletions(-) diff --git a/ITR/data/base_providers.py b/ITR/data/base_providers.py index d0f5060a..f2a4f2de 100644 --- a/ITR/data/base_providers.py +++ b/ITR/data/base_providers.py @@ -104,19 +104,14 @@ def get_company_intensity_and_production_at_base_year(self, company_ids: List[st ColumnsConfig.SECTOR and ColumnsConfig.REGION """ df_fundamentals = self.get_company_fundamentals(company_ids) - # print(f"df_fundamentals = {df_fundamentals}") base_year = self.temp_config.CONTROLS_CONFIG.base_year company_info = df_fundamentals.loc[ company_ids, [self.column_config.SECTOR, self.column_config.REGION, self.column_config.PRODUCTION_METRIC, self.column_config.GHG_SCOPE12]] company_info[self.column_config.PRODUCTION_METRIC] = company_info[self.column_config.PRODUCTION_METRIC].apply(lambda x: x['units']) - # units = company_info[self.column_config.PRODUCTION_METRIC].values[0] - # print(f"\nunits = {units}\n\n") company_info[self.column_config.GHG_SCOPE12] = company_info[self.column_config.GHG_SCOPE12].apply(lambda x: Q_(x['value'], x['units'])) # .astype(f'pint[{units}]') - # print(f"\ncompany_info.ghg_s12 = {company_info[self.column_config.GHG_SCOPE12]}\n\n") ei_at_base = self._get_company_intensity_at_year(base_year, company_ids).rename(self.column_config.BASE_EI) - # print(f"\nei_at_base = {ei_at_base}\n\n") return company_info.merge(ei_at_base, left_index=True, right_index=True) def get_company_fundamentals(self, company_ids: List[str]) -> pd.DataFrame: @@ -253,7 +248,6 @@ def get_SDA_intensity_benchmarks(self, company_info_at_base_year: pd.DataFrame) decarbonization_paths = self._get_decarbonizations_paths(intensity_benchmarks) last_ei = intensity_benchmarks[self.temp_config.CONTROLS_CONFIG.target_end_year] ei_base = company_info_at_base_year[self.column_config.BASE_EI] - # print(f"\nei_base.dtype = {ei_base.dtype}\n\n") df = decarbonization_paths.mul((ei_base - last_ei), axis=0) df = df.add(last_ei, axis=0).astype(ei_base.dtype) return df diff --git a/ITR/data/data_warehouse.py b/ITR/data/data_warehouse.py index 45dd975d..56c9a3c0 100644 --- a/ITR/data/data_warehouse.py +++ b/ITR/data/data_warehouse.py @@ -66,7 +66,6 @@ def get_preprocessed_company_data(self, company_ids: List[str]) -> List[ICompany projected_emission_intensity=self.company_data.get_company_projected_targets(company_ids), projected_production=projected_production) - # print(f"company_info_at_base_year = {company_info_at_base_year}") df_trajectory = self._get_cumulative_emission( projected_emission_intensity=self.company_data.get_company_projected_trajectories(company_ids), projected_production=projected_production).rename(self.column_config.CUMULATIVE_TRAJECTORY) @@ -77,7 +76,6 @@ def get_preprocessed_company_data(self, company_ids: List[str]) -> List[ICompany projected_emission_intensity=self.benchmarks_projected_emission_intensity.get_SDA_intensity_benchmarks( company_info_at_base_year), projected_production=projected_production).rename(self.column_config.CUMULATIVE_BUDGET) - # print(f"\ndf_trajectory.values.quantity[0] = {df_trajectory.values.quantity[0]}\n\n") df_company_data = pd.concat([df_company_data, df_trajectory, df_target, df_budget], axis=1) df_company_data[self.column_config.BENCHMARK_GLOBAL_BUDGET] = pd.Series([self.benchmarks_projected_emission_intensity.benchmark_global_budget]* len(df_company_data), dtype='pint[Gt CO2]', From 78bc3fd5a7a6dec519f3cf9c082999296efd2f30 Mon Sep 17 00:00:00 2001 From: MichaelTiemannOSC Date: Mon, 3 Jan 2022 11:57:05 +0000 Subject: [PATCH 061/345] Complete refactorization/simplification for polymorphic production types Have not fixed refactorization for Excel test case. But otherwise should be ready for full review. Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- ITR/data/base_providers.py | 16 +- ITR/data/data_warehouse.py | 5 +- ITR/data/excel.py | 17 +- ITR/interfaces.py | 49 +- test/inputs/json/benchmark_EI_OECM.json | 576 +- .../json/benchmark_EI_TPI_2_degrees.json | 192 +- .../benchmark_EI_TPI_below_2_degrees.json | 192 +- .../json/benchmark_production_OECM.json | 8 +- test/inputs/json/fundamental_data.json | 4632 ++++++----------- test/test_base_providers.py | 8 +- test/test_different_benchmarks.py | 4 +- test/test_e2e.py | 25 +- 12 files changed, 1963 insertions(+), 3761 deletions(-) diff --git a/ITR/data/base_providers.py b/ITR/data/base_providers.py index f2a4f2de..b1005a44 100644 --- a/ITR/data/base_providers.py +++ b/ITR/data/base_providers.py @@ -110,7 +110,7 @@ def get_company_intensity_and_production_at_base_year(self, company_ids: List[st self.column_config.PRODUCTION_METRIC, self.column_config.GHG_SCOPE12]] company_info[self.column_config.PRODUCTION_METRIC] = company_info[self.column_config.PRODUCTION_METRIC].apply(lambda x: x['units']) - company_info[self.column_config.GHG_SCOPE12] = company_info[self.column_config.GHG_SCOPE12].apply(lambda x: Q_(x['value'], x['units'])) # .astype(f'pint[{units}]') + company_info[self.column_config.GHG_SCOPE12] = company_info[[self.column_config.PRODUCTION_METRIC, self.column_config.GHG_SCOPE12]].apply(lambda x: Q_(x[self.column_config.GHG_SCOPE12]['value'], x[self.column_config.PRODUCTION_METRIC]), axis=1) # .astype(f'pint[{units}]') ei_at_base = self._get_company_intensity_at_year(base_year, company_ids).rename(self.column_config.BASE_EI) return company_info.merge(ei_at_base, left_index=True, right_index=True) @@ -150,12 +150,12 @@ def get_company_projected_targets(self, company_ids: List[str]) -> pd.DataFrame: class BaseProviderProductionBenchmark(ProductionBenchmarkDataProvider): - def __init__(self, production_benchmarks: IYOYBenchmarkScopes, + def __init__(self, production_benchmarks: IProductionBenchmarkScopes, column_config: Type[ColumnsConfig] = ColumnsConfig, tempscore_config: Type[TemperatureScoreConfig] = TemperatureScoreConfig): """ Base provider that relies on pydantic interfaces. Default for FastAPI usage - :param production_benchmarks: List of IYOYBenchmarkScopes + :param production_benchmarks: List of IProductionBenchmarkScopes :param column_config: An optional ColumnsConfig object containing relevant variable names :param tempscore_config: An optional TemperatureScoreConfig object containing temperature scoring settings """ @@ -165,7 +165,7 @@ def __init__(self, production_benchmarks: IYOYBenchmarkScopes, self._productions_benchmarks = production_benchmarks # Note that bencharmk production series are dimensionless. - def _convert_benchmark_to_series(self, benchmark: IYOYBenchmark) -> pd.Series: + def _convert_benchmark_to_series(self, benchmark: IBenchmark) -> pd.Series: """ extracts the company projected intensity or production targets for a given scope :param scope: a scope @@ -173,17 +173,17 @@ def _convert_benchmark_to_series(self, benchmark: IYOYBenchmark) -> pd.Series: """ return pd.Series({r.year: r.value for r in benchmark.projections}, name=(benchmark.region, benchmark.sector)) - # YOY production benchmarks are dimensionless. S1S2 has nothing to do with any company data. + # Production benchmarks are dimensionless. S1S2 has nothing to do with any company data. # It's a label in the top-level of benchmark data. Currently S1S2 is the only label with any data. def _get_projected_production(self, scope: EScope = EScope.S1S2) -> pd.DataFrame: """ - Converts IYOYBenchmarkScopes into dataframe for a scope + Converts IProductionBenchmarkScopes into dataframe for a scope :param scope: a scope :return: pd.DataFrame """ result = [] for bm in self._productions_benchmarks.dict()[str(scope)]['benchmarks']: - result.append(self._convert_benchmark_to_series(IYOYBenchmark.parse_obj(bm))) + result.append(self._convert_benchmark_to_series(IBenchmark.parse_obj(bm))) df_bm = pd.DataFrame(result) df_bm.index.names = [self.column_config.REGION, self.column_config.SECTOR] @@ -283,7 +283,7 @@ def _convert_benchmark_to_series(self, benchmark: IBenchmark) -> pd.Series: def _get_projected_intensities(self, scope: EScope = EScope.S1S2) -> pd.DataFrame: """ - Converts IBenchmarkScopes into dataframe for a scope + Converts IEmissionIntensityBenchmarkScopes into dataframe for a scope :param scope: a scope :return: pd.DataFrame """ diff --git a/ITR/data/data_warehouse.py b/ITR/data/data_warehouse.py index 56c9a3c0..e3ecd309 100644 --- a/ITR/data/data_warehouse.py +++ b/ITR/data/data_warehouse.py @@ -48,9 +48,8 @@ def get_preprocessed_company_data(self, company_ids: List[str]) -> List[ICompany """ company_data = self.company_data.get_company_data(company_ids) df_company_data = pd.DataFrame.from_records([c.dict() for c in company_data]).set_index(self.column_config.COMPANY_ID, drop=False) - df_company_data['ghg_s1s2'] = df_company_data['ghg_s1s2'].apply(lambda x: Q_(x['value'], x['units'])) df_company_data['production_metric'] = df_company_data['production_metric'].apply(lambda x: x['units']) - + df_company_data['ghg_s1s2'] = df_company_data[['production_metric', 'ghg_s1s2']].apply(lambda x: Q_(x.ghg_s1s2['value'], x.production_metric), axis=1) assert pd.Series(company_ids).isin(df_company_data.index).all(), \ "some of the company ids are not included in the fundamental data" @@ -83,7 +82,7 @@ def get_preprocessed_company_data(self, company_ids: List[str]) -> List[ICompany df_company_data[self.column_config.BENCHMARK_TEMP] = pd.Series([self.benchmarks_projected_emission_intensity.benchmark_temperature]* len(df_company_data), dtype='pint[delta_degC]', index=df_company_data.index) - df_company_data['ghg_s1s2'] = df_company_data['ghg_s1s2'].apply(lambda x: {'year':2019, 'value':x.m, 'units':str(x.u)}) + df_company_data['ghg_s1s2'] = df_company_data['ghg_s1s2'].apply(lambda x: {'year':2019, 'value':x.m}) df_company_data['production_metric'] = df_company_data['production_metric'].apply(lambda x: {'units':x}) for col in [ self.column_config.CUMULATIVE_TRAJECTORY, self.column_config.CUMULATIVE_TARGET, self.column_config.CUMULATIVE_BUDGET]: df_company_data[col] = df_company_data[col].apply(lambda x: str(x)) diff --git a/ITR/data/excel.py b/ITR/data/excel.py index c7468a56..d6102264 100644 --- a/ITR/data/excel.py +++ b/ITR/data/excel.py @@ -28,21 +28,21 @@ # Utils functions: -def convert_yoy_benchmark_excel_to_model(df_excel: pd.DataFrame, sheetname: str, column_name_region: str, - column_name_sector: str) -> IYOYBenchmarks: +def convert_dimensionless_benchmark_excel_to_model(df_excel: pd.DataFrame, sheetname: str, column_name_region: str, + column_name_sector: str) -> IBenchmarks: """ - Converts excel into IYOYBenchmarks + Converts excel into IBenchmarks :param excal_path: file path to excel - :return: IYOYBenchmarks instance (list of IYOYBenchmark) + :return: IBenchmarks instance (list of IBenchmark) """ df_ei_bms = df_excel[sheetname].reset_index().drop(columns=['index']).set_index( [column_name_region, column_name_sector]) result = [] for index, row in df_ei_bms.iterrows(): - bm = IYOYBenchmark(region=index[0], sector=index[1], - projections=[IYOYBenchmarkProjection(year=int(k), value=v) for k, v in row.items()]) + bm = IBenchmark(region=index[0], sector=index[1], + projections=[IBenchmarkProjection(year=int(k), value=v) for k, v in row.items()]) result.append(bm) - return IYOYBenchmarks(benchmarks=result) + return IBenchmarks(benchmarks=result) def convert_intensity_benchmark_excel_to_model(df_excel: pd.DataFrame, sheetname: str, column_name_region: str, @@ -52,6 +52,7 @@ def convert_intensity_benchmark_excel_to_model(df_excel: pd.DataFrame, sheetname :param excal_path: file path to excel :return: IBenchmarks instance (list of IBenchmark) """ + error("need to make generic for production units") df_ei_bms = df_excel[sheetname].reset_index().drop(columns=['index']).set_index( [column_name_region, column_name_sector]) result = [] @@ -73,7 +74,7 @@ def __init__(self, excel_path: str, column_config: Type[ColumnsConfig] = Columns """ self.benchmark_excel = pd.read_excel(excel_path, sheet_name=None, skiprows=0) self._check_sector_data() - self._convert_excel_to_model = convert_yoy_benchmark_excel_to_model + self._convert_excel_to_model = convert_dimensionless_benchmark_excel_to_model production_bms = self._convert_excel_to_model(self.benchmark_excel, TabsConfig.PROJECTED_PRODUCTION, column_config.REGION, column_config.SECTOR) super().__init__( diff --git a/ITR/interfaces.py b/ITR/interfaces.py index 12615e85..f2311327 100644 --- a/ITR/interfaces.py +++ b/ITR/interfaces.py @@ -90,12 +90,15 @@ class EmissionIntensity(BaseModel): units: str -BenchmarkMetric = Annotated[Union[ProductionMetric,EmissionIntensity], Field(discriminator='units')] +class DimensionlessNumber(BaseModel): + units: str + + +BenchmarkMetric = Annotated[Union[ProductionMetric,EmissionIntensity,DimensionlessNumber], Field(discriminator='units')] class IBenchmarkProjection(BaseModel): year: int value: float - units: str class IBenchmark(BaseModel): @@ -121,33 +124,6 @@ class IProductionBenchmarkScopes(BaseModel): S1S2S3: Optional[IBenchmarks] -class IYOYBenchmarkProjection(BaseModel): - year: int - value: float - - -class IYOYBenchmark(BaseModel): - sector: str - region: str - projections: List[IYOYBenchmarkProjection] - - def __getitem__(self, item): - return getattr(self, item) - - -class IYOYBenchmarks(BaseModel): - benchmarks: List[IYOYBenchmark] - - def __getitem__(self, item): - return getattr(self, item) - - -class IYOYBenchmarkScopes(BaseModel): - S1S2: Optional[IYOYBenchmarks] - S3: Optional[IYOYBenchmarks] - S1S2S3: Optional[IYOYBenchmarks] - - class IEmissionIntensityBenchmarkScopes(PintModel): S1S2: Optional[IBenchmarks] S3: Optional[IBenchmarks] @@ -168,13 +144,13 @@ def __init__(self, benchmark_temperature, benchmark_global_budget, *args, **kwar class ICompanyProjection(BaseModel): year: int value: Optional[float] - units: Optional[str] # Annotated[Union[ProductionMetric, EmissionIntensity], Field(discriminator='units')] def __getitem__(self, item): return getattr(self, item) class ICompanyProjections(BaseModel): + units: str projections: List[ICompanyProjection] def __getitem__(self, item): @@ -268,12 +244,13 @@ class ICompanyAggregates(ICompanyData): benchmark_global_budget: Quantity['CO2'] def __init__(self, cumulative_budget, cumulative_trajectory, cumulative_target, benchmark_temperature, benchmark_global_budget, *args, **kwargs): - super().__init__(cumulative_budget=pint_ify(cumulative_budget, 't CO2'), - cumulative_trajectory=pint_ify(cumulative_trajectory, 't CO2'), - cumulative_target=pint_ify(cumulative_target, 't CO2'), - benchmark_temperature=pint_ify(benchmark_temperature, 'delta_degC'), - benchmark_global_budget=pint_ify(benchmark_global_budget, 'Gt CO2'), - *args, **kwargs) + super().__init__( + cumulative_budget=pint_ify(cumulative_budget, 't CO2'), + cumulative_trajectory=pint_ify(cumulative_trajectory, 't CO2'), + cumulative_target=pint_ify(cumulative_target, 't CO2'), + benchmark_temperature=pint_ify(benchmark_temperature, 'delta_degC'), + benchmark_global_budget=pint_ify(benchmark_global_budget, 'Gt CO2'), + *args, **kwargs) class SortableEnum(Enum): diff --git a/test/inputs/json/benchmark_EI_OECM.json b/test/inputs/json/benchmark_EI_OECM.json index a251e1fa..33dcc3bb 100644 --- a/test/inputs/json/benchmark_EI_OECM.json +++ b/test/inputs/json/benchmark_EI_OECM.json @@ -11,163 +11,131 @@ "projections": [ { "year": 2019, - "value": 3.3220564752850343, - "units": "t CO2/Fe_ton" + "value": 3.3220564752850343 }, { "year": 2020, - "value": 3.1503497972403762, - "units": "t CO2/Fe_ton" + "value": 3.1503497972403762 }, { "year": 2021, - "value": 3.0527921157410978, - "units": "t CO2/Fe_ton" + "value": 3.0527921157410978 }, { "year": 2022, - "value": 2.9552344342418193, - "units": "t CO2/Fe_ton" + "value": 2.9552344342418193 }, { "year": 2023, - "value": 2.857676752742541, - "units": "t CO2/Fe_ton" + "value": 2.857676752742541 }, { "year": 2024, - "value": 2.7601190712432624, - "units": "t CO2/Fe_ton" + "value": 2.7601190712432624 }, { "year": 2025, - "value": 2.662561389743985, - "units": "t CO2/Fe_ton" + "value": 2.662561389743985 }, { "year": 2026, - "value": 2.4712202694763543, - "units": "t CO2/Fe_ton" + "value": 2.4712202694763543 }, { "year": 2027, - "value": 2.279879149208724, - "units": "t CO2/Fe_ton" + "value": 2.279879149208724 }, { "year": 2028, - "value": 2.0885380289410933, - "units": "t CO2/Fe_ton" + "value": 2.0885380289410933 }, { "year": 2029, - "value": 1.897196908673463, - "units": "t CO2/Fe_ton" + "value": 1.897196908673463 }, { "year": 2030, - "value": 1.7058557884058332, - "units": "t CO2/Fe_ton" + "value": 1.7058557884058332 }, { "year": 2031, - "value": 1.5675115369354773, - "units": "t CO2/Fe_ton" + "value": 1.5675115369354773 }, { "year": 2032, - "value": 1.4291672854651214, - "units": "t CO2/Fe_ton" + "value": 1.4291672854651214 }, { "year": 2033, - "value": 1.2908230339947655, - "units": "t CO2/Fe_ton" + "value": 1.2908230339947655 }, { "year": 2034, - "value": 1.1524787825244096, - "units": "t CO2/Fe_ton" + "value": 1.1524787825244096 }, { "year": 2035, - "value": 1.014134531054054, - "units": "t CO2/Fe_ton" + "value": 1.014134531054054 }, { "year": 2036, - "value": 0.931354020885741, - "units": "t CO2/Fe_ton" + "value": 0.931354020885741 }, { "year": 2037, - "value": 0.8485735107174281, - "units": "t CO2/Fe_ton" + "value": 0.8485735107174281 }, { "year": 2038, - "value": 0.7657930005491153, - "units": "t CO2/Fe_ton" + "value": 0.7657930005491153 }, { "year": 2039, - "value": 0.6830124903808024, - "units": "t CO2/Fe_ton" + "value": 0.6830124903808024 }, { "year": 2040, - "value": 0.6002319802124896, - "units": "t CO2/Fe_ton" + "value": 0.6002319802124896 }, { "year": 2041, - "value": 0.5476438118058607, - "units": "t CO2/Fe_ton" + "value": 0.5476438118058607 }, { "year": 2042, - "value": 0.4950556433992319, - "units": "t CO2/Fe_ton" + "value": 0.4950556433992319 }, { "year": 2043, - "value": 0.4424674749926031, - "units": "t CO2/Fe_ton" + "value": 0.4424674749926031 }, { "year": 2044, - "value": 0.38987930658597425, - "units": "t CO2/Fe_ton" + "value": 0.38987930658597425 }, { "year": 2045, - "value": 0.33729113817934536, - "units": "t CO2/Fe_ton" + "value": 0.33729113817934536 }, { "year": 2046, - "value": 0.3018329516910954, - "units": "t CO2/Fe_ton" + "value": 0.3018329516910954 }, { "year": 2047, - "value": 0.2663747652028455, - "units": "t CO2/Fe_ton" + "value": 0.2663747652028455 }, { "year": 2048, - "value": 0.23091657871459553, - "units": "t CO2/Fe_ton" + "value": 0.23091657871459553 }, { "year": 2049, - "value": 0.1954583922263456, - "units": "t CO2/Fe_ton" + "value": 0.1954583922263456 }, { "year": 2050, - "value": 0.16000020573809565, - "units": "t CO2/Fe_ton" + "value": 0.16000020573809565 } ] }, @@ -178,163 +146,131 @@ "projections": [ { "year": 2019, - "value": 3.131211962564734, - "units": "t CO2/Fe_ton" + "value": 3.131211962564734 }, { "year": 2020, - "value": 2.9869966982706138, - "units": "t CO2/Fe_ton" + "value": 2.9869966982706138 }, { "year": 2021, - "value": 2.8847804173877667, - "units": "t CO2/Fe_ton" + "value": 2.8847804173877667 }, { "year": 2022, - "value": 2.7825641365049196, - "units": "t CO2/Fe_ton" + "value": 2.7825641365049196 }, { "year": 2023, - "value": 2.6803478556220726, - "units": "t CO2/Fe_ton" + "value": 2.6803478556220726 }, { "year": 2024, - "value": 2.5781315747392255, - "units": "t CO2/Fe_ton" + "value": 2.5781315747392255 }, { "year": 2025, - "value": 2.475915293856379, - "units": "t CO2/Fe_ton" + "value": 2.475915293856379 }, { "year": 2026, - "value": 2.2910527372934544, - "units": "t CO2/Fe_ton" + "value": 2.2910527372934544 }, { "year": 2027, - "value": 2.10619018073053, - "units": "t CO2/Fe_ton" + "value": 2.10619018073053 }, { "year": 2028, - "value": 1.9213276241676056, - "units": "t CO2/Fe_ton" + "value": 1.9213276241676056 }, { "year": 2029, - "value": 1.7364650676046813, - "units": "t CO2/Fe_ton" + "value": 1.7364650676046813 }, { "year": 2030, - "value": 1.5516025110417573, - "units": "t CO2/Fe_ton" + "value": 1.5516025110417573 }, { "year": 2031, - "value": 1.432600820509025, - "units": "t CO2/Fe_ton" + "value": 1.432600820509025 }, { "year": 2032, - "value": 1.3135991299762928, - "units": "t CO2/Fe_ton" + "value": 1.3135991299762928 }, { "year": 2033, - "value": 1.1945974394435606, - "units": "t CO2/Fe_ton" + "value": 1.1945974394435606 }, { "year": 2034, - "value": 1.0755957489108283, - "units": "t CO2/Fe_ton" + "value": 1.0755957489108283 }, { "year": 2035, - "value": 0.9565940583780966, - "units": "t CO2/Fe_ton" + "value": 0.9565940583780966 }, { "year": 2036, - "value": 0.8773327230164034, - "units": "t CO2/Fe_ton" + "value": 0.8773327230164034 }, { "year": 2037, - "value": 0.7980713876547102, - "units": "t CO2/Fe_ton" + "value": 0.7980713876547102 }, { "year": 2038, - "value": 0.718810052293017, - "units": "t CO2/Fe_ton" + "value": 0.718810052293017 }, { "year": 2039, - "value": 0.6395487169313238, - "units": "t CO2/Fe_ton" + "value": 0.6395487169313238 }, { "year": 2040, - "value": 0.5602873815696308, - "units": "t CO2/Fe_ton" + "value": 0.5602873815696308 }, { "year": 2041, - "value": 0.5163674619712709, - "units": "t CO2/Fe_ton" + "value": 0.5163674619712709 }, { "year": 2042, - "value": 0.47244754237291103, - "units": "t CO2/Fe_ton" + "value": 0.47244754237291103 }, { "year": 2043, - "value": 0.42852762277455114, - "units": "t CO2/Fe_ton" + "value": 0.42852762277455114 }, { "year": 2044, - "value": 0.38460770317619125, - "units": "t CO2/Fe_ton" + "value": 0.38460770317619125 }, { "year": 2045, - "value": 0.34068778357783136, - "units": "t CO2/Fe_ton" + "value": 0.34068778357783136 }, { "year": 2046, - "value": 0.30455031546034383, - "units": "t CO2/Fe_ton" + "value": 0.30455031546034383 }, { "year": 2047, - "value": 0.2684128473428563, - "units": "t CO2/Fe_ton" + "value": 0.2684128473428563 }, { "year": 2048, - "value": 0.23227537922536876, - "units": "t CO2/Fe_ton" + "value": 0.23227537922536876 }, { "year": 2049, - "value": 0.1961379111078812, - "units": "t CO2/Fe_ton" + "value": 0.1961379111078812 }, { "year": 2050, - "value": 0.16000044299039362, - "units": "t CO2/Fe_ton" + "value": 0.16000044299039362 } ] }, @@ -345,163 +281,131 @@ "projections": [ { "year": 2019, - "value": 2.9870685915231707, - "units": "t CO2/Fe_ton" + "value": 2.9870685915231707 }, { "year": 2020, - "value": 2.9486311713663316, - "units": "t CO2/Fe_ton" + "value": 2.9486311713663316 }, { "year": 2021, - "value": 2.911342598101551, - "units": "t CO2/Fe_ton" + "value": 2.911342598101551 }, { "year": 2022, - "value": 2.87405402483677, - "units": "t CO2/Fe_ton" + "value": 2.87405402483677 }, { "year": 2023, - "value": 2.8367654515719893, - "units": "t CO2/Fe_ton" + "value": 2.8367654515719893 }, { "year": 2024, - "value": 2.7994768783072086, - "units": "t CO2/Fe_ton" + "value": 2.7994768783072086 }, { "year": 2025, - "value": 2.972782901473998, - "units": "t CO2/Fe_ton" + "value": 2.972782901473998 }, { "year": 2026, - "value": 2.831475560118695, - "units": "t CO2/Fe_ton" + "value": 2.831475560118695 }, { "year": 2027, - "value": 2.690168218763392, - "units": "t CO2/Fe_ton" + "value": 2.690168218763392 }, { "year": 2028, - "value": 2.548860877408089, - "units": "t CO2/Fe_ton" + "value": 2.548860877408089 }, { "year": 2029, - "value": 2.407553536052786, - "units": "t CO2/Fe_ton" + "value": 2.407553536052786 }, { "year": 2030, - "value": 2.266246194697484, - "units": "t CO2/Fe_ton" + "value": 2.266246194697484 }, { "year": 2031, - "value": 2.1619493306345343, - "units": "t CO2/Fe_ton" + "value": 2.1619493306345343 }, { "year": 2032, - "value": 2.0576524665715845, - "units": "t CO2/Fe_ton" + "value": 2.0576524665715845 }, { "year": 2033, - "value": 1.9533556025086347, - "units": "t CO2/Fe_ton" + "value": 1.9533556025086347 }, { "year": 2034, - "value": 1.849058738445685, - "units": "t CO2/Fe_ton" + "value": 1.849058738445685 }, { "year": 2035, - "value": 1.7447618743827347, - "units": "t CO2/Fe_ton" + "value": 1.7447618743827347 }, { "year": 2036, - "value": 1.6053321610476659, - "units": "t CO2/Fe_ton" + "value": 1.6053321610476659 }, { "year": 2037, - "value": 1.465902447712597, - "units": "t CO2/Fe_ton" + "value": 1.465902447712597 }, { "year": 2038, - "value": 1.3264727343775282, - "units": "t CO2/Fe_ton" + "value": 1.3264727343775282 }, { "year": 2039, - "value": 1.1870430210424594, - "units": "t CO2/Fe_ton" + "value": 1.1870430210424594 }, { "year": 2040, - "value": 1.0476133077073908, - "units": "t CO2/Fe_ton" + "value": 1.0476133077073908 }, { "year": 2041, - "value": 0.9551204892179995, - "units": "t CO2/Fe_ton" + "value": 0.9551204892179995 }, { "year": 2042, - "value": 0.8626276707286082, - "units": "t CO2/Fe_ton" + "value": 0.8626276707286082 }, { "year": 2043, - "value": 0.770134852239217, - "units": "t CO2/Fe_ton" + "value": 0.770134852239217 }, { "year": 2044, - "value": 0.6776420337498257, - "units": "t CO2/Fe_ton" + "value": 0.6776420337498257 }, { "year": 2045, - "value": 0.5851492152604343, - "units": "t CO2/Fe_ton" + "value": 0.5851492152604343 }, { "year": 2046, - "value": 0.5001218018675508, - "units": "t CO2/Fe_ton" + "value": 0.5001218018675508 }, { "year": 2047, - "value": 0.41509438847466734, - "units": "t CO2/Fe_ton" + "value": 0.41509438847466734 }, { "year": 2048, - "value": 0.33006697508178384, - "units": "t CO2/Fe_ton" + "value": 0.33006697508178384 }, { "year": 2049, - "value": 0.24503956168890034, - "units": "t CO2/Fe_ton" + "value": 0.24503956168890034 }, { "year": 2050, - "value": 0.1600121482960168, - "units": "t CO2/Fe_ton" + "value": 0.1600121482960168 } ] }, @@ -512,163 +416,131 @@ "projections": [ { "year": 2019, - "value": 0.6075603731304943, - "units": "t CO2/MWh" + "value": 0.6075603731304943 }, { "year": 2020, - "value": 0.45274433529466107, - "units": "t CO2/MWh" + "value": 0.45274433529466107 }, { "year": 2021, - "value": 0.41508425410495076, - "units": "t CO2/MWh" + "value": 0.41508425410495076 }, { "year": 2022, - "value": 0.37742417291524044, - "units": "t CO2/MWh" + "value": 0.37742417291524044 }, { "year": 2023, - "value": 0.3397640917255301, - "units": "t CO2/MWh" + "value": 0.3397640917255301 }, { "year": 2024, - "value": 0.3021040105358198, - "units": "t CO2/MWh" + "value": 0.3021040105358198 }, { "year": 2025, - "value": 0.26444392934610944, - "units": "t CO2/MWh" + "value": 0.26444392934610944 }, { "year": 2026, - "value": 0.23622922761637988, - "units": "t CO2/MWh" + "value": 0.23622922761637988 }, { "year": 2027, - "value": 0.20801452588665031, - "units": "t CO2/MWh" + "value": 0.20801452588665031 }, { "year": 2028, - "value": 0.17979982415692075, - "units": "t CO2/MWh" + "value": 0.17979982415692075 }, { "year": 2029, - "value": 0.1515851224271912, - "units": "t CO2/MWh" + "value": 0.1515851224271912 }, { "year": 2030, - "value": 0.12337042069746158, - "units": "t CO2/MWh" + "value": 0.12337042069746158 }, { "year": 2031, - "value": 0.10876688805755423, - "units": "t CO2/MWh" + "value": 0.10876688805755423 }, { "year": 2032, - "value": 0.09416335541764688, - "units": "t CO2/MWh" + "value": 0.09416335541764688 }, { "year": 2033, - "value": 0.07955982277773953, - "units": "t CO2/MWh" + "value": 0.07955982277773953 }, { "year": 2034, - "value": 0.06495629013783218, - "units": "t CO2/MWh" + "value": 0.06495629013783218 }, { "year": 2035, - "value": 0.05035275749792479, - "units": "t CO2/MWh" + "value": 0.05035275749792479 }, { "year": 2036, - "value": 0.04437091407361017, - "units": "t CO2/MWh" + "value": 0.04437091407361017 }, { "year": 2037, - "value": 0.03838907064929556, - "units": "t CO2/MWh" + "value": 0.03838907064929556 }, { "year": 2038, - "value": 0.03240722722498095, - "units": "t CO2/MWh" + "value": 0.03240722722498095 }, { "year": 2039, - "value": 0.026425383800666332, - "units": "t CO2/MWh" + "value": 0.026425383800666332 }, { "year": 2040, - "value": 0.020443540376351713, - "units": "t CO2/MWh" + "value": 0.020443540376351713 }, { "year": 2041, - "value": 0.01831849355545248, - "units": "t CO2/MWh" + "value": 0.01831849355545248 }, { "year": 2042, - "value": 0.01619344673455325, - "units": "t CO2/MWh" + "value": 0.01619344673455325 }, { "year": 2043, - "value": 0.014068399913654016, - "units": "t CO2/MWh" + "value": 0.014068399913654016 }, { "year": 2044, - "value": 0.011943353092754783, - "units": "t CO2/MWh" + "value": 0.011943353092754783 }, { "year": 2045, - "value": 0.009818306271855556, - "units": "t CO2/MWh" + "value": 0.009818306271855556 }, { "year": 2046, - "value": 0.008652674634510546, - "units": "t CO2/MWh" + "value": 0.008652674634510546 }, { "year": 2047, - "value": 0.007487042997165536, - "units": "t CO2/MWh" + "value": 0.007487042997165536 }, { "year": 2048, - "value": 0.0063214113598205265, - "units": "t CO2/MWh" + "value": 0.0063214113598205265 }, { "year": 2049, - "value": 0.005155779722475517, - "units": "t CO2/MWh" + "value": 0.005155779722475517 }, { "year": 2050, - "value": 0.0039901480851305075, - "units": "t CO2/MWh" + "value": 0.0039901480851305075 } ] }, @@ -679,163 +551,131 @@ "projections": [ { "year": 2019, - "value": 0.35881498057849487, - "units": "t CO2/MWh" + "value": 0.35881498057849487 }, { "year": 2020, - "value": 0.2865468233079732, - "units": "t CO2/MWh" + "value": 0.2865468233079732 }, { "year": 2021, - "value": 0.2607557025877874, - "units": "t CO2/MWh" + "value": 0.2607557025877874 }, { "year": 2022, - "value": 0.2349645818676016, - "units": "t CO2/MWh" + "value": 0.2349645818676016 }, { "year": 2023, - "value": 0.2091734611474158, - "units": "t CO2/MWh" + "value": 0.2091734611474158 }, { "year": 2024, - "value": 0.18338234042723, - "units": "t CO2/MWh" + "value": 0.18338234042723 }, { "year": 2025, - "value": 0.15759121970704418, - "units": "t CO2/MWh" + "value": 0.15759121970704418 }, { "year": 2026, - "value": 0.14282943407381637, - "units": "t CO2/MWh" + "value": 0.14282943407381637 }, { "year": 2027, - "value": 0.12806764844058857, - "units": "t CO2/MWh" + "value": 0.12806764844058857 }, { "year": 2028, - "value": 0.11330586280736078, - "units": "t CO2/MWh" + "value": 0.11330586280736078 }, { "year": 2029, - "value": 0.098544077174133, - "units": "t CO2/MWh" + "value": 0.098544077174133 }, { "year": 2030, - "value": 0.0837822915409052, - "units": "t CO2/MWh" + "value": 0.0837822915409052 }, { "year": 2031, - "value": 0.07746160146599985, - "units": "t CO2/MWh" + "value": 0.07746160146599985 }, { "year": 2032, - "value": 0.0711409113910945, - "units": "t CO2/MWh" + "value": 0.0711409113910945 }, { "year": 2033, - "value": 0.06482022131618916, - "units": "t CO2/MWh" + "value": 0.06482022131618916 }, { "year": 2034, - "value": 0.05849953124128381, - "units": "t CO2/MWh" + "value": 0.05849953124128381 }, { "year": 2035, - "value": 0.052178841166378484, - "units": "t CO2/MWh" + "value": 0.052178841166378484 }, { "year": 2036, - "value": 0.04684755406645104, - "units": "t CO2/MWh" + "value": 0.04684755406645104 }, { "year": 2037, - "value": 0.04151626696652359, - "units": "t CO2/MWh" + "value": 0.04151626696652359 }, { "year": 2038, - "value": 0.03618497986659615, - "units": "t CO2/MWh" + "value": 0.03618497986659615 }, { "year": 2039, - "value": 0.0308536927666687, - "units": "t CO2/MWh" + "value": 0.0308536927666687 }, { "year": 2040, - "value": 0.02552240566674124, - "units": "t CO2/MWh" + "value": 0.02552240566674124 }, { "year": 2041, - "value": 0.02274307056582293, - "units": "t CO2/MWh" + "value": 0.02274307056582293 }, { "year": 2042, - "value": 0.01996373546490462, - "units": "t CO2/MWh" + "value": 0.01996373546490462 }, { "year": 2043, - "value": 0.017184400363986312, - "units": "t CO2/MWh" + "value": 0.017184400363986312 }, { "year": 2044, - "value": 0.014405065263068003, - "units": "t CO2/MWh" + "value": 0.014405065263068003 }, { "year": 2045, - "value": 0.011625730162149695, - "units": "t CO2/MWh" + "value": 0.011625730162149695 }, { "year": 2046, - "value": 0.01038065721709401, - "units": "t CO2/MWh" + "value": 0.01038065721709401 }, { "year": 2047, - "value": 0.009135584272038323, - "units": "t CO2/MWh" + "value": 0.009135584272038323 }, { "year": 2048, - "value": 0.007890511326982637, - "units": "t CO2/MWh" + "value": 0.007890511326982637 }, { "year": 2049, - "value": 0.00664543838192695, - "units": "t CO2/MWh" + "value": 0.00664543838192695 }, { "year": 2050, - "value": 0.005400365436871264, - "units": "t CO2/MWh" + "value": 0.005400365436871264 } ] }, @@ -846,163 +686,131 @@ "projections": [ { "year": 2019, - "value": 0.4125934987501587, - "units": "t CO2/MWh" + "value": 0.4125934987501587 }, { "year": 2020, - "value": 0.38454300118653756, - "units": "t CO2/MWh" + "value": 0.38454300118653756 }, { "year": 2021, - "value": 0.3374576897313128, - "units": "t CO2/MWh" + "value": 0.3374576897313128 }, { "year": 2022, - "value": 0.29037237827608803, - "units": "t CO2/MWh" + "value": 0.29037237827608803 }, { "year": 2023, - "value": 0.24328706682086326, - "units": "t CO2/MWh" + "value": 0.24328706682086326 }, { "year": 2024, - "value": 0.1962017553656385, - "units": "t CO2/MWh" + "value": 0.1962017553656385 }, { "year": 2025, - "value": 0.1923140908240688, - "units": "t CO2/MWh" + "value": 0.1923140908240688 }, { "year": 2026, - "value": 0.16704492796205822, - "units": "t CO2/MWh" + "value": 0.16704492796205822 }, { "year": 2027, - "value": 0.14177576510004763, - "units": "t CO2/MWh" + "value": 0.14177576510004763 }, { "year": 2028, - "value": 0.11650660223803705, - "units": "t CO2/MWh" + "value": 0.11650660223803705 }, { "year": 2029, - "value": 0.09123743937602646, - "units": "t CO2/MWh" + "value": 0.09123743937602646 }, { "year": 2030, - "value": 0.06596827651401585, - "units": "t CO2/MWh" + "value": 0.06596827651401585 }, { "year": 2031, - "value": 0.06014607184262098, - "units": "t CO2/MWh" + "value": 0.06014607184262098 }, { "year": 2032, - "value": 0.054323867171226115, - "units": "t CO2/MWh" + "value": 0.054323867171226115 }, { "year": 2033, - "value": 0.04850166249983125, - "units": "t CO2/MWh" + "value": 0.04850166249983125 }, { "year": 2034, - "value": 0.04267945782843638, - "units": "t CO2/MWh" + "value": 0.04267945782843638 }, { "year": 2035, - "value": 0.036857253157041525, - "units": "t CO2/MWh" + "value": 0.036857253157041525 }, { "year": 2036, - "value": 0.0339296363678427, - "units": "t CO2/MWh" + "value": 0.0339296363678427 }, { "year": 2037, - "value": 0.031002019578643875, - "units": "t CO2/MWh" + "value": 0.031002019578643875 }, { "year": 2038, - "value": 0.02807440278944505, - "units": "t CO2/MWh" + "value": 0.02807440278944505 }, { "year": 2039, - "value": 0.025146786000246224, - "units": "t CO2/MWh" + "value": 0.025146786000246224 }, { "year": 2040, - "value": 0.0222191692110474, - "units": "t CO2/MWh" + "value": 0.0222191692110474 }, { "year": 2041, - "value": 0.018843767894743155, - "units": "t CO2/MWh" + "value": 0.018843767894743155 }, { "year": 2042, - "value": 0.015468366578438914, - "units": "t CO2/MWh" + "value": 0.015468366578438914 }, { "year": 2043, - "value": 0.012092965262134672, - "units": "t CO2/MWh" + "value": 0.012092965262134672 }, { "year": 2044, - "value": 0.00871756394583043, - "units": "t CO2/MWh" + "value": 0.00871756394583043 }, { "year": 2045, - "value": 0.005342162629526188, - "units": "t CO2/MWh" + "value": 0.005342162629526188 }, { "year": 2046, - "value": 0.005298989223589939, - "units": "t CO2/MWh" + "value": 0.005298989223589939 }, { "year": 2047, - "value": 0.005255815817653689, - "units": "t CO2/MWh" + "value": 0.005255815817653689 }, { "year": 2048, - "value": 0.00521264241171744, - "units": "t CO2/MWh" + "value": 0.00521264241171744 }, { "year": 2049, - "value": 0.00516946900578119, - "units": "t CO2/MWh" + "value": 0.00516946900578119 }, { "year": 2050, - "value": 0.005126295599844942, - "units": "t CO2/MWh" + "value": 0.005126295599844942 } ] } diff --git a/test/inputs/json/benchmark_EI_TPI_2_degrees.json b/test/inputs/json/benchmark_EI_TPI_2_degrees.json index e4d2ba38..dd9bf38a 100644 --- a/test/inputs/json/benchmark_EI_TPI_2_degrees.json +++ b/test/inputs/json/benchmark_EI_TPI_2_degrees.json @@ -11,163 +11,131 @@ "projections": [ { "year": 2019, - "value": 0.6075603731304943, - "units": "t CO2/MWh" + "value": 0.6075603731304943 }, { "year": 2020, - "value": 0.457, - "units": "t CO2/MWh" + "value": 0.457 }, { "year": 2021, - "value": 0.4376, - "units": "t CO2/MWh" + "value": 0.4376 }, { "year": 2022, - "value": 0.41819999999999996, - "units": "t CO2/MWh" + "value": 0.41819999999999996 }, { "year": 2023, - "value": 0.39879999999999993, - "units": "t CO2/MWh" + "value": 0.39879999999999993 }, { "year": 2024, - "value": 0.3793999999999999, - "units": "t CO2/MWh" + "value": 0.3793999999999999 }, { "year": 2025, - "value": 0.36, - "units": "t CO2/MWh" + "value": 0.36 }, { "year": 2026, - "value": 0.33699999999999997, - "units": "t CO2/MWh" + "value": 0.33699999999999997 }, { "year": 2027, - "value": 0.31399999999999995, - "units": "t CO2/MWh" + "value": 0.31399999999999995 }, { "year": 2028, - "value": 0.2909999999999999, - "units": "t CO2/MWh" + "value": 0.2909999999999999 }, { "year": 2029, - "value": 0.2679999999999999, - "units": "t CO2/MWh" + "value": 0.2679999999999999 }, { "year": 2030, - "value": 0.245, - "units": "t CO2/MWh" + "value": 0.245 }, { "year": 2031, - "value": 0.22619999999999998, - "units": "t CO2/MWh" + "value": 0.22619999999999998 }, { "year": 2032, - "value": 0.20739999999999997, - "units": "t CO2/MWh" + "value": 0.20739999999999997 }, { "year": 2033, - "value": 0.18859999999999996, - "units": "t CO2/MWh" + "value": 0.18859999999999996 }, { "year": 2034, - "value": 0.16979999999999995, - "units": "t CO2/MWh" + "value": 0.16979999999999995 }, { "year": 2035, - "value": 0.151, - "units": "t CO2/MWh" + "value": 0.151 }, { "year": 2036, - "value": 0.1402, - "units": "t CO2/MWh" + "value": 0.1402 }, { "year": 2037, - "value": 0.1294, - "units": "t CO2/MWh" + "value": 0.1294 }, { "year": 2038, - "value": 0.11859999999999998, - "units": "t CO2/MWh" + "value": 0.11859999999999998 }, { "year": 2039, - "value": 0.10779999999999998, - "units": "t CO2/MWh" + "value": 0.10779999999999998 }, { "year": 2040, - "value": 0.097, - "units": "t CO2/MWh" + "value": 0.097 }, { "year": 2041, - "value": 0.0888, - "units": "t CO2/MWh" + "value": 0.0888 }, { "year": 2042, - "value": 0.0806, - "units": "t CO2/MWh" + "value": 0.0806 }, { "year": 2043, - "value": 0.0724, - "units": "t CO2/MWh" + "value": 0.0724 }, { "year": 2044, - "value": 0.06420000000000001, - "units": "t CO2/MWh" + "value": 0.06420000000000001 }, { "year": 2045, - "value": 0.056, - "units": "t CO2/MWh" + "value": 0.056 }, { "year": 2046, - "value": 0.0528, - "units": "t CO2/MWh" + "value": 0.0528 }, { "year": 2047, - "value": 0.0496, - "units": "t CO2/MWh" + "value": 0.0496 }, { "year": 2048, - "value": 0.0464, - "units": "t CO2/MWh" + "value": 0.0464 }, { "year": 2049, - "value": 0.043199999999999995, - "units": "t CO2/MWh" + "value": 0.043199999999999995 }, { "year": 2050, - "value": 0.04, - "units": "t CO2/MWh" + "value": 0.04 } ] }, @@ -178,163 +146,131 @@ "projections": [ { "year": 2019, - "value": 1.669, - "units": "t CO2/Fe_ton" + "value": 1.669 }, { "year": 2020, - "value": 1.498, - "units": "t CO2/Fe_ton" + "value": 1.498 }, { "year": 2021, - "value": 1.4718, - "units": "t CO2/Fe_ton" + "value": 1.4718 }, { "year": 2022, - "value": 1.4456, - "units": "t CO2/Fe_ton" + "value": 1.4456 }, { "year": 2023, - "value": 1.4194, - "units": "t CO2/Fe_ton" + "value": 1.4194 }, { "year": 2024, - "value": 1.3932, - "units": "t CO2/Fe_ton" + "value": 1.3932 }, { "year": 2025, - "value": 1.367, - "units": "t CO2/Fe_ton" + "value": 1.367 }, { "year": 2026, - "value": 1.3195999999999999, - "units": "t CO2/Fe_ton" + "value": 1.3195999999999999 }, { "year": 2027, - "value": 1.2721999999999998, - "units": "t CO2/Fe_ton" + "value": 1.2721999999999998 }, { "year": 2028, - "value": 1.2247999999999997, - "units": "t CO2/Fe_ton" + "value": 1.2247999999999997 }, { "year": 2029, - "value": 1.1773999999999996, - "units": "t CO2/Fe_ton" + "value": 1.1773999999999996 }, { "year": 2030, - "value": 1.13, - "units": "t CO2/Fe_ton" + "value": 1.13 }, { "year": 2031, - "value": 1.0948, - "units": "t CO2/Fe_ton" + "value": 1.0948 }, { "year": 2032, - "value": 1.0596, - "units": "t CO2/Fe_ton" + "value": 1.0596 }, { "year": 2033, - "value": 1.0244000000000002, - "units": "t CO2/Fe_ton" + "value": 1.0244000000000002 }, { "year": 2034, - "value": 0.9892000000000002, - "units": "t CO2/Fe_ton" + "value": 0.9892000000000002 }, { "year": 2035, - "value": 0.954, - "units": "t CO2/Fe_ton" + "value": 0.954 }, { "year": 2036, - "value": 0.9258, - "units": "t CO2/Fe_ton" + "value": 0.9258 }, { "year": 2037, - "value": 0.8976, - "units": "t CO2/Fe_ton" + "value": 0.8976 }, { "year": 2038, - "value": 0.8694, - "units": "t CO2/Fe_ton" + "value": 0.8694 }, { "year": 2039, - "value": 0.8412, - "units": "t CO2/Fe_ton" + "value": 0.8412 }, { "year": 2040, - "value": 0.813, - "units": "t CO2/Fe_ton" + "value": 0.813 }, { "year": 2041, - "value": 0.7857999999999999, - "units": "t CO2/Fe_ton" + "value": 0.7857999999999999 }, { "year": 2042, - "value": 0.7585999999999999, - "units": "t CO2/Fe_ton" + "value": 0.7585999999999999 }, { "year": 2043, - "value": 0.7313999999999999, - "units": "t CO2/Fe_ton" + "value": 0.7313999999999999 }, { "year": 2044, - "value": 0.7041999999999999, - "units": "t CO2/Fe_ton" + "value": 0.7041999999999999 }, { "year": 2045, - "value": 0.677, - "units": "t CO2/Fe_ton" + "value": 0.677 }, { "year": 2046, - "value": 0.6658000000000001, - "units": "t CO2/Fe_ton" + "value": 0.6658000000000001 }, { "year": 2047, - "value": 0.6546000000000001, - "units": "t CO2/Fe_ton" + "value": 0.6546000000000001 }, { "year": 2048, - "value": 0.6434000000000001, - "units": "t CO2/Fe_ton" + "value": 0.6434000000000001 }, { "year": 2049, - "value": 0.6322000000000001, - "units": "t CO2/Fe_ton" + "value": 0.6322000000000001 }, { "year": 2050, - "value": 0.621, - "units": "t CO2/Fe_ton" + "value": 0.621 } ] } diff --git a/test/inputs/json/benchmark_EI_TPI_below_2_degrees.json b/test/inputs/json/benchmark_EI_TPI_below_2_degrees.json index 1c6e6047..9d6c01e3 100644 --- a/test/inputs/json/benchmark_EI_TPI_below_2_degrees.json +++ b/test/inputs/json/benchmark_EI_TPI_below_2_degrees.json @@ -11,163 +11,131 @@ "projections": [ { "year": 2019, - "value": 0.6075603731304943, - "units": "t CO2/MWh" + "value": 0.6075603731304943 }, { "year": 2020, - "value": 0.44, - "units": "t CO2/MWh" + "value": 0.44 }, { "year": 2021, - "value": 0.418, - "units": "t CO2/MWh" + "value": 0.418 }, { "year": 2022, - "value": 0.39599999999999996, - "units": "t CO2/MWh" + "value": 0.39599999999999996 }, { "year": 2023, - "value": 0.37399999999999994, - "units": "t CO2/MWh" + "value": 0.37399999999999994 }, { "year": 2024, - "value": 0.3519999999999999, - "units": "t CO2/MWh" + "value": 0.3519999999999999 }, { "year": 2025, - "value": 0.33, - "units": "t CO2/MWh" + "value": 0.33 }, { "year": 2026, - "value": 0.3098, - "units": "t CO2/MWh" + "value": 0.3098 }, { "year": 2027, - "value": 0.2896, - "units": "t CO2/MWh" + "value": 0.2896 }, { "year": 2028, - "value": 0.26940000000000003, - "units": "t CO2/MWh" + "value": 0.26940000000000003 }, { "year": 2029, - "value": 0.24920000000000003, - "units": "t CO2/MWh" + "value": 0.24920000000000003 }, { "year": 2030, - "value": 0.229, - "units": "t CO2/MWh" + "value": 0.229 }, { "year": 2031, - "value": 0.2114, - "units": "t CO2/MWh" + "value": 0.2114 }, { "year": 2032, - "value": 0.1938, - "units": "t CO2/MWh" + "value": 0.1938 }, { "year": 2033, - "value": 0.1762, - "units": "t CO2/MWh" + "value": 0.1762 }, { "year": 2034, - "value": 0.1586, - "units": "t CO2/MWh" + "value": 0.1586 }, { "year": 2035, - "value": 0.141, - "units": "t CO2/MWh" + "value": 0.141 }, { "year": 2036, - "value": 0.12719999999999998, - "units": "t CO2/MWh" + "value": 0.12719999999999998 }, { "year": 2037, - "value": 0.11339999999999999, - "units": "t CO2/MWh" + "value": 0.11339999999999999 }, { "year": 2038, - "value": 0.0996, - "units": "t CO2/MWh" + "value": 0.0996 }, { "year": 2039, - "value": 0.0858, - "units": "t CO2/MWh" + "value": 0.0858 }, { "year": 2040, - "value": 0.072, - "units": "t CO2/MWh" + "value": 0.072 }, { "year": 2041, - "value": 0.061599999999999995, - "units": "t CO2/MWh" + "value": 0.061599999999999995 }, { "year": 2042, - "value": 0.051199999999999996, - "units": "t CO2/MWh" + "value": 0.051199999999999996 }, { "year": 2043, - "value": 0.040799999999999996, - "units": "t CO2/MWh" + "value": 0.040799999999999996 }, { "year": 2044, - "value": 0.030399999999999996, - "units": "t CO2/MWh" + "value": 0.030399999999999996 }, { "year": 2045, - "value": 0.02, - "units": "t CO2/MWh" + "value": 0.02 }, { "year": 2046, - "value": 0.0144, - "units": "t CO2/MWh" + "value": 0.0144 }, { "year": 2047, - "value": 0.008799999999999999, - "units": "t CO2/MWh" + "value": 0.008799999999999999 }, { "year": 2048, - "value": 0.003199999999999999, - "units": "t CO2/MWh" + "value": 0.003199999999999999 }, { "year": 2049, - "value": -0.002400000000000001, - "units": "t CO2/MWh" + "value": -0.002400000000000001 }, { "year": 2050, - "value": -0.008, - "units": "t CO2/MWh" + "value": -0.008 } ] }, @@ -178,163 +146,131 @@ "projections": [ { "year": 2019, - "value": 1.669, - "units": "t CO2/Fe_ton" + "value": 1.669 }, { "year": 2020, - "value": 1.325, - "units": "t CO2/Fe_ton" + "value": 1.325 }, { "year": 2021, - "value": 1.2691999999999999, - "units": "t CO2/Fe_ton" + "value": 1.2691999999999999 }, { "year": 2022, - "value": 1.2133999999999998, - "units": "t CO2/Fe_ton" + "value": 1.2133999999999998 }, { "year": 2023, - "value": 1.1575999999999997, - "units": "t CO2/Fe_ton" + "value": 1.1575999999999997 }, { "year": 2024, - "value": 1.1017999999999997, - "units": "t CO2/Fe_ton" + "value": 1.1017999999999997 }, { "year": 2025, - "value": 1.046, - "units": "t CO2/Fe_ton" + "value": 1.046 }, { "year": 2026, - "value": 0.9998, - "units": "t CO2/Fe_ton" + "value": 0.9998 }, { "year": 2027, - "value": 0.9536, - "units": "t CO2/Fe_ton" + "value": 0.9536 }, { "year": 2028, - "value": 0.9074, - "units": "t CO2/Fe_ton" + "value": 0.9074 }, { "year": 2029, - "value": 0.8612, - "units": "t CO2/Fe_ton" + "value": 0.8612 }, { "year": 2030, - "value": 0.815, - "units": "t CO2/Fe_ton" + "value": 0.815 }, { "year": 2031, - "value": 0.7714, - "units": "t CO2/Fe_ton" + "value": 0.7714 }, { "year": 2032, - "value": 0.7278, - "units": "t CO2/Fe_ton" + "value": 0.7278 }, { "year": 2033, - "value": 0.6842, - "units": "t CO2/Fe_ton" + "value": 0.6842 }, { "year": 2034, - "value": 0.6406000000000001, - "units": "t CO2/Fe_ton" + "value": 0.6406000000000001 }, { "year": 2035, - "value": 0.597, - "units": "t CO2/Fe_ton" + "value": 0.597 }, { "year": 2036, - "value": 0.573, - "units": "t CO2/Fe_ton" + "value": 0.573 }, { "year": 2037, - "value": 0.5489999999999999, - "units": "t CO2/Fe_ton" + "value": 0.5489999999999999 }, { "year": 2038, - "value": 0.5249999999999999, - "units": "t CO2/Fe_ton" + "value": 0.5249999999999999 }, { "year": 2039, - "value": 0.5009999999999999, - "units": "t CO2/Fe_ton" + "value": 0.5009999999999999 }, { "year": 2040, - "value": 0.477, - "units": "t CO2/Fe_ton" + "value": 0.477 }, { "year": 2041, - "value": 0.4566, - "units": "t CO2/Fe_ton" + "value": 0.4566 }, { "year": 2042, - "value": 0.43620000000000003, - "units": "t CO2/Fe_ton" + "value": 0.43620000000000003 }, { "year": 2043, - "value": 0.41580000000000006, - "units": "t CO2/Fe_ton" + "value": 0.41580000000000006 }, { "year": 2044, - "value": 0.3954000000000001, - "units": "t CO2/Fe_ton" + "value": 0.3954000000000001 }, { "year": 2045, - "value": 0.375, - "units": "t CO2/Fe_ton" + "value": 0.375 }, { "year": 2046, - "value": 0.3526, - "units": "t CO2/Fe_ton" + "value": 0.3526 }, { "year": 2047, - "value": 0.33020000000000005, - "units": "t CO2/Fe_ton" + "value": 0.33020000000000005 }, { "year": 2048, - "value": 0.3078000000000001, - "units": "t CO2/Fe_ton" + "value": 0.3078000000000001 }, { "year": 2049, - "value": 0.2854000000000001, - "units": "t CO2/Fe_ton" + "value": 0.2854000000000001 }, { "year": 2050, - "value": 0.263, - "units": "t CO2/Fe_ton" + "value": 0.263 } ] } diff --git a/test/inputs/json/benchmark_production_OECM.json b/test/inputs/json/benchmark_production_OECM.json index 6889adac..2b3c7061 100644 --- a/test/inputs/json/benchmark_production_OECM.json +++ b/test/inputs/json/benchmark_production_OECM.json @@ -4,6 +4,7 @@ { "sector": "Steel", "region": "Global", + "benchmark_metric": { "units": "dimensionless" }, "projections": [ { "year": 2019, @@ -138,6 +139,7 @@ { "sector": "Steel", "region": "Europe", + "benchmark_metric": { "units": "dimensionless" }, "projections": [ { "year": 2019, @@ -272,6 +274,7 @@ { "sector": "Steel", "region": "North America", + "benchmark_metric": { "units": "dimensionless" }, "projections": [ { "year": 2019, @@ -406,6 +409,7 @@ { "sector": "Electricity Utilities", "region": "Global", + "benchmark_metric": { "units": "dimensionless" }, "projections": [ { "year": 2019, @@ -540,6 +544,7 @@ { "sector": "Electricity Utilities", "region": "Europe", + "benchmark_metric": { "units": "dimensionless" }, "projections": [ { "year": 2019, @@ -674,6 +679,7 @@ { "sector": "Electricity Utilities", "region": "North America", + "benchmark_metric": { "units": "dimensionless" }, "projections": [ { "year": 2019, @@ -809,4 +815,4 @@ }, "S3": null, "S1S2S3": null -} \ No newline at end of file +} diff --git a/test/inputs/json/fundamental_data.json b/test/inputs/json/fundamental_data.json index 5e01b647..1db5d29e 100644 --- a/test/inputs/json/fundamental_data.json +++ b/test/inputs/json/fundamental_data.json @@ -8,166 +8,135 @@ "target_probability": 0.428571428571428, "projected_ei_targets": { "S1S2": { + "units": "t CO2/MWh", "projections": [ { "year": 2019, - "value": 1.6982474347547039, - "units": "t CO2/MWh" + "value": 1.6982474347547039 }, { "year": 2020, - "value": 1.6982474347547039, - "units": "t CO2/MWh" + "value": 1.6982474347547039 }, { "year": 2021, - "value": 1.5577542305393455, - "units": "t CO2/MWh" + "value": 1.5577542305393455 }, { "year": 2022, - "value": 1.4175814131267945, - "units": "t CO2/MWh" + "value": 1.4175814131267945 }, { "year": 2023, - "value": 1.3757498305423044, - "units": "t CO2/MWh" + "value": 1.3757498305423044 }, { "year": 2024, - "value": 1.333906842328756, - "units": "t CO2/MWh" + "value": 1.333906842328756 }, { "year": 2025, - "value": 1.2920428864089595, - "units": "t CO2/MWh" + "value": 1.2920428864089595 }, { "year": 2026, - "value": 1.2501484659966773, - "units": "t CO2/MWh" + "value": 1.2501484659966773 }, { "year": 2027, - "value": 1.208217599749575, - "units": "t CO2/MWh" + "value": 1.208217599749575 }, { "year": 2028, - "value": 1.1662487949464946, - "units": "t CO2/MWh" + "value": 1.1662487949464946 }, { "year": 2029, - "value": 1.1242411674193187, - "units": "t CO2/MWh" + "value": 1.1242411674193187 }, { "year": 2030, - "value": 1.0821881325764464, - "units": "t CO2/MWh" + "value": 1.0821881325764464 }, { "year": 2031, - "value": 1.0336668334595036, - "units": "t CO2/MWh" + "value": 1.0336668334595036 }, { "year": 2032, - "value": 1.0060112712997695, - "units": "t CO2/MWh" + "value": 1.0060112712997695 }, { "year": 2033, - "value": 0.9761745320942703, - "units": "t CO2/MWh" + "value": 0.9761745320942703 }, { "year": 2034, - "value": 0.9425400205253531, - "units": "t CO2/MWh" + "value": 0.9425400205253531 }, { "year": 2035, - "value": 0.9039393234183674, - "units": "t CO2/MWh" + "value": 0.9039393234183674 }, { "year": 2036, - "value": 0.8602347104642204, - "units": "t CO2/MWh" + "value": 0.8602347104642204 }, { "year": 2037, - "value": 0.8125797891612297, - "units": "t CO2/MWh" + "value": 0.8125797891612297 }, { "year": 2038, - "value": 0.7629485261651574, - "units": "t CO2/MWh" + "value": 0.7629485261651574 }, { "year": 2039, - "value": 0.7133146578424875, - "units": "t CO2/MWh" + "value": 0.7133146578424875 }, { "year": 2040, - "value": 0.6651284434989193, - "units": "t CO2/MWh" + "value": 0.6651284434989193 }, { "year": 2041, - "value": 0.6192381388976574, - "units": "t CO2/MWh" + "value": 0.6192381388976574 }, { "year": 2042, - "value": 0.5760361799379609, - "units": "t CO2/MWh" + "value": 0.5760361799379609 }, { "year": 2043, - "value": 0.535632683016501, - "units": "t CO2/MWh" + "value": 0.535632683016501 }, { "year": 2044, - "value": 0.4979831917544518, - "units": "t CO2/MWh" + "value": 0.4979831917544518 }, { "year": 2045, - "value": 0.4629668805902728, - "units": "t CO2/MWh" + "value": 0.4629668805902728 }, { "year": 2046, - "value": 0.4304301348728542, - "units": "t CO2/MWh" + "value": 0.4304301348728542 }, { "year": 2047, - "value": 0.40020948027188047, - "units": "t CO2/MWh" + "value": 0.40020948027188047 }, { "year": 2048, - "value": 0.37214308377617, - "units": "t CO2/MWh" + "value": 0.37214308377617 }, { "year": 2049, - "value": 0.3460761777533931, - "units": "t CO2/MWh" + "value": 0.3460761777533931 }, { "year": 2050, - "value": 0.32186333388002936, - "units": "t CO2/MWh" + "value": 0.32186333388002936 } ] }, @@ -176,166 +145,135 @@ }, "projected_ei_trajectories": { "S1S2": { + "units": "t CO2/MWh", "projections": [ { "year": 2019, - "value": 1.6982474347547039, - "units": "t CO2/MWh" + "value": 1.6982474347547039 }, { "year": 2020, - "value": 1.6982474347547039, - "units": "t CO2/MWh" + "value": 1.6982474347547039 }, { "year": 2021, - "value": 1.5908285727976155, - "units": "t CO2/MWh" + "value": 1.5908285727976155 }, { "year": 2022, - "value": 1.4927079868414053, - "units": "t CO2/MWh" + "value": 1.4927079868414053 }, { "year": 2023, - "value": 1.40389082098226, - "units": "t CO2/MWh" + "value": 1.40389082098226 }, { "year": 2024, - "value": 1.32502588419455, - "units": "t CO2/MWh" + "value": 1.32502588419455 }, { "year": 2025, - "value": 1.2569008331330909, - "units": "t CO2/MWh" + "value": 1.2569008331330909 }, { "year": 2026, - "value": 1.1998929619569179, - "units": "t CO2/MWh" + "value": 1.1998929619569179 }, { "year": 2027, - "value": 1.153286422184539, - "units": "t CO2/MWh" + "value": 1.153286422184539 }, { "year": 2028, - "value": 1.1151320189357772, - "units": "t CO2/MWh" + "value": 1.1151320189357772 }, { "year": 2029, - "value": 1.0828716192035852, - "units": "t CO2/MWh" + "value": 1.0828716192035852 }, { "year": 2030, - "value": 1.0540625049962402, - "units": "t CO2/MWh" + "value": 1.0540625049962402 }, { "year": 2031, - "value": 1.026649108683692, - "units": "t CO2/MWh" + "value": 1.026649108683692 }, { "year": 2032, - "value": 0.9988596299898522, - "units": "t CO2/MWh" + "value": 0.9988596299898522 }, { "year": 2033, - "value": 0.96902907553976, - "units": "t CO2/MWh" + "value": 0.96902907553976 }, { "year": 2034, - "value": 0.9356001506697456, - "units": "t CO2/MWh" + "value": 0.9356001506697456 }, { "year": 2035, - "value": 0.897456358810864, - "units": "t CO2/MWh" + "value": 0.897456358810864 }, { "year": 2036, - "value": 0.8544664234169373, - "units": "t CO2/MWh" + "value": 0.8544664234169373 }, { "year": 2037, - "value": 0.8077218576734648, - "units": "t CO2/MWh" + "value": 0.8077218576734648 }, { "year": 2038, - "value": 0.7590881112787137, - "units": "t CO2/MWh" + "value": 0.7590881112787137 }, { "year": 2039, - "value": 0.7104327175253642, - "units": "t CO2/MWh" + "value": 0.7104327175253642 }, { "year": 2040, - "value": 0.6631344017977762, - "units": "t CO2/MWh" + "value": 0.6631344017977762 }, { "year": 2041, - "value": 0.6180079848270246, - "units": "t CO2/MWh" + "value": 0.6180079848270246 }, { "year": 2042, - "value": 0.5754393574567898, - "units": "t CO2/MWh" + "value": 0.5754393574567898 }, { "year": 2043, - "value": 0.535546775490256, - "units": "t CO2/MWh" + "value": 0.535546775490256 }, { "year": 2044, - "value": 0.4983002114580005, - "units": "t CO2/MWh" + "value": 0.4983002114580005 }, { "year": 2045, - "value": 0.4635948642367862, - "units": "t CO2/MWh" + "value": 0.4635948642367862 }, { "year": 2046, - "value": 0.43129246081540834, - "units": "t CO2/MWh" + "value": 0.43129246081540834 }, { "year": 2047, - "value": 0.4012432459353121, - "units": "t CO2/MWh" + "value": 0.4012432459353121 }, { "year": 2048, - "value": 0.3732972177077626, - "units": "t CO2/MWh" + "value": 0.3732972177077626 }, { "year": 2049, - "value": 0.3473095993533106, - "units": "t CO2/MWh" + "value": 0.3473095993533106 }, { "year": 2050, - "value": 0.32314328995492764, - "units": "t CO2/MWh" + "value": 0.32314328995492764 } ] }, @@ -345,13 +283,11 @@ "country": "United States of America", "ghg_s1s2": { "year": 2019, - "value": 104827858.636039, - "units": "MWh" + "value": 104827858.636039 }, "ghg_s3": { "year": 2019, - "value": 104827858.636039, - "units": "MWh" + "value": 104827858.636039 }, "industry_level_1": null, "industry_level_2": null, @@ -372,166 +308,135 @@ "target_probability": 0.4285714285714285, "projected_ei_targets": { "S1S2": { + "units": "t CO2/MWh", "projections": [ { "year": 2019, - "value": 0.47658693158227944, - "units": "t CO2/MWh" + "value": 0.47658693158227944 }, { "year": 2020, - "value": 0.47658693158227944, - "units": "t CO2/MWh" + "value": 0.47658693158227944 }, { "year": 2021, - "value": 0.4638779467400853, - "units": "t CO2/MWh" + "value": 0.4638779467400853 }, { "year": 2022, - "value": 0.4511689618978912, - "units": "t CO2/MWh" + "value": 0.4511689618978912 }, { "year": 2023, - "value": 0.43845997705569717, - "units": "t CO2/MWh" + "value": 0.43845997705569717 }, { "year": 2024, - "value": 0.4257509922135031, - "units": "t CO2/MWh" + "value": 0.4257509922135031 }, { "year": 2025, - "value": 0.413042007371309, - "units": "t CO2/MWh" + "value": 0.413042007371309 }, { "year": 2026, - "value": 0.40033302252911485, - "units": "t CO2/MWh" + "value": 0.40033302252911485 }, { "year": 2027, - "value": 0.3876240376869207, - "units": "t CO2/MWh" + "value": 0.3876240376869207 }, { "year": 2028, - "value": 0.37491505284472665, - "units": "t CO2/MWh" + "value": 0.37491505284472665 }, { "year": 2029, - "value": 0.3622060680025326, - "units": "t CO2/MWh" + "value": 0.3622060680025326 }, { "year": 2030, - "value": 0.3494970831603385, - "units": "t CO2/MWh" + "value": 0.3494970831603385 }, { "year": 2031, - "value": 0.33202222900232153, - "units": "t CO2/MWh" + "value": 0.33202222900232153 }, { "year": 2032, - "value": 0.31454737484430456, - "units": "t CO2/MWh" + "value": 0.31454737484430456 }, { "year": 2033, - "value": 0.2970725206862877, - "units": "t CO2/MWh" + "value": 0.2970725206862877 }, { "year": 2034, - "value": 0.27959766652827067, - "units": "t CO2/MWh" + "value": 0.27959766652827067 }, { "year": 2035, - "value": 0.26212281237025375, - "units": "t CO2/MWh" + "value": 0.26212281237025375 }, { "year": 2036, - "value": 0.24464795821223684, - "units": "t CO2/MWh" + "value": 0.24464795821223684 }, { "year": 2037, - "value": 0.2271731040542199, - "units": "t CO2/MWh" + "value": 0.2271731040542199 }, { "year": 2038, - "value": 0.20969824989620298, - "units": "t CO2/MWh" + "value": 0.20969824989620298 }, { "year": 2039, - "value": 0.19222339573818606, - "units": "t CO2/MWh" + "value": 0.19222339573818606 }, { "year": 2040, - "value": 0.17474854158016914, - "units": "t CO2/MWh" + "value": 0.17474854158016914 }, { "year": 2041, - "value": 0.15727368742215223, - "units": "t CO2/MWh" + "value": 0.15727368742215223 }, { "year": 2042, - "value": 0.1397988332641353, - "units": "t CO2/MWh" + "value": 0.1397988332641353 }, { "year": 2043, - "value": 0.12232397910611839, - "units": "t CO2/MWh" + "value": 0.12232397910611839 }, { "year": 2044, - "value": 0.10484912494810146, - "units": "t CO2/MWh" + "value": 0.10484912494810146 }, { "year": 2045, - "value": 0.08737427079008454, - "units": "t CO2/MWh" + "value": 0.08737427079008454 }, { "year": 2046, - "value": 0.06989941663206761, - "units": "t CO2/MWh" + "value": 0.06989941663206761 }, { "year": 2047, - "value": 0.0524245624740507, - "units": "t CO2/MWh" + "value": 0.0524245624740507 }, { "year": 2048, - "value": 0.03494970831603377, - "units": "t CO2/MWh" + "value": 0.03494970831603377 }, { "year": 2049, - "value": 0.017474854158016848, - "units": "t CO2/MWh" + "value": 0.017474854158016848 }, { "year": 2050, - "value": 0.0, - "units": "t CO2/MWh" + "value": 0.0 } ] }, @@ -540,166 +445,135 @@ }, "projected_ei_trajectories": { "S1S2": { + "units": "t CO2/MWh", "projections": [ { "year": 2019, - "value": 0.47658693158227944, - "units": "t CO2/MWh" + "value": 0.47658693158227944 }, { "year": 2020, - "value": 0.47658693158227944, - "units": "t CO2/MWh" + "value": 0.47658693158227944 }, { "year": 2021, - "value": 0.46469562756682775, - "units": "t CO2/MWh" + "value": 0.46469562756682775 }, { "year": 2022, - "value": 0.4647548888456499, - "units": "t CO2/MWh" + "value": 0.4647548888456499 }, { "year": 2023, - "value": 0.46633236949094614, - "units": "t CO2/MWh" + "value": 0.46633236949094614 }, { "year": 2024, - "value": 0.46916211543340447, - "units": "t CO2/MWh" + "value": 0.46916211543340447 }, { "year": 2025, - "value": 0.47272579700319967, - "units": "t CO2/MWh" + "value": 0.47272579700319967 }, { "year": 2026, - "value": 0.476297380468674, - "units": "t CO2/MWh" + "value": 0.476297380468674 }, { "year": 2027, - "value": 0.47917664907701873, - "units": "t CO2/MWh" + "value": 0.47917664907701873 }, { "year": 2028, - "value": 0.48095457621703386, - "units": "t CO2/MWh" + "value": 0.48095457621703386 }, { "year": 2029, - "value": 0.4815325131927147, - "units": "t CO2/MWh" + "value": 0.4815325131927147 }, { "year": 2030, - "value": 0.48089866695678, - "units": "t CO2/MWh" + "value": 0.48089866695678 }, { "year": 2031, - "value": 0.4788731437775647, - "units": "t CO2/MWh" + "value": 0.4788731437775647 }, { "year": 2032, - "value": 0.4749200564812563, - "units": "t CO2/MWh" + "value": 0.4749200564812563 }, { "year": 2033, - "value": 0.4680373257828999, - "units": "t CO2/MWh" + "value": 0.4680373257828999 }, { "year": 2034, - "value": 0.456822974997255, - "units": "t CO2/MWh" + "value": 0.456822974997255 }, { "year": 2035, - "value": 0.43992414191953577, - "units": "t CO2/MWh" + "value": 0.43992414191953577 }, { "year": 2036, - "value": 0.41686871286337673, - "units": "t CO2/MWh" + "value": 0.41686871286337673 }, { "year": 2037, - "value": 0.38867473018726767, - "units": "t CO2/MWh" + "value": 0.38867473018726767 }, { "year": 2038, - "value": 0.3575275342519104, - "units": "t CO2/MWh" + "value": 0.3575275342519104 }, { "year": 2039, - "value": 0.32578957147485127, - "units": "t CO2/MWh" + "value": 0.32578957147485127 }, { "year": 2040, - "value": 0.2952358348870772, - "units": "t CO2/MWh" + "value": 0.2952358348870772 }, { "year": 2041, - "value": 0.26687296857116094, - "units": "t CO2/MWh" + "value": 0.26687296857116094 }, { "year": 2042, - "value": 0.2411077146972847, - "units": "t CO2/MWh" + "value": 0.2411077146972847 }, { "year": 2043, - "value": 0.21798083999859974, - "units": "t CO2/MWh" + "value": 0.21798083999859974 }, { "year": 2044, - "value": 0.1973452622150422, - "units": "t CO2/MWh" + "value": 0.1973452622150422 }, { "year": 2045, - "value": 0.1789746807517556, - "units": "t CO2/MWh" + "value": 0.1789746807517556 }, { "year": 2046, - "value": 0.16262213627268932, - "units": "t CO2/MWh" + "value": 0.16262213627268932 }, { "year": 2047, - "value": 0.14804865736582992, - "units": "t CO2/MWh" + "value": 0.14804865736582992 }, { "year": 2048, - "value": 0.1350356279896691, - "units": "t CO2/MWh" + "value": 0.1350356279896691 }, { "year": 2049, - "value": 0.12338881327823215, - "units": "t CO2/MWh" + "value": 0.12338881327823215 }, { "year": 2050, - "value": 0.11293834909899002, - "units": "t CO2/MWh" + "value": 0.11293834909899002 } ] }, @@ -709,13 +583,11 @@ "country": "United States of America", "ghg_s1s2": { "year": 2019, - "value": 598937001.892059, - "units": "MWh" + "value": 598937001.892059 }, "ghg_s3": { "year": 2019, - "value": 598937001.892059, - "units": "MWh" + "value": 598937001.892059 }, "industry_level_1": null, "industry_level_2": null, @@ -736,166 +608,135 @@ "target_probability": 0.4285714285714285, "projected_ei_targets": { "S1S2": { + "units": "t CO2/MWh", "projections": [ { "year": 2019, - "value": 0.2245739316927696, - "units": "t CO2/MWh" + "value": 0.2245739316927696 }, { "year": 2020, - "value": 0.2580129849830155, - "units": "t CO2/MWh" + "value": 0.2580129849830155 }, { "year": 2021, - "value": 0.24042119055235542, - "units": "t CO2/MWh" + "value": 0.24042119055235542 }, { "year": 2022, - "value": 0.22282939612169528, - "units": "t CO2/MWh" + "value": 0.22282939612169528 }, { "year": 2023, - "value": 0.20523760169103514, - "units": "t CO2/MWh" + "value": 0.20523760169103514 }, { "year": 2024, - "value": 0.187645807260375, - "units": "t CO2/MWh" + "value": 0.187645807260375 }, { "year": 2025, - "value": 0.17005401282971486, - "units": "t CO2/MWh" + "value": 0.17005401282971486 }, { "year": 2026, - "value": 0.15246221839905472, - "units": "t CO2/MWh" + "value": 0.15246221839905472 }, { "year": 2027, - "value": 0.13487042396839458, - "units": "t CO2/MWh" + "value": 0.13487042396839458 }, { "year": 2028, - "value": 0.11727862953773445, - "units": "t CO2/MWh" + "value": 0.11727862953773445 }, { "year": 2029, - "value": 0.0996868351070743, - "units": "t CO2/MWh" + "value": 0.0996868351070743 }, { "year": 2030, - "value": 0.08209504067641414, - "units": "t CO2/MWh" + "value": 0.08209504067641414 }, { "year": 2031, - "value": 0.07388553660877273, - "units": "t CO2/MWh" + "value": 0.07388553660877273 }, { "year": 2032, - "value": 0.06567603254113132, - "units": "t CO2/MWh" + "value": 0.06567603254113132 }, { "year": 2033, - "value": 0.0574665284734899, - "units": "t CO2/MWh" + "value": 0.0574665284734899 }, { "year": 2034, - "value": 0.0492570244058485, - "units": "t CO2/MWh" + "value": 0.0492570244058485 }, { "year": 2035, - "value": 0.041047520338207084, - "units": "t CO2/MWh" + "value": 0.041047520338207084 }, { "year": 2036, - "value": 0.032838016270565665, - "units": "t CO2/MWh" + "value": 0.032838016270565665 }, { "year": 2037, - "value": 0.024628512202924252, - "units": "t CO2/MWh" + "value": 0.024628512202924252 }, { "year": 2038, - "value": 0.016419008135282843, - "units": "t CO2/MWh" + "value": 0.016419008135282843 }, { "year": 2039, - "value": 0.008209504067641425, - "units": "t CO2/MWh" + "value": 0.008209504067641425 }, { "year": 2040, - "value": 0.0, - "units": "t CO2/MWh" + "value": 0.0 }, { "year": 2041, - "value": 0.0, - "units": "t CO2/MWh" + "value": 0.0 }, { "year": 2042, - "value": 0.0, - "units": "t CO2/MWh" + "value": 0.0 }, { "year": 2043, - "value": 0.0, - "units": "t CO2/MWh" + "value": 0.0 }, { "year": 2044, - "value": 0.0, - "units": "t CO2/MWh" + "value": 0.0 }, { "year": 2045, - "value": 0.0, - "units": "t CO2/MWh" + "value": 0.0 }, { "year": 2046, - "value": 0.0, - "units": "t CO2/MWh" + "value": 0.0 }, { "year": 2047, - "value": 0.0, - "units": "t CO2/MWh" + "value": 0.0 }, { "year": 2048, - "value": 0.0, - "units": "t CO2/MWh" + "value": 0.0 }, { "year": 2049, - "value": 0.0, - "units": "t CO2/MWh" + "value": 0.0 }, { "year": 2050, - "value": 0.0, - "units": "t CO2/MWh" + "value": 0.0 } ] }, @@ -904,166 +745,135 @@ }, "projected_ei_trajectories": { "S1S2": { + "units": "t CO2/MWh", "projections": [ { "year": 2019, - "value": 0.2245739316927696, - "units": "t CO2/MWh" + "value": 0.2245739316927696 }, { "year": 2020, - "value": 0.2580129849830155, - "units": "t CO2/MWh" + "value": 0.2580129849830155 }, { "year": 2021, - "value": 0.26177945879248193, - "units": "t CO2/MWh" + "value": 0.26177945879248193 }, { "year": 2022, - "value": 0.2641607100651649, - "units": "t CO2/MWh" + "value": 0.2641607100651649 }, { "year": 2023, - "value": 0.26650337879692015, - "units": "t CO2/MWh" + "value": 0.26650337879692015 }, { "year": 2024, - "value": 0.2686911139325781, - "units": "t CO2/MWh" + "value": 0.2686911139325781 }, { "year": 2025, - "value": 0.27056941251245425, - "units": "t CO2/MWh" + "value": 0.27056941251245425 }, { "year": 2026, - "value": 0.2719804346544648, - "units": "t CO2/MWh" + "value": 0.2719804346544648 }, { "year": 2027, - "value": 0.2728233367299267, - "units": "t CO2/MWh" + "value": 0.2728233367299267 }, { "year": 2028, - "value": 0.27308083760219315, - "units": "t CO2/MWh" + "value": 0.27308083760219315 }, { "year": 2029, - "value": 0.2727671049650463, - "units": "t CO2/MWh" + "value": 0.2727671049650463 }, { "year": 2030, - "value": 0.27183449034074286, - "units": "t CO2/MWh" + "value": 0.27183449034074286 }, { "year": 2031, - "value": 0.2700901241414129, - "units": "t CO2/MWh" + "value": 0.2700901241414129 }, { "year": 2032, - "value": 0.2671298769114037, - "units": "t CO2/MWh" + "value": 0.2671298769114037 }, { "year": 2033, - "value": 0.26230202631499844, - "units": "t CO2/MWh" + "value": 0.26230202631499844 }, { "year": 2034, - "value": 0.25477759230500713, - "units": "t CO2/MWh" + "value": 0.25477759230500713 }, { "year": 2035, - "value": 0.24384528110981835, - "units": "t CO2/MWh" + "value": 0.24384528110981835 }, { "year": 2036, - "value": 0.22939320881946781, - "units": "t CO2/MWh" + "value": 0.22939320881946781 }, { "year": 2037, - "value": 0.21219242867517268, - "units": "t CO2/MWh" + "value": 0.21219242867517268 }, { "year": 2038, - "value": 0.19361663923163058, - "units": "t CO2/MWh" + "value": 0.19361663923163058 }, { "year": 2039, - "value": 0.17503814781395072, - "units": "t CO2/MWh" + "value": 0.17503814781395072 }, { "year": 2040, - "value": 0.15742325486563583, - "units": "t CO2/MWh" + "value": 0.15742325486563583 }, { "year": 2041, - "value": 0.14127686604553363, - "units": "t CO2/MWh" + "value": 0.14127686604553363 }, { "year": 2042, - "value": 0.12676706957864525, - "units": "t CO2/MWh" + "value": 0.12676706957864525 }, { "year": 2043, - "value": 0.11386749628109935, - "units": "t CO2/MWh" + "value": 0.11386749628109935 }, { "year": 2044, - "value": 0.10245835732472205, - "units": "t CO2/MWh" + "value": 0.10245835732472205 }, { "year": 2045, - "value": 0.09238520094315875, - "units": "t CO2/MWh" + "value": 0.09238520094315875 }, { "year": 2046, - "value": 0.08348922300821485, - "units": "t CO2/MWh" + "value": 0.08348922300821485 }, { "year": 2047, - "value": 0.07562130040069098, - "units": "t CO2/MWh" + "value": 0.07562130040069098 }, { "year": 2048, - "value": 0.06864747304171097, - "units": "t CO2/MWh" + "value": 0.06864747304171097 }, { "year": 2049, - "value": 0.06245019857761241, - "units": "t CO2/MWh" + "value": 0.06245019857761241 }, { "year": 2050, - "value": 0.056927654404565015, - "units": "t CO2/MWh" + "value": 0.056927654404565015 } ] }, @@ -1073,13 +883,11 @@ "country": "Germany", "ghg_s1s2": { "year": 2019, - "value": 122472002.661096, - "units": "MWh" + "value": 122472002.661096 }, "ghg_s3": { "year": 2019, - "value": 122472002.661096, - "units": "MWh" + "value": 122472002.661096 }, "industry_level_1": null, "industry_level_2": null, @@ -1100,166 +908,135 @@ "target_probability": 0.4285714285714285, "projected_ei_targets": { "S1S2": { + "units": "t CO2/MWh", "projections": [ { "year": 2019, - "value": 0.05724003223448632, - "units": "t CO2/MWh" + "value": 0.05724003223448632 }, { "year": 2020, - "value": 0.05724003223448632, - "units": "t CO2/MWh" + "value": 0.05724003223448632 }, { "year": 2021, - "value": 0.05503849253315993, - "units": "t CO2/MWh" + "value": 0.05503849253315993 }, { "year": 2022, - "value": 0.05283695283183353, - "units": "t CO2/MWh" + "value": 0.05283695283183353 }, { "year": 2023, - "value": 0.05063541313050714, - "units": "t CO2/MWh" + "value": 0.05063541313050714 }, { "year": 2024, - "value": 0.048433873429180735, - "units": "t CO2/MWh" + "value": 0.048433873429180735 }, { "year": 2025, - "value": 0.04623233372785435, - "units": "t CO2/MWh" + "value": 0.04623233372785435 }, { "year": 2026, - "value": 0.044030794026527945, - "units": "t CO2/MWh" + "value": 0.044030794026527945 }, { "year": 2027, - "value": 0.041829254325201556, - "units": "t CO2/MWh" + "value": 0.041829254325201556 }, { "year": 2028, - "value": 0.039627714623875154, - "units": "t CO2/MWh" + "value": 0.039627714623875154 }, { "year": 2029, - "value": 0.037426174922548766, - "units": "t CO2/MWh" + "value": 0.037426174922548766 }, { "year": 2030, - "value": 0.035224635221222364, - "units": "t CO2/MWh" + "value": 0.035224635221222364 }, { "year": 2031, - "value": 0.035224635221222364, - "units": "t CO2/MWh" + "value": 0.035224635221222364 }, { "year": 2032, - "value": 0.035224635221222364, - "units": "t CO2/MWh" + "value": 0.035224635221222364 }, { "year": 2033, - "value": 0.035224635221222364, - "units": "t CO2/MWh" + "value": 0.035224635221222364 }, { "year": 2034, - "value": 0.035224635221222364, - "units": "t CO2/MWh" + "value": 0.035224635221222364 }, { "year": 2035, - "value": 0.035224635221222364, - "units": "t CO2/MWh" + "value": 0.035224635221222364 }, { "year": 2036, - "value": 0.035224635221222364, - "units": "t CO2/MWh" + "value": 0.035224635221222364 }, { "year": 2037, - "value": 0.035224635221222364, - "units": "t CO2/MWh" + "value": 0.035224635221222364 }, { "year": 2038, - "value": 0.035224635221222364, - "units": "t CO2/MWh" + "value": 0.035224635221222364 }, { "year": 2039, - "value": 0.035224635221222364, - "units": "t CO2/MWh" + "value": 0.035224635221222364 }, { "year": 2040, - "value": 0.035224635221222364, - "units": "t CO2/MWh" + "value": 0.035224635221222364 }, { "year": 2041, - "value": 0.035224635221222364, - "units": "t CO2/MWh" + "value": 0.035224635221222364 }, { "year": 2042, - "value": 0.034377382463503116, - "units": "t CO2/MWh" + "value": 0.034377382463503116 }, { "year": 2043, - "value": 0.03205116202181782, - "units": "t CO2/MWh" + "value": 0.03205116202181782 }, { "year": 2044, - "value": 0.029863295768792552, - "units": "t CO2/MWh" + "value": 0.029863295768792552 }, { "year": 2045, - "value": 0.027813643646546475, - "units": "t CO2/MWh" + "value": 0.027813643646546475 }, { "year": 2046, - "value": 0.02589814089554389, - "units": "t CO2/MWh" + "value": 0.02589814089554389 }, { "year": 2047, - "value": 0.02411071887691341, - "units": "t CO2/MWh" + "value": 0.02411071887691341 }, { "year": 2048, - "value": 0.022444401628175067, - "units": "t CO2/MWh" + "value": 0.022444401628175067 }, { "year": 2049, - "value": 0.02089192129440824, - "units": "t CO2/MWh" + "value": 0.02089192129440824 }, { "year": 2050, - "value": 0.019446057728423578, - "units": "t CO2/MWh" + "value": 0.019446057728423578 } ] }, @@ -1268,166 +1045,135 @@ }, "projected_ei_trajectories": { "S1S2": { + "units": "t CO2/MWh", "projections": [ { "year": 2019, - "value": 0.05724003223448632, - "units": "t CO2/MWh" + "value": 0.05724003223448632 }, { "year": 2020, - "value": 0.05724003223448632, - "units": "t CO2/MWh" + "value": 0.05724003223448632 }, { "year": 2021, - "value": 0.05724003223448632, - "units": "t CO2/MWh" + "value": 0.05724003223448632 }, { "year": 2022, - "value": 0.05771285904689459, - "units": "t CO2/MWh" + "value": 0.05771285904689459 }, { "year": 2023, - "value": 0.05813380982894399, - "units": "t CO2/MWh" + "value": 0.05813380982894399 }, { "year": 2024, - "value": 0.05846658186194516, - "units": "t CO2/MWh" + "value": 0.05846658186194516 }, { "year": 2025, - "value": 0.05866567752158908, - "units": "t CO2/MWh" + "value": 0.05866567752158908 }, { "year": 2026, - "value": 0.05868918063328215, - "units": "t CO2/MWh" + "value": 0.05868918063328215 }, { "year": 2027, - "value": 0.05851907058710368, - "units": "t CO2/MWh" + "value": 0.05851907058710368 }, { "year": 2028, - "value": 0.05817029119812636, - "units": "t CO2/MWh" + "value": 0.05817029119812636 }, { "year": 2029, - "value": 0.0576764574644776, - "units": "t CO2/MWh" + "value": 0.0576764574644776 }, { "year": 2030, - "value": 0.05706627123655193, - "units": "t CO2/MWh" + "value": 0.05706627123655193 }, { "year": 2031, - "value": 0.056347417934553105, - "units": "t CO2/MWh" + "value": 0.056347417934553105 }, { "year": 2032, - "value": 0.055498976797223154, - "units": "t CO2/MWh" + "value": 0.055498976797223154 }, { "year": 2033, - "value": 0.054468751288682456, - "units": "t CO2/MWh" + "value": 0.054468751288682456 }, { "year": 2034, - "value": 0.05317938393618243, - "units": "t CO2/MWh" + "value": 0.05317938393618243 }, { "year": 2035, - "value": 0.05155357418089301, - "units": "t CO2/MWh" + "value": 0.05155357418089301 }, { "year": 2036, - "value": 0.049557819480595636, - "units": "t CO2/MWh" + "value": 0.049557819480595636 }, { "year": 2037, - "value": 0.047234621634526436, - "units": "t CO2/MWh" + "value": 0.047234621634526436 }, { "year": 2038, - "value": 0.04468952296242749, - "units": "t CO2/MWh" + "value": 0.04468952296242749 }, { "year": 2039, - "value": 0.04204531759673595, - "units": "t CO2/MWh" + "value": 0.04204531759673595 }, { "year": 2040, - "value": 0.03940414234055353, - "units": "t CO2/MWh" + "value": 0.03940414234055353 }, { "year": 2041, - "value": 0.03683489723360438, - "units": "t CO2/MWh" + "value": 0.03683489723360438 }, { "year": 2042, - "value": 0.034377382463503116, - "units": "t CO2/MWh" + "value": 0.034377382463503116 }, { "year": 2043, - "value": 0.03205116202181782, - "units": "t CO2/MWh" + "value": 0.03205116202181782 }, { "year": 2044, - "value": 0.02986329576879256, - "units": "t CO2/MWh" + "value": 0.02986329576879256 }, { "year": 2045, - "value": 0.027813643646546475, - "units": "t CO2/MWh" + "value": 0.027813643646546475 }, { "year": 2046, - "value": 0.02589814089554389, - "units": "t CO2/MWh" + "value": 0.02589814089554389 }, { "year": 2047, - "value": 0.02411071887691341, - "units": "t CO2/MWh" + "value": 0.02411071887691341 }, { "year": 2048, - "value": 0.022444401628175067, - "units": "t CO2/MWh" + "value": 0.022444401628175067 }, { "year": 2049, - "value": 0.02089192129440824, - "units": "t CO2/MWh" + "value": 0.02089192129440824 }, { "year": 2050, - "value": 0.01944605772842358, - "units": "t CO2/MWh" + "value": 0.01944605772842358 } ] }, @@ -1437,13 +1183,11 @@ "country": "France", "ghg_s1s2": { "year": 2019, - "value": 100080009.401725, - "units": "MWh" + "value": 100080009.401725 }, "ghg_s3": { "year": 2019, - "value": 100080009.401725, - "units": "MWh" + "value": 100080009.401725 }, "industry_level_1": null, "industry_level_2": null, @@ -1464,166 +1208,135 @@ "target_probability": 0.4285714285714285, "projected_ei_targets": { "S1S2": { + "units": "t CO2/MWh", "projections": [ { "year": 2019, - "value": 0.32885410556364697, - "units": "t CO2/MWh" + "value": 0.32885410556364697 }, { "year": 2020, - "value": 0.24267537955382837, - "units": "t CO2/MWh" + "value": 0.24267537955382837 }, { "year": 2021, - "value": 0.2292271730945991, - "units": "t CO2/MWh" + "value": 0.2292271730945991 }, { "year": 2022, - "value": 0.21874565974086543, - "units": "t CO2/MWh" + "value": 0.21874565974086543 }, { "year": 2023, - "value": 0.2084827854944359, - "units": "t CO2/MWh" + "value": 0.2084827854944359 }, { "year": 2024, - "value": 0.19834320266760228, - "units": "t CO2/MWh" + "value": 0.19834320266760228 }, { "year": 2025, - "value": 0.1881647584132854, - "units": "t CO2/MWh" + "value": 0.1881647584132854 }, { "year": 2026, - "value": 0.17774385033046483, - "units": "t CO2/MWh" + "value": 0.17774385033046483 }, { "year": 2027, - "value": 0.1669124201885628, - "units": "t CO2/MWh" + "value": 0.1669124201885628 }, { "year": 2028, - "value": 0.15561003127403028, - "units": "t CO2/MWh" + "value": 0.15561003127403028 }, { "year": 2029, - "value": 0.1438749152521488, - "units": "t CO2/MWh" + "value": 0.1438749152521488 }, { "year": 2030, - "value": 0.13177137671503097, - "units": "t CO2/MWh" + "value": 0.13177137671503097 }, { "year": 2031, - "value": 0.13276929275040422, - "units": "t CO2/MWh" + "value": 0.13276929275040422 }, { "year": 2032, - "value": 0.13335784521876742, - "units": "t CO2/MWh" + "value": 0.13335784521876742 }, { "year": 2033, - "value": 0.1333692776196653, - "units": "t CO2/MWh" + "value": 0.1333692776196653 }, { "year": 2034, - "value": 0.13254441770964823, - "units": "t CO2/MWh" + "value": 0.13254441770964823 }, { "year": 2035, - "value": 0.13062227989187505, - "units": "t CO2/MWh" + "value": 0.13062227989187505 }, { "year": 2036, - "value": 0.12750949848494236, - "units": "t CO2/MWh" + "value": 0.12750949848494236 }, { "year": 2037, - "value": 0.12340891587446856, - "units": "t CO2/MWh" + "value": 0.12340891587446856 }, { "year": 2038, - "value": 0.11875791839377972, - "units": "t CO2/MWh" + "value": 0.11875791839377972 }, { "year": 2039, - "value": 0.11402643138455733, - "units": "t CO2/MWh" + "value": 0.11402643138455733 }, { "year": 2040, - "value": 0.10956018713497392, - "units": "t CO2/MWh" + "value": 0.10956018713497392 }, { "year": 2041, - "value": 0.105545520564094, - "units": "t CO2/MWh" + "value": 0.105545520564094 }, { "year": 2042, - "value": 0.1020465962914532, - "units": "t CO2/MWh" + "value": 0.1020465962914532 }, { "year": 2043, - "value": 0.09905522969770901, - "units": "t CO2/MWh" + "value": 0.09905522969770901 }, { "year": 2044, - "value": 0.09652810581191351, - "units": "t CO2/MWh" + "value": 0.09652810581191351 }, { "year": 2045, - "value": 0.09440897997906797, - "units": "t CO2/MWh" + "value": 0.09440897997906797 }, { "year": 2046, - "value": 0.09264026712668219, - "units": "t CO2/MWh" + "value": 0.09264026712668219 }, { "year": 2047, - "value": 0.08517362334139754, - "units": "t CO2/MWh" + "value": 0.08517362334139754 }, { "year": 2048, - "value": 0.07790417551833904, - "units": "t CO2/MWh" + "value": 0.07790417551833904 }, { "year": 2049, - "value": 0.07136834505417619, - "units": "t CO2/MWh" + "value": 0.07136834505417619 }, { "year": 2050, - "value": 0.065478378493248, - "units": "t CO2/MWh" + "value": 0.065478378493248 } ] }, @@ -1632,166 +1345,135 @@ }, "projected_ei_trajectories": { "S1S2": { + "units": "t CO2/MWh", "projections": [ { "year": 2019, - "value": 0.32885410556364697, - "units": "t CO2/MWh" + "value": 0.32885410556364697 }, { "year": 2020, - "value": 0.24267537955382837, - "units": "t CO2/MWh" + "value": 0.24267537955382837 }, { "year": 2021, - "value": 0.24033457148509993, - "units": "t CO2/MWh" + "value": 0.24033457148509993 }, { "year": 2022, - "value": 0.2409579106377267, - "units": "t CO2/MWh" + "value": 0.2409579106377267 }, { "year": 2023, - "value": 0.2417818462064969, - "units": "t CO2/MWh" + "value": 0.2417818462064969 }, { "year": 2024, - "value": 0.24268976440202267, - "units": "t CO2/MWh" + "value": 0.24268976440202267 }, { "year": 2025, - "value": 0.24349460161928416, - "units": "t CO2/MWh" + "value": 0.24349460161928416 }, { "year": 2026, - "value": 0.24397138892257464, - "units": "t CO2/MWh" + "value": 0.24397138892257464 }, { "year": 2027, - "value": 0.24394253485616385, - "units": "t CO2/MWh" + "value": 0.24394253485616385 }, { "year": 2028, - "value": 0.24334831939244259, - "units": "t CO2/MWh" + "value": 0.24334831939244259 }, { "year": 2029, - "value": 0.24222255223671108, - "units": "t CO2/MWh" + "value": 0.24222255223671108 }, { "year": 2030, - "value": 0.24059988604314503, - "units": "t CO2/MWh" + "value": 0.24059988604314503 }, { "year": 2031, - "value": 0.23842889156088481, - "units": "t CO2/MWh" + "value": 0.23842889156088481 }, { "year": 2032, - "value": 0.2355131231197212, - "units": "t CO2/MWh" + "value": 0.2355131231197212 }, { "year": 2033, - "value": 0.23147855790212343, - "units": "t CO2/MWh" + "value": 0.23147855790212343 }, { "year": 2034, - "value": 0.2258037992235861, - "units": "t CO2/MWh" + "value": 0.2258037992235861 }, { "year": 2035, - "value": 0.21798746842676195, - "units": "t CO2/MWh" + "value": 0.21798746842676195 }, { "year": 2036, - "value": 0.20784958694524855, - "units": "t CO2/MWh" + "value": 0.20784958694524855 }, { "year": 2037, - "value": 0.19574887338422736, - "units": "t CO2/MWh" + "value": 0.19574887338422736 }, { "year": 2038, - "value": 0.18246782565903438, - "units": "t CO2/MWh" + "value": 0.18246782565903438 }, { "year": 2039, - "value": 0.16886324586102514, - "units": "t CO2/MWh" + "value": 0.16886324586102514 }, { "year": 2040, - "value": 0.15559468476457258, - "units": "t CO2/MWh" + "value": 0.15559468476457258 }, { "year": 2041, - "value": 0.14305525832021382, - "units": "t CO2/MWh" + "value": 0.14305525832021382 }, { "year": 2042, - "value": 0.1314251517577364, - "units": "t CO2/MWh" + "value": 0.1314251517577364 }, { "year": 2043, - "value": 0.12075040166572187, - "units": "t CO2/MWh" + "value": 0.12075040166572187 }, { "year": 2044, - "value": 0.11100441183553697, - "units": "t CO2/MWh" + "value": 0.11100441183553697 }, { "year": 2045, - "value": 0.10212645769373127, - "units": "t CO2/MWh" + "value": 0.10212645769373127 }, { "year": 2046, - "value": 0.09404317361078214, - "units": "t CO2/MWh" + "value": 0.09404317361078214 }, { "year": 2047, - "value": 0.0866796376574657, - "units": "t CO2/MWh" + "value": 0.0866796376574657 }, { "year": 2048, - "value": 0.07996464424982233, - "units": "t CO2/MWh" + "value": 0.07996464424982233 }, { "year": 2049, - "value": 0.07383289435141957, - "units": "t CO2/MWh" + "value": 0.07383289435141957 }, { "year": 2050, - "value": 0.0682256166185565, - "units": "t CO2/MWh" + "value": 0.0682256166185565 } ] }, @@ -1801,13 +1483,11 @@ "country": "Italy", "ghg_s1s2": { "year": 2019, - "value": 824864406.472471, - "units": "MWh" + "value": 824864406.472471 }, "ghg_s3": { "year": 2019, - "value": 824864406.472471, - "units": "MWh" + "value": 824864406.472471 }, "industry_level_1": null, "industry_level_2": null, @@ -1828,166 +1508,135 @@ "target_probability": 0.4285714285714285, "projected_ei_targets": { "S1S2": { + "units": "t CO2/MWh", "projections": [ { "year": 2019, - "value": 0.11693626260640376, - "units": "t CO2/MWh" + "value": 0.11693626260640376 }, { "year": 2020, - "value": 0.09820714020640375, - "units": "t CO2/MWh" + "value": 0.09820714020640375 }, { "year": 2021, - "value": 0.09450259463427568, - "units": "t CO2/MWh" + "value": 0.09450259463427568 }, { "year": 2022, - "value": 0.09042451580120292, - "units": "t CO2/MWh" + "value": 0.09042451580120292 }, { "year": 2023, - "value": 0.0863859166070523, - "units": "t CO2/MWh" + "value": 0.0863859166070523 }, { "year": 2024, - "value": 0.08238806892622057, - "units": "t CO2/MWh" + "value": 0.08238806892622057 }, { "year": 2025, - "value": 0.07843287107853578, - "units": "t CO2/MWh" + "value": 0.07843287107853578 }, { "year": 2026, - "value": 0.074520788083014, - "units": "t CO2/MWh" + "value": 0.074520788083014 }, { "year": 2027, - "value": 0.0706483732393083, - "units": "t CO2/MWh" + "value": 0.0706483732393083 }, { "year": 2028, - "value": 0.06680783388137478, - "units": "t CO2/MWh" + "value": 0.06680783388137478 }, { "year": 2029, - "value": 0.0629893644649377, - "units": "t CO2/MWh" + "value": 0.0629893644649377 }, { "year": 2030, - "value": 0.0591837718038815, - "units": "t CO2/MWh" + "value": 0.0591837718038815 }, { "year": 2031, - "value": 0.05908796042308796, - "units": "t CO2/MWh" + "value": 0.05908796042308796 }, { "year": 2032, - "value": 0.05899087998837707, - "units": "t CO2/MWh" + "value": 0.05899087998837707 }, { "year": 2033, - "value": 0.058260966679067036, - "units": "t CO2/MWh" + "value": 0.058260966679067036 }, { "year": 2034, - "value": 0.05620300525458842, - "units": "t CO2/MWh" + "value": 0.05620300525458842 }, { "year": 2035, - "value": 0.05385193734355564, - "units": "t CO2/MWh" + "value": 0.05385193734355564 }, { "year": 2036, - "value": 0.05120334775837065, - "units": "t CO2/MWh" + "value": 0.05120334775837065 }, { "year": 2037, - "value": 0.04832937913827607, - "units": "t CO2/MWh" + "value": 0.04832937913827607 }, { "year": 2038, - "value": 0.0453487042989272, - "units": "t CO2/MWh" + "value": 0.0453487042989272 }, { "year": 2039, - "value": 0.042377599117382966, - "units": "t CO2/MWh" + "value": 0.042377599117382966 }, { "year": 2040, - "value": 0.039500064614602357, - "units": "t CO2/MWh" + "value": 0.039500064614602357 }, { "year": 2041, - "value": 0.036764300222194735, - "units": "t CO2/MWh" + "value": 0.036764300222194735 }, { "year": 2042, - "value": 0.034191888556344675, - "units": "t CO2/MWh" + "value": 0.034191888556344675 }, { "year": 2043, - "value": 0.03178815623656653, - "units": "t CO2/MWh" + "value": 0.03178815623656653 }, { "year": 2044, - "value": 0.02954965284120169, - "units": "t CO2/MWh" + "value": 0.02954965284120169 }, { "year": 2045, - "value": 0.027468670206231026, - "units": "t CO2/MWh" + "value": 0.027468670206231026 }, { "year": 2046, - "value": 0.02553573366073086, - "units": "t CO2/MWh" + "value": 0.02553573366073086 }, { "year": 2047, - "value": 0.023740898407848238, - "units": "t CO2/MWh" + "value": 0.023740898407848238 }, { "year": 2048, - "value": 0.022074390976748723, - "units": "t CO2/MWh" + "value": 0.022074390976748723 }, { "year": 2049, - "value": 0.020526905480782127, - "units": "t CO2/MWh" + "value": 0.020526905480782127 }, { "year": 2050, - "value": 0.01908972259658938, - "units": "t CO2/MWh" + "value": 0.01908972259658938 } ] }, @@ -1996,166 +1645,135 @@ }, "projected_ei_trajectories": { "S1S2": { + "units": "t CO2/MWh", "projections": [ { "year": 2019, - "value": 0.11693626260640376, - "units": "t CO2/MWh" + "value": 0.11693626260640376 }, { "year": 2020, - "value": 0.09820714020640375, - "units": "t CO2/MWh" + "value": 0.09820714020640375 }, { "year": 2021, - "value": 0.09820714020640375, - "units": "t CO2/MWh" + "value": 0.09820714020640375 }, { "year": 2022, - "value": 0.091648880189256, - "units": "t CO2/MWh" + "value": 0.091648880189256 }, { "year": 2023, - "value": 0.0857837786254669, - "units": "t CO2/MWh" + "value": 0.0857837786254669 }, { "year": 2024, - "value": 0.08063416627878701, - "units": "t CO2/MWh" + "value": 0.08063416627878701 }, { "year": 2025, - "value": 0.07623337264441737, - "units": "t CO2/MWh" + "value": 0.07623337264441737 }, { "year": 2026, - "value": 0.0725895622312225, - "units": "t CO2/MWh" + "value": 0.0725895622312225 }, { "year": 2027, - "value": 0.06964222006118144, - "units": "t CO2/MWh" + "value": 0.06964222006118144 }, { "year": 2028, - "value": 0.06725452744775011, - "units": "t CO2/MWh" + "value": 0.06725452744775011 }, { "year": 2029, - "value": 0.06525432486541016, - "units": "t CO2/MWh" + "value": 0.06525432486541016 }, { "year": 2030, - "value": 0.06348020418472294, - "units": "t CO2/MWh" + "value": 0.06348020418472294 }, { "year": 2031, - "value": 0.06179800874580328, - "units": "t CO2/MWh" + "value": 0.06179800874580328 }, { "year": 2032, - "value": 0.06009353206332086, - "units": "t CO2/MWh" + "value": 0.06009353206332086 }, { "year": 2033, - "value": 0.058260966679067036, - "units": "t CO2/MWh" + "value": 0.058260966679067036 }, { "year": 2034, - "value": 0.05620300525458842, - "units": "t CO2/MWh" + "value": 0.05620300525458842 }, { "year": 2035, - "value": 0.053851937343555645, - "units": "t CO2/MWh" + "value": 0.053851937343555645 }, { "year": 2036, - "value": 0.05120334775837065, - "units": "t CO2/MWh" + "value": 0.05120334775837065 }, { "year": 2037, - "value": 0.04832937913827606, - "units": "t CO2/MWh" + "value": 0.04832937913827606 }, { "year": 2038, - "value": 0.045348704298927206, - "units": "t CO2/MWh" + "value": 0.045348704298927206 }, { "year": 2039, - "value": 0.042377599117382966, - "units": "t CO2/MWh" + "value": 0.042377599117382966 }, { "year": 2040, - "value": 0.039500064614602357, - "units": "t CO2/MWh" + "value": 0.039500064614602357 }, { "year": 2041, - "value": 0.03676430022219473, - "units": "t CO2/MWh" + "value": 0.03676430022219473 }, { "year": 2042, - "value": 0.034191888556344675, - "units": "t CO2/MWh" + "value": 0.034191888556344675 }, { "year": 2043, - "value": 0.03178815623656653, - "units": "t CO2/MWh" + "value": 0.03178815623656653 }, { "year": 2044, - "value": 0.02954965284120169, - "units": "t CO2/MWh" + "value": 0.02954965284120169 }, { "year": 2045, - "value": 0.027468670206231026, - "units": "t CO2/MWh" + "value": 0.027468670206231026 }, { "year": 2046, - "value": 0.02553573366073086, - "units": "t CO2/MWh" + "value": 0.02553573366073086 }, { "year": 2047, - "value": 0.023740898407848238, - "units": "t CO2/MWh" + "value": 0.023740898407848238 }, { "year": 2048, - "value": 0.022074390976748723, - "units": "t CO2/MWh" + "value": 0.022074390976748723 }, { "year": 2049, - "value": 0.020526905480782127, - "units": "t CO2/MWh" + "value": 0.020526905480782127 }, { "year": 2050, - "value": 0.01908972259658938, - "units": "t CO2/MWh" + "value": 0.01908972259658938 } ] }, @@ -2165,13 +1783,11 @@ "country": "France", "ghg_s1s2": { "year": 2019, - "value": 221601600.376334, - "units": "MWh" + "value": 221601600.376334 }, "ghg_s3": { "year": 2019, - "value": 221601600.376334, - "units": "MWh" + "value": 221601600.376334 }, "industry_level_1": null, "industry_level_2": null, @@ -2192,166 +1808,135 @@ "target_probability": 0.4285714285714285, "projected_ei_targets": { "S1S2": { + "units": "t CO2/MWh", "projections": [ { "year": 2019, - "value": 0.13171752365218167, - "units": "t CO2/MWh" + "value": 0.13171752365218167 }, { "year": 2020, - "value": 0.12261207069164322, - "units": "t CO2/MWh" + "value": 0.12261207069164322 }, { "year": 2021, - "value": 0.11302603607393294, - "units": "t CO2/MWh" + "value": 0.11302603607393294 }, { "year": 2022, - "value": 0.10344000145622266, - "units": "t CO2/MWh" + "value": 0.10344000145622266 }, { "year": 2023, - "value": 0.09385396683851237, - "units": "t CO2/MWh" + "value": 0.09385396683851237 }, { "year": 2024, - "value": 0.0842679322208021, - "units": "t CO2/MWh" + "value": 0.0842679322208021 }, { "year": 2025, - "value": 0.07468189760309181, - "units": "t CO2/MWh" + "value": 0.07468189760309181 }, { "year": 2026, - "value": 0.06509586298538153, - "units": "t CO2/MWh" + "value": 0.06509586298538153 }, { "year": 2027, - "value": 0.05550982836767124, - "units": "t CO2/MWh" + "value": 0.05550982836767124 }, { "year": 2028, - "value": 0.04592379374996095, - "units": "t CO2/MWh" + "value": 0.04592379374996095 }, { "year": 2029, - "value": 0.036337759132250666, - "units": "t CO2/MWh" + "value": 0.036337759132250666 }, { "year": 2030, - "value": 0.026751724514540373, - "units": "t CO2/MWh" + "value": 0.026751724514540373 }, { "year": 2031, - "value": 0.025414138288813358, - "units": "t CO2/MWh" + "value": 0.025414138288813358 }, { "year": 2032, - "value": 0.02407655206308634, - "units": "t CO2/MWh" + "value": 0.02407655206308634 }, { "year": 2033, - "value": 0.02273896583735932, - "units": "t CO2/MWh" + "value": 0.02273896583735932 }, { "year": 2034, - "value": 0.0214013796116323, - "units": "t CO2/MWh" + "value": 0.0214013796116323 }, { "year": 2035, - "value": 0.02006379338590528, - "units": "t CO2/MWh" + "value": 0.02006379338590528 }, { "year": 2036, - "value": 0.018726207160178265, - "units": "t CO2/MWh" + "value": 0.018726207160178265 }, { "year": 2037, - "value": 0.017388620934451246, - "units": "t CO2/MWh" + "value": 0.017388620934451246 }, { "year": 2038, - "value": 0.016051034708724224, - "units": "t CO2/MWh" + "value": 0.016051034708724224 }, { "year": 2039, - "value": 0.014713448482997205, - "units": "t CO2/MWh" + "value": 0.014713448482997205 }, { "year": 2040, - "value": 0.013375862257270187, - "units": "t CO2/MWh" + "value": 0.013375862257270187 }, { "year": 2041, - "value": 0.01203827603154317, - "units": "t CO2/MWh" + "value": 0.01203827603154317 }, { "year": 2042, - "value": 0.01070068980581615, - "units": "t CO2/MWh" + "value": 0.01070068980581615 }, { "year": 2043, - "value": 0.009363103580089132, - "units": "t CO2/MWh" + "value": 0.009363103580089132 }, { "year": 2044, - "value": 0.008025517354362112, - "units": "t CO2/MWh" + "value": 0.008025517354362112 }, { "year": 2045, - "value": 0.006687931128635093, - "units": "t CO2/MWh" + "value": 0.006687931128635093 }, { "year": 2046, - "value": 0.005350344902908075, - "units": "t CO2/MWh" + "value": 0.005350344902908075 }, { "year": 2047, - "value": 0.004012758677181056, - "units": "t CO2/MWh" + "value": 0.004012758677181056 }, { "year": 2048, - "value": 0.0026751724514540373, - "units": "t CO2/MWh" + "value": 0.0026751724514540373 }, { "year": 2049, - "value": 0.0013375862257270187, - "units": "t CO2/MWh" + "value": 0.0013375862257270187 }, { "year": 2050, - "value": 0.0, - "units": "t CO2/MWh" + "value": 0.0 } ] }, @@ -2360,166 +1945,135 @@ }, "projected_ei_trajectories": { "S1S2": { + "units": "t CO2/MWh", "projections": [ { "year": 2019, - "value": 0.13171752365218167, - "units": "t CO2/MWh" + "value": 0.13171752365218167 }, { "year": 2020, - "value": 0.12261207069164322, - "units": "t CO2/MWh" + "value": 0.12261207069164322 }, { "year": 2021, - "value": 0.11781480053060323, - "units": "t CO2/MWh" + "value": 0.11781480053060323 }, { "year": 2022, - "value": 0.11110279571939191, - "units": "t CO2/MWh" + "value": 0.11110279571939191 }, { "year": 2023, - "value": 0.10511033126462122, - "units": "t CO2/MWh" + "value": 0.10511033126462122 }, { "year": 2024, - "value": 0.0998440625805136, - "units": "t CO2/MWh" + "value": 0.0998440625805136 }, { "year": 2025, - "value": 0.09532472621216159, - "units": "t CO2/MWh" + "value": 0.09532472621216159 }, { "year": 2026, - "value": 0.09155174748227121, - "units": "t CO2/MWh" + "value": 0.09155174748227121 }, { "year": 2027, - "value": 0.08846033202293997, - "units": "t CO2/MWh" + "value": 0.08846033202293997 }, { "year": 2028, - "value": 0.08591247273271758, - "units": "t CO2/MWh" + "value": 0.08591247273271758 }, { "year": 2029, - "value": 0.08373448642509536, - "units": "t CO2/MWh" + "value": 0.08373448642509536 }, { "year": 2030, - "value": 0.08175955764990796, - "units": "t CO2/MWh" + "value": 0.08175955764990796 }, { "year": 2031, - "value": 0.07984147590506223, - "units": "t CO2/MWh" + "value": 0.07984147590506223 }, { "year": 2032, - "value": 0.07784495230409737, - "units": "t CO2/MWh" + "value": 0.07784495230409737 }, { "year": 2033, - "value": 0.07563283464330266, - "units": "t CO2/MWh" + "value": 0.07563283464330266 }, { "year": 2034, - "value": 0.07306982432940241, - "units": "t CO2/MWh" + "value": 0.07306982432940241 }, { "year": 2035, - "value": 0.07005696438144916, - "units": "t CO2/MWh" + "value": 0.07005696438144916 }, { "year": 2036, - "value": 0.06658601046251224, - "units": "t CO2/MWh" + "value": 0.06658601046251224 }, { "year": 2037, - "value": 0.06276370448860528, - "units": "t CO2/MWh" + "value": 0.06276370448860528 }, { "year": 2038, - "value": 0.05876872390303274, - "units": "t CO2/MWh" + "value": 0.05876872390303274 }, { "year": 2039, - "value": 0.054777147572727725, - "units": "t CO2/MWh" + "value": 0.054777147572727725 }, { "year": 2040, - "value": 0.05091594691972929, - "units": "t CO2/MWh" + "value": 0.05091594691972929 }, { "year": 2041, - "value": 0.04725718943754817, - "units": "t CO2/MWh" + "value": 0.04725718943754817 }, { "year": 2042, - "value": 0.04383217630275563, - "units": "t CO2/MWh" + "value": 0.04383217630275563 }, { "year": 2043, - "value": 0.0406474949482153, - "units": "t CO2/MWh" + "value": 0.0406474949482153 }, { "year": 2044, - "value": 0.03769659487458629, - "units": "t CO2/MWh" + "value": 0.03769659487458629 }, { "year": 2045, - "value": 0.034966751370449696, - "units": "t CO2/MWh" + "value": 0.034966751370449696 }, { "year": 2046, - "value": 0.032442872696675215, - "units": "t CO2/MWh" + "value": 0.032442872696675215 }, { "year": 2047, - "value": 0.030109452553962107, - "units": "t CO2/MWh" + "value": 0.030109452553962107 }, { "year": 2048, - "value": 0.02795151004903131, - "units": "t CO2/MWh" + "value": 0.02795151004903131 }, { "year": 2049, - "value": 0.02595499944003199, - "units": "t CO2/MWh" + "value": 0.02595499944003199 }, { "year": 2050, - "value": 0.02410695065139955, - "units": "t CO2/MWh" + "value": 0.02410695065139955 } ] }, @@ -2529,13 +2083,11 @@ "country": "Spain", "ghg_s1s2": { "year": 2019, - "value": 411300002.585938, - "units": "MWh" + "value": 411300002.585938 }, "ghg_s3": { "year": 2019, - "value": 411300002.585938, - "units": "MWh" + "value": 411300002.585938 }, "industry_level_1": null, "industry_level_2": null, @@ -2556,166 +2108,135 @@ "target_probability": 0.4285714285714285, "projected_ei_targets": { "S1S2": { + "units": "t CO2/MWh", "projections": [ { "year": 2019, - "value": 0.0026890305288561397, - "units": "t CO2/MWh" + "value": 0.0026890305288561397 }, { "year": 2020, - "value": 0.0026890305288561397, - "units": "t CO2/MWh" + "value": 0.0026890305288561397 }, { "year": 2021, - "value": 0.002668971468365766, - "units": "t CO2/MWh" + "value": 0.002668971468365766 }, { "year": 2022, - "value": 0.002681781276043892, - "units": "t CO2/MWh" + "value": 0.002681781276043892 }, { "year": 2023, - "value": 0.0026950164809220857, - "units": "t CO2/MWh" + "value": 0.0026950164809220857 }, { "year": 2024, - "value": 0.0027073640637838743, - "units": "t CO2/MWh" + "value": 0.0027073640637838743 }, { "year": 2025, - "value": 0.0027169929075958367, - "units": "t CO2/MWh" + "value": 0.0027169929075958367 }, { "year": 2026, - "value": 0.002721958787988488, - "units": "t CO2/MWh" + "value": 0.002721958787988488 }, { "year": 2027, - "value": 0.0027209811199068205, - "units": "t CO2/MWh" + "value": 0.0027209811199068205 }, { "year": 2028, - "value": 0.002713900288318041, - "units": "t CO2/MWh" + "value": 0.002713900288318041 }, { "year": 2029, - "value": 0.0027012227413963, - "units": "t CO2/MWh" + "value": 0.0027012227413963 }, { "year": 2030, - "value": 0.0026831563334262145, - "units": "t CO2/MWh" + "value": 0.0026831563334262145 }, { "year": 2031, - "value": 0.0026587802269145366, - "units": "t CO2/MWh" + "value": 0.0026587802269145366 }, { "year": 2032, - "value": 0.002625463804896353, - "units": "t CO2/MWh" + "value": 0.002625463804896353 }, { "year": 2033, - "value": 0.0025785410976512943, - "units": "t CO2/MWh" + "value": 0.0025785410976512943 }, { "year": 2034, - "value": 0.002511739142069507, - "units": "t CO2/MWh" + "value": 0.002511739142069507 }, { "year": 2035, - "value": 0.0024192586249034147, - "units": "t CO2/MWh" + "value": 0.0024192586249034147 }, { "year": 2036, - "value": 0.0022993852541420318, - "units": "t CO2/MWh" + "value": 0.0022993852541420318 }, { "year": 2037, - "value": 0.00215692574292776, - "units": "t CO2/MWh" + "value": 0.00215692574292776 }, { "year": 2038, - "value": 0.0020015798378847324, - "units": "t CO2/MWh" + "value": 0.0020015798378847324 }, { "year": 2039, - "value": 0.0018436363925601895, - "units": "t CO2/MWh" + "value": 0.0018436363925601895 }, { "year": 2040, - "value": 0.0016907946863419904, - "units": "t CO2/MWh" + "value": 0.0016907946863419904 }, { "year": 2041, - "value": 0.0015474741248293325, - "units": "t CO2/MWh" + "value": 0.0015474741248293325 }, { "year": 2042, - "value": 0.001415551845222879, - "units": "t CO2/MWh" + "value": 0.001415551845222879 }, { "year": 2043, - "value": 0.0012953462271072822, - "units": "t CO2/MWh" + "value": 0.0012953462271072822 }, { "year": 2044, - "value": 0.0011863596973796262, - "units": "t CO2/MWh" + "value": 0.0011863596973796262 }, { "year": 2045, - "value": 0.0010877326764421394, - "units": "t CO2/MWh" + "value": 0.0010877326764421394 }, { "year": 2046, - "value": 0.000998490941168868, - "units": "t CO2/MWh" + "value": 0.000998490941168868 }, { "year": 2047, - "value": 0.0009176694545361819, - "units": "t CO2/MWh" + "value": 0.0009176694545361819 }, { "year": 2048, - "value": 0.0008443685027029736, - "units": "t CO2/MWh" + "value": 0.0008443685027029736 }, { "year": 2049, - "value": 0.0007777746729560217, - "units": "t CO2/MWh" + "value": 0.0007777746729560217 }, { "year": 2050, - "value": 0.0007171644063577842, - "units": "t CO2/MWh" + "value": 0.0007171644063577842 } ] }, @@ -2724,166 +2245,135 @@ }, "projected_ei_trajectories": { "S1S2": { + "units": "t CO2/MWh", "projections": [ { "year": 2019, - "value": 0.0026890305288561397, - "units": "t CO2/MWh" + "value": 0.0026890305288561397 }, { "year": 2020, - "value": 0.0026890305288561397, - "units": "t CO2/MWh" + "value": 0.0026890305288561397 }, { "year": 2021, - "value": 0.002668971468365766, - "units": "t CO2/MWh" + "value": 0.002668971468365766 }, { "year": 2022, - "value": 0.002681781276043892, - "units": "t CO2/MWh" + "value": 0.002681781276043892 }, { "year": 2023, - "value": 0.0026950164809220857, - "units": "t CO2/MWh" + "value": 0.0026950164809220857 }, { "year": 2024, - "value": 0.0027073640637838743, - "units": "t CO2/MWh" + "value": 0.0027073640637838743 }, { "year": 2025, - "value": 0.0027169929075958367, - "units": "t CO2/MWh" + "value": 0.0027169929075958367 }, { "year": 2026, - "value": 0.002721958787988488, - "units": "t CO2/MWh" + "value": 0.002721958787988488 }, { "year": 2027, - "value": 0.0027209811199068205, - "units": "t CO2/MWh" + "value": 0.0027209811199068205 }, { "year": 2028, - "value": 0.002713900288318041, - "units": "t CO2/MWh" + "value": 0.002713900288318041 }, { "year": 2029, - "value": 0.0027012227413963, - "units": "t CO2/MWh" + "value": 0.0027012227413963 }, { "year": 2030, - "value": 0.0026831563334262145, - "units": "t CO2/MWh" + "value": 0.0026831563334262145 }, { "year": 2031, - "value": 0.0026587802269145366, - "units": "t CO2/MWh" + "value": 0.0026587802269145366 }, { "year": 2032, - "value": 0.002625463804896353, - "units": "t CO2/MWh" + "value": 0.002625463804896353 }, { "year": 2033, - "value": 0.0025785410976512943, - "units": "t CO2/MWh" + "value": 0.0025785410976512943 }, { "year": 2034, - "value": 0.002511739142069507, - "units": "t CO2/MWh" + "value": 0.002511739142069507 }, { "year": 2035, - "value": 0.0024192586249034147, - "units": "t CO2/MWh" + "value": 0.0024192586249034147 }, { "year": 2036, - "value": 0.0022993852541420318, - "units": "t CO2/MWh" + "value": 0.0022993852541420318 }, { "year": 2037, - "value": 0.00215692574292776, - "units": "t CO2/MWh" + "value": 0.00215692574292776 }, { "year": 2038, - "value": 0.0020015798378847324, - "units": "t CO2/MWh" + "value": 0.0020015798378847324 }, { "year": 2039, - "value": 0.0018436363925601895, - "units": "t CO2/MWh" + "value": 0.0018436363925601895 }, { "year": 2040, - "value": 0.0016907946863419904, - "units": "t CO2/MWh" + "value": 0.0016907946863419904 }, { "year": 2041, - "value": 0.0015474741248293325, - "units": "t CO2/MWh" + "value": 0.0015474741248293325 }, { "year": 2042, - "value": 0.001415551845222879, - "units": "t CO2/MWh" + "value": 0.001415551845222879 }, { "year": 2043, - "value": 0.0012953462271072822, - "units": "t CO2/MWh" + "value": 0.0012953462271072822 }, { "year": 2044, - "value": 0.0011863596973796262, - "units": "t CO2/MWh" + "value": 0.0011863596973796262 }, { "year": 2045, - "value": 0.0010877326764421394, - "units": "t CO2/MWh" + "value": 0.0010877326764421394 }, { "year": 2046, - "value": 0.000998490941168868, - "units": "t CO2/MWh" + "value": 0.000998490941168868 }, { "year": 2047, - "value": 0.0009176694545361819, - "units": "t CO2/MWh" + "value": 0.0009176694545361819 }, { "year": 2048, - "value": 0.0008443685027029736, - "units": "t CO2/MWh" + "value": 0.0008443685027029736 }, { "year": 2049, - "value": 0.0007777746729560217, - "units": "t CO2/MWh" + "value": 0.0007777746729560217 }, { "year": 2050, - "value": 0.0007171644063577842, - "units": "t CO2/MWh" + "value": 0.0007171644063577842 } ] }, @@ -2893,13 +2383,11 @@ "country": "South Korea", "ghg_s1s2": { "year": 2019, - "value": 1472652000.85954, - "units": "MWh" + "value": 1472652000.85954 }, "ghg_s3": { "year": 2019, - "value": 1472652000.85954, - "units": "MWh" + "value": 1472652000.85954 }, "industry_level_1": null, "industry_level_2": null, @@ -2920,166 +2408,135 @@ "target_probability": 0.4285714285714285, "projected_ei_targets": { "S1S2": { + "units": "t CO2/MWh", "projections": [ { "year": 2019, - "value": 1.191895541675586, - "units": "t CO2/MWh" + "value": 1.191895541675586 }, { "year": 2020, - "value": 1.191895541675586, - "units": "t CO2/MWh" + "value": 1.191895541675586 }, { "year": 2021, - "value": 1.1784867181153384, - "units": "t CO2/MWh" + "value": 1.1784867181153384 }, { "year": 2022, - "value": 1.1652549347367014, - "units": "t CO2/MWh" + "value": 1.1652549347367014 }, { "year": 2023, - "value": 1.1521033390928492, - "units": "t CO2/MWh" + "value": 1.1521033390928492 }, { "year": 2024, - "value": 1.1390810993752805, - "units": "t CO2/MWh" + "value": 1.1390810993752805 }, { "year": 2025, - "value": 1.1262566319505123, - "units": "t CO2/MWh" + "value": 1.1262566319505123 }, { "year": 2026, - "value": 1.1136913569217828, - "units": "t CO2/MWh" + "value": 1.1136913569217828 }, { "year": 2027, - "value": 1.101379774383997, - "units": "t CO2/MWh" + "value": 1.101379774383997 }, { "year": 2028, - "value": 1.0891833791776324, - "units": "t CO2/MWh" + "value": 1.0891833791776324 }, { "year": 2029, - "value": 1.0767919410014775, - "units": "t CO2/MWh" + "value": 1.0767919410014775 }, { "year": 2030, - "value": 1.063690242482851, - "units": "t CO2/MWh" + "value": 1.063690242482851 }, { "year": 2031, - "value": 1.0308822499058719, - "units": "t CO2/MWh" + "value": 1.0308822499058719 }, { "year": 2032, - "value": 0.9953541981486743, - "units": "t CO2/MWh" + "value": 0.9953541981486743 }, { "year": 2033, - "value": 0.9553862765454333, - "units": "t CO2/MWh" + "value": 0.9553862765454333 }, { "year": 2034, - "value": 0.9089210669859736, - "units": "t CO2/MWh" + "value": 0.9089210669859736 }, { "year": 2035, - "value": 0.8542988752019585, - "units": "t CO2/MWh" + "value": 0.8542988752019585 }, { "year": 2036, - "value": 0.7914397913799283, - "units": "t CO2/MWh" + "value": 0.7914397913799283 }, { "year": 2037, - "value": 0.722482599199799, - "units": "t CO2/MWh" + "value": 0.722482599199799 }, { "year": 2038, - "value": 0.6509845078808817, - "units": "t CO2/MWh" + "value": 0.6509845078808817 }, { "year": 2039, - "value": 0.5803529201379924, - "units": "t CO2/MWh" + "value": 0.5803529201379924 }, { "year": 2040, - "value": 0.5128556964634278, - "units": "t CO2/MWh" + "value": 0.5128556964634278 }, { "year": 2041, - "value": 0.44954742920472673, - "units": "t CO2/MWh" + "value": 0.44954742920472673 }, { "year": 2042, - "value": 0.39063748084363503, - "units": "t CO2/MWh" + "value": 0.39063748084363503 }, { "year": 2043, - "value": 0.3358760622401324, - "units": "t CO2/MWh" + "value": 0.3358760622401324 }, { "year": 2044, - "value": 0.2848161835955829, - "units": "t CO2/MWh" + "value": 0.2848161835955829 }, { "year": 2045, - "value": 0.23695917182771603, - "units": "t CO2/MWh" + "value": 0.23695917182771603 }, { "year": 2046, - "value": 0.19182516848955786, - "units": "t CO2/MWh" + "value": 0.19182516848955786 }, { "year": 2047, - "value": 0.14898234057954354, - "units": "t CO2/MWh" + "value": 0.14898234057954354 }, { "year": 2048, - "value": 0.10805536556109702, - "units": "t CO2/MWh" + "value": 0.10805536556109702 }, { "year": 2049, - "value": 0.06872430309122506, - "units": "t CO2/MWh" + "value": 0.06872430309122506 }, { "year": 2050, - "value": 0.030719485801461905, - "units": "t CO2/MWh" + "value": 0.030719485801461905 } ] }, @@ -3088,166 +2545,135 @@ }, "projected_ei_trajectories": { "S1S2": { + "units": "t CO2/MWh", "projections": [ { "year": 2019, - "value": 1.191895541675586, - "units": "t CO2/MWh" + "value": 1.191895541675586 }, { "year": 2020, - "value": 1.191895541675586, - "units": "t CO2/MWh" + "value": 1.191895541675586 }, { "year": 2021, - "value": 1.1914079783329325, - "units": "t CO2/MWh" + "value": 1.1914079783329325 }, { "year": 2022, - "value": 1.190784602860643, - "units": "t CO2/MWh" + "value": 1.190784602860643 }, { "year": 2023, - "value": 1.1897460701445728, - "units": "t CO2/MWh" + "value": 1.1897460701445728 }, { "year": 2024, - "value": 1.1880785232412383, - "units": "t CO2/MWh" + "value": 1.1880785232412383 }, { "year": 2025, - "value": 1.185527520927333, - "units": "t CO2/MWh" + "value": 1.185527520927333 }, { "year": 2026, - "value": 1.1818688853322172, - "units": "t CO2/MWh" + "value": 1.1818688853322172 }, { "year": 2027, - "value": 1.1769914953619132, - "units": "t CO2/MWh" + "value": 1.1769914953619132 }, { "year": 2028, - "value": 1.170879032843097, - "units": "t CO2/MWh" + "value": 1.170879032843097 }, { "year": 2029, - "value": 1.1634457602046508, - "units": "t CO2/MWh" + "value": 1.1634457602046508 }, { "year": 2030, - "value": 1.1543153098250205, - "units": "t CO2/MWh" + "value": 1.1543153098250205 }, { "year": 2031, - "value": 1.1426089520502793, - "units": "t CO2/MWh" + "value": 1.1426089520502793 }, { "year": 2032, - "value": 1.1267379271357045, - "units": "t CO2/MWh" + "value": 1.1267379271357045 }, { "year": 2033, - "value": 1.104271074659159, - "units": "t CO2/MWh" + "value": 1.104271074659159 }, { "year": 2034, - "value": 1.0721753974293307, - "units": "t CO2/MWh" + "value": 1.0721753974293307 }, { "year": 2035, - "value": 1.0278552160629018, - "units": "t CO2/MWh" + "value": 1.0278552160629018 }, { "year": 2036, - "value": 0.9708556454949443, - "units": "t CO2/MWh" + "value": 0.9708556454949443 }, { "year": 2037, - "value": 0.9038704386353956, - "units": "t CO2/MWh" + "value": 0.9038704386353956 }, { "year": 2038, - "value": 0.8317623522508689, - "units": "t CO2/MWh" + "value": 0.8317623522508689 }, { "year": 2039, - "value": 0.759432810919983, - "units": "t CO2/MWh" + "value": 0.759432810919983 }, { "year": 2040, - "value": 0.6903793059305394, - "units": "t CO2/MWh" + "value": 0.6903793059305394 }, { "year": 2041, - "value": 0.6264782551809344, - "units": "t CO2/MWh" + "value": 0.6264782551809344 }, { "year": 2042, - "value": 0.5684086193545546, - "units": "t CO2/MWh" + "value": 0.5684086193545546 }, { "year": 2043, - "value": 0.5161473206295295, - "units": "t CO2/MWh" + "value": 0.5161473206295295 }, { "year": 2044, - "value": 0.4693250070565412, - "units": "t CO2/MWh" + "value": 0.4693250070565412 }, { "year": 2045, - "value": 0.42743535163089424, - "units": "t CO2/MWh" + "value": 0.42743535163089424 }, { "year": 2046, - "value": 0.3899446765292378, - "units": "t CO2/MWh" + "value": 0.3899446765292378 }, { "year": 2047, - "value": 0.35634398477407864, - "units": "t CO2/MWh" + "value": 0.35634398477407864 }, { "year": 2048, - "value": 0.32617040920818324, - "units": "t CO2/MWh" + "value": 0.32617040920818324 }, { "year": 2049, - "value": 0.2990133267475179, - "units": "t CO2/MWh" + "value": 0.2990133267475179 }, { "year": 2050, - "value": 0.274513227726025, - "units": "t CO2/MWh" + "value": 0.274513227726025 } ] }, @@ -3257,13 +2683,11 @@ "country": "United Kingdom", "ghg_s1s2": { "year": 2019, - "value": 21142801.5077199, - "units": "MWh" + "value": 21142801.5077199 }, "ghg_s3": { "year": 2019, - "value": 21142801.5077199, - "units": "MWh" + "value": 21142801.5077199 }, "industry_level_1": null, "industry_level_2": null, @@ -3284,166 +2708,135 @@ "target_probability": 0.4285714285714285, "projected_ei_targets": { "S1S2": { + "units": "t CO2/MWh", "projections": [ { "year": 2019, - "value": 0.8759061471467042, - "units": "t CO2/MWh" + "value": 0.8759061471467042 }, { "year": 2020, - "value": 0.8710761366058977, - "units": "t CO2/MWh" + "value": 0.8710761366058977 }, { "year": 2021, - "value": 0.87233257371262, - "units": "t CO2/MWh" + "value": 0.87233257371262 }, { "year": 2022, - "value": 0.8731795494365063, - "units": "t CO2/MWh" + "value": 0.8731795494365063 }, { "year": 2023, - "value": 0.8733811639019202, - "units": "t CO2/MWh" + "value": 0.8733811639019202 }, { "year": 2024, - "value": 0.8725897216554522, - "units": "t CO2/MWh" + "value": 0.8725897216554522 }, { "year": 2025, - "value": 0.8703762869410826, - "units": "t CO2/MWh" + "value": 0.8703762869410826 }, { "year": 2026, - "value": 0.8663587020539113, - "units": "t CO2/MWh" + "value": 0.8663587020539113 }, { "year": 2027, - "value": 0.8603930175807132, - "units": "t CO2/MWh" + "value": 0.8603930175807132 }, { "year": 2028, - "value": 0.852642949257223, - "units": "t CO2/MWh" + "value": 0.852642949257223 }, { "year": 2029, - "value": 0.8434205038290371, - "units": "t CO2/MWh" + "value": 0.8434205038290371 }, { "year": 2030, - "value": 0.8329427969769639, - "units": "t CO2/MWh" + "value": 0.8329427969769639 }, { "year": 2031, - "value": 0.8211620263463444, - "units": "t CO2/MWh" + "value": 0.8211620263463444 }, { "year": 2032, - "value": 0.807672315915647, - "units": "t CO2/MWh" + "value": 0.807672315915647 }, { "year": 2033, - "value": 0.7916681808246369, - "units": "t CO2/MWh" + "value": 0.7916681808246369 }, { "year": 2034, - "value": 0.7720267284765746, - "units": "t CO2/MWh" + "value": 0.7720267284765746 }, { "year": 2035, - "value": 0.7476606709729696, - "units": "t CO2/MWh" + "value": 0.7476606709729696 }, { "year": 2036, - "value": 0.7181256859452584, - "units": "t CO2/MWh" + "value": 0.7181256859452584 }, { "year": 2037, - "value": 0.6840543664153996, - "units": "t CO2/MWh" + "value": 0.6840543664153996 }, { "year": 2038, - "value": 0.6469543346153854, - "units": "t CO2/MWh" + "value": 0.6469543346153854 }, { "year": 2039, - "value": 0.6085581112867321, - "units": "t CO2/MWh" + "value": 0.6085581112867321 }, { "year": 2040, - "value": 0.5702957411984311, - "units": "t CO2/MWh" + "value": 0.5702957411984311 }, { "year": 2041, - "value": 0.5331256402850014, - "units": "t CO2/MWh" + "value": 0.5331256402850014 }, { "year": 2042, - "value": 0.4975973549571816, - "units": "t CO2/MWh" + "value": 0.4975973549571816 }, { "year": 2043, - "value": 0.46397778181495414, - "units": "t CO2/MWh" + "value": 0.46397778181495414 }, { "year": 2044, - "value": 0.4323599585173005, - "units": "t CO2/MWh" + "value": 0.4323599585173005 }, { "year": 2045, - "value": 0.40273722118393573, - "units": "t CO2/MWh" + "value": 0.40273722118393573 }, { "year": 2046, - "value": 0.37504878792884877, - "units": "t CO2/MWh" + "value": 0.37504878792884877 }, { "year": 2047, - "value": 0.3492063950129044, - "units": "t CO2/MWh" + "value": 0.3492063950129044 }, { "year": 2048, - "value": 0.3251094561969139, - "units": "t CO2/MWh" + "value": 0.3251094561969139 }, { "year": 2049, - "value": 0.3026535488613751, - "units": "t CO2/MWh" + "value": 0.3026535488613751 }, { "year": 2050, - "value": 0.28173508695317845, - "units": "t CO2/MWh" + "value": 0.28173508695317845 } ] }, @@ -3452,166 +2845,135 @@ }, "projected_ei_trajectories": { "S1S2": { + "units": "t CO2/MWh", "projections": [ { "year": 2019, - "value": 0.8759061471467042, - "units": "t CO2/MWh" + "value": 0.8759061471467042 }, { "year": 2020, - "value": 0.8710761366058977, - "units": "t CO2/MWh" + "value": 0.8710761366058977 }, { "year": 2021, - "value": 0.87233257371262, - "units": "t CO2/MWh" + "value": 0.87233257371262 }, { "year": 2022, - "value": 0.8731795494365063, - "units": "t CO2/MWh" + "value": 0.8731795494365063 }, { "year": 2023, - "value": 0.8733811639019202, - "units": "t CO2/MWh" + "value": 0.8733811639019202 }, { "year": 2024, - "value": 0.8725897216554522, - "units": "t CO2/MWh" + "value": 0.8725897216554522 }, { "year": 2025, - "value": 0.8703762869410826, - "units": "t CO2/MWh" + "value": 0.8703762869410826 }, { "year": 2026, - "value": 0.8663587020539113, - "units": "t CO2/MWh" + "value": 0.8663587020539113 }, { "year": 2027, - "value": 0.8603930175807132, - "units": "t CO2/MWh" + "value": 0.8603930175807132 }, { "year": 2028, - "value": 0.852642949257223, - "units": "t CO2/MWh" + "value": 0.852642949257223 }, { "year": 2029, - "value": 0.8434205038290371, - "units": "t CO2/MWh" + "value": 0.8434205038290371 }, { "year": 2030, - "value": 0.8329427969769639, - "units": "t CO2/MWh" + "value": 0.8329427969769639 }, { "year": 2031, - "value": 0.8211620263463444, - "units": "t CO2/MWh" + "value": 0.8211620263463444 }, { "year": 2032, - "value": 0.807672315915647, - "units": "t CO2/MWh" + "value": 0.807672315915647 }, { "year": 2033, - "value": 0.7916681808246369, - "units": "t CO2/MWh" + "value": 0.7916681808246369 }, { "year": 2034, - "value": 0.7720267284765746, - "units": "t CO2/MWh" + "value": 0.7720267284765746 }, { "year": 2035, - "value": 0.7476606709729696, - "units": "t CO2/MWh" + "value": 0.7476606709729696 }, { "year": 2036, - "value": 0.7181256859452584, - "units": "t CO2/MWh" + "value": 0.7181256859452584 }, { "year": 2037, - "value": 0.6840543664153996, - "units": "t CO2/MWh" + "value": 0.6840543664153996 }, { "year": 2038, - "value": 0.6469543346153854, - "units": "t CO2/MWh" + "value": 0.6469543346153854 }, { "year": 2039, - "value": 0.6085581112867321, - "units": "t CO2/MWh" + "value": 0.6085581112867321 }, { "year": 2040, - "value": 0.5702957411984311, - "units": "t CO2/MWh" + "value": 0.5702957411984311 }, { "year": 2041, - "value": 0.5331256402850014, - "units": "t CO2/MWh" + "value": 0.5331256402850014 }, { "year": 2042, - "value": 0.4975973549571816, - "units": "t CO2/MWh" + "value": 0.4975973549571816 }, { "year": 2043, - "value": 0.46397778181495414, - "units": "t CO2/MWh" + "value": 0.46397778181495414 }, { "year": 2044, - "value": 0.4323599585173005, - "units": "t CO2/MWh" + "value": 0.4323599585173005 }, { "year": 2045, - "value": 0.40273722118393573, - "units": "t CO2/MWh" + "value": 0.40273722118393573 }, { "year": 2046, - "value": 0.37504878792884877, - "units": "t CO2/MWh" + "value": 0.37504878792884877 }, { "year": 2047, - "value": 0.3492063950129044, - "units": "t CO2/MWh" + "value": 0.3492063950129044 }, { "year": 2048, - "value": 0.3251094561969139, - "units": "t CO2/MWh" + "value": 0.3251094561969139 }, { "year": 2049, - "value": 0.3026535488613751, - "units": "t CO2/MWh" + "value": 0.3026535488613751 }, { "year": 2050, - "value": 0.28173508695317845, - "units": "t CO2/MWh" + "value": 0.28173508695317845 } ] }, @@ -3621,13 +2983,11 @@ "country": "India", "ghg_s1s2": { "year": 2019, - "value": 988020000.90193, - "units": "MWh" + "value": 988020000.90193 }, "ghg_s3": { "year": 2019, - "value": 988020000.90193, - "units": "MWh" + "value": 988020000.90193 }, "industry_level_1": null, "industry_level_2": null, @@ -3648,166 +3008,135 @@ "target_probability": 0.4285714285714285, "projected_ei_targets": { "S1S2": { + "units": "t CO2/MWh", "projections": [ { "year": 2019, - "value": 0.9992111823532782, - "units": "t CO2/MWh" + "value": 0.9992111823532782 }, { "year": 2020, - "value": 1.0103398427559804, - "units": "t CO2/MWh" + "value": 1.0103398427559804 }, { "year": 2021, - "value": 0.9956918852884153, - "units": "t CO2/MWh" + "value": 0.9956918852884153 }, { "year": 2022, - "value": 1.0012791550610378, - "units": "t CO2/MWh" + "value": 1.0012791550610378 }, { "year": 2023, - "value": 1.0089503553840877, - "units": "t CO2/MWh" + "value": 1.0089503553840877 }, { "year": 2024, - "value": 1.0018093082170547, - "units": "t CO2/MWh" + "value": 1.0018093082170547 }, { "year": 2025, - "value": 0.9949424043532965, - "units": "t CO2/MWh" + "value": 0.9949424043532965 }, { "year": 2026, - "value": 0.9867390954359995, - "units": "t CO2/MWh" + "value": 0.9867390954359995 }, { "year": 2027, - "value": 0.9757622063943475, - "units": "t CO2/MWh" + "value": 0.9757622063943475 }, { "year": 2028, - "value": 0.9613833928741916, - "units": "t CO2/MWh" + "value": 0.9613833928741916 }, { "year": 2029, - "value": 0.9438045441854004, - "units": "t CO2/MWh" + "value": 0.9438045441854004 }, { "year": 2030, - "value": 0.9235280248451119, - "units": "t CO2/MWh" + "value": 0.9235280248451119 }, { "year": 2031, - "value": 0.9008159614373377, - "units": "t CO2/MWh" + "value": 0.9008159614373377 }, { "year": 2032, - "value": 0.8753597024903548, - "units": "t CO2/MWh" + "value": 0.8753597024903548 }, { "year": 2033, - "value": 0.8461128134246444, - "units": "t CO2/MWh" + "value": 0.8461128134246444 }, { "year": 2034, - "value": 0.8113582559054615, - "units": "t CO2/MWh" + "value": 0.8113582559054615 }, { "year": 2035, - "value": 0.7692858373477657, - "units": "t CO2/MWh" + "value": 0.7692858373477657 }, { "year": 2036, - "value": 0.7191363964574996, - "units": "t CO2/MWh" + "value": 0.7191363964574996 }, { "year": 2037, - "value": 0.6621270762176754, - "units": "t CO2/MWh" + "value": 0.6621270762176754 }, { "year": 2038, - "value": 0.6011136519924398, - "units": "t CO2/MWh" + "value": 0.6011136519924398 }, { "year": 2039, - "value": 0.5392560449767507, - "units": "t CO2/MWh" + "value": 0.5392560449767507 }, { "year": 2040, - "value": 0.4789322540371506, - "units": "t CO2/MWh" + "value": 0.4789322540371506 }, { "year": 2041, - "value": 0.4214608727336099, - "units": "t CO2/MWh" + "value": 0.4214608727336099 }, { "year": 2042, - "value": 0.3673292808327215, - "units": "t CO2/MWh" + "value": 0.3673292808327215 }, { "year": 2043, - "value": 0.31652321414784873, - "units": "t CO2/MWh" + "value": 0.31652321414784873 }, { "year": 2044, - "value": 0.26877906546540586, - "units": "t CO2/MWh" + "value": 0.26877906546540586 }, { "year": 2045, - "value": 0.2237368584766153, - "units": "t CO2/MWh" + "value": 0.2237368584766153 }, { "year": 2046, - "value": 0.1810213531499593, - "units": "t CO2/MWh" + "value": 0.1810213531499593 }, { "year": 2047, - "value": 0.1402803762086245, - "units": "t CO2/MWh" + "value": 0.1402803762086245 }, { "year": 2048, - "value": 0.10120010555296251, - "units": "t CO2/MWh" + "value": 0.10120010555296251 }, { "year": 2049, - "value": 0.06350876058804442, - "units": "t CO2/MWh" + "value": 0.06350876058804442 }, { "year": 2050, - "value": 0.026974867145530285, - "units": "t CO2/MWh" + "value": 0.026974867145530285 } ] }, @@ -3816,166 +3145,135 @@ }, "projected_ei_trajectories": { "S1S2": { + "units": "t CO2/MWh", "projections": [ { "year": 2019, - "value": 0.9992111823532782, - "units": "t CO2/MWh" + "value": 0.9992111823532782 }, { "year": 2020, - "value": 1.0103398427559804, - "units": "t CO2/MWh" + "value": 1.0103398427559804 }, { "year": 2021, - "value": 1.0077070564272337, - "units": "t CO2/MWh" + "value": 1.0077070564272337 }, { "year": 2022, - "value": 1.025016728126704, - "units": "t CO2/MWh" + "value": 1.025016728126704 }, { "year": 2023, - "value": 1.0439447193674907, - "units": "t CO2/MWh" + "value": 1.0439447193674907 }, { "year": 2024, - "value": 1.0636226213883666, - "units": "t CO2/MWh" + "value": 1.0636226213883666 }, { "year": 2025, - "value": 1.082559148211577, - "units": "t CO2/MWh" + "value": 1.082559148211577 }, { "year": 2026, - "value": 1.0988786127737018, - "units": "t CO2/MWh" + "value": 1.0988786127737018 }, { "year": 2027, - "value": 1.1110470492716042, - "units": "t CO2/MWh" + "value": 1.1110470492716042 }, { "year": 2028, - "value": 1.1185463596198226, - "units": "t CO2/MWh" + "value": 1.1185463596198226 }, { "year": 2029, - "value": 1.1217709668143654, - "units": "t CO2/MWh" + "value": 1.1217709668143654 }, { "year": 2030, - "value": 1.121315483997907, - "units": "t CO2/MWh" + "value": 1.121315483997907 }, { "year": 2031, - "value": 1.117300801389678, - "units": "t CO2/MWh" + "value": 1.117300801389678 }, { "year": 2032, - "value": 1.1089596162754503, - "units": "t CO2/MWh" + "value": 1.1089596162754503 }, { "year": 2033, - "value": 1.0944259660255098, - "units": "t CO2/MWh" + "value": 1.0944259660255098 }, { "year": 2034, - "value": 1.0708792507706404, - "units": "t CO2/MWh" + "value": 1.0708792507706404 }, { "year": 2035, - "value": 1.0354616274415578, - "units": "t CO2/MWh" + "value": 1.0354616274415578 }, { "year": 2036, - "value": 0.9870039512902982, - "units": "t CO2/MWh" + "value": 0.9870039512902982 }, { "year": 2037, - "value": 0.9273580045136894, - "units": "t CO2/MWh" + "value": 0.9273580045136894 }, { "year": 2038, - "value": 0.8608508436740142, - "units": "t CO2/MWh" + "value": 0.8608508436740142 }, { "year": 2039, - "value": 0.7923179796811393, - "units": "t CO2/MWh" + "value": 0.7923179796811393 }, { "year": 2040, - "value": 0.7255118652043424, - "units": "t CO2/MWh" + "value": 0.7255118652043424 }, { "year": 2041, - "value": 0.6626667415033559, - "units": "t CO2/MWh" + "value": 0.6626667415033559 }, { "year": 2042, - "value": 0.6047910562642032, - "units": "t CO2/MWh" + "value": 0.6047910562642032 }, { "year": 2043, - "value": 0.5521203117082054, - "units": "t CO2/MWh" + "value": 0.5521203117082054 }, { "year": 2044, - "value": 0.5044745831076901, - "units": "t CO2/MWh" + "value": 0.5044745831076901 }, { "year": 2045, - "value": 0.46148281149329234, - "units": "t CO2/MWh" + "value": 0.46148281149329234 }, { "year": 2046, - "value": 0.4227075550217969, - "units": "t CO2/MWh" + "value": 0.4227075550217969 }, { "year": 2047, - "value": 0.387708721079145, - "units": "t CO2/MWh" + "value": 0.387708721079145 }, { "year": 2048, - "value": 0.3560732489596707, - "units": "t CO2/MWh" + "value": 0.3560732489596707 }, { "year": 2049, - "value": 0.32742682453181926, - "units": "t CO2/MWh" + "value": 0.32742682453181926 }, { "year": 2050, - "value": 0.30143654033545186, - "units": "t CO2/MWh" + "value": 0.30143654033545186 } ] }, @@ -3985,13 +3283,11 @@ "country": "Australia", "ghg_s1s2": { "year": 2019, - "value": 73011601.1549344, - "units": "MWh" + "value": 73011601.1549344 }, "ghg_s3": { "year": 2019, - "value": 73011601.1549344, - "units": "MWh" + "value": 73011601.1549344 }, "industry_level_1": null, "industry_level_2": null, @@ -4012,6 +3308,7 @@ "target_probability": 0.4285714285714285, "projected_ei_targets": { "S1S2": { + "units": "t CO2/MWh", "projections": [ { "year": 2019, @@ -4148,6 +3445,7 @@ }, "projected_ei_trajectories": { "S1S2": { + "units": "t CO2/MWh", "projections": [ { "year": 2019, @@ -4285,13 +3583,11 @@ "country": "Poland", "ghg_s1s2": { "year": 2019, - "value": 288420004.281372, - "units": "MWh" + "value": 288420004.281372 }, "ghg_s3": { "year": 2019, - "value": 288420004.281372, - "units": "MWh" + "value": 288420004.281372 }, "industry_level_1": null, "industry_level_2": null, @@ -4312,166 +3608,135 @@ "target_probability": 0.4285714285714285, "projected_ei_targets": { "S1S2": { + "units": "t CO2/MWh", "projections": [ { "year": 2019, - "value": 0.8216553409097898, - "units": "t CO2/MWh" + "value": 0.8216553409097898 }, { "year": 2020, - "value": 0.8216553409097898, - "units": "t CO2/MWh" + "value": 0.8216553409097898 }, { "year": 2021, - "value": 0.839571252418603, - "units": "t CO2/MWh" + "value": 0.839571252418603 }, { "year": 2022, - "value": 0.8582955407397551, - "units": "t CO2/MWh" + "value": 0.8582955407397551 }, { "year": 2023, - "value": 0.876060259960367, - "units": "t CO2/MWh" + "value": 0.876060259960367 }, { "year": 2024, - "value": 0.8920216776655728, - "units": "t CO2/MWh" + "value": 0.8920216776655728 }, { "year": 2025, - "value": 0.9050906501522457, - "units": "t CO2/MWh" + "value": 0.9050906501522457 }, { "year": 2026, - "value": 0.9142238570532936, - "units": "t CO2/MWh" + "value": 0.9142238570532936 }, { "year": 2027, - "value": 0.9189144369121717, - "units": "t CO2/MWh" + "value": 0.9189144369121717 }, { "year": 2028, - "value": 0.9194427268256747, - "units": "t CO2/MWh" + "value": 0.9194427268256747 }, { "year": 2029, - "value": 0.9165735326005275, - "units": "t CO2/MWh" + "value": 0.9165735326005275 }, { "year": 2030, - "value": 0.911011246089303, - "units": "t CO2/MWh" + "value": 0.911011246089303 }, { "year": 2031, - "value": 0.9030201759984526, - "units": "t CO2/MWh" + "value": 0.9030201759984526 }, { "year": 2032, - "value": 0.8922499745204598, - "units": "t CO2/MWh" + "value": 0.8922499745204598 }, { "year": 2033, - "value": 0.8776792896597859, - "units": "t CO2/MWh" + "value": 0.8776792896597859 }, { "year": 2034, - "value": 0.8577497701976301, - "units": "t CO2/MWh" + "value": 0.8577497701976301 }, { "year": 2035, - "value": 0.8309095837324832, - "units": "t CO2/MWh" + "value": 0.8309095837324832 }, { "year": 2036, - "value": 0.7965535983998453, - "units": "t CO2/MWh" + "value": 0.7965535983998453 }, { "year": 2037, - "value": 0.7557008906815798, - "units": "t CO2/MWh" + "value": 0.7557008906815798 }, { "year": 2038, - "value": 0.7106744132774588, - "units": "t CO2/MWh" + "value": 0.7106744132774588 }, { "year": 2039, - "value": 0.6640778432165056, - "units": "t CO2/MWh" + "value": 0.6640778432165056 }, { "year": 2040, - "value": 0.6179853372564201, - "units": "t CO2/MWh" + "value": 0.6179853372564201 }, { "year": 2041, - "value": 0.5737112051679787, - "units": "t CO2/MWh" + "value": 0.5737112051679787 }, { "year": 2042, - "value": 0.5319399188112491, - "units": "t CO2/MWh" + "value": 0.5319399188112491 }, { "year": 2043, - "value": 0.4929409579278257, - "units": "t CO2/MWh" + "value": 0.4929409579278257 }, { "year": 2044, - "value": 0.45674377196784977, - "units": "t CO2/MWh" + "value": 0.45674377196784977 }, { "year": 2045, - "value": 0.42325174057782106, - "units": "t CO2/MWh" + "value": 0.42325174057782106 }, { "year": 2046, - "value": 0.39230892919531823, - "units": "t CO2/MWh" + "value": 0.39230892919531823 }, { "year": 2047, - "value": 0.3637368879238732, - "units": "t CO2/MWh" + "value": 0.3637368879238732 }, { "year": 2048, - "value": 0.33735402627252425, - "units": "t CO2/MWh" + "value": 0.33735402627252425 }, { "year": 2049, - "value": 0.3129852876511019, - "units": "t CO2/MWh" + "value": 0.3129852876511019 }, { "year": 2050, - "value": 0.290466560681228, - "units": "t CO2/MWh" + "value": 0.290466560681228 } ] }, @@ -4480,166 +3745,135 @@ }, "projected_ei_trajectories": { "S1S2": { + "units": "t CO2/MWh", "projections": [ { "year": 2019, - "value": 0.8216553409097898, - "units": "t CO2/MWh" + "value": 0.8216553409097898 }, { "year": 2020, - "value": 0.8216553409097898, - "units": "t CO2/MWh" + "value": 0.8216553409097898 }, { "year": 2021, - "value": 0.839571252418603, - "units": "t CO2/MWh" + "value": 0.839571252418603 }, { "year": 2022, - "value": 0.8582955407397551, - "units": "t CO2/MWh" + "value": 0.8582955407397551 }, { "year": 2023, - "value": 0.876060259960367, - "units": "t CO2/MWh" + "value": 0.876060259960367 }, { "year": 2024, - "value": 0.8920216776655728, - "units": "t CO2/MWh" + "value": 0.8920216776655728 }, { "year": 2025, - "value": 0.9050906501522457, - "units": "t CO2/MWh" + "value": 0.9050906501522457 }, { "year": 2026, - "value": 0.9142238570532936, - "units": "t CO2/MWh" + "value": 0.9142238570532936 }, { "year": 2027, - "value": 0.9189144369121717, - "units": "t CO2/MWh" + "value": 0.9189144369121717 }, { "year": 2028, - "value": 0.9194427268256747, - "units": "t CO2/MWh" + "value": 0.9194427268256747 }, { "year": 2029, - "value": 0.9165735326005275, - "units": "t CO2/MWh" + "value": 0.9165735326005275 }, { "year": 2030, - "value": 0.911011246089303, - "units": "t CO2/MWh" + "value": 0.911011246089303 }, { "year": 2031, - "value": 0.9030201759984526, - "units": "t CO2/MWh" + "value": 0.9030201759984526 }, { "year": 2032, - "value": 0.8922499745204598, - "units": "t CO2/MWh" + "value": 0.8922499745204598 }, { "year": 2033, - "value": 0.8776792896597859, - "units": "t CO2/MWh" + "value": 0.8776792896597859 }, { "year": 2034, - "value": 0.8577497701976301, - "units": "t CO2/MWh" + "value": 0.8577497701976301 }, { "year": 2035, - "value": 0.8309095837324832, - "units": "t CO2/MWh" + "value": 0.8309095837324832 }, { "year": 2036, - "value": 0.7965535983998453, - "units": "t CO2/MWh" + "value": 0.7965535983998453 }, { "year": 2037, - "value": 0.7557008906815798, - "units": "t CO2/MWh" + "value": 0.7557008906815798 }, { "year": 2038, - "value": 0.7106744132774588, - "units": "t CO2/MWh" + "value": 0.7106744132774588 }, { "year": 2039, - "value": 0.6640778432165056, - "units": "t CO2/MWh" + "value": 0.6640778432165056 }, { "year": 2040, - "value": 0.6179853372564201, - "units": "t CO2/MWh" + "value": 0.6179853372564201 }, { "year": 2041, - "value": 0.5737112051679787, - "units": "t CO2/MWh" + "value": 0.5737112051679787 }, { "year": 2042, - "value": 0.5319399188112491, - "units": "t CO2/MWh" + "value": 0.5319399188112491 }, { "year": 2043, - "value": 0.4929409579278257, - "units": "t CO2/MWh" + "value": 0.4929409579278257 }, { "year": 2044, - "value": 0.45674377196784977, - "units": "t CO2/MWh" + "value": 0.45674377196784977 }, { "year": 2045, - "value": 0.42325174057782106, - "units": "t CO2/MWh" + "value": 0.42325174057782106 }, { "year": 2046, - "value": 0.39230892919531823, - "units": "t CO2/MWh" + "value": 0.39230892919531823 }, { "year": 2047, - "value": 0.3637368879238732, - "units": "t CO2/MWh" + "value": 0.3637368879238732 }, { "year": 2048, - "value": 0.33735402627252425, - "units": "t CO2/MWh" + "value": 0.33735402627252425 }, { "year": 2049, - "value": 0.3129852876511019, - "units": "t CO2/MWh" + "value": 0.3129852876511019 }, { "year": 2050, - "value": 0.290466560681228, - "units": "t CO2/MWh" + "value": 0.290466560681228 } ] }, @@ -4649,13 +3883,11 @@ "country": "Hong Kong", "ghg_s1s2": { "year": 2019, - "value": 47691749.8864963, - "units": "MWh" + "value": 47691749.8864963 }, "ghg_s3": { "year": 2019, - "value": 47691749.8864963, - "units": "MWh" + "value": 47691749.8864963 }, "industry_level_1": null, "industry_level_2": null, @@ -4676,166 +3908,135 @@ "target_probability": 0.4285714285714285, "projected_ei_targets": { "S1S2": { + "units": "t CO2/MWh", "projections": [ { "year": 2019, - "value": 0.629386622670478, - "units": "t CO2/MWh" + "value": 0.629386622670478 }, { "year": 2020, - "value": 0.49735991894221177, - "units": "t CO2/MWh" + "value": 0.49735991894221177 }, { "year": 2021, - "value": 0.474752649899384, - "units": "t CO2/MWh" + "value": 0.474752649899384 }, { "year": 2022, - "value": 0.45214538085655614, - "units": "t CO2/MWh" + "value": 0.45214538085655614 }, { "year": 2023, - "value": 0.4295381118137284, - "units": "t CO2/MWh" + "value": 0.4295381118137284 }, { "year": 2024, - "value": 0.4069308427709006, - "units": "t CO2/MWh" + "value": 0.4069308427709006 }, { "year": 2025, - "value": 0.3843235737280728, - "units": "t CO2/MWh" + "value": 0.3843235737280728 }, { "year": 2026, - "value": 0.36171630468524507, - "units": "t CO2/MWh" + "value": 0.36171630468524507 }, { "year": 2027, - "value": 0.33910903564241723, - "units": "t CO2/MWh" + "value": 0.33910903564241723 }, { "year": 2028, - "value": 0.31650176659958945, - "units": "t CO2/MWh" + "value": 0.31650176659958945 }, { "year": 2029, - "value": 0.2938944975567617, - "units": "t CO2/MWh" + "value": 0.2938944975567617 }, { "year": 2030, - "value": 0.2712872285139339, - "units": "t CO2/MWh" + "value": 0.2712872285139339 }, { "year": 2031, - "value": 0.2712872285139339, - "units": "t CO2/MWh" + "value": 0.2712872285139339 }, { "year": 2032, - "value": 0.2712872285139339, - "units": "t CO2/MWh" + "value": 0.2712872285139339 }, { "year": 2033, - "value": 0.2712872285139339, - "units": "t CO2/MWh" + "value": 0.2712872285139339 }, { "year": 2034, - "value": 0.2712872285139339, - "units": "t CO2/MWh" + "value": 0.2712872285139339 }, { "year": 2035, - "value": 0.2712872285139339, - "units": "t CO2/MWh" + "value": 0.2712872285139339 }, { "year": 2036, - "value": 0.2712872285139339, - "units": "t CO2/MWh" + "value": 0.2712872285139339 }, { "year": 2037, - "value": 0.2712872285139339, - "units": "t CO2/MWh" + "value": 0.2712872285139339 }, { "year": 2038, - "value": 0.2712872285139339, - "units": "t CO2/MWh" + "value": 0.2712872285139339 }, { "year": 2039, - "value": 0.26643595573586704, - "units": "t CO2/MWh" + "value": 0.26643595573586704 }, { "year": 2040, - "value": 0.24893234723624588, - "units": "t CO2/MWh" + "value": 0.24893234723624588 }, { "year": 2041, - "value": 0.23212577790171932, - "units": "t CO2/MWh" + "value": 0.23212577790171932 }, { "year": 2042, - "value": 0.2162058650114187, - "units": "t CO2/MWh" + "value": 0.2162058650114187 }, { "year": 2043, - "value": 0.20124719185437925, - "units": "t CO2/MWh" + "value": 0.20124719185437925 }, { "year": 2044, - "value": 0.18725778017720415, - "units": "t CO2/MWh" + "value": 0.18725778017720415 }, { "year": 2045, - "value": 0.17421016813874166, - "units": "t CO2/MWh" + "value": 0.17421016813874166 }, { "year": 2046, - "value": 0.16205953153291905, - "units": "t CO2/MWh" + "value": 0.16205953153291905 }, { "year": 2047, - "value": 0.1507537220349898, - "units": "t CO2/MWh" + "value": 0.1507537220349898 }, { "year": 2048, - "value": 0.14023864416724455, - "units": "t CO2/MWh" + "value": 0.14023864416724455 }, { "year": 2049, - "value": 0.13046104410909345, - "units": "t CO2/MWh" + "value": 0.13046104410909345 }, { "year": 2050, - "value": 0.12136988857034575, - "units": "t CO2/MWh" + "value": 0.12136988857034575 } ] }, @@ -4844,166 +4045,135 @@ }, "projected_ei_trajectories": { "S1S2": { + "units": "t CO2/MWh", "projections": [ { "year": 2019, - "value": 0.629386622670478, - "units": "t CO2/MWh" + "value": 0.629386622670478 }, { "year": 2020, - "value": 0.49735991894221177, - "units": "t CO2/MWh" + "value": 0.49735991894221177 }, { "year": 2021, - "value": 0.48303602405469037, - "units": "t CO2/MWh" + "value": 0.48303602405469037 }, { "year": 2022, - "value": 0.46732753099437646, - "units": "t CO2/MWh" + "value": 0.46732753099437646 }, { "year": 2023, - "value": 0.45262372165326814, - "units": "t CO2/MWh" + "value": 0.45262372165326814 }, { "year": 2024, - "value": 0.43902972338800816, - "units": "t CO2/MWh" + "value": 0.43902972338800816 }, { "year": 2025, - "value": 0.42667964726166113, - "units": "t CO2/MWh" + "value": 0.42667964726166113 }, { "year": 2026, - "value": 0.41566585956199315, - "units": "t CO2/MWh" + "value": 0.41566585956199315 }, { "year": 2027, - "value": 0.4059394704000186, - "units": "t CO2/MWh" + "value": 0.4059394704000186 }, { "year": 2028, - "value": 0.39727086488944763, - "units": "t CO2/MWh" + "value": 0.39727086488944763 }, { "year": 2029, - "value": 0.38931252607554373, - "units": "t CO2/MWh" + "value": 0.38931252607554373 }, { "year": 2030, - "value": 0.38168354663755155, - "units": "t CO2/MWh" + "value": 0.38168354663755155 }, { "year": 2031, - "value": 0.37399487697657396, - "units": "t CO2/MWh" + "value": 0.37399487697657396 }, { "year": 2032, - "value": 0.36581878663821166, - "units": "t CO2/MWh" + "value": 0.36581878663821166 }, { "year": 2033, - "value": 0.35665221048674645, - "units": "t CO2/MWh" + "value": 0.35665221048674645 }, { "year": 2034, - "value": 0.3459409332948065, - "units": "t CO2/MWh" + "value": 0.3459409332948065 }, { "year": 2035, - "value": 0.33322931414564744, - "units": "t CO2/MWh" + "value": 0.33322931414564744 }, { "year": 2036, - "value": 0.31840641041721496, - "units": "t CO2/MWh" + "value": 0.31840641041721496 }, { "year": 2037, - "value": 0.30184697939561933, - "units": "t CO2/MWh" + "value": 0.30184697939561933 }, { "year": 2038, - "value": 0.28427006024113044, - "units": "t CO2/MWh" + "value": 0.28427006024113044 }, { "year": 2039, - "value": 0.26643595573586704, - "units": "t CO2/MWh" + "value": 0.26643595573586704 }, { "year": 2040, - "value": 0.24893234723624583, - "units": "t CO2/MWh" + "value": 0.24893234723624583 }, { "year": 2041, - "value": 0.23212577790171932, - "units": "t CO2/MWh" + "value": 0.23212577790171932 }, { "year": 2042, - "value": 0.2162058650114187, - "units": "t CO2/MWh" + "value": 0.2162058650114187 }, { "year": 2043, - "value": 0.20124719185437925, - "units": "t CO2/MWh" + "value": 0.20124719185437925 }, { "year": 2044, - "value": 0.18725778017720415, - "units": "t CO2/MWh" + "value": 0.18725778017720415 }, { "year": 2045, - "value": 0.17421016813874166, - "units": "t CO2/MWh" + "value": 0.17421016813874166 }, { "year": 2046, - "value": 0.16205953153291902, - "units": "t CO2/MWh" + "value": 0.16205953153291902 }, { "year": 2047, - "value": 0.15075372203498982, - "units": "t CO2/MWh" + "value": 0.15075372203498982 }, { "year": 2048, - "value": 0.14023864416724455, - "units": "t CO2/MWh" + "value": 0.14023864416724455 }, { "year": 2049, - "value": 0.13046104410909343, - "units": "t CO2/MWh" + "value": 0.13046104410909343 }, { "year": 2050, - "value": 0.12136988857034575, - "units": "t CO2/MWh" + "value": 0.12136988857034575 } ] }, @@ -5013,13 +4183,11 @@ "country": "Germany", "ghg_s1s2": { "year": 2019, - "value": 551394001.129387, - "units": "MWh" + "value": 551394001.129387 }, "ghg_s3": { "year": 2019, - "value": 551394001.129387, - "units": "MWh" + "value": 551394001.129387 }, "industry_level_1": null, "industry_level_2": null, @@ -5040,166 +4208,135 @@ "target_probability": 0.4285714285714285, "projected_ei_targets": { "S1S2": { + "units": "t CO2/MWh", "projections": [ { "year": 2019, - "value": 0.7213730332171805, - "units": "t CO2/MWh" + "value": 0.7213730332171805 }, { "year": 2020, - "value": 0.7213730332171805, - "units": "t CO2/MWh" + "value": 0.7213730332171805 }, { "year": 2021, - "value": 0.6982890961542306, - "units": "t CO2/MWh" + "value": 0.6982890961542306 }, { "year": 2022, - "value": 0.6752051590912809, - "units": "t CO2/MWh" + "value": 0.6752051590912809 }, { "year": 2023, - "value": 0.652121222028331, - "units": "t CO2/MWh" + "value": 0.652121222028331 }, { "year": 2024, - "value": 0.6290372849653812, - "units": "t CO2/MWh" + "value": 0.6290372849653812 }, { "year": 2025, - "value": 0.6059533479024314, - "units": "t CO2/MWh" + "value": 0.6059533479024314 }, { "year": 2026, - "value": 0.5828694108394817, - "units": "t CO2/MWh" + "value": 0.5828694108394817 }, { "year": 2027, - "value": 0.5597854737765319, - "units": "t CO2/MWh" + "value": 0.5597854737765319 }, { "year": 2028, - "value": 0.536701536713582, - "units": "t CO2/MWh" + "value": 0.536701536713582 }, { "year": 2029, - "value": 0.5136175996506324, - "units": "t CO2/MWh" + "value": 0.5136175996506324 }, { "year": 2030, - "value": 0.4905336625876825, - "units": "t CO2/MWh" + "value": 0.4905336625876825 }, { "year": 2031, - "value": 0.46600697945829833, - "units": "t CO2/MWh" + "value": 0.46600697945829833 }, { "year": 2032, - "value": 0.4414802963289142, - "units": "t CO2/MWh" + "value": 0.4414802963289142 }, { "year": 2033, - "value": 0.41695361319953006, - "units": "t CO2/MWh" + "value": 0.41695361319953006 }, { "year": 2034, - "value": 0.3924269300701459, - "units": "t CO2/MWh" + "value": 0.3924269300701459 }, { "year": 2035, - "value": 0.36790024694076173, - "units": "t CO2/MWh" + "value": 0.36790024694076173 }, { "year": 2036, - "value": 0.34337356381137757, - "units": "t CO2/MWh" + "value": 0.34337356381137757 }, { "year": 2037, - "value": 0.31884688068199346, - "units": "t CO2/MWh" + "value": 0.31884688068199346 }, { "year": 2038, - "value": 0.29432019755260935, - "units": "t CO2/MWh" + "value": 0.29432019755260935 }, { "year": 2039, - "value": 0.26979351442322524, - "units": "t CO2/MWh" + "value": 0.26979351442322524 }, { "year": 2040, - "value": 0.24526683129384108, - "units": "t CO2/MWh" + "value": 0.24526683129384108 }, { "year": 2041, - "value": 0.22074014816445703, - "units": "t CO2/MWh" + "value": 0.22074014816445703 }, { "year": 2042, - "value": 0.1962134650350729, - "units": "t CO2/MWh" + "value": 0.1962134650350729 }, { "year": 2043, - "value": 0.17168678190568878, - "units": "t CO2/MWh" + "value": 0.17168678190568878 }, { "year": 2044, - "value": 0.14716009877630465, - "units": "t CO2/MWh" + "value": 0.14716009877630465 }, { "year": 2045, - "value": 0.12263341564692054, - "units": "t CO2/MWh" + "value": 0.12263341564692054 }, { "year": 2046, - "value": 0.09810673251753642, - "units": "t CO2/MWh" + "value": 0.09810673251753642 }, { "year": 2047, - "value": 0.07358004938815231, - "units": "t CO2/MWh" + "value": 0.07358004938815231 }, { "year": 2048, - "value": 0.049053366258768175, - "units": "t CO2/MWh" + "value": 0.049053366258768175 }, { "year": 2049, - "value": 0.024526683129384046, - "units": "t CO2/MWh" + "value": 0.024526683129384046 }, { "year": 2050, - "value": 0.0, - "units": "t CO2/MWh" + "value": 0.0 } ] }, @@ -5208,166 +4345,135 @@ }, "projected_ei_trajectories": { "S1S2": { + "units": "t CO2/MWh", "projections": [ { "year": 2019, - "value": 0.7213730332171805, - "units": "t CO2/MWh" + "value": 0.7213730332171805 }, { "year": 2020, - "value": 0.7213730332171805, - "units": "t CO2/MWh" + "value": 0.7213730332171805 }, { "year": 2021, - "value": 0.7096360463343725, - "units": "t CO2/MWh" + "value": 0.7096360463343725 }, { "year": 2022, - "value": 0.6964411027710348, - "units": "t CO2/MWh" + "value": 0.6964411027710348 }, { "year": 2023, - "value": 0.68384613604692, - "units": "t CO2/MWh" + "value": 0.68384613604692 }, { "year": 2024, - "value": 0.6718041628022702, - "units": "t CO2/MWh" + "value": 0.6718041628022702 }, { "year": 2025, - "value": 0.6602875522978253, - "units": "t CO2/MWh" + "value": 0.6602875522978253 }, { "year": 2026, - "value": 0.6492678739015747, - "units": "t CO2/MWh" + "value": 0.6492678739015747 }, { "year": 2027, - "value": 0.6386842733988106, - "units": "t CO2/MWh" + "value": 0.6386842733988106 }, { "year": 2028, - "value": 0.6284183082538842, - "units": "t CO2/MWh" + "value": 0.6284183082538842 }, { "year": 2029, - "value": 0.6182876798700144, - "units": "t CO2/MWh" + "value": 0.6182876798700144 }, { "year": 2030, - "value": 0.6080411602277801, - "units": "t CO2/MWh" + "value": 0.6080411602277801 }, { "year": 2031, - "value": 0.5973301378916037, - "units": "t CO2/MWh" + "value": 0.5973301378916037 }, { "year": 2032, - "value": 0.5856558513883539, - "units": "t CO2/MWh" + "value": 0.5856558513883539 }, { "year": 2033, - "value": 0.5723260297981299, - "units": "t CO2/MWh" + "value": 0.5723260297981299 }, { "year": 2034, - "value": 0.5565021750206457, - "units": "t CO2/MWh" + "value": 0.5565021750206457 }, { "year": 2035, - "value": 0.5374406121599999, - "units": "t CO2/MWh" + "value": 0.5374406121599999 }, { "year": 2036, - "value": 0.5148977292507196, - "units": "t CO2/MWh" + "value": 0.5148977292507196 }, { "year": 2037, - "value": 0.48939093915311077, - "units": "t CO2/MWh" + "value": 0.48939093915311077 }, { "year": 2038, - "value": 0.4620155928970045, - "units": "t CO2/MWh" + "value": 0.4620155928970045 }, { "year": 2039, - "value": 0.4339792123160576, - "units": "t CO2/MWh" + "value": 0.4339792123160576 }, { "year": 2040, - "value": 0.4062488247754412, - "units": "t CO2/MWh" + "value": 0.4062488247754412 }, { "year": 2041, - "value": 0.37945305867971707, - "units": "t CO2/MWh" + "value": 0.37945305867971707 }, { "year": 2042, - "value": 0.35393813282296316, - "units": "t CO2/MWh" + "value": 0.35393813282296316 }, { "year": 2043, - "value": 0.3298602176693171, - "units": "t CO2/MWh" + "value": 0.3298602176693171 }, { "year": 2044, - "value": 0.3072614529719901, - "units": "t CO2/MWh" + "value": 0.3072614529719901 }, { "year": 2045, - "value": 0.28612035604771263, - "units": "t CO2/MWh" + "value": 0.28612035604771263 }, { "year": 2046, - "value": 0.2663821228609691, - "units": "t CO2/MWh" + "value": 0.2663821228609691 }, { "year": 2047, - "value": 0.24797596300666216, - "units": "t CO2/MWh" + "value": 0.24797596300666216 }, { "year": 2048, - "value": 0.23082474747951603, - "units": "t CO2/MWh" + "value": 0.23082474747951603 }, { "year": 2049, - "value": 0.21485027166592152, - "units": "t CO2/MWh" + "value": 0.21485027166592152 }, { "year": 2050, - "value": 0.19997605950297165, - "units": "t CO2/MWh" + "value": 0.19997605950297165 } ] }, @@ -5377,13 +4483,11 @@ "country": "United States of America", "ghg_s1s2": { "year": 2019, - "value": 242884801.558717, - "units": "MWh" + "value": 242884801.558717 }, "ghg_s3": { "year": 2019, - "value": 242884801.558717, - "units": "MWh" + "value": 242884801.558717 }, "industry_level_1": null, "industry_level_2": null, @@ -5404,166 +4508,135 @@ "target_probability": 0.4285714285714285, "projected_ei_targets": { "S1S2": { + "units": "t CO2/Fe_ton", "projections": [ { "year": 2019, - "value": 2.025612471762173, - "units": "t CO2/Fe_ton" + "value": 2.025612471762173 }, { "year": 2020, - "value": 2.1090909069608292, - "units": "t CO2/Fe_ton" + "value": 2.1090909069608292 }, { "year": 2021, - "value": 2.0432167817220854, - "units": "t CO2/Fe_ton" + "value": 2.0432167817220854 }, { "year": 2022, - "value": 1.968186818466775, - "units": "t CO2/Fe_ton" + "value": 1.968186818466775 }, { "year": 2023, - "value": 1.8940656476672468, - "units": "t CO2/Fe_ton" + "value": 1.8940656476672468 }, { "year": 2024, - "value": 1.8208945239208314, - "units": "t CO2/Fe_ton" + "value": 1.8208945239208314 }, { "year": 2025, - "value": 1.7487256213323736, - "units": "t CO2/Fe_ton" + "value": 1.7487256213323736 }, { "year": 2026, - "value": 1.6775745737622894, - "units": "t CO2/Fe_ton" + "value": 1.6775745737622894 }, { "year": 2027, - "value": 1.6073634282391835, - "units": "t CO2/Fe_ton" + "value": 1.6073634282391835 }, { "year": 2028, - "value": 1.5379117473263144, - "units": "t CO2/Fe_ton" + "value": 1.5379117473263144 }, { "year": 2029, - "value": 1.4689925043047871, - "units": "t CO2/Fe_ton" + "value": 1.4689925043047871 }, { "year": 2030, - "value": 1.40039446769001, - "units": "t CO2/Fe_ton" + "value": 1.40039446769001 }, { "year": 2031, - "value": 1.3319449239497403, - "units": "t CO2/Fe_ton" + "value": 1.3319449239497403 }, { "year": 2032, - "value": 1.263500744160184, - "units": "t CO2/Fe_ton" + "value": 1.263500744160184 }, { "year": 2033, - "value": 1.1949334758349643, - "units": "t CO2/Fe_ton" + "value": 1.1949334758349643 }, { "year": 2034, - "value": 1.1261281790479682, - "units": "t CO2/Fe_ton" + "value": 1.1261281790479682 }, { "year": 2035, - "value": 1.0570066079958613, - "units": "t CO2/Fe_ton" + "value": 1.0570066079958613 }, { "year": 2036, - "value": 0.9875645503841134, - "units": "t CO2/Fe_ton" + "value": 0.9875645503841134 }, { "year": 2037, - "value": 0.9178856805325853, - "units": "t CO2/Fe_ton" + "value": 0.9178856805325853 }, { "year": 2038, - "value": 0.8481066643149975, - "units": "t CO2/Fe_ton" + "value": 0.8481066643149975 }, { "year": 2039, - "value": 0.7783614247807794, - "units": "t CO2/Fe_ton" + "value": 0.7783614247807794 }, { "year": 2040, - "value": 0.7087471147801374, - "units": "t CO2/Fe_ton" + "value": 0.7087471147801374 }, { "year": 2041, - "value": 0.6393198746814442, - "units": "t CO2/Fe_ton" + "value": 0.6393198746814442 }, { "year": 2042, - "value": 0.5701050764484741, - "units": "t CO2/Fe_ton" + "value": 0.5701050764484741 }, { "year": 2043, - "value": 0.5011090570114368, - "units": "t CO2/Fe_ton" + "value": 0.5011090570114368 }, { "year": 2044, - "value": 0.4323276860805817, - "units": "t CO2/Fe_ton" + "value": 0.4323276860805817 }, { "year": 2045, - "value": 0.36375160924689426, - "units": "t CO2/Fe_ton" + "value": 0.36375160924689426 }, { "year": 2046, - "value": 0.2953691836040519, - "units": "t CO2/Fe_ton" + "value": 0.2953691836040519 }, { "year": 2047, - "value": 0.22716803802895327, - "units": "t CO2/Fe_ton" + "value": 0.22716803802895327 }, { "year": 2048, - "value": 0.15913587010331076, - "units": "t CO2/Fe_ton" + "value": 0.15913587010331076 }, { "year": 2049, - "value": 0.09126083449356556, - "units": "t CO2/Fe_ton" + "value": 0.09126083449356556 }, { "year": 2050, - "value": 0.023531717117231055, - "units": "t CO2/Fe_ton" + "value": 0.023531717117231055 } ] }, @@ -5572,166 +4645,135 @@ }, "projected_ei_trajectories": { "S1S2": { + "units": "t CO2/Fe_ton", "projections": [ { "year": 2019, - "value": 2.025612471762173, - "units": "t CO2/Fe_ton" + "value": 2.025612471762173 }, { "year": 2020, - "value": 2.1090909069608292, - "units": "t CO2/Fe_ton" + "value": 2.1090909069608292 }, { "year": 2021, - "value": 2.1060961743220625, - "units": "t CO2/Fe_ton" + "value": 2.1060961743220625 }, { "year": 2022, - "value": 2.0935998411634373, - "units": "t CO2/Fe_ton" + "value": 2.0935998411634373 }, { "year": 2023, - "value": 2.08146363597004, - "units": "t CO2/Fe_ton" + "value": 2.08146363597004 }, { "year": 2024, - "value": 2.0694338897316635, - "units": "t CO2/Fe_ton" + "value": 2.0694338897316635 }, { "year": 2025, - "value": 2.0571974490608764, - "units": "t CO2/Fe_ton" + "value": 2.0571974490608764 }, { "year": 2026, - "value": 2.0444439933614214, - "units": "t CO2/Fe_ton" + "value": 2.0444439933614214 }, { "year": 2027, - "value": 2.0309772569252997, - "units": "t CO2/Fe_ton" + "value": 2.0309772569252997 }, { "year": 2028, - "value": 2.016776357008506, - "units": "t CO2/Fe_ton" + "value": 2.016776357008506 }, { "year": 2029, - "value": 2.0019296717028428, - "units": "t CO2/Fe_ton" + "value": 2.0019296717028428 }, { "year": 2030, - "value": 1.9865042889569182, - "units": "t CO2/Fe_ton" + "value": 1.9865042889569182 }, { "year": 2031, - "value": 1.970442028164512, - "units": "t CO2/Fe_ton" + "value": 1.970442028164512 }, { "year": 2032, - "value": 1.9534944783850734, - "units": "t CO2/Fe_ton" + "value": 1.9534944783850734 }, { "year": 2033, - "value": 1.9351859852300182, - "units": "t CO2/Fe_ton" + "value": 1.9351859852300182 }, { "year": 2034, - "value": 1.9148420990044046, - "units": "t CO2/Fe_ton" + "value": 1.9148420990044046 }, { "year": 2035, - "value": 1.8917649466011601, - "units": "t CO2/Fe_ton" + "value": 1.8917649466011601 }, { "year": 2036, - "value": 1.8655580488668244, - "units": "t CO2/Fe_ton" + "value": 1.8655580488668244 }, { "year": 2037, - "value": 1.836385145194536, - "units": "t CO2/Fe_ton" + "value": 1.836385145194536 }, { "year": 2038, - "value": 1.8049091094154828, - "units": "t CO2/Fe_ton" + "value": 1.8049091094154828 }, { "year": 2039, - "value": 1.771979743427035, - "units": "t CO2/Fe_ton" + "value": 1.771979743427035 }, { "year": 2040, - "value": 1.7383543190634416, - "units": "t CO2/Fe_ton" + "value": 1.7383543190634416 }, { "year": 2041, - "value": 1.7045865456755531, - "units": "t CO2/Fe_ton" + "value": 1.7045865456755531 }, { "year": 2042, - "value": 1.6710364329768397, - "units": "t CO2/Fe_ton" + "value": 1.6710364329768397 }, { "year": 2043, - "value": 1.6379211570268835, - "units": "t CO2/Fe_ton" + "value": 1.6379211570268835 }, { "year": 2044, - "value": 1.6053642758401603, - "units": "t CO2/Fe_ton" + "value": 1.6053642758401603 }, { "year": 2045, - "value": 1.573431481364922, - "units": "t CO2/Fe_ton" + "value": 1.573431481364922 }, { "year": 2046, - "value": 1.5421537322142225, - "units": "t CO2/Fe_ton" + "value": 1.5421537322142225 }, { "year": 2047, - "value": 1.511541454044459, - "units": "t CO2/Fe_ton" + "value": 1.511541454044459 }, { "year": 2048, - "value": 1.4815930596667921, - "units": "t CO2/Fe_ton" + "value": 1.4815930596667921 }, { "year": 2049, - "value": 1.4523000222576947, - "units": "t CO2/Fe_ton" + "value": 1.4523000222576947 }, { "year": 2050, - "value": 1.4236498966235975, - "units": "t CO2/Fe_ton" + "value": 1.4236498966235975 } ] }, @@ -5741,13 +4783,11 @@ "country": "Netherlands", "ghg_s1s2": { "year": 2019, - "value": 89800001.3960884, - "units": "Fe_ton" + "value": 89800001.3960884 }, "ghg_s3": { "year": 2019, - "value": 89800001.3960884, - "units": "Fe_ton" + "value": 89800001.3960884 }, "industry_level_1": null, "industry_level_2": null, @@ -5768,6 +4808,7 @@ "target_probability": 0.4285714285714285, "projected_ei_targets": { "S1S2": { + "units": "t CO2/Fe_ton", "projections": [ { "year": 2019, @@ -5904,6 +4945,7 @@ }, "projected_ei_trajectories": { "S1S2": { + "units": "t CO2/Fe_ton", "projections": [ { "year": 2019, @@ -6060,6 +5102,7 @@ "target_probability": 0.4285714285714285, "projected_ei_targets": { "S1S2": { + "units": "t CO2/Fe_ton", "projections": [ { "year": 2019, @@ -6196,6 +5239,7 @@ }, "projected_ei_trajectories": { "S1S2": { + "units": "t CO2/Fe_ton", "projections": [ { "year": 2019, @@ -6352,166 +5396,135 @@ "target_probability": 0.4285714285714285, "projected_ei_targets": { "S1S2": { + "units": "t CO2/Fe_ton", "projections": [ { "year": 2019, - "value": 0.23287909421782566, - "units": "t CO2/Fe_ton" + "value": 0.23287909421782566 }, { "year": 2020, - "value": 0.23782543529110398, - "units": "t CO2/Fe_ton" + "value": 0.23782543529110398 }, { "year": 2021, - "value": 0.23782518510683523, - "units": "t CO2/Fe_ton" + "value": 0.23782518510683523 }, { "year": 2022, - "value": 0.2375065252639072, - "units": "t CO2/Fe_ton" + "value": 0.2375065252639072 }, { "year": 2023, - "value": 0.23699212499214328, - "units": "t CO2/Fe_ton" + "value": 0.23699212499214328 }, { "year": 2024, - "value": 0.23617802108935954, - "units": "t CO2/Fe_ton" + "value": 0.23617802108935954 }, { "year": 2025, - "value": 0.23493667553780867, - "units": "t CO2/Fe_ton" + "value": 0.23493667553780867 }, { "year": 2026, - "value": 0.23315623559783574, - "units": "t CO2/Fe_ton" + "value": 0.23315623559783574 }, { "year": 2027, - "value": 0.2307987617233072, - "units": "t CO2/Fe_ton" + "value": 0.2307987617233072 }, { "year": 2028, - "value": 0.22792115109494807, - "units": "t CO2/Fe_ton" + "value": 0.22792115109494807 }, { "year": 2029, - "value": 0.22462699773845451, - "units": "t CO2/Fe_ton" + "value": 0.22462699773845451 }, { "year": 2030, - "value": 0.22099427923282483, - "units": "t CO2/Fe_ton" + "value": 0.22099427923282483 }, { "year": 2031, - "value": 0.2170268710424221, - "units": "t CO2/Fe_ton" + "value": 0.2170268710424221 }, { "year": 2032, - "value": 0.21263073927094378, - "units": "t CO2/Fe_ton" + "value": 0.21263073927094378 }, { "year": 2033, - "value": 0.20760551668200722, - "units": "t CO2/Fe_ton" + "value": 0.20760551668200722 }, { "year": 2034, - "value": 0.20166854855470678, - "units": "t CO2/Fe_ton" + "value": 0.20166854855470678 }, { "year": 2035, - "value": 0.19454858286795956, - "units": "t CO2/Fe_ton" + "value": 0.19454858286795956 }, { "year": 2036, - "value": 0.1861434343092031, - "units": "t CO2/Fe_ton" + "value": 0.1861434343092031 }, { "year": 2037, - "value": 0.176629849481309, - "units": "t CO2/Fe_ton" + "value": 0.176629849481309 }, { "year": 2038, - "value": 0.1664074292482413, - "units": "t CO2/Fe_ton" + "value": 0.1664074292482413 }, { "year": 2039, - "value": 0.1559282641165899, - "units": "t CO2/Fe_ton" + "value": 0.1559282641165899 }, { "year": 2040, - "value": 0.14556103610535465, - "units": "t CO2/Fe_ton" + "value": 0.14556103610535465 }, { "year": 2041, - "value": 0.13554911080700055, - "units": "t CO2/Fe_ton" + "value": 0.13554911080700055 }, { "year": 2042, - "value": 0.12602849929850368, - "units": "t CO2/Fe_ton" + "value": 0.12602849929850368 }, { "year": 2043, - "value": 0.11706162635131759, - "units": "t CO2/Fe_ton" + "value": 0.11706162635131759 }, { "year": 2044, - "value": 0.10866606511374256, - "units": "t CO2/Fe_ton" + "value": 0.10866606511374256 }, { "year": 2045, - "value": 0.10083399039878226, - "units": "t CO2/Fe_ton" + "value": 0.10083399039878226 }, { "year": 2046, - "value": 0.0935440708385071, - "units": "t CO2/Fe_ton" + "value": 0.0935440708385071 }, { "year": 2047, - "value": 0.08676837808993242, - "units": "t CO2/Fe_ton" + "value": 0.08676837808993242 }, { "year": 2048, - "value": 0.08047629066798251, - "units": "t CO2/Fe_ton" + "value": 0.08047629066798251 }, { "year": 2049, - "value": 0.07463665673377298, - "units": "t CO2/Fe_ton" + "value": 0.07463665673377298 }, { "year": 2050, - "value": 0.06921896577724047, - "units": "t CO2/Fe_ton" + "value": 0.06921896577724047 } ] }, @@ -6520,166 +5533,135 @@ }, "projected_ei_trajectories": { "S1S2": { + "units": "t CO2/Fe_ton", "projections": [ { "year": 2019, - "value": 0.23287909421782566, - "units": "t CO2/Fe_ton" + "value": 0.23287909421782566 }, { "year": 2020, - "value": 0.23782543529110398, - "units": "t CO2/Fe_ton" + "value": 0.23782543529110398 }, { "year": 2021, - "value": 0.23782518510683523, - "units": "t CO2/Fe_ton" + "value": 0.23782518510683523 }, { "year": 2022, - "value": 0.2375065252639072, - "units": "t CO2/Fe_ton" + "value": 0.2375065252639072 }, { "year": 2023, - "value": 0.23699212499214328, - "units": "t CO2/Fe_ton" + "value": 0.23699212499214328 }, { "year": 2024, - "value": 0.23617802108935954, - "units": "t CO2/Fe_ton" + "value": 0.23617802108935954 }, { "year": 2025, - "value": 0.23493667553780867, - "units": "t CO2/Fe_ton" + "value": 0.23493667553780867 }, { "year": 2026, - "value": 0.23315623559783574, - "units": "t CO2/Fe_ton" + "value": 0.23315623559783574 }, { "year": 2027, - "value": 0.2307987617233072, - "units": "t CO2/Fe_ton" + "value": 0.2307987617233072 }, { "year": 2028, - "value": 0.22792115109494807, - "units": "t CO2/Fe_ton" + "value": 0.22792115109494807 }, { "year": 2029, - "value": 0.22462699773845451, - "units": "t CO2/Fe_ton" + "value": 0.22462699773845451 }, { "year": 2030, - "value": 0.22099427923282483, - "units": "t CO2/Fe_ton" + "value": 0.22099427923282483 }, { "year": 2031, - "value": 0.2170268710424221, - "units": "t CO2/Fe_ton" + "value": 0.2170268710424221 }, { "year": 2032, - "value": 0.21263073927094378, - "units": "t CO2/Fe_ton" + "value": 0.21263073927094378 }, { "year": 2033, - "value": 0.20760551668200722, - "units": "t CO2/Fe_ton" + "value": 0.20760551668200722 }, { "year": 2034, - "value": 0.20166854855470678, - "units": "t CO2/Fe_ton" + "value": 0.20166854855470678 }, { "year": 2035, - "value": 0.19454858286795956, - "units": "t CO2/Fe_ton" + "value": 0.19454858286795956 }, { "year": 2036, - "value": 0.1861434343092031, - "units": "t CO2/Fe_ton" + "value": 0.1861434343092031 }, { "year": 2037, - "value": 0.176629849481309, - "units": "t CO2/Fe_ton" + "value": 0.176629849481309 }, { "year": 2038, - "value": 0.1664074292482413, - "units": "t CO2/Fe_ton" + "value": 0.1664074292482413 }, { "year": 2039, - "value": 0.1559282641165899, - "units": "t CO2/Fe_ton" + "value": 0.1559282641165899 }, { "year": 2040, - "value": 0.14556103610535465, - "units": "t CO2/Fe_ton" + "value": 0.14556103610535465 }, { "year": 2041, - "value": 0.13554911080700055, - "units": "t CO2/Fe_ton" + "value": 0.13554911080700055 }, { "year": 2042, - "value": 0.12602849929850368, - "units": "t CO2/Fe_ton" + "value": 0.12602849929850368 }, { "year": 2043, - "value": 0.11706162635131759, - "units": "t CO2/Fe_ton" + "value": 0.11706162635131759 }, { "year": 2044, - "value": 0.10866606511374256, - "units": "t CO2/Fe_ton" + "value": 0.10866606511374256 }, { "year": 2045, - "value": 0.10083399039878226, - "units": "t CO2/Fe_ton" + "value": 0.10083399039878226 }, { "year": 2046, - "value": 0.0935440708385071, - "units": "t CO2/Fe_ton" + "value": 0.0935440708385071 }, { "year": 2047, - "value": 0.08676837808993242, - "units": "t CO2/Fe_ton" + "value": 0.08676837808993242 }, { "year": 2048, - "value": 0.08047629066798251, - "units": "t CO2/Fe_ton" + "value": 0.08047629066798251 }, { "year": 2049, - "value": 0.07463665673377298, - "units": "t CO2/Fe_ton" + "value": 0.07463665673377298 }, { "year": 2050, - "value": 0.06921896577724047, - "units": "t CO2/Fe_ton" + "value": 0.06921896577724047 } ] }, @@ -6689,13 +5671,11 @@ "country": "Brazil", "ghg_s1s2": { "year": 2019, - "value": 12453000.4760821, - "units": "Fe_ton" + "value": 12453000.4760821 }, "ghg_s3": { "year": 2019, - "value": 12453000.4760821, - "units": "Fe_ton" + "value": 12453000.4760821 }, "industry_level_1": null, "industry_level_2": null, @@ -6716,166 +5696,135 @@ "target_probability": 0.4285714285714285, "projected_ei_targets": { "S1S2": { + "units": "t CO2/Fe_ton", "projections": [ { "year": 2019, - "value": 0.954598554537054, - "units": "t CO2/Fe_ton" + "value": 0.954598554537054 }, { "year": 2020, - "value": 0.954598554537054, - "units": "t CO2/Fe_ton" + "value": 0.954598554537054 }, { "year": 2021, - "value": 0.9493773031495156, - "units": "t CO2/Fe_ton" + "value": 0.9493773031495156 }, { "year": 2022, - "value": 0.9406684403451895, - "units": "t CO2/Fe_ton" + "value": 0.9406684403451895 }, { "year": 2023, - "value": 0.9319466759219065, - "units": "t CO2/Fe_ton" + "value": 0.9319466759219065 }, { "year": 2024, - "value": 0.9231819496177506, - "units": "t CO2/Fe_ton" + "value": 0.9231819496177506 }, { "year": 2025, - "value": 0.9143391448880038, - "units": "t CO2/Fe_ton" + "value": 0.9143391448880038 }, { "year": 2026, - "value": 0.9053887695950591, - "units": "t CO2/Fe_ton" + "value": 0.9053887695950591 }, { "year": 2027, - "value": 0.8963198998415938, - "units": "t CO2/Fe_ton" + "value": 0.8963198998415938 }, { "year": 2028, - "value": 0.8871396514522941, - "units": "t CO2/Fe_ton" + "value": 0.8871396514522941 }, { "year": 2029, - "value": 0.8778531927316303, - "units": "t CO2/Fe_ton" + "value": 0.8778531927316303 }, { "year": 2030, - "value": 0.868437667604648, - "units": "t CO2/Fe_ton" + "value": 0.868437667604648 }, { "year": 2031, - "value": 0.8313736611627646, - "units": "t CO2/Fe_ton" + "value": 0.8313736611627646 }, { "year": 2032, - "value": 0.7939673821275138, - "units": "t CO2/Fe_ton" + "value": 0.7939673821275138 }, { "year": 2033, - "value": 0.755998996322505, - "units": "t CO2/Fe_ton" + "value": 0.755998996322505 }, { "year": 2034, - "value": 0.7171894836036795, - "units": "t CO2/Fe_ton" + "value": 0.7171894836036795 }, { "year": 2035, - "value": 0.6772870255256789, - "units": "t CO2/Fe_ton" + "value": 0.6772870255256789 }, { "year": 2036, - "value": 0.6362103647059111, - "units": "t CO2/Fe_ton" + "value": 0.6362103647059111 }, { "year": 2037, - "value": 0.5941421302097765, - "units": "t CO2/Fe_ton" + "value": 0.5941421302097765 }, { "year": 2038, - "value": 0.5514666618988123, - "units": "t CO2/Fe_ton" + "value": 0.5514666618988123 }, { "year": 2039, - "value": 0.5086075978265583, - "units": "t CO2/Fe_ton" + "value": 0.5086075978265583 }, { "year": 2040, - "value": 0.4659039155581829, - "units": "t CO2/Fe_ton" + "value": 0.4659039155581829 }, { "year": 2041, - "value": 0.4235750916327392, - "units": "t CO2/Fe_ton" + "value": 0.4235750916327392 }, { "year": 2042, - "value": 0.3817405963568331, - "units": "t CO2/Fe_ton" + "value": 0.3817405963568331 }, { "year": 2043, - "value": 0.34045246360077625, - "units": "t CO2/Fe_ton" + "value": 0.34045246360077625 }, { "year": 2044, - "value": 0.2997222356105952, - "units": "t CO2/Fe_ton" + "value": 0.2997222356105952 }, { "year": 2045, - "value": 0.25953890166543986, - "units": "t CO2/Fe_ton" + "value": 0.25953890166543986 }, { "year": 2046, - "value": 0.21987971829009964, - "units": "t CO2/Fe_ton" + "value": 0.21987971829009964 }, { "year": 2047, - "value": 0.18071641738884092, - "units": "t CO2/Fe_ton" + "value": 0.18071641738884092 }, { "year": 2048, - "value": 0.14201866858776052, - "units": "t CO2/Fe_ton" + "value": 0.14201866858776052 }, { "year": 2049, - "value": 0.10375596910276078, - "units": "t CO2/Fe_ton" + "value": 0.10375596910276078 }, { "year": 2050, - "value": 0.06589864832712344, - "units": "t CO2/Fe_ton" + "value": 0.06589864832712344 } ] }, @@ -6884,166 +5833,135 @@ }, "projected_ei_trajectories": { "S1S2": { + "units": "t CO2/Fe_ton", "projections": [ { "year": 2019, - "value": 0.954598554537054, - "units": "t CO2/Fe_ton" + "value": 0.954598554537054 }, { "year": 2020, - "value": 0.954598554537054, - "units": "t CO2/Fe_ton" + "value": 0.954598554537054 }, { "year": 2021, - "value": 0.9655963665703597, - "units": "t CO2/Fe_ton" + "value": 0.9655963665703597 }, { "year": 2022, - "value": 0.9728087126240174, - "units": "t CO2/Fe_ton" + "value": 0.9728087126240174 }, { "year": 2023, - "value": 0.9794132729011352, - "units": "t CO2/Fe_ton" + "value": 0.9794132729011352 }, { "year": 2024, - "value": 0.9849363131571196, - "units": "t CO2/Fe_ton" + "value": 0.9849363131571196 }, { "year": 2025, - "value": 0.9887745468551721, - "units": "t CO2/Fe_ton" + "value": 0.9887745468551721 }, { "year": 2026, - "value": 0.9903630412525899, - "units": "t CO2/Fe_ton" + "value": 0.9903630412525899 }, { "year": 2027, - "value": 0.989451922884395, - "units": "t CO2/Fe_ton" + "value": 0.989451922884395 }, { "year": 2028, - "value": 0.9862459966785303, - "units": "t CO2/Fe_ton" + "value": 0.9862459966785303 }, { "year": 2029, - "value": 0.981238595975061, - "units": "t CO2/Fe_ton" + "value": 0.981238595975061 }, { "year": 2030, - "value": 0.9749193867243784, - "units": "t CO2/Fe_ton" + "value": 0.9749193867243784 }, { "year": 2031, - "value": 0.9675842149583522, - "units": "t CO2/Fe_ton" + "value": 0.9675842149583522 }, { "year": 2032, - "value": 0.9592660434355568, - "units": "t CO2/Fe_ton" + "value": 0.9592660434355568 }, { "year": 2033, - "value": 0.9497232088593415, - "units": "t CO2/Fe_ton" + "value": 0.9497232088593415 }, { "year": 2034, - "value": 0.9384828380128959, - "units": "t CO2/Fe_ton" + "value": 0.9384828380128959 }, { "year": 2035, - "value": 0.9250039484395483, - "units": "t CO2/Fe_ton" + "value": 0.9250039484395483 }, { "year": 2036, - "value": 0.9089714346178235, - "units": "t CO2/Fe_ton" + "value": 0.9089714346178235 }, { "year": 2037, - "value": 0.8905396376320079, - "units": "t CO2/Fe_ton" + "value": 0.8905396376320079 }, { "year": 2038, - "value": 0.8702949656500503, - "units": "t CO2/Fe_ton" + "value": 0.8702949656500503 }, { "year": 2039, - "value": 0.8489868944198742, - "units": "t CO2/Fe_ton" + "value": 0.8489868944198742 }, { "year": 2040, - "value": 0.8272796296170838, - "units": "t CO2/Fe_ton" + "value": 0.8272796296170838 }, { "year": 2041, - "value": 0.805652059718927, - "units": "t CO2/Fe_ton" + "value": 0.805652059718927 }, { "year": 2042, - "value": 0.7844068309345155, - "units": "t CO2/Fe_ton" + "value": 0.7844068309345155 }, { "year": 2043, - "value": 0.7637169192061212, - "units": "t CO2/Fe_ton" + "value": 0.7637169192061212 }, { "year": 2044, - "value": 0.7436707900311434, - "units": "t CO2/Fe_ton" + "value": 0.7436707900311434 }, { "year": 2045, - "value": 0.7243052459211291, - "units": "t CO2/Fe_ton" + "value": 0.7243052459211291 }, { "year": 2046, - "value": 0.7056266891343271, - "units": "t CO2/Fe_ton" + "value": 0.7056266891343271 }, { "year": 2047, - "value": 0.6876241663313545, - "units": "t CO2/Fe_ton" + "value": 0.6876241663313545 }, { "year": 2048, - "value": 0.6702771769934004, - "units": "t CO2/Fe_ton" + "value": 0.6702771769934004 }, { "year": 2049, - "value": 0.6535602977549326, - "units": "t CO2/Fe_ton" + "value": 0.6535602977549326 }, { "year": 2050, - "value": 0.6374459070572828, - "units": "t CO2/Fe_ton" + "value": 0.6374459070572828 } ] }, @@ -7053,13 +5971,11 @@ "country": "South Korea", "ghg_s1s2": { "year": 2019, - "value": 23303009.677026, - "units": "Fe_ton" + "value": 23303009.677026 }, "ghg_s3": { "year": 2019, - "value": 23303009.677026, - "units": "Fe_ton" + "value": 23303009.677026 }, "industry_level_1": null, "industry_level_2": null, @@ -7080,166 +5996,135 @@ "target_probability": 0.4285714285714285, "projected_ei_targets": { "S1S2": { + "units": "t CO2/Fe_ton", "projections": [ { "year": 2019, - "value": 2.14490674197121, - "units": "t CO2/Fe_ton" + "value": 2.14490674197121 }, { "year": 2020, - "value": 2.153791383555795, - "units": "t CO2/Fe_ton" + "value": 2.153791383555795 }, { "year": 2021, - "value": 2.1316357075590107, - "units": "t CO2/Fe_ton" + "value": 2.1316357075590107 }, { "year": 2022, - "value": 2.10338635628874, - "units": "t CO2/Fe_ton" + "value": 2.10338635628874 }, { "year": 2023, - "value": 2.0753102109663826, - "units": "t CO2/Fe_ton" + "value": 2.0753102109663826 }, { "year": 2024, - "value": 2.0474218323118896, - "units": "t CO2/Fe_ton" + "value": 2.0474218323118896 }, { "year": 2025, - "value": 2.019740357611701, - "units": "t CO2/Fe_ton" + "value": 2.019740357611701 }, { "year": 2026, - "value": 1.9922804017762967, - "units": "t CO2/Fe_ton" + "value": 1.9922804017762967 }, { "year": 2027, - "value": 1.9650360848448274, - "units": "t CO2/Fe_ton" + "value": 1.9650360848448274 }, { "year": 2028, - "value": 1.9379692586029384, - "units": "t CO2/Fe_ton" + "value": 1.9379692586029384 }, { "year": 2029, - "value": 1.9110102953863057, - "units": "t CO2/Fe_ton" + "value": 1.9110102953863057 }, { "year": 2030, - "value": 1.8840621944304483, - "units": "t CO2/Fe_ton" + "value": 1.8840621944304483 }, { "year": 2031, - "value": 1.7960665866965249, - "units": "t CO2/Fe_ton" + "value": 1.7960665866965249 }, { "year": 2032, - "value": 1.7077712639660214, - "units": "t CO2/Fe_ton" + "value": 1.7077712639660214 }, { "year": 2033, - "value": 1.618931618568693, - "units": "t CO2/Fe_ton" + "value": 1.618931618568693 }, { "year": 2034, - "value": 1.5292566420374998, - "units": "t CO2/Fe_ton" + "value": 1.5292566420374998 }, { "year": 2035, - "value": 1.4384945259364372, - "units": "t CO2/Fe_ton" + "value": 1.4384945259364372 }, { "year": 2036, - "value": 1.3465735522319446, - "units": "t CO2/Fe_ton" + "value": 1.3465735522319446 }, { "year": 2037, - "value": 1.2536890912474092, - "units": "t CO2/Fe_ton" + "value": 1.2536890912474092 }, { "year": 2038, - "value": 1.1602343453499224, - "units": "t CO2/Fe_ton" + "value": 1.1602343453499224 }, { "year": 2039, - "value": 1.0666351493391608, - "units": "t CO2/Fe_ton" + "value": 1.0666351493391608 }, { "year": 2040, - "value": 0.9732277190735656, - "units": "t CO2/Fe_ton" + "value": 0.9732277190735656 }, { "year": 2041, - "value": 0.8802267058753541, - "units": "t CO2/Fe_ton" + "value": 0.8802267058753541 }, { "year": 2042, - "value": 0.7877466416340048, - "units": "t CO2/Fe_ton" + "value": 0.7877466416340048 }, { "year": 2043, - "value": 0.6958353223549808, - "units": "t CO2/Fe_ton" + "value": 0.6958353223549808 }, { "year": 2044, - "value": 0.6045009075351638, - "units": "t CO2/Fe_ton" + "value": 0.6045009075351638 }, { "year": 2045, - "value": 0.513729751924258, - "units": "t CO2/Fe_ton" + "value": 0.513729751924258 }, { "year": 2046, - "value": 0.423497058313256, - "units": "t CO2/Fe_ton" + "value": 0.423497058313256 }, { "year": 2047, - "value": 0.3337729335837493, - "units": "t CO2/Fe_ton" + "value": 0.3337729335837493 }, { "year": 2048, - "value": 0.24452573329864757, - "units": "t CO2/Fe_ton" + "value": 0.24452573329864757 }, { "year": 2049, - "value": 0.15572386643766856, - "units": "t CO2/Fe_ton" + "value": 0.15572386643766856 }, { "year": 2050, - "value": 0.0673367403352704, - "units": "t CO2/Fe_ton" + "value": 0.0673367403352704 } ] }, @@ -7248,166 +6133,135 @@ }, "projected_ei_trajectories": { "S1S2": { + "units": "t CO2/Fe_ton", "projections": [ { "year": 2019, - "value": 2.14490674197121, - "units": "t CO2/Fe_ton" + "value": 2.14490674197121 }, { "year": 2020, - "value": 2.153791383555795, - "units": "t CO2/Fe_ton" + "value": 2.153791383555795 }, { "year": 2021, - "value": 2.141994163770733, - "units": "t CO2/Fe_ton" + "value": 2.141994163770733 }, { "year": 2022, - "value": 2.1240930072766893, - "units": "t CO2/Fe_ton" + "value": 2.1240930072766893 }, { "year": 2023, - "value": 2.106306776157942, - "units": "t CO2/Fe_ton" + "value": 2.106306776157942 }, { "year": 2024, - "value": 2.08858213908493, - "units": "t CO2/Fe_ton" + "value": 2.08858213908493 }, { "year": 2025, - "value": 2.07085621688143, - "units": "t CO2/Fe_ton" + "value": 2.07085621688143 }, { "year": 2026, - "value": 2.053071393949981, - "units": "t CO2/Fe_ton" + "value": 2.053071393949981 }, { "year": 2027, - "value": 2.035191801734204, - "units": "t CO2/Fe_ton" + "value": 2.035191801734204 }, { "year": 2028, - "value": 2.0171971432104647, - "units": "t CO2/Fe_ton" + "value": 2.0171971432104647 }, { "year": 2029, - "value": 1.999044850714704, - "units": "t CO2/Fe_ton" + "value": 1.999044850714704 }, { "year": 2030, - "value": 1.9806192264561941, - "units": "t CO2/Fe_ton" + "value": 1.9806192264561941 }, { "year": 2031, - "value": 1.961679963499026, - "units": "t CO2/Fe_ton" + "value": 1.961679963499026 }, { "year": 2032, - "value": 1.9418073731580183, - "units": "t CO2/Fe_ton" + "value": 1.9418073731580183 }, { "year": 2033, - "value": 1.9203597155500025, - "units": "t CO2/Fe_ton" + "value": 1.9203597155500025 }, { "year": 2034, - "value": 1.8965094419293478, - "units": "t CO2/Fe_ton" + "value": 1.8965094419293478 }, { "year": 2035, - "value": 1.8694581822731782, - "units": "t CO2/Fe_ton" + "value": 1.8694581822731782 }, { "year": 2036, - "value": 1.8388197850620962, - "units": "t CO2/Fe_ton" + "value": 1.8388197850620962 }, { "year": 2037, - "value": 1.8049002977676218, - "units": "t CO2/Fe_ton" + "value": 1.8049002977676218 }, { "year": 2038, - "value": 1.7685826490696894, - "units": "t CO2/Fe_ton" + "value": 1.7685826490696894 }, { "year": 2039, - "value": 1.730927644500349, - "units": "t CO2/Fe_ton" + "value": 1.730927644500349 }, { "year": 2040, - "value": 1.6928417911889748, - "units": "t CO2/Fe_ton" + "value": 1.6928417911889748 }, { "year": 2041, - "value": 1.6549608222198926, - "units": "t CO2/Fe_ton" + "value": 1.6549608222198926 }, { "year": 2042, - "value": 1.617677095579325, - "units": "t CO2/Fe_ton" + "value": 1.617677095579325 }, { "year": 2043, - "value": 1.5812100314367101, - "units": "t CO2/Fe_ton" + "value": 1.5812100314367101 }, { "year": 2044, - "value": 1.5456694471097814, - "units": "t CO2/Fe_ton" + "value": 1.5456694471097814 }, { "year": 2045, - "value": 1.5110998263829376, - "units": "t CO2/Fe_ton" + "value": 1.5110998263829376 }, { "year": 2046, - "value": 1.4775081218797617, - "units": "t CO2/Fe_ton" + "value": 1.4775081218797617 }, { "year": 2047, - "value": 1.4448803582847825, - "units": "t CO2/Fe_ton" + "value": 1.4448803582847825 }, { "year": 2048, - "value": 1.4131913169725197, - "units": "t CO2/Fe_ton" + "value": 1.4131913169725197 }, { "year": 2049, - "value": 1.3824101257921226, - "units": "t CO2/Fe_ton" + "value": 1.3824101257921226 }, { "year": 2050, - "value": 1.3525034681569517, - "units": "t CO2/Fe_ton" + "value": 1.3525034681569517 } ] }, @@ -7417,13 +6271,11 @@ "country": "Japan", "ghg_s1s2": { "year": 2019, - "value": 27880000.2335485, - "units": "Fe_ton" + "value": 27880000.2335485 }, "ghg_s3": { "year": 2019, - "value": 27880000.2335485, - "units": "Fe_ton" + "value": 27880000.2335485 }, "industry_level_1": null, "industry_level_2": null, @@ -7444,166 +6296,135 @@ "target_probability": 0.4285714285714285, "projected_ei_targets": { "S1S2": { + "units": "t CO2/Fe_ton", "projections": [ { "year": 2019, - "value": 3.630111503845141, - "units": "t CO2/Fe_ton" + "value": 3.630111503845141 }, { "year": 2020, - "value": 3.2084092426770465, - "units": "t CO2/Fe_ton" + "value": 3.2084092426770465 }, { "year": 2021, - "value": 3.1797007574907754, - "units": "t CO2/Fe_ton" + "value": 3.1797007574907754 }, { "year": 2022, - "value": 3.1537780303458103, - "units": "t CO2/Fe_ton" + "value": 3.1537780303458103 }, { "year": 2023, - "value": 3.128275296291899, - "units": "t CO2/Fe_ton" + "value": 3.128275296291899 }, { "year": 2024, - "value": 3.103169274537815, - "units": "t CO2/Fe_ton" + "value": 3.103169274537815 }, { "year": 2025, - "value": 3.0784157969608446, - "units": "t CO2/Fe_ton" + "value": 3.0784157969608446 }, { "year": 2026, - "value": 3.053946522109776, - "units": "t CO2/Fe_ton" + "value": 3.053946522109776 }, { "year": 2027, - "value": 3.0296740030374125, - "units": "t CO2/Fe_ton" + "value": 3.0296740030374125 }, { "year": 2028, - "value": 3.0054966115150594, - "units": "t CO2/Fe_ton" + "value": 3.0054966115150594 }, { "year": 2029, - "value": 2.981285231148825, - "units": "t CO2/Fe_ton" + "value": 2.981285231148825 }, { "year": 2030, - "value": 2.956846183659979, - "units": "t CO2/Fe_ton" + "value": 2.956846183659979 }, { "year": 2031, - "value": 2.9318657063413673, - "units": "t CO2/Fe_ton" + "value": 2.9318657063413673 }, { "year": 2032, - "value": 2.9058411081553905, - "units": "t CO2/Fe_ton" + "value": 2.9058411081553905 }, { "year": 2033, - "value": 2.8780224302434974, - "units": "t CO2/Fe_ton" + "value": 2.8780224302434974 }, { "year": 2034, - "value": 2.8474408247832557, - "units": "t CO2/Fe_ton" + "value": 2.8474408247832557 }, { "year": 2035, - "value": 2.8131374763554997, - "units": "t CO2/Fe_ton" + "value": 2.8131374763554997 }, { "year": 2036, - "value": 2.774589629905306, - "units": "t CO2/Fe_ton" + "value": 2.774589629905306 }, { "year": 2037, - "value": 2.732040379080609, - "units": "t CO2/Fe_ton" + "value": 2.732040379080609 }, { "year": 2038, - "value": 2.6863990545032768, - "units": "t CO2/Fe_ton" + "value": 2.6863990545032768 }, { "year": 2039, - "value": 2.638814551059191, - "units": "t CO2/Fe_ton" + "value": 2.638814551059191 }, { "year": 2040, - "value": 2.5903022536726255, - "units": "t CO2/Fe_ton" + "value": 2.5903022536726255 }, { "year": 2041, - "value": 2.541600104039621, - "units": "t CO2/Fe_ton" + "value": 2.541600104039621 }, { "year": 2042, - "value": 2.4931857193239786, - "units": "t CO2/Fe_ton" + "value": 2.4931857193239786 }, { "year": 2043, - "value": 2.4453465388873754, - "units": "t CO2/Fe_ton" + "value": 2.4453465388873754 }, { "year": 2044, - "value": 2.398246379616986, - "units": "t CO2/Fe_ton" + "value": 2.398246379616986 }, { "year": 2045, - "value": 2.351973250264482, - "units": "t CO2/Fe_ton" + "value": 2.351973250264482 }, { "year": 2046, - "value": 2.3065699961585597, - "units": "t CO2/Fe_ton" + "value": 2.3065699961585597 }, { "year": 2047, - "value": 2.2620529338308883, - "units": "t CO2/Fe_ton" + "value": 2.2620529338308883 }, { "year": 2048, - "value": 2.2184229217959324, - "units": "t CO2/Fe_ton" + "value": 2.2184229217959324 }, { "year": 2049, - "value": 2.1756718847945424, - "units": "t CO2/Fe_ton" + "value": 2.1756718847945424 }, { "year": 2050, - "value": 2.13378665842693, - "units": "t CO2/Fe_ton" + "value": 2.13378665842693 } ] }, @@ -7612,166 +6433,135 @@ }, "projected_ei_trajectories": { "S1S2": { + "units": "t CO2/Fe_ton", "projections": [ { "year": 2019, - "value": 3.630111503845141, - "units": "t CO2/Fe_ton" + "value": 3.630111503845141 }, { "year": 2020, - "value": 3.2084092426770465, - "units": "t CO2/Fe_ton" + "value": 3.2084092426770465 }, { "year": 2021, - "value": 3.1797007574907754, - "units": "t CO2/Fe_ton" + "value": 3.1797007574907754 }, { "year": 2022, - "value": 3.1537780303458103, - "units": "t CO2/Fe_ton" + "value": 3.1537780303458103 }, { "year": 2023, - "value": 3.128275296291899, - "units": "t CO2/Fe_ton" + "value": 3.128275296291899 }, { "year": 2024, - "value": 3.103169274537815, - "units": "t CO2/Fe_ton" + "value": 3.103169274537815 }, { "year": 2025, - "value": 3.0784157969608446, - "units": "t CO2/Fe_ton" + "value": 3.0784157969608446 }, { "year": 2026, - "value": 3.053946522109776, - "units": "t CO2/Fe_ton" + "value": 3.053946522109776 }, { "year": 2027, - "value": 3.0296740030374125, - "units": "t CO2/Fe_ton" + "value": 3.0296740030374125 }, { "year": 2028, - "value": 3.0054966115150594, - "units": "t CO2/Fe_ton" + "value": 3.0054966115150594 }, { "year": 2029, - "value": 2.981285231148825, - "units": "t CO2/Fe_ton" + "value": 2.981285231148825 }, { "year": 2030, - "value": 2.956846183659979, - "units": "t CO2/Fe_ton" + "value": 2.956846183659979 }, { "year": 2031, - "value": 2.9318657063413673, - "units": "t CO2/Fe_ton" + "value": 2.9318657063413673 }, { "year": 2032, - "value": 2.9058411081553905, - "units": "t CO2/Fe_ton" + "value": 2.9058411081553905 }, { "year": 2033, - "value": 2.8780224302434974, - "units": "t CO2/Fe_ton" + "value": 2.8780224302434974 }, { "year": 2034, - "value": 2.8474408247832557, - "units": "t CO2/Fe_ton" + "value": 2.8474408247832557 }, { "year": 2035, - "value": 2.8131374763554997, - "units": "t CO2/Fe_ton" + "value": 2.8131374763554997 }, { "year": 2036, - "value": 2.774589629905306, - "units": "t CO2/Fe_ton" + "value": 2.774589629905306 }, { "year": 2037, - "value": 2.732040379080609, - "units": "t CO2/Fe_ton" + "value": 2.732040379080609 }, { "year": 2038, - "value": 2.6863990545032768, - "units": "t CO2/Fe_ton" + "value": 2.6863990545032768 }, { "year": 2039, - "value": 2.638814551059191, - "units": "t CO2/Fe_ton" + "value": 2.638814551059191 }, { "year": 2040, - "value": 2.5903022536726255, - "units": "t CO2/Fe_ton" + "value": 2.5903022536726255 }, { "year": 2041, - "value": 2.541600104039621, - "units": "t CO2/Fe_ton" + "value": 2.541600104039621 }, { "year": 2042, - "value": 2.4931857193239786, - "units": "t CO2/Fe_ton" + "value": 2.4931857193239786 }, { "year": 2043, - "value": 2.4453465388873754, - "units": "t CO2/Fe_ton" + "value": 2.4453465388873754 }, { "year": 2044, - "value": 2.398246379616986, - "units": "t CO2/Fe_ton" + "value": 2.398246379616986 }, { "year": 2045, - "value": 2.351973250264482, - "units": "t CO2/Fe_ton" + "value": 2.351973250264482 }, { "year": 2046, - "value": 2.3065699961585597, - "units": "t CO2/Fe_ton" + "value": 2.3065699961585597 }, { "year": 2047, - "value": 2.2620529338308883, - "units": "t CO2/Fe_ton" + "value": 2.2620529338308883 }, { "year": 2048, - "value": 2.2184229217959324, - "units": "t CO2/Fe_ton" + "value": 2.2184229217959324 }, { "year": 2049, - "value": 2.1756718847945424, - "units": "t CO2/Fe_ton" + "value": 2.1756718847945424 }, { "year": 2050, - "value": 2.13378665842693, - "units": "t CO2/Fe_ton" + "value": 2.13378665842693 } ] }, @@ -7781,13 +6571,11 @@ "country": "India", "ghg_s1s2": { "year": 2019, - "value": 12630001.0468216, - "units": "Fe_ton" + "value": 12630001.0468216 }, "ghg_s3": { "year": 2019, - "value": 12630001.0468216, - "units": "Fe_ton" + "value": 12630001.0468216 }, "industry_level_1": null, "industry_level_2": null, @@ -7808,6 +6596,7 @@ "target_probability": 0.4285714285714285, "projected_ei_targets": { "S1S2": { + "units": "t CO2/Fe_ton", "projections": [ { "year": 2019, @@ -7944,6 +6733,7 @@ }, "projected_ei_trajectories": { "S1S2": { + "units": "t CO2/Fe_ton", "projections": [ { "year": 2019, @@ -8081,13 +6871,11 @@ "country": "Russia", "ghg_s1s2": { "year": 2019, - "value": 23779000.8292913, - "units": "Fe_ton" + "value": 23779000.8292913 }, "ghg_s3": { "year": 2019, - "value": 23779000.8292913, - "units": "Fe_ton" + "value": 23779000.8292913 }, "industry_level_1": null, "industry_level_2": null, @@ -8108,166 +6896,135 @@ "target_probability": 0.4285714285714285, "projected_ei_targets": { "S1S2": { + "units": "t CO2/Fe_ton", "projections": [ { "year": 2019, - "value": 2.027591972455373, - "units": "t CO2/Fe_ton" + "value": 2.027591972455373 }, { "year": 2020, - "value": 1.976620617045139, - "units": "t CO2/Fe_ton" + "value": 1.976620617045139 }, { "year": 2021, - "value": 1.948321405929883, - "units": "t CO2/Fe_ton" + "value": 1.948321405929883 }, { "year": 2022, - "value": 1.903826426375229, - "units": "t CO2/Fe_ton" + "value": 1.903826426375229 }, { "year": 2023, - "value": 1.862438512611207, - "units": "t CO2/Fe_ton" + "value": 1.862438512611207 }, { "year": 2024, - "value": 1.8244439841029152, - "units": "t CO2/Fe_ton" + "value": 1.8244439841029152 }, { "year": 2025, - "value": 1.7902131798499714, - "units": "t CO2/Fe_ton" + "value": 1.7902131798499714 }, { "year": 2026, - "value": 1.7599918438367868, - "units": "t CO2/Fe_ton" + "value": 1.7599918438367868 }, { "year": 2027, - "value": 1.7336203510235477, - "units": "t CO2/Fe_ton" + "value": 1.7336203510235477 }, { "year": 2028, - "value": 1.7104459987047824, - "units": "t CO2/Fe_ton" + "value": 1.7104459987047824 }, { "year": 2029, - "value": 1.6895421116638003, - "units": "t CO2/Fe_ton" + "value": 1.6895421116638003 }, { "year": 2030, - "value": 1.6699903140176984, - "units": "t CO2/Fe_ton" + "value": 1.6699903140176984 }, { "year": 2031, - "value": 1.650997709678666, - "units": "t CO2/Fe_ton" + "value": 1.650997709678666 }, { "year": 2032, - "value": 1.631863992673249, - "units": "t CO2/Fe_ton" + "value": 1.631863992673249 }, { "year": 2033, - "value": 1.6119111616280717, - "units": "t CO2/Fe_ton" + "value": 1.6119111616280717 }, { "year": 2034, - "value": 1.5904745104367044, - "units": "t CO2/Fe_ton" + "value": 1.5904745104367044 }, { "year": 2035, - "value": 1.5670204721219367, - "units": "t CO2/Fe_ton" + "value": 1.5670204721219367 }, { "year": 2036, - "value": 1.5413586771198822, - "units": "t CO2/Fe_ton" + "value": 1.5413586771198822 }, { "year": 2037, - "value": 1.5137622140741056, - "units": "t CO2/Fe_ton" + "value": 1.5137622140741056 }, { "year": 2038, - "value": 1.4848394633731865, - "units": "t CO2/Fe_ton" + "value": 1.4848394633731865 }, { "year": 2039, - "value": 1.4552644841971172, - "units": "t CO2/Fe_ton" + "value": 1.4552644841971172 }, { "year": 2040, - "value": 1.425582842432673, - "units": "t CO2/Fe_ton" + "value": 1.425582842432673 }, { "year": 2041, - "value": 1.3961597031365163, - "units": "t CO2/Fe_ton" + "value": 1.3961597031365163 }, { "year": 2042, - "value": 1.3672101712138889, - "units": "t CO2/Fe_ton" + "value": 1.3672101712138889 }, { "year": 2043, - "value": 1.338848217369191, - "units": "t CO2/Fe_ton" + "value": 1.338848217369191 }, { "year": 2044, - "value": 1.3111266047580625, - "units": "t CO2/Fe_ton" + "value": 1.3111266047580625 }, { "year": 2045, - "value": 1.2840632318532665, - "units": "t CO2/Fe_ton" + "value": 1.2840632318532665 }, { "year": 2046, - "value": 1.2576569144325096, - "units": "t CO2/Fe_ton" + "value": 1.2576569144325096 }, { "year": 2047, - "value": 1.2318963980591733, - "units": "t CO2/Fe_ton" + "value": 1.2318963980591733 }, { "year": 2048, - "value": 1.2067653793105761, - "units": "t CO2/Fe_ton" + "value": 1.2067653793105761 }, { "year": 2049, - "value": 1.1822452648395976, - "units": "t CO2/Fe_ton" + "value": 1.1822452648395976 }, { "year": 2050, - "value": 1.158316671492553, - "units": "t CO2/Fe_ton" + "value": 1.158316671492553 } ] }, @@ -8276,166 +7033,135 @@ }, "projected_ei_trajectories": { "S1S2": { + "units": "t CO2/Fe_ton", "projections": [ { "year": 2019, - "value": 2.027591972455373, - "units": "t CO2/Fe_ton" + "value": 2.027591972455373 }, { "year": 2020, - "value": 1.976620617045139, - "units": "t CO2/Fe_ton" + "value": 1.976620617045139 }, { "year": 2021, - "value": 1.948321405929883, - "units": "t CO2/Fe_ton" + "value": 1.948321405929883 }, { "year": 2022, - "value": 1.903826426375229, - "units": "t CO2/Fe_ton" + "value": 1.903826426375229 }, { "year": 2023, - "value": 1.862438512611207, - "units": "t CO2/Fe_ton" + "value": 1.862438512611207 }, { "year": 2024, - "value": 1.8244439841029152, - "units": "t CO2/Fe_ton" + "value": 1.8244439841029152 }, { "year": 2025, - "value": 1.7902131798499714, - "units": "t CO2/Fe_ton" + "value": 1.7902131798499714 }, { "year": 2026, - "value": 1.7599918438367868, - "units": "t CO2/Fe_ton" + "value": 1.7599918438367868 }, { "year": 2027, - "value": 1.7336203510235477, - "units": "t CO2/Fe_ton" + "value": 1.7336203510235477 }, { "year": 2028, - "value": 1.7104459987047824, - "units": "t CO2/Fe_ton" + "value": 1.7104459987047824 }, { "year": 2029, - "value": 1.6895421116638003, - "units": "t CO2/Fe_ton" + "value": 1.6895421116638003 }, { "year": 2030, - "value": 1.6699903140176984, - "units": "t CO2/Fe_ton" + "value": 1.6699903140176984 }, { "year": 2031, - "value": 1.650997709678666, - "units": "t CO2/Fe_ton" + "value": 1.650997709678666 }, { "year": 2032, - "value": 1.631863992673249, - "units": "t CO2/Fe_ton" + "value": 1.631863992673249 }, { "year": 2033, - "value": 1.6119111616280717, - "units": "t CO2/Fe_ton" + "value": 1.6119111616280717 }, { "year": 2034, - "value": 1.5904745104367044, - "units": "t CO2/Fe_ton" + "value": 1.5904745104367044 }, { "year": 2035, - "value": 1.5670204721219367, - "units": "t CO2/Fe_ton" + "value": 1.5670204721219367 }, { "year": 2036, - "value": 1.5413586771198822, - "units": "t CO2/Fe_ton" + "value": 1.5413586771198822 }, { "year": 2037, - "value": 1.5137622140741056, - "units": "t CO2/Fe_ton" + "value": 1.5137622140741056 }, { "year": 2038, - "value": 1.4848394633731865, - "units": "t CO2/Fe_ton" + "value": 1.4848394633731865 }, { "year": 2039, - "value": 1.4552644841971172, - "units": "t CO2/Fe_ton" + "value": 1.4552644841971172 }, { "year": 2040, - "value": 1.425582842432673, - "units": "t CO2/Fe_ton" + "value": 1.425582842432673 }, { "year": 2041, - "value": 1.3961597031365163, - "units": "t CO2/Fe_ton" + "value": 1.3961597031365163 }, { "year": 2042, - "value": 1.3672101712138889, - "units": "t CO2/Fe_ton" + "value": 1.3672101712138889 }, { "year": 2043, - "value": 1.338848217369191, - "units": "t CO2/Fe_ton" + "value": 1.338848217369191 }, { "year": 2044, - "value": 1.3111266047580625, - "units": "t CO2/Fe_ton" + "value": 1.3111266047580625 }, { "year": 2045, - "value": 1.2840632318532665, - "units": "t CO2/Fe_ton" + "value": 1.2840632318532665 }, { "year": 2046, - "value": 1.2576569144325096, - "units": "t CO2/Fe_ton" + "value": 1.2576569144325096 }, { "year": 2047, - "value": 1.2318963980591733, - "units": "t CO2/Fe_ton" + "value": 1.2318963980591733 }, { "year": 2048, - "value": 1.2067653793105761, - "units": "t CO2/Fe_ton" + "value": 1.2067653793105761 }, { "year": 2049, - "value": 1.1822452648395976, - "units": "t CO2/Fe_ton" + "value": 1.1822452648395976 }, { "year": 2050, - "value": 1.158316671492553, - "units": "t CO2/Fe_ton" + "value": 1.158316671492553 } ] }, @@ -8445,13 +7171,11 @@ "country": "Japan", "ghg_s1s2": { "year": 2019, - "value": 47840001.3676141, - "units": "Fe_ton" + "value": 47840001.3676141 }, "ghg_s3": { "year": 2019, - "value": 47840001.3676141, - "units": "Fe_ton" + "value": 47840001.3676141 }, "industry_level_1": null, "industry_level_2": null, @@ -8472,166 +7196,135 @@ "target_probability": 0.4285714285714285, "projected_ei_targets": { "S1S2": { + "units": "t CO2/Fe_ton", "projections": [ { "year": 2019, - "value": 2.061855651645914, - "units": "t CO2/Fe_ton" + "value": 2.061855651645914 }, { "year": 2020, - "value": 2.061855651645914, - "units": "t CO2/Fe_ton" + "value": 2.061855651645914 }, { "year": 2021, - "value": 2.0435566850500866, - "units": "t CO2/Fe_ton" + "value": 2.0435566850500866 }, { "year": 2022, - "value": 2.027287100012685, - "units": "t CO2/Fe_ton" + "value": 2.027287100012685 }, { "year": 2023, - "value": 2.0107342361237563, - "units": "t CO2/Fe_ton" + "value": 2.0107342361237563 }, { "year": 2024, - "value": 2.012026764785486, - "units": "t CO2/Fe_ton" + "value": 2.012026764785486 }, { "year": 2025, - "value": 2.0030980948826973, - "units": "t CO2/Fe_ton" + "value": 2.0030980948826973 }, { "year": 2026, - "value": 1.9895087890921241, - "units": "t CO2/Fe_ton" + "value": 1.9895087890921241 }, { "year": 2027, - "value": 1.974455843324461, - "units": "t CO2/Fe_ton" + "value": 1.974455843324461 }, { "year": 2028, - "value": 1.9580501600215243, - "units": "t CO2/Fe_ton" + "value": 1.9580501600215243 }, { "year": 2029, - "value": 1.9405260657558827, - "units": "t CO2/Fe_ton" + "value": 1.9405260657558827 }, { "year": 2030, - "value": 1.9220392967604456, - "units": "t CO2/Fe_ton" + "value": 1.9220392967604456 }, { "year": 2031, - "value": 1.9025215704757057, - "units": "t CO2/Fe_ton" + "value": 1.9025215704757057 }, { "year": 2032, - "value": 1.8815968571399804, - "units": "t CO2/Fe_ton" + "value": 1.8815968571399804 }, { "year": 2033, - "value": 1.8585396742902418, - "units": "t CO2/Fe_ton" + "value": 1.8585396742902418 }, { "year": 2034, - "value": 1.832337927723912, - "units": "t CO2/Fe_ton" + "value": 1.832337927723912 }, { "year": 2035, - "value": 1.8019881107011875, - "units": "t CO2/Fe_ton" + "value": 1.8019881107011875 }, { "year": 2036, - "value": 1.7670148530936824, - "units": "t CO2/Fe_ton" + "value": 1.7670148530936824 }, { "year": 2037, - "value": 1.7278567894639287, - "units": "t CO2/Fe_ton" + "value": 1.7278567894639287 }, { "year": 2038, - "value": 1.6857203797006854, - "units": "t CO2/Fe_ton" + "value": 1.6857203797006854 }, { "year": 2039, - "value": 1.6420440115023238, - "units": "t CO2/Fe_ton" + "value": 1.6420440115023238 }, { "year": 2040, - "value": 1.5980478305727301, - "units": "t CO2/Fe_ton" + "value": 1.5980478305727301 }, { "year": 2041, - "value": 1.5545765314454727, - "units": "t CO2/Fe_ton" + "value": 1.5545765314454727 }, { "year": 2042, - "value": 1.5121390533112595, - "units": "t CO2/Fe_ton" + "value": 1.5121390533112595 }, { "year": 2043, - "value": 1.4710069881680552, - "units": "t CO2/Fe_ton" + "value": 1.4710069881680552 }, { "year": 2044, - "value": 1.4313026542006284, - "units": "t CO2/Fe_ton" + "value": 1.4313026542006284 }, { "year": 2045, - "value": 1.3930604562851605, - "units": "t CO2/Fe_ton" + "value": 1.3930604562851605 }, { "year": 2046, - "value": 1.3562652786406195, - "units": "t CO2/Fe_ton" + "value": 1.3562652786406195 }, { "year": 2047, - "value": 1.3208753009393037, - "units": "t CO2/Fe_ton" + "value": 1.3208753009393037 }, { "year": 2048, - "value": 1.286835217194566, - "units": "t CO2/Fe_ton" + "value": 1.286835217194566 }, { "year": 2049, - "value": 1.254083790803529, - "units": "t CO2/Fe_ton" + "value": 1.254083790803529 }, { "year": 2050, - "value": 1.2225581277619404, - "units": "t CO2/Fe_ton" + "value": 1.2225581277619404 } ] }, @@ -8640,166 +7333,135 @@ }, "projected_ei_trajectories": { "S1S2": { + "units": "t CO2/Fe_ton", "projections": [ { "year": 2019, - "value": 2.061855651645914, - "units": "t CO2/Fe_ton" + "value": 2.061855651645914 }, { "year": 2020, - "value": 2.061855651645914, - "units": "t CO2/Fe_ton" + "value": 2.061855651645914 }, { "year": 2021, - "value": 2.045754544770144, - "units": "t CO2/Fe_ton" + "value": 2.045754544770144 }, { "year": 2022, - "value": 2.031871238340029, - "units": "t CO2/Fe_ton" + "value": 2.031871238340029 }, { "year": 2023, - "value": 2.0179173897341585, - "units": "t CO2/Fe_ton" + "value": 2.0179173897341585 }, { "year": 2024, - "value": 2.0037602736389872, - "units": "t CO2/Fe_ton" + "value": 2.0037602736389872 }, { "year": 2025, - "value": 1.9892346465281572, - "units": "t CO2/Fe_ton" + "value": 1.9892346465281572 }, { "year": 2026, - "value": 1.974187924297524, - "units": "t CO2/Fe_ton" + "value": 1.974187924297524 }, { "year": 2027, - "value": 1.9585476910028747, - "units": "t CO2/Fe_ton" + "value": 1.9585476910028747 }, { "year": 2028, - "value": 1.9423425952973061, - "units": "t CO2/Fe_ton" + "value": 1.9423425952973061 }, { "year": 2029, - "value": 1.925636133185111, - "units": "t CO2/Fe_ton" + "value": 1.925636133185111 }, { "year": 2030, - "value": 1.9084251897263624, - "units": "t CO2/Fe_ton" + "value": 1.9084251897263624 }, { "year": 2031, - "value": 1.8905587797565466, - "units": "t CO2/Fe_ton" + "value": 1.8905587797565466 }, { "year": 2032, - "value": 1.8716777675180514, - "units": "t CO2/Fe_ton" + "value": 1.8716777675180514 }, { "year": 2033, - "value": 1.8511759539710897, - "units": "t CO2/Fe_ton" + "value": 1.8511759539710897 }, { "year": 2034, - "value": 1.8282400883048167, - "units": "t CO2/Fe_ton" + "value": 1.8282400883048167 }, { "year": 2035, - "value": 1.8020686636628185, - "units": "t CO2/Fe_ton" + "value": 1.8020686636628185 }, { "year": 2036, - "value": 1.7722634208858175, - "units": "t CO2/Fe_ton" + "value": 1.7722634208858175 }, { "year": 2037, - "value": 1.739122527006039, - "units": "t CO2/Fe_ton" + "value": 1.739122527006039 }, { "year": 2038, - "value": 1.7035339693865368, - "units": "t CO2/Fe_ton" + "value": 1.7035339693865368 }, { "year": 2039, - "value": 1.6665741359741721, - "units": "t CO2/Fe_ton" + "value": 1.6665741359741721 }, { "year": 2040, - "value": 1.6291675495460778, - "units": "t CO2/Fe_ton" + "value": 1.6291675495460778 }, { "year": 2041, - "value": 1.5919645590027791, - "units": "t CO2/Fe_ton" + "value": 1.5919645590027791 }, { "year": 2042, - "value": 1.5553670624603537, - "units": "t CO2/Fe_ton" + "value": 1.5553670624603537 }, { "year": 2043, - "value": 1.5195996371089702, - "units": "t CO2/Fe_ton" + "value": 1.5195996371089702 }, { "year": 2044, - "value": 1.4847741892317674, - "units": "t CO2/Fe_ton" + "value": 1.4847741892317674 }, { "year": 2045, - "value": 1.4509353780179215, - "units": "t CO2/Fe_ton" + "value": 1.4509353780179215 }, { "year": 2046, - "value": 1.418089233688979, - "units": "t CO2/Fe_ton" + "value": 1.418089233688979 }, { "year": 2047, - "value": 1.3862202824921672, - "units": "t CO2/Fe_ton" + "value": 1.3862202824921672 }, { "year": 2048, - "value": 1.3553015470583867, - "units": "t CO2/Fe_ton" + "value": 1.3553015470583867 }, { "year": 2049, - "value": 1.3253003200331763, - "units": "t CO2/Fe_ton" + "value": 1.3253003200331763 }, { "year": 2050, - "value": 1.2961814763575168, - "units": "t CO2/Fe_ton" + "value": 1.2961814763575168 } ] }, @@ -8809,13 +7471,11 @@ "country": "Russia", "ghg_s1s2": { "year": 2019, - "value": 15520004.6310296, - "units": "Fe_ton" + "value": 15520004.6310296 }, "ghg_s3": { "year": 2019, - "value": 15520004.6310296, - "units": "Fe_ton" + "value": 15520004.6310296 }, "industry_level_1": null, "industry_level_2": null, @@ -8836,6 +7496,7 @@ "target_probability": 0.4285714285714285, "projected_ei_targets": { "S1S2": { + "units": "t CO2/Fe_ton", "projections": [ { "year": 2019, @@ -8972,6 +7633,7 @@ }, "projected_ei_trajectories": { "S1S2": { + "units": "t CO2/Fe_ton", "projections": [ { "year": 2019, @@ -9128,6 +7790,7 @@ "target_probability": 0.4285714285714285, "projected_ei_targets": { "S1S2": { + "units": "t CO2/Fe_ton", "projections": [ { "year": 2019, @@ -9264,6 +7927,7 @@ }, "projected_ei_trajectories": { "S1S2": { + "units": "t CO2/Fe_ton", "projections": [ { "year": 2019, @@ -9401,13 +8065,11 @@ "country": "Russia", "ghg_s1s2": { "year": 2019, - "value": 11847001.9224849, - "units": "Fe_ton" + "value": 11847001.9224849 }, "ghg_s3": { "year": 2019, - "value": 11847001.9224849, - "units": "Fe_ton" + "value": 11847001.9224849 }, "industry_level_1": null, "industry_level_2": null, @@ -9428,166 +8090,135 @@ "target_probability": 0.4285714285714285, "projected_ei_targets": { "S1S2": { + "units": "t CO2/Fe_ton", "projections": [ { "year": 2019, - "value": 0.7357367696279299, - "units": "t CO2/Fe_ton" + "value": 0.7357367696279299 }, { "year": 2020, - "value": 0.7431078627684136, - "units": "t CO2/Fe_ton" + "value": 0.7431078627684136 }, { "year": 2021, - "value": 0.7245301661992033, - "units": "t CO2/Fe_ton" + "value": 0.7245301661992033 }, { "year": 2022, - "value": 0.7059524696299929, - "units": "t CO2/Fe_ton" + "value": 0.7059524696299929 }, { "year": 2023, - "value": 0.6873747730607825, - "units": "t CO2/Fe_ton" + "value": 0.6873747730607825 }, { "year": 2024, - "value": 0.6687970764915722, - "units": "t CO2/Fe_ton" + "value": 0.6687970764915722 }, { "year": 2025, - "value": 0.6502193799223618, - "units": "t CO2/Fe_ton" + "value": 0.6502193799223618 }, { "year": 2026, - "value": 0.6316416833531514, - "units": "t CO2/Fe_ton" + "value": 0.6316416833531514 }, { "year": 2027, - "value": 0.613063986783941, - "units": "t CO2/Fe_ton" + "value": 0.613063986783941 }, { "year": 2028, - "value": 0.5944862902147308, - "units": "t CO2/Fe_ton" + "value": 0.5944862902147308 }, { "year": 2029, - "value": 0.5759085936455205, - "units": "t CO2/Fe_ton" + "value": 0.5759085936455205 }, { "year": 2030, - "value": 0.55733089707631, - "units": "t CO2/Fe_ton" + "value": 0.55733089707631 }, { "year": 2031, - "value": 0.5387532005070996, - "units": "t CO2/Fe_ton" + "value": 0.5387532005070996 }, { "year": 2032, - "value": 0.5201755039378894, - "units": "t CO2/Fe_ton" + "value": 0.5201755039378894 }, { "year": 2033, - "value": 0.5201755039378894, - "units": "t CO2/Fe_ton" + "value": 0.5201755039378894 }, { "year": 2034, - "value": 0.5201755039378894, - "units": "t CO2/Fe_ton" + "value": 0.5201755039378894 }, { "year": 2035, - "value": 0.5201755039378894, - "units": "t CO2/Fe_ton" + "value": 0.5201755039378894 }, { "year": 2036, - "value": 0.5201755039378894, - "units": "t CO2/Fe_ton" + "value": 0.5201755039378894 }, { "year": 2037, - "value": 0.5201755039378894, - "units": "t CO2/Fe_ton" + "value": 0.5201755039378894 }, { "year": 2038, - "value": 0.5201755039378894, - "units": "t CO2/Fe_ton" + "value": 0.5201755039378894 }, { "year": 2039, - "value": 0.5201755039378894, - "units": "t CO2/Fe_ton" + "value": 0.5201755039378894 }, { "year": 2040, - "value": 0.5201755039378894, - "units": "t CO2/Fe_ton" + "value": 0.5201755039378894 }, { "year": 2041, - "value": 0.5201755039378894, - "units": "t CO2/Fe_ton" + "value": 0.5201755039378894 }, { "year": 2042, - "value": 0.5201755039378894, - "units": "t CO2/Fe_ton" + "value": 0.5201755039378894 }, { "year": 2043, - "value": 0.5201755039378894, - "units": "t CO2/Fe_ton" + "value": 0.5201755039378894 }, { "year": 2044, - "value": 0.5201755039378894, - "units": "t CO2/Fe_ton" + "value": 0.5201755039378894 }, { "year": 2045, - "value": 0.5201755039378894, - "units": "t CO2/Fe_ton" + "value": 0.5201755039378894 }, { "year": 2046, - "value": 0.5201755039378894, - "units": "t CO2/Fe_ton" + "value": 0.5201755039378894 }, { "year": 2047, - "value": 0.5201755039378894, - "units": "t CO2/Fe_ton" + "value": 0.5201755039378894 }, { "year": 2048, - "value": 0.5201755039378894, - "units": "t CO2/Fe_ton" + "value": 0.5201755039378894 }, { "year": 2049, - "value": 0.5201755039378894, - "units": "t CO2/Fe_ton" + "value": 0.5201755039378894 }, { "year": 2050, - "value": 0.5201755039378894, - "units": "t CO2/Fe_ton" + "value": 0.5201755039378894 } ] }, @@ -9596,166 +8227,135 @@ }, "projected_ei_trajectories": { "S1S2": { + "units": "t CO2/Fe_ton", "projections": [ { "year": 2019, - "value": 0.7357367696279299, - "units": "t CO2/Fe_ton" + "value": 0.7357367696279299 }, { "year": 2020, - "value": 0.7431078627684136, - "units": "t CO2/Fe_ton" + "value": 0.7431078627684136 }, { "year": 2021, - "value": 0.7501897627904324, - "units": "t CO2/Fe_ton" + "value": 0.7501897627904324 }, { "year": 2022, - "value": 0.7575228048533635, - "units": "t CO2/Fe_ton" + "value": 0.7575228048533635 }, { "year": 2023, - "value": 0.7642769108038575, - "units": "t CO2/Fe_ton" + "value": 0.7642769108038575 }, { "year": 2024, - "value": 0.770079988325912, - "units": "t CO2/Fe_ton" + "value": 0.770079988325912 }, { "year": 2025, - "value": 0.7744610023258718, - "units": "t CO2/Fe_ton" + "value": 0.7744610023258718 }, { "year": 2026, - "value": 0.7769844247438745, - "units": "t CO2/Fe_ton" + "value": 0.7769844247438745 }, { "year": 2027, - "value": 0.7774691964796803, - "units": "t CO2/Fe_ton" + "value": 0.7774691964796803 }, { "year": 2028, - "value": 0.7760973492675399, - "units": "t CO2/Fe_ton" + "value": 0.7760973492675399 }, { "year": 2029, - "value": 0.7732814664561758, - "units": "t CO2/Fe_ton" + "value": 0.7732814664561758 }, { "year": 2030, - "value": 0.7694357369527733, - "units": "t CO2/Fe_ton" + "value": 0.7694357369527733 }, { "year": 2031, - "value": 0.7648309413072225, - "units": "t CO2/Fe_ton" + "value": 0.7648309413072225 }, { "year": 2032, - "value": 0.7595467522491223, - "units": "t CO2/Fe_ton" + "value": 0.7595467522491223 }, { "year": 2033, - "value": 0.7534670767018642, - "units": "t CO2/Fe_ton" + "value": 0.7534670767018642 }, { "year": 2034, - "value": 0.7463079172067101, - "units": "t CO2/Fe_ton" + "value": 0.7463079172067101 }, { "year": 2035, - "value": 0.7377176945962935, - "units": "t CO2/Fe_ton" + "value": 0.7377176945962935 }, { "year": 2036, - "value": 0.7274635720901763, - "units": "t CO2/Fe_ton" + "value": 0.7274635720901763 }, { "year": 2037, - "value": 0.715596692156447, - "units": "t CO2/Fe_ton" + "value": 0.715596692156447 }, { "year": 2038, - "value": 0.7024470715735162, - "units": "t CO2/Fe_ton" + "value": 0.7024470715735162 }, { "year": 2039, - "value": 0.6884660207225256, - "units": "t CO2/Fe_ton" + "value": 0.6884660207225256 }, { "year": 2040, - "value": 0.6740694806292995, - "units": "t CO2/Fe_ton" + "value": 0.6740694806292995 }, { "year": 2041, - "value": 0.6595683491608161, - "units": "t CO2/Fe_ton" + "value": 0.6595683491608161 }, { "year": 2042, - "value": 0.6451677015578025, - "units": "t CO2/Fe_ton" + "value": 0.6451677015578025 }, { "year": 2043, - "value": 0.6309921128941456, - "units": "t CO2/Fe_ton" + "value": 0.6309921128941456 }, { "year": 2044, - "value": 0.6171122176111137, - "units": "t CO2/Fe_ton" + "value": 0.6171122176111137 }, { "year": 2045, - "value": 0.6035647360408168, - "units": "t CO2/Fe_ton" + "value": 0.6035647360408168 }, { "year": 2046, - "value": 0.5903657697796953, - "units": "t CO2/Fe_ton" + "value": 0.5903657697796953 }, { "year": 2047, - "value": 0.5775191356372302, - "units": "t CO2/Fe_ton" + "value": 0.5775191356372302 }, { "year": 2048, - "value": 0.5650214577321281, - "units": "t CO2/Fe_ton" + "value": 0.5650214577321281 }, { "year": 2049, - "value": 0.5528652485062721, - "units": "t CO2/Fe_ton" + "value": 0.5528652485062721 }, { "year": 2050, - "value": 0.5410407687401423, - "units": "t CO2/Fe_ton" + "value": 0.5410407687401423 } ] }, @@ -9765,13 +8365,11 @@ "country": "Sweden", "ghg_s1s2": { "year": 2019, - "value": 14618000.0778486, - "units": "Fe_ton" + "value": 14618000.0778486 }, "ghg_s3": { "year": 2019, - "value": 14618000.0778486, - "units": "Fe_ton" + "value": 14618000.0778486 }, "industry_level_1": null, "industry_level_2": null, @@ -9792,166 +8390,135 @@ "target_probability": 0.4285714285714285, "projected_ei_targets": { "S1S2": { + "units": "t CO2/Fe_ton", "projections": [ { "year": 2019, - "value": 2.221710525394781, - "units": "t CO2/Fe_ton" + "value": 2.221710525394781 }, { "year": 2020, - "value": 2.053406336107665, - "units": "t CO2/Fe_ton" + "value": 2.053406336107665 }, { "year": 2021, - "value": 2.203778395984357, - "units": "t CO2/Fe_ton" + "value": 2.203778395984357 }, { "year": 2022, - "value": 2.2024949174905872, - "units": "t CO2/Fe_ton" + "value": 2.2024949174905872 }, { "year": 2023, - "value": 2.200429645011074, - "units": "t CO2/Fe_ton" + "value": 2.200429645011074 }, { "year": 2024, - "value": 2.1971633082109605, - "units": "t CO2/Fe_ton" + "value": 2.1971633082109605 }, { "year": 2025, - "value": 2.192175750447834, - "units": "t CO2/Fe_ton" + "value": 2.192175750447834 }, { "year": 2026, - "value": 2.1850020256567952, - "units": "t CO2/Fe_ton" + "value": 2.1850020256567952 }, { "year": 2027, - "value": 2.1754728952891043, - "units": "t CO2/Fe_ton" + "value": 2.1754728952891043 }, { "year": 2028, - "value": 2.163817002526768, - "units": "t CO2/Fe_ton" + "value": 2.163817002526768 }, { "year": 2029, - "value": 2.150489509542201, - "units": "t CO2/Fe_ton" + "value": 2.150489509542201 }, { "year": 2030, - "value": 2.1358996422225753, - "units": "t CO2/Fe_ton" + "value": 2.1358996422225753 }, { "year": 2031, - "value": 2.1202336706821407, - "units": "t CO2/Fe_ton" + "value": 2.1202336706821407 }, { "year": 2032, - "value": 2.103380601639589, - "units": "t CO2/Fe_ton" + "value": 2.103380601639589 }, { "year": 2033, - "value": 2.0849070654192112, - "units": "t CO2/Fe_ton" + "value": 2.0849070654192112 }, { "year": 2034, - "value": 2.064101482026832, - "units": "t CO2/Fe_ton" + "value": 2.064101482026832 }, { "year": 2035, - "value": 2.040179208416509, - "units": "t CO2/Fe_ton" + "value": 2.040179208416509 }, { "year": 2036, - "value": 2.0126628784932996, - "units": "t CO2/Fe_ton" + "value": 2.0126628784932996 }, { "year": 2037, - "value": 1.9817003593041698, - "units": "t CO2/Fe_ton" + "value": 1.9817003593041698 }, { "year": 2038, - "value": 1.9480199529935047, - "units": "t CO2/Fe_ton" + "value": 1.9480199529935047 }, { "year": 2039, - "value": 1.9125840124454299, - "units": "t CO2/Fe_ton" + "value": 1.9125840124454299 }, { "year": 2040, - "value": 1.8762645826219602, - "units": "t CO2/Fe_ton" + "value": 1.8762645826219602 }, { "year": 2041, - "value": 1.8397073526053476, - "units": "t CO2/Fe_ton" + "value": 1.8397073526053476 }, { "year": 2042, - "value": 1.8033367816493635, - "units": "t CO2/Fe_ton" + "value": 1.8033367816493635 }, { "year": 2043, - "value": 1.7674117401514629, - "units": "t CO2/Fe_ton" + "value": 1.7674117401514629 }, { "year": 2044, - "value": 1.7320813586942272, - "units": "t CO2/Fe_ton" + "value": 1.7320813586942272 }, { "year": 2045, - "value": 1.6974263000853436, - "units": "t CO2/Fe_ton" + "value": 1.6974263000853436 }, { "year": 2046, - "value": 1.6634857796054385, - "units": "t CO2/Fe_ton" + "value": 1.6634857796054385 }, { "year": 2047, - "value": 1.6302743103925983, - "units": "t CO2/Fe_ton" + "value": 1.6302743103925983 }, { "year": 2048, - "value": 1.5977918349149562, - "units": "t CO2/Fe_ton" + "value": 1.5977918349149562 }, { "year": 2049, - "value": 1.566029804055538, - "units": "t CO2/Fe_ton" + "value": 1.566029804055538 }, { "year": 2050, - "value": 1.534974823445468, - "units": "t CO2/Fe_ton" + "value": 1.534974823445468 } ] }, @@ -9960,166 +8527,135 @@ }, "projected_ei_trajectories": { "S1S2": { + "units": "t CO2/Fe_ton", "projections": [ { "year": 2019, - "value": 2.221710525394781, - "units": "t CO2/Fe_ton" + "value": 2.221710525394781 }, { "year": 2020, - "value": 2.053406336107665, - "units": "t CO2/Fe_ton" + "value": 2.053406336107665 }, { "year": 2021, - "value": 2.203778395984357, - "units": "t CO2/Fe_ton" + "value": 2.203778395984357 }, { "year": 2022, - "value": 2.2024949174905872, - "units": "t CO2/Fe_ton" + "value": 2.2024949174905872 }, { "year": 2023, - "value": 2.200429645011074, - "units": "t CO2/Fe_ton" + "value": 2.200429645011074 }, { "year": 2024, - "value": 2.1971633082109605, - "units": "t CO2/Fe_ton" + "value": 2.1971633082109605 }, { "year": 2025, - "value": 2.192175750447834, - "units": "t CO2/Fe_ton" + "value": 2.192175750447834 }, { "year": 2026, - "value": 2.1850020256567952, - "units": "t CO2/Fe_ton" + "value": 2.1850020256567952 }, { "year": 2027, - "value": 2.1754728952891043, - "units": "t CO2/Fe_ton" + "value": 2.1754728952891043 }, { "year": 2028, - "value": 2.163817002526768, - "units": "t CO2/Fe_ton" + "value": 2.163817002526768 }, { "year": 2029, - "value": 2.150489509542201, - "units": "t CO2/Fe_ton" + "value": 2.150489509542201 }, { "year": 2030, - "value": 2.1358996422225753, - "units": "t CO2/Fe_ton" + "value": 2.1358996422225753 }, { "year": 2031, - "value": 2.1202336706821407, - "units": "t CO2/Fe_ton" + "value": 2.1202336706821407 }, { "year": 2032, - "value": 2.103380601639589, - "units": "t CO2/Fe_ton" + "value": 2.103380601639589 }, { "year": 2033, - "value": 2.0849070654192112, - "units": "t CO2/Fe_ton" + "value": 2.0849070654192112 }, { "year": 2034, - "value": 2.064101482026832, - "units": "t CO2/Fe_ton" + "value": 2.064101482026832 }, { "year": 2035, - "value": 2.040179208416509, - "units": "t CO2/Fe_ton" + "value": 2.040179208416509 }, { "year": 2036, - "value": 2.0126628784932996, - "units": "t CO2/Fe_ton" + "value": 2.0126628784932996 }, { "year": 2037, - "value": 1.9817003593041698, - "units": "t CO2/Fe_ton" + "value": 1.9817003593041698 }, { "year": 2038, - "value": 1.9480199529935047, - "units": "t CO2/Fe_ton" + "value": 1.9480199529935047 }, { "year": 2039, - "value": 1.9125840124454299, - "units": "t CO2/Fe_ton" + "value": 1.9125840124454299 }, { "year": 2040, - "value": 1.8762645826219602, - "units": "t CO2/Fe_ton" + "value": 1.8762645826219602 }, { "year": 2041, - "value": 1.8397073526053476, - "units": "t CO2/Fe_ton" + "value": 1.8397073526053476 }, { "year": 2042, - "value": 1.8033367816493635, - "units": "t CO2/Fe_ton" + "value": 1.8033367816493635 }, { "year": 2043, - "value": 1.7674117401514629, - "units": "t CO2/Fe_ton" + "value": 1.7674117401514629 }, { "year": 2044, - "value": 1.7320813586942272, - "units": "t CO2/Fe_ton" + "value": 1.7320813586942272 }, { "year": 2045, - "value": 1.6974263000853436, - "units": "t CO2/Fe_ton" + "value": 1.6974263000853436 }, { "year": 2046, - "value": 1.6634857796054385, - "units": "t CO2/Fe_ton" + "value": 1.6634857796054385 }, { "year": 2047, - "value": 1.6302743103925983, - "units": "t CO2/Fe_ton" + "value": 1.6302743103925983 }, { "year": 2048, - "value": 1.5977918349149562, - "units": "t CO2/Fe_ton" + "value": 1.5977918349149562 }, { "year": 2049, - "value": 1.566029804055538, - "units": "t CO2/Fe_ton" + "value": 1.566029804055538 }, { "year": 2050, - "value": 1.534974823445468, - "units": "t CO2/Fe_ton" + "value": 1.534974823445468 } ] }, @@ -10129,13 +8665,11 @@ "country": "India", "ghg_s1s2": { "year": 2019, - "value": 27110004.3464472, - "units": "Fe_ton" + "value": 27110004.3464472 }, "ghg_s3": { "year": 2019, - "value": 27110004.3464472, - "units": "Fe_ton" + "value": 27110004.3464472 }, "industry_level_1": null, "industry_level_2": null, @@ -10156,6 +8690,7 @@ "target_probability": 0.4285714285714285, "projected_ei_targets": { "S1S2": { + "units": "t CO2/Fe_ton", "projections": [ { "year": 2019, @@ -10292,6 +8827,7 @@ }, "projected_ei_trajectories": { "S1S2": { + "units": "t CO2/Fe_ton", "projections": [ { "year": 2019, diff --git a/test/test_base_providers.py b/test/test_base_providers.py index 6959fe21..b9ef6280 100644 --- a/test/test_base_providers.py +++ b/test/test_base_providers.py @@ -12,7 +12,7 @@ from ITR.data.base_providers import BaseCompanyDataProvider, BaseProviderProductionBenchmark, \ BaseProviderIntensityBenchmark from ITR.interfaces import ICompanyData, EScope, ETimeFrames, PortfolioCompany, IEmissionIntensityBenchmarkScopes, \ - IProductionBenchmarkScopes, IYOYBenchmarkScopes + IProductionBenchmarkScopes from ITR.data.osc_units import ureg, Q_, PA_ @@ -37,7 +37,7 @@ def setUp(self) -> None: # load production benchmarks with open(self.benchmark_prod_json) as json_file: parsed_json = json.load(json_file) - prod_bms = IYOYBenchmarkScopes.parse_obj(parsed_json) + prod_bms = IProductionBenchmarkScopes.parse_obj(parsed_json) self.base_production_bm = BaseProviderProductionBenchmark(production_benchmarks=prod_bms) # load intensity benchmarks @@ -152,8 +152,8 @@ def test_get_company_data(self): self.assertEqual(company_1.company_id, "US0079031078") self.assertEqual(company_2.company_id, "US00724F1012") # print(f"\nghg_s1s2 = {company_1.ghg_s1s2}\n\n") - self.assertAlmostEqual(Q_(company_1.ghg_s1s2.value,company_1.ghg_s1s2.units), Q_(104827858.636039, 'MWh')) # These are apparently production numbers, not emissions numbers - self.assertAlmostEqual(Q_(company_2.ghg_s1s2.value,company_2.ghg_s1s2.units), Q_(598937001.892059, 'MWh')) # These are apparently production numbers, not emissions numbers + self.assertAlmostEqual(Q_(company_1.ghg_s1s2.value,company_1.production_metric.units), Q_(104827858.636039, 'MWh')) # These are apparently production numbers, not emissions numbers + self.assertAlmostEqual(Q_(company_2.ghg_s1s2.value,company_2.production_metric.units), Q_(598937001.892059, 'MWh')) # These are apparently production numbers, not emissions numbers self.assertAlmostEqual(company_1.cumulative_budget, Q_(1362284467.0830, 't CO2'), places=4) self.assertAlmostEqual(company_2.cumulative_budget, Q_(2262242040.68059, 't CO2'), places=4) self.assertAlmostEqual(company_1.cumulative_target, Q_(3769096510.09909, 't CO2'), places=4) diff --git a/test/test_different_benchmarks.py b/test/test_different_benchmarks.py index 2afe90a8..56b7a73a 100644 --- a/test/test_different_benchmarks.py +++ b/test/test_different_benchmarks.py @@ -12,7 +12,7 @@ from ITR.data.base_providers import BaseCompanyDataProvider, BaseProviderProductionBenchmark, \ BaseProviderIntensityBenchmark from ITR.interfaces import ICompanyData, EScope, ETimeFrames, PortfolioCompany, IEmissionIntensityBenchmarkScopes, \ - IProductionBenchmarkScopes, IYOYBenchmarkScopes + IProductionBenchmarkScopes from ITR.data.osc_units import ureg, Q_, PA_ @@ -39,7 +39,7 @@ def setUp(self) -> None: # load production benchmarks with open(self.benchmark_prod_json) as json_file: parsed_json = json.load(json_file) - prod_bms = IYOYBenchmarkScopes.parse_obj(parsed_json) + prod_bms = IProductionBenchmarkScopes.parse_obj(parsed_json) self.base_production_bm = BaseProviderProductionBenchmark(production_benchmarks=prod_bms) # load intensity benchmarks diff --git a/test/test_e2e.py b/test/test_e2e.py index 8ab648cc..5fe055af 100644 --- a/test/test_e2e.py +++ b/test/test_e2e.py @@ -12,7 +12,7 @@ import ITR from ITR.data.data_warehouse import DataWarehouse from typing import List -from ITR.interfaces import ICompanyAggregates, ICompanyProjectionsScopes +from ITR.interfaces import ICompanyAggregates, ICompanyProjectionsScopes, ICompanyProjection class TestDataWareHouse(DataWarehouse): @@ -40,8 +40,8 @@ def setUp(self): self.company_base = ICompanyAggregates( company_name=company_id, company_id=company_id, - ghg_s1s2=100, - ghg_s3=0, + ghg_s1s2=ICompanyProjection.parse_obj({"year": 2019, "value":100.0}), + ghg_s3=ICompanyProjection.parse_obj({"year": 2019, "value":0.0}), company_revenue=100, company_market_cap=100, company_enterprise_value=100, @@ -56,38 +56,41 @@ def setUp(self): region='Europe', benchmark_global_budget="396 Gt CO2", benchmark_temperature="1.5 delta_degC", - projected_intensities=ICompanyProjectionsScopes.parse_obj({ + production_metric = { "units": "Fe_ton" }, + projected_ei_trajectories=ICompanyProjectionsScopes.parse_obj({ "S1S2": { + "units": "t CO2/Fe_ton", "projections": [ { "year": "2019", - "value": "1.6982474347547039 t CO2/MWh" + "value": 1.6982474347547039 }, { "year": "2020", - "value": "1.6982474347547039 t CO2/MWh" + "value": 1.6982474347547039 }, { "year": "2021", - "value": "1.5908285727976157 t CO2/MWh" + "value": 1.5908285727976157 } ] } }), - projected_targets=ICompanyProjectionsScopes.parse_obj({ + projected_ei_targets=ICompanyProjectionsScopes.parse_obj({ "S1S2": { + "units": "t CO2/Fe_ton", "projections": [ { "year": "2019", - "value": "1.6982474347547039 t CO2/MWh" + "value": 1.6982474347547039 }, { "year": "2020", - "value": "1.6982474347547039 t CO2/MWh" + "value": 1.6982474347547039 }, { "year": "2021", - "value": "1.5577542305393455 t CO2/MWh" + "value": 1.5577542305393455 } ] } From 055b56917c4d7fc8529312480e31a84809ca375e Mon Sep 17 00:00:00 2001 From: MichaelTiemannOSC Date: Mon, 3 Jan 2022 18:21:28 +0000 Subject: [PATCH 062/345] WIP checkin of Excel functionality This doesn't entirely work yet, in part because of problems reported in https://github.com/os-c/ITR/issues/19 Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- ITR/data/base_providers.py | 3 ++- ITR/data/data_warehouse.py | 2 +- ITR/data/excel.py | 48 ++++++++++++++++++++----------------- test/test_excel_provider.py | 6 +++-- 4 files changed, 33 insertions(+), 26 deletions(-) diff --git a/ITR/data/base_providers.py b/ITR/data/base_providers.py index b1005a44..f86d87f4 100644 --- a/ITR/data/base_providers.py +++ b/ITR/data/base_providers.py @@ -110,7 +110,8 @@ def get_company_intensity_and_production_at_base_year(self, company_ids: List[st self.column_config.PRODUCTION_METRIC, self.column_config.GHG_SCOPE12]] company_info[self.column_config.PRODUCTION_METRIC] = company_info[self.column_config.PRODUCTION_METRIC].apply(lambda x: x['units']) - company_info[self.column_config.GHG_SCOPE12] = company_info[[self.column_config.PRODUCTION_METRIC, self.column_config.GHG_SCOPE12]].apply(lambda x: Q_(x[self.column_config.GHG_SCOPE12]['value'], x[self.column_config.PRODUCTION_METRIC]), axis=1) # .astype(f'pint[{units}]') + company_info[self.column_config.GHG_SCOPE12] = company_info[[self.column_config.PRODUCTION_METRIC, self.column_config.GHG_SCOPE12] + ].apply(lambda x: None if x[self.column_config.GHG_SCOPE12] is None or x[self.column_config.GHG_SCOPE12]['value'] is None else Q_(x[self.column_config.GHG_SCOPE12]['value'], x[self.column_config.PRODUCTION_METRIC]), axis=1) # .astype(f'pint[{units}]') ei_at_base = self._get_company_intensity_at_year(base_year, company_ids).rename(self.column_config.BASE_EI) return company_info.merge(ei_at_base, left_index=True, right_index=True) diff --git a/ITR/data/data_warehouse.py b/ITR/data/data_warehouse.py index e3ecd309..4460ec02 100644 --- a/ITR/data/data_warehouse.py +++ b/ITR/data/data_warehouse.py @@ -49,7 +49,7 @@ def get_preprocessed_company_data(self, company_ids: List[str]) -> List[ICompany company_data = self.company_data.get_company_data(company_ids) df_company_data = pd.DataFrame.from_records([c.dict() for c in company_data]).set_index(self.column_config.COMPANY_ID, drop=False) df_company_data['production_metric'] = df_company_data['production_metric'].apply(lambda x: x['units']) - df_company_data['ghg_s1s2'] = df_company_data[['production_metric', 'ghg_s1s2']].apply(lambda x: Q_(x.ghg_s1s2['value'], x.production_metric), axis=1) + df_company_data['ghg_s1s2'] = df_company_data[['production_metric', 'ghg_s1s2']].apply(lambda x: None if x.ghg_s1s2 is None or x.ghg_s1s2['value'] is None else Q_(x.ghg_s1s2['value'], x.production_metric), axis=1) assert pd.Series(company_ids).isin(df_company_data.index).all(), \ "some of the company ids are not included in the fundamental data" diff --git a/ITR/data/excel.py b/ITR/data/excel.py index d6102264..199f81bb 100644 --- a/ITR/data/excel.py +++ b/ITR/data/excel.py @@ -24,6 +24,9 @@ from ITR.interfaces import ICompanyProjections, ICompanyProjections import inspect +# Excel spreadsheets don't have units elaborated, so we translate sectors to units +sector_to_production_metric = { 'Electricity Utilities':'MWh', 'Steel':'Fe_ton' } + # TODO: Force validation for excel benchmarks # Utils functions: @@ -39,8 +42,8 @@ def convert_dimensionless_benchmark_excel_to_model(df_excel: pd.DataFrame, sheet [column_name_region, column_name_sector]) result = [] for index, row in df_ei_bms.iterrows(): - bm = IBenchmark(region=index[0], sector=index[1], - projections=[IBenchmarkProjection(year=int(k), value=v) for k, v in row.items()]) + bm = IBenchmark(region=index[0], sector=index[1], benchmark_metric={'units':'dimensionless'}, + projections=[IBenchmarkProjection(year=int(k), value=v) for k, v in row.items()]) result.append(bm) return IBenchmarks(benchmarks=result) @@ -52,13 +55,13 @@ def convert_intensity_benchmark_excel_to_model(df_excel: pd.DataFrame, sheetname :param excal_path: file path to excel :return: IBenchmarks instance (list of IBenchmark) """ - error("need to make generic for production units") df_ei_bms = df_excel[sheetname].reset_index().drop(columns=['index']).set_index( [column_name_region, column_name_sector]) result = [] for index, row in df_ei_bms.iterrows(): - bm = IBenchmark(region=index[0], sector=index[1], - projections=[IBenchmarkProjection(year=int(k), value=Q_(v, ureg('t CO2/MWh'))) for k, v in row.items()]) + intensity_units = f't CO2/({sector_to_production_metric[index[1]]})' + bm = IBenchmark(region=index[0], sector=index[1], benchmark_metric={'units':intensity_units}, + projections=[IBenchmarkProjection(year=int(k), value=v) for k, v in row.items()]) result.append(bm) return IBenchmarks(benchmarks=result) @@ -78,7 +81,7 @@ def __init__(self, excel_path: str, column_config: Type[ColumnsConfig] = Columns production_bms = self._convert_excel_to_model(self.benchmark_excel, TabsConfig.PROJECTED_PRODUCTION, column_config.REGION, column_config.SECTOR) super().__init__( - IProductionBenchmarkScopes(S1S2=production_bms), column_config, + IProductionBenchmarkScopes(benchmark_metric={'units':'dimensionless'}, S1S2=production_bms), column_config, tempscore_config) def _check_sector_data(self) -> None: @@ -111,7 +114,8 @@ def __init__(self, excel_path: str, benchmark_temperature: Quantity['delta_degC' EI_benchmarks = self._convert_excel_to_model(self.benchmark_excel, TabsConfig.PROJECTED_EI, column_config.REGION, column_config.SECTOR) super().__init__( - IEmissionIntensityBenchmarkScopes(S1S2=EI_benchmarks, benchmark_temperature=benchmark_temperature, + IEmissionIntensityBenchmarkScopes(benchmark_metric={'units':'t CO2/MWh'}, S1S2=EI_benchmarks, + benchmark_temperature=benchmark_temperature, benchmark_global_budget=benchmark_global_budget, is_AFOLU_included=is_AFOLU_included), column_config, tempscore_config) @@ -161,20 +165,21 @@ def _convert_from_excel_data(self, excel_path: str) -> List[ICompanyData]: df_company_data = pd.read_excel(excel_path, sheet_name=None, skiprows=0) self._check_company_data(df_company_data) - df_fundamentals = df_company_data[TabsConfig.FUNDAMENTAL] + df_fundamentals = df_company_data[TabsConfig.FUNDAMENTAL].set_index(self.column_config.COMPANY_ID, drop=False) + df_fundamentals[self.column_config.PRODUCTION_METRIC] = df_fundamentals[self.column_config.SECTOR].map(sector_to_production_metric) company_ids = df_fundamentals[self.column_config.COMPANY_ID].unique() - df_targets = self._get_projection(company_ids, df_company_data[TabsConfig.PROJECTED_TARGET], 'pint[t CO2/GJ]') + df_targets = self._get_projection(company_ids, df_company_data[TabsConfig.PROJECTED_TARGET], df_fundamentals[self.column_config.PRODUCTION_METRIC]) if TabsConfig.PROJECTED_EI in df_company_data.keys(): - df_ei = self._get_projection(company_ids, df_company_data[TabsConfig.PROJECTED_EI], 'pint[t CO2/GJ]') + df_ei = self._get_projection(company_ids, df_company_data[TabsConfig.PROJECTED_EI], df_fundamentals[self.column_config.PRODUCTION_METRIC])) else: df_ei = None if TabsConfig.HISTORIC_DATA in df_company_data.keys(): - df_historic = self._get_historic_data(company_ids, df_company_data[TabsConfig.HISTORIC_DATA], 'pint[t CO2/GJ]' + df_historic = self._get_historic_data(company_ids, df_company_data[TabsConfig.HISTORIC_DATA], df_fundamentals[self.column_config.PRODUCTION_METRIC]) else: df_historic = None return self._company_df_to_model(df_fundamentals, df_targets, df_ei, df_historic) - def _convert_series_to_projections(self, projections: pd.Series) -> List[ + def _convert_series_to_ICompanyProjections(self, projections: pd.Series) -> List[ ICompanyProjection]: """ Converts a Pandas Series in a list of ICompanyProjections @@ -200,7 +205,6 @@ def _company_df_to_model(self, df_fundamentals: pd.DataFrame, df_targets: pd.Dat companies_data_dict = df_fundamentals.to_dict(orient="records") model_companies: List[ICompanyData] = [] - sector_to_production_metric = { 'Electricity Utilities':'MWh', 'Steel':'Fe_ton' } for company_data in companies_data_dict: # company_data is a dict, not a dataframe try: @@ -215,7 +219,8 @@ def _company_df_to_model(self, df_fundamentals: pd.DataFrame, df_targets: pd.Dat # company_data.update({ColumnsConfig.PROJECTED_EI: {'S1S2': {'projections': df_ei}}}) company_id = company_data[self.column_config.COMPANY_ID] - company_data[self.column_config.PRODUCTION_METRIC] = sector_to_production_metric[company_data[self.column_config.SECTOR]] + units = sector_to_production_metric[company_data[self.column_config.SECTOR]] + company_data[self.column_config.PRODUCTION_METRIC] = {'units': units} # pint automatically handles any unit conversions required ghg_s1s2 = df_fundamentals[df_fundamentals[self.column_config.COMPANY_ID]==company_id][self.column_config.GHG_SCOPE12].squeeze() if ghg_s1s2: @@ -234,7 +239,7 @@ def _company_df_to_model(self, df_fundamentals: pd.DataFrame, df_targets: pd.Dat model_companies.append(ICompanyData.parse_obj(company_data)) except ValidationError as e: logger.warning( - "(one of) the input(s) of company %s is invalid and will be skipped" % company_data[ + f"EX {e}: (one of) the input(s) of company %s is invalid and will be skipped" % company_data[ self.column_config.COMPANY_NAME]) pass return model_companies @@ -243,11 +248,12 @@ def _company_df_to_model(self, df_fundamentals: pd.DataFrame, df_targets: pd.Dat def _np_sum(g): return np.sum(g.values) - def _get_projection(self, company_ids: List[str], projections: pd.DataFrame, astype: str) -> pd.DataFrame: + def _get_projection(self, company_ids: List[str], projections: pd.DataFrame, production_metric: pd.DataFrame) -> pd.DataFrame: """ - get the projected emissions for list of companies + get the projected emission intensities for list of companies :param company_ids: list of company ids :param projections: Dataframe with listed projections per company + :param production_metric: Dataframe with production_metric per company :return: series of projected emission intensities """ @@ -256,13 +262,11 @@ def _get_projection(self, company_ids: List[str], projections: pd.DataFrame, ast assert all(company_id in projections.index for company_id in company_ids), \ f"company ids missing in provided projections" - projections = projections.loc[company_ids, :] - projections = projections.loc[:, range(self.temp_config.CONTROLS_CONFIG.base_year, - self.temp_config.CONTROLS_CONFIG.target_end_year + 1)] + projections = projections.loc[company_ids, range(self.temp_config.CONTROLS_CONFIG.base_year, + self.temp_config.CONTROLS_CONFIG.target_end_year + 1)] # Due to bug (https://github.com/pandas-dev/pandas/issues/20824) in Pandas where NaN are treated as zero workaround below: projected_emissions_s1s2 = projections.groupby(level=0, sort=False).agg(ExcelProviderCompany._np_sum) # add scope 1 and 2 - for col in projected_emissions_s1s2.columns: - projected_emissions_s1s2[col] = projected_emissions_s1s2[col].astype(astype) + projected_emissions_s1s2 = projected_ei_s1s2.apply(lambda x: x.astype(f'pint[t CO2/({production_metric[x.name]})]'), axis=1) return projected_emissions_s1s2 diff --git a/test/test_excel_provider.py b/test/test_excel_provider.py index f35187b0..2e743942 100644 --- a/test/test_excel_provider.py +++ b/test/test_excel_provider.py @@ -28,6 +28,7 @@ def setUp(self) -> None: self.excel_EI_bm = ExcelProviderIntensityBenchmark(excel_path=self.sector_data_path, benchmark_temperature=Q_(1.5, ureg.delta_degC), benchmark_global_budget=Q_(396, ureg('Gt CO2')), is_AFOLU_included=False) self.excel_provider = DataWarehouse(self.excel_company_data, self.excel_production_bm, self.excel_EI_bm) + # "US0079031078","US00724F1012","FR0000125338" are all Electricity Utilities self.company_ids = ["US0079031078", "US00724F1012", "FR0000125338"] @@ -150,14 +151,15 @@ def test_get_cumulative_value(self): projected_production=projected_production), expected_data) def test_get_company_data(self): + # "US0079031078" and "US00724F1012" are both Electricity Utilities company_1 = self.excel_provider.get_preprocessed_company_data(self.company_ids)[0] company_2 = self.excel_provider.get_preprocessed_company_data(self.company_ids)[1] self.assertEqual(company_1.company_name, "Company AG") self.assertEqual(company_2.company_name, "Company AH") self.assertEqual(company_1.company_id, "US0079031078") self.assertEqual(company_2.company_id, "US00724F1012") - self.assertAlmostEqual(company_1.ghg_s1s2, Q_(104827858.636039, ureg('MWh'))) - self.assertAlmostEqual(company_2.ghg_s1s2, Q_(598937001.892059, ureg('MWh'))) + self.assertAlmostEqual(Q_(company_1.ghg_s1s2.value,company_1.production_metric.units), Q_(104827858.636039, ureg('MWh'))) + self.assertAlmostEqual(Q_(company_2.ghg_s1s2.value,company_2.production_metric.units), Q_(598937001.892059, ureg('MWh'))) self.assertAlmostEqual(company_1.cumulative_budget, Q_(1362284467.0830, ureg('t CO2')), places=4) self.assertAlmostEqual(company_2.cumulative_budget, Q_(2262242040.68059, ureg('t CO2')), places=4) self.assertAlmostEqual(company_1.cumulative_target, Q_(3769096510.09909, ureg('t CO2')), places=4) From 011d8fa34749886d6837af99c86af68c7d58fae3 Mon Sep 17 00:00:00 2001 From: MichaelTiemannOSC Date: Wed, 5 Jan 2022 02:57:49 +0000 Subject: [PATCH 063/345] Broad reconciliation of changes to present a fresh basis for review Having explored many ways to NOT do things with Pydantic, things are now closer to the starting point, while passing tests (as much as possible given the testing framework problems with pint). Should be a good starting point for review/discussions. Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- ITR/data/base_providers.py | 11 +-- ITR/data/data_warehouse.py | 13 ---- ITR/data/excel.py | 36 +++++---- ITR/data/osc_units.py | 15 ++-- ITR/interfaces.py | 120 +++++++++++++++++++++++++----- ITR/temperature_score.py | 4 +- test/test_base_providers.py | 33 ++++---- test/test_different_benchmarks.py | 2 +- test/test_e2e.py | 62 ++++++++------- test/test_excel_provider.py | 42 ++++++----- test/test_interfaces.py | 41 +++++++++- 11 files changed, 246 insertions(+), 133 deletions(-) diff --git a/ITR/data/base_providers.py b/ITR/data/base_providers.py index f86d87f4..23692390 100644 --- a/ITR/data/base_providers.py +++ b/ITR/data/base_providers.py @@ -57,7 +57,7 @@ def _convert_projections_to_series(self, company: ICompanyData, feature: str, """ units = company.dict()[self.column_config.PRODUCTION_METRIC]['units'] return pd.Series( - {r['year']: r['value'] for r in company.dict()[feature][str(scope)]['projections']}, + {r['year']: r['value'] for reports in company.dict()[feature][str(scope)]['reports'] for r in reports['projections'] }, name=company.company_id, dtype=f'pint[t CO2/{units}]') # ??? Why prefer TRAJECTORY over TARGET? @@ -100,7 +100,7 @@ def get_company_intensity_and_production_at_base_year(self, company_ids: List[st overrides subclass method :param: company_ids: list of company ids :return: DataFrame the following columns : - ColumnsConfig.COMPANY_ID, ColumnsConfig.PRODUCTION_METRIC, ColumnsConfig.GHG_S1S2, ColumnsConfig.BASE_EI, + ColumnsConfig.COMPANY_ID, ColumnsConfig.PRODUCTION_METRIC, ColumnsConfig.GHG_SCOPE12, ColumnsConfig.BASE_EI, ColumnsConfig.SECTOR and ColumnsConfig.REGION """ df_fundamentals = self.get_company_fundamentals(company_ids) @@ -109,9 +109,6 @@ def get_company_intensity_and_production_at_base_year(self, company_ids: List[st company_ids, [self.column_config.SECTOR, self.column_config.REGION, self.column_config.PRODUCTION_METRIC, self.column_config.GHG_SCOPE12]] - company_info[self.column_config.PRODUCTION_METRIC] = company_info[self.column_config.PRODUCTION_METRIC].apply(lambda x: x['units']) - company_info[self.column_config.GHG_SCOPE12] = company_info[[self.column_config.PRODUCTION_METRIC, self.column_config.GHG_SCOPE12] - ].apply(lambda x: None if x[self.column_config.GHG_SCOPE12] is None or x[self.column_config.GHG_SCOPE12]['value'] is None else Q_(x[self.column_config.GHG_SCOPE12]['value'], x[self.column_config.PRODUCTION_METRIC]), axis=1) # .astype(f'pint[{units}]') ei_at_base = self._get_company_intensity_at_year(base_year, company_ids).rename(self.column_config.BASE_EI) return company_info.merge(ei_at_base, left_index=True, right_index=True) @@ -132,7 +129,7 @@ def get_company_projected_trajectories(self, company_ids: List[str]) -> pd.DataF trajectory_list = [self._convert_projections_to_series(c, self.column_config.PROJECTED_TRAJECTORIES) for c in self.get_company_data(company_ids)] if trajectory_list: - return pd.DataFrame(trajectory_list, dtype=trajectory_list[0].dtype) + return pd.DataFrame(trajectory_list) return pd.DataFrame() def get_company_projected_targets(self, company_ids: List[str]) -> pd.DataFrame: @@ -143,7 +140,7 @@ def get_company_projected_targets(self, company_ids: List[str]) -> pd.DataFrame: target_list = [self._convert_projections_to_series(c, self.column_config.PROJECTED_TARGETS) for c in self.get_company_data(company_ids)] if target_list: - return pd.DataFrame(target_list, dtype=target_list[0].dtype) + return pd.DataFrame(target_list) return pd.DataFrame() # This is actual output production (whatever the output production units may be). diff --git a/ITR/data/data_warehouse.py b/ITR/data/data_warehouse.py index 4460ec02..e74db2fe 100644 --- a/ITR/data/data_warehouse.py +++ b/ITR/data/data_warehouse.py @@ -48,8 +48,6 @@ def get_preprocessed_company_data(self, company_ids: List[str]) -> List[ICompany """ company_data = self.company_data.get_company_data(company_ids) df_company_data = pd.DataFrame.from_records([c.dict() for c in company_data]).set_index(self.column_config.COMPANY_ID, drop=False) - df_company_data['production_metric'] = df_company_data['production_metric'].apply(lambda x: x['units']) - df_company_data['ghg_s1s2'] = df_company_data[['production_metric', 'ghg_s1s2']].apply(lambda x: None if x.ghg_s1s2 is None or x.ghg_s1s2['value'] is None else Q_(x.ghg_s1s2['value'], x.production_metric), axis=1) assert pd.Series(company_ids).isin(df_company_data.index).all(), \ "some of the company ids are not included in the fundamental data" @@ -57,14 +55,6 @@ def get_preprocessed_company_data(self, company_ids: List[str]) -> List[ICompany projected_production = self.benchmark_projected_production.get_company_projected_production( company_info_at_base_year).sort_index() - df_company_data.loc[:, self.column_config.CUMULATIVE_TRAJECTORY] = self._get_cumulative_emission( - projected_emission_intensity=self.company_data.get_company_projected_intensities(company_ids), - projected_production=projected_production) - - df_new = self._get_cumulative_emission( - projected_emission_intensity=self.company_data.get_company_projected_targets(company_ids), - projected_production=projected_production) - df_trajectory = self._get_cumulative_emission( projected_emission_intensity=self.company_data.get_company_projected_trajectories(company_ids), projected_production=projected_production).rename(self.column_config.CUMULATIVE_TRAJECTORY) @@ -82,14 +72,11 @@ def get_preprocessed_company_data(self, company_ids: List[str]) -> List[ICompany df_company_data[self.column_config.BENCHMARK_TEMP] = pd.Series([self.benchmarks_projected_emission_intensity.benchmark_temperature]* len(df_company_data), dtype='pint[delta_degC]', index=df_company_data.index) - df_company_data['ghg_s1s2'] = df_company_data['ghg_s1s2'].apply(lambda x: {'year':2019, 'value':x.m}) - df_company_data['production_metric'] = df_company_data['production_metric'].apply(lambda x: {'units':x}) for col in [ self.column_config.CUMULATIVE_TRAJECTORY, self.column_config.CUMULATIVE_TARGET, self.column_config.CUMULATIVE_BUDGET]: df_company_data[col] = df_company_data[col].apply(lambda x: str(x)) companies = df_company_data.to_dict(orient="records") aggregate_company_data: List[ICompanyAggregates] = [ICompanyAggregates.parse_obj(company) for company in companies] - return aggregate_company_data def _convert_df_to_model(self, df_company_data: pd.DataFrame) -> List[ICompanyAggregates]: diff --git a/ITR/data/excel.py b/ITR/data/excel.py index 199f81bb..e9025ef0 100644 --- a/ITR/data/excel.py +++ b/ITR/data/excel.py @@ -25,7 +25,8 @@ import inspect # Excel spreadsheets don't have units elaborated, so we translate sectors to units -sector_to_production_metric = { 'Electricity Utilities':'MWh', 'Steel':'Fe_ton' } +sector_to_production_metric = { 'Electricity Utilities':'GJ', 'Steel':'Fe_ton' } +sector_to_intensity_metric = { 'Electricity Utilities':'t CO2/MWh', 'Steel':'t CO2/Fe_ton' } # TODO: Force validation for excel benchmarks @@ -43,7 +44,7 @@ def convert_dimensionless_benchmark_excel_to_model(df_excel: pd.DataFrame, sheet result = [] for index, row in df_ei_bms.iterrows(): bm = IBenchmark(region=index[0], sector=index[1], benchmark_metric={'units':'dimensionless'}, - projections=[IBenchmarkProjection(year=int(k), value=v) for k, v in row.items()]) + projections=[IProjection(year=int(k), value=Q_(v, ureg('dimensionless'))) for k, v in row.items()]) result.append(bm) return IBenchmarks(benchmarks=result) @@ -59,9 +60,9 @@ def convert_intensity_benchmark_excel_to_model(df_excel: pd.DataFrame, sheetname [column_name_region, column_name_sector]) result = [] for index, row in df_ei_bms.iterrows(): - intensity_units = f't CO2/({sector_to_production_metric[index[1]]})' + intensity_units = sector_to_intensity_metric[index[1]] bm = IBenchmark(region=index[0], sector=index[1], benchmark_metric={'units':intensity_units}, - projections=[IBenchmarkProjection(year=int(k), value=v) for k, v in row.items()]) + projections=[IProjection(year=int(k), value=Q_(v, ureg(intensity_units))) for k, v in row.items()]) result.append(bm) return IBenchmarks(benchmarks=result) @@ -179,14 +180,13 @@ def _convert_from_excel_data(self, excel_path: str) -> List[ICompanyData]: df_historic = None return self._company_df_to_model(df_fundamentals, df_targets, df_ei, df_historic) - def _convert_series_to_ICompanyProjections(self, projections: pd.Series) -> List[ - ICompanyProjection]: + def _convert_series_to_IProjections(self, projections: pd.Series) -> [IProjection]: """ Converts a Pandas Series in a list of ICompanyProjections :param projections: Pandas Series with years as indices - :return: List of ICompanyEIProjection objects + :return: List of IProjection objects """ - return [ICompanyProjection(year=y, value=v) for y, v in projections.items()] + return [IProjection(year=y, value=v) for y, v in projections.items()] def _company_df_to_model(self, df_fundamentals: pd.DataFrame, df_targets: pd.DataFrame, df_ei: pd.DataFrame, df_historic: pd.DataFrame) -> List[ICompanyData]: @@ -222,14 +222,17 @@ def _company_df_to_model(self, df_fundamentals: pd.DataFrame, df_targets: pd.Dat units = sector_to_production_metric[company_data[self.column_config.SECTOR]] company_data[self.column_config.PRODUCTION_METRIC] = {'units': units} # pint automatically handles any unit conversions required - ghg_s1s2 = df_fundamentals[df_fundamentals[self.column_config.COMPANY_ID]==company_id][self.column_config.GHG_SCOPE12].squeeze() - if ghg_s1s2: - company_data[self.column_config.GHG_SCOPE12] = Q_(ghg_s1s2, company_data[self.column_config.PRODUCTION_METRIC]) - ghg_s3 = df_fundamentals[df_fundamentals[self.column_config.COMPANY_ID]==company_id][self.column_config.GHG_SCOPE3].squeeze() - if ghg_s3: - company_data[self.column_config.GHG_SCOPE3] = Q_(ghg_s3, company_data[self.column_config.PRODUCTION_METRIC]) - company_data[self.column_config.PROJECTED_TARGETS] = {'S1S2': {'projections': self._convert_series_to_projections (df_targets.loc[company_id, :])}} - company_data[self.column_config.PROJECTED_EI] = {'S1S2': {'projections': self._convert_series_to_projections (df_ei.loc[company_id, :])}} + + v = df_fundamentals[df_fundamentals[self.column_config.COMPANY_ID]==company_id][self.column_config.GHG_SCOPE12].squeeze() + company_data[self.column_config.GHG_SCOPE12] = None if v is None else Q_(v, ureg(units)) + v = df_fundamentals[df_fundamentals[self.column_config.COMPANY_ID]==company_id][self.column_config.GHG_SCOPE3].squeeze() + company_data[self.column_config.GHG_SCOPE3] = None if v is None else Q_(v, ureg(units)) + company_data[self.column_config.PROJECTED_TARGETS] = {'S1S2': { 'reports': [ { + 'company_metric': {'units': units}, + 'projections': self._convert_series_to_IProjections (df_targets.loc[company_id, :])}]}} + company_data[self.column_config.PROJECTED_EI] = {'S1S2': { 'reports': [ { + 'company_metric': {'units': units}, + 'projections': self._convert_series_to_IProjections (df_trajectories.loc[company_id, :])}]}} if df_historic is not None: company_data[TabsConfig.HISTORIC_DATA] = df_historic.loc[company_data[ColumnsConfig.COMPANY_ID], :] @@ -241,6 +244,7 @@ def _company_df_to_model(self, df_fundamentals: pd.DataFrame, df_targets: pd.Dat logger.warning( f"EX {e}: (one of) the input(s) of company %s is invalid and will be skipped" % company_data[ self.column_config.COMPANY_NAME]) + break pass return model_companies diff --git a/ITR/data/osc_units.py b/ITR/data/osc_units.py index 453f1767..474f76e4 100644 --- a/ITR/data/osc_units.py +++ b/ITR/data/osc_units.py @@ -11,6 +11,10 @@ Q_ = ureg.Quantity PA_ = PintArray +ureg.define("CO2e = CO2 = CO2eq = CO2_eq") +ureg.define("Fe_ton = [produced_ton] = Fe_") + +# These are for later ureg.define('fraction = [] = frac') ureg.define('percent = 1e-2 frac = pct = percentage') ureg.define('ppm = 1e-6 fraction') @@ -18,20 +22,13 @@ ureg.define("USD = [currency]") ureg.define("EUR = nan USD") ureg.define("JPY = nan USD") -ureg.define("MM_USD = 1000000 USD") -ureg.define("revenue = USD") ureg.define("btu = Btu") ureg.define("boe = 5.712 GJ") -ureg.define("CO2e = CO2 = CO2eq = CO2_eq") - -ureg.define("Fe_ton = [produced_ton] = Fe_") -ureg.define("J_gen = [power_generation]") -ureg.define("Wh_gen = 3600 * J_gen") - +# These are for later still # ureg.define("HFC = [ HFC_emissions ]") # ureg.define("PFC = [ PFC_emissions ]") # ureg.define("mercury = Hg = Mercury") # ureg.define("mercure = Hg = Mercury") -ureg.define("PM10 = [ PM10_emissions ]") +# ureg.define("PM10 = [ PM10_emissions ]") diff --git a/ITR/interfaces.py b/ITR/interfaces.py index f2311327..33c174e6 100644 --- a/ITR/interfaces.py +++ b/ITR/interfaces.py @@ -5,6 +5,7 @@ from pint import Quantity from ITR.data.osc_units import ureg, Q_ +import numpy as np class AggregationContribution(BaseModel): company_name: str @@ -62,14 +63,61 @@ class PortfolioCompany(BaseModel): def pint_ify(x, units='error'): + if 'units' in units: + units = units['units'] if x is None: - return x + return Q_(np.nan, units) if type(x)==str: + if x.startswith('nan '): + return Q_(np.nan, units) return ureg(x) if isinstance(x, Quantity): return x - return Q_(x, ureg(units)) - + return Q_(x, units) + + +def UProjections_to_IProjections(ul, metric): + if ul is None or ul is np.nan: + return ul + for x in ul: + if isinstance(x, IProjection): + return ul + units = metric['units'] + if 'units' in units: + units = units['units'] + pl = [dict(x) for x in ul] + for x in pl: + if x['value'] is None or x['value'] is np.nan: + x['value'] = Q_(np.nan, units) + else: + x['value'] = pint_ify(x['value'], units) + return pl + + +def UProjection_to_IProjection(u, metric): + if u is None or u['value'] is np.nan: + return pint_ify(np.nan, metric['units']) + if not isinstance(u,dict): + return u + p = dict(u) + p['value'] = pint_ify(p['value'], metric['units']) + return p + + +def UScopes_to_IScopes(uscopes): + if not isinstance(uscopes,dict): + return uscopes + iscopes = dict(uscopes) + for skey, sval in iscopes.items(): + if iscopes[skey] is None: + continue + iscopes[skey] = ireports = dict(iscopes[skey]) + ireports['reports'] = u_2_i_list = ireports['reports'].copy() + for i in range(len(u_2_i_list)): + iscope = dict(u_2_i_list[i]) + iscope['projections'] = UProjections_to_IProjections(iscope['projections'], iscope['company_metric']) + u_2_i_list[i] = iscope + return iscopes class PowerGenerationWh(BaseModel): units: Literal['MWh'] @@ -87,25 +135,46 @@ class ManufactureSteel(BaseModel): class EmissionIntensity(BaseModel): - units: str + units: Union[Literal['t CO2/MWh'],Literal['t CO2/GJ'],Literal['t CO2/Fe_ton']] class DimensionlessNumber(BaseModel): - units: str + units: Literal['dimensionless'] -BenchmarkMetric = Annotated[Union[ProductionMetric,EmissionIntensity,DimensionlessNumber], Field(discriminator='units')] +OSC_Metric = Annotated[Union[ProductionMetric,EmissionIntensity,DimensionlessNumber], Field(discriminator='units')] -class IBenchmarkProjection(BaseModel): +# U is Unquantified +class UProjection(BaseModel): year: int - value: float + value: Optional[float] + + +class UBenchmark(BaseModel): + sector: str + region: str + benchmark_metric: OSC_Metric + projections: List[UProjection] + + def __getitem__(self, item): + return getattr(self, item) + +# I means we have quantified values +class IProjection(PintModel): + year: int + value: Optional[Quantity] class IBenchmark(BaseModel): sector: str region: str - benchmark_metric: BenchmarkMetric - projections: List[IBenchmarkProjection] + benchmark_metric: OSC_Metric + projections: List[IProjection] + + def __init__(self, benchmark_metric, projections, *args, **kwargs): + super().__init__(benchmark_metric=benchmark_metric, + projections=UProjections_to_IProjections(projections, benchmark_metric), + *args, **kwargs) def __getitem__(self, item): return getattr(self, item) @@ -132,26 +201,30 @@ class IEmissionIntensityBenchmarkScopes(PintModel): benchmark_global_budget: Quantity['CO2'] is_AFOLU_included: bool - def __getitem__(self, item): - return getattr(self, item) - def __init__(self, benchmark_temperature, benchmark_global_budget, *args, **kwargs): super().__init__(benchmark_temperature=pint_ify(benchmark_temperature, 'delta_degC'), benchmark_global_budget=pint_ify(benchmark_global_budget, 'Gt CO2'), *args, **kwargs) + def __getitem__(self, item): + return getattr(self, item) + class ICompanyProjection(BaseModel): - year: int - value: Optional[float] + company_metric: OSC_Metric + projections: List[IProjection] + + def __init__(self, company_metric, projections, *args, **kwargs): + super().__init__(company_metric=company_metric, + projections=UProjections_to_IProjections(projections, company_metric), + *args, **kwargs) def __getitem__(self, item): return getattr(self, item) class ICompanyProjections(BaseModel): - units: str - projections: List[ICompanyProjection] + reports: List[ICompanyProjection] def __getitem__(self, item): return getattr(self, item) @@ -221,8 +294,8 @@ class ICompanyData(PintModel): country: Optional[str] production_metric: ProductionMetric - ghg_s1s2: Optional[ICompanyProjection] # This seems to be the base year PRODUCTION number, nothing at all to do with any quantity of actual S1S2 emissions - ghg_s3: Optional[ICompanyProjection] + ghg_s1s2: Optional[Quantity] # This seems to be the base year PRODUCTION number, nothing at all to do with any quantity of actual S1S2 emissions + ghg_s3: Optional[Quantity] industry_level_1: Optional[str] industry_level_2: Optional[str] @@ -235,6 +308,15 @@ class ICompanyData(PintModel): company_total_assets: Optional[float] company_cash_equivalents: Optional[float] + def __init__(self, projected_ei_targets, projected_ei_trajectories, + production_metric, ghg_s1s2, ghg_s3, *args, **kwargs): + super().__init__(projected_ei_targets=UScopes_to_IScopes(projected_ei_targets), + projected_ei_trajectories=UScopes_to_IScopes(projected_ei_trajectories), + production_metric=production_metric, + ghg_s1s2=pint_ify(ghg_s1s2, production_metric), + ghg_s3=pint_ify(ghg_s3, production_metric), + *args, **kwargs) + class ICompanyAggregates(ICompanyData): cumulative_budget: Quantity['CO2'] diff --git a/ITR/temperature_score.py b/ITR/temperature_score.py index 74b41b12..07ed10bb 100644 --- a/ITR/temperature_score.py +++ b/ITR/temperature_score.py @@ -47,10 +47,10 @@ def get_score(self, scorable_row: pd.Series) -> Tuple[Quantity['delta_degC'], Qu :return: The temperature score, which is a tuple of (TEMPERATURE_SCORE,TRAJECTORY_SCORE,TRAJECTORY_OVERSHOOT,TARGET_SCORE,TARGET_OVERSHOOT,TEMPERATURE_RESULTS]) """ # if either cum target or trajectory is zero return default. - if scorable_row[self.c.COLS.CUMULATIVE_TARGET].m==0 or scorable_row[self.c.COLS.CUMULATIVE_TRAJECTORY].m == 0.0: + if scorable_row[self.c.COLS.CUMULATIVE_TARGET].m==0 or scorable_row[self.c.COLS.CUMULATIVE_TRAJECTORY].m==0: return self.get_default_score(scorable_row), np.nan, np.nan, np.nan, np.nan, Q_(1, ureg.delta_degC) - if scorable_row[self.c.COLS.CUMULATIVE_BUDGET] > 0: + if scorable_row[self.c.COLS.CUMULATIVE_BUDGET].m > 0: target_overshoot_ratio = scorable_row[self.c.COLS.CUMULATIVE_TARGET] / scorable_row[ self.c.COLS.CUMULATIVE_BUDGET] trajectory_overshoot_ratio = scorable_row[self.c.COLS.CUMULATIVE_TRAJECTORY] / scorable_row[ diff --git a/test/test_base_providers.py b/test/test_base_providers.py index b9ef6280..522bde4f 100644 --- a/test/test_base_providers.py +++ b/test/test_base_providers.py @@ -23,7 +23,7 @@ class TestBaseProvider(unittest.TestCase): def setUp(self) -> None: self.root = os.path.dirname(os.path.abspath(__file__)) - self.company_json = os.path.join(self.root, "inputs", "json", "fundamental_data.json") + self.company_json = os.path.join(self.root, "inputs", "json", "fundamental_data2.json") self.benchmark_prod_json = os.path.join(self.root, "inputs", "json", "benchmark_production_OECM.json") self.benchmark_EI_json = os.path.join(self.root, "inputs", "json", "benchmark_EI_OECM.json") # self.excel_data_path = os.path.join(self.root, "inputs", "test_data_company.xlsx") @@ -51,13 +51,11 @@ def setUp(self) -> None: "US00724F1012", "FR0000125338"] self.company_info_at_base_year = pd.DataFrame( - [[Q_(1.6982474347547, 't CO2/MWh'), Q_(1.04827859e+08, 'MWh'), 'MWh', 'Electricity Utilities', 'North America'], - [Q_(0.476586931582279, 't CO2/MWh'), Q_(5.98937002e+08, 'MWh'), 'MWh', 'Electricity Utilities', 'North America'], - [Q_(0.22457393169277, 't CO2/MWh'), Q_(1.22472003e+08, 'MWh'), 'MWh', 'Electricity Utilities', 'Europe']], + [[Q_(1.6982474347547, 't CO2/GJ'), Q_(1.04827859e+08, 'MWh'), {'units':'MWh'}, 'Electricity Utilities', 'North America'], + [Q_(0.476586931582279, 't CO2/GJ'), Q_(5.98937002e+08, 'MWh'), {'units':'MWh'}, 'Electricity Utilities', 'North America'], + [Q_(0.22457393169277, 't CO2/GJ'), Q_(1.22472003e+08, 'MWh'), {'units':'MWh'}, 'Electricity Utilities', 'Europe']], index=self.company_ids, columns=[ColumnsConfig.BASE_EI, ColumnsConfig.GHG_SCOPE12, ColumnsConfig.PRODUCTION_METRIC, ColumnsConfig.SECTOR, ColumnsConfig.REGION]) - self.company_info_at_base_year[ColumnsConfig.BASE_EI] = self.company_info_at_base_year[ColumnsConfig.BASE_EI].astype('pint[t CO2/MWh]') - self.company_info_at_base_year[ColumnsConfig.GHG_SCOPE12] = self.company_info_at_base_year[ColumnsConfig.GHG_SCOPE12].astype('pint[MWh]') def test_temp_score_from_json_data(self): # Calculate Temp Scores @@ -97,36 +95,34 @@ def test_get_benchmark(self): 0.112645956, 0.100481026, 0.088316097, 0.076151167, 0.062125588, 0.048100009, 0.034074431, 0.020048852, 0.006023273, 0.005843878, 0.005664482, 0.005485087, 0.005305691, 0.005126296 - ], index=seq_index, dtype="pint[t CO2/MWh]"), + ], index=seq_index, dtype="pint[t CO2/GJ]"), pd.Series([0.476586932, 0.444131055, 0.389650913, 0.335170772, 0.28069063, 0.226210489, 0.22171226, 0.192474531, 0.163236802, 0.133999073, 0.104761344, 0.075523615, 0.068787023, 0.062050431, 0.055313839, 0.048577247, 0.041840655, 0.038453251, 0.035065847, 0.031678443, 0.028291039, 0.024903635, 0.020998121, 0.017092607, 0.013187093, 0.009281579, 0.005376065, 0.005326111, 0.005276157, 0.005226203, 0.005176249, 0.005126296 - ], index=seq_index, dtype="pint[t CO2/MWh]"), + ], index=seq_index, dtype="pint[t CO2/GJ]"), pd.Series([0.224573932, 0.17975612, 0.163761501, 0.147766883, 0.131772265, 0.115777646, 0.099783028, 0.090628361, 0.081473693, 0.072319026, 0.063164359, 0.054009692, 0.050089853, 0.046170015, 0.042250176, 0.038330338, 0.034410499, 0.031104249, 0.027797999, 0.024491748, 0.021185498, 0.017879248, 0.016155615, 0.014431983, 0.012708351, 0.010984719, 0.009261087, 0.008488943, 0.007716798, 0.006944654, 0.00617251, 0.005400365 - ], index=seq_index, dtype="pint[t CO2/MWh]")] + ], index=seq_index, dtype="pint[t CO2/GJ]")] expected_data = pd.concat(data, axis=1, ignore_index=True).T expected_data.index=self.company_ids pd.testing.assert_frame_equal( self.base_EI_bm.get_SDA_intensity_benchmarks(self.company_info_at_base_year), - expected_data) + expected_data.astype('object')) def test_get_projected_production(self): expected_data_2025 = pd.Series([1.06866370e+08, 6.10584093e+08, 1.28474171e+08], index=self.company_ids, name=2025, dtype='pint[MWh]') - # print(self.base_production_bm.get_company_projected_production(self.company_info_at_base_year)[2025]['US0079031078']) - # print(expected_data_2025['US0079031078']) pd.testing.assert_series_equal( self.base_production_bm.get_company_projected_production(self.company_info_at_base_year)[2025], expected_data_2025, check_dtype=False) @@ -137,9 +133,6 @@ def test_get_cumulative_value(self): expected_data = pd.Series([10.0, 50.0], index=[0, 1], dtype='pint[Mt CO2]') - # print(self.base_warehouse._get_cumulative_emission(projected_emission_intensity=projected_ei, - # projected_production=projected_production)) - # print(f"expected_data = {expected_data}") pd.testing.assert_series_equal( self.base_warehouse._get_cumulative_emission(projected_emission_intensity=projected_ei, projected_production=projected_production), expected_data) @@ -151,9 +144,8 @@ def test_get_company_data(self): self.assertEqual(company_2.company_name, "Company AH") self.assertEqual(company_1.company_id, "US0079031078") self.assertEqual(company_2.company_id, "US00724F1012") - # print(f"\nghg_s1s2 = {company_1.ghg_s1s2}\n\n") - self.assertAlmostEqual(Q_(company_1.ghg_s1s2.value,company_1.production_metric.units), Q_(104827858.636039, 'MWh')) # These are apparently production numbers, not emissions numbers - self.assertAlmostEqual(Q_(company_2.ghg_s1s2.value,company_2.production_metric.units), Q_(598937001.892059, 'MWh')) # These are apparently production numbers, not emissions numbers + self.assertAlmostEqual(company_1.ghg_s1s2, Q_(104827858.636039, 'MWh')) # These are apparently production numbers, not emissions numbers + self.assertAlmostEqual(company_2.ghg_s1s2, Q_(598937001.892059, 'MWh')) # These are apparently production numbers, not emissions numbers self.assertAlmostEqual(company_1.cumulative_budget, Q_(1362284467.0830, 't CO2'), places=4) self.assertAlmostEqual(company_2.cumulative_budget, Q_(2262242040.68059, 't CO2'), places=4) self.assertAlmostEqual(company_1.cumulative_target, Q_(3769096510.09909, 't CO2'), places=4) @@ -170,3 +162,8 @@ def test_get_value(self): pd.testing.assert_series_equal(self.base_company_data.get_value(company_ids=self.company_ids, variable_name=ColumnsConfig.COMPANY_REVENUE), expected_data) + +if __name__ == "__main__": + test = TestBaseProvider() + test.setUp() + test.test_get_projected_production() diff --git a/test/test_different_benchmarks.py b/test/test_different_benchmarks.py index 56b7a73a..d4ddba50 100644 --- a/test/test_different_benchmarks.py +++ b/test/test_different_benchmarks.py @@ -23,7 +23,7 @@ class TestEIBenchmarks(unittest.TestCase): def setUp(self) -> None: self.root = os.path.dirname(os.path.abspath(__file__)) - self.company_json = os.path.join(self.root, "inputs", "json", "fundamental_data.json") + self.company_json = os.path.join(self.root, "inputs", "json", "fundamental_data2.json") self.benchmark_prod_json = os.path.join(self.root, "inputs", "json", "benchmark_production_OECM.json") self.benchmark_EI_OECM = os.path.join(self.root, "inputs", "json", "benchmark_EI_OECM.json") self.benchmark_EI_TPI = os.path.join(self.root, "inputs", "json", "benchmark_EI_TPI_2_degrees.json") diff --git a/test/test_e2e.py b/test/test_e2e.py index 5fe055af..bf6b7a3a 100644 --- a/test/test_e2e.py +++ b/test/test_e2e.py @@ -12,7 +12,7 @@ import ITR from ITR.data.data_warehouse import DataWarehouse from typing import List -from ITR.interfaces import ICompanyAggregates, ICompanyProjectionsScopes, ICompanyProjection +from ITR.interfaces import ICompanyAggregates, ICompanyProjectionsScopes, IProjection class TestDataWareHouse(DataWarehouse): @@ -40,8 +40,8 @@ def setUp(self): self.company_base = ICompanyAggregates( company_name=company_id, company_id=company_id, - ghg_s1s2=ICompanyProjection.parse_obj({"year": 2019, "value":100.0}), - ghg_s3=ICompanyProjection.parse_obj({"year": 2019, "value":0.0}), + ghg_s1s2=IProjection.parse_obj({"year": 2019, "value":Q_(100.0, ureg('Fe_ton'))}), + ghg_s3=IProjection.parse_obj({"year": 2019, "value":Q_(0.0, ureg('Fe_ton'))}), company_revenue=100, company_market_cap=100, company_enterprise_value=100, @@ -59,38 +59,46 @@ def setUp(self): production_metric = { "units": "Fe_ton" }, projected_ei_trajectories=ICompanyProjectionsScopes.parse_obj({ "S1S2": { - "units": "t CO2/Fe_ton", - "projections": [ + "reports": [ { - "year": "2019", - "value": 1.6982474347547039 - }, - { - "year": "2020", - "value": 1.6982474347547039 - }, - { - "year": "2021", - "value": 1.5908285727976157 + "company_metric": { "units": "t CO2/Fe_ton" }, + "projections": [ + { + "year": "2019", + "value": 1.6982474347547039 + }, + { + "year": "2020", + "value": 1.6982474347547039 + }, + { + "year": "2021", + "value": 1.5908285727976157 + } + ] } ] } }), projected_ei_targets=ICompanyProjectionsScopes.parse_obj({ "S1S2": { - "units": "t CO2/Fe_ton", - "projections": [ - { - "year": "2019", - "value": 1.6982474347547039 - }, - { - "year": "2020", - "value": 1.6982474347547039 - }, + "reports": [ { - "year": "2021", - "value": 1.5577542305393455 + "company_metric": { "units": "t CO2/Fe_ton" }, + "projections": [ + { + "year": "2019", + "value": 1.6982474347547039 + }, + { + "year": "2020", + "value": 1.6982474347547039 + }, + { + "year": "2021", + "value": 1.5577542305393455 + } + ] } ] } diff --git a/test/test_excel_provider.py b/test/test_excel_provider.py index 2e743942..6288336b 100644 --- a/test/test_excel_provider.py +++ b/test/test_excel_provider.py @@ -33,9 +33,9 @@ def setUp(self) -> None: "US00724F1012", "FR0000125338"] self.company_info_at_base_year = pd.DataFrame( - [[Q_(1.6982474347547, ureg('t CO2/MWh')), Q_(1.04827859e+08, ureg('MWh')), 'MWh', 'Electricity Utilities', 'North America'], - [Q_(0.476586931582279, ureg('t CO2/MWh')), Q_(5.98937002e+08, ureg('MWh')), 'MWh', 'Electricity Utilities', 'North America'], - [Q_(0.22457393169277, ureg('t CO2/MWh')), Q_(1.22472003e+08, ureg('MWh')), 'MWh', 'Electricity Utilities', 'Europe']], + [[Q_(1.6982474347547, ureg('t CO2/GJ')), Q_(1.04827859e+08, 'MWh'), 'MWh', 'Electricity Utilities', 'North America'], + [Q_(0.476586931582279, ureg('t CO2/GJ')), Q_(5.98937002e+08, 'MWh'), 'MWh', 'Electricity Utilities', 'North America'], + [Q_(0.22457393169277, ureg('t CO2/GJ')), Q_(1.22472003e+08, 'MWh'), 'MWh', 'Electricity Utilities', 'Europe']], index=self.company_ids, columns=[ColumnsConfig.BASE_EI, ColumnsConfig.GHG_SCOPE12, ColumnsConfig.PRODUCTION_METRIC, ColumnsConfig.SECTOR, ColumnsConfig.REGION]) @@ -98,35 +98,36 @@ def test_get_projected_value(self): columns=range(TemperatureScoreConfig.CONTROLS_CONFIG.base_year, TemperatureScoreConfig.CONTROLS_CONFIG.target_end_year + 1), index=self.company_ids, - dtype='pint[t CO2/MWh]') + dtype='pint[t CO2/GJ]').astype('object') pd.testing.assert_frame_equal(self.excel_company_data.get_company_projected_trajectories(self.company_ids), expected_data, check_names=False) def test_get_benchmark(self): - expected_data = pd.DataFrame([[1.698247435, 1.581691084, 1.386040647, 1.190390211, 0.994739774, 0.799089338, + expected_data = pd.DataFrame([pd.Series([1.698247435, 1.581691084, 1.386040647, 1.190390211, 0.994739774, 0.799089338, 0.782935186, 0.677935928, 0.572936671, 0.467937413, 0.362938156, 0.257938898, 0.233746281, 0.209553665, 0.185361048, 0.161168432, 0.136975815, 0.124810886, 0.112645956, 0.100481026, 0.088316097, 0.076151167, 0.062125588, 0.048100009, 0.034074431, 0.020048852, 0.006023273, 0.005843878, 0.005664482, 0.005485087, 0.005305691, 0.005126296 - ], - [0.476586932, 0.444131055, 0.389650913, 0.335170772, 0.28069063, 0.226210489, + ],name='US0079031078', dtype='pint[t CO2/GJ]'), + pd.Series([0.476586932, 0.444131055, 0.389650913, 0.335170772, 0.28069063, 0.226210489, 0.22171226, 0.192474531, 0.163236802, 0.133999073, 0.104761344, 0.075523615, 0.068787023, 0.062050431, 0.055313839, 0.048577247, 0.041840655, 0.038453251, 0.035065847, 0.031678443, 0.028291039, 0.024903635, 0.020998121, 0.017092607, 0.013187093, 0.009281579, 0.005376065, 0.005326111, 0.005276157, 0.005226203, 0.005176249, 0.005126296 - ], - [0.224573932, 0.17975612, 0.163761501, 0.147766883, 0.131772265, 0.115777646, + ],name='US00724F1012', dtype='pint[t CO2/GJ]'), + pd.Series([0.224573932, 0.17975612, 0.163761501, 0.147766883, 0.131772265, 0.115777646, 0.099783028, 0.090628361, 0.081473693, 0.072319026, 0.063164359, 0.054009692, 0.050089853, 0.046170015, 0.042250176, 0.038330338, 0.034410499, 0.031104249, 0.027797999, 0.024491748, 0.021185498, 0.017879248, 0.016155615, 0.014431983, 0.012708351, 0.010984719, 0.009261087, 0.008488943, 0.007716798, 0.006944654, - 0.00617251, 0.005400365]], + 0.00617251, 0.005400365 + ],name='FR0000125338', dtype='pint[t CO2/GJ]') + ], index=self.company_ids, columns=range(TemperatureScoreConfig.CONTROLS_CONFIG.base_year, - TemperatureScoreConfig.CONTROLS_CONFIG.target_end_year + 1), - dtype='pint[t CO2/MWh]') + TemperatureScoreConfig.CONTROLS_CONFIG.target_end_year + 1)) pd.testing.assert_frame_equal( self.excel_EI_bm.get_SDA_intensity_benchmarks(self.company_info_at_base_year), expected_data) @@ -135,16 +136,16 @@ def test_get_projected_production(self): expected_data_2025 = pd.Series([1.06866370e+08, 6.10584093e+08, 1.28474171e+08], index=self.company_ids, name=2025, - dtype='pint[MWh]') + dtype='pint[MWh]').astype('object') pd.testing.assert_series_equal( self.excel_production_bm.get_company_projected_production(self.company_info_at_base_year)[2025], expected_data_2025) def test_get_cumulative_value(self): projected_emission = pd.DataFrame([[1.0, 2.0], [3.0, 4.0]], - dtype='pint[t CO2/MWh]') + dtype='pint[t CO2/GJ]') projected_production = pd.DataFrame([[2.0, 4.0], [6.0, 8.0]], - dtype='pint[MWh]') + dtype='pint[GJ]') expected_data = pd.Series([10.0, 50.0], dtype='pint[Mt CO2]') pd.testing.assert_series_equal( self.excel_provider._get_cumulative_emission(projected_emission_intensity=projected_emission, @@ -158,8 +159,8 @@ def test_get_company_data(self): self.assertEqual(company_2.company_name, "Company AH") self.assertEqual(company_1.company_id, "US0079031078") self.assertEqual(company_2.company_id, "US00724F1012") - self.assertAlmostEqual(Q_(company_1.ghg_s1s2.value,company_1.production_metric.units), Q_(104827858.636039, ureg('MWh'))) - self.assertAlmostEqual(Q_(company_2.ghg_s1s2.value,company_2.production_metric.units), Q_(598937001.892059, ureg('MWh'))) + self.assertAlmostEqual(company_1.ghg_s1s2, Q_(104827858.636039, ureg('MWh'))) # Don't ask! The Excel spreadsheet is out of step with other data in this test case. + self.assertAlmostEqual(company_2.ghg_s1s2, Q_(598937001.892059, ureg('MWh'))) # The assertion fail caught it, but pint showed it was a units problem, not something else! self.assertAlmostEqual(company_1.cumulative_budget, Q_(1362284467.0830, ureg('t CO2')), places=4) self.assertAlmostEqual(company_2.cumulative_budget, Q_(2262242040.68059, ureg('t CO2')), places=4) self.assertAlmostEqual(company_1.cumulative_target, Q_(3769096510.09909, ureg('t CO2')), places=4) @@ -175,4 +176,9 @@ def test_get_value(self): name='company_revenue') pd.testing.assert_series_equal(self.excel_company_data.get_value(company_ids=self.company_ids, variable_name=ColumnsConfig.COMPANY_REVENUE), - expected_data) \ No newline at end of file + expected_data) + +if __name__ == "__main__": + test = TestExcelProvider() + test.setUp() + test.test_get_company_data() diff --git a/test/test_interfaces.py b/test/test_interfaces.py index d8a577f1..1c20fcb7 100644 --- a/test/test_interfaces.py +++ b/test/test_interfaces.py @@ -3,7 +3,9 @@ import pandas as pd -from ITR.interfaces import EScope +from ITR.data.osc_units import ureg, Q_, PA_ + +from ITR.interfaces import EScope, PowerGenerationWh, IProjection, IBenchmark, ICompanyData, ICompanyProjectionsScopes, ICompanyProjections, ICompanyProjection class TestInterfaces(unittest.TestCase): @@ -19,5 +21,38 @@ def setUp(self) -> None: def test_Escope(self): self.assertEqual(EScope.get_result_scopes(), [EScope.S1S2, EScope.S3, EScope.S1S2S3]) - - + def test_PowerGenerationWh(self): + x = PowerGenerationWh(units='MWh') + print(f"\n PowerGenerationWh: x.units = {x.units}\n\n") + + def test_IProjection(self): + row = pd.Series([0.9, 0.8, 0.7], + index=[2019, 2020, 2021], + name='ei_bm') + + bm = IBenchmark(region='North America', sector='Steel', benchmark_metric={'units':'dimensionless'}, + projections=[IProjection(year=int(k), value=Q_(v, ureg('dimensionless'))) for k, v in row.items()]) + + def test_ICompanyProjectionScopes(self): + row = pd.Series([0.9, 0.8, 0.7], + index=[2019, 2020, 2021], + name='nl_steel') + p = [IProjection(year=int(k), value=Q_(v, ureg('Fe_ton'))) for k, v in row.items()] + S1S2=ICompanyProjections(reports=[ICompanyProjection(company_metric={'units':'t CO2/Fe_ton'}, projections=p)]) + x = ICompanyProjectionsScopes(S1S2=S1S2) + + def test_ICompanyData(self): + company_data = ICompanyData( + company_name="Company AV", + company_id="US6293775085", + region="Europe", + sector="Steel", + production_metric={ "units": "Fe_ton"}, + target_probability=0.123, + projected_ei_targets = None, + projected_ei_trajectories = None, + country='US6293775085', + ghg_s1s2=89800001.4, + ghg_s3=89800001.4, + company_revenue=7370536918 + ) From 5a33a719c3631d35ab1a965c18234c6fa4e405c7 Mon Sep 17 00:00:00 2001 From: MichaelTiemannOSC Date: Wed, 5 Jan 2022 03:02:03 +0000 Subject: [PATCH 064/345] Properly update json input file Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- test/inputs/json/fundamental_data.json | 672 ++++++++++--------------- test/test_base_providers.py | 2 +- test/test_different_benchmarks.py | 2 +- 3 files changed, 260 insertions(+), 416 deletions(-) diff --git a/test/inputs/json/fundamental_data.json b/test/inputs/json/fundamental_data.json index 1db5d29e..c523e8b7 100644 --- a/test/inputs/json/fundamental_data.json +++ b/test/inputs/json/fundamental_data.json @@ -7,8 +7,8 @@ "production_metric": { "units": "MWh"}, "target_probability": 0.428571428571428, "projected_ei_targets": { - "S1S2": { - "units": "t CO2/MWh", + "S1S2": { "reports": [ { + "company_metric": { "units": "t CO2/MWh" }, "projections": [ { "year": 2019, @@ -139,13 +139,13 @@ "value": 0.32186333388002936 } ] - }, + } ] }, "S3": null, "S1S2S3": null }, "projected_ei_trajectories": { - "S1S2": { - "units": "t CO2/MWh", + "S1S2": { "reports": [ { + "company_metric": { "units": "t CO2/MWh" }, "projections": [ { "year": 2019, @@ -276,20 +276,14 @@ "value": 0.32314328995492764 } ] - }, + } ] }, "S3": null, "S1S2S3": null }, "country": "United States of America", - "ghg_s1s2": { - "year": 2019, - "value": 104827858.636039 - }, - "ghg_s3": { - "year": 2019, - "value": 104827858.636039 - }, - "industry_level_1": null, + "ghg_s1s2": 104827858.636039, + "ghg_s3": 104827858.636039, + "industry_level_1": null, "industry_level_2": null, "industry_level_3": null, "industry_level_4": null, @@ -307,8 +301,8 @@ "production_metric": { "units": "MWh"}, "target_probability": 0.4285714285714285, "projected_ei_targets": { - "S1S2": { - "units": "t CO2/MWh", + "S1S2": { "reports": [ { + "company_metric": { "units": "t CO2/MWh" }, "projections": [ { "year": 2019, @@ -439,13 +433,13 @@ "value": 0.0 } ] - }, + } ] }, "S3": null, "S1S2S3": null }, "projected_ei_trajectories": { - "S1S2": { - "units": "t CO2/MWh", + "S1S2": { "reports": [ { + "company_metric": { "units": "t CO2/MWh" }, "projections": [ { "year": 2019, @@ -576,20 +570,14 @@ "value": 0.11293834909899002 } ] - }, + } ] }, "S3": null, "S1S2S3": null }, "country": "United States of America", - "ghg_s1s2": { - "year": 2019, - "value": 598937001.892059 - }, - "ghg_s3": { - "year": 2019, - "value": 598937001.892059 - }, - "industry_level_1": null, + "ghg_s1s2": 598937001.892059, + "ghg_s3": 598937001.892059, + "industry_level_1": null, "industry_level_2": null, "industry_level_3": null, "industry_level_4": null, @@ -607,8 +595,8 @@ "production_metric": { "units": "MWh"}, "target_probability": 0.4285714285714285, "projected_ei_targets": { - "S1S2": { - "units": "t CO2/MWh", + "S1S2": { "reports": [ { + "company_metric": { "units": "t CO2/MWh" }, "projections": [ { "year": 2019, @@ -739,13 +727,13 @@ "value": 0.0 } ] - }, + } ] }, "S3": null, "S1S2S3": null }, "projected_ei_trajectories": { - "S1S2": { - "units": "t CO2/MWh", + "S1S2": { "reports": [ { + "company_metric": { "units": "t CO2/MWh" }, "projections": [ { "year": 2019, @@ -876,20 +864,14 @@ "value": 0.056927654404565015 } ] - }, + } ] }, "S3": null, "S1S2S3": null }, "country": "Germany", - "ghg_s1s2": { - "year": 2019, - "value": 122472002.661096 - }, - "ghg_s3": { - "year": 2019, - "value": 122472002.661096 - }, - "industry_level_1": null, + "ghg_s1s2": 122472002.661096, + "ghg_s3": 122472002.661096, + "industry_level_1": null, "industry_level_2": null, "industry_level_3": null, "industry_level_4": null, @@ -907,8 +889,8 @@ "production_metric": { "units": "MWh"}, "target_probability": 0.4285714285714285, "projected_ei_targets": { - "S1S2": { - "units": "t CO2/MWh", + "S1S2": { "reports": [ { + "company_metric": { "units": "t CO2/MWh" }, "projections": [ { "year": 2019, @@ -1039,13 +1021,13 @@ "value": 0.019446057728423578 } ] - }, + } ] }, "S3": null, "S1S2S3": null }, "projected_ei_trajectories": { - "S1S2": { - "units": "t CO2/MWh", + "S1S2": { "reports": [ { + "company_metric": { "units": "t CO2/MWh" }, "projections": [ { "year": 2019, @@ -1176,20 +1158,14 @@ "value": 0.01944605772842358 } ] - }, + } ] }, "S3": null, "S1S2S3": null }, "country": "France", - "ghg_s1s2": { - "year": 2019, - "value": 100080009.401725 - }, - "ghg_s3": { - "year": 2019, - "value": 100080009.401725 - }, - "industry_level_1": null, + "ghg_s1s2": 100080009.401725, + "ghg_s3": 100080009.401725, + "industry_level_1": null, "industry_level_2": null, "industry_level_3": null, "industry_level_4": null, @@ -1207,8 +1183,8 @@ "production_metric": { "units": "MWh"}, "target_probability": 0.4285714285714285, "projected_ei_targets": { - "S1S2": { - "units": "t CO2/MWh", + "S1S2": { "reports": [ { + "company_metric": { "units": "t CO2/MWh" }, "projections": [ { "year": 2019, @@ -1339,13 +1315,13 @@ "value": 0.065478378493248 } ] - }, + } ] }, "S3": null, "S1S2S3": null }, "projected_ei_trajectories": { - "S1S2": { - "units": "t CO2/MWh", + "S1S2": { "reports": [ { + "company_metric": { "units": "t CO2/MWh" }, "projections": [ { "year": 2019, @@ -1476,20 +1452,14 @@ "value": 0.0682256166185565 } ] - }, + } ] }, "S3": null, "S1S2S3": null }, "country": "Italy", - "ghg_s1s2": { - "year": 2019, - "value": 824864406.472471 - }, - "ghg_s3": { - "year": 2019, - "value": 824864406.472471 - }, - "industry_level_1": null, + "ghg_s1s2": 824864406.472471, + "ghg_s3": 824864406.472471, + "industry_level_1": null, "industry_level_2": null, "industry_level_3": null, "industry_level_4": null, @@ -1507,8 +1477,8 @@ "production_metric": { "units": "MWh"}, "target_probability": 0.4285714285714285, "projected_ei_targets": { - "S1S2": { - "units": "t CO2/MWh", + "S1S2": { "reports": [ { + "company_metric": { "units": "t CO2/MWh" }, "projections": [ { "year": 2019, @@ -1639,13 +1609,13 @@ "value": 0.01908972259658938 } ] - }, + } ] }, "S3": null, "S1S2S3": null }, "projected_ei_trajectories": { - "S1S2": { - "units": "t CO2/MWh", + "S1S2": { "reports": [ { + "company_metric": { "units": "t CO2/MWh" }, "projections": [ { "year": 2019, @@ -1776,20 +1746,14 @@ "value": 0.01908972259658938 } ] - }, + } ] }, "S3": null, "S1S2S3": null }, "country": "France", - "ghg_s1s2": { - "year": 2019, - "value": 221601600.376334 - }, - "ghg_s3": { - "year": 2019, - "value": 221601600.376334 - }, - "industry_level_1": null, + "ghg_s1s2": 221601600.376334, + "ghg_s3": 221601600.376334, + "industry_level_1": null, "industry_level_2": null, "industry_level_3": null, "industry_level_4": null, @@ -1807,8 +1771,8 @@ "production_metric": { "units": "MWh"}, "target_probability": 0.4285714285714285, "projected_ei_targets": { - "S1S2": { - "units": "t CO2/MWh", + "S1S2": { "reports": [ { + "company_metric": { "units": "t CO2/MWh" }, "projections": [ { "year": 2019, @@ -1939,13 +1903,13 @@ "value": 0.0 } ] - }, + } ] }, "S3": null, "S1S2S3": null }, "projected_ei_trajectories": { - "S1S2": { - "units": "t CO2/MWh", + "S1S2": { "reports": [ { + "company_metric": { "units": "t CO2/MWh" }, "projections": [ { "year": 2019, @@ -2076,20 +2040,14 @@ "value": 0.02410695065139955 } ] - }, + } ] }, "S3": null, "S1S2S3": null }, "country": "Spain", - "ghg_s1s2": { - "year": 2019, - "value": 411300002.585938 - }, - "ghg_s3": { - "year": 2019, - "value": 411300002.585938 - }, - "industry_level_1": null, + "ghg_s1s2": 411300002.585938, + "ghg_s3": 411300002.585938, + "industry_level_1": null, "industry_level_2": null, "industry_level_3": null, "industry_level_4": null, @@ -2107,8 +2065,8 @@ "production_metric": { "units": "MWh"}, "target_probability": 0.4285714285714285, "projected_ei_targets": { - "S1S2": { - "units": "t CO2/MWh", + "S1S2": { "reports": [ { + "company_metric": { "units": "t CO2/MWh" }, "projections": [ { "year": 2019, @@ -2239,13 +2197,13 @@ "value": 0.0007171644063577842 } ] - }, + } ] }, "S3": null, "S1S2S3": null }, "projected_ei_trajectories": { - "S1S2": { - "units": "t CO2/MWh", + "S1S2": { "reports": [ { + "company_metric": { "units": "t CO2/MWh" }, "projections": [ { "year": 2019, @@ -2376,20 +2334,14 @@ "value": 0.0007171644063577842 } ] - }, + } ] }, "S3": null, "S1S2S3": null }, "country": "South Korea", - "ghg_s1s2": { - "year": 2019, - "value": 1472652000.85954 - }, - "ghg_s3": { - "year": 2019, - "value": 1472652000.85954 - }, - "industry_level_1": null, + "ghg_s1s2": 1472652000.85954, + "ghg_s3": 1472652000.85954, + "industry_level_1": null, "industry_level_2": null, "industry_level_3": null, "industry_level_4": null, @@ -2407,8 +2359,8 @@ "production_metric": { "units": "MWh"}, "target_probability": 0.4285714285714285, "projected_ei_targets": { - "S1S2": { - "units": "t CO2/MWh", + "S1S2": { "reports": [ { + "company_metric": { "units": "t CO2/MWh" }, "projections": [ { "year": 2019, @@ -2539,13 +2491,13 @@ "value": 0.030719485801461905 } ] - }, + } ] }, "S3": null, "S1S2S3": null }, "projected_ei_trajectories": { - "S1S2": { - "units": "t CO2/MWh", + "S1S2": { "reports": [ { + "company_metric": { "units": "t CO2/MWh" }, "projections": [ { "year": 2019, @@ -2676,20 +2628,14 @@ "value": 0.274513227726025 } ] - }, + } ] }, "S3": null, "S1S2S3": null }, "country": "United Kingdom", - "ghg_s1s2": { - "year": 2019, - "value": 21142801.5077199 - }, - "ghg_s3": { - "year": 2019, - "value": 21142801.5077199 - }, - "industry_level_1": null, + "ghg_s1s2": 21142801.5077199, + "ghg_s3": 21142801.5077199, + "industry_level_1": null, "industry_level_2": null, "industry_level_3": null, "industry_level_4": null, @@ -2707,8 +2653,8 @@ "production_metric": { "units": "MWh"}, "target_probability": 0.4285714285714285, "projected_ei_targets": { - "S1S2": { - "units": "t CO2/MWh", + "S1S2": { "reports": [ { + "company_metric": { "units": "t CO2/MWh" }, "projections": [ { "year": 2019, @@ -2839,13 +2785,13 @@ "value": 0.28173508695317845 } ] - }, + } ] }, "S3": null, "S1S2S3": null }, "projected_ei_trajectories": { - "S1S2": { - "units": "t CO2/MWh", + "S1S2": { "reports": [ { + "company_metric": { "units": "t CO2/MWh" }, "projections": [ { "year": 2019, @@ -2976,20 +2922,14 @@ "value": 0.28173508695317845 } ] - }, + } ] }, "S3": null, "S1S2S3": null }, "country": "India", - "ghg_s1s2": { - "year": 2019, - "value": 988020000.90193 - }, - "ghg_s3": { - "year": 2019, - "value": 988020000.90193 - }, - "industry_level_1": null, + "ghg_s1s2": 988020000.90193, + "ghg_s3": 988020000.90193, + "industry_level_1": null, "industry_level_2": null, "industry_level_3": null, "industry_level_4": null, @@ -3007,8 +2947,8 @@ "production_metric": { "units": "MWh"}, "target_probability": 0.4285714285714285, "projected_ei_targets": { - "S1S2": { - "units": "t CO2/MWh", + "S1S2": { "reports": [ { + "company_metric": { "units": "t CO2/MWh" }, "projections": [ { "year": 2019, @@ -3139,13 +3079,13 @@ "value": 0.026974867145530285 } ] - }, + } ] }, "S3": null, "S1S2S3": null }, "projected_ei_trajectories": { - "S1S2": { - "units": "t CO2/MWh", + "S1S2": { "reports": [ { + "company_metric": { "units": "t CO2/MWh" }, "projections": [ { "year": 2019, @@ -3276,20 +3216,14 @@ "value": 0.30143654033545186 } ] - }, + } ] }, "S3": null, "S1S2S3": null }, "country": "Australia", - "ghg_s1s2": { - "year": 2019, - "value": 73011601.1549344 - }, - "ghg_s3": { - "year": 2019, - "value": 73011601.1549344 - }, - "industry_level_1": null, + "ghg_s1s2": 73011601.1549344, + "ghg_s3": 73011601.1549344, + "industry_level_1": null, "industry_level_2": null, "industry_level_3": null, "industry_level_4": null, @@ -3307,8 +3241,8 @@ "production_metric": { "units": "MWh"}, "target_probability": 0.4285714285714285, "projected_ei_targets": { - "S1S2": { - "units": "t CO2/MWh", + "S1S2": { "reports": [ { + "company_metric": { "units": "t CO2/MWh" }, "projections": [ { "year": 2019, @@ -3439,13 +3373,13 @@ "value": null } ] - }, + } ] }, "S3": null, "S1S2S3": null }, "projected_ei_trajectories": { - "S1S2": { - "units": "t CO2/MWh", + "S1S2": { "reports": [ { + "company_metric": { "units": "t CO2/MWh" }, "projections": [ { "year": 2019, @@ -3576,20 +3510,14 @@ "value": null } ] - }, + } ] }, "S3": null, "S1S2S3": null }, "country": "Poland", - "ghg_s1s2": { - "year": 2019, - "value": 288420004.281372 - }, - "ghg_s3": { - "year": 2019, - "value": 288420004.281372 - }, - "industry_level_1": null, + "ghg_s1s2": 288420004.281372, + "ghg_s3": 288420004.281372, + "industry_level_1": null, "industry_level_2": null, "industry_level_3": null, "industry_level_4": null, @@ -3607,8 +3535,8 @@ "production_metric": { "units": "MWh"}, "target_probability": 0.4285714285714285, "projected_ei_targets": { - "S1S2": { - "units": "t CO2/MWh", + "S1S2": { "reports": [ { + "company_metric": { "units": "t CO2/MWh" }, "projections": [ { "year": 2019, @@ -3739,13 +3667,13 @@ "value": 0.290466560681228 } ] - }, + } ] }, "S3": null, "S1S2S3": null }, "projected_ei_trajectories": { - "S1S2": { - "units": "t CO2/MWh", + "S1S2": { "reports": [ { + "company_metric": { "units": "t CO2/MWh" }, "projections": [ { "year": 2019, @@ -3876,20 +3804,14 @@ "value": 0.290466560681228 } ] - }, + } ] }, "S3": null, "S1S2S3": null }, "country": "Hong Kong", - "ghg_s1s2": { - "year": 2019, - "value": 47691749.8864963 - }, - "ghg_s3": { - "year": 2019, - "value": 47691749.8864963 - }, - "industry_level_1": null, + "ghg_s1s2": 47691749.8864963, + "ghg_s3": 47691749.8864963, + "industry_level_1": null, "industry_level_2": null, "industry_level_3": null, "industry_level_4": null, @@ -3907,8 +3829,8 @@ "production_metric": { "units": "MWh"}, "target_probability": 0.4285714285714285, "projected_ei_targets": { - "S1S2": { - "units": "t CO2/MWh", + "S1S2": { "reports": [ { + "company_metric": { "units": "t CO2/MWh" }, "projections": [ { "year": 2019, @@ -4039,13 +3961,13 @@ "value": 0.12136988857034575 } ] - }, + } ] }, "S3": null, "S1S2S3": null }, "projected_ei_trajectories": { - "S1S2": { - "units": "t CO2/MWh", + "S1S2": { "reports": [ { + "company_metric": { "units": "t CO2/MWh" }, "projections": [ { "year": 2019, @@ -4176,20 +4098,14 @@ "value": 0.12136988857034575 } ] - }, + } ] }, "S3": null, "S1S2S3": null }, "country": "Germany", - "ghg_s1s2": { - "year": 2019, - "value": 551394001.129387 - }, - "ghg_s3": { - "year": 2019, - "value": 551394001.129387 - }, - "industry_level_1": null, + "ghg_s1s2": 551394001.129387, + "ghg_s3": 551394001.129387, + "industry_level_1": null, "industry_level_2": null, "industry_level_3": null, "industry_level_4": null, @@ -4207,8 +4123,8 @@ "production_metric": { "units": "MWh"}, "target_probability": 0.4285714285714285, "projected_ei_targets": { - "S1S2": { - "units": "t CO2/MWh", + "S1S2": { "reports": [ { + "company_metric": { "units": "t CO2/MWh" }, "projections": [ { "year": 2019, @@ -4339,13 +4255,13 @@ "value": 0.0 } ] - }, + } ] }, "S3": null, "S1S2S3": null }, "projected_ei_trajectories": { - "S1S2": { - "units": "t CO2/MWh", + "S1S2": { "reports": [ { + "company_metric": { "units": "t CO2/MWh" }, "projections": [ { "year": 2019, @@ -4476,20 +4392,14 @@ "value": 0.19997605950297165 } ] - }, + } ] }, "S3": null, "S1S2S3": null }, "country": "United States of America", - "ghg_s1s2": { - "year": 2019, - "value": 242884801.558717 - }, - "ghg_s3": { - "year": 2019, - "value": 242884801.558717 - }, - "industry_level_1": null, + "ghg_s1s2": 242884801.558717, + "ghg_s3": 242884801.558717, + "industry_level_1": null, "industry_level_2": null, "industry_level_3": null, "industry_level_4": null, @@ -4507,8 +4417,8 @@ "production_metric": { "units": "Fe_ton"}, "target_probability": 0.4285714285714285, "projected_ei_targets": { - "S1S2": { - "units": "t CO2/Fe_ton", + "S1S2": { "reports": [ { + "company_metric": { "units": "t CO2/Fe_ton" }, "projections": [ { "year": 2019, @@ -4639,13 +4549,13 @@ "value": 0.023531717117231055 } ] - }, + } ] }, "S3": null, "S1S2S3": null }, "projected_ei_trajectories": { - "S1S2": { - "units": "t CO2/Fe_ton", + "S1S2": { "reports": [ { + "company_metric": { "units": "t CO2/Fe_ton" }, "projections": [ { "year": 2019, @@ -4776,20 +4686,14 @@ "value": 1.4236498966235975 } ] - }, + } ] }, "S3": null, "S1S2S3": null }, "country": "Netherlands", - "ghg_s1s2": { - "year": 2019, - "value": 89800001.3960884 - }, - "ghg_s3": { - "year": 2019, - "value": 89800001.3960884 - }, - "industry_level_1": null, + "ghg_s1s2": 89800001.3960884, + "ghg_s3": 89800001.3960884, + "industry_level_1": null, "industry_level_2": null, "industry_level_3": null, "industry_level_4": null, @@ -4807,8 +4711,8 @@ "production_metric": { "units": "Fe_ton"}, "target_probability": 0.4285714285714285, "projected_ei_targets": { - "S1S2": { - "units": "t CO2/Fe_ton", + "S1S2": { "reports": [ { + "company_metric": { "units": "t CO2/Fe_ton" }, "projections": [ { "year": 2019, @@ -4939,13 +4843,13 @@ "value": null } ] - }, + } ] }, "S3": null, "S1S2S3": null }, "projected_ei_trajectories": { - "S1S2": { - "units": "t CO2/Fe_ton", + "S1S2": { "reports": [ { + "company_metric": { "units": "t CO2/Fe_ton" }, "projections": [ { "year": 2019, @@ -5076,7 +4980,7 @@ "value": null } ] - }, + } ] }, "S3": null, "S1S2S3": null }, @@ -5101,8 +5005,8 @@ "production_metric": { "units": "Fe_ton"}, "target_probability": 0.4285714285714285, "projected_ei_targets": { - "S1S2": { - "units": "t CO2/Fe_ton", + "S1S2": { "reports": [ { + "company_metric": { "units": "t CO2/Fe_ton" }, "projections": [ { "year": 2019, @@ -5233,13 +5137,13 @@ "value": null } ] - }, + } ] }, "S3": null, "S1S2S3": null }, "projected_ei_trajectories": { - "S1S2": { - "units": "t CO2/Fe_ton", + "S1S2": { "reports": [ { + "company_metric": { "units": "t CO2/Fe_ton" }, "projections": [ { "year": 2019, @@ -5370,7 +5274,7 @@ "value": null } ] - }, + } ] }, "S3": null, "S1S2S3": null }, @@ -5395,8 +5299,8 @@ "production_metric": { "units": "Fe_ton"}, "target_probability": 0.4285714285714285, "projected_ei_targets": { - "S1S2": { - "units": "t CO2/Fe_ton", + "S1S2": { "reports": [ { + "company_metric": { "units": "t CO2/Fe_ton" }, "projections": [ { "year": 2019, @@ -5527,13 +5431,13 @@ "value": 0.06921896577724047 } ] - }, + } ] }, "S3": null, "S1S2S3": null }, "projected_ei_trajectories": { - "S1S2": { - "units": "t CO2/Fe_ton", + "S1S2": { "reports": [ { + "company_metric": { "units": "t CO2/Fe_ton" }, "projections": [ { "year": 2019, @@ -5664,20 +5568,14 @@ "value": 0.06921896577724047 } ] - }, + } ] }, "S3": null, "S1S2S3": null }, "country": "Brazil", - "ghg_s1s2": { - "year": 2019, - "value": 12453000.4760821 - }, - "ghg_s3": { - "year": 2019, - "value": 12453000.4760821 - }, - "industry_level_1": null, + "ghg_s1s2": 12453000.4760821, + "ghg_s3": 12453000.4760821, + "industry_level_1": null, "industry_level_2": null, "industry_level_3": null, "industry_level_4": null, @@ -5695,8 +5593,8 @@ "production_metric": { "units": "Fe_ton"}, "target_probability": 0.4285714285714285, "projected_ei_targets": { - "S1S2": { - "units": "t CO2/Fe_ton", + "S1S2": { "reports": [ { + "company_metric": { "units": "t CO2/Fe_ton" }, "projections": [ { "year": 2019, @@ -5827,13 +5725,13 @@ "value": 0.06589864832712344 } ] - }, + } ] }, "S3": null, "S1S2S3": null }, "projected_ei_trajectories": { - "S1S2": { - "units": "t CO2/Fe_ton", + "S1S2": { "reports": [ { + "company_metric": { "units": "t CO2/Fe_ton" }, "projections": [ { "year": 2019, @@ -5964,20 +5862,14 @@ "value": 0.6374459070572828 } ] - }, + } ] }, "S3": null, "S1S2S3": null }, "country": "South Korea", - "ghg_s1s2": { - "year": 2019, - "value": 23303009.677026 - }, - "ghg_s3": { - "year": 2019, - "value": 23303009.677026 - }, - "industry_level_1": null, + "ghg_s1s2": 23303009.677026, + "ghg_s3": 23303009.677026, + "industry_level_1": null, "industry_level_2": null, "industry_level_3": null, "industry_level_4": null, @@ -5995,8 +5887,8 @@ "production_metric": { "units": "Fe_ton"}, "target_probability": 0.4285714285714285, "projected_ei_targets": { - "S1S2": { - "units": "t CO2/Fe_ton", + "S1S2": { "reports": [ { + "company_metric": { "units": "t CO2/Fe_ton" }, "projections": [ { "year": 2019, @@ -6127,13 +6019,13 @@ "value": 0.0673367403352704 } ] - }, + } ] }, "S3": null, "S1S2S3": null }, "projected_ei_trajectories": { - "S1S2": { - "units": "t CO2/Fe_ton", + "S1S2": { "reports": [ { + "company_metric": { "units": "t CO2/Fe_ton" }, "projections": [ { "year": 2019, @@ -6264,20 +6156,14 @@ "value": 1.3525034681569517 } ] - }, + } ] }, "S3": null, "S1S2S3": null }, "country": "Japan", - "ghg_s1s2": { - "year": 2019, - "value": 27880000.2335485 - }, - "ghg_s3": { - "year": 2019, - "value": 27880000.2335485 - }, - "industry_level_1": null, + "ghg_s1s2": 27880000.2335485, + "ghg_s3": 27880000.2335485, + "industry_level_1": null, "industry_level_2": null, "industry_level_3": null, "industry_level_4": null, @@ -6295,8 +6181,8 @@ "production_metric": { "units": "Fe_ton"}, "target_probability": 0.4285714285714285, "projected_ei_targets": { - "S1S2": { - "units": "t CO2/Fe_ton", + "S1S2": { "reports": [ { + "company_metric": { "units": "t CO2/Fe_ton" }, "projections": [ { "year": 2019, @@ -6427,13 +6313,13 @@ "value": 2.13378665842693 } ] - }, + } ] }, "S3": null, "S1S2S3": null }, "projected_ei_trajectories": { - "S1S2": { - "units": "t CO2/Fe_ton", + "S1S2": { "reports": [ { + "company_metric": { "units": "t CO2/Fe_ton" }, "projections": [ { "year": 2019, @@ -6564,20 +6450,14 @@ "value": 2.13378665842693 } ] - }, + } ] }, "S3": null, "S1S2S3": null }, "country": "India", - "ghg_s1s2": { - "year": 2019, - "value": 12630001.0468216 - }, - "ghg_s3": { - "year": 2019, - "value": 12630001.0468216 - }, - "industry_level_1": null, + "ghg_s1s2": 12630001.0468216, + "ghg_s3": 12630001.0468216, + "industry_level_1": null, "industry_level_2": null, "industry_level_3": null, "industry_level_4": null, @@ -6595,8 +6475,8 @@ "production_metric": { "units": "Fe_ton"}, "target_probability": 0.4285714285714285, "projected_ei_targets": { - "S1S2": { - "units": "t CO2/Fe_ton", + "S1S2": { "reports": [ { + "company_metric": { "units": "t CO2/Fe_ton" }, "projections": [ { "year": 2019, @@ -6727,13 +6607,13 @@ "value": null } ] - }, + } ] }, "S3": null, "S1S2S3": null }, "projected_ei_trajectories": { - "S1S2": { - "units": "t CO2/Fe_ton", + "S1S2": { "reports": [ { + "company_metric": { "units": "t CO2/Fe_ton" }, "projections": [ { "year": 2019, @@ -6864,20 +6744,14 @@ "value": null } ] - }, + } ] }, "S3": null, "S1S2S3": null }, "country": "Russia", - "ghg_s1s2": { - "year": 2019, - "value": 23779000.8292913 - }, - "ghg_s3": { - "year": 2019, - "value": 23779000.8292913 - }, - "industry_level_1": null, + "ghg_s1s2": 23779000.8292913, + "ghg_s3": 23779000.8292913, + "industry_level_1": null, "industry_level_2": null, "industry_level_3": null, "industry_level_4": null, @@ -6895,8 +6769,8 @@ "production_metric": { "units": "Fe_ton"}, "target_probability": 0.4285714285714285, "projected_ei_targets": { - "S1S2": { - "units": "t CO2/Fe_ton", + "S1S2": { "reports": [ { + "company_metric": { "units": "t CO2/Fe_ton" }, "projections": [ { "year": 2019, @@ -7027,13 +6901,13 @@ "value": 1.158316671492553 } ] - }, + } ] }, "S3": null, "S1S2S3": null }, "projected_ei_trajectories": { - "S1S2": { - "units": "t CO2/Fe_ton", + "S1S2": { "reports": [ { + "company_metric": { "units": "t CO2/Fe_ton" }, "projections": [ { "year": 2019, @@ -7164,20 +7038,14 @@ "value": 1.158316671492553 } ] - }, + } ] }, "S3": null, "S1S2S3": null }, "country": "Japan", - "ghg_s1s2": { - "year": 2019, - "value": 47840001.3676141 - }, - "ghg_s3": { - "year": 2019, - "value": 47840001.3676141 - }, - "industry_level_1": null, + "ghg_s1s2": 47840001.3676141, + "ghg_s3": 47840001.3676141, + "industry_level_1": null, "industry_level_2": null, "industry_level_3": null, "industry_level_4": null, @@ -7195,8 +7063,8 @@ "production_metric": { "units": "Fe_ton"}, "target_probability": 0.4285714285714285, "projected_ei_targets": { - "S1S2": { - "units": "t CO2/Fe_ton", + "S1S2": { "reports": [ { + "company_metric": { "units": "t CO2/Fe_ton" }, "projections": [ { "year": 2019, @@ -7327,13 +7195,13 @@ "value": 1.2225581277619404 } ] - }, + } ] }, "S3": null, "S1S2S3": null }, "projected_ei_trajectories": { - "S1S2": { - "units": "t CO2/Fe_ton", + "S1S2": { "reports": [ { + "company_metric": { "units": "t CO2/Fe_ton" }, "projections": [ { "year": 2019, @@ -7464,20 +7332,14 @@ "value": 1.2961814763575168 } ] - }, + } ] }, "S3": null, "S1S2S3": null }, "country": "Russia", - "ghg_s1s2": { - "year": 2019, - "value": 15520004.6310296 - }, - "ghg_s3": { - "year": 2019, - "value": 15520004.6310296 - }, - "industry_level_1": null, + "ghg_s1s2": 15520004.6310296, + "ghg_s3": 15520004.6310296, + "industry_level_1": null, "industry_level_2": null, "industry_level_3": null, "industry_level_4": null, @@ -7495,8 +7357,8 @@ "production_metric": { "units": "Fe_ton"}, "target_probability": 0.4285714285714285, "projected_ei_targets": { - "S1S2": { - "units": "t CO2/Fe_ton", + "S1S2": { "reports": [ { + "company_metric": { "units": "t CO2/Fe_ton" }, "projections": [ { "year": 2019, @@ -7627,13 +7489,13 @@ "value": null } ] - }, + } ] }, "S3": null, "S1S2S3": null }, "projected_ei_trajectories": { - "S1S2": { - "units": "t CO2/Fe_ton", + "S1S2": { "reports": [ { + "company_metric": { "units": "t CO2/Fe_ton" }, "projections": [ { "year": 2019, @@ -7764,7 +7626,7 @@ "value": null } ] - }, + } ] }, "S3": null, "S1S2S3": null }, @@ -7789,8 +7651,8 @@ "production_metric": { "units": "Fe_ton"}, "target_probability": 0.4285714285714285, "projected_ei_targets": { - "S1S2": { - "units": "t CO2/Fe_ton", + "S1S2": { "reports": [ { + "company_metric": { "units": "t CO2/Fe_ton" }, "projections": [ { "year": 2019, @@ -7921,13 +7783,13 @@ "value": null } ] - }, + } ] }, "S3": null, "S1S2S3": null }, "projected_ei_trajectories": { - "S1S2": { - "units": "t CO2/Fe_ton", + "S1S2": { "reports": [ { + "company_metric": { "units": "t CO2/Fe_ton" }, "projections": [ { "year": 2019, @@ -8058,20 +7920,14 @@ "value": null } ] - }, + } ] }, "S3": null, "S1S2S3": null }, "country": "Russia", - "ghg_s1s2": { - "year": 2019, - "value": 11847001.9224849 - }, - "ghg_s3": { - "year": 2019, - "value": 11847001.9224849 - }, - "industry_level_1": null, + "ghg_s1s2": 11847001.9224849, + "ghg_s3": 11847001.9224849, + "industry_level_1": null, "industry_level_2": null, "industry_level_3": null, "industry_level_4": null, @@ -8089,8 +7945,8 @@ "production_metric": { "units": "Fe_ton"}, "target_probability": 0.4285714285714285, "projected_ei_targets": { - "S1S2": { - "units": "t CO2/Fe_ton", + "S1S2": { "reports": [ { + "company_metric": { "units": "t CO2/Fe_ton" }, "projections": [ { "year": 2019, @@ -8221,13 +8077,13 @@ "value": 0.5201755039378894 } ] - }, + } ] }, "S3": null, "S1S2S3": null }, "projected_ei_trajectories": { - "S1S2": { - "units": "t CO2/Fe_ton", + "S1S2": { "reports": [ { + "company_metric": { "units": "t CO2/Fe_ton" }, "projections": [ { "year": 2019, @@ -8358,20 +8214,14 @@ "value": 0.5410407687401423 } ] - }, + } ] }, "S3": null, "S1S2S3": null }, "country": "Sweden", - "ghg_s1s2": { - "year": 2019, - "value": 14618000.0778486 - }, - "ghg_s3": { - "year": 2019, - "value": 14618000.0778486 - }, - "industry_level_1": null, + "ghg_s1s2": 14618000.0778486, + "ghg_s3": 14618000.0778486, + "industry_level_1": null, "industry_level_2": null, "industry_level_3": null, "industry_level_4": null, @@ -8389,8 +8239,8 @@ "production_metric": { "units": "Fe_ton"}, "target_probability": 0.4285714285714285, "projected_ei_targets": { - "S1S2": { - "units": "t CO2/Fe_ton", + "S1S2": { "reports": [ { + "company_metric": { "units": "t CO2/Fe_ton" }, "projections": [ { "year": 2019, @@ -8521,13 +8371,13 @@ "value": 1.534974823445468 } ] - }, + } ] }, "S3": null, "S1S2S3": null }, "projected_ei_trajectories": { - "S1S2": { - "units": "t CO2/Fe_ton", + "S1S2": { "reports": [ { + "company_metric": { "units": "t CO2/Fe_ton" }, "projections": [ { "year": 2019, @@ -8658,20 +8508,14 @@ "value": 1.534974823445468 } ] - }, + } ] }, "S3": null, "S1S2S3": null }, "country": "India", - "ghg_s1s2": { - "year": 2019, - "value": 27110004.3464472 - }, - "ghg_s3": { - "year": 2019, - "value": 27110004.3464472 - }, - "industry_level_1": null, + "ghg_s1s2": 27110004.3464472, + "ghg_s3": 27110004.3464472, + "industry_level_1": null, "industry_level_2": null, "industry_level_3": null, "industry_level_4": null, @@ -8689,8 +8533,8 @@ "production_metric": { "units": "Fe_ton"}, "target_probability": 0.4285714285714285, "projected_ei_targets": { - "S1S2": { - "units": "t CO2/Fe_ton", + "S1S2": { "reports": [ { + "company_metric": { "units": "t CO2/Fe_ton" }, "projections": [ { "year": 2019, @@ -8821,13 +8665,13 @@ "value": null } ] - }, + } ] }, "S3": null, "S1S2S3": null }, "projected_ei_trajectories": { - "S1S2": { - "units": "t CO2/Fe_ton", + "S1S2": { "reports": [ { + "company_metric": { "units": "t CO2/Fe_ton" }, "projections": [ { "year": 2019, @@ -8958,7 +8802,7 @@ "value": null } ] - }, + } ] }, "S3": null, "S1S2S3": null }, diff --git a/test/test_base_providers.py b/test/test_base_providers.py index 522bde4f..b144b6f4 100644 --- a/test/test_base_providers.py +++ b/test/test_base_providers.py @@ -23,7 +23,7 @@ class TestBaseProvider(unittest.TestCase): def setUp(self) -> None: self.root = os.path.dirname(os.path.abspath(__file__)) - self.company_json = os.path.join(self.root, "inputs", "json", "fundamental_data2.json") + self.company_json = os.path.join(self.root, "inputs", "json", "fundamental_data.json") self.benchmark_prod_json = os.path.join(self.root, "inputs", "json", "benchmark_production_OECM.json") self.benchmark_EI_json = os.path.join(self.root, "inputs", "json", "benchmark_EI_OECM.json") # self.excel_data_path = os.path.join(self.root, "inputs", "test_data_company.xlsx") diff --git a/test/test_different_benchmarks.py b/test/test_different_benchmarks.py index d4ddba50..56b7a73a 100644 --- a/test/test_different_benchmarks.py +++ b/test/test_different_benchmarks.py @@ -23,7 +23,7 @@ class TestEIBenchmarks(unittest.TestCase): def setUp(self) -> None: self.root = os.path.dirname(os.path.abspath(__file__)) - self.company_json = os.path.join(self.root, "inputs", "json", "fundamental_data2.json") + self.company_json = os.path.join(self.root, "inputs", "json", "fundamental_data.json") self.benchmark_prod_json = os.path.join(self.root, "inputs", "json", "benchmark_production_OECM.json") self.benchmark_EI_OECM = os.path.join(self.root, "inputs", "json", "benchmark_EI_OECM.json") self.benchmark_EI_TPI = os.path.join(self.root, "inputs", "json", "benchmark_EI_TPI_2_degrees.json") From 3fafb9928018887559ca90c249e1dd2891bec652 Mon Sep 17 00:00:00 2001 From: MichaelTiemannOSC Date: Fri, 7 Jan 2022 16:19:27 +0000 Subject: [PATCH 065/345] Initial commit Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- examples/pint-pandas-problem.py | 91 +++++++++++++++++++++++++++++++++ 1 file changed, 91 insertions(+) create mode 100644 examples/pint-pandas-problem.py diff --git a/examples/pint-pandas-problem.py b/examples/pint-pandas-problem.py new file mode 100644 index 00000000..6e314ad9 --- /dev/null +++ b/examples/pint-pandas-problem.py @@ -0,0 +1,91 @@ +import unittest +import pandas as pd +import numpy as np +from pandas._testing import * + +from pint import set_application_registry +from pint_pandas import PintArray, PintType +from openscm_units import unit_registry +PintType.ureg = unit_registry +ureg = unit_registry +set_application_registry(ureg) +Q_ = ureg.Quantity + +ureg.define("CO2e = CO2 = CO2eq = CO2_eq") + +pd.show_versions() + +def pandas_mult_acc(a, b): + df = a.multiply(b) + return df.sum(axis=1) + +def pint_mult_acc(a, b): + df = a.multiply(b) + return df.sum(axis=1).astype('pint[g CO2]') + +class TestBaseProvider(unittest.TestCase): + """ + Test the Base provider + """ + + def setUp(self) -> None: + pass + + # PASS: series are equal + def test_pandas_series_equality_1(self): + projected_ei = pd.DataFrame([[1.0, 2.0], [4.0, 2.0]]) + projected_production = pd.DataFrame([[1.0, 2.0], [1.0, 2.0]]) + expected_data = pd.Series([5.0, 8.0], index=[0, 1]) + result_data = pandas_mult_acc(projected_ei,projected_production) + pd.testing.assert_series_equal(expected_data, result_data) + + # FAIL: series differ + def test_pandas_series_equality_2(self): + projected_ei = pd.DataFrame([[1.0, 2.0], [4.0, 2.0]]) + projected_production = pd.DataFrame([[1.0, 2.0], [1.0, 3.0]]) + expected_data = pd.Series([5.0, 8.0], index=[0, 1]) + result_data = pandas_mult_acc(projected_ei,projected_production) + pd.testing.assert_series_equal(expected_data, result_data) + + # PASS: series are equal + def test_pint_series_equality_1(self): + projected_ei = pd.DataFrame([[Q_(1.0, 'g CO2/Wh'), Q_(2.0, 'g CO2/Wh')], [Q_(4.0, 'g CO2/Wh'), Q_(2.0, 'g CO2/Wh')]], dtype='pint[g CO2/Wh]') + projected_production = pd.DataFrame([[Q_(1.0, 'Wh'), Q_(2.0, 'Wh')], [Q_(1.0, 'Wh'), Q_(2.0, 'Wh')]], dtype='pint[Wh]') + expected_data = pd.Series([5.0, 8.0], index=[0, 1], dtype='pint[g CO2]') + result_data = pint_mult_acc(projected_ei,projected_production) + pd.testing.assert_series_equal(expected_data, result_data) + + # PASS: extension arrays are equal + def test_pint_series_equality_2(self): + projected_ei = pd.DataFrame([[Q_(1.0, 'g CO2/Wh'), Q_(2.0, 'g CO2/Wh')], [Q_(4.0, 'g CO2/Wh'), Q_(2.0, 'g CO2/Wh')]], dtype='pint[g CO2/Wh]') + projected_production = pd.DataFrame([[Q_(1.0, 'Wh'), Q_(2.0, 'Wh')], [Q_(1.0, 'Wh'), Q_(2.0, 'Wh')]], dtype='pint[Wh]') + expected_data = pd.Series([5.0, 8.0], index=[0, 1], dtype='pint[g CO2]') + result_data = pint_mult_acc(projected_ei,projected_production) + pd.testing.assert_extension_array_equal(expected_data.values, result_data.values) + + # Should FAIL, but ERROR instead + def test_pint_series_equality_3(self): + projected_ei = pd.DataFrame([[Q_(1.0, 'g CO2/Wh'), Q_(2.0, 'g CO2/Wh')], [Q_(4.0, 'g CO2/Wh'), Q_(2.0, 'g CO2/Wh')]], dtype='pint[g CO2/Wh]') + projected_production = pd.DataFrame([[Q_(1.0, 'Wh'), Q_(2.0, 'Wh')], [Q_(1.0, 'Wh'), Q_(3.0, 'Wh')]], dtype='pint[Wh]') + expected_data = pd.Series([5.0, 8.0], index=[0, 1], dtype='pint[g CO2]') + result_data = pint_mult_acc(projected_ei,projected_production) + # Expected to fail because expected data and result data differ, + pd._testing.assert_series_equal(expected_data, result_data) + + # Should FAIL, but ERROR instead + def test_pint_series_equality_4(self): + projected_ei = pd.DataFrame([[Q_(1.0, 'g CO2/Wh'), Q_(2.0, 'g CO2/Wh')], [Q_(4.0, 'g CO2/Wh'), Q_(2.0, 'g CO2/Wh')]], dtype='pint[g CO2/Wh]') + projected_production = pd.DataFrame([[Q_(1.0, 'Wh'), Q_(2.0, 'Wh')], [Q_(1.0, 'Wh'), Q_(3.0, 'Wh')]], dtype='pint[Wh]') + expected_data = pd.Series([5.0, 8.0], index=[0, 1], dtype='pint[g CO2]') + result_data = pint_mult_acc(projected_ei,projected_production) + # Expected to fail because expected data and result data differ + pd._testing.assert_extension_array_equal(expected_data.values, result_data.values) + + # FAIL: numpy arrays differ differ + def test_pint_series_equality_5(self): + projected_ei = pd.DataFrame([[Q_(1.0, 'g CO2/Wh'), Q_(2.0, 'g CO2/Wh')], [Q_(4.0, 'g CO2/Wh'), Q_(2.0, 'g CO2/Wh')]], dtype='pint[g CO2/Wh]') + projected_production = pd.DataFrame([[Q_(1.0, 'Wh'), Q_(2.0, 'Wh')], [Q_(1.0, 'Wh'), Q_(3.0, 'Wh')]], dtype='pint[Wh]') + expected_data = pd.Series([5.0, 8.0], index=[0, 1], dtype='pint[g CO2]') + result_data = pint_mult_acc(projected_ei,projected_production) + # Expected to fail because expected data and result data differ + pd._testing.assert_numpy_array_equal(np.asarray(expected_data), np.asarray(result_data)) From 9e52551ff8b711628dfc5ec81f73a7010809f047 Mon Sep 17 00:00:00 2001 From: MichaelTiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> Date: Thu, 10 Feb 2022 05:22:27 -0500 Subject: [PATCH 066/345] Create region_classification.csv Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- ITR/data/region_classification.csv | 251 +++++++++++++++++++++++++++++ 1 file changed, 251 insertions(+) create mode 100644 ITR/data/region_classification.csv diff --git a/ITR/data/region_classification.csv b/ITR/data/region_classification.csv new file mode 100644 index 00000000..57f3968f --- /dev/null +++ b/ITR/data/region_classification.csv @@ -0,0 +1,251 @@ +ISO,name,region_ar6_6,region_ar6_10,region_ar6_22,region_ar6_dev +AFG,Afghanistan,Asia and developing Pacific,Southern Asia,Rest of Southern Asia,ldc +ALA,Åland Islands,Developed Countries,Europe,Northern and western Europe,developed +ALB,Albania,Developed Countries,Europe,Southern and eastern Europe,developed +DZA,Algeria,Africa,Africa,North Africa,developing +ASM,American Samoa,Asia and developing Pacific,South-East Asia and developing Pacific,Developing Pacific,developing +AND,Andorra,Developed Countries,Europe,Southern and eastern Europe,developed +AGO,Angola,Africa,Africa,Southern and middle Africa,ldc +AIA,Anguilla,Latin America and Caribbean,Latin America and Caribbean,Caribbean,developing +ATG,Antigua and Barbuda,Latin America and Caribbean,Latin America and Caribbean,Caribbean,developing +ARG,Argentina,Latin America and Caribbean,Latin America and Caribbean,South America,developing +ARM,Armenia,Eastern Europe and West-Central Asia,Eurasia,Eurasia,developing +ABW,Aruba,Latin America and Caribbean,Latin America and Caribbean,Caribbean,developing +AUS,Australia,Developed Countries,Asia-Pacific Developed,Australia & New Zealand,developed +AUT,Austria,Developed Countries,Europe,Northern and western Europe,developed +AZE,Azerbaijan,Eastern Europe and West-Central Asia,Eurasia,Eurasia,developing +BHS,"Bahamas, The",Latin America and Caribbean,Latin America and Caribbean,Caribbean,developing +BHR,Bahrain,Middle East,Middle East,Middle East,developing +BGD,Bangladesh,Asia and developing Pacific,Southern Asia,Rest of Southern Asia,ldc +BRB,Barbados,Latin America and Caribbean,Latin America and Caribbean,Caribbean,developing +BLR,Belarus,Eastern Europe and West-Central Asia,Eurasia,Eurasia,developed +BEL,Belgium,Developed Countries,Europe,Northern and western Europe,developed +BLZ,Belize,Latin America and Caribbean,Latin America and Caribbean,Meso America,developing +BEN,Benin,Africa,Africa,Western Africa,ldc +BMU,Bermuda,Developed Countries,North America,"Greenland, Bermuda + others",developed +BTN,Bhutan,Asia and developing Pacific,Southern Asia,Rest of Southern Asia,ldc +BOL,Bolivia,Latin America and Caribbean,Latin America and Caribbean,South America,developing +BES,"Bonaire, Sint Eustatius and Saba",Latin America and Caribbean,Latin America and Caribbean,Caribbean,developing +BIH,Bosnia and Herzegovina,Developed Countries,Europe,Southern and eastern Europe,developed +BWA,Botswana,Africa,Africa,Southern and middle Africa,developing +BVT,Bouvet Island,Latin America and Caribbean,Latin America and Caribbean,South America,developing +BRA,Brazil,Latin America and Caribbean,Latin America and Caribbean,South America,developing +IOT,British Indian Ocean Territory,Africa,Africa,Eastern Africa,developing +VGB,British Virgin Islands,Latin America and Caribbean,Latin America and Caribbean,Caribbean,developing +BRN,Brunei Darussalam,Asia and developing Pacific,South-East Asia and developing Pacific,South-East Asia,developing +BGR,Bulgaria,Developed Countries,Europe,Southern and eastern Europe,developed +BFA,Burkina Faso,Africa,Africa,Western Africa,ldc +BDI,Burundi,Africa,Africa,Eastern Africa,ldc +CPV,Cabo Verde,Africa,Africa,Western Africa,developing +KHM,Cambodia,Asia and developing Pacific,South-East Asia and developing Pacific,South-East Asia,ldc +CMR,Cameroon,Africa,Africa,Southern and middle Africa,developing +CAN,Canada,Developed Countries,North America,USA & Canada,developed +CYM,Cayman Islands,Latin America and Caribbean,Latin America and Caribbean,Caribbean,developing +CAF,Central African Republic,Africa,Africa,Southern and middle Africa,ldc +TCD,Chad,Africa,Africa,Southern and middle Africa,ldc +CHL,Chile,Latin America and Caribbean,Latin America and Caribbean,South America,developing +CHN,China,Asia and developing Pacific,Eastern Asia,Eastern Asia,developing +CXR,Christmas Island,Developed Countries,Asia-Pacific Developed,Asia-Pacific Developed (others),developed +CCK,Cocos (Keeling) Islands,Developed Countries,Asia-Pacific Developed,Asia-Pacific Developed (others),developed +COL,Colombia,Latin America and Caribbean,Latin America and Caribbean,South America,developing +COM,Comoros,Africa,Africa,Eastern Africa,ldc +COD,"Congo, Dem. Rep.",Africa,Africa,Southern and middle Africa,ldc +COG,"Congo, Rep.",Africa,Africa,Southern and middle Africa,developing +COK,Cook Islands,Asia and developing Pacific,South-East Asia and developing Pacific,Developing Pacific,developing +CRI,Costa Rica,Latin America and Caribbean,Latin America and Caribbean,Meso America,developing +CIV,Côte d'Ivoire,Africa,Africa,Western Africa,developing +HRV,Croatia,Developed Countries,Europe,Southern and eastern Europe,developed +CUB,Cuba,Latin America and Caribbean,Latin America and Caribbean,Caribbean,developing +CUW,Curaçao,Latin America and Caribbean,Latin America and Caribbean,Caribbean,developing +CYP,Cyprus,Developed Countries,Europe,Southern and eastern Europe,developed +CZE,Czech Republic,Developed Countries,Europe,Southern and eastern Europe,developed +DNK,Denmark,Developed Countries,Europe,Northern and western Europe,developed +DJI,Djibouti,Africa,Africa,Eastern Africa,ldc +DMA,Dominica,Latin America and Caribbean,Latin America and Caribbean,Caribbean,developing +DOM,Dominican Republic,Latin America and Caribbean,Latin America and Caribbean,Caribbean,developing +ECU,Ecuador,Latin America and Caribbean,Latin America and Caribbean,South America,developing +EGY,"Egypt, Arab Rep.",Africa,Africa,North Africa,developing +SLV,El Salvador,Latin America and Caribbean,Latin America and Caribbean,Meso America,developing +GNQ,Equatorial Guinea,Africa,Africa,Southern and middle Africa,developing +ERI,Eritrea,Africa,Africa,Eastern Africa,ldc +EST,Estonia,Developed Countries,Europe,Northern and western Europe,developed +ETH,Ethiopia,Africa,Africa,Eastern Africa,ldc +FLK,Falkland Islands (Malvinas),Latin America and Caribbean,Latin America and Caribbean,South America,developing +FRO,Faroe Islands,Developed Countries,Europe,Northern and western Europe,developed +FJI,Fiji,Asia and developing Pacific,South-East Asia and developing Pacific,Developing Pacific,developing +FIN,Finland,Developed Countries,Europe,Northern and western Europe,developed +FRA,France,Developed Countries,Europe,Northern and western Europe,developed +GUF,French Guiana,Latin America and Caribbean,Latin America and Caribbean,South America,developing +PYF,French Polynesia,Asia and developing Pacific,South-East Asia and developing Pacific,Developing Pacific,developing +ATF,French Southern Territories,Africa,Africa,Eastern Africa,developing +GAB,Gabon,Africa,Africa,Southern and middle Africa,developing +GMB,"Gambia, The",Africa,Africa,Western Africa,ldc +GEO,Georgia,Eastern Europe and West-Central Asia,Eurasia,Eurasia,developing +DEU,Germany,Developed Countries,Europe,Northern and western Europe,developed +GHA,Ghana,Africa,Africa,Western Africa,developing +GIB,Gibraltar,Developed Countries,Europe,Southern and eastern Europe,developed +GRC,Greece,Developed Countries,Europe,Southern and eastern Europe,developed +GRL,Greenland,Developed Countries,North America,"Greenland, Bermuda + others",developed +GRD,Grenada,Latin America and Caribbean,Latin America and Caribbean,Caribbean,developing +GLP,Guadeloupe,Latin America and Caribbean,Latin America and Caribbean,Caribbean,developing +GUM,Guam,Asia and developing Pacific,South-East Asia and developing Pacific,Developing Pacific,developing +GTM,Guatemala,Latin America and Caribbean,Latin America and Caribbean,Meso America,developing +GGY,Guernsey,Developed Countries,Europe,Northern and western Europe,developed +GIN,Guinea,Africa,Africa,Western Africa,ldc +GNB,Guinea-Bissau,Africa,Africa,Western Africa,ldc +GUY,Guyana,Latin America and Caribbean,Latin America and Caribbean,South America,developing +HTI,Haiti,Latin America and Caribbean,Latin America and Caribbean,Caribbean,ldc +HMD,Heard Island and McDonald Islands,Developed Countries,Asia-Pacific Developed,Asia-Pacific Developed (others),developed +VAT,Holy See,Developed Countries,Europe,Southern and eastern Europe,developed +HND,Honduras,Latin America and Caribbean,Latin America and Caribbean,Meso America,developing +HKG,"Hong Kong SAR, China",Asia and developing Pacific,Eastern Asia,Eastern Asia,developing +HUN,Hungary,Developed Countries,Europe,Southern and eastern Europe,developed +ISL,Iceland,Developed Countries,Europe,Northern and western Europe,developed +IND,India,Asia and developing Pacific,Southern Asia,India & Sri Lanka,developing +IDN,Indonesia,Asia and developing Pacific,South-East Asia and developing Pacific,South-East Asia,developing +IRN,"Iran, Islamic Rep.",Middle East,Middle East,Middle East,developing +IRQ,Iraq,Middle East,Middle East,Middle East,developing +IRL,Ireland,Developed Countries,Europe,Northern and western Europe,developed +IMN,Isle of Man,Developed Countries,Europe,Northern and western Europe,developed +ISR,Israel,Middle East,Middle East,Middle East,developed +ITA,Italy,Developed Countries,Europe,Southern and eastern Europe,developed +JAM,Jamaica,Latin America and Caribbean,Latin America and Caribbean,Caribbean,developing +JPN,Japan,Developed Countries,Asia-Pacific Developed,Asia-Pacific Developed (others),developed +JEY,Jersey,Developed Countries,Europe,Northern and western Europe,developed +JOR,Jordan,Middle East,Middle East,Middle East,developing +KAZ,Kazakhstan,Eastern Europe and West-Central Asia,Eurasia,Eurasia,developing +KEN,Kenya,Africa,Africa,Eastern Africa,developing +KIR,Kiribati,Asia and developing Pacific,South-East Asia and developing Pacific,Developing Pacific,ldc +PRK,"Korea, Dem. People's Rep.",Asia and developing Pacific,Eastern Asia,Eastern Asia,developing +KOR,"Korea, Rep.",Asia and developing Pacific,Eastern Asia,Eastern Asia,developing +KWT,Kuwait,Middle East,Middle East,Middle East,developing +KGZ,Kyrgyz Republic,Eastern Europe and West-Central Asia,Eurasia,Eurasia,developing +LAO,Lao PDR,Asia and developing Pacific,South-East Asia and developing Pacific,South-East Asia,ldc +LVA,Latvia,Developed Countries,Europe,Northern and western Europe,developed +LBN,Lebanon,Middle East,Middle East,Middle East,developing +LSO,Lesotho,Africa,Africa,Southern and middle Africa,ldc +LBR,Liberia,Africa,Africa,Western Africa,ldc +LBY,Libya,Africa,Africa,North Africa,developing +LIE,Liechtenstein,Developed Countries,Europe,Northern and western Europe,developed +LTU,Lithuania,Developed Countries,Europe,Northern and western Europe,developed +LUX,Luxembourg,Developed Countries,Europe,Northern and western Europe,developed +MAC,"Macao SAR, China",Asia and developing Pacific,Eastern Asia,Eastern Asia,developing +MKD,North Macedonia,Eastern Europe and West-Central Asia,Eurasia,Eurasia,developed +MDG,Madagascar,Africa,Africa,Eastern Africa,ldc +MWI,Malawi,Africa,Africa,Eastern Africa,ldc +MYS,Malaysia,Asia and developing Pacific,South-East Asia and developing Pacific,South-East Asia,developing +MDV,Maldives,Asia and developing Pacific,Southern Asia,Rest of Southern Asia,developing +MLI,Mali,Africa,Africa,Western Africa,ldc +MLT,Malta,Developed Countries,Europe,Southern and eastern Europe,developed +MHL,Marshall Islands,Asia and developing Pacific,South-East Asia and developing Pacific,Developing Pacific,developing +MTQ,Martinique,Latin America and Caribbean,Latin America and Caribbean,Caribbean,developing +MRT,Mauritania,Africa,Africa,Western Africa,ldc +MUS,Mauritius,Africa,Africa,Eastern Africa,developing +MYT,Mayotte,Africa,Africa,Eastern Africa,developing +MEX,Mexico,Latin America and Caribbean,Latin America and Caribbean,Meso America,developing +FSM,"Micronesia, Fed. Sts.",Asia and developing Pacific,South-East Asia and developing Pacific,Developing Pacific,developing +MDA,Moldova,Eastern Europe and West-Central Asia,Eurasia,Eurasia,developed +MCO,Monaco,Developed Countries,Europe,Northern and western Europe,developed +MNG,Mongolia,Asia and developing Pacific,Eastern Asia,Eastern Asia,developing +MNE,Montenegro,Developed Countries,Europe,Southern and eastern Europe,developed +MSR,Montserrat,Latin America and Caribbean,Latin America and Caribbean,Caribbean,developing +MAR,Morocco,Africa,Africa,North Africa,developing +MOZ,Mozambique,Africa,Africa,Eastern Africa,ldc +MMR,Myanmar,Asia and developing Pacific,South-East Asia and developing Pacific,South-East Asia,ldc +NAM,Namibia,Africa,Africa,Southern and middle Africa,developing +NRU,Nauru,Asia and developing Pacific,South-East Asia and developing Pacific,Developing Pacific,developing +NPL,Nepal,Asia and developing Pacific,Southern Asia,Rest of Southern Asia,ldc +NLD,Netherlands,Developed Countries,Europe,Northern and western Europe,developed +NCL,New Caledonia,Asia and developing Pacific,South-East Asia and developing Pacific,Developing Pacific,developing +NZL,New Zealand,Developed Countries,Asia-Pacific Developed,Australia & New Zealand,developed +NIC,Nicaragua,Latin America and Caribbean,Latin America and Caribbean,Meso America,developing +NER,Niger,Africa,Africa,Western Africa,ldc +NGA,Nigeria,Africa,Africa,Western Africa,developing +NIU,Niue,Asia and developing Pacific,South-East Asia and developing Pacific,Developing Pacific,developing +NFK,Norfolk Island,Developed Countries,Asia-Pacific Developed,Asia-Pacific Developed (others),developed +MNP,Northern Mariana Islands,Asia and developing Pacific,South-East Asia and developing Pacific,Developing Pacific,developing +NOR,Norway,Developed Countries,Europe,Northern and western Europe,developed +OMN,Oman,Middle East,Middle East,Middle East,developing +PAK,Pakistan,Asia and developing Pacific,Southern Asia,Rest of Southern Asia,developing +PLW,Palau,Asia and developing Pacific,South-East Asia and developing Pacific,Developing Pacific,developing +PAN,Panama,Latin America and Caribbean,Latin America and Caribbean,Meso America,developing +PNG,Papua New Guinea,Asia and developing Pacific,South-East Asia and developing Pacific,Developing Pacific,developing +PRY,Paraguay,Latin America and Caribbean,Latin America and Caribbean,South America,developing +PER,Peru,Latin America and Caribbean,Latin America and Caribbean,South America,developing +PHL,Philippines,Asia and developing Pacific,South-East Asia and developing Pacific,South-East Asia,developing +PCN,Pitcairn,Asia and developing Pacific,South-East Asia and developing Pacific,Developing Pacific,developing +POL,Poland,Developed Countries,Europe,Southern and eastern Europe,developed +PRT,Portugal,Developed Countries,Europe,Southern and eastern Europe,developed +PRI,Puerto Rico,Latin America and Caribbean,Latin America and Caribbean,Caribbean,developing +QAT,Qatar,Middle East,Middle East,Middle East,developing +REU,Réunion,Africa,Africa,Eastern Africa,developing +ROU,Romania,Developed Countries,Europe,Southern and eastern Europe,developed +RUS,Russian Federation,Eastern Europe and West-Central Asia,Eurasia,Eurasia,developed +RWA,Rwanda,Africa,Africa,Eastern Africa,ldc +BLM,Saint Barthélemy,Latin America and Caribbean,Latin America and Caribbean,Caribbean,developing +SHN,"Saint Helena, Ascension and Tristan da Cunha",Africa,Africa,Western Africa,developing +SPM,Saint Pierre and Miquelon,Developed Countries,North America,"Greenland, Bermuda + others",developed +WSM,Samoa,Asia and developing Pacific,South-East Asia and developing Pacific,Developing Pacific,developing +SMR,San Marino,Developed Countries,Europe,Southern and eastern Europe,developed +STP,São Tomé and Principe,Africa,Africa,Southern and middle Africa,ldc +SAU,Saudi Arabia,Middle East,Middle East,Middle East,developing +SEN,Senegal,Africa,Africa,Western Africa,ldc +SRB,Serbia,Developed Countries,Europe,Southern and eastern Europe,developed +SYC,Seychelles,Africa,Africa,Eastern Africa,developing +SLE,Sierra Leone,Africa,Africa,Western Africa,ldc +SGP,Singapore,Asia and developing Pacific,South-East Asia and developing Pacific,South-East Asia,developing +SXM,Sint Maarten (Dutch part),Latin America and Caribbean,Latin America and Caribbean,Caribbean,developing +SVK,Slovak Republic,Developed Countries,Europe,Southern and eastern Europe,developed +SVN,Slovenia,Developed Countries,Europe,Southern and eastern Europe,developed +SLB,Solomon Islands,Asia and developing Pacific,South-East Asia and developing Pacific,Developing Pacific,ldc +SOM,Somalia,Africa,Africa,Eastern Africa,ldc +ZAF,South Africa,Africa,Africa,Southern and middle Africa,developing +SGS,South Georgia and the South Sandwich Islands,Latin America and Caribbean,Latin America and Caribbean,South America,developing +SSD,South Sudan,Africa,Africa,Eastern Africa,ldc +ESP,Spain,Developed Countries,Europe,Southern and eastern Europe,developed +LKA,Sri Lanka,Asia and developing Pacific,Southern Asia,India & Sri Lanka,developing +KNA,St. Kitts and Nevis,Latin America and Caribbean,Latin America and Caribbean,Caribbean,developing +LCA,St. Lucia,Latin America and Caribbean,Latin America and Caribbean,Caribbean,developing +MAF,St. Martin (French part),Latin America and Caribbean,Latin America and Caribbean,Caribbean,developing +VCT,St. Vincent and the Grenadines,Latin America and Caribbean,Latin America and Caribbean,Caribbean,developing +SDN,Sudan,Africa,Africa,North Africa,ldc +SUR,Suriname,Latin America and Caribbean,Latin America and Caribbean,South America,developing +SJM,Svalbard and Jan Mayen,Developed Countries,Europe,Northern and western Europe,developed +SWZ,Swaziland,Africa,Africa,Southern and middle Africa,developing +SWE,Sweden,Developed Countries,Europe,Northern and western Europe,developed +CHE,Switzerland,Developed Countries,Europe,Northern and western Europe,developed +SYR,Syrian Arab Republic,Middle East,Middle East,Middle East,developing +TWN,"Taiwan, China",Asia and developing Pacific,Eastern Asia,Eastern Asia,developing +TJK,Tajikistan,Eastern Europe and West-Central Asia,Eurasia,Eurasia,developing +TZA,Tanzania,Africa,Africa,Eastern Africa,ldc +THA,Thailand,Asia and developing Pacific,South-East Asia and developing Pacific,South-East Asia,developing +TLS,Timor-Leste,Asia and developing Pacific,South-East Asia and developing Pacific,South-East Asia,ldc +TGO,Togo,Africa,Africa,Western Africa,ldc +TKL,Tokelau,Asia and developing Pacific,South-East Asia and developing Pacific,Developing Pacific,developing +TON,Tonga,Asia and developing Pacific,South-East Asia and developing Pacific,Developing Pacific,developing +TTO,Trinidad and Tobago,Latin America and Caribbean,Latin America and Caribbean,Caribbean,developing +TUN,Tunisia,Africa,Africa,North Africa,developing +TUR,Turkey,Developed Countries,Europe,Southern and eastern Europe,developed +TKM,Turkmenistan,Eastern Europe and West-Central Asia,Eurasia,Eurasia,developing +TCA,Turks and Caicos Islands,Latin America and Caribbean,Latin America and Caribbean,Caribbean,developing +TUV,Tuvalu,Asia and developing Pacific,South-East Asia and developing Pacific,Developing Pacific,ldc +UGA,Uganda,Africa,Africa,Eastern Africa,ldc +UKR,Ukraine,Developed Countries,Europe,Southern and eastern Europe,developed +ARE,United Arab Emirates,Middle East,Middle East,Middle East,developing +GBR,United Kingdom,Developed Countries,Europe,Northern and western Europe,developed +USA,United States,Developed Countries,North America,USA & Canada,developed +UMI,United States Minor Outlying Islands,Asia and developing Pacific,South-East Asia and developing Pacific,Developing Pacific,developing +URY,Uruguay,Latin America and Caribbean,Latin America and Caribbean,South America,developing +UZB,Uzbekistan,Eastern Europe and West-Central Asia,Eurasia,Eurasia,developing +VUT,Vanuatu,Asia and developing Pacific,South-East Asia and developing Pacific,Developing Pacific,ldc +VEN,"Venezuela, RB",Latin America and Caribbean,Latin America and Caribbean,South America,developing +VNM,Vietnam,Asia and developing Pacific,South-East Asia and developing Pacific,South-East Asia,developing +VIR,Virgin Islands (U.S.),Latin America and Caribbean,Latin America and Caribbean,Caribbean,developing +WLF,Wallis and Futuna,Asia and developing Pacific,South-East Asia and developing Pacific,Developing Pacific,developing +PSE,West Bank and Gaza,Middle East,Middle East,Middle East,developing +ESH,Western Sahara,Africa,Africa,North Africa,developing +YEM,"Yemen, Rep.",Middle East,Middle East,Middle East,ldc +ZMB,Zambia,Africa,Africa,Eastern Africa,ldc +ZWE,Zimbabwe,Africa,Africa,Eastern Africa,developing +ANT,Netherlands Antilles,Latin America and Caribbean,Latin America and Caribbean,Caribbean,developing +SCG,Serbia and Montenegro,Eastern Europe and West-Central Asia,Eurasia,Eurasia,developed From a59b0a77961d6f3ea347161f955b01ba4cc2c9e6 Mon Sep 17 00:00:00 2001 From: MichaelTiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> Date: Sun, 13 Feb 2022 23:55:08 -0500 Subject: [PATCH 067/345] Integrate recently merged projections code into unit-aware code This merge was not supposed to be that hard (one feature per branch they say), but there were many changes that overlapped and a few underlying bugs that needed to be squashed. At this point, things that failed before (due to bad interactions with unittest) still give problems, but all the unittests plus the new projection tests basically work as well as they did before. Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- ITR/data/base_providers.py | 81 +- ITR/data/data_providers.py | 2 +- ITR/data/excel.py | 124 +- ITR/data/osc_units.py | 2 +- ITR/interfaces.py | 106 +- test/inputs/json/fundamental_data.json | 452 +- test/inputs/json/test_project_companies.json | 16572 +++++------ test/inputs/json/test_project_reference.json | 25518 ++++++++--------- test/test_e2e.py | 60 +- test/test_excel_provider.py | 5 +- test/test_interfaces.py | 10 +- test/test_projection.py | 10 + 12 files changed, 21474 insertions(+), 21468 deletions(-) diff --git a/ITR/data/base_providers.py b/ITR/data/base_providers.py index 23692390..776d1164 100644 --- a/ITR/data/base_providers.py +++ b/ITR/data/base_providers.py @@ -11,7 +11,7 @@ IntensityBenchmarkDataProvider from ITR.interfaces import ICompanyData, EScope, IProductionBenchmarkScopes, IEmissionIntensityBenchmarkScopes, \ - IBenchmark, ICompanyProjections, ICompanyProjectionsScopes, ICompanyProjection, IHistoricEIScopes, \ + IBenchmark, IProjection, ICompanyEIProjections, ICompanyEIProjectionsScopes, ICompanyProjection, IHistoricEIScopes, \ IHistoricEmissionsScopes, IProductionRealization @@ -57,7 +57,7 @@ def _convert_projections_to_series(self, company: ICompanyData, feature: str, """ units = company.dict()[self.column_config.PRODUCTION_METRIC]['units'] return pd.Series( - {r['year']: r['value'] for reports in company.dict()[feature][str(scope)]['reports'] for r in reports['projections'] }, + {p['year']: p['value'] for p in company.dict()[feature][str(scope)]['projections'] }, name=company.company_id, dtype=f'pint[t CO2/{units}]') # ??? Why prefer TRAJECTORY over TARGET? @@ -118,15 +118,15 @@ def get_company_fundamentals(self, company_ids: List[str]) -> pd.DataFrame: :return: A pandas DataFrame with company fundamental info per company (company_id is a column) """ return pd.DataFrame.from_records( - [ICompanyData.parse_obj(c).dict() for c in self.get_company_data(company_ids)], - exclude=['projected_ei_targets', 'projected_ei_trajectories']).set_index(self.column_config.COMPANY_ID) + [ICompanyData.parse_obj(c.dict()).dict() for c in self.get_company_data(company_ids)], + exclude=['projected_targets', 'projected_intensities', 'historic_data']).set_index(self.column_config.COMPANY_ID) def get_company_projected_trajectories(self, company_ids: List[str]) -> pd.DataFrame: """ :param company_ids: A list of company IDs :return: A pandas DataFrame with projected intensity trajectories per company, indexed by company_id """ - trajectory_list = [self._convert_projections_to_series(c, self.column_config.PROJECTED_TRAJECTORIES) for c in + trajectory_list = [self._convert_projections_to_series(c, self.column_config.PROJECTED_EI) for c in self.get_company_data(company_ids)] if trajectory_list: return pd.DataFrame(trajectory_list) @@ -277,7 +277,7 @@ def _convert_benchmark_to_series(self, benchmark: IBenchmark) -> pd.Series: :param scope: a scope :return: pd.Series """ - return pd.Series({r.year: r.value for r in benchmark.projections}, name=(benchmark.region, benchmark.sector), dtype=f'pint[{benchmark.benchmark_metric.units}]') + return pd.Series({p.year: p.value for p in benchmark.projections}, name=(benchmark.region, benchmark.sector), dtype=f'pint[{benchmark.benchmark_metric.units}]') def _get_projected_intensities(self, scope: EScope = EScope.S1S2) -> pd.DataFrame: """ @@ -332,7 +332,8 @@ def project_intensities(self, companies: List[ICompanyData]) -> List[ICompanyDat historic_years = [column for column in historic_data.columns if type(column) == int] projection_years = range(max(historic_years), ProjectionConfig.TARGET_YEAR) - + # historic_intensities.loc[historic_intensities.index.get_level_values('company_id')=='US6293775085'] + historic_intensities = historic_data[historic_years] standardized_intensities = self._standardize(historic_intensities) intensity_trends = self._get_trends(standardized_intensities) @@ -344,6 +345,8 @@ def project_intensities(self, companies: List[ICompanyData]) -> List[ICompanyDat def _extract_historic_data(self, companies: List[ICompanyData]) -> pd.DataFrame: data = [] for company in companies: + if not company.historic_data: + continue if company.historic_data.productions: data.append(self._historic_productions_to_dict(company.company_id, company.historic_data.productions)) if company.historic_data.emissions: @@ -351,11 +354,14 @@ def _extract_historic_data(self, companies: List[ICompanyData]) -> pd.DataFrame: if company.historic_data.emission_intensities: data.extend(self._historic_emission_intensities_to_dicts(company.company_id, company.historic_data.emission_intensities)) + if not data: + print("No historic data anywhere") + print(companies) return pd.DataFrame.from_records(data).set_index( [ColumnsConfig.COMPANY_ID, ColumnsConfig.VARIABLE, ColumnsConfig.SCOPE]) def _historic_productions_to_dict(self, id: str, productions: List[IProductionRealization]) -> Dict[str, str]: - prods = {prod.dict()['year']: prod.dict()['value'] for prod in productions} + prods = {prod['year']: prod['value'] for prod in productions} return {ColumnsConfig.COMPANY_ID: id, ColumnsConfig.VARIABLE: VariablesConfig.PRODUCTIONS, ColumnsConfig.SCOPE: 'Production', **prods} @@ -414,41 +420,74 @@ def _compute_missing_historic_emission_intensities(self, companies, historic_dat def _add_projections_to_companies(self, companies: List[ICompanyData], extrapolations: pd.DataFrame): for company in companies: results = extrapolations.loc[(company.company_id, VariablesConfig.EMISSION_INTENSITIES, 'S1S2')] - projections = [ICompanyProjection(year=year, value=value) for year, value in results.items() - if year >= TemperatureScoreConfig.CONTROLS_CONFIG.base_year] - company.projected_intensities = ICompanyProjectionsScopes( - S1S2=ICompanyProjections(projections=projections) + if company.production_metric: + # These are already stored in the correct compact format + units = f"t CO2/{company.production_metric.units}" + elif company.sector=='Steel': + units = "t CO2/Fe_ton" + elif company.sector=='Electricity Utilities': + units = "Mt CO2/GJ" + try: + projections = [IProjection(year=int(year), value=Q_(value, units)) for year, value in results.items() + if year >= TemperatureScoreConfig.CONTROLS_CONFIG.base_year] + except: + pass + company.projected_intensities = ICompanyEIProjectionsScopes( + S1S2=ICompanyEIProjections(projections=projections) ) def _standardize(self, intensities: pd.DataFrame) -> pd.DataFrame: + # When columns are years and rows are all different intensity types, we cannot winsorize + # Transpose the dataframe, winsorize the columns (which are all coherent because they belong to a single variable/company), then transpose again + intensities = intensities.T + for col in intensities.columns: + s = intensities[col] + if s.notnull().any(): + try: + intensities[col] = s.astype(f"pint[{s.loc[s.first_valid_index()].u:~P}]") + except: + # Don't remember why this was needed, but theory is "no harm, no foul" + pass winsorized_intensities: pd.DataFrame = self._winsorize(intensities) standardized_intensities: pd.DataFrame = self._interpolate(winsorized_intensities) - return standardized_intensities + return standardized_intensities.T def _winsorize(self, historic_intensities: pd.DataFrame) -> pd.DataFrame: winsorized: pd.DataFrame = historic_intensities.clip( - lower=historic_intensities.quantile(q=ProjectionConfig.LOWER_PERCENTILE, axis='columns', numeric_only=True), - upper=historic_intensities.quantile(q=ProjectionConfig.UPPER_PERCENTILE, axis='columns', numeric_only=True), - axis='index' + lower=historic_intensities.quantile(q=ProjectionConfig.LOWER_PERCENTILE, axis='index', numeric_only=True), + upper=historic_intensities.quantile(q=ProjectionConfig.UPPER_PERCENTILE, axis='index', numeric_only=True), + axis='columns' ) return winsorized def _interpolate(self, historic_intensities: pd.DataFrame) -> pd.DataFrame: # Interpolate NaNs surrounded by values, and extrapolate NaNs with last known value - interpolated = historic_intensities.interpolate(method='linear', axis='columns', inplace=False, - limit_direction='forward') + interpolated = historic_intensities.copy() + for col in interpolated.columns: + if interpolated[col].isnull().all(): + continue + qty = interpolated[col].values.quantity + s = pd.Series(data=qty.m, index=interpolated.index) + interpolated[col] = pd.Series(PA_(s.interpolate(method='linear', inplace=False, limit_direction='forward'), f"{qty.u:~P}"), index=interpolated.index) return interpolated def _get_trends(self, intensities: pd.DataFrame): # Compute year-on-year growth ratios of emission intensities - ratios: pd.DataFrame = intensities.rolling(window=2, axis='columns', closed='right') \ + + # Transpose so we can work with homogeneous units in columns. This means rows are years. + # pd.Series(intensities.iloc[:,0].values.quantity.m).rolling(window=2, axis='index', closed='right').apply(func=self._year_on_year_ratio, raw=True) + intensities = intensities.T + for col in intensities.columns: + # ratios are dimensionless, so get rid of units, which confuse rolling/apply. Some columns are NaN-only + intensities[col] = intensities[col].map(lambda x: x if isinstance(x, float) else x.m) + ratios: pd.DataFrame = intensities.rolling(window=2, axis='index', closed='right') \ .apply(func=self._year_on_year_ratio, raw=True) - trends: pd.DataFrame = ratios.median(axis='columns', skipna=True).clip( + trends: pd.DataFrame = ratios.median(axis='index', skipna=True).clip( lower=ProjectionConfig.LOWER_DELTA, upper=ProjectionConfig.UPPER_DELTA, ) - return trends + return trends.T def _extrapolate(self, trends: pd.DataFrame, projection_years: range, historic_data: pd.DataFrame) -> pd.DataFrame: projected_intensities = historic_data.copy() diff --git a/ITR/data/data_providers.py b/ITR/data/data_providers.py index 24f69f57..c3b8ffb8 100644 --- a/ITR/data/data_providers.py +++ b/ITR/data/data_providers.py @@ -6,7 +6,7 @@ from ITR.configs import ProjectionConfig, TabsConfig, VariablesConfig, ColumnsConfig, TemperatureScoreConfig from ITR.interfaces import ICompanyData, EScope, IHistoricData, IProductionRealization, IHistoricEmissionsScopes, \ - IHistoricEIScopes, ICompanyProjection, ICompanyProjectionsScopes, ICompanyProjections + IHistoricEIScopes, ICompanyEIProjection, ICompanyEIProjectionsScopes, ICompanyEIProjections import pint from pint import Quantity diff --git a/ITR/data/excel.py b/ITR/data/excel.py index e9025ef0..f3f8285e 100644 --- a/ITR/data/excel.py +++ b/ITR/data/excel.py @@ -15,13 +15,11 @@ from ITR.data.base_providers import BaseCompanyDataProvider, BaseProviderProductionBenchmark, \ BaseProviderIntensityBenchmark from ITR.configs import ColumnsConfig, TemperatureScoreConfig, SectorsConfig, VariablesConfig, TabsConfig -from ITR.interfaces import ICompanyData, ICompanyProjection, EScope, IEmissionIntensityBenchmarkScopes, \ - IProductionBenchmarkScopes, IBenchmark, IBenchmarks, IBenchmarkProjection, IHistoricEmissionsScopes, \ - IProductionRealization, IHistoricEIScopes, IHistoricData, IEmissionRealization, IEIRealization +from ITR.interfaces import ICompanyData, ICompanyEIProjection, EScope, IEmissionIntensityBenchmarkScopes, \ + IProductionBenchmarkScopes, IBenchmark, IBenchmarks, IHistoricEmissionsScopes, \ + IProductionRealization, IHistoricEIScopes, IHistoricData, IEmissionRealization, IEIRealization, IProjection import logging - -from ITR.interfaces import ICompanyProjections, ICompanyProjections import inspect # Excel spreadsheets don't have units elaborated, so we translate sectors to units @@ -141,8 +139,9 @@ class ExcelProviderCompany(BaseCompanyDataProvider): def __init__(self, excel_path: str, column_config: Type[ColumnsConfig] = ColumnsConfig, tempscore_config: Type[TemperatureScoreConfig] = TemperatureScoreConfig): - super().__init__(None, column_config, tempscore_config) - self._companies = self._convert_excel_data_to_ICompanyData(excel_path) + self._companies = self._convert_from_excel_data(excel_path) + self.historic_years = None + super().__init__(self._companies, column_config, tempscore_config) def _check_company_data(self, df: pd.DataFrame) -> None: """ @@ -166,23 +165,27 @@ def _convert_from_excel_data(self, excel_path: str) -> List[ICompanyData]: df_company_data = pd.read_excel(excel_path, sheet_name=None, skiprows=0) self._check_company_data(df_company_data) - df_fundamentals = df_company_data[TabsConfig.FUNDAMENTAL].set_index(self.column_config.COMPANY_ID, drop=False) - df_fundamentals[self.column_config.PRODUCTION_METRIC] = df_fundamentals[self.column_config.SECTOR].map(sector_to_production_metric) - company_ids = df_fundamentals[self.column_config.COMPANY_ID].unique() - df_targets = self._get_projection(company_ids, df_company_data[TabsConfig.PROJECTED_TARGET], df_fundamentals[self.column_config.PRODUCTION_METRIC]) + df_fundamentals = df_company_data[TabsConfig.FUNDAMENTAL].set_index(ColumnsConfig.COMPANY_ID, drop=False) + df_fundamentals[ColumnsConfig.PRODUCTION_METRIC] = df_fundamentals[ColumnsConfig.SECTOR].map(sector_to_production_metric) + company_ids = df_fundamentals[ColumnsConfig.COMPANY_ID].unique() + df_targets = self._get_projection(company_ids, df_company_data[TabsConfig.PROJECTED_TARGET], df_fundamentals[ColumnsConfig.PRODUCTION_METRIC]) if TabsConfig.PROJECTED_EI in df_company_data.keys(): - df_ei = self._get_projection(company_ids, df_company_data[TabsConfig.PROJECTED_EI], df_fundamentals[self.column_config.PRODUCTION_METRIC])) + df_ei = self._get_projection(company_ids, df_company_data[TabsConfig.PROJECTED_EI], df_fundamentals[ColumnsConfig.PRODUCTION_METRIC]) else: df_ei = None if TabsConfig.HISTORIC_DATA in df_company_data.keys(): - df_historic = self._get_historic_data(company_ids, df_company_data[TabsConfig.HISTORIC_DATA], df_fundamentals[self.column_config.PRODUCTION_METRIC]) + df_historic = df_company_data[TabsConfig.HISTORIC_DATA].set_index(ColumnsConfig.COMPANY_ID, drop=False) + df_historic = df_historic.merge(df_fundamentals[ColumnsConfig.PRODUCTION_METRIC].rename('units'), left_index=True, right_index=True) + df_historic.loc[df_historic.variable=='Emissions', 'units'] = 't CO2' + df_historic.loc[df_historic.variable=='Emission Intensities', 'units'] = 't CO2/' + df_historic.loc[df_historic.variable=='Emission Intensities', 'units'] + df_historic = self._get_historic_data(company_ids, df_historic) else: df_historic = None return self._company_df_to_model(df_fundamentals, df_targets, df_ei, df_historic) def _convert_series_to_IProjections(self, projections: pd.Series) -> [IProjection]: """ - Converts a Pandas Series in a list of ICompanyProjections + Converts a Pandas Series to a list of IProjection :param projections: Pandas Series with years as indices :return: List of IProjection objects """ @@ -218,32 +221,31 @@ def _company_df_to_model(self, df_fundamentals: pd.DataFrame, df_targets: pd.Dat # company_data.update({ColumnsConfig.PROJECTED_TARGETS: {'S1S2': {'projections': df_targets}}}) # company_data.update({ColumnsConfig.PROJECTED_EI: {'S1S2': {'projections': df_ei}}}) - company_id = company_data[self.column_config.COMPANY_ID] - units = sector_to_production_metric[company_data[self.column_config.SECTOR]] - company_data[self.column_config.PRODUCTION_METRIC] = {'units': units} + company_id = company_data[ColumnsConfig.COMPANY_ID] + units = sector_to_production_metric[company_data[ColumnsConfig.SECTOR]] + company_data[ColumnsConfig.PRODUCTION_METRIC] = {'units': units} # pint automatically handles any unit conversions required - v = df_fundamentals[df_fundamentals[self.column_config.COMPANY_ID]==company_id][self.column_config.GHG_SCOPE12].squeeze() - company_data[self.column_config.GHG_SCOPE12] = None if v is None else Q_(v, ureg(units)) - v = df_fundamentals[df_fundamentals[self.column_config.COMPANY_ID]==company_id][self.column_config.GHG_SCOPE3].squeeze() - company_data[self.column_config.GHG_SCOPE3] = None if v is None else Q_(v, ureg(units)) - company_data[self.column_config.PROJECTED_TARGETS] = {'S1S2': { 'reports': [ { - 'company_metric': {'units': units}, - 'projections': self._convert_series_to_IProjections (df_targets.loc[company_id, :])}]}} - company_data[self.column_config.PROJECTED_EI] = {'S1S2': { 'reports': [ { - 'company_metric': {'units': units}, - 'projections': self._convert_series_to_IProjections (df_trajectories.loc[company_id, :])}]}} + v = df_fundamentals[df_fundamentals[ColumnsConfig.COMPANY_ID]==company_id][ColumnsConfig.GHG_SCOPE12].squeeze() + company_data[ColumnsConfig.GHG_SCOPE12] = Q_(v or np.nan, ureg(units)) + v = df_fundamentals[df_fundamentals[ColumnsConfig.COMPANY_ID]==company_id][ColumnsConfig.GHG_SCOPE3].squeeze() + company_data[ColumnsConfig.GHG_SCOPE3] = Q_(v or np.nan, ureg(units)) + company_data[ColumnsConfig.PROJECTED_TARGETS] = {'S1S2': { + 'projections': self._convert_series_to_IProjections (df_targets.loc[company_id, :])}} + company_data[ColumnsConfig.PROJECTED_EI] = {'S1S2': { + 'projections': self._convert_series_to_IProjections (df_ei.loc[company_id, :])}} if df_historic is not None: - company_data[TabsConfig.HISTORIC_DATA] = df_historic.loc[company_data[ColumnsConfig.COMPANY_ID], :] + company_data[TabsConfig.HISTORIC_DATA] = self._convert_historic_data( + df_historic.loc[company_data[ColumnsConfig.COMPANY_ID], :]).dict() + else: + company_data[TabsConfig.HISTORIC_DATA] = None - # The call to parse_obj essentially says "I put it all together manually, please validate that it's correct", - # as opposed to using constructors to build the object validly in the first place. model_companies.append(ICompanyData.parse_obj(company_data)) except ValidationError as e: logger.warning( f"EX {e}: (one of) the input(s) of company %s is invalid and will be skipped" % company_data[ - self.column_config.COMPANY_NAME]) + ColumnsConfig.COMPANY_NAME]) break pass return model_companies @@ -266,32 +268,53 @@ def _get_projection(self, company_ids: List[str], projections: pd.DataFrame, pro assert all(company_id in projections.index for company_id in company_ids), \ f"company ids missing in provided projections" - projections = projections.loc[company_ids, range(self.temp_config.CONTROLS_CONFIG.base_year, - self.temp_config.CONTROLS_CONFIG.target_end_year + 1)] + projections = projections.loc[company_ids, range(TemperatureScoreConfig.CONTROLS_CONFIG.base_year, + TemperatureScoreConfig.CONTROLS_CONFIG.target_end_year + 1)] # Due to bug (https://github.com/pandas-dev/pandas/issues/20824) in Pandas where NaN are treated as zero workaround below: projected_emissions_s1s2 = projections.groupby(level=0, sort=False).agg(ExcelProviderCompany._np_sum) # add scope 1 and 2 - projected_emissions_s1s2 = projected_ei_s1s2.apply(lambda x: x.astype(f'pint[t CO2/({production_metric[x.name]})]'), axis=1) + projected_emissions_s1s2 = projected_emissions_s1s2.apply(lambda x: x.astype(f'pint[t CO2/({production_metric[x.name]})]'), axis=1) return projected_emissions_s1s2 def _get_historic_data(self, company_ids: List[str], historic_data: pd.DataFrame) -> pd.DataFrame: - historic_data = historic_data.reset_index().drop(columns=['index']).set_index(ColumnsConfig.COMPANY_ID) + """ + get the historic data for list of companies + :param company_ids: list of company ids + :param historic_data: Dataframe Productions, Emissions, and Emission Intensities mixed together + :return: historic data with unit attributes added on a per-element basis + """ + # We don't need this reset/set index dance because we set the index to COMPANY_ID to get units sorted + # historic_data = historic_data.reset_index().drop(columns=['index']).set_index(ColumnsConfig.COMPANY_ID) + self.historic_years = [column for column in historic_data.columns if type(column) == int] missing_ids = [company_id for company_id in company_ids if company_id not in historic_data.index] assert not missing_ids, f"Company ids missing in provided historic data: {missing_ids}" - return historic_data.loc[company_ids, :] + # There has got to be a better way to do this... + historic_data = ( + historic_data.loc[company_ids, :] + .apply(lambda x: pd.Series({col:x[col] for col in x.index if type(col)!=int} + | {y:f"{x[y]} {x['units']}" for y in self.historic_years}, + index=x.index), + axis=1) + ) + return historic_data - def _convert_historic_data(self, historic: pd.DataFrame, convert_unit: bool) -> IHistoricData: + def _convert_historic_data(self, historic: pd.DataFrame) -> IHistoricData: + """ + :param historic: historic production, emission and emission intensity data for a company + :return: IHistoricData Pydantic object + """ productions = historic.loc[historic[ColumnsConfig.VARIABLE] == VariablesConfig.PRODUCTIONS] emissions = historic.loc[historic[ColumnsConfig.VARIABLE] == VariablesConfig.EMISSIONS] emission_intensities = historic.loc[historic[ColumnsConfig.VARIABLE] == VariablesConfig.EMISSION_INTENSITIES] return IHistoricData( - productions=self._convert_to_historic_productions(productions, convert_unit), + productions=self._convert_to_historic_productions(productions), emissions=self._convert_to_historic_emissions(emissions), - emission_intensities=self._convert_to_historic_emission_intensities(emission_intensities, convert_unit) + emission_intensities=self._convert_to_historic_emission_intensities(emission_intensities) ) + # Note that for the three following functions, we pd.Series.squeeze() the results because it's just one year / one company def _convert_to_historic_emissions(self, emissions: pd.DataFrame) -> Optional[IHistoricEmissionsScopes]: """ :param historic: historic production, emission and emission intensity data for a company @@ -306,46 +329,37 @@ def _convert_to_historic_emissions(self, emissions: pd.DataFrame) -> Optional[IH results = emissions.loc[emissions[ColumnsConfig.SCOPE] == scope] emission_scopes[scope] = [] \ if results.empty \ - else [IEmissionRealization(year=year, value=results[year]) for year in self.historic_years] + else [IEmissionRealization(year=year, value=Q_(*results[year].squeeze().split(' ', 1))) for year in self.historic_years] return IHistoricEmissionsScopes(**emission_scopes) - def _convert_to_historic_productions(self, productions: pd.DataFrame, convert_unit: bool) \ + def _convert_to_historic_productions(self, productions: pd.DataFrame) \ -> Optional[List[IProductionRealization]]: """ :param historic: historic production, emission and emission intensity data for a company - :param convert_unit: whether or not to convert the units of measure :return: A list containing historic productions, or None if no data are provided """ if productions.empty: return None - if convert_unit: - converted = productions[self.historic_years] * self.ENERGY_UNIT_CONVERSION_FACTOR - production_realizations = \ - [IProductionRealization(year=year, value=converted[year]) for year in self.historic_years] - else: - production_realizations = \ - [IProductionRealization(year=year, value=productions[year]) for year in self.historic_years] + production_realizations = \ + [IProductionRealization(year=year, value=Q_(*productions[year].squeeze().split(' ', 1))) for year in self.historic_years] return production_realizations - def _convert_to_historic_emission_intensities(self, intensities: pd.DataFrame, convert_unit: bool) \ + def _convert_to_historic_emission_intensities(self, intensities: pd.DataFrame) \ -> Optional[IHistoricEIScopes]: """ :param historic: historic production, emission and emission intensity data for a company - :param convert_unit: whether or not to convert the units of measure :return: A list of historic emission intensities per scope, or None if no data are provided """ if intensities.empty: return None intensities = intensities.copy() - if convert_unit: - intensities[self.historic_years] *= self.ENERGY_UNIT_CONVERSION_FACTOR - intensity_scopes = {} + for scope in EScope.get_scopes(): results = intensities.loc[intensities[ColumnsConfig.SCOPE] == scope] intensity_scopes[scope] = [] \ if results.empty \ - else [IEIRealization(year=year, value=results[year]) for year in self.historic_years] + else [IEIRealization(year=year, value=Q_(*results[year].squeeze().split(' ', 1))) for year in self.historic_years] return IHistoricEIScopes(**intensity_scopes) diff --git a/ITR/data/osc_units.py b/ITR/data/osc_units.py index 474f76e4..38dc98c2 100644 --- a/ITR/data/osc_units.py +++ b/ITR/data/osc_units.py @@ -12,7 +12,7 @@ PA_ = PintArray ureg.define("CO2e = CO2 = CO2eq = CO2_eq") -ureg.define("Fe_ton = [produced_ton] = Fe_") +ureg.define("Fe_ton = [produced_ton]") # These are for later ureg.define('fraction = [] = frac') diff --git a/ITR/interfaces.py b/ITR/interfaces.py index 33c174e6..707a0eb2 100644 --- a/ITR/interfaces.py +++ b/ITR/interfaces.py @@ -1,11 +1,12 @@ from enum import Enum from typing import Optional, Dict, List, Literal, Union from typing_extensions import Annotated -from pydantic import BaseModel, Field, ValidationError +from pydantic import BaseModel, Field, ValidationError, parse_obj_as from pint import Quantity from ITR.data.osc_units import ureg, Q_ import numpy as np +import pandas as pd class AggregationContribution(BaseModel): company_name: str @@ -122,7 +123,7 @@ def UScopes_to_IScopes(uscopes): class PowerGenerationWh(BaseModel): units: Literal['MWh'] class PowerGenerationJ(BaseModel): - units: Literal['GJ'] + units: Union[Literal['GJ'],Literal['gigajoule']] PowerGeneration = Annotated[Union[PowerGenerationWh, PowerGenerationJ], Field(discriminator='units')] @@ -159,7 +160,7 @@ class UBenchmark(BaseModel): def __getitem__(self, item): return getattr(self, item) -# I means we have quantified values +# I means we have quantified values. Normally we'd need to __init__ this, but it's always handled in UProjection_to_IProjection class IProjection(PintModel): year: int value: Optional[Quantity] @@ -214,43 +215,56 @@ class ICompanyProjection(BaseModel): company_metric: OSC_Metric projections: List[IProjection] - def __init__(self, company_metric, projections, *args, **kwargs): - super().__init__(company_metric=company_metric, - projections=UProjections_to_IProjections(projections, company_metric), + def __init__(self, projections, *args, **kwargs): + super().__init__(projections=UProjections_to_IProjections(projections, company_metric), *args, **kwargs) def __getitem__(self, item): return getattr(self, item) -class ICompanyProjections(BaseModel): - reports: List[ICompanyProjection] +class ICompanyEIProjection(PintModel): + year: int + value: Optional[Quantity[EmissionIntensity]] + + def __init__(self, year, value): + super().__init__(year=year, value=pint_ify(value, 't CO2/MWh')) def __getitem__(self, item): return getattr(self, item) -class ICompanyProjectionsScopes(BaseModel): - S1S2: Optional[ICompanyProjections] - S3: Optional[ICompanyProjections] - S1S2S3: Optional[ICompanyProjections] +class ICompanyEIProjections(BaseModel): + projections: List[ICompanyEIProjection] def __getitem__(self, item): return getattr(self, item) -class ICompanyEIProjection(PintModel): - year: int - value: Optional[Quantity['CO2/Wh']] - def __init__(self, year, value): - super().__init__(year=year, value=pint_ify(value, 't CO2/MWh')) +class ICompanyEIProjectionsScopes(BaseModel): + S1S2: Optional[ICompanyEIProjections] + S3: Optional[ICompanyEIProjections] + S1S2S3: Optional[ICompanyEIProjections] def __getitem__(self, item): return getattr(self, item) +class IProductionRealization(PintModel): + year: int + value: Optional[Quantity[ProductionMetric]] + + def __init__(self, year, value=None): + super().__init__(year=year, value=Q_(value) if value else None) + if value is None: + self.value = np.nan + + class IEmissionRealization(PintModel): year: int - value: Optional[Quantity['CO2/Wh']] + value: Optional[Quantity['CO2']] + + def __init__(self, year, value): + super().__init__(year=year, value=pint_ify(value, 't CO2')) class IHistoricEmissionsScopes(PintModel): @@ -263,7 +277,12 @@ class IHistoricEmissionsScopes(PintModel): class IEIRealization(PintModel): year: int - value: Optional[Quantity['CO2/Wh']] + value: Optional[Quantity[EmissionIntensity]] + + def __init__(self, year, value): + super().__init__(year=year, value=Q_(value) if value else None) + if value is None: + self.value = np.nan class IHistoricEIScopes(PintModel): @@ -288,14 +307,14 @@ class ICompanyData(PintModel): sector: str # TODO: make SortableEnums target_probability: float - historic_data: Optional[IHistoricData] = None - projected_targets: Optional[ICompanyProjectionsScopes] = None - projected_intensities: Optional[ICompanyProjectionsScopes] = None + historic_data: Optional[IHistoricData] + projected_targets: Optional[ICompanyEIProjectionsScopes] + projected_intensities: Optional[ICompanyEIProjectionsScopes] country: Optional[str] - production_metric: ProductionMetric - ghg_s1s2: Optional[Quantity] # This seems to be the base year PRODUCTION number, nothing at all to do with any quantity of actual S1S2 emissions - ghg_s3: Optional[Quantity] + production_metric: Optional[ProductionMetric] + ghg_s1s2: Optional[Quantity[ProductionMetric]] # This seems to be the base year PRODUCTION number, nothing at all to do with any quantity of actual S1S2 emissions + ghg_s3: Optional[Quantity[ProductionMetric]] industry_level_1: Optional[str] industry_level_2: Optional[str] @@ -307,15 +326,38 @@ class ICompanyData(PintModel): company_enterprise_value: Optional[float] company_total_assets: Optional[float] company_cash_equivalents: Optional[float] - - def __init__(self, projected_ei_targets, projected_ei_trajectories, - production_metric, ghg_s1s2, ghg_s3, *args, **kwargs): - super().__init__(projected_ei_targets=UScopes_to_IScopes(projected_ei_targets), - projected_ei_trajectories=UScopes_to_IScopes(projected_ei_trajectories), + + # TODO: Do we want to do some sector inferencing here? + def _fixup_historic_productions(self, historic_productions, production_metric): + if historic_productions is None or production_metric is None: + # We have absolutely no production data of any kind...too bad! + return self.historic_data.productions + return UProjections_to_IProjections(historic_productions,production_metric) + + def __init__(self, historic_data=None, projected_targets=None, projected_intensities=None, + production_metric=None, ghg_s1s2=None, ghg_s3=None, *args, **kwargs): + super().__init__(historic_data=historic_data, + projected_targets=projected_targets, + projected_intensities=projected_intensities, production_metric=production_metric, - ghg_s1s2=pint_ify(ghg_s1s2, production_metric), - ghg_s3=pint_ify(ghg_s3, production_metric), *args, **kwargs) + # In-bound parameters are dicts, which are converted to models by __super__ and stored as instance variables + if production_metric is None: + if self.sector=='Electricity Utilities': + # units = 'MWh' if self.region=='North America' else 'GJ' + units = 'GJ' + elif self.sector=='Steel': + units = 'Fe_ton' + else: + error ("no source of production metrics") + self.production_metric = parse_obj_as(ProductionMetric,{'units':units}) + production_metric = {'units':units} + if historic_data: + self.historic_data.productions = self._fixup_historic_productions(historic_data.get('productions',None), production_metric) + if ghg_s1s2: + self.ghg_s1s2=pint_ify(ghg_s1s2, self.production_metric.units) + if ghg_s3: + self.ghg_s3=pint_ify(ghg_s3, self.production_metric.units) class ICompanyAggregates(ICompanyData): diff --git a/test/inputs/json/fundamental_data.json b/test/inputs/json/fundamental_data.json index c523e8b7..0e621f24 100644 --- a/test/inputs/json/fundamental_data.json +++ b/test/inputs/json/fundamental_data.json @@ -4,11 +4,9 @@ "company_id": "US0079031078", "region": "North America", "sector": "Electricity Utilities", - "production_metric": { "units": "MWh"}, "target_probability": 0.428571428571428, - "projected_ei_targets": { - "S1S2": { "reports": [ { - "company_metric": { "units": "t CO2/MWh" }, + "projected_targets": { + "S1S2": { "projections": [ { "year": 2019, @@ -139,13 +137,12 @@ "value": 0.32186333388002936 } ] - } ] }, + }, "S3": null, "S1S2S3": null }, - "projected_ei_trajectories": { - "S1S2": { "reports": [ { - "company_metric": { "units": "t CO2/MWh" }, + "projected_intensities": { + "S1S2": { "projections": [ { "year": 2019, @@ -276,7 +273,7 @@ "value": 0.32314328995492764 } ] - } ] }, + }, "S3": null, "S1S2S3": null }, @@ -298,11 +295,9 @@ "company_id": "US00724F1012", "region": "North America", "sector": "Electricity Utilities", - "production_metric": { "units": "MWh"}, "target_probability": 0.4285714285714285, - "projected_ei_targets": { - "S1S2": { "reports": [ { - "company_metric": { "units": "t CO2/MWh" }, + "projected_targets": { + "S1S2": { "projections": [ { "year": 2019, @@ -433,13 +428,12 @@ "value": 0.0 } ] - } ] }, + }, "S3": null, "S1S2S3": null }, - "projected_ei_trajectories": { - "S1S2": { "reports": [ { - "company_metric": { "units": "t CO2/MWh" }, + "projected_intensities": { + "S1S2": { "projections": [ { "year": 2019, @@ -570,7 +564,7 @@ "value": 0.11293834909899002 } ] - } ] }, + }, "S3": null, "S1S2S3": null }, @@ -592,11 +586,9 @@ "company_id": "FR0000125338", "region": "Europe", "sector": "Electricity Utilities", - "production_metric": { "units": "MWh"}, "target_probability": 0.4285714285714285, - "projected_ei_targets": { - "S1S2": { "reports": [ { - "company_metric": { "units": "t CO2/MWh" }, + "projected_targets": { + "S1S2": { "projections": [ { "year": 2019, @@ -727,13 +719,12 @@ "value": 0.0 } ] - } ] }, + }, "S3": null, "S1S2S3": null }, - "projected_ei_trajectories": { - "S1S2": { "reports": [ { - "company_metric": { "units": "t CO2/MWh" }, + "projected_intensities": { + "S1S2": { "projections": [ { "year": 2019, @@ -864,7 +855,7 @@ "value": 0.056927654404565015 } ] - } ] }, + }, "S3": null, "S1S2S3": null }, @@ -886,11 +877,9 @@ "company_id": "US17275R1023", "region": "Europe", "sector": "Electricity Utilities", - "production_metric": { "units": "MWh"}, "target_probability": 0.4285714285714285, - "projected_ei_targets": { - "S1S2": { "reports": [ { - "company_metric": { "units": "t CO2/MWh" }, + "projected_targets": { + "S1S2": { "projections": [ { "year": 2019, @@ -1021,13 +1010,12 @@ "value": 0.019446057728423578 } ] - } ] }, + }, "S3": null, "S1S2S3": null }, - "projected_ei_trajectories": { - "S1S2": { "reports": [ { - "company_metric": { "units": "t CO2/MWh" }, + "projected_intensities": { + "S1S2": { "projections": [ { "year": 2019, @@ -1158,7 +1146,7 @@ "value": 0.01944605772842358 } ] - } ] }, + }, "S3": null, "S1S2S3": null }, @@ -1180,11 +1168,9 @@ "company_id": "CH0198251305", "region": "Europe", "sector": "Electricity Utilities", - "production_metric": { "units": "MWh"}, "target_probability": 0.4285714285714285, - "projected_ei_targets": { - "S1S2": { "reports": [ { - "company_metric": { "units": "t CO2/MWh" }, + "projected_targets": { + "S1S2": { "projections": [ { "year": 2019, @@ -1315,13 +1301,12 @@ "value": 0.065478378493248 } ] - } ] }, + }, "S3": null, "S1S2S3": null }, - "projected_ei_trajectories": { - "S1S2": { "reports": [ { - "company_metric": { "units": "t CO2/MWh" }, + "projected_intensities": { + "S1S2": { "projections": [ { "year": 2019, @@ -1452,7 +1437,7 @@ "value": 0.0682256166185565 } ] - } ] }, + }, "S3": null, "S1S2S3": null }, @@ -1474,11 +1459,9 @@ "company_id": "US1266501006", "region": "Europe", "sector": "Electricity Utilities", - "production_metric": { "units": "MWh"}, "target_probability": 0.4285714285714285, - "projected_ei_targets": { - "S1S2": { "reports": [ { - "company_metric": { "units": "t CO2/MWh" }, + "projected_targets": { + "S1S2": { "projections": [ { "year": 2019, @@ -1609,13 +1592,12 @@ "value": 0.01908972259658938 } ] - } ] }, + }, "S3": null, "S1S2S3": null }, - "projected_ei_trajectories": { - "S1S2": { "reports": [ { - "company_metric": { "units": "t CO2/MWh" }, + "projected_intensities": { + "S1S2": { "projections": [ { "year": 2019, @@ -1746,7 +1728,7 @@ "value": 0.01908972259658938 } ] - } ] }, + }, "S3": null, "S1S2S3": null }, @@ -1768,11 +1750,9 @@ "company_id": "FR0000120644", "region": "Europe", "sector": "Electricity Utilities", - "production_metric": { "units": "MWh"}, "target_probability": 0.4285714285714285, - "projected_ei_targets": { - "S1S2": { "reports": [ { - "company_metric": { "units": "t CO2/MWh" }, + "projected_targets": { + "S1S2": { "projections": [ { "year": 2019, @@ -1903,13 +1883,12 @@ "value": 0.0 } ] - } ] }, + }, "S3": null, "S1S2S3": null }, - "projected_ei_trajectories": { - "S1S2": { "reports": [ { - "company_metric": { "units": "t CO2/MWh" }, + "projected_intensities": { + "S1S2": { "projections": [ { "year": 2019, @@ -2040,7 +2019,7 @@ "value": 0.02410695065139955 } ] - } ] }, + }, "S3": null, "S1S2S3": null }, @@ -2062,11 +2041,9 @@ "company_id": "US24703L1035", "region": "Asia", "sector": "Electricity Utilities", - "production_metric": { "units": "MWh"}, "target_probability": 0.4285714285714285, - "projected_ei_targets": { - "S1S2": { "reports": [ { - "company_metric": { "units": "t CO2/MWh" }, + "projected_targets": { + "S1S2": { "projections": [ { "year": 2019, @@ -2197,13 +2174,12 @@ "value": 0.0007171644063577842 } ] - } ] }, + }, "S3": null, "S1S2S3": null }, - "projected_ei_trajectories": { - "S1S2": { "reports": [ { - "company_metric": { "units": "t CO2/MWh" }, + "projected_intensities": { + "S1S2": { "projections": [ { "year": 2019, @@ -2334,7 +2310,7 @@ "value": 0.0007171644063577842 } ] - } ] }, + }, "S3": null, "S1S2S3": null }, @@ -2356,11 +2332,9 @@ "company_id": "TW0002308004", "region": "Europe", "sector": "Electricity Utilities", - "production_metric": { "units": "MWh"}, "target_probability": 0.4285714285714285, - "projected_ei_targets": { - "S1S2": { "reports": [ { - "company_metric": { "units": "t CO2/MWh" }, + "projected_targets": { + "S1S2": { "projections": [ { "year": 2019, @@ -2491,13 +2465,12 @@ "value": 0.030719485801461905 } ] - } ] }, + }, "S3": null, "S1S2S3": null }, - "projected_ei_trajectories": { - "S1S2": { "reports": [ { - "company_metric": { "units": "t CO2/MWh" }, + "projected_intensities": { + "S1S2": { "projections": [ { "year": 2019, @@ -2628,7 +2601,7 @@ "value": 0.274513227726025 } ] - } ] }, + }, "S3": null, "S1S2S3": null }, @@ -2650,11 +2623,9 @@ "company_id": "FR0000120321", "region": "Asia", "sector": "Electricity Utilities", - "production_metric": { "units": "MWh"}, "target_probability": 0.4285714285714285, - "projected_ei_targets": { - "S1S2": { "reports": [ { - "company_metric": { "units": "t CO2/MWh" }, + "projected_targets": { + "S1S2": { "projections": [ { "year": 2019, @@ -2785,13 +2756,12 @@ "value": 0.28173508695317845 } ] - } ] }, + }, "S3": null, "S1S2S3": null }, - "projected_ei_trajectories": { - "S1S2": { "reports": [ { - "company_metric": { "units": "t CO2/MWh" }, + "projected_intensities": { + "S1S2": { "projections": [ { "year": 2019, @@ -2922,7 +2892,7 @@ "value": 0.28173508695317845 } ] - } ] }, + }, "S3": null, "S1S2S3": null }, @@ -2944,11 +2914,9 @@ "company_id": "CH0038863350", "region": "Asia", "sector": "Electricity Utilities", - "production_metric": { "units": "MWh"}, "target_probability": 0.4285714285714285, - "projected_ei_targets": { - "S1S2": { "reports": [ { - "company_metric": { "units": "t CO2/MWh" }, + "projected_targets": { + "S1S2": { "projections": [ { "year": 2019, @@ -3079,13 +3047,12 @@ "value": 0.026974867145530285 } ] - } ] }, + }, "S3": null, "S1S2S3": null }, - "projected_ei_trajectories": { - "S1S2": { "reports": [ { - "company_metric": { "units": "t CO2/MWh" }, + "projected_intensities": { + "S1S2": { "projections": [ { "year": 2019, @@ -3216,7 +3183,7 @@ "value": 0.30143654033545186 } ] - } ] }, + }, "S3": null, "S1S2S3": null }, @@ -3238,11 +3205,9 @@ "company_id": "US8356993076", "region": "Europe", "sector": "Electricity Utilities", - "production_metric": { "units": "MWh"}, "target_probability": 0.4285714285714285, - "projected_ei_targets": { - "S1S2": { "reports": [ { - "company_metric": { "units": "t CO2/MWh" }, + "projected_targets": { + "S1S2": { "projections": [ { "year": 2019, @@ -3373,13 +3338,12 @@ "value": null } ] - } ] }, + }, "S3": null, "S1S2S3": null }, - "projected_ei_trajectories": { - "S1S2": { "reports": [ { - "company_metric": { "units": "t CO2/MWh" }, + "projected_intensities": { + "S1S2": { "projections": [ { "year": 2019, @@ -3510,7 +3474,7 @@ "value": null } ] - } ] }, + }, "S3": null, "S1S2S3": null }, @@ -3532,11 +3496,9 @@ "company_id": "JP3401400001", "region": "Asia", "sector": "Electricity Utilities", - "production_metric": { "units": "MWh"}, "target_probability": 0.4285714285714285, - "projected_ei_targets": { - "S1S2": { "reports": [ { - "company_metric": { "units": "t CO2/MWh" }, + "projected_targets": { + "S1S2": { "projections": [ { "year": 2019, @@ -3667,13 +3629,12 @@ "value": 0.290466560681228 } ] - } ] }, + }, "S3": null, "S1S2S3": null }, - "projected_ei_trajectories": { - "S1S2": { "reports": [ { - "company_metric": { "units": "t CO2/MWh" }, + "projected_intensities": { + "S1S2": { "projections": [ { "year": 2019, @@ -3804,7 +3765,7 @@ "value": 0.290466560681228 } ] - } ] }, + }, "S3": null, "S1S2S3": null }, @@ -3826,11 +3787,9 @@ "company_id": "US6541061031", "region": "Europe", "sector": "Electricity Utilities", - "production_metric": { "units": "MWh"}, "target_probability": 0.4285714285714285, - "projected_ei_targets": { - "S1S2": { "reports": [ { - "company_metric": { "units": "t CO2/MWh" }, + "projected_targets": { + "S1S2": { "projections": [ { "year": 2019, @@ -3961,13 +3920,12 @@ "value": 0.12136988857034575 } ] - } ] }, + }, "S3": null, "S1S2S3": null }, - "projected_ei_trajectories": { - "S1S2": { "reports": [ { - "company_metric": { "units": "t CO2/MWh" }, + "projected_intensities": { + "S1S2": { "projections": [ { "year": 2019, @@ -4098,7 +4056,7 @@ "value": 0.12136988857034575 } ] - } ] }, + }, "S3": null, "S1S2S3": null }, @@ -4120,11 +4078,9 @@ "company_id": "GB0031274896", "region": "North America", "sector": "Electricity Utilities", - "production_metric": { "units": "MWh"}, "target_probability": 0.4285714285714285, - "projected_ei_targets": { - "S1S2": { "reports": [ { - "company_metric": { "units": "t CO2/MWh" }, + "projected_targets": { + "S1S2": { "projections": [ { "year": 2019, @@ -4255,13 +4211,12 @@ "value": 0.0 } ] - } ] }, + }, "S3": null, "S1S2S3": null }, - "projected_ei_trajectories": { - "S1S2": { "reports": [ { - "company_metric": { "units": "t CO2/MWh" }, + "projected_intensities": { + "S1S2": { "projections": [ { "year": 2019, @@ -4392,7 +4347,7 @@ "value": 0.19997605950297165 } ] - } ] }, + }, "S3": null, "S1S2S3": null }, @@ -4414,11 +4369,9 @@ "company_id": "US6293775085", "region": "Europe", "sector": "Steel", - "production_metric": { "units": "Fe_ton"}, "target_probability": 0.4285714285714285, - "projected_ei_targets": { - "S1S2": { "reports": [ { - "company_metric": { "units": "t CO2/Fe_ton" }, + "projected_targets": { + "S1S2": { "projections": [ { "year": 2019, @@ -4549,13 +4502,12 @@ "value": 0.023531717117231055 } ] - } ] }, + }, "S3": null, "S1S2S3": null }, - "projected_ei_trajectories": { - "S1S2": { "reports": [ { - "company_metric": { "units": "t CO2/Fe_ton" }, + "projected_intensities": { + "S1S2": { "projections": [ { "year": 2019, @@ -4686,7 +4638,7 @@ "value": 1.4236498966235975 } ] - } ] }, + }, "S3": null, "S1S2S3": null }, @@ -4708,11 +4660,9 @@ "company_id": "US7134481081", "region": "Asia", "sector": "Steel", - "production_metric": { "units": "Fe_ton"}, "target_probability": 0.4285714285714285, - "projected_ei_targets": { - "S1S2": { "reports": [ { - "company_metric": { "units": "t CO2/Fe_ton" }, + "projected_targets": { + "S1S2": { "projections": [ { "year": 2019, @@ -4843,13 +4793,12 @@ "value": null } ] - } ] }, + }, "S3": null, "S1S2S3": null }, - "projected_ei_trajectories": { - "S1S2": { "reports": [ { - "company_metric": { "units": "t CO2/Fe_ton" }, + "projected_intensities": { + "S1S2": { "projections": [ { "year": 2019, @@ -4980,7 +4929,7 @@ "value": null } ] - } ] }, + }, "S3": null, "S1S2S3": null }, @@ -5002,11 +4951,9 @@ "company_id": "JP0000000001", "region": "Asia", "sector": "Steel", - "production_metric": { "units": "Fe_ton"}, "target_probability": 0.4285714285714285, - "projected_ei_targets": { - "S1S2": { "reports": [ { - "company_metric": { "units": "t CO2/Fe_ton" }, + "projected_targets": { + "S1S2": { "projections": [ { "year": 2019, @@ -5137,13 +5084,12 @@ "value": null } ] - } ] }, + }, "S3": null, "S1S2S3": null }, - "projected_ei_trajectories": { - "S1S2": { "reports": [ { - "company_metric": { "units": "t CO2/Fe_ton" }, + "projected_intensities": { + "S1S2": { "projections": [ { "year": 2019, @@ -5274,7 +5220,7 @@ "value": null } ] - } ] }, + }, "S3": null, "S1S2S3": null }, @@ -5296,11 +5242,9 @@ "company_id": "NL0000000002", "region": "South America", "sector": "Steel", - "production_metric": { "units": "Fe_ton"}, "target_probability": 0.4285714285714285, - "projected_ei_targets": { - "S1S2": { "reports": [ { - "company_metric": { "units": "t CO2/Fe_ton" }, + "projected_targets": { + "S1S2": { "projections": [ { "year": 2019, @@ -5431,13 +5375,12 @@ "value": 0.06921896577724047 } ] - } ] }, + }, "S3": null, "S1S2S3": null }, - "projected_ei_trajectories": { - "S1S2": { "reports": [ { - "company_metric": { "units": "t CO2/Fe_ton" }, + "projected_intensities": { + "S1S2": { "projections": [ { "year": 2019, @@ -5568,7 +5511,7 @@ "value": 0.06921896577724047 } ] - } ] }, + }, "S3": null, "S1S2S3": null }, @@ -5590,11 +5533,9 @@ "company_id": "IT0000000003", "region": "Asia", "sector": "Steel", - "production_metric": { "units": "Fe_ton"}, "target_probability": 0.4285714285714285, - "projected_ei_targets": { - "S1S2": { "reports": [ { - "company_metric": { "units": "t CO2/Fe_ton" }, + "projected_targets": { + "S1S2": { "projections": [ { "year": 2019, @@ -5725,13 +5666,12 @@ "value": 0.06589864832712344 } ] - } ] }, + }, "S3": null, "S1S2S3": null }, - "projected_ei_trajectories": { - "S1S2": { "reports": [ { - "company_metric": { "units": "t CO2/Fe_ton" }, + "projected_intensities": { + "S1S2": { "projections": [ { "year": 2019, @@ -5862,7 +5802,7 @@ "value": 0.6374459070572828 } ] - } ] }, + }, "S3": null, "S1S2S3": null }, @@ -5884,11 +5824,9 @@ "company_id": "SE0000000004", "region": "Asia", "sector": "Steel", - "production_metric": { "units": "Fe_ton"}, "target_probability": 0.4285714285714285, - "projected_ei_targets": { - "S1S2": { "reports": [ { - "company_metric": { "units": "t CO2/Fe_ton" }, + "projected_targets": { + "S1S2": { "projections": [ { "year": 2019, @@ -6019,13 +5957,12 @@ "value": 0.0673367403352704 } ] - } ] }, + }, "S3": null, "S1S2S3": null }, - "projected_ei_trajectories": { - "S1S2": { "reports": [ { - "company_metric": { "units": "t CO2/Fe_ton" }, + "projected_intensities": { + "S1S2": { "projections": [ { "year": 2019, @@ -6156,7 +6093,7 @@ "value": 1.3525034681569517 } ] - } ] }, + }, "S3": null, "S1S2S3": null }, @@ -6178,11 +6115,9 @@ "company_id": "SE0000000005", "region": "Asia", "sector": "Steel", - "production_metric": { "units": "Fe_ton"}, "target_probability": 0.4285714285714285, - "projected_ei_targets": { - "S1S2": { "reports": [ { - "company_metric": { "units": "t CO2/Fe_ton" }, + "projected_targets": { + "S1S2": { "projections": [ { "year": 2019, @@ -6313,13 +6248,12 @@ "value": 2.13378665842693 } ] - } ] }, + }, "S3": null, "S1S2S3": null }, - "projected_ei_trajectories": { - "S1S2": { "reports": [ { - "company_metric": { "units": "t CO2/Fe_ton" }, + "projected_intensities": { + "S1S2": { "projections": [ { "year": 2019, @@ -6450,7 +6384,7 @@ "value": 2.13378665842693 } ] - } ] }, + }, "S3": null, "S1S2S3": null }, @@ -6472,11 +6406,9 @@ "company_id": "NL0000000006", "region": "Asia", "sector": "Steel", - "production_metric": { "units": "Fe_ton"}, "target_probability": 0.4285714285714285, - "projected_ei_targets": { - "S1S2": { "reports": [ { - "company_metric": { "units": "t CO2/Fe_ton" }, + "projected_targets": { + "S1S2": { "projections": [ { "year": 2019, @@ -6607,13 +6539,12 @@ "value": null } ] - } ] }, + }, "S3": null, "S1S2S3": null }, - "projected_ei_trajectories": { - "S1S2": { "reports": [ { - "company_metric": { "units": "t CO2/Fe_ton" }, + "projected_intensities": { + "S1S2": { "projections": [ { "year": 2019, @@ -6744,7 +6675,7 @@ "value": null } ] - } ] }, + }, "S3": null, "S1S2S3": null }, @@ -6766,11 +6697,9 @@ "company_id": "CN0000000007", "region": "Asia", "sector": "Steel", - "production_metric": { "units": "Fe_ton"}, "target_probability": 0.4285714285714285, - "projected_ei_targets": { - "S1S2": { "reports": [ { - "company_metric": { "units": "t CO2/Fe_ton" }, + "projected_targets": { + "S1S2": { "projections": [ { "year": 2019, @@ -6901,13 +6830,12 @@ "value": 1.158316671492553 } ] - } ] }, + }, "S3": null, "S1S2S3": null }, - "projected_ei_trajectories": { - "S1S2": { "reports": [ { - "company_metric": { "units": "t CO2/Fe_ton" }, + "projected_intensities": { + "S1S2": { "projections": [ { "year": 2019, @@ -7038,7 +6966,7 @@ "value": 1.158316671492553 } ] - } ] }, + }, "S3": null, "S1S2S3": null }, @@ -7060,11 +6988,9 @@ "company_id": "CN0000000008", "region": "Asia", "sector": "Steel", - "production_metric": { "units": "Fe_ton"}, "target_probability": 0.4285714285714285, - "projected_ei_targets": { - "S1S2": { "reports": [ { - "company_metric": { "units": "t CO2/Fe_ton" }, + "projected_targets": { + "S1S2": { "projections": [ { "year": 2019, @@ -7195,13 +7121,12 @@ "value": 1.2225581277619404 } ] - } ] }, + }, "S3": null, "S1S2S3": null }, - "projected_ei_trajectories": { - "S1S2": { "reports": [ { - "company_metric": { "units": "t CO2/Fe_ton" }, + "projected_intensities": { + "S1S2": { "projections": [ { "year": 2019, @@ -7332,7 +7257,7 @@ "value": 1.2961814763575168 } ] - } ] }, + }, "S3": null, "S1S2S3": null }, @@ -7354,11 +7279,9 @@ "company_id": "CN0000000009", "region": "Asia", "sector": "Steel", - "production_metric": { "units": "Fe_ton"}, "target_probability": 0.4285714285714285, - "projected_ei_targets": { - "S1S2": { "reports": [ { - "company_metric": { "units": "t CO2/Fe_ton" }, + "projected_targets": { + "S1S2": { "projections": [ { "year": 2019, @@ -7489,13 +7412,12 @@ "value": null } ] - } ] }, + }, "S3": null, "S1S2S3": null }, - "projected_ei_trajectories": { - "S1S2": { "reports": [ { - "company_metric": { "units": "t CO2/Fe_ton" }, + "projected_intensities": { + "S1S2": { "projections": [ { "year": 2019, @@ -7626,7 +7548,7 @@ "value": null } ] - } ] }, + }, "S3": null, "S1S2S3": null }, @@ -7648,11 +7570,9 @@ "company_id": "BR0000000010", "region": "Asia", "sector": "Steel", - "production_metric": { "units": "Fe_ton"}, "target_probability": 0.4285714285714285, - "projected_ei_targets": { - "S1S2": { "reports": [ { - "company_metric": { "units": "t CO2/Fe_ton" }, + "projected_targets": { + "S1S2": { "projections": [ { "year": 2019, @@ -7783,13 +7703,12 @@ "value": null } ] - } ] }, + }, "S3": null, "S1S2S3": null }, - "projected_ei_trajectories": { - "S1S2": { "reports": [ { - "company_metric": { "units": "t CO2/Fe_ton" }, + "projected_intensities": { + "S1S2": { "projections": [ { "year": 2019, @@ -7920,7 +7839,7 @@ "value": null } ] - } ] }, + }, "S3": null, "S1S2S3": null }, @@ -7942,11 +7861,9 @@ "company_id": "BR0000000011", "region": "Europe", "sector": "Steel", - "production_metric": { "units": "Fe_ton"}, "target_probability": 0.4285714285714285, - "projected_ei_targets": { - "S1S2": { "reports": [ { - "company_metric": { "units": "t CO2/Fe_ton" }, + "projected_targets": { + "S1S2": { "projections": [ { "year": 2019, @@ -8077,13 +7994,12 @@ "value": 0.5201755039378894 } ] - } ] }, + }, "S3": null, "S1S2S3": null }, - "projected_ei_trajectories": { - "S1S2": { "reports": [ { - "company_metric": { "units": "t CO2/Fe_ton" }, + "projected_intensities": { + "S1S2": { "projections": [ { "year": 2019, @@ -8214,7 +8130,7 @@ "value": 0.5410407687401423 } ] - } ] }, + }, "S3": null, "S1S2S3": null }, @@ -8236,11 +8152,9 @@ "company_id": "BR0000000012", "region": "Asia", "sector": "Steel", - "production_metric": { "units": "Fe_ton"}, "target_probability": 0.4285714285714285, - "projected_ei_targets": { - "S1S2": { "reports": [ { - "company_metric": { "units": "t CO2/Fe_ton" }, + "projected_targets": { + "S1S2": { "projections": [ { "year": 2019, @@ -8371,13 +8285,12 @@ "value": 1.534974823445468 } ] - } ] }, + }, "S3": null, "S1S2S3": null }, - "projected_ei_trajectories": { - "S1S2": { "reports": [ { - "company_metric": { "units": "t CO2/Fe_ton" }, + "projected_intensities": { + "S1S2": { "projections": [ { "year": 2019, @@ -8508,7 +8421,7 @@ "value": 1.534974823445468 } ] - } ] }, + }, "S3": null, "S1S2S3": null }, @@ -8530,11 +8443,9 @@ "company_id": "AR0000000013", "region": "Europe", "sector": "Steel", - "production_metric": { "units": "Fe_ton"}, "target_probability": 0.4285714285714285, - "projected_ei_targets": { - "S1S2": { "reports": [ { - "company_metric": { "units": "t CO2/Fe_ton" }, + "projected_targets": { + "S1S2": { "projections": [ { "year": 2019, @@ -8665,13 +8576,12 @@ "value": null } ] - } ] }, + }, "S3": null, "S1S2S3": null }, - "projected_ei_trajectories": { - "S1S2": { "reports": [ { - "company_metric": { "units": "t CO2/Fe_ton" }, + "projected_intensities": { + "S1S2": { "projections": [ { "year": 2019, @@ -8802,7 +8712,7 @@ "value": null } ] - } ] }, + }, "S3": null, "S1S2S3": null }, @@ -8819,4 +8729,4 @@ "company_total_assets": 18868083.741257884, "company_cash_equivalents": 259739897.26190066 } -] +] \ No newline at end of file diff --git a/test/inputs/json/test_project_companies.json b/test/inputs/json/test_project_companies.json index d1762833..83dffbc6 100644 --- a/test/inputs/json/test_project_companies.json +++ b/test/inputs/json/test_project_companies.json @@ -1,8287 +1,8287 @@ -[ - { - "company_name": "Company AG", - "company_id": "US0079031078", - "region": "North America", - "sector": "Electricity Utilities", - "target_probability": 0.428571428571428, - "historic_data": { - "productions": [ - { - "year": 2009, - "value": null - }, - { - "year": 2010, - "value": null - }, - { - "year": 2011, - "value": null - }, - { - "year": 2012, - "value": null - }, - { - "year": 2013, - "value": null - }, - { - "year": 2014, - "value": 1682769059.4097404 - }, - { - "year": 2015, - "value": 1149435381.0097404 - }, - { - "year": 2016, - "value": 1351884837.0097404 - }, - { - "year": 2017, - "value": 870361875.4897404 - }, - { - "year": 2018, - "value": 388838913.9697404 - }, - { - "year": 2019, - "value": 377380291.0897404 - }, - { - "year": 2020, - "value": 377380291.0897404 - }, - { - "year": 2021, - "value": 377380291.0897404 - } - ], - "emissions": { - "S1": [ - { - "year": 2009, - "value": 74121549.8360392 - }, - { - "year": 2010, - "value": 77200005.8360392 - }, - { - "year": 2011, - "value": 74010717.8360392 - }, - { - "year": 2012, - "value": 78912218.8360392 - }, - { - "year": 2013, - "value": 75863005.8360392 - }, - { - "year": 2014, - "value": 79630005.8360392 - }, - { - "year": 2015, - "value": 70339005.8360392 - }, - { - "year": 2016, - "value": 70457005.8360392 - }, - { - "year": 2017, - "value": 64527005.8360392 - }, - { - "year": 2018, - "value": 54154005.8360392 - }, - { - "year": 2019, - "value": 49092005.8360392 - }, - { - "year": 2020, - "value": 49092005.8360392 - }, - { - "year": 2021, - "value": 49092005.8360392 - } - ], - "S2": [ - { - "year": 2009, - "value": null - }, - { - "year": 2010, - "value": null - }, - { - "year": 2011, - "value": null - }, - { - "year": 2012, - "value": 414929.856039191 - }, - { - "year": 2013, - "value": 90005.8360391907 - }, - { - "year": 2014, - "value": 290005.836039191 - }, - { - "year": 2015, - "value": 367805.836039191 - }, - { - "year": 2016, - "value": 306005.836039191 - }, - { - "year": 2017, - "value": 226005.836039191 - }, - { - "year": 2018, - "value": 360005.836039191 - }, - { - "year": 2019, - "value": 359005.836039191 - }, - { - "year": 2020, - "value": 359005.836039191 - }, - { - "year": 2021, - "value": 359005.836039191 - } - ], - "S1S2": [], - "S3": [], - "S1S2S3": [] - }, - "emission_intensities": { - "S1": [ - { - "year": 2009, - "value": null - }, - { - "year": 2010, - "value": null - }, - { - "year": 2011, - "value": null - }, - { - "year": 2012, - "value": null - }, - { - "year": 2013, - "value": null - }, - { - "year": 2014, - "value": 0.6132777815614572 - }, - { - "year": 2015, - "value": 0.793079394192882 - }, - { - "year": 2016, - "value": 0.6754442173157448 - }, - { - "year": 2017, - "value": 0.9608302238244408 - }, - { - "year": 2018, - "value": 1.8049528748804293 - }, - { - "year": 2019, - "value": 1.6859184505842997 - }, - { - "year": 2020, - "value": 1.6859184505842997 - }, - { - "year": 2021, - "value": 1.6859184505842997 - } - ], - "S2": [ - { - "year": 2009, - "value": null - }, - { - "year": 2010, - "value": null - }, - { - "year": 2011, - "value": null - }, - { - "year": 2012, - "value": null - }, - { - "year": 2013, - "value": null - }, - { - "year": 2014, - "value": 0.002233506501709902 - }, - { - "year": 2015, - "value": 0.00414704794529682 - }, - { - "year": 2016, - "value": 0.0029335602608281442 - }, - { - "year": 2017, - "value": 0.003365307830630542 - }, - { - "year": 2018, - "value": 0.011998993586920128 - }, - { - "year": 2019, - "value": 0.0123289841704041 - }, - { - "year": 2020, - "value": 0.0123289841704041 - }, - { - "year": 2021, - "value": 0.0123289841704041 - } - ], - "S1S2": [], - "S3": [], - "S1S2S3": [] - } - } - }, - { - "company_name": "Company AH", - "company_id": "US00724F1012", - "region": "North America", - "sector": "Electricity Utilities", - "target_probability": 0.4285714285714285, - "historic_data": { - "productions": [ - { - "year": 2009, - "value": null - }, - { - "year": 2010, - "value": 2143661765.3714125 - }, - { - "year": 2011, - "value": 2114928159.0914125 - }, - { - "year": 2012, - "value": 2086194552.8114123 - }, - { - "year": 2013, - "value": 2057460946.5314126 - }, - { - "year": 2014, - "value": 2028727340.2514122 - }, - { - "year": 2015, - "value": 1885882971.9314125 - }, - { - "year": 2016, - "value": 1661622976.4114125 - }, - { - "year": 2017, - "value": 2488147559.6114125 - }, - { - "year": 2018, - "value": 2457602018.9714127 - }, - { - "year": 2019, - "value": 2156173206.8114123 - }, - { - "year": 2020, - "value": 2156173206.8114123 - }, - { - "year": 2021, - "value": 2156173206.8114123 - } - ], - "emissions": { - "S1": [], - "S2": [], - "S1S2": [], - "S3": [], - "S1S2S3": [] - }, - "emission_intensities": { - "S1": [ - { - "year": 2009, - "value": null - }, - { - "year": 2010, - "value": 9.020587159252296e-09 - }, - { - "year": 2011, - "value": 9.143141676640597e-09 - }, - { - "year": 2012, - "value": 9.269072133483565e-09 - }, - { - "year": 2013, - "value": 0.016324063782454407 - }, - { - "year": 2014, - "value": 0.033110525388179275 - }, - { - "year": 2015, - "value": 0.0534276696850902 - }, - { - "year": 2016, - "value": 0.08085133557988561 - }, - { - "year": 2017, - "value": 0.06749219539186596 - }, - { - "year": 2018, - "value": 0.08300080315789345 - }, - { - "year": 2019, - "value": 0.08723928160449504 - }, - { - "year": 2020, - "value": 0.08723928160449504 - }, - { - "year": 2021, - "value": 0.08723928160449504 - } - ], - "S2": [ - { - "year": 2009, - "value": null - }, - { - "year": 2010, - "value": 9.020587159252296e-09 - }, - { - "year": 2011, - "value": 9.143141676640597e-09 - }, - { - "year": 2012, - "value": 9.269072133483565e-09 - }, - { - "year": 2013, - "value": 0.016324063782454407 - }, - { - "year": 2014, - "value": 0.033110525388179275 - }, - { - "year": 2015, - "value": 0.0534276696850902 - }, - { - "year": 2016, - "value": 0.08085133557988561 - }, - { - "year": 2017, - "value": 0.06749219539186596 - }, - { - "year": 2018, - "value": 0.08300080315789345 - }, - { - "year": 2019, - "value": 0.08723928160449504 - }, - { - "year": 2020, - "value": 0.08723928160449504 - }, - { - "year": 2021, - "value": 0.08723928160449504 - } - ], - "S1S2": [], - "S3": [], - "S1S2S3": [] - } - } - }, - { - "company_name": "Company AI", - "company_id": "FR0000125338", - "region": "Europe", - "sector": "Electricity Utilities", - "target_probability": 0.4285714285714285, - "historic_data": { - "emission_intensities": { - "S1": [ - { - "year": 2009, - "value": null - }, - { - "year": 2010, - "value": 0.4605612425432028 - }, - { - "year": 2011, - "value": 0.47676992001722285 - }, - { - "year": 2012, - "value": 0.4935410421590952 - }, - { - "year": 2013, - "value": 0.4271137111711944 - }, - { - "year": 2014, - "value": 0.4050475894153404 - }, - { - "year": 2015, - "value": 1.7660044449376848 - }, - { - "year": 2016, - "value": 0.12641248982232864 - }, - { - "year": 2017, - "value": 0.11422094242724208 - }, - { - "year": 2018, - "value": 0.12432145953306709 - }, - { - "year": 2019, - "value": 0.14432694163463483 - }, - { - "year": 2020, - "value": 0.11410264669076498 - }, - { - "year": 2021, - "value": 0.11410264669076498 - } - ], - "S2": [ - { - "year": 2009, - "value": null - }, - { - "year": 2010, - "value": 0.019750986012689604 - }, - { - "year": 2011, - "value": 0.019542782620390428 - }, - { - "year": 2012, - "value": 0.016717335291559405 - }, - { - "year": 2013, - "value": 0.012755111704326829 - }, - { - "year": 2014, - "value": 0.016135716380506274 - }, - { - "year": 2015, - "value": 0.0816777616053006 - }, - { - "year": 2016, - "value": 0.07909610646488868 - }, - { - "year": 2017, - "value": 0.08497232976008089 - }, - { - "year": 2018, - "value": 0.078447410507817 - }, - { - "year": 2019, - "value": 0.08024699005813475 - }, - { - "year": 2020, - "value": 0.14391033829225056 - }, - { - "year": 2021, - "value": 0.14391033829225056 - } - ], - "S1S2": [], - "S3": [], - "S1S2S3": [] - } - } - }, - { - "company_name": "Company AJ", - "company_id": "US17275R1023", - "region": "Europe", - "sector": "Electricity Utilities", - "target_probability": 0.4285714285714285, - "historic_data": { - "productions": [ - { - "year": 2009, - "value": 8015760033.846192 - }, - { - "year": 2010, - "value": 8169984033.846192 - }, - { - "year": 2011, - "value": 8141472033.846192 - }, - { - "year": 2012, - "value": 8328096033.846192 - }, - { - "year": 2013, - "value": 8474544033.846192 - }, - { - "year": 2014, - "value": 8080560033.846192 - }, - { - "year": 2015, - "value": 8026128033.846192 - }, - { - "year": 2016, - "value": 364176033.84621 - }, - { - "year": 2017, - "value": 381024033.84621 - }, - { - "year": 2018, - "value": 383616033.84621 - }, - { - "year": 2019, - "value": 360288033.84621 - }, - { - "year": 2020, - "value": 360288033.84621 - }, - { - "year": 2021, - "value": 360288033.84621 - } - ], - "emissions": { - "S1": [ - { - "year": 2009, - "value": 78192009.4017252 - }, - { - "year": 2010, - "value": 80575879.4017252 - }, - { - "year": 2011, - "value": 70935799.4017252 - }, - { - "year": 2012, - "value": 80283565.4017252 - }, - { - "year": 2013, - "value": 73222380.0683918 - }, - { - "year": 2014, - "value": 66161194.7350585 - }, - { - "year": 2015, - "value": 59100009.4017252 - }, - { - "year": 2016, - "value": 47700009.4017252 - }, - { - "year": 2017, - "value": 51300009.4017252 - }, - { - "year": 2018, - "value": 35700009.4017252 - }, - { - "year": 2019, - "value": 33100009.4017252 - }, - { - "year": 2020, - "value": 33100009.4017252 - }, - { - "year": 2021, - "value": 33100009.4017252 - } - ], - "S2": [ - { - "year": 2009, - "value": 480089.401725152 - }, - { - "year": 2010, - "value": 670709.401725152 - }, - { - "year": 2011, - "value": 81181.4017251516 - }, - { - "year": 2012, - "value": 74013.4017251516 - }, - { - "year": 2013, - "value": 159212.601725152 - }, - { - "year": 2014, - "value": 244411.801725152 - }, - { - "year": 2015, - "value": 329611.001725152 - }, - { - "year": 2016, - "value": 414810.201725152 - }, - { - "year": 2017, - "value": 500009.401725152 - }, - { - "year": 2018, - "value": 470009.401725152 - }, - { - "year": 2019, - "value": 290009.401725152 - }, - { - "year": 2020, - "value": 290009.401725152 - }, - { - "year": 2021, - "value": 290009.401725152 - } - ], - "S1S2": [], - "S3": [], - "S1S2S3": [] - }, - "emission_intensities": { - "S1": [ - { - "year": 2009, - "value": 0.12642200334933337 - }, - { - "year": 2010, - "value": 0.12781706704936452 - }, - { - "year": 2011, - "value": 0.1129191326119494 - }, - { - "year": 2012, - "value": 0.12493551988086661 - }, - { - "year": 2013, - "value": 0.11197794735579024 - }, - { - "year": 2014, - "value": 0.10611258132788423 - }, - { - "year": 2015, - "value": 0.09543033933877008 - }, - { - "year": 2016, - "value": 1.6975090736130565 - }, - { - "year": 2017, - "value": 1.7448981239716346 - }, - { - "year": 2018, - "value": 1.2060812922950988 - }, - { - "year": 2019, - "value": 1.1906477083539972 - }, - { - "year": 2020, - "value": 1.1906477083539972 - }, - { - "year": 2021, - "value": 1.1906477083539972 - } - ], - "S2": [ - { - "year": 2009, - "value": 0.0007762156826159988 - }, - { - "year": 2010, - "value": 0.001063942574471082 - }, - { - "year": 2011, - "value": 0.000129228591830085 - }, - { - "year": 2012, - "value": 0.0001151780289828102 - }, - { - "year": 2013, - "value": 0.00024348157377164316 - }, - { - "year": 2014, - "value": 0.0003919996803551076 - }, - { - "year": 2015, - "value": 0.0005322315522932028 - }, - { - "year": 2016, - "value": 0.01476192751505496 - }, - { - "year": 2017, - "value": 0.017007120996922403 - }, - { - "year": 2018, - "value": 0.01587869460326034 - }, - { - "year": 2019, - "value": 0.010431991887807995 - }, - { - "year": 2020, - "value": 0.010431991887807995 - }, - { - "year": 2021, - "value": 0.010431991887807995 - } - ], - "S1S2": [], - "S3": [], - "S1S2S3": [] - } - } - }, - { - "company_name": "Company AK", - "company_id": "CH0198251305", - "region": "Europe", - "sector": "Electricity Utilities", - "target_probability": 0.4285714285714285, - "historic_data": { - "productions": [ - { - "year": 2009, - "value": null - }, - { - "year": 2010, - "value": 3760992023.3008924 - }, - { - "year": 2011, - "value": 3808944023.3008924 - }, - { - "year": 2012, - "value": 3833568023.3008924 - }, - { - "year": 2013, - "value": 3708452183.3008924 - }, - { - "year": 2014, - "value": 3668988983.3008924 - }, - { - "year": 2015, - "value": 3680795543.3008924 - }, - { - "year": 2016, - "value": 3393083543.3008957 - }, - { - "year": 2017, - "value": 3238392983.3008957 - }, - { - "year": 2018, - "value": 3244393463.3008957 - }, - { - "year": 2019, - "value": 2969511863.3008957 - }, - { - "year": 2020, - "value": 2684119703.3008957 - }, - { - "year": 2021, - "value": 2684119703.3008957 - } - ], - "emissions": { - "S1": [ - { - "year": 2009, - "value": null - }, - { - "year": 2010, - "value": 116400006.472471 - }, - { - "year": 2011, - "value": 123540195.472471 - }, - { - "year": 2012, - "value": 127800006.472471 - }, - { - "year": 2013, - "value": 115550006.472471 - }, - { - "year": 2014, - "value": 115480006.472471 - }, - { - "year": 2015, - "value": 119510006.472471 - }, - { - "year": 2016, - "value": 106730006.472471 - }, - { - "year": 2017, - "value": 105960006.472471 - }, - { - "year": 2018, - "value": 95230006.4724713 - }, - { - "year": 2019, - "value": 69980006.4724713 - }, - { - "year": 2020, - "value": 45260006.4724712 - }, - { - "year": 2021, - "value": 45260006.4724712 - } - ], - "S2": [ - { - "year": 2009, - "value": null - }, - { - "year": 2010, - "value": 245006.472471246 - }, - { - "year": 2011, - "value": 331647.472471246 - }, - { - "year": 2012, - "value": 370006.472471246 - }, - { - "year": 2013, - "value": 786006.472471246 - }, - { - "year": 2014, - "value": 636006.472471246 - }, - { - "year": 2015, - "value": 654006.472471246 - }, - { - "year": 2016, - "value": 1400006.47247125 - }, - { - "year": 2017, - "value": 5000006.47247125 - }, - { - "year": 2018, - "value": 5080006.47247125 - }, - { - "year": 2019, - "value": 5370006.47247125 - }, - { - "year": 2020, - "value": 5000006.47247125 - }, - { - "year": 2021, - "value": 5000006.47247125 - } - ], - "S1S2": [], - "S3": [], - "S1S2S3": [] - }, - "emission_intensities": { - "S1": [ - { - "year": 2009, - "value": null - }, - { - "year": 2010, - "value": 0.401102707620006 - }, - { - "year": 2011, - "value": 0.4203477193491828 - }, - { - "year": 2012, - "value": 0.43204870079677804 - }, - { - "year": 2013, - "value": 0.4038148558653588 - }, - { - "year": 2014, - "value": 0.40791097784566077 - }, - { - "year": 2015, - "value": 0.42079209933357004 - }, - { - "year": 2016, - "value": 0.4076589527582292 - }, - { - "year": 2017, - "value": 0.4240503518147712 - }, - { - "year": 2018, - "value": 0.380404195065648 - }, - { - "year": 2019, - "value": 0.3054174981052529 - }, - { - "year": 2020, - "value": 0.21853335496247459 - }, - { - "year": 2021, - "value": 0.21853335496247459 - } - ], - "S2": [ - { - "year": 2009, - "value": null - }, - { - "year": 2010, - "value": 0.0008442676462899023 - }, - { - "year": 2011, - "value": 0.001128436442471657 - }, - { - "year": 2012, - "value": 0.0012508670392910783 - }, - { - "year": 2013, - "value": 0.0027468721126020315 - }, - { - "year": 2014, - "value": 0.00224657090025156 - }, - { - "year": 2015, - "value": 0.0023027423782485457 - }, - { - "year": 2016, - "value": 0.005347373164168032 - }, - { - "year": 2017, - "value": 0.020009950681518757 - }, - { - "year": 2018, - "value": 0.020292509101606883 - }, - { - "year": 2019, - "value": 0.023436607458394043 - }, - { - "year": 2020, - "value": 0.024142024591353756 - }, - { - "year": 2021, - "value": 0.024142024591353756 - } - ], - "S1S2": [], - "S3": [], - "S1S2S3": [] - } - } - }, - { - "company_name": "Company AL", - "company_id": "US1266501006", - "region": "Europe", - "sector": "Electricity Utilities", - "target_probability": 0.4285714285714285, - "historic_data": { - "productions": [ - { - "year": 2009, - "value": null - }, - { - "year": 2010, - "value": 4341600001.354788 - }, - { - "year": 2011, - "value": 6026400001.354788 - }, - { - "year": 2012, - "value": 6039360001.354788 - }, - { - "year": 2013, - "value": 6207840001.354788 - }, - { - "year": 2014, - "value": 6091200001.354788 - }, - { - "year": 2015, - "value": 6363360001.354788 - }, - { - "year": 2016, - "value": 3563902801.354802 - }, - { - "year": 2017, - "value": 764445601.3548025 - }, - { - "year": 2018, - "value": 739614241.3548025 - }, - { - "year": 2019, - "value": 797765761.3548025 - }, - { - "year": 2020, - "value": 718528321.3548025 - }, - { - "year": 2021, - "value": 718528321.3548025 - } - ], - "emissions": { - "S1": [ - { - "year": 2009, - "value": null - }, - { - "year": 2010, - "value": 109324454.376334 - }, - { - "year": 2011, - "value": 156899254.376334 - }, - { - "year": 2012, - "value": 154230874.376334 - }, - { - "year": 2013, - "value": 141984778.376334 - }, - { - "year": 2014, - "value": 131154736.376334 - }, - { - "year": 2015, - "value": 133757296.376334 - }, - { - "year": 2016, - "value": 120150105.376334 - }, - { - "year": 2017, - "value": 89756230.3763341 - }, - { - "year": 2018, - "value": 57205670.3763341 - }, - { - "year": 2019, - "value": 46188978.3763341 - }, - { - "year": 2020, - "value": 38589016.3763341 - }, - { - "year": 2021, - "value": 38589016.3763341 - } - ], - "S2": [ - { - "year": 2009, - "value": null - }, - { - "year": 2010, - "value": 3250751.37633413 - }, - { - "year": 2011, - "value": 3357343.37633413 - }, - { - "year": 2012, - "value": 3712790.37633413 - }, - { - "year": 2013, - "value": 3748376.12633413 - }, - { - "year": 2014, - "value": 3783961.87633413 - }, - { - "year": 2015, - "value": 3819547.62633413 - }, - { - "year": 2016, - "value": 3855133.37633413 - }, - { - "year": 2017, - "value": 3576861.37633413 - }, - { - "year": 2018, - "value": 2912586.37633413 - }, - { - "year": 2019, - "value": 2534464.37633413 - }, - { - "year": 2020, - "value": 2330625.37633413 - }, - { - "year": 2021, - "value": 2330625.37633413 - } - ], - "S1S2": [], - "S3": [], - "S1S2S3": [] - }, - "emission_intensities": { - "S1": [ - { - "year": 2009, - "value": null - }, - { - "year": 2010, - "value": 0.3263416547528934 - }, - { - "year": 2011, - "value": 0.33741775127109996 - }, - { - "year": 2012, - "value": 0.3309675415058707 - }, - { - "year": 2013, - "value": 0.2964191614725413 - }, - { - "year": 2014, - "value": 0.2790526305258781 - }, - { - "year": 2015, - "value": 0.27241811883473793 - }, - { - "year": 2016, - "value": 0.4369213899675792 - }, - { - "year": 2017, - "value": 1.521678905098956 - }, - { - "year": 2018, - "value": 1.0023948250634593 - }, - { - "year": 2019, - "value": 0.750357045582786 - }, - { - "year": 2020, - "value": 0.6960249684999396 - }, - { - "year": 2021, - "value": 0.6960249684999396 - } - ], - "S2": [ - { - "year": 2009, - "value": null - }, - { - "year": 2010, - "value": 0.009703735448715611 - }, - { - "year": 2011, - "value": 0.007220093280815844 - }, - { - "year": 2012, - "value": 0.007967361320818128 - }, - { - "year": 2013, - "value": 0.007825419886254877 - }, - { - "year": 2014, - "value": 0.008050982713813836 - }, - { - "year": 2015, - "value": 0.0077791194002462755 - }, - { - "year": 2016, - "value": 0.014019049155408301 - }, - { - "year": 2017, - "value": 0.06064018597940113 - }, - { - "year": 2018, - "value": 0.05103622581434676 - }, - { - "year": 2019, - "value": 0.04117331165166648 - }, - { - "year": 2020, - "value": 0.04203718069224924 - }, - { - "year": 2021, - "value": 0.04203718069224924 - } - ], - "S1S2": [], - "S3": [], - "S1S2S3": [] - } - } - }, - { - "company_name": "Company AM", - "company_id": "FR0000120644", - "region": "Europe", - "sector": "Electricity Utilities", - "target_probability": 0.4285714285714285, - "historic_data": { - "productions": [ - { - "year": 2009, - "value": null - }, - { - "year": 2010, - "value": 1990487529.3093767 - }, - { - "year": 2011, - "value": 1881092169.3093767 - }, - { - "year": 2012, - "value": 1746463689.3093767 - }, - { - "year": 2013, - "value": 1768197609.3093767 - }, - { - "year": 2014, - "value": 1800040329.3093767 - }, - { - "year": 2015, - "value": 1741487049.3093767 - }, - { - "year": 2016, - "value": 1846359369.3093767 - }, - { - "year": 2017, - "value": 1782635049.3093767 - }, - { - "year": 2018, - "value": 1492136649.3093767 - }, - { - "year": 2019, - "value": 1480680009.3093767 - }, - { - "year": 2020, - "value": 1600080489.3093767 - }, - { - "year": 2021, - "value": 1600080489.3093767 - } - ], - "emissions": { - "S1": [ - { - "year": 2009, - "value": null - }, - { - "year": 2010, - "value": 39499002.5859383 - }, - { - "year": 2011, - "value": 36193002.5859383 - }, - { - "year": 2012, - "value": 35461094.5859383 - }, - { - "year": 2013, - "value": 31838172.5859383 - }, - { - "year": 2014, - "value": 30202558.5859383 - }, - { - "year": 2015, - "value": 31817606.5859383 - }, - { - "year": 2016, - "value": 26625135.5859383 - }, - { - "year": 2017, - "value": 15129771.5859383 - }, - { - "year": 2018, - "value": 13457443.5859383 - }, - { - "year": 2019, - "value": 12966980.5859383 - }, - { - "year": 2020, - "value": 13136322.5859383 - }, - { - "year": 2021, - "value": 13136322.5859383 - } - ], - "S2": [ - { - "year": 2009, - "value": null - }, - { - "year": 2010, - "value": 6236002.58593829 - }, - { - "year": 2011, - "value": 5189002.58593829 - }, - { - "year": 2012, - "value": 7189303.58593829 - }, - { - "year": 2013, - "value": 4181124.58593829 - }, - { - "year": 2014, - "value": 1547095.58593829 - }, - { - "year": 2015, - "value": 970947.585938292 - }, - { - "year": 2016, - "value": 4503672.58593829 - }, - { - "year": 2017, - "value": 5010565.58593829 - }, - { - "year": 2018, - "value": 2543866.58593829 - }, - { - "year": 2019, - "value": 2081746.58593829 - }, - { - "year": 2020, - "value": 2001731.58593829 - }, - { - "year": 2021, - "value": 2001731.58593829 - } - ], - "S1S2": [], - "S3": [], - "S1S2S3": [] - }, - "emission_intensities": { - "S1": [ - { - "year": 2009, - "value": null - }, - { - "year": 2010, - "value": 0.2571767298091901 - }, - { - "year": 2011, - "value": 0.2493558376174469 - }, - { - "year": 2012, - "value": 0.26314648775520477 - }, - { - "year": 2013, - "value": 0.2333578071485585 - }, - { - "year": 2014, - "value": 0.21745354973459868 - }, - { - "year": 2015, - "value": 0.23678394939387504 - }, - { - "year": 2016, - "value": 0.18688764653807832 - }, - { - "year": 2017, - "value": 0.10999550347095743 - }, - { - "year": 2018, - "value": 0.11688505134867072 - }, - { - "year": 2019, - "value": 0.11349654708456793 - }, - { - "year": 2020, - "value": 0.1063988604643518 - }, - { - "year": 2021, - "value": 0.1063988604643518 - } - ], - "S2": [ - { - "year": 2009, - "value": null - }, - { - "year": 2010, - "value": 0.0406024113809952 - }, - { - "year": 2011, - "value": 0.03575022777243828 - }, - { - "year": 2012, - "value": 0.05334973469193888 - }, - { - "year": 2013, - "value": 0.030645542301646213 - }, - { - "year": 2014, - "value": 0.011138838651161208 - }, - { - "year": 2015, - "value": 0.007225710187595436 - }, - { - "year": 2016, - "value": 0.03161226231683834 - }, - { - "year": 2017, - "value": 0.036427495363629124 - }, - { - "year": 2018, - "value": 0.02209483358579754 - }, - { - "year": 2019, - "value": 0.018220976567613723 - }, - { - "year": 2020, - "value": 0.01621321022729142 - }, - { - "year": 2021, - "value": 0.01621321022729142 - } - ], - "S1S2": [], - "S3": [], - "S1S2S3": [] - } - } - }, - { - "company_name": "Company AN", - "company_id": "US24703L1035", - "region": "Asia", - "sector": "Electricity Utilities", - "target_probability": 0.4285714285714285, - "historic_data": { - "productions": [ - { - "year": 2009, - "value": 5271868803.094344 - }, - { - "year": 2010, - "value": 5642576643.094344 - }, - { - "year": 2011, - "value": 5746580643.094344 - }, - { - "year": 2012, - "value": 5808127683.094344 - }, - { - "year": 2013, - "value": 5823226083.094344 - }, - { - "year": 2014, - "value": 5740165443.094344 - }, - { - "year": 2015, - "value": 5610643203.094344 - }, - { - "year": 2016, - "value": 5654577603.094344 - }, - { - "year": 2017, - "value": 5527232643.094344 - }, - { - "year": 2018, - "value": 5421517923.094344 - }, - { - "year": 2019, - "value": 5301547203.094344 - }, - { - "year": 2020, - "value": 5301547203.094344 - }, - { - "year": 2021, - "value": 5301547203.094344 - } - ], - "emissions": { - "S1": [ - { - "year": 2009, - "value": null - }, - { - "year": 2010, - "value": null - }, - { - "year": 2011, - "value": null - }, - { - "year": 2012, - "value": 1174220.85954061 - }, - { - "year": 2013, - "value": 1310000.85954061 - }, - { - "year": 2014, - "value": 1280000.85954061 - }, - { - "year": 2015, - "value": 1150000.85954061 - }, - { - "year": 2016, - "value": 1230000.85954061 - }, - { - "year": 2017, - "value": 1290000.85954061 - }, - { - "year": 2018, - "value": 1170000.85954061 - }, - { - "year": 2019, - "value": 910000.859540609 - }, - { - "year": 2020, - "value": 910000.859540609 - }, - { - "year": 2021, - "value": 910000.859540609 - } - ], - "S2": [ - { - "year": 2009, - "value": null - }, - { - "year": 2010, - "value": null - }, - { - "year": 2011, - "value": null - }, - { - "year": 2012, - "value": 132861.859540609 - }, - { - "year": 2013, - "value": 120000.859540609 - }, - { - "year": 2014, - "value": 140000.859540609 - }, - { - "year": 2015, - "value": 160000.859540609 - }, - { - "year": 2016, - "value": 170000.859540609 - }, - { - "year": 2017, - "value": 180000.859540609 - }, - { - "year": 2018, - "value": 190000.859540609 - }, - { - "year": 2019, - "value": 190000.859540609 - }, - { - "year": 2020, - "value": 190000.859540609 - }, - { - "year": 2021, - "value": 190000.859540609 - } - ], - "S1S2": [], - "S3": [], - "S1S2S3": [] - }, - "emission_intensities": { - "S1": [ - { - "year": 2009, - "value": null - }, - { - "year": 2010, - "value": null - }, - { - "year": 2011, - "value": null - }, - { - "year": 2012, - "value": 0.0026201046481710228 - }, - { - "year": 2013, - "value": 0.0029154992262681854 - }, - { - "year": 2014, - "value": 0.002889953487247187 - }, - { - "year": 2015, - "value": 0.0026563819156111223 - }, - { - "year": 2016, - "value": 0.0028190984824265257 - }, - { - "year": 2017, - "value": 0.003024734477303765 - }, - { - "year": 2018, - "value": 0.0027968571449436134 - }, - { - "year": 2019, - "value": 0.002224560243991176 - }, - { - "year": 2020, - "value": 0.002224560243991176 - }, - { - "year": 2021, - "value": 0.002224560243991176 - } - ], - "S2": [ - { - "year": 2009, - "value": null - }, - { - "year": 2010, - "value": null - }, - { - "year": 2011, - "value": null - }, - { - "year": 2012, - "value": 0.0002964620947742204 - }, - { - "year": 2013, - "value": 0.000267070369148347 - }, - { - "year": 2014, - "value": 0.00031609039105817065 - }, - { - "year": 2015, - "value": 0.000369585280080306 - }, - { - "year": 2016, - "value": 0.0003896331953142924 - }, - { - "year": 2017, - "value": 0.00042205770776825637 - }, - { - "year": 2018, - "value": 0.000454192197568326 - }, - { - "year": 2019, - "value": 0.0004644702848649636 - }, - { - "year": 2020, - "value": 0.0004644702848649636 - }, - { - "year": 2021, - "value": 0.0004644702848649636 - } - ], - "S1S2": [], - "S3": [], - "S1S2S3": [] - } - } - }, - { - "company_name": "Company AO", - "company_id": "TW0002308004", - "region": "Europe", - "sector": "Electricity Utilities", - "target_probability": 0.4285714285714285, - "historic_data": { - "productions": [ - { - "year": 2009, - "value": null - }, - { - "year": 2010, - "value": null - }, - { - "year": 2011, - "value": null - }, - { - "year": 2012, - "value": 76114085.42779164 - }, - { - "year": 2013, - "value": 76114085.42779164 - }, - { - "year": 2014, - "value": 76114085.42779164 - }, - { - "year": 2015, - "value": 76114085.42779164 - }, - { - "year": 2016, - "value": 76114085.42779164 - }, - { - "year": 2017, - "value": 76114085.42779164 - }, - { - "year": 2018, - "value": 76114085.42779164 - }, - { - "year": 2019, - "value": 76114085.42779164 - }, - { - "year": 2020, - "value": 76114085.42779164 - }, - { - "year": 2021, - "value": 76114085.42779164 - } - ], - "emissions": { - "S1": [ - { - "year": 2009, - "value": 11074001.5077199 - }, - { - "year": 2010, - "value": 8500001.50771989 - }, - { - "year": 2011, - "value": 9328837.50771989 - }, - { - "year": 2012, - "value": 8328346.50771989 - }, - { - "year": 2013, - "value": 7914001.50771989 - }, - { - "year": 2014, - "value": 7250001.50771989 - }, - { - "year": 2015, - "value": 7020001.50771989 - }, - { - "year": 2016, - "value": 7038001.50771989 - }, - { - "year": 2017, - "value": 5800001.50771989 - }, - { - "year": 2018, - "value": 4000001.50771989 - }, - { - "year": 2019, - "value": 4500001.50771989 - }, - { - "year": 2020, - "value": 4500001.50771989 - }, - { - "year": 2021, - "value": 4500001.50771989 - } - ], - "S2": [ - { - "year": 2009, - "value": 266001.507719888 - }, - { - "year": 2010, - "value": 350001.507719888 - }, - { - "year": 2011, - "value": 329353.507719888 - }, - { - "year": 2012, - "value": 319181.507719888 - }, - { - "year": 2013, - "value": 250001.507719888 - }, - { - "year": 2014, - "value": 220001.507719888 - }, - { - "year": 2015, - "value": 230001.507719888 - }, - { - "year": 2016, - "value": 247001.507719888 - }, - { - "year": 2017, - "value": 3400001.50771989 - }, - { - "year": 2018, - "value": 2900001.50771989 - }, - { - "year": 2019, - "value": 2500001.50771989 - }, - { - "year": 2020, - "value": 2500001.50771989 - }, - { - "year": 2021, - "value": 2500001.50771989 - } - ], - "S1S2": [], - "S3": [], - "S1S2S3": [] - }, - "emission_intensities": { - "S1": [ - { - "year": 2009, - "value": null - }, - { - "year": 2010, - "value": null - }, - { - "year": 2011, - "value": null - }, - { - "year": 2012, - "value": 1.418073542280774 - }, - { - "year": 2013, - "value": 1.3475227214987966 - }, - { - "year": 2014, - "value": 1.2344629645348417 - }, - { - "year": 2015, - "value": 1.195300699321421 - }, - { - "year": 2016, - "value": 1.1983655722511666 - }, - { - "year": 2017, - "value": 0.9875704229719812 - }, - { - "year": 2018, - "value": 0.6810831299973996 - }, - { - "year": 2019, - "value": 0.7662184891570044 - }, - { - "year": 2020, - "value": 0.7662184891570044 - }, - { - "year": 2021, - "value": 0.7662184891570044 - } - ], - "S2": [ - { - "year": 2009, - "value": null - }, - { - "year": 2010, - "value": null - }, - { - "year": 2011, - "value": null - }, - { - "year": 2012, - "value": 0.05434726459367484 - }, - { - "year": 2013, - "value": 0.04256793630035172 - }, - { - "year": 2014, - "value": 0.037459814750775366 - }, - { - "year": 2015, - "value": 0.03916252193396724 - }, - { - "year": 2016, - "value": 0.04205712414539412 - }, - { - "year": 2017, - "value": 0.5789206990058725 - }, - { - "year": 2018, - "value": 0.493785339846264 - }, - { - "year": 2019, - "value": 0.4256770525185816 - }, - { - "year": 2020, - "value": 0.4256770525185816 - }, - { - "year": 2021, - "value": 0.4256770525185816 - } - ], - "S1S2": [], - "S3": [], - "S1S2S3": [] - } - } - }, - { - "company_name": "Company AP", - "company_id": "FR0000120321", - "region": "Asia", - "sector": "Electricity Utilities", - "target_probability": 0.4285714285714285, - "historic_data": { - "productions": [ - { - "year": 2009, - "value": null - }, - { - "year": 2010, - "value": 2836166403.246948 - }, - { - "year": 2011, - "value": 2858198403.246948 - }, - { - "year": 2012, - "value": 2878027203.246948 - }, - { - "year": 2013, - "value": 3007082883.246948 - }, - { - "year": 2014, - "value": 3023360643.246948 - }, - { - "year": 2015, - "value": 3126729603.246948 - }, - { - "year": 2016, - "value": 3136060803.246948 - }, - { - "year": 2017, - "value": 3244017603.246948 - }, - { - "year": 2018, - "value": 3444768003.246948 - }, - { - "year": 2019, - "value": 3556872003.246948 - }, - { - "year": 2020, - "value": 3364675203.246948 - }, - { - "year": 2021, - "value": 3364675203.246948 - } - ], - "emissions": { - "S1": [ - { - "year": 2009, - "value": null - }, - { - "year": 2010, - "value": 185584163.90193 - }, - { - "year": 2011, - "value": 188513981.90193 - }, - { - "year": 2012, - "value": 189986958.90193 - }, - { - "year": 2013, - "value": 200994691.90193 - }, - { - "year": 2014, - "value": 201036494.90193 - }, - { - "year": 2015, - "value": 213050961.90193 - }, - { - "year": 2016, - "value": 231671486.101929 - }, - { - "year": 2017, - "value": 221222495.90193 - }, - { - "year": 2018, - "value": 231986764.90193 - }, - { - "year": 2019, - "value": 240369173.90193 - }, - { - "year": 2020, - "value": 226132940.90193 - }, - { - "year": 2021, - "value": 226132940.90193 - } - ], - "S2": [ - { - "year": 2009, - "value": null - }, - { - "year": 2010, - "value": null - }, - { - "year": 2011, - "value": null - }, - { - "year": 2012, - "value": 0.901929562977962 - }, - { - "year": 2013, - "value": 0.901929562977962 - }, - { - "year": 2014, - "value": 0.901929562977962 - }, - { - "year": 2015, - "value": 6235.05442956298 - }, - { - "year": 2016, - "value": 12469.206929563 - }, - { - "year": 2017, - "value": 18703.359429563 - }, - { - "year": 2018, - "value": 24937.511929563 - }, - { - "year": 2019, - "value": 23268.401929563 - }, - { - "year": 2020, - "value": 15845.901929563 - }, - { - "year": 2021, - "value": 15845.901929563 - } - ], - "S1S2": [], - "S3": [], - "S1S2S3": [] - }, - "emission_intensities": { - "S1": [ - { - "year": 2009, - "value": null - }, - { - "year": 2010, - "value": 0.848035842119658 - }, - { - "year": 2011, - "value": 0.8547836296716036 - }, - { - "year": 2012, - "value": 0.8555273503291261 - }, - { - "year": 2013, - "value": 0.8662518820353672 - }, - { - "year": 2014, - "value": 0.8617671794294748 - }, - { - "year": 2015, - "value": 0.8830761903369287 - }, - { - "year": 2016, - "value": 0.95739931342287 - }, - { - "year": 2017, - "value": 0.8837940780652285 - }, - { - "year": 2018, - "value": 0.8727869250687168 - }, - { - "year": 2019, - "value": 0.8758213652122596 - }, - { - "year": 2020, - "value": 0.8710151016243313 - }, - { - "year": 2021, - "value": 0.8710151016243313 - } - ], - "S2": [ - { - "year": 2009, - "value": null - }, - { - "year": 2010, - "value": null - }, - { - "year": 2011, - "value": null - }, - { - "year": 2012, - "value": 4.061465132437621e-09 - }, - { - "year": 2013, - "value": 3.887158282638696e-09 - }, - { - "year": 2014, - "value": 3.866229840063312e-09 - }, - { - "year": 2015, - "value": 2.5843713931394353e-05 - }, - { - "year": 2016, - "value": 5.15299070859282e-05 - }, - { - "year": 2017, - "value": 7.472078387137044e-05 - }, - { - "year": 2018, - "value": 9.382058655401627e-05 - }, - { - "year": 2019, - "value": 8.478193444460569e-05 - }, - { - "year": 2020, - "value": 6.103498156641072e-05 - }, - { - "year": 2021, - "value": 6.103498156641072e-05 - } - ], - "S1S2": [], - "S3": [], - "S1S2S3": [] - } - } - }, - { - "company_name": "Company AQ", - "company_id": "CH0038863350", - "region": "Asia", - "sector": "Electricity Utilities", - "target_probability": 0.4285714285714285, - "historic_data": { - "productions": [ - { - "year": 2009, - "value": null - }, - { - "year": 2010, - "value": 125595364.15776384 - }, - { - "year": 2011, - "value": 127565284.15776384 - }, - { - "year": 2012, - "value": 138062884.15776384 - }, - { - "year": 2013, - "value": 203459044.15776384 - }, - { - "year": 2014, - "value": 222847204.15776384 - }, - { - "year": 2015, - "value": 258448324.15776387 - }, - { - "year": 2016, - "value": 260094244.15776387 - }, - { - "year": 2017, - "value": 263023204.15776387 - }, - { - "year": 2018, - "value": 279689764.1577639 - }, - { - "year": 2019, - "value": 262841764.15776387 - }, - { - "year": 2020, - "value": 236895844.15776384 - }, - { - "year": 2021, - "value": 236895844.15776384 - } - ], - "emissions": { - "S1": [ - { - "year": 2009, - "value": null - }, - { - "year": 2010, - "value": 1968704.15493443 - }, - { - "year": 2011, - "value": 2832949.15493443 - }, - { - "year": 2012, - "value": 12866001.1549344 - }, - { - "year": 2013, - "value": 13663001.1549344 - }, - { - "year": 2014, - "value": 14934001.1549344 - }, - { - "year": 2015, - "value": 16918001.1549344 - }, - { - "year": 2016, - "value": 16977001.1549344 - }, - { - "year": 2017, - "value": 17293001.1549344 - }, - { - "year": 2018, - "value": 18162001.1549344 - }, - { - "year": 2019, - "value": 17976001.1549344 - }, - { - "year": 2020, - "value": 16065001.1549344 - }, - { - "year": 2021, - "value": 16065001.1549344 - } - ], - "S2": [ - { - "year": 2009, - "value": null - }, - { - "year": 2010, - "value": 52966.1549344293 - }, - { - "year": 2011, - "value": 58302.1549344293 - }, - { - "year": 2012, - "value": 61001.1549344293 - }, - { - "year": 2013, - "value": 202001.154934429 - }, - { - "year": 2014, - "value": 130001.154934429 - }, - { - "year": 2015, - "value": 409001.154934429 - }, - { - "year": 2016, - "value": 1265001.15493443 - }, - { - "year": 2017, - "value": 1818001.15493443 - }, - { - "year": 2018, - "value": 2090001.15493443 - }, - { - "year": 2019, - "value": 2289001.15493443 - }, - { - "year": 2020, - "value": 2403001.15493443 - }, - { - "year": 2021, - "value": 2403001.15493443 - } - ], - "S1S2": [], - "S3": [], - "S1S2S3": [] - }, - "emission_intensities": { - "S1": [ - { - "year": 2009, - "value": null - }, - { - "year": 2010, - "value": 0.20314767204226442 - }, - { - "year": 2011, - "value": 0.28781357945742975 - }, - { - "year": 2012, - "value": 1.207734982396956 - }, - { - "year": 2013, - "value": 0.8703102666237157 - }, - { - "year": 2014, - "value": 0.8685083382555276 - }, - { - "year": 2015, - "value": 0.8483602889764117 - }, - { - "year": 2016, - "value": 0.84593158022556 - }, - { - "year": 2017, - "value": 0.852081836983182 - }, - { - "year": 2018, - "value": 0.841573647418788 - }, - { - "year": 2019, - "value": 0.8863468700054724 - }, - { - "year": 2020, - "value": 0.8788774480539012 - }, - { - "year": 2021, - "value": 0.8788774480539012 - } - ], - "S2": [ - { - "year": 2009, - "value": null - }, - { - "year": 2010, - "value": 0.00546549924476466 - }, - { - "year": 2011, - "value": 0.005923209695638932 - }, - { - "year": 2012, - "value": 0.0057261947899539594 - }, - { - "year": 2013, - "value": 0.012867134900723496 - }, - { - "year": 2014, - "value": 0.007560404333174592 - }, - { - "year": 2015, - "value": 0.020509535069434367 - }, - { - "year": 2016, - "value": 0.06303259428534648 - }, - { - "year": 2017, - "value": 0.0895787694602712 - }, - { - "year": 2018, - "value": 0.09684449858047572 - }, - { - "year": 2019, - "value": 0.1128643123478058 - }, - { - "year": 2020, - "value": 0.13146239470207932 - }, - { - "year": 2021, - "value": 0.13146239470207932 - } - ], - "S1S2": [], - "S3": [], - "S1S2S3": [] - } - } - }, - { - "company_name": "Company AR", - "company_id": "US8356993076", - "region": "Europe", - "sector": "Electricity Utilities", - "target_probability": 0.4285714285714285, - "historic_data": { - "productions": [ - { - "year": 2009, - "value": 697248015.4129393 - }, - { - "year": 2010, - "value": 683380815.4129393 - }, - { - "year": 2011, - "value": 732499215.4129393 - }, - { - "year": 2012, - "value": 739368015.4129393 - }, - { - "year": 2013, - "value": 739238415.4129393 - }, - { - "year": 2014, - "value": 710726415.4129393 - }, - { - "year": 2015, - "value": 720316815.4129393 - }, - { - "year": 2016, - "value": 695563215.4129393 - }, - { - "year": 2017, - "value": 841262415.4129393 - }, - { - "year": 2018, - "value": 1038312015.4129393 - }, - { - "year": 2019, - "value": 1038312015.4129393 - }, - { - "year": 2020, - "value": 1038312015.4129393 - }, - { - "year": 2021, - "value": 1038312015.4129393 - } - ], - "emissions": { - "S1": [ - { - "year": 2009, - "value": null - }, - { - "year": 2010, - "value": null - }, - { - "year": 2011, - "value": null - }, - { - "year": 2012, - "value": null - }, - { - "year": 2013, - "value": null - }, - { - "year": 2014, - "value": null - }, - { - "year": 2015, - "value": null - }, - { - "year": 2016, - "value": null - }, - { - "year": 2017, - "value": null - }, - { - "year": 2018, - "value": null - }, - { - "year": 2019, - "value": null - }, - { - "year": 2020, - "value": null - }, - { - "year": 2021, - "value": null - } - ], - "S2": [ - { - "year": 2009, - "value": null - }, - { - "year": 2010, - "value": null - }, - { - "year": 2011, - "value": null - }, - { - "year": 2012, - "value": null - }, - { - "year": 2013, - "value": null - }, - { - "year": 2014, - "value": null - }, - { - "year": 2015, - "value": null - }, - { - "year": 2016, - "value": null - }, - { - "year": 2017, - "value": null - }, - { - "year": 2018, - "value": null - }, - { - "year": 2019, - "value": null - }, - { - "year": 2020, - "value": null - }, - { - "year": 2021, - "value": null - } - ], - "S1S2": [], - "S3": [], - "S1S2S3": [] - }, - "emission_intensities": { - "S1": [ - { - "year": 2009, - "value": null - }, - { - "year": 2010, - "value": null - }, - { - "year": 2011, - "value": null - }, - { - "year": 2012, - "value": null - }, - { - "year": 2013, - "value": null - }, - { - "year": 2014, - "value": null - }, - { - "year": 2015, - "value": null - }, - { - "year": 2016, - "value": null - }, - { - "year": 2017, - "value": null - }, - { - "year": 2018, - "value": null - }, - { - "year": 2019, - "value": null - }, - { - "year": 2020, - "value": null - }, - { - "year": 2021, - "value": null - } - ], - "S2": [ - { - "year": 2009, - "value": null - }, - { - "year": 2010, - "value": null - }, - { - "year": 2011, - "value": null - }, - { - "year": 2012, - "value": null - }, - { - "year": 2013, - "value": null - }, - { - "year": 2014, - "value": null - }, - { - "year": 2015, - "value": null - }, - { - "year": 2016, - "value": null - }, - { - "year": 2017, - "value": null - }, - { - "year": 2018, - "value": null - }, - { - "year": 2019, - "value": null - }, - { - "year": 2020, - "value": null - }, - { - "year": 2021, - "value": null - } - ], - "S1S2": [], - "S3": [], - "S1S2S3": [] - } - } - }, - { - "company_name": "Company AS", - "company_id": "JP3401400001", - "region": "Asia", - "sector": "Electricity Utilities", - "target_probability": 0.4285714285714285, - "historic_data": { - "productions": [ - { - "year": 2009, - "value": 159563527.70578668 - }, - { - "year": 2010, - "value": 146979367.70578668 - }, - { - "year": 2011, - "value": 146435047.70578668 - }, - { - "year": 2012, - "value": 143026567.70578668 - }, - { - "year": 2013, - "value": 139618087.70578668 - }, - { - "year": 2014, - "value": 190050203.6009867 - }, - { - "year": 2015, - "value": 214535101.14178666 - }, - { - "year": 2016, - "value": 233145050.2433867 - }, - { - "year": 2017, - "value": 218105285.54578668 - }, - { - "year": 2018, - "value": 167479620.8129867 - }, - { - "year": 2019, - "value": 171690299.59138668 - }, - { - "year": 2020, - "value": 171690299.59138668 - }, - { - "year": 2021, - "value": 171690299.59138668 - } - ], - "emissions": { - "S1": [ - { - "year": 2009, - "value": 9150002.14049632 - }, - { - "year": 2010, - "value": 8650002.14049632 - }, - { - "year": 2011, - "value": 8631002.14049632 - }, - { - "year": 2012, - "value": 8960002.14049632 - }, - { - "year": 2013, - "value": 9296403.94049632 - }, - { - "year": 2014, - "value": 9632805.74049632 - }, - { - "year": 2015, - "value": 9969207.54049632 - }, - { - "year": 2016, - "value": 10305609.3404963 - }, - { - "year": 2017, - "value": 10642011.1404963 - }, - { - "year": 2018, - "value": 11403118.1404963 - }, - { - "year": 2019, - "value": 9681777.14049632 - }, - { - "year": 2020, - "value": 9681777.14049632 - }, - { - "year": 2021, - "value": 9681777.14049632 - } - ], - "S2": [ - { - "year": 2009, - "value": null - }, - { - "year": 2010, - "value": 2.14049631522688 - }, - { - "year": 2011, - "value": 2.14049631522688 - }, - { - "year": 2012, - "value": 2.14049631522688 - }, - { - "year": 2013, - "value": 310616.540496315 - }, - { - "year": 2014, - "value": 621230.940496315 - }, - { - "year": 2015, - "value": 931845.340496315 - }, - { - "year": 2016, - "value": 1242459.74049632 - }, - { - "year": 2017, - "value": 1553074.14049631 - }, - { - "year": 2018, - "value": 1239860.14049631 - }, - { - "year": 2019, - "value": 1203273.14049631 - }, - { - "year": 2020, - "value": 1203273.14049631 - }, - { - "year": 2021, - "value": 1203273.14049631 - } - ], - "S1S2": [], - "S3": [], - "S1S2S3": [] - }, - "emission_intensities": { - "S1": [ - { - "year": 2009, - "value": 0.7431775258785013 - }, - { - "year": 2010, - "value": 0.7627194856711764 - }, - { - "year": 2011, - "value": 0.7638730583512608 - }, - { - "year": 2012, - "value": 0.8118885155637708 - }, - { - "year": 2013, - "value": 0.8629354337148576 - }, - { - "year": 2014, - "value": 0.6568851810279456 - }, - { - "year": 2015, - "value": 0.6022367856691344 - }, - { - "year": 2016, - "value": 0.5728652481080088 - }, - { - "year": 2017, - "value": 0.6323572766047393 - }, - { - "year": 2018, - "value": 0.8824023507066155 - }, - { - "year": 2019, - "value": 0.7308265641067548 - }, - { - "year": 2020, - "value": 0.7308265641067548 - }, - { - "year": 2021, - "value": 0.7308265641067548 - } - ], - "S2": [ - { - "year": 2009, - "value": null - }, - { - "year": 2010, - "value": 1.8873963521784973e-07 - }, - { - "year": 2011, - "value": 1.894412074155671e-07 - }, - { - "year": 2012, - "value": 1.9395579919392828e-07 - }, - { - "year": 2013, - "value": 0.028832871377777763 - }, - { - "year": 2014, - "value": 0.042363295783338244 - }, - { - "year": 2015, - "value": 0.05629249269027864 - }, - { - "year": 2016, - "value": 0.0690654947210874 - }, - { - "year": 2017, - "value": 0.09228497516905357 - }, - { - "year": 2018, - "value": 0.0959435383411512 - }, - { - "year": 2019, - "value": 0.09082877680303489 - }, - { - "year": 2020, - "value": 0.09082877680303489 - }, - { - "year": 2021, - "value": 0.09082877680303489 - } - ], - "S1S2": [], - "S3": [], - "S1S2S3": [] - } - } - }, - { - "company_name": "Company AT", - "company_id": "US6541061031", - "region": "Europe", - "sector": "Electricity Utilities", - "target_probability": 0.4285714285714285, - "historic_data": { - "productions": [ - { - "year": 2009, - "value": null - }, - { - "year": 2010, - "value": 2919888004.0657935 - }, - { - "year": 2011, - "value": 2665872004.0657935 - }, - { - "year": 2012, - "value": 2943216004.0657935 - }, - { - "year": 2013, - "value": 2808432004.0657935 - }, - { - "year": 2014, - "value": 2699568004.0657935 - }, - { - "year": 2015, - "value": 2760480004.0657935 - }, - { - "year": 2016, - "value": 2800656004.0657935 - }, - { - "year": 2017, - "value": 2594592004.0657935 - }, - { - "year": 2018, - "value": 2280960004.0657935 - }, - { - "year": 2019, - "value": 1985018404.0657933 - }, - { - "year": 2020, - "value": 1902204004.0657933 - }, - { - "year": 2021, - "value": 1902204004.0657933 - } - ], - "emissions": { - "S1": [ - { - "year": 2009, - "value": null - }, - { - "year": 2010, - "value": 167100001.129387 - }, - { - "year": 2011, - "value": 163800001.129387 - }, - { - "year": 2012, - "value": 181700001.129387 - }, - { - "year": 2013, - "value": 165800001.129387 - }, - { - "year": 2014, - "value": 156600001.129387 - }, - { - "year": 2015, - "value": 152300001.129387 - }, - { - "year": 2016, - "value": 154000001.129387 - }, - { - "year": 2017, - "value": 135600001.129387 - }, - { - "year": 2018, - "value": 120400001.129387 - }, - { - "year": 2019, - "value": 91700001.129387 - }, - { - "year": 2020, - "value": 70400001.129387 - }, - { - "year": 2021, - "value": 70400001.129387 - } - ], - "S2": [ - { - "year": 2009, - "value": null - }, - { - "year": 2010, - "value": 3100001.12938701 - }, - { - "year": 2011, - "value": 2400001.12938701 - }, - { - "year": 2012, - "value": 1900001.12938701 - }, - { - "year": 2013, - "value": 1500001.12938701 - }, - { - "year": 2014, - "value": 1400001.12938701 - }, - { - "year": 2015, - "value": 1300001.12938701 - }, - { - "year": 2016, - "value": 1300001.12938701 - }, - { - "year": 2017, - "value": 1000001.12938701 - }, - { - "year": 2018, - "value": 5000001.12938701 - }, - { - "year": 2019, - "value": 4700001.12938701 - }, - { - "year": 2020, - "value": 2600001.12938701 - }, - { - "year": 2021, - "value": 2600001.12938701 - } - ], - "S1S2": [], - "S3": [], - "S1S2S3": [] - }, - "emission_intensities": { - "S1": [ - { - "year": 2009, - "value": null - }, - { - "year": 2010, - "value": 0.7416777669627563 - }, - { - "year": 2011, - "value": 0.7963053032550852 - }, - { - "year": 2012, - "value": 0.8000880707986993 - }, - { - "year": 2013, - "value": 0.7651130636333952 - }, - { - "year": 2014, - "value": 0.7518002923357344 - }, - { - "year": 2015, - "value": 0.715023478427562 - }, - { - "year": 2016, - "value": 0.7126330444508124 - }, - { - "year": 2017, - "value": 0.6773226819025896 - }, - { - "year": 2018, - "value": 0.6840909142884937 - }, - { - "year": 2019, - "value": 0.5987007537072012 - }, - { - "year": 2020, - "value": 0.47964572290181157 - }, - { - "year": 2021, - "value": 0.47964572290181157 - } - ], - "S2": [ - { - "year": 2009, - "value": null - }, - { - "year": 2010, - "value": 0.013759436862274392 - }, - { - "year": 2011, - "value": 0.011667482380781245 - }, - { - "year": 2012, - "value": 0.008366363393933629 - }, - { - "year": 2013, - "value": 0.006922017199886688 - }, - { - "year": 2014, - "value": 0.00672108078386214 - }, - { - "year": 2015, - "value": 0.006103291678273692 - }, - { - "year": 2016, - "value": 0.006015738674223793 - }, - { - "year": 2017, - "value": 0.004995010628471448 - }, - { - "year": 2018, - "value": 0.028409097275423567 - }, - { - "year": 2019, - "value": 0.030685868963276727 - }, - { - "year": 2020, - "value": 0.017714196040400174 - }, - { - "year": 2021, - "value": 0.017714196040400174 - } - ], - "S1S2": [], - "S3": [], - "S1S2S3": [] - } - } - }, - { - "company_name": "Company AU", - "company_id": "GB0031274896", - "region": "North America", - "sector": "Electricity Utilities", - "target_probability": 0.4285714285714285, - "historic_data": { - "productions": [ - { - "year": 2009, - "value": 926887167.2113813 - }, - { - "year": 2010, - "value": 965233460.0113813 - }, - { - "year": 2011, - "value": 968392251.2113813 - }, - { - "year": 2012, - "value": 972920165.6113813 - }, - { - "year": 2013, - "value": 919330565.6113813 - }, - { - "year": 2014, - "value": 954115205.6113813 - }, - { - "year": 2015, - "value": 949695845.6113813 - }, - { - "year": 2016, - "value": 960753123.2113813 - }, - { - "year": 2017, - "value": 939777829.7713813 - }, - { - "year": 2018, - "value": 891855365.6113813 - }, - { - "year": 2019, - "value": 874385285.6113813 - }, - { - "year": 2020, - "value": 874385285.6113813 - }, - { - "year": 2021, - "value": 874385285.6113813 - } - ], - "emissions": { - "S1": [ - { - "year": 2009, - "value": 55192252.5587173 - }, - { - "year": 2010, - "value": 56075311.5587173 - }, - { - "year": 2011, - "value": 54746972.5587173 - }, - { - "year": 2012, - "value": 54472481.5587173 - }, - { - "year": 2013, - "value": 56535331.5587173 - }, - { - "year": 2014, - "value": 57593228.5587173 - }, - { - "year": 2015, - "value": 56978409.5587173 - }, - { - "year": 2016, - "value": 52832514.4587173 - }, - { - "year": 2017, - "value": 50919739.3587173 - }, - { - "year": 2018, - "value": 50723846.5587173 - }, - { - "year": 2019, - "value": 48061950.5587173 - }, - { - "year": 2020, - "value": 48061950.5587173 - }, - { - "year": 2021, - "value": 48061950.5587173 - } - ], - "S2": [ - { - "year": 2009, - "value": 1007225.55871729 - }, - { - "year": 2010, - "value": 1933034.55871729 - }, - { - "year": 2011, - "value": 1052282.55871729 - }, - { - "year": 2012, - "value": 1189960.55871729 - }, - { - "year": 2013, - "value": 774476.55871729 - }, - { - "year": 2014, - "value": 601657.55871729 - }, - { - "year": 2015, - "value": 1061617.55871729 - }, - { - "year": 2016, - "value": 891280.15871729 - }, - { - "year": 2017, - "value": 1153067.75871729 - }, - { - "year": 2018, - "value": 841797.55871729 - }, - { - "year": 2019, - "value": 607645.55871729 - }, - { - "year": 2020, - "value": 607645.55871729 - }, - { - "year": 2021, - "value": 607645.55871729 - } - ], - "S1S2": [], - "S3": [], - "S1S2S3": [] - }, - "emission_intensities": { - "S1": [ - { - "year": 2009, - "value": 0.771713773223328 - }, - { - "year": 2010, - "value": 0.7529121895467709 - }, - { - "year": 2011, - "value": 0.73267910133876 - }, - { - "year": 2012, - "value": 0.7256128364420833 - }, - { - "year": 2013, - "value": 0.7969906847529973 - }, - { - "year": 2014, - "value": 0.7823041051344408 - }, - { - "year": 2015, - "value": 0.7775544047005837 - }, - { - "year": 2016, - "value": 0.7126798454698644 - }, - { - "year": 2017, - "value": 0.7022083317814728 - }, - { - "year": 2018, - "value": 0.7370937898101109 - }, - { - "year": 2019, - "value": 0.7123666071364056 - }, - { - "year": 2020, - "value": 0.7123666071364056 - }, - { - "year": 2021, - "value": 0.7123666071364056 - } - ], - "S2": [ - { - "year": 2009, - "value": 0.014083314240123792 - }, - { - "year": 2010, - "value": 0.025954475180212513 - }, - { - "year": 2011, - "value": 0.014082704548612957 - }, - { - "year": 2012, - "value": 0.01585113495030187 - }, - { - "year": 2013, - "value": 0.010917962021964349 - }, - { - "year": 2014, - "value": 0.008172474262140671 - }, - { - "year": 2015, - "value": 0.01448733678740982 - }, - { - "year": 2016, - "value": 0.012022850176501211 - }, - { - "year": 2017, - "value": 0.015901373366736478 - }, - { - "year": 2018, - "value": 0.012232584768380328 - }, - { - "year": 2019, - "value": 0.009006426080774784 - }, - { - "year": 2020, - "value": 0.009006426080774784 - }, - { - "year": 2021, - "value": 0.009006426080774784 - } - ], - "S1S2": [], - "S3": [], - "S1S2S3": [] - } - } - }, - { - "company_name": "Company AV", - "company_id": "US6293775085", - "region": "Europe", - "sector": "Steel", - "target_probability": 0.4285714285714285, - "historic_data": { - "productions": [ - { - "year": 2009, - "value": null - }, - { - "year": 2010, - "value": null - }, - { - "year": 2011, - "value": null - }, - { - "year": 2012, - "value": null - }, - { - "year": 2013, - "value": null - }, - { - "year": 2014, - "value": 91200001.3960884 - }, - { - "year": 2015, - "value": 92479001.3960884 - }, - { - "year": 2016, - "value": 90800001.3960884 - }, - { - "year": 2017, - "value": 93100001.3960884 - }, - { - "year": 2018, - "value": 92500001.3960884 - }, - { - "year": 2019, - "value": 89800001.3960884 - }, - { - "year": 2020, - "value": 71500001.3960884 - }, - { - "year": 2021, - "value": 71500001.3960884 - } - ], - "emissions": { - "S1": [ - { - "year": 2009, - "value": null - }, - { - "year": 2010, - "value": 165226001.396088 - }, - { - "year": 2011, - "value": 162028001.396088 - }, - { - "year": 2012, - "value": 158192001.396088 - }, - { - "year": 2013, - "value": 169000001.396088 - }, - { - "year": 2014, - "value": 174000001.396088 - }, - { - "year": 2015, - "value": 176000001.396088 - }, - { - "year": 2016, - "value": 176000001.396088 - }, - { - "year": 2017, - "value": 179700001.396088 - }, - { - "year": 2018, - "value": 174900001.396088 - }, - { - "year": 2019, - "value": 169800001.396088 - }, - { - "year": 2020, - "value": 141300001.396088 - }, - { - "year": 2021, - "value": 141300001.396088 - } - ], - "S2": [ - { - "year": 2009, - "value": null - }, - { - "year": 2010, - "value": 19599001.3960884 - }, - { - "year": 2011, - "value": 17902001.3960884 - }, - { - "year": 2012, - "value": 17256001.3960884 - }, - { - "year": 2013, - "value": 21000001.3960884 - }, - { - "year": 2014, - "value": 17000001.3960884 - }, - { - "year": 2015, - "value": 16000001.3960884 - }, - { - "year": 2016, - "value": 14000001.3960884 - }, - { - "year": 2017, - "value": 15100001.3960884 - }, - { - "year": 2018, - "value": 13900001.3960884 - }, - { - "year": 2019, - "value": 12100001.3960884 - }, - { - "year": 2020, - "value": 9500001.3960884 - }, - { - "year": 2021, - "value": 9500001.3960884 - } - ], - "S1S2": [], - "S3": [], - "S1S2S3": [] - }, - "emission_intensities": null - } - }, - { - "company_name": "Company AW", - "company_id": "US7134481081", - "region": "Asia", - "sector": "Steel", - "target_probability": 0.4285714285714285, - "historic_data": { - "productions": [ - { - "year": 2009, - "value": null - }, - { - "year": 2010, - "value": null - }, - { - "year": 2011, - "value": null - }, - { - "year": 2012, - "value": null - }, - { - "year": 2013, - "value": null - }, - { - "year": 2014, - "value": null - }, - { - "year": 2015, - "value": null - }, - { - "year": 2016, - "value": null - }, - { - "year": 2017, - "value": null - }, - { - "year": 2018, - "value": null - }, - { - "year": 2019, - "value": null - }, - { - "year": 2020, - "value": null - }, - { - "year": 2021, - "value": null - } - ], - "emissions": { - "S1": [ - { - "year": 2009, - "value": null - }, - { - "year": 2010, - "value": null - }, - { - "year": 2011, - "value": 13390004.4552317 - }, - { - "year": 2012, - "value": 9480004.45523172 - }, - { - "year": 2013, - "value": 8095004.45523172 - }, - { - "year": 2014, - "value": 7840004.45523172 - }, - { - "year": 2015, - "value": 7810004.45523172 - }, - { - "year": 2016, - "value": 8270004.45523172 - }, - { - "year": 2017, - "value": 8670004.45523172 - }, - { - "year": 2018, - "value": 8780004.45523172 - }, - { - "year": 2019, - "value": 8590004.45523172 - }, - { - "year": 2020, - "value": 8530004.45523172 - }, - { - "year": 2021, - "value": 8530004.45523172 - } - ], - "S2": [ - { - "year": 2009, - "value": null - }, - { - "year": 2010, - "value": null - }, - { - "year": 2011, - "value": 2530004.45523172 - }, - { - "year": 2012, - "value": 1970004.45523172 - }, - { - "year": 2013, - "value": 1781004.45523172 - }, - { - "year": 2014, - "value": 1541004.45523172 - }, - { - "year": 2015, - "value": 1570004.45523172 - }, - { - "year": 2016, - "value": 1830004.45523172 - }, - { - "year": 2017, - "value": 2000004.45523172 - }, - { - "year": 2018, - "value": 1970004.45523172 - }, - { - "year": 2019, - "value": 1810004.45523172 - }, - { - "year": 2020, - "value": 1750004.45523172 - }, - { - "year": 2021, - "value": 1750004.45523172 - } - ], - "S1S2": [], - "S3": [], - "S1S2S3": [] - }, - "emission_intensities": { - "S1": [ - { - "year": 2009, - "value": null - }, - { - "year": 2010, - "value": null - }, - { - "year": 2011, - "value": null - }, - { - "year": 2012, - "value": null - }, - { - "year": 2013, - "value": null - }, - { - "year": 2014, - "value": null - }, - { - "year": 2015, - "value": null - }, - { - "year": 2016, - "value": null - }, - { - "year": 2017, - "value": null - }, - { - "year": 2018, - "value": null - }, - { - "year": 2019, - "value": null - }, - { - "year": 2020, - "value": null - }, - { - "year": 2021, - "value": null - } - ], - "S2": [ - { - "year": 2009, - "value": null - }, - { - "year": 2010, - "value": null - }, - { - "year": 2011, - "value": null - }, - { - "year": 2012, - "value": null - }, - { - "year": 2013, - "value": null - }, - { - "year": 2014, - "value": null - }, - { - "year": 2015, - "value": null - }, - { - "year": 2016, - "value": null - }, - { - "year": 2017, - "value": null - }, - { - "year": 2018, - "value": null - }, - { - "year": 2019, - "value": null - }, - { - "year": 2020, - "value": null - }, - { - "year": 2021, - "value": null - } - ], - "S1S2": [], - "S3": [], - "S1S2S3": [] - } - } - }, - { - "company_name": "Company A", - "company_id": "JP0000000001", - "region": "Asia", - "sector": "Steel", - "target_probability": 0.4285714285714285, - "historic_data": { - "productions": [ - { - "year": 2009, - "value": null - }, - { - "year": 2010, - "value": null - }, - { - "year": 2011, - "value": null - }, - { - "year": 2012, - "value": null - }, - { - "year": 2013, - "value": null - }, - { - "year": 2014, - "value": null - }, - { - "year": 2015, - "value": null - }, - { - "year": 2016, - "value": null - }, - { - "year": 2017, - "value": null - }, - { - "year": 2018, - "value": null - }, - { - "year": 2019, - "value": null - }, - { - "year": 2020, - "value": null - }, - { - "year": 2021, - "value": null - } - ], - "emissions": { - "S1": [ - { - "year": 2009, - "value": 21759305.8145184 - }, - { - "year": 2010, - "value": 20966413.8145184 - }, - { - "year": 2011, - "value": 21128989.8145184 - }, - { - "year": 2012, - "value": 20070402.8145184 - }, - { - "year": 2013, - "value": 19691129.8145184 - }, - { - "year": 2014, - "value": 19443564.8145184 - }, - { - "year": 2015, - "value": 20018158.8145184 - }, - { - "year": 2016, - "value": 21042990.8145184 - }, - { - "year": 2017, - "value": 20006804.8145184 - }, - { - "year": 2018, - "value": 20805771.8145184 - }, - { - "year": 2019, - "value": 20351815.8145184 - }, - { - "year": 2020, - "value": 20351815.8145184 - }, - { - "year": 2021, - "value": 20351815.8145184 - } - ], - "S2": [ - { - "year": 2009, - "value": 1337565.8145184 - }, - { - "year": 2010, - "value": 1349200.8145184 - }, - { - "year": 2011, - "value": 1371359.8145184 - }, - { - "year": 2012, - "value": 1243282.8145184 - }, - { - "year": 2013, - "value": 1257964.8145184 - }, - { - "year": 2014, - "value": 1185845.8145184 - }, - { - "year": 2015, - "value": 1109279.8145184 - }, - { - "year": 2016, - "value": 1275990.8145184 - }, - { - "year": 2017, - "value": 1298687.8145184 - }, - { - "year": 2018, - "value": 1294689.8145184 - }, - { - "year": 2019, - "value": 1181783.8145184 - }, - { - "year": 2020, - "value": 1181783.8145184 - }, - { - "year": 2021, - "value": 1181783.8145184 - } - ], - "S1S2": [], - "S3": [], - "S1S2S3": [] - }, - "emission_intensities": { - "S1": [ - { - "year": 2009, - "value": null - }, - { - "year": 2010, - "value": null - }, - { - "year": 2011, - "value": null - }, - { - "year": 2012, - "value": null - }, - { - "year": 2013, - "value": null - }, - { - "year": 2014, - "value": null - }, - { - "year": 2015, - "value": null - }, - { - "year": 2016, - "value": null - }, - { - "year": 2017, - "value": null - }, - { - "year": 2018, - "value": null - }, - { - "year": 2019, - "value": null - }, - { - "year": 2020, - "value": null - }, - { - "year": 2021, - "value": null - } - ], - "S2": [ - { - "year": 2009, - "value": null - }, - { - "year": 2010, - "value": null - }, - { - "year": 2011, - "value": null - }, - { - "year": 2012, - "value": null - }, - { - "year": 2013, - "value": null - }, - { - "year": 2014, - "value": null - }, - { - "year": 2015, - "value": null - }, - { - "year": 2016, - "value": null - }, - { - "year": 2017, - "value": null - }, - { - "year": 2018, - "value": null - }, - { - "year": 2019, - "value": null - }, - { - "year": 2020, - "value": null - }, - { - "year": 2021, - "value": null - } - ], - "S1S2": [], - "S3": [], - "S1S2S3": [] - } - } - }, - { - "company_name": "Company B", - "company_id": "NL0000000002", - "region": "South America", - "sector": "Steel", - "target_probability": 0.4285714285714285, - "historic_data": { - "productions": [ - { - "year": 2009, - "value": null - }, - { - "year": 2010, - "value": null - }, - { - "year": 2011, - "value": null - }, - { - "year": 2012, - "value": null - }, - { - "year": 2013, - "value": null - }, - { - "year": 2014, - "value": null - }, - { - "year": 2015, - "value": null - }, - { - "year": 2016, - "value": null - }, - { - "year": 2017, - "value": 16120000.4760821 - }, - { - "year": 2018, - "value": 15342000.4760821 - }, - { - "year": 2019, - "value": 12453000.4760821 - }, - { - "year": 2020, - "value": 12194000.4760821 - }, - { - "year": 2021, - "value": 12194000.4760821 - } - ], - "emissions": { - "S1": [ - { - "year": 2009, - "value": null - }, - { - "year": 2010, - "value": null - }, - { - "year": 2011, - "value": null - }, - { - "year": 2012, - "value": null - }, - { - "year": 2013, - "value": null - }, - { - "year": 2014, - "value": null - }, - { - "year": 2015, - "value": null - }, - { - "year": 2016, - "value": null - }, - { - "year": 2017, - "value": null - }, - { - "year": 2018, - "value": null - }, - { - "year": 2019, - "value": 9056.99508207154 - }, - { - "year": 2020, - "value": 9056.99508207154 - }, - { - "year": 2021, - "value": 9056.99508207154 - } - ], - "S2": [ - { - "year": 2009, - "value": null - }, - { - "year": 2010, - "value": null - }, - { - "year": 2011, - "value": null - }, - { - "year": 2012, - "value": null - }, - { - "year": 2013, - "value": null - }, - { - "year": 2014, - "value": null - }, - { - "year": 2015, - "value": null - }, - { - "year": 2016, - "value": null - }, - { - "year": 2017, - "value": null - }, - { - "year": 2018, - "value": null - }, - { - "year": 2019, - "value": 2890986.47608207 - }, - { - "year": 2020, - "value": 2890986.47608207 - }, - { - "year": 2021, - "value": 2890986.47608207 - } - ], - "S1S2": [], - "S3": [], - "S1S2S3": [] - }, - "emission_intensities": { - "S1": [ - { - "year": 2009, - "value": null - }, - { - "year": 2010, - "value": null - }, - { - "year": 2011, - "value": null - }, - { - "year": 2012, - "value": null - }, - { - "year": 2013, - "value": null - }, - { - "year": 2014, - "value": null - }, - { - "year": 2015, - "value": null - }, - { - "year": 2016, - "value": null - }, - { - "year": 2017, - "value": null - }, - { - "year": 2018, - "value": null - }, - { - "year": 2019, - "value": 0.000727294205076673 - }, - { - "year": 2020, - "value": 0.000742741899988965 - }, - { - "year": 2021, - "value": 0.000742741899988965 - } - ], - "S2": [ - { - "year": 2009, - "value": null - }, - { - "year": 2010, - "value": null - }, - { - "year": 2011, - "value": null - }, - { - "year": 2012, - "value": null - }, - { - "year": 2013, - "value": null - }, - { - "year": 2014, - "value": null - }, - { - "year": 2015, - "value": null - }, - { - "year": 2016, - "value": null - }, - { - "year": 2017, - "value": null - }, - { - "year": 2018, - "value": null - }, - { - "year": 2019, - "value": 0.232151800012749 - }, - { - "year": 2020, - "value": 0.237082693391115 - }, - { - "year": 2021, - "value": 0.237082693391115 - } - ], - "S1S2": [], - "S3": [], - "S1S2S3": [] - } - } - }, - { - "company_name": "Company C", - "company_id": "IT0000000003", - "region": "Asia", - "sector": "Steel", - "target_probability": 0.4285714285714285, - "historic_data": { - "productions": [ - { - "year": 2009, - "value": null - }, - { - "year": 2010, - "value": null - }, - { - "year": 2011, - "value": null - }, - { - "year": 2012, - "value": null - }, - { - "year": 2013, - "value": null - }, - { - "year": 2014, - "value": 19374009.677026 - }, - { - "year": 2015, - "value": 21182009.677026 - }, - { - "year": 2016, - "value": 22380009.677026 - }, - { - "year": 2017, - "value": 23290009.677026 - }, - { - "year": 2018, - "value": 23763009.677026 - }, - { - "year": 2019, - "value": 23303009.677026 - }, - { - "year": 2020, - "value": 23303009.677026 - }, - { - "year": 2021, - "value": 23303009.677026 - } - ], - "emissions": { - "S1": [ - { - "year": 2009, - "value": null - }, - { - "year": 2010, - "value": 766009.677026013 - }, - { - "year": 2011, - "value": 10247400.677026 - }, - { - "year": 2012, - "value": 10197994.677026 - }, - { - "year": 2013, - "value": 11080009.677026 - }, - { - "year": 2014, - "value": 13317009.677026 - }, - { - "year": 2015, - "value": 14157009.677026 - }, - { - "year": 2016, - "value": 15622009.677026 - }, - { - "year": 2017, - "value": 15710009.677026 - }, - { - "year": 2018, - "value": 16492009.677026 - }, - { - "year": 2019, - "value": 16442009.677026 - }, - { - "year": 2020, - "value": 16442009.677026 - }, - { - "year": 2021, - "value": 16442009.677026 - } - ], - "S2": [ - { - "year": 2009, - "value": null - }, - { - "year": 2010, - "value": 3518009.67702601 - }, - { - "year": 2011, - "value": 4342232.67702601 - }, - { - "year": 2012, - "value": 4164848.67702601 - }, - { - "year": 2013, - "value": 4818009.67702601 - }, - { - "year": 2014, - "value": 5480009.67702601 - }, - { - "year": 2015, - "value": 5416009.67702601 - }, - { - "year": 2016, - "value": 5653009.67702601 - }, - { - "year": 2017, - "value": 5769009.67702601 - }, - { - "year": 2018, - "value": 5806009.67702601 - }, - { - "year": 2019, - "value": 5803009.67702601 - }, - { - "year": 2020, - "value": 5803009.67702601 - }, - { - "year": 2021, - "value": 5803009.67702601 - } - ], - "S1S2": [], - "S3": [], - "S1S2S3": [] - }, - "emission_intensities": { - "S1": [ - { - "year": 2009, - "value": null - }, - { - "year": 2010, - "value": null - }, - { - "year": 2011, - "value": null - }, - { - "year": 2012, - "value": null - }, - { - "year": 2013, - "value": null - }, - { - "year": 2014, - "value": 0.687364665292674 - }, - { - "year": 2015, - "value": 0.66835063777639 - }, - { - "year": 2016, - "value": 0.698034089460767 - }, - { - "year": 2017, - "value": 0.67453856373975 - }, - { - "year": 2018, - "value": 0.694020239909696 - }, - { - "year": 2019, - "value": 0.705574511829511 - }, - { - "year": 2020, - "value": 0.705574511829511 - }, - { - "year": 2021, - "value": 0.705574511829511 - } - ], - "S2": [ - { - "year": 2009, - "value": null - }, - { - "year": 2010, - "value": null - }, - { - "year": 2011, - "value": null - }, - { - "year": 2012, - "value": null - }, - { - "year": 2013, - "value": null - }, - { - "year": 2014, - "value": 0.282853666761831 - }, - { - "year": 2015, - "value": 0.255689132410331 - }, - { - "year": 2016, - "value": 0.252591922818919 - }, - { - "year": 2017, - "value": 0.247703189351473 - }, - { - "year": 2018, - "value": 0.244329727418293 - }, - { - "year": 2019, - "value": 0.249024042707543 - }, - { - "year": 2020, - "value": 0.249024042707543 - }, - { - "year": 2021, - "value": 0.249024042707543 - } - ], - "S1S2": [], - "S3": [], - "S1S2S3": [] - } - } - }, - { - "company_name": "Company D", - "company_id": "SE0000000004", - "region": "Asia", - "sector": "Steel", - "target_probability": 0.4285714285714285, - "historic_data": { - "productions": [ - { - "year": 2009, - "value": null - }, - { - "year": 2010, - "value": null - }, - { - "year": 2011, - "value": null - }, - { - "year": 2012, - "value": null - }, - { - "year": 2013, - "value": null - }, - { - "year": 2014, - "value": 31580000.2335485 - }, - { - "year": 2015, - "value": 31040000.2335485 - }, - { - "year": 2016, - "value": 29751000.2335485 - }, - { - "year": 2017, - "value": 30410000.2335485 - }, - { - "year": 2018, - "value": 29145000.2335485 - }, - { - "year": 2019, - "value": 27880000.2335485 - }, - { - "year": 2020, - "value": 28090000.2335485 - }, - { - "year": 2021, - "value": 28090000.2335485 - } - ], - "emissions": { - "S1": [ - { - "year": 2009, - "value": null - }, - { - "year": 2010, - "value": null - }, - { - "year": 2011, - "value": null - }, - { - "year": 2012, - "value": null - }, - { - "year": 2013, - "value": null - }, - { - "year": 2014, - "value": null - }, - { - "year": 2015, - "value": null - }, - { - "year": 2016, - "value": 54700000.2335485 - }, - { - "year": 2017, - "value": 55000000.2335485 - }, - { - "year": 2018, - "value": 54900000.2335485 - }, - { - "year": 2019, - "value": 52300000.2335485 - }, - { - "year": 2020, - "value": 52900000.2335485 - }, - { - "year": 2021, - "value": 52900000.2335485 - } - ], - "S2": [ - { - "year": 2009, - "value": null - }, - { - "year": 2010, - "value": null - }, - { - "year": 2011, - "value": null - }, - { - "year": 2012, - "value": null - }, - { - "year": 2013, - "value": null - }, - { - "year": 2014, - "value": null - }, - { - "year": 2015, - "value": null - }, - { - "year": 2016, - "value": 6600000.23354846 - }, - { - "year": 2017, - "value": 6400000.23354846 - }, - { - "year": 2018, - "value": 7400000.23354846 - }, - { - "year": 2019, - "value": 7500000.23354846 - }, - { - "year": 2020, - "value": 7600000.23354846 - }, - { - "year": 2021, - "value": 7600000.23354846 - } - ], - "S1S2": [], - "S3": [], - "S1S2S3": [] - }, - "emission_intensities": { - "S1": [ - { - "year": 2009, - "value": null - }, - { - "year": 2010, - "value": null - }, - { - "year": 2011, - "value": null - }, - { - "year": 2012, - "value": null - }, - { - "year": 2013, - "value": null - }, - { - "year": 2014, - "value": null - }, - { - "year": 2015, - "value": null - }, - { - "year": 2016, - "value": 1.83859365413424 - }, - { - "year": 2017, - "value": 1.80861558076781 - }, - { - "year": 2018, - "value": 1.8836850160788 - }, - { - "year": 2019, - "value": 1.87589669280616 - }, - { - "year": 2020, - "value": 1.88323245972668 - }, - { - "year": 2021, - "value": 1.88323245972668 - } - ], - "S2": [ - { - "year": 2009, - "value": null - }, - { - "year": 2010, - "value": null - }, - { - "year": 2011, - "value": null - }, - { - "year": 2012, - "value": null - }, - { - "year": 2013, - "value": null - }, - { - "year": 2014, - "value": null - }, - { - "year": 2015, - "value": null - }, - { - "year": 2016, - "value": 0.221841288754589 - }, - { - "year": 2017, - "value": 0.21045709254839 - }, - { - "year": 2018, - "value": 0.253902905275342 - }, - { - "year": 2019, - "value": 0.26901004916505 - }, - { - "year": 2020, - "value": 0.270558923829115 - }, - { - "year": 2021, - "value": 0.270558923829115 - } - ], - "S1S2": [], - "S3": [], - "S1S2S3": [] - } - } - }, - { - "company_name": "Company E", - "company_id": "SE0000000005", - "region": "Asia", - "sector": "Steel", - "target_probability": 0.4285714285714285, - "historic_data": { - "productions": [ - { - "year": 2009, - "value": null - }, - { - "year": 2010, - "value": null - }, - { - "year": 2011, - "value": null - }, - { - "year": 2012, - "value": null - }, - { - "year": 2013, - "value": null - }, - { - "year": 2014, - "value": 12170001.0468216 - }, - { - "year": 2015, - "value": 12630001.0468216 - }, - { - "year": 2016, - "value": 12630001.0468216 - }, - { - "year": 2017, - "value": 12630001.0468216 - }, - { - "year": 2018, - "value": 12630001.0468216 - }, - { - "year": 2019, - "value": 12630001.0468216 - }, - { - "year": 2020, - "value": 12630001.0468216 - }, - { - "year": 2021, - "value": 12630001.0468216 - } - ], - "emissions": { - "S1": [ - { - "year": 2009, - "value": null - }, - { - "year": 2010, - "value": 14667421.0468216 - }, - { - "year": 2011, - "value": 15541981.0468216 - }, - { - "year": 2012, - "value": 21355001.0468216 - }, - { - "year": 2013, - "value": 28086001.0468216 - }, - { - "year": 2014, - "value": 26077001.0468216 - }, - { - "year": 2015, - "value": 26816001.0468216 - }, - { - "year": 2016, - "value": 31440001.0468216 - }, - { - "year": 2017, - "value": 36610961.0468216 - }, - { - "year": 2018, - "value": 41528001.0468216 - }, - { - "year": 2019, - "value": 41938351.0468216 - }, - { - "year": 2020, - "value": 40045311.0468216 - }, - { - "year": 2021, - "value": 40045311.0468216 - } - ], - "S2": [ - { - "year": 2009, - "value": null - }, - { - "year": 2010, - "value": 976021.046821591 - }, - { - "year": 2011, - "value": 1550771.04682159 - }, - { - "year": 2012, - "value": 16541.0468215911 - }, - { - "year": 2013, - "value": 33601.0468215911 - }, - { - "year": 2014, - "value": 3742001.04682159 - }, - { - "year": 2015, - "value": 4157001.04682159 - }, - { - "year": 2016, - "value": 661001.046821591 - }, - { - "year": 2017, - "value": 1885181.04682159 - }, - { - "year": 2018, - "value": 626001.046821591 - }, - { - "year": 2019, - "value": 3909961.04682159 - }, - { - "year": 2020, - "value": 476901.046821591 - }, - { - "year": 2021, - "value": 476901.046821591 - } - ], - "S1S2": [], - "S3": [], - "S1S2S3": [] - }, - "emission_intensities": { - "S1": [ - { - "year": 2009, - "value": null - }, - { - "year": 2010, - "value": null - }, - { - "year": 2011, - "value": null - }, - { - "year": 2012, - "value": null - }, - { - "year": 2013, - "value": null - }, - { - "year": 2014, - "value": 2.14272792142709 - }, - { - "year": 2015, - "value": 2.12319864008008 - }, - { - "year": 2016, - "value": 2.48931104045582 - }, - { - "year": 2017, - "value": 2.89872985054383 - }, - { - "year": 2018, - "value": 3.28804414923404 - }, - { - "year": 2019, - "value": 3.32053424947068 - }, - { - "year": 2020, - "value": 3.17064985967671 - }, - { - "year": 2021, - "value": 3.17064985967671 - } - ], - "S2": [ - { - "year": 2009, - "value": null - }, - { - "year": 2010, - "value": null - }, - { - "year": 2011, - "value": null - }, - { - "year": 2012, - "value": null - }, - { - "year": 2013, - "value": null - }, - { - "year": 2014, - "value": 0.307477463019519 - }, - { - "year": 2015, - "value": 0.329137031058895 - }, - { - "year": 2016, - "value": 0.0523357871761963 - }, - { - "year": 2017, - "value": 0.149262144938302 - }, - { - "year": 2018, - "value": 0.0495646076750823 - }, - { - "year": 2019, - "value": 0.309577254374461 - }, - { - "year": 2020, - "value": 0.0377593830003368 - }, - { - "year": 2021, - "value": 0.0377593830003368 - } - ], - "S1S2": [], - "S3": [], - "S1S2S3": [] - } - } - }, - { - "company_name": "Company F", - "company_id": "NL0000000006", - "region": "Asia", - "sector": "Steel", - "target_probability": 0.4285714285714285, - "historic_data": { - "productions": [ - { - "year": 2009, - "value": null - }, - { - "year": 2010, - "value": null - }, - { - "year": 2011, - "value": null - }, - { - "year": 2012, - "value": null - }, - { - "year": 2013, - "value": 23001000.8292913 - }, - { - "year": 2014, - "value": 25222000.8292913 - }, - { - "year": 2015, - "value": 23424000.8292913 - }, - { - "year": 2016, - "value": 24100000.8292913 - }, - { - "year": 2017, - "value": 24193000.8292913 - }, - { - "year": 2018, - "value": 24328000.8292913 - }, - { - "year": 2019, - "value": 23779000.8292913 - }, - { - "year": 2020, - "value": 22329000.8292913 - }, - { - "year": 2021, - "value": 22329000.8292913 - } - ], - "emissions": { - "S1": [ - { - "year": 2009, - "value": null - }, - { - "year": 2010, - "value": null - }, - { - "year": 2011, - "value": null - }, - { - "year": 2012, - "value": null - }, - { - "year": 2013, - "value": null - }, - { - "year": 2014, - "value": null - }, - { - "year": 2015, - "value": null - }, - { - "year": 2016, - "value": 31300000.8292913 - }, - { - "year": 2017, - "value": 31072000.8292913 - }, - { - "year": 2018, - "value": 29491000.8292913 - }, - { - "year": 2019, - "value": 27206000.8292913 - }, - { - "year": 2020, - "value": 27206000.8292913 - }, - { - "year": 2021, - "value": 27206000.8292913 - } - ], - "S2": [ - { - "year": 2009, - "value": null - }, - { - "year": 2010, - "value": null - }, - { - "year": 2011, - "value": null - }, - { - "year": 2012, - "value": null - }, - { - "year": 2013, - "value": null - }, - { - "year": 2014, - "value": null - }, - { - "year": 2015, - "value": null - }, - { - "year": 2016, - "value": null - }, - { - "year": 2017, - "value": null - }, - { - "year": 2018, - "value": null - }, - { - "year": 2019, - "value": null - }, - { - "year": 2020, - "value": null - }, - { - "year": 2021, - "value": null - } - ], - "S1S2": [], - "S3": [], - "S1S2S3": [] - }, - "emission_intensities": { - "S1": [ - { - "year": 2009, - "value": null - }, - { - "year": 2010, - "value": null - }, - { - "year": 2011, - "value": null - }, - { - "year": 2012, - "value": null - }, - { - "year": 2013, - "value": null - }, - { - "year": 2014, - "value": null - }, - { - "year": 2015, - "value": null - }, - { - "year": 2016, - "value": 1.2987551764417 - }, - { - "year": 2017, - "value": 1.28433843525816 - }, - { - "year": 2018, - "value": 1.21222458993769 - }, - { - "year": 2019, - "value": 1.14411875522451 - }, - { - "year": 2020, - "value": 1.21841550534596 - }, - { - "year": 2021, - "value": 1.21841550534596 - } - ], - "S2": [ - { - "year": 2009, - "value": null - }, - { - "year": 2010, - "value": null - }, - { - "year": 2011, - "value": null - }, - { - "year": 2012, - "value": null - }, - { - "year": 2013, - "value": null - }, - { - "year": 2014, - "value": null - }, - { - "year": 2015, - "value": null - }, - { - "year": 2016, - "value": null - }, - { - "year": 2017, - "value": null - }, - { - "year": 2018, - "value": null - }, - { - "year": 2019, - "value": null - }, - { - "year": 2020, - "value": null - }, - { - "year": 2021, - "value": null - } - ], - "S1S2": [], - "S3": [], - "S1S2S3": [] - } - } - }, - { - "company_name": "Company G", - "company_id": "CN0000000007", - "region": "Asia", - "sector": "Steel", - "target_probability": 0.4285714285714285, - "historic_data": { - "productions": [ - { - "year": 2009, - "value": null - }, - { - "year": 2010, - "value": null - }, - { - "year": 2011, - "value": null - }, - { - "year": 2012, - "value": null - }, - { - "year": 2013, - "value": 46030001.3676141 - }, - { - "year": 2014, - "value": 48160001.3676141 - }, - { - "year": 2015, - "value": 47320001.3676141 - }, - { - "year": 2016, - "value": 44530001.3676141 - }, - { - "year": 2017, - "value": 45170001.3676141 - }, - { - "year": 2018, - "value": 46505001.3676141 - }, - { - "year": 2019, - "value": 47840001.3676141 - }, - { - "year": 2020, - "value": 47050001.3676141 - }, - { - "year": 2021, - "value": 47050001.3676141 - } - ], - "emissions": { - "S1": [ - { - "year": 2009, - "value": null - }, - { - "year": 2010, - "value": null - }, - { - "year": 2011, - "value": null - }, - { - "year": 2012, - "value": null - }, - { - "year": 2013, - "value": null - }, - { - "year": 2014, - "value": null - }, - { - "year": 2015, - "value": null - }, - { - "year": 2016, - "value": 89000001.3676141 - }, - { - "year": 2017, - "value": 89000001.3676141 - }, - { - "year": 2018, - "value": 86000001.3676141 - }, - { - "year": 2019, - "value": 87000001.3676141 - }, - { - "year": 2020, - "value": 84000001.3676141 - }, - { - "year": 2021, - "value": 84000001.3676141 - } - ], - "S2": [ - { - "year": 2009, - "value": null - }, - { - "year": 2010, - "value": null - }, - { - "year": 2011, - "value": null - }, - { - "year": 2012, - "value": null - }, - { - "year": 2013, - "value": null - }, - { - "year": 2014, - "value": null - }, - { - "year": 2015, - "value": null - }, - { - "year": 2016, - "value": 11000001.3676141 - }, - { - "year": 2017, - "value": 10000001.3676141 - }, - { - "year": 2018, - "value": 10000001.3676141 - }, - { - "year": 2019, - "value": 10000001.3676141 - }, - { - "year": 2020, - "value": 9000001.36761412 - }, - { - "year": 2021, - "value": 9000001.36761412 - } - ], - "S1S2": [], - "S3": [], - "S1S2S3": [] - }, - "emission_intensities": { - "S1": [ - { - "year": 2009, - "value": null - }, - { - "year": 2010, - "value": null - }, - { - "year": 2011, - "value": null - }, - { - "year": 2012, - "value": null - }, - { - "year": 2013, - "value": null - }, - { - "year": 2014, - "value": null - }, - { - "year": 2015, - "value": null - }, - { - "year": 2016, - "value": 1.9986525630862 - }, - { - "year": 2017, - "value": 1.97033426329327 - }, - { - "year": 2018, - "value": 1.84926349507656 - }, - { - "year": 2019, - "value": 1.81856184950927 - }, - { - "year": 2020, - "value": 1.78533472743815 - }, - { - "year": 2021, - "value": 1.78533472743815 - } - ], - "S2": [ - { - "year": 2009, - "value": null - }, - { - "year": 2010, - "value": null - }, - { - "year": 2011, - "value": null - }, - { - "year": 2012, - "value": null - }, - { - "year": 2013, - "value": null - }, - { - "year": 2014, - "value": null - }, - { - "year": 2015, - "value": null - }, - { - "year": 2016, - "value": 0.247024501005612 - }, - { - "year": 2017, - "value": 0.221385899155272 - }, - { - "year": 2018, - "value": 0.215030664950761 - }, - { - "year": 2019, - "value": 0.209030122946103 - }, - { - "year": 2020, - "value": 0.191285889606989 - }, - { - "year": 2021, - "value": 0.191285889606989 - } - ], - "S1S2": [], - "S3": [], - "S1S2S3": [] - } - } - }, - { - "company_name": "Company H", - "company_id": "CN0000000008", - "region": "Asia", - "sector": "Steel", - "target_probability": 0.4285714285714285, - "historic_data": { - "productions": [ - { - "year": 2009, - "value": null - }, - { - "year": 2010, - "value": null - }, - { - "year": 2011, - "value": null - }, - { - "year": 2012, - "value": null - }, - { - "year": 2013, - "value": null - }, - { - "year": 2014, - "value": 15921004.6310296 - }, - { - "year": 2015, - "value": 15855004.6310296 - }, - { - "year": 2016, - "value": 16419004.6310296 - }, - { - "year": 2017, - "value": 16850004.6310296 - }, - { - "year": 2018, - "value": 17286004.6310296 - }, - { - "year": 2019, - "value": 15520004.6310296 - }, - { - "year": 2020, - "value": 15520004.6310296 - }, - { - "year": 2021, - "value": 15520004.6310296 - } - ], - "emissions": { - "S1": [ - { - "year": 2009, - "value": null - }, - { - "year": 2010, - "value": null - }, - { - "year": 2011, - "value": null - }, - { - "year": 2012, - "value": null - }, - { - "year": 2013, - "value": null - }, - { - "year": 2014, - "value": null - }, - { - "year": 2015, - "value": 29200004.6310296 - }, - { - "year": 2016, - "value": 29200004.6310296 - }, - { - "year": 2017, - "value": 29600004.6310296 - }, - { - "year": 2018, - "value": 30200004.6310296 - }, - { - "year": 2019, - "value": 28400004.6310296 - }, - { - "year": 2020, - "value": 28400004.6310296 - }, - { - "year": 2021, - "value": 28400004.6310296 - } - ], - "S2": [ - { - "year": 2009, - "value": null - }, - { - "year": 2010, - "value": null - }, - { - "year": 2011, - "value": null - }, - { - "year": 2012, - "value": null - }, - { - "year": 2013, - "value": null - }, - { - "year": 2014, - "value": null - }, - { - "year": 2015, - "value": 3600004.63102958 - }, - { - "year": 2016, - "value": 3800004.63102958 - }, - { - "year": 2017, - "value": 4000004.63102958 - }, - { - "year": 2018, - "value": 4000004.63102958 - }, - { - "year": 2019, - "value": 3600004.63102958 - }, - { - "year": 2020, - "value": 3600004.63102958 - }, - { - "year": 2021, - "value": 3600004.63102958 - } - ], - "S1S2": [], - "S3": [], - "S1S2S3": [] - }, - "emission_intensities": { - "S1": [ - { - "year": 2009, - "value": null - }, - { - "year": 2010, - "value": null - }, - { - "year": 2011, - "value": null - }, - { - "year": 2012, - "value": null - }, - { - "year": 2013, - "value": null - }, - { - "year": 2014, - "value": null - }, - { - "year": 2015, - "value": 1.8416900726653 - }, - { - "year": 2016, - "value": 1.77842721207629 - }, - { - "year": 2017, - "value": 1.75667634989967 - }, - { - "year": 2018, - "value": 1.74707836053789 - }, - { - "year": 2019, - "value": 1.82989665958273 - }, - { - "year": 2020, - "value": 1.82989665958273 - }, - { - "year": 2021, - "value": 1.82989665958273 - } - ], - "S2": [ - { - "year": 2009, - "value": null - }, - { - "year": 2010, - "value": null - }, - { - "year": 2011, - "value": null - }, - { - "year": 2012, - "value": null - }, - { - "year": 2013, - "value": null - }, - { - "year": 2014, - "value": null - }, - { - "year": 2015, - "value": 0.22705793626727 - }, - { - "year": 2016, - "value": 0.231439403083431 - }, - { - "year": 2017, - "value": 0.237388933630528 - }, - { - "year": 2018, - "value": 0.231401339778036 - }, - { - "year": 2019, - "value": 0.231958992063184 - }, - { - "year": 2020, - "value": 0.231958992063184 - }, - { - "year": 2021, - "value": 0.231958992063184 - } - ], - "S1S2": [], - "S3": [], - "S1S2S3": [] - } - } - }, - { - "company_name": "Company I", - "company_id": "CN0000000009", - "region": "Asia", - "sector": "Steel", - "target_probability": 0.4285714285714285, - "historic_data": { - "productions": [ - { - "year": 2009, - "value": null - }, - { - "year": 2010, - "value": null - }, - { - "year": 2011, - "value": null - }, - { - "year": 2012, - "value": null - }, - { - "year": 2013, - "value": null - }, - { - "year": 2014, - "value": null - }, - { - "year": 2015, - "value": null - }, - { - "year": 2016, - "value": null - }, - { - "year": 2017, - "value": null - }, - { - "year": 2018, - "value": null - }, - { - "year": 2019, - "value": null - }, - { - "year": 2020, - "value": null - }, - { - "year": 2021, - "value": null - } - ], - "emissions": { - "S1": [ - { - "year": 2009, - "value": 60457000.4256679 - }, - { - "year": 2010, - "value": 68748000.4256679 - }, - { - "year": 2011, - "value": 74602000.4256679 - }, - { - "year": 2012, - "value": 85678000.4256679 - }, - { - "year": 2013, - "value": 79928000.4256679 - }, - { - "year": 2014, - "value": 84451000.4256679 - }, - { - "year": 2015, - "value": 82741000.4256679 - }, - { - "year": 2016, - "value": 81346000.4256679 - }, - { - "year": 2017, - "value": 67743000.4256679 - }, - { - "year": 2018, - "value": 69687000.4256679 - }, - { - "year": 2019, - "value": 79447000.4256679 - }, - { - "year": 2020, - "value": 79447000.4256679 - }, - { - "year": 2021, - "value": 79447000.4256679 - } - ], - "S2": [ - { - "year": 2009, - "value": 2698000.42566793 - }, - { - "year": 2010, - "value": 3033000.42566793 - }, - { - "year": 2011, - "value": 3625000.42566793 - }, - { - "year": 2012, - "value": 3682000.42566793 - }, - { - "year": 2013, - "value": 4539000.42566793 - }, - { - "year": 2014, - "value": 5032000.42566793 - }, - { - "year": 2015, - "value": 4431000.42566793 - }, - { - "year": 2016, - "value": 3719000.42566793 - }, - { - "year": 2017, - "value": 2956000.42566793 - }, - { - "year": 2018, - "value": 2802000.42566793 - }, - { - "year": 2019, - "value": 795000.425667932 - }, - { - "year": 2020, - "value": 795000.425667932 - }, - { - "year": 2021, - "value": 795000.425667932 - } - ], - "S1S2": [], - "S3": [], - "S1S2S3": [] - }, - "emission_intensities": { - "S1": [ - { - "year": 2009, - "value": null - }, - { - "year": 2010, - "value": null - }, - { - "year": 2011, - "value": null - }, - { - "year": 2012, - "value": null - }, - { - "year": 2013, - "value": null - }, - { - "year": 2014, - "value": null - }, - { - "year": 2015, - "value": null - }, - { - "year": 2016, - "value": null - }, - { - "year": 2017, - "value": null - }, - { - "year": 2018, - "value": null - }, - { - "year": 2019, - "value": null - }, - { - "year": 2020, - "value": null - }, - { - "year": 2021, - "value": null - } - ], - "S2": [ - { - "year": 2009, - "value": null - }, - { - "year": 2010, - "value": null - }, - { - "year": 2011, - "value": null - }, - { - "year": 2012, - "value": null - }, - { - "year": 2013, - "value": null - }, - { - "year": 2014, - "value": null - }, - { - "year": 2015, - "value": null - }, - { - "year": 2016, - "value": null - }, - { - "year": 2017, - "value": null - }, - { - "year": 2018, - "value": null - }, - { - "year": 2019, - "value": null - }, - { - "year": 2020, - "value": null - }, - { - "year": 2021, - "value": null - } - ], - "S1S2": [], - "S3": [], - "S1S2S3": [] - } - } - }, - { - "company_name": "Company J", - "company_id": "BR0000000010", - "region": "Asia", - "sector": "Steel", - "target_probability": 0.4285714285714285, - "historic_data": { - "productions": [ - { - "year": 2009, - "value": null - }, - { - "year": 2010, - "value": null - }, - { - "year": 2011, - "value": null - }, - { - "year": 2012, - "value": null - }, - { - "year": 2013, - "value": 15691492.9224849 - }, - { - "year": 2014, - "value": 11301980.9224849 - }, - { - "year": 2015, - "value": 11500001.9224849 - }, - { - "year": 2016, - "value": 11600001.9224849 - }, - { - "year": 2017, - "value": 3012108.92248495 - }, - { - "year": 2018, - "value": 12039001.9224849 - }, - { - "year": 2019, - "value": 11847001.9224849 - }, - { - "year": 2020, - "value": 11314001.9224849 - }, - { - "year": 2021, - "value": 11314001.9224849 - } - ], - "emissions": { - "S1": [ - { - "year": 2009, - "value": null - }, - { - "year": 2010, - "value": null - }, - { - "year": 2011, - "value": null - }, - { - "year": 2012, - "value": null - }, - { - "year": 2013, - "value": null - }, - { - "year": 2014, - "value": null - }, - { - "year": 2015, - "value": null - }, - { - "year": 2016, - "value": 23200001.9224849 - }, - { - "year": 2017, - "value": 22200001.9224849 - }, - { - "year": 2018, - "value": 22100001.9224849 - }, - { - "year": 2019, - "value": 23400001.9224849 - }, - { - "year": 2020, - "value": 23400001.9224849 - }, - { - "year": 2021, - "value": 23400001.9224849 - } - ], - "S2": [ - { - "year": 2009, - "value": null - }, - { - "year": 2010, - "value": null - }, - { - "year": 2011, - "value": null - }, - { - "year": 2012, - "value": null - }, - { - "year": 2013, - "value": null - }, - { - "year": 2014, - "value": null - }, - { - "year": 2015, - "value": null - }, - { - "year": 2016, - "value": null - }, - { - "year": 2017, - "value": null - }, - { - "year": 2018, - "value": null - }, - { - "year": 2019, - "value": null - }, - { - "year": 2020, - "value": null - }, - { - "year": 2021, - "value": null - } - ], - "S1S2": [], - "S3": [], - "S1S2S3": [] - }, - "emission_intensities": { - "S1": [ - { - "year": 2009, - "value": null - }, - { - "year": 2010, - "value": null - }, - { - "year": 2011, - "value": null - }, - { - "year": 2012, - "value": null - }, - { - "year": 2013, - "value": null - }, - { - "year": 2014, - "value": null - }, - { - "year": 2015, - "value": null - }, - { - "year": 2016, - "value": 1.99999983426857 - }, - { - "year": 2017, - "value": 7.37025203729028 - }, - { - "year": 2018, - "value": 1.83570050613659 - }, - { - "year": 2019, - "value": 1.97518343253351 - }, - { - "year": 2020, - "value": 2.06823386479905 - }, - { - "year": 2021, - "value": 2.06823386479905 - } - ], - "S2": [ - { - "year": 2009, - "value": null - }, - { - "year": 2010, - "value": null - }, - { - "year": 2011, - "value": null - }, - { - "year": 2012, - "value": null - }, - { - "year": 2013, - "value": null - }, - { - "year": 2014, - "value": null - }, - { - "year": 2015, - "value": null - }, - { - "year": 2016, - "value": null - }, - { - "year": 2017, - "value": null - }, - { - "year": 2018, - "value": null - }, - { - "year": 2019, - "value": null - }, - { - "year": 2020, - "value": null - }, - { - "year": 2021, - "value": null - } - ], - "S1S2": [], - "S3": [], - "S1S2S3": [] - } - } - }, - { - "company_name": "Company K", - "company_id": "BR0000000011", - "region": "Europe", - "sector": "Steel", - "target_probability": 0.4285714285714285, - "historic_data": { - "productions": [ - { - "year": 2009, - "value": null - }, - { - "year": 2010, - "value": null - }, - { - "year": 2011, - "value": null - }, - { - "year": 2012, - "value": null - }, - { - "year": 2013, - "value": null - }, - { - "year": 2014, - "value": null - }, - { - "year": 2015, - "value": null - }, - { - "year": 2016, - "value": null - }, - { - "year": 2017, - "value": 15393000.0778486 - }, - { - "year": 2018, - "value": 15419000.0778486 - }, - { - "year": 2019, - "value": 14618000.0778486 - }, - { - "year": 2020, - "value": 14473000.0778486 - }, - { - "year": 2021, - "value": 14473000.0778486 - } - ], - "emissions": { - "S1": [ - { - "year": 2009, - "value": 4000000.07784856 - }, - { - "year": 2010, - "value": 6481635.07784856 - }, - { - "year": 2011, - "value": 10525000.0778486 - }, - { - "year": 2012, - "value": 9308000.07784856 - }, - { - "year": 2013, - "value": 9311000.07784856 - }, - { - "year": 2014, - "value": 9578000.07784856 - }, - { - "year": 2015, - "value": 9448000.07784856 - }, - { - "year": 2016, - "value": 9989000.07784856 - }, - { - "year": 2017, - "value": 9867000.07784856 - }, - { - "year": 2018, - "value": 9755000.07784856 - }, - { - "year": 2019, - "value": 9582000.07784856 - }, - { - "year": 2020, - "value": 9582000.07784856 - }, - { - "year": 2021, - "value": 9582000.07784856 - } - ], - "S2": [ - { - "year": 2009, - "value": 700993.077848565 - }, - { - "year": 2010, - "value": 1032496.57784856 - }, - { - "year": 2011, - "value": 1364000.07784857 - }, - { - "year": 2012, - "value": 1367000.07784857 - }, - { - "year": 2013, - "value": 1447000.07784857 - }, - { - "year": 2014, - "value": 1220000.07784857 - }, - { - "year": 2015, - "value": 1133000.07784857 - }, - { - "year": 2016, - "value": 1166000.07784857 - }, - { - "year": 2017, - "value": 1216000.07784857 - }, - { - "year": 2018, - "value": 1189000.07784857 - }, - { - "year": 2019, - "value": 1173000.07784857 - }, - { - "year": 2020, - "value": 1173000.07784857 - }, - { - "year": 2021, - "value": 1173000.07784857 - } - ], - "S1S2": [], - "S3": [], - "S1S2S3": [] - }, - "emission_intensities": { - "S1": [ - { - "year": 2009, - "value": null - }, - { - "year": 2010, - "value": null - }, - { - "year": 2011, - "value": null - }, - { - "year": 2012, - "value": null - }, - { - "year": 2013, - "value": null - }, - { - "year": 2014, - "value": null - }, - { - "year": 2015, - "value": null - }, - { - "year": 2016, - "value": null - }, - { - "year": 2017, - "value": 0.641005653735282 - }, - { - "year": 2018, - "value": 0.632661004513705 - }, - { - "year": 2019, - "value": 0.655493229362386 - }, - { - "year": 2020, - "value": 0.662060390127003 - }, - { - "year": 2021, - "value": 0.662060390127003 - } - ], - "S2": [ - { - "year": 2009, - "value": null - }, - { - "year": 2010, - "value": null - }, - { - "year": 2011, - "value": null - }, - { - "year": 2012, - "value": null - }, - { - "year": 2013, - "value": null - }, - { - "year": 2014, - "value": null - }, - { - "year": 2015, - "value": null - }, - { - "year": 2016, - "value": null - }, - { - "year": 2017, - "value": 0.0789969513219493 - }, - { - "year": 2018, - "value": 0.0771126578795937 - }, - { - "year": 2019, - "value": 0.0802435402655439 - }, - { - "year": 2020, - "value": 0.0810474726414106 - }, - { - "year": 2021, - "value": 0.0810474726414106 - } - ], - "S1S2": [], - "S3": [], - "S1S2S3": [] - } - } - }, - { - "company_name": "Company L", - "company_id": "BR0000000012", - "region": "Asia", - "sector": "Steel", - "target_probability": 0.4285714285714285, - "historic_data": { - "productions": [ - { - "year": 2009, - "value": null - }, - { - "year": 2010, - "value": null - }, - { - "year": 2011, - "value": null - }, - { - "year": 2012, - "value": null - }, - { - "year": 2013, - "value": null - }, - { - "year": 2014, - "value": 9155004.34644718 - }, - { - "year": 2015, - "value": 9331004.34644718 - }, - { - "year": 2016, - "value": 20808004.3464472 - }, - { - "year": 2017, - "value": 21911004.3464472 - }, - { - "year": 2018, - "value": 25390004.3464472 - }, - { - "year": 2019, - "value": 27110004.3464472 - }, - { - "year": 2020, - "value": 30630004.3464472 - }, - { - "year": 2021, - "value": 28540004.3464472 - } - ], - "emissions": { - "S1": [ - { - "year": 2009, - "value": null - }, - { - "year": 2010, - "value": 14900657.0 - }, - { - "year": 2011, - "value": 17389874.39 - }, - { - "year": 2012, - "value": 16283032.0 - }, - { - "year": 2013, - "value": 18802944.0 - }, - { - "year": 2014, - "value": 20428595.0 - }, - { - "year": 2015, - "value": 23337931.0 - }, - { - "year": 2016, - "value": 23298343.0 - }, - { - "year": 2017, - "value": 38757404.0 - }, - { - "year": 2018, - "value": 47025134.0 - }, - { - "year": 2019, - "value": 56093007.0 - }, - { - "year": 2020, - "value": 60116322.0 - }, - { - "year": 2021, - "value": 60116322.0 - } - ], - "S2": [ - { - "year": 2009, - "value": null - }, - { - "year": 2010, - "value": 731525.0 - }, - { - "year": 2011, - "value": 853729.3263 - }, - { - "year": 2012, - "value": 789126.0 - }, - { - "year": 2013, - "value": 1174594.0 - }, - { - "year": 2014, - "value": 1266295.0 - }, - { - "year": 2015, - "value": 723978.0 - }, - { - "year": 2016, - "value": 1409816.0 - }, - { - "year": 2017, - "value": 3979125.0 - }, - { - "year": 2018, - "value": 3344945.0 - }, - { - "year": 2019, - "value": 4137575.0 - }, - { - "year": 2020, - "value": 2779523.0 - }, - { - "year": 2021, - "value": 2779523.0 - } - ], - "S1S2": [], - "S3": [], - "S1S2S3": [] - }, - "emission_intensities": { - "S1": [ - { - "year": 2009, - "value": null - }, - { - "year": 2010, - "value": null - }, - { - "year": 2011, - "value": null - }, - { - "year": 2012, - "value": null - }, - { - "year": 2013, - "value": null - }, - { - "year": 2014, - "value": 2.23141292204059 - }, - { - "year": 2015, - "value": 2.5011167215762815 - }, - { - "year": 2016, - "value": 1.1196817634257177 - }, - { - "year": 2017, - "value": 1.768855657512769 - }, - { - "year": 2018, - "value": 1.8521120894010474 - }, - { - "year": 2019, - "value": 2.0690888235638023 - }, - { - "year": 2020, - "value": 1.9626612298203263 - }, - { - "year": 2021, - "value": 2.1063879763383277 - } - ], - "S2": [ - { - "year": 2009, - "value": null - }, - { - "year": 2010, - "value": null - }, - { - "year": 2011, - "value": null - }, - { - "year": 2012, - "value": null - }, - { - "year": 2013, - "value": null - }, - { - "year": 2014, - "value": 0.13831724727595748 - }, - { - "year": 2015, - "value": 0.07758843240445577 - }, - { - "year": 2016, - "value": 0.06775354217189573 - }, - { - "year": 2017, - "value": 0.18160395283957864 - }, - { - "year": 2018, - "value": 0.13174259265016847 - }, - { - "year": 2019, - "value": 0.15262170183097867 - }, - { - "year": 2020, - "value": 0.09074510628733878 - }, - { - "year": 2021, - "value": 0.09739041964602954 - } - ], - "S1S2": [], - "S3": [], - "S1S2S3": [] - } - } - }, - { - "company_name": "Company M", - "company_id": "AR0000000013", - "region": "Europe", - "sector": "Steel", - "target_probability": 0.4285714285714285, - "historic_data": { - "productions": [ - { - "year": 2009, - "value": null - }, - { - "year": 2010, - "value": null - }, - { - "year": 2011, - "value": null - }, - { - "year": 2012, - "value": null - }, - { - "year": 2013, - "value": null - }, - { - "year": 2014, - "value": null - }, - { - "year": 2015, - "value": null - }, - { - "year": 2016, - "value": null - }, - { - "year": 2017, - "value": null - }, - { - "year": 2018, - "value": null - }, - { - "year": 2019, - "value": null - }, - { - "year": 2020, - "value": null - }, - { - "year": 2021, - "value": null - } - ], - "emissions": { - "S1": [ - { - "year": 2009, - "value": null - }, - { - "year": 2010, - "value": 24085969.3736674 - }, - { - "year": 2011, - "value": 30090002.3736674 - }, - { - "year": 2012, - "value": 16848002.3736674 - }, - { - "year": 2013, - "value": 26700002.3736674 - }, - { - "year": 2014, - "value": 32200002.3736674 - }, - { - "year": 2015, - "value": 32600002.3736674 - }, - { - "year": 2016, - "value": 32600002.3736674 - }, - { - "year": 2017, - "value": 22100002.3736674 - }, - { - "year": 2018, - "value": 22600002.3736674 - }, - { - "year": 2019, - "value": 22800002.3736674 - }, - { - "year": 2020, - "value": 21300002.3736674 - }, - { - "year": 2021, - "value": 21300002.3736674 - } - ], - "S2": [ - { - "year": 2009, - "value": null - }, - { - "year": 2010, - "value": 4781476.37366743 - }, - { - "year": 2011, - "value": 4287002.37366743 - }, - { - "year": 2012, - "value": 2116002.37366743 - }, - { - "year": 2013, - "value": 1800002.37366743 - }, - { - "year": 2014, - "value": 1700002.37366743 - }, - { - "year": 2015, - "value": 1200002.37366743 - }, - { - "year": 2016, - "value": 1200002.37366743 - }, - { - "year": 2017, - "value": 1300002.37366743 - }, - { - "year": 2018, - "value": 1400002.37366743 - }, - { - "year": 2019, - "value": 1300002.37366743 - }, - { - "year": 2020, - "value": 1400002.37366743 - }, - { - "year": 2021, - "value": 1400002.37366743 - } - ], - "S1S2": [], - "S3": [], - "S1S2S3": [] - }, - "emission_intensities": { - "S1": [ - { - "year": 2009, - "value": null - }, - { - "year": 2010, - "value": null - }, - { - "year": 2011, - "value": null - }, - { - "year": 2012, - "value": null - }, - { - "year": 2013, - "value": null - }, - { - "year": 2014, - "value": null - }, - { - "year": 2015, - "value": null - }, - { - "year": 2016, - "value": null - }, - { - "year": 2017, - "value": null - }, - { - "year": 2018, - "value": null - }, - { - "year": 2019, - "value": null - }, - { - "year": 2020, - "value": null - }, - { - "year": 2021, - "value": null - } - ], - "S2": [ - { - "year": 2009, - "value": null - }, - { - "year": 2010, - "value": null - }, - { - "year": 2011, - "value": null - }, - { - "year": 2012, - "value": null - }, - { - "year": 2013, - "value": null - }, - { - "year": 2014, - "value": null - }, - { - "year": 2015, - "value": null - }, - { - "year": 2016, - "value": null - }, - { - "year": 2017, - "value": null - }, - { - "year": 2018, - "value": null - }, - { - "year": 2019, - "value": null - }, - { - "year": 2020, - "value": null - }, - { - "year": 2021, - "value": null - } - ], - "S1S2": [], - "S3": [], - "S1S2S3": [] - } - } - } +[ + { + "company_name": "Company AG", + "company_id": "US0079031078", + "region": "North America", + "sector": "Electricity Utilities", + "target_probability": 0.428571428571428, + "historic_data": { + "productions": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": null + }, + { + "year": 2011, + "value": null + }, + { + "year": 2012, + "value": null + }, + { + "year": 2013, + "value": null + }, + { + "year": 2014, + "value": "1682769059.4097404 GJ" + }, + { + "year": 2015, + "value": "1149435381.0097404 GJ" + }, + { + "year": 2016, + "value": "1351884837.0097404 GJ" + }, + { + "year": 2017, + "value": "870361875.4897404 GJ" + }, + { + "year": 2018, + "value": "388838913.9697404 GJ" + }, + { + "year": 2019, + "value": "377380291.0897404 GJ" + }, + { + "year": 2020, + "value": "377380291.0897404 GJ" + }, + { + "year": 2021, + "value": "377380291.0897404 GJ" + } + ], + "emissions": { + "S1": [ + { + "year": 2009, + "value": "74121549.8360392 t CO2" + }, + { + "year": 2010, + "value": "77200005.8360392 t CO2" + }, + { + "year": 2011, + "value": "74010717.8360392 t CO2" + }, + { + "year": 2012, + "value": "78912218.8360392 t CO2" + }, + { + "year": 2013, + "value": "75863005.8360392 t CO2" + }, + { + "year": 2014, + "value": "79630005.8360392 t CO2" + }, + { + "year": 2015, + "value": "70339005.8360392 t CO2" + }, + { + "year": 2016, + "value": "70457005.8360392 t CO2" + }, + { + "year": 2017, + "value": "64527005.8360392 t CO2" + }, + { + "year": 2018, + "value": "54154005.8360392 t CO2" + }, + { + "year": 2019, + "value": "49092005.8360392 t CO2" + }, + { + "year": 2020, + "value": "49092005.8360392 t CO2" + }, + { + "year": 2021, + "value": "49092005.8360392 t CO2" + } + ], + "S2": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": null + }, + { + "year": 2011, + "value": null + }, + { + "year": 2012, + "value": "414929.856039191 t CO2" + }, + { + "year": 2013, + "value": "90005.8360391907 t CO2" + }, + { + "year": 2014, + "value": "290005.836039191 t CO2" + }, + { + "year": 2015, + "value": "367805.836039191 t CO2" + }, + { + "year": 2016, + "value": "306005.836039191 t CO2" + }, + { + "year": 2017, + "value": "226005.836039191 t CO2" + }, + { + "year": 2018, + "value": "360005.836039191 t CO2" + }, + { + "year": 2019, + "value": "359005.836039191 t CO2" + }, + { + "year": 2020, + "value": "359005.836039191 t CO2" + }, + { + "year": 2021, + "value": "359005.836039191 t CO2" + } + ], + "S1S2": [], + "S3": [], + "S1S2S3": [] + }, + "emission_intensities": { + "S1": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": null + }, + { + "year": 2011, + "value": null + }, + { + "year": 2012, + "value": null + }, + { + "year": 2013, + "value": null + }, + { + "year": 2014, + "value": "0.6132777815614572 t CO2/GJ" + }, + { + "year": 2015, + "value": "0.793079394192882 t CO2/GJ" + }, + { + "year": 2016, + "value": "0.6754442173157448 t CO2/GJ" + }, + { + "year": 2017, + "value": "0.9608302238244408 t CO2/GJ" + }, + { + "year": 2018, + "value": "1.8049528748804293 t CO2/GJ" + }, + { + "year": 2019, + "value": "1.6859184505842997 t CO2/GJ" + }, + { + "year": 2020, + "value": "1.6859184505842997 t CO2/GJ" + }, + { + "year": 2021, + "value": "1.6859184505842997 t CO2/GJ" + } + ], + "S2": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": null + }, + { + "year": 2011, + "value": null + }, + { + "year": 2012, + "value": null + }, + { + "year": 2013, + "value": null + }, + { + "year": 2014, + "value": "0.002233506501709902 t CO2/GJ" + }, + { + "year": 2015, + "value": "0.00414704794529682 t CO2/GJ" + }, + { + "year": 2016, + "value": "0.0029335602608281442 t CO2/GJ" + }, + { + "year": 2017, + "value": "0.003365307830630542 t CO2/GJ" + }, + { + "year": 2018, + "value": "0.011998993586920128 t CO2/GJ" + }, + { + "year": 2019, + "value": "0.0123289841704041 t CO2/GJ" + }, + { + "year": 2020, + "value": "0.0123289841704041 t CO2/GJ" + }, + { + "year": 2021, + "value": "0.0123289841704041 t CO2/GJ" + } + ], + "S1S2": [], + "S3": [], + "S1S2S3": [] + } + } + }, + { + "company_name": "Company AH", + "company_id": "US00724F1012", + "region": "North America", + "sector": "Electricity Utilities", + "target_probability": 0.4285714285714285, + "historic_data": { + "productions": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": "2143661765.3714125 GJ" + }, + { + "year": 2011, + "value": "2114928159.0914125 GJ" + }, + { + "year": 2012, + "value": "2086194552.8114123 GJ" + }, + { + "year": 2013, + "value": "2057460946.5314126 GJ" + }, + { + "year": 2014, + "value": "2028727340.2514122 GJ" + }, + { + "year": 2015, + "value": "1885882971.9314125 GJ" + }, + { + "year": 2016, + "value": "1661622976.4114125 GJ" + }, + { + "year": 2017, + "value": "2488147559.6114125 GJ" + }, + { + "year": 2018, + "value": "2457602018.9714127 GJ" + }, + { + "year": 2019, + "value": "2156173206.8114123 GJ" + }, + { + "year": 2020, + "value": "2156173206.8114123 GJ" + }, + { + "year": 2021, + "value": "2156173206.8114123 GJ" + } + ], + "emissions": { + "S1": [], + "S2": [], + "S1S2": [], + "S3": [], + "S1S2S3": [] + }, + "emission_intensities": { + "S1": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": "9.020587159252296e-09 t CO2/GJ" + }, + { + "year": 2011, + "value": "9.143141676640597e-09 t CO2/GJ" + }, + { + "year": 2012, + "value": "9.269072133483565e-09 t CO2/GJ" + }, + { + "year": 2013, + "value": "0.016324063782454407 t CO2/GJ" + }, + { + "year": 2014, + "value": "0.033110525388179275 t CO2/GJ" + }, + { + "year": 2015, + "value": "0.0534276696850902 t CO2/GJ" + }, + { + "year": 2016, + "value": "0.08085133557988561 t CO2/GJ" + }, + { + "year": 2017, + "value": "0.06749219539186596 t CO2/GJ" + }, + { + "year": 2018, + "value": "0.08300080315789345 t CO2/GJ" + }, + { + "year": 2019, + "value": "0.08723928160449504 t CO2/GJ" + }, + { + "year": 2020, + "value": "0.08723928160449504 t CO2/GJ" + }, + { + "year": 2021, + "value": "0.08723928160449504 t CO2/GJ" + } + ], + "S2": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": "9.020587159252296e-09 t CO2/GJ" + }, + { + "year": 2011, + "value": "9.143141676640597e-09 t CO2/GJ" + }, + { + "year": 2012, + "value": "9.269072133483565e-09 t CO2/GJ" + }, + { + "year": 2013, + "value": "0.016324063782454407 t CO2/GJ" + }, + { + "year": 2014, + "value": "0.033110525388179275 t CO2/GJ" + }, + { + "year": 2015, + "value": "0.0534276696850902 t CO2/GJ" + }, + { + "year": 2016, + "value": "0.08085133557988561 t CO2/GJ" + }, + { + "year": 2017, + "value": "0.06749219539186596 t CO2/GJ" + }, + { + "year": 2018, + "value": "0.08300080315789345 t CO2/GJ" + }, + { + "year": 2019, + "value": "0.08723928160449504 t CO2/GJ" + }, + { + "year": 2020, + "value": "0.08723928160449504 t CO2/GJ" + }, + { + "year": 2021, + "value": "0.08723928160449504 t CO2/GJ" + } + ], + "S1S2": [], + "S3": [], + "S1S2S3": [] + } + } + }, + { + "company_name": "Company AI", + "company_id": "FR0000125338", + "region": "Europe", + "sector": "Electricity Utilities", + "target_probability": 0.4285714285714285, + "historic_data": { + "emission_intensities": { + "S1": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": "0.4605612425432028 t CO2/GJ" + }, + { + "year": 2011, + "value": "0.47676992001722285 t CO2/GJ" + }, + { + "year": 2012, + "value": "0.4935410421590952 t CO2/GJ" + }, + { + "year": 2013, + "value": "0.4271137111711944 t CO2/GJ" + }, + { + "year": 2014, + "value": "0.4050475894153404 t CO2/GJ" + }, + { + "year": 2015, + "value": "1.7660044449376848 t CO2/GJ" + }, + { + "year": 2016, + "value": "0.12641248982232864 t CO2/GJ" + }, + { + "year": 2017, + "value": "0.11422094242724208 t CO2/GJ" + }, + { + "year": 2018, + "value": "0.12432145953306709 t CO2/GJ" + }, + { + "year": 2019, + "value": "0.14432694163463483 t CO2/GJ" + }, + { + "year": 2020, + "value": "0.11410264669076498 t CO2/GJ" + }, + { + "year": 2021, + "value": "0.11410264669076498 t CO2/GJ" + } + ], + "S2": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": "0.019750986012689604 t CO2/GJ" + }, + { + "year": 2011, + "value": "0.019542782620390428 t CO2/GJ" + }, + { + "year": 2012, + "value": "0.016717335291559405 t CO2/GJ" + }, + { + "year": 2013, + "value": "0.012755111704326829 t CO2/GJ" + }, + { + "year": 2014, + "value": "0.016135716380506274 t CO2/GJ" + }, + { + "year": 2015, + "value": "0.0816777616053006 t CO2/GJ" + }, + { + "year": 2016, + "value": "0.07909610646488868 t CO2/GJ" + }, + { + "year": 2017, + "value": "0.08497232976008089 t CO2/GJ" + }, + { + "year": 2018, + "value": "0.078447410507817 t CO2/GJ" + }, + { + "year": 2019, + "value": "0.08024699005813475 t CO2/GJ" + }, + { + "year": 2020, + "value": "0.14391033829225056 t CO2/GJ" + }, + { + "year": 2021, + "value": "0.14391033829225056 t CO2/GJ" + } + ], + "S1S2": [], + "S3": [], + "S1S2S3": [] + } + } + }, + { + "company_name": "Company AJ", + "company_id": "US17275R1023", + "region": "Europe", + "sector": "Electricity Utilities", + "target_probability": 0.4285714285714285, + "historic_data": { + "productions": [ + { + "year": 2009, + "value": "8015760033.846192 GJ" + }, + { + "year": 2010, + "value": "8169984033.846192 GJ" + }, + { + "year": 2011, + "value": "8141472033.846192 GJ" + }, + { + "year": 2012, + "value": "8328096033.846192 GJ" + }, + { + "year": 2013, + "value": "8474544033.846192 GJ" + }, + { + "year": 2014, + "value": "8080560033.846192 GJ" + }, + { + "year": 2015, + "value": "8026128033.846192 GJ" + }, + { + "year": 2016, + "value": "364176033.84621 GJ" + }, + { + "year": 2017, + "value": "381024033.84621 GJ" + }, + { + "year": 2018, + "value": "383616033.84621 GJ" + }, + { + "year": 2019, + "value": "360288033.84621 GJ" + }, + { + "year": 2020, + "value": "360288033.84621 GJ" + }, + { + "year": 2021, + "value": "360288033.84621 GJ" + } + ], + "emissions": { + "S1": [ + { + "year": 2009, + "value": "78192009.4017252 t CO2" + }, + { + "year": 2010, + "value": "80575879.4017252 t CO2" + }, + { + "year": 2011, + "value": "70935799.4017252 t CO2" + }, + { + "year": 2012, + "value": "80283565.4017252 t CO2" + }, + { + "year": 2013, + "value": "73222380.0683918 t CO2" + }, + { + "year": 2014, + "value": "66161194.7350585 t CO2" + }, + { + "year": 2015, + "value": "59100009.4017252 t CO2" + }, + { + "year": 2016, + "value": "47700009.4017252 t CO2" + }, + { + "year": 2017, + "value": "51300009.4017252 t CO2" + }, + { + "year": 2018, + "value": "35700009.4017252 t CO2" + }, + { + "year": 2019, + "value": "33100009.4017252 t CO2" + }, + { + "year": 2020, + "value": "33100009.4017252 t CO2" + }, + { + "year": 2021, + "value": "33100009.4017252 t CO2" + } + ], + "S2": [ + { + "year": 2009, + "value": "480089.401725152 t CO2" + }, + { + "year": 2010, + "value": "670709.401725152 t CO2" + }, + { + "year": 2011, + "value": "81181.4017251516 t CO2" + }, + { + "year": 2012, + "value": "74013.4017251516 t CO2" + }, + { + "year": 2013, + "value": "159212.601725152 t CO2" + }, + { + "year": 2014, + "value": "244411.801725152 t CO2" + }, + { + "year": 2015, + "value": "329611.001725152 t CO2" + }, + { + "year": 2016, + "value": "414810.201725152 t CO2" + }, + { + "year": 2017, + "value": "500009.401725152 t CO2" + }, + { + "year": 2018, + "value": "470009.401725152 t CO2" + }, + { + "year": 2019, + "value": "290009.401725152 t CO2" + }, + { + "year": 2020, + "value": "290009.401725152 t CO2" + }, + { + "year": 2021, + "value": "290009.401725152 t CO2" + } + ], + "S1S2": [], + "S3": [], + "S1S2S3": [] + }, + "emission_intensities": { + "S1": [ + { + "year": 2009, + "value": "0.12642200334933337 t CO2/GJ" + }, + { + "year": 2010, + "value": "0.12781706704936452 t CO2/GJ" + }, + { + "year": 2011, + "value": "0.1129191326119494 t CO2/GJ" + }, + { + "year": 2012, + "value": "0.12493551988086661 t CO2/GJ" + }, + { + "year": 2013, + "value": "0.11197794735579024 t CO2/GJ" + }, + { + "year": 2014, + "value": "0.10611258132788423 t CO2/GJ" + }, + { + "year": 2015, + "value": "0.09543033933877008 t CO2/GJ" + }, + { + "year": 2016, + "value": "1.6975090736130565 t CO2/GJ" + }, + { + "year": 2017, + "value": "1.7448981239716346 t CO2/GJ" + }, + { + "year": 2018, + "value": "1.2060812922950988 t CO2/GJ" + }, + { + "year": 2019, + "value": "1.1906477083539972 t CO2/GJ" + }, + { + "year": 2020, + "value": "1.1906477083539972 t CO2/GJ" + }, + { + "year": 2021, + "value": "1.1906477083539972 t CO2/GJ" + } + ], + "S2": [ + { + "year": 2009, + "value": "0.0007762156826159988 t CO2/GJ" + }, + { + "year": 2010, + "value": "0.001063942574471082 t CO2/GJ" + }, + { + "year": 2011, + "value": "0.000129228591830085 t CO2/GJ" + }, + { + "year": 2012, + "value": "0.0001151780289828102 t CO2/GJ" + }, + { + "year": 2013, + "value": "0.00024348157377164316 t CO2/GJ" + }, + { + "year": 2014, + "value": "0.0003919996803551076 t CO2/GJ" + }, + { + "year": 2015, + "value": "0.0005322315522932028 t CO2/GJ" + }, + { + "year": 2016, + "value": "0.01476192751505496 t CO2/GJ" + }, + { + "year": 2017, + "value": "0.017007120996922403 t CO2/GJ" + }, + { + "year": 2018, + "value": "0.01587869460326034 t CO2/GJ" + }, + { + "year": 2019, + "value": "0.010431991887807995 t CO2/GJ" + }, + { + "year": 2020, + "value": "0.010431991887807995 t CO2/GJ" + }, + { + "year": 2021, + "value": "0.010431991887807995 t CO2/GJ" + } + ], + "S1S2": [], + "S3": [], + "S1S2S3": [] + } + } + }, + { + "company_name": "Company AK", + "company_id": "CH0198251305", + "region": "Europe", + "sector": "Electricity Utilities", + "target_probability": 0.4285714285714285, + "historic_data": { + "productions": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": "3760992023.3008924 GJ" + }, + { + "year": 2011, + "value": "3808944023.3008924 GJ" + }, + { + "year": 2012, + "value": "3833568023.3008924 GJ" + }, + { + "year": 2013, + "value": "3708452183.3008924 GJ" + }, + { + "year": 2014, + "value": "3668988983.3008924 GJ" + }, + { + "year": 2015, + "value": "3680795543.3008924 GJ" + }, + { + "year": 2016, + "value": "3393083543.3008957 GJ" + }, + { + "year": 2017, + "value": "3238392983.3008957 GJ" + }, + { + "year": 2018, + "value": "3244393463.3008957 GJ" + }, + { + "year": 2019, + "value": "2969511863.3008957 GJ" + }, + { + "year": 2020, + "value": "2684119703.3008957 GJ" + }, + { + "year": 2021, + "value": "2684119703.3008957 GJ" + } + ], + "emissions": { + "S1": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": "116400006.472471 t CO2" + }, + { + "year": 2011, + "value": "123540195.472471 t CO2" + }, + { + "year": 2012, + "value": "127800006.472471 t CO2" + }, + { + "year": 2013, + "value": "115550006.472471 t CO2" + }, + { + "year": 2014, + "value": "115480006.472471 t CO2" + }, + { + "year": 2015, + "value": "119510006.472471 t CO2" + }, + { + "year": 2016, + "value": "106730006.472471 t CO2" + }, + { + "year": 2017, + "value": "105960006.472471 t CO2" + }, + { + "year": 2018, + "value": "95230006.4724713 t CO2" + }, + { + "year": 2019, + "value": "69980006.4724713 t CO2" + }, + { + "year": 2020, + "value": "45260006.4724712 t CO2" + }, + { + "year": 2021, + "value": "45260006.4724712 t CO2" + } + ], + "S2": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": "245006.472471246 t CO2" + }, + { + "year": 2011, + "value": "331647.472471246 t CO2" + }, + { + "year": 2012, + "value": "370006.472471246 t CO2" + }, + { + "year": 2013, + "value": "786006.472471246 t CO2" + }, + { + "year": 2014, + "value": "636006.472471246 t CO2" + }, + { + "year": 2015, + "value": "654006.472471246 t CO2" + }, + { + "year": 2016, + "value": "1400006.47247125 t CO2" + }, + { + "year": 2017, + "value": "5000006.47247125 t CO2" + }, + { + "year": 2018, + "value": "5080006.47247125 t CO2" + }, + { + "year": 2019, + "value": "5370006.47247125 t CO2" + }, + { + "year": 2020, + "value": "5000006.47247125 t CO2" + }, + { + "year": 2021, + "value": "5000006.47247125 t CO2" + } + ], + "S1S2": [], + "S3": [], + "S1S2S3": [] + }, + "emission_intensities": { + "S1": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": "0.401102707620006 t CO2/GJ" + }, + { + "year": 2011, + "value": "0.4203477193491828 t CO2/GJ" + }, + { + "year": 2012, + "value": "0.43204870079677804 t CO2/GJ" + }, + { + "year": 2013, + "value": "0.4038148558653588 t CO2/GJ" + }, + { + "year": 2014, + "value": "0.40791097784566077 t CO2/GJ" + }, + { + "year": 2015, + "value": "0.42079209933357004 t CO2/GJ" + }, + { + "year": 2016, + "value": "0.4076589527582292 t CO2/GJ" + }, + { + "year": 2017, + "value": "0.4240503518147712 t CO2/GJ" + }, + { + "year": 2018, + "value": "0.380404195065648 t CO2/GJ" + }, + { + "year": 2019, + "value": "0.3054174981052529 t CO2/GJ" + }, + { + "year": 2020, + "value": "0.21853335496247459 t CO2/GJ" + }, + { + "year": 2021, + "value": "0.21853335496247459 t CO2/GJ" + } + ], + "S2": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": "0.0008442676462899023 t CO2/GJ" + }, + { + "year": 2011, + "value": "0.001128436442471657 t CO2/GJ" + }, + { + "year": 2012, + "value": "0.0012508670392910783 t CO2/GJ" + }, + { + "year": 2013, + "value": "0.0027468721126020315 t CO2/GJ" + }, + { + "year": 2014, + "value": "0.00224657090025156 t CO2/GJ" + }, + { + "year": 2015, + "value": "0.0023027423782485457 t CO2/GJ" + }, + { + "year": 2016, + "value": "0.005347373164168032 t CO2/GJ" + }, + { + "year": 2017, + "value": "0.020009950681518757 t CO2/GJ" + }, + { + "year": 2018, + "value": "0.020292509101606883 t CO2/GJ" + }, + { + "year": 2019, + "value": "0.023436607458394043 t CO2/GJ" + }, + { + "year": 2020, + "value": "0.024142024591353756 t CO2/GJ" + }, + { + "year": 2021, + "value": "0.024142024591353756 t CO2/GJ" + } + ], + "S1S2": [], + "S3": [], + "S1S2S3": [] + } + } + }, + { + "company_name": "Company AL", + "company_id": "US1266501006", + "region": "Europe", + "sector": "Electricity Utilities", + "target_probability": 0.4285714285714285, + "historic_data": { + "productions": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": "4341600001.354788 GJ" + }, + { + "year": 2011, + "value": "6026400001.354788 GJ" + }, + { + "year": 2012, + "value": "6039360001.354788 GJ" + }, + { + "year": 2013, + "value": "6207840001.354788 GJ" + }, + { + "year": 2014, + "value": "6091200001.354788 GJ" + }, + { + "year": 2015, + "value": "6363360001.354788 GJ" + }, + { + "year": 2016, + "value": "3563902801.354802 GJ" + }, + { + "year": 2017, + "value": "764445601.3548025 GJ" + }, + { + "year": 2018, + "value": "739614241.3548025 GJ" + }, + { + "year": 2019, + "value": "797765761.3548025 GJ" + }, + { + "year": 2020, + "value": "718528321.3548025 GJ" + }, + { + "year": 2021, + "value": "718528321.3548025 GJ" + } + ], + "emissions": { + "S1": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": "109324454.376334 t CO2" + }, + { + "year": 2011, + "value": "156899254.376334 t CO2" + }, + { + "year": 2012, + "value": "154230874.376334 t CO2" + }, + { + "year": 2013, + "value": "141984778.376334 t CO2" + }, + { + "year": 2014, + "value": "131154736.376334 t CO2" + }, + { + "year": 2015, + "value": "133757296.376334 t CO2" + }, + { + "year": 2016, + "value": "120150105.376334 t CO2" + }, + { + "year": 2017, + "value": "89756230.3763341 t CO2" + }, + { + "year": 2018, + "value": "57205670.3763341 t CO2" + }, + { + "year": 2019, + "value": "46188978.3763341 t CO2" + }, + { + "year": 2020, + "value": "38589016.3763341 t CO2" + }, + { + "year": 2021, + "value": "38589016.3763341 t CO2" + } + ], + "S2": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": "3250751.37633413 t CO2" + }, + { + "year": 2011, + "value": "3357343.37633413 t CO2" + }, + { + "year": 2012, + "value": "3712790.37633413 t CO2" + }, + { + "year": 2013, + "value": "3748376.12633413 t CO2" + }, + { + "year": 2014, + "value": "3783961.87633413 t CO2" + }, + { + "year": 2015, + "value": "3819547.62633413 t CO2" + }, + { + "year": 2016, + "value": "3855133.37633413 t CO2" + }, + { + "year": 2017, + "value": "3576861.37633413 t CO2" + }, + { + "year": 2018, + "value": "2912586.37633413 t CO2" + }, + { + "year": 2019, + "value": "2534464.37633413 t CO2" + }, + { + "year": 2020, + "value": "2330625.37633413 t CO2" + }, + { + "year": 2021, + "value": "2330625.37633413 t CO2" + } + ], + "S1S2": [], + "S3": [], + "S1S2S3": [] + }, + "emission_intensities": { + "S1": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": "0.3263416547528934 t CO2/GJ" + }, + { + "year": 2011, + "value": "0.33741775127109996 t CO2/GJ" + }, + { + "year": 2012, + "value": "0.3309675415058707 t CO2/GJ" + }, + { + "year": 2013, + "value": "0.2964191614725413 t CO2/GJ" + }, + { + "year": 2014, + "value": "0.2790526305258781 t CO2/GJ" + }, + { + "year": 2015, + "value": "0.27241811883473793 t CO2/GJ" + }, + { + "year": 2016, + "value": "0.4369213899675792 t CO2/GJ" + }, + { + "year": 2017, + "value": "1.521678905098956 t CO2/GJ" + }, + { + "year": 2018, + "value": "1.0023948250634593 t CO2/GJ" + }, + { + "year": 2019, + "value": "0.750357045582786 t CO2/GJ" + }, + { + "year": 2020, + "value": "0.6960249684999396 t CO2/GJ" + }, + { + "year": 2021, + "value": "0.6960249684999396 t CO2/GJ" + } + ], + "S2": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": "0.009703735448715611 t CO2/GJ" + }, + { + "year": 2011, + "value": "0.007220093280815844 t CO2/GJ" + }, + { + "year": 2012, + "value": "0.007967361320818128 t CO2/GJ" + }, + { + "year": 2013, + "value": "0.007825419886254877 t CO2/GJ" + }, + { + "year": 2014, + "value": "0.008050982713813836 t CO2/GJ" + }, + { + "year": 2015, + "value": "0.0077791194002462755 t CO2/GJ" + }, + { + "year": 2016, + "value": "0.014019049155408301 t CO2/GJ" + }, + { + "year": 2017, + "value": "0.06064018597940113 t CO2/GJ" + }, + { + "year": 2018, + "value": "0.05103622581434676 t CO2/GJ" + }, + { + "year": 2019, + "value": "0.04117331165166648 t CO2/GJ" + }, + { + "year": 2020, + "value": "0.04203718069224924 t CO2/GJ" + }, + { + "year": 2021, + "value": "0.04203718069224924 t CO2/GJ" + } + ], + "S1S2": [], + "S3": [], + "S1S2S3": [] + } + } + }, + { + "company_name": "Company AM", + "company_id": "FR0000120644", + "region": "Europe", + "sector": "Electricity Utilities", + "target_probability": 0.4285714285714285, + "historic_data": { + "productions": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": "1990487529.3093767 GJ" + }, + { + "year": 2011, + "value": "1881092169.3093767 GJ" + }, + { + "year": 2012, + "value": "1746463689.3093767 GJ" + }, + { + "year": 2013, + "value": "1768197609.3093767 GJ" + }, + { + "year": 2014, + "value": "1800040329.3093767 GJ" + }, + { + "year": 2015, + "value": "1741487049.3093767 GJ" + }, + { + "year": 2016, + "value": "1846359369.3093767 GJ" + }, + { + "year": 2017, + "value": "1782635049.3093767 GJ" + }, + { + "year": 2018, + "value": "1492136649.3093767 GJ" + }, + { + "year": 2019, + "value": "1480680009.3093767 GJ" + }, + { + "year": 2020, + "value": "1600080489.3093767 GJ" + }, + { + "year": 2021, + "value": "1600080489.3093767 GJ" + } + ], + "emissions": { + "S1": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": "39499002.5859383 t CO2" + }, + { + "year": 2011, + "value": "36193002.5859383 t CO2" + }, + { + "year": 2012, + "value": "35461094.5859383 t CO2" + }, + { + "year": 2013, + "value": "31838172.5859383 t CO2" + }, + { + "year": 2014, + "value": "30202558.5859383 t CO2" + }, + { + "year": 2015, + "value": "31817606.5859383 t CO2" + }, + { + "year": 2016, + "value": "26625135.5859383 t CO2" + }, + { + "year": 2017, + "value": "15129771.5859383 t CO2" + }, + { + "year": 2018, + "value": "13457443.5859383 t CO2" + }, + { + "year": 2019, + "value": "12966980.5859383 t CO2" + }, + { + "year": 2020, + "value": "13136322.5859383 t CO2" + }, + { + "year": 2021, + "value": "13136322.5859383 t CO2" + } + ], + "S2": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": "6236002.58593829 t CO2" + }, + { + "year": 2011, + "value": "5189002.58593829 t CO2" + }, + { + "year": 2012, + "value": "7189303.58593829 t CO2" + }, + { + "year": 2013, + "value": "4181124.58593829 t CO2" + }, + { + "year": 2014, + "value": "1547095.58593829 t CO2" + }, + { + "year": 2015, + "value": "970947.585938292 t CO2" + }, + { + "year": 2016, + "value": "4503672.58593829 t CO2" + }, + { + "year": 2017, + "value": "5010565.58593829 t CO2" + }, + { + "year": 2018, + "value": "2543866.58593829 t CO2" + }, + { + "year": 2019, + "value": "2081746.58593829 t CO2" + }, + { + "year": 2020, + "value": "2001731.58593829 t CO2" + }, + { + "year": 2021, + "value": "2001731.58593829 t CO2" + } + ], + "S1S2": [], + "S3": [], + "S1S2S3": [] + }, + "emission_intensities": { + "S1": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": "0.2571767298091901 t CO2/GJ" + }, + { + "year": 2011, + "value": "0.2493558376174469 t CO2/GJ" + }, + { + "year": 2012, + "value": "0.26314648775520477 t CO2/GJ" + }, + { + "year": 2013, + "value": "0.2333578071485585 t CO2/GJ" + }, + { + "year": 2014, + "value": "0.21745354973459868 t CO2/GJ" + }, + { + "year": 2015, + "value": "0.23678394939387504 t CO2/GJ" + }, + { + "year": 2016, + "value": "0.18688764653807832 t CO2/GJ" + }, + { + "year": 2017, + "value": "0.10999550347095743 t CO2/GJ" + }, + { + "year": 2018, + "value": "0.11688505134867072 t CO2/GJ" + }, + { + "year": 2019, + "value": "0.11349654708456793 t CO2/GJ" + }, + { + "year": 2020, + "value": "0.1063988604643518 t CO2/GJ" + }, + { + "year": 2021, + "value": "0.1063988604643518 t CO2/GJ" + } + ], + "S2": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": "0.0406024113809952 t CO2/GJ" + }, + { + "year": 2011, + "value": "0.03575022777243828 t CO2/GJ" + }, + { + "year": 2012, + "value": "0.05334973469193888 t CO2/GJ" + }, + { + "year": 2013, + "value": "0.030645542301646213 t CO2/GJ" + }, + { + "year": 2014, + "value": "0.011138838651161208 t CO2/GJ" + }, + { + "year": 2015, + "value": "0.007225710187595436 t CO2/GJ" + }, + { + "year": 2016, + "value": "0.03161226231683834 t CO2/GJ" + }, + { + "year": 2017, + "value": "0.036427495363629124 t CO2/GJ" + }, + { + "year": 2018, + "value": "0.02209483358579754 t CO2/GJ" + }, + { + "year": 2019, + "value": "0.018220976567613723 t CO2/GJ" + }, + { + "year": 2020, + "value": "0.01621321022729142 t CO2/GJ" + }, + { + "year": 2021, + "value": "0.01621321022729142 t CO2/GJ" + } + ], + "S1S2": [], + "S3": [], + "S1S2S3": [] + } + } + }, + { + "company_name": "Company AN", + "company_id": "US24703L1035", + "region": "Asia", + "sector": "Electricity Utilities", + "target_probability": 0.4285714285714285, + "historic_data": { + "productions": [ + { + "year": 2009, + "value": "5271868803.094344 GJ" + }, + { + "year": 2010, + "value": "5642576643.094344 GJ" + }, + { + "year": 2011, + "value": "5746580643.094344 GJ" + }, + { + "year": 2012, + "value": "5808127683.094344 GJ" + }, + { + "year": 2013, + "value": "5823226083.094344 GJ" + }, + { + "year": 2014, + "value": "5740165443.094344 GJ" + }, + { + "year": 2015, + "value": "5610643203.094344 GJ" + }, + { + "year": 2016, + "value": "5654577603.094344 GJ" + }, + { + "year": 2017, + "value": "5527232643.094344 GJ" + }, + { + "year": 2018, + "value": "5421517923.094344 GJ" + }, + { + "year": 2019, + "value": "5301547203.094344 GJ" + }, + { + "year": 2020, + "value": "5301547203.094344 GJ" + }, + { + "year": 2021, + "value": "5301547203.094344 GJ" + } + ], + "emissions": { + "S1": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": null + }, + { + "year": 2011, + "value": null + }, + { + "year": 2012, + "value": "1174220.85954061 t CO2" + }, + { + "year": 2013, + "value": "1310000.85954061 t CO2" + }, + { + "year": 2014, + "value": "1280000.85954061 t CO2" + }, + { + "year": 2015, + "value": "1150000.85954061 t CO2" + }, + { + "year": 2016, + "value": "1230000.85954061 t CO2" + }, + { + "year": 2017, + "value": "1290000.85954061 t CO2" + }, + { + "year": 2018, + "value": "1170000.85954061 t CO2" + }, + { + "year": 2019, + "value": "910000.859540609 t CO2" + }, + { + "year": 2020, + "value": "910000.859540609 t CO2" + }, + { + "year": 2021, + "value": "910000.859540609 t CO2" + } + ], + "S2": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": null + }, + { + "year": 2011, + "value": null + }, + { + "year": 2012, + "value": "132861.859540609 t CO2" + }, + { + "year": 2013, + "value": "120000.859540609 t CO2" + }, + { + "year": 2014, + "value": "140000.859540609 t CO2" + }, + { + "year": 2015, + "value": "160000.859540609 t CO2" + }, + { + "year": 2016, + "value": "170000.859540609 t CO2" + }, + { + "year": 2017, + "value": "180000.859540609 t CO2" + }, + { + "year": 2018, + "value": "190000.859540609 t CO2" + }, + { + "year": 2019, + "value": "190000.859540609 t CO2" + }, + { + "year": 2020, + "value": "190000.859540609 t CO2" + }, + { + "year": 2021, + "value": "190000.859540609 t CO2" + } + ], + "S1S2": [], + "S3": [], + "S1S2S3": [] + }, + "emission_intensities": { + "S1": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": null + }, + { + "year": 2011, + "value": null + }, + { + "year": 2012, + "value": "0.0026201046481710228 t CO2/GJ" + }, + { + "year": 2013, + "value": "0.0029154992262681854 t CO2/GJ" + }, + { + "year": 2014, + "value": "0.002889953487247187 t CO2/GJ" + }, + { + "year": 2015, + "value": "0.0026563819156111223 t CO2/GJ" + }, + { + "year": 2016, + "value": "0.0028190984824265257 t CO2/GJ" + }, + { + "year": 2017, + "value": "0.003024734477303765 t CO2/GJ" + }, + { + "year": 2018, + "value": "0.0027968571449436134 t CO2/GJ" + }, + { + "year": 2019, + "value": "0.002224560243991176 t CO2/GJ" + }, + { + "year": 2020, + "value": "0.002224560243991176 t CO2/GJ" + }, + { + "year": 2021, + "value": "0.002224560243991176 t CO2/GJ" + } + ], + "S2": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": null + }, + { + "year": 2011, + "value": null + }, + { + "year": 2012, + "value": "0.0002964620947742204 t CO2/GJ" + }, + { + "year": 2013, + "value": "0.000267070369148347 t CO2/GJ" + }, + { + "year": 2014, + "value": "0.00031609039105817065 t CO2/GJ" + }, + { + "year": 2015, + "value": "0.000369585280080306 t CO2/GJ" + }, + { + "year": 2016, + "value": "0.0003896331953142924 t CO2/GJ" + }, + { + "year": 2017, + "value": "0.00042205770776825637 t CO2/GJ" + }, + { + "year": 2018, + "value": "0.000454192197568326 t CO2/GJ" + }, + { + "year": 2019, + "value": "0.0004644702848649636 t CO2/GJ" + }, + { + "year": 2020, + "value": "0.0004644702848649636 t CO2/GJ" + }, + { + "year": 2021, + "value": "0.0004644702848649636 t CO2/GJ" + } + ], + "S1S2": [], + "S3": [], + "S1S2S3": [] + } + } + }, + { + "company_name": "Company AO", + "company_id": "TW0002308004", + "region": "Europe", + "sector": "Electricity Utilities", + "target_probability": 0.4285714285714285, + "historic_data": { + "productions": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": null + }, + { + "year": 2011, + "value": null + }, + { + "year": 2012, + "value": "76114085.42779164 GJ" + }, + { + "year": 2013, + "value": "76114085.42779164 GJ" + }, + { + "year": 2014, + "value": "76114085.42779164 GJ" + }, + { + "year": 2015, + "value": "76114085.42779164 GJ" + }, + { + "year": 2016, + "value": "76114085.42779164 GJ" + }, + { + "year": 2017, + "value": "76114085.42779164 GJ" + }, + { + "year": 2018, + "value": "76114085.42779164 GJ" + }, + { + "year": 2019, + "value": "76114085.42779164 GJ" + }, + { + "year": 2020, + "value": "76114085.42779164 GJ" + }, + { + "year": 2021, + "value": "76114085.42779164 GJ" + } + ], + "emissions": { + "S1": [ + { + "year": 2009, + "value": "11074001.5077199 t CO2" + }, + { + "year": 2010, + "value": "8500001.50771989 t CO2" + }, + { + "year": 2011, + "value": "9328837.50771989 t CO2" + }, + { + "year": 2012, + "value": "8328346.50771989 t CO2" + }, + { + "year": 2013, + "value": "7914001.50771989 t CO2" + }, + { + "year": 2014, + "value": "7250001.50771989 t CO2" + }, + { + "year": 2015, + "value": "7020001.50771989 t CO2" + }, + { + "year": 2016, + "value": "7038001.50771989 t CO2" + }, + { + "year": 2017, + "value": "5800001.50771989 t CO2" + }, + { + "year": 2018, + "value": "4000001.50771989 t CO2" + }, + { + "year": 2019, + "value": "4500001.50771989 t CO2" + }, + { + "year": 2020, + "value": "4500001.50771989 t CO2" + }, + { + "year": 2021, + "value": "4500001.50771989 t CO2" + } + ], + "S2": [ + { + "year": 2009, + "value": "266001.507719888 t CO2" + }, + { + "year": 2010, + "value": "350001.507719888 t CO2" + }, + { + "year": 2011, + "value": "329353.507719888 t CO2" + }, + { + "year": 2012, + "value": "319181.507719888 t CO2" + }, + { + "year": 2013, + "value": "250001.507719888 t CO2" + }, + { + "year": 2014, + "value": "220001.507719888 t CO2" + }, + { + "year": 2015, + "value": "230001.507719888 t CO2" + }, + { + "year": 2016, + "value": "247001.507719888 t CO2" + }, + { + "year": 2017, + "value": "3400001.50771989 t CO2" + }, + { + "year": 2018, + "value": "2900001.50771989 t CO2" + }, + { + "year": 2019, + "value": "2500001.50771989 t CO2" + }, + { + "year": 2020, + "value": "2500001.50771989 t CO2" + }, + { + "year": 2021, + "value": "2500001.50771989 t CO2" + } + ], + "S1S2": [], + "S3": [], + "S1S2S3": [] + }, + "emission_intensities": { + "S1": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": null + }, + { + "year": 2011, + "value": null + }, + { + "year": 2012, + "value": "1.418073542280774 t CO2/GJ" + }, + { + "year": 2013, + "value": "1.3475227214987966 t CO2/GJ" + }, + { + "year": 2014, + "value": "1.2344629645348417 t CO2/GJ" + }, + { + "year": 2015, + "value": "1.195300699321421 t CO2/GJ" + }, + { + "year": 2016, + "value": "1.1983655722511666 t CO2/GJ" + }, + { + "year": 2017, + "value": "0.9875704229719812 t CO2/GJ" + }, + { + "year": 2018, + "value": "0.6810831299973996 t CO2/GJ" + }, + { + "year": 2019, + "value": "0.7662184891570044 t CO2/GJ" + }, + { + "year": 2020, + "value": "0.7662184891570044 t CO2/GJ" + }, + { + "year": 2021, + "value": "0.7662184891570044 t CO2/GJ" + } + ], + "S2": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": null + }, + { + "year": 2011, + "value": null + }, + { + "year": 2012, + "value": "0.05434726459367484 t CO2/GJ" + }, + { + "year": 2013, + "value": "0.04256793630035172 t CO2/GJ" + }, + { + "year": 2014, + "value": "0.037459814750775366 t CO2/GJ" + }, + { + "year": 2015, + "value": "0.03916252193396724 t CO2/GJ" + }, + { + "year": 2016, + "value": "0.04205712414539412 t CO2/GJ" + }, + { + "year": 2017, + "value": "0.5789206990058725 t CO2/GJ" + }, + { + "year": 2018, + "value": "0.493785339846264 t CO2/GJ" + }, + { + "year": 2019, + "value": "0.4256770525185816 t CO2/GJ" + }, + { + "year": 2020, + "value": "0.4256770525185816 t CO2/GJ" + }, + { + "year": 2021, + "value": "0.4256770525185816 t CO2/GJ" + } + ], + "S1S2": [], + "S3": [], + "S1S2S3": [] + } + } + }, + { + "company_name": "Company AP", + "company_id": "FR0000120321", + "region": "Asia", + "sector": "Electricity Utilities", + "target_probability": 0.4285714285714285, + "historic_data": { + "productions": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": "2836166403.246948 GJ" + }, + { + "year": 2011, + "value": "2858198403.246948 GJ" + }, + { + "year": 2012, + "value": "2878027203.246948 GJ" + }, + { + "year": 2013, + "value": "3007082883.246948 GJ" + }, + { + "year": 2014, + "value": "3023360643.246948 GJ" + }, + { + "year": 2015, + "value": "3126729603.246948 GJ" + }, + { + "year": 2016, + "value": "3136060803.246948 GJ" + }, + { + "year": 2017, + "value": "3244017603.246948 GJ" + }, + { + "year": 2018, + "value": "3444768003.246948 GJ" + }, + { + "year": 2019, + "value": "3556872003.246948 GJ" + }, + { + "year": 2020, + "value": "3364675203.246948 GJ" + }, + { + "year": 2021, + "value": "3364675203.246948 GJ" + } + ], + "emissions": { + "S1": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": "185584163.90193 t CO2" + }, + { + "year": 2011, + "value": "188513981.90193 t CO2" + }, + { + "year": 2012, + "value": "189986958.90193 t CO2" + }, + { + "year": 2013, + "value": "200994691.90193 t CO2" + }, + { + "year": 2014, + "value": "201036494.90193 t CO2" + }, + { + "year": 2015, + "value": "213050961.90193 t CO2" + }, + { + "year": 2016, + "value": "231671486.101929 t CO2" + }, + { + "year": 2017, + "value": "221222495.90193 t CO2" + }, + { + "year": 2018, + "value": "231986764.90193 t CO2" + }, + { + "year": 2019, + "value": "240369173.90193 t CO2" + }, + { + "year": 2020, + "value": "226132940.90193 t CO2" + }, + { + "year": 2021, + "value": "226132940.90193 t CO2" + } + ], + "S2": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": null + }, + { + "year": 2011, + "value": null + }, + { + "year": 2012, + "value": "0.901929562977962 t CO2" + }, + { + "year": 2013, + "value": "0.901929562977962 t CO2" + }, + { + "year": 2014, + "value": "0.901929562977962 t CO2" + }, + { + "year": 2015, + "value": "6235.05442956298 t CO2" + }, + { + "year": 2016, + "value": "12469.206929563 t CO2" + }, + { + "year": 2017, + "value": "18703.359429563 t CO2" + }, + { + "year": 2018, + "value": "24937.511929563 t CO2" + }, + { + "year": 2019, + "value": "23268.401929563 t CO2" + }, + { + "year": 2020, + "value": "15845.901929563 t CO2" + }, + { + "year": 2021, + "value": "15845.901929563 t CO2" + } + ], + "S1S2": [], + "S3": [], + "S1S2S3": [] + }, + "emission_intensities": { + "S1": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": "0.848035842119658 t CO2/GJ" + }, + { + "year": 2011, + "value": "0.8547836296716036 t CO2/GJ" + }, + { + "year": 2012, + "value": "0.8555273503291261 t CO2/GJ" + }, + { + "year": 2013, + "value": "0.8662518820353672 t CO2/GJ" + }, + { + "year": 2014, + "value": "0.8617671794294748 t CO2/GJ" + }, + { + "year": 2015, + "value": "0.8830761903369287 t CO2/GJ" + }, + { + "year": 2016, + "value": "0.95739931342287 t CO2/GJ" + }, + { + "year": 2017, + "value": "0.8837940780652285 t CO2/GJ" + }, + { + "year": 2018, + "value": "0.8727869250687168 t CO2/GJ" + }, + { + "year": 2019, + "value": "0.8758213652122596 t CO2/GJ" + }, + { + "year": 2020, + "value": "0.8710151016243313 t CO2/GJ" + }, + { + "year": 2021, + "value": "0.8710151016243313 t CO2/GJ" + } + ], + "S2": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": null + }, + { + "year": 2011, + "value": null + }, + { + "year": 2012, + "value": "4.061465132437621e-09 t CO2/GJ" + }, + { + "year": 2013, + "value": "3.887158282638696e-09 t CO2/GJ" + }, + { + "year": 2014, + "value": "3.866229840063312e-09 t CO2/GJ" + }, + { + "year": 2015, + "value": "2.5843713931394353e-05 t CO2/GJ" + }, + { + "year": 2016, + "value": "5.15299070859282e-05 t CO2/GJ" + }, + { + "year": 2017, + "value": "7.472078387137044e-05 t CO2/GJ" + }, + { + "year": 2018, + "value": "9.382058655401627e-05 t CO2/GJ" + }, + { + "year": 2019, + "value": "8.478193444460569e-05 t CO2/GJ" + }, + { + "year": 2020, + "value": "6.103498156641072e-05 t CO2/GJ" + }, + { + "year": 2021, + "value": "6.103498156641072e-05 t CO2/GJ" + } + ], + "S1S2": [], + "S3": [], + "S1S2S3": [] + } + } + }, + { + "company_name": "Company AQ", + "company_id": "CH0038863350", + "region": "Asia", + "sector": "Electricity Utilities", + "target_probability": 0.4285714285714285, + "historic_data": { + "productions": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": "125595364.15776384 GJ" + }, + { + "year": 2011, + "value": "127565284.15776384 GJ" + }, + { + "year": 2012, + "value": "138062884.15776384 GJ" + }, + { + "year": 2013, + "value": "203459044.15776384 GJ" + }, + { + "year": 2014, + "value": "222847204.15776384 GJ" + }, + { + "year": 2015, + "value": "258448324.15776387 GJ" + }, + { + "year": 2016, + "value": "260094244.15776387 GJ" + }, + { + "year": 2017, + "value": "263023204.15776387 GJ" + }, + { + "year": 2018, + "value": "279689764.1577639 GJ" + }, + { + "year": 2019, + "value": "262841764.15776387 GJ" + }, + { + "year": 2020, + "value": "236895844.15776384 GJ" + }, + { + "year": 2021, + "value": "236895844.15776384 GJ" + } + ], + "emissions": { + "S1": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": "1968704.15493443 t CO2" + }, + { + "year": 2011, + "value": "2832949.15493443 t CO2" + }, + { + "year": 2012, + "value": "12866001.1549344 t CO2" + }, + { + "year": 2013, + "value": "13663001.1549344 t CO2" + }, + { + "year": 2014, + "value": "14934001.1549344 t CO2" + }, + { + "year": 2015, + "value": "16918001.1549344 t CO2" + }, + { + "year": 2016, + "value": "16977001.1549344 t CO2" + }, + { + "year": 2017, + "value": "17293001.1549344 t CO2" + }, + { + "year": 2018, + "value": "18162001.1549344 t CO2" + }, + { + "year": 2019, + "value": "17976001.1549344 t CO2" + }, + { + "year": 2020, + "value": "16065001.1549344 t CO2" + }, + { + "year": 2021, + "value": "16065001.1549344 t CO2" + } + ], + "S2": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": "52966.1549344293 t CO2" + }, + { + "year": 2011, + "value": "58302.1549344293 t CO2" + }, + { + "year": 2012, + "value": "61001.1549344293 t CO2" + }, + { + "year": 2013, + "value": "202001.154934429 t CO2" + }, + { + "year": 2014, + "value": "130001.154934429 t CO2" + }, + { + "year": 2015, + "value": "409001.154934429 t CO2" + }, + { + "year": 2016, + "value": "1265001.15493443 t CO2" + }, + { + "year": 2017, + "value": "1818001.15493443 t CO2" + }, + { + "year": 2018, + "value": "2090001.15493443 t CO2" + }, + { + "year": 2019, + "value": "2289001.15493443 t CO2" + }, + { + "year": 2020, + "value": "2403001.15493443 t CO2" + }, + { + "year": 2021, + "value": "2403001.15493443 t CO2" + } + ], + "S1S2": [], + "S3": [], + "S1S2S3": [] + }, + "emission_intensities": { + "S1": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": "0.20314767204226442 t CO2/GJ" + }, + { + "year": 2011, + "value": "0.28781357945742975 t CO2/GJ" + }, + { + "year": 2012, + "value": "1.207734982396956 t CO2/GJ" + }, + { + "year": 2013, + "value": "0.8703102666237157 t CO2/GJ" + }, + { + "year": 2014, + "value": "0.8685083382555276 t CO2/GJ" + }, + { + "year": 2015, + "value": "0.8483602889764117 t CO2/GJ" + }, + { + "year": 2016, + "value": "0.84593158022556 t CO2/GJ" + }, + { + "year": 2017, + "value": "0.852081836983182 t CO2/GJ" + }, + { + "year": 2018, + "value": "0.841573647418788 t CO2/GJ" + }, + { + "year": 2019, + "value": "0.8863468700054724 t CO2/GJ" + }, + { + "year": 2020, + "value": "0.8788774480539012 t CO2/GJ" + }, + { + "year": 2021, + "value": "0.8788774480539012 t CO2/GJ" + } + ], + "S2": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": "0.00546549924476466 t CO2/GJ" + }, + { + "year": 2011, + "value": "0.005923209695638932 t CO2/GJ" + }, + { + "year": 2012, + "value": "0.0057261947899539594 t CO2/GJ" + }, + { + "year": 2013, + "value": "0.012867134900723496 t CO2/GJ" + }, + { + "year": 2014, + "value": "0.007560404333174592 t CO2/GJ" + }, + { + "year": 2015, + "value": "0.020509535069434367 t CO2/GJ" + }, + { + "year": 2016, + "value": "0.06303259428534648 t CO2/GJ" + }, + { + "year": 2017, + "value": "0.0895787694602712 t CO2/GJ" + }, + { + "year": 2018, + "value": "0.09684449858047572 t CO2/GJ" + }, + { + "year": 2019, + "value": "0.1128643123478058 t CO2/GJ" + }, + { + "year": 2020, + "value": "0.13146239470207932 t CO2/GJ" + }, + { + "year": 2021, + "value": "0.13146239470207932 t CO2/GJ" + } + ], + "S1S2": [], + "S3": [], + "S1S2S3": [] + } + } + }, + { + "company_name": "Company AR", + "company_id": "US8356993076", + "region": "Europe", + "sector": "Electricity Utilities", + "target_probability": 0.4285714285714285, + "historic_data": { + "productions": [ + { + "year": 2009, + "value": "697248015.4129393 GJ" + }, + { + "year": 2010, + "value": "683380815.4129393 GJ" + }, + { + "year": 2011, + "value": "732499215.4129393 GJ" + }, + { + "year": 2012, + "value": "739368015.4129393 GJ" + }, + { + "year": 2013, + "value": "739238415.4129393 GJ" + }, + { + "year": 2014, + "value": "710726415.4129393 GJ" + }, + { + "year": 2015, + "value": "720316815.4129393 GJ" + }, + { + "year": 2016, + "value": "695563215.4129393 GJ" + }, + { + "year": 2017, + "value": "841262415.4129393 GJ" + }, + { + "year": 2018, + "value": "1038312015.4129393 GJ" + }, + { + "year": 2019, + "value": "1038312015.4129393 GJ" + }, + { + "year": 2020, + "value": "1038312015.4129393 GJ" + }, + { + "year": 2021, + "value": "1038312015.4129393 GJ" + } + ], + "emissions": { + "S1": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": null + }, + { + "year": 2011, + "value": null + }, + { + "year": 2012, + "value": null + }, + { + "year": 2013, + "value": null + }, + { + "year": 2014, + "value": null + }, + { + "year": 2015, + "value": null + }, + { + "year": 2016, + "value": null + }, + { + "year": 2017, + "value": null + }, + { + "year": 2018, + "value": null + }, + { + "year": 2019, + "value": null + }, + { + "year": 2020, + "value": null + }, + { + "year": 2021, + "value": null + } + ], + "S2": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": null + }, + { + "year": 2011, + "value": null + }, + { + "year": 2012, + "value": null + }, + { + "year": 2013, + "value": null + }, + { + "year": 2014, + "value": null + }, + { + "year": 2015, + "value": null + }, + { + "year": 2016, + "value": null + }, + { + "year": 2017, + "value": null + }, + { + "year": 2018, + "value": null + }, + { + "year": 2019, + "value": null + }, + { + "year": 2020, + "value": null + }, + { + "year": 2021, + "value": null + } + ], + "S1S2": [], + "S3": [], + "S1S2S3": [] + }, + "emission_intensities": { + "S1": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": null + }, + { + "year": 2011, + "value": null + }, + { + "year": 2012, + "value": null + }, + { + "year": 2013, + "value": null + }, + { + "year": 2014, + "value": null + }, + { + "year": 2015, + "value": null + }, + { + "year": 2016, + "value": null + }, + { + "year": 2017, + "value": null + }, + { + "year": 2018, + "value": null + }, + { + "year": 2019, + "value": null + }, + { + "year": 2020, + "value": null + }, + { + "year": 2021, + "value": null + } + ], + "S2": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": null + }, + { + "year": 2011, + "value": null + }, + { + "year": 2012, + "value": null + }, + { + "year": 2013, + "value": null + }, + { + "year": 2014, + "value": null + }, + { + "year": 2015, + "value": null + }, + { + "year": 2016, + "value": null + }, + { + "year": 2017, + "value": null + }, + { + "year": 2018, + "value": null + }, + { + "year": 2019, + "value": null + }, + { + "year": 2020, + "value": null + }, + { + "year": 2021, + "value": null + } + ], + "S1S2": [], + "S3": [], + "S1S2S3": [] + } + } + }, + { + "company_name": "Company AS", + "company_id": "JP3401400001", + "region": "Asia", + "sector": "Electricity Utilities", + "target_probability": 0.4285714285714285, + "historic_data": { + "productions": [ + { + "year": 2009, + "value": "159563527.70578668 GJ" + }, + { + "year": 2010, + "value": "146979367.70578668 GJ" + }, + { + "year": 2011, + "value": "146435047.70578668 GJ" + }, + { + "year": 2012, + "value": "143026567.70578668 GJ" + }, + { + "year": 2013, + "value": "139618087.70578668 GJ" + }, + { + "year": 2014, + "value": "190050203.6009867 GJ" + }, + { + "year": 2015, + "value": "214535101.14178666 GJ" + }, + { + "year": 2016, + "value": "233145050.2433867 GJ" + }, + { + "year": 2017, + "value": "218105285.54578668 GJ" + }, + { + "year": 2018, + "value": "167479620.8129867 GJ" + }, + { + "year": 2019, + "value": "171690299.59138668 GJ" + }, + { + "year": 2020, + "value": "171690299.59138668 GJ" + }, + { + "year": 2021, + "value": "171690299.59138668 GJ" + } + ], + "emissions": { + "S1": [ + { + "year": 2009, + "value": "9150002.14049632 t CO2" + }, + { + "year": 2010, + "value": "8650002.14049632 t CO2" + }, + { + "year": 2011, + "value": "8631002.14049632 t CO2" + }, + { + "year": 2012, + "value": "8960002.14049632 t CO2" + }, + { + "year": 2013, + "value": "9296403.94049632 t CO2" + }, + { + "year": 2014, + "value": "9632805.74049632 t CO2" + }, + { + "year": 2015, + "value": "9969207.54049632 t CO2" + }, + { + "year": 2016, + "value": "10305609.3404963 t CO2" + }, + { + "year": 2017, + "value": "10642011.1404963 t CO2" + }, + { + "year": 2018, + "value": "11403118.1404963 t CO2" + }, + { + "year": 2019, + "value": "9681777.14049632 t CO2" + }, + { + "year": 2020, + "value": "9681777.14049632 t CO2" + }, + { + "year": 2021, + "value": "9681777.14049632 t CO2" + } + ], + "S2": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": "2.14049631522688 t CO2" + }, + { + "year": 2011, + "value": "2.14049631522688 t CO2" + }, + { + "year": 2012, + "value": "2.14049631522688 t CO2" + }, + { + "year": 2013, + "value": "310616.540496315 t CO2" + }, + { + "year": 2014, + "value": "621230.940496315 t CO2" + }, + { + "year": 2015, + "value": "931845.340496315 t CO2" + }, + { + "year": 2016, + "value": "1242459.74049632 t CO2" + }, + { + "year": 2017, + "value": "1553074.14049631 t CO2" + }, + { + "year": 2018, + "value": "1239860.14049631 t CO2" + }, + { + "year": 2019, + "value": "1203273.14049631 t CO2" + }, + { + "year": 2020, + "value": "1203273.14049631 t CO2" + }, + { + "year": 2021, + "value": "1203273.14049631 t CO2" + } + ], + "S1S2": [], + "S3": [], + "S1S2S3": [] + }, + "emission_intensities": { + "S1": [ + { + "year": 2009, + "value": "0.7431775258785013 t CO2/GJ" + }, + { + "year": 2010, + "value": "0.7627194856711764 t CO2/GJ" + }, + { + "year": 2011, + "value": "0.7638730583512608 t CO2/GJ" + }, + { + "year": 2012, + "value": "0.8118885155637708 t CO2/GJ" + }, + { + "year": 2013, + "value": "0.8629354337148576 t CO2/GJ" + }, + { + "year": 2014, + "value": "0.6568851810279456 t CO2/GJ" + }, + { + "year": 2015, + "value": "0.6022367856691344 t CO2/GJ" + }, + { + "year": 2016, + "value": "0.5728652481080088 t CO2/GJ" + }, + { + "year": 2017, + "value": "0.6323572766047393 t CO2/GJ" + }, + { + "year": 2018, + "value": "0.8824023507066155 t CO2/GJ" + }, + { + "year": 2019, + "value": "0.7308265641067548 t CO2/GJ" + }, + { + "year": 2020, + "value": "0.7308265641067548 t CO2/GJ" + }, + { + "year": 2021, + "value": "0.7308265641067548 t CO2/GJ" + } + ], + "S2": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": "1.8873963521784973e-07 t CO2/GJ" + }, + { + "year": 2011, + "value": "1.894412074155671e-07 t CO2/GJ" + }, + { + "year": 2012, + "value": "1.9395579919392828e-07 t CO2/GJ" + }, + { + "year": 2013, + "value": "0.028832871377777763 t CO2/GJ" + }, + { + "year": 2014, + "value": "0.042363295783338244 t CO2/GJ" + }, + { + "year": 2015, + "value": "0.05629249269027864 t CO2/GJ" + }, + { + "year": 2016, + "value": "0.0690654947210874 t CO2/GJ" + }, + { + "year": 2017, + "value": "0.09228497516905357 t CO2/GJ" + }, + { + "year": 2018, + "value": "0.0959435383411512 t CO2/GJ" + }, + { + "year": 2019, + "value": "0.09082877680303489 t CO2/GJ" + }, + { + "year": 2020, + "value": "0.09082877680303489 t CO2/GJ" + }, + { + "year": 2021, + "value": "0.09082877680303489 t CO2/GJ" + } + ], + "S1S2": [], + "S3": [], + "S1S2S3": [] + } + } + }, + { + "company_name": "Company AT", + "company_id": "US6541061031", + "region": "Europe", + "sector": "Electricity Utilities", + "target_probability": 0.4285714285714285, + "historic_data": { + "productions": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": "2919888004.0657935 GJ" + }, + { + "year": 2011, + "value": "2665872004.0657935 GJ" + }, + { + "year": 2012, + "value": "2943216004.0657935 GJ" + }, + { + "year": 2013, + "value": "2808432004.0657935 GJ" + }, + { + "year": 2014, + "value": "2699568004.0657935 GJ" + }, + { + "year": 2015, + "value": "2760480004.0657935 GJ" + }, + { + "year": 2016, + "value": "2800656004.0657935 GJ" + }, + { + "year": 2017, + "value": "2594592004.0657935 GJ" + }, + { + "year": 2018, + "value": "2280960004.0657935 GJ" + }, + { + "year": 2019, + "value": "1985018404.0657933 GJ" + }, + { + "year": 2020, + "value": "1902204004.0657933 GJ" + }, + { + "year": 2021, + "value": "1902204004.0657933 GJ" + } + ], + "emissions": { + "S1": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": "167100001.129387 t CO2" + }, + { + "year": 2011, + "value": "163800001.129387 t CO2" + }, + { + "year": 2012, + "value": "181700001.129387 t CO2" + }, + { + "year": 2013, + "value": "165800001.129387 t CO2" + }, + { + "year": 2014, + "value": "156600001.129387 t CO2" + }, + { + "year": 2015, + "value": "152300001.129387 t CO2" + }, + { + "year": 2016, + "value": "154000001.129387 t CO2" + }, + { + "year": 2017, + "value": "135600001.129387 t CO2" + }, + { + "year": 2018, + "value": "120400001.129387 t CO2" + }, + { + "year": 2019, + "value": "91700001.129387 t CO2" + }, + { + "year": 2020, + "value": "70400001.129387 t CO2" + }, + { + "year": 2021, + "value": "70400001.129387 t CO2" + } + ], + "S2": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": "3100001.12938701 t CO2" + }, + { + "year": 2011, + "value": "2400001.12938701 t CO2" + }, + { + "year": 2012, + "value": "1900001.12938701 t CO2" + }, + { + "year": 2013, + "value": "1500001.12938701 t CO2" + }, + { + "year": 2014, + "value": "1400001.12938701 t CO2" + }, + { + "year": 2015, + "value": "1300001.12938701 t CO2" + }, + { + "year": 2016, + "value": "1300001.12938701 t CO2" + }, + { + "year": 2017, + "value": "1000001.12938701 t CO2" + }, + { + "year": 2018, + "value": "5000001.12938701 t CO2" + }, + { + "year": 2019, + "value": "4700001.12938701 t CO2" + }, + { + "year": 2020, + "value": "2600001.12938701 t CO2" + }, + { + "year": 2021, + "value": "2600001.12938701 t CO2" + } + ], + "S1S2": [], + "S3": [], + "S1S2S3": [] + }, + "emission_intensities": { + "S1": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": "0.7416777669627563 t CO2/GJ" + }, + { + "year": 2011, + "value": "0.7963053032550852 t CO2/GJ" + }, + { + "year": 2012, + "value": "0.8000880707986993 t CO2/GJ" + }, + { + "year": 2013, + "value": "0.7651130636333952 t CO2/GJ" + }, + { + "year": 2014, + "value": "0.7518002923357344 t CO2/GJ" + }, + { + "year": 2015, + "value": "0.715023478427562 t CO2/GJ" + }, + { + "year": 2016, + "value": "0.7126330444508124 t CO2/GJ" + }, + { + "year": 2017, + "value": "0.6773226819025896 t CO2/GJ" + }, + { + "year": 2018, + "value": "0.6840909142884937 t CO2/GJ" + }, + { + "year": 2019, + "value": "0.5987007537072012 t CO2/GJ" + }, + { + "year": 2020, + "value": "0.47964572290181157 t CO2/GJ" + }, + { + "year": 2021, + "value": "0.47964572290181157 t CO2/GJ" + } + ], + "S2": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": "0.013759436862274392 t CO2/GJ" + }, + { + "year": 2011, + "value": "0.011667482380781245 t CO2/GJ" + }, + { + "year": 2012, + "value": "0.008366363393933629 t CO2/GJ" + }, + { + "year": 2013, + "value": "0.006922017199886688 t CO2/GJ" + }, + { + "year": 2014, + "value": "0.00672108078386214 t CO2/GJ" + }, + { + "year": 2015, + "value": "0.006103291678273692 t CO2/GJ" + }, + { + "year": 2016, + "value": "0.006015738674223793 t CO2/GJ" + }, + { + "year": 2017, + "value": "0.004995010628471448 t CO2/GJ" + }, + { + "year": 2018, + "value": "0.028409097275423567 t CO2/GJ" + }, + { + "year": 2019, + "value": "0.030685868963276727 t CO2/GJ" + }, + { + "year": 2020, + "value": "0.017714196040400174 t CO2/GJ" + }, + { + "year": 2021, + "value": "0.017714196040400174 t CO2/GJ" + } + ], + "S1S2": [], + "S3": [], + "S1S2S3": [] + } + } + }, + { + "company_name": "Company AU", + "company_id": "GB0031274896", + "region": "North America", + "sector": "Electricity Utilities", + "target_probability": 0.4285714285714285, + "historic_data": { + "productions": [ + { + "year": 2009, + "value": "926887167.2113813 GJ" + }, + { + "year": 2010, + "value": "965233460.0113813 GJ" + }, + { + "year": 2011, + "value": "968392251.2113813 GJ" + }, + { + "year": 2012, + "value": "972920165.6113813 GJ" + }, + { + "year": 2013, + "value": "919330565.6113813 GJ" + }, + { + "year": 2014, + "value": "954115205.6113813 GJ" + }, + { + "year": 2015, + "value": "949695845.6113813 GJ" + }, + { + "year": 2016, + "value": "960753123.2113813 GJ" + }, + { + "year": 2017, + "value": "939777829.7713813 GJ" + }, + { + "year": 2018, + "value": "891855365.6113813 GJ" + }, + { + "year": 2019, + "value": "874385285.6113813 GJ" + }, + { + "year": 2020, + "value": "874385285.6113813 GJ" + }, + { + "year": 2021, + "value": "874385285.6113813 GJ" + } + ], + "emissions": { + "S1": [ + { + "year": 2009, + "value": "55192252.5587173 t CO2" + }, + { + "year": 2010, + "value": "56075311.5587173 t CO2" + }, + { + "year": 2011, + "value": "54746972.5587173 t CO2" + }, + { + "year": 2012, + "value": "54472481.5587173 t CO2" + }, + { + "year": 2013, + "value": "56535331.5587173 t CO2" + }, + { + "year": 2014, + "value": "57593228.5587173 t CO2" + }, + { + "year": 2015, + "value": "56978409.5587173 t CO2" + }, + { + "year": 2016, + "value": "52832514.4587173 t CO2" + }, + { + "year": 2017, + "value": "50919739.3587173 t CO2" + }, + { + "year": 2018, + "value": "50723846.5587173 t CO2" + }, + { + "year": 2019, + "value": "48061950.5587173 t CO2" + }, + { + "year": 2020, + "value": "48061950.5587173 t CO2" + }, + { + "year": 2021, + "value": "48061950.5587173 t CO2" + } + ], + "S2": [ + { + "year": 2009, + "value": "1007225.55871729 t CO2" + }, + { + "year": 2010, + "value": "1933034.55871729 t CO2" + }, + { + "year": 2011, + "value": "1052282.55871729 t CO2" + }, + { + "year": 2012, + "value": "1189960.55871729 t CO2" + }, + { + "year": 2013, + "value": "774476.55871729 t CO2" + }, + { + "year": 2014, + "value": "601657.55871729 t CO2" + }, + { + "year": 2015, + "value": "1061617.55871729 t CO2" + }, + { + "year": 2016, + "value": "891280.15871729 t CO2" + }, + { + "year": 2017, + "value": "1153067.75871729 t CO2" + }, + { + "year": 2018, + "value": "841797.55871729 t CO2" + }, + { + "year": 2019, + "value": "607645.55871729 t CO2" + }, + { + "year": 2020, + "value": "607645.55871729 t CO2" + }, + { + "year": 2021, + "value": "607645.55871729 t CO2" + } + ], + "S1S2": [], + "S3": [], + "S1S2S3": [] + }, + "emission_intensities": { + "S1": [ + { + "year": 2009, + "value": "0.771713773223328 t CO2/GJ" + }, + { + "year": 2010, + "value": "0.7529121895467709 t CO2/GJ" + }, + { + "year": 2011, + "value": "0.73267910133876 t CO2/GJ" + }, + { + "year": 2012, + "value": "0.7256128364420833 t CO2/GJ" + }, + { + "year": 2013, + "value": "0.7969906847529973 t CO2/GJ" + }, + { + "year": 2014, + "value": "0.7823041051344408 t CO2/GJ" + }, + { + "year": 2015, + "value": "0.7775544047005837 t CO2/GJ" + }, + { + "year": 2016, + "value": "0.7126798454698644 t CO2/GJ" + }, + { + "year": 2017, + "value": "0.7022083317814728 t CO2/GJ" + }, + { + "year": 2018, + "value": "0.7370937898101109 t CO2/GJ" + }, + { + "year": 2019, + "value": "0.7123666071364056 t CO2/GJ" + }, + { + "year": 2020, + "value": "0.7123666071364056 t CO2/GJ" + }, + { + "year": 2021, + "value": "0.7123666071364056 t CO2/GJ" + } + ], + "S2": [ + { + "year": 2009, + "value": "0.014083314240123792 t CO2/GJ" + }, + { + "year": 2010, + "value": "0.025954475180212513 t CO2/GJ" + }, + { + "year": 2011, + "value": "0.014082704548612957 t CO2/GJ" + }, + { + "year": 2012, + "value": "0.01585113495030187 t CO2/GJ" + }, + { + "year": 2013, + "value": "0.010917962021964349 t CO2/GJ" + }, + { + "year": 2014, + "value": "0.008172474262140671 t CO2/GJ" + }, + { + "year": 2015, + "value": "0.01448733678740982 t CO2/GJ" + }, + { + "year": 2016, + "value": "0.012022850176501211 t CO2/GJ" + }, + { + "year": 2017, + "value": "0.015901373366736478 t CO2/GJ" + }, + { + "year": 2018, + "value": "0.012232584768380328 t CO2/GJ" + }, + { + "year": 2019, + "value": "0.009006426080774784 t CO2/GJ" + }, + { + "year": 2020, + "value": "0.009006426080774784 t CO2/GJ" + }, + { + "year": 2021, + "value": "0.009006426080774784 t CO2/GJ" + } + ], + "S1S2": [], + "S3": [], + "S1S2S3": [] + } + } + }, + { + "company_name": "Company AV", + "company_id": "US6293775085", + "region": "Europe", + "sector": "Steel", + "target_probability": 0.4285714285714285, + "historic_data": { + "productions": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": null + }, + { + "year": 2011, + "value": null + }, + { + "year": 2012, + "value": null + }, + { + "year": 2013, + "value": null + }, + { + "year": 2014, + "value": "91200001.3960884 Fe_ton" + }, + { + "year": 2015, + "value": "92479001.3960884 Fe_ton" + }, + { + "year": 2016, + "value": "90800001.3960884 Fe_ton" + }, + { + "year": 2017, + "value": "93100001.3960884 Fe_ton" + }, + { + "year": 2018, + "value": "92500001.3960884 Fe_ton" + }, + { + "year": 2019, + "value": "89800001.3960884 Fe_ton" + }, + { + "year": 2020, + "value": "71500001.3960884 Fe_ton" + }, + { + "year": 2021, + "value": "71500001.3960884 Fe_ton" + } + ], + "emissions": { + "S1": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": "165226001.396088 t CO2" + }, + { + "year": 2011, + "value": "162028001.396088 t CO2" + }, + { + "year": 2012, + "value": "158192001.396088 t CO2" + }, + { + "year": 2013, + "value": "169000001.396088 t CO2" + }, + { + "year": 2014, + "value": "174000001.396088 t CO2" + }, + { + "year": 2015, + "value": "176000001.396088 t CO2" + }, + { + "year": 2016, + "value": "176000001.396088 t CO2" + }, + { + "year": 2017, + "value": "179700001.396088 t CO2" + }, + { + "year": 2018, + "value": "174900001.396088 t CO2" + }, + { + "year": 2019, + "value": "169800001.396088 t CO2" + }, + { + "year": 2020, + "value": "141300001.396088 t CO2" + }, + { + "year": 2021, + "value": "141300001.396088 t CO2" + } + ], + "S2": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": "19599001.3960884 t CO2" + }, + { + "year": 2011, + "value": "17902001.3960884 t CO2" + }, + { + "year": 2012, + "value": "17256001.3960884 t CO2" + }, + { + "year": 2013, + "value": "21000001.3960884 t CO2" + }, + { + "year": 2014, + "value": "17000001.3960884 t CO2" + }, + { + "year": 2015, + "value": "16000001.3960884 t CO2" + }, + { + "year": 2016, + "value": "14000001.3960884 t CO2" + }, + { + "year": 2017, + "value": "15100001.3960884 t CO2" + }, + { + "year": 2018, + "value": "13900001.3960884 t CO2" + }, + { + "year": 2019, + "value": "12100001.3960884 t CO2" + }, + { + "year": 2020, + "value": "9500001.3960884 t CO2" + }, + { + "year": 2021, + "value": "9500001.3960884 t CO2" + } + ], + "S1S2": [], + "S3": [], + "S1S2S3": [] + }, + "emission_intensities": null + } + }, + { + "company_name": "Company AW", + "company_id": "US7134481081", + "region": "Asia", + "sector": "Steel", + "target_probability": 0.4285714285714285, + "historic_data": { + "productions": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": null + }, + { + "year": 2011, + "value": null + }, + { + "year": 2012, + "value": null + }, + { + "year": 2013, + "value": null + }, + { + "year": 2014, + "value": null + }, + { + "year": 2015, + "value": null + }, + { + "year": 2016, + "value": null + }, + { + "year": 2017, + "value": null + }, + { + "year": 2018, + "value": null + }, + { + "year": 2019, + "value": null + }, + { + "year": 2020, + "value": null + }, + { + "year": 2021, + "value": null + } + ], + "emissions": { + "S1": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": null + }, + { + "year": 2011, + "value": "13390004.4552317 t CO2" + }, + { + "year": 2012, + "value": "9480004.45523172 t CO2" + }, + { + "year": 2013, + "value": "8095004.45523172 t CO2" + }, + { + "year": 2014, + "value": "7840004.45523172 t CO2" + }, + { + "year": 2015, + "value": "7810004.45523172 t CO2" + }, + { + "year": 2016, + "value": "8270004.45523172 t CO2" + }, + { + "year": 2017, + "value": "8670004.45523172 t CO2" + }, + { + "year": 2018, + "value": "8780004.45523172 t CO2" + }, + { + "year": 2019, + "value": "8590004.45523172 t CO2" + }, + { + "year": 2020, + "value": "8530004.45523172 t CO2" + }, + { + "year": 2021, + "value": "8530004.45523172 t CO2" + } + ], + "S2": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": null + }, + { + "year": 2011, + "value": "2530004.45523172 t CO2" + }, + { + "year": 2012, + "value": "1970004.45523172 t CO2" + }, + { + "year": 2013, + "value": "1781004.45523172 t CO2" + }, + { + "year": 2014, + "value": "1541004.45523172 t CO2" + }, + { + "year": 2015, + "value": "1570004.45523172 t CO2" + }, + { + "year": 2016, + "value": "1830004.45523172 t CO2" + }, + { + "year": 2017, + "value": "2000004.45523172 t CO2" + }, + { + "year": 2018, + "value": "1970004.45523172 t CO2" + }, + { + "year": 2019, + "value": "1810004.45523172 t CO2" + }, + { + "year": 2020, + "value": "1750004.45523172 t CO2" + }, + { + "year": 2021, + "value": "1750004.45523172 t CO2" + } + ], + "S1S2": [], + "S3": [], + "S1S2S3": [] + }, + "emission_intensities": { + "S1": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": null + }, + { + "year": 2011, + "value": null + }, + { + "year": 2012, + "value": null + }, + { + "year": 2013, + "value": null + }, + { + "year": 2014, + "value": null + }, + { + "year": 2015, + "value": null + }, + { + "year": 2016, + "value": null + }, + { + "year": 2017, + "value": null + }, + { + "year": 2018, + "value": null + }, + { + "year": 2019, + "value": null + }, + { + "year": 2020, + "value": null + }, + { + "year": 2021, + "value": null + } + ], + "S2": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": null + }, + { + "year": 2011, + "value": null + }, + { + "year": 2012, + "value": null + }, + { + "year": 2013, + "value": null + }, + { + "year": 2014, + "value": null + }, + { + "year": 2015, + "value": null + }, + { + "year": 2016, + "value": null + }, + { + "year": 2017, + "value": null + }, + { + "year": 2018, + "value": null + }, + { + "year": 2019, + "value": null + }, + { + "year": 2020, + "value": null + }, + { + "year": 2021, + "value": null + } + ], + "S1S2": [], + "S3": [], + "S1S2S3": [] + } + } + }, + { + "company_name": "Company A", + "company_id": "JP0000000001", + "region": "Asia", + "sector": "Steel", + "target_probability": 0.4285714285714285, + "historic_data": { + "productions": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": null + }, + { + "year": 2011, + "value": null + }, + { + "year": 2012, + "value": null + }, + { + "year": 2013, + "value": null + }, + { + "year": 2014, + "value": null + }, + { + "year": 2015, + "value": null + }, + { + "year": 2016, + "value": null + }, + { + "year": 2017, + "value": null + }, + { + "year": 2018, + "value": null + }, + { + "year": 2019, + "value": null + }, + { + "year": 2020, + "value": null + }, + { + "year": 2021, + "value": null + } + ], + "emissions": { + "S1": [ + { + "year": 2009, + "value": "21759305.8145184 t CO2" + }, + { + "year": 2010, + "value": "20966413.8145184 t CO2" + }, + { + "year": 2011, + "value": "21128989.8145184 t CO2" + }, + { + "year": 2012, + "value": "20070402.8145184 t CO2" + }, + { + "year": 2013, + "value": "19691129.8145184 t CO2" + }, + { + "year": 2014, + "value": "19443564.8145184 t CO2" + }, + { + "year": 2015, + "value": "20018158.8145184 t CO2" + }, + { + "year": 2016, + "value": "21042990.8145184 t CO2" + }, + { + "year": 2017, + "value": "20006804.8145184 t CO2" + }, + { + "year": 2018, + "value": "20805771.8145184 t CO2" + }, + { + "year": 2019, + "value": "20351815.8145184 t CO2" + }, + { + "year": 2020, + "value": "20351815.8145184 t CO2" + }, + { + "year": 2021, + "value": "20351815.8145184 t CO2" + } + ], + "S2": [ + { + "year": 2009, + "value": "1337565.8145184 t CO2" + }, + { + "year": 2010, + "value": "1349200.8145184 t CO2" + }, + { + "year": 2011, + "value": "1371359.8145184 t CO2" + }, + { + "year": 2012, + "value": "1243282.8145184 t CO2" + }, + { + "year": 2013, + "value": "1257964.8145184 t CO2" + }, + { + "year": 2014, + "value": "1185845.8145184 t CO2" + }, + { + "year": 2015, + "value": "1109279.8145184 t CO2" + }, + { + "year": 2016, + "value": "1275990.8145184 t CO2" + }, + { + "year": 2017, + "value": "1298687.8145184 t CO2" + }, + { + "year": 2018, + "value": "1294689.8145184 t CO2" + }, + { + "year": 2019, + "value": "1181783.8145184 t CO2" + }, + { + "year": 2020, + "value": "1181783.8145184 t CO2" + }, + { + "year": 2021, + "value": "1181783.8145184 t CO2" + } + ], + "S1S2": [], + "S3": [], + "S1S2S3": [] + }, + "emission_intensities": { + "S1": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": null + }, + { + "year": 2011, + "value": null + }, + { + "year": 2012, + "value": null + }, + { + "year": 2013, + "value": null + }, + { + "year": 2014, + "value": null + }, + { + "year": 2015, + "value": null + }, + { + "year": 2016, + "value": null + }, + { + "year": 2017, + "value": null + }, + { + "year": 2018, + "value": null + }, + { + "year": 2019, + "value": null + }, + { + "year": 2020, + "value": null + }, + { + "year": 2021, + "value": null + } + ], + "S2": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": null + }, + { + "year": 2011, + "value": null + }, + { + "year": 2012, + "value": null + }, + { + "year": 2013, + "value": null + }, + { + "year": 2014, + "value": null + }, + { + "year": 2015, + "value": null + }, + { + "year": 2016, + "value": null + }, + { + "year": 2017, + "value": null + }, + { + "year": 2018, + "value": null + }, + { + "year": 2019, + "value": null + }, + { + "year": 2020, + "value": null + }, + { + "year": 2021, + "value": null + } + ], + "S1S2": [], + "S3": [], + "S1S2S3": [] + } + } + }, + { + "company_name": "Company B", + "company_id": "NL0000000002", + "region": "South America", + "sector": "Steel", + "target_probability": 0.4285714285714285, + "historic_data": { + "productions": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": null + }, + { + "year": 2011, + "value": null + }, + { + "year": 2012, + "value": null + }, + { + "year": 2013, + "value": null + }, + { + "year": 2014, + "value": null + }, + { + "year": 2015, + "value": null + }, + { + "year": 2016, + "value": null + }, + { + "year": 2017, + "value": "16120000.4760821 Fe_ton" + }, + { + "year": 2018, + "value": "15342000.4760821 Fe_ton" + }, + { + "year": 2019, + "value": "12453000.4760821 Fe_ton" + }, + { + "year": 2020, + "value": "12194000.4760821 Fe_ton" + }, + { + "year": 2021, + "value": "12194000.4760821 Fe_ton" + } + ], + "emissions": { + "S1": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": null + }, + { + "year": 2011, + "value": null + }, + { + "year": 2012, + "value": null + }, + { + "year": 2013, + "value": null + }, + { + "year": 2014, + "value": null + }, + { + "year": 2015, + "value": null + }, + { + "year": 2016, + "value": null + }, + { + "year": 2017, + "value": null + }, + { + "year": 2018, + "value": null + }, + { + "year": 2019, + "value": "9056.99508207154 t CO2" + }, + { + "year": 2020, + "value": "9056.99508207154 t CO2" + }, + { + "year": 2021, + "value": "9056.99508207154 t CO2" + } + ], + "S2": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": null + }, + { + "year": 2011, + "value": null + }, + { + "year": 2012, + "value": null + }, + { + "year": 2013, + "value": null + }, + { + "year": 2014, + "value": null + }, + { + "year": 2015, + "value": null + }, + { + "year": 2016, + "value": null + }, + { + "year": 2017, + "value": null + }, + { + "year": 2018, + "value": null + }, + { + "year": 2019, + "value": "2890986.47608207 t CO2" + }, + { + "year": 2020, + "value": "2890986.47608207 t CO2" + }, + { + "year": 2021, + "value": "2890986.47608207 t CO2" + } + ], + "S1S2": [], + "S3": [], + "S1S2S3": [] + }, + "emission_intensities": { + "S1": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": null + }, + { + "year": 2011, + "value": null + }, + { + "year": 2012, + "value": null + }, + { + "year": 2013, + "value": null + }, + { + "year": 2014, + "value": null + }, + { + "year": 2015, + "value": null + }, + { + "year": 2016, + "value": null + }, + { + "year": 2017, + "value": null + }, + { + "year": 2018, + "value": null + }, + { + "year": 2019, + "value": "0.000727294205076673 t CO2/Fe_ton" + }, + { + "year": 2020, + "value": "0.000742741899988965 t CO2/Fe_ton" + }, + { + "year": 2021, + "value": "0.000742741899988965 t CO2/Fe_ton" + } + ], + "S2": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": null + }, + { + "year": 2011, + "value": null + }, + { + "year": 2012, + "value": null + }, + { + "year": 2013, + "value": null + }, + { + "year": 2014, + "value": null + }, + { + "year": 2015, + "value": null + }, + { + "year": 2016, + "value": null + }, + { + "year": 2017, + "value": null + }, + { + "year": 2018, + "value": null + }, + { + "year": 2019, + "value": "0.232151800012749 t CO2/Fe_ton" + }, + { + "year": 2020, + "value": "0.237082693391115 t CO2/Fe_ton" + }, + { + "year": 2021, + "value": "0.237082693391115 t CO2/Fe_ton" + } + ], + "S1S2": [], + "S3": [], + "S1S2S3": [] + } + } + }, + { + "company_name": "Company C", + "company_id": "IT0000000003", + "region": "Asia", + "sector": "Steel", + "target_probability": 0.4285714285714285, + "historic_data": { + "productions": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": null + }, + { + "year": 2011, + "value": null + }, + { + "year": 2012, + "value": null + }, + { + "year": 2013, + "value": null + }, + { + "year": 2014, + "value": "19374009.677026 Fe_ton" + }, + { + "year": 2015, + "value": "21182009.677026 Fe_ton" + }, + { + "year": 2016, + "value": "22380009.677026 Fe_ton" + }, + { + "year": 2017, + "value": "23290009.677026 Fe_ton" + }, + { + "year": 2018, + "value": "23763009.677026 Fe_ton" + }, + { + "year": 2019, + "value": "23303009.677026 Fe_ton" + }, + { + "year": 2020, + "value": "23303009.677026 Fe_ton" + }, + { + "year": 2021, + "value": "23303009.677026 Fe_ton" + } + ], + "emissions": { + "S1": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": "766009.677026013 t CO2" + }, + { + "year": 2011, + "value": "10247400.677026 t CO2" + }, + { + "year": 2012, + "value": "10197994.677026 t CO2" + }, + { + "year": 2013, + "value": "11080009.677026 t CO2" + }, + { + "year": 2014, + "value": "13317009.677026 t CO2" + }, + { + "year": 2015, + "value": "14157009.677026 t CO2" + }, + { + "year": 2016, + "value": "15622009.677026 t CO2" + }, + { + "year": 2017, + "value": "15710009.677026 t CO2" + }, + { + "year": 2018, + "value": "16492009.677026 t CO2" + }, + { + "year": 2019, + "value": "16442009.677026 t CO2" + }, + { + "year": 2020, + "value": "16442009.677026 t CO2" + }, + { + "year": 2021, + "value": "16442009.677026 t CO2" + } + ], + "S2": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": "3518009.67702601 t CO2" + }, + { + "year": 2011, + "value": "4342232.67702601 t CO2" + }, + { + "year": 2012, + "value": "4164848.67702601 t CO2" + }, + { + "year": 2013, + "value": "4818009.67702601 t CO2" + }, + { + "year": 2014, + "value": "5480009.67702601 t CO2" + }, + { + "year": 2015, + "value": "5416009.67702601 t CO2" + }, + { + "year": 2016, + "value": "5653009.67702601 t CO2" + }, + { + "year": 2017, + "value": "5769009.67702601 t CO2" + }, + { + "year": 2018, + "value": "5806009.67702601 t CO2" + }, + { + "year": 2019, + "value": "5803009.67702601 t CO2" + }, + { + "year": 2020, + "value": "5803009.67702601 t CO2" + }, + { + "year": 2021, + "value": "5803009.67702601 t CO2" + } + ], + "S1S2": [], + "S3": [], + "S1S2S3": [] + }, + "emission_intensities": { + "S1": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": null + }, + { + "year": 2011, + "value": null + }, + { + "year": 2012, + "value": null + }, + { + "year": 2013, + "value": null + }, + { + "year": 2014, + "value": "0.687364665292674 t CO2/Fe_ton" + }, + { + "year": 2015, + "value": "0.66835063777639 t CO2/Fe_ton" + }, + { + "year": 2016, + "value": "0.698034089460767 t CO2/Fe_ton" + }, + { + "year": 2017, + "value": "0.67453856373975 t CO2/Fe_ton" + }, + { + "year": 2018, + "value": "0.694020239909696 t CO2/Fe_ton" + }, + { + "year": 2019, + "value": "0.705574511829511 t CO2/Fe_ton" + }, + { + "year": 2020, + "value": "0.705574511829511 t CO2/Fe_ton" + }, + { + "year": 2021, + "value": "0.705574511829511 t CO2/Fe_ton" + } + ], + "S2": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": null + }, + { + "year": 2011, + "value": null + }, + { + "year": 2012, + "value": null + }, + { + "year": 2013, + "value": null + }, + { + "year": 2014, + "value": "0.282853666761831 t CO2/Fe_ton" + }, + { + "year": 2015, + "value": "0.255689132410331 t CO2/Fe_ton" + }, + { + "year": 2016, + "value": "0.252591922818919 t CO2/Fe_ton" + }, + { + "year": 2017, + "value": "0.247703189351473 t CO2/Fe_ton" + }, + { + "year": 2018, + "value": "0.244329727418293 t CO2/Fe_ton" + }, + { + "year": 2019, + "value": "0.249024042707543 t CO2/Fe_ton" + }, + { + "year": 2020, + "value": "0.249024042707543 t CO2/Fe_ton" + }, + { + "year": 2021, + "value": "0.249024042707543 t CO2/Fe_ton" + } + ], + "S1S2": [], + "S3": [], + "S1S2S3": [] + } + } + }, + { + "company_name": "Company D", + "company_id": "SE0000000004", + "region": "Asia", + "sector": "Steel", + "target_probability": 0.4285714285714285, + "historic_data": { + "productions": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": null + }, + { + "year": 2011, + "value": null + }, + { + "year": 2012, + "value": null + }, + { + "year": 2013, + "value": null + }, + { + "year": 2014, + "value": "31580000.2335485 Fe_ton" + }, + { + "year": 2015, + "value": "31040000.2335485 Fe_ton" + }, + { + "year": 2016, + "value": "29751000.2335485 Fe_ton" + }, + { + "year": 2017, + "value": "30410000.2335485 Fe_ton" + }, + { + "year": 2018, + "value": "29145000.2335485 Fe_ton" + }, + { + "year": 2019, + "value": "27880000.2335485 Fe_ton" + }, + { + "year": 2020, + "value": "28090000.2335485 Fe_ton" + }, + { + "year": 2021, + "value": "28090000.2335485 Fe_ton" + } + ], + "emissions": { + "S1": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": null + }, + { + "year": 2011, + "value": null + }, + { + "year": 2012, + "value": null + }, + { + "year": 2013, + "value": null + }, + { + "year": 2014, + "value": null + }, + { + "year": 2015, + "value": null + }, + { + "year": 2016, + "value": "54700000.2335485 t CO2" + }, + { + "year": 2017, + "value": "55000000.2335485 t CO2" + }, + { + "year": 2018, + "value": "54900000.2335485 t CO2" + }, + { + "year": 2019, + "value": "52300000.2335485 t CO2" + }, + { + "year": 2020, + "value": "52900000.2335485 t CO2" + }, + { + "year": 2021, + "value": "52900000.2335485 t CO2" + } + ], + "S2": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": null + }, + { + "year": 2011, + "value": null + }, + { + "year": 2012, + "value": null + }, + { + "year": 2013, + "value": null + }, + { + "year": 2014, + "value": null + }, + { + "year": 2015, + "value": null + }, + { + "year": 2016, + "value": "6600000.23354846 t CO2" + }, + { + "year": 2017, + "value": "6400000.23354846 t CO2" + }, + { + "year": 2018, + "value": "7400000.23354846 t CO2" + }, + { + "year": 2019, + "value": "7500000.23354846 t CO2" + }, + { + "year": 2020, + "value": "7600000.23354846 t CO2" + }, + { + "year": 2021, + "value": "7600000.23354846 t CO2" + } + ], + "S1S2": [], + "S3": [], + "S1S2S3": [] + }, + "emission_intensities": { + "S1": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": null + }, + { + "year": 2011, + "value": null + }, + { + "year": 2012, + "value": null + }, + { + "year": 2013, + "value": null + }, + { + "year": 2014, + "value": null + }, + { + "year": 2015, + "value": null + }, + { + "year": 2016, + "value": "1.83859365413424 t CO2/Fe_ton" + }, + { + "year": 2017, + "value": "1.80861558076781 t CO2/Fe_ton" + }, + { + "year": 2018, + "value": "1.8836850160788 t CO2/Fe_ton" + }, + { + "year": 2019, + "value": "1.87589669280616 t CO2/Fe_ton" + }, + { + "year": 2020, + "value": "1.88323245972668 t CO2/Fe_ton" + }, + { + "year": 2021, + "value": "1.88323245972668 t CO2/Fe_ton" + } + ], + "S2": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": null + }, + { + "year": 2011, + "value": null + }, + { + "year": 2012, + "value": null + }, + { + "year": 2013, + "value": null + }, + { + "year": 2014, + "value": null + }, + { + "year": 2015, + "value": null + }, + { + "year": 2016, + "value": "0.221841288754589 t CO2/Fe_ton" + }, + { + "year": 2017, + "value": "0.21045709254839 t CO2/Fe_ton" + }, + { + "year": 2018, + "value": "0.253902905275342 t CO2/Fe_ton" + }, + { + "year": 2019, + "value": "0.26901004916505 t CO2/Fe_ton" + }, + { + "year": 2020, + "value": "0.270558923829115 t CO2/Fe_ton" + }, + { + "year": 2021, + "value": "0.270558923829115 t CO2/Fe_ton" + } + ], + "S1S2": [], + "S3": [], + "S1S2S3": [] + } + } + }, + { + "company_name": "Company E", + "company_id": "SE0000000005", + "region": "Asia", + "sector": "Steel", + "target_probability": 0.4285714285714285, + "historic_data": { + "productions": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": null + }, + { + "year": 2011, + "value": null + }, + { + "year": 2012, + "value": null + }, + { + "year": 2013, + "value": null + }, + { + "year": 2014, + "value": "12170001.0468216 Fe_ton" + }, + { + "year": 2015, + "value": "12630001.0468216 Fe_ton" + }, + { + "year": 2016, + "value": "12630001.0468216 Fe_ton" + }, + { + "year": 2017, + "value": "12630001.0468216 Fe_ton" + }, + { + "year": 2018, + "value": "12630001.0468216 Fe_ton" + }, + { + "year": 2019, + "value": "12630001.0468216 Fe_ton" + }, + { + "year": 2020, + "value": "12630001.0468216 Fe_ton" + }, + { + "year": 2021, + "value": "12630001.0468216 Fe_ton" + } + ], + "emissions": { + "S1": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": "14667421.0468216 t CO2" + }, + { + "year": 2011, + "value": "15541981.0468216 t CO2" + }, + { + "year": 2012, + "value": "21355001.0468216 t CO2" + }, + { + "year": 2013, + "value": "28086001.0468216 t CO2" + }, + { + "year": 2014, + "value": "26077001.0468216 t CO2" + }, + { + "year": 2015, + "value": "26816001.0468216 t CO2" + }, + { + "year": 2016, + "value": "31440001.0468216 t CO2" + }, + { + "year": 2017, + "value": "36610961.0468216 t CO2" + }, + { + "year": 2018, + "value": "41528001.0468216 t CO2" + }, + { + "year": 2019, + "value": "41938351.0468216 t CO2" + }, + { + "year": 2020, + "value": "40045311.0468216 t CO2" + }, + { + "year": 2021, + "value": "40045311.0468216 t CO2" + } + ], + "S2": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": "976021.046821591 t CO2" + }, + { + "year": 2011, + "value": "1550771.04682159 t CO2" + }, + { + "year": 2012, + "value": "16541.0468215911 t CO2" + }, + { + "year": 2013, + "value": "33601.0468215911 t CO2" + }, + { + "year": 2014, + "value": "3742001.04682159 t CO2" + }, + { + "year": 2015, + "value": "4157001.04682159 t CO2" + }, + { + "year": 2016, + "value": "661001.046821591 t CO2" + }, + { + "year": 2017, + "value": "1885181.04682159 t CO2" + }, + { + "year": 2018, + "value": "626001.046821591 t CO2" + }, + { + "year": 2019, + "value": "3909961.04682159 t CO2" + }, + { + "year": 2020, + "value": "476901.046821591 t CO2" + }, + { + "year": 2021, + "value": "476901.046821591 t CO2" + } + ], + "S1S2": [], + "S3": [], + "S1S2S3": [] + }, + "emission_intensities": { + "S1": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": null + }, + { + "year": 2011, + "value": null + }, + { + "year": 2012, + "value": null + }, + { + "year": 2013, + "value": null + }, + { + "year": 2014, + "value": "2.14272792142709 t CO2/Fe_ton" + }, + { + "year": 2015, + "value": "2.12319864008008 t CO2/Fe_ton" + }, + { + "year": 2016, + "value": "2.48931104045582 t CO2/Fe_ton" + }, + { + "year": 2017, + "value": "2.89872985054383 t CO2/Fe_ton" + }, + { + "year": 2018, + "value": "3.28804414923404 t CO2/Fe_ton" + }, + { + "year": 2019, + "value": "3.32053424947068 t CO2/Fe_ton" + }, + { + "year": 2020, + "value": "3.17064985967671 t CO2/Fe_ton" + }, + { + "year": 2021, + "value": "3.17064985967671 t CO2/Fe_ton" + } + ], + "S2": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": null + }, + { + "year": 2011, + "value": null + }, + { + "year": 2012, + "value": null + }, + { + "year": 2013, + "value": null + }, + { + "year": 2014, + "value": "0.307477463019519 t CO2/Fe_ton" + }, + { + "year": 2015, + "value": "0.329137031058895 t CO2/Fe_ton" + }, + { + "year": 2016, + "value": "0.0523357871761963 t CO2/Fe_ton" + }, + { + "year": 2017, + "value": "0.149262144938302 t CO2/Fe_ton" + }, + { + "year": 2018, + "value": "0.0495646076750823 t CO2/Fe_ton" + }, + { + "year": 2019, + "value": "0.309577254374461 t CO2/Fe_ton" + }, + { + "year": 2020, + "value": "0.0377593830003368 t CO2/Fe_ton" + }, + { + "year": 2021, + "value": "0.0377593830003368 t CO2/Fe_ton" + } + ], + "S1S2": [], + "S3": [], + "S1S2S3": [] + } + } + }, + { + "company_name": "Company F", + "company_id": "NL0000000006", + "region": "Asia", + "sector": "Steel", + "target_probability": 0.4285714285714285, + "historic_data": { + "productions": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": null + }, + { + "year": 2011, + "value": null + }, + { + "year": 2012, + "value": null + }, + { + "year": 2013, + "value": "23001000.8292913 Fe_ton" + }, + { + "year": 2014, + "value": "25222000.8292913 Fe_ton" + }, + { + "year": 2015, + "value": "23424000.8292913 Fe_ton" + }, + { + "year": 2016, + "value": "24100000.8292913 Fe_ton" + }, + { + "year": 2017, + "value": "24193000.8292913 Fe_ton" + }, + { + "year": 2018, + "value": "24328000.8292913 Fe_ton" + }, + { + "year": 2019, + "value": "23779000.8292913 Fe_ton" + }, + { + "year": 2020, + "value": "22329000.8292913 Fe_ton" + }, + { + "year": 2021, + "value": "22329000.8292913 Fe_ton" + } + ], + "emissions": { + "S1": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": null + }, + { + "year": 2011, + "value": null + }, + { + "year": 2012, + "value": null + }, + { + "year": 2013, + "value": null + }, + { + "year": 2014, + "value": null + }, + { + "year": 2015, + "value": null + }, + { + "year": 2016, + "value": "31300000.8292913 t CO2" + }, + { + "year": 2017, + "value": "31072000.8292913 t CO2" + }, + { + "year": 2018, + "value": "29491000.8292913 t CO2" + }, + { + "year": 2019, + "value": "27206000.8292913 t CO2" + }, + { + "year": 2020, + "value": "27206000.8292913 t CO2" + }, + { + "year": 2021, + "value": "27206000.8292913 t CO2" + } + ], + "S2": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": null + }, + { + "year": 2011, + "value": null + }, + { + "year": 2012, + "value": null + }, + { + "year": 2013, + "value": null + }, + { + "year": 2014, + "value": null + }, + { + "year": 2015, + "value": null + }, + { + "year": 2016, + "value": null + }, + { + "year": 2017, + "value": null + }, + { + "year": 2018, + "value": null + }, + { + "year": 2019, + "value": null + }, + { + "year": 2020, + "value": null + }, + { + "year": 2021, + "value": null + } + ], + "S1S2": [], + "S3": [], + "S1S2S3": [] + }, + "emission_intensities": { + "S1": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": null + }, + { + "year": 2011, + "value": null + }, + { + "year": 2012, + "value": null + }, + { + "year": 2013, + "value": null + }, + { + "year": 2014, + "value": null + }, + { + "year": 2015, + "value": null + }, + { + "year": 2016, + "value": "1.2987551764417 t CO2/Fe_ton" + }, + { + "year": 2017, + "value": "1.28433843525816 t CO2/Fe_ton" + }, + { + "year": 2018, + "value": "1.21222458993769 t CO2/Fe_ton" + }, + { + "year": 2019, + "value": "1.14411875522451 t CO2/Fe_ton" + }, + { + "year": 2020, + "value": "1.21841550534596 t CO2/Fe_ton" + }, + { + "year": 2021, + "value": "1.21841550534596 t CO2/Fe_ton" + } + ], + "S2": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": null + }, + { + "year": 2011, + "value": null + }, + { + "year": 2012, + "value": null + }, + { + "year": 2013, + "value": null + }, + { + "year": 2014, + "value": null + }, + { + "year": 2015, + "value": null + }, + { + "year": 2016, + "value": null + }, + { + "year": 2017, + "value": null + }, + { + "year": 2018, + "value": null + }, + { + "year": 2019, + "value": null + }, + { + "year": 2020, + "value": null + }, + { + "year": 2021, + "value": null + } + ], + "S1S2": [], + "S3": [], + "S1S2S3": [] + } + } + }, + { + "company_name": "Company G", + "company_id": "CN0000000007", + "region": "Asia", + "sector": "Steel", + "target_probability": 0.4285714285714285, + "historic_data": { + "productions": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": null + }, + { + "year": 2011, + "value": null + }, + { + "year": 2012, + "value": null + }, + { + "year": 2013, + "value": "46030001.3676141 Fe_ton" + }, + { + "year": 2014, + "value": "48160001.3676141 Fe_ton" + }, + { + "year": 2015, + "value": "47320001.3676141 Fe_ton" + }, + { + "year": 2016, + "value": "44530001.3676141 Fe_ton" + }, + { + "year": 2017, + "value": "45170001.3676141 Fe_ton" + }, + { + "year": 2018, + "value": "46505001.3676141 Fe_ton" + }, + { + "year": 2019, + "value": "47840001.3676141 Fe_ton" + }, + { + "year": 2020, + "value": "47050001.3676141 Fe_ton" + }, + { + "year": 2021, + "value": "47050001.3676141 Fe_ton" + } + ], + "emissions": { + "S1": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": null + }, + { + "year": 2011, + "value": null + }, + { + "year": 2012, + "value": null + }, + { + "year": 2013, + "value": null + }, + { + "year": 2014, + "value": null + }, + { + "year": 2015, + "value": null + }, + { + "year": 2016, + "value": "89000001.3676141 t CO2" + }, + { + "year": 2017, + "value": "89000001.3676141 t CO2" + }, + { + "year": 2018, + "value": "86000001.3676141 t CO2" + }, + { + "year": 2019, + "value": "87000001.3676141 t CO2" + }, + { + "year": 2020, + "value": "84000001.3676141 t CO2" + }, + { + "year": 2021, + "value": "84000001.3676141 t CO2" + } + ], + "S2": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": null + }, + { + "year": 2011, + "value": null + }, + { + "year": 2012, + "value": null + }, + { + "year": 2013, + "value": null + }, + { + "year": 2014, + "value": null + }, + { + "year": 2015, + "value": null + }, + { + "year": 2016, + "value": "11000001.3676141 t CO2" + }, + { + "year": 2017, + "value": "10000001.3676141 t CO2" + }, + { + "year": 2018, + "value": "10000001.3676141 t CO2" + }, + { + "year": 2019, + "value": "10000001.3676141 t CO2" + }, + { + "year": 2020, + "value": "9000001.36761412 t CO2" + }, + { + "year": 2021, + "value": "9000001.36761412 t CO2" + } + ], + "S1S2": [], + "S3": [], + "S1S2S3": [] + }, + "emission_intensities": { + "S1": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": null + }, + { + "year": 2011, + "value": null + }, + { + "year": 2012, + "value": null + }, + { + "year": 2013, + "value": null + }, + { + "year": 2014, + "value": null + }, + { + "year": 2015, + "value": null + }, + { + "year": 2016, + "value": "1.9986525630862 t CO2/Fe_ton" + }, + { + "year": 2017, + "value": "1.97033426329327 t CO2/Fe_ton" + }, + { + "year": 2018, + "value": "1.84926349507656 t CO2/Fe_ton" + }, + { + "year": 2019, + "value": "1.81856184950927 t CO2/Fe_ton" + }, + { + "year": 2020, + "value": "1.78533472743815 t CO2/Fe_ton" + }, + { + "year": 2021, + "value": "1.78533472743815 t CO2/Fe_ton" + } + ], + "S2": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": null + }, + { + "year": 2011, + "value": null + }, + { + "year": 2012, + "value": null + }, + { + "year": 2013, + "value": null + }, + { + "year": 2014, + "value": null + }, + { + "year": 2015, + "value": null + }, + { + "year": 2016, + "value": "0.247024501005612 t CO2/Fe_ton" + }, + { + "year": 2017, + "value": "0.221385899155272 t CO2/Fe_ton" + }, + { + "year": 2018, + "value": "0.215030664950761 t CO2/Fe_ton" + }, + { + "year": 2019, + "value": "0.209030122946103 t CO2/Fe_ton" + }, + { + "year": 2020, + "value": "0.191285889606989 t CO2/Fe_ton" + }, + { + "year": 2021, + "value": "0.191285889606989 t CO2/Fe_ton" + } + ], + "S1S2": [], + "S3": [], + "S1S2S3": [] + } + } + }, + { + "company_name": "Company H", + "company_id": "CN0000000008", + "region": "Asia", + "sector": "Steel", + "target_probability": 0.4285714285714285, + "historic_data": { + "productions": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": null + }, + { + "year": 2011, + "value": null + }, + { + "year": 2012, + "value": null + }, + { + "year": 2013, + "value": null + }, + { + "year": 2014, + "value": "15921004.6310296 Fe_ton" + }, + { + "year": 2015, + "value": "15855004.6310296 Fe_ton" + }, + { + "year": 2016, + "value": "16419004.6310296 Fe_ton" + }, + { + "year": 2017, + "value": "16850004.6310296 Fe_ton" + }, + { + "year": 2018, + "value": "17286004.6310296 Fe_ton" + }, + { + "year": 2019, + "value": "15520004.6310296 Fe_ton" + }, + { + "year": 2020, + "value": "15520004.6310296 Fe_ton" + }, + { + "year": 2021, + "value": "15520004.6310296 Fe_ton" + } + ], + "emissions": { + "S1": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": null + }, + { + "year": 2011, + "value": null + }, + { + "year": 2012, + "value": null + }, + { + "year": 2013, + "value": null + }, + { + "year": 2014, + "value": null + }, + { + "year": 2015, + "value": "29200004.6310296 t CO2" + }, + { + "year": 2016, + "value": "29200004.6310296 t CO2" + }, + { + "year": 2017, + "value": "29600004.6310296 t CO2" + }, + { + "year": 2018, + "value": "30200004.6310296 t CO2" + }, + { + "year": 2019, + "value": "28400004.6310296 t CO2" + }, + { + "year": 2020, + "value": "28400004.6310296 t CO2" + }, + { + "year": 2021, + "value": "28400004.6310296 t CO2" + } + ], + "S2": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": null + }, + { + "year": 2011, + "value": null + }, + { + "year": 2012, + "value": null + }, + { + "year": 2013, + "value": null + }, + { + "year": 2014, + "value": null + }, + { + "year": 2015, + "value": "3600004.63102958 t CO2" + }, + { + "year": 2016, + "value": "3800004.63102958 t CO2" + }, + { + "year": 2017, + "value": "4000004.63102958 t CO2" + }, + { + "year": 2018, + "value": "4000004.63102958 t CO2" + }, + { + "year": 2019, + "value": "3600004.63102958 t CO2" + }, + { + "year": 2020, + "value": "3600004.63102958 t CO2" + }, + { + "year": 2021, + "value": "3600004.63102958 t CO2" + } + ], + "S1S2": [], + "S3": [], + "S1S2S3": [] + }, + "emission_intensities": { + "S1": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": null + }, + { + "year": 2011, + "value": null + }, + { + "year": 2012, + "value": null + }, + { + "year": 2013, + "value": null + }, + { + "year": 2014, + "value": null + }, + { + "year": 2015, + "value": "1.8416900726653 t CO2/Fe_ton" + }, + { + "year": 2016, + "value": "1.77842721207629 t CO2/Fe_ton" + }, + { + "year": 2017, + "value": "1.75667634989967 t CO2/Fe_ton" + }, + { + "year": 2018, + "value": "1.74707836053789 t CO2/Fe_ton" + }, + { + "year": 2019, + "value": "1.82989665958273 t CO2/Fe_ton" + }, + { + "year": 2020, + "value": "1.82989665958273 t CO2/Fe_ton" + }, + { + "year": 2021, + "value": "1.82989665958273 t CO2/Fe_ton" + } + ], + "S2": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": null + }, + { + "year": 2011, + "value": null + }, + { + "year": 2012, + "value": null + }, + { + "year": 2013, + "value": null + }, + { + "year": 2014, + "value": null + }, + { + "year": 2015, + "value": "0.22705793626727 t CO2/Fe_ton" + }, + { + "year": 2016, + "value": "0.231439403083431 t CO2/Fe_ton" + }, + { + "year": 2017, + "value": "0.237388933630528 t CO2/Fe_ton" + }, + { + "year": 2018, + "value": "0.231401339778036 t CO2/Fe_ton" + }, + { + "year": 2019, + "value": "0.231958992063184 t CO2/Fe_ton" + }, + { + "year": 2020, + "value": "0.231958992063184 t CO2/Fe_ton" + }, + { + "year": 2021, + "value": "0.231958992063184 t CO2/Fe_ton" + } + ], + "S1S2": [], + "S3": [], + "S1S2S3": [] + } + } + }, + { + "company_name": "Company I", + "company_id": "CN0000000009", + "region": "Asia", + "sector": "Steel", + "target_probability": 0.4285714285714285, + "historic_data": { + "productions": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": null + }, + { + "year": 2011, + "value": null + }, + { + "year": 2012, + "value": null + }, + { + "year": 2013, + "value": null + }, + { + "year": 2014, + "value": null + }, + { + "year": 2015, + "value": null + }, + { + "year": 2016, + "value": null + }, + { + "year": 2017, + "value": null + }, + { + "year": 2018, + "value": null + }, + { + "year": 2019, + "value": null + }, + { + "year": 2020, + "value": null + }, + { + "year": 2021, + "value": null + } + ], + "emissions": { + "S1": [ + { + "year": 2009, + "value": "60457000.4256679 t CO2" + }, + { + "year": 2010, + "value": "68748000.4256679 t CO2" + }, + { + "year": 2011, + "value": "74602000.4256679 t CO2" + }, + { + "year": 2012, + "value": "85678000.4256679 t CO2" + }, + { + "year": 2013, + "value": "79928000.4256679 t CO2" + }, + { + "year": 2014, + "value": "84451000.4256679 t CO2" + }, + { + "year": 2015, + "value": "82741000.4256679 t CO2" + }, + { + "year": 2016, + "value": "81346000.4256679 t CO2" + }, + { + "year": 2017, + "value": "67743000.4256679 t CO2" + }, + { + "year": 2018, + "value": "69687000.4256679 t CO2" + }, + { + "year": 2019, + "value": "79447000.4256679 t CO2" + }, + { + "year": 2020, + "value": "79447000.4256679 t CO2" + }, + { + "year": 2021, + "value": "79447000.4256679 t CO2" + } + ], + "S2": [ + { + "year": 2009, + "value": "2698000.42566793 t CO2" + }, + { + "year": 2010, + "value": "3033000.42566793 t CO2" + }, + { + "year": 2011, + "value": "3625000.42566793 t CO2" + }, + { + "year": 2012, + "value": "3682000.42566793 t CO2" + }, + { + "year": 2013, + "value": "4539000.42566793 t CO2" + }, + { + "year": 2014, + "value": "5032000.42566793 t CO2" + }, + { + "year": 2015, + "value": "4431000.42566793 t CO2" + }, + { + "year": 2016, + "value": "3719000.42566793 t CO2" + }, + { + "year": 2017, + "value": "2956000.42566793 t CO2" + }, + { + "year": 2018, + "value": "2802000.42566793 t CO2" + }, + { + "year": 2019, + "value": "795000.425667932 t CO2" + }, + { + "year": 2020, + "value": "795000.425667932 t CO2" + }, + { + "year": 2021, + "value": "795000.425667932 t CO2" + } + ], + "S1S2": [], + "S3": [], + "S1S2S3": [] + }, + "emission_intensities": { + "S1": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": null + }, + { + "year": 2011, + "value": null + }, + { + "year": 2012, + "value": null + }, + { + "year": 2013, + "value": null + }, + { + "year": 2014, + "value": null + }, + { + "year": 2015, + "value": null + }, + { + "year": 2016, + "value": null + }, + { + "year": 2017, + "value": null + }, + { + "year": 2018, + "value": null + }, + { + "year": 2019, + "value": null + }, + { + "year": 2020, + "value": null + }, + { + "year": 2021, + "value": null + } + ], + "S2": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": null + }, + { + "year": 2011, + "value": null + }, + { + "year": 2012, + "value": null + }, + { + "year": 2013, + "value": null + }, + { + "year": 2014, + "value": null + }, + { + "year": 2015, + "value": null + }, + { + "year": 2016, + "value": null + }, + { + "year": 2017, + "value": null + }, + { + "year": 2018, + "value": null + }, + { + "year": 2019, + "value": null + }, + { + "year": 2020, + "value": null + }, + { + "year": 2021, + "value": null + } + ], + "S1S2": [], + "S3": [], + "S1S2S3": [] + } + } + }, + { + "company_name": "Company J", + "company_id": "BR0000000010", + "region": "Asia", + "sector": "Steel", + "target_probability": 0.4285714285714285, + "historic_data": { + "productions": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": null + }, + { + "year": 2011, + "value": null + }, + { + "year": 2012, + "value": null + }, + { + "year": 2013, + "value": "15691492.9224849 Fe_ton" + }, + { + "year": 2014, + "value": "11301980.9224849 Fe_ton" + }, + { + "year": 2015, + "value": "11500001.9224849 Fe_ton" + }, + { + "year": 2016, + "value": "11600001.9224849 Fe_ton" + }, + { + "year": 2017, + "value": "3012108.92248495 Fe_ton" + }, + { + "year": 2018, + "value": "12039001.9224849 Fe_ton" + }, + { + "year": 2019, + "value": "11847001.9224849 Fe_ton" + }, + { + "year": 2020, + "value": "11314001.9224849 Fe_ton" + }, + { + "year": 2021, + "value": "11314001.9224849 Fe_ton" + } + ], + "emissions": { + "S1": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": null + }, + { + "year": 2011, + "value": null + }, + { + "year": 2012, + "value": null + }, + { + "year": 2013, + "value": null + }, + { + "year": 2014, + "value": null + }, + { + "year": 2015, + "value": null + }, + { + "year": 2016, + "value": "23200001.9224849 t CO2" + }, + { + "year": 2017, + "value": "22200001.9224849 t CO2" + }, + { + "year": 2018, + "value": "22100001.9224849 t CO2" + }, + { + "year": 2019, + "value": "23400001.9224849 t CO2" + }, + { + "year": 2020, + "value": "23400001.9224849 t CO2" + }, + { + "year": 2021, + "value": "23400001.9224849 t CO2" + } + ], + "S2": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": null + }, + { + "year": 2011, + "value": null + }, + { + "year": 2012, + "value": null + }, + { + "year": 2013, + "value": null + }, + { + "year": 2014, + "value": null + }, + { + "year": 2015, + "value": null + }, + { + "year": 2016, + "value": null + }, + { + "year": 2017, + "value": null + }, + { + "year": 2018, + "value": null + }, + { + "year": 2019, + "value": null + }, + { + "year": 2020, + "value": null + }, + { + "year": 2021, + "value": null + } + ], + "S1S2": [], + "S3": [], + "S1S2S3": [] + }, + "emission_intensities": { + "S1": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": null + }, + { + "year": 2011, + "value": null + }, + { + "year": 2012, + "value": null + }, + { + "year": 2013, + "value": null + }, + { + "year": 2014, + "value": null + }, + { + "year": 2015, + "value": null + }, + { + "year": 2016, + "value": "1.99999983426857 t CO2/Fe_ton" + }, + { + "year": 2017, + "value": "7.37025203729028 t CO2/Fe_ton" + }, + { + "year": 2018, + "value": "1.83570050613659 t CO2/Fe_ton" + }, + { + "year": 2019, + "value": "1.97518343253351 t CO2/Fe_ton" + }, + { + "year": 2020, + "value": "2.06823386479905 t CO2/Fe_ton" + }, + { + "year": 2021, + "value": "2.06823386479905 t CO2/Fe_ton" + } + ], + "S2": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": null + }, + { + "year": 2011, + "value": null + }, + { + "year": 2012, + "value": null + }, + { + "year": 2013, + "value": null + }, + { + "year": 2014, + "value": null + }, + { + "year": 2015, + "value": null + }, + { + "year": 2016, + "value": null + }, + { + "year": 2017, + "value": null + }, + { + "year": 2018, + "value": null + }, + { + "year": 2019, + "value": null + }, + { + "year": 2020, + "value": null + }, + { + "year": 2021, + "value": null + } + ], + "S1S2": [], + "S3": [], + "S1S2S3": [] + } + } + }, + { + "company_name": "Company K", + "company_id": "BR0000000011", + "region": "Europe", + "sector": "Steel", + "target_probability": 0.4285714285714285, + "historic_data": { + "productions": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": null + }, + { + "year": 2011, + "value": null + }, + { + "year": 2012, + "value": null + }, + { + "year": 2013, + "value": null + }, + { + "year": 2014, + "value": null + }, + { + "year": 2015, + "value": null + }, + { + "year": 2016, + "value": null + }, + { + "year": 2017, + "value": "15393000.0778486 Fe_ton" + }, + { + "year": 2018, + "value": "15419000.0778486 Fe_ton" + }, + { + "year": 2019, + "value": "14618000.0778486 Fe_ton" + }, + { + "year": 2020, + "value": "14473000.0778486 Fe_ton" + }, + { + "year": 2021, + "value": "14473000.0778486 Fe_ton" + } + ], + "emissions": { + "S1": [ + { + "year": 2009, + "value": "4000000.07784856 t CO2" + }, + { + "year": 2010, + "value": "6481635.07784856 t CO2" + }, + { + "year": 2011, + "value": "10525000.0778486 t CO2" + }, + { + "year": 2012, + "value": "9308000.07784856 t CO2" + }, + { + "year": 2013, + "value": "9311000.07784856 t CO2" + }, + { + "year": 2014, + "value": "9578000.07784856 t CO2" + }, + { + "year": 2015, + "value": "9448000.07784856 t CO2" + }, + { + "year": 2016, + "value": "9989000.07784856 t CO2" + }, + { + "year": 2017, + "value": "9867000.07784856 t CO2" + }, + { + "year": 2018, + "value": "9755000.07784856 t CO2" + }, + { + "year": 2019, + "value": "9582000.07784856 t CO2" + }, + { + "year": 2020, + "value": "9582000.07784856 t CO2" + }, + { + "year": 2021, + "value": "9582000.07784856 t CO2" + } + ], + "S2": [ + { + "year": 2009, + "value": "700993.077848565 t CO2" + }, + { + "year": 2010, + "value": "1032496.57784856 t CO2" + }, + { + "year": 2011, + "value": "1364000.07784857 t CO2" + }, + { + "year": 2012, + "value": "1367000.07784857 t CO2" + }, + { + "year": 2013, + "value": "1447000.07784857 t CO2" + }, + { + "year": 2014, + "value": "1220000.07784857 t CO2" + }, + { + "year": 2015, + "value": "1133000.07784857 t CO2" + }, + { + "year": 2016, + "value": "1166000.07784857 t CO2" + }, + { + "year": 2017, + "value": "1216000.07784857 t CO2" + }, + { + "year": 2018, + "value": "1189000.07784857 t CO2" + }, + { + "year": 2019, + "value": "1173000.07784857 t CO2" + }, + { + "year": 2020, + "value": "1173000.07784857 t CO2" + }, + { + "year": 2021, + "value": "1173000.07784857 t CO2" + } + ], + "S1S2": [], + "S3": [], + "S1S2S3": [] + }, + "emission_intensities": { + "S1": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": null + }, + { + "year": 2011, + "value": null + }, + { + "year": 2012, + "value": null + }, + { + "year": 2013, + "value": null + }, + { + "year": 2014, + "value": null + }, + { + "year": 2015, + "value": null + }, + { + "year": 2016, + "value": null + }, + { + "year": 2017, + "value": "0.641005653735282 t CO2/Fe_ton" + }, + { + "year": 2018, + "value": "0.632661004513705 t CO2/Fe_ton" + }, + { + "year": 2019, + "value": "0.655493229362386 t CO2/Fe_ton" + }, + { + "year": 2020, + "value": "0.662060390127003 t CO2/Fe_ton" + }, + { + "year": 2021, + "value": "0.662060390127003 t CO2/Fe_ton" + } + ], + "S2": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": null + }, + { + "year": 2011, + "value": null + }, + { + "year": 2012, + "value": null + }, + { + "year": 2013, + "value": null + }, + { + "year": 2014, + "value": null + }, + { + "year": 2015, + "value": null + }, + { + "year": 2016, + "value": null + }, + { + "year": 2017, + "value": "0.0789969513219493 t CO2/Fe_ton" + }, + { + "year": 2018, + "value": "0.0771126578795937 t CO2/Fe_ton" + }, + { + "year": 2019, + "value": "0.0802435402655439 t CO2/Fe_ton" + }, + { + "year": 2020, + "value": "0.0810474726414106 t CO2/Fe_ton" + }, + { + "year": 2021, + "value": "0.0810474726414106 t CO2/Fe_ton" + } + ], + "S1S2": [], + "S3": [], + "S1S2S3": [] + } + } + }, + { + "company_name": "Company L", + "company_id": "BR0000000012", + "region": "Asia", + "sector": "Steel", + "target_probability": 0.4285714285714285, + "historic_data": { + "productions": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": null + }, + { + "year": 2011, + "value": null + }, + { + "year": 2012, + "value": null + }, + { + "year": 2013, + "value": null + }, + { + "year": 2014, + "value": "9155004.34644718 Fe_ton" + }, + { + "year": 2015, + "value": "9331004.34644718 Fe_ton" + }, + { + "year": 2016, + "value": "20808004.3464472 Fe_ton" + }, + { + "year": 2017, + "value": "21911004.3464472 Fe_ton" + }, + { + "year": 2018, + "value": "25390004.3464472 Fe_ton" + }, + { + "year": 2019, + "value": "27110004.3464472 Fe_ton" + }, + { + "year": 2020, + "value": "30630004.3464472 Fe_ton" + }, + { + "year": 2021, + "value": "28540004.3464472 Fe_ton" + } + ], + "emissions": { + "S1": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": "14900657.0 t CO2" + }, + { + "year": 2011, + "value": "17389874.39 t CO2" + }, + { + "year": 2012, + "value": "16283032.0 t CO2" + }, + { + "year": 2013, + "value": "18802944.0 t CO2" + }, + { + "year": 2014, + "value": "20428595.0 t CO2" + }, + { + "year": 2015, + "value": "23337931.0 t CO2" + }, + { + "year": 2016, + "value": "23298343.0 t CO2" + }, + { + "year": 2017, + "value": "38757404.0 t CO2" + }, + { + "year": 2018, + "value": "47025134.0 t CO2" + }, + { + "year": 2019, + "value": "56093007.0 t CO2" + }, + { + "year": 2020, + "value": "60116322.0 t CO2" + }, + { + "year": 2021, + "value": "60116322.0 t CO2" + } + ], + "S2": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": "731525.0 t CO2" + }, + { + "year": 2011, + "value": "853729.3263 t CO2" + }, + { + "year": 2012, + "value": "789126.0 t CO2" + }, + { + "year": 2013, + "value": "1174594.0 t CO2" + }, + { + "year": 2014, + "value": "1266295.0 t CO2" + }, + { + "year": 2015, + "value": "723978.0 t CO2" + }, + { + "year": 2016, + "value": "1409816.0 t CO2" + }, + { + "year": 2017, + "value": "3979125.0 t CO2" + }, + { + "year": 2018, + "value": "3344945.0 t CO2" + }, + { + "year": 2019, + "value": "4137575.0 t CO2" + }, + { + "year": 2020, + "value": "2779523.0 t CO2" + }, + { + "year": 2021, + "value": "2779523.0 t CO2" + } + ], + "S1S2": [], + "S3": [], + "S1S2S3": [] + }, + "emission_intensities": { + "S1": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": null + }, + { + "year": 2011, + "value": null + }, + { + "year": 2012, + "value": null + }, + { + "year": 2013, + "value": null + }, + { + "year": 2014, + "value": "2.23141292204059 t CO2/Fe_ton" + }, + { + "year": 2015, + "value": "2.5011167215762815 t CO2/Fe_ton" + }, + { + "year": 2016, + "value": "1.1196817634257177 t CO2/Fe_ton" + }, + { + "year": 2017, + "value": "1.768855657512769 t CO2/Fe_ton" + }, + { + "year": 2018, + "value": "1.8521120894010474 t CO2/Fe_ton" + }, + { + "year": 2019, + "value": "2.0690888235638023 t CO2/Fe_ton" + }, + { + "year": 2020, + "value": "1.9626612298203263 t CO2/Fe_ton" + }, + { + "year": 2021, + "value": "2.1063879763383277 t CO2/Fe_ton" + } + ], + "S2": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": null + }, + { + "year": 2011, + "value": null + }, + { + "year": 2012, + "value": null + }, + { + "year": 2013, + "value": null + }, + { + "year": 2014, + "value": "0.13831724727595748 t CO2/Fe_ton" + }, + { + "year": 2015, + "value": "0.07758843240445577 t CO2/Fe_ton" + }, + { + "year": 2016, + "value": "0.06775354217189573 t CO2/Fe_ton" + }, + { + "year": 2017, + "value": "0.18160395283957864 t CO2/Fe_ton" + }, + { + "year": 2018, + "value": "0.13174259265016847 t CO2/Fe_ton" + }, + { + "year": 2019, + "value": "0.15262170183097867 t CO2/Fe_ton" + }, + { + "year": 2020, + "value": "0.09074510628733878 t CO2/Fe_ton" + }, + { + "year": 2021, + "value": "0.09739041964602954 t CO2/Fe_ton" + } + ], + "S1S2": [], + "S3": [], + "S1S2S3": [] + } + } + }, + { + "company_name": "Company M", + "company_id": "AR0000000013", + "region": "Europe", + "sector": "Steel", + "target_probability": 0.4285714285714285, + "historic_data": { + "productions": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": null + }, + { + "year": 2011, + "value": null + }, + { + "year": 2012, + "value": null + }, + { + "year": 2013, + "value": null + }, + { + "year": 2014, + "value": null + }, + { + "year": 2015, + "value": null + }, + { + "year": 2016, + "value": null + }, + { + "year": 2017, + "value": null + }, + { + "year": 2018, + "value": null + }, + { + "year": 2019, + "value": null + }, + { + "year": 2020, + "value": null + }, + { + "year": 2021, + "value": null + } + ], + "emissions": { + "S1": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": "24085969.3736674 t CO2" + }, + { + "year": 2011, + "value": "30090002.3736674 t CO2" + }, + { + "year": 2012, + "value": "16848002.3736674 t CO2" + }, + { + "year": 2013, + "value": "26700002.3736674 t CO2" + }, + { + "year": 2014, + "value": "32200002.3736674 t CO2" + }, + { + "year": 2015, + "value": "32600002.3736674 t CO2" + }, + { + "year": 2016, + "value": "32600002.3736674 t CO2" + }, + { + "year": 2017, + "value": "22100002.3736674 t CO2" + }, + { + "year": 2018, + "value": "22600002.3736674 t CO2" + }, + { + "year": 2019, + "value": "22800002.3736674 t CO2" + }, + { + "year": 2020, + "value": "21300002.3736674 t CO2" + }, + { + "year": 2021, + "value": "21300002.3736674 t CO2" + } + ], + "S2": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": "4781476.37366743 t CO2" + }, + { + "year": 2011, + "value": "4287002.37366743 t CO2" + }, + { + "year": 2012, + "value": "2116002.37366743 t CO2" + }, + { + "year": 2013, + "value": "1800002.37366743 t CO2" + }, + { + "year": 2014, + "value": "1700002.37366743 t CO2" + }, + { + "year": 2015, + "value": "1200002.37366743 t CO2" + }, + { + "year": 2016, + "value": "1200002.37366743 t CO2" + }, + { + "year": 2017, + "value": "1300002.37366743 t CO2" + }, + { + "year": 2018, + "value": "1400002.37366743 t CO2" + }, + { + "year": 2019, + "value": "1300002.37366743 t CO2" + }, + { + "year": 2020, + "value": "1400002.37366743 t CO2" + }, + { + "year": 2021, + "value": "1400002.37366743 t CO2" + } + ], + "S1S2": [], + "S3": [], + "S1S2S3": [] + }, + "emission_intensities": { + "S1": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": null + }, + { + "year": 2011, + "value": null + }, + { + "year": 2012, + "value": null + }, + { + "year": 2013, + "value": null + }, + { + "year": 2014, + "value": null + }, + { + "year": 2015, + "value": null + }, + { + "year": 2016, + "value": null + }, + { + "year": 2017, + "value": null + }, + { + "year": 2018, + "value": null + }, + { + "year": 2019, + "value": null + }, + { + "year": 2020, + "value": null + }, + { + "year": 2021, + "value": null + } + ], + "S2": [ + { + "year": 2009, + "value": null + }, + { + "year": 2010, + "value": null + }, + { + "year": 2011, + "value": null + }, + { + "year": 2012, + "value": null + }, + { + "year": 2013, + "value": null + }, + { + "year": 2014, + "value": null + }, + { + "year": 2015, + "value": null + }, + { + "year": 2016, + "value": null + }, + { + "year": 2017, + "value": null + }, + { + "year": 2018, + "value": null + }, + { + "year": 2019, + "value": null + }, + { + "year": 2020, + "value": null + }, + { + "year": 2021, + "value": null + } + ], + "S1S2": [], + "S3": [], + "S1S2S3": [] + } + } + } ] \ No newline at end of file diff --git a/test/inputs/json/test_project_reference.json b/test/inputs/json/test_project_reference.json index 56c83954..34d98de7 100644 --- a/test/inputs/json/test_project_reference.json +++ b/test/inputs/json/test_project_reference.json @@ -1,12759 +1,12759 @@ -[ - { - "company_name": "Company AG", - "company_id": "US0079031078", - "region": "North America", - "sector": "Electricity Utilities", - "target_probability": 0.428571428571428, - "historic_data": { - "productions": [ - { - "year": 2009, - "value": null - }, - { - "year": 2010, - "value": null - }, - { - "year": 2011, - "value": null - }, - { - "year": 2012, - "value": null - }, - { - "year": 2013, - "value": null - }, - { - "year": 2014, - "value": 1682769059.4097404 - }, - { - "year": 2015, - "value": 1149435381.0097404 - }, - { - "year": 2016, - "value": 1351884837.0097404 - }, - { - "year": 2017, - "value": 870361875.4897404 - }, - { - "year": 2018, - "value": 388838913.9697404 - }, - { - "year": 2019, - "value": 377380291.0897404 - }, - { - "year": 2020, - "value": 377380291.0897404 - }, - { - "year": 2021, - "value": 377380291.0897404 - } - ], - "emissions": { - "S1": [ - { - "year": 2009, - "value": 74121549.8360392 - }, - { - "year": 2010, - "value": 77200005.8360392 - }, - { - "year": 2011, - "value": 74010717.8360392 - }, - { - "year": 2012, - "value": 78912218.8360392 - }, - { - "year": 2013, - "value": 75863005.8360392 - }, - { - "year": 2014, - "value": 79630005.8360392 - }, - { - "year": 2015, - "value": 70339005.8360392 - }, - { - "year": 2016, - "value": 70457005.8360392 - }, - { - "year": 2017, - "value": 64527005.8360392 - }, - { - "year": 2018, - "value": 54154005.8360392 - }, - { - "year": 2019, - "value": 49092005.8360392 - }, - { - "year": 2020, - "value": 49092005.8360392 - }, - { - "year": 2021, - "value": 49092005.8360392 - } - ], - "S2": [ - { - "year": 2009, - "value": null - }, - { - "year": 2010, - "value": null - }, - { - "year": 2011, - "value": null - }, - { - "year": 2012, - "value": 414929.856039191 - }, - { - "year": 2013, - "value": 90005.8360391907 - }, - { - "year": 2014, - "value": 290005.836039191 - }, - { - "year": 2015, - "value": 367805.836039191 - }, - { - "year": 2016, - "value": 306005.836039191 - }, - { - "year": 2017, - "value": 226005.836039191 - }, - { - "year": 2018, - "value": 360005.836039191 - }, - { - "year": 2019, - "value": 359005.836039191 - }, - { - "year": 2020, - "value": 359005.836039191 - }, - { - "year": 2021, - "value": 359005.836039191 - } - ], - "S1S2": [], - "S3": [], - "S1S2S3": [] - }, - "emission_intensities": { - "S1": [ - { - "year": 2009, - "value": null - }, - { - "year": 2010, - "value": null - }, - { - "year": 2011, - "value": null - }, - { - "year": 2012, - "value": null - }, - { - "year": 2013, - "value": null - }, - { - "year": 2014, - "value": 0.6132777815614572 - }, - { - "year": 2015, - "value": 0.793079394192882 - }, - { - "year": 2016, - "value": 0.6754442173157448 - }, - { - "year": 2017, - "value": 0.9608302238244408 - }, - { - "year": 2018, - "value": 1.8049528748804293 - }, - { - "year": 2019, - "value": 1.6859184505842997 - }, - { - "year": 2020, - "value": 1.6859184505842997 - }, - { - "year": 2021, - "value": 1.6859184505842997 - } - ], - "S2": [ - { - "year": 2009, - "value": null - }, - { - "year": 2010, - "value": null - }, - { - "year": 2011, - "value": null - }, - { - "year": 2012, - "value": null - }, - { - "year": 2013, - "value": null - }, - { - "year": 2014, - "value": 0.002233506501709902 - }, - { - "year": 2015, - "value": 0.00414704794529682 - }, - { - "year": 2016, - "value": 0.0029335602608281442 - }, - { - "year": 2017, - "value": 0.003365307830630542 - }, - { - "year": 2018, - "value": 0.011998993586920128 - }, - { - "year": 2019, - "value": 0.0123289841704041 - }, - { - "year": 2020, - "value": 0.0123289841704041 - }, - { - "year": 2021, - "value": 0.0123289841704041 - } - ], - "S1S2": [], - "S3": [], - "S1S2S3": [] - } - }, - "projected_targets": null, - "projected_intensities": { - "S1S2": { - "projections": [ - { - "year": 2019, - "value": 1.6982474347547039 - }, - { - "year": 2020, - "value": 1.6982474347547039 - }, - { - "year": 2021, - "value": 1.6982474347547039 - }, - { - "year": 2022, - "value": 1.6982474347547039 - }, - { - "year": 2023, - "value": 1.6982474347547039 - }, - { - "year": 2024, - "value": 1.6982474347547039 - }, - { - "year": 2025, - "value": 1.6982474347547039 - }, - { - "year": 2026, - "value": 1.6982474347547039 - }, - { - "year": 2027, - "value": 1.6982474347547039 - }, - { - "year": 2028, - "value": 1.6982474347547039 - }, - { - "year": 2029, - "value": 1.6982474347547039 - }, - { - "year": 2030, - "value": 1.6982474347547039 - }, - { - "year": 2031, - "value": 1.6982474347547039 - }, - { - "year": 2032, - "value": 1.6982474347547039 - }, - { - "year": 2033, - "value": 1.6982474347547039 - }, - { - "year": 2034, - "value": 1.6982474347547039 - }, - { - "year": 2035, - "value": 1.6982474347547039 - }, - { - "year": 2036, - "value": 1.6982474347547039 - }, - { - "year": 2037, - "value": 1.6982474347547039 - }, - { - "year": 2038, - "value": 1.6982474347547039 - }, - { - "year": 2039, - "value": 1.6982474347547039 - }, - { - "year": 2040, - "value": 1.6982474347547039 - }, - { - "year": 2041, - "value": 1.6982474347547039 - }, - { - "year": 2042, - "value": 1.6982474347547039 - }, - { - "year": 2043, - "value": 1.6982474347547039 - }, - { - "year": 2044, - "value": 1.6982474347547039 - }, - { - "year": 2045, - "value": 1.6982474347547039 - }, - { - "year": 2046, - "value": 1.6982474347547039 - }, - { - "year": 2047, - "value": 1.6982474347547039 - }, - { - "year": 2048, - "value": 1.6982474347547039 - }, - { - "year": 2049, - "value": 1.6982474347547039 - }, - { - "year": 2050, - "value": 1.6982474347547039 - } - ] - }, - "S3": null, - "S1S2S3": null - }, - "country": null, - "ghg_s1s2": null, - "ghg_s3": null, - "industry_level_1": null, - "industry_level_2": null, - "industry_level_3": null, - "industry_level_4": null, - "company_revenue": null, - "company_market_cap": null, - "company_enterprise_value": null, - "company_total_assets": null, - "company_cash_equivalents": null - }, - { - "company_name": "Company AH", - "company_id": "US00724F1012", - "region": "North America", - "sector": "Electricity Utilities", - "target_probability": 0.4285714285714285, - "historic_data": { - "productions": [ - { - "year": 2009, - "value": null - }, - { - "year": 2010, - "value": 2143661765.3714125 - }, - { - "year": 2011, - "value": 2114928159.0914125 - }, - { - "year": 2012, - "value": 2086194552.8114123 - }, - { - "year": 2013, - "value": 2057460946.5314126 - }, - { - "year": 2014, - "value": 2028727340.2514122 - }, - { - "year": 2015, - "value": 1885882971.9314125 - }, - { - "year": 2016, - "value": 1661622976.4114125 - }, - { - "year": 2017, - "value": 2488147559.6114125 - }, - { - "year": 2018, - "value": 2457602018.9714127 - }, - { - "year": 2019, - "value": 2156173206.8114123 - }, - { - "year": 2020, - "value": 2156173206.8114123 - }, - { - "year": 2021, - "value": 2156173206.8114123 - } - ], - "emissions": { - "S1": [], - "S2": [], - "S1S2": [], - "S3": [], - "S1S2S3": [] - }, - "emission_intensities": { - "S1": [ - { - "year": 2009, - "value": null - }, - { - "year": 2010, - "value": 9.020587159252296e-09 - }, - { - "year": 2011, - "value": 9.143141676640597e-09 - }, - { - "year": 2012, - "value": 9.269072133483565e-09 - }, - { - "year": 2013, - "value": 0.016324063782454407 - }, - { - "year": 2014, - "value": 0.033110525388179275 - }, - { - "year": 2015, - "value": 0.0534276696850902 - }, - { - "year": 2016, - "value": 0.08085133557988561 - }, - { - "year": 2017, - "value": 0.06749219539186596 - }, - { - "year": 2018, - "value": 0.08300080315789345 - }, - { - "year": 2019, - "value": 0.08723928160449504 - }, - { - "year": 2020, - "value": 0.08723928160449504 - }, - { - "year": 2021, - "value": 0.08723928160449504 - } - ], - "S2": [ - { - "year": 2009, - "value": null - }, - { - "year": 2010, - "value": 9.020587159252296e-09 - }, - { - "year": 2011, - "value": 9.143141676640597e-09 - }, - { - "year": 2012, - "value": 9.269072133483565e-09 - }, - { - "year": 2013, - "value": 0.016324063782454407 - }, - { - "year": 2014, - "value": 0.033110525388179275 - }, - { - "year": 2015, - "value": 0.0534276696850902 - }, - { - "year": 2016, - "value": 0.08085133557988561 - }, - { - "year": 2017, - "value": 0.06749219539186596 - }, - { - "year": 2018, - "value": 0.08300080315789345 - }, - { - "year": 2019, - "value": 0.08723928160449504 - }, - { - "year": 2020, - "value": 0.08723928160449504 - }, - { - "year": 2021, - "value": 0.08723928160449504 - } - ], - "S1S2": [], - "S3": [], - "S1S2S3": [] - } - }, - "projected_targets": null, - "projected_intensities": { - "S1S2": { - "projections": [ - { - "year": 2019, - "value": 0.17447856320899008 - }, - { - "year": 2020, - "value": 0.17447856320899008 - }, - { - "year": 2021, - "value": 0.17447856320899008 - }, - { - "year": 2022, - "value": 0.1797129201052598 - }, - { - "year": 2023, - "value": 0.1851043077084176 - }, - { - "year": 2024, - "value": 0.19065743693967013 - }, - { - "year": 2025, - "value": 0.19637716004786024 - }, - { - "year": 2026, - "value": 0.20226847484929605 - }, - { - "year": 2027, - "value": 0.20833652909477493 - }, - { - "year": 2028, - "value": 0.21458662496761818 - }, - { - "year": 2029, - "value": 0.22102422371664673 - }, - { - "year": 2030, - "value": 0.22765495042814615 - }, - { - "year": 2031, - "value": 0.23448459894099055 - }, - { - "year": 2032, - "value": 0.24151913690922028 - }, - { - "year": 2033, - "value": 0.2487647110164969 - }, - { - "year": 2034, - "value": 0.2562276523469918 - }, - { - "year": 2035, - "value": 0.2639144819174016 - }, - { - "year": 2036, - "value": 0.27183191637492365 - }, - { - "year": 2037, - "value": 0.2799868738661714 - }, - { - "year": 2038, - "value": 0.2883864800821565 - }, - { - "year": 2039, - "value": 0.2970380744846212 - }, - { - "year": 2040, - "value": 0.30594921671915987 - }, - { - "year": 2041, - "value": 0.3151276932207347 - }, - { - "year": 2042, - "value": 0.32458152401735674 - }, - { - "year": 2043, - "value": 0.33431896973787745 - }, - { - "year": 2044, - "value": 0.34434853883001376 - }, - { - "year": 2045, - "value": 0.3546789949949142 - }, - { - "year": 2046, - "value": 0.36531936484476163 - }, - { - "year": 2047, - "value": 0.3762789457901045 - }, - { - "year": 2048, - "value": 0.3875673141638077 - }, - { - "year": 2049, - "value": 0.3991943335887219 - }, - { - "year": 2050, - "value": 0.4111701635963836 - } - ] - }, - "S3": null, - "S1S2S3": null - }, - "country": null, - "ghg_s1s2": null, - "ghg_s3": null, - "industry_level_1": null, - "industry_level_2": null, - "industry_level_3": null, - "industry_level_4": null, - "company_revenue": null, - "company_market_cap": null, - "company_enterprise_value": null, - "company_total_assets": null, - "company_cash_equivalents": null - }, - { - "company_name": "Company AI", - "company_id": "FR0000125338", - "region": "Europe", - "sector": "Electricity Utilities", - "target_probability": 0.4285714285714285, - "historic_data": { - "productions": null, - "emissions": null, - "emission_intensities": { - "S1": [ - { - "year": 2009, - "value": null - }, - { - "year": 2010, - "value": 0.4605612425432028 - }, - { - "year": 2011, - "value": 0.47676992001722285 - }, - { - "year": 2012, - "value": 0.4935410421590952 - }, - { - "year": 2013, - "value": 0.4271137111711944 - }, - { - "year": 2014, - "value": 0.4050475894153404 - }, - { - "year": 2015, - "value": 1.7660044449376848 - }, - { - "year": 2016, - "value": 0.12641248982232864 - }, - { - "year": 2017, - "value": 0.11422094242724208 - }, - { - "year": 2018, - "value": 0.12432145953306709 - }, - { - "year": 2019, - "value": 0.14432694163463483 - }, - { - "year": 2020, - "value": 0.11410264669076498 - }, - { - "year": 2021, - "value": 0.11410264669076498 - } - ], - "S2": [ - { - "year": 2009, - "value": null - }, - { - "year": 2010, - "value": 0.019750986012689604 - }, - { - "year": 2011, - "value": 0.019542782620390428 - }, - { - "year": 2012, - "value": 0.016717335291559405 - }, - { - "year": 2013, - "value": 0.012755111704326829 - }, - { - "year": 2014, - "value": 0.016135716380506274 - }, - { - "year": 2015, - "value": 0.0816777616053006 - }, - { - "year": 2016, - "value": 0.07909610646488868 - }, - { - "year": 2017, - "value": 0.08497232976008089 - }, - { - "year": 2018, - "value": 0.078447410507817 - }, - { - "year": 2019, - "value": 0.08024699005813475 - }, - { - "year": 2020, - "value": 0.14391033829225056 - }, - { - "year": 2021, - "value": 0.14391033829225056 - } - ], - "S1S2": [], - "S3": [], - "S1S2S3": [] - } - }, - "projected_targets": null, - "projected_intensities": { - "S1S2": { - "projections": [ - { - "year": 2019, - "value": 0.22457393169276957 - }, - { - "year": 2020, - "value": 0.2580129849830155 - }, - { - "year": 2021, - "value": 0.2580129849830155 - }, - { - "year": 2022, - "value": 0.2580129849830155 - }, - { - "year": 2023, - "value": 0.2580129849830155 - }, - { - "year": 2024, - "value": 0.2580129849830155 - }, - { - "year": 2025, - "value": 0.2580129849830155 - }, - { - "year": 2026, - "value": 0.2580129849830155 - }, - { - "year": 2027, - "value": 0.2580129849830155 - }, - { - "year": 2028, - "value": 0.2580129849830155 - }, - { - "year": 2029, - "value": 0.2580129849830155 - }, - { - "year": 2030, - "value": 0.2580129849830155 - }, - { - "year": 2031, - "value": 0.2580129849830155 - }, - { - "year": 2032, - "value": 0.2580129849830155 - }, - { - "year": 2033, - "value": 0.2580129849830155 - }, - { - "year": 2034, - "value": 0.2580129849830155 - }, - { - "year": 2035, - "value": 0.2580129849830155 - }, - { - "year": 2036, - "value": 0.2580129849830155 - }, - { - "year": 2037, - "value": 0.2580129849830155 - }, - { - "year": 2038, - "value": 0.2580129849830155 - }, - { - "year": 2039, - "value": 0.2580129849830155 - }, - { - "year": 2040, - "value": 0.2580129849830155 - }, - { - "year": 2041, - "value": 0.2580129849830155 - }, - { - "year": 2042, - "value": 0.2580129849830155 - }, - { - "year": 2043, - "value": 0.2580129849830155 - }, - { - "year": 2044, - "value": 0.2580129849830155 - }, - { - "year": 2045, - "value": 0.2580129849830155 - }, - { - "year": 2046, - "value": 0.2580129849830155 - }, - { - "year": 2047, - "value": 0.2580129849830155 - }, - { - "year": 2048, - "value": 0.2580129849830155 - }, - { - "year": 2049, - "value": 0.2580129849830155 - }, - { - "year": 2050, - "value": 0.2580129849830155 - } - ] - }, - "S3": null, - "S1S2S3": null - }, - "country": null, - "ghg_s1s2": null, - "ghg_s3": null, - "industry_level_1": null, - "industry_level_2": null, - "industry_level_3": null, - "industry_level_4": null, - "company_revenue": null, - "company_market_cap": null, - "company_enterprise_value": null, - "company_total_assets": null, - "company_cash_equivalents": null - }, - { - "company_name": "Company AJ", - "company_id": "US17275R1023", - "region": "Europe", - "sector": "Electricity Utilities", - "target_probability": 0.4285714285714285, - "historic_data": { - "productions": [ - { - "year": 2009, - "value": 8015760033.846192 - }, - { - "year": 2010, - "value": 8169984033.846192 - }, - { - "year": 2011, - "value": 8141472033.846192 - }, - { - "year": 2012, - "value": 8328096033.846192 - }, - { - "year": 2013, - "value": 8474544033.846192 - }, - { - "year": 2014, - "value": 8080560033.846192 - }, - { - "year": 2015, - "value": 8026128033.846192 - }, - { - "year": 2016, - "value": 364176033.84621 - }, - { - "year": 2017, - "value": 381024033.84621 - }, - { - "year": 2018, - "value": 383616033.84621 - }, - { - "year": 2019, - "value": 360288033.84621 - }, - { - "year": 2020, - "value": 360288033.84621 - }, - { - "year": 2021, - "value": 360288033.84621 - } - ], - "emissions": { - "S1": [ - { - "year": 2009, - "value": 78192009.4017252 - }, - { - "year": 2010, - "value": 80575879.4017252 - }, - { - "year": 2011, - "value": 70935799.4017252 - }, - { - "year": 2012, - "value": 80283565.4017252 - }, - { - "year": 2013, - "value": 73222380.0683918 - }, - { - "year": 2014, - "value": 66161194.7350585 - }, - { - "year": 2015, - "value": 59100009.4017252 - }, - { - "year": 2016, - "value": 47700009.4017252 - }, - { - "year": 2017, - "value": 51300009.4017252 - }, - { - "year": 2018, - "value": 35700009.4017252 - }, - { - "year": 2019, - "value": 33100009.4017252 - }, - { - "year": 2020, - "value": 33100009.4017252 - }, - { - "year": 2021, - "value": 33100009.4017252 - } - ], - "S2": [ - { - "year": 2009, - "value": 480089.401725152 - }, - { - "year": 2010, - "value": 670709.401725152 - }, - { - "year": 2011, - "value": 81181.4017251516 - }, - { - "year": 2012, - "value": 74013.4017251516 - }, - { - "year": 2013, - "value": 159212.601725152 - }, - { - "year": 2014, - "value": 244411.801725152 - }, - { - "year": 2015, - "value": 329611.001725152 - }, - { - "year": 2016, - "value": 414810.201725152 - }, - { - "year": 2017, - "value": 500009.401725152 - }, - { - "year": 2018, - "value": 470009.401725152 - }, - { - "year": 2019, - "value": 290009.401725152 - }, - { - "year": 2020, - "value": 290009.401725152 - }, - { - "year": 2021, - "value": 290009.401725152 - } - ], - "S1S2": [], - "S3": [], - "S1S2S3": [] - }, - "emission_intensities": { - "S1": [ - { - "year": 2009, - "value": 0.12642200334933337 - }, - { - "year": 2010, - "value": 0.12781706704936452 - }, - { - "year": 2011, - "value": 0.1129191326119494 - }, - { - "year": 2012, - "value": 0.12493551988086661 - }, - { - "year": 2013, - "value": 0.11197794735579024 - }, - { - "year": 2014, - "value": 0.10611258132788423 - }, - { - "year": 2015, - "value": 0.09543033933877008 - }, - { - "year": 2016, - "value": 1.6975090736130565 - }, - { - "year": 2017, - "value": 1.7448981239716346 - }, - { - "year": 2018, - "value": 1.2060812922950988 - }, - { - "year": 2019, - "value": 1.1906477083539972 - }, - { - "year": 2020, - "value": 1.1906477083539972 - }, - { - "year": 2021, - "value": 1.1906477083539972 - } - ], - "S2": [ - { - "year": 2009, - "value": 0.0007762156826159988 - }, - { - "year": 2010, - "value": 0.001063942574471082 - }, - { - "year": 2011, - "value": 0.000129228591830085 - }, - { - "year": 2012, - "value": 0.0001151780289828102 - }, - { - "year": 2013, - "value": 0.00024348157377164316 - }, - { - "year": 2014, - "value": 0.0003919996803551076 - }, - { - "year": 2015, - "value": 0.0005322315522932028 - }, - { - "year": 2016, - "value": 0.01476192751505496 - }, - { - "year": 2017, - "value": 0.017007120996922403 - }, - { - "year": 2018, - "value": 0.01587869460326034 - }, - { - "year": 2019, - "value": 0.010431991887807995 - }, - { - "year": 2020, - "value": 0.010431991887807995 - }, - { - "year": 2021, - "value": 0.010431991887807995 - } - ], - "S1S2": [], - "S3": [], - "S1S2S3": [] - } - }, - "projected_targets": null, - "projected_intensities": { - "S1S2": { - "projections": [ - { - "year": 2019, - "value": 1.2010797002418052 - }, - { - "year": 2020, - "value": 1.2010797002418052 - }, - { - "year": 2021, - "value": 1.2010797002418052 - }, - { - "year": 2022, - "value": 1.2010797002418052 - }, - { - "year": 2023, - "value": 1.2010797002418052 - }, - { - "year": 2024, - "value": 1.2010797002418052 - }, - { - "year": 2025, - "value": 1.2010797002418052 - }, - { - "year": 2026, - "value": 1.2010797002418052 - }, - { - "year": 2027, - "value": 1.2010797002418052 - }, - { - "year": 2028, - "value": 1.2010797002418052 - }, - { - "year": 2029, - "value": 1.2010797002418052 - }, - { - "year": 2030, - "value": 1.2010797002418052 - }, - { - "year": 2031, - "value": 1.2010797002418052 - }, - { - "year": 2032, - "value": 1.2010797002418052 - }, - { - "year": 2033, - "value": 1.2010797002418052 - }, - { - "year": 2034, - "value": 1.2010797002418052 - }, - { - "year": 2035, - "value": 1.2010797002418052 - }, - { - "year": 2036, - "value": 1.2010797002418052 - }, - { - "year": 2037, - "value": 1.2010797002418052 - }, - { - "year": 2038, - "value": 1.2010797002418052 - }, - { - "year": 2039, - "value": 1.2010797002418052 - }, - { - "year": 2040, - "value": 1.2010797002418052 - }, - { - "year": 2041, - "value": 1.2010797002418052 - }, - { - "year": 2042, - "value": 1.2010797002418052 - }, - { - "year": 2043, - "value": 1.2010797002418052 - }, - { - "year": 2044, - "value": 1.2010797002418052 - }, - { - "year": 2045, - "value": 1.2010797002418052 - }, - { - "year": 2046, - "value": 1.2010797002418052 - }, - { - "year": 2047, - "value": 1.2010797002418052 - }, - { - "year": 2048, - "value": 1.2010797002418052 - }, - { - "year": 2049, - "value": 1.2010797002418052 - }, - { - "year": 2050, - "value": 1.2010797002418052 - } - ] - }, - "S3": null, - "S1S2S3": null - }, - "country": null, - "ghg_s1s2": null, - "ghg_s3": null, - "industry_level_1": null, - "industry_level_2": null, - "industry_level_3": null, - "industry_level_4": null, - "company_revenue": null, - "company_market_cap": null, - "company_enterprise_value": null, - "company_total_assets": null, - "company_cash_equivalents": null - }, - { - "company_name": "Company AK", - "company_id": "CH0198251305", - "region": "Europe", - "sector": "Electricity Utilities", - "target_probability": 0.4285714285714285, - "historic_data": { - "productions": [ - { - "year": 2009, - "value": null - }, - { - "year": 2010, - "value": 3760992023.3008924 - }, - { - "year": 2011, - "value": 3808944023.3008924 - }, - { - "year": 2012, - "value": 3833568023.3008924 - }, - { - "year": 2013, - "value": 3708452183.3008924 - }, - { - "year": 2014, - "value": 3668988983.3008924 - }, - { - "year": 2015, - "value": 3680795543.3008924 - }, - { - "year": 2016, - "value": 3393083543.3008957 - }, - { - "year": 2017, - "value": 3238392983.3008957 - }, - { - "year": 2018, - "value": 3244393463.3008957 - }, - { - "year": 2019, - "value": 2969511863.3008957 - }, - { - "year": 2020, - "value": 2684119703.3008957 - }, - { - "year": 2021, - "value": 2684119703.3008957 - } - ], - "emissions": { - "S1": [ - { - "year": 2009, - "value": null - }, - { - "year": 2010, - "value": 116400006.472471 - }, - { - "year": 2011, - "value": 123540195.472471 - }, - { - "year": 2012, - "value": 127800006.472471 - }, - { - "year": 2013, - "value": 115550006.472471 - }, - { - "year": 2014, - "value": 115480006.472471 - }, - { - "year": 2015, - "value": 119510006.472471 - }, - { - "year": 2016, - "value": 106730006.472471 - }, - { - "year": 2017, - "value": 105960006.472471 - }, - { - "year": 2018, - "value": 95230006.4724713 - }, - { - "year": 2019, - "value": 69980006.4724713 - }, - { - "year": 2020, - "value": 45260006.4724712 - }, - { - "year": 2021, - "value": 45260006.4724712 - } - ], - "S2": [ - { - "year": 2009, - "value": null - }, - { - "year": 2010, - "value": 245006.472471246 - }, - { - "year": 2011, - "value": 331647.472471246 - }, - { - "year": 2012, - "value": 370006.472471246 - }, - { - "year": 2013, - "value": 786006.472471246 - }, - { - "year": 2014, - "value": 636006.472471246 - }, - { - "year": 2015, - "value": 654006.472471246 - }, - { - "year": 2016, - "value": 1400006.47247125 - }, - { - "year": 2017, - "value": 5000006.47247125 - }, - { - "year": 2018, - "value": 5080006.47247125 - }, - { - "year": 2019, - "value": 5370006.47247125 - }, - { - "year": 2020, - "value": 5000006.47247125 - }, - { - "year": 2021, - "value": 5000006.47247125 - } - ], - "S1S2": [], - "S3": [], - "S1S2S3": [] - }, - "emission_intensities": { - "S1": [ - { - "year": 2009, - "value": null - }, - { - "year": 2010, - "value": 0.401102707620006 - }, - { - "year": 2011, - "value": 0.4203477193491828 - }, - { - "year": 2012, - "value": 0.43204870079677804 - }, - { - "year": 2013, - "value": 0.4038148558653588 - }, - { - "year": 2014, - "value": 0.40791097784566077 - }, - { - "year": 2015, - "value": 0.42079209933357004 - }, - { - "year": 2016, - "value": 0.4076589527582292 - }, - { - "year": 2017, - "value": 0.4240503518147712 - }, - { - "year": 2018, - "value": 0.380404195065648 - }, - { - "year": 2019, - "value": 0.3054174981052529 - }, - { - "year": 2020, - "value": 0.21853335496247459 - }, - { - "year": 2021, - "value": 0.21853335496247459 - } - ], - "S2": [ - { - "year": 2009, - "value": null - }, - { - "year": 2010, - "value": 0.0008442676462899023 - }, - { - "year": 2011, - "value": 0.001128436442471657 - }, - { - "year": 2012, - "value": 0.0012508670392910783 - }, - { - "year": 2013, - "value": 0.0027468721126020315 - }, - { - "year": 2014, - "value": 0.00224657090025156 - }, - { - "year": 2015, - "value": 0.0023027423782485457 - }, - { - "year": 2016, - "value": 0.005347373164168032 - }, - { - "year": 2017, - "value": 0.020009950681518757 - }, - { - "year": 2018, - "value": 0.020292509101606883 - }, - { - "year": 2019, - "value": 0.023436607458394043 - }, - { - "year": 2020, - "value": 0.024142024591353756 - }, - { - "year": 2021, - "value": 0.024142024591353756 - } - ], - "S1S2": [], - "S3": [], - "S1S2S3": [] - } - }, - "projected_targets": null, - "projected_intensities": { - "S1S2": { - "projections": [ - { - "year": 2019, - "value": 0.32885410556364697 - }, - { - "year": 2020, - "value": 0.24267537955382834 - }, - { - "year": 2021, - "value": 0.24267537955382834 - }, - { - "year": 2022, - "value": 0.24267537955382834 - }, - { - "year": 2023, - "value": 0.24267537955382834 - }, - { - "year": 2024, - "value": 0.24267537955382834 - }, - { - "year": 2025, - "value": 0.24267537955382834 - }, - { - "year": 2026, - "value": 0.24267537955382834 - }, - { - "year": 2027, - "value": 0.24267537955382834 - }, - { - "year": 2028, - "value": 0.24267537955382834 - }, - { - "year": 2029, - "value": 0.24267537955382834 - }, - { - "year": 2030, - "value": 0.24267537955382834 - }, - { - "year": 2031, - "value": 0.24267537955382834 - }, - { - "year": 2032, - "value": 0.24267537955382834 - }, - { - "year": 2033, - "value": 0.24267537955382834 - }, - { - "year": 2034, - "value": 0.24267537955382834 - }, - { - "year": 2035, - "value": 0.24267537955382834 - }, - { - "year": 2036, - "value": 0.24267537955382834 - }, - { - "year": 2037, - "value": 0.24267537955382834 - }, - { - "year": 2038, - "value": 0.24267537955382834 - }, - { - "year": 2039, - "value": 0.24267537955382834 - }, - { - "year": 2040, - "value": 0.24267537955382834 - }, - { - "year": 2041, - "value": 0.24267537955382834 - }, - { - "year": 2042, - "value": 0.24267537955382834 - }, - { - "year": 2043, - "value": 0.24267537955382834 - }, - { - "year": 2044, - "value": 0.24267537955382834 - }, - { - "year": 2045, - "value": 0.24267537955382834 - }, - { - "year": 2046, - "value": 0.24267537955382834 - }, - { - "year": 2047, - "value": 0.24267537955382834 - }, - { - "year": 2048, - "value": 0.24267537955382834 - }, - { - "year": 2049, - "value": 0.24267537955382834 - }, - { - "year": 2050, - "value": 0.24267537955382834 - } - ] - }, - "S3": null, - "S1S2S3": null - }, - "country": null, - "ghg_s1s2": null, - "ghg_s3": null, - "industry_level_1": null, - "industry_level_2": null, - "industry_level_3": null, - "industry_level_4": null, - "company_revenue": null, - "company_market_cap": null, - "company_enterprise_value": null, - "company_total_assets": null, - "company_cash_equivalents": null - }, - { - "company_name": "Company AL", - "company_id": "US1266501006", - "region": "Europe", - "sector": "Electricity Utilities", - "target_probability": 0.4285714285714285, - "historic_data": { - "productions": [ - { - "year": 2009, - "value": null - }, - { - "year": 2010, - "value": 4341600001.354788 - }, - { - "year": 2011, - "value": 6026400001.354788 - }, - { - "year": 2012, - "value": 6039360001.354788 - }, - { - "year": 2013, - "value": 6207840001.354788 - }, - { - "year": 2014, - "value": 6091200001.354788 - }, - { - "year": 2015, - "value": 6363360001.354788 - }, - { - "year": 2016, - "value": 3563902801.354802 - }, - { - "year": 2017, - "value": 764445601.3548025 - }, - { - "year": 2018, - "value": 739614241.3548025 - }, - { - "year": 2019, - "value": 797765761.3548025 - }, - { - "year": 2020, - "value": 718528321.3548025 - }, - { - "year": 2021, - "value": 718528321.3548025 - } - ], - "emissions": { - "S1": [ - { - "year": 2009, - "value": null - }, - { - "year": 2010, - "value": 109324454.376334 - }, - { - "year": 2011, - "value": 156899254.376334 - }, - { - "year": 2012, - "value": 154230874.376334 - }, - { - "year": 2013, - "value": 141984778.376334 - }, - { - "year": 2014, - "value": 131154736.376334 - }, - { - "year": 2015, - "value": 133757296.376334 - }, - { - "year": 2016, - "value": 120150105.376334 - }, - { - "year": 2017, - "value": 89756230.3763341 - }, - { - "year": 2018, - "value": 57205670.3763341 - }, - { - "year": 2019, - "value": 46188978.3763341 - }, - { - "year": 2020, - "value": 38589016.3763341 - }, - { - "year": 2021, - "value": 38589016.3763341 - } - ], - "S2": [ - { - "year": 2009, - "value": null - }, - { - "year": 2010, - "value": 3250751.37633413 - }, - { - "year": 2011, - "value": 3357343.37633413 - }, - { - "year": 2012, - "value": 3712790.37633413 - }, - { - "year": 2013, - "value": 3748376.12633413 - }, - { - "year": 2014, - "value": 3783961.87633413 - }, - { - "year": 2015, - "value": 3819547.62633413 - }, - { - "year": 2016, - "value": 3855133.37633413 - }, - { - "year": 2017, - "value": 3576861.37633413 - }, - { - "year": 2018, - "value": 2912586.37633413 - }, - { - "year": 2019, - "value": 2534464.37633413 - }, - { - "year": 2020, - "value": 2330625.37633413 - }, - { - "year": 2021, - "value": 2330625.37633413 - } - ], - "S1S2": [], - "S3": [], - "S1S2S3": [] - }, - "emission_intensities": { - "S1": [ - { - "year": 2009, - "value": null - }, - { - "year": 2010, - "value": 0.3263416547528934 - }, - { - "year": 2011, - "value": 0.33741775127109996 - }, - { - "year": 2012, - "value": 0.3309675415058707 - }, - { - "year": 2013, - "value": 0.2964191614725413 - }, - { - "year": 2014, - "value": 0.2790526305258781 - }, - { - "year": 2015, - "value": 0.27241811883473793 - }, - { - "year": 2016, - "value": 0.4369213899675792 - }, - { - "year": 2017, - "value": 1.521678905098956 - }, - { - "year": 2018, - "value": 1.0023948250634593 - }, - { - "year": 2019, - "value": 0.750357045582786 - }, - { - "year": 2020, - "value": 0.6960249684999396 - }, - { - "year": 2021, - "value": 0.6960249684999396 - } - ], - "S2": [ - { - "year": 2009, - "value": null - }, - { - "year": 2010, - "value": 0.009703735448715611 - }, - { - "year": 2011, - "value": 0.007220093280815844 - }, - { - "year": 2012, - "value": 0.007967361320818128 - }, - { - "year": 2013, - "value": 0.007825419886254877 - }, - { - "year": 2014, - "value": 0.008050982713813836 - }, - { - "year": 2015, - "value": 0.0077791194002462755 - }, - { - "year": 2016, - "value": 0.014019049155408301 - }, - { - "year": 2017, - "value": 0.06064018597940113 - }, - { - "year": 2018, - "value": 0.05103622581434676 - }, - { - "year": 2019, - "value": 0.04117331165166648 - }, - { - "year": 2020, - "value": 0.04203718069224924 - }, - { - "year": 2021, - "value": 0.04203718069224924 - } - ], - "S1S2": [], - "S3": [], - "S1S2S3": [] - } - }, - "projected_targets": null, - "projected_intensities": { - "S1S2": { - "projections": [ - { - "year": 2019, - "value": 0.7915303572344525 - }, - { - "year": 2020, - "value": 0.7380621491921888 - }, - { - "year": 2021, - "value": 0.7380621491921888 - }, - { - "year": 2022, - "value": 0.7380621491921888 - }, - { - "year": 2023, - "value": 0.7380621491921888 - }, - { - "year": 2024, - "value": 0.7380621491921888 - }, - { - "year": 2025, - "value": 0.7380621491921888 - }, - { - "year": 2026, - "value": 0.7380621491921888 - }, - { - "year": 2027, - "value": 0.7380621491921888 - }, - { - "year": 2028, - "value": 0.7380621491921888 - }, - { - "year": 2029, - "value": 0.7380621491921888 - }, - { - "year": 2030, - "value": 0.7380621491921888 - }, - { - "year": 2031, - "value": 0.7380621491921888 - }, - { - "year": 2032, - "value": 0.7380621491921888 - }, - { - "year": 2033, - "value": 0.7380621491921888 - }, - { - "year": 2034, - "value": 0.7380621491921888 - }, - { - "year": 2035, - "value": 0.7380621491921888 - }, - { - "year": 2036, - "value": 0.7380621491921888 - }, - { - "year": 2037, - "value": 0.7380621491921888 - }, - { - "year": 2038, - "value": 0.7380621491921888 - }, - { - "year": 2039, - "value": 0.7380621491921888 - }, - { - "year": 2040, - "value": 0.7380621491921888 - }, - { - "year": 2041, - "value": 0.7380621491921888 - }, - { - "year": 2042, - "value": 0.7380621491921888 - }, - { - "year": 2043, - "value": 0.7380621491921888 - }, - { - "year": 2044, - "value": 0.7380621491921888 - }, - { - "year": 2045, - "value": 0.7380621491921888 - }, - { - "year": 2046, - "value": 0.7380621491921888 - }, - { - "year": 2047, - "value": 0.7380621491921888 - }, - { - "year": 2048, - "value": 0.7380621491921888 - }, - { - "year": 2049, - "value": 0.7380621491921888 - }, - { - "year": 2050, - "value": 0.7380621491921888 - } - ] - }, - "S3": null, - "S1S2S3": null - }, - "country": null, - "ghg_s1s2": null, - "ghg_s3": null, - "industry_level_1": null, - "industry_level_2": null, - "industry_level_3": null, - "industry_level_4": null, - "company_revenue": null, - "company_market_cap": null, - "company_enterprise_value": null, - "company_total_assets": null, - "company_cash_equivalents": null - }, - { - "company_name": "Company AM", - "company_id": "FR0000120644", - "region": "Europe", - "sector": "Electricity Utilities", - "target_probability": 0.4285714285714285, - "historic_data": { - "productions": [ - { - "year": 2009, - "value": null - }, - { - "year": 2010, - "value": 1990487529.3093767 - }, - { - "year": 2011, - "value": 1881092169.3093767 - }, - { - "year": 2012, - "value": 1746463689.3093767 - }, - { - "year": 2013, - "value": 1768197609.3093767 - }, - { - "year": 2014, - "value": 1800040329.3093767 - }, - { - "year": 2015, - "value": 1741487049.3093767 - }, - { - "year": 2016, - "value": 1846359369.3093767 - }, - { - "year": 2017, - "value": 1782635049.3093767 - }, - { - "year": 2018, - "value": 1492136649.3093767 - }, - { - "year": 2019, - "value": 1480680009.3093767 - }, - { - "year": 2020, - "value": 1600080489.3093767 - }, - { - "year": 2021, - "value": 1600080489.3093767 - } - ], - "emissions": { - "S1": [ - { - "year": 2009, - "value": null - }, - { - "year": 2010, - "value": 39499002.5859383 - }, - { - "year": 2011, - "value": 36193002.5859383 - }, - { - "year": 2012, - "value": 35461094.5859383 - }, - { - "year": 2013, - "value": 31838172.5859383 - }, - { - "year": 2014, - "value": 30202558.5859383 - }, - { - "year": 2015, - "value": 31817606.5859383 - }, - { - "year": 2016, - "value": 26625135.5859383 - }, - { - "year": 2017, - "value": 15129771.5859383 - }, - { - "year": 2018, - "value": 13457443.5859383 - }, - { - "year": 2019, - "value": 12966980.5859383 - }, - { - "year": 2020, - "value": 13136322.5859383 - }, - { - "year": 2021, - "value": 13136322.5859383 - } - ], - "S2": [ - { - "year": 2009, - "value": null - }, - { - "year": 2010, - "value": 6236002.58593829 - }, - { - "year": 2011, - "value": 5189002.58593829 - }, - { - "year": 2012, - "value": 7189303.58593829 - }, - { - "year": 2013, - "value": 4181124.58593829 - }, - { - "year": 2014, - "value": 1547095.58593829 - }, - { - "year": 2015, - "value": 970947.585938292 - }, - { - "year": 2016, - "value": 4503672.58593829 - }, - { - "year": 2017, - "value": 5010565.58593829 - }, - { - "year": 2018, - "value": 2543866.58593829 - }, - { - "year": 2019, - "value": 2081746.58593829 - }, - { - "year": 2020, - "value": 2001731.58593829 - }, - { - "year": 2021, - "value": 2001731.58593829 - } - ], - "S1S2": [], - "S3": [], - "S1S2S3": [] - }, - "emission_intensities": { - "S1": [ - { - "year": 2009, - "value": null - }, - { - "year": 2010, - "value": 0.2571767298091901 - }, - { - "year": 2011, - "value": 0.2493558376174469 - }, - { - "year": 2012, - "value": 0.26314648775520477 - }, - { - "year": 2013, - "value": 0.2333578071485585 - }, - { - "year": 2014, - "value": 0.21745354973459868 - }, - { - "year": 2015, - "value": 0.23678394939387504 - }, - { - "year": 2016, - "value": 0.18688764653807832 - }, - { - "year": 2017, - "value": 0.10999550347095743 - }, - { - "year": 2018, - "value": 0.11688505134867072 - }, - { - "year": 2019, - "value": 0.11349654708456793 - }, - { - "year": 2020, - "value": 0.1063988604643518 - }, - { - "year": 2021, - "value": 0.1063988604643518 - } - ], - "S2": [ - { - "year": 2009, - "value": null - }, - { - "year": 2010, - "value": 0.0406024113809952 - }, - { - "year": 2011, - "value": 0.03575022777243828 - }, - { - "year": 2012, - "value": 0.05334973469193888 - }, - { - "year": 2013, - "value": 0.030645542301646213 - }, - { - "year": 2014, - "value": 0.011138838651161208 - }, - { - "year": 2015, - "value": 0.007225710187595436 - }, - { - "year": 2016, - "value": 0.03161226231683834 - }, - { - "year": 2017, - "value": 0.036427495363629124 - }, - { - "year": 2018, - "value": 0.02209483358579754 - }, - { - "year": 2019, - "value": 0.018220976567613723 - }, - { - "year": 2020, - "value": 0.01621321022729142 - }, - { - "year": 2021, - "value": 0.01621321022729142 - } - ], - "S1S2": [], - "S3": [], - "S1S2S3": [] - } - }, - "projected_targets": null, - "projected_intensities": { - "S1S2": { - "projections": [ - { - "year": 2019, - "value": 0.13171752365218165 - }, - { - "year": 2020, - "value": 0.12261207069164323 - }, - { - "year": 2021, - "value": 0.12261207069164323 - }, - { - "year": 2022, - "value": 0.11620500570269289 - }, - { - "year": 2023, - "value": 0.11013274039162965 - }, - { - "year": 2024, - "value": 0.10437777987983021 - }, - { - "year": 2025, - "value": 0.0989235434794494 - }, - { - "year": 2026, - "value": 0.09375431692259552 - }, - { - "year": 2027, - "value": 0.08885520708675897 - }, - { - "year": 2028, - "value": 0.0842120990860529 - }, - { - "year": 2029, - "value": 0.07981161560464115 - }, - { - "year": 2030, - "value": 0.07564107835518817 - }, - { - "year": 2031, - "value": 0.07168847155128884 - }, - { - "year": 2032, - "value": 0.06794240728863765 - }, - { - "year": 2033, - "value": 0.064392092735197 - }, - { - "year": 2034, - "value": 0.06102729903583536 - }, - { - "year": 2035, - "value": 0.05783833184184642 - }, - { - "year": 2036, - "value": 0.05481600338044117 - }, - { - "year": 2037, - "value": 0.05195160598374223 - }, - { - "year": 2038, - "value": 0.04923688700101434 - }, - { - "year": 2039, - "value": 0.0466640250218503 - }, - { - "year": 2040, - "value": 0.04422560734180881 - }, - { - "year": 2041, - "value": 0.041914608605580134 - }, - { - "year": 2042, - "value": 0.039724370566148075 - }, - { - "year": 2043, - "value": 0.037648582901632234 - }, - { - "year": 2044, - "value": 0.03568126503454166 - }, - { - "year": 2045, - "value": 0.033816748901059124 - }, - { - "year": 2046, - "value": 0.03204966262071244 - }, - { - "year": 2047, - "value": 0.030374915019383227 - }, - { - "year": 2048, - "value": 0.028787680961062274 - }, - { - "year": 2049, - "value": 0.027283387446090542 - }, - { - "year": 2050, - "value": 0.025857700435833336 - } - ] - }, - "S3": null, - "S1S2S3": null - }, - "country": null, - "ghg_s1s2": null, - "ghg_s3": null, - "industry_level_1": null, - "industry_level_2": null, - "industry_level_3": null, - "industry_level_4": null, - "company_revenue": null, - "company_market_cap": null, - "company_enterprise_value": null, - "company_total_assets": null, - "company_cash_equivalents": null - }, - { - "company_name": "Company AN", - "company_id": "US24703L1035", - "region": "Asia", - "sector": "Electricity Utilities", - "target_probability": 0.4285714285714285, - "historic_data": { - "productions": [ - { - "year": 2009, - "value": 5271868803.094344 - }, - { - "year": 2010, - "value": 5642576643.094344 - }, - { - "year": 2011, - "value": 5746580643.094344 - }, - { - "year": 2012, - "value": 5808127683.094344 - }, - { - "year": 2013, - "value": 5823226083.094344 - }, - { - "year": 2014, - "value": 5740165443.094344 - }, - { - "year": 2015, - "value": 5610643203.094344 - }, - { - "year": 2016, - "value": 5654577603.094344 - }, - { - "year": 2017, - "value": 5527232643.094344 - }, - { - "year": 2018, - "value": 5421517923.094344 - }, - { - "year": 2019, - "value": 5301547203.094344 - }, - { - "year": 2020, - "value": 5301547203.094344 - }, - { - "year": 2021, - "value": 5301547203.094344 - } - ], - "emissions": { - "S1": [ - { - "year": 2009, - "value": null - }, - { - "year": 2010, - "value": null - }, - { - "year": 2011, - "value": null - }, - { - "year": 2012, - "value": 1174220.85954061 - }, - { - "year": 2013, - "value": 1310000.85954061 - }, - { - "year": 2014, - "value": 1280000.85954061 - }, - { - "year": 2015, - "value": 1150000.85954061 - }, - { - "year": 2016, - "value": 1230000.85954061 - }, - { - "year": 2017, - "value": 1290000.85954061 - }, - { - "year": 2018, - "value": 1170000.85954061 - }, - { - "year": 2019, - "value": 910000.859540609 - }, - { - "year": 2020, - "value": 910000.859540609 - }, - { - "year": 2021, - "value": 910000.859540609 - } - ], - "S2": [ - { - "year": 2009, - "value": null - }, - { - "year": 2010, - "value": null - }, - { - "year": 2011, - "value": null - }, - { - "year": 2012, - "value": 132861.859540609 - }, - { - "year": 2013, - "value": 120000.859540609 - }, - { - "year": 2014, - "value": 140000.859540609 - }, - { - "year": 2015, - "value": 160000.859540609 - }, - { - "year": 2016, - "value": 170000.859540609 - }, - { - "year": 2017, - "value": 180000.859540609 - }, - { - "year": 2018, - "value": 190000.859540609 - }, - { - "year": 2019, - "value": 190000.859540609 - }, - { - "year": 2020, - "value": 190000.859540609 - }, - { - "year": 2021, - "value": 190000.859540609 - } - ], - "S1S2": [], - "S3": [], - "S1S2S3": [] - }, - "emission_intensities": { - "S1": [ - { - "year": 2009, - "value": null - }, - { - "year": 2010, - "value": null - }, - { - "year": 2011, - "value": null - }, - { - "year": 2012, - "value": 0.0026201046481710228 - }, - { - "year": 2013, - "value": 0.0029154992262681854 - }, - { - "year": 2014, - "value": 0.002889953487247187 - }, - { - "year": 2015, - "value": 0.0026563819156111223 - }, - { - "year": 2016, - "value": 0.0028190984824265257 - }, - { - "year": 2017, - "value": 0.003024734477303765 - }, - { - "year": 2018, - "value": 0.0027968571449436134 - }, - { - "year": 2019, - "value": 0.002224560243991176 - }, - { - "year": 2020, - "value": 0.002224560243991176 - }, - { - "year": 2021, - "value": 0.002224560243991176 - } - ], - "S2": [ - { - "year": 2009, - "value": null - }, - { - "year": 2010, - "value": null - }, - { - "year": 2011, - "value": null - }, - { - "year": 2012, - "value": 0.0002964620947742204 - }, - { - "year": 2013, - "value": 0.000267070369148347 - }, - { - "year": 2014, - "value": 0.00031609039105817065 - }, - { - "year": 2015, - "value": 0.000369585280080306 - }, - { - "year": 2016, - "value": 0.0003896331953142924 - }, - { - "year": 2017, - "value": 0.00042205770776825637 - }, - { - "year": 2018, - "value": 0.000454192197568326 - }, - { - "year": 2019, - "value": 0.0004644702848649636 - }, - { - "year": 2020, - "value": 0.0004644702848649636 - }, - { - "year": 2021, - "value": 0.0004644702848649636 - } - ], - "S1S2": [], - "S3": [], - "S1S2S3": [] - } - }, - "projected_targets": null, - "projected_intensities": { - "S1S2": { - "projections": [ - { - "year": 2019, - "value": 0.0026890305288561397 - }, - { - "year": 2020, - "value": 0.0026890305288561397 - }, - { - "year": 2021, - "value": 0.0026890305288561397 - }, - { - "year": 2022, - "value": 0.0026890305288561397 - }, - { - "year": 2023, - "value": 0.0026890305288561397 - }, - { - "year": 2024, - "value": 0.0026890305288561397 - }, - { - "year": 2025, - "value": 0.0026890305288561397 - }, - { - "year": 2026, - "value": 0.0026890305288561397 - }, - { - "year": 2027, - "value": 0.0026890305288561397 - }, - { - "year": 2028, - "value": 0.0026890305288561397 - }, - { - "year": 2029, - "value": 0.0026890305288561397 - }, - { - "year": 2030, - "value": 0.0026890305288561397 - }, - { - "year": 2031, - "value": 0.0026890305288561397 - }, - { - "year": 2032, - "value": 0.0026890305288561397 - }, - { - "year": 2033, - "value": 0.0026890305288561397 - }, - { - "year": 2034, - "value": 0.0026890305288561397 - }, - { - "year": 2035, - "value": 0.0026890305288561397 - }, - { - "year": 2036, - "value": 0.0026890305288561397 - }, - { - "year": 2037, - "value": 0.0026890305288561397 - }, - { - "year": 2038, - "value": 0.0026890305288561397 - }, - { - "year": 2039, - "value": 0.0026890305288561397 - }, - { - "year": 2040, - "value": 0.0026890305288561397 - }, - { - "year": 2041, - "value": 0.0026890305288561397 - }, - { - "year": 2042, - "value": 0.0026890305288561397 - }, - { - "year": 2043, - "value": 0.0026890305288561397 - }, - { - "year": 2044, - "value": 0.0026890305288561397 - }, - { - "year": 2045, - "value": 0.0026890305288561397 - }, - { - "year": 2046, - "value": 0.0026890305288561397 - }, - { - "year": 2047, - "value": 0.0026890305288561397 - }, - { - "year": 2048, - "value": 0.0026890305288561397 - }, - { - "year": 2049, - "value": 0.0026890305288561397 - }, - { - "year": 2050, - "value": 0.0026890305288561397 - } - ] - }, - "S3": null, - "S1S2S3": null - }, - "country": null, - "ghg_s1s2": null, - "ghg_s3": null, - "industry_level_1": null, - "industry_level_2": null, - "industry_level_3": null, - "industry_level_4": null, - "company_revenue": null, - "company_market_cap": null, - "company_enterprise_value": null, - "company_total_assets": null, - "company_cash_equivalents": null - }, - { - "company_name": "Company AO", - "company_id": "TW0002308004", - "region": "Europe", - "sector": "Electricity Utilities", - "target_probability": 0.4285714285714285, - "historic_data": { - "productions": [ - { - "year": 2009, - "value": null - }, - { - "year": 2010, - "value": null - }, - { - "year": 2011, - "value": null - }, - { - "year": 2012, - "value": 76114085.42779164 - }, - { - "year": 2013, - "value": 76114085.42779164 - }, - { - "year": 2014, - "value": 76114085.42779164 - }, - { - "year": 2015, - "value": 76114085.42779164 - }, - { - "year": 2016, - "value": 76114085.42779164 - }, - { - "year": 2017, - "value": 76114085.42779164 - }, - { - "year": 2018, - "value": 76114085.42779164 - }, - { - "year": 2019, - "value": 76114085.42779164 - }, - { - "year": 2020, - "value": 76114085.42779164 - }, - { - "year": 2021, - "value": 76114085.42779164 - } - ], - "emissions": { - "S1": [ - { - "year": 2009, - "value": 11074001.5077199 - }, - { - "year": 2010, - "value": 8500001.50771989 - }, - { - "year": 2011, - "value": 9328837.50771989 - }, - { - "year": 2012, - "value": 8328346.50771989 - }, - { - "year": 2013, - "value": 7914001.50771989 - }, - { - "year": 2014, - "value": 7250001.50771989 - }, - { - "year": 2015, - "value": 7020001.50771989 - }, - { - "year": 2016, - "value": 7038001.50771989 - }, - { - "year": 2017, - "value": 5800001.50771989 - }, - { - "year": 2018, - "value": 4000001.50771989 - }, - { - "year": 2019, - "value": 4500001.50771989 - }, - { - "year": 2020, - "value": 4500001.50771989 - }, - { - "year": 2021, - "value": 4500001.50771989 - } - ], - "S2": [ - { - "year": 2009, - "value": 266001.507719888 - }, - { - "year": 2010, - "value": 350001.507719888 - }, - { - "year": 2011, - "value": 329353.507719888 - }, - { - "year": 2012, - "value": 319181.507719888 - }, - { - "year": 2013, - "value": 250001.507719888 - }, - { - "year": 2014, - "value": 220001.507719888 - }, - { - "year": 2015, - "value": 230001.507719888 - }, - { - "year": 2016, - "value": 247001.507719888 - }, - { - "year": 2017, - "value": 3400001.50771989 - }, - { - "year": 2018, - "value": 2900001.50771989 - }, - { - "year": 2019, - "value": 2500001.50771989 - }, - { - "year": 2020, - "value": 2500001.50771989 - }, - { - "year": 2021, - "value": 2500001.50771989 - } - ], - "S1S2": [], - "S3": [], - "S1S2S3": [] - }, - "emission_intensities": { - "S1": [ - { - "year": 2009, - "value": null - }, - { - "year": 2010, - "value": null - }, - { - "year": 2011, - "value": null - }, - { - "year": 2012, - "value": 1.418073542280774 - }, - { - "year": 2013, - "value": 1.3475227214987966 - }, - { - "year": 2014, - "value": 1.2344629645348417 - }, - { - "year": 2015, - "value": 1.195300699321421 - }, - { - "year": 2016, - "value": 1.1983655722511666 - }, - { - "year": 2017, - "value": 0.9875704229719812 - }, - { - "year": 2018, - "value": 0.6810831299973996 - }, - { - "year": 2019, - "value": 0.7662184891570044 - }, - { - "year": 2020, - "value": 0.7662184891570044 - }, - { - "year": 2021, - "value": 0.7662184891570044 - } - ], - "S2": [ - { - "year": 2009, - "value": null - }, - { - "year": 2010, - "value": null - }, - { - "year": 2011, - "value": null - }, - { - "year": 2012, - "value": 0.05434726459367484 - }, - { - "year": 2013, - "value": 0.04256793630035172 - }, - { - "year": 2014, - "value": 0.037459814750775366 - }, - { - "year": 2015, - "value": 0.03916252193396724 - }, - { - "year": 2016, - "value": 0.04205712414539412 - }, - { - "year": 2017, - "value": 0.5789206990058725 - }, - { - "year": 2018, - "value": 0.493785339846264 - }, - { - "year": 2019, - "value": 0.4256770525185816 - }, - { - "year": 2020, - "value": 0.4256770525185816 - }, - { - "year": 2021, - "value": 0.4256770525185816 - } - ], - "S1S2": [], - "S3": [], - "S1S2S3": [] - } - }, - "projected_targets": null, - "projected_intensities": { - "S1S2": { - "projections": [ - { - "year": 2019, - "value": 1.191895541675586 - }, - { - "year": 2020, - "value": 1.191895541675586 - }, - { - "year": 2021, - "value": 1.191895541675586 - }, - { - "year": 2022, - "value": 1.191895541675586 - }, - { - "year": 2023, - "value": 1.191895541675586 - }, - { - "year": 2024, - "value": 1.191895541675586 - }, - { - "year": 2025, - "value": 1.191895541675586 - }, - { - "year": 2026, - "value": 1.191895541675586 - }, - { - "year": 2027, - "value": 1.191895541675586 - }, - { - "year": 2028, - "value": 1.191895541675586 - }, - { - "year": 2029, - "value": 1.191895541675586 - }, - { - "year": 2030, - "value": 1.191895541675586 - }, - { - "year": 2031, - "value": 1.191895541675586 - }, - { - "year": 2032, - "value": 1.191895541675586 - }, - { - "year": 2033, - "value": 1.191895541675586 - }, - { - "year": 2034, - "value": 1.191895541675586 - }, - { - "year": 2035, - "value": 1.191895541675586 - }, - { - "year": 2036, - "value": 1.191895541675586 - }, - { - "year": 2037, - "value": 1.191895541675586 - }, - { - "year": 2038, - "value": 1.191895541675586 - }, - { - "year": 2039, - "value": 1.191895541675586 - }, - { - "year": 2040, - "value": 1.191895541675586 - }, - { - "year": 2041, - "value": 1.191895541675586 - }, - { - "year": 2042, - "value": 1.191895541675586 - }, - { - "year": 2043, - "value": 1.191895541675586 - }, - { - "year": 2044, - "value": 1.191895541675586 - }, - { - "year": 2045, - "value": 1.191895541675586 - }, - { - "year": 2046, - "value": 1.191895541675586 - }, - { - "year": 2047, - "value": 1.191895541675586 - }, - { - "year": 2048, - "value": 1.191895541675586 - }, - { - "year": 2049, - "value": 1.191895541675586 - }, - { - "year": 2050, - "value": 1.191895541675586 - } - ] - }, - "S3": null, - "S1S2S3": null - }, - "country": null, - "ghg_s1s2": null, - "ghg_s3": null, - "industry_level_1": null, - "industry_level_2": null, - "industry_level_3": null, - "industry_level_4": null, - "company_revenue": null, - "company_market_cap": null, - "company_enterprise_value": null, - "company_total_assets": null, - "company_cash_equivalents": null - }, - { - "company_name": "Company AP", - "company_id": "FR0000120321", - "region": "Asia", - "sector": "Electricity Utilities", - "target_probability": 0.4285714285714285, - "historic_data": { - "productions": [ - { - "year": 2009, - "value": null - }, - { - "year": 2010, - "value": 2836166403.246948 - }, - { - "year": 2011, - "value": 2858198403.246948 - }, - { - "year": 2012, - "value": 2878027203.246948 - }, - { - "year": 2013, - "value": 3007082883.246948 - }, - { - "year": 2014, - "value": 3023360643.246948 - }, - { - "year": 2015, - "value": 3126729603.246948 - }, - { - "year": 2016, - "value": 3136060803.246948 - }, - { - "year": 2017, - "value": 3244017603.246948 - }, - { - "year": 2018, - "value": 3444768003.246948 - }, - { - "year": 2019, - "value": 3556872003.246948 - }, - { - "year": 2020, - "value": 3364675203.246948 - }, - { - "year": 2021, - "value": 3364675203.246948 - } - ], - "emissions": { - "S1": [ - { - "year": 2009, - "value": null - }, - { - "year": 2010, - "value": 185584163.90193 - }, - { - "year": 2011, - "value": 188513981.90193 - }, - { - "year": 2012, - "value": 189986958.90193 - }, - { - "year": 2013, - "value": 200994691.90193 - }, - { - "year": 2014, - "value": 201036494.90193 - }, - { - "year": 2015, - "value": 213050961.90193 - }, - { - "year": 2016, - "value": 231671486.101929 - }, - { - "year": 2017, - "value": 221222495.90193 - }, - { - "year": 2018, - "value": 231986764.90193 - }, - { - "year": 2019, - "value": 240369173.90193 - }, - { - "year": 2020, - "value": 226132940.90193 - }, - { - "year": 2021, - "value": 226132940.90193 - } - ], - "S2": [ - { - "year": 2009, - "value": null - }, - { - "year": 2010, - "value": null - }, - { - "year": 2011, - "value": null - }, - { - "year": 2012, - "value": 0.901929562977962 - }, - { - "year": 2013, - "value": 0.901929562977962 - }, - { - "year": 2014, - "value": 0.901929562977962 - }, - { - "year": 2015, - "value": 6235.05442956298 - }, - { - "year": 2016, - "value": 12469.206929563 - }, - { - "year": 2017, - "value": 18703.359429563 - }, - { - "year": 2018, - "value": 24937.511929563 - }, - { - "year": 2019, - "value": 23268.401929563 - }, - { - "year": 2020, - "value": 15845.901929563 - }, - { - "year": 2021, - "value": 15845.901929563 - } - ], - "S1S2": [], - "S3": [], - "S1S2S3": [] - }, - "emission_intensities": { - "S1": [ - { - "year": 2009, - "value": null - }, - { - "year": 2010, - "value": 0.848035842119658 - }, - { - "year": 2011, - "value": 0.8547836296716036 - }, - { - "year": 2012, - "value": 0.8555273503291261 - }, - { - "year": 2013, - "value": 0.8662518820353672 - }, - { - "year": 2014, - "value": 0.8617671794294748 - }, - { - "year": 2015, - "value": 0.8830761903369287 - }, - { - "year": 2016, - "value": 0.95739931342287 - }, - { - "year": 2017, - "value": 0.8837940780652285 - }, - { - "year": 2018, - "value": 0.8727869250687168 - }, - { - "year": 2019, - "value": 0.8758213652122596 - }, - { - "year": 2020, - "value": 0.8710151016243313 - }, - { - "year": 2021, - "value": 0.8710151016243313 - } - ], - "S2": [ - { - "year": 2009, - "value": null - }, - { - "year": 2010, - "value": null - }, - { - "year": 2011, - "value": null - }, - { - "year": 2012, - "value": 4.061465132437621e-09 - }, - { - "year": 2013, - "value": 3.887158282638696e-09 - }, - { - "year": 2014, - "value": 3.866229840063312e-09 - }, - { - "year": 2015, - "value": 2.5843713931394353e-05 - }, - { - "year": 2016, - "value": 5.15299070859282e-05 - }, - { - "year": 2017, - "value": 7.472078387137044e-05 - }, - { - "year": 2018, - "value": 9.382058655401627e-05 - }, - { - "year": 2019, - "value": 8.478193444460569e-05 - }, - { - "year": 2020, - "value": 6.103498156641072e-05 - }, - { - "year": 2021, - "value": 6.103498156641072e-05 - } - ], - "S1S2": [], - "S3": [], - "S1S2S3": [] - } - }, - "projected_targets": null, - "projected_intensities": { - "S1S2": { - "projections": [ - { - "year": 2019, - "value": 0.8759061471467042 - }, - { - "year": 2020, - "value": 0.8710761366058977 - }, - { - "year": 2021, - "value": 0.8710761366058977 - }, - { - "year": 2022, - "value": 0.8710761366058977 - }, - { - "year": 2023, - "value": 0.8710761366058977 - }, - { - "year": 2024, - "value": 0.8710761366058977 - }, - { - "year": 2025, - "value": 0.8710761366058977 - }, - { - "year": 2026, - "value": 0.8710761366058977 - }, - { - "year": 2027, - "value": 0.8710761366058977 - }, - { - "year": 2028, - "value": 0.8710761366058977 - }, - { - "year": 2029, - "value": 0.8710761366058977 - }, - { - "year": 2030, - "value": 0.8710761366058977 - }, - { - "year": 2031, - "value": 0.8710761366058977 - }, - { - "year": 2032, - "value": 0.8710761366058977 - }, - { - "year": 2033, - "value": 0.8710761366058977 - }, - { - "year": 2034, - "value": 0.8710761366058977 - }, - { - "year": 2035, - "value": 0.8710761366058977 - }, - { - "year": 2036, - "value": 0.8710761366058977 - }, - { - "year": 2037, - "value": 0.8710761366058977 - }, - { - "year": 2038, - "value": 0.8710761366058977 - }, - { - "year": 2039, - "value": 0.8710761366058977 - }, - { - "year": 2040, - "value": 0.8710761366058977 - }, - { - "year": 2041, - "value": 0.8710761366058977 - }, - { - "year": 2042, - "value": 0.8710761366058977 - }, - { - "year": 2043, - "value": 0.8710761366058977 - }, - { - "year": 2044, - "value": 0.8710761366058977 - }, - { - "year": 2045, - "value": 0.8710761366058977 - }, - { - "year": 2046, - "value": 0.8710761366058977 - }, - { - "year": 2047, - "value": 0.8710761366058977 - }, - { - "year": 2048, - "value": 0.8710761366058977 - }, - { - "year": 2049, - "value": 0.8710761366058977 - }, - { - "year": 2050, - "value": 0.8710761366058977 - } - ] - }, - "S3": null, - "S1S2S3": null - }, - "country": null, - "ghg_s1s2": null, - "ghg_s3": null, - "industry_level_1": null, - "industry_level_2": null, - "industry_level_3": null, - "industry_level_4": null, - "company_revenue": null, - "company_market_cap": null, - "company_enterprise_value": null, - "company_total_assets": null, - "company_cash_equivalents": null - }, - { - "company_name": "Company AQ", - "company_id": "CH0038863350", - "region": "Asia", - "sector": "Electricity Utilities", - "target_probability": 0.4285714285714285, - "historic_data": { - "productions": [ - { - "year": 2009, - "value": null - }, - { - "year": 2010, - "value": 125595364.15776384 - }, - { - "year": 2011, - "value": 127565284.15776384 - }, - { - "year": 2012, - "value": 138062884.15776384 - }, - { - "year": 2013, - "value": 203459044.15776384 - }, - { - "year": 2014, - "value": 222847204.15776384 - }, - { - "year": 2015, - "value": 258448324.15776387 - }, - { - "year": 2016, - "value": 260094244.15776387 - }, - { - "year": 2017, - "value": 263023204.15776387 - }, - { - "year": 2018, - "value": 279689764.1577639 - }, - { - "year": 2019, - "value": 262841764.15776387 - }, - { - "year": 2020, - "value": 236895844.15776384 - }, - { - "year": 2021, - "value": 236895844.15776384 - } - ], - "emissions": { - "S1": [ - { - "year": 2009, - "value": null - }, - { - "year": 2010, - "value": 1968704.15493443 - }, - { - "year": 2011, - "value": 2832949.15493443 - }, - { - "year": 2012, - "value": 12866001.1549344 - }, - { - "year": 2013, - "value": 13663001.1549344 - }, - { - "year": 2014, - "value": 14934001.1549344 - }, - { - "year": 2015, - "value": 16918001.1549344 - }, - { - "year": 2016, - "value": 16977001.1549344 - }, - { - "year": 2017, - "value": 17293001.1549344 - }, - { - "year": 2018, - "value": 18162001.1549344 - }, - { - "year": 2019, - "value": 17976001.1549344 - }, - { - "year": 2020, - "value": 16065001.1549344 - }, - { - "year": 2021, - "value": 16065001.1549344 - } - ], - "S2": [ - { - "year": 2009, - "value": null - }, - { - "year": 2010, - "value": 52966.1549344293 - }, - { - "year": 2011, - "value": 58302.1549344293 - }, - { - "year": 2012, - "value": 61001.1549344293 - }, - { - "year": 2013, - "value": 202001.154934429 - }, - { - "year": 2014, - "value": 130001.154934429 - }, - { - "year": 2015, - "value": 409001.154934429 - }, - { - "year": 2016, - "value": 1265001.15493443 - }, - { - "year": 2017, - "value": 1818001.15493443 - }, - { - "year": 2018, - "value": 2090001.15493443 - }, - { - "year": 2019, - "value": 2289001.15493443 - }, - { - "year": 2020, - "value": 2403001.15493443 - }, - { - "year": 2021, - "value": 2403001.15493443 - } - ], - "S1S2": [], - "S3": [], - "S1S2S3": [] - }, - "emission_intensities": { - "S1": [ - { - "year": 2009, - "value": null - }, - { - "year": 2010, - "value": 0.20314767204226442 - }, - { - "year": 2011, - "value": 0.28781357945742975 - }, - { - "year": 2012, - "value": 1.207734982396956 - }, - { - "year": 2013, - "value": 0.8703102666237157 - }, - { - "year": 2014, - "value": 0.8685083382555276 - }, - { - "year": 2015, - "value": 0.8483602889764117 - }, - { - "year": 2016, - "value": 0.84593158022556 - }, - { - "year": 2017, - "value": 0.852081836983182 - }, - { - "year": 2018, - "value": 0.841573647418788 - }, - { - "year": 2019, - "value": 0.8863468700054724 - }, - { - "year": 2020, - "value": 0.8788774480539012 - }, - { - "year": 2021, - "value": 0.8788774480539012 - } - ], - "S2": [ - { - "year": 2009, - "value": null - }, - { - "year": 2010, - "value": 0.00546549924476466 - }, - { - "year": 2011, - "value": 0.005923209695638932 - }, - { - "year": 2012, - "value": 0.0057261947899539594 - }, - { - "year": 2013, - "value": 0.012867134900723496 - }, - { - "year": 2014, - "value": 0.007560404333174592 - }, - { - "year": 2015, - "value": 0.020509535069434367 - }, - { - "year": 2016, - "value": 0.06303259428534648 - }, - { - "year": 2017, - "value": 0.0895787694602712 - }, - { - "year": 2018, - "value": 0.09684449858047572 - }, - { - "year": 2019, - "value": 0.1128643123478058 - }, - { - "year": 2020, - "value": 0.13146239470207932 - }, - { - "year": 2021, - "value": 0.13146239470207932 - } - ], - "S1S2": [], - "S3": [], - "S1S2S3": [] - } - }, - "projected_targets": null, - "projected_intensities": { - "S1S2": { - "projections": [ - { - "year": 2019, - "value": 0.9992111823532782 - }, - { - "year": 2020, - "value": 1.0103398427559807 - }, - { - "year": 2021, - "value": 1.0103398427559807 - }, - { - "year": 2022, - "value": 1.0103398427559807 - }, - { - "year": 2023, - "value": 1.0103398427559807 - }, - { - "year": 2024, - "value": 1.0103398427559807 - }, - { - "year": 2025, - "value": 1.0103398427559807 - }, - { - "year": 2026, - "value": 1.0103398427559807 - }, - { - "year": 2027, - "value": 1.0103398427559807 - }, - { - "year": 2028, - "value": 1.0103398427559807 - }, - { - "year": 2029, - "value": 1.0103398427559807 - }, - { - "year": 2030, - "value": 1.0103398427559807 - }, - { - "year": 2031, - "value": 1.0103398427559807 - }, - { - "year": 2032, - "value": 1.0103398427559807 - }, - { - "year": 2033, - "value": 1.0103398427559807 - }, - { - "year": 2034, - "value": 1.0103398427559807 - }, - { - "year": 2035, - "value": 1.0103398427559807 - }, - { - "year": 2036, - "value": 1.0103398427559807 - }, - { - "year": 2037, - "value": 1.0103398427559807 - }, - { - "year": 2038, - "value": 1.0103398427559807 - }, - { - "year": 2039, - "value": 1.0103398427559807 - }, - { - "year": 2040, - "value": 1.0103398427559807 - }, - { - "year": 2041, - "value": 1.0103398427559807 - }, - { - "year": 2042, - "value": 1.0103398427559807 - }, - { - "year": 2043, - "value": 1.0103398427559807 - }, - { - "year": 2044, - "value": 1.0103398427559807 - }, - { - "year": 2045, - "value": 1.0103398427559807 - }, - { - "year": 2046, - "value": 1.0103398427559807 - }, - { - "year": 2047, - "value": 1.0103398427559807 - }, - { - "year": 2048, - "value": 1.0103398427559807 - }, - { - "year": 2049, - "value": 1.0103398427559807 - }, - { - "year": 2050, - "value": 1.0103398427559807 - } - ] - }, - "S3": null, - "S1S2S3": null - }, - "country": null, - "ghg_s1s2": null, - "ghg_s3": null, - "industry_level_1": null, - "industry_level_2": null, - "industry_level_3": null, - "industry_level_4": null, - "company_revenue": null, - "company_market_cap": null, - "company_enterprise_value": null, - "company_total_assets": null, - "company_cash_equivalents": null - }, - { - "company_name": "Company AR", - "company_id": "US8356993076", - "region": "Europe", - "sector": "Electricity Utilities", - "target_probability": 0.4285714285714285, - "historic_data": { - "productions": [ - { - "year": 2009, - "value": 697248015.4129393 - }, - { - "year": 2010, - "value": 683380815.4129393 - }, - { - "year": 2011, - "value": 732499215.4129393 - }, - { - "year": 2012, - "value": 739368015.4129393 - }, - { - "year": 2013, - "value": 739238415.4129393 - }, - { - "year": 2014, - "value": 710726415.4129393 - }, - { - "year": 2015, - "value": 720316815.4129393 - }, - { - "year": 2016, - "value": 695563215.4129393 - }, - { - "year": 2017, - "value": 841262415.4129393 - }, - { - "year": 2018, - "value": 1038312015.4129393 - }, - { - "year": 2019, - "value": 1038312015.4129393 - }, - { - "year": 2020, - "value": 1038312015.4129393 - }, - { - "year": 2021, - "value": 1038312015.4129393 - } - ], - "emissions": { - "S1": [ - { - "year": 2009, - "value": null - }, - { - "year": 2010, - "value": null - }, - { - "year": 2011, - "value": null - }, - { - "year": 2012, - "value": null - }, - { - "year": 2013, - "value": null - }, - { - "year": 2014, - "value": null - }, - { - "year": 2015, - "value": null - }, - { - "year": 2016, - "value": null - }, - { - "year": 2017, - "value": null - }, - { - "year": 2018, - "value": null - }, - { - "year": 2019, - "value": null - }, - { - "year": 2020, - "value": null - }, - { - "year": 2021, - "value": null - } - ], - "S2": [ - { - "year": 2009, - "value": null - }, - { - "year": 2010, - "value": null - }, - { - "year": 2011, - "value": null - }, - { - "year": 2012, - "value": null - }, - { - "year": 2013, - "value": null - }, - { - "year": 2014, - "value": null - }, - { - "year": 2015, - "value": null - }, - { - "year": 2016, - "value": null - }, - { - "year": 2017, - "value": null - }, - { - "year": 2018, - "value": null - }, - { - "year": 2019, - "value": null - }, - { - "year": 2020, - "value": null - }, - { - "year": 2021, - "value": null - } - ], - "S1S2": [], - "S3": [], - "S1S2S3": [] - }, - "emission_intensities": { - "S1": [ - { - "year": 2009, - "value": null - }, - { - "year": 2010, - "value": null - }, - { - "year": 2011, - "value": null - }, - { - "year": 2012, - "value": null - }, - { - "year": 2013, - "value": null - }, - { - "year": 2014, - "value": null - }, - { - "year": 2015, - "value": null - }, - { - "year": 2016, - "value": null - }, - { - "year": 2017, - "value": null - }, - { - "year": 2018, - "value": null - }, - { - "year": 2019, - "value": null - }, - { - "year": 2020, - "value": null - }, - { - "year": 2021, - "value": null - } - ], - "S2": [ - { - "year": 2009, - "value": null - }, - { - "year": 2010, - "value": null - }, - { - "year": 2011, - "value": null - }, - { - "year": 2012, - "value": null - }, - { - "year": 2013, - "value": null - }, - { - "year": 2014, - "value": null - }, - { - "year": 2015, - "value": null - }, - { - "year": 2016, - "value": null - }, - { - "year": 2017, - "value": null - }, - { - "year": 2018, - "value": null - }, - { - "year": 2019, - "value": null - }, - { - "year": 2020, - "value": null - }, - { - "year": 2021, - "value": null - } - ], - "S1S2": [], - "S3": [], - "S1S2S3": [] - } - }, - "projected_targets": null, - "projected_intensities": { - "S1S2": { - "projections": [ - { - "year": 2019, - "value": NaN - }, - { - "year": 2020, - "value": NaN - }, - { - "year": 2021, - "value": NaN - }, - { - "year": 2022, - "value": NaN - }, - { - "year": 2023, - "value": NaN - }, - { - "year": 2024, - "value": NaN - }, - { - "year": 2025, - "value": NaN - }, - { - "year": 2026, - "value": NaN - }, - { - "year": 2027, - "value": NaN - }, - { - "year": 2028, - "value": NaN - }, - { - "year": 2029, - "value": NaN - }, - { - "year": 2030, - "value": NaN - }, - { - "year": 2031, - "value": NaN - }, - { - "year": 2032, - "value": NaN - }, - { - "year": 2033, - "value": NaN - }, - { - "year": 2034, - "value": NaN - }, - { - "year": 2035, - "value": NaN - }, - { - "year": 2036, - "value": NaN - }, - { - "year": 2037, - "value": NaN - }, - { - "year": 2038, - "value": NaN - }, - { - "year": 2039, - "value": NaN - }, - { - "year": 2040, - "value": NaN - }, - { - "year": 2041, - "value": NaN - }, - { - "year": 2042, - "value": NaN - }, - { - "year": 2043, - "value": NaN - }, - { - "year": 2044, - "value": NaN - }, - { - "year": 2045, - "value": NaN - }, - { - "year": 2046, - "value": NaN - }, - { - "year": 2047, - "value": NaN - }, - { - "year": 2048, - "value": NaN - }, - { - "year": 2049, - "value": NaN - }, - { - "year": 2050, - "value": NaN - } - ] - }, - "S3": null, - "S1S2S3": null - }, - "country": null, - "ghg_s1s2": null, - "ghg_s3": null, - "industry_level_1": null, - "industry_level_2": null, - "industry_level_3": null, - "industry_level_4": null, - "company_revenue": null, - "company_market_cap": null, - "company_enterprise_value": null, - "company_total_assets": null, - "company_cash_equivalents": null - }, - { - "company_name": "Company AS", - "company_id": "JP3401400001", - "region": "Asia", - "sector": "Electricity Utilities", - "target_probability": 0.4285714285714285, - "historic_data": { - "productions": [ - { - "year": 2009, - "value": 159563527.70578668 - }, - { - "year": 2010, - "value": 146979367.70578668 - }, - { - "year": 2011, - "value": 146435047.70578668 - }, - { - "year": 2012, - "value": 143026567.70578668 - }, - { - "year": 2013, - "value": 139618087.70578668 - }, - { - "year": 2014, - "value": 190050203.6009867 - }, - { - "year": 2015, - "value": 214535101.14178666 - }, - { - "year": 2016, - "value": 233145050.2433867 - }, - { - "year": 2017, - "value": 218105285.54578668 - }, - { - "year": 2018, - "value": 167479620.8129867 - }, - { - "year": 2019, - "value": 171690299.59138668 - }, - { - "year": 2020, - "value": 171690299.59138668 - }, - { - "year": 2021, - "value": 171690299.59138668 - } - ], - "emissions": { - "S1": [ - { - "year": 2009, - "value": 9150002.14049632 - }, - { - "year": 2010, - "value": 8650002.14049632 - }, - { - "year": 2011, - "value": 8631002.14049632 - }, - { - "year": 2012, - "value": 8960002.14049632 - }, - { - "year": 2013, - "value": 9296403.94049632 - }, - { - "year": 2014, - "value": 9632805.74049632 - }, - { - "year": 2015, - "value": 9969207.54049632 - }, - { - "year": 2016, - "value": 10305609.3404963 - }, - { - "year": 2017, - "value": 10642011.1404963 - }, - { - "year": 2018, - "value": 11403118.1404963 - }, - { - "year": 2019, - "value": 9681777.14049632 - }, - { - "year": 2020, - "value": 9681777.14049632 - }, - { - "year": 2021, - "value": 9681777.14049632 - } - ], - "S2": [ - { - "year": 2009, - "value": null - }, - { - "year": 2010, - "value": 2.14049631522688 - }, - { - "year": 2011, - "value": 2.14049631522688 - }, - { - "year": 2012, - "value": 2.14049631522688 - }, - { - "year": 2013, - "value": 310616.540496315 - }, - { - "year": 2014, - "value": 621230.940496315 - }, - { - "year": 2015, - "value": 931845.340496315 - }, - { - "year": 2016, - "value": 1242459.74049632 - }, - { - "year": 2017, - "value": 1553074.14049631 - }, - { - "year": 2018, - "value": 1239860.14049631 - }, - { - "year": 2019, - "value": 1203273.14049631 - }, - { - "year": 2020, - "value": 1203273.14049631 - }, - { - "year": 2021, - "value": 1203273.14049631 - } - ], - "S1S2": [], - "S3": [], - "S1S2S3": [] - }, - "emission_intensities": { - "S1": [ - { - "year": 2009, - "value": 0.7431775258785013 - }, - { - "year": 2010, - "value": 0.7627194856711764 - }, - { - "year": 2011, - "value": 0.7638730583512608 - }, - { - "year": 2012, - "value": 0.8118885155637708 - }, - { - "year": 2013, - "value": 0.8629354337148576 - }, - { - "year": 2014, - "value": 0.6568851810279456 - }, - { - "year": 2015, - "value": 0.6022367856691344 - }, - { - "year": 2016, - "value": 0.5728652481080088 - }, - { - "year": 2017, - "value": 0.6323572766047393 - }, - { - "year": 2018, - "value": 0.8824023507066155 - }, - { - "year": 2019, - "value": 0.7308265641067548 - }, - { - "year": 2020, - "value": 0.7308265641067548 - }, - { - "year": 2021, - "value": 0.7308265641067548 - } - ], - "S2": [ - { - "year": 2009, - "value": null - }, - { - "year": 2010, - "value": 1.8873963521784973e-07 - }, - { - "year": 2011, - "value": 1.894412074155671e-07 - }, - { - "year": 2012, - "value": 1.9395579919392828e-07 - }, - { - "year": 2013, - "value": 0.028832871377777763 - }, - { - "year": 2014, - "value": 0.042363295783338244 - }, - { - "year": 2015, - "value": 0.05629249269027864 - }, - { - "year": 2016, - "value": 0.0690654947210874 - }, - { - "year": 2017, - "value": 0.09228497516905357 - }, - { - "year": 2018, - "value": 0.0959435383411512 - }, - { - "year": 2019, - "value": 0.09082877680303489 - }, - { - "year": 2020, - "value": 0.09082877680303489 - }, - { - "year": 2021, - "value": 0.09082877680303489 - } - ], - "S1S2": [], - "S3": [], - "S1S2S3": [] - } - }, - "projected_targets": null, - "projected_intensities": { - "S1S2": { - "projections": [ - { - "year": 2019, - "value": 0.8216553409097898 - }, - { - "year": 2020, - "value": 0.8216553409097898 - }, - { - "year": 2021, - "value": 0.8216553409097898 - }, - { - "year": 2022, - "value": 0.8216553409097898 - }, - { - "year": 2023, - "value": 0.8216553409097898 - }, - { - "year": 2024, - "value": 0.8216553409097898 - }, - { - "year": 2025, - "value": 0.8216553409097898 - }, - { - "year": 2026, - "value": 0.8216553409097898 - }, - { - "year": 2027, - "value": 0.8216553409097898 - }, - { - "year": 2028, - "value": 0.8216553409097898 - }, - { - "year": 2029, - "value": 0.8216553409097898 - }, - { - "year": 2030, - "value": 0.8216553409097898 - }, - { - "year": 2031, - "value": 0.8216553409097898 - }, - { - "year": 2032, - "value": 0.8216553409097898 - }, - { - "year": 2033, - "value": 0.8216553409097898 - }, - { - "year": 2034, - "value": 0.8216553409097898 - }, - { - "year": 2035, - "value": 0.8216553409097898 - }, - { - "year": 2036, - "value": 0.8216553409097898 - }, - { - "year": 2037, - "value": 0.8216553409097898 - }, - { - "year": 2038, - "value": 0.8216553409097898 - }, - { - "year": 2039, - "value": 0.8216553409097898 - }, - { - "year": 2040, - "value": 0.8216553409097898 - }, - { - "year": 2041, - "value": 0.8216553409097898 - }, - { - "year": 2042, - "value": 0.8216553409097898 - }, - { - "year": 2043, - "value": 0.8216553409097898 - }, - { - "year": 2044, - "value": 0.8216553409097898 - }, - { - "year": 2045, - "value": 0.8216553409097898 - }, - { - "year": 2046, - "value": 0.8216553409097898 - }, - { - "year": 2047, - "value": 0.8216553409097898 - }, - { - "year": 2048, - "value": 0.8216553409097898 - }, - { - "year": 2049, - "value": 0.8216553409097898 - }, - { - "year": 2050, - "value": 0.8216553409097898 - } - ] - }, - "S3": null, - "S1S2S3": null - }, - "country": null, - "ghg_s1s2": null, - "ghg_s3": null, - "industry_level_1": null, - "industry_level_2": null, - "industry_level_3": null, - "industry_level_4": null, - "company_revenue": null, - "company_market_cap": null, - "company_enterprise_value": null, - "company_total_assets": null, - "company_cash_equivalents": null - }, - { - "company_name": "Company AT", - "company_id": "US6541061031", - "region": "Europe", - "sector": "Electricity Utilities", - "target_probability": 0.4285714285714285, - "historic_data": { - "productions": [ - { - "year": 2009, - "value": null - }, - { - "year": 2010, - "value": 2919888004.0657935 - }, - { - "year": 2011, - "value": 2665872004.0657935 - }, - { - "year": 2012, - "value": 2943216004.0657935 - }, - { - "year": 2013, - "value": 2808432004.0657935 - }, - { - "year": 2014, - "value": 2699568004.0657935 - }, - { - "year": 2015, - "value": 2760480004.0657935 - }, - { - "year": 2016, - "value": 2800656004.0657935 - }, - { - "year": 2017, - "value": 2594592004.0657935 - }, - { - "year": 2018, - "value": 2280960004.0657935 - }, - { - "year": 2019, - "value": 1985018404.0657933 - }, - { - "year": 2020, - "value": 1902204004.0657933 - }, - { - "year": 2021, - "value": 1902204004.0657933 - } - ], - "emissions": { - "S1": [ - { - "year": 2009, - "value": null - }, - { - "year": 2010, - "value": 167100001.129387 - }, - { - "year": 2011, - "value": 163800001.129387 - }, - { - "year": 2012, - "value": 181700001.129387 - }, - { - "year": 2013, - "value": 165800001.129387 - }, - { - "year": 2014, - "value": 156600001.129387 - }, - { - "year": 2015, - "value": 152300001.129387 - }, - { - "year": 2016, - "value": 154000001.129387 - }, - { - "year": 2017, - "value": 135600001.129387 - }, - { - "year": 2018, - "value": 120400001.129387 - }, - { - "year": 2019, - "value": 91700001.129387 - }, - { - "year": 2020, - "value": 70400001.129387 - }, - { - "year": 2021, - "value": 70400001.129387 - } - ], - "S2": [ - { - "year": 2009, - "value": null - }, - { - "year": 2010, - "value": 3100001.12938701 - }, - { - "year": 2011, - "value": 2400001.12938701 - }, - { - "year": 2012, - "value": 1900001.12938701 - }, - { - "year": 2013, - "value": 1500001.12938701 - }, - { - "year": 2014, - "value": 1400001.12938701 - }, - { - "year": 2015, - "value": 1300001.12938701 - }, - { - "year": 2016, - "value": 1300001.12938701 - }, - { - "year": 2017, - "value": 1000001.12938701 - }, - { - "year": 2018, - "value": 5000001.12938701 - }, - { - "year": 2019, - "value": 4700001.12938701 - }, - { - "year": 2020, - "value": 2600001.12938701 - }, - { - "year": 2021, - "value": 2600001.12938701 - } - ], - "S1S2": [], - "S3": [], - "S1S2S3": [] - }, - "emission_intensities": { - "S1": [ - { - "year": 2009, - "value": null - }, - { - "year": 2010, - "value": 0.7416777669627563 - }, - { - "year": 2011, - "value": 0.7963053032550852 - }, - { - "year": 2012, - "value": 0.8000880707986993 - }, - { - "year": 2013, - "value": 0.7651130636333952 - }, - { - "year": 2014, - "value": 0.7518002923357344 - }, - { - "year": 2015, - "value": 0.715023478427562 - }, - { - "year": 2016, - "value": 0.7126330444508124 - }, - { - "year": 2017, - "value": 0.6773226819025896 - }, - { - "year": 2018, - "value": 0.6840909142884937 - }, - { - "year": 2019, - "value": 0.5987007537072012 - }, - { - "year": 2020, - "value": 0.47964572290181157 - }, - { - "year": 2021, - "value": 0.47964572290181157 - } - ], - "S2": [ - { - "year": 2009, - "value": null - }, - { - "year": 2010, - "value": 0.013759436862274392 - }, - { - "year": 2011, - "value": 0.011667482380781245 - }, - { - "year": 2012, - "value": 0.008366363393933629 - }, - { - "year": 2013, - "value": 0.006922017199886688 - }, - { - "year": 2014, - "value": 0.00672108078386214 - }, - { - "year": 2015, - "value": 0.006103291678273692 - }, - { - "year": 2016, - "value": 0.006015738674223793 - }, - { - "year": 2017, - "value": 0.004995010628471448 - }, - { - "year": 2018, - "value": 0.028409097275423567 - }, - { - "year": 2019, - "value": 0.030685868963276727 - }, - { - "year": 2020, - "value": 0.017714196040400174 - }, - { - "year": 2021, - "value": 0.017714196040400174 - } - ], - "S1S2": [], - "S3": [], - "S1S2S3": [] - } - }, - "projected_targets": null, - "projected_intensities": { - "S1S2": { - "projections": [ - { - "year": 2019, - "value": 0.629386622670478 - }, - { - "year": 2020, - "value": 0.49735991894221177 - }, - { - "year": 2021, - "value": 0.49735991894221177 - }, - { - "year": 2022, - "value": 0.48865412727555213 - }, - { - "year": 2023, - "value": 0.4801007218500365 - }, - { - "year": 2024, - "value": 0.4716970352957829 - }, - { - "year": 2025, - "value": 0.4634404469325714 - }, - { - "year": 2026, - "value": 0.45532838195258785 - }, - { - "year": 2027, - "value": 0.44735831061747283 - }, - { - "year": 2028, - "value": 0.43952774746942586 - }, - { - "year": 2029, - "value": 0.4318342505561179 - }, - { - "year": 2030, - "value": 0.42427542066917145 - }, - { - "year": 2031, - "value": 0.41684890059597 - }, - { - "year": 2032, - "value": 0.409552374384564 - }, - { - "year": 2033, - "value": 0.4023835666214437 - }, - { - "year": 2034, - "value": 0.39534024172195426 - }, - { - "year": 2035, - "value": 0.38842020323313087 - }, - { - "year": 2036, - "value": 0.3816212931487376 - }, - { - "year": 2037, - "value": 0.37494139123629544 - }, - { - "year": 2038, - "value": 0.3683784143758903 - }, - { - "year": 2039, - "value": 0.3619303159105543 - }, - { - "year": 2040, - "value": 0.3555950850080181 - }, - { - "year": 2041, - "value": 0.3493707460336352 - }, - { - "year": 2042, - "value": 0.3432553579342824 - }, - { - "year": 2043, - "value": 0.3372470136330446 - }, - { - "year": 2044, - "value": 0.33134383943449497 - }, - { - "year": 2045, - "value": 0.3255439944403852 - }, - { - "year": 2046, - "value": 0.31984566997556335 - }, - { - "year": 2047, - "value": 0.3142470890239408 - }, - { - "year": 2048, - "value": 0.30874650567433126 - }, - { - "year": 2049, - "value": 0.30334220457599087 - }, - { - "year": 2050, - "value": 0.29803250040368773 - } - ] - }, - "S3": null, - "S1S2S3": null - }, - "country": null, - "ghg_s1s2": null, - "ghg_s3": null, - "industry_level_1": null, - "industry_level_2": null, - "industry_level_3": null, - "industry_level_4": null, - "company_revenue": null, - "company_market_cap": null, - "company_enterprise_value": null, - "company_total_assets": null, - "company_cash_equivalents": null - }, - { - "company_name": "Company AU", - "company_id": "GB0031274896", - "region": "North America", - "sector": "Electricity Utilities", - "target_probability": 0.4285714285714285, - "historic_data": { - "productions": [ - { - "year": 2009, - "value": 926887167.2113813 - }, - { - "year": 2010, - "value": 965233460.0113813 - }, - { - "year": 2011, - "value": 968392251.2113813 - }, - { - "year": 2012, - "value": 972920165.6113813 - }, - { - "year": 2013, - "value": 919330565.6113813 - }, - { - "year": 2014, - "value": 954115205.6113813 - }, - { - "year": 2015, - "value": 949695845.6113813 - }, - { - "year": 2016, - "value": 960753123.2113813 - }, - { - "year": 2017, - "value": 939777829.7713813 - }, - { - "year": 2018, - "value": 891855365.6113813 - }, - { - "year": 2019, - "value": 874385285.6113813 - }, - { - "year": 2020, - "value": 874385285.6113813 - }, - { - "year": 2021, - "value": 874385285.6113813 - } - ], - "emissions": { - "S1": [ - { - "year": 2009, - "value": 55192252.5587173 - }, - { - "year": 2010, - "value": 56075311.5587173 - }, - { - "year": 2011, - "value": 54746972.5587173 - }, - { - "year": 2012, - "value": 54472481.5587173 - }, - { - "year": 2013, - "value": 56535331.5587173 - }, - { - "year": 2014, - "value": 57593228.5587173 - }, - { - "year": 2015, - "value": 56978409.5587173 - }, - { - "year": 2016, - "value": 52832514.4587173 - }, - { - "year": 2017, - "value": 50919739.3587173 - }, - { - "year": 2018, - "value": 50723846.5587173 - }, - { - "year": 2019, - "value": 48061950.5587173 - }, - { - "year": 2020, - "value": 48061950.5587173 - }, - { - "year": 2021, - "value": 48061950.5587173 - } - ], - "S2": [ - { - "year": 2009, - "value": 1007225.55871729 - }, - { - "year": 2010, - "value": 1933034.55871729 - }, - { - "year": 2011, - "value": 1052282.55871729 - }, - { - "year": 2012, - "value": 1189960.55871729 - }, - { - "year": 2013, - "value": 774476.55871729 - }, - { - "year": 2014, - "value": 601657.55871729 - }, - { - "year": 2015, - "value": 1061617.55871729 - }, - { - "year": 2016, - "value": 891280.15871729 - }, - { - "year": 2017, - "value": 1153067.75871729 - }, - { - "year": 2018, - "value": 841797.55871729 - }, - { - "year": 2019, - "value": 607645.55871729 - }, - { - "year": 2020, - "value": 607645.55871729 - }, - { - "year": 2021, - "value": 607645.55871729 - } - ], - "S1S2": [], - "S3": [], - "S1S2S3": [] - }, - "emission_intensities": { - "S1": [ - { - "year": 2009, - "value": 0.771713773223328 - }, - { - "year": 2010, - "value": 0.7529121895467709 - }, - { - "year": 2011, - "value": 0.73267910133876 - }, - { - "year": 2012, - "value": 0.7256128364420833 - }, - { - "year": 2013, - "value": 0.7969906847529973 - }, - { - "year": 2014, - "value": 0.7823041051344408 - }, - { - "year": 2015, - "value": 0.7775544047005837 - }, - { - "year": 2016, - "value": 0.7126798454698644 - }, - { - "year": 2017, - "value": 0.7022083317814728 - }, - { - "year": 2018, - "value": 0.7370937898101109 - }, - { - "year": 2019, - "value": 0.7123666071364056 - }, - { - "year": 2020, - "value": 0.7123666071364056 - }, - { - "year": 2021, - "value": 0.7123666071364056 - } - ], - "S2": [ - { - "year": 2009, - "value": 0.014083314240123792 - }, - { - "year": 2010, - "value": 0.025954475180212513 - }, - { - "year": 2011, - "value": 0.014082704548612957 - }, - { - "year": 2012, - "value": 0.01585113495030187 - }, - { - "year": 2013, - "value": 0.010917962021964349 - }, - { - "year": 2014, - "value": 0.008172474262140671 - }, - { - "year": 2015, - "value": 0.01448733678740982 - }, - { - "year": 2016, - "value": 0.012022850176501211 - }, - { - "year": 2017, - "value": 0.015901373366736478 - }, - { - "year": 2018, - "value": 0.012232584768380328 - }, - { - "year": 2019, - "value": 0.009006426080774784 - }, - { - "year": 2020, - "value": 0.009006426080774784 - }, - { - "year": 2021, - "value": 0.009006426080774784 - } - ], - "S1S2": [], - "S3": [], - "S1S2S3": [] - } - }, - "projected_targets": null, - "projected_intensities": { - "S1S2": { - "projections": [ - { - "year": 2019, - "value": 0.7213730332171804 - }, - { - "year": 2020, - "value": 0.7213730332171804 - }, - { - "year": 2021, - "value": 0.7213730332171804 - }, - { - "year": 2022, - "value": 0.7191454204965274 - }, - { - "year": 2023, - "value": 0.7169246866834642 - }, - { - "year": 2024, - "value": 0.7147108105358021 - }, - { - "year": 2025, - "value": 0.7125037708769486 - }, - { - "year": 2026, - "value": 0.7103035465957052 - }, - { - "year": 2027, - "value": 0.7081101166460648 - }, - { - "year": 2028, - "value": 0.705923460047011 - }, - { - "year": 2029, - "value": 0.7037435558823171 - }, - { - "year": 2030, - "value": 0.7015703833003458 - }, - { - "year": 2031, - "value": 0.6994039215138506 - }, - { - "year": 2032, - "value": 0.6972441497997758 - }, - { - "year": 2033, - "value": 0.6950910474990591 - }, - { - "year": 2034, - "value": 0.692944594016434 - }, - { - "year": 2035, - "value": 0.6908047688202321 - }, - { - "year": 2036, - "value": 0.6886715514421875 - }, - { - "year": 2037, - "value": 0.6865449214772404 - }, - { - "year": 2038, - "value": 0.6844248585833425 - }, - { - "year": 2039, - "value": 0.6823113424812617 - }, - { - "year": 2040, - "value": 0.6802043529543889 - }, - { - "year": 2041, - "value": 0.6781038698485441 - }, - { - "year": 2042, - "value": 0.6760098730717837 - }, - { - "year": 2043, - "value": 0.6739223425942086 - }, - { - "year": 2044, - "value": 0.6718412584477721 - }, - { - "year": 2045, - "value": 0.6697666007260893 - }, - { - "year": 2046, - "value": 0.6676983495842467 - }, - { - "year": 2047, - "value": 0.665636485238612 - }, - { - "year": 2048, - "value": 0.6635809879666453 - }, - { - "year": 2049, - "value": 0.6615318381067102 - }, - { - "year": 2050, - "value": 0.6594890160578858 - } - ] - }, - "S3": null, - "S1S2S3": null - }, - "country": null, - "ghg_s1s2": null, - "ghg_s3": null, - "industry_level_1": null, - "industry_level_2": null, - "industry_level_3": null, - "industry_level_4": null, - "company_revenue": null, - "company_market_cap": null, - "company_enterprise_value": null, - "company_total_assets": null, - "company_cash_equivalents": null - }, - { - "company_name": "Company AV", - "company_id": "US6293775085", - "region": "Europe", - "sector": "Steel", - "target_probability": 0.4285714285714285, - "historic_data": { - "productions": [ - { - "year": 2009, - "value": null - }, - { - "year": 2010, - "value": null - }, - { - "year": 2011, - "value": null - }, - { - "year": 2012, - "value": null - }, - { - "year": 2013, - "value": null - }, - { - "year": 2014, - "value": 91200001.3960884 - }, - { - "year": 2015, - "value": 92479001.3960884 - }, - { - "year": 2016, - "value": 90800001.3960884 - }, - { - "year": 2017, - "value": 93100001.3960884 - }, - { - "year": 2018, - "value": 92500001.3960884 - }, - { - "year": 2019, - "value": 89800001.3960884 - }, - { - "year": 2020, - "value": 71500001.3960884 - }, - { - "year": 2021, - "value": 71500001.3960884 - } - ], - "emissions": { - "S1": [ - { - "year": 2009, - "value": null - }, - { - "year": 2010, - "value": 165226001.396088 - }, - { - "year": 2011, - "value": 162028001.396088 - }, - { - "year": 2012, - "value": 158192001.396088 - }, - { - "year": 2013, - "value": 169000001.396088 - }, - { - "year": 2014, - "value": 174000001.396088 - }, - { - "year": 2015, - "value": 176000001.396088 - }, - { - "year": 2016, - "value": 176000001.396088 - }, - { - "year": 2017, - "value": 179700001.396088 - }, - { - "year": 2018, - "value": 174900001.396088 - }, - { - "year": 2019, - "value": 169800001.396088 - }, - { - "year": 2020, - "value": 141300001.396088 - }, - { - "year": 2021, - "value": 141300001.396088 - } - ], - "S2": [ - { - "year": 2009, - "value": null - }, - { - "year": 2010, - "value": 19599001.3960884 - }, - { - "year": 2011, - "value": 17902001.3960884 - }, - { - "year": 2012, - "value": 17256001.3960884 - }, - { - "year": 2013, - "value": 21000001.3960884 - }, - { - "year": 2014, - "value": 17000001.3960884 - }, - { - "year": 2015, - "value": 16000001.3960884 - }, - { - "year": 2016, - "value": 14000001.3960884 - }, - { - "year": 2017, - "value": 15100001.3960884 - }, - { - "year": 2018, - "value": 13900001.3960884 - }, - { - "year": 2019, - "value": 12100001.3960884 - }, - { - "year": 2020, - "value": 9500001.3960884 - }, - { - "year": 2021, - "value": 9500001.3960884 - } - ], - "S1S2": [], - "S3": [], - "S1S2S3": [] - }, - "emission_intensities": null - }, - "projected_targets": null, - "projected_intensities": { - "S1S2": { - "projections": [ - { - "year": 2019, - "value": 2.0256124717621637 - }, - { - "year": 2020, - "value": 2.1090909069608257 - }, - { - "year": 2021, - "value": 2.1090909069608257 - }, - { - "year": 2022, - "value": 2.1089525981366672 - }, - { - "year": 2023, - "value": 2.10881429838245 - }, - { - "year": 2024, - "value": 2.1086760076975795 - }, - { - "year": 2025, - "value": 2.1085377260814604 - }, - { - "year": 2026, - "value": 2.1083994535334987 - }, - { - "year": 2027, - "value": 2.108261190053099 - }, - { - "year": 2028, - "value": 2.108122935639668 - }, - { - "year": 2029, - "value": 2.1079846902926094 - }, - { - "year": 2030, - "value": 2.1078464540113298 - }, - { - "year": 2031, - "value": 2.1077082267952343 - }, - { - "year": 2032, - "value": 2.107570008643729 - }, - { - "year": 2033, - "value": 2.107431799556218 - }, - { - "year": 2034, - "value": 2.1072935995321087 - }, - { - "year": 2035, - "value": 2.1071554085708057 - }, - { - "year": 2036, - "value": 2.107017226671715 - }, - { - "year": 2037, - "value": 2.106879053834242 - }, - { - "year": 2038, - "value": 2.106740890057793 - }, - { - "year": 2039, - "value": 2.1066027353417733 - }, - { - "year": 2040, - "value": 2.106464589685589 - }, - { - "year": 2041, - "value": 2.106326453088646 - }, - { - "year": 2042, - "value": 2.1061883255503497 - }, - { - "year": 2043, - "value": 2.106050207070107 - }, - { - "year": 2044, - "value": 2.105912097647323 - }, - { - "year": 2045, - "value": 2.1057739972814042 - }, - { - "year": 2046, - "value": 2.1056359059717566 - }, - { - "year": 2047, - "value": 2.1054978237177866 - }, - { - "year": 2048, - "value": 2.1053597505189 - }, - { - "year": 2049, - "value": 2.105221686374503 - }, - { - "year": 2050, - "value": 2.1050836312840016 - } - ] - }, - "S3": null, - "S1S2S3": null - }, - "country": null, - "ghg_s1s2": null, - "ghg_s3": null, - "industry_level_1": null, - "industry_level_2": null, - "industry_level_3": null, - "industry_level_4": null, - "company_revenue": null, - "company_market_cap": null, - "company_enterprise_value": null, - "company_total_assets": null, - "company_cash_equivalents": null - }, - { - "company_name": "Company AW", - "company_id": "US7134481081", - "region": "Asia", - "sector": "Steel", - "target_probability": 0.4285714285714285, - "historic_data": { - "productions": [ - { - "year": 2009, - "value": null - }, - { - "year": 2010, - "value": null - }, - { - "year": 2011, - "value": null - }, - { - "year": 2012, - "value": null - }, - { - "year": 2013, - "value": null - }, - { - "year": 2014, - "value": null - }, - { - "year": 2015, - "value": null - }, - { - "year": 2016, - "value": null - }, - { - "year": 2017, - "value": null - }, - { - "year": 2018, - "value": null - }, - { - "year": 2019, - "value": null - }, - { - "year": 2020, - "value": null - }, - { - "year": 2021, - "value": null - } - ], - "emissions": { - "S1": [ - { - "year": 2009, - "value": null - }, - { - "year": 2010, - "value": null - }, - { - "year": 2011, - "value": 13390004.4552317 - }, - { - "year": 2012, - "value": 9480004.45523172 - }, - { - "year": 2013, - "value": 8095004.45523172 - }, - { - "year": 2014, - "value": 7840004.45523172 - }, - { - "year": 2015, - "value": 7810004.45523172 - }, - { - "year": 2016, - "value": 8270004.45523172 - }, - { - "year": 2017, - "value": 8670004.45523172 - }, - { - "year": 2018, - "value": 8780004.45523172 - }, - { - "year": 2019, - "value": 8590004.45523172 - }, - { - "year": 2020, - "value": 8530004.45523172 - }, - { - "year": 2021, - "value": 8530004.45523172 - } - ], - "S2": [ - { - "year": 2009, - "value": null - }, - { - "year": 2010, - "value": null - }, - { - "year": 2011, - "value": 2530004.45523172 - }, - { - "year": 2012, - "value": 1970004.45523172 - }, - { - "year": 2013, - "value": 1781004.45523172 - }, - { - "year": 2014, - "value": 1541004.45523172 - }, - { - "year": 2015, - "value": 1570004.45523172 - }, - { - "year": 2016, - "value": 1830004.45523172 - }, - { - "year": 2017, - "value": 2000004.45523172 - }, - { - "year": 2018, - "value": 1970004.45523172 - }, - { - "year": 2019, - "value": 1810004.45523172 - }, - { - "year": 2020, - "value": 1750004.45523172 - }, - { - "year": 2021, - "value": 1750004.45523172 - } - ], - "S1S2": [], - "S3": [], - "S1S2S3": [] - }, - "emission_intensities": { - "S1": [ - { - "year": 2009, - "value": null - }, - { - "year": 2010, - "value": null - }, - { - "year": 2011, - "value": null - }, - { - "year": 2012, - "value": null - }, - { - "year": 2013, - "value": null - }, - { - "year": 2014, - "value": null - }, - { - "year": 2015, - "value": null - }, - { - "year": 2016, - "value": null - }, - { - "year": 2017, - "value": null - }, - { - "year": 2018, - "value": null - }, - { - "year": 2019, - "value": null - }, - { - "year": 2020, - "value": null - }, - { - "year": 2021, - "value": null - } - ], - "S2": [ - { - "year": 2009, - "value": null - }, - { - "year": 2010, - "value": null - }, - { - "year": 2011, - "value": null - }, - { - "year": 2012, - "value": null - }, - { - "year": 2013, - "value": null - }, - { - "year": 2014, - "value": null - }, - { - "year": 2015, - "value": null - }, - { - "year": 2016, - "value": null - }, - { - "year": 2017, - "value": null - }, - { - "year": 2018, - "value": null - }, - { - "year": 2019, - "value": null - }, - { - "year": 2020, - "value": null - }, - { - "year": 2021, - "value": null - } - ], - "S1S2": [], - "S3": [], - "S1S2S3": [] - } - }, - "projected_targets": null, - "projected_intensities": { - "S1S2": { - "projections": [ - { - "year": 2019, - "value": NaN - }, - { - "year": 2020, - "value": NaN - }, - { - "year": 2021, - "value": NaN - }, - { - "year": 2022, - "value": NaN - }, - { - "year": 2023, - "value": NaN - }, - { - "year": 2024, - "value": NaN - }, - { - "year": 2025, - "value": NaN - }, - { - "year": 2026, - "value": NaN - }, - { - "year": 2027, - "value": NaN - }, - { - "year": 2028, - "value": NaN - }, - { - "year": 2029, - "value": NaN - }, - { - "year": 2030, - "value": NaN - }, - { - "year": 2031, - "value": NaN - }, - { - "year": 2032, - "value": NaN - }, - { - "year": 2033, - "value": NaN - }, - { - "year": 2034, - "value": NaN - }, - { - "year": 2035, - "value": NaN - }, - { - "year": 2036, - "value": NaN - }, - { - "year": 2037, - "value": NaN - }, - { - "year": 2038, - "value": NaN - }, - { - "year": 2039, - "value": NaN - }, - { - "year": 2040, - "value": NaN - }, - { - "year": 2041, - "value": NaN - }, - { - "year": 2042, - "value": NaN - }, - { - "year": 2043, - "value": NaN - }, - { - "year": 2044, - "value": NaN - }, - { - "year": 2045, - "value": NaN - }, - { - "year": 2046, - "value": NaN - }, - { - "year": 2047, - "value": NaN - }, - { - "year": 2048, - "value": NaN - }, - { - "year": 2049, - "value": NaN - }, - { - "year": 2050, - "value": NaN - } - ] - }, - "S3": null, - "S1S2S3": null - }, - "country": null, - "ghg_s1s2": null, - "ghg_s3": null, - "industry_level_1": null, - "industry_level_2": null, - "industry_level_3": null, - "industry_level_4": null, - "company_revenue": null, - "company_market_cap": null, - "company_enterprise_value": null, - "company_total_assets": null, - "company_cash_equivalents": null - }, - { - "company_name": "Company A", - "company_id": "JP0000000001", - "region": "Asia", - "sector": "Steel", - "target_probability": 0.4285714285714285, - "historic_data": { - "productions": [ - { - "year": 2009, - "value": null - }, - { - "year": 2010, - "value": null - }, - { - "year": 2011, - "value": null - }, - { - "year": 2012, - "value": null - }, - { - "year": 2013, - "value": null - }, - { - "year": 2014, - "value": null - }, - { - "year": 2015, - "value": null - }, - { - "year": 2016, - "value": null - }, - { - "year": 2017, - "value": null - }, - { - "year": 2018, - "value": null - }, - { - "year": 2019, - "value": null - }, - { - "year": 2020, - "value": null - }, - { - "year": 2021, - "value": null - } - ], - "emissions": { - "S1": [ - { - "year": 2009, - "value": 21759305.8145184 - }, - { - "year": 2010, - "value": 20966413.8145184 - }, - { - "year": 2011, - "value": 21128989.8145184 - }, - { - "year": 2012, - "value": 20070402.8145184 - }, - { - "year": 2013, - "value": 19691129.8145184 - }, - { - "year": 2014, - "value": 19443564.8145184 - }, - { - "year": 2015, - "value": 20018158.8145184 - }, - { - "year": 2016, - "value": 21042990.8145184 - }, - { - "year": 2017, - "value": 20006804.8145184 - }, - { - "year": 2018, - "value": 20805771.8145184 - }, - { - "year": 2019, - "value": 20351815.8145184 - }, - { - "year": 2020, - "value": 20351815.8145184 - }, - { - "year": 2021, - "value": 20351815.8145184 - } - ], - "S2": [ - { - "year": 2009, - "value": 1337565.8145184 - }, - { - "year": 2010, - "value": 1349200.8145184 - }, - { - "year": 2011, - "value": 1371359.8145184 - }, - { - "year": 2012, - "value": 1243282.8145184 - }, - { - "year": 2013, - "value": 1257964.8145184 - }, - { - "year": 2014, - "value": 1185845.8145184 - }, - { - "year": 2015, - "value": 1109279.8145184 - }, - { - "year": 2016, - "value": 1275990.8145184 - }, - { - "year": 2017, - "value": 1298687.8145184 - }, - { - "year": 2018, - "value": 1294689.8145184 - }, - { - "year": 2019, - "value": 1181783.8145184 - }, - { - "year": 2020, - "value": 1181783.8145184 - }, - { - "year": 2021, - "value": 1181783.8145184 - } - ], - "S1S2": [], - "S3": [], - "S1S2S3": [] - }, - "emission_intensities": { - "S1": [ - { - "year": 2009, - "value": null - }, - { - "year": 2010, - "value": null - }, - { - "year": 2011, - "value": null - }, - { - "year": 2012, - "value": null - }, - { - "year": 2013, - "value": null - }, - { - "year": 2014, - "value": null - }, - { - "year": 2015, - "value": null - }, - { - "year": 2016, - "value": null - }, - { - "year": 2017, - "value": null - }, - { - "year": 2018, - "value": null - }, - { - "year": 2019, - "value": null - }, - { - "year": 2020, - "value": null - }, - { - "year": 2021, - "value": null - } - ], - "S2": [ - { - "year": 2009, - "value": null - }, - { - "year": 2010, - "value": null - }, - { - "year": 2011, - "value": null - }, - { - "year": 2012, - "value": null - }, - { - "year": 2013, - "value": null - }, - { - "year": 2014, - "value": null - }, - { - "year": 2015, - "value": null - }, - { - "year": 2016, - "value": null - }, - { - "year": 2017, - "value": null - }, - { - "year": 2018, - "value": null - }, - { - "year": 2019, - "value": null - }, - { - "year": 2020, - "value": null - }, - { - "year": 2021, - "value": null - } - ], - "S1S2": [], - "S3": [], - "S1S2S3": [] - } - }, - "projected_targets": null, - "projected_intensities": { - "S1S2": { - "projections": [ - { - "year": 2019, - "value": NaN - }, - { - "year": 2020, - "value": NaN - }, - { - "year": 2021, - "value": NaN - }, - { - "year": 2022, - "value": NaN - }, - { - "year": 2023, - "value": NaN - }, - { - "year": 2024, - "value": NaN - }, - { - "year": 2025, - "value": NaN - }, - { - "year": 2026, - "value": NaN - }, - { - "year": 2027, - "value": NaN - }, - { - "year": 2028, - "value": NaN - }, - { - "year": 2029, - "value": NaN - }, - { - "year": 2030, - "value": NaN - }, - { - "year": 2031, - "value": NaN - }, - { - "year": 2032, - "value": NaN - }, - { - "year": 2033, - "value": NaN - }, - { - "year": 2034, - "value": NaN - }, - { - "year": 2035, - "value": NaN - }, - { - "year": 2036, - "value": NaN - }, - { - "year": 2037, - "value": NaN - }, - { - "year": 2038, - "value": NaN - }, - { - "year": 2039, - "value": NaN - }, - { - "year": 2040, - "value": NaN - }, - { - "year": 2041, - "value": NaN - }, - { - "year": 2042, - "value": NaN - }, - { - "year": 2043, - "value": NaN - }, - { - "year": 2044, - "value": NaN - }, - { - "year": 2045, - "value": NaN - }, - { - "year": 2046, - "value": NaN - }, - { - "year": 2047, - "value": NaN - }, - { - "year": 2048, - "value": NaN - }, - { - "year": 2049, - "value": NaN - }, - { - "year": 2050, - "value": NaN - } - ] - }, - "S3": null, - "S1S2S3": null - }, - "country": null, - "ghg_s1s2": null, - "ghg_s3": null, - "industry_level_1": null, - "industry_level_2": null, - "industry_level_3": null, - "industry_level_4": null, - "company_revenue": null, - "company_market_cap": null, - "company_enterprise_value": null, - "company_total_assets": null, - "company_cash_equivalents": null - }, - { - "company_name": "Company B", - "company_id": "NL0000000002", - "region": "South America", - "sector": "Steel", - "target_probability": 0.4285714285714285, - "historic_data": { - "productions": [ - { - "year": 2009, - "value": null - }, - { - "year": 2010, - "value": null - }, - { - "year": 2011, - "value": null - }, - { - "year": 2012, - "value": null - }, - { - "year": 2013, - "value": null - }, - { - "year": 2014, - "value": null - }, - { - "year": 2015, - "value": null - }, - { - "year": 2016, - "value": null - }, - { - "year": 2017, - "value": 16120000.4760821 - }, - { - "year": 2018, - "value": 15342000.4760821 - }, - { - "year": 2019, - "value": 12453000.4760821 - }, - { - "year": 2020, - "value": 12194000.4760821 - }, - { - "year": 2021, - "value": 12194000.4760821 - } - ], - "emissions": { - "S1": [ - { - "year": 2009, - "value": null - }, - { - "year": 2010, - "value": null - }, - { - "year": 2011, - "value": null - }, - { - "year": 2012, - "value": null - }, - { - "year": 2013, - "value": null - }, - { - "year": 2014, - "value": null - }, - { - "year": 2015, - "value": null - }, - { - "year": 2016, - "value": null - }, - { - "year": 2017, - "value": null - }, - { - "year": 2018, - "value": null - }, - { - "year": 2019, - "value": 9056.99508207154 - }, - { - "year": 2020, - "value": 9056.99508207154 - }, - { - "year": 2021, - "value": 9056.99508207154 - } - ], - "S2": [ - { - "year": 2009, - "value": null - }, - { - "year": 2010, - "value": null - }, - { - "year": 2011, - "value": null - }, - { - "year": 2012, - "value": null - }, - { - "year": 2013, - "value": null - }, - { - "year": 2014, - "value": null - }, - { - "year": 2015, - "value": null - }, - { - "year": 2016, - "value": null - }, - { - "year": 2017, - "value": null - }, - { - "year": 2018, - "value": null - }, - { - "year": 2019, - "value": 2890986.47608207 - }, - { - "year": 2020, - "value": 2890986.47608207 - }, - { - "year": 2021, - "value": 2890986.47608207 - } - ], - "S1S2": [], - "S3": [], - "S1S2S3": [] - }, - "emission_intensities": { - "S1": [ - { - "year": 2009, - "value": null - }, - { - "year": 2010, - "value": null - }, - { - "year": 2011, - "value": null - }, - { - "year": 2012, - "value": null - }, - { - "year": 2013, - "value": null - }, - { - "year": 2014, - "value": null - }, - { - "year": 2015, - "value": null - }, - { - "year": 2016, - "value": null - }, - { - "year": 2017, - "value": null - }, - { - "year": 2018, - "value": null - }, - { - "year": 2019, - "value": 0.000727294205076673 - }, - { - "year": 2020, - "value": 0.000742741899988965 - }, - { - "year": 2021, - "value": 0.000742741899988965 - } - ], - "S2": [ - { - "year": 2009, - "value": null - }, - { - "year": 2010, - "value": null - }, - { - "year": 2011, - "value": null - }, - { - "year": 2012, - "value": null - }, - { - "year": 2013, - "value": null - }, - { - "year": 2014, - "value": null - }, - { - "year": 2015, - "value": null - }, - { - "year": 2016, - "value": null - }, - { - "year": 2017, - "value": null - }, - { - "year": 2018, - "value": null - }, - { - "year": 2019, - "value": 0.232151800012749 - }, - { - "year": 2020, - "value": 0.237082693391115 - }, - { - "year": 2021, - "value": 0.237082693391115 - } - ], - "S1S2": [], - "S3": [], - "S1S2S3": [] - } - }, - "projected_targets": null, - "projected_intensities": { - "S1S2": { - "projections": [ - { - "year": 2019, - "value": 0.23287909421782566 - }, - { - "year": 2020, - "value": 0.23782543529110398 - }, - { - "year": 2021, - "value": 0.23782543529110398 - }, - { - "year": 2022, - "value": 0.23983744872740673 - }, - { - "year": 2023, - "value": 0.24186648388412768 - }, - { - "year": 2024, - "value": 0.24391268476575548 - }, - { - "year": 2025, - "value": 0.2459761965950629 - }, - { - "year": 2026, - "value": 0.24805716582341367 - }, - { - "year": 2027, - "value": 0.2501557401411564 - }, - { - "year": 2028, - "value": 0.2522720684881063 - }, - { - "year": 2029, - "value": 0.254406301064116 - }, - { - "year": 2030, - "value": 0.25655858933973524 - }, - { - "year": 2031, - "value": 0.2587290860669612 - }, - { - "year": 2032, - "value": 0.2609179452900795 - }, - { - "year": 2033, - "value": 0.2631253223565971 - }, - { - "year": 2034, - "value": 0.2653513739282675 - }, - { - "year": 2035, - "value": 0.26759625799220954 - }, - { - "year": 2036, - "value": 0.2698601338721197 - }, - { - "year": 2037, - "value": 0.2721431622395799 - }, - { - "year": 2038, - "value": 0.2744455051254606 - }, - { - "year": 2039, - "value": 0.2767673259314204 - }, - { - "year": 2040, - "value": 0.27910878944150286 - }, - { - "year": 2041, - "value": 0.28147006183383183 - }, - { - "year": 2042, - "value": 0.2838513106924051 - }, - { - "year": 2043, - "value": 0.2862527050189884 - }, - { - "year": 2044, - "value": 0.28867441524510973 - }, - { - "year": 2045, - "value": 0.291116613244155 - }, - { - "year": 2046, - "value": 0.29357947234356646 - }, - { - "year": 2047, - "value": 0.29606316733714405 - }, - { - "year": 2048, - "value": 0.29856787449745076 - }, - { - "year": 2049, - "value": 0.301093771588323 - }, - { - "year": 2050, - "value": 0.303641037877487 - } - ] - }, - "S3": null, - "S1S2S3": null - }, - "country": null, - "ghg_s1s2": null, - "ghg_s3": null, - "industry_level_1": null, - "industry_level_2": null, - "industry_level_3": null, - "industry_level_4": null, - "company_revenue": null, - "company_market_cap": null, - "company_enterprise_value": null, - "company_total_assets": null, - "company_cash_equivalents": null - }, - { - "company_name": "Company C", - "company_id": "IT0000000003", - "region": "Asia", - "sector": "Steel", - "target_probability": 0.4285714285714285, - "historic_data": { - "productions": [ - { - "year": 2009, - "value": null - }, - { - "year": 2010, - "value": null - }, - { - "year": 2011, - "value": null - }, - { - "year": 2012, - "value": null - }, - { - "year": 2013, - "value": null - }, - { - "year": 2014, - "value": 19374009.677026 - }, - { - "year": 2015, - "value": 21182009.677026 - }, - { - "year": 2016, - "value": 22380009.677026 - }, - { - "year": 2017, - "value": 23290009.677026 - }, - { - "year": 2018, - "value": 23763009.677026 - }, - { - "year": 2019, - "value": 23303009.677026 - }, - { - "year": 2020, - "value": 23303009.677026 - }, - { - "year": 2021, - "value": 23303009.677026 - } - ], - "emissions": { - "S1": [ - { - "year": 2009, - "value": null - }, - { - "year": 2010, - "value": 766009.677026013 - }, - { - "year": 2011, - "value": 10247400.677026 - }, - { - "year": 2012, - "value": 10197994.677026 - }, - { - "year": 2013, - "value": 11080009.677026 - }, - { - "year": 2014, - "value": 13317009.677026 - }, - { - "year": 2015, - "value": 14157009.677026 - }, - { - "year": 2016, - "value": 15622009.677026 - }, - { - "year": 2017, - "value": 15710009.677026 - }, - { - "year": 2018, - "value": 16492009.677026 - }, - { - "year": 2019, - "value": 16442009.677026 - }, - { - "year": 2020, - "value": 16442009.677026 - }, - { - "year": 2021, - "value": 16442009.677026 - } - ], - "S2": [ - { - "year": 2009, - "value": null - }, - { - "year": 2010, - "value": 3518009.67702601 - }, - { - "year": 2011, - "value": 4342232.67702601 - }, - { - "year": 2012, - "value": 4164848.67702601 - }, - { - "year": 2013, - "value": 4818009.67702601 - }, - { - "year": 2014, - "value": 5480009.67702601 - }, - { - "year": 2015, - "value": 5416009.67702601 - }, - { - "year": 2016, - "value": 5653009.67702601 - }, - { - "year": 2017, - "value": 5769009.67702601 - }, - { - "year": 2018, - "value": 5806009.67702601 - }, - { - "year": 2019, - "value": 5803009.67702601 - }, - { - "year": 2020, - "value": 5803009.67702601 - }, - { - "year": 2021, - "value": 5803009.67702601 - } - ], - "S1S2": [], - "S3": [], - "S1S2S3": [] - }, - "emission_intensities": { - "S1": [ - { - "year": 2009, - "value": null - }, - { - "year": 2010, - "value": null - }, - { - "year": 2011, - "value": null - }, - { - "year": 2012, - "value": null - }, - { - "year": 2013, - "value": null - }, - { - "year": 2014, - "value": 0.687364665292674 - }, - { - "year": 2015, - "value": 0.66835063777639 - }, - { - "year": 2016, - "value": 0.698034089460767 - }, - { - "year": 2017, - "value": 0.67453856373975 - }, - { - "year": 2018, - "value": 0.694020239909696 - }, - { - "year": 2019, - "value": 0.705574511829511 - }, - { - "year": 2020, - "value": 0.705574511829511 - }, - { - "year": 2021, - "value": 0.705574511829511 - } - ], - "S2": [ - { - "year": 2009, - "value": null - }, - { - "year": 2010, - "value": null - }, - { - "year": 2011, - "value": null - }, - { - "year": 2012, - "value": null - }, - { - "year": 2013, - "value": null - }, - { - "year": 2014, - "value": 0.282853666761831 - }, - { - "year": 2015, - "value": 0.255689132410331 - }, - { - "year": 2016, - "value": 0.252591922818919 - }, - { - "year": 2017, - "value": 0.247703189351473 - }, - { - "year": 2018, - "value": 0.244329727418293 - }, - { - "year": 2019, - "value": 0.249024042707543 - }, - { - "year": 2020, - "value": 0.249024042707543 - }, - { - "year": 2021, - "value": 0.249024042707543 - } - ], - "S1S2": [], - "S3": [], - "S1S2S3": [] - } - }, - "projected_targets": null, - "projected_intensities": { - "S1S2": { - "projections": [ - { - "year": 2019, - "value": 0.954598554537054 - }, - { - "year": 2020, - "value": 0.954598554537054 - }, - { - "year": 2021, - "value": 0.954598554537054 - }, - { - "year": 2022, - "value": 0.954598554537054 - }, - { - "year": 2023, - "value": 0.954598554537054 - }, - { - "year": 2024, - "value": 0.954598554537054 - }, - { - "year": 2025, - "value": 0.954598554537054 - }, - { - "year": 2026, - "value": 0.954598554537054 - }, - { - "year": 2027, - "value": 0.954598554537054 - }, - { - "year": 2028, - "value": 0.954598554537054 - }, - { - "year": 2029, - "value": 0.954598554537054 - }, - { - "year": 2030, - "value": 0.954598554537054 - }, - { - "year": 2031, - "value": 0.954598554537054 - }, - { - "year": 2032, - "value": 0.954598554537054 - }, - { - "year": 2033, - "value": 0.954598554537054 - }, - { - "year": 2034, - "value": 0.954598554537054 - }, - { - "year": 2035, - "value": 0.954598554537054 - }, - { - "year": 2036, - "value": 0.954598554537054 - }, - { - "year": 2037, - "value": 0.954598554537054 - }, - { - "year": 2038, - "value": 0.954598554537054 - }, - { - "year": 2039, - "value": 0.954598554537054 - }, - { - "year": 2040, - "value": 0.954598554537054 - }, - { - "year": 2041, - "value": 0.954598554537054 - }, - { - "year": 2042, - "value": 0.954598554537054 - }, - { - "year": 2043, - "value": 0.954598554537054 - }, - { - "year": 2044, - "value": 0.954598554537054 - }, - { - "year": 2045, - "value": 0.954598554537054 - }, - { - "year": 2046, - "value": 0.954598554537054 - }, - { - "year": 2047, - "value": 0.954598554537054 - }, - { - "year": 2048, - "value": 0.954598554537054 - }, - { - "year": 2049, - "value": 0.954598554537054 - }, - { - "year": 2050, - "value": 0.954598554537054 - } - ] - }, - "S3": null, - "S1S2S3": null - }, - "country": null, - "ghg_s1s2": null, - "ghg_s3": null, - "industry_level_1": null, - "industry_level_2": null, - "industry_level_3": null, - "industry_level_4": null, - "company_revenue": null, - "company_market_cap": null, - "company_enterprise_value": null, - "company_total_assets": null, - "company_cash_equivalents": null - }, - { - "company_name": "Company D", - "company_id": "SE0000000004", - "region": "Asia", - "sector": "Steel", - "target_probability": 0.4285714285714285, - "historic_data": { - "productions": [ - { - "year": 2009, - "value": null - }, - { - "year": 2010, - "value": null - }, - { - "year": 2011, - "value": null - }, - { - "year": 2012, - "value": null - }, - { - "year": 2013, - "value": null - }, - { - "year": 2014, - "value": 31580000.2335485 - }, - { - "year": 2015, - "value": 31040000.2335485 - }, - { - "year": 2016, - "value": 29751000.2335485 - }, - { - "year": 2017, - "value": 30410000.2335485 - }, - { - "year": 2018, - "value": 29145000.2335485 - }, - { - "year": 2019, - "value": 27880000.2335485 - }, - { - "year": 2020, - "value": 28090000.2335485 - }, - { - "year": 2021, - "value": 28090000.2335485 - } - ], - "emissions": { - "S1": [ - { - "year": 2009, - "value": null - }, - { - "year": 2010, - "value": null - }, - { - "year": 2011, - "value": null - }, - { - "year": 2012, - "value": null - }, - { - "year": 2013, - "value": null - }, - { - "year": 2014, - "value": null - }, - { - "year": 2015, - "value": null - }, - { - "year": 2016, - "value": 54700000.2335485 - }, - { - "year": 2017, - "value": 55000000.2335485 - }, - { - "year": 2018, - "value": 54900000.2335485 - }, - { - "year": 2019, - "value": 52300000.2335485 - }, - { - "year": 2020, - "value": 52900000.2335485 - }, - { - "year": 2021, - "value": 52900000.2335485 - } - ], - "S2": [ - { - "year": 2009, - "value": null - }, - { - "year": 2010, - "value": null - }, - { - "year": 2011, - "value": null - }, - { - "year": 2012, - "value": null - }, - { - "year": 2013, - "value": null - }, - { - "year": 2014, - "value": null - }, - { - "year": 2015, - "value": null - }, - { - "year": 2016, - "value": 6600000.23354846 - }, - { - "year": 2017, - "value": 6400000.23354846 - }, - { - "year": 2018, - "value": 7400000.23354846 - }, - { - "year": 2019, - "value": 7500000.23354846 - }, - { - "year": 2020, - "value": 7600000.23354846 - }, - { - "year": 2021, - "value": 7600000.23354846 - } - ], - "S1S2": [], - "S3": [], - "S1S2S3": [] - }, - "emission_intensities": { - "S1": [ - { - "year": 2009, - "value": null - }, - { - "year": 2010, - "value": null - }, - { - "year": 2011, - "value": null - }, - { - "year": 2012, - "value": null - }, - { - "year": 2013, - "value": null - }, - { - "year": 2014, - "value": null - }, - { - "year": 2015, - "value": null - }, - { - "year": 2016, - "value": 1.83859365413424 - }, - { - "year": 2017, - "value": 1.80861558076781 - }, - { - "year": 2018, - "value": 1.8836850160788 - }, - { - "year": 2019, - "value": 1.87589669280616 - }, - { - "year": 2020, - "value": 1.88323245972668 - }, - { - "year": 2021, - "value": 1.88323245972668 - } - ], - "S2": [ - { - "year": 2009, - "value": null - }, - { - "year": 2010, - "value": null - }, - { - "year": 2011, - "value": null - }, - { - "year": 2012, - "value": null - }, - { - "year": 2013, - "value": null - }, - { - "year": 2014, - "value": null - }, - { - "year": 2015, - "value": null - }, - { - "year": 2016, - "value": 0.221841288754589 - }, - { - "year": 2017, - "value": 0.21045709254839 - }, - { - "year": 2018, - "value": 0.253902905275342 - }, - { - "year": 2019, - "value": 0.26901004916505 - }, - { - "year": 2020, - "value": 0.270558923829115 - }, - { - "year": 2021, - "value": 0.270558923829115 - } - ], - "S1S2": [], - "S3": [], - "S1S2S3": [] - } - }, - "projected_targets": null, - "projected_intensities": { - "S1S2": { - "projections": [ - { - "year": 2019, - "value": 2.14490674197121 - }, - { - "year": 2020, - "value": 2.153791383555795 - }, - { - "year": 2021, - "value": 2.153791383555795 - }, - { - "year": 2022, - "value": 2.161165682701744 - }, - { - "year": 2023, - "value": 2.16856523048055 - }, - { - "year": 2024, - "value": 2.175990113340219 - }, - { - "year": 2025, - "value": 2.183440418024745 - }, - { - "year": 2026, - "value": 2.1909162315751214 - }, - { - "year": 2027, - "value": 2.1984176413303578 - }, - { - "year": 2028, - "value": 2.205944734928502 - }, - { - "year": 2029, - "value": 2.213497600307663 - }, - { - "year": 2030, - "value": 2.221076325707038 - }, - { - "year": 2031, - "value": 2.228680999667943 - }, - { - "year": 2032, - "value": 2.236311711034849 - }, - { - "year": 2033, - "value": 2.2439685489564183 - }, - { - "year": 2034, - "value": 2.2516516028865468 - }, - { - "year": 2035, - "value": 2.2593609625854083 - }, - { - "year": 2036, - "value": 2.2670967181205044 - }, - { - "year": 2037, - "value": 2.274858959867715 - }, - { - "year": 2038, - "value": 2.2826477785123562 - }, - { - "year": 2039, - "value": 2.2904632650502377 - }, - { - "year": 2040, - "value": 2.298305510788728 - }, - { - "year": 2041, - "value": 2.3061746073478187 - }, - { - "year": 2042, - "value": 2.314070646661198 - }, - { - "year": 2043, - "value": 2.3219937209773214 - }, - { - "year": 2044, - "value": 2.3299439228604917 - }, - { - "year": 2045, - "value": 2.33792134519194 - }, - { - "year": 2046, - "value": 2.34592608117091 - }, - { - "year": 2047, - "value": 2.3539582243157473 - }, - { - "year": 2048, - "value": 2.3620178684649926 - }, - { - "year": 2049, - "value": 2.3701051077784774 - }, - { - "year": 2050, - "value": 2.3782200367384236 - } - ] - }, - "S3": null, - "S1S2S3": null - }, - "country": null, - "ghg_s1s2": null, - "ghg_s3": null, - "industry_level_1": null, - "industry_level_2": null, - "industry_level_3": null, - "industry_level_4": null, - "company_revenue": null, - "company_market_cap": null, - "company_enterprise_value": null, - "company_total_assets": null, - "company_cash_equivalents": null - }, - { - "company_name": "Company E", - "company_id": "SE0000000005", - "region": "Asia", - "sector": "Steel", - "target_probability": 0.4285714285714285, - "historic_data": { - "productions": [ - { - "year": 2009, - "value": null - }, - { - "year": 2010, - "value": null - }, - { - "year": 2011, - "value": null - }, - { - "year": 2012, - "value": null - }, - { - "year": 2013, - "value": null - }, - { - "year": 2014, - "value": 12170001.0468216 - }, - { - "year": 2015, - "value": 12630001.0468216 - }, - { - "year": 2016, - "value": 12630001.0468216 - }, - { - "year": 2017, - "value": 12630001.0468216 - }, - { - "year": 2018, - "value": 12630001.0468216 - }, - { - "year": 2019, - "value": 12630001.0468216 - }, - { - "year": 2020, - "value": 12630001.0468216 - }, - { - "year": 2021, - "value": 12630001.0468216 - } - ], - "emissions": { - "S1": [ - { - "year": 2009, - "value": null - }, - { - "year": 2010, - "value": 14667421.0468216 - }, - { - "year": 2011, - "value": 15541981.0468216 - }, - { - "year": 2012, - "value": 21355001.0468216 - }, - { - "year": 2013, - "value": 28086001.0468216 - }, - { - "year": 2014, - "value": 26077001.0468216 - }, - { - "year": 2015, - "value": 26816001.0468216 - }, - { - "year": 2016, - "value": 31440001.0468216 - }, - { - "year": 2017, - "value": 36610961.0468216 - }, - { - "year": 2018, - "value": 41528001.0468216 - }, - { - "year": 2019, - "value": 41938351.0468216 - }, - { - "year": 2020, - "value": 40045311.0468216 - }, - { - "year": 2021, - "value": 40045311.0468216 - } - ], - "S2": [ - { - "year": 2009, - "value": null - }, - { - "year": 2010, - "value": 976021.046821591 - }, - { - "year": 2011, - "value": 1550771.04682159 - }, - { - "year": 2012, - "value": 16541.0468215911 - }, - { - "year": 2013, - "value": 33601.0468215911 - }, - { - "year": 2014, - "value": 3742001.04682159 - }, - { - "year": 2015, - "value": 4157001.04682159 - }, - { - "year": 2016, - "value": 661001.046821591 - }, - { - "year": 2017, - "value": 1885181.04682159 - }, - { - "year": 2018, - "value": 626001.046821591 - }, - { - "year": 2019, - "value": 3909961.04682159 - }, - { - "year": 2020, - "value": 476901.046821591 - }, - { - "year": 2021, - "value": 476901.046821591 - } - ], - "S1S2": [], - "S3": [], - "S1S2S3": [] - }, - "emission_intensities": { - "S1": [ - { - "year": 2009, - "value": null - }, - { - "year": 2010, - "value": null - }, - { - "year": 2011, - "value": null - }, - { - "year": 2012, - "value": null - }, - { - "year": 2013, - "value": null - }, - { - "year": 2014, - "value": 2.14272792142709 - }, - { - "year": 2015, - "value": 2.12319864008008 - }, - { - "year": 2016, - "value": 2.48931104045582 - }, - { - "year": 2017, - "value": 2.89872985054383 - }, - { - "year": 2018, - "value": 3.28804414923404 - }, - { - "year": 2019, - "value": 3.32053424947068 - }, - { - "year": 2020, - "value": 3.17064985967671 - }, - { - "year": 2021, - "value": 3.17064985967671 - } - ], - "S2": [ - { - "year": 2009, - "value": null - }, - { - "year": 2010, - "value": null - }, - { - "year": 2011, - "value": null - }, - { - "year": 2012, - "value": null - }, - { - "year": 2013, - "value": null - }, - { - "year": 2014, - "value": 0.307477463019519 - }, - { - "year": 2015, - "value": 0.329137031058895 - }, - { - "year": 2016, - "value": 0.0523357871761963 - }, - { - "year": 2017, - "value": 0.149262144938302 - }, - { - "year": 2018, - "value": 0.0495646076750823 - }, - { - "year": 2019, - "value": 0.309577254374461 - }, - { - "year": 2020, - "value": 0.0377593830003368 - }, - { - "year": 2021, - "value": 0.0377593830003368 - } - ], - "S1S2": [], - "S3": [], - "S1S2S3": [] - } - }, - "projected_targets": null, - "projected_intensities": { - "S1S2": { - "projections": [ - { - "year": 2019, - "value": 3.630111503845141 - }, - { - "year": 2020, - "value": 3.2084092426770465 - }, - { - "year": 2021, - "value": 3.2084092426770465 - }, - { - "year": 2022, - "value": 3.2927632144991095 - }, - { - "year": 2023, - "value": 3.379334980880391 - }, - { - "year": 2024, - "value": 3.468182851021996 - }, - { - "year": 2025, - "value": 3.559366667162847 - }, - { - "year": 2026, - "value": 3.652947844885588 - }, - { - "year": 2027, - "value": 3.7489894144821885 - }, - { - "year": 2028, - "value": 3.8475560634071164 - }, - { - "year": 2029, - "value": 3.948714179846666 - }, - { - "year": 2030, - "value": 4.0525318974337905 - }, - { - "year": 2031, - "value": 4.159079141138558 - }, - { - "year": 2032, - "value": 4.268427674365136 - }, - { - "year": 2033, - "value": 4.380651147287026 - }, - { - "year": 2034, - "value": 4.495825146453109 - }, - { - "year": 2035, - "value": 4.614027245697903 - }, - { - "year": 2036, - "value": 4.735337058390338 - }, - { - "year": 2037, - "value": 4.859836291056224 - }, - { - "year": 2038, - "value": 4.987608798410536 - }, - { - "year": 2039, - "value": 5.1187406398365844 - }, - { - "year": 2040, - "value": 5.253320137350109 - }, - { - "year": 2041, - "value": 5.391437935087332 - }, - { - "year": 2042, - "value": 5.5331870603570525 - }, - { - "year": 2043, - "value": 5.678662986297883 - }, - { - "year": 2044, - "value": 5.827963696182847 - }, - { - "year": 2045, - "value": 5.981189749414641 - }, - { - "year": 2046, - "value": 6.1384443492560115 - }, - { - "year": 2047, - "value": 6.299833412340868 - }, - { - "year": 2048, - "value": 6.465465640012948 - }, - { - "year": 2049, - "value": 6.635452591540087 - }, - { - "year": 2050, - "value": 6.809908759253399 - } - ] - }, - "S3": null, - "S1S2S3": null - }, - "country": null, - "ghg_s1s2": null, - "ghg_s3": null, - "industry_level_1": null, - "industry_level_2": null, - "industry_level_3": null, - "industry_level_4": null, - "company_revenue": null, - "company_market_cap": null, - "company_enterprise_value": null, - "company_total_assets": null, - "company_cash_equivalents": null - }, - { - "company_name": "Company F", - "company_id": "NL0000000006", - "region": "Asia", - "sector": "Steel", - "target_probability": 0.4285714285714285, - "historic_data": { - "productions": [ - { - "year": 2009, - "value": null - }, - { - "year": 2010, - "value": null - }, - { - "year": 2011, - "value": null - }, - { - "year": 2012, - "value": null - }, - { - "year": 2013, - "value": 23001000.8292913 - }, - { - "year": 2014, - "value": 25222000.8292913 - }, - { - "year": 2015, - "value": 23424000.8292913 - }, - { - "year": 2016, - "value": 24100000.8292913 - }, - { - "year": 2017, - "value": 24193000.8292913 - }, - { - "year": 2018, - "value": 24328000.8292913 - }, - { - "year": 2019, - "value": 23779000.8292913 - }, - { - "year": 2020, - "value": 22329000.8292913 - }, - { - "year": 2021, - "value": 22329000.8292913 - } - ], - "emissions": { - "S1": [ - { - "year": 2009, - "value": null - }, - { - "year": 2010, - "value": null - }, - { - "year": 2011, - "value": null - }, - { - "year": 2012, - "value": null - }, - { - "year": 2013, - "value": null - }, - { - "year": 2014, - "value": null - }, - { - "year": 2015, - "value": null - }, - { - "year": 2016, - "value": 31300000.8292913 - }, - { - "year": 2017, - "value": 31072000.8292913 - }, - { - "year": 2018, - "value": 29491000.8292913 - }, - { - "year": 2019, - "value": 27206000.8292913 - }, - { - "year": 2020, - "value": 27206000.8292913 - }, - { - "year": 2021, - "value": 27206000.8292913 - } - ], - "S2": [ - { - "year": 2009, - "value": null - }, - { - "year": 2010, - "value": null - }, - { - "year": 2011, - "value": null - }, - { - "year": 2012, - "value": null - }, - { - "year": 2013, - "value": null - }, - { - "year": 2014, - "value": null - }, - { - "year": 2015, - "value": null - }, - { - "year": 2016, - "value": null - }, - { - "year": 2017, - "value": null - }, - { - "year": 2018, - "value": null - }, - { - "year": 2019, - "value": null - }, - { - "year": 2020, - "value": null - }, - { - "year": 2021, - "value": null - } - ], - "S1S2": [], - "S3": [], - "S1S2S3": [] - }, - "emission_intensities": { - "S1": [ - { - "year": 2009, - "value": null - }, - { - "year": 2010, - "value": null - }, - { - "year": 2011, - "value": null - }, - { - "year": 2012, - "value": null - }, - { - "year": 2013, - "value": null - }, - { - "year": 2014, - "value": null - }, - { - "year": 2015, - "value": null - }, - { - "year": 2016, - "value": 1.2987551764417 - }, - { - "year": 2017, - "value": 1.28433843525816 - }, - { - "year": 2018, - "value": 1.21222458993769 - }, - { - "year": 2019, - "value": 1.14411875522451 - }, - { - "year": 2020, - "value": 1.21841550534596 - }, - { - "year": 2021, - "value": 1.21841550534596 - } - ], - "S2": [ - { - "year": 2009, - "value": null - }, - { - "year": 2010, - "value": null - }, - { - "year": 2011, - "value": null - }, - { - "year": 2012, - "value": null - }, - { - "year": 2013, - "value": null - }, - { - "year": 2014, - "value": null - }, - { - "year": 2015, - "value": null - }, - { - "year": 2016, - "value": null - }, - { - "year": 2017, - "value": null - }, - { - "year": 2018, - "value": null - }, - { - "year": 2019, - "value": null - }, - { - "year": 2020, - "value": null - }, - { - "year": 2021, - "value": null - } - ], - "S1S2": [], - "S3": [], - "S1S2S3": [] - } - }, - "projected_targets": null, - "projected_intensities": { - "S1S2": { - "projections": [ - { - "year": 2019, - "value": NaN - }, - { - "year": 2020, - "value": NaN - }, - { - "year": 2021, - "value": NaN - }, - { - "year": 2022, - "value": NaN - }, - { - "year": 2023, - "value": NaN - }, - { - "year": 2024, - "value": NaN - }, - { - "year": 2025, - "value": NaN - }, - { - "year": 2026, - "value": NaN - }, - { - "year": 2027, - "value": NaN - }, - { - "year": 2028, - "value": NaN - }, - { - "year": 2029, - "value": NaN - }, - { - "year": 2030, - "value": NaN - }, - { - "year": 2031, - "value": NaN - }, - { - "year": 2032, - "value": NaN - }, - { - "year": 2033, - "value": NaN - }, - { - "year": 2034, - "value": NaN - }, - { - "year": 2035, - "value": NaN - }, - { - "year": 2036, - "value": NaN - }, - { - "year": 2037, - "value": NaN - }, - { - "year": 2038, - "value": NaN - }, - { - "year": 2039, - "value": NaN - }, - { - "year": 2040, - "value": NaN - }, - { - "year": 2041, - "value": NaN - }, - { - "year": 2042, - "value": NaN - }, - { - "year": 2043, - "value": NaN - }, - { - "year": 2044, - "value": NaN - }, - { - "year": 2045, - "value": NaN - }, - { - "year": 2046, - "value": NaN - }, - { - "year": 2047, - "value": NaN - }, - { - "year": 2048, - "value": NaN - }, - { - "year": 2049, - "value": NaN - }, - { - "year": 2050, - "value": NaN - } - ] - }, - "S3": null, - "S1S2S3": null - }, - "country": null, - "ghg_s1s2": null, - "ghg_s3": null, - "industry_level_1": null, - "industry_level_2": null, - "industry_level_3": null, - "industry_level_4": null, - "company_revenue": null, - "company_market_cap": null, - "company_enterprise_value": null, - "company_total_assets": null, - "company_cash_equivalents": null - }, - { - "company_name": "Company G", - "company_id": "CN0000000007", - "region": "Asia", - "sector": "Steel", - "target_probability": 0.4285714285714285, - "historic_data": { - "productions": [ - { - "year": 2009, - "value": null - }, - { - "year": 2010, - "value": null - }, - { - "year": 2011, - "value": null - }, - { - "year": 2012, - "value": null - }, - { - "year": 2013, - "value": 46030001.3676141 - }, - { - "year": 2014, - "value": 48160001.3676141 - }, - { - "year": 2015, - "value": 47320001.3676141 - }, - { - "year": 2016, - "value": 44530001.3676141 - }, - { - "year": 2017, - "value": 45170001.3676141 - }, - { - "year": 2018, - "value": 46505001.3676141 - }, - { - "year": 2019, - "value": 47840001.3676141 - }, - { - "year": 2020, - "value": 47050001.3676141 - }, - { - "year": 2021, - "value": 47050001.3676141 - } - ], - "emissions": { - "S1": [ - { - "year": 2009, - "value": null - }, - { - "year": 2010, - "value": null - }, - { - "year": 2011, - "value": null - }, - { - "year": 2012, - "value": null - }, - { - "year": 2013, - "value": null - }, - { - "year": 2014, - "value": null - }, - { - "year": 2015, - "value": null - }, - { - "year": 2016, - "value": 89000001.3676141 - }, - { - "year": 2017, - "value": 89000001.3676141 - }, - { - "year": 2018, - "value": 86000001.3676141 - }, - { - "year": 2019, - "value": 87000001.3676141 - }, - { - "year": 2020, - "value": 84000001.3676141 - }, - { - "year": 2021, - "value": 84000001.3676141 - } - ], - "S2": [ - { - "year": 2009, - "value": null - }, - { - "year": 2010, - "value": null - }, - { - "year": 2011, - "value": null - }, - { - "year": 2012, - "value": null - }, - { - "year": 2013, - "value": null - }, - { - "year": 2014, - "value": null - }, - { - "year": 2015, - "value": null - }, - { - "year": 2016, - "value": 11000001.3676141 - }, - { - "year": 2017, - "value": 10000001.3676141 - }, - { - "year": 2018, - "value": 10000001.3676141 - }, - { - "year": 2019, - "value": 10000001.3676141 - }, - { - "year": 2020, - "value": 9000001.36761412 - }, - { - "year": 2021, - "value": 9000001.36761412 - } - ], - "S1S2": [], - "S3": [], - "S1S2S3": [] - }, - "emission_intensities": { - "S1": [ - { - "year": 2009, - "value": null - }, - { - "year": 2010, - "value": null - }, - { - "year": 2011, - "value": null - }, - { - "year": 2012, - "value": null - }, - { - "year": 2013, - "value": null - }, - { - "year": 2014, - "value": null - }, - { - "year": 2015, - "value": null - }, - { - "year": 2016, - "value": 1.9986525630862 - }, - { - "year": 2017, - "value": 1.97033426329327 - }, - { - "year": 2018, - "value": 1.84926349507656 - }, - { - "year": 2019, - "value": 1.81856184950927 - }, - { - "year": 2020, - "value": 1.78533472743815 - }, - { - "year": 2021, - "value": 1.78533472743815 - } - ], - "S2": [ - { - "year": 2009, - "value": null - }, - { - "year": 2010, - "value": null - }, - { - "year": 2011, - "value": null - }, - { - "year": 2012, - "value": null - }, - { - "year": 2013, - "value": null - }, - { - "year": 2014, - "value": null - }, - { - "year": 2015, - "value": null - }, - { - "year": 2016, - "value": 0.247024501005612 - }, - { - "year": 2017, - "value": 0.221385899155272 - }, - { - "year": 2018, - "value": 0.215030664950761 - }, - { - "year": 2019, - "value": 0.209030122946103 - }, - { - "year": 2020, - "value": 0.191285889606989 - }, - { - "year": 2021, - "value": 0.191285889606989 - } - ], - "S1S2": [], - "S3": [], - "S1S2S3": [] - } - }, - "projected_targets": null, - "projected_intensities": { - "S1S2": { - "projections": [ - { - "year": 2019, - "value": 2.027591972455373 - }, - { - "year": 2020, - "value": 1.976620617045139 - }, - { - "year": 2021, - "value": 1.976620617045139 - }, - { - "year": 2022, - "value": 1.94147722418469 - }, - { - "year": 2023, - "value": 1.906958664461715 - }, - { - "year": 2024, - "value": 1.873053828634393 - }, - { - "year": 2025, - "value": 1.8397518049780428 - }, - { - "year": 2026, - "value": 1.8070418757733597 - }, - { - "year": 2027, - "value": 1.7749135138570904 - }, - { - "year": 2028, - "value": 1.7433563792340352 - }, - { - "year": 2029, - "value": 1.7123603157492877 - }, - { - "year": 2030, - "value": 1.68191534781964 - }, - { - "year": 2031, - "value": 1.6520116772231015 - }, - { - "year": 2032, - "value": 1.6226396799455 - }, - { - "year": 2033, - "value": 1.5937899030831475 - }, - { - "year": 2034, - "value": 1.5654530618005753 - }, - { - "year": 2035, - "value": 1.53762003634236 - }, - { - "year": 2036, - "value": 1.5102818690980773 - }, - { - "year": 2037, - "value": 1.4834297617194387 - }, - { - "year": 2038, - "value": 1.457055072288686 - }, - { - "year": 2039, - "value": 1.4311493125373285 - }, - { - "year": 2040, - "value": 1.4057041451143315 - }, - { - "year": 2041, - "value": 1.3807113809028742 - }, - { - "year": 2042, - "value": 1.3561629763848135 - }, - { - "year": 2043, - "value": 1.3320510310520086 - }, - { - "year": 2044, - "value": 1.3083677848636694 - }, - { - "year": 2045, - "value": 1.2851056157489125 - }, - { - "year": 2046, - "value": 1.2622570371537203 - }, - { - "year": 2047, - "value": 1.2398146956315148 - }, - { - "year": 2048, - "value": 1.2177713684765692 - }, - { - "year": 2049, - "value": 1.1961199613994966 - }, - { - "year": 2050, - "value": 1.1748535062440673 - } - ] - }, - "S3": null, - "S1S2S3": null - }, - "country": null, - "ghg_s1s2": null, - "ghg_s3": null, - "industry_level_1": null, - "industry_level_2": null, - "industry_level_3": null, - "industry_level_4": null, - "company_revenue": null, - "company_market_cap": null, - "company_enterprise_value": null, - "company_total_assets": null, - "company_cash_equivalents": null - }, - { - "company_name": "Company H", - "company_id": "CN0000000008", - "region": "Asia", - "sector": "Steel", - "target_probability": 0.4285714285714285, - "historic_data": { - "productions": [ - { - "year": 2009, - "value": null - }, - { - "year": 2010, - "value": null - }, - { - "year": 2011, - "value": null - }, - { - "year": 2012, - "value": null - }, - { - "year": 2013, - "value": null - }, - { - "year": 2014, - "value": 15921004.6310296 - }, - { - "year": 2015, - "value": 15855004.6310296 - }, - { - "year": 2016, - "value": 16419004.6310296 - }, - { - "year": 2017, - "value": 16850004.6310296 - }, - { - "year": 2018, - "value": 17286004.6310296 - }, - { - "year": 2019, - "value": 15520004.6310296 - }, - { - "year": 2020, - "value": 15520004.6310296 - }, - { - "year": 2021, - "value": 15520004.6310296 - } - ], - "emissions": { - "S1": [ - { - "year": 2009, - "value": null - }, - { - "year": 2010, - "value": null - }, - { - "year": 2011, - "value": null - }, - { - "year": 2012, - "value": null - }, - { - "year": 2013, - "value": null - }, - { - "year": 2014, - "value": null - }, - { - "year": 2015, - "value": 29200004.6310296 - }, - { - "year": 2016, - "value": 29200004.6310296 - }, - { - "year": 2017, - "value": 29600004.6310296 - }, - { - "year": 2018, - "value": 30200004.6310296 - }, - { - "year": 2019, - "value": 28400004.6310296 - }, - { - "year": 2020, - "value": 28400004.6310296 - }, - { - "year": 2021, - "value": 28400004.6310296 - } - ], - "S2": [ - { - "year": 2009, - "value": null - }, - { - "year": 2010, - "value": null - }, - { - "year": 2011, - "value": null - }, - { - "year": 2012, - "value": null - }, - { - "year": 2013, - "value": null - }, - { - "year": 2014, - "value": null - }, - { - "year": 2015, - "value": 3600004.63102958 - }, - { - "year": 2016, - "value": 3800004.63102958 - }, - { - "year": 2017, - "value": 4000004.63102958 - }, - { - "year": 2018, - "value": 4000004.63102958 - }, - { - "year": 2019, - "value": 3600004.63102958 - }, - { - "year": 2020, - "value": 3600004.63102958 - }, - { - "year": 2021, - "value": 3600004.63102958 - } - ], - "S1S2": [], - "S3": [], - "S1S2S3": [] - }, - "emission_intensities": { - "S1": [ - { - "year": 2009, - "value": null - }, - { - "year": 2010, - "value": null - }, - { - "year": 2011, - "value": null - }, - { - "year": 2012, - "value": null - }, - { - "year": 2013, - "value": null - }, - { - "year": 2014, - "value": null - }, - { - "year": 2015, - "value": 1.8416900726653 - }, - { - "year": 2016, - "value": 1.77842721207629 - }, - { - "year": 2017, - "value": 1.75667634989967 - }, - { - "year": 2018, - "value": 1.74707836053789 - }, - { - "year": 2019, - "value": 1.82989665958273 - }, - { - "year": 2020, - "value": 1.82989665958273 - }, - { - "year": 2021, - "value": 1.82989665958273 - } - ], - "S2": [ - { - "year": 2009, - "value": null - }, - { - "year": 2010, - "value": null - }, - { - "year": 2011, - "value": null - }, - { - "year": 2012, - "value": null - }, - { - "year": 2013, - "value": null - }, - { - "year": 2014, - "value": null - }, - { - "year": 2015, - "value": 0.22705793626727 - }, - { - "year": 2016, - "value": 0.231439403083431 - }, - { - "year": 2017, - "value": 0.237388933630528 - }, - { - "year": 2018, - "value": 0.231401339778036 - }, - { - "year": 2019, - "value": 0.231958992063184 - }, - { - "year": 2020, - "value": 0.231958992063184 - }, - { - "year": 2021, - "value": 0.231958992063184 - } - ], - "S1S2": [], - "S3": [], - "S1S2S3": [] - } - }, - "projected_targets": null, - "projected_intensities": { - "S1S2": { - "projections": [ - { - "year": 2019, - "value": 2.061855651645914 - }, - { - "year": 2020, - "value": 2.061855651645914 - }, - { - "year": 2021, - "value": 2.061855651645914 - }, - { - "year": 2022, - "value": 2.058632565310681 - }, - { - "year": 2023, - "value": 2.0554145172939724 - }, - { - "year": 2024, - "value": 2.0522014997199043 - }, - { - "year": 2025, - "value": 2.0489935047249044 - }, - { - "year": 2026, - "value": 2.045790524457693 - }, - { - "year": 2027, - "value": 2.042592551079263 - }, - { - "year": 2028, - "value": 2.039399576762862 - }, - { - "year": 2029, - "value": 2.0362115936939706 - }, - { - "year": 2030, - "value": 2.0330285940702875 - }, - { - "year": 2031, - "value": 2.029850570101706 - }, - { - "year": 2032, - "value": 2.0266775140102977 - }, - { - "year": 2033, - "value": 2.0235094180302924 - }, - { - "year": 2034, - "value": 2.0203462744080594 - }, - { - "year": 2035, - "value": 2.0171880754020886 - }, - { - "year": 2036, - "value": 2.014034813282971 - }, - { - "year": 2037, - "value": 2.0108864803333804 - }, - { - "year": 2038, - "value": 2.007743068848055 - }, - { - "year": 2039, - "value": 2.0046045711337763 - }, - { - "year": 2040, - "value": 2.001470979509353 - }, - { - "year": 2041, - "value": 1.998342286305601 - }, - { - "year": 2042, - "value": 1.9952184838653242 - }, - { - "year": 2043, - "value": 1.9920995645432964 - }, - { - "year": 2044, - "value": 1.9889855207062423 - }, - { - "year": 2045, - "value": 1.985876344732819 - }, - { - "year": 2046, - "value": 1.982772029013597 - }, - { - "year": 2047, - "value": 1.9796725659510424 - }, - { - "year": 2048, - "value": 1.9765779479594972 - }, - { - "year": 2049, - "value": 1.9734881674651614 - }, - { - "year": 2050, - "value": 1.9704032169060748 - } - ] - }, - "S3": null, - "S1S2S3": null - }, - "country": null, - "ghg_s1s2": null, - "ghg_s3": null, - "industry_level_1": null, - "industry_level_2": null, - "industry_level_3": null, - "industry_level_4": null, - "company_revenue": null, - "company_market_cap": null, - "company_enterprise_value": null, - "company_total_assets": null, - "company_cash_equivalents": null - }, - { - "company_name": "Company I", - "company_id": "CN0000000009", - "region": "Asia", - "sector": "Steel", - "target_probability": 0.4285714285714285, - "historic_data": { - "productions": [ - { - "year": 2009, - "value": null - }, - { - "year": 2010, - "value": null - }, - { - "year": 2011, - "value": null - }, - { - "year": 2012, - "value": null - }, - { - "year": 2013, - "value": null - }, - { - "year": 2014, - "value": null - }, - { - "year": 2015, - "value": null - }, - { - "year": 2016, - "value": null - }, - { - "year": 2017, - "value": null - }, - { - "year": 2018, - "value": null - }, - { - "year": 2019, - "value": null - }, - { - "year": 2020, - "value": null - }, - { - "year": 2021, - "value": null - } - ], - "emissions": { - "S1": [ - { - "year": 2009, - "value": 60457000.4256679 - }, - { - "year": 2010, - "value": 68748000.4256679 - }, - { - "year": 2011, - "value": 74602000.4256679 - }, - { - "year": 2012, - "value": 85678000.4256679 - }, - { - "year": 2013, - "value": 79928000.4256679 - }, - { - "year": 2014, - "value": 84451000.4256679 - }, - { - "year": 2015, - "value": 82741000.4256679 - }, - { - "year": 2016, - "value": 81346000.4256679 - }, - { - "year": 2017, - "value": 67743000.4256679 - }, - { - "year": 2018, - "value": 69687000.4256679 - }, - { - "year": 2019, - "value": 79447000.4256679 - }, - { - "year": 2020, - "value": 79447000.4256679 - }, - { - "year": 2021, - "value": 79447000.4256679 - } - ], - "S2": [ - { - "year": 2009, - "value": 2698000.42566793 - }, - { - "year": 2010, - "value": 3033000.42566793 - }, - { - "year": 2011, - "value": 3625000.42566793 - }, - { - "year": 2012, - "value": 3682000.42566793 - }, - { - "year": 2013, - "value": 4539000.42566793 - }, - { - "year": 2014, - "value": 5032000.42566793 - }, - { - "year": 2015, - "value": 4431000.42566793 - }, - { - "year": 2016, - "value": 3719000.42566793 - }, - { - "year": 2017, - "value": 2956000.42566793 - }, - { - "year": 2018, - "value": 2802000.42566793 - }, - { - "year": 2019, - "value": 795000.425667932 - }, - { - "year": 2020, - "value": 795000.425667932 - }, - { - "year": 2021, - "value": 795000.425667932 - } - ], - "S1S2": [], - "S3": [], - "S1S2S3": [] - }, - "emission_intensities": { - "S1": [ - { - "year": 2009, - "value": null - }, - { - "year": 2010, - "value": null - }, - { - "year": 2011, - "value": null - }, - { - "year": 2012, - "value": null - }, - { - "year": 2013, - "value": null - }, - { - "year": 2014, - "value": null - }, - { - "year": 2015, - "value": null - }, - { - "year": 2016, - "value": null - }, - { - "year": 2017, - "value": null - }, - { - "year": 2018, - "value": null - }, - { - "year": 2019, - "value": null - }, - { - "year": 2020, - "value": null - }, - { - "year": 2021, - "value": null - } - ], - "S2": [ - { - "year": 2009, - "value": null - }, - { - "year": 2010, - "value": null - }, - { - "year": 2011, - "value": null - }, - { - "year": 2012, - "value": null - }, - { - "year": 2013, - "value": null - }, - { - "year": 2014, - "value": null - }, - { - "year": 2015, - "value": null - }, - { - "year": 2016, - "value": null - }, - { - "year": 2017, - "value": null - }, - { - "year": 2018, - "value": null - }, - { - "year": 2019, - "value": null - }, - { - "year": 2020, - "value": null - }, - { - "year": 2021, - "value": null - } - ], - "S1S2": [], - "S3": [], - "S1S2S3": [] - } - }, - "projected_targets": null, - "projected_intensities": { - "S1S2": { - "projections": [ - { - "year": 2019, - "value": NaN - }, - { - "year": 2020, - "value": NaN - }, - { - "year": 2021, - "value": NaN - }, - { - "year": 2022, - "value": NaN - }, - { - "year": 2023, - "value": NaN - }, - { - "year": 2024, - "value": NaN - }, - { - "year": 2025, - "value": NaN - }, - { - "year": 2026, - "value": NaN - }, - { - "year": 2027, - "value": NaN - }, - { - "year": 2028, - "value": NaN - }, - { - "year": 2029, - "value": NaN - }, - { - "year": 2030, - "value": NaN - }, - { - "year": 2031, - "value": NaN - }, - { - "year": 2032, - "value": NaN - }, - { - "year": 2033, - "value": NaN - }, - { - "year": 2034, - "value": NaN - }, - { - "year": 2035, - "value": NaN - }, - { - "year": 2036, - "value": NaN - }, - { - "year": 2037, - "value": NaN - }, - { - "year": 2038, - "value": NaN - }, - { - "year": 2039, - "value": NaN - }, - { - "year": 2040, - "value": NaN - }, - { - "year": 2041, - "value": NaN - }, - { - "year": 2042, - "value": NaN - }, - { - "year": 2043, - "value": NaN - }, - { - "year": 2044, - "value": NaN - }, - { - "year": 2045, - "value": NaN - }, - { - "year": 2046, - "value": NaN - }, - { - "year": 2047, - "value": NaN - }, - { - "year": 2048, - "value": NaN - }, - { - "year": 2049, - "value": NaN - }, - { - "year": 2050, - "value": NaN - } - ] - }, - "S3": null, - "S1S2S3": null - }, - "country": null, - "ghg_s1s2": null, - "ghg_s3": null, - "industry_level_1": null, - "industry_level_2": null, - "industry_level_3": null, - "industry_level_4": null, - "company_revenue": null, - "company_market_cap": null, - "company_enterprise_value": null, - "company_total_assets": null, - "company_cash_equivalents": null - }, - { - "company_name": "Company J", - "company_id": "BR0000000010", - "region": "Asia", - "sector": "Steel", - "target_probability": 0.4285714285714285, - "historic_data": { - "productions": [ - { - "year": 2009, - "value": null - }, - { - "year": 2010, - "value": null - }, - { - "year": 2011, - "value": null - }, - { - "year": 2012, - "value": null - }, - { - "year": 2013, - "value": 15691492.9224849 - }, - { - "year": 2014, - "value": 11301980.9224849 - }, - { - "year": 2015, - "value": 11500001.9224849 - }, - { - "year": 2016, - "value": 11600001.9224849 - }, - { - "year": 2017, - "value": 3012108.92248495 - }, - { - "year": 2018, - "value": 12039001.9224849 - }, - { - "year": 2019, - "value": 11847001.9224849 - }, - { - "year": 2020, - "value": 11314001.9224849 - }, - { - "year": 2021, - "value": 11314001.9224849 - } - ], - "emissions": { - "S1": [ - { - "year": 2009, - "value": null - }, - { - "year": 2010, - "value": null - }, - { - "year": 2011, - "value": null - }, - { - "year": 2012, - "value": null - }, - { - "year": 2013, - "value": null - }, - { - "year": 2014, - "value": null - }, - { - "year": 2015, - "value": null - }, - { - "year": 2016, - "value": 23200001.9224849 - }, - { - "year": 2017, - "value": 22200001.9224849 - }, - { - "year": 2018, - "value": 22100001.9224849 - }, - { - "year": 2019, - "value": 23400001.9224849 - }, - { - "year": 2020, - "value": 23400001.9224849 - }, - { - "year": 2021, - "value": 23400001.9224849 - } - ], - "S2": [ - { - "year": 2009, - "value": null - }, - { - "year": 2010, - "value": null - }, - { - "year": 2011, - "value": null - }, - { - "year": 2012, - "value": null - }, - { - "year": 2013, - "value": null - }, - { - "year": 2014, - "value": null - }, - { - "year": 2015, - "value": null - }, - { - "year": 2016, - "value": null - }, - { - "year": 2017, - "value": null - }, - { - "year": 2018, - "value": null - }, - { - "year": 2019, - "value": null - }, - { - "year": 2020, - "value": null - }, - { - "year": 2021, - "value": null - } - ], - "S1S2": [], - "S3": [], - "S1S2S3": [] - }, - "emission_intensities": { - "S1": [ - { - "year": 2009, - "value": null - }, - { - "year": 2010, - "value": null - }, - { - "year": 2011, - "value": null - }, - { - "year": 2012, - "value": null - }, - { - "year": 2013, - "value": null - }, - { - "year": 2014, - "value": null - }, - { - "year": 2015, - "value": null - }, - { - "year": 2016, - "value": 1.99999983426857 - }, - { - "year": 2017, - "value": 7.37025203729028 - }, - { - "year": 2018, - "value": 1.83570050613659 - }, - { - "year": 2019, - "value": 1.97518343253351 - }, - { - "year": 2020, - "value": 2.06823386479905 - }, - { - "year": 2021, - "value": 2.06823386479905 - } - ], - "S2": [ - { - "year": 2009, - "value": null - }, - { - "year": 2010, - "value": null - }, - { - "year": 2011, - "value": null - }, - { - "year": 2012, - "value": null - }, - { - "year": 2013, - "value": null - }, - { - "year": 2014, - "value": null - }, - { - "year": 2015, - "value": null - }, - { - "year": 2016, - "value": null - }, - { - "year": 2017, - "value": null - }, - { - "year": 2018, - "value": null - }, - { - "year": 2019, - "value": null - }, - { - "year": 2020, - "value": null - }, - { - "year": 2021, - "value": null - } - ], - "S1S2": [], - "S3": [], - "S1S2S3": [] - } - }, - "projected_targets": null, - "projected_intensities": { - "S1S2": { - "projections": [ - { - "year": 2019, - "value": NaN - }, - { - "year": 2020, - "value": NaN - }, - { - "year": 2021, - "value": NaN - }, - { - "year": 2022, - "value": NaN - }, - { - "year": 2023, - "value": NaN - }, - { - "year": 2024, - "value": NaN - }, - { - "year": 2025, - "value": NaN - }, - { - "year": 2026, - "value": NaN - }, - { - "year": 2027, - "value": NaN - }, - { - "year": 2028, - "value": NaN - }, - { - "year": 2029, - "value": NaN - }, - { - "year": 2030, - "value": NaN - }, - { - "year": 2031, - "value": NaN - }, - { - "year": 2032, - "value": NaN - }, - { - "year": 2033, - "value": NaN - }, - { - "year": 2034, - "value": NaN - }, - { - "year": 2035, - "value": NaN - }, - { - "year": 2036, - "value": NaN - }, - { - "year": 2037, - "value": NaN - }, - { - "year": 2038, - "value": NaN - }, - { - "year": 2039, - "value": NaN - }, - { - "year": 2040, - "value": NaN - }, - { - "year": 2041, - "value": NaN - }, - { - "year": 2042, - "value": NaN - }, - { - "year": 2043, - "value": NaN - }, - { - "year": 2044, - "value": NaN - }, - { - "year": 2045, - "value": NaN - }, - { - "year": 2046, - "value": NaN - }, - { - "year": 2047, - "value": NaN - }, - { - "year": 2048, - "value": NaN - }, - { - "year": 2049, - "value": NaN - }, - { - "year": 2050, - "value": NaN - } - ] - }, - "S3": null, - "S1S2S3": null - }, - "country": null, - "ghg_s1s2": null, - "ghg_s3": null, - "industry_level_1": null, - "industry_level_2": null, - "industry_level_3": null, - "industry_level_4": null, - "company_revenue": null, - "company_market_cap": null, - "company_enterprise_value": null, - "company_total_assets": null, - "company_cash_equivalents": null - }, - { - "company_name": "Company K", - "company_id": "BR0000000011", - "region": "Europe", - "sector": "Steel", - "target_probability": 0.4285714285714285, - "historic_data": { - "productions": [ - { - "year": 2009, - "value": null - }, - { - "year": 2010, - "value": null - }, - { - "year": 2011, - "value": null - }, - { - "year": 2012, - "value": null - }, - { - "year": 2013, - "value": null - }, - { - "year": 2014, - "value": null - }, - { - "year": 2015, - "value": null - }, - { - "year": 2016, - "value": null - }, - { - "year": 2017, - "value": 15393000.0778486 - }, - { - "year": 2018, - "value": 15419000.0778486 - }, - { - "year": 2019, - "value": 14618000.0778486 - }, - { - "year": 2020, - "value": 14473000.0778486 - }, - { - "year": 2021, - "value": 14473000.0778486 - } - ], - "emissions": { - "S1": [ - { - "year": 2009, - "value": 4000000.07784856 - }, - { - "year": 2010, - "value": 6481635.07784856 - }, - { - "year": 2011, - "value": 10525000.0778486 - }, - { - "year": 2012, - "value": 9308000.07784856 - }, - { - "year": 2013, - "value": 9311000.07784856 - }, - { - "year": 2014, - "value": 9578000.07784856 - }, - { - "year": 2015, - "value": 9448000.07784856 - }, - { - "year": 2016, - "value": 9989000.07784856 - }, - { - "year": 2017, - "value": 9867000.07784856 - }, - { - "year": 2018, - "value": 9755000.07784856 - }, - { - "year": 2019, - "value": 9582000.07784856 - }, - { - "year": 2020, - "value": 9582000.07784856 - }, - { - "year": 2021, - "value": 9582000.07784856 - } - ], - "S2": [ - { - "year": 2009, - "value": 700993.077848565 - }, - { - "year": 2010, - "value": 1032496.57784856 - }, - { - "year": 2011, - "value": 1364000.07784857 - }, - { - "year": 2012, - "value": 1367000.07784857 - }, - { - "year": 2013, - "value": 1447000.07784857 - }, - { - "year": 2014, - "value": 1220000.07784857 - }, - { - "year": 2015, - "value": 1133000.07784857 - }, - { - "year": 2016, - "value": 1166000.07784857 - }, - { - "year": 2017, - "value": 1216000.07784857 - }, - { - "year": 2018, - "value": 1189000.07784857 - }, - { - "year": 2019, - "value": 1173000.07784857 - }, - { - "year": 2020, - "value": 1173000.07784857 - }, - { - "year": 2021, - "value": 1173000.07784857 - } - ], - "S1S2": [], - "S3": [], - "S1S2S3": [] - }, - "emission_intensities": { - "S1": [ - { - "year": 2009, - "value": null - }, - { - "year": 2010, - "value": null - }, - { - "year": 2011, - "value": null - }, - { - "year": 2012, - "value": null - }, - { - "year": 2013, - "value": null - }, - { - "year": 2014, - "value": null - }, - { - "year": 2015, - "value": null - }, - { - "year": 2016, - "value": null - }, - { - "year": 2017, - "value": 0.641005653735282 - }, - { - "year": 2018, - "value": 0.632661004513705 - }, - { - "year": 2019, - "value": 0.655493229362386 - }, - { - "year": 2020, - "value": 0.662060390127003 - }, - { - "year": 2021, - "value": 0.662060390127003 - } - ], - "S2": [ - { - "year": 2009, - "value": null - }, - { - "year": 2010, - "value": null - }, - { - "year": 2011, - "value": null - }, - { - "year": 2012, - "value": null - }, - { - "year": 2013, - "value": null - }, - { - "year": 2014, - "value": null - }, - { - "year": 2015, - "value": null - }, - { - "year": 2016, - "value": null - }, - { - "year": 2017, - "value": 0.0789969513219493 - }, - { - "year": 2018, - "value": 0.0771126578795937 - }, - { - "year": 2019, - "value": 0.0802435402655439 - }, - { - "year": 2020, - "value": 0.0810474726414106 - }, - { - "year": 2021, - "value": 0.0810474726414106 - } - ], - "S1S2": [], - "S3": [], - "S1S2S3": [] - } - }, - "projected_targets": null, - "projected_intensities": { - "S1S2": { - "projections": [ - { - "year": 2019, - "value": 0.7357367696279299 - }, - { - "year": 2020, - "value": 0.7431078627684136 - }, - { - "year": 2021, - "value": 0.7431078627684136 - }, - { - "year": 2022, - "value": 0.7468303335596055 - }, - { - "year": 2023, - "value": 0.7505714514267947 - }, - { - "year": 2024, - "value": 0.7543313097792954 - }, - { - "year": 2025, - "value": 0.7581100024943395 - }, - { - "year": 2026, - "value": 0.7619076239194207 - }, - { - "year": 2027, - "value": 0.7657242688746503 - }, - { - "year": 2028, - "value": 0.7695600326551245 - }, - { - "year": 2029, - "value": 0.773415011033304 - }, - { - "year": 2030, - "value": 0.7772893002614051 - }, - { - "year": 2031, - "value": 0.7811829970738029 - }, - { - "year": 2032, - "value": 0.7850961986894467 - }, - { - "year": 2033, - "value": 0.7890290028142876 - }, - { - "year": 2034, - "value": 0.7929815076437174 - }, - { - "year": 2035, - "value": 0.7969538118650213 - }, - { - "year": 2036, - "value": 0.8009460146598412 - }, - { - "year": 2037, - "value": 0.804958215706652 - }, - { - "year": 2038, - "value": 0.8089905151832515 - }, - { - "year": 2039, - "value": 0.8130430137692602 - }, - { - "year": 2040, - "value": 0.8171158126486363 - }, - { - "year": 2041, - "value": 0.8212090135122013 - }, - { - "year": 2042, - "value": 0.8253227185601795 - }, - { - "year": 2043, - "value": 0.8294570305047495 - }, - { - "year": 2044, - "value": 0.8336120525726091 - }, - { - "year": 2045, - "value": 0.8377878885075521 - }, - { - "year": 2046, - "value": 0.8419846425730594 - }, - { - "year": 2047, - "value": 0.8462024195549014 - }, - { - "year": 2048, - "value": 0.8504413247637549 - }, - { - "year": 2049, - "value": 0.8547014640378325 - }, - { - "year": 2050, - "value": 0.8589829437455252 - } - ] - }, - "S3": null, - "S1S2S3": null - }, - "country": null, - "ghg_s1s2": null, - "ghg_s3": null, - "industry_level_1": null, - "industry_level_2": null, - "industry_level_3": null, - "industry_level_4": null, - "company_revenue": null, - "company_market_cap": null, - "company_enterprise_value": null, - "company_total_assets": null, - "company_cash_equivalents": null - }, - { - "company_name": "Company L", - "company_id": "BR0000000012", - "region": "Asia", - "sector": "Steel", - "target_probability": 0.4285714285714285, - "historic_data": { - "productions": [ - { - "year": 2009, - "value": null - }, - { - "year": 2010, - "value": null - }, - { - "year": 2011, - "value": null - }, - { - "year": 2012, - "value": null - }, - { - "year": 2013, - "value": null - }, - { - "year": 2014, - "value": 9155004.34644718 - }, - { - "year": 2015, - "value": 9331004.34644718 - }, - { - "year": 2016, - "value": 20808004.3464472 - }, - { - "year": 2017, - "value": 21911004.3464472 - }, - { - "year": 2018, - "value": 25390004.3464472 - }, - { - "year": 2019, - "value": 27110004.3464472 - }, - { - "year": 2020, - "value": 30630004.3464472 - }, - { - "year": 2021, - "value": 28540004.3464472 - } - ], - "emissions": { - "S1": [ - { - "year": 2009, - "value": null - }, - { - "year": 2010, - "value": 14900657.0 - }, - { - "year": 2011, - "value": 17389874.39 - }, - { - "year": 2012, - "value": 16283032.0 - }, - { - "year": 2013, - "value": 18802944.0 - }, - { - "year": 2014, - "value": 20428595.0 - }, - { - "year": 2015, - "value": 23337931.0 - }, - { - "year": 2016, - "value": 23298343.0 - }, - { - "year": 2017, - "value": 38757404.0 - }, - { - "year": 2018, - "value": 47025134.0 - }, - { - "year": 2019, - "value": 56093007.0 - }, - { - "year": 2020, - "value": 60116322.0 - }, - { - "year": 2021, - "value": 60116322.0 - } - ], - "S2": [ - { - "year": 2009, - "value": null - }, - { - "year": 2010, - "value": 731525.0 - }, - { - "year": 2011, - "value": 853729.3263 - }, - { - "year": 2012, - "value": 789126.0 - }, - { - "year": 2013, - "value": 1174594.0 - }, - { - "year": 2014, - "value": 1266295.0 - }, - { - "year": 2015, - "value": 723978.0 - }, - { - "year": 2016, - "value": 1409816.0 - }, - { - "year": 2017, - "value": 3979125.0 - }, - { - "year": 2018, - "value": 3344945.0 - }, - { - "year": 2019, - "value": 4137575.0 - }, - { - "year": 2020, - "value": 2779523.0 - }, - { - "year": 2021, - "value": 2779523.0 - } - ], - "S1S2": [], - "S3": [], - "S1S2S3": [] - }, - "emission_intensities": { - "S1": [ - { - "year": 2009, - "value": null - }, - { - "year": 2010, - "value": null - }, - { - "year": 2011, - "value": null - }, - { - "year": 2012, - "value": null - }, - { - "year": 2013, - "value": null - }, - { - "year": 2014, - "value": 2.23141292204059 - }, - { - "year": 2015, - "value": 2.5011167215762815 - }, - { - "year": 2016, - "value": 1.1196817634257177 - }, - { - "year": 2017, - "value": 1.768855657512769 - }, - { - "year": 2018, - "value": 1.8521120894010474 - }, - { - "year": 2019, - "value": 2.0690888235638023 - }, - { - "year": 2020, - "value": 1.9626612298203263 - }, - { - "year": 2021, - "value": 2.1063879763383277 - } - ], - "S2": [ - { - "year": 2009, - "value": null - }, - { - "year": 2010, - "value": null - }, - { - "year": 2011, - "value": null - }, - { - "year": 2012, - "value": null - }, - { - "year": 2013, - "value": null - }, - { - "year": 2014, - "value": 0.13831724727595748 - }, - { - "year": 2015, - "value": 0.07758843240445577 - }, - { - "year": 2016, - "value": 0.06775354217189573 - }, - { - "year": 2017, - "value": 0.18160395283957864 - }, - { - "year": 2018, - "value": 0.13174259265016847 - }, - { - "year": 2019, - "value": 0.15262170183097867 - }, - { - "year": 2020, - "value": 0.09074510628733878 - }, - { - "year": 2021, - "value": 0.09739041964602954 - } - ], - "S1S2": [], - "S3": [], - "S1S2S3": [] - } - }, - "projected_targets": null, - "projected_intensities": { - "S1S2": { - "projections": [ - { - "year": 2019, - "value": 2.221710525394781 - }, - { - "year": 2020, - "value": 2.053406336107665 - }, - { - "year": 2021, - "value": 2.203778395984357 - }, - { - "year": 2022, - "value": 2.262080547317932 - }, - { - "year": 2023, - "value": 2.3219251136494563 - }, - { - "year": 2024, - "value": 2.3833529004032834 - }, - { - "year": 2025, - "value": 2.4464057925333744 - }, - { - "year": 2026, - "value": 2.5111267830828377 - }, - { - "year": 2027, - "value": 2.5775600024990277 - }, - { - "year": 2028, - "value": 2.6457507487241916 - }, - { - "year": 2029, - "value": 2.7157455180821772 - }, - { - "year": 2030, - "value": 2.7875920369822693 - }, - { - "year": 2031, - "value": 2.861339294461765 - }, - { - "year": 2032, - "value": 2.9370375755894824 - }, - { - "year": 2033, - "value": 3.0147384957529764 - }, - { - "year": 2034, - "value": 3.094495035852842 - }, - { - "year": 2035, - "value": 3.1763615784281005 - }, - { - "year": 2036, - "value": 3.2603939447373045 - }, - { - "year": 2037, - "value": 3.3466494328206418 - }, - { - "year": 2038, - "value": 3.4351868565689943 - }, - { - "year": 2039, - "value": 3.526066585826588 - }, - { - "year": 2040, - "value": 3.619350587554583 - }, - { - "year": 2041, - "value": 3.715102468083667 - }, - { - "year": 2042, - "value": 3.813387516484463 - }, - { - "year": 2043, - "value": 3.9142727490853275 - }, - { - "year": 2044, - "value": 4.017826955167889 - }, - { - "year": 2045, - "value": 4.124120743871487 - }, - { - "year": 2046, - "value": 4.233226592338492 - }, - { - "year": 2047, - "value": 4.3452188951333435 - }, - { - "year": 2048, - "value": 4.460174014968982 - }, - { - "year": 2049, - "value": 4.5781703347752885 - }, - { - "year": 2050, - "value": 4.699288311145017 - } - ] - }, - "S3": null, - "S1S2S3": null - }, - "country": null, - "ghg_s1s2": null, - "ghg_s3": null, - "industry_level_1": null, - "industry_level_2": null, - "industry_level_3": null, - "industry_level_4": null, - "company_revenue": null, - "company_market_cap": null, - "company_enterprise_value": null, - "company_total_assets": null, - "company_cash_equivalents": null - }, - { - "company_name": "Company M", - "company_id": "AR0000000013", - "region": "Europe", - "sector": "Steel", - "target_probability": 0.4285714285714285, - "historic_data": { - "productions": [ - { - "year": 2009, - "value": null - }, - { - "year": 2010, - "value": null - }, - { - "year": 2011, - "value": null - }, - { - "year": 2012, - "value": null - }, - { - "year": 2013, - "value": null - }, - { - "year": 2014, - "value": null - }, - { - "year": 2015, - "value": null - }, - { - "year": 2016, - "value": null - }, - { - "year": 2017, - "value": null - }, - { - "year": 2018, - "value": null - }, - { - "year": 2019, - "value": null - }, - { - "year": 2020, - "value": null - }, - { - "year": 2021, - "value": null - } - ], - "emissions": { - "S1": [ - { - "year": 2009, - "value": null - }, - { - "year": 2010, - "value": 24085969.3736674 - }, - { - "year": 2011, - "value": 30090002.3736674 - }, - { - "year": 2012, - "value": 16848002.3736674 - }, - { - "year": 2013, - "value": 26700002.3736674 - }, - { - "year": 2014, - "value": 32200002.3736674 - }, - { - "year": 2015, - "value": 32600002.3736674 - }, - { - "year": 2016, - "value": 32600002.3736674 - }, - { - "year": 2017, - "value": 22100002.3736674 - }, - { - "year": 2018, - "value": 22600002.3736674 - }, - { - "year": 2019, - "value": 22800002.3736674 - }, - { - "year": 2020, - "value": 21300002.3736674 - }, - { - "year": 2021, - "value": 21300002.3736674 - } - ], - "S2": [ - { - "year": 2009, - "value": null - }, - { - "year": 2010, - "value": 4781476.37366743 - }, - { - "year": 2011, - "value": 4287002.37366743 - }, - { - "year": 2012, - "value": 2116002.37366743 - }, - { - "year": 2013, - "value": 1800002.37366743 - }, - { - "year": 2014, - "value": 1700002.37366743 - }, - { - "year": 2015, - "value": 1200002.37366743 - }, - { - "year": 2016, - "value": 1200002.37366743 - }, - { - "year": 2017, - "value": 1300002.37366743 - }, - { - "year": 2018, - "value": 1400002.37366743 - }, - { - "year": 2019, - "value": 1300002.37366743 - }, - { - "year": 2020, - "value": 1400002.37366743 - }, - { - "year": 2021, - "value": 1400002.37366743 - } - ], - "S1S2": [], - "S3": [], - "S1S2S3": [] - }, - "emission_intensities": { - "S1": [ - { - "year": 2009, - "value": null - }, - { - "year": 2010, - "value": null - }, - { - "year": 2011, - "value": null - }, - { - "year": 2012, - "value": null - }, - { - "year": 2013, - "value": null - }, - { - "year": 2014, - "value": null - }, - { - "year": 2015, - "value": null - }, - { - "year": 2016, - "value": null - }, - { - "year": 2017, - "value": null - }, - { - "year": 2018, - "value": null - }, - { - "year": 2019, - "value": null - }, - { - "year": 2020, - "value": null - }, - { - "year": 2021, - "value": null - } - ], - "S2": [ - { - "year": 2009, - "value": null - }, - { - "year": 2010, - "value": null - }, - { - "year": 2011, - "value": null - }, - { - "year": 2012, - "value": null - }, - { - "year": 2013, - "value": null - }, - { - "year": 2014, - "value": null - }, - { - "year": 2015, - "value": null - }, - { - "year": 2016, - "value": null - }, - { - "year": 2017, - "value": null - }, - { - "year": 2018, - "value": null - }, - { - "year": 2019, - "value": null - }, - { - "year": 2020, - "value": null - }, - { - "year": 2021, - "value": null - } - ], - "S1S2": [], - "S3": [], - "S1S2S3": [] - } - }, - "projected_targets": null, - "projected_intensities": { - "S1S2": { - "projections": [ - { - "year": 2019, - "value": NaN - }, - { - "year": 2020, - "value": NaN - }, - { - "year": 2021, - "value": NaN - }, - { - "year": 2022, - "value": NaN - }, - { - "year": 2023, - "value": NaN - }, - { - "year": 2024, - "value": NaN - }, - { - "year": 2025, - "value": NaN - }, - { - "year": 2026, - "value": NaN - }, - { - "year": 2027, - "value": NaN - }, - { - "year": 2028, - "value": NaN - }, - { - "year": 2029, - "value": NaN - }, - { - "year": 2030, - "value": NaN - }, - { - "year": 2031, - "value": NaN - }, - { - "year": 2032, - "value": NaN - }, - { - "year": 2033, - "value": NaN - }, - { - "year": 2034, - "value": NaN - }, - { - "year": 2035, - "value": NaN - }, - { - "year": 2036, - "value": NaN - }, - { - "year": 2037, - "value": NaN - }, - { - "year": 2038, - "value": NaN - }, - { - "year": 2039, - "value": NaN - }, - { - "year": 2040, - "value": NaN - }, - { - "year": 2041, - "value": NaN - }, - { - "year": 2042, - "value": NaN - }, - { - "year": 2043, - "value": NaN - }, - { - "year": 2044, - "value": NaN - }, - { - "year": 2045, - "value": NaN - }, - { - "year": 2046, - "value": NaN - }, - { - "year": 2047, - "value": NaN - }, - { - "year": 2048, - "value": NaN - }, - { - "year": 2049, - "value": NaN - }, - { - "year": 2050, - "value": NaN - } - ] - }, - "S3": null, - "S1S2S3": null - }, - "country": null, - "ghg_s1s2": null, - "ghg_s3": null, - "industry_level_1": null, - "industry_level_2": null, - "industry_level_3": null, - "industry_level_4": null, - "company_revenue": null, - "company_market_cap": null, - "company_enterprise_value": null, - "company_total_assets": null, - "company_cash_equivalents": null - } -] \ No newline at end of file +[ + { + "company_name": "Company AG", + "company_id": "US0079031078", + "region": "North America", + "sector": "Electricity Utilities", + "target_probability": 0.428571428571428, + "historic_data": { + "productions": [ + { + "year": 2009, + "value": NaN + }, + { + "year": 2010, + "value": NaN + }, + { + "year": 2011, + "value": NaN + }, + { + "year": 2012, + "value": NaN + }, + { + "year": 2013, + "value": NaN + }, + { + "year": 2014, + "value": "1682769059.4097404 GJ" + }, + { + "year": 2015, + "value": "1149435381.0097404 GJ" + }, + { + "year": 2016, + "value": "1351884837.0097404 GJ" + }, + { + "year": 2017, + "value": "870361875.4897404 GJ" + }, + { + "year": 2018, + "value": "388838913.9697404 GJ" + }, + { + "year": 2019, + "value": "377380291.0897404 GJ" + }, + { + "year": 2020, + "value": "377380291.0897404 GJ" + }, + { + "year": 2021, + "value": "377380291.0897404 GJ" + } + ], + "emissions": { + "S1": [ + { + "year": 2009, + "value": "74121549.8360392 t CO2" + }, + { + "year": 2010, + "value": "77200005.8360392 t CO2" + }, + { + "year": 2011, + "value": "74010717.8360392 t CO2" + }, + { + "year": 2012, + "value": "78912218.8360392 t CO2" + }, + { + "year": 2013, + "value": "75863005.8360392 t CO2" + }, + { + "year": 2014, + "value": "79630005.8360392 t CO2" + }, + { + "year": 2015, + "value": "70339005.8360392 t CO2" + }, + { + "year": 2016, + "value": "70457005.8360392 t CO2" + }, + { + "year": 2017, + "value": "64527005.8360392 t CO2" + }, + { + "year": 2018, + "value": "54154005.8360392 t CO2" + }, + { + "year": 2019, + "value": "49092005.8360392 t CO2" + }, + { + "year": 2020, + "value": "49092005.8360392 t CO2" + }, + { + "year": 2021, + "value": "49092005.8360392 t CO2" + } + ], + "S2": [ + { + "year": 2009, + "value": NaN + }, + { + "year": 2010, + "value": NaN + }, + { + "year": 2011, + "value": NaN + }, + { + "year": 2012, + "value": "414929.856039191 t CO2" + }, + { + "year": 2013, + "value": "90005.8360391907 t CO2" + }, + { + "year": 2014, + "value": "290005.836039191 t CO2" + }, + { + "year": 2015, + "value": "367805.836039191 t CO2" + }, + { + "year": 2016, + "value": "306005.836039191 t CO2" + }, + { + "year": 2017, + "value": "226005.836039191 t CO2" + }, + { + "year": 2018, + "value": "360005.836039191 t CO2" + }, + { + "year": 2019, + "value": "359005.836039191 t CO2" + }, + { + "year": 2020, + "value": "359005.836039191 t CO2" + }, + { + "year": 2021, + "value": "359005.836039191 t CO2" + } + ], + "S1S2": [], + "S3": [], + "S1S2S3": [] + }, + "emission_intensities": { + "S1": [ + { + "year": 2009, + "value": NaN + }, + { + "year": 2010, + "value": NaN + }, + { + "year": 2011, + "value": NaN + }, + { + "year": 2012, + "value": NaN + }, + { + "year": 2013, + "value": NaN + }, + { + "year": 2014, + "value": "0.6132777815614572 t CO2/GJ" + }, + { + "year": 2015, + "value": "0.793079394192882 t CO2/GJ" + }, + { + "year": 2016, + "value": "0.6754442173157448 t CO2/GJ" + }, + { + "year": 2017, + "value": "0.9608302238244408 t CO2/GJ" + }, + { + "year": 2018, + "value": "1.8049528748804293 t CO2/GJ" + }, + { + "year": 2019, + "value": "1.6859184505842997 t CO2/GJ" + }, + { + "year": 2020, + "value": "1.6859184505842997 t CO2/GJ" + }, + { + "year": 2021, + "value": "1.6859184505842997 t CO2/GJ" + } + ], + "S2": [ + { + "year": 2009, + "value": NaN + }, + { + "year": 2010, + "value": NaN + }, + { + "year": 2011, + "value": NaN + }, + { + "year": 2012, + "value": NaN + }, + { + "year": 2013, + "value": NaN + }, + { + "year": 2014, + "value": "0.002233506501709902 t CO2/GJ" + }, + { + "year": 2015, + "value": "0.00414704794529682 t CO2/GJ" + }, + { + "year": 2016, + "value": "0.0029335602608281442 t CO2/GJ" + }, + { + "year": 2017, + "value": "0.003365307830630542 t CO2/GJ" + }, + { + "year": 2018, + "value": "0.011998993586920128 t CO2/GJ" + }, + { + "year": 2019, + "value": "0.0123289841704041 t CO2/GJ" + }, + { + "year": 2020, + "value": "0.0123289841704041 t CO2/GJ" + }, + { + "year": 2021, + "value": "0.0123289841704041 t CO2/GJ" + } + ], + "S1S2": [], + "S3": [], + "S1S2S3": [] + } + }, + "projected_targets": null, + "projected_intensities": { + "S1S2": { + "projections": [ + { + "year": 2019, + "value": "1.6982474347547039 t CO2/GJ" + }, + { + "year": 2020, + "value": "1.6982474347547039 t CO2/GJ" + }, + { + "year": 2021, + "value": "1.6982474347547039 t CO2/GJ" + }, + { + "year": 2022, + "value": "1.6982474347547039 t CO2/GJ" + }, + { + "year": 2023, + "value": "1.6982474347547039 t CO2/GJ" + }, + { + "year": 2024, + "value": "1.6982474347547039 t CO2/GJ" + }, + { + "year": 2025, + "value": "1.6982474347547039 t CO2/GJ" + }, + { + "year": 2026, + "value": "1.6982474347547039 t CO2/GJ" + }, + { + "year": 2027, + "value": "1.6982474347547039 t CO2/GJ" + }, + { + "year": 2028, + "value": "1.6982474347547039 t CO2/GJ" + }, + { + "year": 2029, + "value": "1.6982474347547039 t CO2/GJ" + }, + { + "year": 2030, + "value": "1.6982474347547039 t CO2/GJ" + }, + { + "year": 2031, + "value": "1.6982474347547039 t CO2/GJ" + }, + { + "year": 2032, + "value": "1.6982474347547039 t CO2/GJ" + }, + { + "year": 2033, + "value": "1.6982474347547039 t CO2/GJ" + }, + { + "year": 2034, + "value": "1.6982474347547039 t CO2/GJ" + }, + { + "year": 2035, + "value": "1.6982474347547039 t CO2/GJ" + }, + { + "year": 2036, + "value": "1.6982474347547039 t CO2/GJ" + }, + { + "year": 2037, + "value": "1.6982474347547039 t CO2/GJ" + }, + { + "year": 2038, + "value": "1.6982474347547039 t CO2/GJ" + }, + { + "year": 2039, + "value": "1.6982474347547039 t CO2/GJ" + }, + { + "year": 2040, + "value": "1.6982474347547039 t CO2/GJ" + }, + { + "year": 2041, + "value": "1.6982474347547039 t CO2/GJ" + }, + { + "year": 2042, + "value": "1.6982474347547039 t CO2/GJ" + }, + { + "year": 2043, + "value": "1.6982474347547039 t CO2/GJ" + }, + { + "year": 2044, + "value": "1.6982474347547039 t CO2/GJ" + }, + { + "year": 2045, + "value": "1.6982474347547039 t CO2/GJ" + }, + { + "year": 2046, + "value": "1.6982474347547039 t CO2/GJ" + }, + { + "year": 2047, + "value": "1.6982474347547039 t CO2/GJ" + }, + { + "year": 2048, + "value": "1.6982474347547039 t CO2/GJ" + }, + { + "year": 2049, + "value": "1.6982474347547039 t CO2/GJ" + }, + { + "year": 2050, + "value": "1.6982474347547039 t CO2/GJ" + } + ] + }, + "S3": null, + "S1S2S3": null + }, + "country": null, + "ghg_s1s2": null, + "ghg_s3": null, + "industry_level_1": null, + "industry_level_2": null, + "industry_level_3": null, + "industry_level_4": null, + "company_revenue": null, + "company_market_cap": null, + "company_enterprise_value": null, + "company_total_assets": null, + "company_cash_equivalents": null + }, + { + "company_name": "Company AH", + "company_id": "US00724F1012", + "region": "North America", + "sector": "Electricity Utilities", + "target_probability": 0.4285714285714285, + "historic_data": { + "productions": [ + { + "year": 2009, + "value": NaN + }, + { + "year": 2010, + "value": "2143661765.3714125 GJ" + }, + { + "year": 2011, + "value": "2114928159.0914125 GJ" + }, + { + "year": 2012, + "value": "2086194552.8114123 GJ" + }, + { + "year": 2013, + "value": "2057460946.5314126 GJ" + }, + { + "year": 2014, + "value": "2028727340.2514122 GJ" + }, + { + "year": 2015, + "value": "1885882971.9314125 GJ" + }, + { + "year": 2016, + "value": "1661622976.4114125 GJ" + }, + { + "year": 2017, + "value": "2488147559.6114125 GJ" + }, + { + "year": 2018, + "value": "2457602018.9714127 GJ" + }, + { + "year": 2019, + "value": "2156173206.8114123 GJ" + }, + { + "year": 2020, + "value": "2156173206.8114123 GJ" + }, + { + "year": 2021, + "value": "2156173206.8114123 GJ" + } + ], + "emissions": { + "S1": [], + "S2": [], + "S1S2": [], + "S3": [], + "S1S2S3": [] + }, + "emission_intensities": { + "S1": [ + { + "year": 2009, + "value": NaN + }, + { + "year": 2010, + "value": "9.020587159252296e-09 t CO2/GJ" + }, + { + "year": 2011, + "value": "9.143141676640597e-09 t CO2/GJ" + }, + { + "year": 2012, + "value": "9.269072133483565e-09 t CO2/GJ" + }, + { + "year": 2013, + "value": "0.016324063782454407 t CO2/GJ" + }, + { + "year": 2014, + "value": "0.033110525388179275 t CO2/GJ" + }, + { + "year": 2015, + "value": "0.0534276696850902 t CO2/GJ" + }, + { + "year": 2016, + "value": "0.08085133557988561 t CO2/GJ" + }, + { + "year": 2017, + "value": "0.06749219539186596 t CO2/GJ" + }, + { + "year": 2018, + "value": "0.08300080315789345 t CO2/GJ" + }, + { + "year": 2019, + "value": "0.08723928160449504 t CO2/GJ" + }, + { + "year": 2020, + "value": "0.08723928160449504 t CO2/GJ" + }, + { + "year": 2021, + "value": "0.08723928160449504 t CO2/GJ" + } + ], + "S2": [ + { + "year": 2009, + "value": NaN + }, + { + "year": 2010, + "value": "9.020587159252296e-09 t CO2/GJ" + }, + { + "year": 2011, + "value": "9.143141676640597e-09 t CO2/GJ" + }, + { + "year": 2012, + "value": "9.269072133483565e-09 t CO2/GJ" + }, + { + "year": 2013, + "value": "0.016324063782454407 t CO2/GJ" + }, + { + "year": 2014, + "value": "0.033110525388179275 t CO2/GJ" + }, + { + "year": 2015, + "value": "0.0534276696850902 t CO2/GJ" + }, + { + "year": 2016, + "value": "0.08085133557988561 t CO2/GJ" + }, + { + "year": 2017, + "value": "0.06749219539186596 t CO2/GJ" + }, + { + "year": 2018, + "value": "0.08300080315789345 t CO2/GJ" + }, + { + "year": 2019, + "value": "0.08723928160449504 t CO2/GJ" + }, + { + "year": 2020, + "value": "0.08723928160449504 t CO2/GJ" + }, + { + "year": 2021, + "value": "0.08723928160449504 t CO2/GJ" + } + ], + "S1S2": [], + "S3": [], + "S1S2S3": [] + } + }, + "projected_targets": null, + "projected_intensities": { + "S1S2": { + "projections": [ + { + "year": 2019, + "value": "0.17447856320899008 t CO2/GJ" + }, + { + "year": 2020, + "value": "0.17447856320899008 t CO2/GJ" + }, + { + "year": 2021, + "value": "0.17447856320899008 t CO2/GJ" + }, + { + "year": 2022, + "value": "0.1797129201052598 t CO2/GJ" + }, + { + "year": 2023, + "value": "0.1851043077084176 t CO2/GJ" + }, + { + "year": 2024, + "value": "0.19065743693967013 t CO2/GJ" + }, + { + "year": 2025, + "value": "0.19637716004786024 t CO2/GJ" + }, + { + "year": 2026, + "value": "0.20226847484929605 t CO2/GJ" + }, + { + "year": 2027, + "value": "0.20833652909477493 t CO2/GJ" + }, + { + "year": 2028, + "value": "0.21458662496761818 t CO2/GJ" + }, + { + "year": 2029, + "value": "0.22102422371664673 t CO2/GJ" + }, + { + "year": 2030, + "value": "0.22765495042814615 t CO2/GJ" + }, + { + "year": 2031, + "value": "0.23448459894099055 t CO2/GJ" + }, + { + "year": 2032, + "value": "0.24151913690922028 t CO2/GJ" + }, + { + "year": 2033, + "value": "0.2487647110164969 t CO2/GJ" + }, + { + "year": 2034, + "value": "0.2562276523469918 t CO2/GJ" + }, + { + "year": 2035, + "value": "0.2639144819174016 t CO2/GJ" + }, + { + "year": 2036, + "value": "0.27183191637492365 t CO2/GJ" + }, + { + "year": 2037, + "value": "0.2799868738661714 t CO2/GJ" + }, + { + "year": 2038, + "value": "0.2883864800821565 t CO2/GJ" + }, + { + "year": 2039, + "value": "0.2970380744846212 t CO2/GJ" + }, + { + "year": 2040, + "value": "0.30594921671915987 t CO2/GJ" + }, + { + "year": 2041, + "value": "0.3151276932207347 t CO2/GJ" + }, + { + "year": 2042, + "value": "0.32458152401735674 t CO2/GJ" + }, + { + "year": 2043, + "value": "0.33431896973787745 t CO2/GJ" + }, + { + "year": 2044, + "value": "0.34434853883001376 t CO2/GJ" + }, + { + "year": 2045, + "value": "0.3546789949949142 t CO2/GJ" + }, + { + "year": 2046, + "value": "0.36531936484476163 t CO2/GJ" + }, + { + "year": 2047, + "value": "0.3762789457901045 t CO2/GJ" + }, + { + "year": 2048, + "value": "0.3875673141638077 t CO2/GJ" + }, + { + "year": 2049, + "value": "0.3991943335887219 t CO2/GJ" + }, + { + "year": 2050, + "value": "0.4111701635963836 t CO2/GJ" + } + ] + }, + "S3": null, + "S1S2S3": null + }, + "country": null, + "ghg_s1s2": null, + "ghg_s3": null, + "industry_level_1": null, + "industry_level_2": null, + "industry_level_3": null, + "industry_level_4": null, + "company_revenue": null, + "company_market_cap": null, + "company_enterprise_value": null, + "company_total_assets": null, + "company_cash_equivalents": null + }, + { + "company_name": "Company AI", + "company_id": "FR0000125338", + "region": "Europe", + "sector": "Electricity Utilities", + "target_probability": 0.4285714285714285, + "historic_data": { + "productions": null, + "emissions": null, + "emission_intensities": { + "S1": [ + { + "year": 2009, + "value": NaN + }, + { + "year": 2010, + "value": "0.4605612425432028 t CO2/GJ" + }, + { + "year": 2011, + "value": "0.47676992001722285 t CO2/GJ" + }, + { + "year": 2012, + "value": "0.4935410421590952 t CO2/GJ" + }, + { + "year": 2013, + "value": "0.4271137111711944 t CO2/GJ" + }, + { + "year": 2014, + "value": "0.4050475894153404 t CO2/GJ" + }, + { + "year": 2015, + "value": "1.7660044449376848 t CO2/GJ" + }, + { + "year": 2016, + "value": "0.12641248982232864 t CO2/GJ" + }, + { + "year": 2017, + "value": "0.11422094242724208 t CO2/GJ" + }, + { + "year": 2018, + "value": "0.12432145953306709 t CO2/GJ" + }, + { + "year": 2019, + "value": "0.14432694163463483 t CO2/GJ" + }, + { + "year": 2020, + "value": "0.11410264669076498 t CO2/GJ" + }, + { + "year": 2021, + "value": "0.11410264669076498 t CO2/GJ" + } + ], + "S2": [ + { + "year": 2009, + "value": NaN + }, + { + "year": 2010, + "value": "0.019750986012689604 t CO2/GJ" + }, + { + "year": 2011, + "value": "0.019542782620390428 t CO2/GJ" + }, + { + "year": 2012, + "value": "0.016717335291559405 t CO2/GJ" + }, + { + "year": 2013, + "value": "0.012755111704326829 t CO2/GJ" + }, + { + "year": 2014, + "value": "0.016135716380506274 t CO2/GJ" + }, + { + "year": 2015, + "value": "0.0816777616053006 t CO2/GJ" + }, + { + "year": 2016, + "value": "0.07909610646488868 t CO2/GJ" + }, + { + "year": 2017, + "value": "0.08497232976008089 t CO2/GJ" + }, + { + "year": 2018, + "value": "0.078447410507817 t CO2/GJ" + }, + { + "year": 2019, + "value": "0.08024699005813475 t CO2/GJ" + }, + { + "year": 2020, + "value": "0.14391033829225056 t CO2/GJ" + }, + { + "year": 2021, + "value": "0.14391033829225056 t CO2/GJ" + } + ], + "S1S2": [], + "S3": [], + "S1S2S3": [] + } + }, + "projected_targets": null, + "projected_intensities": { + "S1S2": { + "projections": [ + { + "year": 2019, + "value": "0.22457393169276957 t CO2/GJ" + }, + { + "year": 2020, + "value": "0.2580129849830155 t CO2/GJ" + }, + { + "year": 2021, + "value": "0.2580129849830155 t CO2/GJ" + }, + { + "year": 2022, + "value": "0.2580129849830155 t CO2/GJ" + }, + { + "year": 2023, + "value": "0.2580129849830155 t CO2/GJ" + }, + { + "year": 2024, + "value": "0.2580129849830155 t CO2/GJ" + }, + { + "year": 2025, + "value": "0.2580129849830155 t CO2/GJ" + }, + { + "year": 2026, + "value": "0.2580129849830155 t CO2/GJ" + }, + { + "year": 2027, + "value": "0.2580129849830155 t CO2/GJ" + }, + { + "year": 2028, + "value": "0.2580129849830155 t CO2/GJ" + }, + { + "year": 2029, + "value": "0.2580129849830155 t CO2/GJ" + }, + { + "year": 2030, + "value": "0.2580129849830155 t CO2/GJ" + }, + { + "year": 2031, + "value": "0.2580129849830155 t CO2/GJ" + }, + { + "year": 2032, + "value": "0.2580129849830155 t CO2/GJ" + }, + { + "year": 2033, + "value": "0.2580129849830155 t CO2/GJ" + }, + { + "year": 2034, + "value": "0.2580129849830155 t CO2/GJ" + }, + { + "year": 2035, + "value": "0.2580129849830155 t CO2/GJ" + }, + { + "year": 2036, + "value": "0.2580129849830155 t CO2/GJ" + }, + { + "year": 2037, + "value": "0.2580129849830155 t CO2/GJ" + }, + { + "year": 2038, + "value": "0.2580129849830155 t CO2/GJ" + }, + { + "year": 2039, + "value": "0.2580129849830155 t CO2/GJ" + }, + { + "year": 2040, + "value": "0.2580129849830155 t CO2/GJ" + }, + { + "year": 2041, + "value": "0.2580129849830155 t CO2/GJ" + }, + { + "year": 2042, + "value": "0.2580129849830155 t CO2/GJ" + }, + { + "year": 2043, + "value": "0.2580129849830155 t CO2/GJ" + }, + { + "year": 2044, + "value": "0.2580129849830155 t CO2/GJ" + }, + { + "year": 2045, + "value": "0.2580129849830155 t CO2/GJ" + }, + { + "year": 2046, + "value": "0.2580129849830155 t CO2/GJ" + }, + { + "year": 2047, + "value": "0.2580129849830155 t CO2/GJ" + }, + { + "year": 2048, + "value": "0.2580129849830155 t CO2/GJ" + }, + { + "year": 2049, + "value": "0.2580129849830155 t CO2/GJ" + }, + { + "year": 2050, + "value": "0.2580129849830155 t CO2/GJ" + } + ] + }, + "S3": null, + "S1S2S3": null + }, + "country": null, + "ghg_s1s2": null, + "ghg_s3": null, + "industry_level_1": null, + "industry_level_2": null, + "industry_level_3": null, + "industry_level_4": null, + "company_revenue": null, + "company_market_cap": null, + "company_enterprise_value": null, + "company_total_assets": null, + "company_cash_equivalents": null + }, + { + "company_name": "Company AJ", + "company_id": "US17275R1023", + "region": "Europe", + "sector": "Electricity Utilities", + "target_probability": 0.4285714285714285, + "historic_data": { + "productions": [ + { + "year": 2009, + "value": "8015760033.846192 GJ" + }, + { + "year": 2010, + "value": "8169984033.846192 GJ" + }, + { + "year": 2011, + "value": "8141472033.846192 GJ" + }, + { + "year": 2012, + "value": "8328096033.846192 GJ" + }, + { + "year": 2013, + "value": "8474544033.846192 GJ" + }, + { + "year": 2014, + "value": "8080560033.846192 GJ" + }, + { + "year": 2015, + "value": "8026128033.846192 GJ" + }, + { + "year": 2016, + "value": "364176033.84621 GJ" + }, + { + "year": 2017, + "value": "381024033.84621 GJ" + }, + { + "year": 2018, + "value": "383616033.84621 GJ" + }, + { + "year": 2019, + "value": "360288033.84621 GJ" + }, + { + "year": 2020, + "value": "360288033.84621 GJ" + }, + { + "year": 2021, + "value": "360288033.84621 GJ" + } + ], + "emissions": { + "S1": [ + { + "year": 2009, + "value": "78192009.4017252 t CO2" + }, + { + "year": 2010, + "value": "80575879.4017252 t CO2" + }, + { + "year": 2011, + "value": "70935799.4017252 t CO2" + }, + { + "year": 2012, + "value": "80283565.4017252 t CO2" + }, + { + "year": 2013, + "value": "73222380.0683918 t CO2" + }, + { + "year": 2014, + "value": "66161194.7350585 t CO2" + }, + { + "year": 2015, + "value": "59100009.4017252 t CO2" + }, + { + "year": 2016, + "value": "47700009.4017252 t CO2" + }, + { + "year": 2017, + "value": "51300009.4017252 t CO2" + }, + { + "year": 2018, + "value": "35700009.4017252 t CO2" + }, + { + "year": 2019, + "value": "33100009.4017252 t CO2" + }, + { + "year": 2020, + "value": "33100009.4017252 t CO2" + }, + { + "year": 2021, + "value": "33100009.4017252 t CO2" + } + ], + "S2": [ + { + "year": 2009, + "value": "480089.401725152 t CO2" + }, + { + "year": 2010, + "value": "670709.401725152 t CO2" + }, + { + "year": 2011, + "value": "81181.4017251516 t CO2" + }, + { + "year": 2012, + "value": "74013.4017251516 t CO2" + }, + { + "year": 2013, + "value": "159212.601725152 t CO2" + }, + { + "year": 2014, + "value": "244411.801725152 t CO2" + }, + { + "year": 2015, + "value": "329611.001725152 t CO2" + }, + { + "year": 2016, + "value": "414810.201725152 t CO2" + }, + { + "year": 2017, + "value": "500009.401725152 t CO2" + }, + { + "year": 2018, + "value": "470009.401725152 t CO2" + }, + { + "year": 2019, + "value": "290009.401725152 t CO2" + }, + { + "year": 2020, + "value": "290009.401725152 t CO2" + }, + { + "year": 2021, + "value": "290009.401725152 t CO2" + } + ], + "S1S2": [], + "S3": [], + "S1S2S3": [] + }, + "emission_intensities": { + "S1": [ + { + "year": 2009, + "value": "0.12642200334933337 t CO2/GJ" + }, + { + "year": 2010, + "value": "0.12781706704936452 t CO2/GJ" + }, + { + "year": 2011, + "value": "0.1129191326119494 t CO2/GJ" + }, + { + "year": 2012, + "value": "0.12493551988086661 t CO2/GJ" + }, + { + "year": 2013, + "value": "0.11197794735579024 t CO2/GJ" + }, + { + "year": 2014, + "value": "0.10611258132788423 t CO2/GJ" + }, + { + "year": 2015, + "value": "0.09543033933877008 t CO2/GJ" + }, + { + "year": 2016, + "value": "1.6975090736130565 t CO2/GJ" + }, + { + "year": 2017, + "value": "1.7448981239716346 t CO2/GJ" + }, + { + "year": 2018, + "value": "1.2060812922950988 t CO2/GJ" + }, + { + "year": 2019, + "value": "1.1906477083539972 t CO2/GJ" + }, + { + "year": 2020, + "value": "1.1906477083539972 t CO2/GJ" + }, + { + "year": 2021, + "value": "1.1906477083539972 t CO2/GJ" + } + ], + "S2": [ + { + "year": 2009, + "value": "0.0007762156826159988 t CO2/GJ" + }, + { + "year": 2010, + "value": "0.001063942574471082 t CO2/GJ" + }, + { + "year": 2011, + "value": "0.000129228591830085 t CO2/GJ" + }, + { + "year": 2012, + "value": "0.0001151780289828102 t CO2/GJ" + }, + { + "year": 2013, + "value": "0.00024348157377164316 t CO2/GJ" + }, + { + "year": 2014, + "value": "0.0003919996803551076 t CO2/GJ" + }, + { + "year": 2015, + "value": "0.0005322315522932028 t CO2/GJ" + }, + { + "year": 2016, + "value": "0.01476192751505496 t CO2/GJ" + }, + { + "year": 2017, + "value": "0.017007120996922403 t CO2/GJ" + }, + { + "year": 2018, + "value": "0.01587869460326034 t CO2/GJ" + }, + { + "year": 2019, + "value": "0.010431991887807995 t CO2/GJ" + }, + { + "year": 2020, + "value": "0.010431991887807995 t CO2/GJ" + }, + { + "year": 2021, + "value": "0.010431991887807995 t CO2/GJ" + } + ], + "S1S2": [], + "S3": [], + "S1S2S3": [] + } + }, + "projected_targets": null, + "projected_intensities": { + "S1S2": { + "projections": [ + { + "year": 2019, + "value": "1.2010797002418052 t CO2/GJ" + }, + { + "year": 2020, + "value": "1.2010797002418052 t CO2/GJ" + }, + { + "year": 2021, + "value": "1.2010797002418052 t CO2/GJ" + }, + { + "year": 2022, + "value": "1.2010797002418052 t CO2/GJ" + }, + { + "year": 2023, + "value": "1.2010797002418052 t CO2/GJ" + }, + { + "year": 2024, + "value": "1.2010797002418052 t CO2/GJ" + }, + { + "year": 2025, + "value": "1.2010797002418052 t CO2/GJ" + }, + { + "year": 2026, + "value": "1.2010797002418052 t CO2/GJ" + }, + { + "year": 2027, + "value": "1.2010797002418052 t CO2/GJ" + }, + { + "year": 2028, + "value": "1.2010797002418052 t CO2/GJ" + }, + { + "year": 2029, + "value": "1.2010797002418052 t CO2/GJ" + }, + { + "year": 2030, + "value": "1.2010797002418052 t CO2/GJ" + }, + { + "year": 2031, + "value": "1.2010797002418052 t CO2/GJ" + }, + { + "year": 2032, + "value": "1.2010797002418052 t CO2/GJ" + }, + { + "year": 2033, + "value": "1.2010797002418052 t CO2/GJ" + }, + { + "year": 2034, + "value": "1.2010797002418052 t CO2/GJ" + }, + { + "year": 2035, + "value": "1.2010797002418052 t CO2/GJ" + }, + { + "year": 2036, + "value": "1.2010797002418052 t CO2/GJ" + }, + { + "year": 2037, + "value": "1.2010797002418052 t CO2/GJ" + }, + { + "year": 2038, + "value": "1.2010797002418052 t CO2/GJ" + }, + { + "year": 2039, + "value": "1.2010797002418052 t CO2/GJ" + }, + { + "year": 2040, + "value": "1.2010797002418052 t CO2/GJ" + }, + { + "year": 2041, + "value": "1.2010797002418052 t CO2/GJ" + }, + { + "year": 2042, + "value": "1.2010797002418052 t CO2/GJ" + }, + { + "year": 2043, + "value": "1.2010797002418052 t CO2/GJ" + }, + { + "year": 2044, + "value": "1.2010797002418052 t CO2/GJ" + }, + { + "year": 2045, + "value": "1.2010797002418052 t CO2/GJ" + }, + { + "year": 2046, + "value": "1.2010797002418052 t CO2/GJ" + }, + { + "year": 2047, + "value": "1.2010797002418052 t CO2/GJ" + }, + { + "year": 2048, + "value": "1.2010797002418052 t CO2/GJ" + }, + { + "year": 2049, + "value": "1.2010797002418052 t CO2/GJ" + }, + { + "year": 2050, + "value": "1.2010797002418052 t CO2/GJ" + } + ] + }, + "S3": null, + "S1S2S3": null + }, + "country": null, + "ghg_s1s2": null, + "ghg_s3": null, + "industry_level_1": null, + "industry_level_2": null, + "industry_level_3": null, + "industry_level_4": null, + "company_revenue": null, + "company_market_cap": null, + "company_enterprise_value": null, + "company_total_assets": null, + "company_cash_equivalents": null + }, + { + "company_name": "Company AK", + "company_id": "CH0198251305", + "region": "Europe", + "sector": "Electricity Utilities", + "target_probability": 0.4285714285714285, + "historic_data": { + "productions": [ + { + "year": 2009, + "value": NaN + }, + { + "year": 2010, + "value": "3760992023.3008924 GJ" + }, + { + "year": 2011, + "value": "3808944023.3008924 GJ" + }, + { + "year": 2012, + "value": "3833568023.3008924 GJ" + }, + { + "year": 2013, + "value": "3708452183.3008924 GJ" + }, + { + "year": 2014, + "value": "3668988983.3008924 GJ" + }, + { + "year": 2015, + "value": "3680795543.3008924 GJ" + }, + { + "year": 2016, + "value": "3393083543.3008957 GJ" + }, + { + "year": 2017, + "value": "3238392983.3008957 GJ" + }, + { + "year": 2018, + "value": "3244393463.3008957 GJ" + }, + { + "year": 2019, + "value": "2969511863.3008957 GJ" + }, + { + "year": 2020, + "value": "2684119703.3008957 GJ" + }, + { + "year": 2021, + "value": "2684119703.3008957 GJ" + } + ], + "emissions": { + "S1": [ + { + "year": 2009, + "value": NaN + }, + { + "year": 2010, + "value": "116400006.472471 t CO2" + }, + { + "year": 2011, + "value": "123540195.472471 t CO2" + }, + { + "year": 2012, + "value": "127800006.472471 t CO2" + }, + { + "year": 2013, + "value": "115550006.472471 t CO2" + }, + { + "year": 2014, + "value": "115480006.472471 t CO2" + }, + { + "year": 2015, + "value": "119510006.472471 t CO2" + }, + { + "year": 2016, + "value": "106730006.472471 t CO2" + }, + { + "year": 2017, + "value": "105960006.472471 t CO2" + }, + { + "year": 2018, + "value": "95230006.4724713 t CO2" + }, + { + "year": 2019, + "value": "69980006.4724713 t CO2" + }, + { + "year": 2020, + "value": "45260006.4724712 t CO2" + }, + { + "year": 2021, + "value": "45260006.4724712 t CO2" + } + ], + "S2": [ + { + "year": 2009, + "value": NaN + }, + { + "year": 2010, + "value": "245006.472471246 t CO2" + }, + { + "year": 2011, + "value": "331647.472471246 t CO2" + }, + { + "year": 2012, + "value": "370006.472471246 t CO2" + }, + { + "year": 2013, + "value": "786006.472471246 t CO2" + }, + { + "year": 2014, + "value": "636006.472471246 t CO2" + }, + { + "year": 2015, + "value": "654006.472471246 t CO2" + }, + { + "year": 2016, + "value": "1400006.47247125 t CO2" + }, + { + "year": 2017, + "value": "5000006.47247125 t CO2" + }, + { + "year": 2018, + "value": "5080006.47247125 t CO2" + }, + { + "year": 2019, + "value": "5370006.47247125 t CO2" + }, + { + "year": 2020, + "value": "5000006.47247125 t CO2" + }, + { + "year": 2021, + "value": "5000006.47247125 t CO2" + } + ], + "S1S2": [], + "S3": [], + "S1S2S3": [] + }, + "emission_intensities": { + "S1": [ + { + "year": 2009, + "value": NaN + }, + { + "year": 2010, + "value": "0.401102707620006 t CO2/GJ" + }, + { + "year": 2011, + "value": "0.4203477193491828 t CO2/GJ" + }, + { + "year": 2012, + "value": "0.43204870079677804 t CO2/GJ" + }, + { + "year": 2013, + "value": "0.4038148558653588 t CO2/GJ" + }, + { + "year": 2014, + "value": "0.40791097784566077 t CO2/GJ" + }, + { + "year": 2015, + "value": "0.42079209933357004 t CO2/GJ" + }, + { + "year": 2016, + "value": "0.4076589527582292 t CO2/GJ" + }, + { + "year": 2017, + "value": "0.4240503518147712 t CO2/GJ" + }, + { + "year": 2018, + "value": "0.380404195065648 t CO2/GJ" + }, + { + "year": 2019, + "value": "0.3054174981052529 t CO2/GJ" + }, + { + "year": 2020, + "value": "0.21853335496247459 t CO2/GJ" + }, + { + "year": 2021, + "value": "0.21853335496247459 t CO2/GJ" + } + ], + "S2": [ + { + "year": 2009, + "value": NaN + }, + { + "year": 2010, + "value": "0.0008442676462899023 t CO2/GJ" + }, + { + "year": 2011, + "value": "0.001128436442471657 t CO2/GJ" + }, + { + "year": 2012, + "value": "0.0012508670392910783 t CO2/GJ" + }, + { + "year": 2013, + "value": "0.0027468721126020315 t CO2/GJ" + }, + { + "year": 2014, + "value": "0.00224657090025156 t CO2/GJ" + }, + { + "year": 2015, + "value": "0.0023027423782485457 t CO2/GJ" + }, + { + "year": 2016, + "value": "0.005347373164168032 t CO2/GJ" + }, + { + "year": 2017, + "value": "0.020009950681518757 t CO2/GJ" + }, + { + "year": 2018, + "value": "0.020292509101606883 t CO2/GJ" + }, + { + "year": 2019, + "value": "0.023436607458394043 t CO2/GJ" + }, + { + "year": 2020, + "value": "0.024142024591353756 t CO2/GJ" + }, + { + "year": 2021, + "value": "0.024142024591353756 t CO2/GJ" + } + ], + "S1S2": [], + "S3": [], + "S1S2S3": [] + } + }, + "projected_targets": null, + "projected_intensities": { + "S1S2": { + "projections": [ + { + "year": 2019, + "value": "0.32885410556364697 t CO2/GJ" + }, + { + "year": 2020, + "value": "0.24267537955382834 t CO2/GJ" + }, + { + "year": 2021, + "value": "0.24267537955382834 t CO2/GJ" + }, + { + "year": 2022, + "value": "0.24267537955382834 t CO2/GJ" + }, + { + "year": 2023, + "value": "0.24267537955382834 t CO2/GJ" + }, + { + "year": 2024, + "value": "0.24267537955382834 t CO2/GJ" + }, + { + "year": 2025, + "value": "0.24267537955382834 t CO2/GJ" + }, + { + "year": 2026, + "value": "0.24267537955382834 t CO2/GJ" + }, + { + "year": 2027, + "value": "0.24267537955382834 t CO2/GJ" + }, + { + "year": 2028, + "value": "0.24267537955382834 t CO2/GJ" + }, + { + "year": 2029, + "value": "0.24267537955382834 t CO2/GJ" + }, + { + "year": 2030, + "value": "0.24267537955382834 t CO2/GJ" + }, + { + "year": 2031, + "value": "0.24267537955382834 t CO2/GJ" + }, + { + "year": 2032, + "value": "0.24267537955382834 t CO2/GJ" + }, + { + "year": 2033, + "value": "0.24267537955382834 t CO2/GJ" + }, + { + "year": 2034, + "value": "0.24267537955382834 t CO2/GJ" + }, + { + "year": 2035, + "value": "0.24267537955382834 t CO2/GJ" + }, + { + "year": 2036, + "value": "0.24267537955382834 t CO2/GJ" + }, + { + "year": 2037, + "value": "0.24267537955382834 t CO2/GJ" + }, + { + "year": 2038, + "value": "0.24267537955382834 t CO2/GJ" + }, + { + "year": 2039, + "value": "0.24267537955382834 t CO2/GJ" + }, + { + "year": 2040, + "value": "0.24267537955382834 t CO2/GJ" + }, + { + "year": 2041, + "value": "0.24267537955382834 t CO2/GJ" + }, + { + "year": 2042, + "value": "0.24267537955382834 t CO2/GJ" + }, + { + "year": 2043, + "value": "0.24267537955382834 t CO2/GJ" + }, + { + "year": 2044, + "value": "0.24267537955382834 t CO2/GJ" + }, + { + "year": 2045, + "value": "0.24267537955382834 t CO2/GJ" + }, + { + "year": 2046, + "value": "0.24267537955382834 t CO2/GJ" + }, + { + "year": 2047, + "value": "0.24267537955382834 t CO2/GJ" + }, + { + "year": 2048, + "value": "0.24267537955382834 t CO2/GJ" + }, + { + "year": 2049, + "value": "0.24267537955382834 t CO2/GJ" + }, + { + "year": 2050, + "value": "0.24267537955382834 t CO2/GJ" + } + ] + }, + "S3": null, + "S1S2S3": null + }, + "country": null, + "ghg_s1s2": null, + "ghg_s3": null, + "industry_level_1": null, + "industry_level_2": null, + "industry_level_3": null, + "industry_level_4": null, + "company_revenue": null, + "company_market_cap": null, + "company_enterprise_value": null, + "company_total_assets": null, + "company_cash_equivalents": null + }, + { + "company_name": "Company AL", + "company_id": "US1266501006", + "region": "Europe", + "sector": "Electricity Utilities", + "target_probability": 0.4285714285714285, + "historic_data": { + "productions": [ + { + "year": 2009, + "value": NaN + }, + { + "year": 2010, + "value": "4341600001.354788 GJ" + }, + { + "year": 2011, + "value": "6026400001.354788 GJ" + }, + { + "year": 2012, + "value": "6039360001.354788 GJ" + }, + { + "year": 2013, + "value": "6207840001.354788 GJ" + }, + { + "year": 2014, + "value": "6091200001.354788 GJ" + }, + { + "year": 2015, + "value": "6363360001.354788 GJ" + }, + { + "year": 2016, + "value": "3563902801.354802 GJ" + }, + { + "year": 2017, + "value": "764445601.3548025 GJ" + }, + { + "year": 2018, + "value": "739614241.3548025 GJ" + }, + { + "year": 2019, + "value": "797765761.3548025 GJ" + }, + { + "year": 2020, + "value": "718528321.3548025 GJ" + }, + { + "year": 2021, + "value": "718528321.3548025 GJ" + } + ], + "emissions": { + "S1": [ + { + "year": 2009, + "value": NaN + }, + { + "year": 2010, + "value": "109324454.376334 t CO2" + }, + { + "year": 2011, + "value": "156899254.376334 t CO2" + }, + { + "year": 2012, + "value": "154230874.376334 t CO2" + }, + { + "year": 2013, + "value": "141984778.376334 t CO2" + }, + { + "year": 2014, + "value": "131154736.376334 t CO2" + }, + { + "year": 2015, + "value": "133757296.376334 t CO2" + }, + { + "year": 2016, + "value": "120150105.376334 t CO2" + }, + { + "year": 2017, + "value": "89756230.3763341 t CO2" + }, + { + "year": 2018, + "value": "57205670.3763341 t CO2" + }, + { + "year": 2019, + "value": "46188978.3763341 t CO2" + }, + { + "year": 2020, + "value": "38589016.3763341 t CO2" + }, + { + "year": 2021, + "value": "38589016.3763341 t CO2" + } + ], + "S2": [ + { + "year": 2009, + "value": NaN + }, + { + "year": 2010, + "value": "3250751.37633413 t CO2" + }, + { + "year": 2011, + "value": "3357343.37633413 t CO2" + }, + { + "year": 2012, + "value": "3712790.37633413 t CO2" + }, + { + "year": 2013, + "value": "3748376.12633413 t CO2" + }, + { + "year": 2014, + "value": "3783961.87633413 t CO2" + }, + { + "year": 2015, + "value": "3819547.62633413 t CO2" + }, + { + "year": 2016, + "value": "3855133.37633413 t CO2" + }, + { + "year": 2017, + "value": "3576861.37633413 t CO2" + }, + { + "year": 2018, + "value": "2912586.37633413 t CO2" + }, + { + "year": 2019, + "value": "2534464.37633413 t CO2" + }, + { + "year": 2020, + "value": "2330625.37633413 t CO2" + }, + { + "year": 2021, + "value": "2330625.37633413 t CO2" + } + ], + "S1S2": [], + "S3": [], + "S1S2S3": [] + }, + "emission_intensities": { + "S1": [ + { + "year": 2009, + "value": NaN + }, + { + "year": 2010, + "value": "0.3263416547528934 t CO2/GJ" + }, + { + "year": 2011, + "value": "0.33741775127109996 t CO2/GJ" + }, + { + "year": 2012, + "value": "0.3309675415058707 t CO2/GJ" + }, + { + "year": 2013, + "value": "0.2964191614725413 t CO2/GJ" + }, + { + "year": 2014, + "value": "0.2790526305258781 t CO2/GJ" + }, + { + "year": 2015, + "value": "0.27241811883473793 t CO2/GJ" + }, + { + "year": 2016, + "value": "0.4369213899675792 t CO2/GJ" + }, + { + "year": 2017, + "value": "1.521678905098956 t CO2/GJ" + }, + { + "year": 2018, + "value": "1.0023948250634593 t CO2/GJ" + }, + { + "year": 2019, + "value": "0.750357045582786 t CO2/GJ" + }, + { + "year": 2020, + "value": "0.6960249684999396 t CO2/GJ" + }, + { + "year": 2021, + "value": "0.6960249684999396 t CO2/GJ" + } + ], + "S2": [ + { + "year": 2009, + "value": NaN + }, + { + "year": 2010, + "value": "0.009703735448715611 t CO2/GJ" + }, + { + "year": 2011, + "value": "0.007220093280815844 t CO2/GJ" + }, + { + "year": 2012, + "value": "0.007967361320818128 t CO2/GJ" + }, + { + "year": 2013, + "value": "0.007825419886254877 t CO2/GJ" + }, + { + "year": 2014, + "value": "0.008050982713813836 t CO2/GJ" + }, + { + "year": 2015, + "value": "0.0077791194002462755 t CO2/GJ" + }, + { + "year": 2016, + "value": "0.014019049155408301 t CO2/GJ" + }, + { + "year": 2017, + "value": "0.06064018597940113 t CO2/GJ" + }, + { + "year": 2018, + "value": "0.05103622581434676 t CO2/GJ" + }, + { + "year": 2019, + "value": "0.04117331165166648 t CO2/GJ" + }, + { + "year": 2020, + "value": "0.04203718069224924 t CO2/GJ" + }, + { + "year": 2021, + "value": "0.04203718069224924 t CO2/GJ" + } + ], + "S1S2": [], + "S3": [], + "S1S2S3": [] + } + }, + "projected_targets": null, + "projected_intensities": { + "S1S2": { + "projections": [ + { + "year": 2019, + "value": "0.7915303572344525 t CO2/GJ" + }, + { + "year": 2020, + "value": "0.7380621491921888 t CO2/GJ" + }, + { + "year": 2021, + "value": "0.7380621491921888 t CO2/GJ" + }, + { + "year": 2022, + "value": "0.7380621491921888 t CO2/GJ" + }, + { + "year": 2023, + "value": "0.7380621491921888 t CO2/GJ" + }, + { + "year": 2024, + "value": "0.7380621491921888 t CO2/GJ" + }, + { + "year": 2025, + "value": "0.7380621491921888 t CO2/GJ" + }, + { + "year": 2026, + "value": "0.7380621491921888 t CO2/GJ" + }, + { + "year": 2027, + "value": "0.7380621491921888 t CO2/GJ" + }, + { + "year": 2028, + "value": "0.7380621491921888 t CO2/GJ" + }, + { + "year": 2029, + "value": "0.7380621491921888 t CO2/GJ" + }, + { + "year": 2030, + "value": "0.7380621491921888 t CO2/GJ" + }, + { + "year": 2031, + "value": "0.7380621491921888 t CO2/GJ" + }, + { + "year": 2032, + "value": "0.7380621491921888 t CO2/GJ" + }, + { + "year": 2033, + "value": "0.7380621491921888 t CO2/GJ" + }, + { + "year": 2034, + "value": "0.7380621491921888 t CO2/GJ" + }, + { + "year": 2035, + "value": "0.7380621491921888 t CO2/GJ" + }, + { + "year": 2036, + "value": "0.7380621491921888 t CO2/GJ" + }, + { + "year": 2037, + "value": "0.7380621491921888 t CO2/GJ" + }, + { + "year": 2038, + "value": "0.7380621491921888 t CO2/GJ" + }, + { + "year": 2039, + "value": "0.7380621491921888 t CO2/GJ" + }, + { + "year": 2040, + "value": "0.7380621491921888 t CO2/GJ" + }, + { + "year": 2041, + "value": "0.7380621491921888 t CO2/GJ" + }, + { + "year": 2042, + "value": "0.7380621491921888 t CO2/GJ" + }, + { + "year": 2043, + "value": "0.7380621491921888 t CO2/GJ" + }, + { + "year": 2044, + "value": "0.7380621491921888 t CO2/GJ" + }, + { + "year": 2045, + "value": "0.7380621491921888 t CO2/GJ" + }, + { + "year": 2046, + "value": "0.7380621491921888 t CO2/GJ" + }, + { + "year": 2047, + "value": "0.7380621491921888 t CO2/GJ" + }, + { + "year": 2048, + "value": "0.7380621491921888 t CO2/GJ" + }, + { + "year": 2049, + "value": "0.7380621491921888 t CO2/GJ" + }, + { + "year": 2050, + "value": "0.7380621491921888 t CO2/GJ" + } + ] + }, + "S3": null, + "S1S2S3": null + }, + "country": null, + "ghg_s1s2": null, + "ghg_s3": null, + "industry_level_1": null, + "industry_level_2": null, + "industry_level_3": null, + "industry_level_4": null, + "company_revenue": null, + "company_market_cap": null, + "company_enterprise_value": null, + "company_total_assets": null, + "company_cash_equivalents": null + }, + { + "company_name": "Company AM", + "company_id": "FR0000120644", + "region": "Europe", + "sector": "Electricity Utilities", + "target_probability": 0.4285714285714285, + "historic_data": { + "productions": [ + { + "year": 2009, + "value": NaN + }, + { + "year": 2010, + "value": "1990487529.3093767 GJ" + }, + { + "year": 2011, + "value": "1881092169.3093767 GJ" + }, + { + "year": 2012, + "value": "1746463689.3093767 GJ" + }, + { + "year": 2013, + "value": "1768197609.3093767 GJ" + }, + { + "year": 2014, + "value": "1800040329.3093767 GJ" + }, + { + "year": 2015, + "value": "1741487049.3093767 GJ" + }, + { + "year": 2016, + "value": "1846359369.3093767 GJ" + }, + { + "year": 2017, + "value": "1782635049.3093767 GJ" + }, + { + "year": 2018, + "value": "1492136649.3093767 GJ" + }, + { + "year": 2019, + "value": "1480680009.3093767 GJ" + }, + { + "year": 2020, + "value": "1600080489.3093767 GJ" + }, + { + "year": 2021, + "value": "1600080489.3093767 GJ" + } + ], + "emissions": { + "S1": [ + { + "year": 2009, + "value": NaN + }, + { + "year": 2010, + "value": "39499002.5859383 t CO2" + }, + { + "year": 2011, + "value": "36193002.5859383 t CO2" + }, + { + "year": 2012, + "value": "35461094.5859383 t CO2" + }, + { + "year": 2013, + "value": "31838172.5859383 t CO2" + }, + { + "year": 2014, + "value": "30202558.5859383 t CO2" + }, + { + "year": 2015, + "value": "31817606.5859383 t CO2" + }, + { + "year": 2016, + "value": "26625135.5859383 t CO2" + }, + { + "year": 2017, + "value": "15129771.5859383 t CO2" + }, + { + "year": 2018, + "value": "13457443.5859383 t CO2" + }, + { + "year": 2019, + "value": "12966980.5859383 t CO2" + }, + { + "year": 2020, + "value": "13136322.5859383 t CO2" + }, + { + "year": 2021, + "value": "13136322.5859383 t CO2" + } + ], + "S2": [ + { + "year": 2009, + "value": NaN + }, + { + "year": 2010, + "value": "6236002.58593829 t CO2" + }, + { + "year": 2011, + "value": "5189002.58593829 t CO2" + }, + { + "year": 2012, + "value": "7189303.58593829 t CO2" + }, + { + "year": 2013, + "value": "4181124.58593829 t CO2" + }, + { + "year": 2014, + "value": "1547095.58593829 t CO2" + }, + { + "year": 2015, + "value": "970947.585938292 t CO2" + }, + { + "year": 2016, + "value": "4503672.58593829 t CO2" + }, + { + "year": 2017, + "value": "5010565.58593829 t CO2" + }, + { + "year": 2018, + "value": "2543866.58593829 t CO2" + }, + { + "year": 2019, + "value": "2081746.58593829 t CO2" + }, + { + "year": 2020, + "value": "2001731.58593829 t CO2" + }, + { + "year": 2021, + "value": "2001731.58593829 t CO2" + } + ], + "S1S2": [], + "S3": [], + "S1S2S3": [] + }, + "emission_intensities": { + "S1": [ + { + "year": 2009, + "value": NaN + }, + { + "year": 2010, + "value": "0.2571767298091901 t CO2/GJ" + }, + { + "year": 2011, + "value": "0.2493558376174469 t CO2/GJ" + }, + { + "year": 2012, + "value": "0.26314648775520477 t CO2/GJ" + }, + { + "year": 2013, + "value": "0.2333578071485585 t CO2/GJ" + }, + { + "year": 2014, + "value": "0.21745354973459868 t CO2/GJ" + }, + { + "year": 2015, + "value": "0.23678394939387504 t CO2/GJ" + }, + { + "year": 2016, + "value": "0.18688764653807832 t CO2/GJ" + }, + { + "year": 2017, + "value": "0.10999550347095743 t CO2/GJ" + }, + { + "year": 2018, + "value": "0.11688505134867072 t CO2/GJ" + }, + { + "year": 2019, + "value": "0.11349654708456793 t CO2/GJ" + }, + { + "year": 2020, + "value": "0.1063988604643518 t CO2/GJ" + }, + { + "year": 2021, + "value": "0.1063988604643518 t CO2/GJ" + } + ], + "S2": [ + { + "year": 2009, + "value": NaN + }, + { + "year": 2010, + "value": "0.0406024113809952 t CO2/GJ" + }, + { + "year": 2011, + "value": "0.03575022777243828 t CO2/GJ" + }, + { + "year": 2012, + "value": "0.05334973469193888 t CO2/GJ" + }, + { + "year": 2013, + "value": "0.030645542301646213 t CO2/GJ" + }, + { + "year": 2014, + "value": "0.011138838651161208 t CO2/GJ" + }, + { + "year": 2015, + "value": "0.007225710187595436 t CO2/GJ" + }, + { + "year": 2016, + "value": "0.03161226231683834 t CO2/GJ" + }, + { + "year": 2017, + "value": "0.036427495363629124 t CO2/GJ" + }, + { + "year": 2018, + "value": "0.02209483358579754 t CO2/GJ" + }, + { + "year": 2019, + "value": "0.018220976567613723 t CO2/GJ" + }, + { + "year": 2020, + "value": "0.01621321022729142 t CO2/GJ" + }, + { + "year": 2021, + "value": "0.01621321022729142 t CO2/GJ" + } + ], + "S1S2": [], + "S3": [], + "S1S2S3": [] + } + }, + "projected_targets": null, + "projected_intensities": { + "S1S2": { + "projections": [ + { + "year": 2019, + "value": "0.13171752365218165 t CO2/GJ" + }, + { + "year": 2020, + "value": "0.12261207069164323 t CO2/GJ" + }, + { + "year": 2021, + "value": "0.12261207069164323 t CO2/GJ" + }, + { + "year": 2022, + "value": "0.11620500570269289 t CO2/GJ" + }, + { + "year": 2023, + "value": "0.11013274039162965 t CO2/GJ" + }, + { + "year": 2024, + "value": "0.10437777987983021 t CO2/GJ" + }, + { + "year": 2025, + "value": "0.0989235434794494 t CO2/GJ" + }, + { + "year": 2026, + "value": "0.09375431692259552 t CO2/GJ" + }, + { + "year": 2027, + "value": "0.08885520708675897 t CO2/GJ" + }, + { + "year": 2028, + "value": "0.0842120990860529 t CO2/GJ" + }, + { + "year": 2029, + "value": "0.07981161560464115 t CO2/GJ" + }, + { + "year": 2030, + "value": "0.07564107835518817 t CO2/GJ" + }, + { + "year": 2031, + "value": "0.07168847155128884 t CO2/GJ" + }, + { + "year": 2032, + "value": "0.06794240728863765 t CO2/GJ" + }, + { + "year": 2033, + "value": "0.064392092735197 t CO2/GJ" + }, + { + "year": 2034, + "value": "0.06102729903583536 t CO2/GJ" + }, + { + "year": 2035, + "value": "0.05783833184184642 t CO2/GJ" + }, + { + "year": 2036, + "value": "0.05481600338044117 t CO2/GJ" + }, + { + "year": 2037, + "value": "0.05195160598374223 t CO2/GJ" + }, + { + "year": 2038, + "value": "0.04923688700101434 t CO2/GJ" + }, + { + "year": 2039, + "value": "0.0466640250218503 t CO2/GJ" + }, + { + "year": 2040, + "value": "0.04422560734180881 t CO2/GJ" + }, + { + "year": 2041, + "value": "0.041914608605580134 t CO2/GJ" + }, + { + "year": 2042, + "value": "0.039724370566148075 t CO2/GJ" + }, + { + "year": 2043, + "value": "0.037648582901632234 t CO2/GJ" + }, + { + "year": 2044, + "value": "0.03568126503454166 t CO2/GJ" + }, + { + "year": 2045, + "value": "0.033816748901059124 t CO2/GJ" + }, + { + "year": 2046, + "value": "0.03204966262071244 t CO2/GJ" + }, + { + "year": 2047, + "value": "0.030374915019383227 t CO2/GJ" + }, + { + "year": 2048, + "value": "0.028787680961062274 t CO2/GJ" + }, + { + "year": 2049, + "value": "0.027283387446090542 t CO2/GJ" + }, + { + "year": 2050, + "value": "0.025857700435833336 t CO2/GJ" + } + ] + }, + "S3": null, + "S1S2S3": null + }, + "country": null, + "ghg_s1s2": null, + "ghg_s3": null, + "industry_level_1": null, + "industry_level_2": null, + "industry_level_3": null, + "industry_level_4": null, + "company_revenue": null, + "company_market_cap": null, + "company_enterprise_value": null, + "company_total_assets": null, + "company_cash_equivalents": null + }, + { + "company_name": "Company AN", + "company_id": "US24703L1035", + "region": "Asia", + "sector": "Electricity Utilities", + "target_probability": 0.4285714285714285, + "historic_data": { + "productions": [ + { + "year": 2009, + "value": "5271868803.094344 GJ" + }, + { + "year": 2010, + "value": "5642576643.094344 GJ" + }, + { + "year": 2011, + "value": "5746580643.094344 GJ" + }, + { + "year": 2012, + "value": "5808127683.094344 GJ" + }, + { + "year": 2013, + "value": "5823226083.094344 GJ" + }, + { + "year": 2014, + "value": "5740165443.094344 GJ" + }, + { + "year": 2015, + "value": "5610643203.094344 GJ" + }, + { + "year": 2016, + "value": "5654577603.094344 GJ" + }, + { + "year": 2017, + "value": "5527232643.094344 GJ" + }, + { + "year": 2018, + "value": "5421517923.094344 GJ" + }, + { + "year": 2019, + "value": "5301547203.094344 GJ" + }, + { + "year": 2020, + "value": "5301547203.094344 GJ" + }, + { + "year": 2021, + "value": "5301547203.094344 GJ" + } + ], + "emissions": { + "S1": [ + { + "year": 2009, + "value": NaN + }, + { + "year": 2010, + "value": NaN + }, + { + "year": 2011, + "value": NaN + }, + { + "year": 2012, + "value": "1174220.85954061 t CO2" + }, + { + "year": 2013, + "value": "1310000.85954061 t CO2" + }, + { + "year": 2014, + "value": "1280000.85954061 t CO2" + }, + { + "year": 2015, + "value": "1150000.85954061 t CO2" + }, + { + "year": 2016, + "value": "1230000.85954061 t CO2" + }, + { + "year": 2017, + "value": "1290000.85954061 t CO2" + }, + { + "year": 2018, + "value": "1170000.85954061 t CO2" + }, + { + "year": 2019, + "value": "910000.859540609 t CO2" + }, + { + "year": 2020, + "value": "910000.859540609 t CO2" + }, + { + "year": 2021, + "value": "910000.859540609 t CO2" + } + ], + "S2": [ + { + "year": 2009, + "value": NaN + }, + { + "year": 2010, + "value": NaN + }, + { + "year": 2011, + "value": NaN + }, + { + "year": 2012, + "value": "132861.859540609 t CO2" + }, + { + "year": 2013, + "value": "120000.859540609 t CO2" + }, + { + "year": 2014, + "value": "140000.859540609 t CO2" + }, + { + "year": 2015, + "value": "160000.859540609 t CO2" + }, + { + "year": 2016, + "value": "170000.859540609 t CO2" + }, + { + "year": 2017, + "value": "180000.859540609 t CO2" + }, + { + "year": 2018, + "value": "190000.859540609 t CO2" + }, + { + "year": 2019, + "value": "190000.859540609 t CO2" + }, + { + "year": 2020, + "value": "190000.859540609 t CO2" + }, + { + "year": 2021, + "value": "190000.859540609 t CO2" + } + ], + "S1S2": [], + "S3": [], + "S1S2S3": [] + }, + "emission_intensities": { + "S1": [ + { + "year": 2009, + "value": NaN + }, + { + "year": 2010, + "value": NaN + }, + { + "year": 2011, + "value": NaN + }, + { + "year": 2012, + "value": "0.0026201046481710228 t CO2/GJ" + }, + { + "year": 2013, + "value": "0.0029154992262681854 t CO2/GJ" + }, + { + "year": 2014, + "value": "0.002889953487247187 t CO2/GJ" + }, + { + "year": 2015, + "value": "0.0026563819156111223 t CO2/GJ" + }, + { + "year": 2016, + "value": "0.0028190984824265257 t CO2/GJ" + }, + { + "year": 2017, + "value": "0.003024734477303765 t CO2/GJ" + }, + { + "year": 2018, + "value": "0.0027968571449436134 t CO2/GJ" + }, + { + "year": 2019, + "value": "0.002224560243991176 t CO2/GJ" + }, + { + "year": 2020, + "value": "0.002224560243991176 t CO2/GJ" + }, + { + "year": 2021, + "value": "0.002224560243991176 t CO2/GJ" + } + ], + "S2": [ + { + "year": 2009, + "value": NaN + }, + { + "year": 2010, + "value": NaN + }, + { + "year": 2011, + "value": NaN + }, + { + "year": 2012, + "value": "0.0002964620947742204 t CO2/GJ" + }, + { + "year": 2013, + "value": "0.000267070369148347 t CO2/GJ" + }, + { + "year": 2014, + "value": "0.00031609039105817065 t CO2/GJ" + }, + { + "year": 2015, + "value": "0.000369585280080306 t CO2/GJ" + }, + { + "year": 2016, + "value": "0.0003896331953142924 t CO2/GJ" + }, + { + "year": 2017, + "value": "0.00042205770776825637 t CO2/GJ" + }, + { + "year": 2018, + "value": "0.000454192197568326 t CO2/GJ" + }, + { + "year": 2019, + "value": "0.0004644702848649636 t CO2/GJ" + }, + { + "year": 2020, + "value": "0.0004644702848649636 t CO2/GJ" + }, + { + "year": 2021, + "value": "0.0004644702848649636 t CO2/GJ" + } + ], + "S1S2": [], + "S3": [], + "S1S2S3": [] + } + }, + "projected_targets": null, + "projected_intensities": { + "S1S2": { + "projections": [ + { + "year": 2019, + "value": "0.0026890305288561397 t CO2/GJ" + }, + { + "year": 2020, + "value": "0.0026890305288561397 t CO2/GJ" + }, + { + "year": 2021, + "value": "0.0026890305288561397 t CO2/GJ" + }, + { + "year": 2022, + "value": "0.0026890305288561397 t CO2/GJ" + }, + { + "year": 2023, + "value": "0.0026890305288561397 t CO2/GJ" + }, + { + "year": 2024, + "value": "0.0026890305288561397 t CO2/GJ" + }, + { + "year": 2025, + "value": "0.0026890305288561397 t CO2/GJ" + }, + { + "year": 2026, + "value": "0.0026890305288561397 t CO2/GJ" + }, + { + "year": 2027, + "value": "0.0026890305288561397 t CO2/GJ" + }, + { + "year": 2028, + "value": "0.0026890305288561397 t CO2/GJ" + }, + { + "year": 2029, + "value": "0.0026890305288561397 t CO2/GJ" + }, + { + "year": 2030, + "value": "0.0026890305288561397 t CO2/GJ" + }, + { + "year": 2031, + "value": "0.0026890305288561397 t CO2/GJ" + }, + { + "year": 2032, + "value": "0.0026890305288561397 t CO2/GJ" + }, + { + "year": 2033, + "value": "0.0026890305288561397 t CO2/GJ" + }, + { + "year": 2034, + "value": "0.0026890305288561397 t CO2/GJ" + }, + { + "year": 2035, + "value": "0.0026890305288561397 t CO2/GJ" + }, + { + "year": 2036, + "value": "0.0026890305288561397 t CO2/GJ" + }, + { + "year": 2037, + "value": "0.0026890305288561397 t CO2/GJ" + }, + { + "year": 2038, + "value": "0.0026890305288561397 t CO2/GJ" + }, + { + "year": 2039, + "value": "0.0026890305288561397 t CO2/GJ" + }, + { + "year": 2040, + "value": "0.0026890305288561397 t CO2/GJ" + }, + { + "year": 2041, + "value": "0.0026890305288561397 t CO2/GJ" + }, + { + "year": 2042, + "value": "0.0026890305288561397 t CO2/GJ" + }, + { + "year": 2043, + "value": "0.0026890305288561397 t CO2/GJ" + }, + { + "year": 2044, + "value": "0.0026890305288561397 t CO2/GJ" + }, + { + "year": 2045, + "value": "0.0026890305288561397 t CO2/GJ" + }, + { + "year": 2046, + "value": "0.0026890305288561397 t CO2/GJ" + }, + { + "year": 2047, + "value": "0.0026890305288561397 t CO2/GJ" + }, + { + "year": 2048, + "value": "0.0026890305288561397 t CO2/GJ" + }, + { + "year": 2049, + "value": "0.0026890305288561397 t CO2/GJ" + }, + { + "year": 2050, + "value": "0.0026890305288561397 t CO2/GJ" + } + ] + }, + "S3": null, + "S1S2S3": null + }, + "country": null, + "ghg_s1s2": null, + "ghg_s3": null, + "industry_level_1": null, + "industry_level_2": null, + "industry_level_3": null, + "industry_level_4": null, + "company_revenue": null, + "company_market_cap": null, + "company_enterprise_value": null, + "company_total_assets": null, + "company_cash_equivalents": null + }, + { + "company_name": "Company AO", + "company_id": "TW0002308004", + "region": "Europe", + "sector": "Electricity Utilities", + "target_probability": 0.4285714285714285, + "historic_data": { + "productions": [ + { + "year": 2009, + "value": NaN + }, + { + "year": 2010, + "value": NaN + }, + { + "year": 2011, + "value": NaN + }, + { + "year": 2012, + "value": "76114085.42779164 GJ" + }, + { + "year": 2013, + "value": "76114085.42779164 GJ" + }, + { + "year": 2014, + "value": "76114085.42779164 GJ" + }, + { + "year": 2015, + "value": "76114085.42779164 GJ" + }, + { + "year": 2016, + "value": "76114085.42779164 GJ" + }, + { + "year": 2017, + "value": "76114085.42779164 GJ" + }, + { + "year": 2018, + "value": "76114085.42779164 GJ" + }, + { + "year": 2019, + "value": "76114085.42779164 GJ" + }, + { + "year": 2020, + "value": "76114085.42779164 GJ" + }, + { + "year": 2021, + "value": "76114085.42779164 GJ" + } + ], + "emissions": { + "S1": [ + { + "year": 2009, + "value": "11074001.5077199 t CO2" + }, + { + "year": 2010, + "value": "8500001.50771989 t CO2" + }, + { + "year": 2011, + "value": "9328837.50771989 t CO2" + }, + { + "year": 2012, + "value": "8328346.50771989 t CO2" + }, + { + "year": 2013, + "value": "7914001.50771989 t CO2" + }, + { + "year": 2014, + "value": "7250001.50771989 t CO2" + }, + { + "year": 2015, + "value": "7020001.50771989 t CO2" + }, + { + "year": 2016, + "value": "7038001.50771989 t CO2" + }, + { + "year": 2017, + "value": "5800001.50771989 t CO2" + }, + { + "year": 2018, + "value": "4000001.50771989 t CO2" + }, + { + "year": 2019, + "value": "4500001.50771989 t CO2" + }, + { + "year": 2020, + "value": "4500001.50771989 t CO2" + }, + { + "year": 2021, + "value": "4500001.50771989 t CO2" + } + ], + "S2": [ + { + "year": 2009, + "value": "266001.507719888 t CO2" + }, + { + "year": 2010, + "value": "350001.507719888 t CO2" + }, + { + "year": 2011, + "value": "329353.507719888 t CO2" + }, + { + "year": 2012, + "value": "319181.507719888 t CO2" + }, + { + "year": 2013, + "value": "250001.507719888 t CO2" + }, + { + "year": 2014, + "value": "220001.507719888 t CO2" + }, + { + "year": 2015, + "value": "230001.507719888 t CO2" + }, + { + "year": 2016, + "value": "247001.507719888 t CO2" + }, + { + "year": 2017, + "value": "3400001.50771989 t CO2" + }, + { + "year": 2018, + "value": "2900001.50771989 t CO2" + }, + { + "year": 2019, + "value": "2500001.50771989 t CO2" + }, + { + "year": 2020, + "value": "2500001.50771989 t CO2" + }, + { + "year": 2021, + "value": "2500001.50771989 t CO2" + } + ], + "S1S2": [], + "S3": [], + "S1S2S3": [] + }, + "emission_intensities": { + "S1": [ + { + "year": 2009, + "value": NaN + }, + { + "year": 2010, + "value": NaN + }, + { + "year": 2011, + "value": NaN + }, + { + "year": 2012, + "value": "1.418073542280774 t CO2/GJ" + }, + { + "year": 2013, + "value": "1.3475227214987966 t CO2/GJ" + }, + { + "year": 2014, + "value": "1.2344629645348417 t CO2/GJ" + }, + { + "year": 2015, + "value": "1.195300699321421 t CO2/GJ" + }, + { + "year": 2016, + "value": "1.1983655722511666 t CO2/GJ" + }, + { + "year": 2017, + "value": "0.9875704229719812 t CO2/GJ" + }, + { + "year": 2018, + "value": "0.6810831299973996 t CO2/GJ" + }, + { + "year": 2019, + "value": "0.7662184891570044 t CO2/GJ" + }, + { + "year": 2020, + "value": "0.7662184891570044 t CO2/GJ" + }, + { + "year": 2021, + "value": "0.7662184891570044 t CO2/GJ" + } + ], + "S2": [ + { + "year": 2009, + "value": NaN + }, + { + "year": 2010, + "value": NaN + }, + { + "year": 2011, + "value": NaN + }, + { + "year": 2012, + "value": "0.05434726459367484 t CO2/GJ" + }, + { + "year": 2013, + "value": "0.04256793630035172 t CO2/GJ" + }, + { + "year": 2014, + "value": "0.037459814750775366 t CO2/GJ" + }, + { + "year": 2015, + "value": "0.03916252193396724 t CO2/GJ" + }, + { + "year": 2016, + "value": "0.04205712414539412 t CO2/GJ" + }, + { + "year": 2017, + "value": "0.5789206990058725 t CO2/GJ" + }, + { + "year": 2018, + "value": "0.493785339846264 t CO2/GJ" + }, + { + "year": 2019, + "value": "0.4256770525185816 t CO2/GJ" + }, + { + "year": 2020, + "value": "0.4256770525185816 t CO2/GJ" + }, + { + "year": 2021, + "value": "0.4256770525185816 t CO2/GJ" + } + ], + "S1S2": [], + "S3": [], + "S1S2S3": [] + } + }, + "projected_targets": null, + "projected_intensities": { + "S1S2": { + "projections": [ + { + "year": 2019, + "value": "1.191895541675586 t CO2/GJ" + }, + { + "year": 2020, + "value": "1.191895541675586 t CO2/GJ" + }, + { + "year": 2021, + "value": "1.191895541675586 t CO2/GJ" + }, + { + "year": 2022, + "value": "1.191895541675586 t CO2/GJ" + }, + { + "year": 2023, + "value": "1.191895541675586 t CO2/GJ" + }, + { + "year": 2024, + "value": "1.191895541675586 t CO2/GJ" + }, + { + "year": 2025, + "value": "1.191895541675586 t CO2/GJ" + }, + { + "year": 2026, + "value": "1.191895541675586 t CO2/GJ" + }, + { + "year": 2027, + "value": "1.191895541675586 t CO2/GJ" + }, + { + "year": 2028, + "value": "1.191895541675586 t CO2/GJ" + }, + { + "year": 2029, + "value": "1.191895541675586 t CO2/GJ" + }, + { + "year": 2030, + "value": "1.191895541675586 t CO2/GJ" + }, + { + "year": 2031, + "value": "1.191895541675586 t CO2/GJ" + }, + { + "year": 2032, + "value": "1.191895541675586 t CO2/GJ" + }, + { + "year": 2033, + "value": "1.191895541675586 t CO2/GJ" + }, + { + "year": 2034, + "value": "1.191895541675586 t CO2/GJ" + }, + { + "year": 2035, + "value": "1.191895541675586 t CO2/GJ" + }, + { + "year": 2036, + "value": "1.191895541675586 t CO2/GJ" + }, + { + "year": 2037, + "value": "1.191895541675586 t CO2/GJ" + }, + { + "year": 2038, + "value": "1.191895541675586 t CO2/GJ" + }, + { + "year": 2039, + "value": "1.191895541675586 t CO2/GJ" + }, + { + "year": 2040, + "value": "1.191895541675586 t CO2/GJ" + }, + { + "year": 2041, + "value": "1.191895541675586 t CO2/GJ" + }, + { + "year": 2042, + "value": "1.191895541675586 t CO2/GJ" + }, + { + "year": 2043, + "value": "1.191895541675586 t CO2/GJ" + }, + { + "year": 2044, + "value": "1.191895541675586 t CO2/GJ" + }, + { + "year": 2045, + "value": "1.191895541675586 t CO2/GJ" + }, + { + "year": 2046, + "value": "1.191895541675586 t CO2/GJ" + }, + { + "year": 2047, + "value": "1.191895541675586 t CO2/GJ" + }, + { + "year": 2048, + "value": "1.191895541675586 t CO2/GJ" + }, + { + "year": 2049, + "value": "1.191895541675586 t CO2/GJ" + }, + { + "year": 2050, + "value": "1.191895541675586 t CO2/GJ" + } + ] + }, + "S3": null, + "S1S2S3": null + }, + "country": null, + "ghg_s1s2": null, + "ghg_s3": null, + "industry_level_1": null, + "industry_level_2": null, + "industry_level_3": null, + "industry_level_4": null, + "company_revenue": null, + "company_market_cap": null, + "company_enterprise_value": null, + "company_total_assets": null, + "company_cash_equivalents": null + }, + { + "company_name": "Company AP", + "company_id": "FR0000120321", + "region": "Asia", + "sector": "Electricity Utilities", + "target_probability": 0.4285714285714285, + "historic_data": { + "productions": [ + { + "year": 2009, + "value": NaN + }, + { + "year": 2010, + "value": "2836166403.246948 GJ" + }, + { + "year": 2011, + "value": "2858198403.246948 GJ" + }, + { + "year": 2012, + "value": "2878027203.246948 GJ" + }, + { + "year": 2013, + "value": "3007082883.246948 GJ" + }, + { + "year": 2014, + "value": "3023360643.246948 GJ" + }, + { + "year": 2015, + "value": "3126729603.246948 GJ" + }, + { + "year": 2016, + "value": "3136060803.246948 GJ" + }, + { + "year": 2017, + "value": "3244017603.246948 GJ" + }, + { + "year": 2018, + "value": "3444768003.246948 GJ" + }, + { + "year": 2019, + "value": "3556872003.246948 GJ" + }, + { + "year": 2020, + "value": "3364675203.246948 GJ" + }, + { + "year": 2021, + "value": "3364675203.246948 GJ" + } + ], + "emissions": { + "S1": [ + { + "year": 2009, + "value": NaN + }, + { + "year": 2010, + "value": "185584163.90193 t CO2" + }, + { + "year": 2011, + "value": "188513981.90193 t CO2" + }, + { + "year": 2012, + "value": "189986958.90193 t CO2" + }, + { + "year": 2013, + "value": "200994691.90193 t CO2" + }, + { + "year": 2014, + "value": "201036494.90193 t CO2" + }, + { + "year": 2015, + "value": "213050961.90193 t CO2" + }, + { + "year": 2016, + "value": "231671486.101929 t CO2" + }, + { + "year": 2017, + "value": "221222495.90193 t CO2" + }, + { + "year": 2018, + "value": "231986764.90193 t CO2" + }, + { + "year": 2019, + "value": "240369173.90193 t CO2" + }, + { + "year": 2020, + "value": "226132940.90193 t CO2" + }, + { + "year": 2021, + "value": "226132940.90193 t CO2" + } + ], + "S2": [ + { + "year": 2009, + "value": NaN + }, + { + "year": 2010, + "value": NaN + }, + { + "year": 2011, + "value": NaN + }, + { + "year": 2012, + "value": "0.901929562977962 t CO2" + }, + { + "year": 2013, + "value": "0.901929562977962 t CO2" + }, + { + "year": 2014, + "value": "0.901929562977962 t CO2" + }, + { + "year": 2015, + "value": "6235.05442956298 t CO2" + }, + { + "year": 2016, + "value": "12469.206929563 t CO2" + }, + { + "year": 2017, + "value": "18703.359429563 t CO2" + }, + { + "year": 2018, + "value": "24937.511929563 t CO2" + }, + { + "year": 2019, + "value": "23268.401929563 t CO2" + }, + { + "year": 2020, + "value": "15845.901929563 t CO2" + }, + { + "year": 2021, + "value": "15845.901929563 t CO2" + } + ], + "S1S2": [], + "S3": [], + "S1S2S3": [] + }, + "emission_intensities": { + "S1": [ + { + "year": 2009, + "value": NaN + }, + { + "year": 2010, + "value": "0.848035842119658 t CO2/GJ" + }, + { + "year": 2011, + "value": "0.8547836296716036 t CO2/GJ" + }, + { + "year": 2012, + "value": "0.8555273503291261 t CO2/GJ" + }, + { + "year": 2013, + "value": "0.8662518820353672 t CO2/GJ" + }, + { + "year": 2014, + "value": "0.8617671794294748 t CO2/GJ" + }, + { + "year": 2015, + "value": "0.8830761903369287 t CO2/GJ" + }, + { + "year": 2016, + "value": "0.95739931342287 t CO2/GJ" + }, + { + "year": 2017, + "value": "0.8837940780652285 t CO2/GJ" + }, + { + "year": 2018, + "value": "0.8727869250687168 t CO2/GJ" + }, + { + "year": 2019, + "value": "0.8758213652122596 t CO2/GJ" + }, + { + "year": 2020, + "value": "0.8710151016243313 t CO2/GJ" + }, + { + "year": 2021, + "value": "0.8710151016243313 t CO2/GJ" + } + ], + "S2": [ + { + "year": 2009, + "value": NaN + }, + { + "year": 2010, + "value": NaN + }, + { + "year": 2011, + "value": NaN + }, + { + "year": 2012, + "value": "4.061465132437621e-09 t CO2/GJ" + }, + { + "year": 2013, + "value": "3.887158282638696e-09 t CO2/GJ" + }, + { + "year": 2014, + "value": "3.866229840063312e-09 t CO2/GJ" + }, + { + "year": 2015, + "value": "2.5843713931394353e-05 t CO2/GJ" + }, + { + "year": 2016, + "value": "5.15299070859282e-05 t CO2/GJ" + }, + { + "year": 2017, + "value": "7.472078387137044e-05 t CO2/GJ" + }, + { + "year": 2018, + "value": "9.382058655401627e-05 t CO2/GJ" + }, + { + "year": 2019, + "value": "8.478193444460569e-05 t CO2/GJ" + }, + { + "year": 2020, + "value": "6.103498156641072e-05 t CO2/GJ" + }, + { + "year": 2021, + "value": "6.103498156641072e-05 t CO2/GJ" + } + ], + "S1S2": [], + "S3": [], + "S1S2S3": [] + } + }, + "projected_targets": null, + "projected_intensities": { + "S1S2": { + "projections": [ + { + "year": 2019, + "value": "0.8759061471467042 t CO2/GJ" + }, + { + "year": 2020, + "value": "0.8710761366058977 t CO2/GJ" + }, + { + "year": 2021, + "value": "0.8710761366058977 t CO2/GJ" + }, + { + "year": 2022, + "value": "0.8710761366058977 t CO2/GJ" + }, + { + "year": 2023, + "value": "0.8710761366058977 t CO2/GJ" + }, + { + "year": 2024, + "value": "0.8710761366058977 t CO2/GJ" + }, + { + "year": 2025, + "value": "0.8710761366058977 t CO2/GJ" + }, + { + "year": 2026, + "value": "0.8710761366058977 t CO2/GJ" + }, + { + "year": 2027, + "value": "0.8710761366058977 t CO2/GJ" + }, + { + "year": 2028, + "value": "0.8710761366058977 t CO2/GJ" + }, + { + "year": 2029, + "value": "0.8710761366058977 t CO2/GJ" + }, + { + "year": 2030, + "value": "0.8710761366058977 t CO2/GJ" + }, + { + "year": 2031, + "value": "0.8710761366058977 t CO2/GJ" + }, + { + "year": 2032, + "value": "0.8710761366058977 t CO2/GJ" + }, + { + "year": 2033, + "value": "0.8710761366058977 t CO2/GJ" + }, + { + "year": 2034, + "value": "0.8710761366058977 t CO2/GJ" + }, + { + "year": 2035, + "value": "0.8710761366058977 t CO2/GJ" + }, + { + "year": 2036, + "value": "0.8710761366058977 t CO2/GJ" + }, + { + "year": 2037, + "value": "0.8710761366058977 t CO2/GJ" + }, + { + "year": 2038, + "value": "0.8710761366058977 t CO2/GJ" + }, + { + "year": 2039, + "value": "0.8710761366058977 t CO2/GJ" + }, + { + "year": 2040, + "value": "0.8710761366058977 t CO2/GJ" + }, + { + "year": 2041, + "value": "0.8710761366058977 t CO2/GJ" + }, + { + "year": 2042, + "value": "0.8710761366058977 t CO2/GJ" + }, + { + "year": 2043, + "value": "0.8710761366058977 t CO2/GJ" + }, + { + "year": 2044, + "value": "0.8710761366058977 t CO2/GJ" + }, + { + "year": 2045, + "value": "0.8710761366058977 t CO2/GJ" + }, + { + "year": 2046, + "value": "0.8710761366058977 t CO2/GJ" + }, + { + "year": 2047, + "value": "0.8710761366058977 t CO2/GJ" + }, + { + "year": 2048, + "value": "0.8710761366058977 t CO2/GJ" + }, + { + "year": 2049, + "value": "0.8710761366058977 t CO2/GJ" + }, + { + "year": 2050, + "value": "0.8710761366058977 t CO2/GJ" + } + ] + }, + "S3": null, + "S1S2S3": null + }, + "country": null, + "ghg_s1s2": null, + "ghg_s3": null, + "industry_level_1": null, + "industry_level_2": null, + "industry_level_3": null, + "industry_level_4": null, + "company_revenue": null, + "company_market_cap": null, + "company_enterprise_value": null, + "company_total_assets": null, + "company_cash_equivalents": null + }, + { + "company_name": "Company AQ", + "company_id": "CH0038863350", + "region": "Asia", + "sector": "Electricity Utilities", + "target_probability": 0.4285714285714285, + "historic_data": { + "productions": [ + { + "year": 2009, + "value": NaN + }, + { + "year": 2010, + "value": "125595364.15776384 GJ" + }, + { + "year": 2011, + "value": "127565284.15776384 GJ" + }, + { + "year": 2012, + "value": "138062884.15776384 GJ" + }, + { + "year": 2013, + "value": "203459044.15776384 GJ" + }, + { + "year": 2014, + "value": "222847204.15776384 GJ" + }, + { + "year": 2015, + "value": "258448324.15776387 GJ" + }, + { + "year": 2016, + "value": "260094244.15776387 GJ" + }, + { + "year": 2017, + "value": "263023204.15776387 GJ" + }, + { + "year": 2018, + "value": "279689764.1577639 GJ" + }, + { + "year": 2019, + "value": "262841764.15776387 GJ" + }, + { + "year": 2020, + "value": "236895844.15776384 GJ" + }, + { + "year": 2021, + "value": "236895844.15776384 GJ" + } + ], + "emissions": { + "S1": [ + { + "year": 2009, + "value": NaN + }, + { + "year": 2010, + "value": "1968704.15493443 t CO2" + }, + { + "year": 2011, + "value": "2832949.15493443 t CO2" + }, + { + "year": 2012, + "value": "12866001.1549344 t CO2" + }, + { + "year": 2013, + "value": "13663001.1549344 t CO2" + }, + { + "year": 2014, + "value": "14934001.1549344 t CO2" + }, + { + "year": 2015, + "value": "16918001.1549344 t CO2" + }, + { + "year": 2016, + "value": "16977001.1549344 t CO2" + }, + { + "year": 2017, + "value": "17293001.1549344 t CO2" + }, + { + "year": 2018, + "value": "18162001.1549344 t CO2" + }, + { + "year": 2019, + "value": "17976001.1549344 t CO2" + }, + { + "year": 2020, + "value": "16065001.1549344 t CO2" + }, + { + "year": 2021, + "value": "16065001.1549344 t CO2" + } + ], + "S2": [ + { + "year": 2009, + "value": NaN + }, + { + "year": 2010, + "value": "52966.1549344293 t CO2" + }, + { + "year": 2011, + "value": "58302.1549344293 t CO2" + }, + { + "year": 2012, + "value": "61001.1549344293 t CO2" + }, + { + "year": 2013, + "value": "202001.154934429 t CO2" + }, + { + "year": 2014, + "value": "130001.154934429 t CO2" + }, + { + "year": 2015, + "value": "409001.154934429 t CO2" + }, + { + "year": 2016, + "value": "1265001.15493443 t CO2" + }, + { + "year": 2017, + "value": "1818001.15493443 t CO2" + }, + { + "year": 2018, + "value": "2090001.15493443 t CO2" + }, + { + "year": 2019, + "value": "2289001.15493443 t CO2" + }, + { + "year": 2020, + "value": "2403001.15493443 t CO2" + }, + { + "year": 2021, + "value": "2403001.15493443 t CO2" + } + ], + "S1S2": [], + "S3": [], + "S1S2S3": [] + }, + "emission_intensities": { + "S1": [ + { + "year": 2009, + "value": NaN + }, + { + "year": 2010, + "value": "0.20314767204226442 t CO2/GJ" + }, + { + "year": 2011, + "value": "0.28781357945742975 t CO2/GJ" + }, + { + "year": 2012, + "value": "1.207734982396956 t CO2/GJ" + }, + { + "year": 2013, + "value": "0.8703102666237157 t CO2/GJ" + }, + { + "year": 2014, + "value": "0.8685083382555276 t CO2/GJ" + }, + { + "year": 2015, + "value": "0.8483602889764117 t CO2/GJ" + }, + { + "year": 2016, + "value": "0.84593158022556 t CO2/GJ" + }, + { + "year": 2017, + "value": "0.852081836983182 t CO2/GJ" + }, + { + "year": 2018, + "value": "0.841573647418788 t CO2/GJ" + }, + { + "year": 2019, + "value": "0.8863468700054724 t CO2/GJ" + }, + { + "year": 2020, + "value": "0.8788774480539012 t CO2/GJ" + }, + { + "year": 2021, + "value": "0.8788774480539012 t CO2/GJ" + } + ], + "S2": [ + { + "year": 2009, + "value": NaN + }, + { + "year": 2010, + "value": "0.00546549924476466 t CO2/GJ" + }, + { + "year": 2011, + "value": "0.005923209695638932 t CO2/GJ" + }, + { + "year": 2012, + "value": "0.0057261947899539594 t CO2/GJ" + }, + { + "year": 2013, + "value": "0.012867134900723496 t CO2/GJ" + }, + { + "year": 2014, + "value": "0.007560404333174592 t CO2/GJ" + }, + { + "year": 2015, + "value": "0.020509535069434367 t CO2/GJ" + }, + { + "year": 2016, + "value": "0.06303259428534648 t CO2/GJ" + }, + { + "year": 2017, + "value": "0.0895787694602712 t CO2/GJ" + }, + { + "year": 2018, + "value": "0.09684449858047572 t CO2/GJ" + }, + { + "year": 2019, + "value": "0.1128643123478058 t CO2/GJ" + }, + { + "year": 2020, + "value": "0.13146239470207932 t CO2/GJ" + }, + { + "year": 2021, + "value": "0.13146239470207932 t CO2/GJ" + } + ], + "S1S2": [], + "S3": [], + "S1S2S3": [] + } + }, + "projected_targets": null, + "projected_intensities": { + "S1S2": { + "projections": [ + { + "year": 2019, + "value": "0.9992111823532782 t CO2/GJ" + }, + { + "year": 2020, + "value": "1.0103398427559807 t CO2/GJ" + }, + { + "year": 2021, + "value": "1.0103398427559807 t CO2/GJ" + }, + { + "year": 2022, + "value": "1.0103398427559807 t CO2/GJ" + }, + { + "year": 2023, + "value": "1.0103398427559807 t CO2/GJ" + }, + { + "year": 2024, + "value": "1.0103398427559807 t CO2/GJ" + }, + { + "year": 2025, + "value": "1.0103398427559807 t CO2/GJ" + }, + { + "year": 2026, + "value": "1.0103398427559807 t CO2/GJ" + }, + { + "year": 2027, + "value": "1.0103398427559807 t CO2/GJ" + }, + { + "year": 2028, + "value": "1.0103398427559807 t CO2/GJ" + }, + { + "year": 2029, + "value": "1.0103398427559807 t CO2/GJ" + }, + { + "year": 2030, + "value": "1.0103398427559807 t CO2/GJ" + }, + { + "year": 2031, + "value": "1.0103398427559807 t CO2/GJ" + }, + { + "year": 2032, + "value": "1.0103398427559807 t CO2/GJ" + }, + { + "year": 2033, + "value": "1.0103398427559807 t CO2/GJ" + }, + { + "year": 2034, + "value": "1.0103398427559807 t CO2/GJ" + }, + { + "year": 2035, + "value": "1.0103398427559807 t CO2/GJ" + }, + { + "year": 2036, + "value": "1.0103398427559807 t CO2/GJ" + }, + { + "year": 2037, + "value": "1.0103398427559807 t CO2/GJ" + }, + { + "year": 2038, + "value": "1.0103398427559807 t CO2/GJ" + }, + { + "year": 2039, + "value": "1.0103398427559807 t CO2/GJ" + }, + { + "year": 2040, + "value": "1.0103398427559807 t CO2/GJ" + }, + { + "year": 2041, + "value": "1.0103398427559807 t CO2/GJ" + }, + { + "year": 2042, + "value": "1.0103398427559807 t CO2/GJ" + }, + { + "year": 2043, + "value": "1.0103398427559807 t CO2/GJ" + }, + { + "year": 2044, + "value": "1.0103398427559807 t CO2/GJ" + }, + { + "year": 2045, + "value": "1.0103398427559807 t CO2/GJ" + }, + { + "year": 2046, + "value": "1.0103398427559807 t CO2/GJ" + }, + { + "year": 2047, + "value": "1.0103398427559807 t CO2/GJ" + }, + { + "year": 2048, + "value": "1.0103398427559807 t CO2/GJ" + }, + { + "year": 2049, + "value": "1.0103398427559807 t CO2/GJ" + }, + { + "year": 2050, + "value": "1.0103398427559807 t CO2/GJ" + } + ] + }, + "S3": null, + "S1S2S3": null + }, + "country": null, + "ghg_s1s2": null, + "ghg_s3": null, + "industry_level_1": null, + "industry_level_2": null, + "industry_level_3": null, + "industry_level_4": null, + "company_revenue": null, + "company_market_cap": null, + "company_enterprise_value": null, + "company_total_assets": null, + "company_cash_equivalents": null + }, + { + "company_name": "Company AR", + "company_id": "US8356993076", + "region": "Europe", + "sector": "Electricity Utilities", + "target_probability": 0.4285714285714285, + "historic_data": { + "productions": [ + { + "year": 2009, + "value": "697248015.4129393 GJ" + }, + { + "year": 2010, + "value": "683380815.4129393 GJ" + }, + { + "year": 2011, + "value": "732499215.4129393 GJ" + }, + { + "year": 2012, + "value": "739368015.4129393 GJ" + }, + { + "year": 2013, + "value": "739238415.4129393 GJ" + }, + { + "year": 2014, + "value": "710726415.4129393 GJ" + }, + { + "year": 2015, + "value": "720316815.4129393 GJ" + }, + { + "year": 2016, + "value": "695563215.4129393 GJ" + }, + { + "year": 2017, + "value": "841262415.4129393 GJ" + }, + { + "year": 2018, + "value": "1038312015.4129393 GJ" + }, + { + "year": 2019, + "value": "1038312015.4129393 GJ" + }, + { + "year": 2020, + "value": "1038312015.4129393 GJ" + }, + { + "year": 2021, + "value": "1038312015.4129393 GJ" + } + ], + "emissions": { + "S1": [ + { + "year": 2009, + "value": NaN + }, + { + "year": 2010, + "value": NaN + }, + { + "year": 2011, + "value": NaN + }, + { + "year": 2012, + "value": NaN + }, + { + "year": 2013, + "value": NaN + }, + { + "year": 2014, + "value": NaN + }, + { + "year": 2015, + "value": NaN + }, + { + "year": 2016, + "value": NaN + }, + { + "year": 2017, + "value": NaN + }, + { + "year": 2018, + "value": NaN + }, + { + "year": 2019, + "value": NaN + }, + { + "year": 2020, + "value": NaN + }, + { + "year": 2021, + "value": NaN + } + ], + "S2": [ + { + "year": 2009, + "value": NaN + }, + { + "year": 2010, + "value": NaN + }, + { + "year": 2011, + "value": NaN + }, + { + "year": 2012, + "value": NaN + }, + { + "year": 2013, + "value": NaN + }, + { + "year": 2014, + "value": NaN + }, + { + "year": 2015, + "value": NaN + }, + { + "year": 2016, + "value": NaN + }, + { + "year": 2017, + "value": NaN + }, + { + "year": 2018, + "value": NaN + }, + { + "year": 2019, + "value": NaN + }, + { + "year": 2020, + "value": NaN + }, + { + "year": 2021, + "value": NaN + } + ], + "S1S2": [], + "S3": [], + "S1S2S3": [] + }, + "emission_intensities": { + "S1": [ + { + "year": 2009, + "value": NaN + }, + { + "year": 2010, + "value": NaN + }, + { + "year": 2011, + "value": NaN + }, + { + "year": 2012, + "value": NaN + }, + { + "year": 2013, + "value": NaN + }, + { + "year": 2014, + "value": NaN + }, + { + "year": 2015, + "value": NaN + }, + { + "year": 2016, + "value": NaN + }, + { + "year": 2017, + "value": NaN + }, + { + "year": 2018, + "value": NaN + }, + { + "year": 2019, + "value": NaN + }, + { + "year": 2020, + "value": NaN + }, + { + "year": 2021, + "value": NaN + } + ], + "S2": [ + { + "year": 2009, + "value": NaN + }, + { + "year": 2010, + "value": NaN + }, + { + "year": 2011, + "value": NaN + }, + { + "year": 2012, + "value": NaN + }, + { + "year": 2013, + "value": NaN + }, + { + "year": 2014, + "value": NaN + }, + { + "year": 2015, + "value": NaN + }, + { + "year": 2016, + "value": NaN + }, + { + "year": 2017, + "value": NaN + }, + { + "year": 2018, + "value": NaN + }, + { + "year": 2019, + "value": NaN + }, + { + "year": 2020, + "value": NaN + }, + { + "year": 2021, + "value": NaN + } + ], + "S1S2": [], + "S3": [], + "S1S2S3": [] + } + }, + "projected_targets": null, + "projected_intensities": { + "S1S2": { + "projections": [ + { + "year": 2019, + "value": NaN + }, + { + "year": 2020, + "value": NaN + }, + { + "year": 2021, + "value": NaN + }, + { + "year": 2022, + "value": NaN + }, + { + "year": 2023, + "value": NaN + }, + { + "year": 2024, + "value": NaN + }, + { + "year": 2025, + "value": NaN + }, + { + "year": 2026, + "value": NaN + }, + { + "year": 2027, + "value": NaN + }, + { + "year": 2028, + "value": NaN + }, + { + "year": 2029, + "value": NaN + }, + { + "year": 2030, + "value": NaN + }, + { + "year": 2031, + "value": NaN + }, + { + "year": 2032, + "value": NaN + }, + { + "year": 2033, + "value": NaN + }, + { + "year": 2034, + "value": NaN + }, + { + "year": 2035, + "value": NaN + }, + { + "year": 2036, + "value": NaN + }, + { + "year": 2037, + "value": NaN + }, + { + "year": 2038, + "value": NaN + }, + { + "year": 2039, + "value": NaN + }, + { + "year": 2040, + "value": NaN + }, + { + "year": 2041, + "value": NaN + }, + { + "year": 2042, + "value": NaN + }, + { + "year": 2043, + "value": NaN + }, + { + "year": 2044, + "value": NaN + }, + { + "year": 2045, + "value": NaN + }, + { + "year": 2046, + "value": NaN + }, + { + "year": 2047, + "value": NaN + }, + { + "year": 2048, + "value": NaN + }, + { + "year": 2049, + "value": NaN + }, + { + "year": 2050, + "value": NaN + } + ] + }, + "S3": null, + "S1S2S3": null + }, + "country": null, + "ghg_s1s2": null, + "ghg_s3": null, + "industry_level_1": null, + "industry_level_2": null, + "industry_level_3": null, + "industry_level_4": null, + "company_revenue": null, + "company_market_cap": null, + "company_enterprise_value": null, + "company_total_assets": null, + "company_cash_equivalents": null + }, + { + "company_name": "Company AS", + "company_id": "JP3401400001", + "region": "Asia", + "sector": "Electricity Utilities", + "target_probability": 0.4285714285714285, + "historic_data": { + "productions": [ + { + "year": 2009, + "value": "159563527.70578668 GJ" + }, + { + "year": 2010, + "value": "146979367.70578668 GJ" + }, + { + "year": 2011, + "value": "146435047.70578668 GJ" + }, + { + "year": 2012, + "value": "143026567.70578668 GJ" + }, + { + "year": 2013, + "value": "139618087.70578668 GJ" + }, + { + "year": 2014, + "value": "190050203.6009867 GJ" + }, + { + "year": 2015, + "value": "214535101.14178666 GJ" + }, + { + "year": 2016, + "value": "233145050.2433867 GJ" + }, + { + "year": 2017, + "value": "218105285.54578668 GJ" + }, + { + "year": 2018, + "value": "167479620.8129867 GJ" + }, + { + "year": 2019, + "value": "171690299.59138668 GJ" + }, + { + "year": 2020, + "value": "171690299.59138668 GJ" + }, + { + "year": 2021, + "value": "171690299.59138668 GJ" + } + ], + "emissions": { + "S1": [ + { + "year": 2009, + "value": "9150002.14049632 t CO2" + }, + { + "year": 2010, + "value": "8650002.14049632 t CO2" + }, + { + "year": 2011, + "value": "8631002.14049632 t CO2" + }, + { + "year": 2012, + "value": "8960002.14049632 t CO2" + }, + { + "year": 2013, + "value": "9296403.94049632 t CO2" + }, + { + "year": 2014, + "value": "9632805.74049632 t CO2" + }, + { + "year": 2015, + "value": "9969207.54049632 t CO2" + }, + { + "year": 2016, + "value": "10305609.3404963 t CO2" + }, + { + "year": 2017, + "value": "10642011.1404963 t CO2" + }, + { + "year": 2018, + "value": "11403118.1404963 t CO2" + }, + { + "year": 2019, + "value": "9681777.14049632 t CO2" + }, + { + "year": 2020, + "value": "9681777.14049632 t CO2" + }, + { + "year": 2021, + "value": "9681777.14049632 t CO2" + } + ], + "S2": [ + { + "year": 2009, + "value": NaN + }, + { + "year": 2010, + "value": "2.14049631522688 t CO2" + }, + { + "year": 2011, + "value": "2.14049631522688 t CO2" + }, + { + "year": 2012, + "value": "2.14049631522688 t CO2" + }, + { + "year": 2013, + "value": "310616.540496315 t CO2" + }, + { + "year": 2014, + "value": "621230.940496315 t CO2" + }, + { + "year": 2015, + "value": "931845.340496315 t CO2" + }, + { + "year": 2016, + "value": "1242459.74049632 t CO2" + }, + { + "year": 2017, + "value": "1553074.14049631 t CO2" + }, + { + "year": 2018, + "value": "1239860.14049631 t CO2" + }, + { + "year": 2019, + "value": "1203273.14049631 t CO2" + }, + { + "year": 2020, + "value": "1203273.14049631 t CO2" + }, + { + "year": 2021, + "value": "1203273.14049631 t CO2" + } + ], + "S1S2": [], + "S3": [], + "S1S2S3": [] + }, + "emission_intensities": { + "S1": [ + { + "year": 2009, + "value": "0.7431775258785013 t CO2/GJ" + }, + { + "year": 2010, + "value": "0.7627194856711764 t CO2/GJ" + }, + { + "year": 2011, + "value": "0.7638730583512608 t CO2/GJ" + }, + { + "year": 2012, + "value": "0.8118885155637708 t CO2/GJ" + }, + { + "year": 2013, + "value": "0.8629354337148576 t CO2/GJ" + }, + { + "year": 2014, + "value": "0.6568851810279456 t CO2/GJ" + }, + { + "year": 2015, + "value": "0.6022367856691344 t CO2/GJ" + }, + { + "year": 2016, + "value": "0.5728652481080088 t CO2/GJ" + }, + { + "year": 2017, + "value": "0.6323572766047393 t CO2/GJ" + }, + { + "year": 2018, + "value": "0.8824023507066155 t CO2/GJ" + }, + { + "year": 2019, + "value": "0.7308265641067548 t CO2/GJ" + }, + { + "year": 2020, + "value": "0.7308265641067548 t CO2/GJ" + }, + { + "year": 2021, + "value": "0.7308265641067548 t CO2/GJ" + } + ], + "S2": [ + { + "year": 2009, + "value": NaN + }, + { + "year": 2010, + "value": "1.8873963521784973e-07 t CO2/GJ" + }, + { + "year": 2011, + "value": "1.894412074155671e-07 t CO2/GJ" + }, + { + "year": 2012, + "value": "1.9395579919392828e-07 t CO2/GJ" + }, + { + "year": 2013, + "value": "0.028832871377777763 t CO2/GJ" + }, + { + "year": 2014, + "value": "0.042363295783338244 t CO2/GJ" + }, + { + "year": 2015, + "value": "0.05629249269027864 t CO2/GJ" + }, + { + "year": 2016, + "value": "0.0690654947210874 t CO2/GJ" + }, + { + "year": 2017, + "value": "0.09228497516905357 t CO2/GJ" + }, + { + "year": 2018, + "value": "0.0959435383411512 t CO2/GJ" + }, + { + "year": 2019, + "value": "0.09082877680303489 t CO2/GJ" + }, + { + "year": 2020, + "value": "0.09082877680303489 t CO2/GJ" + }, + { + "year": 2021, + "value": "0.09082877680303489 t CO2/GJ" + } + ], + "S1S2": [], + "S3": [], + "S1S2S3": [] + } + }, + "projected_targets": null, + "projected_intensities": { + "S1S2": { + "projections": [ + { + "year": 2019, + "value": "0.8216553409097898 t CO2/GJ" + }, + { + "year": 2020, + "value": "0.8216553409097898 t CO2/GJ" + }, + { + "year": 2021, + "value": "0.8216553409097898 t CO2/GJ" + }, + { + "year": 2022, + "value": "0.8216553409097898 t CO2/GJ" + }, + { + "year": 2023, + "value": "0.8216553409097898 t CO2/GJ" + }, + { + "year": 2024, + "value": "0.8216553409097898 t CO2/GJ" + }, + { + "year": 2025, + "value": "0.8216553409097898 t CO2/GJ" + }, + { + "year": 2026, + "value": "0.8216553409097898 t CO2/GJ" + }, + { + "year": 2027, + "value": "0.8216553409097898 t CO2/GJ" + }, + { + "year": 2028, + "value": "0.8216553409097898 t CO2/GJ" + }, + { + "year": 2029, + "value": "0.8216553409097898 t CO2/GJ" + }, + { + "year": 2030, + "value": "0.8216553409097898 t CO2/GJ" + }, + { + "year": 2031, + "value": "0.8216553409097898 t CO2/GJ" + }, + { + "year": 2032, + "value": "0.8216553409097898 t CO2/GJ" + }, + { + "year": 2033, + "value": "0.8216553409097898 t CO2/GJ" + }, + { + "year": 2034, + "value": "0.8216553409097898 t CO2/GJ" + }, + { + "year": 2035, + "value": "0.8216553409097898 t CO2/GJ" + }, + { + "year": 2036, + "value": "0.8216553409097898 t CO2/GJ" + }, + { + "year": 2037, + "value": "0.8216553409097898 t CO2/GJ" + }, + { + "year": 2038, + "value": "0.8216553409097898 t CO2/GJ" + }, + { + "year": 2039, + "value": "0.8216553409097898 t CO2/GJ" + }, + { + "year": 2040, + "value": "0.8216553409097898 t CO2/GJ" + }, + { + "year": 2041, + "value": "0.8216553409097898 t CO2/GJ" + }, + { + "year": 2042, + "value": "0.8216553409097898 t CO2/GJ" + }, + { + "year": 2043, + "value": "0.8216553409097898 t CO2/GJ" + }, + { + "year": 2044, + "value": "0.8216553409097898 t CO2/GJ" + }, + { + "year": 2045, + "value": "0.8216553409097898 t CO2/GJ" + }, + { + "year": 2046, + "value": "0.8216553409097898 t CO2/GJ" + }, + { + "year": 2047, + "value": "0.8216553409097898 t CO2/GJ" + }, + { + "year": 2048, + "value": "0.8216553409097898 t CO2/GJ" + }, + { + "year": 2049, + "value": "0.8216553409097898 t CO2/GJ" + }, + { + "year": 2050, + "value": "0.8216553409097898 t CO2/GJ" + } + ] + }, + "S3": null, + "S1S2S3": null + }, + "country": null, + "ghg_s1s2": null, + "ghg_s3": null, + "industry_level_1": null, + "industry_level_2": null, + "industry_level_3": null, + "industry_level_4": null, + "company_revenue": null, + "company_market_cap": null, + "company_enterprise_value": null, + "company_total_assets": null, + "company_cash_equivalents": null + }, + { + "company_name": "Company AT", + "company_id": "US6541061031", + "region": "Europe", + "sector": "Electricity Utilities", + "target_probability": 0.4285714285714285, + "historic_data": { + "productions": [ + { + "year": 2009, + "value": NaN + }, + { + "year": 2010, + "value": "2919888004.0657935 GJ" + }, + { + "year": 2011, + "value": "2665872004.0657935 GJ" + }, + { + "year": 2012, + "value": "2943216004.0657935 GJ" + }, + { + "year": 2013, + "value": "2808432004.0657935 GJ" + }, + { + "year": 2014, + "value": "2699568004.0657935 GJ" + }, + { + "year": 2015, + "value": "2760480004.0657935 GJ" + }, + { + "year": 2016, + "value": "2800656004.0657935 GJ" + }, + { + "year": 2017, + "value": "2594592004.0657935 GJ" + }, + { + "year": 2018, + "value": "2280960004.0657935 GJ" + }, + { + "year": 2019, + "value": "1985018404.0657933 GJ" + }, + { + "year": 2020, + "value": "1902204004.0657933 GJ" + }, + { + "year": 2021, + "value": "1902204004.0657933 GJ" + } + ], + "emissions": { + "S1": [ + { + "year": 2009, + "value": NaN + }, + { + "year": 2010, + "value": "167100001.129387 t CO2" + }, + { + "year": 2011, + "value": "163800001.129387 t CO2" + }, + { + "year": 2012, + "value": "181700001.129387 t CO2" + }, + { + "year": 2013, + "value": "165800001.129387 t CO2" + }, + { + "year": 2014, + "value": "156600001.129387 t CO2" + }, + { + "year": 2015, + "value": "152300001.129387 t CO2" + }, + { + "year": 2016, + "value": "154000001.129387 t CO2" + }, + { + "year": 2017, + "value": "135600001.129387 t CO2" + }, + { + "year": 2018, + "value": "120400001.129387 t CO2" + }, + { + "year": 2019, + "value": "91700001.129387 t CO2" + }, + { + "year": 2020, + "value": "70400001.129387 t CO2" + }, + { + "year": 2021, + "value": "70400001.129387 t CO2" + } + ], + "S2": [ + { + "year": 2009, + "value": NaN + }, + { + "year": 2010, + "value": "3100001.12938701 t CO2" + }, + { + "year": 2011, + "value": "2400001.12938701 t CO2" + }, + { + "year": 2012, + "value": "1900001.12938701 t CO2" + }, + { + "year": 2013, + "value": "1500001.12938701 t CO2" + }, + { + "year": 2014, + "value": "1400001.12938701 t CO2" + }, + { + "year": 2015, + "value": "1300001.12938701 t CO2" + }, + { + "year": 2016, + "value": "1300001.12938701 t CO2" + }, + { + "year": 2017, + "value": "1000001.12938701 t CO2" + }, + { + "year": 2018, + "value": "5000001.12938701 t CO2" + }, + { + "year": 2019, + "value": "4700001.12938701 t CO2" + }, + { + "year": 2020, + "value": "2600001.12938701 t CO2" + }, + { + "year": 2021, + "value": "2600001.12938701 t CO2" + } + ], + "S1S2": [], + "S3": [], + "S1S2S3": [] + }, + "emission_intensities": { + "S1": [ + { + "year": 2009, + "value": NaN + }, + { + "year": 2010, + "value": "0.7416777669627563 t CO2/GJ" + }, + { + "year": 2011, + "value": "0.7963053032550852 t CO2/GJ" + }, + { + "year": 2012, + "value": "0.8000880707986993 t CO2/GJ" + }, + { + "year": 2013, + "value": "0.7651130636333952 t CO2/GJ" + }, + { + "year": 2014, + "value": "0.7518002923357344 t CO2/GJ" + }, + { + "year": 2015, + "value": "0.715023478427562 t CO2/GJ" + }, + { + "year": 2016, + "value": "0.7126330444508124 t CO2/GJ" + }, + { + "year": 2017, + "value": "0.6773226819025896 t CO2/GJ" + }, + { + "year": 2018, + "value": "0.6840909142884937 t CO2/GJ" + }, + { + "year": 2019, + "value": "0.5987007537072012 t CO2/GJ" + }, + { + "year": 2020, + "value": "0.47964572290181157 t CO2/GJ" + }, + { + "year": 2021, + "value": "0.47964572290181157 t CO2/GJ" + } + ], + "S2": [ + { + "year": 2009, + "value": NaN + }, + { + "year": 2010, + "value": "0.013759436862274392 t CO2/GJ" + }, + { + "year": 2011, + "value": "0.011667482380781245 t CO2/GJ" + }, + { + "year": 2012, + "value": "0.008366363393933629 t CO2/GJ" + }, + { + "year": 2013, + "value": "0.006922017199886688 t CO2/GJ" + }, + { + "year": 2014, + "value": "0.00672108078386214 t CO2/GJ" + }, + { + "year": 2015, + "value": "0.006103291678273692 t CO2/GJ" + }, + { + "year": 2016, + "value": "0.006015738674223793 t CO2/GJ" + }, + { + "year": 2017, + "value": "0.004995010628471448 t CO2/GJ" + }, + { + "year": 2018, + "value": "0.028409097275423567 t CO2/GJ" + }, + { + "year": 2019, + "value": "0.030685868963276727 t CO2/GJ" + }, + { + "year": 2020, + "value": "0.017714196040400174 t CO2/GJ" + }, + { + "year": 2021, + "value": "0.017714196040400174 t CO2/GJ" + } + ], + "S1S2": [], + "S3": [], + "S1S2S3": [] + } + }, + "projected_targets": null, + "projected_intensities": { + "S1S2": { + "projections": [ + { + "year": 2019, + "value": "0.629386622670478 t CO2/GJ" + }, + { + "year": 2020, + "value": "0.49735991894221177 t CO2/GJ" + }, + { + "year": 2021, + "value": "0.49735991894221177 t CO2/GJ" + }, + { + "year": 2022, + "value": "0.48865412727555213 t CO2/GJ" + }, + { + "year": 2023, + "value": "0.4801007218500365 t CO2/GJ" + }, + { + "year": 2024, + "value": "0.4716970352957829 t CO2/GJ" + }, + { + "year": 2025, + "value": "0.4634404469325714 t CO2/GJ" + }, + { + "year": 2026, + "value": "0.45532838195258785 t CO2/GJ" + }, + { + "year": 2027, + "value": "0.44735831061747283 t CO2/GJ" + }, + { + "year": 2028, + "value": "0.43952774746942586 t CO2/GJ" + }, + { + "year": 2029, + "value": "0.4318342505561179 t CO2/GJ" + }, + { + "year": 2030, + "value": "0.42427542066917145 t CO2/GJ" + }, + { + "year": 2031, + "value": "0.41684890059597 t CO2/GJ" + }, + { + "year": 2032, + "value": "0.409552374384564 t CO2/GJ" + }, + { + "year": 2033, + "value": "0.4023835666214437 t CO2/GJ" + }, + { + "year": 2034, + "value": "0.39534024172195426 t CO2/GJ" + }, + { + "year": 2035, + "value": "0.38842020323313087 t CO2/GJ" + }, + { + "year": 2036, + "value": "0.3816212931487376 t CO2/GJ" + }, + { + "year": 2037, + "value": "0.37494139123629544 t CO2/GJ" + }, + { + "year": 2038, + "value": "0.3683784143758903 t CO2/GJ" + }, + { + "year": 2039, + "value": "0.3619303159105543 t CO2/GJ" + }, + { + "year": 2040, + "value": "0.3555950850080181 t CO2/GJ" + }, + { + "year": 2041, + "value": "0.3493707460336352 t CO2/GJ" + }, + { + "year": 2042, + "value": "0.3432553579342824 t CO2/GJ" + }, + { + "year": 2043, + "value": "0.3372470136330446 t CO2/GJ" + }, + { + "year": 2044, + "value": "0.33134383943449497 t CO2/GJ" + }, + { + "year": 2045, + "value": "0.3255439944403852 t CO2/GJ" + }, + { + "year": 2046, + "value": "0.31984566997556335 t CO2/GJ" + }, + { + "year": 2047, + "value": "0.3142470890239408 t CO2/GJ" + }, + { + "year": 2048, + "value": "0.30874650567433126 t CO2/GJ" + }, + { + "year": 2049, + "value": "0.30334220457599087 t CO2/GJ" + }, + { + "year": 2050, + "value": "0.29803250040368773 t CO2/GJ" + } + ] + }, + "S3": null, + "S1S2S3": null + }, + "country": null, + "ghg_s1s2": null, + "ghg_s3": null, + "industry_level_1": null, + "industry_level_2": null, + "industry_level_3": null, + "industry_level_4": null, + "company_revenue": null, + "company_market_cap": null, + "company_enterprise_value": null, + "company_total_assets": null, + "company_cash_equivalents": null + }, + { + "company_name": "Company AU", + "company_id": "GB0031274896", + "region": "North America", + "sector": "Electricity Utilities", + "target_probability": 0.4285714285714285, + "historic_data": { + "productions": [ + { + "year": 2009, + "value": "926887167.2113813 GJ" + }, + { + "year": 2010, + "value": "965233460.0113813 GJ" + }, + { + "year": 2011, + "value": "968392251.2113813 GJ" + }, + { + "year": 2012, + "value": "972920165.6113813 GJ" + }, + { + "year": 2013, + "value": "919330565.6113813 GJ" + }, + { + "year": 2014, + "value": "954115205.6113813 GJ" + }, + { + "year": 2015, + "value": "949695845.6113813 GJ" + }, + { + "year": 2016, + "value": "960753123.2113813 GJ" + }, + { + "year": 2017, + "value": "939777829.7713813 GJ" + }, + { + "year": 2018, + "value": "891855365.6113813 GJ" + }, + { + "year": 2019, + "value": "874385285.6113813 GJ" + }, + { + "year": 2020, + "value": "874385285.6113813 GJ" + }, + { + "year": 2021, + "value": "874385285.6113813 GJ" + } + ], + "emissions": { + "S1": [ + { + "year": 2009, + "value": "55192252.5587173 t CO2" + }, + { + "year": 2010, + "value": "56075311.5587173 t CO2" + }, + { + "year": 2011, + "value": "54746972.5587173 t CO2" + }, + { + "year": 2012, + "value": "54472481.5587173 t CO2" + }, + { + "year": 2013, + "value": "56535331.5587173 t CO2" + }, + { + "year": 2014, + "value": "57593228.5587173 t CO2" + }, + { + "year": 2015, + "value": "56978409.5587173 t CO2" + }, + { + "year": 2016, + "value": "52832514.4587173 t CO2" + }, + { + "year": 2017, + "value": "50919739.3587173 t CO2" + }, + { + "year": 2018, + "value": "50723846.5587173 t CO2" + }, + { + "year": 2019, + "value": "48061950.5587173 t CO2" + }, + { + "year": 2020, + "value": "48061950.5587173 t CO2" + }, + { + "year": 2021, + "value": "48061950.5587173 t CO2" + } + ], + "S2": [ + { + "year": 2009, + "value": "1007225.55871729 t CO2" + }, + { + "year": 2010, + "value": "1933034.55871729 t CO2" + }, + { + "year": 2011, + "value": "1052282.55871729 t CO2" + }, + { + "year": 2012, + "value": "1189960.55871729 t CO2" + }, + { + "year": 2013, + "value": "774476.55871729 t CO2" + }, + { + "year": 2014, + "value": "601657.55871729 t CO2" + }, + { + "year": 2015, + "value": "1061617.55871729 t CO2" + }, + { + "year": 2016, + "value": "891280.15871729 t CO2" + }, + { + "year": 2017, + "value": "1153067.75871729 t CO2" + }, + { + "year": 2018, + "value": "841797.55871729 t CO2" + }, + { + "year": 2019, + "value": "607645.55871729 t CO2" + }, + { + "year": 2020, + "value": "607645.55871729 t CO2" + }, + { + "year": 2021, + "value": "607645.55871729 t CO2" + } + ], + "S1S2": [], + "S3": [], + "S1S2S3": [] + }, + "emission_intensities": { + "S1": [ + { + "year": 2009, + "value": "0.771713773223328 t CO2/GJ" + }, + { + "year": 2010, + "value": "0.7529121895467709 t CO2/GJ" + }, + { + "year": 2011, + "value": "0.73267910133876 t CO2/GJ" + }, + { + "year": 2012, + "value": "0.7256128364420833 t CO2/GJ" + }, + { + "year": 2013, + "value": "0.7969906847529973 t CO2/GJ" + }, + { + "year": 2014, + "value": "0.7823041051344408 t CO2/GJ" + }, + { + "year": 2015, + "value": "0.7775544047005837 t CO2/GJ" + }, + { + "year": 2016, + "value": "0.7126798454698644 t CO2/GJ" + }, + { + "year": 2017, + "value": "0.7022083317814728 t CO2/GJ" + }, + { + "year": 2018, + "value": "0.7370937898101109 t CO2/GJ" + }, + { + "year": 2019, + "value": "0.7123666071364056 t CO2/GJ" + }, + { + "year": 2020, + "value": "0.7123666071364056 t CO2/GJ" + }, + { + "year": 2021, + "value": "0.7123666071364056 t CO2/GJ" + } + ], + "S2": [ + { + "year": 2009, + "value": "0.014083314240123792 t CO2/GJ" + }, + { + "year": 2010, + "value": "0.025954475180212513 t CO2/GJ" + }, + { + "year": 2011, + "value": "0.014082704548612957 t CO2/GJ" + }, + { + "year": 2012, + "value": "0.01585113495030187 t CO2/GJ" + }, + { + "year": 2013, + "value": "0.010917962021964349 t CO2/GJ" + }, + { + "year": 2014, + "value": "0.008172474262140671 t CO2/GJ" + }, + { + "year": 2015, + "value": "0.01448733678740982 t CO2/GJ" + }, + { + "year": 2016, + "value": "0.012022850176501211 t CO2/GJ" + }, + { + "year": 2017, + "value": "0.015901373366736478 t CO2/GJ" + }, + { + "year": 2018, + "value": "0.012232584768380328 t CO2/GJ" + }, + { + "year": 2019, + "value": "0.009006426080774784 t CO2/GJ" + }, + { + "year": 2020, + "value": "0.009006426080774784 t CO2/GJ" + }, + { + "year": 2021, + "value": "0.009006426080774784 t CO2/GJ" + } + ], + "S1S2": [], + "S3": [], + "S1S2S3": [] + } + }, + "projected_targets": null, + "projected_intensities": { + "S1S2": { + "projections": [ + { + "year": 2019, + "value": "0.7213730332171804 t CO2/GJ" + }, + { + "year": 2020, + "value": "0.7213730332171804 t CO2/GJ" + }, + { + "year": 2021, + "value": "0.7213730332171804 t CO2/GJ" + }, + { + "year": 2022, + "value": "0.7191454204965274 t CO2/GJ" + }, + { + "year": 2023, + "value": "0.7169246866834642 t CO2/GJ" + }, + { + "year": 2024, + "value": "0.7147108105358021 t CO2/GJ" + }, + { + "year": 2025, + "value": "0.7125037708769486 t CO2/GJ" + }, + { + "year": 2026, + "value": "0.7103035465957052 t CO2/GJ" + }, + { + "year": 2027, + "value": "0.7081101166460648 t CO2/GJ" + }, + { + "year": 2028, + "value": "0.705923460047011 t CO2/GJ" + }, + { + "year": 2029, + "value": "0.7037435558823171 t CO2/GJ" + }, + { + "year": 2030, + "value": "0.7015703833003458 t CO2/GJ" + }, + { + "year": 2031, + "value": "0.6994039215138506 t CO2/GJ" + }, + { + "year": 2032, + "value": "0.6972441497997758 t CO2/GJ" + }, + { + "year": 2033, + "value": "0.6950910474990591 t CO2/GJ" + }, + { + "year": 2034, + "value": "0.692944594016434 t CO2/GJ" + }, + { + "year": 2035, + "value": "0.6908047688202321 t CO2/GJ" + }, + { + "year": 2036, + "value": "0.6886715514421875 t CO2/GJ" + }, + { + "year": 2037, + "value": "0.6865449214772404 t CO2/GJ" + }, + { + "year": 2038, + "value": "0.6844248585833425 t CO2/GJ" + }, + { + "year": 2039, + "value": "0.6823113424812617 t CO2/GJ" + }, + { + "year": 2040, + "value": "0.6802043529543889 t CO2/GJ" + }, + { + "year": 2041, + "value": "0.6781038698485441 t CO2/GJ" + }, + { + "year": 2042, + "value": "0.6760098730717837 t CO2/GJ" + }, + { + "year": 2043, + "value": "0.6739223425942086 t CO2/GJ" + }, + { + "year": 2044, + "value": "0.6718412584477721 t CO2/GJ" + }, + { + "year": 2045, + "value": "0.6697666007260893 t CO2/GJ" + }, + { + "year": 2046, + "value": "0.6676983495842467 t CO2/GJ" + }, + { + "year": 2047, + "value": "0.665636485238612 t CO2/GJ" + }, + { + "year": 2048, + "value": "0.6635809879666453 t CO2/GJ" + }, + { + "year": 2049, + "value": "0.6615318381067102 t CO2/GJ" + }, + { + "year": 2050, + "value": "0.6594890160578858 t CO2/GJ" + } + ] + }, + "S3": null, + "S1S2S3": null + }, + "country": null, + "ghg_s1s2": null, + "ghg_s3": null, + "industry_level_1": null, + "industry_level_2": null, + "industry_level_3": null, + "industry_level_4": null, + "company_revenue": null, + "company_market_cap": null, + "company_enterprise_value": null, + "company_total_assets": null, + "company_cash_equivalents": null + }, + { + "company_name": "Company AV", + "company_id": "US6293775085", + "region": "Europe", + "sector": "Steel", + "target_probability": 0.4285714285714285, + "historic_data": { + "productions": [ + { + "year": 2009, + "value": NaN + }, + { + "year": 2010, + "value": NaN + }, + { + "year": 2011, + "value": NaN + }, + { + "year": 2012, + "value": NaN + }, + { + "year": 2013, + "value": NaN + }, + { + "year": 2014, + "value": "91200001.3960884 Fe_ton" + }, + { + "year": 2015, + "value": "92479001.3960884 Fe_ton" + }, + { + "year": 2016, + "value": "90800001.3960884 Fe_ton" + }, + { + "year": 2017, + "value": "93100001.3960884 Fe_ton" + }, + { + "year": 2018, + "value": "92500001.3960884 Fe_ton" + }, + { + "year": 2019, + "value": "89800001.3960884 Fe_ton" + }, + { + "year": 2020, + "value": "71500001.3960884 Fe_ton" + }, + { + "year": 2021, + "value": "71500001.3960884 Fe_ton" + } + ], + "emissions": { + "S1": [ + { + "year": 2009, + "value": NaN + }, + { + "year": 2010, + "value": "165226001.396088 t CO2" + }, + { + "year": 2011, + "value": "162028001.396088 t CO2" + }, + { + "year": 2012, + "value": "158192001.396088 t CO2" + }, + { + "year": 2013, + "value": "169000001.396088 t CO2" + }, + { + "year": 2014, + "value": "174000001.396088 t CO2" + }, + { + "year": 2015, + "value": "176000001.396088 t CO2" + }, + { + "year": 2016, + "value": "176000001.396088 t CO2" + }, + { + "year": 2017, + "value": "179700001.396088 t CO2" + }, + { + "year": 2018, + "value": "174900001.396088 t CO2" + }, + { + "year": 2019, + "value": "169800001.396088 t CO2" + }, + { + "year": 2020, + "value": "141300001.396088 t CO2" + }, + { + "year": 2021, + "value": "141300001.396088 t CO2" + } + ], + "S2": [ + { + "year": 2009, + "value": NaN + }, + { + "year": 2010, + "value": "19599001.3960884 t CO2" + }, + { + "year": 2011, + "value": "17902001.3960884 t CO2" + }, + { + "year": 2012, + "value": "17256001.3960884 t CO2" + }, + { + "year": 2013, + "value": "21000001.3960884 t CO2" + }, + { + "year": 2014, + "value": "17000001.3960884 t CO2" + }, + { + "year": 2015, + "value": "16000001.3960884 t CO2" + }, + { + "year": 2016, + "value": "14000001.3960884 t CO2" + }, + { + "year": 2017, + "value": "15100001.3960884 t CO2" + }, + { + "year": 2018, + "value": "13900001.3960884 t CO2" + }, + { + "year": 2019, + "value": "12100001.3960884 t CO2" + }, + { + "year": 2020, + "value": "9500001.3960884 t CO2" + }, + { + "year": 2021, + "value": "9500001.3960884 t CO2" + } + ], + "S1S2": [], + "S3": [], + "S1S2S3": [] + }, + "emission_intensities": null + }, + "projected_targets": null, + "projected_intensities": { + "S1S2": { + "projections": [ + { + "year": 2019, + "value": "2.0256124717621637 t CO2/Fe_ton" + }, + { + "year": 2020, + "value": "2.1090909069608257 t CO2/Fe_ton" + }, + { + "year": 2021, + "value": "2.1090909069608257 t CO2/Fe_ton" + }, + { + "year": 2022, + "value": "2.1089525981366672 t CO2/Fe_ton" + }, + { + "year": 2023, + "value": "2.10881429838245 t CO2/Fe_ton" + }, + { + "year": 2024, + "value": "2.1086760076975795 t CO2/Fe_ton" + }, + { + "year": 2025, + "value": "2.1085377260814604 t CO2/Fe_ton" + }, + { + "year": 2026, + "value": "2.1083994535334987 t CO2/Fe_ton" + }, + { + "year": 2027, + "value": "2.108261190053099 t CO2/Fe_ton" + }, + { + "year": 2028, + "value": "2.108122935639668 t CO2/Fe_ton" + }, + { + "year": 2029, + "value": "2.1079846902926094 t CO2/Fe_ton" + }, + { + "year": 2030, + "value": "2.1078464540113298 t CO2/Fe_ton" + }, + { + "year": 2031, + "value": "2.1077082267952343 t CO2/Fe_ton" + }, + { + "year": 2032, + "value": "2.107570008643729 t CO2/Fe_ton" + }, + { + "year": 2033, + "value": "2.107431799556218 t CO2/Fe_ton" + }, + { + "year": 2034, + "value": "2.1072935995321087 t CO2/Fe_ton" + }, + { + "year": 2035, + "value": "2.1071554085708057 t CO2/Fe_ton" + }, + { + "year": 2036, + "value": "2.107017226671715 t CO2/Fe_ton" + }, + { + "year": 2037, + "value": "2.106879053834242 t CO2/Fe_ton" + }, + { + "year": 2038, + "value": "2.106740890057793 t CO2/Fe_ton" + }, + { + "year": 2039, + "value": "2.1066027353417733 t CO2/Fe_ton" + }, + { + "year": 2040, + "value": "2.106464589685589 t CO2/Fe_ton" + }, + { + "year": 2041, + "value": "2.106326453088646 t CO2/Fe_ton" + }, + { + "year": 2042, + "value": "2.1061883255503497 t CO2/Fe_ton" + }, + { + "year": 2043, + "value": "2.106050207070107 t CO2/Fe_ton" + }, + { + "year": 2044, + "value": "2.105912097647323 t CO2/Fe_ton" + }, + { + "year": 2045, + "value": "2.1057739972814042 t CO2/Fe_ton" + }, + { + "year": 2046, + "value": "2.1056359059717566 t CO2/Fe_ton" + }, + { + "year": 2047, + "value": "2.1054978237177866 t CO2/Fe_ton" + }, + { + "year": 2048, + "value": "2.1053597505189 t CO2/Fe_ton" + }, + { + "year": 2049, + "value": "2.105221686374503 t CO2/Fe_ton" + }, + { + "year": 2050, + "value": "2.1050836312840016 t CO2/Fe_ton" + } + ] + }, + "S3": null, + "S1S2S3": null + }, + "country": null, + "ghg_s1s2": null, + "ghg_s3": null, + "industry_level_1": null, + "industry_level_2": null, + "industry_level_3": null, + "industry_level_4": null, + "company_revenue": null, + "company_market_cap": null, + "company_enterprise_value": null, + "company_total_assets": null, + "company_cash_equivalents": null + }, + { + "company_name": "Company AW", + "company_id": "US7134481081", + "region": "Asia", + "sector": "Steel", + "target_probability": 0.4285714285714285, + "historic_data": { + "productions": [ + { + "year": 2009, + "value": NaN + }, + { + "year": 2010, + "value": NaN + }, + { + "year": 2011, + "value": NaN + }, + { + "year": 2012, + "value": NaN + }, + { + "year": 2013, + "value": NaN + }, + { + "year": 2014, + "value": NaN + }, + { + "year": 2015, + "value": NaN + }, + { + "year": 2016, + "value": NaN + }, + { + "year": 2017, + "value": NaN + }, + { + "year": 2018, + "value": NaN + }, + { + "year": 2019, + "value": NaN + }, + { + "year": 2020, + "value": NaN + }, + { + "year": 2021, + "value": NaN + } + ], + "emissions": { + "S1": [ + { + "year": 2009, + "value": NaN + }, + { + "year": 2010, + "value": NaN + }, + { + "year": 2011, + "value": "13390004.4552317 t CO2" + }, + { + "year": 2012, + "value": "9480004.45523172 t CO2" + }, + { + "year": 2013, + "value": "8095004.45523172 t CO2" + }, + { + "year": 2014, + "value": "7840004.45523172 t CO2" + }, + { + "year": 2015, + "value": "7810004.45523172 t CO2" + }, + { + "year": 2016, + "value": "8270004.45523172 t CO2" + }, + { + "year": 2017, + "value": "8670004.45523172 t CO2" + }, + { + "year": 2018, + "value": "8780004.45523172 t CO2" + }, + { + "year": 2019, + "value": "8590004.45523172 t CO2" + }, + { + "year": 2020, + "value": "8530004.45523172 t CO2" + }, + { + "year": 2021, + "value": "8530004.45523172 t CO2" + } + ], + "S2": [ + { + "year": 2009, + "value": NaN + }, + { + "year": 2010, + "value": NaN + }, + { + "year": 2011, + "value": "2530004.45523172 t CO2" + }, + { + "year": 2012, + "value": "1970004.45523172 t CO2" + }, + { + "year": 2013, + "value": "1781004.45523172 t CO2" + }, + { + "year": 2014, + "value": "1541004.45523172 t CO2" + }, + { + "year": 2015, + "value": "1570004.45523172 t CO2" + }, + { + "year": 2016, + "value": "1830004.45523172 t CO2" + }, + { + "year": 2017, + "value": "2000004.45523172 t CO2" + }, + { + "year": 2018, + "value": "1970004.45523172 t CO2" + }, + { + "year": 2019, + "value": "1810004.45523172 t CO2" + }, + { + "year": 2020, + "value": "1750004.45523172 t CO2" + }, + { + "year": 2021, + "value": "1750004.45523172 t CO2" + } + ], + "S1S2": [], + "S3": [], + "S1S2S3": [] + }, + "emission_intensities": { + "S1": [ + { + "year": 2009, + "value": NaN + }, + { + "year": 2010, + "value": NaN + }, + { + "year": 2011, + "value": NaN + }, + { + "year": 2012, + "value": NaN + }, + { + "year": 2013, + "value": NaN + }, + { + "year": 2014, + "value": NaN + }, + { + "year": 2015, + "value": NaN + }, + { + "year": 2016, + "value": NaN + }, + { + "year": 2017, + "value": NaN + }, + { + "year": 2018, + "value": NaN + }, + { + "year": 2019, + "value": NaN + }, + { + "year": 2020, + "value": NaN + }, + { + "year": 2021, + "value": NaN + } + ], + "S2": [ + { + "year": 2009, + "value": NaN + }, + { + "year": 2010, + "value": NaN + }, + { + "year": 2011, + "value": NaN + }, + { + "year": 2012, + "value": NaN + }, + { + "year": 2013, + "value": NaN + }, + { + "year": 2014, + "value": NaN + }, + { + "year": 2015, + "value": NaN + }, + { + "year": 2016, + "value": NaN + }, + { + "year": 2017, + "value": NaN + }, + { + "year": 2018, + "value": NaN + }, + { + "year": 2019, + "value": NaN + }, + { + "year": 2020, + "value": NaN + }, + { + "year": 2021, + "value": NaN + } + ], + "S1S2": [], + "S3": [], + "S1S2S3": [] + } + }, + "projected_targets": null, + "projected_intensities": { + "S1S2": { + "projections": [ + { + "year": 2019, + "value": NaN + }, + { + "year": 2020, + "value": NaN + }, + { + "year": 2021, + "value": NaN + }, + { + "year": 2022, + "value": NaN + }, + { + "year": 2023, + "value": NaN + }, + { + "year": 2024, + "value": NaN + }, + { + "year": 2025, + "value": NaN + }, + { + "year": 2026, + "value": NaN + }, + { + "year": 2027, + "value": NaN + }, + { + "year": 2028, + "value": NaN + }, + { + "year": 2029, + "value": NaN + }, + { + "year": 2030, + "value": NaN + }, + { + "year": 2031, + "value": NaN + }, + { + "year": 2032, + "value": NaN + }, + { + "year": 2033, + "value": NaN + }, + { + "year": 2034, + "value": NaN + }, + { + "year": 2035, + "value": NaN + }, + { + "year": 2036, + "value": NaN + }, + { + "year": 2037, + "value": NaN + }, + { + "year": 2038, + "value": NaN + }, + { + "year": 2039, + "value": NaN + }, + { + "year": 2040, + "value": NaN + }, + { + "year": 2041, + "value": NaN + }, + { + "year": 2042, + "value": NaN + }, + { + "year": 2043, + "value": NaN + }, + { + "year": 2044, + "value": NaN + }, + { + "year": 2045, + "value": NaN + }, + { + "year": 2046, + "value": NaN + }, + { + "year": 2047, + "value": NaN + }, + { + "year": 2048, + "value": NaN + }, + { + "year": 2049, + "value": NaN + }, + { + "year": 2050, + "value": NaN + } + ] + }, + "S3": null, + "S1S2S3": null + }, + "country": null, + "ghg_s1s2": null, + "ghg_s3": null, + "industry_level_1": null, + "industry_level_2": null, + "industry_level_3": null, + "industry_level_4": null, + "company_revenue": null, + "company_market_cap": null, + "company_enterprise_value": null, + "company_total_assets": null, + "company_cash_equivalents": null + }, + { + "company_name": "Company A", + "company_id": "JP0000000001", + "region": "Asia", + "sector": "Steel", + "target_probability": 0.4285714285714285, + "historic_data": { + "productions": [ + { + "year": 2009, + "value": NaN + }, + { + "year": 2010, + "value": NaN + }, + { + "year": 2011, + "value": NaN + }, + { + "year": 2012, + "value": NaN + }, + { + "year": 2013, + "value": NaN + }, + { + "year": 2014, + "value": NaN + }, + { + "year": 2015, + "value": NaN + }, + { + "year": 2016, + "value": NaN + }, + { + "year": 2017, + "value": NaN + }, + { + "year": 2018, + "value": NaN + }, + { + "year": 2019, + "value": NaN + }, + { + "year": 2020, + "value": NaN + }, + { + "year": 2021, + "value": NaN + } + ], + "emissions": { + "S1": [ + { + "year": 2009, + "value": "21759305.8145184 t CO2" + }, + { + "year": 2010, + "value": "20966413.8145184 t CO2" + }, + { + "year": 2011, + "value": "21128989.8145184 t CO2" + }, + { + "year": 2012, + "value": "20070402.8145184 t CO2" + }, + { + "year": 2013, + "value": "19691129.8145184 t CO2" + }, + { + "year": 2014, + "value": "19443564.8145184 t CO2" + }, + { + "year": 2015, + "value": "20018158.8145184 t CO2" + }, + { + "year": 2016, + "value": "21042990.8145184 t CO2" + }, + { + "year": 2017, + "value": "20006804.8145184 t CO2" + }, + { + "year": 2018, + "value": "20805771.8145184 t CO2" + }, + { + "year": 2019, + "value": "20351815.8145184 t CO2" + }, + { + "year": 2020, + "value": "20351815.8145184 t CO2" + }, + { + "year": 2021, + "value": "20351815.8145184 t CO2" + } + ], + "S2": [ + { + "year": 2009, + "value": "1337565.8145184 t CO2" + }, + { + "year": 2010, + "value": "1349200.8145184 t CO2" + }, + { + "year": 2011, + "value": "1371359.8145184 t CO2" + }, + { + "year": 2012, + "value": "1243282.8145184 t CO2" + }, + { + "year": 2013, + "value": "1257964.8145184 t CO2" + }, + { + "year": 2014, + "value": "1185845.8145184 t CO2" + }, + { + "year": 2015, + "value": "1109279.8145184 t CO2" + }, + { + "year": 2016, + "value": "1275990.8145184 t CO2" + }, + { + "year": 2017, + "value": "1298687.8145184 t CO2" + }, + { + "year": 2018, + "value": "1294689.8145184 t CO2" + }, + { + "year": 2019, + "value": "1181783.8145184 t CO2" + }, + { + "year": 2020, + "value": "1181783.8145184 t CO2" + }, + { + "year": 2021, + "value": "1181783.8145184 t CO2" + } + ], + "S1S2": [], + "S3": [], + "S1S2S3": [] + }, + "emission_intensities": { + "S1": [ + { + "year": 2009, + "value": NaN + }, + { + "year": 2010, + "value": NaN + }, + { + "year": 2011, + "value": NaN + }, + { + "year": 2012, + "value": NaN + }, + { + "year": 2013, + "value": NaN + }, + { + "year": 2014, + "value": NaN + }, + { + "year": 2015, + "value": NaN + }, + { + "year": 2016, + "value": NaN + }, + { + "year": 2017, + "value": NaN + }, + { + "year": 2018, + "value": NaN + }, + { + "year": 2019, + "value": NaN + }, + { + "year": 2020, + "value": NaN + }, + { + "year": 2021, + "value": NaN + } + ], + "S2": [ + { + "year": 2009, + "value": NaN + }, + { + "year": 2010, + "value": NaN + }, + { + "year": 2011, + "value": NaN + }, + { + "year": 2012, + "value": NaN + }, + { + "year": 2013, + "value": NaN + }, + { + "year": 2014, + "value": NaN + }, + { + "year": 2015, + "value": NaN + }, + { + "year": 2016, + "value": NaN + }, + { + "year": 2017, + "value": NaN + }, + { + "year": 2018, + "value": NaN + }, + { + "year": 2019, + "value": NaN + }, + { + "year": 2020, + "value": NaN + }, + { + "year": 2021, + "value": NaN + } + ], + "S1S2": [], + "S3": [], + "S1S2S3": [] + } + }, + "projected_targets": null, + "projected_intensities": { + "S1S2": { + "projections": [ + { + "year": 2019, + "value": NaN + }, + { + "year": 2020, + "value": NaN + }, + { + "year": 2021, + "value": NaN + }, + { + "year": 2022, + "value": NaN + }, + { + "year": 2023, + "value": NaN + }, + { + "year": 2024, + "value": NaN + }, + { + "year": 2025, + "value": NaN + }, + { + "year": 2026, + "value": NaN + }, + { + "year": 2027, + "value": NaN + }, + { + "year": 2028, + "value": NaN + }, + { + "year": 2029, + "value": NaN + }, + { + "year": 2030, + "value": NaN + }, + { + "year": 2031, + "value": NaN + }, + { + "year": 2032, + "value": NaN + }, + { + "year": 2033, + "value": NaN + }, + { + "year": 2034, + "value": NaN + }, + { + "year": 2035, + "value": NaN + }, + { + "year": 2036, + "value": NaN + }, + { + "year": 2037, + "value": NaN + }, + { + "year": 2038, + "value": NaN + }, + { + "year": 2039, + "value": NaN + }, + { + "year": 2040, + "value": NaN + }, + { + "year": 2041, + "value": NaN + }, + { + "year": 2042, + "value": NaN + }, + { + "year": 2043, + "value": NaN + }, + { + "year": 2044, + "value": NaN + }, + { + "year": 2045, + "value": NaN + }, + { + "year": 2046, + "value": NaN + }, + { + "year": 2047, + "value": NaN + }, + { + "year": 2048, + "value": NaN + }, + { + "year": 2049, + "value": NaN + }, + { + "year": 2050, + "value": NaN + } + ] + }, + "S3": null, + "S1S2S3": null + }, + "country": null, + "ghg_s1s2": null, + "ghg_s3": null, + "industry_level_1": null, + "industry_level_2": null, + "industry_level_3": null, + "industry_level_4": null, + "company_revenue": null, + "company_market_cap": null, + "company_enterprise_value": null, + "company_total_assets": null, + "company_cash_equivalents": null + }, + { + "company_name": "Company B", + "company_id": "NL0000000002", + "region": "South America", + "sector": "Steel", + "target_probability": 0.4285714285714285, + "historic_data": { + "productions": [ + { + "year": 2009, + "value": NaN + }, + { + "year": 2010, + "value": NaN + }, + { + "year": 2011, + "value": NaN + }, + { + "year": 2012, + "value": NaN + }, + { + "year": 2013, + "value": NaN + }, + { + "year": 2014, + "value": NaN + }, + { + "year": 2015, + "value": NaN + }, + { + "year": 2016, + "value": NaN + }, + { + "year": 2017, + "value": "16120000.4760821 Fe_ton" + }, + { + "year": 2018, + "value": "15342000.4760821 Fe_ton" + }, + { + "year": 2019, + "value": "12453000.4760821 Fe_ton" + }, + { + "year": 2020, + "value": "12194000.4760821 Fe_ton" + }, + { + "year": 2021, + "value": "12194000.4760821 Fe_ton" + } + ], + "emissions": { + "S1": [ + { + "year": 2009, + "value": NaN + }, + { + "year": 2010, + "value": NaN + }, + { + "year": 2011, + "value": NaN + }, + { + "year": 2012, + "value": NaN + }, + { + "year": 2013, + "value": NaN + }, + { + "year": 2014, + "value": NaN + }, + { + "year": 2015, + "value": NaN + }, + { + "year": 2016, + "value": NaN + }, + { + "year": 2017, + "value": NaN + }, + { + "year": 2018, + "value": NaN + }, + { + "year": 2019, + "value": "9056.99508207154 t CO2" + }, + { + "year": 2020, + "value": "9056.99508207154 t CO2" + }, + { + "year": 2021, + "value": "9056.99508207154 t CO2" + } + ], + "S2": [ + { + "year": 2009, + "value": NaN + }, + { + "year": 2010, + "value": NaN + }, + { + "year": 2011, + "value": NaN + }, + { + "year": 2012, + "value": NaN + }, + { + "year": 2013, + "value": NaN + }, + { + "year": 2014, + "value": NaN + }, + { + "year": 2015, + "value": NaN + }, + { + "year": 2016, + "value": NaN + }, + { + "year": 2017, + "value": NaN + }, + { + "year": 2018, + "value": NaN + }, + { + "year": 2019, + "value": "2890986.47608207 t CO2" + }, + { + "year": 2020, + "value": "2890986.47608207 t CO2" + }, + { + "year": 2021, + "value": "2890986.47608207 t CO2" + } + ], + "S1S2": [], + "S3": [], + "S1S2S3": [] + }, + "emission_intensities": { + "S1": [ + { + "year": 2009, + "value": NaN + }, + { + "year": 2010, + "value": NaN + }, + { + "year": 2011, + "value": NaN + }, + { + "year": 2012, + "value": NaN + }, + { + "year": 2013, + "value": NaN + }, + { + "year": 2014, + "value": NaN + }, + { + "year": 2015, + "value": NaN + }, + { + "year": 2016, + "value": NaN + }, + { + "year": 2017, + "value": NaN + }, + { + "year": 2018, + "value": NaN + }, + { + "year": 2019, + "value": "0.000727294205076673 t CO2/Fe_ton" + }, + { + "year": 2020, + "value": "0.000742741899988965 t CO2/Fe_ton" + }, + { + "year": 2021, + "value": "0.000742741899988965 t CO2/Fe_ton" + } + ], + "S2": [ + { + "year": 2009, + "value": NaN + }, + { + "year": 2010, + "value": NaN + }, + { + "year": 2011, + "value": NaN + }, + { + "year": 2012, + "value": NaN + }, + { + "year": 2013, + "value": NaN + }, + { + "year": 2014, + "value": NaN + }, + { + "year": 2015, + "value": NaN + }, + { + "year": 2016, + "value": NaN + }, + { + "year": 2017, + "value": NaN + }, + { + "year": 2018, + "value": NaN + }, + { + "year": 2019, + "value": "0.232151800012749 t CO2/Fe_ton" + }, + { + "year": 2020, + "value": "0.237082693391115 t CO2/Fe_ton" + }, + { + "year": 2021, + "value": "0.237082693391115 t CO2/Fe_ton" + } + ], + "S1S2": [], + "S3": [], + "S1S2S3": [] + } + }, + "projected_targets": null, + "projected_intensities": { + "S1S2": { + "projections": [ + { + "year": 2019, + "value": "0.23287909421782566 t CO2/Fe_ton" + }, + { + "year": 2020, + "value": "0.23782543529110398 t CO2/Fe_ton" + }, + { + "year": 2021, + "value": "0.23782543529110398 t CO2/Fe_ton" + }, + { + "year": 2022, + "value": "0.23983744872740673 t CO2/Fe_ton" + }, + { + "year": 2023, + "value": "0.24186648388412768 t CO2/Fe_ton" + }, + { + "year": 2024, + "value": "0.24391268476575548 t CO2/Fe_ton" + }, + { + "year": 2025, + "value": "0.2459761965950629 t CO2/Fe_ton" + }, + { + "year": 2026, + "value": "0.24805716582341367 t CO2/Fe_ton" + }, + { + "year": 2027, + "value": "0.2501557401411564 t CO2/Fe_ton" + }, + { + "year": 2028, + "value": "0.2522720684881063 t CO2/Fe_ton" + }, + { + "year": 2029, + "value": "0.254406301064116 t CO2/Fe_ton" + }, + { + "year": 2030, + "value": "0.25655858933973524 t CO2/Fe_ton" + }, + { + "year": 2031, + "value": "0.2587290860669612 t CO2/Fe_ton" + }, + { + "year": 2032, + "value": "0.2609179452900795 t CO2/Fe_ton" + }, + { + "year": 2033, + "value": "0.2631253223565971 t CO2/Fe_ton" + }, + { + "year": 2034, + "value": "0.2653513739282675 t CO2/Fe_ton" + }, + { + "year": 2035, + "value": "0.26759625799220954 t CO2/Fe_ton" + }, + { + "year": 2036, + "value": "0.2698601338721197 t CO2/Fe_ton" + }, + { + "year": 2037, + "value": "0.2721431622395799 t CO2/Fe_ton" + }, + { + "year": 2038, + "value": "0.2744455051254606 t CO2/Fe_ton" + }, + { + "year": 2039, + "value": "0.2767673259314204 t CO2/Fe_ton" + }, + { + "year": 2040, + "value": "0.27910878944150286 t CO2/Fe_ton" + }, + { + "year": 2041, + "value": "0.28147006183383183 t CO2/Fe_ton" + }, + { + "year": 2042, + "value": "0.2838513106924051 t CO2/Fe_ton" + }, + { + "year": 2043, + "value": "0.2862527050189884 t CO2/Fe_ton" + }, + { + "year": 2044, + "value": "0.28867441524510973 t CO2/Fe_ton" + }, + { + "year": 2045, + "value": "0.291116613244155 t CO2/Fe_ton" + }, + { + "year": 2046, + "value": "0.29357947234356646 t CO2/Fe_ton" + }, + { + "year": 2047, + "value": "0.29606316733714405 t CO2/Fe_ton" + }, + { + "year": 2048, + "value": "0.29856787449745076 t CO2/Fe_ton" + }, + { + "year": 2049, + "value": "0.301093771588323 t CO2/Fe_ton" + }, + { + "year": 2050, + "value": "0.303641037877487 t CO2/Fe_ton" + } + ] + }, + "S3": null, + "S1S2S3": null + }, + "country": null, + "ghg_s1s2": null, + "ghg_s3": null, + "industry_level_1": null, + "industry_level_2": null, + "industry_level_3": null, + "industry_level_4": null, + "company_revenue": null, + "company_market_cap": null, + "company_enterprise_value": null, + "company_total_assets": null, + "company_cash_equivalents": null + }, + { + "company_name": "Company C", + "company_id": "IT0000000003", + "region": "Asia", + "sector": "Steel", + "target_probability": 0.4285714285714285, + "historic_data": { + "productions": [ + { + "year": 2009, + "value": NaN + }, + { + "year": 2010, + "value": NaN + }, + { + "year": 2011, + "value": NaN + }, + { + "year": 2012, + "value": NaN + }, + { + "year": 2013, + "value": NaN + }, + { + "year": 2014, + "value": "19374009.677026 Fe_ton" + }, + { + "year": 2015, + "value": "21182009.677026 Fe_ton" + }, + { + "year": 2016, + "value": "22380009.677026 Fe_ton" + }, + { + "year": 2017, + "value": "23290009.677026 Fe_ton" + }, + { + "year": 2018, + "value": "23763009.677026 Fe_ton" + }, + { + "year": 2019, + "value": "23303009.677026 Fe_ton" + }, + { + "year": 2020, + "value": "23303009.677026 Fe_ton" + }, + { + "year": 2021, + "value": "23303009.677026 Fe_ton" + } + ], + "emissions": { + "S1": [ + { + "year": 2009, + "value": NaN + }, + { + "year": 2010, + "value": "766009.677026013 t CO2" + }, + { + "year": 2011, + "value": "10247400.677026 t CO2" + }, + { + "year": 2012, + "value": "10197994.677026 t CO2" + }, + { + "year": 2013, + "value": "11080009.677026 t CO2" + }, + { + "year": 2014, + "value": "13317009.677026 t CO2" + }, + { + "year": 2015, + "value": "14157009.677026 t CO2" + }, + { + "year": 2016, + "value": "15622009.677026 t CO2" + }, + { + "year": 2017, + "value": "15710009.677026 t CO2" + }, + { + "year": 2018, + "value": "16492009.677026 t CO2" + }, + { + "year": 2019, + "value": "16442009.677026 t CO2" + }, + { + "year": 2020, + "value": "16442009.677026 t CO2" + }, + { + "year": 2021, + "value": "16442009.677026 t CO2" + } + ], + "S2": [ + { + "year": 2009, + "value": NaN + }, + { + "year": 2010, + "value": "3518009.67702601 t CO2" + }, + { + "year": 2011, + "value": "4342232.67702601 t CO2" + }, + { + "year": 2012, + "value": "4164848.67702601 t CO2" + }, + { + "year": 2013, + "value": "4818009.67702601 t CO2" + }, + { + "year": 2014, + "value": "5480009.67702601 t CO2" + }, + { + "year": 2015, + "value": "5416009.67702601 t CO2" + }, + { + "year": 2016, + "value": "5653009.67702601 t CO2" + }, + { + "year": 2017, + "value": "5769009.67702601 t CO2" + }, + { + "year": 2018, + "value": "5806009.67702601 t CO2" + }, + { + "year": 2019, + "value": "5803009.67702601 t CO2" + }, + { + "year": 2020, + "value": "5803009.67702601 t CO2" + }, + { + "year": 2021, + "value": "5803009.67702601 t CO2" + } + ], + "S1S2": [], + "S3": [], + "S1S2S3": [] + }, + "emission_intensities": { + "S1": [ + { + "year": 2009, + "value": NaN + }, + { + "year": 2010, + "value": NaN + }, + { + "year": 2011, + "value": NaN + }, + { + "year": 2012, + "value": NaN + }, + { + "year": 2013, + "value": NaN + }, + { + "year": 2014, + "value": "0.687364665292674 t CO2/Fe_ton" + }, + { + "year": 2015, + "value": "0.66835063777639 t CO2/Fe_ton" + }, + { + "year": 2016, + "value": "0.698034089460767 t CO2/Fe_ton" + }, + { + "year": 2017, + "value": "0.67453856373975 t CO2/Fe_ton" + }, + { + "year": 2018, + "value": "0.694020239909696 t CO2/Fe_ton" + }, + { + "year": 2019, + "value": "0.705574511829511 t CO2/Fe_ton" + }, + { + "year": 2020, + "value": "0.705574511829511 t CO2/Fe_ton" + }, + { + "year": 2021, + "value": "0.705574511829511 t CO2/Fe_ton" + } + ], + "S2": [ + { + "year": 2009, + "value": NaN + }, + { + "year": 2010, + "value": NaN + }, + { + "year": 2011, + "value": NaN + }, + { + "year": 2012, + "value": NaN + }, + { + "year": 2013, + "value": NaN + }, + { + "year": 2014, + "value": "0.282853666761831 t CO2/Fe_ton" + }, + { + "year": 2015, + "value": "0.255689132410331 t CO2/Fe_ton" + }, + { + "year": 2016, + "value": "0.252591922818919 t CO2/Fe_ton" + }, + { + "year": 2017, + "value": "0.247703189351473 t CO2/Fe_ton" + }, + { + "year": 2018, + "value": "0.244329727418293 t CO2/Fe_ton" + }, + { + "year": 2019, + "value": "0.249024042707543 t CO2/Fe_ton" + }, + { + "year": 2020, + "value": "0.249024042707543 t CO2/Fe_ton" + }, + { + "year": 2021, + "value": "0.249024042707543 t CO2/Fe_ton" + } + ], + "S1S2": [], + "S3": [], + "S1S2S3": [] + } + }, + "projected_targets": null, + "projected_intensities": { + "S1S2": { + "projections": [ + { + "year": 2019, + "value": "0.954598554537054 t CO2/Fe_ton" + }, + { + "year": 2020, + "value": "0.954598554537054 t CO2/Fe_ton" + }, + { + "year": 2021, + "value": "0.954598554537054 t CO2/Fe_ton" + }, + { + "year": 2022, + "value": "0.954598554537054 t CO2/Fe_ton" + }, + { + "year": 2023, + "value": "0.954598554537054 t CO2/Fe_ton" + }, + { + "year": 2024, + "value": "0.954598554537054 t CO2/Fe_ton" + }, + { + "year": 2025, + "value": "0.954598554537054 t CO2/Fe_ton" + }, + { + "year": 2026, + "value": "0.954598554537054 t CO2/Fe_ton" + }, + { + "year": 2027, + "value": "0.954598554537054 t CO2/Fe_ton" + }, + { + "year": 2028, + "value": "0.954598554537054 t CO2/Fe_ton" + }, + { + "year": 2029, + "value": "0.954598554537054 t CO2/Fe_ton" + }, + { + "year": 2030, + "value": "0.954598554537054 t CO2/Fe_ton" + }, + { + "year": 2031, + "value": "0.954598554537054 t CO2/Fe_ton" + }, + { + "year": 2032, + "value": "0.954598554537054 t CO2/Fe_ton" + }, + { + "year": 2033, + "value": "0.954598554537054 t CO2/Fe_ton" + }, + { + "year": 2034, + "value": "0.954598554537054 t CO2/Fe_ton" + }, + { + "year": 2035, + "value": "0.954598554537054 t CO2/Fe_ton" + }, + { + "year": 2036, + "value": "0.954598554537054 t CO2/Fe_ton" + }, + { + "year": 2037, + "value": "0.954598554537054 t CO2/Fe_ton" + }, + { + "year": 2038, + "value": "0.954598554537054 t CO2/Fe_ton" + }, + { + "year": 2039, + "value": "0.954598554537054 t CO2/Fe_ton" + }, + { + "year": 2040, + "value": "0.954598554537054 t CO2/Fe_ton" + }, + { + "year": 2041, + "value": "0.954598554537054 t CO2/Fe_ton" + }, + { + "year": 2042, + "value": "0.954598554537054 t CO2/Fe_ton" + }, + { + "year": 2043, + "value": "0.954598554537054 t CO2/Fe_ton" + }, + { + "year": 2044, + "value": "0.954598554537054 t CO2/Fe_ton" + }, + { + "year": 2045, + "value": "0.954598554537054 t CO2/Fe_ton" + }, + { + "year": 2046, + "value": "0.954598554537054 t CO2/Fe_ton" + }, + { + "year": 2047, + "value": "0.954598554537054 t CO2/Fe_ton" + }, + { + "year": 2048, + "value": "0.954598554537054 t CO2/Fe_ton" + }, + { + "year": 2049, + "value": "0.954598554537054 t CO2/Fe_ton" + }, + { + "year": 2050, + "value": "0.954598554537054 t CO2/Fe_ton" + } + ] + }, + "S3": null, + "S1S2S3": null + }, + "country": null, + "ghg_s1s2": null, + "ghg_s3": null, + "industry_level_1": null, + "industry_level_2": null, + "industry_level_3": null, + "industry_level_4": null, + "company_revenue": null, + "company_market_cap": null, + "company_enterprise_value": null, + "company_total_assets": null, + "company_cash_equivalents": null + }, + { + "company_name": "Company D", + "company_id": "SE0000000004", + "region": "Asia", + "sector": "Steel", + "target_probability": 0.4285714285714285, + "historic_data": { + "productions": [ + { + "year": 2009, + "value": NaN + }, + { + "year": 2010, + "value": NaN + }, + { + "year": 2011, + "value": NaN + }, + { + "year": 2012, + "value": NaN + }, + { + "year": 2013, + "value": NaN + }, + { + "year": 2014, + "value": "31580000.2335485 Fe_ton" + }, + { + "year": 2015, + "value": "31040000.2335485 Fe_ton" + }, + { + "year": 2016, + "value": "29751000.2335485 Fe_ton" + }, + { + "year": 2017, + "value": "30410000.2335485 Fe_ton" + }, + { + "year": 2018, + "value": "29145000.2335485 Fe_ton" + }, + { + "year": 2019, + "value": "27880000.2335485 Fe_ton" + }, + { + "year": 2020, + "value": "28090000.2335485 Fe_ton" + }, + { + "year": 2021, + "value": "28090000.2335485 Fe_ton" + } + ], + "emissions": { + "S1": [ + { + "year": 2009, + "value": NaN + }, + { + "year": 2010, + "value": NaN + }, + { + "year": 2011, + "value": NaN + }, + { + "year": 2012, + "value": NaN + }, + { + "year": 2013, + "value": NaN + }, + { + "year": 2014, + "value": NaN + }, + { + "year": 2015, + "value": NaN + }, + { + "year": 2016, + "value": "54700000.2335485 t CO2" + }, + { + "year": 2017, + "value": "55000000.2335485 t CO2" + }, + { + "year": 2018, + "value": "54900000.2335485 t CO2" + }, + { + "year": 2019, + "value": "52300000.2335485 t CO2" + }, + { + "year": 2020, + "value": "52900000.2335485 t CO2" + }, + { + "year": 2021, + "value": "52900000.2335485 t CO2" + } + ], + "S2": [ + { + "year": 2009, + "value": NaN + }, + { + "year": 2010, + "value": NaN + }, + { + "year": 2011, + "value": NaN + }, + { + "year": 2012, + "value": NaN + }, + { + "year": 2013, + "value": NaN + }, + { + "year": 2014, + "value": NaN + }, + { + "year": 2015, + "value": NaN + }, + { + "year": 2016, + "value": "6600000.23354846 t CO2" + }, + { + "year": 2017, + "value": "6400000.23354846 t CO2" + }, + { + "year": 2018, + "value": "7400000.23354846 t CO2" + }, + { + "year": 2019, + "value": "7500000.23354846 t CO2" + }, + { + "year": 2020, + "value": "7600000.23354846 t CO2" + }, + { + "year": 2021, + "value": "7600000.23354846 t CO2" + } + ], + "S1S2": [], + "S3": [], + "S1S2S3": [] + }, + "emission_intensities": { + "S1": [ + { + "year": 2009, + "value": NaN + }, + { + "year": 2010, + "value": NaN + }, + { + "year": 2011, + "value": NaN + }, + { + "year": 2012, + "value": NaN + }, + { + "year": 2013, + "value": NaN + }, + { + "year": 2014, + "value": NaN + }, + { + "year": 2015, + "value": NaN + }, + { + "year": 2016, + "value": "1.83859365413424 t CO2/Fe_ton" + }, + { + "year": 2017, + "value": "1.80861558076781 t CO2/Fe_ton" + }, + { + "year": 2018, + "value": "1.8836850160788 t CO2/Fe_ton" + }, + { + "year": 2019, + "value": "1.87589669280616 t CO2/Fe_ton" + }, + { + "year": 2020, + "value": "1.88323245972668 t CO2/Fe_ton" + }, + { + "year": 2021, + "value": "1.88323245972668 t CO2/Fe_ton" + } + ], + "S2": [ + { + "year": 2009, + "value": NaN + }, + { + "year": 2010, + "value": NaN + }, + { + "year": 2011, + "value": NaN + }, + { + "year": 2012, + "value": NaN + }, + { + "year": 2013, + "value": NaN + }, + { + "year": 2014, + "value": NaN + }, + { + "year": 2015, + "value": NaN + }, + { + "year": 2016, + "value": "0.221841288754589 t CO2/Fe_ton" + }, + { + "year": 2017, + "value": "0.21045709254839 t CO2/Fe_ton" + }, + { + "year": 2018, + "value": "0.253902905275342 t CO2/Fe_ton" + }, + { + "year": 2019, + "value": "0.26901004916505 t CO2/Fe_ton" + }, + { + "year": 2020, + "value": "0.270558923829115 t CO2/Fe_ton" + }, + { + "year": 2021, + "value": "0.270558923829115 t CO2/Fe_ton" + } + ], + "S1S2": [], + "S3": [], + "S1S2S3": [] + } + }, + "projected_targets": null, + "projected_intensities": { + "S1S2": { + "projections": [ + { + "year": 2019, + "value": "2.14490674197121 t CO2/Fe_ton" + }, + { + "year": 2020, + "value": "2.153791383555795 t CO2/Fe_ton" + }, + { + "year": 2021, + "value": "2.153791383555795 t CO2/Fe_ton" + }, + { + "year": 2022, + "value": "2.161165682701744 t CO2/Fe_ton" + }, + { + "year": 2023, + "value": "2.16856523048055 t CO2/Fe_ton" + }, + { + "year": 2024, + "value": "2.175990113340219 t CO2/Fe_ton" + }, + { + "year": 2025, + "value": "2.183440418024745 t CO2/Fe_ton" + }, + { + "year": 2026, + "value": "2.1909162315751214 t CO2/Fe_ton" + }, + { + "year": 2027, + "value": "2.1984176413303578 t CO2/Fe_ton" + }, + { + "year": 2028, + "value": "2.205944734928502 t CO2/Fe_ton" + }, + { + "year": 2029, + "value": "2.213497600307663 t CO2/Fe_ton" + }, + { + "year": 2030, + "value": "2.221076325707038 t CO2/Fe_ton" + }, + { + "year": 2031, + "value": "2.228680999667943 t CO2/Fe_ton" + }, + { + "year": 2032, + "value": "2.236311711034849 t CO2/Fe_ton" + }, + { + "year": 2033, + "value": "2.2439685489564183 t CO2/Fe_ton" + }, + { + "year": 2034, + "value": "2.2516516028865468 t CO2/Fe_ton" + }, + { + "year": 2035, + "value": "2.2593609625854083 t CO2/Fe_ton" + }, + { + "year": 2036, + "value": "2.2670967181205044 t CO2/Fe_ton" + }, + { + "year": 2037, + "value": "2.274858959867715 t CO2/Fe_ton" + }, + { + "year": 2038, + "value": "2.2826477785123562 t CO2/Fe_ton" + }, + { + "year": 2039, + "value": "2.2904632650502377 t CO2/Fe_ton" + }, + { + "year": 2040, + "value": "2.298305510788728 t CO2/Fe_ton" + }, + { + "year": 2041, + "value": "2.3061746073478187 t CO2/Fe_ton" + }, + { + "year": 2042, + "value": "2.314070646661198 t CO2/Fe_ton" + }, + { + "year": 2043, + "value": "2.3219937209773214 t CO2/Fe_ton" + }, + { + "year": 2044, + "value": "2.3299439228604917 t CO2/Fe_ton" + }, + { + "year": 2045, + "value": "2.33792134519194 t CO2/Fe_ton" + }, + { + "year": 2046, + "value": "2.34592608117091 t CO2/Fe_ton" + }, + { + "year": 2047, + "value": "2.3539582243157473 t CO2/Fe_ton" + }, + { + "year": 2048, + "value": "2.3620178684649926 t CO2/Fe_ton" + }, + { + "year": 2049, + "value": "2.3701051077784774 t CO2/Fe_ton" + }, + { + "year": 2050, + "value": "2.3782200367384236 t CO2/Fe_ton" + } + ] + }, + "S3": null, + "S1S2S3": null + }, + "country": null, + "ghg_s1s2": null, + "ghg_s3": null, + "industry_level_1": null, + "industry_level_2": null, + "industry_level_3": null, + "industry_level_4": null, + "company_revenue": null, + "company_market_cap": null, + "company_enterprise_value": null, + "company_total_assets": null, + "company_cash_equivalents": null + }, + { + "company_name": "Company E", + "company_id": "SE0000000005", + "region": "Asia", + "sector": "Steel", + "target_probability": 0.4285714285714285, + "historic_data": { + "productions": [ + { + "year": 2009, + "value": NaN + }, + { + "year": 2010, + "value": NaN + }, + { + "year": 2011, + "value": NaN + }, + { + "year": 2012, + "value": NaN + }, + { + "year": 2013, + "value": NaN + }, + { + "year": 2014, + "value": "12170001.0468216 Fe_ton" + }, + { + "year": 2015, + "value": "12630001.0468216 Fe_ton" + }, + { + "year": 2016, + "value": "12630001.0468216 Fe_ton" + }, + { + "year": 2017, + "value": "12630001.0468216 Fe_ton" + }, + { + "year": 2018, + "value": "12630001.0468216 Fe_ton" + }, + { + "year": 2019, + "value": "12630001.0468216 Fe_ton" + }, + { + "year": 2020, + "value": "12630001.0468216 Fe_ton" + }, + { + "year": 2021, + "value": "12630001.0468216 Fe_ton" + } + ], + "emissions": { + "S1": [ + { + "year": 2009, + "value": NaN + }, + { + "year": 2010, + "value": "14667421.0468216 t CO2" + }, + { + "year": 2011, + "value": "15541981.0468216 t CO2" + }, + { + "year": 2012, + "value": "21355001.0468216 t CO2" + }, + { + "year": 2013, + "value": "28086001.0468216 t CO2" + }, + { + "year": 2014, + "value": "26077001.0468216 t CO2" + }, + { + "year": 2015, + "value": "26816001.0468216 t CO2" + }, + { + "year": 2016, + "value": "31440001.0468216 t CO2" + }, + { + "year": 2017, + "value": "36610961.0468216 t CO2" + }, + { + "year": 2018, + "value": "41528001.0468216 t CO2" + }, + { + "year": 2019, + "value": "41938351.0468216 t CO2" + }, + { + "year": 2020, + "value": "40045311.0468216 t CO2" + }, + { + "year": 2021, + "value": "40045311.0468216 t CO2" + } + ], + "S2": [ + { + "year": 2009, + "value": NaN + }, + { + "year": 2010, + "value": "976021.046821591 t CO2" + }, + { + "year": 2011, + "value": "1550771.04682159 t CO2" + }, + { + "year": 2012, + "value": "16541.0468215911 t CO2" + }, + { + "year": 2013, + "value": "33601.0468215911 t CO2" + }, + { + "year": 2014, + "value": "3742001.04682159 t CO2" + }, + { + "year": 2015, + "value": "4157001.04682159 t CO2" + }, + { + "year": 2016, + "value": "661001.046821591 t CO2" + }, + { + "year": 2017, + "value": "1885181.04682159 t CO2" + }, + { + "year": 2018, + "value": "626001.046821591 t CO2" + }, + { + "year": 2019, + "value": "3909961.04682159 t CO2" + }, + { + "year": 2020, + "value": "476901.046821591 t CO2" + }, + { + "year": 2021, + "value": "476901.046821591 t CO2" + } + ], + "S1S2": [], + "S3": [], + "S1S2S3": [] + }, + "emission_intensities": { + "S1": [ + { + "year": 2009, + "value": NaN + }, + { + "year": 2010, + "value": NaN + }, + { + "year": 2011, + "value": NaN + }, + { + "year": 2012, + "value": NaN + }, + { + "year": 2013, + "value": NaN + }, + { + "year": 2014, + "value": "2.14272792142709 t CO2/Fe_ton" + }, + { + "year": 2015, + "value": "2.12319864008008 t CO2/Fe_ton" + }, + { + "year": 2016, + "value": "2.48931104045582 t CO2/Fe_ton" + }, + { + "year": 2017, + "value": "2.89872985054383 t CO2/Fe_ton" + }, + { + "year": 2018, + "value": "3.28804414923404 t CO2/Fe_ton" + }, + { + "year": 2019, + "value": "3.32053424947068 t CO2/Fe_ton" + }, + { + "year": 2020, + "value": "3.17064985967671 t CO2/Fe_ton" + }, + { + "year": 2021, + "value": "3.17064985967671 t CO2/Fe_ton" + } + ], + "S2": [ + { + "year": 2009, + "value": NaN + }, + { + "year": 2010, + "value": NaN + }, + { + "year": 2011, + "value": NaN + }, + { + "year": 2012, + "value": NaN + }, + { + "year": 2013, + "value": NaN + }, + { + "year": 2014, + "value": "0.307477463019519 t CO2/Fe_ton" + }, + { + "year": 2015, + "value": "0.329137031058895 t CO2/Fe_ton" + }, + { + "year": 2016, + "value": "0.0523357871761963 t CO2/Fe_ton" + }, + { + "year": 2017, + "value": "0.149262144938302 t CO2/Fe_ton" + }, + { + "year": 2018, + "value": "0.0495646076750823 t CO2/Fe_ton" + }, + { + "year": 2019, + "value": "0.309577254374461 t CO2/Fe_ton" + }, + { + "year": 2020, + "value": "0.0377593830003368 t CO2/Fe_ton" + }, + { + "year": 2021, + "value": "0.0377593830003368 t CO2/Fe_ton" + } + ], + "S1S2": [], + "S3": [], + "S1S2S3": [] + } + }, + "projected_targets": null, + "projected_intensities": { + "S1S2": { + "projections": [ + { + "year": 2019, + "value": "3.630111503845141 t CO2/Fe_ton" + }, + { + "year": 2020, + "value": "3.2084092426770465 t CO2/Fe_ton" + }, + { + "year": 2021, + "value": "3.2084092426770465 t CO2/Fe_ton" + }, + { + "year": 2022, + "value": "3.2927632144991095 t CO2/Fe_ton" + }, + { + "year": 2023, + "value": "3.379334980880391 t CO2/Fe_ton" + }, + { + "year": 2024, + "value": "3.468182851021996 t CO2/Fe_ton" + }, + { + "year": 2025, + "value": "3.559366667162847 t CO2/Fe_ton" + }, + { + "year": 2026, + "value": "3.652947844885588 t CO2/Fe_ton" + }, + { + "year": 2027, + "value": "3.7489894144821885 t CO2/Fe_ton" + }, + { + "year": 2028, + "value": "3.8475560634071164 t CO2/Fe_ton" + }, + { + "year": 2029, + "value": "3.948714179846666 t CO2/Fe_ton" + }, + { + "year": 2030, + "value": "4.0525318974337905 t CO2/Fe_ton" + }, + { + "year": 2031, + "value": "4.159079141138558 t CO2/Fe_ton" + }, + { + "year": 2032, + "value": "4.268427674365136 t CO2/Fe_ton" + }, + { + "year": 2033, + "value": "4.380651147287026 t CO2/Fe_ton" + }, + { + "year": 2034, + "value": "4.495825146453109 t CO2/Fe_ton" + }, + { + "year": 2035, + "value": "4.614027245697903 t CO2/Fe_ton" + }, + { + "year": 2036, + "value": "4.735337058390338 t CO2/Fe_ton" + }, + { + "year": 2037, + "value": "4.859836291056224 t CO2/Fe_ton" + }, + { + "year": 2038, + "value": "4.987608798410536 t CO2/Fe_ton" + }, + { + "year": 2039, + "value": "5.1187406398365844 t CO2/Fe_ton" + }, + { + "year": 2040, + "value": "5.253320137350109 t CO2/Fe_ton" + }, + { + "year": 2041, + "value": "5.391437935087332 t CO2/Fe_ton" + }, + { + "year": 2042, + "value": "5.5331870603570525 t CO2/Fe_ton" + }, + { + "year": 2043, + "value": "5.678662986297883 t CO2/Fe_ton" + }, + { + "year": 2044, + "value": "5.827963696182847 t CO2/Fe_ton" + }, + { + "year": 2045, + "value": "5.981189749414641 t CO2/Fe_ton" + }, + { + "year": 2046, + "value": "6.1384443492560115 t CO2/Fe_ton" + }, + { + "year": 2047, + "value": "6.299833412340868 t CO2/Fe_ton" + }, + { + "year": 2048, + "value": "6.465465640012948 t CO2/Fe_ton" + }, + { + "year": 2049, + "value": "6.635452591540087 t CO2/Fe_ton" + }, + { + "year": 2050, + "value": "6.809908759253399 t CO2/Fe_ton" + } + ] + }, + "S3": null, + "S1S2S3": null + }, + "country": null, + "ghg_s1s2": null, + "ghg_s3": null, + "industry_level_1": null, + "industry_level_2": null, + "industry_level_3": null, + "industry_level_4": null, + "company_revenue": null, + "company_market_cap": null, + "company_enterprise_value": null, + "company_total_assets": null, + "company_cash_equivalents": null + }, + { + "company_name": "Company F", + "company_id": "NL0000000006", + "region": "Asia", + "sector": "Steel", + "target_probability": 0.4285714285714285, + "historic_data": { + "productions": [ + { + "year": 2009, + "value": NaN + }, + { + "year": 2010, + "value": NaN + }, + { + "year": 2011, + "value": NaN + }, + { + "year": 2012, + "value": NaN + }, + { + "year": 2013, + "value": "23001000.8292913 Fe_ton" + }, + { + "year": 2014, + "value": "25222000.8292913 Fe_ton" + }, + { + "year": 2015, + "value": "23424000.8292913 Fe_ton" + }, + { + "year": 2016, + "value": "24100000.8292913 Fe_ton" + }, + { + "year": 2017, + "value": "24193000.8292913 Fe_ton" + }, + { + "year": 2018, + "value": "24328000.8292913 Fe_ton" + }, + { + "year": 2019, + "value": "23779000.8292913 Fe_ton" + }, + { + "year": 2020, + "value": "22329000.8292913 Fe_ton" + }, + { + "year": 2021, + "value": "22329000.8292913 Fe_ton" + } + ], + "emissions": { + "S1": [ + { + "year": 2009, + "value": NaN + }, + { + "year": 2010, + "value": NaN + }, + { + "year": 2011, + "value": NaN + }, + { + "year": 2012, + "value": NaN + }, + { + "year": 2013, + "value": NaN + }, + { + "year": 2014, + "value": NaN + }, + { + "year": 2015, + "value": NaN + }, + { + "year": 2016, + "value": "31300000.8292913 t CO2" + }, + { + "year": 2017, + "value": "31072000.8292913 t CO2" + }, + { + "year": 2018, + "value": "29491000.8292913 t CO2" + }, + { + "year": 2019, + "value": "27206000.8292913 t CO2" + }, + { + "year": 2020, + "value": "27206000.8292913 t CO2" + }, + { + "year": 2021, + "value": "27206000.8292913 t CO2" + } + ], + "S2": [ + { + "year": 2009, + "value": NaN + }, + { + "year": 2010, + "value": NaN + }, + { + "year": 2011, + "value": NaN + }, + { + "year": 2012, + "value": NaN + }, + { + "year": 2013, + "value": NaN + }, + { + "year": 2014, + "value": NaN + }, + { + "year": 2015, + "value": NaN + }, + { + "year": 2016, + "value": NaN + }, + { + "year": 2017, + "value": NaN + }, + { + "year": 2018, + "value": NaN + }, + { + "year": 2019, + "value": NaN + }, + { + "year": 2020, + "value": NaN + }, + { + "year": 2021, + "value": NaN + } + ], + "S1S2": [], + "S3": [], + "S1S2S3": [] + }, + "emission_intensities": { + "S1": [ + { + "year": 2009, + "value": NaN + }, + { + "year": 2010, + "value": NaN + }, + { + "year": 2011, + "value": NaN + }, + { + "year": 2012, + "value": NaN + }, + { + "year": 2013, + "value": NaN + }, + { + "year": 2014, + "value": NaN + }, + { + "year": 2015, + "value": NaN + }, + { + "year": 2016, + "value": "1.2987551764417 t CO2/Fe_ton" + }, + { + "year": 2017, + "value": "1.28433843525816 t CO2/Fe_ton" + }, + { + "year": 2018, + "value": "1.21222458993769 t CO2/Fe_ton" + }, + { + "year": 2019, + "value": "1.14411875522451 t CO2/Fe_ton" + }, + { + "year": 2020, + "value": "1.21841550534596 t CO2/Fe_ton" + }, + { + "year": 2021, + "value": "1.21841550534596 t CO2/Fe_ton" + } + ], + "S2": [ + { + "year": 2009, + "value": NaN + }, + { + "year": 2010, + "value": NaN + }, + { + "year": 2011, + "value": NaN + }, + { + "year": 2012, + "value": NaN + }, + { + "year": 2013, + "value": NaN + }, + { + "year": 2014, + "value": NaN + }, + { + "year": 2015, + "value": NaN + }, + { + "year": 2016, + "value": NaN + }, + { + "year": 2017, + "value": NaN + }, + { + "year": 2018, + "value": NaN + }, + { + "year": 2019, + "value": NaN + }, + { + "year": 2020, + "value": NaN + }, + { + "year": 2021, + "value": NaN + } + ], + "S1S2": [], + "S3": [], + "S1S2S3": [] + } + }, + "projected_targets": null, + "projected_intensities": { + "S1S2": { + "projections": [ + { + "year": 2019, + "value": NaN + }, + { + "year": 2020, + "value": NaN + }, + { + "year": 2021, + "value": NaN + }, + { + "year": 2022, + "value": NaN + }, + { + "year": 2023, + "value": NaN + }, + { + "year": 2024, + "value": NaN + }, + { + "year": 2025, + "value": NaN + }, + { + "year": 2026, + "value": NaN + }, + { + "year": 2027, + "value": NaN + }, + { + "year": 2028, + "value": NaN + }, + { + "year": 2029, + "value": NaN + }, + { + "year": 2030, + "value": NaN + }, + { + "year": 2031, + "value": NaN + }, + { + "year": 2032, + "value": NaN + }, + { + "year": 2033, + "value": NaN + }, + { + "year": 2034, + "value": NaN + }, + { + "year": 2035, + "value": NaN + }, + { + "year": 2036, + "value": NaN + }, + { + "year": 2037, + "value": NaN + }, + { + "year": 2038, + "value": NaN + }, + { + "year": 2039, + "value": NaN + }, + { + "year": 2040, + "value": NaN + }, + { + "year": 2041, + "value": NaN + }, + { + "year": 2042, + "value": NaN + }, + { + "year": 2043, + "value": NaN + }, + { + "year": 2044, + "value": NaN + }, + { + "year": 2045, + "value": NaN + }, + { + "year": 2046, + "value": NaN + }, + { + "year": 2047, + "value": NaN + }, + { + "year": 2048, + "value": NaN + }, + { + "year": 2049, + "value": NaN + }, + { + "year": 2050, + "value": NaN + } + ] + }, + "S3": null, + "S1S2S3": null + }, + "country": null, + "ghg_s1s2": null, + "ghg_s3": null, + "industry_level_1": null, + "industry_level_2": null, + "industry_level_3": null, + "industry_level_4": null, + "company_revenue": null, + "company_market_cap": null, + "company_enterprise_value": null, + "company_total_assets": null, + "company_cash_equivalents": null + }, + { + "company_name": "Company G", + "company_id": "CN0000000007", + "region": "Asia", + "sector": "Steel", + "target_probability": 0.4285714285714285, + "historic_data": { + "productions": [ + { + "year": 2009, + "value": NaN + }, + { + "year": 2010, + "value": NaN + }, + { + "year": 2011, + "value": NaN + }, + { + "year": 2012, + "value": NaN + }, + { + "year": 2013, + "value": "46030001.3676141 Fe_ton" + }, + { + "year": 2014, + "value": "48160001.3676141 Fe_ton" + }, + { + "year": 2015, + "value": "47320001.3676141 Fe_ton" + }, + { + "year": 2016, + "value": "44530001.3676141 Fe_ton" + }, + { + "year": 2017, + "value": "45170001.3676141 Fe_ton" + }, + { + "year": 2018, + "value": "46505001.3676141 Fe_ton" + }, + { + "year": 2019, + "value": "47840001.3676141 Fe_ton" + }, + { + "year": 2020, + "value": "47050001.3676141 Fe_ton" + }, + { + "year": 2021, + "value": "47050001.3676141 Fe_ton" + } + ], + "emissions": { + "S1": [ + { + "year": 2009, + "value": NaN + }, + { + "year": 2010, + "value": NaN + }, + { + "year": 2011, + "value": NaN + }, + { + "year": 2012, + "value": NaN + }, + { + "year": 2013, + "value": NaN + }, + { + "year": 2014, + "value": NaN + }, + { + "year": 2015, + "value": NaN + }, + { + "year": 2016, + "value": "89000001.3676141 t CO2" + }, + { + "year": 2017, + "value": "89000001.3676141 t CO2" + }, + { + "year": 2018, + "value": "86000001.3676141 t CO2" + }, + { + "year": 2019, + "value": "87000001.3676141 t CO2" + }, + { + "year": 2020, + "value": "84000001.3676141 t CO2" + }, + { + "year": 2021, + "value": "84000001.3676141 t CO2" + } + ], + "S2": [ + { + "year": 2009, + "value": NaN + }, + { + "year": 2010, + "value": NaN + }, + { + "year": 2011, + "value": NaN + }, + { + "year": 2012, + "value": NaN + }, + { + "year": 2013, + "value": NaN + }, + { + "year": 2014, + "value": NaN + }, + { + "year": 2015, + "value": NaN + }, + { + "year": 2016, + "value": "11000001.3676141 t CO2" + }, + { + "year": 2017, + "value": "10000001.3676141 t CO2" + }, + { + "year": 2018, + "value": "10000001.3676141 t CO2" + }, + { + "year": 2019, + "value": "10000001.3676141 t CO2" + }, + { + "year": 2020, + "value": "9000001.36761412 t CO2" + }, + { + "year": 2021, + "value": "9000001.36761412 t CO2" + } + ], + "S1S2": [], + "S3": [], + "S1S2S3": [] + }, + "emission_intensities": { + "S1": [ + { + "year": 2009, + "value": NaN + }, + { + "year": 2010, + "value": NaN + }, + { + "year": 2011, + "value": NaN + }, + { + "year": 2012, + "value": NaN + }, + { + "year": 2013, + "value": NaN + }, + { + "year": 2014, + "value": NaN + }, + { + "year": 2015, + "value": NaN + }, + { + "year": 2016, + "value": "1.9986525630862 t CO2/Fe_ton" + }, + { + "year": 2017, + "value": "1.97033426329327 t CO2/Fe_ton" + }, + { + "year": 2018, + "value": "1.84926349507656 t CO2/Fe_ton" + }, + { + "year": 2019, + "value": "1.81856184950927 t CO2/Fe_ton" + }, + { + "year": 2020, + "value": "1.78533472743815 t CO2/Fe_ton" + }, + { + "year": 2021, + "value": "1.78533472743815 t CO2/Fe_ton" + } + ], + "S2": [ + { + "year": 2009, + "value": NaN + }, + { + "year": 2010, + "value": NaN + }, + { + "year": 2011, + "value": NaN + }, + { + "year": 2012, + "value": NaN + }, + { + "year": 2013, + "value": NaN + }, + { + "year": 2014, + "value": NaN + }, + { + "year": 2015, + "value": NaN + }, + { + "year": 2016, + "value": "0.247024501005612 t CO2/Fe_ton" + }, + { + "year": 2017, + "value": "0.221385899155272 t CO2/Fe_ton" + }, + { + "year": 2018, + "value": "0.215030664950761 t CO2/Fe_ton" + }, + { + "year": 2019, + "value": "0.209030122946103 t CO2/Fe_ton" + }, + { + "year": 2020, + "value": "0.191285889606989 t CO2/Fe_ton" + }, + { + "year": 2021, + "value": "0.191285889606989 t CO2/Fe_ton" + } + ], + "S1S2": [], + "S3": [], + "S1S2S3": [] + } + }, + "projected_targets": null, + "projected_intensities": { + "S1S2": { + "projections": [ + { + "year": 2019, + "value": "2.027591972455373 t CO2/Fe_ton" + }, + { + "year": 2020, + "value": "1.976620617045139 t CO2/Fe_ton" + }, + { + "year": 2021, + "value": "1.976620617045139 t CO2/Fe_ton" + }, + { + "year": 2022, + "value": "1.94147722418469 t CO2/Fe_ton" + }, + { + "year": 2023, + "value": "1.906958664461715 t CO2/Fe_ton" + }, + { + "year": 2024, + "value": "1.873053828634393 t CO2/Fe_ton" + }, + { + "year": 2025, + "value": "1.8397518049780428 t CO2/Fe_ton" + }, + { + "year": 2026, + "value": "1.8070418757733597 t CO2/Fe_ton" + }, + { + "year": 2027, + "value": "1.7749135138570904 t CO2/Fe_ton" + }, + { + "year": 2028, + "value": "1.7433563792340352 t CO2/Fe_ton" + }, + { + "year": 2029, + "value": "1.7123603157492877 t CO2/Fe_ton" + }, + { + "year": 2030, + "value": "1.68191534781964 t CO2/Fe_ton" + }, + { + "year": 2031, + "value": "1.6520116772231015 t CO2/Fe_ton" + }, + { + "year": 2032, + "value": "1.6226396799455 t CO2/Fe_ton" + }, + { + "year": 2033, + "value": "1.5937899030831475 t CO2/Fe_ton" + }, + { + "year": 2034, + "value": "1.5654530618005753 t CO2/Fe_ton" + }, + { + "year": 2035, + "value": "1.53762003634236 t CO2/Fe_ton" + }, + { + "year": 2036, + "value": "1.5102818690980773 t CO2/Fe_ton" + }, + { + "year": 2037, + "value": "1.4834297617194387 t CO2/Fe_ton" + }, + { + "year": 2038, + "value": "1.457055072288686 t CO2/Fe_ton" + }, + { + "year": 2039, + "value": "1.4311493125373285 t CO2/Fe_ton" + }, + { + "year": 2040, + "value": "1.4057041451143315 t CO2/Fe_ton" + }, + { + "year": 2041, + "value": "1.3807113809028742 t CO2/Fe_ton" + }, + { + "year": 2042, + "value": "1.3561629763848135 t CO2/Fe_ton" + }, + { + "year": 2043, + "value": "1.3320510310520086 t CO2/Fe_ton" + }, + { + "year": 2044, + "value": "1.3083677848636694 t CO2/Fe_ton" + }, + { + "year": 2045, + "value": "1.2851056157489125 t CO2/Fe_ton" + }, + { + "year": 2046, + "value": "1.2622570371537203 t CO2/Fe_ton" + }, + { + "year": 2047, + "value": "1.2398146956315148 t CO2/Fe_ton" + }, + { + "year": 2048, + "value": "1.2177713684765692 t CO2/Fe_ton" + }, + { + "year": 2049, + "value": "1.1961199613994966 t CO2/Fe_ton" + }, + { + "year": 2050, + "value": "1.1748535062440673 t CO2/Fe_ton" + } + ] + }, + "S3": null, + "S1S2S3": null + }, + "country": null, + "ghg_s1s2": null, + "ghg_s3": null, + "industry_level_1": null, + "industry_level_2": null, + "industry_level_3": null, + "industry_level_4": null, + "company_revenue": null, + "company_market_cap": null, + "company_enterprise_value": null, + "company_total_assets": null, + "company_cash_equivalents": null + }, + { + "company_name": "Company H", + "company_id": "CN0000000008", + "region": "Asia", + "sector": "Steel", + "target_probability": 0.4285714285714285, + "historic_data": { + "productions": [ + { + "year": 2009, + "value": NaN + }, + { + "year": 2010, + "value": NaN + }, + { + "year": 2011, + "value": NaN + }, + { + "year": 2012, + "value": NaN + }, + { + "year": 2013, + "value": NaN + }, + { + "year": 2014, + "value": "15921004.6310296 Fe_ton" + }, + { + "year": 2015, + "value": "15855004.6310296 Fe_ton" + }, + { + "year": 2016, + "value": "16419004.6310296 Fe_ton" + }, + { + "year": 2017, + "value": "16850004.6310296 Fe_ton" + }, + { + "year": 2018, + "value": "17286004.6310296 Fe_ton" + }, + { + "year": 2019, + "value": "15520004.6310296 Fe_ton" + }, + { + "year": 2020, + "value": "15520004.6310296 Fe_ton" + }, + { + "year": 2021, + "value": "15520004.6310296 Fe_ton" + } + ], + "emissions": { + "S1": [ + { + "year": 2009, + "value": NaN + }, + { + "year": 2010, + "value": NaN + }, + { + "year": 2011, + "value": NaN + }, + { + "year": 2012, + "value": NaN + }, + { + "year": 2013, + "value": NaN + }, + { + "year": 2014, + "value": NaN + }, + { + "year": 2015, + "value": "29200004.6310296 t CO2" + }, + { + "year": 2016, + "value": "29200004.6310296 t CO2" + }, + { + "year": 2017, + "value": "29600004.6310296 t CO2" + }, + { + "year": 2018, + "value": "30200004.6310296 t CO2" + }, + { + "year": 2019, + "value": "28400004.6310296 t CO2" + }, + { + "year": 2020, + "value": "28400004.6310296 t CO2" + }, + { + "year": 2021, + "value": "28400004.6310296 t CO2" + } + ], + "S2": [ + { + "year": 2009, + "value": NaN + }, + { + "year": 2010, + "value": NaN + }, + { + "year": 2011, + "value": NaN + }, + { + "year": 2012, + "value": NaN + }, + { + "year": 2013, + "value": NaN + }, + { + "year": 2014, + "value": NaN + }, + { + "year": 2015, + "value": "3600004.63102958 t CO2" + }, + { + "year": 2016, + "value": "3800004.63102958 t CO2" + }, + { + "year": 2017, + "value": "4000004.63102958 t CO2" + }, + { + "year": 2018, + "value": "4000004.63102958 t CO2" + }, + { + "year": 2019, + "value": "3600004.63102958 t CO2" + }, + { + "year": 2020, + "value": "3600004.63102958 t CO2" + }, + { + "year": 2021, + "value": "3600004.63102958 t CO2" + } + ], + "S1S2": [], + "S3": [], + "S1S2S3": [] + }, + "emission_intensities": { + "S1": [ + { + "year": 2009, + "value": NaN + }, + { + "year": 2010, + "value": NaN + }, + { + "year": 2011, + "value": NaN + }, + { + "year": 2012, + "value": NaN + }, + { + "year": 2013, + "value": NaN + }, + { + "year": 2014, + "value": NaN + }, + { + "year": 2015, + "value": "1.8416900726653 t CO2/Fe_ton" + }, + { + "year": 2016, + "value": "1.77842721207629 t CO2/Fe_ton" + }, + { + "year": 2017, + "value": "1.75667634989967 t CO2/Fe_ton" + }, + { + "year": 2018, + "value": "1.74707836053789 t CO2/Fe_ton" + }, + { + "year": 2019, + "value": "1.82989665958273 t CO2/Fe_ton" + }, + { + "year": 2020, + "value": "1.82989665958273 t CO2/Fe_ton" + }, + { + "year": 2021, + "value": "1.82989665958273 t CO2/Fe_ton" + } + ], + "S2": [ + { + "year": 2009, + "value": NaN + }, + { + "year": 2010, + "value": NaN + }, + { + "year": 2011, + "value": NaN + }, + { + "year": 2012, + "value": NaN + }, + { + "year": 2013, + "value": NaN + }, + { + "year": 2014, + "value": NaN + }, + { + "year": 2015, + "value": "0.22705793626727 t CO2/Fe_ton" + }, + { + "year": 2016, + "value": "0.231439403083431 t CO2/Fe_ton" + }, + { + "year": 2017, + "value": "0.237388933630528 t CO2/Fe_ton" + }, + { + "year": 2018, + "value": "0.231401339778036 t CO2/Fe_ton" + }, + { + "year": 2019, + "value": "0.231958992063184 t CO2/Fe_ton" + }, + { + "year": 2020, + "value": "0.231958992063184 t CO2/Fe_ton" + }, + { + "year": 2021, + "value": "0.231958992063184 t CO2/Fe_ton" + } + ], + "S1S2": [], + "S3": [], + "S1S2S3": [] + } + }, + "projected_targets": null, + "projected_intensities": { + "S1S2": { + "projections": [ + { + "year": 2019, + "value": "2.061855651645914 t CO2/Fe_ton" + }, + { + "year": 2020, + "value": "2.061855651645914 t CO2/Fe_ton" + }, + { + "year": 2021, + "value": "2.061855651645914 t CO2/Fe_ton" + }, + { + "year": 2022, + "value": "2.058632565310681 t CO2/Fe_ton" + }, + { + "year": 2023, + "value": "2.0554145172939724 t CO2/Fe_ton" + }, + { + "year": 2024, + "value": "2.0522014997199043 t CO2/Fe_ton" + }, + { + "year": 2025, + "value": "2.0489935047249044 t CO2/Fe_ton" + }, + { + "year": 2026, + "value": "2.045790524457693 t CO2/Fe_ton" + }, + { + "year": 2027, + "value": "2.042592551079263 t CO2/Fe_ton" + }, + { + "year": 2028, + "value": "2.039399576762862 t CO2/Fe_ton" + }, + { + "year": 2029, + "value": "2.0362115936939706 t CO2/Fe_ton" + }, + { + "year": 2030, + "value": "2.0330285940702875 t CO2/Fe_ton" + }, + { + "year": 2031, + "value": "2.029850570101706 t CO2/Fe_ton" + }, + { + "year": 2032, + "value": "2.0266775140102977 t CO2/Fe_ton" + }, + { + "year": 2033, + "value": "2.0235094180302924 t CO2/Fe_ton" + }, + { + "year": 2034, + "value": "2.0203462744080594 t CO2/Fe_ton" + }, + { + "year": 2035, + "value": "2.0171880754020886 t CO2/Fe_ton" + }, + { + "year": 2036, + "value": "2.014034813282971 t CO2/Fe_ton" + }, + { + "year": 2037, + "value": "2.0108864803333804 t CO2/Fe_ton" + }, + { + "year": 2038, + "value": "2.007743068848055 t CO2/Fe_ton" + }, + { + "year": 2039, + "value": "2.0046045711337763 t CO2/Fe_ton" + }, + { + "year": 2040, + "value": "2.001470979509353 t CO2/Fe_ton" + }, + { + "year": 2041, + "value": "1.998342286305601 t CO2/Fe_ton" + }, + { + "year": 2042, + "value": "1.9952184838653242 t CO2/Fe_ton" + }, + { + "year": 2043, + "value": "1.9920995645432964 t CO2/Fe_ton" + }, + { + "year": 2044, + "value": "1.9889855207062423 t CO2/Fe_ton" + }, + { + "year": 2045, + "value": "1.985876344732819 t CO2/Fe_ton" + }, + { + "year": 2046, + "value": "1.982772029013597 t CO2/Fe_ton" + }, + { + "year": 2047, + "value": "1.9796725659510424 t CO2/Fe_ton" + }, + { + "year": 2048, + "value": "1.9765779479594972 t CO2/Fe_ton" + }, + { + "year": 2049, + "value": "1.9734881674651614 t CO2/Fe_ton" + }, + { + "year": 2050, + "value": "1.9704032169060748 t CO2/Fe_ton" + } + ] + }, + "S3": null, + "S1S2S3": null + }, + "country": null, + "ghg_s1s2": null, + "ghg_s3": null, + "industry_level_1": null, + "industry_level_2": null, + "industry_level_3": null, + "industry_level_4": null, + "company_revenue": null, + "company_market_cap": null, + "company_enterprise_value": null, + "company_total_assets": null, + "company_cash_equivalents": null + }, + { + "company_name": "Company I", + "company_id": "CN0000000009", + "region": "Asia", + "sector": "Steel", + "target_probability": 0.4285714285714285, + "historic_data": { + "productions": [ + { + "year": 2009, + "value": NaN + }, + { + "year": 2010, + "value": NaN + }, + { + "year": 2011, + "value": NaN + }, + { + "year": 2012, + "value": NaN + }, + { + "year": 2013, + "value": NaN + }, + { + "year": 2014, + "value": NaN + }, + { + "year": 2015, + "value": NaN + }, + { + "year": 2016, + "value": NaN + }, + { + "year": 2017, + "value": NaN + }, + { + "year": 2018, + "value": NaN + }, + { + "year": 2019, + "value": NaN + }, + { + "year": 2020, + "value": NaN + }, + { + "year": 2021, + "value": NaN + } + ], + "emissions": { + "S1": [ + { + "year": 2009, + "value": "60457000.4256679 t CO2" + }, + { + "year": 2010, + "value": "68748000.4256679 t CO2" + }, + { + "year": 2011, + "value": "74602000.4256679 t CO2" + }, + { + "year": 2012, + "value": "85678000.4256679 t CO2" + }, + { + "year": 2013, + "value": "79928000.4256679 t CO2" + }, + { + "year": 2014, + "value": "84451000.4256679 t CO2" + }, + { + "year": 2015, + "value": "82741000.4256679 t CO2" + }, + { + "year": 2016, + "value": "81346000.4256679 t CO2" + }, + { + "year": 2017, + "value": "67743000.4256679 t CO2" + }, + { + "year": 2018, + "value": "69687000.4256679 t CO2" + }, + { + "year": 2019, + "value": "79447000.4256679 t CO2" + }, + { + "year": 2020, + "value": "79447000.4256679 t CO2" + }, + { + "year": 2021, + "value": "79447000.4256679 t CO2" + } + ], + "S2": [ + { + "year": 2009, + "value": "2698000.42566793 t CO2" + }, + { + "year": 2010, + "value": "3033000.42566793 t CO2" + }, + { + "year": 2011, + "value": "3625000.42566793 t CO2" + }, + { + "year": 2012, + "value": "3682000.42566793 t CO2" + }, + { + "year": 2013, + "value": "4539000.42566793 t CO2" + }, + { + "year": 2014, + "value": "5032000.42566793 t CO2" + }, + { + "year": 2015, + "value": "4431000.42566793 t CO2" + }, + { + "year": 2016, + "value": "3719000.42566793 t CO2" + }, + { + "year": 2017, + "value": "2956000.42566793 t CO2" + }, + { + "year": 2018, + "value": "2802000.42566793 t CO2" + }, + { + "year": 2019, + "value": "795000.425667932 t CO2" + }, + { + "year": 2020, + "value": "795000.425667932 t CO2" + }, + { + "year": 2021, + "value": "795000.425667932 t CO2" + } + ], + "S1S2": [], + "S3": [], + "S1S2S3": [] + }, + "emission_intensities": { + "S1": [ + { + "year": 2009, + "value": NaN + }, + { + "year": 2010, + "value": NaN + }, + { + "year": 2011, + "value": NaN + }, + { + "year": 2012, + "value": NaN + }, + { + "year": 2013, + "value": NaN + }, + { + "year": 2014, + "value": NaN + }, + { + "year": 2015, + "value": NaN + }, + { + "year": 2016, + "value": NaN + }, + { + "year": 2017, + "value": NaN + }, + { + "year": 2018, + "value": NaN + }, + { + "year": 2019, + "value": NaN + }, + { + "year": 2020, + "value": NaN + }, + { + "year": 2021, + "value": NaN + } + ], + "S2": [ + { + "year": 2009, + "value": NaN + }, + { + "year": 2010, + "value": NaN + }, + { + "year": 2011, + "value": NaN + }, + { + "year": 2012, + "value": NaN + }, + { + "year": 2013, + "value": NaN + }, + { + "year": 2014, + "value": NaN + }, + { + "year": 2015, + "value": NaN + }, + { + "year": 2016, + "value": NaN + }, + { + "year": 2017, + "value": NaN + }, + { + "year": 2018, + "value": NaN + }, + { + "year": 2019, + "value": NaN + }, + { + "year": 2020, + "value": NaN + }, + { + "year": 2021, + "value": NaN + } + ], + "S1S2": [], + "S3": [], + "S1S2S3": [] + } + }, + "projected_targets": null, + "projected_intensities": { + "S1S2": { + "projections": [ + { + "year": 2019, + "value": NaN + }, + { + "year": 2020, + "value": NaN + }, + { + "year": 2021, + "value": NaN + }, + { + "year": 2022, + "value": NaN + }, + { + "year": 2023, + "value": NaN + }, + { + "year": 2024, + "value": NaN + }, + { + "year": 2025, + "value": NaN + }, + { + "year": 2026, + "value": NaN + }, + { + "year": 2027, + "value": NaN + }, + { + "year": 2028, + "value": NaN + }, + { + "year": 2029, + "value": NaN + }, + { + "year": 2030, + "value": NaN + }, + { + "year": 2031, + "value": NaN + }, + { + "year": 2032, + "value": NaN + }, + { + "year": 2033, + "value": NaN + }, + { + "year": 2034, + "value": NaN + }, + { + "year": 2035, + "value": NaN + }, + { + "year": 2036, + "value": NaN + }, + { + "year": 2037, + "value": NaN + }, + { + "year": 2038, + "value": NaN + }, + { + "year": 2039, + "value": NaN + }, + { + "year": 2040, + "value": NaN + }, + { + "year": 2041, + "value": NaN + }, + { + "year": 2042, + "value": NaN + }, + { + "year": 2043, + "value": NaN + }, + { + "year": 2044, + "value": NaN + }, + { + "year": 2045, + "value": NaN + }, + { + "year": 2046, + "value": NaN + }, + { + "year": 2047, + "value": NaN + }, + { + "year": 2048, + "value": NaN + }, + { + "year": 2049, + "value": NaN + }, + { + "year": 2050, + "value": NaN + } + ] + }, + "S3": null, + "S1S2S3": null + }, + "country": null, + "ghg_s1s2": null, + "ghg_s3": null, + "industry_level_1": null, + "industry_level_2": null, + "industry_level_3": null, + "industry_level_4": null, + "company_revenue": null, + "company_market_cap": null, + "company_enterprise_value": null, + "company_total_assets": null, + "company_cash_equivalents": null + }, + { + "company_name": "Company J", + "company_id": "BR0000000010", + "region": "Asia", + "sector": "Steel", + "target_probability": 0.4285714285714285, + "historic_data": { + "productions": [ + { + "year": 2009, + "value": NaN + }, + { + "year": 2010, + "value": NaN + }, + { + "year": 2011, + "value": NaN + }, + { + "year": 2012, + "value": NaN + }, + { + "year": 2013, + "value": "15691492.9224849 Fe_ton" + }, + { + "year": 2014, + "value": "11301980.9224849 Fe_ton" + }, + { + "year": 2015, + "value": "11500001.9224849 Fe_ton" + }, + { + "year": 2016, + "value": "11600001.9224849 Fe_ton" + }, + { + "year": 2017, + "value": "3012108.92248495 Fe_ton" + }, + { + "year": 2018, + "value": "12039001.9224849 Fe_ton" + }, + { + "year": 2019, + "value": "11847001.9224849 Fe_ton" + }, + { + "year": 2020, + "value": "11314001.9224849 Fe_ton" + }, + { + "year": 2021, + "value": "11314001.9224849 Fe_ton" + } + ], + "emissions": { + "S1": [ + { + "year": 2009, + "value": NaN + }, + { + "year": 2010, + "value": NaN + }, + { + "year": 2011, + "value": NaN + }, + { + "year": 2012, + "value": NaN + }, + { + "year": 2013, + "value": NaN + }, + { + "year": 2014, + "value": NaN + }, + { + "year": 2015, + "value": NaN + }, + { + "year": 2016, + "value": "23200001.9224849 t CO2" + }, + { + "year": 2017, + "value": "22200001.9224849 t CO2" + }, + { + "year": 2018, + "value": "22100001.9224849 t CO2" + }, + { + "year": 2019, + "value": "23400001.9224849 t CO2" + }, + { + "year": 2020, + "value": "23400001.9224849 t CO2" + }, + { + "year": 2021, + "value": "23400001.9224849 t CO2" + } + ], + "S2": [ + { + "year": 2009, + "value": NaN + }, + { + "year": 2010, + "value": NaN + }, + { + "year": 2011, + "value": NaN + }, + { + "year": 2012, + "value": NaN + }, + { + "year": 2013, + "value": NaN + }, + { + "year": 2014, + "value": NaN + }, + { + "year": 2015, + "value": NaN + }, + { + "year": 2016, + "value": NaN + }, + { + "year": 2017, + "value": NaN + }, + { + "year": 2018, + "value": NaN + }, + { + "year": 2019, + "value": NaN + }, + { + "year": 2020, + "value": NaN + }, + { + "year": 2021, + "value": NaN + } + ], + "S1S2": [], + "S3": [], + "S1S2S3": [] + }, + "emission_intensities": { + "S1": [ + { + "year": 2009, + "value": NaN + }, + { + "year": 2010, + "value": NaN + }, + { + "year": 2011, + "value": NaN + }, + { + "year": 2012, + "value": NaN + }, + { + "year": 2013, + "value": NaN + }, + { + "year": 2014, + "value": NaN + }, + { + "year": 2015, + "value": NaN + }, + { + "year": 2016, + "value": "1.99999983426857 t CO2/Fe_ton" + }, + { + "year": 2017, + "value": "7.37025203729028 t CO2/Fe_ton" + }, + { + "year": 2018, + "value": "1.83570050613659 t CO2/Fe_ton" + }, + { + "year": 2019, + "value": "1.97518343253351 t CO2/Fe_ton" + }, + { + "year": 2020, + "value": "2.06823386479905 t CO2/Fe_ton" + }, + { + "year": 2021, + "value": "2.06823386479905 t CO2/Fe_ton" + } + ], + "S2": [ + { + "year": 2009, + "value": NaN + }, + { + "year": 2010, + "value": NaN + }, + { + "year": 2011, + "value": NaN + }, + { + "year": 2012, + "value": NaN + }, + { + "year": 2013, + "value": NaN + }, + { + "year": 2014, + "value": NaN + }, + { + "year": 2015, + "value": NaN + }, + { + "year": 2016, + "value": NaN + }, + { + "year": 2017, + "value": NaN + }, + { + "year": 2018, + "value": NaN + }, + { + "year": 2019, + "value": NaN + }, + { + "year": 2020, + "value": NaN + }, + { + "year": 2021, + "value": NaN + } + ], + "S1S2": [], + "S3": [], + "S1S2S3": [] + } + }, + "projected_targets": null, + "projected_intensities": { + "S1S2": { + "projections": [ + { + "year": 2019, + "value": NaN + }, + { + "year": 2020, + "value": NaN + }, + { + "year": 2021, + "value": NaN + }, + { + "year": 2022, + "value": NaN + }, + { + "year": 2023, + "value": NaN + }, + { + "year": 2024, + "value": NaN + }, + { + "year": 2025, + "value": NaN + }, + { + "year": 2026, + "value": NaN + }, + { + "year": 2027, + "value": NaN + }, + { + "year": 2028, + "value": NaN + }, + { + "year": 2029, + "value": NaN + }, + { + "year": 2030, + "value": NaN + }, + { + "year": 2031, + "value": NaN + }, + { + "year": 2032, + "value": NaN + }, + { + "year": 2033, + "value": NaN + }, + { + "year": 2034, + "value": NaN + }, + { + "year": 2035, + "value": NaN + }, + { + "year": 2036, + "value": NaN + }, + { + "year": 2037, + "value": NaN + }, + { + "year": 2038, + "value": NaN + }, + { + "year": 2039, + "value": NaN + }, + { + "year": 2040, + "value": NaN + }, + { + "year": 2041, + "value": NaN + }, + { + "year": 2042, + "value": NaN + }, + { + "year": 2043, + "value": NaN + }, + { + "year": 2044, + "value": NaN + }, + { + "year": 2045, + "value": NaN + }, + { + "year": 2046, + "value": NaN + }, + { + "year": 2047, + "value": NaN + }, + { + "year": 2048, + "value": NaN + }, + { + "year": 2049, + "value": NaN + }, + { + "year": 2050, + "value": NaN + } + ] + }, + "S3": null, + "S1S2S3": null + }, + "country": null, + "ghg_s1s2": null, + "ghg_s3": null, + "industry_level_1": null, + "industry_level_2": null, + "industry_level_3": null, + "industry_level_4": null, + "company_revenue": null, + "company_market_cap": null, + "company_enterprise_value": null, + "company_total_assets": null, + "company_cash_equivalents": null + }, + { + "company_name": "Company K", + "company_id": "BR0000000011", + "region": "Europe", + "sector": "Steel", + "target_probability": 0.4285714285714285, + "historic_data": { + "productions": [ + { + "year": 2009, + "value": NaN + }, + { + "year": 2010, + "value": NaN + }, + { + "year": 2011, + "value": NaN + }, + { + "year": 2012, + "value": NaN + }, + { + "year": 2013, + "value": NaN + }, + { + "year": 2014, + "value": NaN + }, + { + "year": 2015, + "value": NaN + }, + { + "year": 2016, + "value": NaN + }, + { + "year": 2017, + "value": "15393000.0778486 Fe_ton" + }, + { + "year": 2018, + "value": "15419000.0778486 Fe_ton" + }, + { + "year": 2019, + "value": "14618000.0778486 Fe_ton" + }, + { + "year": 2020, + "value": "14473000.0778486 Fe_ton" + }, + { + "year": 2021, + "value": "14473000.0778486 Fe_ton" + } + ], + "emissions": { + "S1": [ + { + "year": 2009, + "value": "4000000.07784856 t CO2" + }, + { + "year": 2010, + "value": "6481635.07784856 t CO2" + }, + { + "year": 2011, + "value": "10525000.0778486 t CO2" + }, + { + "year": 2012, + "value": "9308000.07784856 t CO2" + }, + { + "year": 2013, + "value": "9311000.07784856 t CO2" + }, + { + "year": 2014, + "value": "9578000.07784856 t CO2" + }, + { + "year": 2015, + "value": "9448000.07784856 t CO2" + }, + { + "year": 2016, + "value": "9989000.07784856 t CO2" + }, + { + "year": 2017, + "value": "9867000.07784856 t CO2" + }, + { + "year": 2018, + "value": "9755000.07784856 t CO2" + }, + { + "year": 2019, + "value": "9582000.07784856 t CO2" + }, + { + "year": 2020, + "value": "9582000.07784856 t CO2" + }, + { + "year": 2021, + "value": "9582000.07784856 t CO2" + } + ], + "S2": [ + { + "year": 2009, + "value": "700993.077848565 t CO2" + }, + { + "year": 2010, + "value": "1032496.57784856 t CO2" + }, + { + "year": 2011, + "value": "1364000.07784857 t CO2" + }, + { + "year": 2012, + "value": "1367000.07784857 t CO2" + }, + { + "year": 2013, + "value": "1447000.07784857 t CO2" + }, + { + "year": 2014, + "value": "1220000.07784857 t CO2" + }, + { + "year": 2015, + "value": "1133000.07784857 t CO2" + }, + { + "year": 2016, + "value": "1166000.07784857 t CO2" + }, + { + "year": 2017, + "value": "1216000.07784857 t CO2" + }, + { + "year": 2018, + "value": "1189000.07784857 t CO2" + }, + { + "year": 2019, + "value": "1173000.07784857 t CO2" + }, + { + "year": 2020, + "value": "1173000.07784857 t CO2" + }, + { + "year": 2021, + "value": "1173000.07784857 t CO2" + } + ], + "S1S2": [], + "S3": [], + "S1S2S3": [] + }, + "emission_intensities": { + "S1": [ + { + "year": 2009, + "value": NaN + }, + { + "year": 2010, + "value": NaN + }, + { + "year": 2011, + "value": NaN + }, + { + "year": 2012, + "value": NaN + }, + { + "year": 2013, + "value": NaN + }, + { + "year": 2014, + "value": NaN + }, + { + "year": 2015, + "value": NaN + }, + { + "year": 2016, + "value": NaN + }, + { + "year": 2017, + "value": "0.641005653735282 t CO2/Fe_ton" + }, + { + "year": 2018, + "value": "0.632661004513705 t CO2/Fe_ton" + }, + { + "year": 2019, + "value": "0.655493229362386 t CO2/Fe_ton" + }, + { + "year": 2020, + "value": "0.662060390127003 t CO2/Fe_ton" + }, + { + "year": 2021, + "value": "0.662060390127003 t CO2/Fe_ton" + } + ], + "S2": [ + { + "year": 2009, + "value": NaN + }, + { + "year": 2010, + "value": NaN + }, + { + "year": 2011, + "value": NaN + }, + { + "year": 2012, + "value": NaN + }, + { + "year": 2013, + "value": NaN + }, + { + "year": 2014, + "value": NaN + }, + { + "year": 2015, + "value": NaN + }, + { + "year": 2016, + "value": NaN + }, + { + "year": 2017, + "value": "0.0789969513219493 t CO2/Fe_ton" + }, + { + "year": 2018, + "value": "0.0771126578795937 t CO2/Fe_ton" + }, + { + "year": 2019, + "value": "0.0802435402655439 t CO2/Fe_ton" + }, + { + "year": 2020, + "value": "0.0810474726414106 t CO2/Fe_ton" + }, + { + "year": 2021, + "value": "0.0810474726414106 t CO2/Fe_ton" + } + ], + "S1S2": [], + "S3": [], + "S1S2S3": [] + } + }, + "projected_targets": null, + "projected_intensities": { + "S1S2": { + "projections": [ + { + "year": 2019, + "value": "0.7357367696279299 t CO2/Fe_ton" + }, + { + "year": 2020, + "value": "0.7431078627684136 t CO2/Fe_ton" + }, + { + "year": 2021, + "value": "0.7431078627684136 t CO2/Fe_ton" + }, + { + "year": 2022, + "value": "0.7468303335596055 t CO2/Fe_ton" + }, + { + "year": 2023, + "value": "0.7505714514267947 t CO2/Fe_ton" + }, + { + "year": 2024, + "value": "0.7543313097792954 t CO2/Fe_ton" + }, + { + "year": 2025, + "value": "0.7581100024943395 t CO2/Fe_ton" + }, + { + "year": 2026, + "value": "0.7619076239194207 t CO2/Fe_ton" + }, + { + "year": 2027, + "value": "0.7657242688746503 t CO2/Fe_ton" + }, + { + "year": 2028, + "value": "0.7695600326551245 t CO2/Fe_ton" + }, + { + "year": 2029, + "value": "0.773415011033304 t CO2/Fe_ton" + }, + { + "year": 2030, + "value": "0.7772893002614051 t CO2/Fe_ton" + }, + { + "year": 2031, + "value": "0.7811829970738029 t CO2/Fe_ton" + }, + { + "year": 2032, + "value": "0.7850961986894467 t CO2/Fe_ton" + }, + { + "year": 2033, + "value": "0.7890290028142876 t CO2/Fe_ton" + }, + { + "year": 2034, + "value": "0.7929815076437174 t CO2/Fe_ton" + }, + { + "year": 2035, + "value": "0.7969538118650213 t CO2/Fe_ton" + }, + { + "year": 2036, + "value": "0.8009460146598412 t CO2/Fe_ton" + }, + { + "year": 2037, + "value": "0.804958215706652 t CO2/Fe_ton" + }, + { + "year": 2038, + "value": "0.8089905151832515 t CO2/Fe_ton" + }, + { + "year": 2039, + "value": "0.8130430137692602 t CO2/Fe_ton" + }, + { + "year": 2040, + "value": "0.8171158126486363 t CO2/Fe_ton" + }, + { + "year": 2041, + "value": "0.8212090135122013 t CO2/Fe_ton" + }, + { + "year": 2042, + "value": "0.8253227185601795 t CO2/Fe_ton" + }, + { + "year": 2043, + "value": "0.8294570305047495 t CO2/Fe_ton" + }, + { + "year": 2044, + "value": "0.8336120525726091 t CO2/Fe_ton" + }, + { + "year": 2045, + "value": "0.8377878885075521 t CO2/Fe_ton" + }, + { + "year": 2046, + "value": "0.8419846425730594 t CO2/Fe_ton" + }, + { + "year": 2047, + "value": "0.8462024195549014 t CO2/Fe_ton" + }, + { + "year": 2048, + "value": "0.8504413247637549 t CO2/Fe_ton" + }, + { + "year": 2049, + "value": "0.8547014640378325 t CO2/Fe_ton" + }, + { + "year": 2050, + "value": "0.8589829437455252 t CO2/Fe_ton" + } + ] + }, + "S3": null, + "S1S2S3": null + }, + "country": null, + "ghg_s1s2": null, + "ghg_s3": null, + "industry_level_1": null, + "industry_level_2": null, + "industry_level_3": null, + "industry_level_4": null, + "company_revenue": null, + "company_market_cap": null, + "company_enterprise_value": null, + "company_total_assets": null, + "company_cash_equivalents": null + }, + { + "company_name": "Company L", + "company_id": "BR0000000012", + "region": "Asia", + "sector": "Steel", + "target_probability": 0.4285714285714285, + "historic_data": { + "productions": [ + { + "year": 2009, + "value": NaN + }, + { + "year": 2010, + "value": NaN + }, + { + "year": 2011, + "value": NaN + }, + { + "year": 2012, + "value": NaN + }, + { + "year": 2013, + "value": NaN + }, + { + "year": 2014, + "value": "9155004.34644718 Fe_ton" + }, + { + "year": 2015, + "value": "9331004.34644718 Fe_ton" + }, + { + "year": 2016, + "value": "20808004.3464472 Fe_ton" + }, + { + "year": 2017, + "value": "21911004.3464472 Fe_ton" + }, + { + "year": 2018, + "value": "25390004.3464472 Fe_ton" + }, + { + "year": 2019, + "value": "27110004.3464472 Fe_ton" + }, + { + "year": 2020, + "value": "30630004.3464472 Fe_ton" + }, + { + "year": 2021, + "value": "28540004.3464472 Fe_ton" + } + ], + "emissions": { + "S1": [ + { + "year": 2009, + "value": NaN + }, + { + "year": 2010, + "value": "14900657.0 t CO2" + }, + { + "year": 2011, + "value": "17389874.39 t CO2" + }, + { + "year": 2012, + "value": "16283032.0 t CO2" + }, + { + "year": 2013, + "value": "18802944.0 t CO2" + }, + { + "year": 2014, + "value": "20428595.0 t CO2" + }, + { + "year": 2015, + "value": "23337931.0 t CO2" + }, + { + "year": 2016, + "value": "23298343.0 t CO2" + }, + { + "year": 2017, + "value": "38757404.0 t CO2" + }, + { + "year": 2018, + "value": "47025134.0 t CO2" + }, + { + "year": 2019, + "value": "56093007.0 t CO2" + }, + { + "year": 2020, + "value": "60116322.0 t CO2" + }, + { + "year": 2021, + "value": "60116322.0 t CO2" + } + ], + "S2": [ + { + "year": 2009, + "value": NaN + }, + { + "year": 2010, + "value": "731525.0 t CO2" + }, + { + "year": 2011, + "value": "853729.3263 t CO2" + }, + { + "year": 2012, + "value": "789126.0 t CO2" + }, + { + "year": 2013, + "value": "1174594.0 t CO2" + }, + { + "year": 2014, + "value": "1266295.0 t CO2" + }, + { + "year": 2015, + "value": "723978.0 t CO2" + }, + { + "year": 2016, + "value": "1409816.0 t CO2" + }, + { + "year": 2017, + "value": "3979125.0 t CO2" + }, + { + "year": 2018, + "value": "3344945.0 t CO2" + }, + { + "year": 2019, + "value": "4137575.0 t CO2" + }, + { + "year": 2020, + "value": "2779523.0 t CO2" + }, + { + "year": 2021, + "value": "2779523.0 t CO2" + } + ], + "S1S2": [], + "S3": [], + "S1S2S3": [] + }, + "emission_intensities": { + "S1": [ + { + "year": 2009, + "value": NaN + }, + { + "year": 2010, + "value": NaN + }, + { + "year": 2011, + "value": NaN + }, + { + "year": 2012, + "value": NaN + }, + { + "year": 2013, + "value": NaN + }, + { + "year": 2014, + "value": "2.23141292204059 t CO2/Fe_ton" + }, + { + "year": 2015, + "value": "2.5011167215762815 t CO2/Fe_ton" + }, + { + "year": 2016, + "value": "1.1196817634257177 t CO2/Fe_ton" + }, + { + "year": 2017, + "value": "1.768855657512769 t CO2/Fe_ton" + }, + { + "year": 2018, + "value": "1.8521120894010474 t CO2/Fe_ton" + }, + { + "year": 2019, + "value": "2.0690888235638023 t CO2/Fe_ton" + }, + { + "year": 2020, + "value": "1.9626612298203263 t CO2/Fe_ton" + }, + { + "year": 2021, + "value": "2.1063879763383277 t CO2/Fe_ton" + } + ], + "S2": [ + { + "year": 2009, + "value": NaN + }, + { + "year": 2010, + "value": NaN + }, + { + "year": 2011, + "value": NaN + }, + { + "year": 2012, + "value": NaN + }, + { + "year": 2013, + "value": NaN + }, + { + "year": 2014, + "value": "0.13831724727595748 t CO2/Fe_ton" + }, + { + "year": 2015, + "value": "0.07758843240445577 t CO2/Fe_ton" + }, + { + "year": 2016, + "value": "0.06775354217189573 t CO2/Fe_ton" + }, + { + "year": 2017, + "value": "0.18160395283957864 t CO2/Fe_ton" + }, + { + "year": 2018, + "value": "0.13174259265016847 t CO2/Fe_ton" + }, + { + "year": 2019, + "value": "0.15262170183097867 t CO2/Fe_ton" + }, + { + "year": 2020, + "value": "0.09074510628733878 t CO2/Fe_ton" + }, + { + "year": 2021, + "value": "0.09739041964602954 t CO2/Fe_ton" + } + ], + "S1S2": [], + "S3": [], + "S1S2S3": [] + } + }, + "projected_targets": null, + "projected_intensities": { + "S1S2": { + "projections": [ + { + "year": 2019, + "value": "2.221710525394781 t CO2/Fe_ton" + }, + { + "year": 2020, + "value": "2.053406336107665 t CO2/Fe_ton" + }, + { + "year": 2021, + "value": "2.203778395984357 t CO2/Fe_ton" + }, + { + "year": 2022, + "value": "2.262080547317932 t CO2/Fe_ton" + }, + { + "year": 2023, + "value": "2.3219251136494563 t CO2/Fe_ton" + }, + { + "year": 2024, + "value": "2.3833529004032834 t CO2/Fe_ton" + }, + { + "year": 2025, + "value": "2.4464057925333744 t CO2/Fe_ton" + }, + { + "year": 2026, + "value": "2.5111267830828377 t CO2/Fe_ton" + }, + { + "year": 2027, + "value": "2.5775600024990277 t CO2/Fe_ton" + }, + { + "year": 2028, + "value": "2.6457507487241916 t CO2/Fe_ton" + }, + { + "year": 2029, + "value": "2.7157455180821772 t CO2/Fe_ton" + }, + { + "year": 2030, + "value": "2.7875920369822693 t CO2/Fe_ton" + }, + { + "year": 2031, + "value": "2.861339294461765 t CO2/Fe_ton" + }, + { + "year": 2032, + "value": "2.9370375755894824 t CO2/Fe_ton" + }, + { + "year": 2033, + "value": "3.0147384957529764 t CO2/Fe_ton" + }, + { + "year": 2034, + "value": "3.094495035852842 t CO2/Fe_ton" + }, + { + "year": 2035, + "value": "3.1763615784281005 t CO2/Fe_ton" + }, + { + "year": 2036, + "value": "3.2603939447373045 t CO2/Fe_ton" + }, + { + "year": 2037, + "value": "3.3466494328206418 t CO2/Fe_ton" + }, + { + "year": 2038, + "value": "3.4351868565689943 t CO2/Fe_ton" + }, + { + "year": 2039, + "value": "3.526066585826588 t CO2/Fe_ton" + }, + { + "year": 2040, + "value": "3.619350587554583 t CO2/Fe_ton" + }, + { + "year": 2041, + "value": "3.715102468083667 t CO2/Fe_ton" + }, + { + "year": 2042, + "value": "3.813387516484463 t CO2/Fe_ton" + }, + { + "year": 2043, + "value": "3.9142727490853275 t CO2/Fe_ton" + }, + { + "year": 2044, + "value": "4.017826955167889 t CO2/Fe_ton" + }, + { + "year": 2045, + "value": "4.124120743871487 t CO2/Fe_ton" + }, + { + "year": 2046, + "value": "4.233226592338492 t CO2/Fe_ton" + }, + { + "year": 2047, + "value": "4.3452188951333435 t CO2/Fe_ton" + }, + { + "year": 2048, + "value": "4.460174014968982 t CO2/Fe_ton" + }, + { + "year": 2049, + "value": "4.5781703347752885 t CO2/Fe_ton" + }, + { + "year": 2050, + "value": "4.699288311145017 t CO2/Fe_ton" + } + ] + }, + "S3": null, + "S1S2S3": null + }, + "country": null, + "ghg_s1s2": null, + "ghg_s3": null, + "industry_level_1": null, + "industry_level_2": null, + "industry_level_3": null, + "industry_level_4": null, + "company_revenue": null, + "company_market_cap": null, + "company_enterprise_value": null, + "company_total_assets": null, + "company_cash_equivalents": null + }, + { + "company_name": "Company M", + "company_id": "AR0000000013", + "region": "Europe", + "sector": "Steel", + "target_probability": 0.4285714285714285, + "historic_data": { + "productions": [ + { + "year": 2009, + "value": NaN + }, + { + "year": 2010, + "value": NaN + }, + { + "year": 2011, + "value": NaN + }, + { + "year": 2012, + "value": NaN + }, + { + "year": 2013, + "value": NaN + }, + { + "year": 2014, + "value": NaN + }, + { + "year": 2015, + "value": NaN + }, + { + "year": 2016, + "value": NaN + }, + { + "year": 2017, + "value": NaN + }, + { + "year": 2018, + "value": NaN + }, + { + "year": 2019, + "value": NaN + }, + { + "year": 2020, + "value": NaN + }, + { + "year": 2021, + "value": NaN + } + ], + "emissions": { + "S1": [ + { + "year": 2009, + "value": NaN + }, + { + "year": 2010, + "value": "24085969.3736674 t CO2" + }, + { + "year": 2011, + "value": "30090002.3736674 t CO2" + }, + { + "year": 2012, + "value": "16848002.3736674 t CO2" + }, + { + "year": 2013, + "value": "26700002.3736674 t CO2" + }, + { + "year": 2014, + "value": "32200002.3736674 t CO2" + }, + { + "year": 2015, + "value": "32600002.3736674 t CO2" + }, + { + "year": 2016, + "value": "32600002.3736674 t CO2" + }, + { + "year": 2017, + "value": "22100002.3736674 t CO2" + }, + { + "year": 2018, + "value": "22600002.3736674 t CO2" + }, + { + "year": 2019, + "value": "22800002.3736674 t CO2" + }, + { + "year": 2020, + "value": "21300002.3736674 t CO2" + }, + { + "year": 2021, + "value": "21300002.3736674 t CO2" + } + ], + "S2": [ + { + "year": 2009, + "value": NaN + }, + { + "year": 2010, + "value": "4781476.37366743 t CO2" + }, + { + "year": 2011, + "value": "4287002.37366743 t CO2" + }, + { + "year": 2012, + "value": "2116002.37366743 t CO2" + }, + { + "year": 2013, + "value": "1800002.37366743 t CO2" + }, + { + "year": 2014, + "value": "1700002.37366743 t CO2" + }, + { + "year": 2015, + "value": "1200002.37366743 t CO2" + }, + { + "year": 2016, + "value": "1200002.37366743 t CO2" + }, + { + "year": 2017, + "value": "1300002.37366743 t CO2" + }, + { + "year": 2018, + "value": "1400002.37366743 t CO2" + }, + { + "year": 2019, + "value": "1300002.37366743 t CO2" + }, + { + "year": 2020, + "value": "1400002.37366743 t CO2" + }, + { + "year": 2021, + "value": "1400002.37366743 t CO2" + } + ], + "S1S2": [], + "S3": [], + "S1S2S3": [] + }, + "emission_intensities": { + "S1": [ + { + "year": 2009, + "value": NaN + }, + { + "year": 2010, + "value": NaN + }, + { + "year": 2011, + "value": NaN + }, + { + "year": 2012, + "value": NaN + }, + { + "year": 2013, + "value": NaN + }, + { + "year": 2014, + "value": NaN + }, + { + "year": 2015, + "value": NaN + }, + { + "year": 2016, + "value": NaN + }, + { + "year": 2017, + "value": NaN + }, + { + "year": 2018, + "value": NaN + }, + { + "year": 2019, + "value": NaN + }, + { + "year": 2020, + "value": NaN + }, + { + "year": 2021, + "value": NaN + } + ], + "S2": [ + { + "year": 2009, + "value": NaN + }, + { + "year": 2010, + "value": NaN + }, + { + "year": 2011, + "value": NaN + }, + { + "year": 2012, + "value": NaN + }, + { + "year": 2013, + "value": NaN + }, + { + "year": 2014, + "value": NaN + }, + { + "year": 2015, + "value": NaN + }, + { + "year": 2016, + "value": NaN + }, + { + "year": 2017, + "value": NaN + }, + { + "year": 2018, + "value": NaN + }, + { + "year": 2019, + "value": NaN + }, + { + "year": 2020, + "value": NaN + }, + { + "year": 2021, + "value": NaN + } + ], + "S1S2": [], + "S3": [], + "S1S2S3": [] + } + }, + "projected_targets": null, + "projected_intensities": { + "S1S2": { + "projections": [ + { + "year": 2019, + "value": NaN + }, + { + "year": 2020, + "value": NaN + }, + { + "year": 2021, + "value": NaN + }, + { + "year": 2022, + "value": NaN + }, + { + "year": 2023, + "value": NaN + }, + { + "year": 2024, + "value": NaN + }, + { + "year": 2025, + "value": NaN + }, + { + "year": 2026, + "value": NaN + }, + { + "year": 2027, + "value": NaN + }, + { + "year": 2028, + "value": NaN + }, + { + "year": 2029, + "value": NaN + }, + { + "year": 2030, + "value": NaN + }, + { + "year": 2031, + "value": NaN + }, + { + "year": 2032, + "value": NaN + }, + { + "year": 2033, + "value": NaN + }, + { + "year": 2034, + "value": NaN + }, + { + "year": 2035, + "value": NaN + }, + { + "year": 2036, + "value": NaN + }, + { + "year": 2037, + "value": NaN + }, + { + "year": 2038, + "value": NaN + }, + { + "year": 2039, + "value": NaN + }, + { + "year": 2040, + "value": NaN + }, + { + "year": 2041, + "value": NaN + }, + { + "year": 2042, + "value": NaN + }, + { + "year": 2043, + "value": NaN + }, + { + "year": 2044, + "value": NaN + }, + { + "year": 2045, + "value": NaN + }, + { + "year": 2046, + "value": NaN + }, + { + "year": 2047, + "value": NaN + }, + { + "year": 2048, + "value": NaN + }, + { + "year": 2049, + "value": NaN + }, + { + "year": 2050, + "value": NaN + } + ] + }, + "S3": null, + "S1S2S3": null + }, + "country": null, + "ghg_s1s2": null, + "ghg_s3": null, + "industry_level_1": null, + "industry_level_2": null, + "industry_level_3": null, + "industry_level_4": null, + "company_revenue": null, + "company_market_cap": null, + "company_enterprise_value": null, + "company_total_assets": null, + "company_cash_equivalents": null + } +] diff --git a/test/test_e2e.py b/test/test_e2e.py index bf6b7a3a..d2123b11 100644 --- a/test/test_e2e.py +++ b/test/test_e2e.py @@ -12,7 +12,7 @@ import ITR from ITR.data.data_warehouse import DataWarehouse from typing import List -from ITR.interfaces import ICompanyAggregates, ICompanyProjectionsScopes, IProjection +from ITR.interfaces import ICompanyAggregates, ICompanyEIProjectionsScopes, IProjection class TestDataWareHouse(DataWarehouse): @@ -57,48 +57,38 @@ def setUp(self): benchmark_global_budget="396 Gt CO2", benchmark_temperature="1.5 delta_degC", production_metric = { "units": "Fe_ton" }, - projected_ei_trajectories=ICompanyProjectionsScopes.parse_obj({ + projected_intensities=ICompanyEIProjectionsScopes.parse_obj({ "S1S2": { - "reports": [ + "projections": [ { - "company_metric": { "units": "t CO2/Fe_ton" }, - "projections": [ - { - "year": "2019", - "value": 1.6982474347547039 - }, - { - "year": "2020", - "value": 1.6982474347547039 - }, - { - "year": "2021", - "value": 1.5908285727976157 - } - ] + "year": "2019", + "value": 1.6982474347547039 + }, + { + "year": "2020", + "value": 1.6982474347547039 + }, + { + "year": "2021", + "value": 1.5908285727976157 } ] } }), - projected_ei_targets=ICompanyProjectionsScopes.parse_obj({ + projected_targets=ICompanyEIProjectionsScopes.parse_obj({ "S1S2": { - "reports": [ + "projections": [ + { + "year": "2019", + "value": 1.6982474347547039 + }, + { + "year": "2020", + "value": 1.6982474347547039 + }, { - "company_metric": { "units": "t CO2/Fe_ton" }, - "projections": [ - { - "year": "2019", - "value": 1.6982474347547039 - }, - { - "year": "2020", - "value": 1.6982474347547039 - }, - { - "year": "2021", - "value": 1.5577542305393455 - } - ] + "year": "2021", + "value": 1.5577542305393455 } ] } diff --git a/test/test_excel_provider.py b/test/test_excel_provider.py index 6288336b..0f67139a 100644 --- a/test/test_excel_provider.py +++ b/test/test_excel_provider.py @@ -159,8 +159,8 @@ def test_get_company_data(self): self.assertEqual(company_2.company_name, "Company AH") self.assertEqual(company_1.company_id, "US0079031078") self.assertEqual(company_2.company_id, "US00724F1012") - self.assertAlmostEqual(company_1.ghg_s1s2, Q_(104827858.636039, ureg('MWh'))) # Don't ask! The Excel spreadsheet is out of step with other data in this test case. - self.assertAlmostEqual(company_2.ghg_s1s2, Q_(598937001.892059, ureg('MWh'))) # The assertion fail caught it, but pint showed it was a units problem, not something else! + self.assertAlmostEqual(company_1.ghg_s1s2, Q_(104827858.636039, ureg('GJ'))) + self.assertAlmostEqual(company_2.ghg_s1s2, Q_(598937001.892059, ureg('GJ'))) self.assertAlmostEqual(company_1.cumulative_budget, Q_(1362284467.0830, ureg('t CO2')), places=4) self.assertAlmostEqual(company_2.cumulative_budget, Q_(2262242040.68059, ureg('t CO2')), places=4) self.assertAlmostEqual(company_1.cumulative_target, Q_(3769096510.09909, ureg('t CO2')), places=4) @@ -181,4 +181,5 @@ def test_get_value(self): if __name__ == "__main__": test = TestExcelProvider() test.setUp() + test.test_temp_score_from_excel_data() test.test_get_company_data() diff --git a/test/test_interfaces.py b/test/test_interfaces.py index 1c20fcb7..bfc24180 100644 --- a/test/test_interfaces.py +++ b/test/test_interfaces.py @@ -5,7 +5,7 @@ from ITR.data.osc_units import ureg, Q_, PA_ -from ITR.interfaces import EScope, PowerGenerationWh, IProjection, IBenchmark, ICompanyData, ICompanyProjectionsScopes, ICompanyProjections, ICompanyProjection +from ITR.interfaces import EScope, PowerGenerationWh, IProjection, IBenchmark, ICompanyData, ICompanyEIProjectionsScopes, ICompanyEIProjections class TestInterfaces(unittest.TestCase): @@ -38,8 +38,8 @@ def test_ICompanyProjectionScopes(self): index=[2019, 2020, 2021], name='nl_steel') p = [IProjection(year=int(k), value=Q_(v, ureg('Fe_ton'))) for k, v in row.items()] - S1S2=ICompanyProjections(reports=[ICompanyProjection(company_metric={'units':'t CO2/Fe_ton'}, projections=p)]) - x = ICompanyProjectionsScopes(S1S2=S1S2) + S1S2=ICompanyEIProjections(projections=p) + x = ICompanyEIProjectionsScopes(S1S2=S1S2) def test_ICompanyData(self): company_data = ICompanyData( @@ -49,8 +49,8 @@ def test_ICompanyData(self): sector="Steel", production_metric={ "units": "Fe_ton"}, target_probability=0.123, - projected_ei_targets = None, - projected_ei_trajectories = None, + projected_targets = None, + projected_intensities = None, country='US6293775085', ghg_s1s2=89800001.4, ghg_s3=89800001.4, diff --git a/test/test_projection.py b/test/test_projection.py index a27d3e7b..6d3a677e 100644 --- a/test/test_projection.py +++ b/test/test_projection.py @@ -5,6 +5,16 @@ from ITR.data.base_providers import EmissionIntensityProjector from ITR.interfaces import ICompanyData +def mystr(s): + t = str(s).replace('CO2 * metric_ton', 't CO2').replace('gigajoule','GJ').replace(' / ', '/') + if t.startswith('nan'): + return json.loads('NaN') + return t + +def refstr(s): + if s!=s: + return json.loads('NaN') + return str(s) class TestProjector(unittest.TestCase): """ From 7eb2a63b784d5af728ac29eb95362c4daae7cd92 Mon Sep 17 00:00:00 2001 From: David Kroon Date: Mon, 14 Feb 2022 12:51:58 +0100 Subject: [PATCH 068/345] Add GitHub workflow for running unit tests on pushes and PRs to main and develop Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- .github/workflows/unittests.yml | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 .github/workflows/unittests.yml diff --git a/.github/workflows/unittests.yml b/.github/workflows/unittests.yml new file mode 100644 index 00000000..e69de29b From d0830d0d71e584ded8bed55e491598ef496af967 Mon Sep 17 00:00:00 2001 From: David Kroon Date: Mon, 14 Feb 2022 12:52:27 +0100 Subject: [PATCH 069/345] Add GitHub workflow for running unit tests on pushes and PRs to main and develop Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- .github/workflows/unittests.yml | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/.github/workflows/unittests.yml b/.github/workflows/unittests.yml index e69de29b..03d24b56 100644 --- a/.github/workflows/unittests.yml +++ b/.github/workflows/unittests.yml @@ -0,0 +1,26 @@ +name: Unit tests +on: + push: + branches: + - main + - develop + pull_request: + branches: + - main + - develop +jobs: + build: + runs-on: ubuntu-latest + name: Run unit tests + steps: + - uses: actions/checkout@v2 + - uses: actions/setup-python@v2 + with: + python-version: 3.7 + - name: Install dependencies + run: | + python -m pip install --upgrade pip + pip install -r requirements.txt + pip install . + - name: Run tests + run: python -m unittest discover tests \ No newline at end of file From d1608f3a0231ededf8239b407031f94342d395e6 Mon Sep 17 00:00:00 2001 From: David Kroon Date: Mon, 14 Feb 2022 12:55:06 +0100 Subject: [PATCH 070/345] Fix GitHub unit test workflow Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- .github/workflows/unittests.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/unittests.yml b/.github/workflows/unittests.yml index 03d24b56..d18dad6b 100644 --- a/.github/workflows/unittests.yml +++ b/.github/workflows/unittests.yml @@ -23,4 +23,4 @@ jobs: pip install -r requirements.txt pip install . - name: Run tests - run: python -m unittest discover tests \ No newline at end of file + run: python -m unittest \ No newline at end of file From 77f16d77cc37b7a3a5b67be57853eacef1b34302 Mon Sep 17 00:00:00 2001 From: David Kroon Date: Mon, 14 Feb 2022 14:20:42 +0100 Subject: [PATCH 071/345] Increase Python and Pandas versions Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- .github/workflows/notebooks.yml | 2 +- .github/workflows/ossaudit.yml | 2 +- .github/workflows/pythonpackage.yml | 2 +- .github/workflows/sphinx-autobuild.yml | 2 +- .github/workflows/unittests.yml | 2 +- requirements.txt | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) diff --git a/.github/workflows/notebooks.yml b/.github/workflows/notebooks.yml index 5902795f..a64ec54a 100644 --- a/.github/workflows/notebooks.yml +++ b/.github/workflows/notebooks.yml @@ -17,7 +17,7 @@ jobs: - uses: actions/checkout@v2 - uses: actions/setup-python@v2 with: - python-version: 3.7 + python-version: 3.9 - name: Install dependencies run: | python -m pip install --upgrade pip diff --git a/.github/workflows/ossaudit.yml b/.github/workflows/ossaudit.yml index 4a159967..292560c4 100644 --- a/.github/workflows/ossaudit.yml +++ b/.github/workflows/ossaudit.yml @@ -15,7 +15,7 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - python-version: [3.7] + python-version: [3.9] steps: - uses: actions/checkout@v2 diff --git a/.github/workflows/pythonpackage.yml b/.github/workflows/pythonpackage.yml index 671f55f1..aae00079 100644 --- a/.github/workflows/pythonpackage.yml +++ b/.github/workflows/pythonpackage.yml @@ -15,7 +15,7 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - python-version: [3.7] + python-version: [3.9] steps: - uses: actions/checkout@v2 diff --git a/.github/workflows/sphinx-autobuild.yml b/.github/workflows/sphinx-autobuild.yml index b4eef9df..d0dc2075 100644 --- a/.github/workflows/sphinx-autobuild.yml +++ b/.github/workflows/sphinx-autobuild.yml @@ -10,7 +10,7 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - python-version: [3.7] + python-version: [3.9] steps: - uses: actions/checkout@v2 diff --git a/.github/workflows/unittests.yml b/.github/workflows/unittests.yml index d18dad6b..3a2df101 100644 --- a/.github/workflows/unittests.yml +++ b/.github/workflows/unittests.yml @@ -16,7 +16,7 @@ jobs: - uses: actions/checkout@v2 - uses: actions/setup-python@v2 with: - python-version: 3.7 + python-version: 3.9 - name: Install dependencies run: | python -m pip install --upgrade pip diff --git a/requirements.txt b/requirements.txt index 2992e8ac..f90c3f21 100644 --- a/requirements.txt +++ b/requirements.txt @@ -5,7 +5,7 @@ Sphinx==3.0.3 sphinx-autodoc-typehints==1.10.3 sphinx-autoapi==1.8.4 sphinx-rtd-theme==0.4.3 -pandas==1.3.5 +pandas==1.4.1 xlrd==2.0.1 openpyxl==3.0.7 matplotlib==3.2.2 From 4b6fcdd91869e684e0102fc631b03e768aa15dd7 Mon Sep 17 00:00:00 2001 From: David Kroon Date: Mon, 14 Feb 2022 15:53:07 +0100 Subject: [PATCH 072/345] Add directory unit test workflow Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- .github/workflows/unittests.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/unittests.yml b/.github/workflows/unittests.yml index 3a2df101..4ddf1144 100644 --- a/.github/workflows/unittests.yml +++ b/.github/workflows/unittests.yml @@ -23,4 +23,4 @@ jobs: pip install -r requirements.txt pip install . - name: Run tests - run: python -m unittest \ No newline at end of file + run: python -m unittest test \ No newline at end of file From 4b4fd98eecf50cb9e3c5779c4e8ce5c029157817 Mon Sep 17 00:00:00 2001 From: MichaelTiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> Date: Tue, 15 Feb 2022 12:29:22 -0500 Subject: [PATCH 073/345] Quiet warnings due to pint_pandas/pandas disagreements There are a few basic cases that create a lot of excess noise: 1. Use of apply on dataframes 2. Constructing DataFrame from list of pd.Series 3: https://github.com/hgrecco/pint-pandas/issues/114 There are a few noisy warnings left, which can be fixed by following the pattern of these changes. Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- ITR/data/base_providers.py | 38 ++++++++--- ITR/data/data_warehouse.py | 9 ++- ITR/data/excel.py | 6 +- ITR/portfolio_aggregation.py | 19 ++++-- ITR/temperature_score.py | 37 +++++++---- test/test_portfolio_aggregation.py | 101 ++++++++++++++++++----------- test/test_temperature_score.py | 16 +++-- 7 files changed, 151 insertions(+), 75 deletions(-) diff --git a/ITR/data/base_providers.py b/ITR/data/base_providers.py index 776d1164..799bd84f 100644 --- a/ITR/data/base_providers.py +++ b/ITR/data/base_providers.py @@ -1,3 +1,4 @@ +import warnings # needed until quantile behaves better with Pint quantities in arrays import numpy as np import pandas as pd @@ -129,7 +130,10 @@ def get_company_projected_trajectories(self, company_ids: List[str]) -> pd.DataF trajectory_list = [self._convert_projections_to_series(c, self.column_config.PROJECTED_EI) for c in self.get_company_data(company_ids)] if trajectory_list: - return pd.DataFrame(trajectory_list) + with warnings.catch_warnings(): + # pd.DataFrame.__init__ (in pandas/core/frame.py) ignores the beautiful dtype information adorning the pd.Series list elements we are providing. Sad! + warnings.simplefilter("ignore") + return pd.DataFrame(trajectory_list) return pd.DataFrame() def get_company_projected_targets(self, company_ids: List[str]) -> pd.DataFrame: @@ -140,7 +144,10 @@ def get_company_projected_targets(self, company_ids: List[str]) -> pd.DataFrame: target_list = [self._convert_projections_to_series(c, self.column_config.PROJECTED_TARGETS) for c in self.get_company_data(company_ids)] if target_list: - return pd.DataFrame(target_list) + with warnings.catch_warnings(): + # pd.DataFrame.__init__ (in pandas/core/frame.py) ignores the beautiful dtype information adorning the pd.Series list elements we are providing. Sad! + warnings.simplefilter("ignore") + return pd.DataFrame(target_list) return pd.DataFrame() # This is actual output production (whatever the output production units may be). @@ -169,7 +176,9 @@ def _convert_benchmark_to_series(self, benchmark: IBenchmark) -> pd.Series: :param scope: a scope :return: pd.Series """ - return pd.Series({r.year: r.value for r in benchmark.projections}, name=(benchmark.region, benchmark.sector)) + with warnings.catch_warnings(): + warnings.simplefilter("ignore") + return pd.Series({r.year: r.value for r in benchmark.projections}, name=(benchmark.region, benchmark.sector)) # Production benchmarks are dimensionless. S1S2 has nothing to do with any company data. # It's a label in the top-level of benchmark data. Currently S1S2 is the only label with any data. @@ -288,7 +297,10 @@ def _get_projected_intensities(self, scope: EScope = EScope.S1S2) -> pd.DataFram result = [] for bm in self._EI_benchmarks.dict()[str(scope)]['benchmarks']: result.append(self._convert_benchmark_to_series(IBenchmark.parse_obj(bm))) - df_bm = pd.DataFrame(result) + with warnings.catch_warnings(): + # pd.DataFrame.__init__ (in pandas/core/frame.py) ignores the beautiful dtype information adorning the pd.Series list elements we are providing. Sad! + warnings.simplefilter("ignore") + df_bm = pd.DataFrame(result) df_bm.index.names = [self.column_config.REGION, self.column_config.SECTOR] return df_bm @@ -450,14 +462,20 @@ def _standardize(self, intensities: pd.DataFrame) -> pd.DataFrame: pass winsorized_intensities: pd.DataFrame = self._winsorize(intensities) standardized_intensities: pd.DataFrame = self._interpolate(winsorized_intensities) - return standardized_intensities.T + with warnings.catch_warnings(): + # Don't worry about warning that we are intentionally dropping units as we transpose + warnings.simplefilter("ignore") + return standardized_intensities.T def _winsorize(self, historic_intensities: pd.DataFrame) -> pd.DataFrame: - winsorized: pd.DataFrame = historic_intensities.clip( - lower=historic_intensities.quantile(q=ProjectionConfig.LOWER_PERCENTILE, axis='index', numeric_only=True), - upper=historic_intensities.quantile(q=ProjectionConfig.UPPER_PERCENTILE, axis='index', numeric_only=True), - axis='columns' - ) + with warnings.catch_warnings(): + warnings.simplefilter("ignore") + # See https://github.com/hgrecco/pint-pandas/issues/114 + winsorized: pd.DataFrame = historic_intensities.clip( + lower=historic_intensities.quantile(q=ProjectionConfig.LOWER_PERCENTILE, axis='index', numeric_only=True), + upper=historic_intensities.quantile(q=ProjectionConfig.UPPER_PERCENTILE, axis='index', numeric_only=True), + axis='columns' + ) return winsorized def _interpolate(self, historic_intensities: pd.DataFrame) -> pd.DataFrame: diff --git a/ITR/data/data_warehouse.py b/ITR/data/data_warehouse.py index e74db2fe..b00b4352 100644 --- a/ITR/data/data_warehouse.py +++ b/ITR/data/data_warehouse.py @@ -1,3 +1,5 @@ +import warnings # needed until apply behaves better with Pint quantities in arrays + from abc import ABC from typing import List import pandas as pd @@ -72,8 +74,11 @@ def get_preprocessed_company_data(self, company_ids: List[str]) -> List[ICompany df_company_data[self.column_config.BENCHMARK_TEMP] = pd.Series([self.benchmarks_projected_emission_intensity.benchmark_temperature]* len(df_company_data), dtype='pint[delta_degC]', index=df_company_data.index) - for col in [ self.column_config.CUMULATIVE_TRAJECTORY, self.column_config.CUMULATIVE_TARGET, self.column_config.CUMULATIVE_BUDGET]: - df_company_data[col] = df_company_data[col].apply(lambda x: str(x)) + with warnings.catch_warnings(): + warnings.simplefilter("ignore") + # See https://github.com/hgrecco/pint-pandas/issues/114 + for col in [ self.column_config.CUMULATIVE_TRAJECTORY, self.column_config.CUMULATIVE_TARGET, self.column_config.CUMULATIVE_BUDGET]: + df_company_data[col] = df_company_data[col].apply(lambda x: str(x)) companies = df_company_data.to_dict(orient="records") aggregate_company_data: List[ICompanyAggregates] = [ICompanyAggregates.parse_obj(company) for company in companies] diff --git a/ITR/data/excel.py b/ITR/data/excel.py index f3f8285e..1e03a4f1 100644 --- a/ITR/data/excel.py +++ b/ITR/data/excel.py @@ -1,3 +1,4 @@ +import warnings # needed until apply behaves better with Pint quantities in arrays from typing import Type, List, Union, Optional import pandas as pd import numpy as np @@ -272,7 +273,10 @@ def _get_projection(self, company_ids: List[str], projections: pd.DataFrame, pro TemperatureScoreConfig.CONTROLS_CONFIG.target_end_year + 1)] # Due to bug (https://github.com/pandas-dev/pandas/issues/20824) in Pandas where NaN are treated as zero workaround below: projected_emissions_s1s2 = projections.groupby(level=0, sort=False).agg(ExcelProviderCompany._np_sum) # add scope 1 and 2 - projected_emissions_s1s2 = projected_emissions_s1s2.apply(lambda x: x.astype(f'pint[t CO2/({production_metric[x.name]})]'), axis=1) + with warnings.catch_warnings(): + warnings.simplefilter("ignore") + # See https://github.com/hgrecco/pint-pandas/issues/114 + projected_emissions_s1s2 = projected_emissions_s1s2.apply(lambda x: x.astype(f'pint[t CO2/({production_metric[x.name]})]'), axis=1) return projected_emissions_s1s2 diff --git a/ITR/portfolio_aggregation.py b/ITR/portfolio_aggregation.py index 3225a037..5a083127 100644 --- a/ITR/portfolio_aggregation.py +++ b/ITR/portfolio_aggregation.py @@ -1,5 +1,7 @@ from abc import ABC from enum import Enum +import warnings # needed until apply behaves better with Pint quantities in arrays + from typing import Type from pint import Quantity @@ -94,9 +96,12 @@ def _calculate_aggregate_score(self, data: pd.DataFrame, input_column: str, if portfolio_aggregation_method == PortfolioAggregationMethod.WATS: total_investment_weight = data[self.c.COLS.INVESTMENT_VALUE].sum() try: - return pd.Series(data.apply( - lambda row: row[self.c.COLS.INVESTMENT_VALUE] * row[input_column] / total_investment_weight, - axis=1), dtype='pint[delta_degC]') + with warnings.catch_warnings(): + warnings.simplefilter("ignore") + # See https://github.com/hgrecco/pint-pandas/issues/114 + return pd.Series(data.apply( + lambda row: row[self.c.COLS.INVESTMENT_VALUE] * row[input_column] / total_investment_weight, + axis=1), dtype='pint[delta_degC]') except ZeroDivisionError: raise ValueError("The portfolio weight is not allowed to be zero") @@ -144,9 +149,11 @@ def _calculate_aggregate_score(self, data: pd.DataFrame, input_column: str, try: # Calculate the MOTS value per company - result = data.apply( - lambda row: (row[self.c.COLS.OWNED_EMISSIONS] / owned_emissions) * row[input_column], - axis=1) + with warnings.catch_warnings(): + warnings.simplefilter("ignore") + result = data.apply( + lambda row: (row[self.c.COLS.OWNED_EMISSIONS] / owned_emissions) * row[input_column], + axis=1) return result.astype('pint[delta_degC]') except ZeroDivisionError: raise ValueError("The total owned emissions can not be zero") diff --git a/ITR/temperature_score.py b/ITR/temperature_score.py index 07ed10bb..13a18974 100644 --- a/ITR/temperature_score.py +++ b/ITR/temperature_score.py @@ -1,3 +1,5 @@ +import warnings # needed until apply behaves better with Pint quantities in arrays + from typing import Optional, Tuple, Type, List import pandas as pd @@ -127,10 +129,14 @@ def _prepare_data(self, data: pd.DataFrame): score_combinations = pd.DataFrame(list(itertools.product(*[companies, scopes, self.time_frames])), columns=[self.c.COLS.COMPANY_ID, self.c.COLS.SCOPE, self.c.COLS.TIME_FRAME]) scoring_data = pd.merge(left=data, right=score_combinations, how='outer', on=[self.c.COLS.COMPANY_ID]) - scoring_data[self.c.COLS.TEMPERATURE_SCORE], scoring_data[self.c.COLS.TRAJECTORY_SCORE], scoring_data[ - self.c.COLS.TRAJECTORY_OVERSHOOT], scoring_data[self.c.COLS.TARGET_SCORE], scoring_data[ - self.c.COLS.TARGET_OVERSHOOT], scoring_data[self.c.TEMPERATURE_RESULTS] = zip(*scoring_data.apply( - lambda row: self.get_score(row), axis=1)) + + with warnings.catch_warnings(): + warnings.simplefilter("ignore") + # See https://github.com/hgrecco/pint-pandas/issues/114 + scoring_data[self.c.COLS.TEMPERATURE_SCORE], scoring_data[self.c.COLS.TRAJECTORY_SCORE], scoring_data[ + self.c.COLS.TRAJECTORY_OVERSHOOT], scoring_data[self.c.COLS.TARGET_SCORE], scoring_data[ + self.c.COLS.TARGET_OVERSHOOT], scoring_data[self.c.TEMPERATURE_RESULTS] = zip(*scoring_data.apply( + lambda row: self.get_score(row), axis=1)) # Fix up dtypes for the new columns we just added for c in [self.c.COLS.TEMPERATURE_SCORE, self.c.COLS.TRAJECTORY_SCORE, self.c.COLS.TRAJECTORY_SCORE, self.c.COLS.TARGET_SCORE, self.c.TEMPERATURE_RESULTS]: @@ -152,9 +158,11 @@ def _calculate_company_score(self, data): self.c.COLS.GHG_SCOPE3, self.c.COLS.TEMPERATURE_SCORE, self.c.TEMPERATURE_RESULTS] ].groupby([self.c.COLS.COMPANY_ID, self.c.COLS.TIME_FRAME, self.c.COLS.SCOPE]).mean() - data[self.c.COLS.TEMPERATURE_SCORE], data[self.c.TEMPERATURE_RESULTS] = zip(*data.apply( - lambda row: self.get_ghc_temperature_score(row, company_data), axis=1 - )) + with warnings.catch_warnings(): + warnings.simplefilter("ignore") + data[self.c.COLS.TEMPERATURE_SCORE], data[self.c.TEMPERATURE_RESULTS] = zip(*data.apply( + lambda row: self.get_ghc_temperature_score(row, company_data), axis=1 + )) return data def calculate(self, data: Optional[pd.DataFrame] = None, @@ -184,7 +192,10 @@ def calculate(self, data: Optional[pd.DataFrame] = None, # We need to filter the scopes again, because we might have had to add a scope in the preparation step data = data[data[self.c.COLS.SCOPE].isin(self.scopes)] - data[self.c.COLS.TEMPERATURE_SCORE] = data[self.c.COLS.TEMPERATURE_SCORE].map(lambda x: Q_(round (x.m, 2), x.u)).astype('pint[delta_degC]') + with warnings.catch_warnings(): + warnings.simplefilter("ignore") + # See https://github.com/hgrecco/pint-pandas/issues/114 + data[self.c.COLS.TEMPERATURE_SCORE] = data[self.c.COLS.TEMPERATURE_SCORE].map(lambda x: Q_(round (x.m, 2), x.u)).astype('pint[delta_degC]') return data def _get_aggregations(self, data: pd.DataFrame, total_companies: int) -> Tuple[Aggregation, pd.Series, pd.Series]: @@ -199,10 +210,12 @@ def _get_aggregations(self, data: pd.DataFrame, total_companies: int) -> Tuple[A self.aggregation_method) data[self.c.COLS.CONTRIBUTION_RELATIVE] = pd.Series(weighted_scores / weighted_scores.sum(), dtype='pint[percent]') data[self.c.COLS.CONTRIBUTION] = weighted_scores - contributions = data \ - .sort_values(self.c.COLS.CONTRIBUTION_RELATIVE, ascending=False) \ - .where(pd.notnull(data), 0) \ - .to_dict(orient="records") + with warnings.catch_warnings(): + warnings.simplefilter("ignore") + contributions = data \ + .sort_values(self.c.COLS.CONTRIBUTION_RELATIVE, ascending=False) \ + .where(pd.notnull(data), 0) \ + .to_dict(orient="records") aggregations = Aggregation( score=weighted_scores.sum(), proportion=len(weighted_scores) / (total_companies / 100.0), diff --git a/test/test_portfolio_aggregation.py b/test/test_portfolio_aggregation.py index 012d094c..855f72cf 100644 --- a/test/test_portfolio_aggregation.py +++ b/test/test_portfolio_aggregation.py @@ -1,3 +1,5 @@ +import warnings + import unittest import pandas as pd @@ -63,53 +65,76 @@ def test_check_column(self): PortfolioAggregation()._check_column(data=self.data, column=ColumnsConfig.TEMPERATURE_SCORE) def test_calculate_aggregate_score_WATS(self): - pd.testing.assert_series_equal( - PortfolioAggregation()._calculate_aggregate_score(data=self.data, - input_column=ColumnsConfig.TEMPERATURE_SCORE, - portfolio_aggregation_method=PortfolioAggregationMethod.WATS), - pd.Series([0.166667, 0.666667, 1.5], dtype='pint[delta_degC]')) + pa_WATS = PortfolioAggregation()._calculate_aggregate_score(data=self.data, + input_column=ColumnsConfig.TEMPERATURE_SCORE, + portfolio_aggregation_method=PortfolioAggregationMethod.WATS) + with warnings.catch_warnings(): + warnings.simplefilter("ignore") + pd.testing.assert_series_equal(pa_WATS, + pd.Series([0.166667, 0.666667, 1.5], dtype='pint[delta_degC]')) def test_calculate_aggregate_score_TETS(self): - pd.testing.assert_series_equal( - PortfolioAggregation()._calculate_aggregate_score(data=self.data, - input_column=ColumnsConfig.TEMPERATURE_SCORE, - portfolio_aggregation_method=PortfolioAggregationMethod.TETS), - pd.Series([0.111111, 0.444444, 2.0], dtype='pint[delta_degC]')) + pa_TETS = PortfolioAggregation()._calculate_aggregate_score(data=self.data, + input_column=ColumnsConfig.TEMPERATURE_SCORE, + portfolio_aggregation_method=PortfolioAggregationMethod.TETS) + with warnings.catch_warnings(): + warnings.simplefilter("ignore") + pd.testing.assert_series_equal( + pa_TETS, + pd.Series([0.111111, 0.444444, 2.0], dtype='pint[delta_degC]')) def test_calculate_aggregate_score_ECOTS(self): - pd.testing.assert_series_equal( - PortfolioAggregation()._calculate_aggregate_score(data=self.data, - input_column=ColumnsConfig.TEMPERATURE_SCORE, - portfolio_aggregation_method=PortfolioAggregationMethod.ECOTS), - pd.Series([0.111111, 0.444444, 2.0], dtype='pint[delta_degC]')) + pa_ECOTS = PortfolioAggregation()._calculate_aggregate_score(data=self.data, + input_column=ColumnsConfig.TEMPERATURE_SCORE, + portfolio_aggregation_method=PortfolioAggregationMethod.ECOTS) + with warnings.catch_warnings(): + warnings.simplefilter("ignore") + pd.testing.assert_series_equal( + pa_ECOTS, + pd.Series([0.111111, 0.444444, 2.0], dtype='pint[delta_degC]')) def test_calculate_aggregate_score_MOTS(self): - pd.testing.assert_series_equal( - PortfolioAggregation()._calculate_aggregate_score(data=self.data, - input_column=ColumnsConfig.TEMPERATURE_SCORE, - portfolio_aggregation_method=PortfolioAggregationMethod.MOTS), - pd.Series([0.111111, 0.444444, 2.0], dtype='pint[delta_degC]')) + pa_MOTS = PortfolioAggregation()._calculate_aggregate_score(data=self.data, + input_column=ColumnsConfig.TEMPERATURE_SCORE, + portfolio_aggregation_method=PortfolioAggregationMethod.MOTS) + with warnings.catch_warnings(): + warnings.simplefilter("ignore") + pd.testing.assert_series_equal( + pa_MOTS, + pd.Series([0.111111, 0.444444, 2.0], dtype='pint[delta_degC]')) def test_calculate_aggregate_score_EOTS(self): - pd.testing.assert_series_equal( - PortfolioAggregation()._calculate_aggregate_score(data=self.data, - input_column=ColumnsConfig.TEMPERATURE_SCORE, - portfolio_aggregation_method=PortfolioAggregationMethod.EOTS), - pd.Series([0.111111, 0.444444, 2.0], dtype='pint[delta_degC]')) + pa_EOTS = PortfolioAggregation()._calculate_aggregate_score(data=self.data, + input_column=ColumnsConfig.TEMPERATURE_SCORE, + portfolio_aggregation_method=PortfolioAggregationMethod.EOTS) + with warnings.catch_warnings(): + warnings.simplefilter("ignore") + pd.testing.assert_series_equal( + pa_EOTS, + pd.Series([0.111111, 0.444444, 2.0], dtype='pint[delta_degC]')) def test_calculate_aggregate_score_AOTS(self): - pd.testing.assert_series_equal( - PortfolioAggregation()._calculate_aggregate_score(data=self.data, - input_column=ColumnsConfig.TEMPERATURE_SCORE, - portfolio_aggregation_method=PortfolioAggregationMethod.AOTS), - pd.Series([0.111111, 0.444444, 2.0], dtype='pint[delta_degC]')) + pa_AOTS = PortfolioAggregation()._calculate_aggregate_score(data=self.data, + input_column=ColumnsConfig.TEMPERATURE_SCORE, + portfolio_aggregation_method=PortfolioAggregationMethod.AOTS) + with warnings.catch_warnings(): + warnings.simplefilter("ignore") + pd.testing.assert_series_equal( + pa_AOTS, + pd.Series([0.111111, 0.444444, 2.0], dtype='pint[delta_degC]')) def test_calculate_aggregate_score_ROTS(self): - pd.testing.assert_series_equal( - PortfolioAggregation()._calculate_aggregate_score(data=self.data, - input_column=ColumnsConfig.TEMPERATURE_SCORE, - portfolio_aggregation_method=PortfolioAggregationMethod.ROTS), - pd.Series([0.111111, 0.444444, 2.0], dtype='pint[delta_degC]')) - - - + pa_ROTS = PortfolioAggregation()._calculate_aggregate_score(data=self.data, + input_column=ColumnsConfig.TEMPERATURE_SCORE, + portfolio_aggregation_method=PortfolioAggregationMethod.ROTS) + with warnings.catch_warnings(): + warnings.simplefilter("ignore") + pd.testing.assert_series_equal( + pa_ROTS, + pd.Series([0.111111, 0.444444, 2.0], dtype='pint[delta_degC]')) + + +if __name__ == "__main__": + test = TestPortfolioAggregation() + test.setUp() + test.test_calculate_aggregate_score_WATS() \ No newline at end of file diff --git a/test/test_temperature_score.py b/test/test_temperature_score.py index 211c5903..e2537be8 100644 --- a/test/test_temperature_score.py +++ b/test/test_temperature_score.py @@ -1,3 +1,5 @@ +import warnings + import os import unittest @@ -23,12 +25,14 @@ def setUp(self) -> None: self.temperature_score = TemperatureScore(time_frames=[ETimeFrames.LONG], scopes=EScope.get_result_scopes()) df = pd.read_csv(os.path.join(os.path.dirname(os.path.realpath(__file__)), "inputs", "data_test_temperature_score.csv"), sep=";") - df['ghg_s1s2'] = df['ghg_s1s2'].astype('pint[MWh]') - df['ghg_s3'] = df['ghg_s3'].astype('pint[MWh]') - for cumulative in ['cumulative_budget', 'cumulative_target', 'cumulative_trajectory']: - df[cumulative] = df[cumulative].astype('pint[Mt CO2]') - df['benchmark_global_budget'] = df['benchmark_global_budget'].astype('pint[Gt CO2]') - df['benchmark_temperature'] = df['benchmark_temperature'].astype('pint[delta_degC]') + with warnings.catch_warnings(): + warnings.simplefilter("ignore") + df['ghg_s1s2'] = df['ghg_s1s2'].astype('pint[MWh]') + df['ghg_s3'] = df['ghg_s3'].astype('pint[MWh]') + for cumulative in ['cumulative_budget', 'cumulative_target', 'cumulative_trajectory']: + df[cumulative] = df[cumulative].astype('pint[Mt CO2]') + df['benchmark_global_budget'] = df['benchmark_global_budget'].astype('pint[Gt CO2]') + df['benchmark_temperature'] = df['benchmark_temperature'].astype('pint[delta_degC]') self.data = df def test_temp_score(self) -> None: From 9f6c7968c73ae7b73d56f497f8dc76add66c7f11 Mon Sep 17 00:00:00 2001 From: MichaelTiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> Date: Fri, 18 Feb 2022 00:45:16 -0500 Subject: [PATCH 074/345] WIP to add target projections to existing trajectory projections This WIP largely connects the unitized code (previously working) with historic trajectories (previously working) and target projections (not yet working). Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- ITR/configs.py | 36 ++ ITR/data/base_providers.py | 50 +-- ITR/data/data_providers.py | 2 +- ITR/data/excel.py | 3 +- ITR/data/target_utils.py | 172 +++++++++ ITR/data/template.py | 333 ++++++++++++++++++ ITR/interfaces.py | 101 ++++-- .../data/20220215_Template ITR Tool_v10.xlsx | Bin 0 -> 32819 bytes .../inputs/20220215 ITR Tool Sample Data.xlsx | Bin 0 -> 57459 bytes test/test_template_provider.py | 204 +++++++++++ 10 files changed, 844 insertions(+), 57 deletions(-) create mode 100644 ITR/data/target_utils.py create mode 100644 ITR/data/template.py create mode 100644 examples/data/20220215_Template ITR Tool_v10.xlsx create mode 100644 test/inputs/20220215 ITR Tool Sample Data.xlsx create mode 100644 test/test_template_provider.py diff --git a/ITR/configs.py b/ITR/configs.py index b8ba7f2e..296bd95c 100644 --- a/ITR/configs.py +++ b/ITR/configs.py @@ -11,13 +11,18 @@ class ColumnsConfig: # Define a constant for each column used in the COMPANY_ID = "company_id" + COMPANY_LEI = "company_lei" COMPANY_ISIN = "company_isin" COMPANY_ISIC = "isic" MARKET_CAP = "company_market_cap" + TEMPLATE_MARKET_CAP = "market_cap" INVESTMENT_VALUE = "investment_value" COMPANY_ENTERPRISE_VALUE = "company_enterprise_value" COMPANY_EV_PLUS_CASH = "company_ev_plus_cash" COMPANY_TOTAL_ASSETS = "company_total_assets" + TEMPLATE_ENTERPRISE_VALUE = "ev" + TEMPLATE_EV_PLUS_CASH = "evic" + COMPANY_TOTAL_ASSETS = "assets" SCOPE = "scope" START_YEAR = "start_year" VARIABLE = "variable" @@ -28,10 +33,23 @@ class ColumnsConfig: OWNED_EMISSIONS = "owned_emissions" COUNTRY = 'country' SECTOR = 'sector' + TEMPLATE_EXPOSURE = 'exposure' + TEMPLATE_CURRENCY = 'currency' + TEMPLATE_REPORT_DATE = 'report_date' + EMISSIONS_METRIC = 'emissions_metric' PRODUCTION_METRIC = 'production_metric' # The unit of production (i.e., power generated, tons of steel produced, vehicles manufactured, etc.) GHG_SCOPE12 = 'ghg_s1s2' # This seems to be the base year PRODUCTION number, nothing at all to do with any quantity of actual S1S2 emissions GHG_SCOPE3 = 'ghg_s3' + TEMPLATE_SCOPE1 = 'em_s1' + TEMPLATE_SCOPE2 = 'em_s2' + TEMPLATE_SCOPE12 = 'em_s1s2' + TEMPLATE_SCOPE3 = 'em_s3' + TEMPLATE_SCOPE123 = 'em_s1s2s3' + HISTORIC_DATA = "historic_data" + TARGET_DATA = "target_data" + TEMPLATE_PRODUCTION = 'production' COMPANY_REVENUE = 'company_revenue' + TEMPLAET_REVENUE = 'revenue' CASH_EQUIVALENTS = 'company_cash_equivalents' BASE_YEAR = 'base_year' END_YEAR = 'end_year' @@ -80,12 +98,29 @@ class VariablesConfig: EMISSION_INTENSITIES = "Emission Intensities" +class TargetConfig: + COMPANY_ID = "company_id" + COMPANY_LEI = "company_lei" + COMPANY_ISIN = "company_isin" + COMPANY_ISIC = "isic" + NETZERO_DATE = 'netzero_date' + TARGET_TYPE = 'target_type' + TARGET_SCOPE = 'target_scope' + TARGET_START_YEAR = 'target_start_year' + TARGET_BASE_YEAR = 'target_base_year' + TARGET_BASE_MAGNITUDE = 'target_base_year_qty' + TARGET_BASE_UNITS = 'target_base_year_unit' + TARGET_YEAR = 'target_year' + TARGET_REDUCTION_VS_BASE = 'target_reduction_ambition' + class TabsConfig: FUNDAMENTAL = "fundamental_data" PROJECTED_EI = "projected_ei_in_Wh" PROJECTED_PRODUCTION = "projected_production" PROJECTED_TARGET = "projected_target" HISTORIC_DATA = "historic_data" + TEMPLATE_INPUT_DATA = 'ITR input data' + TEMPLATE_TARGET_DATA = 'ITR target input data' class PortfolioAggregationConfig: @@ -94,6 +129,7 @@ class PortfolioAggregationConfig: class TemperatureScoreConfig(PortfolioAggregationConfig): TEMPERATURE_RESULTS = 'temperature_results' + # Unfortunately we need to cross over to interfaces.py CONTROLS_CONFIG = TemperatureScoreControls( base_year=2019, target_end_year=2050, diff --git a/ITR/data/base_providers.py b/ITR/data/base_providers.py index 799bd84f..473c011a 100644 --- a/ITR/data/base_providers.py +++ b/ITR/data/base_providers.py @@ -373,7 +373,7 @@ def _extract_historic_data(self, companies: List[ICompanyData]) -> pd.DataFrame: [ColumnsConfig.COMPANY_ID, ColumnsConfig.VARIABLE, ColumnsConfig.SCOPE]) def _historic_productions_to_dict(self, id: str, productions: List[IProductionRealization]) -> Dict[str, str]: - prods = {prod['year']: prod['value'] for prod in productions} + prods = {prod.year: prod.value for prod in productions} return {ColumnsConfig.COMPANY_ID: id, ColumnsConfig.VARIABLE: VariablesConfig.PRODUCTIONS, ColumnsConfig.SCOPE: 'Production', **prods} @@ -404,28 +404,38 @@ def _compute_missing_historic_emission_intensities(self, companies, historic_dat production_key = (company.company_id, VariablesConfig.PRODUCTIONS, 'Production') emission_keys = {scope: (company.company_id, VariablesConfig.EMISSIONS, scope) for scope in scopes} ei_keys = {scope: (company.company_id, VariablesConfig.EMISSION_INTENSITIES, scope) for scope in scopes} + this_missing_data = [] + append_this_missing_data = True for scope in scopes: - if ei_keys[scope] not in historic_data.index: # Emission intensities not yet computed for this scope - if scope == 'S1S2': - try: # Try to add S1 and S2 emission intensities - historic_data.loc[ei_keys[scope]] = historic_data.loc[ei_keys['S1']] + \ - historic_data.loc[ei_keys['S2']] - except KeyError: # Either S1 or S2 emission intensities not readily available - try: # Try to compute S1+S2 EIs from S1+S2 emissions and productions - historic_data.loc[ei_keys[scope]] = historic_data.loc[emission_keys[scope]] / \ - historic_data.loc[production_key] - except KeyError: - missing_data.append(f"{company.company_id} - {scope}") - elif scope == 'S1S2S3': # Implement when S3 data is available - pass - elif scope == 'S3': # Remove when S3 data is available - will be handled by 'else' - pass - else: # S1 and S2 cannot be computed from other EIs, so use emissions and productions - try: + if ei_keys[scope] in historic_data.index: + append_this_missing_data = False + continue + # Emission intensities not yet computed for this scope + if scope == 'S1S2': + try: # Try to add S1 and S2 emission intensities + historic_data.loc[ei_keys[scope]] = historic_data.loc[ei_keys['S1']] + \ + historic_data.loc[ei_keys['S2']] + append_this_missing_data = False + except KeyError: # Either S1 or S2 emission intensities not readily available + try: # Try to compute S1+S2 EIs from S1+S2 emissions and productions historic_data.loc[ei_keys[scope]] = historic_data.loc[emission_keys[scope]] / \ historic_data.loc[production_key] + append_this_missing_data = False except KeyError: - missing_data.append(f"{company.company_id} - {scope}") + this_missing_data.append(f"{company.company_id} - {scope}") + elif scope == 'S1S2S3': # Implement when S3 data is available + pass + elif scope == 'S3': # Remove when S3 data is available - will be handled by 'else' + pass + else: # S1 and S2 cannot be computed from other EIs, so use emissions and productions + try: + historic_data.loc[ei_keys[scope]] = historic_data.loc[emission_keys[scope]] / \ + historic_data.loc[production_key] + append_this_missing_data = False + except KeyError: + this_missing_data.append(f"{company.company_id} - {scope}") + if this_missing_data and append_this_missing_data: + missing_data.extend(this_missing_data) assert not missing_data, f"Provide either historic emission intensity data, or historic emission and " \ f"production data for these company - scope combinations: {missing_data}" @@ -434,7 +444,7 @@ def _add_projections_to_companies(self, companies: List[ICompanyData], extrapola results = extrapolations.loc[(company.company_id, VariablesConfig.EMISSION_INTENSITIES, 'S1S2')] if company.production_metric: # These are already stored in the correct compact format - units = f"t CO2/{company.production_metric.units}" + units = f"t CO2/{company.production_metric}" elif company.sector=='Steel': units = "t CO2/Fe_ton" elif company.sector=='Electricity Utilities': diff --git a/ITR/data/data_providers.py b/ITR/data/data_providers.py index c3b8ffb8..edda8f8e 100644 --- a/ITR/data/data_providers.py +++ b/ITR/data/data_providers.py @@ -4,7 +4,7 @@ import numpy as np -from ITR.configs import ProjectionConfig, TabsConfig, VariablesConfig, ColumnsConfig, TemperatureScoreConfig +from ITR.configs import ProjectionConfig, TabsConfig, ColumnsConfig, VariablesConfig, TemperatureScoreConfig from ITR.interfaces import ICompanyData, EScope, IHistoricData, IProductionRealization, IHistoricEmissionsScopes, \ IHistoricEIScopes, ICompanyEIProjection, ICompanyEIProjectionsScopes, ICompanyEIProjections diff --git a/ITR/data/excel.py b/ITR/data/excel.py index 1e03a4f1..760a151c 100644 --- a/ITR/data/excel.py +++ b/ITR/data/excel.py @@ -113,6 +113,7 @@ def __init__(self, excel_path: str, benchmark_temperature: Quantity['delta_degC' self._convert_excel_to_model = convert_intensity_benchmark_excel_to_model EI_benchmarks = self._convert_excel_to_model(self.benchmark_excel, TabsConfig.PROJECTED_EI, column_config.REGION, column_config.SECTOR) + # TODO: Fix units for Steel super().__init__( IEmissionIntensityBenchmarkScopes(benchmark_metric={'units':'t CO2/MWh'}, S1S2=EI_benchmarks, benchmark_temperature=benchmark_temperature, @@ -285,7 +286,7 @@ def _get_historic_data(self, company_ids: List[str], historic_data: pd.DataFrame get the historic data for list of companies :param company_ids: list of company ids :param historic_data: Dataframe Productions, Emissions, and Emission Intensities mixed together - :return: historic data with unit attributes added on a per-element basis + :return: historic data with unit attributes added to yearly data on a per-element basis """ # We don't need this reset/set index dance because we set the index to COMPANY_ID to get units sorted # historic_data = historic_data.reset_index().drop(columns=['index']).set_index(ColumnsConfig.COMPANY_ID) diff --git a/ITR/data/target_utils.py b/ITR/data/target_utils.py new file mode 100644 index 00000000..e4482690 --- /dev/null +++ b/ITR/data/target_utils.py @@ -0,0 +1,172 @@ +import pandas as pd +import numpy as np + +# Timeline definition: + +# Historical Data has a first year and a last year (typically 2015-2020) +# Target Data has a base year (could be 2000, 2005, 2015) and a target year (typically 2030, 2050) + +# In order to have valid data, the base year must be between the start and end years. + +#Step 0: Overall function + +def compute_CAGR(first, last, period): + """Input: + @first: first value + @last: last value + @period: number of periods in the CAGR""" + + if period == 0: + res = 1 + else: + res = (last/first)**(1/period)-1 + return res + +#Step 1: function for tagret trajectory + +# data_target includes columns for: +# ISIN, Scope, Base year, Target year, Emissions_unit, Emissions, Percent_reduction, Type (intensity, absolute, other) + +# data_emissions includes columns for: +# ISIN, Date, Region, Scope 1, Scope 2 + +# data_production includes columns for: +# ISIN, Date, Financial Data (Revenue, Market Cap, Debt, etc), Steel Production, Eletricity Production, Other production (Oil & Gas, EVs, etc) + +# data_benchmark includes columns for: +# Sector, Date, Region, Unit_intensity, Unit_Production (always %), Intensity, Production (Annual Growth) + +# Returns a dataframe of a single ISIN, Region, Sector, Data for years 2020-2050: +# Also Emission, Production, intensity, CAGR, CAGR_emission, CAGR_production +# Also forecast_target, forecast_emission, forecast_production, forecast_intensity +def target_projection(isin, data_target, data_emissions, data_prod): + """Input: + @isin: isin of the company for which to compute the projection + @data_target: tagret database, as given + @data_emission: database with emission with emissions, intensity, sector and region columns + @data_prod: database with production evolution from benchmark + + If the company has no target or the target can't be processed, then the output the emission database, unprocessed + """ + global data_benchmark + + #Get the target data + df_tar = data_target.loc[lambda row:(row["company_id"]==isin),:] + + #Get the intensity data + df_isin = data_emissions.loc[lambda row:row["company_id"]==isin,:] + + # Get first and last year + first_year = df_isin.loc[lambda row:row["intensity"].notnull(),"year"].min() + last_year = df_isin.loc[lambda row:row["intensity"].notnull(),"year"].max() + value_first_year = df_isin.loc[lambda row:row["year"]==first_year,"intensity"].values[0] + value_last_year = df_isin.loc[lambda row:row["year"]==last_year,"intensity"].values[0] + + #Add the years until 2050 + temp = pd.DataFrame(range(2020, 2051), columns=['year']) + df_isin = pd.merge(df_isin, + temp, + how='outer', + on='year') + + df_isin.loc[:, ['company_id','Region','Sector']] = df_isin.loc[:,['company_id','Region','Sector']].fillna(method='ffill') + df_isin = df_isin.sort_values("year") + + #Solve for intensity and absolute + if df_tar["Type"].values[0]=="Intensity": + #Simple case: the target is in intensity + base_year = df_tar["Base year"].values[0] + if (base_yearfirst_year): + target_year = df_tar["Target year"].values[0] + #Correction here for percentage + target_value = df_isin.loc[lambda row:row["year"]==base_year,"intensity"].values[0]*(1-df_tar["Percent_reduction"].values[0]/100) + df_isin.loc[lambda row:row["year"]==target_year,"intensity"] = target_value + value_last_year_emission = df_isin.loc[lambda row:row["year"]==last_year,"Emission"].values[0] + CAGR = compute_CAGR(value_last_year,target_value,(target_year - last_year)) + + #Add CAGR and forecast + df_isin['CAGR'] = 0 + df_isin['forecast_target'] = df_isin['intensity'] + + #Input CAGR + df_isin.loc[lambda row: row['year'].between(last_year + 1, + 2050), 'CAGR'] = CAGR + # Cumulative prod + df_isin['CAGR'] = (1 + df_isin['CAGR']).cumprod() + # Compute forecast + df_isin.loc[lambda row: row['year'] > last_year, "forecast_target"] = \ + df_isin.loc[lambda row: row['year'] == last_year, 'forecast_target'].values[0] * df_isin['CAGR'] + else:#test is we have base data in sample + CAGR = np.nan + + elif df_tar["Type"].values[0]=="Absolute": + #Complicated case, the target must be switched from absolute value to intensity. + #We use the benchmark production data + #Compute Emission CAGR + base_year = df_tar["Base year"].values[0] + if (base_year last_year, "forecast_emission"] = \ + df_isin.loc[lambda row: row['year'] == last_year, 'forecast_emission'].values[0] * df_isin['CAGR_emission'] + + #Second step: we compute the evolution for production, based on the benchmark production evolution + + #Compute benchmark CAGR (mean yearly evolution) + sector=df_isin["Sector"].values[0] + region=df_isin["Region"].values[0] + data_benchmark = data_prod.loc[lambda row:(row["Sector"]==sector)&(row["Region"]==region),:] + CAGR_prod = data_benchmark.loc[lambda row:(row["Date"]<=target_year)&(row["Date"]>=last_year),"Production"].mean() + + #Add CAGR and forecast + df_isin['CAGR_production'] = 0 + df_isin['forecast_production'] = df_isin['Production'] + + #Input CAGR + df_isin.loc[lambda row: row['year'].between(last_year + 1, + 2050), 'CAGR_production'] = CAGR_prod + # Cumulative prod + df_isin['CAGR_production'] = (1 + df_isin['CAGR_production']).cumprod() + # Compute forecast + df_isin.loc[lambda row: row['year'] > last_year, "forecast_production"] = \ + df_isin.loc[lambda row: row['year'] == last_year, 'forecast_production'].values[0] * df_isin['CAGR_production'] + + + #Final step: we divid and get the intensity evolution + df_isin["forecast_intensity"] = df_isin["forecast_emission"] /df_isin["forecast_production"] + + + #Approximation: here we say that the intensity evolution is that of emissions minus production + #If absolute decreases by 5% per year and production grows by 5% a year, intensity must decrease by 10% a year + + else: + CAGR = np.nan + + else: + #No target + #Maybe modification needed here, depends on the output needed for the case where there is no target + CAGR=np.nan + + return df_isin diff --git a/ITR/data/template.py b/ITR/data/template.py new file mode 100644 index 00000000..bcd6a805 --- /dev/null +++ b/ITR/data/template.py @@ -0,0 +1,333 @@ +import warnings # needed until apply behaves better with Pint quantities in arrays +from typing import Type, List, Union, Optional +import pandas as pd +import numpy as np + +from pint import Quantity +# from pint_pandas import PintArray + +import pint +import pint_pandas +ureg = pint.get_application_registry() +Q_ = ureg.Quantity +# PA_ = pint_pandas.PintArray + +from pydantic import ValidationError +from ITR.data.base_providers import BaseCompanyDataProvider, BaseProviderProductionBenchmark, \ + BaseProviderIntensityBenchmark +from ITR.configs import ColumnsConfig, TemperatureScoreConfig, SectorsConfig, VariablesConfig, TabsConfig +from ITR.interfaces import ICompanyData, ICompanyEIProjection, EScope, IEmissionIntensityBenchmarkScopes, \ + IProductionBenchmarkScopes, IBenchmark, IBenchmarks, IHistoricEmissionsScopes, \ + IProductionRealization, IHistoricEIScopes, IHistoricData, ITargetData, IEmissionRealization, IEIRealization, IProjection +from ITR.data.target_utils import target_projection + +import logging +import inspect + +class TemplateProviderCompany(BaseCompanyDataProvider): + """ + Data provider skeleton for CSV files. This class serves primarily for testing purposes only! + As of Feb 2022, we are testing!! + + :param excel_path: A path to the Excel file with the company data + :param column_config: An optional ColumnsConfig object containing relevant variable names + :param tempscore_config: An optional TemperatureScoreConfig object containing temperature scoring settings + """ + + def __init__(self, excel_path: str, + column_config: Type[ColumnsConfig] = ColumnsConfig, + tempscore_config: Type[TemperatureScoreConfig] = TemperatureScoreConfig): + self._companies = self._convert_from_template_company_data(excel_path) + # self.historic_years = None + super().__init__(self._companies, column_config, tempscore_config) + + def _calculate_target_projections(self, + Production_bm: Type[BaseProviderProductionBenchmark], + EI_bm: Type[BaseProviderIntensityBenchmark]): + """ + We cannot calculate target projections until after we have loaded benchmark data. + + :param Production_bm: A Production Benchmark (multi-sector, single-scope, 2020-2050) + :param EI_bm: An Emissions Intensity Benchmark (multi-sector, single-scope, 2020-2050) + """ + for c in self._companies: + print(c.target_data) + exit() + + def _check_company_data(self, df: pd.DataFrame) -> None: + """ + Checks if the company data excel contains the data in the right format + + :return: None + """ + required_tabs = [TabsConfig.TEMPLATE_INPUT_DATA, TabsConfig.TEMPLATE_TARGET_DATA] + missing_tabs = [tab for tab in required_tabs if tab not in df.keys()] + assert not any(tab in missing_tabs for tab in required_tabs), f"Tabs {required_tabs} are required." + + def _convert_from_template_company_data(self, excel_path: str) -> List[ICompanyData]: + """ + Converts the Excel template to list of ICompanyData objects. All dataprovider features will be inhereted from + Base + :param excel_path: file path to excel file + :return: List of ICompanyData objects + """ + + def _fixup_name(x): + prefix, _, suffix = x.partition('_') + suffix = suffix.replace('ghg_', '') + if suffix!='production': + suffix = suffix.upper() + return f"{suffix}-{prefix}" + + df_company_data = pd.read_excel(excel_path, sheet_name=None, skiprows=0) + self._check_company_data(df_company_data) + + df_fundamentals = df_company_data[TabsConfig.TEMPLATE_INPUT_DATA].set_index(ColumnsConfig.COMPANY_ID, drop=False).convert_dtypes() + # GH https://github.com/pandas-dev/pandas/issues/46044 + df_fundamentals.company_id = df_fundamentals.company_id.astype('object') + + company_ids = df_fundamentals[ColumnsConfig.COMPANY_ID].unique() + # The nightmare of naming columns 20xx_metric instead of metric_20xx... + historic_columns = [col for col in df_fundamentals.columns if col.startswith('20')] + historic_scopes = ['S1', 'S2', 'S3', 'S1S2', 'S1S2S3', 'production'] + df_historic = df_fundamentals[['company_id'] + historic_columns].dropna(axis=1,how='all') + df_fundamentals = df_fundamentals[df_fundamentals.columns.difference(historic_columns, sort=False)] + # df_fundamentals now ready for conversion to list of models + + df_historic = df_historic.rename(columns={col:_fixup_name(col) for col in historic_columns}) + df = pd.wide_to_long(df_historic, historic_scopes, i='company_id', j='year', sep='-', suffix='\d+').reset_index() + df2 = (df.pivot(index='company_id', columns='year', values=historic_scopes) + .stack(level=0) + .reset_index() + .rename(columns={'level_1':ColumnsConfig.SCOPE}) + .set_index('company_id')) + df2.loc[df2[ColumnsConfig.SCOPE]=='production', ColumnsConfig.VARIABLE] = VariablesConfig.PRODUCTIONS + df2.loc[df2[ColumnsConfig.SCOPE]!='production', ColumnsConfig.VARIABLE] = VariablesConfig.EMISSIONS + df3 = df2.reset_index().set_index(['company_id', 'variable', 'scope']) + df3 = pd.concat([df3.xs(VariablesConfig.PRODUCTIONS,level=1,drop_level=False) + .apply(lambda x: x.map(lambda y: Q_(y, df_fundamentals.loc[df_fundamentals.company_id==x.name[0], + 'production_metric'].squeeze())), axis=1), + df3.xs(VariablesConfig.EMISSIONS,level=1,drop_level=False) + .applymap(lambda x: Q_(x, 't CO2'))]) + df4 = df3.xs(VariablesConfig.EMISSIONS,level=1) / df3.xs((VariablesConfig.PRODUCTIONS,'production'),level=[1,2]) + df4['variable'] = VariablesConfig.EMISSION_INTENSITIES + df4 = df4.reset_index().set_index(['company_id', 'variable', 'scope']) + df5 = pd.concat([df3, df4]) + df_historic_data = df5 + # df_historic now ready for conversion to model for each company + self.historic_years = [column for column in df_historic_data.columns if type(column) == int] + + + df_target_data = df_company_data[TabsConfig.TEMPLATE_TARGET_DATA].set_index('company_id').convert_dtypes() + + # TODO: need to fix Pydantic definition or data to allow optional int. In the mean time... + df_target_data.loc[df_target_data.target_start_year.isna(), 'target_start_year'] = 2020 + df_target_data.loc[df_target_data.netzero_date.isna(), 'netzero_date'] = 2050 + + # company_id, netzero_date, target_type, target_scope, target_start_year, target_base_year, target_base_year_qty, target_base_year_unit, target_year, target_reduction_ambition + # df_target_data now ready for conversion to model for each company + return self._company_df_to_model(df_fundamentals, df_target_data, df_historic_data) + + def _convert_series_to_IProjections(self, projections: pd.Series) -> [IProjection]: + """ + Converts a Pandas Series to a list of IProjection + :param projections: Pandas Series with years as indices + :return: List of IProjection objects + """ + return [IProjection(year=y, value=v) for y, v in projections.items()] + + def _company_df_to_model(self, df_fundamentals: pd.DataFrame, + df_target_data: pd.DataFrame, + df_historic_data: pd.DataFrame) -> List[ICompanyData]: + + """ + transforms target Dataframe into list of ICompanyData instances. + We don't necessarily have enough info to do target projections at this stage. + + :param df_fundamentals: pandas Dataframe with fundamental data + :param df_target_data: pandas Dataframe with target data + :param df_historic_data: pandas Dataframe with historic emissions, intensity, and production information + :return: A list containing the ICompanyData objects + """ + logger = logging.getLogger(__name__) + # set NaN to None since NaN is float instance + df_fundamentals = df_fundamentals.where(pd.notnull(df_fundamentals), None).replace({np.nan: None}) + + companies_data_dict = df_fundamentals.to_dict(orient="records") + model_companies: List[ICompanyData] = [] + for company_data in companies_data_dict: + # company_data is a dict, not a dataframe + try: + # In this world (different from excel.py) we initialize projected_intensities and projected_targets + # in a later step, after we know we have valid benchmark data + company_id = company_data[ColumnsConfig.COMPANY_ID] + + # the ghg_s1s2 and ghg_s3 variables are values "as of" the financial data + # TODO pull ghg_s1s2 and ghg_s3 from historic data as appropriate + + # v = df_fundamentals[df_fundamentals[ColumnsConfig.COMPANY_ID]==company_id][ColumnsConfig.GHG_SCOPE12].squeeze() + # company_data[ColumnsConfig.GHG_SCOPE12] = Q_(v or np.nan, ureg(units)) + # v = df_fundamentals[df_fundamentals[ColumnsConfig.COMPANY_ID]==company_id][ColumnsConfig.GHG_SCOPE3].squeeze() + # company_data[ColumnsConfig.GHG_SCOPE3] = Q_(v or np.nan, ureg(units)) + + # df.loc[[index]] is like df.loc[index, :] except it always returns a DataFrame and not a Series when there's only one row + if df_historic_data is not None: + company_data[ColumnsConfig.HISTORIC_DATA] = self._convert_historic_data( + df_historic_data.loc[[company_data[ColumnsConfig.COMPANY_ID]]].reset_index()).dict() + else: + company_data[ColumnsConfig.HISTORIC_DATA] = None + + if df_target_data is not None: + company_data[ColumnsConfig.TARGET_DATA] = [td.dict() for td in self._convert_target_data( + df_target_data.loc[[company_data[ColumnsConfig.COMPANY_ID]]].reset_index())] + else: + company_data[ColumnsConfig.TARGET_DATA] = None + + model_companies.append(ICompanyData.parse_obj(company_data)) + except ValidationError as e: + logger.warning( + f"EX {e}: (one of) the input(s) of company %s is invalid and will be skipped" % company_data[ + ColumnsConfig.COMPANY_NAME]) + continue + return model_companies + + # Workaround for bug (https://github.com/pandas-dev/pandas/issues/20824) in Pandas where NaN are treated as zero + def _np_sum(g): + return np.sum(g.values) + + def _get_projection(self, company_ids: List[str], projections: pd.DataFrame, production_metric: pd.DataFrame) -> pd.DataFrame: + """ + get the projected emission intensities for list of companies + :param company_ids: list of company ids + :param projections: Dataframe with listed projections per company + :param production_metric: Dataframe with production_metric per company + :return: series of projected emission intensities + """ + + projections = projections.reset_index().set_index(ColumnsConfig.COMPANY_ID) + + assert all(company_id in projections.index for company_id in company_ids), \ + f"company ids missing in provided projections" + + projections = projections.loc[company_ids, range(TemperatureScoreConfig.CONTROLS_CONFIG.base_year, + TemperatureScoreConfig.CONTROLS_CONFIG.target_end_year + 1)] + # Due to bug (https://github.com/pandas-dev/pandas/issues/20824) in Pandas where NaN are treated as zero workaround below: + projected_emissions_s1s2 = projections.groupby(level=0, sort=False).agg(ExcelProviderCompany._np_sum) # add scope 1 and 2 + with warnings.catch_warnings(): + warnings.simplefilter("ignore") + # See https://github.com/hgrecco/pint-pandas/issues/114 + projected_emissions_s1s2 = projected_emissions_s1s2.apply(lambda x: x.astype(f'pint[t CO2/({production_metric[x.name]})]'), axis=1) + + return projected_emissions_s1s2 + +# class ITargetData(PintModel): +# netzero_date: int +# target_type: Union[Literal['intensity'],Literal['absolute'],Literal['other']] +# target_scope: EScope +# start_year: Optional[int] +# base_year: int +# end_year: int + +# target_base_qty: float +# target_base_unit: str +# target_reduction_pct: float + + def _convert_target_data(self, target_data: pd.DataFrame) -> List[ITargetData]: + """ + :param historic: historic production, emission and emission intensity data for a company + :return: IHistoricData Pydantic object + """ + target_data = target_data.rename(columns={'target_base_year':'base_year', + 'target_start_year':'start_year', + 'target_year':'end_year', + 'target_reduction_ambition':'target_reduction_pct', + 'target_base_year_qty':'target_base_qty', + 'target_base_year_unit':'target_base_unit'}) + return [ITargetData(**td) for td in target_data.to_dict('records')] + + def _get_historic_data(self, company_ids: List[str], historic_data: pd.DataFrame) -> pd.DataFrame: + """ + get the historic data for list of companies + :param company_ids: list of company ids + :param historic_data: Dataframe Productions, Emissions, and Emission Intensities mixed together + :return: historic data with unit attributes added on a per-element basis + """ + # We don't need this reset/set index dance because we set the index to COMPANY_ID to get units sorted + # historic_data = historic_data.reset_index().drop(columns=['index']).set_index(ColumnsConfig.COMPANY_ID) + + missing_ids = [company_id for company_id in company_ids if company_id not in historic_data.index] + assert not missing_ids, f"Company ids missing in provided historic data: {missing_ids}" + + # There has got to be a better way to do this... + historic_data = ( + historic_data.loc[company_ids, :] + .apply(lambda x: pd.Series({col:x[col] for col in x.index if type(col)!=int} + | {y:f"{x[y]} {x['units']}" for y in self.historic_years}, + index=x.index), + axis=1) + ) + return historic_data + + def _convert_historic_data(self, historic: pd.DataFrame) -> IHistoricData: + """ + :param historic: historic production, emission and emission intensity data for a company (already unitized) + :return: IHistoricData Pydantic object + """ + historic.set_index('variable', drop=False, inplace=True) + productions = historic.loc[[VariablesConfig.PRODUCTIONS]] + emissions = historic.loc[[VariablesConfig.EMISSIONS]] + emission_intensities = historic.loc[[VariablesConfig.EMISSION_INTENSITIES]] + hd = IHistoricData(productions=self._convert_to_historic_productions(productions), + emissions=self._convert_to_historic_emissions(emissions), + emission_intensities=self._convert_to_historic_emission_intensities(emission_intensities)) + return hd + + # Note that for the three following functions, we pd.Series.squeeze() the results because it's just one year / one company + def _convert_to_historic_emissions(self, emissions: pd.DataFrame) -> Optional[IHistoricEmissionsScopes]: + """ + :param historic: historic production, emission and emission intensity data for a company + :param convert_unit: whether or not to convert the units of measure + :return: List of historic emissions per scope, or None if no data are provided + """ + if emissions.empty: + return None + + emission_scopes = {} + for scope in EScope.get_scopes(): + results = emissions.loc[emissions[ColumnsConfig.SCOPE] == scope] + emission_scopes[scope] = [] \ + if results.empty \ + else [IEmissionRealization(year=year, value=results[year].squeeze()) for year in self.historic_years] + return IHistoricEmissionsScopes(**emission_scopes) + + def _convert_to_historic_productions(self, productions: pd.DataFrame) \ + -> Optional[List[IProductionRealization]]: + """ + :param historic: historic production, emission and emission intensity data for a company + :return: A list containing historic productions, or None if no data are provided + """ + if productions.empty: + return None + + production_realizations = \ + [IProductionRealization(year=year, value=productions[year].squeeze()) for year in self.historic_years] + return production_realizations + + def _convert_to_historic_emission_intensities(self, intensities: pd.DataFrame) \ + -> Optional[IHistoricEIScopes]: + """ + :param historic: historic production, emission and emission intensity data for a company + :return: A list of historic emission intensities per scope, or None if no data are provided + """ + if intensities.empty: + return None + + intensities = intensities.copy() + intensity_scopes = {} + + for scope in EScope.get_scopes(): + results = intensities.loc[intensities[ColumnsConfig.SCOPE] == scope] + intensity_scopes[scope] = [] \ + if results.empty \ + else [IEIRealization(year=year, value=results[year].squeeze()) for year in self.historic_years] + return IHistoricEIScopes(**intensity_scopes) diff --git a/ITR/interfaces.py b/ITR/interfaces.py index 707a0eb2..19f1b14d 100644 --- a/ITR/interfaces.py +++ b/ITR/interfaces.py @@ -293,26 +293,80 @@ class IHistoricEIScopes(PintModel): S1S2S3: List[IEIRealization] +class EScope(SortableEnum): + S1 = "S1" + S2 = "S2" + S3 = "S3" + S1S2 = "S1+S2" + S1S2S3 = "S1+S2+S3" + + @classmethod + def get_scopes(cls) -> List[str]: + """ + Get a list of all scopes. + :return: A list of EScope string values + """ + return ['S1', 'S2', 'S3', 'S1S2', 'S1S2S3'] + + @classmethod + def get_result_scopes(cls) -> List['EScope']: + """ + Get a list of scopes that should be calculated if the user leaves it open. + + :return: A list of EScope objects + """ + return [cls.S1S2, cls.S3, cls.S1S2S3] + + +class ETimeFrames(SortableEnum): + """ + TODO: add support for multiple timeframes. Long currently corresponds to 2050. + """ + SHORT = "short" + MID = "mid" + LONG = "long" + + +class ECarbonBudgetScenario(Enum): + P25 = "25 percentile" + P75 = "75 percentile" + MEAN = "Average" + + class IHistoricData(PintModel): productions: Optional[List[IProductionRealization]] emissions: Optional[IHistoricEmissionsScopes] emission_intensities: Optional[IHistoricEIScopes] +class ITargetData(PintModel): + netzero_date: Optional[int] + target_type: Union[Literal['intensity'],Literal['absolute'],Literal['other']] + target_scope: EScope + start_year: Optional[int] + base_year: int + end_year: int + + target_base_qty: float + target_base_unit: str + target_reduction_pct: float + + class ICompanyData(PintModel): company_name: str company_id: str region: str # TODO: make SortableEnums sector: str # TODO: make SortableEnums - target_probability: float + target_probability: float = 0.5 + target_data: Optional[List[ITargetData]] historic_data: Optional[IHistoricData] - projected_targets: Optional[ICompanyEIProjectionsScopes] - projected_intensities: Optional[ICompanyEIProjectionsScopes] country: Optional[str] - production_metric: Optional[ProductionMetric] + production_metric: str + + # These two instance variables match against financial data below, but are incomplete as historic_data and target_data ghg_s1s2: Optional[Quantity[ProductionMetric]] # This seems to be the base year PRODUCTION number, nothing at all to do with any quantity of actual S1S2 emissions ghg_s3: Optional[Quantity[ProductionMetric]] @@ -327,6 +381,11 @@ class ICompanyData(PintModel): company_total_assets: Optional[float] company_cash_equivalents: Optional[float] + # Initialized later when we have benchmark information. It is OK to initialize as None and fix later. + # They will show up as {'S1S2': { 'projections': [ ... ] }} + projected_targets: Optional[ICompanyEIProjectionsScopes] + projected_intensities: Optional[ICompanyEIProjectionsScopes] + # TODO: Do we want to do some sector inferencing here? def _fixup_historic_productions(self, historic_productions, production_metric): if historic_productions is None or production_metric is None: @@ -352,8 +411,6 @@ def __init__(self, historic_data=None, projected_targets=None, projected_intensi error ("no source of production metrics") self.production_metric = parse_obj_as(ProductionMetric,{'units':units}) production_metric = {'units':units} - if historic_data: - self.historic_data.productions = self._fixup_historic_productions(historic_data.get('productions',None), production_metric) if ghg_s1s2: self.ghg_s1s2=pint_ify(ghg_s1s2, self.production_metric.units) if ghg_s3: @@ -367,6 +424,9 @@ class ICompanyAggregates(ICompanyData): benchmark_temperature: Quantity['delta_degC'] benchmark_global_budget: Quantity['CO2'] + projected_targets: Optional[ICompanyEIProjectionsScopes] + # projected_intensities: Optional[ICompanyEIProjectionsScopes] + def __init__(self, cumulative_budget, cumulative_trajectory, cumulative_target, benchmark_temperature, benchmark_global_budget, *args, **kwargs): super().__init__( cumulative_budget=pint_ify(cumulative_budget, 't CO2'), @@ -377,35 +437,6 @@ def __init__(self, cumulative_budget, cumulative_trajectory, cumulative_target, *args, **kwargs) -class SortableEnum(Enum): - def __str__(self): - return self.name - - def __ge__(self, other): - if self.__class__ is other.__class__: - order = list(self.__class__) - return order.index(self) >= order.index(other) - return NotImplemented - - def __gt__(self, other): - if self.__class__ is other.__class__: - order = list(self.__class__) - return order.index(self) > order.index(other) - return NotImplemented - - def __le__(self, other): - if self.__class__ is other.__class__: - order = list(self.__class__) - return order.index(self) <= order.index(other) - return NotImplemented - - def __lt__(self, other): - if self.__class__ is other.__class__: - order = list(self.__class__) - return order.index(self) < order.index(other) - return NotImplemented - - class TemperatureScoreControls(PintModel): base_year: int target_end_year: int diff --git a/examples/data/20220215_Template ITR Tool_v10.xlsx b/examples/data/20220215_Template ITR Tool_v10.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..8ed60760e04a7298a0be8d99c7cda66e2b96c20e GIT binary patch literal 32819 zcmeFYV{|CZx-J?gGq!EpwryK8wrwXfwlQPdwryK8c5?E4Yn{FKxoh2V_uo7A=`p&x z$LQ+r!u!?yi!p{c*BF_Z?`p*A-ClobIq=4??W| zvzj!URrMp@4DzzsY%kd&SW+rc(r$GA^UIg1){L=Dn_a7eUl7TQM0PBXyk}Vei?4EE zyJWo=PXV8zItd1svK9n6WxqhLpu_}(+O26=l3DmhP_hEc4ssm6_bx+1Toz%wxHPIP zyOd&Ne)msvMIhN9=3G^wD6wUF1xKmD$pE}+@$6`{!9@#gOO+oe1uTt(U`cekzVsMD zqXP@MLOib2I)>7@%&Y(hRu~Be!}k!v*yxb0i%kB5HpS<^C9~6dYZwq>Iqv1K*VuBz z8na!ebBHit1_LFXO0b7%(Nw!am_1<)RIgA^)6+Ba=P35KTV0=zd&%!k4|?#ey);^g zhEL&k+207TkGBT|I-UfMjJ}F~nLJX16c&MU-@A4^Cq5@8NO}HMJ)vnp@X%D7#1#SiKo-T;VB0mB$P3PNH z`=mZvTEGz!97Llp#QXdSt;){JADE&k5A#+Ycq1zI@`GqezWmUg#Z(6acv`i8va2UK zpljYs!j+L|CmrI1Y-7q#G7nCPLvT3)=kq>yymYX#$yEOw_plu;BBF{b7M_aJc#c~Y zJiBAbSIsLT?yd0|I}ICqBQyfWCDZ)KIk~o+Ra6uu2~G#jI(oTa2W{vm6mdlI-AEJl zI;QVngey_Ep&QMAVyNXYno^r)L!8>Gd;M;Oe}&AXvCT5=H)No}001xnAOPL0=>CBk zS6c^5Lt9(Rzr5uCMiAh)tNhOUKl|uNl(FomhYq<8{0QB7+atbggFCxt1nacHxv;=K z3>z8OoviiQ%wv z;Sxa_LoYrYPn{^qapkc>Rqi3Wj)9bq>up-qHSXyKA5nnZF?6#fR0IN(_?yfmv$h>b zYDa4aQv(asLTYHUpK10sjuJrIa1v8NeON&wULZo#$Ar5?S;`!0F2IH@#;7MLY2;&I zG;+K^DNJ|TD7yJ~K=`JDkZ+2ChKXde#(50}Og{{&e}Y%SybC@n;ic!U{*WfqIwWLh zTX6IQn=ux8CH6T(l7x%V_x1q86S6?+Pw6|f8y*YFF-Ezn>2sw&^Tmh`Xt1ahwsXr7 zKEG%IZSiG5i|4Z{j8s>6H*6hG91yRY(=F+{Wga@FU!?N+)2BSBLPD%wDn~I`*qv}! zDL|1^FS$km(dr)>Y_I~wX+r{Ggipg3p~1T_76999@2%p<@<>0QYv(llrQB!NqMl0^ zhN77)Y^A!zn2|R&f}Ze(7(kXA7iBLY>QPh}0wwyGI4WD+>ua7sLaPsiV5@FDG&~E; zfyDCK-U!y~#`yY!<9RYU4q?Qzt+NKn^`Me0DK(6@b8e|+zTh&()kk(Xo6qX0IXY1!q=@>FODNyNs1PV!_nrt<#mSMcufkY0)~kCXPgv`XzDF z@B%XI2lg;Jo*kBTOZ4uIwqsB9#jkQHint2TLW`Gefp8HHG5JQFJZJE&-VtFNG$skl z%IoSJ>FYRo5fgh(Jy53cH-tg+e@6Vu+y?yTK{T1OikuGnX7as{=E&X3%c3+=VW zi}XK;q)08vRpk%!1wJ$7YRucYpL+im19bfwT2D{_0Fq(=0OoIHe-=2!<0f%}UiEPS%fUqLjMB%Bp%%g)fMu>V3ebv-o)%z(%2q-BIUXx;! zz3J%ftClQ{7gsrOE2vhn88jvUo@mxVXUs)s2X8y2fI)Prw#hi!M#Mk1Z*O>Y7;e6k z6-x_h7am?yYiF(1S~l#kQGNoDOrna2Dux&Bz5(oiKuE36`pEU-1QJ!DoXJx0tvd2aAMxT_=RuG@{3h9tA5 z8WKYR<(XnEd)Pp$Kd_@K>27e(@^Ga+R- zxCT2NRT=oqxz#2Y#Ep>TV;G!g7*=QF$pa3sP|NjRW$=e6mBFT>2eqh|S(a*GeYPuM z@2WHL%44>00seSA{T->Nu15x-1rD&`w79;T5b}r)(0~9lOuoRq?6C%%KRbV2-8 zpNz8wg2(XvP_6L7^>^RDE$Z*2BJFw?P z99~;hHa*@wyr%MuSUNquPd6{Auco#aGU#c#9N)L6(}$142haERhY}lYo{i2zfbK$w zr*a=O@XhM2eZ4O)h|SH*>CpCdG;`d%RkU=L6l}_P`Y?7m;xRb4^zvhSQt>@A4!)@o z5;5^HvaKAFW`v0}S+zVQqGi8K_d$wT`?3MmK7U&oyWh zsx@x9fwDy3gz+mKiIM$^8xj!Auk&-_`b9uY!DLKV%xN*I9Wjtr1r|T##-B^!e_!Vp zHv}k1sH$+7EQJUrtg1|t28@U#17r_nfw>PzAOq>VWyHD{h%LSk;QyPNU~gWQxYpvk zs5cPyXl_e5%a#+7?rbR3!ctIo4D7 zhNW|Q(1tFZ;9=afHR+%!mA_Gt2pMw7RL^RQ({9WS!p$ZFH@pZ6Mq0!6-1v!Op@J#P z=T(z6gzH)xJeO+*I*tTr(N+fQ8lcbI<`483@b(FpMnIw`gH4UnTfH>)^o1gWgToG` zN|qE7B1OoDM1<3GYg-$*R^@B!dMoK@bXmn>$V`*z9Be~Iw8WV8eonbi>QVZrET*`~ zWuPa%DR91tmC^Zj`gVA8b$vWPO3MT;NUXTzG%+xKH0$Yge`c>k#Q;tr4X~(X?+DS! z&B!x^<)L{_0aC^iPB3!SQboZJPCIhMKINO^$i=E$mDY2m()WMyNwgTsDyAk4FUUwJ zrJSPQb6Pu0hYgY`W8n%i#2K>S$;mB()EVaMOrwv)KVAgU+#Vz3`=g+^{|OqAVze%N zs$=mNKeXaXGPqRbq`sMRmzM_5fWl_mC!E#_JFw4_ufQm2F>kMEZO}TaGA!Nn8V%&8 zg}?Foh5CcAx;_Q>*2ly_fS5^-GQBlmL4~?;I+(gDi;lyg;*?si5XEm~U+`{KTinQT zHeG`jMe5SgUyF5FL5y&yC}9bK@VgW0TE9QOgkWk}8>2I*_@=#+Y)yLtks`+s7JVL9 z(yiyNO|CpjQgL_`Bk$5DpF3wc$r9WiQR0H->mH}2uir6FhEwD!ObiDdjQPSwBWDoC zQU?~dkszBNFQcya2>dB)A`#2pWjjVXIEC4AeXGF*T2d+(^|E3S@9k)QQTUT>NvBBb zqMGzx_xrzSOtksao+I;b<>7+=EcNPH#znrH$f+Yi?CFIhu_V=<)hX91(uMc|4XNUP z)J#g-_UwVI-u4(OoE=TYTjIc;AZap~nH8-v?XYg(!NnYIU3ii&dQN>)K`Bm(~ zD43)o`d5a@qQBm?@BDt3&aU&YnQ0^&n9%)2Fwcs1ZPtSJvZ`5c&*Kh11xlN4pYR`F zu2MUe3OpaQk~udIKflz{rW3ZpiMD9Aap;5?bUDYjh8A|&EjmqiIghw>o?be2$=B1@ z_x$d}LwkT<9YJ~WhRw-pmhj`Nl?Y|l&ANNuZ>ZN$v+}${qAC~>2fd|kdcnoLZ+pKq zRh2w;eH$Z313M^z5snGVp@m`5ey?aqIQS1~OQTF~X#7;4yO|8srmg8R>9R6O5+IJ1 zD%vk^VRrIj&{FE6w(k^*Jpab?xa#Ibp*U`eJ(C(nBb*Y!O~Suz zF<)+1)5g@MGqv3N?n+pis=uDtNW!~ooAY*QjkkM2n4qCUF4Sqkp{$=@E&Xklo*MqY zWGIDid*sP$wZ^5q!%VK1$Q0&nvZ~m%yQzLnV~>xYYQ1c6ip7|n*JUl1F9u=3Q1>p< zLBmI6{V)~+!{qw8#?>{NuKNwA!v0|4%t%ccnJqRxVqd;?C2jKfNfAp^*Yk)6XRh6! zjUwmgcK#10FZrlQ;T?m*lw5lM#M`%3mi^{ML;OZ7&v#+IYf^q!)cauAl&nMHeXLep zz&$dK7RHYD5D4AYyJIIn&ZL*ia95O{_VH^Baha=cW~j6JnJ4)<3rl#9Hc4At-g-rr zJB;xj1O=&dn~+~Qel?PRIKnhpdhn@j{UJ;WniV5;|2cNgEWm++AW=*dYa8G9l7T?E z72*2O)6zVBNpbL{ZCOC9!NHo5c&!Ex8kG&|q>Dq)-55Tyb4XL_E>it;bM~cuWgJgp zN!alTXDH(1VRwfz5C$AKtw=^b2~0=NOhDzm+G~^RFc#6aD&2f-y~}9u>uQh9`V)j2 zF5+sEG!P3RGwLFgC^3b#?HX(8_6ZAOaAZU)17*^xv@~^F=6!$_!lLIu^}6fg#5^1`DmRp0kK zq&xb&dqmrP*@qZKh^eeHLs)mp91VNvHX87#-m<1?EMnsF(AV`3-hYNZ%CWPO1N87B zz9dmQ1=a`%ET>W?t0Ex1bR+3MnN}u)PJf>)XH04?a7#N}_jHo6ipl=Iza=(3C~V)! z1un?Jz#+zE?<}Am_>sP4%C}pP5}eR)0oL9h+u+_z)41|^`Pqg5T+lzn^sOHhD-FK5ZD=|!e?^6UL5@X$FtY|Z!I z&S>_c!FS1m0{{%+|FwkiH(_=%H?cOM`#WX$izi%YOh#g{A$Oy_@rC|!ONHu-PuA;_zvan{T1h3IPxiHBCujDO6Hkmn zF!^Eg0!95UwVvbSfM7ieF}wo&B5akHj3>ddPKi1Q5%R00$CTZFn>1=zypJdcbr>5b za4Qv+sz|XCohbfUH^5Nd)0>fi=mI85($}-JLvEMhmmo|O`LqL29t$;UBTGac%zDyi@xn1+x|?iXXLw7!@6tmExzuf-fb zM4+Z;ksk1G?cs;>56$kTxe`Eg=76N)rWMZfB%3$`82Q)5y!P*T<#E)l89kl)R-Cff z;N@Ip-TUUhV$SEYlLR^W|J*J+1y_sY_k?=6g$dVF`zp5Zd5I3)j{) z6yv^=7^E%eK!MJ9ifM&7nDPrnC24g+wnNRRD@I-bKOjY7iM`Q5Xt^1Px|T?Cj-7#Z zl6eS3+Ym%j{T5{k7)h1qYF_`(Vxov9dd9*e9sO{1EX7AR!+}xhrgy5`MK*l8Y#z_g zKc{!0-8{bcColbab*+t*Qa0cuN=jFYv3g%0A81?OkD8@AI0vYWnv?)R7Rl>%T`25unTK&t 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 H&v*X^+$vAa literal 0 HcmV?d00001 diff --git a/test/inputs/20220215 ITR Tool Sample Data.xlsx b/test/inputs/20220215 ITR Tool Sample Data.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..3cce2deb2680952b1ff9eaf62b4568ac17dad3de GIT binary patch literal 57459 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 OI}0%JQyYKy^#1^uw=-e@ literal 0 HcmV?d00001 diff --git a/test/test_template_provider.py b/test/test_template_provider.py new file mode 100644 index 00000000..c7aad9ec --- /dev/null +++ b/test/test_template_provider.py @@ -0,0 +1,204 @@ +import os +import unittest + +import pandas as pd + +from numpy.testing import assert_array_equal +import ITR +from ITR.data.excel import ExcelProviderProductionBenchmark, ExcelProviderIntensityBenchmark +from ITR.data.template import TemplateProviderCompany +from ITR.data.data_warehouse import DataWarehouse +from ITR.configs import ColumnsConfig, TemperatureScoreConfig +from ITR.interfaces import EScope, ETimeFrames, PortfolioCompany +from ITR.temperature_score import TemperatureScore +from ITR.portfolio_aggregation import PortfolioAggregationMethod + +from ITR.data.osc_units import ureg, Q_, PA_ + +class TestTemplateProvider(unittest.TestCase): + """ + Test the excel provider + """ + + def setUp(self) -> None: + self.root = os.path.dirname(os.path.abspath(__file__)) + self.company_data_path = os.path.join(self.root, "inputs", "20220215 ITR Tool Sample Data.xlsx") + self.sector_data_path = os.path.join(self.root, "inputs", "OECM_EI_and_production_benchmarks.xlsx") + self.excel_production_bm = ExcelProviderProductionBenchmark(excel_path=self.sector_data_path) + self.excel_EI_bm = ExcelProviderIntensityBenchmark(excel_path=self.sector_data_path, benchmark_temperature=Q_(1.5, ureg.delta_degC), + benchmark_global_budget=Q_(396, ureg('Gt CO2')), is_AFOLU_included=False) + self.template_company_data = TemplateProviderCompany(excel_path=self.company_data_path) + self.template_company_data._calculate_target_projections(Production_bm=self.excel_production_bm, EI_bm=self.excel_EI_bm) + self.excel_provider = DataWarehouse(self.template_company_data, self.excel_production_bm, self.excel_EI_bm) + self.company_ids = ["US00130H1059", "US26441C2044", "US6703461052", "KR7005490008"] + # self.company_info_at_base_year = pd.DataFrame( + # [[Q_(1.6982474347547, ureg('t CO2/GJ')), Q_(1.04827859e+08, 'MWh'), 'MWh', 'Electricity Utilities', 'North America'], + # [Q_(0.476586931582279, ureg('t CO2/GJ')), Q_(5.98937002e+08, 'MWh'), 'MWh', 'Electricity Utilities', 'North America'], + # [Q_(0.22457393169277, ureg('t CO2/GJ')), Q_(1.22472003e+08, 'MWh'), 'MWh', 'Electricity Utilities', 'Europe']], + # index=self.company_ids, + # columns=[ColumnsConfig.BASE_EI, ColumnsConfig.GHG_SCOPE12, ColumnsConfig.PRODUCTION_METRIC, ColumnsConfig.SECTOR, ColumnsConfig.REGION]) + + def test_target_projections(self): + comids = ['US00130H1059', 'US0185223007', 'US0188021085', 'US0236081024', 'US0255371017', 'US05351W1036', 'US0921131092'] + + for id in comids: + print(target_projection(isin, data_target, data_emissions, data_prod)) + + + def test_temp_score_from_excel_data(self): + comids = ['US00130H1059', 'US0185223007', + # 'US0138721065', 'US0158577090', + 'US0188021085', + 'US0236081024', 'US0255371017', + # 'US0298991011', + 'US05351W1036', + # 'US05379B1070', + 'US0921131092', + # 'CA1125851040', 'US1442851036', 'US1258961002', 'US2017231034', + # 'US18551QAA58', 'US2091151041', 'US2333311072', 'US25746U1097', 'US26441C2044', + # 'US29364G1031', 'US30034W1062', 'US30040W1080', 'US30161N1019', 'US3379321074', + # 'CA3495531079', 'US3737371050', 'US4198701009', 'US5526901096', 'US6703461052', + # 'US6362744095', 'US6680743050', 'US6708371033', 'US6896481032', 'US69331C1080', + # 'US69349H1077', 'KR7005490008', 'US69351T1060', 'US7234841010', 'US7365088472', + # 'US7445731067', 'US8581191009', 'US8168511090', 'US8425871071', 'CA87807B1076', + # 'US88031M1099', 'US8873991033', 'US9129091081', 'US92531L2079', 'US92840M1027', + # 'US92939U1060', 'US9818111026', 'US98389B1008' + ] + + # Calculate Temp Scores + temp_score = TemperatureScore( + time_frames=[ETimeFrames.LONG], + scopes=[EScope.S1S2], + aggregation_method=PortfolioAggregationMethod.WATS, + ) + + portfolio = [] + for company in comids: + portfolio.append(PortfolioCompany( + company_name=company, + company_id=company, + investment_value=100, + company_isin=company, + ) + ) + # portfolio data + portfolio_data = ITR.utils.get_data(self.excel_provider, portfolio) + scores = temp_score.calculate(portfolio_data) + agg_scores = temp_score.aggregate_scores(scores) + + # verify company scores: + expected = pd.Series([2.05, 2.22, 2.06, 2.01, 1.93, 1.78, 1.71, 1.34, 2.21, 2.69, 2.65, temp_score.fallback_score, 2.89, + 1.91, 2.16, 1.76, temp_score.fallback_score, temp_score.fallback_score, 1.47, 1.72, 1.76, 1.81, + temp_score.fallback_score, 1.78, 1.84, temp_score.fallback_score, temp_score.fallback_score, 1.74, + 1.88, temp_score.fallback_score], dtype='pint[delta_degC]') + assert_array_equal(scores.temperature_score.values, expected) + # verify that results exist + self.assertAlmostEqual(agg_scores.long.S1S2.all.score, Q_(2.259, ureg.delta_degC), places=2) + + def test_get_projected_value(self): + expected_data = pd.DataFrame([[1.698247435, 1.698247435, 1.590828573, 1.492707987, 1.403890821, 1.325025884, + 1.256900833, 1.199892962, 1.153286422, 1.115132019, 1.082871619, 1.054062505, + 1.026649109, 0.99885963, 0.969029076, 0.935600151, 0.897456359, 0.854466423, + 0.807721858, 0.759088111, 0.710432718, 0.663134402, 0.618007985, 0.575439357, + 0.535546775, 0.498300211, 0.463594864, 0.431292461, 0.401243246, 0.373297218, + 0.347309599, 0.32314329], + [0.476586932, 0.476586932, 0.464695628, 0.464754889, 0.466332369, 0.469162115, + 0.472725797, 0.47629738, 0.479176649, 0.480954576, 0.481532513, 0.480898667, + 0.478873144, 0.474920056, 0.468037326, 0.456822975, 0.439924142, 0.416868713, + 0.38867473, 0.357527534, 0.325789571, 0.295235835, 0.266872969, 0.241107715, + 0.21798084, 0.197345262, 0.178974681, 0.162622136, 0.148048657, 0.135035628, + 0.123388813, 0.112938349], + [0.224573932, 0.258012985, 0.261779459, 0.26416071, 0.266503379, 0.268691114, + 0.270569413, 0.271980435, 0.272823337, 0.273080838, 0.272767105, 0.27183449, + 0.270090124, 0.267129877, 0.262302026, 0.254777592, 0.243845281, 0.229393209, + 0.212192429, 0.193616639, 0.175038148, 0.157423255, 0.141276866, 0.12676707, + 0.113867496, 0.102458357, 0.092385201, 0.083489223, 0.0756213, 0.068647473, + 0.062450199, 0.056927654]], + columns=range(TemperatureScoreConfig.CONTROLS_CONFIG.base_year, + TemperatureScoreConfig.CONTROLS_CONFIG.target_end_year + 1), + index=self.company_ids, + dtype='pint[t CO2/GJ]').astype('object') + pd.testing.assert_frame_equal(self.excel_company_data.get_company_projected_trajectories(self.company_ids), + expected_data, check_names=False) + + def test_get_benchmark(self): + expected_data = pd.DataFrame([pd.Series([1.698247435, 1.581691084, 1.386040647, 1.190390211, 0.994739774, 0.799089338, + 0.782935186, 0.677935928, 0.572936671, 0.467937413, 0.362938156, 0.257938898, + 0.233746281, 0.209553665, 0.185361048, 0.161168432, 0.136975815, 0.124810886, + 0.112645956, 0.100481026, 0.088316097, 0.076151167, 0.062125588, 0.048100009, + 0.034074431, 0.020048852, 0.006023273, 0.005843878, 0.005664482, 0.005485087, + 0.005305691, 0.005126296 + ],name='US0079031078', dtype='pint[t CO2/GJ]'), + pd.Series([0.476586932, 0.444131055, 0.389650913, 0.335170772, 0.28069063, 0.226210489, + 0.22171226, 0.192474531, 0.163236802, 0.133999073, 0.104761344, 0.075523615, + 0.068787023, 0.062050431, 0.055313839, 0.048577247, 0.041840655, 0.038453251, + 0.035065847, 0.031678443, 0.028291039, 0.024903635, 0.020998121, 0.017092607, + 0.013187093, 0.009281579, 0.005376065, 0.005326111, 0.005276157, 0.005226203, + 0.005176249, 0.005126296 + ],name='US00724F1012', dtype='pint[t CO2/GJ]'), + pd.Series([0.224573932, 0.17975612, 0.163761501, 0.147766883, 0.131772265, 0.115777646, + 0.099783028, 0.090628361, 0.081473693, 0.072319026, 0.063164359, 0.054009692, + 0.050089853, 0.046170015, 0.042250176, 0.038330338, 0.034410499, 0.031104249, + 0.027797999, 0.024491748, 0.021185498, 0.017879248, 0.016155615, 0.014431983, + 0.012708351, 0.010984719, 0.009261087, 0.008488943, 0.007716798, 0.006944654, + 0.00617251, 0.005400365 + ],name='FR0000125338', dtype='pint[t CO2/GJ]') + ], + index=self.company_ids, + columns=range(TemperatureScoreConfig.CONTROLS_CONFIG.base_year, + TemperatureScoreConfig.CONTROLS_CONFIG.target_end_year + 1)) + pd.testing.assert_frame_equal( + self.excel_EI_bm.get_SDA_intensity_benchmarks(self.company_info_at_base_year), + expected_data) + + def test_get_projected_production(self): + expected_data_2025 = pd.Series([1.06866370e+08, 6.10584093e+08, 1.28474171e+08], + index=self.company_ids, + name=2025, + dtype='pint[MWh]').astype('object') + pd.testing.assert_series_equal( + self.excel_production_bm.get_company_projected_production(self.company_info_at_base_year)[2025], + expected_data_2025) + + def test_get_cumulative_value(self): + projected_emission = pd.DataFrame([[1.0, 2.0], [3.0, 4.0]], + dtype='pint[t CO2/GJ]') + projected_production = pd.DataFrame([[2.0, 4.0], [6.0, 8.0]], + dtype='pint[GJ]') + expected_data = pd.Series([10.0, 50.0], dtype='pint[Mt CO2]') + pd.testing.assert_series_equal( + self.excel_provider._get_cumulative_emission(projected_emission_intensity=projected_emission, + projected_production=projected_production), expected_data) + + def test_get_company_data(self): + # "US0079031078" and "US00724F1012" are both Electricity Utilities + company_1 = self.excel_provider.get_preprocessed_company_data(self.company_ids)[0] + company_2 = self.excel_provider.get_preprocessed_company_data(self.company_ids)[1] + self.assertEqual(company_1.company_name, "Company AG") + self.assertEqual(company_2.company_name, "Company AH") + self.assertEqual(company_1.company_id, "US0079031078") + self.assertEqual(company_2.company_id, "US00724F1012") + self.assertAlmostEqual(company_1.ghg_s1s2, Q_(104827858.636039, ureg('GJ'))) + self.assertAlmostEqual(company_2.ghg_s1s2, Q_(598937001.892059, ureg('GJ'))) + self.assertAlmostEqual(company_1.cumulative_budget, Q_(1362284467.0830, ureg('t CO2')), places=4) + self.assertAlmostEqual(company_2.cumulative_budget, Q_(2262242040.68059, ureg('t CO2')), places=4) + self.assertAlmostEqual(company_1.cumulative_target, Q_(3769096510.09909, ureg('t CO2')), places=4) + self.assertAlmostEqual(company_2.cumulative_target, Q_(5912426347.23670, ureg('t CO2')), places=4) + self.assertAlmostEqual(company_1.cumulative_trajectory, Q_(3745094638.52858, ureg('t CO2')), places=4) + self.assertAlmostEqual(company_2.cumulative_trajectory, Q_(8631481789.38558, ureg('t CO2')), places=4) + + def test_get_value(self): + expected_data = pd.Series([20248547997.0, + 276185899.0, + 10283015132.0], + index=pd.Index(self.company_ids, name='company_id'), + name='company_revenue') + pd.testing.assert_series_equal(self.excel_company_data.get_value(company_ids=self.company_ids, + variable_name=ColumnsConfig.COMPANY_REVENUE), + expected_data) + +if __name__ == "__main__": + test = TestTemplateProvider() + test.setUp() + test.test_temp_score_from_excel_data() + test.get_target_projections() From 80d3e5e42b3ada41de7e8c35a2c7d64772bc8ae2 Mon Sep 17 00:00:00 2001 From: David Kroon Date: Fri, 18 Feb 2022 17:16:58 +0100 Subject: [PATCH 075/345] WIP Edit project_targets to handle Pydantic data Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- ITR/data/target_utils.py | 44 ++++++++++++++++++++++------------------ ITR/data/template.py | 6 +++++- 2 files changed, 29 insertions(+), 21 deletions(-) diff --git a/ITR/data/target_utils.py b/ITR/data/target_utils.py index e4482690..7ea979ff 100644 --- a/ITR/data/target_utils.py +++ b/ITR/data/target_utils.py @@ -1,3 +1,5 @@ +from typing import List + import pandas as pd import numpy as np @@ -9,6 +11,8 @@ # In order to have valid data, the base year must be between the start and end years. #Step 0: Overall function +from ITR.interfaces import ICompanyEIProjectionsScopes, ICompanyEIProjections, ITargetData + def compute_CAGR(first, last, period): """Input: @@ -24,9 +28,6 @@ def compute_CAGR(first, last, period): #Step 1: function for tagret trajectory -# data_target includes columns for: -# ISIN, Scope, Base year, Target year, Emissions_unit, Emissions, Percent_reduction, Type (intensity, absolute, other) - # data_emissions includes columns for: # ISIN, Date, Region, Scope 1, Scope 2 @@ -39,20 +40,19 @@ def compute_CAGR(first, last, period): # Returns a dataframe of a single ISIN, Region, Sector, Data for years 2020-2050: # Also Emission, Production, intensity, CAGR, CAGR_emission, CAGR_production # Also forecast_target, forecast_emission, forecast_production, forecast_intensity -def target_projection(isin, data_target, data_emissions, data_prod): +def project_targets(targets: List[ITargetData], isin=None, data_emissions=None, data_prod=None) -> ICompanyEIProjectionsScopes: """Input: @isin: isin of the company for which to compute the projection - @data_target: tagret database, as given @data_emission: database with emission with emissions, intensity, sector and region columns @data_prod: database with production evolution from benchmark If the company has no target or the target can't be processed, then the output the emission database, unprocessed """ - global data_benchmark - - #Get the target data - df_tar = data_target.loc[lambda row:(row["company_id"]==isin),:] - + # global data_benchmark + + # TODO: expand function to handle multiple targets + target = targets[0] + #Get the intensity data df_isin = data_emissions.loc[lambda row:row["company_id"]==isin,:] @@ -73,13 +73,13 @@ def target_projection(isin, data_target, data_emissions, data_prod): df_isin = df_isin.sort_values("year") #Solve for intensity and absolute - if df_tar["Type"].values[0]=="Intensity": + if target.target_type == "intensity": #Simple case: the target is in intensity - base_year = df_tar["Base year"].values[0] + base_year = target.base_year if (base_yearfirst_year): - target_year = df_tar["Target year"].values[0] + target_year = target.end_year #Correction here for percentage - target_value = df_isin.loc[lambda row:row["year"]==base_year,"intensity"].values[0]*(1-df_tar["Percent_reduction"].values[0]/100) + target_value = df_isin.loc[lambda row:row["year"]==base_year,"intensity"].values[0] * (1 - target.target_reduction_pct / 100) df_isin.loc[lambda row:row["year"]==target_year,"intensity"] = target_value value_last_year_emission = df_isin.loc[lambda row:row["year"]==last_year,"Emission"].values[0] CAGR = compute_CAGR(value_last_year,target_value,(target_year - last_year)) @@ -99,16 +99,16 @@ def target_projection(isin, data_target, data_emissions, data_prod): else:#test is we have base data in sample CAGR = np.nan - elif df_tar["Type"].values[0]=="Absolute": + elif target.target_type == "absolute": #Complicated case, the target must be switched from absolute value to intensity. #We use the benchmark production data #Compute Emission CAGR - base_year = df_tar["Base year"].values[0] + base_year = target.base_year if (base_year Date: Sun, 20 Feb 2022 06:59:06 -0500 Subject: [PATCH 076/345] Expand test set data and address some conditions with NULL data The added sample data has some NULLs in the input that the tool should handle. Some fixes address these, but not all yet. Major fixups include preserving dtypes for columns as we winsorize data, and setting numeric_only to False in the quantile function so that we can deal with Pint quantities without triggering an error message for NA values. (Both in base_providers.py) Added some try wrappers in template.py to make it easier to debug when errors are thrown. Correct some uncaught errors in how null values are processed in interfaces.py Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- ITR/data/base_providers.py | 19 +++++++++++---- ITR/data/target_utils.py | 2 +- ITR/data/template.py | 19 ++++++++++----- ITR/interfaces.py | 10 ++++---- .../inputs/20220215 ITR Tool Sample Data.xlsx | Bin 57459 -> 63055 bytes test/test_template_provider.py | 22 ++++++++++++++---- 6 files changed, 53 insertions(+), 19 deletions(-) diff --git a/ITR/data/base_providers.py b/ITR/data/base_providers.py index 473c011a..682545d4 100644 --- a/ITR/data/base_providers.py +++ b/ITR/data/base_providers.py @@ -346,7 +346,7 @@ def project_intensities(self, companies: List[ICompanyData]) -> List[ICompanyDat projection_years = range(max(historic_years), ProjectionConfig.TARGET_YEAR) # historic_intensities.loc[historic_intensities.index.get_level_values('company_id')=='US6293775085'] - historic_intensities = historic_data[historic_years] + historic_intensities = historic_data[historic_years].query('variable=="Emission Intensities"') standardized_intensities = self._standardize(historic_intensities) intensity_trends = self._get_trends(standardized_intensities) extrapolated = self._extrapolate(intensity_trends, projection_years, historic_data) @@ -461,7 +461,7 @@ def _add_projections_to_companies(self, companies: List[ICompanyData], extrapola def _standardize(self, intensities: pd.DataFrame) -> pd.DataFrame: # When columns are years and rows are all different intensity types, we cannot winsorize # Transpose the dataframe, winsorize the columns (which are all coherent because they belong to a single variable/company), then transpose again - intensities = intensities.T + intensities = intensities.T#.loc[2016:2020] for col in intensities.columns: s = intensities[col] if s.notnull().any(): @@ -471,6 +471,14 @@ def _standardize(self, intensities: pd.DataFrame) -> pd.DataFrame: # Don't remember why this was needed, but theory is "no harm, no foul" pass winsorized_intensities: pd.DataFrame = self._winsorize(intensities) + for col in winsorized_intensities.columns: + s = winsorized_intensities[col] + if s.notnull().any(): + try: + winsorized_intensities[col] = s.astype(f"pint[{s.loc[s.first_valid_index()].u:~P}]") + except: + # Don't remember why this was needed, but theory is "no harm, no foul" + pass standardized_intensities: pd.DataFrame = self._interpolate(winsorized_intensities) with warnings.catch_warnings(): # Don't worry about warning that we are intentionally dropping units as we transpose @@ -480,10 +488,13 @@ def _standardize(self, intensities: pd.DataFrame) -> pd.DataFrame: def _winsorize(self, historic_intensities: pd.DataFrame) -> pd.DataFrame: with warnings.catch_warnings(): warnings.simplefilter("ignore") + # quantile doesn't handle pd.NA inside Quantity + historic_intensities = historic_intensities.applymap(lambda x: np.nan if pd.isnull(x.m) else x) # See https://github.com/hgrecco/pint-pandas/issues/114 winsorized: pd.DataFrame = historic_intensities.clip( - lower=historic_intensities.quantile(q=ProjectionConfig.LOWER_PERCENTILE, axis='index', numeric_only=True), - upper=historic_intensities.quantile(q=ProjectionConfig.UPPER_PERCENTILE, axis='index', numeric_only=True), + # Must set numeric_only to false to process Quantities + lower=historic_intensities.quantile(q=ProjectionConfig.LOWER_PERCENTILE, axis='index', numeric_only=False), + upper=historic_intensities.quantile(q=ProjectionConfig.UPPER_PERCENTILE, axis='index', numeric_only=False), axis='columns' ) return winsorized diff --git a/ITR/data/target_utils.py b/ITR/data/target_utils.py index 7ea979ff..f6629ab2 100644 --- a/ITR/data/target_utils.py +++ b/ITR/data/target_utils.py @@ -40,7 +40,7 @@ def compute_CAGR(first, last, period): # Returns a dataframe of a single ISIN, Region, Sector, Data for years 2020-2050: # Also Emission, Production, intensity, CAGR, CAGR_emission, CAGR_production # Also forecast_target, forecast_emission, forecast_production, forecast_intensity -def project_targets(targets: List[ITargetData], isin=None, data_emissions=None, data_prod=None) -> ICompanyEIProjectionsScopes: +def project_targets(targets: List[ITargetData], isin=None, data_emissions: pd.DataFrame=None, data_prod=None) -> ICompanyEIProjectionsScopes: """Input: @isin: isin of the company for which to compute the projection @data_emission: database with emission with emissions, intensity, sector and region columns diff --git a/ITR/data/template.py b/ITR/data/template.py index fd4c5113..4ed1f408 100644 --- a/ITR/data/template.py +++ b/ITR/data/template.py @@ -54,6 +54,7 @@ def _calculate_target_projections(self, if c.projected_targets is not None: continue else: + # targets: List[ITargetData], isin=None, data_emissions: pd.DataFrame=None, data_prod=None c.projected_targets = project_targets(c.target_data) print(c.target_data) exit() @@ -181,7 +182,7 @@ def _company_df_to_model(self, df_fundamentals: pd.DataFrame, else: company_data[ColumnsConfig.HISTORIC_DATA] = None - if df_target_data is not None: + if df_target_data is not None and company_id in df_target_data.index: company_data[ColumnsConfig.TARGET_DATA] = [td.dict() for td in self._convert_target_data( df_target_data.loc[[company_data[ColumnsConfig.COMPANY_ID]]].reset_index())] else: @@ -313,8 +314,11 @@ def _convert_to_historic_productions(self, productions: pd.DataFrame) \ if productions.empty: return None - production_realizations = \ - [IProductionRealization(year=year, value=productions[year].squeeze()) for year in self.historic_years] + try: + production_realizations = \ + [IProductionRealization(year=year, value=productions[year].squeeze()) for year in self.historic_years] + except TypeError as e: + print(e) return production_realizations def _convert_to_historic_emission_intensities(self, intensities: pd.DataFrame) \ @@ -331,7 +335,10 @@ def _convert_to_historic_emission_intensities(self, intensities: pd.DataFrame) \ for scope in EScope.get_scopes(): results = intensities.loc[intensities[ColumnsConfig.SCOPE] == scope] - intensity_scopes[scope] = [] \ - if results.empty \ - else [IEIRealization(year=year, value=results[year].squeeze()) for year in self.historic_years] + try: + intensity_scopes[scope] = [] \ + if results.empty \ + else [IEIRealization(year=year, value=results[year].squeeze()) for year in self.historic_years] + except TypeError as e: + print(e) return IHistoricEIScopes(**intensity_scopes) diff --git a/ITR/interfaces.py b/ITR/interfaces.py index 19f1b14d..49369037 100644 --- a/ITR/interfaces.py +++ b/ITR/interfaces.py @@ -254,9 +254,9 @@ class IProductionRealization(PintModel): value: Optional[Quantity[ProductionMetric]] def __init__(self, year, value=None): - super().__init__(year=year, value=Q_(value) if value else None) + super().__init__(year=year, value=value) if value is None: - self.value = np.nan + self.value = None class IEmissionRealization(PintModel): @@ -265,6 +265,8 @@ class IEmissionRealization(PintModel): def __init__(self, year, value): super().__init__(year=year, value=pint_ify(value, 't CO2')) + if value is None: + self.value = None class IHistoricEmissionsScopes(PintModel): @@ -280,9 +282,9 @@ class IEIRealization(PintModel): value: Optional[Quantity[EmissionIntensity]] def __init__(self, year, value): - super().__init__(year=year, value=Q_(value) if value else None) + super().__init__(year=year, value=value) if value is None: - self.value = np.nan + self.value = None class IHistoricEIScopes(PintModel): diff --git a/test/inputs/20220215 ITR Tool Sample Data.xlsx b/test/inputs/20220215 ITR Tool Sample Data.xlsx index 3cce2deb2680952b1ff9eaf62b4568ac17dad3de..8504e2b6af3e2fce46e93d73e761405ffe0cb237 100644 GIT binary patch delta 23007 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 delta 17007 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 q2*Af{G+-WRqC(TZk|kvO None: # columns=[ColumnsConfig.BASE_EI, ColumnsConfig.GHG_SCOPE12, ColumnsConfig.PRODUCTION_METRIC, ColumnsConfig.SECTOR, ColumnsConfig.REGION]) def test_target_projections(self): - comids = ['US00130H1059', 'US0185223007', 'US0188021085', 'US0236081024', 'US0255371017', 'US05351W1036', 'US0921131092'] + comids = ['US00130H1059', 'US0185223007', + # 'US0138721065', 'US0158577090', + 'US0188021085', + 'US0236081024', 'US0255371017', + # 'US0298991011', + 'US05351W1036', + # 'US05379B1070', + 'US0921131092', + # 'CA1125851040', + 'US1442851036', 'US1258961002', 'US2017231034', + 'US18551QAA58', 'US2091151041', 'US2333311072', 'US25746U1097', 'US26441C2044', + 'US29364G1031', 'US30034W1062', + ] for id in comids: print(target_projection(isin, data_target, data_emissions, data_prod)) @@ -54,9 +66,11 @@ def test_temp_score_from_excel_data(self): 'US05351W1036', # 'US05379B1070', 'US0921131092', - # 'CA1125851040', 'US1442851036', 'US1258961002', 'US2017231034', - # 'US18551QAA58', 'US2091151041', 'US2333311072', 'US25746U1097', 'US26441C2044', - # 'US29364G1031', 'US30034W1062', 'US30040W1080', 'US30161N1019', 'US3379321074', + # 'CA1125851040', + 'US1442851036', 'US1258961002', 'US2017231034', + 'US18551QAA58', 'US2091151041', 'US2333311072', 'US25746U1097', 'US26441C2044', + 'US29364G1031', 'US30034W1062', + # 'US30040W1080', 'US30161N1019', 'US3379321074', # 'CA3495531079', 'US3737371050', 'US4198701009', 'US5526901096', 'US6703461052', # 'US6362744095', 'US6680743050', 'US6708371033', 'US6896481032', 'US69331C1080', # 'US69349H1077', 'KR7005490008', 'US69351T1060', 'US7234841010', 'US7365088472', From ad77ed41b686ad418361da624b34a7bdb141a07c Mon Sep 17 00:00:00 2001 From: David Kroon Date: Sun, 20 Feb 2022 14:41:33 +0100 Subject: [PATCH 077/345] Add target projection based on emission intensity targets Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- ITR/data/target_utils.py | 219 +++++++++++++++++++-------------------- ITR/data/template.py | 2 +- 2 files changed, 109 insertions(+), 112 deletions(-) diff --git a/ITR/data/target_utils.py b/ITR/data/target_utils.py index f6629ab2..09eba90c 100644 --- a/ITR/data/target_utils.py +++ b/ITR/data/target_utils.py @@ -2,6 +2,7 @@ import pandas as pd import numpy as np +import math # Timeline definition: @@ -10,8 +11,11 @@ # In order to have valid data, the base year must be between the start and end years. -#Step 0: Overall function -from ITR.interfaces import ICompanyEIProjectionsScopes, ICompanyEIProjections, ITargetData +# Step 0: Overall function +from pandas._libs.missing import NAType + +from ITR.interfaces import ICompanyEIProjectionsScopes, ICompanyEIProjections, ITargetData, IHistoricData, \ + ICompanyEIProjection, pint_ify def compute_CAGR(first, last, period): @@ -19,14 +23,19 @@ def compute_CAGR(first, last, period): @first: first value @last: last value @period: number of periods in the CAGR""" - + if period == 0: res = 1 else: - res = (last/first)**(1/period)-1 + # TODO: Replace ugly fix => pint unit error in below expression + # CAGR doesn't work well with 100% reduction, so set it to small + if last == 0: + last = 0.000001 + res = (last / first).magnitude ** (1 / period) - 1 return res -#Step 1: function for tagret trajectory + +# Step 1: function for tagret trajectory # data_emissions includes columns for: # ISIN, Date, Region, Scope 1, Scope 2 @@ -40,7 +49,8 @@ def compute_CAGR(first, last, period): # Returns a dataframe of a single ISIN, Region, Sector, Data for years 2020-2050: # Also Emission, Production, intensity, CAGR, CAGR_emission, CAGR_production # Also forecast_target, forecast_emission, forecast_production, forecast_intensity -def project_targets(targets: List[ITargetData], isin=None, data_emissions: pd.DataFrame=None, data_prod=None) -> ICompanyEIProjectionsScopes: +def project_targets(targets: List[ITargetData], historic_data: IHistoricData, isin=None, + data_emissions: pd.DataFrame = None, data_prod=None) -> ICompanyEIProjectionsScopes: """Input: @isin: isin of the company for which to compute the projection @data_emission: database with emission with emissions, intensity, sector and region columns @@ -50,127 +60,114 @@ def project_targets(targets: List[ITargetData], isin=None, data_emissions: pd.Da """ # global data_benchmark - # TODO: expand function to handle multiple targets + # TODO: expand function to handle multiple targets / loop over scopes target = targets[0] + scope = target.target_scope - #Get the intensity data - df_isin = data_emissions.loc[lambda row:row["company_id"]==isin,:] + # Get the intensity data + intensity_data = historic_data.emission_intensities.__getattribute__(scope.name) - # Get first and last year - first_year = df_isin.loc[lambda row:row["intensity"].notnull(),"year"].min() - last_year = df_isin.loc[lambda row:row["intensity"].notnull(),"year"].max() - value_first_year = df_isin.loc[lambda row:row["year"]==first_year,"intensity"].values[0] - value_last_year = df_isin.loc[lambda row:row["year"]==last_year,"intensity"].values[0] - - #Add the years until 2050 - temp = pd.DataFrame(range(2020, 2051), columns=['year']) - df_isin = pd.merge(df_isin, - temp, - how='outer', - on='year') - - df_isin.loc[:, ['company_id','Region','Sector']] = df_isin.loc[:,['company_id','Region','Sector']].fillna(method='ffill') - df_isin = df_isin.sort_values("year") + # Get first year data and last year data with non-null values + first_year, value_first_year = intensity_data[0].year, intensity_data[0].value + last_year_data = next((i for i in reversed(intensity_data) if type(i.value.magnitude) != NAType), None) + last_year, value_last_year = last_year_data.year, last_year_data.value - #Solve for intensity and absolute + # Solve for intensity and absolute if target.target_type == "intensity": - #Simple case: the target is in intensity + # Simple case: the target is in intensity + base_year = target.base_year + if (base_year < last_year): # Removed condition base year > first_year. Do we care as long as base_year_qty is known? + target_year = target.end_year + # Attribute target_reduction_pct of ITargetData is currently a fraction, not a percentage. + target_value = pint_ify(target.target_base_qty * (1 - target.target_reduction_pct), target.target_base_unit) + CAGR = compute_CAGR(value_last_year, target_value, (target_year - last_year)) + + # projections = [] + # for y, year in enumerate(range(1 + last_year, 1 + target_year)): + # projection = ICompanyEIProjection(year=year, value=value_last_year * (1 + CAGR)**(y + 1)) + # projections.append(projection) + target_ei_projections = ICompanyEIProjections(projections= + [ICompanyEIProjection(year=year, value=value_last_year * (1 + CAGR) ** (y + 1)) + for y, year in enumerate(range(1 + last_year, 1 + target_year))] + ) + + else: # test is we have base data in sample + target_ei_projections = None + + elif target.target_type == "absolute": + # Complicated case, the target must be switched from absolute value to intensity. + # We use the benchmark production data + # Compute Emission CAGR base_year = target.base_year - if (base_yearfirst_year): + if (base_year < last_year) & (base_year < first_year): + target_year = target.end_year - #Correction here for percentage - target_value = df_isin.loc[lambda row:row["year"]==base_year,"intensity"].values[0] * (1 - target.target_reduction_pct / 100) - df_isin.loc[lambda row:row["year"]==target_year,"intensity"] = target_value - value_last_year_emission = df_isin.loc[lambda row:row["year"]==last_year,"Emission"].values[0] - CAGR = compute_CAGR(value_last_year,target_value,(target_year - last_year)) + # Correction here for percentage + target_value = df_isin.loc[lambda row: row["year"] == base_year, "Emission"].values[0] * ( + 1 - target.target_reduction_pct / 100) + df_isin.loc[lambda row: row["year"] == target_year, "Emission"] = target_value + df_isin["Production"] = df_isin["Emission"] / df_isin["intensity"] - #Add CAGR and forecast - df_isin['CAGR'] = 0 - df_isin['forecast_target'] = df_isin['intensity'] + # Correction here for geometric evolution for production + # Production is recalculated using intensity and emissions (maybe this should change accoridng to data QC) - #Input CAGR + # First step: we compute the evolution for emissions (ie: the aboslute value) + value_last_year_emission = df_isin.loc[lambda row: row["year"] == last_year, "Emission"].values[0] + CAGR_abs = compute_CAGR(value_last_year_emission, target_value, (target_year - last_year)) + + # Add CAGR and forecast + df_isin['CAGR_emission'] = 0 + df_isin['forecast_emission'] = df_isin['Emission'] + + # Input CAGR df_isin.loc[lambda row: row['year'].between(last_year + 1, - 2050), 'CAGR'] = CAGR + 2050), 'CAGR_emission'] = CAGR_abs # Cumulative prod - df_isin['CAGR'] = (1 + df_isin['CAGR']).cumprod() + df_isin['CAGR_emission'] = (1 + df_isin['CAGR_emission']).cumprod() # Compute forecast - df_isin.loc[lambda row: row['year'] > last_year, "forecast_target"] = \ - df_isin.loc[lambda row: row['year'] == last_year, 'forecast_target'].values[0] * df_isin['CAGR'] - else:#test is we have base data in sample - CAGR = np.nan - - elif target.target_type == "absolute": - #Complicated case, the target must be switched from absolute value to intensity. - #We use the benchmark production data - #Compute Emission CAGR - base_year = target.base_year - if (base_year last_year, "forecast_emission"] = \ - df_isin.loc[lambda row: row['year'] == last_year, 'forecast_emission'].values[0] * df_isin['CAGR_emission'] - - #Second step: we compute the evolution for production, based on the benchmark production evolution - - #Compute benchmark CAGR (mean yearly evolution) - sector=df_isin["Sector"].values[0] - region=df_isin["Region"].values[0] - data_benchmark = data_prod.loc[lambda row:(row["Sector"]==sector)&(row["Region"]==region),:] - CAGR_prod = data_benchmark.loc[lambda row:(row["Date"]<=target_year)&(row["Date"]>=last_year),"Production"].mean() - - #Add CAGR and forecast - df_isin['CAGR_production'] = 0 - df_isin['forecast_production'] = df_isin['Production'] - - #Input CAGR - df_isin.loc[lambda row: row['year'].between(last_year + 1, - 2050), 'CAGR_production'] = CAGR_prod - # Cumulative prod - df_isin['CAGR_production'] = (1 + df_isin['CAGR_production']).cumprod() - # Compute forecast - df_isin.loc[lambda row: row['year'] > last_year, "forecast_production"] = \ - df_isin.loc[lambda row: row['year'] == last_year, 'forecast_production'].values[0] * df_isin['CAGR_production'] - - - #Final step: we divid and get the intensity evolution - df_isin["forecast_intensity"] = df_isin["forecast_emission"] /df_isin["forecast_production"] - - - #Approximation: here we say that the intensity evolution is that of emissions minus production - #If absolute decreases by 5% per year and production grows by 5% a year, intensity must decrease by 10% a year + df_isin.loc[lambda row: row['year'] > last_year, "forecast_emission"] = \ + df_isin.loc[lambda row: row['year'] == last_year, 'forecast_emission'].values[0] * df_isin[ + 'CAGR_emission'] + + # Second step: we compute the evolution for production, based on the benchmark production evolution + + # Compute benchmark CAGR (mean yearly evolution) + sector = df_isin["Sector"].values[0] + region = df_isin["Region"].values[0] + data_benchmark = data_prod.loc[lambda row: (row["Sector"] == sector) & (row["Region"] == region), :] + CAGR_prod = data_benchmark.loc[ + lambda row: (row["Date"] <= target_year) & (row["Date"] >= last_year), "Production"].mean() + + # Add CAGR and forecast + df_isin['CAGR_production'] = 0 + df_isin['forecast_production'] = df_isin['Production'] + + # Input CAGR + df_isin.loc[lambda row: row['year'].between(last_year + 1, + 2050), 'CAGR_production'] = CAGR_prod + # Cumulative prod + df_isin['CAGR_production'] = (1 + df_isin['CAGR_production']).cumprod() + # Compute forecast + df_isin.loc[lambda row: row['year'] > last_year, "forecast_production"] = \ + df_isin.loc[lambda row: row['year'] == last_year, 'forecast_production'].values[0] * df_isin[ + 'CAGR_production'] + + # Final step: we divid and get the intensity evolution + df_isin["forecast_intensity"] = df_isin["forecast_emission"] / df_isin["forecast_production"] + + # Approximation: here we say that the intensity evolution is that of emissions minus production + # If absolute decreases by 5% per year and production grows by 5% a year, intensity must decrease by 10% a year else: - CAGR = np.nan - + CAGR = np.nan + else: - #No target - #Maybe modification needed here, depends on the output needed for the case where there is no target - CAGR=np.nan + # No target + # Maybe modification needed here, depends on the output needed for the case where there is no target + CAGR = np.nan return ICompanyEIProjectionsScopes( - S1S2=ICompanyEIProjections, + S1S2=target_ei_projections, S3=None, S1S2S3=None - ) \ No newline at end of file + ) diff --git a/ITR/data/template.py b/ITR/data/template.py index 4ed1f408..c523ff60 100644 --- a/ITR/data/template.py +++ b/ITR/data/template.py @@ -55,7 +55,7 @@ def _calculate_target_projections(self, continue else: # targets: List[ITargetData], isin=None, data_emissions: pd.DataFrame=None, data_prod=None - c.projected_targets = project_targets(c.target_data) + c.projected_targets = project_targets(c.target_data, c.historic_data) print(c.target_data) exit() From f467f19edb7d479e1dbb4e689f068d361bd0fb4c Mon Sep 17 00:00:00 2001 From: Michael Tiemann Date: Sun, 20 Feb 2022 10:23:05 -0500 Subject: [PATCH 078/345] Update 20220215 ITR Tool Sample Data.xlsx RMI data more consistent due to ALLETE corp hierarchy. Difficult to see comparable Y-on-Y data from EEI. Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- .../inputs/20220215 ITR Tool Sample Data.xlsx | Bin 63055 -> 62816 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/test/inputs/20220215 ITR Tool Sample Data.xlsx b/test/inputs/20220215 ITR Tool Sample Data.xlsx index 8504e2b6af3e2fce46e93d73e761405ffe0cb237..1980f31cde2f7216844bc2e07c06a458b6111975 100644 GIT binary patch delta 13269 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 delta 13638 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 From 8014930fbb91f824a32438971dd6fe75c8555fde Mon Sep 17 00:00:00 2001 From: Michael Tiemann Date: Sun, 20 Feb 2022 13:23:39 -0500 Subject: [PATCH 079/345] Update 20220215 ITR Tool Sample Data.xlsx Added targets and companies up to "First Energy Corp." Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- .../inputs/20220215 ITR Tool Sample Data.xlsx | Bin 62816 -> 65875 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/test/inputs/20220215 ITR Tool Sample Data.xlsx b/test/inputs/20220215 ITR Tool Sample Data.xlsx index 1980f31cde2f7216844bc2e07c06a458b6111975..6c4f0d9e4293926320af5c09f715f1c34e77119c 100644 GIT binary patch delta 24979 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 delta 21955 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 Date: Sun, 20 Feb 2022 20:33:07 +0100 Subject: [PATCH 080/345] Add handling of absolute type target Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- ITR/data/target_utils.py | 119 ++++++++++----------------------- ITR/data/template.py | 17 +++-- test/test_template_provider.py | 2 +- 3 files changed, 51 insertions(+), 87 deletions(-) diff --git a/ITR/data/target_utils.py b/ITR/data/target_utils.py index 09eba90c..cf966bb9 100644 --- a/ITR/data/target_utils.py +++ b/ITR/data/target_utils.py @@ -14,6 +14,7 @@ # Step 0: Overall function from pandas._libs.missing import NAType +from ITR.data.base_providers import BaseProviderProductionBenchmark from ITR.interfaces import ICompanyEIProjectionsScopes, ICompanyEIProjections, ITargetData, IHistoricData, \ ICompanyEIProjection, pint_ify @@ -49,8 +50,8 @@ def compute_CAGR(first, last, period): # Returns a dataframe of a single ISIN, Region, Sector, Data for years 2020-2050: # Also Emission, Production, intensity, CAGR, CAGR_emission, CAGR_production # Also forecast_target, forecast_emission, forecast_production, forecast_intensity -def project_targets(targets: List[ITargetData], historic_data: IHistoricData, isin=None, - data_emissions: pd.DataFrame = None, data_prod=None) -> ICompanyEIProjectionsScopes: +def project_targets(targets: List[ITargetData], historic_data: IHistoricData, production_bm: pd.DataFrame = None, + data_prod=None) -> ICompanyEIProjectionsScopes: """Input: @isin: isin of the company for which to compute the projection @data_emission: database with emission with emissions, intensity, sector and region columns @@ -64,107 +65,61 @@ def project_targets(targets: List[ITargetData], historic_data: IHistoricData, is target = targets[0] scope = target.target_scope - # Get the intensity data - intensity_data = historic_data.emission_intensities.__getattribute__(scope.name) - - # Get first year data and last year data with non-null values - first_year, value_first_year = intensity_data[0].year, intensity_data[0].value - last_year_data = next((i for i in reversed(intensity_data) if type(i.value.magnitude) != NAType), None) - last_year, value_last_year = last_year_data.year, last_year_data.value + base_year = target.base_year # Solve for intensity and absolute if target.target_type == "intensity": # Simple case: the target is in intensity - base_year = target.base_year - if (base_year < last_year): # Removed condition base year > first_year. Do we care as long as base_year_qty is known? + # Get the intensity data + intensity_data = historic_data.emission_intensities.__getattribute__(scope.name) + + # Get last year data with non-null value + last_year_data = next((i for i in reversed(intensity_data) if type(i.value.magnitude) != NAType), None) + last_year, value_last_year = last_year_data.year, last_year_data.value + + if last_year is None or base_year >= last_year: + target_ei_projections = None + else: # Removed condition base year > first_year. Do we care as long as base_year_qty is known? target_year = target.end_year # Attribute target_reduction_pct of ITargetData is currently a fraction, not a percentage. target_value = pint_ify(target.target_base_qty * (1 - target.target_reduction_pct), target.target_base_unit) CAGR = compute_CAGR(value_last_year, target_value, (target_year - last_year)) - - # projections = [] - # for y, year in enumerate(range(1 + last_year, 1 + target_year)): - # projection = ICompanyEIProjection(year=year, value=value_last_year * (1 + CAGR)**(y + 1)) - # projections.append(projection) target_ei_projections = ICompanyEIProjections(projections= [ICompanyEIProjection(year=year, value=value_last_year * (1 + CAGR) ** (y + 1)) for y, year in enumerate(range(1 + last_year, 1 + target_year))] ) - else: # test is we have base data in sample - target_ei_projections = None - elif target.target_type == "absolute": # Complicated case, the target must be switched from absolute value to intensity. # We use the benchmark production data # Compute Emission CAGR - base_year = target.base_year - if (base_year < last_year) & (base_year < first_year): + emission_data = historic_data.emissions.__getattribute__(scope.name) + # Get last year data with non-null value + last_year_data = next((e for e in reversed(emission_data) if type(e.value.magnitude) != NAType), None) + last_year, value_last_year = last_year_data.year, last_year_data.value + + if last_year is None or base_year >= last_year: + target_ei_projections = None + else: # Removed condition base year > first_year. Do we care as long as base_year_qty is known? target_year = target.end_year - # Correction here for percentage - target_value = df_isin.loc[lambda row: row["year"] == base_year, "Emission"].values[0] * ( - 1 - target.target_reduction_pct / 100) - df_isin.loc[lambda row: row["year"] == target_year, "Emission"] = target_value - df_isin["Production"] = df_isin["Emission"] / df_isin["intensity"] - - # Correction here for geometric evolution for production - # Production is recalculated using intensity and emissions (maybe this should change accoridng to data QC) - - # First step: we compute the evolution for emissions (ie: the aboslute value) - value_last_year_emission = df_isin.loc[lambda row: row["year"] == last_year, "Emission"].values[0] - CAGR_abs = compute_CAGR(value_last_year_emission, target_value, (target_year - last_year)) - - # Add CAGR and forecast - df_isin['CAGR_emission'] = 0 - df_isin['forecast_emission'] = df_isin['Emission'] - - # Input CAGR - df_isin.loc[lambda row: row['year'].between(last_year + 1, - 2050), 'CAGR_emission'] = CAGR_abs - # Cumulative prod - df_isin['CAGR_emission'] = (1 + df_isin['CAGR_emission']).cumprod() - # Compute forecast - df_isin.loc[lambda row: row['year'] > last_year, "forecast_emission"] = \ - df_isin.loc[lambda row: row['year'] == last_year, 'forecast_emission'].values[0] * df_isin[ - 'CAGR_emission'] - - # Second step: we compute the evolution for production, based on the benchmark production evolution - - # Compute benchmark CAGR (mean yearly evolution) - sector = df_isin["Sector"].values[0] - region = df_isin["Region"].values[0] - data_benchmark = data_prod.loc[lambda row: (row["Sector"] == sector) & (row["Region"] == region), :] - CAGR_prod = data_benchmark.loc[ - lambda row: (row["Date"] <= target_year) & (row["Date"] >= last_year), "Production"].mean() - - # Add CAGR and forecast - df_isin['CAGR_production'] = 0 - df_isin['forecast_production'] = df_isin['Production'] - - # Input CAGR - df_isin.loc[lambda row: row['year'].between(last_year + 1, - 2050), 'CAGR_production'] = CAGR_prod - # Cumulative prod - df_isin['CAGR_production'] = (1 + df_isin['CAGR_production']).cumprod() - # Compute forecast - df_isin.loc[lambda row: row['year'] > last_year, "forecast_production"] = \ - df_isin.loc[lambda row: row['year'] == last_year, 'forecast_production'].values[0] * df_isin[ - 'CAGR_production'] - - # Final step: we divid and get the intensity evolution - df_isin["forecast_intensity"] = df_isin["forecast_emission"] / df_isin["forecast_production"] - - # Approximation: here we say that the intensity evolution is that of emissions minus production - # If absolute decreases by 5% per year and production grows by 5% a year, intensity must decrease by 10% a year - - else: - CAGR = np.nan + # Attribute target_reduction_pct of ITargetData is currently a fraction, not a percentage. + target_value = pint_ify(target.target_base_qty * (1 - target.target_reduction_pct), target.target_base_unit) + CAGR = compute_CAGR(value_last_year, target_value, (target_year - last_year)) + emission_projections = [value_last_year * (1 + CAGR) ** (y + 1) + for y, year in enumerate(range(1 + last_year, 1 + target_year))] + emission_projections = pd.DataFrame([emission_projections], columns=range(last_year + 1, target_year + 1)) + production_projections = production_bm.loc[:, last_year + 1: target_year] + ei_projections = emission_projections / production_projections + + target_ei_projections = ICompanyEIProjections(projections= + [ICompanyEIProjection(year=year, value=ei_projections[year].values.quantity) + for year in range(last_year + 1, target_year + 1)] + ) else: - # No target - # Maybe modification needed here, depends on the output needed for the case where there is no target - CAGR = np.nan + # No target (type) specified + target_ei_projections = None return ICompanyEIProjectionsScopes( S1S2=target_ei_projections, diff --git a/ITR/data/template.py b/ITR/data/template.py index c523ff60..797aa3b9 100644 --- a/ITR/data/template.py +++ b/ITR/data/template.py @@ -42,8 +42,8 @@ def __init__(self, excel_path: str, super().__init__(self._companies, column_config, tempscore_config) def _calculate_target_projections(self, - Production_bm: Type[BaseProviderProductionBenchmark], - EI_bm: Type[BaseProviderIntensityBenchmark]): + production_bm: BaseProviderProductionBenchmark, + EI_bm: BaseProviderIntensityBenchmark): """ We cannot calculate target projections until after we have loaded benchmark data. @@ -54,8 +54,17 @@ def _calculate_target_projections(self, if c.projected_targets is not None: continue else: - # targets: List[ITargetData], isin=None, data_emissions: pd.DataFrame=None, data_prod=None - c.projected_targets = project_targets(c.target_data, c.historic_data) + base_year_production = next((p.value for p in c.historic_data.productions if p.year == self.temp_config.CONTROLS_CONFIG.base_year), None) + company_sector_region_info = pd.DataFrame({ + self.column_config.COMPANY_ID: c.company_id, + # self.column_config.GHG_SCOPE12 is incorrect in production_bm.get_company_projected_production. + # Should be production value at base_year as defined in temp_config.CONTROLS_CONFIG + self.column_config.GHG_SCOPE12: base_year_production.magnitude, + self.column_config.SECTOR: c.sector, + self.column_config.REGION: c.region + }, index=[0]) + bm_production_data = production_bm.get_company_projected_production(company_sector_region_info).astype(f'pint[{str(base_year_production.units)}]') + c.projected_targets = project_targets(c.target_data, c.historic_data, bm_production_data) print(c.target_data) exit() diff --git a/test/test_template_provider.py b/test/test_template_provider.py index b40d5507..ba5dabe7 100644 --- a/test/test_template_provider.py +++ b/test/test_template_provider.py @@ -28,7 +28,7 @@ def setUp(self) -> None: self.excel_EI_bm = ExcelProviderIntensityBenchmark(excel_path=self.sector_data_path, benchmark_temperature=Q_(1.5, ureg.delta_degC), benchmark_global_budget=Q_(396, ureg('Gt CO2')), is_AFOLU_included=False) self.template_company_data = TemplateProviderCompany(excel_path=self.company_data_path) - self.template_company_data._calculate_target_projections(Production_bm=self.excel_production_bm, EI_bm=self.excel_EI_bm) + self.template_company_data._calculate_target_projections(production_bm=self.excel_production_bm, EI_bm=self.excel_EI_bm) self.excel_provider = DataWarehouse(self.template_company_data, self.excel_production_bm, self.excel_EI_bm) self.company_ids = ["US00130H1059", "US26441C2044", "US6703461052", "KR7005490008"] # self.company_info_at_base_year = pd.DataFrame( From 89576346b2b840504b94b051fb3f2a025b61dde5 Mon Sep 17 00:00:00 2001 From: MichaelTiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> Date: Sun, 20 Feb 2022 14:49:37 -0500 Subject: [PATCH 081/345] Update 20220215 ITR Tool Sample Data.xlsx Added data for Fortis and Gerdau. Now halfway done with sample dataset. Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- .../inputs/20220215 ITR Tool Sample Data.xlsx | Bin 65875 -> 66592 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/test/inputs/20220215 ITR Tool Sample Data.xlsx b/test/inputs/20220215 ITR Tool Sample Data.xlsx index 6c4f0d9e4293926320af5c09f715f1c34e77119c..11c79e389816be5acc5651fe00cea912b0094e14 100644 GIT binary patch delta 16183 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 Date: Sun, 20 Feb 2022 14:54:27 -0500 Subject: [PATCH 082/345] Update test_template_provider.py Update to see new targets added (Eversource through Gerdau). Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- test/test_template_provider.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/test/test_template_provider.py b/test/test_template_provider.py index ba5dabe7..a498fcb7 100644 --- a/test/test_template_provider.py +++ b/test/test_template_provider.py @@ -70,8 +70,8 @@ def test_temp_score_from_excel_data(self): 'US1442851036', 'US1258961002', 'US2017231034', 'US18551QAA58', 'US2091151041', 'US2333311072', 'US25746U1097', 'US26441C2044', 'US29364G1031', 'US30034W1062', - # 'US30040W1080', 'US30161N1019', 'US3379321074', - # 'CA3495531079', 'US3737371050', 'US4198701009', 'US5526901096', 'US6703461052', + 'US30040W1080', 'US30161N1019', 'US3379321074', + 'CA3495531079', 'US3737371050', # 'US4198701009', 'US5526901096', 'US6703461052', # 'US6362744095', 'US6680743050', 'US6708371033', 'US6896481032', 'US69331C1080', # 'US69349H1077', 'KR7005490008', 'US69351T1060', 'US7234841010', 'US7365088472', # 'US7445731067', 'US8581191009', 'US8168511090', 'US8425871071', 'CA87807B1076', From 7f24449b488f932240965255be6f568ae230e6a4 Mon Sep 17 00:00:00 2001 From: MichaelTiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> Date: Sun, 20 Feb 2022 14:58:17 -0500 Subject: [PATCH 083/345] Update test_template_provider.py And update company_id information for the test_target_projections, too... Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- test/test_template_provider.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/test/test_template_provider.py b/test/test_template_provider.py index a498fcb7..08a6c46b 100644 --- a/test/test_template_provider.py +++ b/test/test_template_provider.py @@ -51,6 +51,8 @@ def test_target_projections(self): 'US1442851036', 'US1258961002', 'US2017231034', 'US18551QAA58', 'US2091151041', 'US2333311072', 'US25746U1097', 'US26441C2044', 'US29364G1031', 'US30034W1062', + 'US30040W1080', 'US30161N1019', 'US3379321074', + 'CA3495531079', 'US3737371050', ] for id in comids: From 49bcfc16d3aabd27bdcc730feda1d0ede0e6a23e Mon Sep 17 00:00:00 2001 From: MichaelTiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> Date: Sun, 20 Feb 2022 15:19:02 -0500 Subject: [PATCH 084/345] Update target_utils.py The exponential decay of CAGR is going to operate proportional to the orders of magnitude it has to close. If we set last to be too small, we force CAGR to spend a lot of its time chasing the asymptote. Choosing a value of first/201 means we stop when we get within less than 1/2 of a percent, which rounds down. That also works whether first is 1000000000 t CO2 or 1.0 Gt COt. Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- ITR/data/target_utils.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ITR/data/target_utils.py b/ITR/data/target_utils.py index cf966bb9..8288b2b9 100644 --- a/ITR/data/target_utils.py +++ b/ITR/data/target_utils.py @@ -31,7 +31,7 @@ def compute_CAGR(first, last, period): # TODO: Replace ugly fix => pint unit error in below expression # CAGR doesn't work well with 100% reduction, so set it to small if last == 0: - last = 0.000001 + last = first/201.0 res = (last / first).magnitude ** (1 / period) - 1 return res From 896ebc41ce334dcb4d930e761e4ce31783e8725c Mon Sep 17 00:00:00 2001 From: MichaelTiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> Date: Sun, 20 Feb 2022 17:06:08 -0500 Subject: [PATCH 085/345] This WIP checkin fixes a number of observed problems and target projections now seem to be coming back correctly. WIP check-in fixes initialization code that was using default, rather than user-provided emissions_units. Also changed interface of project_targets to work with pd>Series rather than 1-dimensional pd.DataFrames. Pint is so much happier working with either unitized pd.Series or unitized pd.DataFrame columns. It can work across columns, but to make element-by-element computations work, one must do un-Pandas-ish things. Also fixed a data entry error revealed when chasing unit initialization error. Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- ITR/data/target_utils.py | 14 ++++++++++---- ITR/data/template.py | 13 ++++++++++--- .../inputs/20220215 ITR Tool Sample Data.xlsx | Bin 66592 -> 66572 bytes 3 files changed, 20 insertions(+), 7 deletions(-) diff --git a/ITR/data/target_utils.py b/ITR/data/target_utils.py index 8288b2b9..57079d99 100644 --- a/ITR/data/target_utils.py +++ b/ITR/data/target_utils.py @@ -50,7 +50,12 @@ def compute_CAGR(first, last, period): # Returns a dataframe of a single ISIN, Region, Sector, Data for years 2020-2050: # Also Emission, Production, intensity, CAGR, CAGR_emission, CAGR_production # Also forecast_target, forecast_emission, forecast_production, forecast_intensity -def project_targets(targets: List[ITargetData], historic_data: IHistoricData, production_bm: pd.DataFrame = None, + +# Remember that pd.Series are always well-behaved with pint[] quantities. pd.DataFrame columns are well-behaved, +# but data across columns is not always well-behaved. We therefore make this function assume we are projecting targets +# for a specific company, in a specific sector. If we want to project targets for multiple sectors, we have to call it multiple times. +# This function doesn't need to know what sector it's computing for...only tha there is only one such, for however many scopes. +def project_targets(targets: List[ITargetData], historic_data: IHistoricData, production_bm: pd.Series = None, data_prod=None) -> ICompanyEIProjectionsScopes: """Input: @isin: isin of the company for which to compute the projection @@ -108,12 +113,13 @@ def project_targets(targets: List[ITargetData], historic_data: IHistoricData, pr CAGR = compute_CAGR(value_last_year, target_value, (target_year - last_year)) emission_projections = [value_last_year * (1 + CAGR) ** (y + 1) for y, year in enumerate(range(1 + last_year, 1 + target_year))] - emission_projections = pd.DataFrame([emission_projections], columns=range(last_year + 1, target_year + 1)) - production_projections = production_bm.loc[:, last_year + 1: target_year] + emission_projections = pd.Series(emission_projections, index=range(last_year + 1, target_year + 1), + dtype=f'pint[{target.target_base_unit}]') + production_projections = production_bm.loc[last_year + 1: target_year] ei_projections = emission_projections / production_projections target_ei_projections = ICompanyEIProjections(projections= - [ICompanyEIProjection(year=year, value=ei_projections[year].values.quantity) + [ICompanyEIProjection(year=year, value=ei_projections[year]) for year in range(last_year + 1, target_year + 1)] ) diff --git a/ITR/data/template.py b/ITR/data/template.py index 797aa3b9..081374ac 100644 --- a/ITR/data/template.py +++ b/ITR/data/template.py @@ -63,8 +63,14 @@ def _calculate_target_projections(self, self.column_config.SECTOR: c.sector, self.column_config.REGION: c.region }, index=[0]) - bm_production_data = production_bm.get_company_projected_production(company_sector_region_info).astype(f'pint[{str(base_year_production.units)}]') - c.projected_targets = project_targets(c.target_data, c.historic_data, bm_production_data) + bm_production_data = (production_bm.get_company_projected_production(company_sector_region_info) + # We transpose the data so that we get a pd.Series that will accept the pint units as a whole (not element-by-element) + .iloc[0].T + .astype(f'pint[{str(base_year_production.units)}]')) + try: + c.projected_targets = project_targets(c.target_data, c.historic_data, bm_production_data) + except TypeError as e: + print(e) print(c.target_data) exit() @@ -122,7 +128,8 @@ def _fixup_name(x): .apply(lambda x: x.map(lambda y: Q_(y, df_fundamentals.loc[df_fundamentals.company_id==x.name[0], 'production_metric'].squeeze())), axis=1), df3.xs(VariablesConfig.EMISSIONS,level=1,drop_level=False) - .applymap(lambda x: Q_(x, 't CO2'))]) + .apply(lambda x: x.map(lambda y: Q_(y, df_fundamentals.loc[df_fundamentals.company_id==x.name[0], + 'emissions_metric'].squeeze())), axis=1)]) df4 = df3.xs(VariablesConfig.EMISSIONS,level=1) / df3.xs((VariablesConfig.PRODUCTIONS,'production'),level=[1,2]) df4['variable'] = VariablesConfig.EMISSION_INTENSITIES df4 = df4.reset_index().set_index(['company_id', 'variable', 'scope']) diff --git a/test/inputs/20220215 ITR Tool Sample Data.xlsx b/test/inputs/20220215 ITR Tool Sample Data.xlsx index 11c79e389816be5acc5651fe00cea912b0094e14..303e79db16b72e57f38a11f2d6a0fb2491709f55 100644 GIT binary patch delta 19174 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 Date: Sun, 20 Feb 2022 22:23:36 +0100 Subject: [PATCH 086/345] Add target projections for supported scopes and multiple targets per scope Signed-off-by: David Kroon Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- ITR/data/target_utils.py | 93 ++++++++++++++++++++++++++++++++++++---- ITR/data/template.py | 1 - 2 files changed, 84 insertions(+), 10 deletions(-) diff --git a/ITR/data/target_utils.py b/ITR/data/target_utils.py index 57079d99..6cfe2da1 100644 --- a/ITR/data/target_utils.py +++ b/ITR/data/target_utils.py @@ -123,12 +123,87 @@ def project_targets(targets: List[ITargetData], historic_data: IHistoricData, pr for year in range(last_year + 1, target_year + 1)] ) - else: - # No target (type) specified - target_ei_projections = None - - return ICompanyEIProjectionsScopes( - S1S2=target_ei_projections, - S3=None, - S1S2S3=None - ) + ei_projection_scopes = {"S1S2": None, "S3": None, "S1S2S3": None} + for scope in ei_projection_scopes.keys(): + scope_targets = [target for target in targets if target.target_scope.name == scope] + scope_targets.sort(key=lambda target: (target.target_scope, target.end_year)) + while scope_targets: + target = scope_targets.pop(0) + base_year = target.base_year + + # Solve for intensity and absolute + if target.target_type == "intensity": + # Simple case: the target is in intensity + # Get the intensity data + intensity_data = historic_data.emission_intensities.__getattribute__(scope) + + # Get last year data with non-null value + if ei_projection_scopes[scope] is not None: + last_year_data = ei_projection_scopes[scope].projections[-1] + else: + last_year_data = next((i for i in reversed(intensity_data) if type(i.value.magnitude) != NAType), + None) + + if last_year_data is None or base_year >= last_year_data.year: + ei_projection_scopes[scope] = None + else: # Removed condition base year > first_year. Do we care as long as base_year_qty is known? + last_year, value_last_year = last_year_data.year, last_year_data.value + target_year = target.end_year + # Attribute target_reduction_pct of ITargetData is currently a fraction, not a percentage. + target_value = pint_ify(target.target_base_qty * (1 - target.target_reduction_pct), + target.target_base_unit) + CAGR = compute_CAGR(value_last_year, target_value, (target_year - last_year)) + if not scope_targets: # Check if there are no more targets for this scope + target_year = 2050 # Value should come from somewhere else + ei_projections = [ICompanyEIProjection(year=year, value=value_last_year * (1 + CAGR) ** (y + 1)) + for y, year in enumerate(range(1 + last_year, 1 + target_year))] + if ei_projection_scopes[scope] is not None: + ei_projection_scopes[scope].projections.extend(ei_projections) + else: + ei_projection_scopes[scope] = ICompanyEIProjections(projections=ei_projections) + + elif target.target_type == "absolute": + # Complicated case, the target must be switched from absolute value to intensity. + # We use the benchmark production data + # Compute Emission CAGR + emission_data = historic_data.emissions.__getattribute__(scope) + + # Get last year data with non-null value + if ei_projection_scopes[scope] is not None: + last_year = ei_projection_scopes[scope].projections[-1].year + last_year_data = next((e for e in emission_data if e.year == last_year), None) + else: + last_year_data = next((e for e in reversed(emission_data) if type(e.value.magnitude) != NAType), + None) + + if last_year_data is None or base_year >= last_year_data.year: + ei_projection_scopes[scope] = None + else: # Removed condition base year > first_year. Do we care as long as base_year_qty is known? + last_year, value_last_year = last_year_data.year, last_year_data.value + target_year = target.end_year + # Attribute target_reduction_pct of ITargetData is currently a fraction, not a percentage. + target_value = pint_ify(target.target_base_qty * (1 - target.target_reduction_pct), + target.target_base_unit) + CAGR = compute_CAGR(value_last_year, target_value, (target_year - last_year)) + + if not scope_targets: # Check if there are no more targets for this scope + target_year = 2050 # Value should come from somewhere else + emission_projections = [value_last_year * (1 + CAGR) ** (y + 1) + for y, year in enumerate(range(last_year + 1, target_year + 1))] + emission_projections = pd.DataFrame([emission_projections], + columns=range(last_year + 1, target_year + 1)) + production_projections = production_bm.loc[:, last_year + 1: target_year] + ei_projections = emission_projections / production_projections + + ei_projections = [ICompanyEIProjection(year=year, value=ei_projections[year].values.quantity) + for year in range(last_year + 1, target_year + 1)] + if ei_projection_scopes[scope] is not None: + ei_projection_scopes[scope].projections.extend(ei_projections) + else: + ei_projection_scopes[scope] = ICompanyEIProjections(projections=ei_projections) + + else: + # No target (type) specified + ei_projection_scopes[scope] = None + + return ICompanyEIProjectionsScopes(**ei_projection_scopes) diff --git a/ITR/data/template.py b/ITR/data/template.py index 081374ac..cadd05b2 100644 --- a/ITR/data/template.py +++ b/ITR/data/template.py @@ -72,7 +72,6 @@ def _calculate_target_projections(self, except TypeError as e: print(e) print(c.target_data) - exit() def _check_company_data(self, df: pd.DataFrame) -> None: """ From 0445ac2e5b5199fa0bd0ee58b970f9b8e46832fd Mon Sep 17 00:00:00 2001 From: MichaelTiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> Date: Sun, 20 Feb 2022 18:45:28 -0500 Subject: [PATCH 087/345] Resolve merge conflicts (looping over scopes vs. Pint pd.Series changes) Also, don't crash if data says the company hit a zero target early. Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- ITR/data/target_utils.py | 8 +++++++- ITR/data/template.py | 3 +++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/ITR/data/target_utils.py b/ITR/data/target_utils.py index 6cfe2da1..72609e87 100644 --- a/ITR/data/target_utils.py +++ b/ITR/data/target_utils.py @@ -31,8 +31,14 @@ def compute_CAGR(first, last, period): # TODO: Replace ugly fix => pint unit error in below expression # CAGR doesn't work well with 100% reduction, so set it to small if last == 0: + if first == 0: + # If we hit a zero target early, we keep it stead with CAGR of zero, avoiding divide-by-zero + return 0 last = first/201.0 - res = (last / first).magnitude ** (1 / period) - 1 + try: + res = (last / first).magnitude ** (1 / period) - 1 + except ZeroDivisionError as e: + print(e) return res diff --git a/ITR/data/template.py b/ITR/data/template.py index cadd05b2..0fcd58d4 100644 --- a/ITR/data/template.py +++ b/ITR/data/template.py @@ -53,6 +53,9 @@ def _calculate_target_projections(self, for c in self._companies: if c.projected_targets is not None: continue + elif c.target_data is None: + print(f"no target data for {c.company_name}") + continue else: base_year_production = next((p.value for p in c.historic_data.productions if p.year == self.temp_config.CONTROLS_CONFIG.base_year), None) company_sector_region_info = pd.DataFrame({ From 94fb47c93b2a417f9218f9c40693f84a8428d940 Mon Sep 17 00:00:00 2001 From: MichaelTiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> Date: Mon, 21 Feb 2022 06:07:49 -0500 Subject: [PATCH 088/345] Sort production_metric and emissions_metric so they work in template test case and do not break JSON-based test cases. Make production_metric Optional and add emission_metric (which is used in the new ITR data template). This un-breaks older test cases based on JSON data that does not have production_metric specified. It also relies on code to use sector (and ultimately region) to set production metric and emission_metric if not otherwise specified. There is still much work to do to make the test case work, but the infrastructure should now be there to do so. Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- ITR/data/base_providers.py | 8 ++++---- ITR/data/template.py | 7 ++++++- ITR/interfaces.py | 33 +++++++++++++++++++++++---------- test/test_template_provider.py | 2 +- 4 files changed, 34 insertions(+), 16 deletions(-) diff --git a/ITR/data/base_providers.py b/ITR/data/base_providers.py index 682545d4..a139412e 100644 --- a/ITR/data/base_providers.py +++ b/ITR/data/base_providers.py @@ -444,7 +444,7 @@ def _add_projections_to_companies(self, companies: List[ICompanyData], extrapola results = extrapolations.loc[(company.company_id, VariablesConfig.EMISSION_INTENSITIES, 'S1S2')] if company.production_metric: # These are already stored in the correct compact format - units = f"t CO2/{company.production_metric}" + units = f"{company.emissions_metric}/{company.production_metric}" elif company.sector=='Steel': units = "t CO2/Fe_ton" elif company.sector=='Electricity Utilities': @@ -452,11 +452,11 @@ def _add_projections_to_companies(self, companies: List[ICompanyData], extrapola try: projections = [IProjection(year=int(year), value=Q_(value, units)) for year, value in results.items() if year >= TemperatureScoreConfig.CONTROLS_CONFIG.base_year] + company.projected_intensities = ICompanyEIProjectionsScopes( + S1S2=ICompanyEIProjections(projections=projections) + ) except: pass - company.projected_intensities = ICompanyEIProjectionsScopes( - S1S2=ICompanyEIProjections(projections=projections) - ) def _standardize(self, intensities: pd.DataFrame) -> pd.DataFrame: # When columns are years and rows are all different intensity types, we cannot winsorize diff --git a/ITR/data/template.py b/ITR/data/template.py index 0fcd58d4..b778d514 100644 --- a/ITR/data/template.py +++ b/ITR/data/template.py @@ -205,7 +205,12 @@ def _company_df_to_model(self, df_fundamentals: pd.DataFrame, df_target_data.loc[[company_data[ColumnsConfig.COMPANY_ID]]].reset_index())] else: company_data[ColumnsConfig.TARGET_DATA] = None - + + if company_data[ColumnsConfig.PRODUCTION_METRIC]: + company_data[ColumnsConfig.PRODUCTION_METRIC] = { 'units': company_data[ColumnsConfig.PRODUCTION_METRIC]} + if company_data[ColumnsConfig.EMISSIONS_METRIC]: + company_data[ColumnsConfig.EMISSIONS_METRIC] = { 'units': company_data[ColumnsConfig.EMISSIONS_METRIC]} + model_companies.append(ICompanyData.parse_obj(company_data)) except ValidationError as e: logger.warning( diff --git a/ITR/interfaces.py b/ITR/interfaces.py index 49369037..6d0c3063 100644 --- a/ITR/interfaces.py +++ b/ITR/interfaces.py @@ -121,29 +121,34 @@ def UScopes_to_IScopes(uscopes): return iscopes class PowerGenerationWh(BaseModel): - units: Literal['MWh'] + units: Union[Literal['MWh'],Literal['GWh'],Literal['TWh']] class PowerGenerationJ(BaseModel): - units: Union[Literal['GJ'],Literal['gigajoule']] + units: Union[Literal['GJ'],Literal['gigajoule'],Literal['GP'],Literal['petajoule']] PowerGeneration = Annotated[Union[PowerGenerationWh, PowerGenerationJ], Field(discriminator='units')] class ManufactureSteel(BaseModel): - units: Literal['Fe_ton'] + units: Union[Literal['Fe_ton'],Literal['M Fe_ton']] Manufacturing = Annotated[Union[ManufactureSteel], Field(discriminator='units')] ProductionMetric = Annotated[Union[PowerGeneration, ManufactureSteel], Field(discriminator='units')] +class EmissionsCO2(BaseModel): + units: Union[Literal['t CO2'], Literal['kt CO2'], Literal['Mt CO2'], Literal['Gt CO2']] + +EmissionsMetric = Annotated[EmissionsCO2, Field(discriminator='units')] + class EmissionIntensity(BaseModel): - units: Union[Literal['t CO2/MWh'],Literal['t CO2/GJ'],Literal['t CO2/Fe_ton']] + units: Union[Literal['t CO2/MWh'],Literal['t CO2/GWh'],Literal['t CO2/TWh'],Literal['t CO2/GJ'],Literal['t CO2/PJ'],Literal['t CO2/Fe_ton']] class DimensionlessNumber(BaseModel): units: Literal['dimensionless'] -OSC_Metric = Annotated[Union[ProductionMetric,EmissionIntensity,DimensionlessNumber], Field(discriminator='units')] +OSC_Metric = Annotated[Union[ProductionMetric,EmissionsMetric,EmissionIntensity,DimensionlessNumber], Field(discriminator='units')] # U is Unquantified class UProjection(BaseModel): @@ -366,7 +371,8 @@ class ICompanyData(PintModel): historic_data: Optional[IHistoricData] country: Optional[str] - production_metric: str + emissions_metric: Optional[EmissionsMetric] # Typically use t CO2 for MWh/GJ and Mt CO2 for TWh/PJ + production_metric: Optional[ProductionMetric] # Optional because it can be inferred from sector and region # These two instance variables match against financial data below, but are incomplete as historic_data and target_data ghg_s1s2: Optional[Quantity[ProductionMetric]] # This seems to be the base year PRODUCTION number, nothing at all to do with any quantity of actual S1S2 emissions @@ -396,23 +402,30 @@ def _fixup_historic_productions(self, historic_productions, production_metric): return UProjections_to_IProjections(historic_productions,production_metric) def __init__(self, historic_data=None, projected_targets=None, projected_intensities=None, - production_metric=None, ghg_s1s2=None, ghg_s3=None, *args, **kwargs): + emissions_metric=None, production_metric=None, ghg_s1s2=None, ghg_s3=None, *args, **kwargs): super().__init__(historic_data=historic_data, projected_targets=projected_targets, projected_intensities=projected_intensities, + emissions_metric=emissions_metric, production_metric=production_metric, *args, **kwargs) # In-bound parameters are dicts, which are converted to models by __super__ and stored as instance variables if production_metric is None: if self.sector=='Electricity Utilities': - # units = 'MWh' if self.region=='North America' else 'GJ' - units = 'GJ' + units = 'MWh' if self.region=='North America' else 'GJ' elif self.sector=='Steel': units = 'Fe_ton' else: error ("no source of production metrics") self.production_metric = parse_obj_as(ProductionMetric,{'units':units}) - production_metric = {'units':units} + if emissions_metric is None: + self.emissions_metric = parse_obj_as(EmissionsMetric,{'units':'t CO2'}) + elif emissions_metric is None: + if self.production_metric.units in ['TWh', 'PJ']: + self.emissions_metric = parse_obj_as(EmissionsMetric,{'units':'Mt CO2'}) + else: + self.emissions_metric = parse_obj_as(EmissionsMetric,{'units':'t CO2'}) + # TODO: Should raise a warning here if ghg_s1s2: self.ghg_s1s2=pint_ify(ghg_s1s2, self.production_metric.units) if ghg_s3: diff --git a/test/test_template_provider.py b/test/test_template_provider.py index 08a6c46b..d9b0f419 100644 --- a/test/test_template_provider.py +++ b/test/test_template_provider.py @@ -30,7 +30,7 @@ def setUp(self) -> None: self.template_company_data = TemplateProviderCompany(excel_path=self.company_data_path) self.template_company_data._calculate_target_projections(production_bm=self.excel_production_bm, EI_bm=self.excel_EI_bm) self.excel_provider = DataWarehouse(self.template_company_data, self.excel_production_bm, self.excel_EI_bm) - self.company_ids = ["US00130H1059", "US26441C2044", "US6703461052", "KR7005490008"] + self.company_ids = ["US00130H1059", "US26441C2044", "KR7005490008"] # self.company_info_at_base_year = pd.DataFrame( # [[Q_(1.6982474347547, ureg('t CO2/GJ')), Q_(1.04827859e+08, 'MWh'), 'MWh', 'Electricity Utilities', 'North America'], # [Q_(0.476586931582279, ureg('t CO2/GJ')), Q_(5.98937002e+08, 'MWh'), 'MWh', 'Electricity Utilities', 'North America'], From 1eaeb4607fb2716fa27852b7787b9f6c4b24d717 Mon Sep 17 00:00:00 2001 From: MichaelTiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> Date: Mon, 21 Feb 2022 11:36:53 -0500 Subject: [PATCH 089/345] Handle columns that start with 1990s, not only 2000s data Also, update spreadsheet with new targets up through National Grid (which contains a 1990 baseline target). And update list of company ids to match. Please look carefully at _add_projections_to_companies, which was wrong and likely is wrong still. That needs to be fixed! Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- ITR/data/base_providers.py | 64 +++++++++++------- ITR/data/template.py | 4 +- .../inputs/20220215 ITR Tool Sample Data.xlsx | Bin 66572 -> 67698 bytes test/test_template_provider.py | 7 +- 4 files changed, 44 insertions(+), 31 deletions(-) diff --git a/ITR/data/base_providers.py b/ITR/data/base_providers.py index a139412e..22a96c86 100644 --- a/ITR/data/base_providers.py +++ b/ITR/data/base_providers.py @@ -441,22 +441,29 @@ def _compute_missing_historic_emission_intensities(self, companies, historic_dat def _add_projections_to_companies(self, companies: List[ICompanyData], extrapolations: pd.DataFrame): for company in companies: - results = extrapolations.loc[(company.company_id, VariablesConfig.EMISSION_INTENSITIES, 'S1S2')] - if company.production_metric: - # These are already stored in the correct compact format - units = f"{company.emissions_metric}/{company.production_metric}" - elif company.sector=='Steel': - units = "t CO2/Fe_ton" - elif company.sector=='Electricity Utilities': - units = "Mt CO2/GJ" - try: - projections = [IProjection(year=int(year), value=Q_(value, units)) for year, value in results.items() - if year >= TemperatureScoreConfig.CONTROLS_CONFIG.base_year] - company.projected_intensities = ICompanyEIProjectionsScopes( - S1S2=ICompanyEIProjections(projections=projections) - ) - except: - pass + for targets in company.target_data: + for scope in targets.target_scope: + results = extrapolations.loc[(company.company_id, VariablesConfig.EMISSION_INTENSITIES, scope)] + # Should we be doing this inference here, or should we use target_base_unit instead??? + # I don't know because I don't yet know the phasing relationship of extrapolations and targets and whether we should + # loop through targets generally or find the target that's right for the extrapolation. + if company.production_metric: + # These are already stored in the correct compact format + units = f"{company.emissions_metric}/{company.production_metric}" + elif company.sector=='Steel': + units = "t CO2/Fe_ton" + elif company.sector=='Electricity Utilities': + units = "Mt CO2/GJ" + try: + # Why would we use temp score base year when we have a target base year? + projections = [IProjection(year=int(year), value=Q_(value, units)) for year, value in results.items() + if year >= TemperatureScoreConfig.CONTROLS_CONFIG.base_year] + # Yikes! I don't know the pythonic way to pick the parameter we are passing to based on SCOPE + company.projected_intensities = ICompanyEIProjectionsScopes( + S1S2=ICompanyEIProjections(projections=projections) + ) + except: + pass def _standardize(self, intensities: pd.DataFrame) -> pd.DataFrame: # When columns are years and rows are all different intensity types, we cannot winsorize @@ -465,20 +472,25 @@ def _standardize(self, intensities: pd.DataFrame) -> pd.DataFrame: for col in intensities.columns: s = intensities[col] if s.notnull().any(): - try: - intensities[col] = s.astype(f"pint[{s.loc[s.first_valid_index()].u:~P}]") - except: - # Don't remember why this was needed, but theory is "no harm, no foul" - pass + with warnings.catch_warnings(): + warnings.simplefilter("ignore") + try: + intensities[col] = s.map(lambda x: Q_(np.nan, x.u) + if x.m is pd.NA else x).astype(f"pint[{s.loc[s.first_valid_index()].u:~P}]") + except TypeError as e: + print(e) winsorized_intensities: pd.DataFrame = self._winsorize(intensities) for col in winsorized_intensities.columns: s = winsorized_intensities[col] if s.notnull().any(): - try: - winsorized_intensities[col] = s.astype(f"pint[{s.loc[s.first_valid_index()].u:~P}]") - except: - # Don't remember why this was needed, but theory is "no harm, no foul" - pass + with warnings.catch_warnings(): + warnings.simplefilter("ignore") + try: + # Convert the NaNs created in winsorize function back into a Quantity. The [5:-1] strips the pint[] from the quantity type + winsorized_intensities[col] = s.map(lambda x: Q_(np.nan, str(intensities[col].dtype)[5:-1]) + if x is np.nan else x).astype(f"pint[{s.loc[s.first_valid_index()].u:~P}]") + except TypeError as e: + print(e) standardized_intensities: pd.DataFrame = self._interpolate(winsorized_intensities) with warnings.catch_warnings(): # Don't worry about warning that we are intentionally dropping units as we transpose diff --git a/ITR/data/template.py b/ITR/data/template.py index b778d514..30094a63 100644 --- a/ITR/data/template.py +++ b/ITR/data/template.py @@ -109,8 +109,8 @@ def _fixup_name(x): df_fundamentals.company_id = df_fundamentals.company_id.astype('object') company_ids = df_fundamentals[ColumnsConfig.COMPANY_ID].unique() - # The nightmare of naming columns 20xx_metric instead of metric_20xx... - historic_columns = [col for col in df_fundamentals.columns if col.startswith('20')] + # The nightmare of naming columns 20xx_metric instead of metric_20xx...and potentially dealing with data from 1990s... + historic_columns = [col for col in df_fundamentals.columns if col[:1].isdigit()] historic_scopes = ['S1', 'S2', 'S3', 'S1S2', 'S1S2S3', 'production'] df_historic = df_fundamentals[['company_id'] + historic_columns].dropna(axis=1,how='all') df_fundamentals = df_fundamentals[df_fundamentals.columns.difference(historic_columns, sort=False)] diff --git a/test/inputs/20220215 ITR Tool Sample Data.xlsx b/test/inputs/20220215 ITR Tool Sample Data.xlsx index 303e79db16b72e57f38a11f2d6a0fb2491709f55..8d60f78684d11e45ec0a364edcfdf701779623e9 100644 GIT binary patch delta 17746 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 delta 16608 zcmajG1yp4{(VEqFD>VSlIC=$SDz(L6dgarXV2ozZ5!>nrGbiglTK|@#S-i6qjB%}dAG{Fggd9SR=(PYxwWg$92=zA}G?#D_OaSaj5c4JtD7{<0 z(8GsyE1qth>rCFW!U!`J@4TQX|mxhotK+WBTJ>7lO7 zOA^W7;cRUhzOmeH40k+RHnaj5pZnpX@lLb5Fj$ZTIhrZI;(-0<|b@x>z(iNgrbd;+_^@p1)LPDC2s zAGn`F^(?d8q8{}fNAohkQ%uK3?jD^kwH*N`krT%dpu}ASNR0}=b-rP74ZxGUS)C-?bYPCd zVr6&FKG|H*3vJ1z+gyaetNrYNm}0xn&~QSx#&=H(mkHGdm9`zZ7xDm!Th-dA^EjPlnI9hDUY@H9dI=c#g26ouot0e5YV`%FtIw3(cEo4V!Q zO$8_&g;u$Zu37lh;-Tbk4nDI=-KD%g`jr5-e`jybKTV}(109zy)|@xBUpBMlxq}=C zZfO9&%1e7$_costtDfV^QiT9eWY=d0aGsiX22`y$l5MdP!j3R(P!QJhP-RSQDoLw! zi+WXwtNGLj#R~6Dlv(9@op#J#{cQH$&3?45!kr!1D+Bw#iigxcekASud{Q3y9W->^ z9~3-K-x9F~V{K~^Q8L^*IoUCbEDpI)N=IAx>V)|T3Iz1|`3*>3>KkZ72HYtO6tCaw z2@g9EkWE4iCLuu6c9j9cJE!pz@fp`a4j8F?2D)mFB~Pc>+?LF~#{${3nR3Sb(>o^% zMm~3p3fN`h`k61sG4uMKZ8{RY56oC3^sGAwR&jtPZ;(k?E~a4<2vcyEs27u3Jk&)v z_jL3~ZVzs6+CU_f#WxR;P(wmJT3TsqJKgh7F&7qb)m%3i>mX#o=N|I@$CirO}A~jokV2|F8b9?0cJ3?ItWYFJ4`GSR# z>Bh~eg$83d0(Ppai5CZ36CNL;+eS&WCP#V9d?HP+?Ce{E`n{LOTOKEi{W?=t_OI_z z=V_Up^2UJe?6GGxspc&QPEV%C03!jZ;{DwMRvE#&VK|7yB-BlfX37nb>cm43<&1H%D^lVA#z7;f7|D#BL`#x~3`FkTCV^8h zipkgQE@8mB$%>ESNX4#+JV0Pn-CX4>?DqaBM$P~%R!|+l3}r7qa362_4@qhv8otU4 zsw$%o+5AYVe3Mjk7h)m^y$}$>k$Mq4tR)qOAtN2X{Nq4+Uld=P?C>B7y+Jk#>AM3| z&L8Sq5v+=X`UeF%eCs8YL8ZjAp^7TM-7I{0gP-|+Xr!(4T6%Ou;nKI9Y(ngZX-n-~ zcugU|Jd#7%z1Wt|t+~g4z4i=3W*-{#Th;gYU1u@`w1Dm{x~+yu^n77OyizX4@gA-x zR)=yOMLYIu)tHQQC0lfdl6BZd8d|LAs#%65v*DkE7L6g1ZnQng#a-=sD$ouU?BB|T zDD@W2FsAcxvxb`Maz*=B{9emN``zHZrQv)4e?;}p_<1X58M1}g(H3?CypvvXWgr}| z3oEWXReF5=PSvW<&%A+_H<|lv78DbP#7b--vQgh4qzdxCEw&q#z)kbq0H}Sy^sGwc%yTT({UnTMOn0GMcADhW8f5*V`eq41x_P{7DJmU3xWamS%2VCQj? zU=4ksAf%A7;;_-Inc~Oe0~1iBX6Tn15n0#hx6*=)8XCJWXN=O}lh@-I>jnVOK&Tt3= zOg^j_Qn}f?{A{-#c&2YW`+r|myK+B56wHn|cedT4%aD5npnGvqUWM}@J}c9-#>qdA zpxFVnK&H)y{WcmzQB_IP1K7m}9aNpeBt{q=MZLV-zNlBG=Kup$u8*?)_^iU zWD>QhpQ+>&ZmJHLiv3>uO<{IVUYF~OF=)SrfxscnyM$pIcuCKGDv4XdSU`X7CHwHB z)oT!iXX10Y?0{k_<{K*$^reg$VL$i#dU9rT&9>mhA_lLKFg7sSG8lC@GORlm>@>91 z=_=~Vb#y(13LDR~F#w-DrrgLaTdG=<(s_kI2}VI+ZD_`sX4!>bTMS`aGRV3E2u8zd zQ5r~dPUQOn3*rKDW;d>z>Q%P?Dh7lk4(po2v^h9LulgMQVp)_ zCI({ZiEl@3OM53YpZq3RiR2sh_?@i#(=va5my2#R`=gnC7r;ZLv%o}7wXmbqgD_bN ztF^zny|_F76X@?W^Uq(R_L>7Rd;B}9*pEqA)8lqsva{%1VMUZ0+BlTO_ruht{?}S= z>}J=8$H!bClsNbJ_+W&|rJdfQSbm~7@m!y$_vIYGhvCOO{txeuofg2ymg}$gC(6&e zjmyv5c>v%u`t!Yu?rJzDXH0JEeea8~m-E^5c4Yf`Kac|6}rgj_S9c}F#B+{@^ROb4W!nw+#sLagw6)C0y;$+G! z8tN^S#;|^X!*>r2l|hfHV?QT$?OV~vl5=VX0F;d58yd2;lbTv?6sCQyGRdqDJC#vi z4C0_gJfMrhG85%+O0T3!7wts zq(C{U7*yar&iMMXM;j`mkyi0Q11~38ycspoFN9VsOE*IsvPc_iQoYX}oQ2kQ#Kmg| zv~uWFBo=y%(7>)}#VVtx4I)vCm&Z)(#-freN|@MB6c=i+3t%+LCg`vhph@90nRBzY z%i6C%$5$)iv z9PFhQZ*S%B0F!WSXYg_qn9HJz)RmY6WYNLu36$43zu-AuasYR5vZwj(!Jd}vf)~84 z#weq=-QvvRt3b4|*PAPUrfT9W@}i-Mg;|>0Iq+Wd+GSyrRwk(=$1fHfEd(4Ws5lp# zbl~0E6-(%%rhS%Ts@C4nTzW(_qc&ET3E5brCyB6W+Z;5ZSJqpVPvzrIG%ITZJ|hIE z92XVk@`}dt%2q4OHBl%kK4>_cw~SHkqvI1$yFB^QrX}n$l~Wy)GxKdzZ`?5|-=o z{h<4Fa{HLyySCw8v;DYJetWI~Yz_XV8PiF)r3HW zP5HcE2!pvuwK~2d7S*;m@3y2>C*3UZ;6+y^Wh(0XqI0G69yK*?RTAHjjamnjCj-QEd1zlTZZtiFq0aSz(apOK+xh8ob9ueehz zdF#s4bVnHk2*U6-UtkrCU&Kd$j+?GLS7DcYH>)6c0mk}}{^{M2yB*vaM>n3?K1wG0 zeIT&sEr&>7-knf?tHq{A7U1xPJqJt`@=Lfr7gVUe*(?(}M@xw_P)WOKmxG{2(k{?{ zs-NVH%PL#NSe7h&;mBRvB7l&hGgji~gEsH^C?C@AM(3FNVpdFwaFxdAM!Fk5uSQe{ zmAJj{+RnR>+DW;m>1DMa2?2Wyx*q%m76MMs{(JdR;Xf z>&(<3%DHdL>5<YqiU}mIRkdES>~y0j7vL9*yr2La|drsW{lK}(FyXFVdtlQ@dacb$-0}5 zyEY^LR-Lb>ZYUpzF>Tu}Xz*6P%OA^VuUQ?6anb%Wqpa`~RY^IQ`c|u=V8*vVHpAtZ z*}2+ti>C23Ddf4G;#TM9t%y^)jRvZF+RmSiME{uTLy>uEvjIRQj5l{jv`=2x`nqXl z98M)`oNBsjHVI3di^^sOrn!t!toV0zoT{+OKC`reCNdeLq$1Y1qxB_WL%e>_l#qiM zRi=P*MwZ5c4UGmXW0Ndhk=UVC^YkvZH7P9coVIMP)T%OcNivDaUb$>gZRSQ1m1g(l z@{89q&Yw}vkv)J|@LQLks8m}Cxq9*@3_3+bJTQ{8C@N{@EqSHd-y~Et485cr%OVul zFqrQf0&9WjnHx4T}SsyvMKb z%oy71h9oP`OcT@Jo>2jPhc3F)i=eu}e_mtxK(U|trzrp>$OkyaoLgR;7pH16SEz7n z&7)(*OH{V^E^%M4kpo!VlM`qh*lvyCw@NH_yA8{Z6=gP0g1x;u7IsV%!)db$7aFMU z=@L)6rzudk>Xh&1s!#43;3J6lJsbu0e#+VaQ=ki8I)6*C!Ej;H#sE~UrTLo(;-4}% z&kpbWzyfsX55P5Gt5S+&b2D4{qlzw>-WOJ`RXaq4R??BB=A1}u8i|~GHTG+CP-MV2 z0~vKlMTLBT~dMSGRj4p?G2qa&I}bF>U@ z*Jo5bl9`uXEzd;hFNCQ)PnQTv(l~mnBAmw>5(l{UKSIXTves~=9;%#s-H|BU+{qm_ zJ@9E@#=XuG%ywGX-*sA`ir!K!ryr_R(D2rHOr5(sPxMd2h-?Y5b#2nFKx**1Ex>-) zt%W}Rm>RPxF#}sy7fth&IDMJpj515+Q>&6t?G`Yg-bz5m{z!`@CL|Y}3Yroyzy(rF%dxhKkJFB2BPg`_*#@<=2_LNUcN#A@F98;^OIcOMr2PI`y z4;CEi-}Qy5h8X)U?d6&K|`IHP z$2bBHON<|!l^mstOhjHzPmEVdR+Y?l)TE4Zhjld8HRSWBacH92g4EFIkGNcRpt|9o z!J?6_SQ@b|F{53t0k@_%8-es*pOZ9kw6NSFF}K`G@ZXs+^$wvc>m^waL>Nl;yTn87pVhQ+nPYWXuNln7PXpYZi7zb8_-y>hTBajHoTgEp5?`mUZ_ zMq?*H4BKIj9KQ7?p0 z*B@cZeQhoA4-F4&6^849G>-IUq{Yn4Edjq%J?h!Sar(Cc4QW5nycD8B)mr#-E0LU#6Z zYVF2-vWAHon>p!Q{&cPfySHU^HWy3}TRi<{nq-3#Dd zZtjZ?Q4OtVQGDng0qG!hE^(E|-;xabZBf+?P`xQDTvW@}5 z^U;H|^U*38GTd60=`NM^ca3|TEhSluG5SfNQy?v-OXXVN)MkKnq%r*#H*{YO;_yx^ zD_w)-w3}5*)%iAG6zyG|TD@i$Rg$${D+%7CRFW?KyFw#Jjc;NIf$C*rdPyqfg#wO?1PMaZCCpB;f=I|mb^H!-N{emysemdv*hLd9^JrZBzP~}h@~QC z5pA(05~UeD8jHhxyVCDB5z2WB zM!mV;Bs!o~dI;g%^fTjaMndpv=JmPeWAY6@EJno-#_xPqPOH)XhBc54noWyMB#}Hn z)aHk+Ss%i!5DXyolgMNC^}fxldo9R*t(+mJjyo|>1@d5DmPupPyr;=y?qaH=C;mkO zZqJjO`rucVCe55YnM4Ie0}m5bRCz)?Q^dRmRV=`!qRf&`M~+n`v_uIWZq!omFbxk* zq92~!1r_$aexAp*y?6T@wdRjxg9k)|x`e(u%_b&XrLZxQ1IfPdNE#wey(2Ey3cs3Y zN7ocGT_K~Y8r*BqE_$f!K&hBhzAa7FAzr9%Bkk9O#^*y$tw_LwY|8iM4!19(Ppy27 zHx97Jv7W&k4h{nj-)OY;97yV~;_-4alC)~JcjgL$0fX?lquf@vnxw9q+Ljc+XtQWQ zUo;Lc)1*#9t;(bq4$KOa)?9_ScX_egZV9NOx=-Z3H>dHuwL4?ur4vQca`hvGz#>gslm8e;CX>6yi1#;19 z0_mR17wI-Mqh}7->$VKpLt|NHVik=xdkaHew*$N+e5 zo~`Z`v0_(4tai2yBJvN>&hZUNx%sKD46tOc`{spK$H$wNB})-)suIyGt0{*VoC^Z6MP-Re02{B%((!9rv%Ik zSUiTt{K3v$_Vl-?z}QvFvo#Q^f;?-UyOv()9^qXO z>4d!khh2NIn949yp7_MlLLIms?pFFtRw6RI^MiH-5*Cg0q;$wbv?=dPkGCVu{8&*67%M%j zc)uC!c&W3DSR7yvv^oDSYI=HbV`Sm6rIpw-Yt4a&hpuJ=JSm?y8VAwDLZSxDkf?DV zb8kahYAqOLz{FCg07bXMfL!5Py|Rt2hNsS1n<_hhgefblr$5>NQZKcs6*xcrT=MD_ zF2-Spa8nBgq`8ZTvARq_)7(LdVHnhN7f*+?Z%(9Cd6q9&$H`qM(XVP2{anJuT@kJq zAE1iZV{!m|aY^grEUbt@i~ds73b=}sO19Ror*c=^+HDT|p_~Jtz?wPKjMkcA2?N^> z`aQhO@>dd1OJ;oyw|wW^;8X^TrNWQOIV5P?D|p5q`s?+ZP;EstLYHo;<*tAAF7gm_ zoEq@kghIW7@AcBiC+sMm-5mKHAGV@=;o)5f*|JiK6H(lM0f;elcgbYDW_CTs92Odt zR>Is%q{9J16#<|P6o)P$sSe2(*<}#IPkXP(#}frz%P**j$0&@J6V+h~eM~NxZ@??5 zA2T>%Xt>a3mJY}|sH*l?p#)EF=Ren8#1>Z8q4=7MSOzcmwA>|eTj~F)xJDGU$S4hN zb7V(~>sHiw;)_k}R&2glH>m4ovKV|BE9W|;uKs!|0335av+shtu^cg%maq58vp74O zeV2bu+SPBV=|{ZP5}HBKo*Vgu`eIeb=Dt0||3t-zZtjLY=q{*%P0p*~pGIh_CJB6afHw}96-n3JaIVqQLtpoC`fDbBjfaE zRlzC%wAzL^NTRu@v_ggvpiTY-NHgg(S^-A`#*||RpI*tR7_&jOs3=lrmT$E88*} zMk8we?&RK>=IE(?pWR|c9>wmM?%6qcM#n(8DGTibGCD*&u_#aa{4 z2ga6IvpA}FV~!cf5}6;bf(D5JLf5N!EZIHZqgI z+5aoSb!9auot<_>XpZ5R*M}0gr!7d43hEPkK*SBb2y;}3qT?Cp!Tmjd>JpLKbU9wA zkUmF9gs{i2{lXWP==vQ7nm$)SyRaodMcoh3_ccQcKV~NC-1?0WtqA&dGB6bTs9O&G z1q(kd7JOva5?8JfT;>Fe{pFtKh1!VZmIXTwl~}IEW1ekXn?+;R%H)+tzruxDrpzO> zh{ak3YSn)5u*)0f@+pfIs_2DU@~*t#VXZeC7z5A^IO?nu!@tosL^_o3T>!}0@5PL4 zicZ>z4hx>!Ut|r358Tz=7+aA{=DQ3_kPTu-k@HHa{(@e zg}x6&=UYT4&DtygMo!S@=5w!C;NAxH=9E%)C`UbDs)!1KI(yE zh#IJ@d4=aA`OyoXv34jiz~ZeA%deoO@I60{b!N2}4a{HQ-9=MckPoF(>+ssGx1O+* z-PL||u7uPMDV}K3yQlX<9uZex5y&-C;ODTWtroY59@Y@z&3;oP10W5$E(wNC_)CUjJ{I?1IeLF z$gl<+f-^{~+k?a7M1aT~x=R`OCb_R!wTvuF8b=P2M6w~ak9f}WW* ze%6$P=xSD!d5nCVi}Wux@#_tR$cj{7mMBD?E7|#iN>Z!>fLc`$d{kag%UM-W)xI#0 z=MNky%OMkuI#O$*zG&Y)W_^iOH7&!64&+Teh%#BzMQ+Ng`D|5#!1quQo17p~tuHFxT}IB{3N?AV{-P|SV{e2&#rjGqqalqnb_+4$A#jq?qM9ZfuDU9aNHu?_Uy}Oc4IK6#6l}|Y`MZN z4A~a2GN5MV;2Wc7>xV#eT7yXy;VnOTwCKUVgJob?`$MDwwU7&756VCv zP3XQwr3B_HV$@(1?mTtOvp($BUaOTskT`Re=Vb_B=7ycmeJnZy#{gNOcF0W0U}JBKX&jLs<_H18aS%*LH;y{ zw}0Vg>`DjdOmc4*_`E@p#|g%<-=5kX&gGhckKg$l;A7b9nCsLUFt3d(-yyYiuMHpn&9vp737Y;-tlW`}{nB&h@X3J4 zQAH_%GLGq+3R*TqP7+S)76}yjpI~(P(phdLbvW`IXHwIMmBzy+I1#c<*to%;LPl=v z!fZMlGuwhv9$uaAgq&IWotHhI7k!xrfS}UYxK72<_wx&7hpi_h+fa-MI=hCp>!F|! z*YJm59r*`?rD7^9SRND}PeU=^A9LKENzu-Ss2No+QO*IbBI9cca^+^7I0Gr?p8+}c z9f~j8D^=TUfX?I(lgzfGHjRlAgZzNpCj8?V896#e% z94fRmWS3GqP}R}6D>L+*;UtR_U~|;2=yN7U@MT9B#T<&IHx`d9*e6biP!^6fq03$m ze9h8=m#HwhcMYZ52VZEcnEa7iw=gHH3>X_AbZ1{-Zg5xL+w|t`w>r5KsACKwK~i4 z={J#S!bdk_(H*ws`{)~m_;o!$^{UF61QLBIj0bk@syuOydtVBXMe<)%@ey*?n#P(w z2_#m#T2Kx^l#`Qh5Uk1w?qPRCWuH05!3w z>fh<~92)SyIy#yUCVgTv0qIxQj|@9|*gp*VVh+56e-4Sr#-_Yw<>L?KA4K^aBjlTn z5J^9Mxjyx3IKOVd>GCyCsPq!03o9Zyb@P{8HI*p1=~tBY508f>*)nyh#nSP zXUIo|l95wxthm%zvQx{?;xkGS?V<>_T-qx9iphp72Wrh^NRkWryM)2Pz&@AMMPG@ni|qy_DRH8s~g~Ds&$5SpC)4*so)T` zryCqM%QAK#b>l|tgMQR|?s8>(nDPBF90IWdB_3^SE!&6T-|T2`has^^hEXV_LU7L? z{+O9_P4VlShqG_ArZDf0)Y4BPOig)=o}3Y#UI5;V``bB&$#U@3^vw(t7-%(LDmLPX z4W%Z#VzsvLgRg5+YQ3;x4A3vmD;HpyThzzAbXRDMQ|M^XG(=QC2x~WW27LA@^hb`P zM9xyjogGlbx;$`79rP{1cIE93;S@yctJhAyM=fhJH2xCgy8$wVc7 zqVFCQ>I z@12N`&33cpK8C)SgczjWi##j}Ud`PXVgTq4i@7zx-Hc!9b59iIlQ`Iee^MJW<$3z< z`O2#*Cx9*> z|=2IOOP>@tTsu-!F6emN-^l9{zjZMlm?UK;7ocR zoRDU)3+y>2moP=rA2%)nzC9(qBBr7OpaD)K2QpBmqF_I1%m|4h=`>d)^CD^6z-)BG z%9FoR(wg+lMrXqFScR~In*p%r7^}>8L3t%WMIZ}Evts{_16Wa0z&CQRP|15mKIZkvC+h=e1G-YVI6G0;2}_CNRTvt~ zjrwNeGtqgxLLrbvOt`Mx)l5;E*hud1e~>q%M#5s531cZ)@r}mRqybdMW1SJ=)W+%U zOw>p3*Zo~2mutL2j=}%Q#>QCLjCFA!)VL)tc-6%AvVs5DMuhNx+JgV|uMF;^KIO^*@toaBQcBq53(Ab3NZ%JLU8zuSKaDGm-9=`m2`q~JXN z>th*S;WFvpLdx|ap?Uw&ru88dwR858ctrmo4FHmcg-7)5FHqqS;{MvfBUCZ1KBUwL z0ZHgTTXT9=7mkRF1%Iw+PuWp+;OkQ-4NI2zUlAq$h~SF)5;0$DRPuiiVO*l1SG1Ry zDLTLj_$OFcGeyDC5+wi1iBlb8amFfQ`r;XtCH~*t(9Lj%lB?{yitj`+_1BSzxjTeR zwW-R`GgpXVje@=^Cxnuq9NTk312dWb$pG;JqhC%yPDB28{}vFdE=|TGtTnAJO=V

s3sN!Igkr2qAy(gUK(|G|gK#b<7`YM>a)W8+-Kf(UL?2Upe{7Z@aB=XZ*cVp2c3uHx zE06vE*;8K_x+JevOjGRnFLkB=x7PpvjpHvv{*AS-E{DIugi@*hk$6rrZS(3~&pF?K z4seP2e=+p`J8q!=>e=`2xKTkWzqAI|dhz*BK5`0`XQKF<{fLwV|J?~-iWm*N3_0bD zkO-27+Z55$Dc<`0IGz6S$@uvvrop@i85m}2IymHCZlB2z?8deGWBULP!LP|t;Ik>(H>4ybuiOM?r}s2jDBrQH;2 z@N&q6%=tTt)!HiJq6RQy0L5i&*dZHHw`j@Wva>$I_&_BW+G94uHaZCssW9+&i+&iD zhVwmHuR0R$(x#>PcsFf6^QWsTY2BeR6iJeHIg!KUxv2`+jjO_`NEb>L;u~|#JKt8{ zT~(fg7rk*2S<#Y~Q!Vj&$vk3D9+HLMQcrGI_nQ8r?!_1JP}X0Y(^+T20U^~!)9aB- zabvHk5pD~1?qW=z0Y-bl6Dy=8ns{Qz(`HP+)D3KBVUi=e^8G$(-N3 z1VoL<8WCrHHSDX|CUB3)lsalQDw_7iIQ{s9x#faV(c#|{E4G@qso$_Fr457^My0lK zz7AWiV5NMFyXIGC-B1T#D9blMRIaJ5Z!WvgpN}8va8c*400awvxmB`nqom?A1X?M1 zcVgas+roZY!DdCkAGm;FCQCz0wNftRhx;WvG`WTpjrV)a`6rX7{+6v;B428DG-0F- zDuzx;O{pZZU4ML!MndFEZk`~*7H9xI8muMQ&>k9wVoLeAa*uI=zBlbEc8+iWI5wOm zF0Z-0(4D4nFF+|G8)w|Vaf8P17e+)-Q}ckOY4AgrzL{E{e%0(pM~8uE;Tf%!Mfw!j zwh5D-QpV%QY|p(_sthei&ch=rxfXZve>+4Osj=p;&IbFQ6q%E5(oU`T7=4~*;d*}W z0q9GRAfq?us>}HBp+q7H`X=9q&lTl_<_mCwMC4dFKW(Ac-HfKUrGISs0eE}dIogP7 zd%k*^9^b0D`21jbIQ)3H^}4TluJ2IZ@N(YTTCmn{Kmedr{mza|V%I-a+r3-*ZVM1;ux zbVrQT*SE{lwU|qUA3i<+dy@3jS^#tBK-Dmd%eA#ixy%r1;bZ*p0!i~Szm<>7j7@pwz`SqD^GY2-e-iP=zJS9>;JbNy@kMCCkJpQpDw`l{k4 zRQX7$<`IayLnC%qS+-x=u3~?BD0RD;LYtQ~uMAsR)fEL#XS9qcp#H z4<(B;55|c%FmvA2Y^wUFn*sJe9!}qFi(k7|S#v}mw;uL3-*4xiu3bKzWd&TjzA{so zqKywV!tDcrLu6zij#N$NK`J$e1`M+D;wkL8CC;V_C^JljoT zQ54Vfy%NIE!n;`>2-WOJWcch86ZHxqF_;T@R@Spa94^ADi5N4<3g9}Ihx^0F4|g!Z zD1^uOH=$g{8O5x)ivf#=r86n9Ulw5kkB#hHylHpjol`BTG~U4RAH5=6Wg+>F7`((1 z@=ZDHL<;xtf>r)+E@VP+xUHWkQ4{owPF=Q_gzh|{v}h6t4TXtpOvry`OB&qERZTCR z+qWTH;?1A$H{i%2sQ}x4{8kIhxMx~of+FD-j4rRCIC>RfGno>}{tf&InI&Bf+3msF z=U4^J&YG#8%q2f+x8o#a(+9KZgN_o$`jm76()ia-SZirV_ZyMtP?oBa{}AF9A1wE1 zA~X#7@n^Q^%m~JhrlZAirBeo>G9}Skk50t%#1bOUlHioZ{Qg3np*fcjP| zU=?I$lYW;(-cz8-BVjD3Bsdg@*X|BfeNLpaPUNJO52D5om~8yx70I9WAn;}Wb5ao>P74xB{4UK3>}8>S}r6)fEl*3Qfwxt3_`UdRedB9yf>Q8yuo4U|Sn zF~Nh5YtR*|`^_Q&P|Y}&&}YiQ&Q2Z0b;cH!CV@j$2^#`kZ#^m%+$m*IJBD<5hVTLg z5eJMx^;CcbG}>_-jtv8GtG_;vyPqC3mq66Q&1t6C97Iil1KAys;N>B+jcA9GOjJ%oO0 zfIn!scoJf){pj5GMuH~LI2Kd;wP;qxoYE%Az3o*h>f!QW+Tm-8fn|Ed1gEQ!eRWzP zV}Ahfj8CswkWDr}t%6K7+bMbI2$g-lOZ!&I$UBn7q*`SuM|ZG zNh$@c62@VNV9q$2L`#fk@TOlL7nT$eCR9`qwjvEBnI!VO5<#*?_^z=+bb$9=(sp&a z_h+^kna@Oj;5m(tsS_bH7-130Bx@?=fsrUcye`~GpZc0JM(jEhW$V_gSl;AEe1B?! zTfV2H?_{QO5gN{PK$X|C5xy&n(0nsEb}fuLWf2Y}W&S0s33PnQBqZgyvose^cn;)X zDwEq)enwvcx*(~xu9w%reej%UNhtQ%<4-N}vV91(eHz(-TG5<2p-Fe{m0mr}HpD`J zFi9X$m{-h{0W;UQgZ50Q2Sy%8RB6bcVtE8&<*=ehNZKPkYR{K=L5)?UYu?cypw1I@ zwcM}elI0PQ9h^x%MH=SrVTtN5ePtBLh=!@gH>`HixBMG^f=$-l8(yUH0e`B>n8`gyI0SU3gWX?soG9_}L$fVa-3@fXn zv_TG(^))#YDTkH2QWB3ER#OJbvDxkL#0B|W=?bLHPTe9$ng9<>!3T{5^==ECv!;e| zE7Mgl&4sFvfX_Zj2O2a@?jjZ2K+BCmHqCB}og3|~OWziq$>&CHw{wQ*)gO^@jZSxB zly5+CUjzYxsibAt8)DJiS~7f(Fl5c)Ed0TPxl(fZ{MkS}WrGCT0J{*`khDb(3>dfQ zXFw5t4EhL|-JB&RBY*pP1D|ZIiYVNU%#Sa zd%>?(v-qM2ZMBMl|TGpdxof^Q{1TE*jnHE6ufeIJD;B^ zdYnuo=n-ysWfX*JM^r$+&t7Rw67Y0o-qMP6BVz^3ELhwMLZ5gAg70h3j5rHbw(o1T zY5f~GaX?-WY=~Q03No$PyO>KaObXRRecRKkTHs7 zeGWt9H_f?@B~@$$D#O6K)Y?>82d+b>Df0Q{-sK3v^y)W8$1aR2__u zOC&H55NSfj3+C53{sMWF;GNgLH;CVlN(EVX6pVx@j{<9d_#G`S2hPkv@cbpyo*$D2 z#IGi0dc@Q#@6U@cSCa5yKRWROt9V26G- zqs@=TRM@8*{h4R`jVh~|SNg5aI{m%ibm`C1p@g^gh4n08^I22XeXcQOu|)HdI>YLu zs!1lh?ZeFJ=+GLN5wk=VH56eBeTok8+;*v%XnktS^T#L_lPB?{1dO6|xOi}(L^z2A zp}B;Hw#DKp2p1S*gjXz~c|4JXqFdN1DrctRmhf2sQT#uox%ftcN&1C$d^Y^-@O31z1|-ky1=zqokhH4%KIJdt=L1+jSKw@?D`d_rg< zLPoME0`LTjFNRP7EUbJ2@Mp8H@<@d%_xcR$qp^sFf26A;#r+JRz?7P#BakL|F3Lsq z5TOqc^cLI+TO_rLeGkWnf6I|#h+{f;z5t=H{()d~1D7EFw(?&$)JfkJL6YGT_~TF$ zqTf+*{>MF8AYdSjubWN(^XH2B57WXsJ;)#Ve~MTi^uT-xk{|rQT?r8%1pnS5toc9# zaW+ecHA73-_@Dy8b58({z)m3fWC0=cNZ|3nN@4v5jFW7 z$pHRhBaQnS*S|gB{I?s7|BE81i3tpeSSjQnz=$~i?UVX{;d1T%t7D28$XB1GV<~AM zz&}9Z##8ja0i&i|{w3~Cq!4`jB0etuB?^O}tfZ9ut<(Pgm+AeB6X$QrG5bP)4hRqs z(*LyOSBZ8lg$@*$7i3~1#Tpct2c%~^r2_P;`O99402nYy3L@B7AM5*nD@q_e2mcb= z{}OkPQcl6XT4102OOyfsBEFxb_<(;A+0OqZZvQ1>U8EpEd^N|qO8I~QMoaO6_%a&7 n&A*kAzZLSkzZC|Y{}H7SKtPE9pK;PXq)0*n6M-K;{w4oE8J(vw diff --git a/test/test_template_provider.py b/test/test_template_provider.py index d9b0f419..6d6b723e 100644 --- a/test/test_template_provider.py +++ b/test/test_template_provider.py @@ -52,7 +52,8 @@ def test_target_projections(self): 'US18551QAA58', 'US2091151041', 'US2333311072', 'US25746U1097', 'US26441C2044', 'US29364G1031', 'US30034W1062', 'US30040W1080', 'US30161N1019', 'US3379321074', - 'CA3495531079', 'US3737371050', + 'CA3495531079', 'US3737371050', 'US4198701009', 'US5526901096', 'US6703461052', + 'US6362744095', ] for id in comids: @@ -73,8 +74,8 @@ def test_temp_score_from_excel_data(self): 'US18551QAA58', 'US2091151041', 'US2333311072', 'US25746U1097', 'US26441C2044', 'US29364G1031', 'US30034W1062', 'US30040W1080', 'US30161N1019', 'US3379321074', - 'CA3495531079', 'US3737371050', # 'US4198701009', 'US5526901096', 'US6703461052', - # 'US6362744095', 'US6680743050', 'US6708371033', 'US6896481032', 'US69331C1080', + 'CA3495531079', 'US3737371050', 'US4198701009', 'US5526901096', 'US6703461052', + 'US6362744095', # 'US6680743050', 'US6708371033', 'US6896481032', 'US69331C1080', # 'US69349H1077', 'KR7005490008', 'US69351T1060', 'US7234841010', 'US7365088472', # 'US7445731067', 'US8581191009', 'US8168511090', 'US8425871071', 'CA87807B1076', # 'US88031M1099', 'US8873991033', 'US9129091081', 'US92531L2079', 'US92840M1027', From 39aaf4ded81f4aaa234bab3e73e76c6697c220ce Mon Sep 17 00:00:00 2001 From: MichaelTiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> Date: Mon, 21 Feb 2022 14:29:45 -0500 Subject: [PATCH 090/345] Update 20220215 ITR Tool Sample Data.xlsx Add more companies and targets, through POSCO. We now have 30 companies and ~ 40 targets (not including more than 20 netzero by 2050 targets). Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- .../inputs/20220215 ITR Tool Sample Data.xlsx | Bin 67698 -> 69670 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/test/inputs/20220215 ITR Tool Sample Data.xlsx b/test/inputs/20220215 ITR Tool Sample Data.xlsx index 8d60f78684d11e45ec0a364edcfdf701779623e9..d566ff9e7ca107d555c2447b4499cac83d0366a9 100644 GIT binary patch delta 24758 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 delta 22861 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 LL29#~C&d2))8HE8 From 9a0ed7e794e84cb0d3ebb990f0873719ce68fbf7 Mon Sep 17 00:00:00 2001 From: MichaelTiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> Date: Mon, 21 Feb 2022 21:36:17 -0500 Subject: [PATCH 091/345] Regularize emissions_intensity/EI naming and target/trajectory naming Confusing around target and trajectory naming has been identified as a problem, and now seems like as good a time as any to address. Changed all emission_XYZ to emissions_XYZ, kept all variables/constants named emissions_intensities, but changed all ABC_emissions_intensities_UVW to ABC_EI_UVW. Enhanced _add_projections_to_companies to work for multiple scopes. Enhanced _extrapolate to work with data that doesn't quite reach the end of historic data timeframe in all rows. Some of our data includes 2021, some does not. _extrapolate cleans up the ragged edge and then projects from a clean edge. Fixed some typos in Sample data spreadsheet. Next thing to fix is GHG_S1S2 variables, which are no longer filled in by the template. Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- ITR/configs.py | 6 +- ITR/data/base_providers.py | 98 +++++++++--------- ITR/data/excel.py | 16 +-- ITR/data/target_utils.py | 20 ++-- ITR/data/template.py | 18 ++-- ITR/interfaces.py | 14 +-- .../inputs/20220215 ITR Tool Sample Data.xlsx | Bin 69670 -> 69769 bytes test/test_template_provider.py | 10 +- 8 files changed, 94 insertions(+), 88 deletions(-) diff --git a/ITR/configs.py b/ITR/configs.py index 296bd95c..9843f932 100644 --- a/ITR/configs.py +++ b/ITR/configs.py @@ -65,12 +65,12 @@ class ColumnsConfig: TARGET_PROBABILITY = 'target_probability' BENCHMARK_TEMP = 'benchmark_temperature' BENCHMARK_GLOBAL_BUDGET = 'benchmark_global_budget' - BASE_EI = 'emission_intensity_at_base_year' + BASE_EI = 'ei_at_base_year' PROJECTED_EI = 'projected_intensities' PROJECTED_TARGETS = 'projected_targets' HISTORIC_PRODUCTIONS = 'historic_productions' HISTORIC_EMISSIONS = 'historic_emissions' - HISTORIC_EI = 'historic_emission_intensities' + HISTORIC_EI = 'historic_ei' TRAJECTORY_SCORE = 'trajectory_score' TRAJECTORY_OVERSHOOT = 'trajectory_overshoot_ratio' @@ -95,7 +95,7 @@ class SectorsConfig: class VariablesConfig: EMISSIONS = "Emissions" PRODUCTIONS = "Productions" - EMISSION_INTENSITIES = "Emission Intensities" + EMISSIONS_INTENSITIES = "Emissions Intensities" class TargetConfig: diff --git a/ITR/data/base_providers.py b/ITR/data/base_providers.py index 22a96c86..452d0e15 100644 --- a/ITR/data/base_providers.py +++ b/ITR/data/base_providers.py @@ -11,7 +11,7 @@ from ITR.data.data_providers import CompanyDataProvider, ProductionBenchmarkDataProvider, \ IntensityBenchmarkDataProvider -from ITR.interfaces import ICompanyData, EScope, IProductionBenchmarkScopes, IEmissionIntensityBenchmarkScopes, \ +from ITR.interfaces import ICompanyData, EScope, IProductionBenchmarkScopes, IEIBenchmarkScopes, \ IBenchmark, IProjection, ICompanyEIProjections, ICompanyEIProjectionsScopes, ICompanyProjection, IHistoricEIScopes, \ IHistoricEmissionsScopes, IProductionRealization @@ -44,7 +44,7 @@ def _validate_projected_trajectories(self, companies: List[ICompanyData]) -> Lis companies_without_projections = [c for c in companies if not c.projected_intensities] if companies_without_projections: companies_with_projections = [c for c in companies if c.projected_intensities] - return companies_with_projections + EmissionIntensityProjector().project_intensities(companies_without_projections) + return companies_with_projections + EI_TrajectoryProjector().project_ei_trajectories(companies_without_projections) else: return companies @@ -234,7 +234,7 @@ def get_benchmark_projections(self, company_sector_region_info: pd.DataFrame, class BaseProviderIntensityBenchmark(IntensityBenchmarkDataProvider): - def __init__(self, EI_benchmarks: IEmissionIntensityBenchmarkScopes, + def __init__(self, EI_benchmarks: IEIBenchmarkScopes, column_config: Type[ColumnsConfig] = ColumnsConfig, tempscore_config: Type[TemperatureScoreConfig] = TemperatureScoreConfig): super().__init__(EI_benchmarks.benchmark_temperature, EI_benchmarks.benchmark_global_budget, @@ -328,9 +328,9 @@ def _get_intensity_benchmarks(self, company_sector_region_info: pd.DataFrame, return benchmark_projection -class EmissionIntensityProjector(object): +class EI_TrajectoryProjector(object): """ - This class projects emission intensities on company level based on historic data on: + This class projects emissions intensities on company level based on historic data on: - A company's emission history (in t CO2) - A company's production history (units depend on industry, e.g. TWh for electricity) """ @@ -338,15 +338,15 @@ class EmissionIntensityProjector(object): def __init__(self): pass - def project_intensities(self, companies: List[ICompanyData]) -> List[ICompanyData]: + def project_ei_trajectories(self, companies: List[ICompanyData]) -> List[ICompanyData]: historic_data = self._extract_historic_data(companies) - self._compute_missing_historic_emission_intensities(companies, historic_data) + self._compute_missing_historic_ei(companies, historic_data) historic_years = [column for column in historic_data.columns if type(column) == int] projection_years = range(max(historic_years), ProjectionConfig.TARGET_YEAR) # historic_intensities.loc[historic_intensities.index.get_level_values('company_id')=='US6293775085'] - historic_intensities = historic_data[historic_years].query('variable=="Emission Intensities"') + historic_intensities = historic_data[historic_years].query('variable=="Emissions Intensities"') standardized_intensities = self._standardize(historic_intensities) intensity_trends = self._get_trends(standardized_intensities) extrapolated = self._extrapolate(intensity_trends, projection_years, historic_data) @@ -363,9 +363,9 @@ def _extract_historic_data(self, companies: List[ICompanyData]) -> pd.DataFrame: data.append(self._historic_productions_to_dict(company.company_id, company.historic_data.productions)) if company.historic_data.emissions: data.extend(self._historic_emissions_to_dicts(company.company_id, company.historic_data.emissions)) - if company.historic_data.emission_intensities: - data.extend(self._historic_emission_intensities_to_dicts(company.company_id, - company.historic_data.emission_intensities)) + if company.historic_data.emissions_intensities: + data.extend(self._historic_ei_to_dicts(company.company_id, + company.historic_data.emissions_intensities)) if not data: print("No historic data anywhere") print(companies) @@ -377,48 +377,48 @@ def _historic_productions_to_dict(self, id: str, productions: List[IProductionRe return {ColumnsConfig.COMPANY_ID: id, ColumnsConfig.VARIABLE: VariablesConfig.PRODUCTIONS, ColumnsConfig.SCOPE: 'Production', **prods} - def _historic_emissions_to_dicts(self, id: str, emission_scopes: IHistoricEmissionsScopes) -> List[Dict[str, str]]: + def _historic_emissions_to_dicts(self, id: str, emissions_scopes: IHistoricEmissionsScopes) -> List[Dict[str, str]]: data = [] - for scope, emissions in emission_scopes.dict().items(): + for scope, emissions in emissions_scopes.dict().items(): if emissions: ems = {em['year']: em['value'] for em in emissions} data.append({ColumnsConfig.COMPANY_ID: id, ColumnsConfig.VARIABLE: VariablesConfig.EMISSIONS, ColumnsConfig.SCOPE: scope, **ems}) return data - def _historic_emission_intensities_to_dicts(self, id: str, intensities_scopes: IHistoricEIScopes) \ + def _historic_ei_to_dicts(self, id: str, intensities_scopes: IHistoricEIScopes) \ -> List[Dict[str, str]]: data = [] for scope, intensities in intensities_scopes.dict().items(): if intensities: intsties = {intsty['year']: intsty['value'] for intsty in intensities} - data.append({ColumnsConfig.COMPANY_ID: id, ColumnsConfig.VARIABLE: VariablesConfig.EMISSION_INTENSITIES, + data.append({ColumnsConfig.COMPANY_ID: id, ColumnsConfig.VARIABLE: VariablesConfig.EMISSIONS_INTENSITIES, ColumnsConfig.SCOPE: scope, **intsties}) return data - def _compute_missing_historic_emission_intensities(self, companies, historic_data): + def _compute_missing_historic_ei(self, companies, historic_data): scopes = EScope.get_scopes() missing_data = [] for company in companies: # Create keys to index historic_data DataFrame for readability production_key = (company.company_id, VariablesConfig.PRODUCTIONS, 'Production') - emission_keys = {scope: (company.company_id, VariablesConfig.EMISSIONS, scope) for scope in scopes} - ei_keys = {scope: (company.company_id, VariablesConfig.EMISSION_INTENSITIES, scope) for scope in scopes} + emissions_keys = {scope: (company.company_id, VariablesConfig.EMISSIONS, scope) for scope in scopes} + ei_keys = {scope: (company.company_id, VariablesConfig.EMISSIONS_INTENSITIES, scope) for scope in scopes} this_missing_data = [] append_this_missing_data = True for scope in scopes: if ei_keys[scope] in historic_data.index: append_this_missing_data = False continue - # Emission intensities not yet computed for this scope + # Emissions intensities not yet computed for this scope if scope == 'S1S2': - try: # Try to add S1 and S2 emission intensities + try: # Try to add S1 and S2 emissions intensities historic_data.loc[ei_keys[scope]] = historic_data.loc[ei_keys['S1']] + \ historic_data.loc[ei_keys['S2']] append_this_missing_data = False - except KeyError: # Either S1 or S2 emission intensities not readily available + except KeyError: # Either S1 or S2 emissions intensities not readily available try: # Try to compute S1+S2 EIs from S1+S2 emissions and productions - historic_data.loc[ei_keys[scope]] = historic_data.loc[emission_keys[scope]] / \ + historic_data.loc[ei_keys[scope]] = historic_data.loc[emissions_keys[scope]] / \ historic_data.loc[production_key] append_this_missing_data = False except KeyError: @@ -429,41 +429,35 @@ def _compute_missing_historic_emission_intensities(self, companies, historic_dat pass else: # S1 and S2 cannot be computed from other EIs, so use emissions and productions try: - historic_data.loc[ei_keys[scope]] = historic_data.loc[emission_keys[scope]] / \ + historic_data.loc[ei_keys[scope]] = historic_data.loc[emissions_keys[scope]] / \ historic_data.loc[production_key] append_this_missing_data = False except KeyError: this_missing_data.append(f"{company.company_id} - {scope}") if this_missing_data and append_this_missing_data: missing_data.extend(this_missing_data) - assert not missing_data, f"Provide either historic emission intensity data, or historic emission and " \ + assert not missing_data, f"Provide either historic emissions intensity data, or historic emission and " \ f"production data for these company - scope combinations: {missing_data}" def _add_projections_to_companies(self, companies: List[ICompanyData], extrapolations: pd.DataFrame): for company in companies: - for targets in company.target_data: - for scope in targets.target_scope: - results = extrapolations.loc[(company.company_id, VariablesConfig.EMISSION_INTENSITIES, scope)] - # Should we be doing this inference here, or should we use target_base_unit instead??? - # I don't know because I don't yet know the phasing relationship of extrapolations and targets and whether we should - # loop through targets generally or find the target that's right for the extrapolation. - if company.production_metric: - # These are already stored in the correct compact format - units = f"{company.emissions_metric}/{company.production_metric}" - elif company.sector=='Steel': - units = "t CO2/Fe_ton" - elif company.sector=='Electricity Utilities': - units = "Mt CO2/GJ" - try: - # Why would we use temp score base year when we have a target base year? - projections = [IProjection(year=int(year), value=Q_(value, units)) for year, value in results.items() - if year >= TemperatureScoreConfig.CONTROLS_CONFIG.base_year] - # Yikes! I don't know the pythonic way to pick the parameter we are passing to based on SCOPE - company.projected_intensities = ICompanyEIProjectionsScopes( - S1S2=ICompanyEIProjections(projections=projections) - ) - except: - pass + scope_projections = {} + for scope in ICompanyEIProjectionsScopes.__fields__.keys(): + if not company.historic_data.emissions.__getattribute__(scope): + continue + results = extrapolations.loc[(company.company_id, VariablesConfig.EMISSIONS_INTENSITIES, scope)] + if company.emissions_metric and company.production_metric: + # These are already stored in the correct compact format + units = f"{company.emissions_metric.units}/{company.production_metric.units}" + elif company.sector=='Steel': + units = "t CO2/Fe_ton" + elif company.sector=='Electricity Utilities': + units = 't CO2/' + 'MWh' if company.region=='North America' else 'GJ' + projections = [IProjection(year=year, value=value) for year, value in results.items() + if year >= TemperatureScoreConfig.CONTROLS_CONFIG.base_year] + scope_projections[scope] = ICompanyEIProjections(projections=projections) + company.projected_intensities = ICompanyEIProjectionsScopes(**scope_projections) + def _standardize(self, intensities: pd.DataFrame) -> pd.DataFrame: # When columns are years and rows are all different intensity types, we cannot winsorize @@ -523,7 +517,7 @@ def _interpolate(self, historic_intensities: pd.DataFrame) -> pd.DataFrame: return interpolated def _get_trends(self, intensities: pd.DataFrame): - # Compute year-on-year growth ratios of emission intensities + # Compute year-on-year growth ratios of emissions intensities # Transpose so we can work with homogeneous units in columns. This means rows are years. # pd.Series(intensities.iloc[:,0].values.quantity.m).rolling(window=2, axis='index', closed='right').apply(func=self._year_on_year_ratio, raw=True) @@ -541,7 +535,13 @@ def _get_trends(self, intensities: pd.DataFrame): return trends.T def _extrapolate(self, trends: pd.DataFrame, projection_years: range, historic_data: pd.DataFrame) -> pd.DataFrame: - projected_intensities = historic_data.copy() + projected_intensities = historic_data.loc[historic_data.index.intersection(trends.index)].copy() + # We need to do a mini-extrapolation if we don't have complete historic data + for year in historic_data.columns.tolist()[1:-1]: + m = projected_intensities[year+1].apply(lambda x: x.m is pd.NA) + projected_intensities.loc[m,year+1] = projected_intensities.loc[m,year] * (1 + trends.loc[m]) + + # Now the big extrapolation for year in projection_years: projected_intensities[year + 1] = projected_intensities[year] * (1 + trends) return projected_intensities diff --git a/ITR/data/excel.py b/ITR/data/excel.py index 760a151c..5ae75687 100644 --- a/ITR/data/excel.py +++ b/ITR/data/excel.py @@ -16,7 +16,7 @@ from ITR.data.base_providers import BaseCompanyDataProvider, BaseProviderProductionBenchmark, \ BaseProviderIntensityBenchmark from ITR.configs import ColumnsConfig, TemperatureScoreConfig, SectorsConfig, VariablesConfig, TabsConfig -from ITR.interfaces import ICompanyData, ICompanyEIProjection, EScope, IEmissionIntensityBenchmarkScopes, \ +from ITR.interfaces import ICompanyData, ICompanyEIProjection, EScope, IEIBenchmarkScopes, \ IProductionBenchmarkScopes, IBenchmark, IBenchmarks, IHistoricEmissionsScopes, \ IProductionRealization, IHistoricEIScopes, IHistoricData, IEmissionRealization, IEIRealization, IProjection @@ -115,7 +115,7 @@ def __init__(self, excel_path: str, benchmark_temperature: Quantity['delta_degC' column_config.REGION, column_config.SECTOR) # TODO: Fix units for Steel super().__init__( - IEmissionIntensityBenchmarkScopes(benchmark_metric={'units':'t CO2/MWh'}, S1S2=EI_benchmarks, + IEIBenchmarkScopes(benchmark_metric={'units':'t CO2/MWh'}, S1S2=EI_benchmarks, benchmark_temperature=benchmark_temperature, benchmark_global_budget=benchmark_global_budget, is_AFOLU_included=is_AFOLU_included), column_config, @@ -312,11 +312,11 @@ def _convert_historic_data(self, historic: pd.DataFrame) -> IHistoricData: """ productions = historic.loc[historic[ColumnsConfig.VARIABLE] == VariablesConfig.PRODUCTIONS] emissions = historic.loc[historic[ColumnsConfig.VARIABLE] == VariablesConfig.EMISSIONS] - emission_intensities = historic.loc[historic[ColumnsConfig.VARIABLE] == VariablesConfig.EMISSION_INTENSITIES] + emissions_intensities = historic.loc[historic[ColumnsConfig.VARIABLE] == VariablesConfig.EMISSIONS_INTENSITIES] return IHistoricData( productions=self._convert_to_historic_productions(productions), emissions=self._convert_to_historic_emissions(emissions), - emission_intensities=self._convert_to_historic_emission_intensities(emission_intensities) + emissionss_intensities=self._convert_to_historic_ei(emissions_intensities) ) # Note that for the three following functions, we pd.Series.squeeze() the results because it's just one year / one company @@ -329,13 +329,13 @@ def _convert_to_historic_emissions(self, emissions: pd.DataFrame) -> Optional[IH if emissions.empty: return None - emission_scopes = {} + emissions_scopes = {} for scope in EScope.get_scopes(): results = emissions.loc[emissions[ColumnsConfig.SCOPE] == scope] - emission_scopes[scope] = [] \ + emissions_scopes[scope] = [] \ if results.empty \ else [IEmissionRealization(year=year, value=Q_(*results[year].squeeze().split(' ', 1))) for year in self.historic_years] - return IHistoricEmissionsScopes(**emission_scopes) + return IHistoricEmissionsScopes(**emissions_scopes) def _convert_to_historic_productions(self, productions: pd.DataFrame) \ -> Optional[List[IProductionRealization]]: @@ -350,7 +350,7 @@ def _convert_to_historic_productions(self, productions: pd.DataFrame) \ [IProductionRealization(year=year, value=Q_(*productions[year].squeeze().split(' ', 1))) for year in self.historic_years] return production_realizations - def _convert_to_historic_emission_intensities(self, intensities: pd.DataFrame) \ + def _convert_to_historic_ei(self, intensities: pd.DataFrame) \ -> Optional[IHistoricEIScopes]: """ :param historic: historic production, emission and emission intensity data for a company diff --git a/ITR/data/target_utils.py b/ITR/data/target_utils.py index 72609e87..ce87668d 100644 --- a/ITR/data/target_utils.py +++ b/ITR/data/target_utils.py @@ -31,14 +31,16 @@ def compute_CAGR(first, last, period): # TODO: Replace ugly fix => pint unit error in below expression # CAGR doesn't work well with 100% reduction, so set it to small if last == 0: - if first == 0: - # If we hit a zero target early, we keep it stead with CAGR of zero, avoiding divide-by-zero - return 0 last = first/201.0 try: res = (last / first).magnitude ** (1 / period) - 1 except ZeroDivisionError as e: - print(e) + if last > 0: + print("last > 0 and first==0 in CAGR...setting CAGR to 0.5") + res = 0.5 + else: + # It's all zero from here on out...clamp down on any emissions that poke up + res = 1 return res @@ -61,7 +63,7 @@ def compute_CAGR(first, last, period): # but data across columns is not always well-behaved. We therefore make this function assume we are projecting targets # for a specific company, in a specific sector. If we want to project targets for multiple sectors, we have to call it multiple times. # This function doesn't need to know what sector it's computing for...only tha there is only one such, for however many scopes. -def project_targets(targets: List[ITargetData], historic_data: IHistoricData, production_bm: pd.Series = None, +def project_ei_targets(targets: List[ITargetData], historic_data: IHistoricData, production_bm: pd.Series = None, data_prod=None) -> ICompanyEIProjectionsScopes: """Input: @isin: isin of the company for which to compute the projection @@ -141,7 +143,7 @@ def project_targets(targets: List[ITargetData], historic_data: IHistoricData, pr if target.target_type == "intensity": # Simple case: the target is in intensity # Get the intensity data - intensity_data = historic_data.emission_intensities.__getattribute__(scope) + intensity_data = historic_data.emissions_intensities.__getattribute__(scope) # Get last year data with non-null value if ei_projection_scopes[scope] is not None: @@ -172,14 +174,14 @@ def project_targets(targets: List[ITargetData], historic_data: IHistoricData, pr # Complicated case, the target must be switched from absolute value to intensity. # We use the benchmark production data # Compute Emission CAGR - emission_data = historic_data.emissions.__getattribute__(scope) + emissions_data = historic_data.emissions.__getattribute__(scope) # Get last year data with non-null value if ei_projection_scopes[scope] is not None: last_year = ei_projection_scopes[scope].projections[-1].year - last_year_data = next((e for e in emission_data if e.year == last_year), None) + last_year_data = next((e for e in emissions_data if e.year == last_year), None) else: - last_year_data = next((e for e in reversed(emission_data) if type(e.value.magnitude) != NAType), + last_year_data = next((e for e in reversed(emissions_data) if type(e.value.magnitude) != NAType), None) if last_year_data is None or base_year >= last_year_data.year: diff --git a/ITR/data/template.py b/ITR/data/template.py index 30094a63..59203c93 100644 --- a/ITR/data/template.py +++ b/ITR/data/template.py @@ -16,10 +16,10 @@ from ITR.data.base_providers import BaseCompanyDataProvider, BaseProviderProductionBenchmark, \ BaseProviderIntensityBenchmark from ITR.configs import ColumnsConfig, TemperatureScoreConfig, SectorsConfig, VariablesConfig, TabsConfig -from ITR.interfaces import ICompanyData, ICompanyEIProjection, EScope, IEmissionIntensityBenchmarkScopes, \ +from ITR.interfaces import ICompanyData, ICompanyEIProjection, EScope, IEIBenchmarkScopes, \ IProductionBenchmarkScopes, IBenchmark, IBenchmarks, IHistoricEmissionsScopes, \ IProductionRealization, IHistoricEIScopes, IHistoricData, ITargetData, IEmissionRealization, IEIRealization, IProjection -from ITR.data.target_utils import project_targets +from ITR.data.target_utils import project_ei_targets import logging import inspect @@ -133,7 +133,7 @@ def _fixup_name(x): .apply(lambda x: x.map(lambda y: Q_(y, df_fundamentals.loc[df_fundamentals.company_id==x.name[0], 'emissions_metric'].squeeze())), axis=1)]) df4 = df3.xs(VariablesConfig.EMISSIONS,level=1) / df3.xs((VariablesConfig.PRODUCTIONS,'production'),level=[1,2]) - df4['variable'] = VariablesConfig.EMISSION_INTENSITIES + df4['variable'] = VariablesConfig.EMISSIONS_INTENSITIES df4 = df4.reset_index().set_index(['company_id', 'variable', 'scope']) df5 = pd.concat([df3, df4]) df_historic_data = df5 @@ -304,10 +304,10 @@ def _convert_historic_data(self, historic: pd.DataFrame) -> IHistoricData: historic.set_index('variable', drop=False, inplace=True) productions = historic.loc[[VariablesConfig.PRODUCTIONS]] emissions = historic.loc[[VariablesConfig.EMISSIONS]] - emission_intensities = historic.loc[[VariablesConfig.EMISSION_INTENSITIES]] + emissions_intensities = historic.loc[[VariablesConfig.EMISSIONS_INTENSITIES]] hd = IHistoricData(productions=self._convert_to_historic_productions(productions), emissions=self._convert_to_historic_emissions(emissions), - emission_intensities=self._convert_to_historic_emission_intensities(emission_intensities)) + emissions_intensities=self._convert_to_historic_ei(emissions_intensities)) return hd # Note that for the three following functions, we pd.Series.squeeze() the results because it's just one year / one company @@ -320,13 +320,13 @@ def _convert_to_historic_emissions(self, emissions: pd.DataFrame) -> Optional[IH if emissions.empty: return None - emission_scopes = {} + emissions_scopes = {} for scope in EScope.get_scopes(): results = emissions.loc[emissions[ColumnsConfig.SCOPE] == scope] - emission_scopes[scope] = [] \ + emissions_scopes[scope] = [] \ if results.empty \ else [IEmissionRealization(year=year, value=results[year].squeeze()) for year in self.historic_years] - return IHistoricEmissionsScopes(**emission_scopes) + return IHistoricEmissionsScopes(**emissions_scopes) def _convert_to_historic_productions(self, productions: pd.DataFrame) \ -> Optional[List[IProductionRealization]]: @@ -344,7 +344,7 @@ def _convert_to_historic_productions(self, productions: pd.DataFrame) \ print(e) return production_realizations - def _convert_to_historic_emission_intensities(self, intensities: pd.DataFrame) \ + def _convert_to_historic_ei(self, intensities: pd.DataFrame) \ -> Optional[IHistoricEIScopes]: """ :param historic: historic production, emission and emission intensity data for a company diff --git a/ITR/interfaces.py b/ITR/interfaces.py index 6d0c3063..710921b3 100644 --- a/ITR/interfaces.py +++ b/ITR/interfaces.py @@ -128,7 +128,7 @@ class PowerGenerationJ(BaseModel): class ManufactureSteel(BaseModel): - units: Union[Literal['Fe_ton'],Literal['M Fe_ton']] + units: Union[Literal['Fe_ton'],Literal['kiloFe_ton'],Literal['megaFe_ton']] Manufacturing = Annotated[Union[ManufactureSteel], Field(discriminator='units')] @@ -140,7 +140,7 @@ class EmissionsCO2(BaseModel): EmissionsMetric = Annotated[EmissionsCO2, Field(discriminator='units')] -class EmissionIntensity(BaseModel): +class EmissionsIntensity(BaseModel): units: Union[Literal['t CO2/MWh'],Literal['t CO2/GWh'],Literal['t CO2/TWh'],Literal['t CO2/GJ'],Literal['t CO2/PJ'],Literal['t CO2/Fe_ton']] @@ -148,7 +148,7 @@ class DimensionlessNumber(BaseModel): units: Literal['dimensionless'] -OSC_Metric = Annotated[Union[ProductionMetric,EmissionsMetric,EmissionIntensity,DimensionlessNumber], Field(discriminator='units')] +OSC_Metric = Annotated[Union[ProductionMetric,EmissionsMetric,EmissionsIntensity,DimensionlessNumber], Field(discriminator='units')] # U is Unquantified class UProjection(BaseModel): @@ -199,7 +199,7 @@ class IProductionBenchmarkScopes(BaseModel): S1S2S3: Optional[IBenchmarks] -class IEmissionIntensityBenchmarkScopes(PintModel): +class IEIBenchmarkScopes(PintModel): S1S2: Optional[IBenchmarks] S3: Optional[IBenchmarks] S1S2S3: Optional[IBenchmarks] @@ -230,7 +230,7 @@ def __getitem__(self, item): class ICompanyEIProjection(PintModel): year: int - value: Optional[Quantity[EmissionIntensity]] + value: Optional[Quantity[EmissionsIntensity]] def __init__(self, year, value): super().__init__(year=year, value=pint_ify(value, 't CO2/MWh')) @@ -284,7 +284,7 @@ class IHistoricEmissionsScopes(PintModel): class IEIRealization(PintModel): year: int - value: Optional[Quantity[EmissionIntensity]] + value: Optional[Quantity[EmissionsIntensity]] def __init__(self, year, value): super().__init__(year=year, value=value) @@ -343,7 +343,7 @@ class ECarbonBudgetScenario(Enum): class IHistoricData(PintModel): productions: Optional[List[IProductionRealization]] emissions: Optional[IHistoricEmissionsScopes] - emission_intensities: Optional[IHistoricEIScopes] + emissions_intensities: Optional[IHistoricEIScopes] class ITargetData(PintModel): diff --git a/test/inputs/20220215 ITR Tool Sample Data.xlsx b/test/inputs/20220215 ITR Tool Sample Data.xlsx index d566ff9e7ca107d555c2447b4499cac83d0366a9..cc925c74a8d128dfdcb20444f96d6a194efd3566 100644 GIT binary patch delta 22297 zcmaf(V|1oXx94Nqwr$(C&5mtev8|5PamVf?9jB9yopfxoV^5y7Pw9Bf@2#mS_bD=CdFwdn-=Io6>IjZYcZ1V9tv

pqOXvHBe33lw^FfX6Feg)K{HrPC#A-^=0yx9%bh z*z0jHUEP51d**>ECq=9;oKiTfx1t1Iy&C`eF??W-x4z>}K-skD!IFAkO5FH5Ca`vl z=!jl&&q|im_N1y=Rk5gumUPHv72878{YJEGHXy6vEq7?2e-Mt>A+Jqv3AV z*74v*dw;&?gHGxh&3jx?GVHmJ!@Bwy^1R|`k zw{RU=OKL4%Je3G)Joi9^`4}RB8_H?}Z$0=JLE>BRv7-4Be_MGfJ@aD9V%@BB4Qi8@ z)(EL%4XrAo2C^Z~N?^sRH~$Lqmz>}lfqOa;Z|;R!`$hll>P@Eu zZtB{f-PyuIgAR@xw^-t0g;E|iee308N5UW=ARiy#AS&|U5E!Y5_pnVRh-Z4RdsD}a zZYUriUa48ubU;7)E^CMJv-=AK3@L;d3`N#htayZNwL=n)?DF}|DYrb@@;5q|OZ&^) z_HXeu3=5R>H)G6AqXi#t0d0~~JY%~YPp(6ouG%ov-`xqRbC|VFr(YC1#e7gHPpxyP z9>*5wC+pq=9uhyEa}Oayyi#As7SvVGgj@8UPGB#KUjeT5T?h)}IeTo(E4x;k{TBr3 z(^uGCvo;4IN?t^ALt~-Vqb@Z>{1^sja z?pOSCw-E({JJp!~(EIxI@=%rLM;1$Gf#(DQGcd)&s{+3w`G?y;pt?A~ zt@8256UC^T!5#+~N|Y~1WC`EquD#@|<-qi=>K#LlaEEwcADU0u)e)M)_6)5~f2ux9 zcuN+`FhVb9o9}E&4%+h`+61IkUYSS9f|Of>)b&qc4J)dy-Xr!0Z~3pX#Bv=)V(EBT#gYWOW@QHoZVPMpCRk5(@|q zLf&!Qc1~>Umh{R_TA$tsjb+%1qfdbo$!p-_%4_7{h`V#JWK?i5e~#3$D8ike06Gh) z^DxX?MAt2(6%5&TWszj0kHR|pf+5~oSdjVzf}?q?Zyp`%Qo0FxFvN{%f1h7cm_e-m z5EHds!-;Sk29THRC)TxPGUIa&SF*z5^bK$DBkGZ&${C}PASKpa%Fapu^16aD;~_!U zfs0w%gEq0(aBc`#m0Y@)HBw891qjZe2w~D`)tY1PVZ5P8Aw;yMm%P@B*6^(V)>6kf zD9Y>IeS1WQ3(~=|>7bk&OFs9h5Y$u|S|{;FQ_BUX5A^Z*5&!Ug;rygB-4yJ!hDKeF z8NYks7KPvEmyhT&3g0g|cf%)I*0x~|UG-Qt+Xo@F^*R?c%I`R>Ar*UAEkN6TnFY#_ z>U$bdYkgZ7%798Q`jQD{%i`<(h=g=K2tD@zEp8eVL~9O+5B;%c1U$|u?%B_^SYf5| zWBRk&jmjd5G~Ru)d(;#aSCDz~<~#Ji+DYCd@7kc-*|-N4QC?wHsYB>=3f1PsqB~^Y zv=I_yK#xryMp*vLS(~&RBLNr&3D}gsLFWzF$crljVBwuCin9FuEx^8F-5-ASC|ddm zZDhKodw=@TN_^w)M{|Y9celAl*%W8MT><_+oyKUQKXV7xO`}Z9c-yi1lQ7;f3$dTO zL!ZpA$*G`6v>W7u^kO~9NeI(m(HrwJJ4@a3f%j%>)f~QY@gu1a1QuWhAbVT#iAg~)oD6!tGXX336ZwuRBHg;7_V(`T z$eWsRCoy1sK*)6OD?mP9Fr8;;0JW(Ca;mS z$oi^-iV<=TM(qXz$GpeM29*w%R+lPz^3})$0ft@$MBlWd5P$?{{;jauDLpbOtW#9w zCzR~1gUjl?MQiMmk#5Qt5V;tp{S)34GZLoA^A1ZynH1X)d8&4Mr624l*uRvF6jK+(H@7>9H@&4>pYEb(cW3%kALJR&sjxPQ9LGD<8+1tX zPo2?=IfO=+25^^*lcX5@h4WTKd#$FHaMRcBy^O=!n5$CdJLJaW7-JO!ZRCoU7!Rfj zS0;E-RUwwzMd;7*nT~22AvC#oQ)s(Ju?nEY?v_<~}ADM_wWSt@R5hf#WYxIlNgDNUXCvJV`HdMM8{4xT&I z)R6wXqC60t`c_0z_PD9Z*wQGG&C32o1+@=;JfbM);|+}Y;RBoDifrzURDKVT6b?wo zuGmA?-Q9l&=DD$`5i}z1Iy*vHSodktoX=;{H4;iJ0_n|8g@qrW$l$^d~A(| zctHBuv_ZgH7o5` zipLOD5=BG{+T|%XF!}Rs@@TpeMRJHXL=7W!6^}I zR1F_Gd-e=1p}<=a3&OgB%kuo3E`FI>UvmkRIa9v7+`CDahDE7v%S2usGGDzyz3$#K zl}cqz{)9XOkm`Kv*=TmLnJ)5oO1*RW0@{{p;EFHL!(V6&qWXKLdQXVOpox^g^@QLM zCdT}w|L4Jk6qu#}WDRUb*(nQ3dPi%)H;dGvQ+Y1Id^dDe@Bt!U!e~qHMw%P;d~{kr zC*k4LepeY#{Zx22b5P1uCpUMzrz4V>Kr5=)-3F`*24ys!yu;}5Y09$RuBg;EH$IdI z=9T0LuZ)38o2!u7!wddYX?HHLpUtU&J3oZD<*h<$w>ue02=qrF>lLQtHC1T$uX=pc zX~Qt*TD8@cQ1CY#rjb0a6c0k6&EXjhl>}^`rKJLExlW0_ovpkLetv>aRl-lam3QG{j`sbhJOx%YM7VVm8{CcvVgQwY}pc`tj zL>}TCL+O3{Bcrq69u|m`M(J1}#0^BOC;L)?Z9+GH7;Z`d+Zw5P@N9Tiu+KzZSfBOnH3<`7k$?qpW4M zQ89&bXwt?AO?(qXitVxz+MT2Hrp(Sc5LSl*-@z%W=L-I+uU|&i@~P-9O=C!cf5XPb z;%Jrg4Gi;Z^};O^XiW|8s~fm+sE$d>gboK8>#`B@4W$Xk`5d41Pz8&eZqmQh++vpxDn69V678BU4y zkT9_VFufU8MNCW}3*2(fe(1a7)zg&~mL$*l5njfo07N|%_ zwOEM?4f_@NoV$wGcB^#jHu-94P`OxZwjYl^qFjXr64pUIPc~Fw(mT!zH?Zl%WJg6O>llO`r9LT#_7XOb9ErtiQ;zg{Jk%MiL>y~%m^-n)&fDmkZ-Y_Y^K z9+9+>ZMX+OpMy9u77$x)@ofhJLP&Ut`lrjWC=&k9;x{Tb?*pAN-e%11@|Wgcs#Q^^Ek+aEFgg@s+YZ18qN z?yYs7A;gjgYOF<#YwmXl}=M@tO%+#eD z%FS-D`W)6qt(wXc#0R}cL$0B<)WSJy%;+qpYQgOjeSm3Q7uc+sHWnT3{2HxS32^{D zJ~uwX#g>wL(m)wd%Mc zf)Y?S57gfi`X5p$V8|4gRncLjXq~K@)tO?ho?bA4s@-k!cXo@CBE_T)4zL}LXR$YF z{nGB_U^RllPO}7U?8IV|!D@{9@*PA_aKi&?1O?3sRY^w*teG0jP*DiLbHW9%?8Hhy z5wc*W^+x?IvdIim0gPCtFjtt@6)&olRozGy8+6Yl}6j z)Jc#%@J(p$Dn&|tynx#WI?B!3Q5K!5`^lapN2`_VU$F&SPL0W7gXXvFF`JP!sIIMM7R_WQ3BMFx8cNS}5+Mr6uofJOq=Y@yb8 z8(h1nwiyU(#cEYYF;~^XvyixhjG~fW2`Syj3%S4323+8XEt~=M#ZhRgn9M;-BxMj{ zk5pF*zn|)*#B`=ac-1C$r_cD`Y(r)k8%WqQUQ3bbAr#7ElB&!tg<%v?1kVzz}@!5T?-VPgf|H zuM-+y081``DNADNP{C}x{KJ&*T5yD1BlCagtXFW_6ZTh-D(sFy4QLw_u}wrn8FP;N z5}Idj>F{9aV3n3Ge6%hFA=6or(s*oJOY_x{kwTgd+D1LL4AsU7L)@IPSFGucc`v$H zNmLfVyiA=ud@%hByWo{DAGtG*^Zs5XhD7*H0Nn&m7c)D)3o+i(6ZzFLeyVqT3>nRb zNGm7V&oS@d|5RE2Rcc8yTy-UvPI$wV7LJc(cVA~l&rc|nP)nmxV@$?acss~!F~2wU z;u^Ldz%#1Wn}aaa9<2e|p$g?)kWV8aDp812*5D9{}a2 z^2@-Nf`a!K?$^!D6R?lRm-4@JULTK}n}HuoK+VV9De!jt67*F5vf%&xx+}aU4*!4w z^QZh$0+iAabM&X za^e?q)b1aJOs?z*a;uUup}*xBHGa*k2|uPdnCaEX8a%7^((by~;y+n05Ga$4u zJ0D#5ldb7I-1C>z^2|m6d~)L&#M8>r6=WEFk$4Ev^Qk#u9_`09P6N>b*bmNZoB3xQ zJ)9N+Ei5U;rIp^j=dI3NA#U47E-YqF?FS-tF49ls!8Mem&tB7T-)CsR>oCYs~W{#!@d_?0Z zGno2=p%&@^39If*=R@i_0pza!QRuae&z|xlMO9 zjRPjOojy_uTKDf%LEzhyuu#Cm=~RzMvN1NGkC1aL{P9lvQj*zSqR<0X#yo`ZfuCtM zUqcGp*+p8`gJ{nJQ;*GJ$@##2@otx>v79@QN z`t1(H=hTRtSc+chH+=*gJJ!dK_MskD@qx=FvxC4F(t*xIs#!C9&ntfWHj_?7d-%Tl z>SZQy{f8HX)<=hWL@>tcKIP9MqN{?LHU4n+R3>&+_ynf)u~YaNu3?S@wCT$lnyWnMU8PT3(B zaV0Tl3dpQT@nyzkf$yWa8W^-wHy!hE;waul$+c&lz8k55WZ5>SL|q4*v@~#<%}-rS ze}!JH87>F3Q}mjk87-~=U`VYvbV`~3@#=ldJ( zm4H{jyj^!}ymf2#SHmn#LnEFENa2n@evr&nU6n6Y4zG?&c}U`zmYS^6&>d`3Ej)1G zJfqD%k(}y>zITlM?MghkOORzMUN?XyL$;$4rcc)P`Fe5)@%ltlgmzMtF7~1)*Lfgm z^x7Y*WtoI(%4Do;ZXybbWKYeFY(yJbiy#>^T^z<}hA$RWE_JeKx?P{0lgzOcYkPB^ zt-mJk)}-u5L<1uH%al3$s$7dc^dS_BN(1(*_ROZs{$+x9771lsX$nbvp#^{-Oyd`v z*ed&*TFtSCA#p>bq&k1^@w6G#4lB|XuJ9= za)xPo!#Wi`cE3?P;V={wT*JR=GxciXNX`jVs@;^p9msO}eJ?ImvG7pG$n)f{8J2=} zcuCn2>@9R3_$AkThV88Q{)7p9giW3Y{?uT9Wz*Q~yrtCXBYsB^O5buz^6&N$x>zd8 z-qzNzU!|hY(TnYx@W>b_=tIll@cH`9;)jlR{=lU$_snT}Emv5IOOqpO#zs_^o+>Khs&y;<|z; zn`!(V?&;C)J#qR*{cgk@qLy6pp%P+FU;oH+b$+_Xs^(yH2?Bv zebt=@v4#8I!(tD?J5!Sf7T)T)m+P`gcVTJ0T7;d1%W`2V1_`4a>qTlkXtDWxvUmo| z$}Xb252x~`%*M(=b20|lo`$SB&(?*MuW@@{oVG@^Ea}|x3zJ^v(=$>-zS7XF_sS0l>+ z$T6jd9i!cPzio-{p}2+n-ZjSpF3R>s52FSyEh%azWIHQ>E&1It*t+VRs@ zk|cuB0Uv0#jbHSHTkL@TR zW`F%@qzD~sI%AX_-wYVVx9N3y>J(`QHv zn-Xn&JNVOK9Qh@}_!@4=fIW7?qZPk?9ikOyf8I689vgnj>oLIIgjXTgw5W|UoMp}U z&>wm7A($PkH|(iUXA@%a;sLh$n!n3E@2h6;fJj~ufJ}b+eQ^uC;|is-@WNCB+ff{Q z?NZwvw5P@|Gx2&o9Q*EE1 zgrW-y93(UpMVHW(F=iF*_Wp#2zE!ZRErR>pu{HWIXGk6cet+_DyB1S8K61)%OC!7E zL`0ey(8wX;ZlI47V4y#K)P7(z=i+cZJKQpCAXGcd6`>!}h)AS~*-xT^2nNUC@UB|u z>P@h0%+RyDKJwST zuU{2qrFT_Hd>_oJ+Ngtr#Jj8JT?6D%tDueRfY)>V=eEWHL9(I0r7*XGmn|KHt*O93 zf7V+^ye5vrje+Bw+YiJ;SAIV`>4HSgt5}bfFTM=?UlmW898rSI$A@<=Rze5jkuMBZ z;kb$PNE~Yg|M+DCA;#TjOsn_S`CTTe!Uj z2fQ$hQ+Lr{QK{M&7&J}i@W-^jl4&7@`Dh%V~c zMe(Z9;z`;QQFLVxQ@u1O+FR z+wLm9!0xq*6;FZwIUfF5vX_%k^===YOF+WG;`(rV+^}7I{RT;Jc@EMKCpLqU{+noi znL6rOkM6KT!D5QPKKotd7m*0z^}tydXy{{g)$g)oR8KIiG|GCyEQnUTwNHLv`kl~@ zH4(QSyR#t4y{#;ICOP96M+tt4V5>W&kgdZ8Sj*=41BT+E?L<8OEw1gD6~$+3f@nT( z#FSM*H8#zkZMXHa1l^;c=k~@7;#2r)bp^x=4Vpr2I=T7e?FArgnnpS1O{MA+; z7airEoW5ekP^7`ml8x>G(sHFU9%yP*{EVewM~#`;de^R1m0|*UuGTUJ;G9#p)-pJb z?JnOOm^B~=HYRpG@%cK0ES3hkm>}Af3@+ttEd+@VW!&0p zNw+_o;}_g_haRm*u$k!PyC|jG(9)qb!tL1Bp>^r8W3NVX$bRx<;AZ=VbDAr>MrGJ9 zb63V;8gV!{8Z>6T%gJvreV|6*^=KrG$NrlKUnD#vtS}$EH>$K7*dne0EeyG~`F&M} z0;^Z6nr`yGKNZO>1;@&)V8znhCRjJ2yC!Y9!D6}T{Q>DYmm>BznA)766j!+y{qwTs zfrU?DvH6xVPcL$*3)jfw8d~vMHjwk~i)!!9FOP0{#m_`PXSkoVhAtR_f-jqLFE!-UQXLatlq+{8xD*7hC-$yq9o&=5I9f}19!dX=%FwN+7u z{cel*M6BIu7Y%j(=0}^_QAS3We6yuTkTPuXxVqjM(0#l2#dns?L$Gd2=F6#bV#%-9 z_s}UmNOkBeA^%jUa$v5YRC`b{{k@ zz+`UY7$J?pvDu;GfZi>#7N6KQ;+nd>GEEzUmzW*xXc9kB`Y53yFGOJF+Ds<8DT$XD zbeA|w!B?D-TAOBW*M=`7OzE9QOdA`b&~R8!R9fc>HhQ<+57-&N!;IN~o8YqIM|(z-er?8!UK(!ZV|g31pT6Lcp}qDwu=rE7iQFZP;%gA@J;q;4atCZ6y1HzEi1EOI zeysCtv1uf|mEZR$pqyz*h4=Sp+L+4;tzB^bo5|WxqeevtrH8pv^YZe=B zC4IyTG|G#6YSB039m*UAonq9&>-hL?ZGf$%XfgHlr)X*YRjOmwG^}K%tf^4>Cl^!eM*!59&Mok)PPR$P zzk6T*J}Kkg{=^N_(%kC7HAn-PvV9cfCS1_dmej>EGsx<#7T_e*aQ-@9Cv`LPR&mB_ za8V49`BOuDwf=#(B%ahGn1IDY-ULRr`j%vOt@%(AL{giahz@wx-#GXG_GuN3Js z{JR9|iLsE8^{jZGk(HnkPAw8^AAF;*iYeCA((IoNHX!F>q(_4_AXTS>fKO7pZ{?mh zR6mq3SPyN8I$%!!-U`VYQrj4wD_(25(2yw z((^8d8W4ICmW@)c|EH~It{n-kzh1z?&oBDBn?1+lqU>ovOuLtbu6L}LzbC6a=|*5z z*dq0B50cSj8tP(^jBq4~iLs%=!WghF{Xi%6H|FrjgZ-U-6{;~mG2N!rb8R;X$_E%# zYUL-X7K2Hb!-yEj3NaJ8tjGSDmI6`QUvWidAi)0MU~<$78ipB?Or~S%>0msGQW6=Xtyi`K#;q;2RxEJ9Pw;HidAW!gpa+JoZ`J=s5L8DBnUCfWE zW7l1Zh3g+zs-!7`n26(NA3Jv27XgW0(CIQ=f?;ak2|Wmg-u_Vk8!H08{Xw?s6<#GK zZ`P5~_)t9j2-B5z{9qj`eePE}Y!tboUXQ~Qxj_S{*+L0v+c=&^3SR@Y_8jQZRo$-e zd&cekkR--!%fW_kw`q%o0&+0SgzDZoIf|7voy{r?U2$bP-k(&wKdE>FpIE#SAnkoK3LlafvYXvtLi_;MA{!J z6meNUE|2n)_72}Dr4je`(fBIItSrY#qsSYzcOO7c?-*$fYY35_&yCmw-KaN&#I zDRh!lP*OR<9cO={?-rmW6m%k+Bz2wA&wHZ{Sf;AD!@XeUaFq1$>!#MdS2&Ln{dN&uA_USxG=TT3D9&QgM0al1g44Yi7RlKpaR7|!sY3;2mH}h)IusL zUG2C_Z%7$1WLeNlKL3-hec(PqY?fq0vd)?z;0wpl>}@UU|6Kh6G0^+Q6zpk3OOO%n zL;OVJg2?n#AJG0Y?-%LZdjC1)q%KWTWCj>kuvmnuMq~V}Y#Zpl`o=clHZoopgiIt_ zUTveuxo!Wc8i0%jZrpxX11CIJlsAd#vv{8S>p~*uR?!^=EeZdfF6*$bl#=^^8&<4% z{VD*i#Sgoxl9W}?%e5g!+)m4bhV6PgiXo7fY@nRHv7u2s)c5P{^COQ$N|&iWQs2kA zr0AG$WhS|<%kQ_9~U}fJC)Kyc$-MqU2h*-Q#9Ra-8@X}-s6|l7uo~Uf|GY*Se^aZ z>BhxD9QOsqIPcJa6k%BdHrej;c4)QWWJ3mIoe`(q$m1g>!YlIoS$8OEr19d&BgyG` zkXyCo4Dh|_%g?y#$dA5)^)?oTMI8(w89oftkg0iR4@Q;%@M^aLAJN}B+S)U}2XHxt z`XaHgH6d%FBtMgY6w!_L!yOvYRx9-Xov)3yHoPmdc1Betf!j z9!czmQKTW>d`$TZ!M@bPqVh(+3hSOleEg9@;&|DBaLJY z2N3@#8^wnUD}jMvt>S#r3^sVQU8P(9n**_(u;hc=tXZ!j=(T1`H{}bIV|86P>vzQs{3~cRkzej-s7Krfk0Z37<8k?p+adpSC0UgV~ z6+;LwH;#|QuYU+1$sa~5@vrJDE4zTm&W}!fH{I9wk{{;#gP}wpp~9V^fjbF95gwI@ zchGL6E*^@BZabRw|P;Y|>Qp1}J`Sn<9#SDWIQH)3!QL((QF&0Tkpd2L}9=;`lL4Np! z>Yu}N{gCOCORyowjD!nc$H*OqApU6(`+52&+Pv9hmWGFPDzvsVs_bcTsmXsT(sdKi3KQ}M^3MhcxV|Ql zcS$Z%V=lSuquy+X5-8GS>X1bx`UO7pMNTyQ@jo-wUKwI5PCXOZZbw;X@}EHQAQ4u` zt<&%w6zMce9*rUV^WI0j3w*&N=ymiUC$G;T6>S*XW0Mrhxb7a-$VW&VNaPVm5G&XE z(Yd&_9fR+@m%uOpmADI&wpJwFX(zy@IE+q{S@wvM@Zw3%79+^r!^?k)Ume?Y)_L<4 z(bFY?U!`;n$1k0KNRL@fTVSS5laaO$lb86j_50S zllU79E5mqpgXThegBAX8s|`^wZff??#0pUnP0s&Fup(DG9p(BT5lgQ;ebaTekD4a@ zsa_7`?pdV7zyomQLKr4z<`W(i490!Q@_3y`G77m-aj_*%S^+u58wMecL{27h)kiz8 zECrH|2I=CwBf04JGeP`8)t_KF3OHmmUQiQD`U0s)fQ?%b5k?FLOD!<_o6ldOA^e60 zF)pQlc>hDE-)bCQ&Mdtddj|>%a|k$XURni7iTP3M)(AAKoC&l04*C87WqY++^XO*y z4A_h=M71RnWg5g>8AeCQdZX5?z#?1~XcQ-h_jfsz#3j&$VvtNFYtAtcew($YP%azw ztMK7z^4e-u6_8yJQVMnT^UHNfKl!okU3($E_R&0A7}fSbOp&_oVi2U&Eq$<8j)>iEV@3j1>H1 zL0vH6&8k65V+Jo2&dKXXHJ#yvKU3qXRp}Av5PIpZdzw5-BI8_17T!H+Z;ESBSgXu?CU`0PXB(aUBFVB&>5XWYA1HWH7WA1}(WJ z%w4J7#D%{a>%kK*NK}j@4Hb{oraKW0D!rUe#X!BSb*`Q$nf;Nj(5&MtOWL{=5$5+* zWz_ow0#>#slRcY&NVX@jQ`r%ef3*l8pA%%{#;zT>WOSn{t%qNr>GMWRTtmQ4cp+)7Bu2?vi0V4x*r zsb~EMN5xRFaBhZ>a$rr-<@}^`iI2;m^!DSu$8mD?cmyIDG-*R7mRr zKgW>BWBu$|=0g8y4l|k3brU5D9nIfEvj2ELVvU=JyYN+iCD9()V-aO=q~C#hH5BQr z`)tB@!e~25D0)SFZ6lTQQG@j(Hrk9o9&NMVt#WNPliXBEB6tlg+MMYF6B0mF*=UgL zv%tWaR{K(Oh2rjw0$5TV+<>gLIZaOiYM`Oy^ zoIgqu&x>{-fiXgorNSk>KewnEG%q*YP9f%jon|*2xqX6DA*)o%ZwufM!&{pQ8qwTz zC409ks~q5#p>=^?N2Nv+sdOO+DIZyJTv)w z$%ZyguPuhHuH6gQgYJ1bd~hHkViLVEF4tlBg0x{LlE5PO*GL2{3Q~kB!3%SEvOGh> zcn9k?#Wk``!Lj1Dsu+M{b9vwZB1wn6znF}WL>kk6`uQs7Y^3@#cPqBG zx10`e7CsdMuW{OMn*%{0gV7%a-1IvuCGBLeBpcWux@j@}sP#i_K*Z5twc%R7viPfG zGD*q{!YOQ`DpJLa^CiL&`$#^6*7CD^{XPTcg}h+}3AUYgI{}Rk_#b%Cpv(qFd|mbp z&jn1K?i$un)JJMC*(`a=)WH$zE1H|GMF|!T(X>@bX9?3pgLYv;O>*C^oVVIf)Jeg4 zWJ9m|NE(Pm|B^frnIZo|e`b5F50z;~76{3`THnjeErWc}WsKn!xRcorBA=a_rtm4D zaQQ=!LBZ-;r2?248N2zUrBR$HI>I;6=4Cq->7?K&Hc+sNL{MzkHc>PzCsSM((x*sJ zjBj<>Y#WL^0lXQjHXvOMng@Xg%@nx$IccBgm!ph0cWmHtJNU@BBw+4b> zul6uXO4Y_+N|rbh>>@Dgkh2BRP?HZ)B5S7xi^zHRFrb)@^RYzF6*32foKfF5l_X65 z$KO9_H=3q}`deyhX5Gi0No#e?5vV_@JK}AB@CsR!Sj@zOZHqf+)dnG^GmVc9(I7o| zVfStiJV}B`Gpq4DXZFvK2YpNYjnMv8#6G2n)abC2=z0I~S?4{B`HS#&EbE=Ws1(oP zV4Eldq7s13N#k|dRrk@kdkX%9-mRkoYdoHM2+wB5OWiF)Cq+Y@Gq$wpg}&K#i&_o4 z`EBd;V1pfMeaJ;AmmPvooLa@n|6>yWrDr!@p13#L`B%U4299b@F#8cxgxgNsD)2~h z^!*R|;dfecKmx{G#%)30!K;x^}{O37KO0K|(MwmcVBCDwZ_HRXAWg z*>%XP10&?f39~(1BoK`-V1Jl|lR;qWv_t{7&c^+CI;05jeR3Lq5pOaZ!N?`ZZrLH0 zL>dNqi;}x@w!c^|wkw?AenH|ydd4N|XBn^XU>T=aTO85F;nieuWez9<>0HrBg6eoq zz-F>Z55Z6o6P-1l``MB+%WaJngF%5_;xx^GLN6n=BrD4H#|Dx%h>2cCoqi(%uUi^8 zY1S$wr8R&D;+7oJV@g)>>r5#f%bl0+`?8bUe-4@&N;OH-s-t=tW_@0vS#T9srC&-? zxM|LUOPn^vYcy?|oAe4TQci?3$)Lj{f?PoR+anqUSft~nCg3R^pUIT>rg>;N`m zD;-_2|3ZL*!Lq$hV}2c6s-Gp%pwES`xC24uzmvu>svW{>eI>z!$D>e?rpyo4&3M};{&l<@27Mrvz!gf9_1h8{WoLXK>JMdEmfA_G@mpF!zz``M8p#%3uL>rK#9r}cvZZVVTmVH;10*weXCMQYkM9fvih7x*#FOs{kWak@m*IC(Z z_}A!JzN1lzW0k~~@Es8AZ#UJ?I0GWsMny&RX14a02toNBN0y3-PET7vetVUHH#1y< zt!1R%vLa*LSG`76jd1C4I*x0i1}10ABl>-6w@jT|9PwUaRV0VfV(J6m!X!Q!X^tdcR>{1i$5A#Y60fy&wd zJS!-ZQxlKy{MX`?&60sVSKsz!s- z4P3t#K5VxpL#PhthuWnM0lsqcvr~?83B3#nJyx5E62w%Z%x1uHmORx{VTJwpUo++P z;(!W9Q!4V#s#6!6fZ3R^1S`ZQj>1~3=?c(Ovmjn7Qai_;d{BQB0XMl4OW6|4)J26A zmg8VqeJVjVo8c0{)O<49yt(O@=vxAnj&(XqCBaq+f98Bh8N$xgx*vhMLU4zTdV|p*DjD zwAbKrQ>Om6)6k}*DE=-v6p=ef`_D$|D49^kq^3Vh>5%kL?%x-Ne|*nzmr?G<_v~2C zOF7#}HX9>rN9B-t+grkzN|e=XJ`3c_DkrB+9_u{VV>JKcGbTSzlJS4)%l|A3>spkz zJkF0ZUl2Y!cW(Yi<|M68lOsJDV^*`-Y_=>ul^~1FScx>%d1kZKtU5)h8=eu3sw+5M zp8DTp)PH;4|35r0^dE3;Ln158kWv4=B;a2v{I6*8L|mc&^XuTV=V;_n#oz7PyMLMr zf5UcdAyq9C4wg`+YANWk+YFRIQ#oYaj+79l-YY!!{{w?MX-zbY7j0hxL!odRiOu?2 z^#?ejSCY4u(iWtb%FqP~)qgP___y`gRD#fIe8GD!r2nycFvQJ7(SM}R;V=BDvtVq0 zVa%7n%w~)K2jRa662+dqz*e{`{eBS7Bv)0E=*z|HCJx0SPIt3?3><87RbqY&q`QA( z`M*U9{BNBLzql|ff=7Qm5oBp}FZAP~^p~Qo=>P8i zZ*RDMZ!vP%kAv6G;Qwt5qhY6OVc%TgQWaVrZObAY7+RxlJ>Of&0UR#&PjBU1vR`ed zuAS^8gOWGph^BN>Lm)|}f71}8|4Boz@bsCMfS;?nUvlmS>Sb<|aaAyg-Ys%3n^sX} z?uM2>%$zD#FF8N7Q=(p7EvuvbZun@ZVI?~RzqY@*r}<{F45$;~tESE-{K_b}+T_cj zPyaW9;OS&8-Ubn?2r8q3{`e$z7o}3R{V2&rs8$|bon&$5NlP&^9}u(IkGbZ{k2Qed zJB&?F6glw(aG*~eVF^z)g2IKON`JL;)+U%g=3TR_YDe(IEq!_x*1S;UJ$c~H--1B1 z?oY2Opo1*t+>f`v8|8dQ=!;5^l$af**6oSiR|^|2$+cs;rmf=D&jtg(%*L(Eve-8D z(D^^96)WT_XW^^q2JkhTn6uqhAd)FuuD$gm_>f*`>3`gKG~CJAzE~nAzdt2TXjl% zG^sL^T4I%!tB@VWNYvAs-Y|CYampm;(>H9&k8D~cVT$1HEx_S-Eqdb4@4Y(A?#Ff? zbz?}RftiF4;LyIoNgf=1-wk;j>Fo0H5r@??UKGiqSq53rXPg#Vj0P-r`o$RbB|e(ip?EOTK=VI%P(^sRXIX7&YXM@+T2wYZnh!QmZ? ze4ucd)7sC%~{v}1R(yV8run#LL_X%O5s*U-ao?U5nnPjhQf!8 zJgN%OjTFFBridaA1lVcf%oPiv*eu0xn6~n?rmnt#UD0BmbKxdLh1CS!T2{LroBGp zrd6_!t9KW#bM91nz}t?Lg4V(}n1k2e^-v6*sd9QE#kQGnG`0H0PP)mAlCrq{)AJ2w z4qO~NuH?I3GVTQfvSuDsUZNYc04VWX-Ua$b#D)}baDxMtNB2sn)<@Q*C|);ES-uD* zm>XGE49X@RgUxP9Mx4k;9}zk9o1dw`Z1_&cKTesHlwe0YvkZVlR+yV+Fsy zfB14o!}i)lCH}-#YQ~4J*f{JvNi>zBO}|9V7`F}0r>S;9^BX8Ho#Z5QG|+B&mQ~F= zZ1j+4c*7|1N5SEXTt4RD(BqR6Ik~gusesnOg`9Kop#?P{3kVLrXe_+P;8Xq5G(RPN zJ}cTe7^a}BYnGULbMTRfk^EiKS_<;#3auDaoU2A5>4GeqKjS?orbK^&LNpn9DgrW zu+$Xit&9zUuX>Lk$vkntTELFY>eb7xx;2b(Wz>B_WJP;G^J$gwyRp)%sC%2Ly2-}3 zE}BJdJN22f)KigFNi+6sv~7W2$lzDr4EKYnd+9VboYDIdhJB;Dx>A73$)?woMR~}k zv+Xv%aBo=i$s!#;iAx)P_@w0!Wz{2A(o{i@&bLasaEOf#YT2kJC6o8%&oD(r=2DNz z`aFqWr&XvsRp1#r!djQz%kMYXKo`|>q3pBJSX!Lv7DQY!pQX+Ipr$Tn?P2X z>K`D!)FL(Yow(w7Q+RZ55Po9mb?gBVLOFe3x@1ZS%Y3ih-4xVIGFWDWzN01qg7)h@rIq`6V^FmMwKRRz!8wLM({$+jxvpS@sulN zc=L-Iy&s1in6KMyWoKlqYa%_Je+Lf88?~@Thi!IOb_5?AxI7cgV;V=rBKahpHblTjek@5y-!5TG>an9o3xLRJ%)!B5nAI&Qb6Pb;PYJ$pwlk=arwZ zI9E{ZqA~?>s*VFGQOXN4){gYuFXPlD#AhOMLq@+l$?$FqfrUFuPR94g%n!7zELUFiHr8uW~DKV7z5*hbi&jd3eUO9ik7(J zx@;Ph6e(yB`OBPCB{+nm>2dOE_{W~ir$z@PMQLF|6}@cInGV2ZH<{9pWK7qG@O6u=k@@#t!eKM;`acKa}xWn%I{5`yR$wcv);Lue0x!i ze;7qjlc=S5LKK&*lDD~zgE2jN^-3@gfXtBB5YS3%vjFHf28tdJg;~b6F-|Vm^iM2P z8AvU@GBk+3Xk;)Jb4$RDJh#HgeqVo|OGe#7(plQ>XD|n63#IYkp3|F{v}C;DTH~CX zn-B^(#C0L!8zQ~4qg~pkRt<8QQge%9#>0^=wSjHS27QY5{ARMDN4l`m9`+U*ZQW5K zG-Fj>fV*RSN{FyPbC^6`?#8@n`~rR2i#&Gag9JNL3z|-kud^6jUo}pyFfG9Lw&2~` ze1kSWvwauAI8-+`mRsR7;>X%qDMS`j?*wpCp}Hxe^~tr8**O8`6NgmfRi1c~sdiq( z{aBe_gUDhohbLNI*4=19ukuN{ILW1Ln6X@Bi5p7DRVE)TW^k=Oa+6b`7^NLh;#SP< z8th8FwHj%Ye)iLsse!goHgFuCj&upxl-UQD+!stU0$)9#jT?!XF7_s?H`W}p0-osE z>%aYst)m^jn;7#gR~UNqI@;zm(3>yCZ<}ZygALf5K(Ex5F*4#JFV51%;X~b zc=J3&lzFn?Nh!kHPMKKgrd?O3ZW(`Ln4YO4pK!gG#vH+rJQnvlf-#~@SN6rfXz%-fz5DRGP29DMcCN`LoO=mKp6DN|v16 z9=}?$C%vt}`Q4>mmePLDMheT{?V_M21X#|z%fr;g8T?R5i$VQ(9mnPa48Tp4`K3B( zZ)awBnD#ogG^M zUfGjbZzb}pm_x|~RpwhvB2u#?ijz9*<;`DuJwqM3_hJ9n7shup^^>lCMZzA1KerRe zRIh?!{avj~t8PL;s}mX^4jWOF<4tC$M#)R3zb0;~8UxXQUjOd5Q*@p8I+fdFx&ws! z*SA3_+lgVw&`>DJ3{R8vg(J&Izq7Pl*6xG)~Za5MsI;wZc3Nuyt8VN9@|?$npBm|=bBOEwnx z?DDzCjk{joJKQ>HV9**qyP6na#O0MxMZU=qRT4Ex=Q0xh>?#;4t8$F$TB;S6xecc5 z5*Jb&voefcP_7|ZoJniH#7`IbO|vpJI6&ciUvyT(>D>>4z2(y{q< z-ekL%+OPUlO>2u_gv~tiOIcWHKf_xPE+GK}jXsuY8gp{pgO}G+EQnPOIE_7H#Mk9b z-e3f$CVzAudNc}tM0k5mVN!0`keTNO>J{hu=sYFX2?KLF~Zdhi&!43cT=}DBTecCS!3~&YIB9MgBPAIk<8@ zcOF?m5Rh;il98Y~+G3_Dl}Lk;4qeWIN1yD zdC@lzM(SAD(u!zuaM1}S-%T1QCaoMteSb2E}8s4le{E#bd zPPKSWxGn*_9a;jk_thY^O=I3P1P|qATxvyE_@RL3a|wpXE#gyZOo(w^QJse9X|9Bo zwPWIoxyYXnC`SbJWoLlaS7QxH@pivL20Ij@Kds-l4r0%J@fs1){)~ef{sx7JCQxx^ z24a=(<7i*Mg7d5r5LJxy$EQ!E++lj$Sf*h^+U3XNEbxXd#m2@wfpRDh$>&S9lz3_Y zer^PAg|^*T^x1&Ob0NbGtBfT2eaZLN(J_O1A8#VhE90p+Ce~O2`{+NYCH^Wv7gV{w%*6#r+Frm~y|&n!%32V=Em>|ek()FSxd><3 zH@sB{YKm@RxE1z}j{fsxg-wXKhHcJp#ZLwM=k5K4%qFD_muVE0S!sO{dfc=+slcqi;==7~y`a`Yv! zWSmsAAE&-NC)Kk$^7C{3qMUz_4FwG%?uijNBcH3RI7*P8Jd^m#wiDJI`v?5ErmK?-S znV(3l;70PwXXY)|&V;5nzl?@&SJJl&{`xS*`m0-=hxvF}SKcmXtm(DaFD@7W#F@-i zI<($hvc>_^uF=zsLZfyZ2cf{(YNK6?c-iYFk3=1n*JobSLhI2TLoRx)mH4_lB!0mR2- z$5NpA@HeMMLA9jd%zlP$T&9Z$Jn$r=Dhv-i!-r1(tyv0A5kSrGKuYiI9UB!bF7g+WSUs16=c)ITa8VyFxrX*5x(4Pd#gvXh1MP>ynNT5P^3yD_*Uhv|NOqcu**(8|^yhVD2#nFFF zNWQX=`M+v@Kp6fV*OkN$wvj@GS^jG^?*9;uyZ&B>h3v`|`=AjSR2_eA0)mD9fMefG z5Q4ABu5Kna1&)$I)$p}`{ApkW#mS*U(0kxr@+)%i(m!OdnjA{c^e3WSO|Kk02!!VU z8%Hp>Kn_*KqyGhRQb3jQ$bN$k6i_uh?QJlZ0&0%OxAW)B12R%x`G{=yFYx{YME1cP z%BvpE2Y;1NDyTU1&BMP_*XO|lXK#N$@Q)L~DGDeP^cm1(w1N zD(y%^t+>8efq-@`=(lF11886&?FcT_Dj2BB!&vlY0aSEaV+!=f0+>!0fb@k7OZGCh zY1Md?eKr9#72`bwabmeqB-=4_PINo9RwV~f^06B57tf*kb|LybwG()nqP+QVQ3a66 zfNPzBj#6wiS0=qI@i|FE{aSj=DoOysCp{`omo9W!d^(L6ojARUJH))1=sQ)w6j^#p z8~EiRKNtK2aWcPa-cWuT;BjYS^0J{@lWFSHk`1Jrz4z#nvv2s$0 z^e4AurF9SZZNW5xWhA4GJd#y7I@h;06*<|p*`dw1}40q=#r$y zb9+Pz!UvsOmJa`@jvorDWkVQR-E9o^?8)F+*C2Y5T-A|x2)5Ld0FOseds22s<8R(m z0n!u0?5=i^;`1rKB4DhEzbE1zpP3(MUcK6I)7E|0-d^r6)?`?33&?X}=Icgq?TUNt z25+t!0ySP2V5oun&VDGWX55Kxmu=K^j(N+P&1tUo{Ae<+x#X#uP0M!pF%R8EO2<(` z9dtz$GrpDZjAJAIIpo~Jh&G`I25C#)ol5t%5Bob%F)TOF3UB+D71vt;YajQ*^SjOW zD^g2`H>(Z^bP&!;X_(tDhT1)x6_={qCWt;mWLJA9q~7Se&-mpRBy>T1I^x=-O}U>cKqra>*$EX zCJL8=^>qGAUd(^tAi(yt%yPHu68y*>; zeL3bwSStispNVJ5_B+Rt@rdLAIIS=&{gi^AMw^_BAY@zed2VwOtR;-18?GCD0szhAdaB$5g7?=v`gWk9*cleT8qdjIR)F6*JDj zc`Tf2?=*mx)x|}rF@*+$_nXflpEH4b_XWgyU8=9l=vHwWW(I!Ip2 z6fq-QS5m`vZuxOPa>rwK2+U3J(Ax?)4`}2o`$jZ*i4&h)B$^{FP#=x-5gr8l;Jj~J z+&Zi5ky$oBdH*t(Z7Gb(08SvUii;($l8+_k!NHPM%fbA&q*aFz?g2Z{nMm!Xp#h=> z@6oJaNh_2EQW1c8&DOaCyfrW&ElC77o0tWjZHHnyN%~MkZ5i(`(Fx4JrYl6nO)v0* zoVs3=#fPyq-RX?D?8D_uu-Lti9bR}HVq_UZR3ZdL$6M*8m)P4q_+cj@ih4A(-xG-a ze=7D&K3Zc0{!n^LD+B6WnswcX)XJn57&b`vutSl6w1o|KoFiOp3nseqsao0TtydBb z6sdqrv`fy@))T4`$djcwY=sC$lsNx?^AM3+< z$V0KhLGs%nXe(Pz+9WA>g2A;quoWf>*of-4!Nzr^+gSDbwHS?Vj}1PZdE^a^J)acd z$qT2cF`E(+Lz6)Z2nuTnllp>(LGSxupw_0DB*nW))$-`_m5fdBKcG-Bv3rc2#9*Wl zyC}ma@+Cm4a zEnlhSo1#IE3za`73|Zz!o#Oa+5oLD3o6!Pvdod5Giz0$*c>&lAorAqH|Cl$HHsFBGf4hes}M452Py%!7X%76Fy3)AVLy z{Y46Pr-0j{o`tJ74Dh2I_IB}|z0>L{x1@w+k1sJ?QT|V@k_md86~Pr}(C0h-k%~Gh zq)$pH_~{=`kuT`&^%3*C9#OoFeX5|l`#KM?XgX;fBB?bcw-RD?MzVS_aBKXb1ax6y zD@G@lh=My215#6^N})F%?2>?U^wGe25b%2RG61X&(_Qj(bB}Lu%_lFdn)@6j3L-5j z1OneN>}(^8T>0&M_Fa`Ham@h|@p9cP@FSYb0%Sqv-cnzx-Icx_*rLlbDGE+CmiG@JbPsxRNvXN)5Gs_>$8T<%8;W{sTzFebqc?VjyhsPLxc-mi6axVu&Mw< zu6#JHX;KKfJK}z&L{%NDlr$$kb{cn-B9=iIe_| zT;Vw)IP(CY*|I!|Vm&&YDJ%~5n+Z4E;rj))d*{cnzQ0=TC4w&L2mR|&-Jmd8&@684 z<41W@i+EvuKgVM$Rq$IO!=i!%jE%uf%Z<$v62=e&WM&ceFE5sFpbp zm|gWQg_S3Q@eI<~bG5}5FJ+mN99X%OEzBD)CEV`>HyV3AEmCgh4kDU`^JF+4dKn=H zjtXf}aC<^ORX%4}r#{wr)>k!Eb)$=OFgHxPa*wbg{=O`@`RWyS1oDJ_99PL!zC@eAGQ zxZl23G{<;zgtRIPc1q&1&r2AI>t#o7MXWU3FlqUHus@hOcr(v~q4A(c6+V4@IiLuQ zVN_C))5mu%c8UPMcq?{(G%^8Tc`{0z6=7ZX?8UPqOEQ36c?fs_AM1fF_x_Kp$UFYq zE_D{y!qcy0o*(-Zp~toh>Lo-=6_Arj%EH<6<@~Bxz)R zWe~6H)Np;DkGzFKRpRJqRj^VjzS5xPYc30;WR#8QNp4khX-w`}cl=!f`qWYm1h&$3 zay-HNY&xiUCHu*ZO?8|G#n!4iPy?n6KgD~CCMBa>gMoqcG8n#crE-JoYYO>-_Kamo zx}R8&4?tdvv;BPGr%}q2vjwncik=IuY&%zhA&~OKLd}r?lU@@sp34Q^DO9xS$6(0G zj0A`}A9yWvXW1naQd(!LVUbzN$fYd@f4(cKGUyP24}O%nS0mM5)_hcIU&p@TltC9M zVA~W}S5sj26h~J#oZ~a1=m1NKn8OB)3OYp;uDsKzuzB*b{_g0MFIOI<=-(SjGoI-~ zmDYE`i>CxUDUxm+AYH8~05@JRVe?0klwLOyq7cX*W9B<_@q3Dp-qCto$Q0^D(OT z?|OnkG1i~?Eag8F?};g_->@+RaLqe*cGIzt!kN_?XYg7{1_$o)$3Tvi;t8F^*$0z* zE@tNEL7n1b;L*F-@FT+W4Q~T#YHE2K8S@$D!VAVwJbGQkfMGg|ttzM0MhK(?d*b>T z;Hgw}bU*OmFuAvA+@uifc61|PP2qe~ww4-sckf0#_>5U22F1`fwPP$*O)+sL@~C3Q zaP2&c1d1)PqH6u)w0g~U`QRqm{1sr7)pNzS%9|HaP5g=)TdU}zpoJJXSR7q)e!)Th z%`P}q0^P}e04}4Xe%}oDHS~2+A>#XTWLC7=JRW9AI!6E7F#GNG3n5R+Ihh|8LKmHq z22r!DP^P#|U-uzNWMewnwWz4Z3U8X+f87U|?IzCDI00_q%exCfBO*eilFX)u^ z`}U2PQ9mLa@wpSWQt4ni=d(3Wk!|*{bJ^A}fob+$K#!9|a}xZ(LpzGt85eg+|G;0o zXNa>ptX9ZgUWC)0{o(T{L_Xhd7D6GXLZ|VV6f&KGg(WyUbeq(V%q=j>8wsYrGvKG$ z+x50^{=)Vz?4u4qL&{t=`0xIyzZA69h<$)S* za;oCufD@s0Hr@LwTt9)&EFnFJ*`+)oiX!jATiI@IoEVBk(idSkZ4018qG}{+v`M(n zem4AN{r2l5``2*~>b=UuT1Rcsr6iviqD(8e=&A{vIZ+Uap+>}!v)C$cue{lL9G<1Z zt0{=KL=bHgvR$0tKr@hJWol=l_~_rcK|;%601@#yBzk9Ln4Z~2*;9eS-_reCz`SSU zI9R($n4zmqTfRtF>qbV4-SH-DLFcXItqFcr0ZNrVg*dre*f=VH^+Hza z%ytMq2QZmJk^)o?dir`v(WP3BtTYF8Qib#Zm(|;BAHd#SY(FD!LAh`)-EWLAJme(sAeVem^INLcW$is#a)*3ZTAa-L>E7r^`N>vjd$I^gJ7mNWG zyy%^fF%Ve%vo3@VNciBUd$zO9I`mk5fYY|a8Kf%ibI|_CXRKM#jT3Wt(Xf;8WZ5W{ zz&Q@00~~E(tVeG!>=Zh_#Te-rPCKb?+xy1Wjn2a|RzotlJ}SG)b%AJv;`Q5of2B3- zX*HUfz`&1;KAk0Iwz9i#Y*C||_%fycw~XN*+TVfAf6~Ao5WeRTPet6*eOb>5CAn>#|2 zaBFPjjdQNq0{}s0Olsvj8jZ4PaB^i}8B|o=bjPw#^9nPp7+Eeayr#sRJExRIxiqq1 z3bCMo4vUVOb&mycza%2vik4MZqWiMX^8Kc5RDWt%@C-hUuf%c->g(poByOH6R(M8g zHu3}Sl$SuRh=X)GV;jTNm{>MEfWEn2qB#iu`Z@!293U?cG5ohHQD&}1rydJ5ZkZ}2 zV^M>?>O5wdWOeBvq3gmk4#QS5HzCA@Q(PBpiDpbA5|HFc{AWoHqAx2_5&4J@LckTmJ$NFHzKZa{c|hLDzx<}AouNw)_=0Rq9?evh-k zhl=O^{6W`&NN_lPREcZ;r&*Fth^~>Fm}#T*@<7?{OZK&I@0Uo6cqcHA;yCIV?k5g) zNEd2ziJ2x}8#(1On_g9qLupK`6Y0PSkFmINFmWBwP!q_e_zg_#cJY}oI{cjL!q`AD z4FD_uH26|Q2A^Y`F7!-XcXWOr-PBZRO&PRZ#dwpZKNv$7{cxznZQ+$2p3Vlk-SMOD zxUal`141;q*o60Czs$Lw%Qm1~4~|o6-BT+!gjY#I^L@klQzAr29dawEgMRUH1agsg zPb~^ynz6vhh-Y2|Ilcx_$_!slt|P2SVnUyQV@)hMq* zGR2Tn@cwDzldvd4AQis?e#RL4J{vyY5`GE(JZ=j9>>~DkU8{bdN9_LG&iw#RJwJC1 zFF}4@H_IQE5CK2CyFag|KQ%vZn?IkQV}WlGA1i+EpG&*jqOdP$Q0wJ{LO=LN0ROt2 zUjd(Mr~fX#{af0Z8YVaJaty?>phaA@d?ghrJ5&<3#c3kO1hEz}D>-p1IV#Vu%tm*% zc)3-HnUuwOjTxD>VdrEPmg+`TawgBKU9<*})%Z_0a|BBzL%A7MqK0%zg+hj)oD0d> z%b2jm7FSlrXung!lpO&aOkp@9nxLxcE+vcvs;%d(O2w}y%-|gB?L07HZx+VOFz*g2 zWtoit(%GGRAP-9i7oaiJRl*T?kGJOdWt5J;SPcX#ARV09*30i&I#?}y8We`HWfiJUpn#dOzoH z$BGGKUE2rsUrTETbAUJE@59>HzrTJS&X){(F<3uu6$QU9FuZeGA?Bt`a(Ywm@U0)Ej#5PWH{S>ar`$s=S z2#_zZs)j4z@TTv{O8uqu9$o`jnq;l1GN{4wU}0OQr1&!nT6*mlGIVBCC= z+HF$7WP1NA#`hDKmF+Wt-r}Z>kfr;>iiEz^7_x831GaUuzZJ=jG5VUN-o1~}C}tO8 zlW2Z0y0&XntMS8Z|K}asC*bn=9Bz?D?n?;gJ4?quhG;Lm^wf7<}?W zO#ny2$oJ=^cC)?-?+1P^NDbi!B>|imi@-K!H0o~sF}3(kHAM}N^N0*gQYF!wD|9<} zrm1RLT0H52@3(9%6Ic)?&iQ0-^(p^3Wl>h^&48^zN^p^qc+T7<$?Z_Wst5%#ckcoj zs^lUW*!H3vJL;KmI>6#!9PmNLmeQ@F-}ARXjeUZao#n+s^nyGcLW=O27PdGIH6;s# z-|4qBcY~Mp@vvzfEu|^0gEqQ8a9EKo>`GRx&@obzg2Oqf=fBo*{jqjo)u5;fB`1`d z0IaI6bMTVlVcxG*qEX4`6caRbhF16eLU_cBs@H080d>P66p+hyR0F+xo+YkFbR+k+ zcIuFiuD^Nez7NT^l)lE}wlkFDz0H{}6NVfzbrNutf@b~vz;Asb{fzDrjJF%vf z?yJd~i-$pLhS!A|0U9smWBF}O`$NyJ8#k;fs_JNNp7}KIx)Eipe&ws47Tj`Rp zlRQXh=@R|4f9&X>U=t;aVMxf5#9(JhZ`uBPW~7heJLx3D*~CI<=gSn-8Hei}W12_s zn6X%&80B#kPaNK`&9u+KCxgqGYc9{9Sy&EFhE}lz+-V{P*I!kny0Yid?u3d(VD{y^qD=)D9Uf+33JuXyCYZu1j9+-ode(a|?sCnn2QNgQ2s zj_)k%hbiQDj>)tcF!E3DKGbHmZpYDOt0r{$>l4~K5C9OGdgo+%bJ3Ujdlvz}2GILR zHER~@E*`rOMv--TZ05bDCa?n+k$fDn+fTy*_LRS1KYqJ&swT>5nfj0NytjWzmU3RT z@4JPhsT_5v4q4PQH40Q)ns0lgv63`)X72k{S$e0S*Zy5VX!TI$z*i8xj`PRI<_0CO zKvx(X%o3=d`LNS?a_6L-hl`ZgerhTL9jP4YRpu;Ux9^IvY93k7E_7s)xahXt(AG@@ zG?{R@3EOsAXbh-a=Jv6(>4;*V*S!+#Be%|~OP0B+^Ahqy<>7v%c-QtMXowyKunD=< z>0tTS=}e#L9UCll*xWCkR*mTiYL0Pyb|^japOme&f$IWSLndSw9>A&rukUKdU8C0o z@=on}C)U?7<}F1koLkzmNl$SK)g1c*l!}J>kdCENQI%)Kv}-^Bzbi1mx@|9u&ZY{e zt#tkA_sj*x1cLO{#Xq$3JP}dyXK<~ayrV>SeyCn0Jj!x4wG9UvmwLRGxvmVj7A}k+ zthfonDbDuI1%EdYSbnhQ2*&CLYQA;wln3T{lGazJ|WT6c+=>Az%lT1oT?lL1-3QH)Tmw9Fc{Ej zH-!Hq+&_=B+D@J}y}!KC3%$4j=!FCyDV%#pkX11@02$Q<;}ZYdxK@2m#RTubTEKm2 ziyRaLf4jvf^C18WXNKa3wvqNq@g93`{h+}9SDsC^zithgZkK=1_U*mQioZ9vV+!cl&i{-be>>q1$tW=SFrkQ00IJI4Lg z|8FfDYCkhO>Ybt`#on4M>(FnnpkUdOY#nbuu?-IvQh(|5E6 zg_*V%4IMKcpshLm7{$3d2+7wb`)>$+ituz1QLJ>2tz}5zW1G2z18>Yu5XTcv|(F}WS?udVxdv))& zC3-JNB<}SgdT(C9{q8sSa7!aN4GVNr)j@Z&aMDu#ym+s&w?|Y^BZw64^#_KoL4H?@ zu#6N#sKW z(Kz5@)%E3oR3%)6h&09Gqv|}#y_D^mHvlVfvG=HSoR zbYf_0YV&w}(*o_&Dz`5iYjj<2zBzyZ<{I^*BXHp7+IroaZK-uSECfF|SxxD&)ZS|? zxp{=YIIN{~&W7&^V}(!FlASHTU!b*I+S{0npeS*?6h*|D1=QBh4f+jsfjFX!JWsI0 z_H-0SPBEGs3uStS^~UIjZZCvYJLn}W$hSF?lOXMsl#^e@8_5kSs@q~d*kZxVm5%#d z!|CXefhfe%j>Yqa$I%i?u8zgWD|P=Ra=tnP8u4u+Zpr-*#rXdy#{Wk#?>~w?=nUTf z-2bC^7Vu}(h}@*1|2nIsDoq#`$1&99jD82az)oyIBji$ci$_)0H_V0yGqLDjK83Nd zwG?mU&mpax!$U2B7eka`C}-b4gWgxGVzDw$J8(lm(n?U;S`Kp7sNDk*rnTP%2V1Mg zHe_HV8wC#|11{g8fxQgilW6Lufc&P3jdR+&1ZXug@Kbj>skk+@%`Q4a=3MpA0s|DF z8o064hg@mUrY6>%_=q;jrlrRbJr-Ihhwhb5+x>6HIXQcK23QFY-NXNOtkg9O5O}|w z4Dk@uAg`TTIc)pKPI+~&LS4e6cy*p9eozdF)A0Rj4|((<(La^-+98!8`K39_dk`?L z1b~{F#bt_|tID>+!8WEe64wUVOp-RL9_aZ?L|otEySHN_Wyr|@j|6Q8TMXVhAs0l@ zzD8D0Z=hr3JMA9C-^#qj&K7wYG^9xzp&LXqIlE1ov<9G52Dg(huI&*?s}19ULTjZ~ z8s!gRPj;I#3Pc*KEQ;czLjIHOv>cj30mx-HZh)!zLKo#=bb15Hn0OU^S^uFBpi4&L zdkpx<0W^I{4i3>c5!dstM#X3-^@cM^2uDnvL_Ub2Ej+!zi@qBBVeKOx8jjHT^a*0d zdA2d#=%8P)Iz%Mb!w~1{Q52KsL3Cm$ZftvFDyaxm+WR?jmVUO$!iu9zf>|S*10G0A z7teU0sZ;XORe;^}<>YIb4m)l92b236 z1OaYlGI*^EJb6Q5!J&kC;N6kM+`yM`b!eeU)y%%?vSpdPx|KEKF1<)dJ}5Z$=LE}_ z=Z?U;2%S}_stlJ)Oul~;J#xxol)={Yg`~MlziK^HH}-7`wG^;>7BQ`C)pCBVmd4gK z`whtdQbf#*Fe(MIJiQ7Uuz9chD{z;#BNQpVD4N z0!aJ2r-PR~X7;){)aBp%d}QIX$l}ibdrr#Y(kY>2^z%Msjt5*7GE2b!ZXIXeUMKWJ z7_c_VF-l!`M6`sA5|Stw9h=cL50NJb5ohFl zGe2dZBGG3;5x(GN&((3d*-u1V;(_qhnxb9K4tKlP>$DNc<<*>VDUgy~P6Svh&u2!tEbj8scU^iG-a^k1qH)A`-dX>-oPsI=v z%v+{_fGOwNmgi&*JT`h)%=w~o(B&ON8;^h)rA(^9awFV^=xDrhkO>pdwEZp7mLMNx zG@#Pui+S%~yrV-Lf;elZ2Y5Z#1+c%(=Q`tpj0h3xIlGy}9OK8QM@;ue zD#u`&Ts!!>Y=OFw^A!5NW9+5(UM%|4H5ij8S>GPyRsRw)5q&$q1(k||_g6J7)Uw0s zF=;S%&l`d8%o_k>WNsCwV0)4^TM4hCc%A41TW;u$NEOn7ojSn)U@nk!Z!y3<<2fjs`J|&0vHJw4AwB3whn z4x)mZYb`dwd=me##=DXXq|AuCNwlj=+;B%(tMD}ivmDALf( z;xn>1dBGz~d-HF_;7ijYb`sZ$!N{V4ld-ohLBTBoV3hAIIv*4cd`ghBb(Rbc-)+}0 ziU5&U!`_xL)j)odde~H=dfsX@b^jvYfCya^nH3Dy17ej&v#Gn=Bm6oK;uCrJ2X5?4L%|>FkY3J^ z`6`%C&XAY~!DtJD6cyJku;Zsxq_R?|EA1ALB(!ioJ-(7#Sp^$;(lq#qdZ=CK0dk$X z(I=!M$An_=+3}jdaSy>G9lsTRYNANnqr*^uel_J$(S4?KM$eM*jx$T8Z~&~8EL@kB zw=7&lP4IG|_*v;F95bmD~)B=#lybT8trxNZU7TeM@G$22$oLVb0;Z zKhb^m!m$O_^^2A4t$7kgN(>E{*UO07Q zVTehjVS+Rm6M63N_|jl4)7j9V9W0)`Qgy=_{ng5t!g~9`mce2l^s3EeDW-=-)u|fD zu;0Yq(M6$E=LwA0rW;az5zo$i?M$yk{8ALr-<}l_haMaTgN#tozRI-a{coXH=LpE8 zWpMn~e!zt>51@BlS>@_@2VT{B%k5Br-$=!T-4v12ozRti7ygVmyCS;c zK19jB5b}nwhi!pv!&$Hc1S45pg|O^>WAj%N5Tn~+SL6CO%1Tk?52NqVcLIT_Tub1d zbZ9ZG#hP@paEZjT?U!`3bRJ~0d}rZYsLD55nFi*jxLOBD{M+n9!AT*#ITAJir9356 z5D(gq=NFtcVPUNF2)kP%XZQFxh+Q7*o;l=~csf|e`}jEq3+my`gpB!jvW|E$ZscP* zwDHFIpaSm>EHpLcK+maL`>LPPyZLUtZoEk|Z$&CwkH#;X_=+O};)^5d-HP-n?wc*8 z1|W4PIciixuFhvxs*y})HMjymZYCFsvTm>loFo*62yVC6QL3tKbv`K{6gTVErDg}7 zkqM~I;4rmYZSjb>=q5Ls#;J7>Vb~4VF31Lo2t)lJ6cJND7aBu1`{b?S5+oIpe>{{R zEw10m!j6cHpP|DNgPK7R-|)Z^$KXQ~|2uu5qZ$w?=s~jB3S_BsiL?N7-njk(U*hp8 zn4@iJtsq+xFZ=cm{{6i&b|=U%QEc3jgm%JO#jrImNr-H=~bSJT=%CIN1XkN)@sE2LFo9#IRT>$nhJD7Re6U;!I&X6TU-?l z##m)>UC5E{t?om=U4RSGVDvoe>cpnaiQr}2N=73|WsAnh!@9f+y7NYKt#(li7@*cs z3?%S)WfZO9CyPVx7Ma6dI@VJ+I{&dUIAs+bmI2HXis_jbmH`-v56ytwMlv9o#oh0_ zvk_HXP}sU=15xlI=41)Qw*{ABgFLPrT@?!~!Ez&*`l?m^WAU{y;j1w)X+LyHi09k`U zc~2@Cl73b|5&(`sEAqjt(HN<7SpiSK>`CM0c=wYVwn zk%aDfntLc|6JlJw27X?IN_l0*c9VqK!v0dP8@*>JC;>#O*zWB($WZcWQK2YPNd3DL z9e$vGgD=&kM6#?~Bcltgi7zit8l~=c0kx+|>;qpnsc_N3{vC9tbcT1huNQ3Z=@}(X z+aAOxo6RCZ@=6a!4-%15{?ib*sNDj5?7Ff4y~l{r4JH+VlUwH|bRFG$se^z5YT5S0 z3?sNy2*{gNcV4~D9lH@L{wwc>L=untO_6mvU`ft-;t4H6v3&;&)8dO+RZ09;+tZ~X zTGTe(o{Ht(Jd!Q|hh(UYxUs=aG$c6v@%{B(G&#@M@3#MEJB)iOxFVBOTV>*Fb4AUi z?_Sc6*u+e~pt0kABrL*H>!Xi%wUOyUxnWcY5l|Dc`+7M2rAQY5UA+BDHhO};`h6SU zQWNi^QgiQ&G`IPK_#Jy8a~^Zp8a(#td=S7oyLG6?XvR)kqy1J1EoJ&s8?_I(vqaOu z@g-KN`Xw;FafoNDy>Ox46ds%KtE2yCZ|+7E)A`jLITo>T2Z3u$N28_FYISPd=aukt z9pHa8Xci~FUtA!XM$RP;Z@3Dw#M#gDf{(cz>K=xg$CoRNj+blZtgNo&t3^g%M2CG8 z=S#3rxaq>0SvxRxLfa@(0AJ`SgJJZ@2k!ZZpAk<*(X?_>o`+ z5AMN<;G4xBI!TdfiZ?6Mx2f<&kjv0s-?oHHj=;dT+{Lu9DT@~jq}(vqkB^3MTBonT zf3U-SIkYK*miNR{ct+k#AZvkk2!7g+@@0-&vA zf0hX`2(;LzIlSoyJ4Ib?L2b}zRpj$Ju&)?(s@iu1!rQr%!)rK`6znLjOFb%6CE2JA zs}+M(O1ws-*|4$O2JBh!e{QdAq^Er`xnA^-^+kXZ{&PCsYtpWzm$}{%nD@l4@fTBL zI{H^V0hsNyIM>}hE?_uFurWLeaNheODqV3~zY|+yt}Ix?;=ODV{^ia2iTHhm@R{U$ zybRwyzpN(EJGA|?9oJFg09f5>a5)f8_!;=MEiC9fW-`>doc@~9k=X86Hr8PvrGBga z0#YQ9|Mnm6=DnSm;D+UC4NdzCq=M)J)Bcznqyo`&)fik}!< zuj8-8(kx`?hlb)zNQZ*$_JXlRx(5*~Z2ee}3~+cAf(vT(WZL9&6dBHBo<6GGjAj<{_G*Eu1sT|up#Ln#eS)7 zABs4|!?eN{*?95>G#p|)%khj$G%z8l9M#=8xkC);%T}C10Z#wG!|vyqa+Ybq<3Q*M z*$wuB1xQm=Q^gk3=4JHBu+--uYcz#j?S=g z1#VwROd4_mL?KKvCd{KlX%GDsEBUYqA_$$si9!@=T|6BJhR`|p#__E~;R(i&sX9ax zJYL+)vg0Y0nB?zEabKJzO5l7Q0$e>-B{eWH*F8@eajy>WGW-He!)oJX2UFV~HM>$t z4`pWj6ZO^*hrZV+=qwMFuLgUzQ+bTjIbm&dkBco~gB9bmf?&(`q|c<4p@oIG z5?6mF-MFIFeiJ~eGuYJ%;la4(RmJ(42eA?L5|~J{Y43){ELzH zAd(kL4Q;RXug<>~k>;c`apGTV@H2geet8T57{B}Fy!O^OZ6fK@@h=balSII*|E@rd zfg*AF1&wt9Aa*CMdbZE92)C z=9%i1@bF?LwS0^78lt=~(ajHl&XsgK1VKuA-dmU)g-GHzJ>wmgI2`o!^T#5cUVVFWn!e(ZP=p6<*?aq9~06maF88!l$1drOz+K@a- zrCmS^XzsdJZ%fET5L1lzx>oL#;uD~bv2q?yxRW{nO%5JDp418+9#=2!KIUzgluAs! z0P960BA0SAN(?g*HZh-HsO%{k=fcsyp6C!-^4{|J>Q zkxOYgr2m-+y~mI9Ox@qJOKC?|*k+A{dSXyl$)5E*5e1EJ1uBP#O~~-B0XRCv&Av5m zn&7X3(DheNW|U`PFUtGnBGh6J!epRP2nxX&A~-+mC6#NWOR|X17!wYMqb7eZ_v#Ku zY9XHcb$-F_Bez7p3lOgy>&&QPwYM@gF0MYVncaq$uhbTNQ;q#gFveoULK@MT*+Xe7 zXtwMc8#uUX1n!#!?@}8&fU_ldW3t6nBokB@S9j)t^W*Sl_ICP$Rb8JrJ4EtDB*3_d zE#qd0$ECpJ49=ABe&SnXqwv;F6Z@;$)ptyk32dy(>Y!_-*kUHC@xP&n7z(!`gFAW) zlu}lMc&+I&#Qej*niR>{DM|=-poKmjFgXk$;%lrU3Sl`=1z zynKm*S%{WufAf3c4Hr-lpWFNSRzIx)em_k~?yE?4CI@I}om+NN4eJY)`r>M~ykiX8 zMF*qPsg<_gOkQb}Qux>x!qK0DLR)FbcBUVj0&OG7k-R~Q)8k~$jQ7?wm^)$D#vfe| zyE*;omxeNAK`=7|7$0QJ4sOfeO~A6T#Fm8Ep~VyW9pKN-VdV6q$E&40x0dL zW<$76j)of1h-!7k!!))kVtLU0%S8^1iA7JLp+#nGOve(m?nU336imq)(V!j&sSG-j z-MNX=2RKfm$?^%W;d^NLWS~f|+qw~nDoL&R1FQ@G7_s_{@FWAXh#`CC!E?mmW7`q9 ziK4~T!gV4791ONGbD#V_Ja7Vq!Hi|!=FDv&o2}rz^D9`x6FJOVZp>|^@PeWu^{Byl zrLY7dU@Qwu3Bb#4BPmeDA#xiQ4P?yOCekK>aMFYNmeM8-q|yh% zoMce|sjva>r9sEQ$uAeWwk04h)9UH3X=`bgRt{=rF`n_!y}wZ$`F7Xb2Rq3B^f0lc z$h!(GwSPZW5&u!^IhHlT5@vV?Qvh49E`}KR4&j>*Fq%NnK89jZx4F}9IkKTAe%Ee& zq!5M*bxHe8ev&gN)Yk7_JnXl2O~hzu_(sA2P;|o$b8z(wk(wyt1s~+xV$tu$q0!Gw ztG>s+xn*D*g1m^Ck2N5(d}QV>mb8)}Ttag?46Gm(744q!!|Q6kv!HvI7%TZ=fO^lKCL2^!!#4KR`5$gj3tui$Z+htrRa48 zoSUkm_EHY4&GcBpb;iu+a#=!AhAR~8yx!+=J_E*ZGX&V!_hZ9;bu%9@gIdn(yPXVU zzr5cGpEU$zbM4AO+;gpg5*B7Z?x{Zml?MVm=k?7ju7aXXu_N9obQx*!b>F84#2fV` zS_`@=y_JdPuI?hP1Dm4;zQrjq0j-ZMg?uFhI#GA5>D?L$P})A1wx>UqGrEt&oHd`48I|g#poq5-YcGOq))^#3Gr_ z&mnPujv# zan3GK_1Xi}VN`^m!KDFEFaMgw-8gM3l|;G3Ufd?38X|0cO7ID@a`Y0Q&N`xh8V0V- zYih-kPFi@06a6Q%L7O^FvV&u{QCfS?pz$W8t;7KWN`yQ13_+=!_?A7ud{V;NoTgw< zGCfIjr+@--vBMv+MWb|K)+Q)fy6VR$8V?-@WHjuXq<`X}KbH;Xm?p9F@{%=4^sr_g zN^LX_*d^5NR^dv9DcVL$zrH|UnE;oN7xlhk1&TV1w$!Pke4Dv}7dhdUcCR`SX}i$7 zDvP$fb3&g96%2}O{7w|0sfS`XBom@k>%>qX2P$^8Ola)3-`#2+o%UJ=y7iwdhOSxL zv;`{F>F9Q!TpDJQ^^i2oSxqil=0|itbA>vAwmT1>MS`;Hlv)H8Je9jlBHr(WvwyS~ zc)q<{zOO@I5h|;{R(lN{t_ryk@}Io@0-U!x-t8C9M67T&1pvi}j&TB0Lot;4UqX&~ zLp1&!!XX5L&XqBjddS_vx|MC5q&G|?vgYu@mI)$?p(q+j;23t?#_#_oWOa29#!D;*06A1V4aaE1nGFd zkY-1~9ROLphM*#Wio>*Xo-tO^U(ySVibMpalGa*K>503!V|Bd)m>iwZf8U(5l(Abb zbyZlCLI%>gh8`_~12@ldWef|V^9}}n8%foa*3|0nvN)ryk6$?C%dq+}h^I2G8ZGbg zV1SKr_i}PvQ2}p}a$(dqDihXV|*e*>D*PsIW=cLgvnoq17#8%r>G~m2zsduRX*~V*XVnis&G~P4}t^P z-NEk34sl?|OkLAZBZ*zab}GNH!9U8Y9kYsu08BKQo$q1(Z)Xg;^C4~NW1UXF|hklZ3eXq=29@`aZd7N8zpKzWVFYK|Di(;*fVm(sAp28vL zW3reo%}a5e=KM<0F{V3!%nS&I5BR1^BO)G?2TfWvq~eL73(`*&gGiF>8&( zmp)4!M!20Jro-}o!QlxPkpDt2UIY}Lbah+^_t;kg!)gNwhQP@5X zW-oUe3NS>mo+v?2S(V#hI**dprMS*)wpblILDfwJb6Mv94hX zl8Z^0gf`m}=cA>lmvOX35$2tb*vxiTW%(}(;D3jiOG>qqq40+5^8ayL z|LmDP*J7~DR=q~{g`OjC%=m9t7tCF{Ka|TtFF^D1zo^#a6GQin%>19Q{@((KQSKc_ z>b#816X}1fKpn69^;)o%8tV&S&+mcC&h4kYDTv+{mis?C8}mPOxPeUIi~UcqfZ^N_ zh5U;Z-gzg;D9d9o17}F}D+H6pWNBK8+N@^dMbwm5xeaFPxf0NnUZ!(fqEb|;Uc$lL zNEZqiiut=Qtp7MwXy}DBKMfV&HS(g`a2p{lOYwgs@lnfcSMgua%ly9pC(Hi}K=r=> zu0H?&@4G3izo06e=h`^VC;j&*2XnLg2}1ni?erf|q$S`u*Wmt3?dtz&<0-?UV7A^} zS-L@lrDN$1QR#+d>6WggyAfDvq-$BaSpg9QL1_d9q(wqN6bVI2Qd+pHKF|B!?|bh2 znKLtI&YYV0F*D~}*#1xUi`jXK432-{V0X*Hlpn|FZ+EcKCRs{Tz6xtg=iBE8lpw{V6++;n&HiiZ7R-;TbP;;TX&u(nf`ny&Pr*xW$6OQ9QN& z!pGAPr=?AGWA>?l=OF5n8}g#54KT)qkL;mMifw6n!8k1QI_h_2iMNQ zGw!*il*?V)yL{TMf$(e4KXC+=79UgDUsC)+^-K4Q@Jq}G*&`l)Z(?^jqDqRr72u`wbSt`#*F$ASEuXD$V=()v$L;1&jwGfBhL2^9ExSb zFE2)VWHHE#PjinytT!Bfm;1KtQXP7Jboh0{9&)wSvQvD5?2_H>A^i4AI6Uz#WwHh< z7hdD91)~DHaXW;CZSqrtcTR+^`tJ&E1l(@K`5`!(34Dh{MSWrX#EozDzT;tL?r1u0 z#N$$thsRVUk<&wz>;X&>A)B0<8HV0|-nkKsn)F@#S*zT+Ek*Sp;~R+LdoNtS9Ev>$ z3hj#ZPUD&)Z>Zr$b;StnfJDBm@lJdgVQ2`nTr%8}%axO)%&J))>AKZ@X({VPQzF7l zNxGG-G_m*rc^!6nd9}X2D|dA%n&GV2H@-*tl60zWL(TOOoyybKN6)=r0?#9-Dd8#8 zossM+9>SSr#>Kli@)xx(toxqggf^Fqoz3#cmYvP!4%)k6Md?scr{G8M_<4@3Ts?<- z@M8E`Sl7KEb5d65yHz`D`nd;k2ITe6dZ(-cuZT|T zz1^svqck54AH7ZxT2Zwqz_sYP)xBoLLu8Bq3h^cb_B`p1Z^LKf#C)5zpJyMpmf$BRt{*P%X-rdw=bljts5ANk#0CWO(tPrdFpZXJ=oZfOwOmj7^<;7OG?{Ga(1;oRh|HTt;2mJcvj!STbG9gItB zwU-2rht@y>e;U%Z>@>%=$@yK8+>#c_%S1GOOImKLY}ymp{ha*R<0m9jU}&wGa*}$s zDrbY0k#uD0l{s10fSx>$S68_TN0x*DZ$K^&vM(`rSkPl~G*c#B;(({FF)?y4O0*zV za+NNj0SX29r|8p5Y?$3E6Bi*xab$DG<%8_BSGKpr1z;mRIdz8e&pIQ9zNZ1~`dOH7&x-B(e)sX0`53)qOX0QF5bfEyG z{^^QV2#EiOxJY?hdwpPFvyz9F+wsh}xPgPFqeqa@63L4n9f9r_nBIUhPQ*i=Do9QY zf!BZ-Y9noQ@ko>)*MA!E@aEPt=@htv6$2Ott`Ovd;QrL)OYQ#9ivpS?OG5&hQ^y$c zIX|Vtq~L#$J5DvcmDKya5au7xphJh8?-g#d(RI8*!GvpcTh}1H(8#kNl_%Q zjG*acB|Nqk7}bWM!C(Ta2Yxb#^%s26Y`a-Lv17_+eY%)frO|Hh_y+H_ax?|vgM#kR zxOgA^JzoP|-Xa`S!vMR@^XUib(R(jIF64(21D%~#dW#}2a~Deeo^VJeG<+6A-ZUx7 zu1Wr4ldCISTOrJLH+hpkIX{XZlro+k4mPsO;^CEgMf@OXN!!pQ;cTU1=mW!}Qr(mK z4nhJbm9B82NDRx?)6hw4w*q)2{D4h&J1C;s_H$HH3RT*L23SiiWU#&G#^WK2~(_-zd z5shFVDL8u?jSa41-zY`2_G>fdCFFtPNAo;qJD>8$PmaDfeJO#e!a*9ntI{`D&OJa7 zHr0=DGmPA+E1Y6gJ&z!Zx{v02(f3@ylQ2ya2epL5ZsSJfFn%QBr|cLC-sOKHjG@W* z*{%heR1`df8AchGrxtYOjU6J0V2^gY(fgtq_bFJFDOKJWC#p~KH{n@RP6mqg_8Ie> z(CBqK_XJyqFj4K>dm=gAo%V|-wMMC9vh~G-yfE2Wbgcc9Lw&}Z_tKQA?$-P`6gJ>~ zUh>BFt%mfZjM^)Nwtfxxqn{UFPZ%d!D!l*~E?{<|nPg3|qFZRF!GGW%QD3MNO^f7lsQ>Yp{xaMs3P1zwW zz(%c;ZB+MT1jd&X5ah*~keSEnc{O`P%C5)4e|#_gt4lRxU-he=yvt0&)CqqzC6OU* zFOxuMb|Ae_F*4NY%uy&qDz3f;ldNo{Uzgnk&Ze@M*!>LG)fQ#@5Eg*eSK+`<%0IIW zfmAnf`x0n(HE({d#bo=HWq|;$drjHhZPV zKgMDhdC^96E^jCwDcqFBQ-Hb^^s~b~33Y~XTJ*l)A$J^B7n9G}q^P;s?|2Ey=5DuX zABpM2xk~n>KA@6UFw!1_dqCia9gau=T2A$xE@4O zmrkx!2_+j_hLX#xpE$GpVl-4Ws(EzJmR?$x+%R*;)QY){2MbQ)&XCpcj^@pZvcqT` zgS&1qYrVLnkQYK{UbNRdGwx|LJ$h=AtRj*48Kv`$A&btoijy$TNUo5=aG0Z5(AyyW z+DYN&xiTV&94x7#>)0CXG@oMyP()@+jBz*~2ZyAAm2!D4&G)-u0lKPTHF>AydA`*k zgXwI$;W8LphNJt<7ig7De-Azj5()=^F>^CaGn4kh=O(ef7tl3BOhtp(%7|!czitxx z7Z{~GQ!5*_aYrC=+>Vz&Z8Mk!^dc3{bg{BJwxqGt#(#gj?;t_$;wRt)$v#^oVfk@- zm0O^^)_Z=2F(8V`K1d8Ml6`K}B_+mKAiH zF8upBjF{);GOE5IA-2~e_|sevRe_Y)&Bx)6Qk`Pn_PY=3s!JI+cvXMAb~nhUaCQwm z!9iAqksIb$)>>3y4BPG_+XvXX30(n3-Ztl*{X%Fy6TRNZnQKCtz~HzXxexj^mNZ);-K4a48CbLG*h5#Coc&31e)+^#FM1S zv&pdeIv#yDFgnO(ZL_?xX0zRn1NDgp>1nX0_?bispLoDgdIEScwJQ$G7zpf`%7Sy#j@fLF9 zw(xS6vs1z^mp)yRJ%`MCQs8_JV|RX@yv_wg>O>3E#_noel2xA6fxj(6Z1&kT;T9Hb zs;ib$-SjEC>gJ9YCp5Ho!XoXbSRy=_;qim$r^y3chDYUgn^v~@vz!03;Ws5%M8<}Rv zlbWDb#AV73AU5Ww-hi5#2M6;Cm4n>z(JQ)Ev1@=kIOm= zxiwwLTDJU?9}LrU%B600WmG(K$=9F?5V5!d^wjM#chq(p?ie%ZLWs26a1ne(R&6it z1{cJ4(3V_!a`ERjy1hI$j%t;ybQ`ku!;M92NEYggTnW%w&-3o-tzaffm3P(J@qHST(?V3&uqzjmP&O{rc&XAF0i&t%97XLd?z z{UdI91UYZY2b&NrQwMzBCjDu^l9>_~#9mlGv1w_1JAfjgM}^DtgV$2sLEUK2_H(5j zVyS6Mmg8{b<#xMew@__ehbuBwMW*i3b%A#)e&l#)C)Fckr#)Qn$Y|p{slUaXgg)UX zZ_t8#jQMqzH)-TvtO4mR+u}9RMzgS<;zBx;y2wx_u|^iPMkZUjnP3S~R~}4!r0jdy zkssateOSc#s?62VG}&8rjxZJvbpjqvvrJZ(Og0UDWthfC&4$e)PA4RUd@K4diE>Tx z!0jqI+wExnp>%PL3=SSBv~n!AOLm+p`P(Xu>aNd(M9c+oPx^X8=%&_oqa}yZdk&S% z%I|&0+&W6s%8GW`PG-W2jp?*{_tleeO%o!W6Qb1BlVJjHO0kJZ$O%N$m6WL8urU9I z+YV(%xsEapZ#O}!SXRfbx0h*#FzF70kKbFRM(;5#FDY~@b&q|`Zho0dn$cj-v@SZ} z!}&N5(qEK%^-~Ujw#EU@{Y^KDmIed$fjQ_jFi-^)M2AiX18<_Yz(66;rtaT{2rf_v zD2KMi1lZ_Uyl?y4hf~ELI4Hf3Ma4KkD?rUtJ*yvHYRX z4TL~>U<7)P5G%^W99ohHC>6G(!7i> Date: Tue, 22 Feb 2022 04:19:25 -0500 Subject: [PATCH 092/345] Update 20220215 ITR Tool Sample Data.xlsx Update more units, as well as report_date. Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- .../inputs/20220215 ITR Tool Sample Data.xlsx | Bin 69769 -> 69746 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/test/inputs/20220215 ITR Tool Sample Data.xlsx b/test/inputs/20220215 ITR Tool Sample Data.xlsx index cc925c74a8d128dfdcb20444f96d6a194efd3566..8997d974ec59e6e8a996483df91a222d4965a7f5 100644 GIT binary patch delta 28294 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 KsKG&d4)Z_ukf>(> delta 28139 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 Date: Tue, 22 Feb 2022 05:22:41 -0500 Subject: [PATCH 093/345] Infer ghg_s1s2 initialization from historic data Initialize what will become GHG_SCOPE12 production data from historic data based on the year of REPORT_DATE in the input template (if not otherwise given in the data as ghg_s1s2). Note this is a WIP: we still have problems in get_company_fundamentals, later. Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- ITR/interfaces.py | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/ITR/interfaces.py b/ITR/interfaces.py index 710921b3..043f41e6 100644 --- a/ITR/interfaces.py +++ b/ITR/interfaces.py @@ -428,8 +428,20 @@ def __init__(self, historic_data=None, projected_targets=None, projected_intensi # TODO: Should raise a warning here if ghg_s1s2: self.ghg_s1s2=pint_ify(ghg_s1s2, self.production_metric.units) + elif self.historic_data.productions: + # TODO: This is a hack to get things going. + year = kwargs['report_date'].year + for i in range(len(self.historic_data.productions)): + if self.historic_data.productions[-1-i].year == year: + self.ghg_s1s2 = self.historic_data.productions[-1-i].value + break + if self.ghg_s1s2 is None: + raise ValueError("invalid historic data for ghg_s1s2") + else: + raise ValueError("missing historic data for ghg_s1s2") if ghg_s3: self.ghg_s3=pint_ify(ghg_s3, self.production_metric.units) + # TODO: We don't need to worry about missing S3 scope data yet class ICompanyAggregates(ICompanyData): From d60c2ea844f8dc06f0dab136c6031d63cb6415ce Mon Sep 17 00:00:00 2001 From: MichaelTiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> Date: Tue, 22 Feb 2022 05:42:01 -0500 Subject: [PATCH 094/345] Update 20220215 ITR Tool Sample Data.xlsx Added 2020 production data for Excelon. Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- .../inputs/20220215 ITR Tool Sample Data.xlsx | Bin 69746 -> 69777 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/test/inputs/20220215 ITR Tool Sample Data.xlsx b/test/inputs/20220215 ITR Tool Sample Data.xlsx index 8997d974ec59e6e8a996483df91a222d4965a7f5..eba8ebfa6ae2fcb9a11ab2f0b382c9b229701014 100644 GIT binary patch delta 17651 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�EgUOvA*3N`ZbsoPx3xlj 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 From 8ab1e4125a0d3b89e4bb16bf5d4dec51662b6b68 Mon Sep 17 00:00:00 2001 From: MichaelTiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> Date: Tue, 22 Feb 2022 05:50:07 -0500 Subject: [PATCH 095/345] Update 20220215 ITR Tool Sample Data.xlsx Set missing S2 data to zero so we can calculate S1S2 from S1-only inputs (such as Hawaiian Electric). Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- .../inputs/20220215 ITR Tool Sample Data.xlsx | Bin 69777 -> 70410 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/test/inputs/20220215 ITR Tool Sample Data.xlsx b/test/inputs/20220215 ITR Tool Sample Data.xlsx index eba8ebfa6ae2fcb9a11ab2f0b382c9b229701014..ffaae8dabeed3a9fc9b5f104e34951c10dd08a35 100644 GIT binary patch delta 15809 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 DV_?cU delta 15156 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úvr^$z^rbm=6$UTbqUj~ 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 From ac84748891cb51b7e9bf436709dcde795bca375e Mon Sep 17 00:00:00 2001 From: MichaelTiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> Date: Tue, 22 Feb 2022 06:05:24 -0500 Subject: [PATCH 096/345] Update base_providers.py Use EMISSIONS_UNITS; do not default to 't CO2'. Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- ITR/data/base_providers.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/ITR/data/base_providers.py b/ITR/data/base_providers.py index 452d0e15..f6b53dc0 100644 --- a/ITR/data/base_providers.py +++ b/ITR/data/base_providers.py @@ -56,10 +56,11 @@ def _convert_projections_to_series(self, company: ICompanyData, feature: str, :param scope: a scope :return: pd.Series """ - units = company.dict()[self.column_config.PRODUCTION_METRIC]['units'] + production_units = company.dict()[self.column_config.PRODUCTION_METRIC]['units'] + emissions_units = company.dict()[self.column_config.EMISSIONS_METRIC]['units'] return pd.Series( {p['year']: p['value'] for p in company.dict()[feature][str(scope)]['projections'] }, - name=company.company_id, dtype=f'pint[t CO2/{units}]') + name=company.company_id, dtype=f'pint[{emissions_units}/{production_units}]') # ??? Why prefer TRAJECTORY over TARGET? def _get_company_intensity_at_year(self, year: int, company_ids: List[str]) -> pd.Series: From 12e62415e405b0eae709315d2869417f9abe253b Mon Sep 17 00:00:00 2001 From: MichaelTiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> Date: Tue, 22 Feb 2022 07:36:56 -0500 Subject: [PATCH 097/345] Added handlers for S1 and S2 targets Many companies report S1-only targets. We should handle that, and translate to S1S2 according to methodology. Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- ITR/data/target_utils.py | 2 +- ITR/interfaces.py | 2 ++ .../inputs/20220215 ITR Tool Sample Data.xlsx | Bin 70410 -> 70403 bytes 3 files changed, 3 insertions(+), 1 deletion(-) diff --git a/ITR/data/target_utils.py b/ITR/data/target_utils.py index ce87668d..0f49228f 100644 --- a/ITR/data/target_utils.py +++ b/ITR/data/target_utils.py @@ -131,7 +131,7 @@ def project_ei_targets(targets: List[ITargetData], historic_data: IHistoricData, for year in range(last_year + 1, target_year + 1)] ) - ei_projection_scopes = {"S1S2": None, "S3": None, "S1S2S3": None} + ei_projection_scopes = {"S1": None, "S2": None, "S1S2": None, "S3": None, "S1S2S3": None} for scope in ei_projection_scopes.keys(): scope_targets = [target for target in targets if target.target_scope.name == scope] scope_targets.sort(key=lambda target: (target.target_scope, target.end_year)) diff --git a/ITR/interfaces.py b/ITR/interfaces.py index 043f41e6..8f20e4eb 100644 --- a/ITR/interfaces.py +++ b/ITR/interfaces.py @@ -247,6 +247,8 @@ def __getitem__(self, item): class ICompanyEIProjectionsScopes(BaseModel): + S1: Optional[ICompanyEIProjections] + S2: Optional[ICompanyEIProjections] S1S2: Optional[ICompanyEIProjections] S3: Optional[ICompanyEIProjections] S1S2S3: Optional[ICompanyEIProjections] diff --git a/test/inputs/20220215 ITR Tool Sample Data.xlsx b/test/inputs/20220215 ITR Tool Sample Data.xlsx index ffaae8dabeed3a9fc9b5f104e34951c10dd08a35..9294c762a56296a9c6813fec5d591d7edaa00743 100644 GIT binary patch delta 3383 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 Y+Mhl!0R Date: Tue, 22 Feb 2022 07:40:13 -0500 Subject: [PATCH 098/345] Update environment.yml Added mentions for pint and pint-pandas, as well as latest pandas. Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- environment.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/environment.yml b/environment.yml index b526ba06..c997c797 100644 --- a/environment.yml +++ b/environment.yml @@ -95,10 +95,12 @@ dependencies: - openpyxl==3.0.7 - orjson==3.6.4 - packaging==21.0 - - pandas==1.3.0 + - pandas==1.4.1 - pandocfilters==1.4.3 - parso==0.8.2 - pickleshare==0.7.5 + - pint=0.18 + - pint-pandas=0.2 - plotly==5.3.1 - prometheus-client==0.11.0 - prompt-toolkit==3.0.19 From 2dbe0866319f6b07c252b89fa9cb9ab1d56f6185 Mon Sep 17 00:00:00 2001 From: David Kroon Date: Tue, 22 Feb 2022 13:52:08 +0100 Subject: [PATCH 099/345] Move target projection to class Signed-off-by: David Kroon Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- ITR/data/base_providers.py | 115 ++++++++++++++++++++++++++++++++++++- ITR/data/target_utils.py | 10 +++- ITR/data/template.py | 2 +- 3 files changed, 121 insertions(+), 6 deletions(-) diff --git a/ITR/data/base_providers.py b/ITR/data/base_providers.py index f6b53dc0..2c90a814 100644 --- a/ITR/data/base_providers.py +++ b/ITR/data/base_providers.py @@ -13,7 +13,8 @@ from ITR.interfaces import ICompanyData, EScope, IProductionBenchmarkScopes, IEIBenchmarkScopes, \ IBenchmark, IProjection, ICompanyEIProjections, ICompanyEIProjectionsScopes, ICompanyProjection, IHistoricEIScopes, \ - IHistoricEmissionsScopes, IProductionRealization + IHistoricEmissionsScopes, IProductionRealization, ITargetData, IHistoricData, ICompanyEIProjection, pint_ify, \ + IEmissionRealization # TODO handling of scopes in benchmarks @@ -329,7 +330,7 @@ def _get_intensity_benchmarks(self, company_sector_region_info: pd.DataFrame, return benchmark_projection -class EI_TrajectoryProjector(object): +class EITrajectoryProjector(object): """ This class projects emissions intensities on company level based on historic data on: - A company's emission history (in t CO2) @@ -549,3 +550,113 @@ def _extrapolate(self, trends: pd.DataFrame, projection_years: range, historic_d def _year_on_year_ratio(self, arr: np.ndarray) -> float: return (arr[1] / arr[0]) - 1.0 + + +class EITargetProjector(object): + """ + This class projects emissions intensities from a company's targets and historic data. Targets are specified per + scope in terms of either emissions or emission intensity reduction. Interpolation between last known historic data + and (a) target(s) is CAGR-based. + """ + def __init__(self): + pass + + @staticmethod + def project_ei_targets(targets: List[ITargetData], historic_data: IHistoricData, production_bm: pd.Series) -> ICompanyEIProjectionsScopes: + """Input: + @targets: a list of a company's targets + @historic_data: a company's historic production, emissions, and emission intensities realizations per scope + @production_bm: company's production projection computed from region-sector benchmark growth rates + + If the company has no target or the target can't be processed, then the output the emission database, unprocessed + """ + + # TODO: production_bm should be per scope! + ei_projection_scopes = {"S1S2": None, "S3": None, "S1S2S3": None} + for scope in ei_projection_scopes.keys(): + scope_targets = [target for target in targets if target.target_scope.name == scope] + scope_targets.sort(key=lambda target: (target.target_scope, target.end_year)) + while scope_targets: + target = scope_targets.pop(0) + base_year = target.base_year + + # Solve for intensity and absolute + if target.target_type == "intensity": + # Simple case: the target is in intensity + # Get the intensity data + intensity_data = historic_data.emissions_intensities.__getattribute__(scope) + + # Get last year data with non-null value + if ei_projection_scopes[scope] is not None: + last_year_data = ei_projection_scopes[scope].projections[-1] + else: + last_year_data = next((i for i in reversed(intensity_data) if type(i.value.magnitude) != NAType), + None) + + if last_year_data is None or base_year >= last_year_data.year: + ei_projection_scopes[scope] = None + else: # Removed condition base year > first_year. Do we care as long as base_year_qty is known? + last_year, value_last_year = last_year_data.year, last_year_data.value + target_year = target.end_year + # Attribute target_reduction_pct of ITargetData is currently a fraction, not a percentage. + target_value = pint_ify(target.target_base_qty * (1 - target.target_reduction_pct), + target.target_base_unit) + CAGR = compute_CAGR(value_last_year, target_value, (target_year - last_year)) + if not scope_targets: # Check if there are no more targets for this scope + target_year = 2050 # Value should come from somewhere else + ei_projections = [ICompanyEIProjection(year=year, value=value_last_year * (1 + CAGR) ** (y + 1)) + for y, year in enumerate(range(1 + last_year, 1 + target_year))] + if ei_projection_scopes[scope] is not None: + ei_projection_scopes[scope].projections.extend(ei_projections) + else: + ei_projection_scopes[scope] = ICompanyEIProjections(projections=ei_projections) + + elif target.target_type == "absolute": + # Complicated case, the target must be switched from absolute value to intensity. + # We use the benchmark production data + # Compute Emission CAGR + emissions_data = historic_data.emissions.__getattribute__(scope) + + # Get last year data with non-null value + if ei_projection_scopes[scope] is not None: + last_year = ei_projection_scopes[scope].projections[-1].year + last_year_data = next((e for e in emissions_data if e.year == last_year), None) + else: + last_year_ei_data = ei_projection_scopes[scope].projections[-1] + last_year = last_year_ei_data.year + last_year_prod = production_bm.loc[last_year] + last_year_data = IEmissionRealization(year=last_year, value=last_year_ei_data.value*last_year_prod) + # last_year_data = next((e for e in reversed(emissions_data) if type(e.value.magnitude) != NAType), + # None) + + if last_year_data is None or base_year >= last_year_data.year: + ei_projection_scopes[scope] = None + else: # Removed condition base year > first_year. Do we care as long as base_year_qty is known? + last_year, value_last_year = last_year_data.year, last_year_data.value + target_year = target.end_year + # Attribute target_reduction_pct of ITargetData is currently a fraction, not a percentage. + target_value = pint_ify(target.target_base_qty * (1 - target.target_reduction_pct), + target.target_base_unit) + CAGR = compute_CAGR(value_last_year, target_value, (target_year - last_year)) + + if not scope_targets: # Check if there are no more targets for this scope + target_year = 2050 # Value should come from somewhere else + emissions_projections = [value_last_year * (1 + CAGR) ** (y + 1) + for y, year in enumerate(range(last_year + 1, target_year + 1))] + emissions_projections = pd.Series(emissions_projections, index=range(last_year + 1, target_year + 1), + dtype=f'pint[{target.target_base_unit}]') + production_projections = production_bm.loc[last_year + 1: target_year] + ei_projections = emissions_projections / production_projections + + ei_projections = [ICompanyEIProjection(year=year, value=ei_projections[year]) + for year in range(last_year + 1, target_year + 1)] + if ei_projection_scopes[scope] is not None: + ei_projection_scopes[scope].projections.extend(ei_projections) + else: + ei_projection_scopes[scope] = ICompanyEIProjections(projections=ei_projections) + + else: + # No target (type) specified + ei_projection_scopes[scope] = None + + return ICompanyEIProjectionsScopes(**ei_projection_scopes) diff --git a/ITR/data/target_utils.py b/ITR/data/target_utils.py index 0f49228f..b7c53e38 100644 --- a/ITR/data/target_utils.py +++ b/ITR/data/target_utils.py @@ -16,7 +16,7 @@ from ITR.data.base_providers import BaseProviderProductionBenchmark from ITR.interfaces import ICompanyEIProjectionsScopes, ICompanyEIProjections, ITargetData, IHistoricData, \ - ICompanyEIProjection, pint_ify + ICompanyEIProjection, pint_ify, IEmissionRealization def compute_CAGR(first, last, period): @@ -181,8 +181,12 @@ def project_ei_targets(targets: List[ITargetData], historic_data: IHistoricData, last_year = ei_projection_scopes[scope].projections[-1].year last_year_data = next((e for e in emissions_data if e.year == last_year), None) else: - last_year_data = next((e for e in reversed(emissions_data) if type(e.value.magnitude) != NAType), - None) + last_year_ei_data = ei_projection_scopes[scope].projections[-1] + last_year = last_year_ei_data.year + last_year_prod = production_bm.loc[last_year] + last_year_data = IEmissionRealization(year=last_year, value=last_year_ei_data.value*last_year_prod) + # last_year_data = next((e for e in reversed(emissions_data) if type(e.value.magnitude) != NAType), + # None) if last_year_data is None or base_year >= last_year_data.year: ei_projection_scopes[scope] = None diff --git a/ITR/data/template.py b/ITR/data/template.py index 59203c93..2bfe2d31 100644 --- a/ITR/data/template.py +++ b/ITR/data/template.py @@ -14,7 +14,7 @@ from pydantic import ValidationError from ITR.data.base_providers import BaseCompanyDataProvider, BaseProviderProductionBenchmark, \ - BaseProviderIntensityBenchmark + BaseProviderIntensityBenchmark, EITargetProjector from ITR.configs import ColumnsConfig, TemperatureScoreConfig, SectorsConfig, VariablesConfig, TabsConfig from ITR.interfaces import ICompanyData, ICompanyEIProjection, EScope, IEIBenchmarkScopes, \ IProductionBenchmarkScopes, IBenchmark, IBenchmarks, IHistoricEmissionsScopes, \ From 8edb6fd74ce09ff08f2dffd05c580ab230260f05 Mon Sep 17 00:00:00 2001 From: David Kroon Date: Tue, 22 Feb 2022 14:09:03 +0100 Subject: [PATCH 100/345] Fix getting latest target value when multiple targets in target projector Signed-off-by: David Kroon Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- ITR/data/base_providers.py | 43 +++++++++++++++++++++++++++++--------- 1 file changed, 33 insertions(+), 10 deletions(-) diff --git a/ITR/data/base_providers.py b/ITR/data/base_providers.py index 2c90a814..0cef3194 100644 --- a/ITR/data/base_providers.py +++ b/ITR/data/base_providers.py @@ -4,6 +4,8 @@ import pint import pint_pandas +from pandas._libs.missing import NAType + from ITR.data.osc_units import ureg, Q_, PA_ from typing import List, Type, Dict @@ -45,7 +47,7 @@ def _validate_projected_trajectories(self, companies: List[ICompanyData]) -> Lis companies_without_projections = [c for c in companies if not c.projected_intensities] if companies_without_projections: companies_with_projections = [c for c in companies if c.projected_intensities] - return companies_with_projections + EI_TrajectoryProjector().project_ei_trajectories(companies_without_projections) + return companies_with_projections + EITrajectoryProjector().project_ei_trajectories(companies_without_projections) else: return companies @@ -561,8 +563,7 @@ class EITargetProjector(object): def __init__(self): pass - @staticmethod - def project_ei_targets(targets: List[ITargetData], historic_data: IHistoricData, production_bm: pd.Series) -> ICompanyEIProjectionsScopes: + def project_ei_targets(self, targets: List[ITargetData], historic_data: IHistoricData, production_bm: pd.Series) -> ICompanyEIProjectionsScopes: """Input: @targets: a list of a company's targets @historic_data: a company's historic production, emissions, and emission intensities realizations per scope @@ -601,7 +602,7 @@ def project_ei_targets(targets: List[ITargetData], historic_data: IHistoricData, # Attribute target_reduction_pct of ITargetData is currently a fraction, not a percentage. target_value = pint_ify(target.target_base_qty * (1 - target.target_reduction_pct), target.target_base_unit) - CAGR = compute_CAGR(value_last_year, target_value, (target_year - last_year)) + CAGR = self._compute_CAGR(value_last_year, target_value, (target_year - last_year)) if not scope_targets: # Check if there are no more targets for this scope target_year = 2050 # Value should come from somewhere else ei_projections = [ICompanyEIProjection(year=year, value=value_last_year * (1 + CAGR) ** (y + 1)) @@ -619,15 +620,13 @@ def project_ei_targets(targets: List[ITargetData], historic_data: IHistoricData, # Get last year data with non-null value if ei_projection_scopes[scope] is not None: - last_year = ei_projection_scopes[scope].projections[-1].year - last_year_data = next((e for e in emissions_data if e.year == last_year), None) - else: last_year_ei_data = ei_projection_scopes[scope].projections[-1] last_year = last_year_ei_data.year last_year_prod = production_bm.loc[last_year] last_year_data = IEmissionRealization(year=last_year, value=last_year_ei_data.value*last_year_prod) - # last_year_data = next((e for e in reversed(emissions_data) if type(e.value.magnitude) != NAType), - # None) + else: + last_year_data = next((e for e in reversed(emissions_data) if type(e.value.magnitude) != NAType), + None) if last_year_data is None or base_year >= last_year_data.year: ei_projection_scopes[scope] = None @@ -637,7 +636,7 @@ def project_ei_targets(targets: List[ITargetData], historic_data: IHistoricData, # Attribute target_reduction_pct of ITargetData is currently a fraction, not a percentage. target_value = pint_ify(target.target_base_qty * (1 - target.target_reduction_pct), target.target_base_unit) - CAGR = compute_CAGR(value_last_year, target_value, (target_year - last_year)) + CAGR = self._compute_CAGR(value_last_year, target_value, (target_year - last_year)) if not scope_targets: # Check if there are no more targets for this scope target_year = 2050 # Value should come from somewhere else @@ -660,3 +659,27 @@ def project_ei_targets(targets: List[ITargetData], historic_data: IHistoricData, ei_projection_scopes[scope] = None return ICompanyEIProjectionsScopes(**ei_projection_scopes) + + def _compute_CAGR(self, first, last, period): + """Input: + @first: first value + @last: last value + @period: number of periods in the CAGR""" + + if period == 0: + res = 1 + else: + # TODO: Replace ugly fix => pint unit error in below expression + # CAGR doesn't work well with 100% reduction, so set it to small + if last == 0: + last = first/201.0 + try: + res = (last / first).magnitude ** (1 / period) - 1 + except ZeroDivisionError as e: + if last > 0: + print("last > 0 and first==0 in CAGR...setting CAGR to 0.5") + res = 0.5 + else: + # It's all zero from here on out...clamp down on any emissions that poke up + res = 1 + return res \ No newline at end of file From 8a48e4844d701af9eb47b9e9a18c8c4da15ccf58 Mon Sep 17 00:00:00 2001 From: MichaelTiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> Date: Tue, 22 Feb 2022 08:15:44 -0500 Subject: [PATCH 101/345] Update environment.yml Added openscm-units Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- environment.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/environment.yml b/environment.yml index c997c797..f92f97ed 100644 --- a/environment.yml +++ b/environment.yml @@ -93,6 +93,7 @@ dependencies: - notebook==6.4.0 - numpy==1.19.5 - openpyxl==3.0.7 + - openscm-units=0.5.0 - orjson==3.6.4 - packaging==21.0 - pandas==1.4.1 From 7d0438b38f0d57245f9fdecd6e6193be56a3201f Mon Sep 17 00:00:00 2001 From: David Kroon Date: Tue, 22 Feb 2022 14:12:06 +0100 Subject: [PATCH 102/345] Add S1 and S2 scopes to EI target projector class Signed-off-by: David Kroon Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- ITR/data/base_providers.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ITR/data/base_providers.py b/ITR/data/base_providers.py index 0cef3194..8fa02ba6 100644 --- a/ITR/data/base_providers.py +++ b/ITR/data/base_providers.py @@ -573,7 +573,7 @@ def project_ei_targets(self, targets: List[ITargetData], historic_data: IHistori """ # TODO: production_bm should be per scope! - ei_projection_scopes = {"S1S2": None, "S3": None, "S1S2S3": None} + ei_projection_scopes = {"S1": None, "S2": None, "S1S2": None, "S3": None, "S1S2S3": None} for scope in ei_projection_scopes.keys(): scope_targets = [target for target in targets if target.target_scope.name == scope] scope_targets.sort(key=lambda target: (target.target_scope, target.end_year)) From 4f18e1e65c4406084e1501c5614e1aafeeff2165 Mon Sep 17 00:00:00 2001 From: David Kroon Date: Tue, 22 Feb 2022 14:15:10 +0100 Subject: [PATCH 103/345] Copy comments to EITargetProjector and delete target_utils Signed-off-by: David Kroon Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- ITR/data/base_providers.py | 5 + ITR/data/target_utils.py | 221 ------------------------------------- ITR/data/template.py | 14 +-- 3 files changed, 9 insertions(+), 231 deletions(-) delete mode 100644 ITR/data/target_utils.py diff --git a/ITR/data/base_providers.py b/ITR/data/base_providers.py index 8fa02ba6..0689d6e7 100644 --- a/ITR/data/base_providers.py +++ b/ITR/data/base_providers.py @@ -559,6 +559,11 @@ class EITargetProjector(object): This class projects emissions intensities from a company's targets and historic data. Targets are specified per scope in terms of either emissions or emission intensity reduction. Interpolation between last known historic data and (a) target(s) is CAGR-based. + + Remember that pd.Series are always well-behaved with pint[] quantities. pd.DataFrame columns are well-behaved, + but data across columns is not always well-behaved. We therefore make this function assume we are projecting targets + for a specific company, in a specific sector. If we want to project targets for multiple sectors, we have to call it multiple times. + This function doesn't need to know what sector it's computing for...only tha there is only one such, for however many scopes. """ def __init__(self): pass diff --git a/ITR/data/target_utils.py b/ITR/data/target_utils.py deleted file mode 100644 index b7c53e38..00000000 --- a/ITR/data/target_utils.py +++ /dev/null @@ -1,221 +0,0 @@ -from typing import List - -import pandas as pd -import numpy as np -import math - -# Timeline definition: - -# Historical Data has a first year and a last year (typically 2015-2020) -# Target Data has a base year (could be 2000, 2005, 2015) and a target year (typically 2030, 2050) - -# In order to have valid data, the base year must be between the start and end years. - -# Step 0: Overall function -from pandas._libs.missing import NAType - -from ITR.data.base_providers import BaseProviderProductionBenchmark -from ITR.interfaces import ICompanyEIProjectionsScopes, ICompanyEIProjections, ITargetData, IHistoricData, \ - ICompanyEIProjection, pint_ify, IEmissionRealization - - -def compute_CAGR(first, last, period): - """Input: - @first: first value - @last: last value - @period: number of periods in the CAGR""" - - if period == 0: - res = 1 - else: - # TODO: Replace ugly fix => pint unit error in below expression - # CAGR doesn't work well with 100% reduction, so set it to small - if last == 0: - last = first/201.0 - try: - res = (last / first).magnitude ** (1 / period) - 1 - except ZeroDivisionError as e: - if last > 0: - print("last > 0 and first==0 in CAGR...setting CAGR to 0.5") - res = 0.5 - else: - # It's all zero from here on out...clamp down on any emissions that poke up - res = 1 - return res - - -# Step 1: function for tagret trajectory - -# data_emissions includes columns for: -# ISIN, Date, Region, Scope 1, Scope 2 - -# data_production includes columns for: -# ISIN, Date, Financial Data (Revenue, Market Cap, Debt, etc), Steel Production, Eletricity Production, Other production (Oil & Gas, EVs, etc) - -# data_benchmark includes columns for: -# Sector, Date, Region, Unit_intensity, Unit_Production (always %), Intensity, Production (Annual Growth) - -# Returns a dataframe of a single ISIN, Region, Sector, Data for years 2020-2050: -# Also Emission, Production, intensity, CAGR, CAGR_emission, CAGR_production -# Also forecast_target, forecast_emission, forecast_production, forecast_intensity - -# Remember that pd.Series are always well-behaved with pint[] quantities. pd.DataFrame columns are well-behaved, -# but data across columns is not always well-behaved. We therefore make this function assume we are projecting targets -# for a specific company, in a specific sector. If we want to project targets for multiple sectors, we have to call it multiple times. -# This function doesn't need to know what sector it's computing for...only tha there is only one such, for however many scopes. -def project_ei_targets(targets: List[ITargetData], historic_data: IHistoricData, production_bm: pd.Series = None, - data_prod=None) -> ICompanyEIProjectionsScopes: - """Input: - @isin: isin of the company for which to compute the projection - @data_emission: database with emission with emissions, intensity, sector and region columns - @data_prod: database with production evolution from benchmark - - If the company has no target or the target can't be processed, then the output the emission database, unprocessed - """ - # global data_benchmark - - # TODO: expand function to handle multiple targets / loop over scopes - target = targets[0] - scope = target.target_scope - - base_year = target.base_year - - # Solve for intensity and absolute - if target.target_type == "intensity": - # Simple case: the target is in intensity - # Get the intensity data - intensity_data = historic_data.emission_intensities.__getattribute__(scope.name) - - # Get last year data with non-null value - last_year_data = next((i for i in reversed(intensity_data) if type(i.value.magnitude) != NAType), None) - last_year, value_last_year = last_year_data.year, last_year_data.value - - if last_year is None or base_year >= last_year: - target_ei_projections = None - else: # Removed condition base year > first_year. Do we care as long as base_year_qty is known? - target_year = target.end_year - # Attribute target_reduction_pct of ITargetData is currently a fraction, not a percentage. - target_value = pint_ify(target.target_base_qty * (1 - target.target_reduction_pct), target.target_base_unit) - CAGR = compute_CAGR(value_last_year, target_value, (target_year - last_year)) - target_ei_projections = ICompanyEIProjections(projections= - [ICompanyEIProjection(year=year, value=value_last_year * (1 + CAGR) ** (y + 1)) - for y, year in enumerate(range(1 + last_year, 1 + target_year))] - ) - - elif target.target_type == "absolute": - # Complicated case, the target must be switched from absolute value to intensity. - # We use the benchmark production data - # Compute Emission CAGR - emission_data = historic_data.emissions.__getattribute__(scope.name) - - # Get last year data with non-null value - last_year_data = next((e for e in reversed(emission_data) if type(e.value.magnitude) != NAType), None) - last_year, value_last_year = last_year_data.year, last_year_data.value - - if last_year is None or base_year >= last_year: - target_ei_projections = None - else: # Removed condition base year > first_year. Do we care as long as base_year_qty is known? - target_year = target.end_year - # Attribute target_reduction_pct of ITargetData is currently a fraction, not a percentage. - target_value = pint_ify(target.target_base_qty * (1 - target.target_reduction_pct), target.target_base_unit) - CAGR = compute_CAGR(value_last_year, target_value, (target_year - last_year)) - emission_projections = [value_last_year * (1 + CAGR) ** (y + 1) - for y, year in enumerate(range(1 + last_year, 1 + target_year))] - emission_projections = pd.Series(emission_projections, index=range(last_year + 1, target_year + 1), - dtype=f'pint[{target.target_base_unit}]') - production_projections = production_bm.loc[last_year + 1: target_year] - ei_projections = emission_projections / production_projections - - target_ei_projections = ICompanyEIProjections(projections= - [ICompanyEIProjection(year=year, value=ei_projections[year]) - for year in range(last_year + 1, target_year + 1)] - ) - - ei_projection_scopes = {"S1": None, "S2": None, "S1S2": None, "S3": None, "S1S2S3": None} - for scope in ei_projection_scopes.keys(): - scope_targets = [target for target in targets if target.target_scope.name == scope] - scope_targets.sort(key=lambda target: (target.target_scope, target.end_year)) - while scope_targets: - target = scope_targets.pop(0) - base_year = target.base_year - - # Solve for intensity and absolute - if target.target_type == "intensity": - # Simple case: the target is in intensity - # Get the intensity data - intensity_data = historic_data.emissions_intensities.__getattribute__(scope) - - # Get last year data with non-null value - if ei_projection_scopes[scope] is not None: - last_year_data = ei_projection_scopes[scope].projections[-1] - else: - last_year_data = next((i for i in reversed(intensity_data) if type(i.value.magnitude) != NAType), - None) - - if last_year_data is None or base_year >= last_year_data.year: - ei_projection_scopes[scope] = None - else: # Removed condition base year > first_year. Do we care as long as base_year_qty is known? - last_year, value_last_year = last_year_data.year, last_year_data.value - target_year = target.end_year - # Attribute target_reduction_pct of ITargetData is currently a fraction, not a percentage. - target_value = pint_ify(target.target_base_qty * (1 - target.target_reduction_pct), - target.target_base_unit) - CAGR = compute_CAGR(value_last_year, target_value, (target_year - last_year)) - if not scope_targets: # Check if there are no more targets for this scope - target_year = 2050 # Value should come from somewhere else - ei_projections = [ICompanyEIProjection(year=year, value=value_last_year * (1 + CAGR) ** (y + 1)) - for y, year in enumerate(range(1 + last_year, 1 + target_year))] - if ei_projection_scopes[scope] is not None: - ei_projection_scopes[scope].projections.extend(ei_projections) - else: - ei_projection_scopes[scope] = ICompanyEIProjections(projections=ei_projections) - - elif target.target_type == "absolute": - # Complicated case, the target must be switched from absolute value to intensity. - # We use the benchmark production data - # Compute Emission CAGR - emissions_data = historic_data.emissions.__getattribute__(scope) - - # Get last year data with non-null value - if ei_projection_scopes[scope] is not None: - last_year = ei_projection_scopes[scope].projections[-1].year - last_year_data = next((e for e in emissions_data if e.year == last_year), None) - else: - last_year_ei_data = ei_projection_scopes[scope].projections[-1] - last_year = last_year_ei_data.year - last_year_prod = production_bm.loc[last_year] - last_year_data = IEmissionRealization(year=last_year, value=last_year_ei_data.value*last_year_prod) - # last_year_data = next((e for e in reversed(emissions_data) if type(e.value.magnitude) != NAType), - # None) - - if last_year_data is None or base_year >= last_year_data.year: - ei_projection_scopes[scope] = None - else: # Removed condition base year > first_year. Do we care as long as base_year_qty is known? - last_year, value_last_year = last_year_data.year, last_year_data.value - target_year = target.end_year - # Attribute target_reduction_pct of ITargetData is currently a fraction, not a percentage. - target_value = pint_ify(target.target_base_qty * (1 - target.target_reduction_pct), - target.target_base_unit) - CAGR = compute_CAGR(value_last_year, target_value, (target_year - last_year)) - - if not scope_targets: # Check if there are no more targets for this scope - target_year = 2050 # Value should come from somewhere else - emission_projections = [value_last_year * (1 + CAGR) ** (y + 1) - for y, year in enumerate(range(last_year + 1, target_year + 1))] - emission_projections = pd.DataFrame([emission_projections], - columns=range(last_year + 1, target_year + 1)) - production_projections = production_bm.loc[:, last_year + 1: target_year] - ei_projections = emission_projections / production_projections - - ei_projections = [ICompanyEIProjection(year=year, value=ei_projections[year].values.quantity) - for year in range(last_year + 1, target_year + 1)] - if ei_projection_scopes[scope] is not None: - ei_projection_scopes[scope].projections.extend(ei_projections) - else: - ei_projection_scopes[scope] = ICompanyEIProjections(projections=ei_projections) - - else: - # No target (type) specified - ei_projection_scopes[scope] = None - - return ICompanyEIProjectionsScopes(**ei_projection_scopes) diff --git a/ITR/data/template.py b/ITR/data/template.py index 2bfe2d31..fd386241 100644 --- a/ITR/data/template.py +++ b/ITR/data/template.py @@ -1,28 +1,22 @@ import warnings # needed until apply behaves better with Pint quantities in arrays -from typing import Type, List, Union, Optional +from typing import Type, List, Optional import pandas as pd import numpy as np -from pint import Quantity -# from pint_pandas import PintArray import pint -import pint_pandas ureg = pint.get_application_registry() Q_ = ureg.Quantity -# PA_ = pint_pandas.PintArray from pydantic import ValidationError from ITR.data.base_providers import BaseCompanyDataProvider, BaseProviderProductionBenchmark, \ BaseProviderIntensityBenchmark, EITargetProjector -from ITR.configs import ColumnsConfig, TemperatureScoreConfig, SectorsConfig, VariablesConfig, TabsConfig -from ITR.interfaces import ICompanyData, ICompanyEIProjection, EScope, IEIBenchmarkScopes, \ - IProductionBenchmarkScopes, IBenchmark, IBenchmarks, IHistoricEmissionsScopes, \ +from ITR.configs import ColumnsConfig, TemperatureScoreConfig, VariablesConfig, TabsConfig +from ITR.interfaces import ICompanyData, EScope, \ + IHistoricEmissionsScopes, \ IProductionRealization, IHistoricEIScopes, IHistoricData, ITargetData, IEmissionRealization, IEIRealization, IProjection -from ITR.data.target_utils import project_ei_targets import logging -import inspect class TemplateProviderCompany(BaseCompanyDataProvider): """ From 6a0ec7dfb6f34ebee0fa2b01697e836e85b57416 Mon Sep 17 00:00:00 2001 From: David Kroon Date: Tue, 22 Feb 2022 14:18:01 +0100 Subject: [PATCH 104/345] Remove incorrect comment Signed-off-by: David Kroon Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- ITR/data/base_providers.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/ITR/data/base_providers.py b/ITR/data/base_providers.py index 0689d6e7..ee0048d0 100644 --- a/ITR/data/base_providers.py +++ b/ITR/data/base_providers.py @@ -576,8 +576,6 @@ def project_ei_targets(self, targets: List[ITargetData], historic_data: IHistori If the company has no target or the target can't be processed, then the output the emission database, unprocessed """ - - # TODO: production_bm should be per scope! ei_projection_scopes = {"S1": None, "S2": None, "S1S2": None, "S3": None, "S1S2S3": None} for scope in ei_projection_scopes.keys(): scope_targets = [target for target in targets if target.target_scope.name == scope] From 0d957c42b509580467ddedc51d6d45b97e9f4db6 Mon Sep 17 00:00:00 2001 From: MichaelTiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> Date: Tue, 22 Feb 2022 10:02:35 -0500 Subject: [PATCH 105/345] Generate target projections for S1 and S2 scopes individually Provide target projections based on S1 and S2 scopes, not only S1S2. Also fix base year data exclusion bug (we don't have to abandon projection if base year == last_year). Also, simplify input data as we have not yet implemented everything described in https://github.com/os-climate/ITR/issues/32 Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- ITR/data/base_providers.py | 33 ++++++++++++++---- .../inputs/20220215 ITR Tool Sample Data.xlsx | Bin 70403 -> 70932 bytes 2 files changed, 27 insertions(+), 6 deletions(-) diff --git a/ITR/data/base_providers.py b/ITR/data/base_providers.py index ee0048d0..f90cb0e6 100644 --- a/ITR/data/base_providers.py +++ b/ITR/data/base_providers.py @@ -1,6 +1,7 @@ import warnings # needed until quantile behaves better with Pint quantities in arrays import numpy as np import pandas as pd +from functools import reduce, partial import pint import pint_pandas @@ -59,11 +60,31 @@ def _convert_projections_to_series(self, company: ICompanyData, feature: str, :param scope: a scope :return: pd.Series """ - production_units = company.dict()[self.column_config.PRODUCTION_METRIC]['units'] - emissions_units = company.dict()[self.column_config.EMISSIONS_METRIC]['units'] + company_dict = company.dict() + production_units = company_dict[self.column_config.PRODUCTION_METRIC]['units'] + emissions_units = company_dict[self.column_config.EMISSIONS_METRIC]['units'] + if company_dict[feature][scope.name]: + projections = company_dict[feature][scope.name]['projections'] + else: + scopes = scope.value.split('+') + projection_scopes = {s:company_dict[feature][s]['projections'] for s in scopes if company_dict[feature][s]} + if len(projection_scopes)>1: + projection_series = {} + for s in scopes: + projection_series[s] = pd.Series( + {p['year']: p['value'] for p in company_dict[feature][s]['projections'] }, + name=company.company_id, dtype=f'pint[{emissions_units}/{production_units}]') + series_adder = partial(pd.Series.add, fill_value=0) + res = reduce(series_adder, projection_series.values()) + return res + elif len(projection_scopes)==0: + print(f"missing target scope data for {company.company_name} :: {scope}") + error() + else: + projections = company_dict[feature][scopes[0]]['projections'] return pd.Series( - {p['year']: p['value'] for p in company.dict()[feature][str(scope)]['projections'] }, - name=company.company_id, dtype=f'pint[{emissions_units}/{production_units}]') + {p['year']: p['value'] for p in projections }, + name=company.company_id, dtype=f'pint[{emissions_units}/{production_units}]') # ??? Why prefer TRAJECTORY over TARGET? def _get_company_intensity_at_year(self, year: int, company_ids: List[str]) -> pd.Series: @@ -597,7 +618,7 @@ def project_ei_targets(self, targets: List[ITargetData], historic_data: IHistori last_year_data = next((i for i in reversed(intensity_data) if type(i.value.magnitude) != NAType), None) - if last_year_data is None or base_year >= last_year_data.year: + if last_year_data is None or base_year > last_year_data.year: ei_projection_scopes[scope] = None else: # Removed condition base year > first_year. Do we care as long as base_year_qty is known? last_year, value_last_year = last_year_data.year, last_year_data.value @@ -631,7 +652,7 @@ def project_ei_targets(self, targets: List[ITargetData], historic_data: IHistori last_year_data = next((e for e in reversed(emissions_data) if type(e.value.magnitude) != NAType), None) - if last_year_data is None or base_year >= last_year_data.year: + if last_year_data is None or base_year > last_year_data.year: ei_projection_scopes[scope] = None else: # Removed condition base year > first_year. Do we care as long as base_year_qty is known? last_year, value_last_year = last_year_data.year, last_year_data.value diff --git a/test/inputs/20220215 ITR Tool Sample Data.xlsx b/test/inputs/20220215 ITR Tool Sample Data.xlsx index 9294c762a56296a9c6813fec5d591d7edaa00743..40f8991777e2b1c9efdcafbf3c18996ce2dd9f5d 100644 GIT binary patch delta 20939 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 TUlwdGU;zo1=l;me$q@7(pqQlQ From d55be139f35208d29a8f633f817f7454dc69b735 Mon Sep 17 00:00:00 2001 From: MichaelTiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> Date: Tue, 22 Feb 2022 12:47:43 -0500 Subject: [PATCH 106/345] Test cases can now run with Sample data. Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- ITR/data/base_providers.py | 1 + .../inputs/20220215 ITR Tool Sample Data.xlsx | Bin 70932 -> 71933 bytes 2 files changed, 1 insertion(+) diff --git a/ITR/data/base_providers.py b/ITR/data/base_providers.py index f90cb0e6..b41b0974 100644 --- a/ITR/data/base_providers.py +++ b/ITR/data/base_providers.py @@ -52,6 +52,7 @@ def _validate_projected_trajectories(self, companies: List[ICompanyData]) -> Lis else: return companies + # Because this presently defaults to S1S2 always, targets spec'd for S1 only ro S1+S2+S3 are not well-handled. def _convert_projections_to_series(self, company: ICompanyData, feature: str, scope: EScope = EScope.S1S2) -> pd.Series: """ diff --git a/test/inputs/20220215 ITR Tool Sample Data.xlsx b/test/inputs/20220215 ITR Tool Sample Data.xlsx index 40f8991777e2b1c9efdcafbf3c18996ce2dd9f5d..7b49ad3e57554899744bf06fa24a949c8ec504f9 100644 GIT binary patch delta 22644 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 delta 21677 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 From 68af70dd57e56bbfea1114c7fa2d1721b72fb611 Mon Sep 17 00:00:00 2001 From: MichaelTiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> Date: Tue, 22 Feb 2022 23:07:53 -0500 Subject: [PATCH 107/345] First draft of runnable notebook demo Fix more data errors...now somewhat demoable (but strange results when target values are well above existing attainment, such as Duke Energy). Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- .../data/20220215 ITR Tool Sample Data.xlsx | Bin 0 -> 74309 bytes .../data/20220215_Template ITR Tool_v10.xlsx | Bin 32819 -> 0 bytes .../inputs/20220215 ITR Tool Sample Data.xlsx | Bin 71933 -> 74309 bytes test/test_template_provider.py | 17 +++++++++++++++-- 4 files changed, 15 insertions(+), 2 deletions(-) create mode 100644 examples/data/20220215 ITR Tool Sample Data.xlsx delete mode 100644 examples/data/20220215_Template ITR Tool_v10.xlsx diff --git a/examples/data/20220215 ITR Tool Sample Data.xlsx b/examples/data/20220215 ITR Tool Sample Data.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..0be506d348f22f277c056e10328c4099cf26b806 GIT binary patch literal 74309 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%0DebE*=0l*-LjyetmTmZ&KIJeoQx2`k;^}aPO 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 F{|_6o6E*+< literal 0 HcmV?d00001 diff --git a/examples/data/20220215_Template ITR Tool_v10.xlsx b/examples/data/20220215_Template ITR Tool_v10.xlsx deleted file mode 100644 index 8ed60760e04a7298a0be8d99c7cda66e2b96c20e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 32819 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%0A81?OkD8@AI0vYWnv?)R7Rl>%T`25unTK&t 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 H&v*X^+$vAa diff --git a/test/inputs/20220215 ITR Tool Sample Data.xlsx b/test/inputs/20220215 ITR Tool Sample Data.xlsx index 7b49ad3e57554899744bf06fa24a949c8ec504f9..0be506d348f22f277c056e10328c4099cf26b806 100644 GIT binary patch delta 44177 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 delta 41806 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 Date: Tue, 22 Feb 2022 23:08:21 -0500 Subject: [PATCH 108/345] Update environment.yml Update openpyxl version number. Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- environment.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/environment.yml b/environment.yml index f92f97ed..6ae5456b 100644 --- a/environment.yml +++ b/environment.yml @@ -92,7 +92,7 @@ dependencies: - nose2==0.9.2 - notebook==6.4.0 - numpy==1.19.5 - - openpyxl==3.0.7 + - openpyxl==3.0.9 - openscm-units=0.5.0 - orjson==3.6.4 - packaging==21.0 From 04ce7a1c56d8023a748671582238f47a30113589 Mon Sep 17 00:00:00 2001 From: MichaelTiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> Date: Wed, 23 Feb 2022 05:35:54 -0500 Subject: [PATCH 109/345] Accept Asia as a region value The current benchmark data treats Asia as "Global" but that doesn't mean we cannot properly list Asia as a distinct region for display and aggregation purposes. Accordingly, change POSCO's region to Asia. Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- .../data/20220215 ITR Tool Sample Data.xlsx | Bin 74309 -> 74310 bytes .../inputs/20220215 ITR Tool Sample Data.xlsx | Bin 74309 -> 74310 bytes 2 files changed, 0 insertions(+), 0 deletions(-) diff --git a/examples/data/20220215 ITR Tool Sample Data.xlsx b/examples/data/20220215 ITR Tool Sample Data.xlsx index 0be506d348f22f277c056e10328c4099cf26b806..10f7d8df75aa2765bee4c7865fd6a39ace749487 100644 GIT binary patch delta 6099 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 delta 6083 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 diff --git a/test/inputs/20220215 ITR Tool Sample Data.xlsx b/test/inputs/20220215 ITR Tool Sample Data.xlsx index 0be506d348f22f277c056e10328c4099cf26b806..10f7d8df75aa2765bee4c7865fd6a39ace749487 100644 GIT binary patch delta 6099 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 delta 6083 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 From ec8af16ae3d4e2e2811c793b315b180df53ea7a7 Mon Sep 17 00:00:00 2001 From: MichaelTiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> Date: Wed, 23 Feb 2022 07:59:39 -0500 Subject: [PATCH 110/345] Correcet CAGR calculation Convert to base units before calculating magnitude (need to check elsewhere for this error!) and clamp CAGR to non-positive result. Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- ITR/data/base_providers.py | 17 ++++++++++------- .../data/20220215 ITR Tool Sample Data.xlsx | Bin 74310 -> 76617 bytes .../inputs/20220215 ITR Tool Sample Data.xlsx | Bin 74310 -> 76617 bytes test/test_template_provider.py | 4 +++- 4 files changed, 13 insertions(+), 8 deletions(-) diff --git a/ITR/data/base_providers.py b/ITR/data/base_providers.py index b41b0974..2e542a70 100644 --- a/ITR/data/base_providers.py +++ b/ITR/data/base_providers.py @@ -687,24 +687,27 @@ def project_ei_targets(self, targets: List[ITargetData], historic_data: IHistori def _compute_CAGR(self, first, last, period): """Input: - @first: first value - @last: last value + @first: the value of the first datapoint in the Calculation (most recent actual datapoint) + @last: last value (value at future target year) @period: number of periods in the CAGR""" if period == 0: - res = 1 + res = 0 else: # TODO: Replace ugly fix => pint unit error in below expression # CAGR doesn't work well with 100% reduction, so set it to small if last == 0: last = first/201.0 + elif last > first: + # If we have a slack target, i.e., target goal is actually above current data, clamp so CAGR computes as zero + last = first try: - res = (last / first).magnitude ** (1 / period) - 1 + res = (last / first).to_base_units().magnitude ** (1 / period) - 1 except ZeroDivisionError as e: if last > 0: - print("last > 0 and first==0 in CAGR...setting CAGR to 0.5") - res = 0.5 + print("last > 0 and first==0 in CAGR...setting CAGR to 0-.5") + res = -0.5 else: # It's all zero from here on out...clamp down on any emissions that poke up - res = 1 + res = -1 return res \ No newline at end of file diff --git a/examples/data/20220215 ITR Tool Sample Data.xlsx b/examples/data/20220215 ITR Tool Sample Data.xlsx index 10f7d8df75aa2765bee4c7865fd6a39ace749487..a95eb0739f318eaa64ac5b915e135d19279c54c3 100644 GIT binary patch delta 8631 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 U&>uA7LHt$_p`uHRFb&fG0X>wTng9R* delta 6643 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 diff --git a/test/inputs/20220215 ITR Tool Sample Data.xlsx b/test/inputs/20220215 ITR Tool Sample Data.xlsx index 10f7d8df75aa2765bee4c7865fd6a39ace749487..a95eb0739f318eaa64ac5b915e135d19279c54c3 100644 GIT binary patch delta 8631 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 U&>uA7LHt$_p`uHRFb&fG0X>wTng9R* delta 6643 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 diff --git a/test/test_template_provider.py b/test/test_template_provider.py index 4a3d6924..81bf94a0 100644 --- a/test/test_template_provider.py +++ b/test/test_template_provider.py @@ -30,7 +30,8 @@ def setUp(self) -> None: self.template_company_data = TemplateProviderCompany(excel_path=self.company_data_path) self.template_company_data._calculate_target_projections(production_bm=self.excel_production_bm, EI_bm=self.excel_EI_bm) self.excel_provider = DataWarehouse(self.template_company_data, self.excel_production_bm, self.excel_EI_bm) - self.company_ids = ["US00130H1059", "US26441C2044", "KR7005490008"] + # self.company_ids = ["US00130H1059", "US26441C2044", "KR7005490008"] + self.company_ids = ["US26441C2044"] # self.company_info_at_base_year = pd.DataFrame( # [[Q_(1.6982474347547, ureg('t CO2/GJ')), Q_(1.04827859e+08, 'MWh'), 'MWh', 'Electricity Utilities', 'North America'], # [Q_(0.476586931582279, ureg('t CO2/GJ')), Q_(5.98937002e+08, 'MWh'), 'MWh', 'Electricity Utilities', 'North America'], @@ -64,6 +65,7 @@ def test_target_projections(self): def test_temp_score(self): df_portfolio = pd.read_excel(self.company_data_path, sheet_name="Portfolio") + df_porfolio = df_portfolio[[df_portfolio.company_id=='US26441C2044']] companies = ITR.utils.dataframe_to_portfolio(df_portfolio) temperature_score = TemperatureScore( From 2834ba054888de804046fbf3e1e9d4cb72d0e914 Mon Sep 17 00:00:00 2001 From: MichaelTiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> Date: Thu, 24 Feb 2022 00:47:47 -0500 Subject: [PATCH 111/345] Enable netzero_year functionality There was a bug in how EITargetProjector::project_ei_targets was projecting target data to 2050 absent specific targets with that as an explicit target year. These changes fix that bug, as well as enabling the functionality of using the netzero_year field of the input template. Also update template to use netzero_year instead of netzero_date. Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- ITR/data/base_providers.py | 54 +++++++++++++----- ITR/data/template.py | 24 +++++--- ITR/interfaces.py | 2 +- .../data/20220215 ITR Tool Sample Data.xlsx | Bin 76617 -> 77197 bytes .../inputs/20220215 ITR Tool Sample Data.xlsx | Bin 76617 -> 77197 bytes test/test_template_provider.py | 2 +- 6 files changed, 59 insertions(+), 23 deletions(-) diff --git a/ITR/data/base_providers.py b/ITR/data/base_providers.py index 2e542a70..a8911764 100644 --- a/ITR/data/base_providers.py +++ b/ITR/data/base_providers.py @@ -16,7 +16,7 @@ from ITR.interfaces import ICompanyData, EScope, IProductionBenchmarkScopes, IEIBenchmarkScopes, \ IBenchmark, IProjection, ICompanyEIProjections, ICompanyEIProjectionsScopes, ICompanyProjection, IHistoricEIScopes, \ - IHistoricEmissionsScopes, IProductionRealization, ITargetData, IHistoricData, ICompanyEIProjection, pint_ify, \ + IHistoricEmissionsScopes, IProductionRealization, ITargetData, IHistoricData, ICompanyEIProjection, \ IEmissionRealization @@ -303,8 +303,8 @@ def _get_decarbonization(self, intensity_benchmark_row: pd.Series) -> pd.Series: """ first_ei = intensity_benchmark_row[self.temp_config.CONTROLS_CONFIG.base_year] last_ei = intensity_benchmark_row[self.temp_config.CONTROLS_CONFIG.target_end_year] - # This throws a warning when processing a NaN - return intensity_benchmark_row.apply(lambda x: (x.m - last_ei.m) / (first_ei.m - last_ei.m)) + # TODO: does this still throw a warning when processing a NaN? convert to base units before accessing .magnitude + return intensity_benchmark_row.apply(lambda x: (x - last_ei) / (first_ei - last_ei)) def _convert_benchmark_to_series(self, benchmark: IBenchmark) -> pd.Series: """ @@ -551,8 +551,9 @@ def _get_trends(self, intensities: pd.DataFrame): for col in intensities.columns: # ratios are dimensionless, so get rid of units, which confuse rolling/apply. Some columns are NaN-only intensities[col] = intensities[col].map(lambda x: x if isinstance(x, float) else x.m) + # TODO: do we want to fillna(0) or dropna()? ratios: pd.DataFrame = intensities.rolling(window=2, axis='index', closed='right') \ - .apply(func=self._year_on_year_ratio, raw=True) + .apply(func=self._year_on_year_ratio, raw=True) # .dropna(how='all',axis=0) # .fillna(0) trends: pd.DataFrame = ratios.median(axis='index', skipna=True).clip( lower=ProjectionConfig.LOWER_DELTA, @@ -563,7 +564,7 @@ def _get_trends(self, intensities: pd.DataFrame): def _extrapolate(self, trends: pd.DataFrame, projection_years: range, historic_data: pd.DataFrame) -> pd.DataFrame: projected_intensities = historic_data.loc[historic_data.index.intersection(trends.index)].copy() # We need to do a mini-extrapolation if we don't have complete historic data - for year in historic_data.columns.tolist()[1:-1]: + for year in historic_data.columns.tolist()[:-1]: m = projected_intensities[year+1].apply(lambda x: x.m is pd.NA) projected_intensities.loc[m,year+1] = projected_intensities.loc[m,year] * (1 + trends.loc[m]) @@ -601,6 +602,9 @@ def project_ei_targets(self, targets: List[ITargetData], historic_data: IHistori ei_projection_scopes = {"S1": None, "S2": None, "S1S2": None, "S3": None, "S1S2S3": None} for scope in ei_projection_scopes.keys(): scope_targets = [target for target in targets if target.target_scope.name == scope] + if not scope_targets: + continue + netzero_year = max([t.netzero_year for t in scope_targets if t.netzero_year] + [0]) scope_targets.sort(key=lambda target: (target.target_scope, target.end_year)) while scope_targets: target = scope_targets.pop(0) @@ -625,18 +629,28 @@ def project_ei_targets(self, targets: List[ITargetData], historic_data: IHistori last_year, value_last_year = last_year_data.year, last_year_data.value target_year = target.end_year # Attribute target_reduction_pct of ITargetData is currently a fraction, not a percentage. - target_value = pint_ify(target.target_base_qty * (1 - target.target_reduction_pct), - target.target_base_unit) + target_value = Q_(target.target_base_qty * (1 - target.target_reduction_pct), + target.target_base_unit) CAGR = self._compute_CAGR(value_last_year, target_value, (target_year - last_year)) - if not scope_targets: # Check if there are no more targets for this scope - target_year = 2050 # Value should come from somewhere else ei_projections = [ICompanyEIProjection(year=year, value=value_last_year * (1 + CAGR) ** (y + 1)) for y, year in enumerate(range(1 + last_year, 1 + target_year))] if ei_projection_scopes[scope] is not None: ei_projection_scopes[scope].projections.extend(ei_projections) else: ei_projection_scopes[scope] = ICompanyEIProjections(projections=ei_projections) - + if not scope_targets and netzero_year > target_year: # add in netzero target at the end + CAGR = self._compute_CAGR(target_value, Q_(0, target.target_base_unit), (netzero_year - target_year)) + ei_projections = [ICompanyEIProjection(year=year, value=target_value * (1 + CAGR) ** (y + 1)) + for y, year in enumerate(range(1 + target_year, 1 + netzero_year))] + ei_projection_scopes[scope].projections.extend(ei_projections) + target_year = netzero_year + target_value = Q_(0, target.target_base_unit) + if not scope_targets and target_year < 2050: + # Assume everything stays flat until 2050 + ei_projection_scopes[scope].projections.extend( + [ICompanyEIProjection(year=year, value=target_value) + for y, year in enumerate(range(1 + target_year, 1 + 2050))] + ) elif target.target_type == "absolute": # Complicated case, the target must be switched from absolute value to intensity. # We use the benchmark production data @@ -659,12 +673,10 @@ def project_ei_targets(self, targets: List[ITargetData], historic_data: IHistori last_year, value_last_year = last_year_data.year, last_year_data.value target_year = target.end_year # Attribute target_reduction_pct of ITargetData is currently a fraction, not a percentage. - target_value = pint_ify(target.target_base_qty * (1 - target.target_reduction_pct), + target_value = Q_(target.target_base_qty * (1 - target.target_reduction_pct), target.target_base_unit) CAGR = self._compute_CAGR(value_last_year, target_value, (target_year - last_year)) - if not scope_targets: # Check if there are no more targets for this scope - target_year = 2050 # Value should come from somewhere else emissions_projections = [value_last_year * (1 + CAGR) ** (y + 1) for y, year in enumerate(range(last_year + 1, target_year + 1))] emissions_projections = pd.Series(emissions_projections, index=range(last_year + 1, target_year + 1), @@ -674,10 +686,26 @@ def project_ei_targets(self, targets: List[ITargetData], historic_data: IHistori ei_projections = [ICompanyEIProjection(year=year, value=ei_projections[year]) for year in range(last_year + 1, target_year + 1)] + # From here out most useful to have target_value as EI + target_value = ei_projections[-1].value if ei_projection_scopes[scope] is not None: ei_projection_scopes[scope].projections.extend(ei_projections) else: ei_projection_scopes[scope] = ICompanyEIProjections(projections=ei_projections) + if not scope_targets and netzero_year > target_year: # add in netzero target at the end + CAGR = self._compute_CAGR(target_value, Q_(0, target_value.u), (netzero_year - target_year)) + # Because zero intensity implies zero emissions, we can work with intensities from here out + ei_projections = [ICompanyEIProjection(year=year, value=target_value * (1 + CAGR) ** (y + 1)) + for y, year in enumerate(range(1 + target_year, 1 + netzero_year))] + ei_projection_scopes[scope].projections.extend(ei_projections) + target_year = netzero_year + target_value = Q_(0, target_value.u) + if not scope_targets and target_year < 2050: + # Assume everything stays flat until 2050 + ei_projection_scopes[scope].projections.extend( + [ICompanyEIProjection(year=year, value=target_value) + for y, year in enumerate(range(1 + target_year, 1 + 2050))] + ) else: # No target (type) specified diff --git a/ITR/data/template.py b/ITR/data/template.py index fd386241..e8d4c688 100644 --- a/ITR/data/template.py +++ b/ITR/data/template.py @@ -56,7 +56,10 @@ def _calculate_target_projections(self, self.column_config.COMPANY_ID: c.company_id, # self.column_config.GHG_SCOPE12 is incorrect in production_bm.get_company_projected_production. # Should be production value at base_year as defined in temp_config.CONTROLS_CONFIG - self.column_config.GHG_SCOPE12: base_year_production.magnitude, + # Do not confuse this base year metric with any target base year. + # Historic data is given in terms of its own EMISSIONS_METRIC and PRODUCTION_METRIC + # TODO: don't use c.production_metric; rather, grovel through c to address appropriately using PRODUCTION_METRIC text string. + self.column_config.GHG_SCOPE12: base_year_production.to(c.production_metric.units).magnitude, self.column_config.SECTOR: c.sector, self.column_config.REGION: c.region }, index=[0]) @@ -98,7 +101,10 @@ def _fixup_name(x): df_company_data = pd.read_excel(excel_path, sheet_name=None, skiprows=0) self._check_company_data(df_company_data) - df_fundamentals = df_company_data[TabsConfig.TEMPLATE_INPUT_DATA].set_index(ColumnsConfig.COMPANY_ID, drop=False).convert_dtypes() + input_data_sheet = TabsConfig.TEMPLATE_INPUT_DATA + if "Test input data" in df_company_data: + input_data_sheet = "Test input data" + df_fundamentals = df_company_data[input_data_sheet].set_index(ColumnsConfig.COMPANY_ID, drop=False).convert_dtypes() # GH https://github.com/pandas-dev/pandas/issues/46044 df_fundamentals.company_id = df_fundamentals.company_id.astype('object') @@ -134,14 +140,16 @@ def _fixup_name(x): # df_historic now ready for conversion to model for each company self.historic_years = [column for column in df_historic_data.columns if type(column) == int] - - df_target_data = df_company_data[TabsConfig.TEMPLATE_TARGET_DATA].set_index('company_id').convert_dtypes() + input_target_sheet = TabsConfig.TEMPLATE_TARGET_DATA + if "Test target data" in df_company_data: + input_target_sheet = "Test target data" + df_target_data = df_company_data[input_target_sheet].set_index('company_id').convert_dtypes() # TODO: need to fix Pydantic definition or data to allow optional int. In the mean time... df_target_data.loc[df_target_data.target_start_year.isna(), 'target_start_year'] = 2020 - df_target_data.loc[df_target_data.netzero_date.isna(), 'netzero_date'] = 2050 + df_target_data.loc[df_target_data.netzero_year.isna(), 'netzero_year'] = 2050 - # company_id, netzero_date, target_type, target_scope, target_start_year, target_base_year, target_base_year_qty, target_base_year_unit, target_year, target_reduction_ambition + # company_id, netzero_year, target_type, target_scope, target_start_year, target_base_year, target_base_year_qty, target_base_year_unit, target_year, target_reduction_ambition # df_target_data now ready for conversion to model for each company return self._company_df_to_model(df_fundamentals, df_target_data, df_historic_data) @@ -238,12 +246,12 @@ def _get_projection(self, company_ids: List[str], projections: pd.DataFrame, pro with warnings.catch_warnings(): warnings.simplefilter("ignore") # See https://github.com/hgrecco/pint-pandas/issues/114 - projected_emissions_s1s2 = projected_emissions_s1s2.apply(lambda x: x.astype(f'pint[t CO2/({production_metric[x.name]})]'), axis=1) + projected_emissions_s1s2 = projected_emissions_s1s2.apply(lambda x: x.astype(f'pint[??t CO2/({production_metric[x.name]})]'), axis=1) return projected_emissions_s1s2 # class ITargetData(PintModel): -# netzero_date: int +# netzero_year: int # target_type: Union[Literal['intensity'],Literal['absolute'],Literal['other']] # target_scope: EScope # start_year: Optional[int] diff --git a/ITR/interfaces.py b/ITR/interfaces.py index 8f20e4eb..dc02fdac 100644 --- a/ITR/interfaces.py +++ b/ITR/interfaces.py @@ -349,7 +349,7 @@ class IHistoricData(PintModel): class ITargetData(PintModel): - netzero_date: Optional[int] + netzero_year: Optional[int] target_type: Union[Literal['intensity'],Literal['absolute'],Literal['other']] target_scope: EScope start_year: Optional[int] diff --git a/examples/data/20220215 ITR Tool Sample Data.xlsx b/examples/data/20220215 ITR Tool Sample Data.xlsx index a95eb0739f318eaa64ac5b915e135d19279c54c3..ae81224aac3b95fc0437e8e63aa3c061ed1e6093 100644 GIT binary patch delta 26311 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%0A54X?n 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 TGsRyvu519pCt8&7mO%I)H}2j2 diff --git a/test/inputs/20220215 ITR Tool Sample Data.xlsx b/test/inputs/20220215 ITR Tool Sample Data.xlsx index a95eb0739f318eaa64ac5b915e135d19279c54c3..ae81224aac3b95fc0437e8e63aa3c061ed1e6093 100644 GIT binary patch delta 26311 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%0A54X?n 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 TGsRyvu519pCt8&7mO%I)H}2j2 diff --git a/test/test_template_provider.py b/test/test_template_provider.py index 81bf94a0..c70b587f 100644 --- a/test/test_template_provider.py +++ b/test/test_template_provider.py @@ -65,7 +65,7 @@ def test_target_projections(self): def test_temp_score(self): df_portfolio = pd.read_excel(self.company_data_path, sheet_name="Portfolio") - df_porfolio = df_portfolio[[df_portfolio.company_id=='US26441C2044']] + # df_portfolio = df_portfolio[df_portfolio.company_id=='US00130H1059'] companies = ITR.utils.dataframe_to_portfolio(df_portfolio) temperature_score = TemperatureScore( From 5a6f9e17608ffcaf22c8f16ca9b730ba69e07bab Mon Sep 17 00:00:00 2001 From: Michael Tiemann Date: Thu, 24 Feb 2022 08:35:38 -0500 Subject: [PATCH 112/345] Update .gitignore Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- .gitignore | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index 38e7a492..f21c6341 100644 --- a/.gitignore +++ b/.gitignore @@ -142,4 +142,6 @@ docker-compose_aws.yml .vscode # Misc -.noseids \ No newline at end of file +.noseids +test/.DS_Store +.DS_Store From e8a902ebcd5844c21aa0904de4faa563cd7e43a6 Mon Sep 17 00:00:00 2001 From: MichaelTiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> Date: Thu, 24 Feb 2022 21:15:15 -0500 Subject: [PATCH 113/345] Move _calculate_target_projections into DataWarehouse (and other cleanups) Other cleanups include: Let DataWarehouse call _calculate_target_projections so user doesn't have to worry about it. Fix more spellings of emission_ to emissions_ When creating the one-row company_sector_region_info DataFrame, don't just initialize with singleton elements; put those elements into lists (so we can pass a Quantity as an ExtensionArray instead of being seen as a dict Comment highly suspect declaration of projected_targets, which are available in the base class of ICompanyAggregates Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- ITR/data/data_warehouse.py | 7 ++++--- ITR/data/template.py | 9 +++++---- ITR/interfaces.py | 2 +- test/test_template_provider.py | 1 - 4 files changed, 10 insertions(+), 9 deletions(-) diff --git a/ITR/data/data_warehouse.py b/ITR/data/data_warehouse.py index b00b4352..23775cbe 100644 --- a/ITR/data/data_warehouse.py +++ b/ITR/data/data_warehouse.py @@ -24,7 +24,7 @@ class DataWarehouse(ABC): def __init__(self, company_data: CompanyDataProvider, benchmark_projected_production: ProductionBenchmarkDataProvider, - benchmarks_projected_emissions_intensity: IntensityBenchmarkDataProvider, + benchmarks_projected_ei: IntensityBenchmarkDataProvider, column_config: Type[ColumnsConfig] = ColumnsConfig, tempscore_config: Type[TemperatureScoreConfig] = TemperatureScoreConfig): """ @@ -34,11 +34,12 @@ def __init__(self, company_data: CompanyDataProvider, :param benchmark_projected_production: ProductionBenchmarkDataProvider :param benchmarks_projected_emissions_intensity: IntensityBenchmarkDataProvider """ - self.company_data = company_data self.benchmark_projected_production = benchmark_projected_production - self.benchmarks_projected_emissions_intensity = benchmarks_projected_emissions_intensity + self.benchmarks_projected_emission_intensity = benchmarks_projected_ei self.temp_config = tempscore_config self.column_config = column_config + self.company_data = company_data + self.company_data._calculate_target_projections(benchmark_projected_production, benchmarks_projected_ei) def get_preprocessed_company_data(self, company_ids: List[str]) -> List[ICompanyAggregates]: """ diff --git a/ITR/data/template.py b/ITR/data/template.py index e8d4c688..e8617f14 100644 --- a/ITR/data/template.py +++ b/ITR/data/template.py @@ -40,6 +40,7 @@ def _calculate_target_projections(self, EI_bm: BaseProviderIntensityBenchmark): """ We cannot calculate target projections until after we have loaded benchmark data. + We do so when companies are associated with benchmarks, in the DataWarehouse construction :param Production_bm: A Production Benchmark (multi-sector, single-scope, 2020-2050) :param EI_bm: An Emissions Intensity Benchmark (multi-sector, single-scope, 2020-2050) @@ -53,15 +54,15 @@ def _calculate_target_projections(self, else: base_year_production = next((p.value for p in c.historic_data.productions if p.year == self.temp_config.CONTROLS_CONFIG.base_year), None) company_sector_region_info = pd.DataFrame({ - self.column_config.COMPANY_ID: c.company_id, + self.column_config.COMPANY_ID: [ c.company_id ], # self.column_config.GHG_SCOPE12 is incorrect in production_bm.get_company_projected_production. # Should be production value at base_year as defined in temp_config.CONTROLS_CONFIG # Do not confuse this base year metric with any target base year. # Historic data is given in terms of its own EMISSIONS_METRIC and PRODUCTION_METRIC # TODO: don't use c.production_metric; rather, grovel through c to address appropriately using PRODUCTION_METRIC text string. - self.column_config.GHG_SCOPE12: base_year_production.to(c.production_metric.units).magnitude, - self.column_config.SECTOR: c.sector, - self.column_config.REGION: c.region + self.column_config.GHG_SCOPE12: [ base_year_production.to(c.production_metric.units) ], + self.column_config.SECTOR: [ c.sector ], + self.column_config.REGION: [ c.region ], }, index=[0]) bm_production_data = (production_bm.get_company_projected_production(company_sector_region_info) # We transpose the data so that we get a pd.Series that will accept the pint units as a whole (not element-by-element) diff --git a/ITR/interfaces.py b/ITR/interfaces.py index dc02fdac..e56921a2 100644 --- a/ITR/interfaces.py +++ b/ITR/interfaces.py @@ -453,7 +453,7 @@ class ICompanyAggregates(ICompanyData): benchmark_temperature: Quantity['delta_degC'] benchmark_global_budget: Quantity['CO2'] - projected_targets: Optional[ICompanyEIProjectionsScopes] + # projected_targets: Optional[ICompanyEIProjectionsScopes] # projected_intensities: Optional[ICompanyEIProjectionsScopes] def __init__(self, cumulative_budget, cumulative_trajectory, cumulative_target, benchmark_temperature, benchmark_global_budget, *args, **kwargs): diff --git a/test/test_template_provider.py b/test/test_template_provider.py index c70b587f..3d174b33 100644 --- a/test/test_template_provider.py +++ b/test/test_template_provider.py @@ -28,7 +28,6 @@ def setUp(self) -> None: self.excel_EI_bm = ExcelProviderIntensityBenchmark(excel_path=self.sector_data_path, benchmark_temperature=Q_(1.5, ureg.delta_degC), benchmark_global_budget=Q_(396, ureg('Gt CO2')), is_AFOLU_included=False) self.template_company_data = TemplateProviderCompany(excel_path=self.company_data_path) - self.template_company_data._calculate_target_projections(production_bm=self.excel_production_bm, EI_bm=self.excel_EI_bm) self.excel_provider = DataWarehouse(self.template_company_data, self.excel_production_bm, self.excel_EI_bm) # self.company_ids = ["US00130H1059", "US26441C2044", "KR7005490008"] self.company_ids = ["US26441C2044"] From 925317e383aa046d11708c4899df6cb7b99c51f6 Mon Sep 17 00:00:00 2001 From: MichaelTiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> Date: Thu, 24 Feb 2022 21:53:13 -0500 Subject: [PATCH 114/345] Update template.py Connected to previous checkin: construct company_sector_region_info DataFrame using dictionary of [] not singleton elements to make Quantity work as ArrayExtension instead of dict. Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- ITR/data/template.py | 24 +++++++++++++----------- 1 file changed, 13 insertions(+), 11 deletions(-) diff --git a/ITR/data/template.py b/ITR/data/template.py index e8617f14..8116037b 100644 --- a/ITR/data/template.py +++ b/ITR/data/template.py @@ -53,17 +53,19 @@ def _calculate_target_projections(self, continue else: base_year_production = next((p.value for p in c.historic_data.productions if p.year == self.temp_config.CONTROLS_CONFIG.base_year), None) - company_sector_region_info = pd.DataFrame({ - self.column_config.COMPANY_ID: [ c.company_id ], - # self.column_config.GHG_SCOPE12 is incorrect in production_bm.get_company_projected_production. - # Should be production value at base_year as defined in temp_config.CONTROLS_CONFIG - # Do not confuse this base year metric with any target base year. - # Historic data is given in terms of its own EMISSIONS_METRIC and PRODUCTION_METRIC - # TODO: don't use c.production_metric; rather, grovel through c to address appropriately using PRODUCTION_METRIC text string. - self.column_config.GHG_SCOPE12: [ base_year_production.to(c.production_metric.units) ], - self.column_config.SECTOR: [ c.sector ], - self.column_config.REGION: [ c.region ], - }, index=[0]) + with warnings.catch_warnings(): + warnings.simplefilter("ignore") + company_sector_region_info = pd.DataFrame({ + self.column_config.COMPANY_ID: [ c.company_id ], + # self.column_config.GHG_SCOPE12 is incorrect in production_bm.get_company_projected_production. + # Should be production value at base_year as defined in temp_config.CONTROLS_CONFIG + # Do not confuse this base year metric with any target base year. + # Historic data is given in terms of its own EMISSIONS_METRIC and PRODUCTION_METRIC + # TODO: don't use c.production_metric; rather, grovel through c to address appropriately using PRODUCTION_METRIC text string. + self.column_config.GHG_SCOPE12: [ base_year_production.to(c.production_metric.units) ], + self.column_config.SECTOR: [ c.sector ], + self.column_config.REGION: [ c.region ], + }, index=[0]) bm_production_data = (production_bm.get_company_projected_production(company_sector_region_info) # We transpose the data so that we get a pd.Series that will accept the pint units as a whole (not element-by-element) .iloc[0].T From 853967596d414d44a4a4486f661503eb994c94e9 Mon Sep 17 00:00:00 2001 From: MichaelTiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> Date: Thu, 24 Feb 2022 21:56:06 -0500 Subject: [PATCH 115/345] Create unitized version of GUI app Modify the original GUI app to work with new unitized ITR backend: * Added unitized JSON files * Use new initialization procedures for data Template * Unitize quantities within the GUI, such as specific temperature score values. Not fully working: a graph of production output wrongly tries to mix Steel production numbers (Fe_ton) with Electricity production numbers (TWh). It's good that the unit code caught it! Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- examples/ITR_dash_app_develop.py | 698 +++++++++++++++ .../data/json-units/benchmark_EI_OECM.json | 821 ++++++++++++++++++ .../benchmark_EI_TPI_2_degrees.json | 281 ++++++ .../benchmark_EI_TPI_below_2_degrees.json | 281 ++++++ .../json-units/benchmark_production_OECM.json | 818 +++++++++++++++++ examples/data/template_portfolio.csv | 32 + 6 files changed, 2931 insertions(+) create mode 100644 examples/ITR_dash_app_develop.py create mode 100644 examples/data/json-units/benchmark_EI_OECM.json create mode 100644 examples/data/json-units/benchmark_EI_TPI_2_degrees.json create mode 100644 examples/data/json-units/benchmark_EI_TPI_below_2_degrees.json create mode 100644 examples/data/json-units/benchmark_production_OECM.json create mode 100644 examples/data/template_portfolio.csv diff --git a/examples/ITR_dash_app_develop.py b/examples/ITR_dash_app_develop.py new file mode 100644 index 00000000..d5cbc990 --- /dev/null +++ b/examples/ITR_dash_app_develop.py @@ -0,0 +1,698 @@ +# Run this app with `python ITR_dash_app.py` and +# visit http://127.0.0.1:8050/ in your web browser +# and pray. + + +import pandas as pd +import json +import os +import base64 +import datetime +import io + +import dash +from dash import html +from dash import dcc +from dash import dash_table + +import dash_bootstrap_components as dbc # should be installed separately + +from dash.dependencies import Input, Output, State +from dash.exceptions import PreventUpdate +import plotly.express as px +import plotly.graph_objects as go + +import ITR + +from ITR.data.data_warehouse import DataWarehouse +from ITR.portfolio_aggregation import PortfolioAggregationMethod +from ITR.temperature_score import TemperatureScore +from ITR.configs import ColumnsConfig, TemperatureScoreConfig + +from ITR.data.base_providers import BaseProviderProductionBenchmark, BaseProviderIntensityBenchmark +from ITR.data.template import TemplateProviderCompany +from ITR.interfaces import ICompanyData, EScope, ETimeFrames, PortfolioCompany, IEIBenchmarkScopes, IProductionBenchmarkScopes + +from ITR.data.osc_units import ureg, Q_, PA_ + +# Initial calculations +print('Start!!!!!!!!!') + +directory1 ='' #'examples' +directory2="data" +directory3="json-units" + +# company_json_file = "fundamental_data.json" +benchmark_prod_json_file = "benchmark_production_OECM.json" +benchmark_EI_OECM_file = "benchmark_EI_OECM.json" +benchmark_EI_TPI_file = "benchmark_EI_TPI_2_degrees.json" +benchmark_EI_TPI_below_2_file = "benchmark_EI_TPI_below_2_degrees.json" + +root = os.path.dirname(os.path.abspath("__file__")) +# root = os.path.dirname(os.path.abspath(__file__)) +# company_json = os.path.join(root, directory1, directory2, directory3, company_json_file) +benchmark_prod_json = os.path.join(root, directory1, directory2, directory3, benchmark_prod_json_file) +benchmark_EI_OECM = os.path.join(root, directory1, directory2, directory3, benchmark_EI_OECM_file) +benchmark_EI_TPI = os.path.join(root, directory1, directory2, directory3, benchmark_EI_TPI_file) +benchmark_EI_TPI_below_2 = os.path.join(root, directory1, directory2, directory3, benchmark_EI_TPI_below_2_file) + +# load production benchmarks +with open(benchmark_prod_json) as json_file: + parsed_json = json.load(json_file) +prod_bms = IProductionBenchmarkScopes.parse_obj(parsed_json) +base_production_bm = BaseProviderProductionBenchmark(production_benchmarks=prod_bms) + +# load intensity benchmarks + +# OECM +with open(benchmark_EI_OECM) as json_file: + parsed_json = json.load(json_file) +ei_bms = IEIBenchmarkScopes.parse_obj(parsed_json) +OECM_EI_bm = BaseProviderIntensityBenchmark(EI_benchmarks=ei_bms) + +# TPI +with open(benchmark_EI_TPI) as json_file: + parsed_json = json.load(json_file) +ei_bms = IEIBenchmarkScopes.parse_obj(parsed_json) +TPI_EI_bm = BaseProviderIntensityBenchmark(EI_benchmarks=ei_bms) + +# TPI below 2 +with open(benchmark_EI_TPI_below_2) as json_file: + parsed_json = json.load(json_file) +ei_bms = IEIBenchmarkScopes.parse_obj(parsed_json) +TPI_below_2_EI_bm = BaseProviderIntensityBenchmark(EI_benchmarks=ei_bms) + +# load company data +# presently projections are assigned to companies based on a single benchmark. +# To support multiple benchmarks we have to copy the company data (we cannot .copy because of ABC) +# Next step is probably to access projections via a dictionary indexed by benchmark name +template_company_data_OECM = TemplateProviderCompany(excel_path="data/20220215 ITR Tool Sample Data.xlsx") +template_company_data_TPI = TemplateProviderCompany(excel_path="data/20220215 ITR Tool Sample Data.xlsx") +template_company_data_TPI2 = TemplateProviderCompany(excel_path="data/20220215 ITR Tool Sample Data.xlsx") + +OECM_warehouse = DataWarehouse(template_company_data_OECM, base_production_bm, OECM_EI_bm) +TPI_warehouse = DataWarehouse(template_company_data_TPI, base_production_bm, TPI_EI_bm) +TPI_below_2_warehouse = DataWarehouse(template_company_data_TPI2, base_production_bm, TPI_below_2_EI_bm) + + +# dummy_portfolio = "example_portfolio.csv" +dummy_portfolio = "template_portfolio.csv" +df_portfolio = pd.read_csv(os.path.join(directory1,directory2,dummy_portfolio), encoding="iso-8859-1", sep=';') +print('got till here 1') +companies = ITR.utils.dataframe_to_portfolio(df_portfolio) +temperature_score = TemperatureScore(time_frames = [ETimeFrames.LONG],scopes=[EScope.S1S2],aggregation_method=PortfolioAggregationMethod.WATS) # Options for the aggregation method are WATS, TETS, AOTS, MOTS, EOTS, ECOTS, and ROTS + +portfolio_data = ITR.utils.get_data(OECM_warehouse, companies) +amended_portfolio_global = temperature_score.calculate(portfolio_data) +initial_portfolio = amended_portfolio_global +print('got till here 2') + + +# nice cheatsheet for managing layout via className attribute: https://hackerthemes.com/bootstrap-cheatsheet/ + +# Define app +app = dash.Dash(__name__, external_stylesheets=[dbc.themes.BOOTSTRAP], # theme should be written in CAPITAL letters; list of themes https://www.bootstrapcdn.com/bootswatch/ + meta_tags=[{'name': 'viewport', # this thing makes layout responsible to mobile view + 'content': 'width=device-width, initial-scale=1.0'}] + ) +app.title = "ITR Tool" # this puts text to the browser tab +server = app.server + +controls = dbc.Row( # always do in rows ... + [ + dbc.Col( # ... and then split to columns + children=[ + # dbc.Row( + # [ + # dbc.Col( # Carbon budget slider + # dbc.Label("\N{scroll} Benchmark carbon budget"), + # width=9, # max is 12 per column + # ), + # dbc.Col( + # [ + # dbc.Button("\N{books}",id="hover-target1", color="link", n_clicks=0, className="text-right"), + # dbc.Popover(dbc.PopoverBody("And here's some amazing content. Cool!"),id="hover1",target="hover-target1",trigger="hover"), + # ], width=2, + # ), + # ], + # align="center", + # ), + # dcc.RangeSlider( + # id="carb-budg", + # min=initial_portfolio.cumulative_budget.min(),max=initial_portfolio.cumulative_budget.max(), + # value=[initial_portfolio.cumulative_budget.min(), initial_portfolio.cumulative_budget.max()], + # tooltip={'placement': 'bottom'}, + # marks={i*(10**8): str(i) for i in range(0, int(initial_portfolio.cumulative_budget.max()/(10**8)), 10)}, + # ), + dbc.Row( + [ + dbc.Col( + dbc.Label("\N{thermometer} Individual temperature score"), + width=9, + ), + dbc.Col( + [ + dbc.Button("\N{books}",id="hover-target2", color="link", n_clicks=0), + dbc.Popover(dbc.PopoverBody("And here's some amazing content. Cool!"),id="hover2",target="hover-target2",trigger="hover"), + ], width=2, align="center", + ), + ], + align="center", + ), + dcc.RangeSlider( + id="temp-score", + min = 0, max = 4, value=[0,4], + step=0.5, + marks={i / 10: str(i / 10) for i in range(0, 40, 5)}, + ), + dbc.Row( + [ + dbc.Col( + dbc.Label("\N{factory} Focus on a specific sector "), + width=9, + ), + dbc.Col( + [ + dbc.Button("\N{books}",id="hover-target3", color="link", n_clicks=0), + dbc.Popover(dbc.PopoverBody("And here's some amazing content. Cool!"),id="hover3",target="hover-target3",trigger="hover"), + ], width=2, + ), + ], + align="center", + ), + dcc.Dropdown(id="sector-dropdown", + options=[{"label": i, "value": i} for i in initial_portfolio["sector"].unique()] + [{'label': 'All Sectors', 'value': 'all_values'}], + value = 'all_values', + clearable =False, + placeholder="Select a sector"), + dbc.Row( + [ + dbc.Col( + dbc.Label("\N{globe with meridians} Focus on a specific region "), + width=9, + ), + dbc.Col( + [ + dbc.Button("\N{books}",id="hover-target4", color="link", n_clicks=0), + dbc.Popover(dbc.PopoverBody("And here's some amazing content. Cool!"),id="hover4",target="hover-target4",trigger="hover"), + ], width=2, + ), + ], + align="center", + ), + dcc.Dropdown(id="region-dropdown", + options=[{"label": i, "value": i} for i in initial_portfolio["region"].unique()] + [{'label': 'All Regions', 'value': 'all_values'}], + value = 'all_values', + clearable =False, + placeholder="Select a region"), + + ], + ), + ], +) + +macro = dbc.Row( + [ + dbc.Col( + children=[ + dbc.Row( + [ + dbc.Col( + dbc.Label("\N{bar chart} Select Benchmark "), + width=9, + ), + dbc.Col( + [ + dbc.Button("\N{books}",id="hover-target5", color="link", n_clicks=0), + dbc.Popover(dbc.PopoverBody("And here's some amazing content. Cool!"),id="hover5",target="hover-target5",trigger="hover"), + ], width=2, + ), + ], + align="center", + ), + dcc.Dropdown(id="scenario-dropdown", + options=[ + {'label': 'OECM 1.5 degrees', 'value': 'OECM'}, + {'label': 'TPI 2 degrees', 'value': 'TPI_2_degrees'}, + {'label': 'TPI below 2 degrees', 'value': 'TPI_below_2_degrees'} + ], + value='OECM', + clearable =False, + placeholder="Select emission scenario"), + html.Div(id='hidden-div', style={'display':'none'}) + ], + ), + ], +) + + +# Define Layout +app.layout = dbc.Container( # always start with container + children=[ + # dcc.Store(id='memory-output'), # not used, but the idea is to use as clipboard to store dataframe + html.Hr(), # small space from the top + dbc.Row( # upload portfolio + [ + dbc.Col( + dbc.CardImg( + src="https://os-climate.org/wp-content/uploads/sites/138/2021/10/OSC-Logo.png", + className='h-60 w-60 float-right align-middle', # reducing size and alligning + bottom=False), + width = 2, + ), + dbc.Col( + [ + html.H1(id="banner-title",children=[html.A("OS-Climate Portfolio Alignment Tool",href="https://github.com/plotly/dash-svm",style={"text-decoration": "none","color": "inherit"})]), + html.Div(children='Prototype tool for calculating the Implied Temperature Rise of investor portfolio in the steel and electric utilities sectors \N{deciduous tree}'), + ], + width = 6, + ), + dbc.Col([ + dcc.Upload( + id='upload-data', + children=html.Div( + dbc.Button('Upload portfolio', size="lg", color="primary",className='align-bottom',), + ), + multiple=False # Allow multiple files to be uploaded + ), + ], + width=2, + ), + dbc.Col(html.Div(dbc.Button('Get template', size="lg", color="secondary", + href="https://raw.githubusercontent.com/os-c/ITR/e772349117d41e1b62e3f9bcfb904b7e9c5e6c35/examples/data/example_portfolio.csv?token=AD3GZXC7GFH2O6EC7Z3X3KLBOE5MO", + download="Dummy_portfolio.csv.txt", + external_link=True, + ), + ), + width=2, + className='align-middle', + ) + ], + # no_gutters=False, # deprecated, creates spaces btw components + justify='center', # for this to work you need some space left (in total there 12 columns) + align = 'center', + ), + # dbc.Row( # the row below is commented out, but left just in case to reverse upload functionality + # [ + # dbc.Col( + # [dbc.InputGroup( + # [dbc.InputGroupAddon("Put the URL of a csv portfolio here:", addon_type="prepend"), + # dbc.Input(id="input-url",value = 'data/example_portfolio_main.csv',), + # ] + # ), + # ], + # width = 9, + # ), + # dbc.Col(dbc.Button("Upload new portfolio", id="run-url", color="primary", ), + # width=3, + # ), + # ] + # ), + html.Hr(), + dbc.Row( + [ + dbc.Col([ # filters pane + dbc.Card(dbc.CardBody( + [ + dbc.Row([ # Row with key figures + dbc.Col(html.H5("Filters", className="pf-filter")), # PF score + dbc.Col( + html.Div( + dbc.Button("Reset filters", + id="reset-filters-but", + outline=True, color="dark",size="sm",className="me-md-2" + ), + className="d-grid gap-2 d-md-flex justify-content-md-end" + ) + ), + ]), + html.P("Select part of your portfolio", className="text-black-50"), + controls, + ] + ) + ), + html.Br(), + dbc.Card(dbc.CardBody( + [ + html.H5("Scenario assumptions", className="macro-filters"), + html.P("Here you could adjust basic assumptions of calculations", className="text-black-50"), + macro, + ] + ) + ), + ], + width=3, + ), + dbc.Col([ # main pane + dbc.Row([ # Row with key figures + dbc.Col( # PF score + dbc.Card(dbc.CardBody( + [ + html.H1(id="output-info"), + html.P('Portfolio-level temperature rating of selected companies'), + ] + ) + ), + ), + dbc.Col( # Portfolio EVIC + dbc.Card(dbc.CardBody( + [ + html.H1(id="evic-info"), + html.P('Enterprise Value incl. Cash of selected portfolio in Bn'), + ] + ) + ), + ), + dbc.Col( # Portfolio notional + dbc.Card(dbc.CardBody( + [ + html.H1(id="pf-info"), + html.P('Total Notional of a selected portfolio in Mn'), + ] + ) + ), + ), + dbc.Col( # Number of companies + dbc.Card(dbc.CardBody( + [ + html.H1(id="comp-info"), + html.P('Number of companies in the selected portfolio'), + ] + ) + ), + ), + ], + ), + dbc.Row([dbc.Col(dcc.Graph(id="graph-2"),width=8), # big bubble graph + dbc.Col(dcc.Graph(id="graph-6"),), # covered graph + ], + ), + dbc.Row([ # 2 graphs + dbc.Col(dcc.Graph(id="graph-3", + # style={"height": "70vh", "max-height": "90vw",'title': 'Dash Data Visualization'}, + ), + ), + dbc.Col(dcc.Graph(id="graph-4", + # style={"height": "70vh", "max-height": "90vw",'title': 'Dash Data Visualization'}, + ), + ), + ]), + dbc.Row([ # 2 graphs + dbc.Col(dcc.Graph(id="graph-5", + # style={"height": "70vh", "max-height": "90vw",'title': 'Dash Data Visualization'}, + ), + ), + ]), + html.Br(), + dbc.Card(dbc.CardBody( # Table + [ + dbc.Row( + [ + dbc.Col( + html.H5("Table below contains details about the members of the selected portfolio"), + width=10, + ), + dbc.Col( + html.Div( + [ + dbc.Button("\N{books}",id="hover-target7", color="link", n_clicks=0, className="text-right"), + dbc.Popover(dbc.PopoverBody([ + html.P("Emissions budget: ..."), + html.P("Trajectory score: ..."), + html.P("Target score: ..."), + html.P("Temperature score: ..."), + ] + ), + id="hover7",target="hover-target7",trigger="hover"), + ], + className="d-grid gap-2 d-md-flex justify-content-md-end", + ), + width=2, + ), + ], + align="center", + ), + html.Br(), + html.Div(id='container-button-basic'), + ] + ), + ), + + ] + ), + ] + ) + ], + style={"max-width": "1500px", + # "margin": "auto" + }, + ) +print('got till here 4') + + + +def parse_contents(contents, filename): + content_type, content_string = contents.split(',') + decoded = base64.b64decode(content_string) + try: + if 'csv' in filename: # Assume that the user uploaded a CSV file + df = pd.read_csv(io.StringIO(decoded.decode('iso-8859-1'))) + elif 'xls' in filename: # Assume that the user uploaded an excel file + df = pd.read_excel(io.BytesIO(decoded)) + # print(df) + return df + except Exception as e: + print(e) + + +@app.callback( + [ + Output("graph-2", "figure"), Output("graph-6", "figure"),Output("graph-3", "figure"), Output("graph-4", "figure"), Output("graph-5", "figure"), + Output('output-info','children'), # portfolio score + Output('output-info','style'), # conditional color + Output('evic-info','children'), # portfolio evic + Output('pf-info','children'), # portfolio notional + Output('comp-info','children'), # num of companies + # Output('carb-budg', 'min'), Output('carb-budg', 'max'), # this was an adjusting of min-max of a slider + Output('container-button-basic', 'children'), # Table + ], + [ +# Input('memory-output', 'data'), # here is our imported csv in memory + Input("scenario-dropdown", "value"), + # Input("carb-budg", "value"), # carbon budget + Input("temp-score", "value"), + # Input("run-url", "n_clicks"), + # Input("input-url", "n_submit"), + Input("sector-dropdown", "value"), + Input("region-dropdown", "value"), + Input('upload-data', 'contents'), + ], + [ + # State("input-url", "value"), # url functionality + State('upload-data', 'filename'), # upload functionality + ], +) + +def update_graph( + # df_store, + scenario, + # ca_bu, + te_sc, + sec, reg, + list_of_contents, list_of_names, # related to upload + # url, + ): + + global amended_portfolio_global, initial_portfolio, temperature_score, companies + + print('got till here 5') + + changed_id = [p['prop_id'] for p in dash.callback_context.triggered][0] # to catch which widgets were pressed + if 'upload-data' in changed_id: # if "upload new pf" button was clicked + df_portfolio = parse_contents(list_of_contents, list_of_names) + # df_portfolio = pd.read_csv(url, encoding="iso-8859-1", sep=';') + companies = ITR.utils.dataframe_to_portfolio(df_portfolio) + portfolio_data = ITR.utils.get_data(OECM_warehouse, companies) + initial_portfolio = temperature_score.calculate(portfolio_data) + initial_portfolio = initial_portfolio.sort_values(by='temperature_score', ascending=False) + filt_df = initial_portfolio + amended_portfolio_global = filt_df + aggregated_scores = temperature_score.aggregate_scores(filt_df) + + else: # no new portfolio + if scenario == 'OECM': + portfolio_data = ITR.utils.get_data(OECM_warehouse, companies) + elif scenario == 'TPI_2_degrees': + portfolio_data = ITR.utils.get_data(TPI_warehouse, companies) + else: + portfolio_data = ITR.utils.get_data(TPI_below_2_warehouse, companies) + + amended_portfolio_global = temperature_score.calculate(portfolio_data) + initial_portfolio = amended_portfolio_global + + # carbon_mask = (initial_portfolio.cumulative_budget >= ca_bu[0]) & (initial_portfolio.cumulative_budget <= ca_bu[1]) + print(type(initial_portfolio.temperature_score)) + print(initial_portfolio.temperature_score) + temp_score_mask = (initial_portfolio.temperature_score >= Q_(te_sc[0],'delta_degC')) & (initial_portfolio.temperature_score <= Q_(te_sc[1],'delta_degC')) + + # Dropdown filters + if sec == 'all_values': + sec_mask = (initial_portfolio.sector != 'dummy') # select all + else: + sec_mask = initial_portfolio.sector == sec + if reg == 'all_values': + reg_mask = (initial_portfolio.region != 'dummy') # select all + else: + reg_mask = (initial_portfolio.region == reg) + filt_df = initial_portfolio.loc[temp_score_mask & sec_mask & reg_mask] # filtering + filt_df = filt_df.sort_values(by='temperature_score', ascending=False) + if len(filt_df) == 0: # if after filtering the dataframe is empty + raise PreventUpdate + amended_portfolio_global = filt_df + aggregated_scores = temperature_score.aggregate_scores(filt_df) # calc temp score for companies left in pf + + + # Calculate different weighting methods + def agg_score(agg_method): + temperature_score = TemperatureScore(time_frames = [ETimeFrames.LONG], + scopes=[EScope.S1S2], + aggregation_method=agg_method) # Options for the aggregation method are WATS, TETS, AOTS, MOTS, EOTS, ECOTS, and ROTS + aggregated_scores = temperature_score.aggregate_scores(filt_df) + return [agg_method.value,aggregated_scores.long.S1S2.all.score] + + agg_temp_scores = [agg_score(i) for i in PortfolioAggregationMethod] + df_temp_score = pd.DataFrame(agg_temp_scores) + # Separate column for names on Bar chart + # Highlight WATS and TETS + Weight_Dict = {'WATS': 'Investment
weighted', #
is needed to wrap x-axis label + 'TETS': 'Total emissions
weighted', + 'EOTS': "Enterprise Value
weighted", + 'ECOTS': "Enterprise Value
+ Cash weighted", + 'AOTS': "Total Assets
weighted", + 'ROTS': "Revenues
weigted", + 'MOTS': 'Market Cap
weighted'} + df_temp_score['Weight_method'] = df_temp_score[0].map(Weight_Dict) # Mapping code to text + df_temp_score[1]=df_temp_score[1].round(decimals = 2) + # Creating barchart + fig4 = px.bar(df_temp_score, x='Weight_method', y=1, text=1,title = "Score by weighting scheme
Assess the influence of weighting schemes on scores") + fig4.update_traces(textposition='inside', textangle=0) + fig4.update_yaxes(title_text='Temperature score', range = [1,3]) + fig4.update_xaxes(title_text=None, tickangle=0) + fig4.add_annotation(x=0.5, y=2.6,text="Main methodologies",showarrow=False) + fig4.add_shape( + dict(type="rect", x0=-0.45, x1=1.5, y0=0, y1=2.7, line_dash="dot",line_color="LightSeaGreen"), + row="all", + col="all", + ) + fig4.add_hline(y=2, line_dash="dot",line_color="red",annotation_text="Critical value") # horizontal line + fig4.update_layout(transition_duration=500) + + + + + # Scatter plot + fig1 = px.scatter(filt_df, x="cumulative_target", y="cumulative_budget", + size="investment_value", + color = "sector", labels={"color": "Sector"}, + hover_data=["company_name", "investment_value", "temperature_score"], + title="Overview of portfolio") + fig1.update_layout({'legend_title_text': '','transition_duration':500}) + fig1.update_layout(legend=dict(orientation = "h",yanchor="bottom",y=1,xanchor="center",x=0.5)) + + + # Covered companies analysis + coverage=filt_df[['company_id','ghg_s1s2','cumulative_target']] + def f(row): + if (pd.isna(row['ghg_s1s2']) and row['cumulative_target']==Q_(0, 't CO2')): + val = "Not Covered" + elif (pd.isna(row['ghg_s1s2']) and row['cumulative_target']>Q_(0, 't CO2')): + val = "Covered only
by target" + elif (row['ghg_s1s2']>0 and row['cumulative_target']==Q_(0, 't CO2')): + val = "Covered only
by emissions" + else: + val = "Covered by
emissions and targets" + return val + coverage['coverage_category'] = coverage.apply(f, axis=1) + dfg=coverage.groupby('coverage_category').count().reset_index() + dfg['portfolio']='Portfolio' # 1 column to have just 1 bar. I didn't figure out how to do it more ellegant + fig5 = px.bar(dfg, x='portfolio',y="company_id", color="coverage_category",text='company_id',title="Coverage of companies in portfolio") + fig5.update_xaxes(visible=False) # hide axis + fig5.update_yaxes(visible=False) # hide axis + fig5.update_layout({'legend_title_text': '','transition_duration':500, 'plot_bgcolor':'white'}) + fig5.update_layout(legend=dict(yanchor="middle",y=0.5,xanchor="left",x=1)) # location of legend + + # Heatmap + trace = go.Heatmap( + x = filt_df.sector, + y = filt_df.region, + z = filt_df.temperature_score, + type = 'heatmap', + colorscale = 'Temps', + ) + data = [trace] + fig2 = go.Figure(data = data) + fig2.update_layout(title = "Industry vs Region ratings") + + + fig3 = px.bar(filt_df.query("temperature_score > Q_(2, 'delta_degC')"), + x="company_name", y="temperature_score", + text ="temperature_score", + color="sector",title="Highest temperature scores by company") + fig3.update_traces(textposition='inside', textangle=0) + fig3.update_yaxes(title_text='Temperature score', range = [1,4]) + fig3.update_layout({'legend_title_text': '','transition_duration':500}) + fig3.update_layout(xaxis_title = None,legend=dict(orientation = "h",yanchor="bottom",y=1,xanchor="center",x=0.5)) + + + # Carbon budget slider update + # drop_d_min = initial_portfolio.cumulative_budget.min() + # drop_d_max = initial_portfolio.cumulative_budget.max() + + df=amended_portfolio_global[['company_name', 'company_id','region','sector','cumulative_budget','investment_value','trajectory_score', 'target_score','temperature_score']] + df['temperature_score']=df['temperature_score'].map(lambda x: Q_(x.m.round(decimals = 2), x.u)) # formating column + df['trajectory_score']=df['trajectory_score'].map(lambda x: Q_(x.m.round(decimals = 2), x.u)) # formating column + df['target_score']=df['target_score'].map(lambda x: Q_(x.m.round(decimals = 2), x.u)) # formating column + df['cumulative_budget'] = df['cumulative_budget'].apply(lambda x: "{:,.1f}".format((x/1000000))) # formating column + df['investment_value'] = df['investment_value'].apply(lambda x: "${:,.1f} Mn".format((x/1000000))) # formating column + df.rename(columns={'company_name':'Name', 'company_id':'ISIN','region':'Region','sector':'Industry','cumulative_budget':'Emissions budget','investment_value':'Notional','trajectory_score':'Historical emissions score', 'target_score':'Target score','temperature_score':'Weighted temperature score'}, inplace=True) + + return ( + fig1, fig5, fig2, fig3, fig4, + "{:.2f}".format(aggregated_scores.long.S1S2.all.score), # portfolio score + {'color': 'ForestGreen'} if aggregated_scores.long.S1S2.all.score < Q_(2, 'delta_degC') else {'color': 'Red'}, # conditional color + str(round((filt_df.company_enterprise_value.sum()+filt_df.company_cash_equivalents.sum())/10**9,0)), + str(filt_df.investment_value.sum()/10**6), + str(len(filt_df)), # num of companies + # str(len(filt_df.sector.unique())), # num of sectors in pf + # drop_d_min, drop_d_max, # Carbon budget slider update + dbc.Table.from_dataframe(df, + striped=True, + bordered=True, + hover=True, + responsive=True, + ), + ) + + +@app.callback( # reseting dropdowns + [ + # Output("carb-budg", "value"), # Carbon budget slider update + Output("temp-score", "value"), + Output("sector-dropdown", "value"), + Output("region-dropdown", "value"), + ], + [Input('reset-filters-but', 'n_clicks')] +) + +def reset_filters(n_clicks): + if n_clicks is None: + raise PreventUpdate + return ( # if button is clicked, reset filters + # [initial_portfolio.cumulative_budget.min(), initial_portfolio.cumulative_budget.max()], # Carbon budget slider update + [0,4], + 'all_values', + 'all_values', + ) + +if __name__ == "__main__": + app.run_server(debug=True) diff --git a/examples/data/json-units/benchmark_EI_OECM.json b/examples/data/json-units/benchmark_EI_OECM.json new file mode 100644 index 00000000..33dcc3bb --- /dev/null +++ b/examples/data/json-units/benchmark_EI_OECM.json @@ -0,0 +1,821 @@ +{ + "benchmark_temperature": "1.5 delta_degC", + "benchmark_global_budget": "396 Gt CO2", + "is_AFOLU_included": false, + "S1S2": { + "benchmarks": [ + { + "sector": "Steel", + "region": "Global", + "benchmark_metric": { "units": "t CO2/Fe_ton" }, + "projections": [ + { + "year": 2019, + "value": 3.3220564752850343 + }, + { + "year": 2020, + "value": 3.1503497972403762 + }, + { + "year": 2021, + "value": 3.0527921157410978 + }, + { + "year": 2022, + "value": 2.9552344342418193 + }, + { + "year": 2023, + "value": 2.857676752742541 + }, + { + "year": 2024, + "value": 2.7601190712432624 + }, + { + "year": 2025, + "value": 2.662561389743985 + }, + { + "year": 2026, + "value": 2.4712202694763543 + }, + { + "year": 2027, + "value": 2.279879149208724 + }, + { + "year": 2028, + "value": 2.0885380289410933 + }, + { + "year": 2029, + "value": 1.897196908673463 + }, + { + "year": 2030, + "value": 1.7058557884058332 + }, + { + "year": 2031, + "value": 1.5675115369354773 + }, + { + "year": 2032, + "value": 1.4291672854651214 + }, + { + "year": 2033, + "value": 1.2908230339947655 + }, + { + "year": 2034, + "value": 1.1524787825244096 + }, + { + "year": 2035, + "value": 1.014134531054054 + }, + { + "year": 2036, + "value": 0.931354020885741 + }, + { + "year": 2037, + "value": 0.8485735107174281 + }, + { + "year": 2038, + "value": 0.7657930005491153 + }, + { + "year": 2039, + "value": 0.6830124903808024 + }, + { + "year": 2040, + "value": 0.6002319802124896 + }, + { + "year": 2041, + "value": 0.5476438118058607 + }, + { + "year": 2042, + "value": 0.4950556433992319 + }, + { + "year": 2043, + "value": 0.4424674749926031 + }, + { + "year": 2044, + "value": 0.38987930658597425 + }, + { + "year": 2045, + "value": 0.33729113817934536 + }, + { + "year": 2046, + "value": 0.3018329516910954 + }, + { + "year": 2047, + "value": 0.2663747652028455 + }, + { + "year": 2048, + "value": 0.23091657871459553 + }, + { + "year": 2049, + "value": 0.1954583922263456 + }, + { + "year": 2050, + "value": 0.16000020573809565 + } + ] + }, + { + "sector": "Steel", + "region": "Europe", + "benchmark_metric": { "units": "t CO2/Fe_ton" }, + "projections": [ + { + "year": 2019, + "value": 3.131211962564734 + }, + { + "year": 2020, + "value": 2.9869966982706138 + }, + { + "year": 2021, + "value": 2.8847804173877667 + }, + { + "year": 2022, + "value": 2.7825641365049196 + }, + { + "year": 2023, + "value": 2.6803478556220726 + }, + { + "year": 2024, + "value": 2.5781315747392255 + }, + { + "year": 2025, + "value": 2.475915293856379 + }, + { + "year": 2026, + "value": 2.2910527372934544 + }, + { + "year": 2027, + "value": 2.10619018073053 + }, + { + "year": 2028, + "value": 1.9213276241676056 + }, + { + "year": 2029, + "value": 1.7364650676046813 + }, + { + "year": 2030, + "value": 1.5516025110417573 + }, + { + "year": 2031, + "value": 1.432600820509025 + }, + { + "year": 2032, + "value": 1.3135991299762928 + }, + { + "year": 2033, + "value": 1.1945974394435606 + }, + { + "year": 2034, + "value": 1.0755957489108283 + }, + { + "year": 2035, + "value": 0.9565940583780966 + }, + { + "year": 2036, + "value": 0.8773327230164034 + }, + { + "year": 2037, + "value": 0.7980713876547102 + }, + { + "year": 2038, + "value": 0.718810052293017 + }, + { + "year": 2039, + "value": 0.6395487169313238 + }, + { + "year": 2040, + "value": 0.5602873815696308 + }, + { + "year": 2041, + "value": 0.5163674619712709 + }, + { + "year": 2042, + "value": 0.47244754237291103 + }, + { + "year": 2043, + "value": 0.42852762277455114 + }, + { + "year": 2044, + "value": 0.38460770317619125 + }, + { + "year": 2045, + "value": 0.34068778357783136 + }, + { + "year": 2046, + "value": 0.30455031546034383 + }, + { + "year": 2047, + "value": 0.2684128473428563 + }, + { + "year": 2048, + "value": 0.23227537922536876 + }, + { + "year": 2049, + "value": 0.1961379111078812 + }, + { + "year": 2050, + "value": 0.16000044299039362 + } + ] + }, + { + "sector": "Steel", + "region": "North America", + "benchmark_metric": { "units": "t CO2/Fe_ton" }, + "projections": [ + { + "year": 2019, + "value": 2.9870685915231707 + }, + { + "year": 2020, + "value": 2.9486311713663316 + }, + { + "year": 2021, + "value": 2.911342598101551 + }, + { + "year": 2022, + "value": 2.87405402483677 + }, + { + "year": 2023, + "value": 2.8367654515719893 + }, + { + "year": 2024, + "value": 2.7994768783072086 + }, + { + "year": 2025, + "value": 2.972782901473998 + }, + { + "year": 2026, + "value": 2.831475560118695 + }, + { + "year": 2027, + "value": 2.690168218763392 + }, + { + "year": 2028, + "value": 2.548860877408089 + }, + { + "year": 2029, + "value": 2.407553536052786 + }, + { + "year": 2030, + "value": 2.266246194697484 + }, + { + "year": 2031, + "value": 2.1619493306345343 + }, + { + "year": 2032, + "value": 2.0576524665715845 + }, + { + "year": 2033, + "value": 1.9533556025086347 + }, + { + "year": 2034, + "value": 1.849058738445685 + }, + { + "year": 2035, + "value": 1.7447618743827347 + }, + { + "year": 2036, + "value": 1.6053321610476659 + }, + { + "year": 2037, + "value": 1.465902447712597 + }, + { + "year": 2038, + "value": 1.3264727343775282 + }, + { + "year": 2039, + "value": 1.1870430210424594 + }, + { + "year": 2040, + "value": 1.0476133077073908 + }, + { + "year": 2041, + "value": 0.9551204892179995 + }, + { + "year": 2042, + "value": 0.8626276707286082 + }, + { + "year": 2043, + "value": 0.770134852239217 + }, + { + "year": 2044, + "value": 0.6776420337498257 + }, + { + "year": 2045, + "value": 0.5851492152604343 + }, + { + "year": 2046, + "value": 0.5001218018675508 + }, + { + "year": 2047, + "value": 0.41509438847466734 + }, + { + "year": 2048, + "value": 0.33006697508178384 + }, + { + "year": 2049, + "value": 0.24503956168890034 + }, + { + "year": 2050, + "value": 0.1600121482960168 + } + ] + }, + { + "sector": "Electricity Utilities", + "region": "Global", + "benchmark_metric": { "units": "t CO2/MWh" }, + "projections": [ + { + "year": 2019, + "value": 0.6075603731304943 + }, + { + "year": 2020, + "value": 0.45274433529466107 + }, + { + "year": 2021, + "value": 0.41508425410495076 + }, + { + "year": 2022, + "value": 0.37742417291524044 + }, + { + "year": 2023, + "value": 0.3397640917255301 + }, + { + "year": 2024, + "value": 0.3021040105358198 + }, + { + "year": 2025, + "value": 0.26444392934610944 + }, + { + "year": 2026, + "value": 0.23622922761637988 + }, + { + "year": 2027, + "value": 0.20801452588665031 + }, + { + "year": 2028, + "value": 0.17979982415692075 + }, + { + "year": 2029, + "value": 0.1515851224271912 + }, + { + "year": 2030, + "value": 0.12337042069746158 + }, + { + "year": 2031, + "value": 0.10876688805755423 + }, + { + "year": 2032, + "value": 0.09416335541764688 + }, + { + "year": 2033, + "value": 0.07955982277773953 + }, + { + "year": 2034, + "value": 0.06495629013783218 + }, + { + "year": 2035, + "value": 0.05035275749792479 + }, + { + "year": 2036, + "value": 0.04437091407361017 + }, + { + "year": 2037, + "value": 0.03838907064929556 + }, + { + "year": 2038, + "value": 0.03240722722498095 + }, + { + "year": 2039, + "value": 0.026425383800666332 + }, + { + "year": 2040, + "value": 0.020443540376351713 + }, + { + "year": 2041, + "value": 0.01831849355545248 + }, + { + "year": 2042, + "value": 0.01619344673455325 + }, + { + "year": 2043, + "value": 0.014068399913654016 + }, + { + "year": 2044, + "value": 0.011943353092754783 + }, + { + "year": 2045, + "value": 0.009818306271855556 + }, + { + "year": 2046, + "value": 0.008652674634510546 + }, + { + "year": 2047, + "value": 0.007487042997165536 + }, + { + "year": 2048, + "value": 0.0063214113598205265 + }, + { + "year": 2049, + "value": 0.005155779722475517 + }, + { + "year": 2050, + "value": 0.0039901480851305075 + } + ] + }, + { + "sector": "Electricity Utilities", + "region": "Europe", + "benchmark_metric": { "units": "t CO2/MWh" }, + "projections": [ + { + "year": 2019, + "value": 0.35881498057849487 + }, + { + "year": 2020, + "value": 0.2865468233079732 + }, + { + "year": 2021, + "value": 0.2607557025877874 + }, + { + "year": 2022, + "value": 0.2349645818676016 + }, + { + "year": 2023, + "value": 0.2091734611474158 + }, + { + "year": 2024, + "value": 0.18338234042723 + }, + { + "year": 2025, + "value": 0.15759121970704418 + }, + { + "year": 2026, + "value": 0.14282943407381637 + }, + { + "year": 2027, + "value": 0.12806764844058857 + }, + { + "year": 2028, + "value": 0.11330586280736078 + }, + { + "year": 2029, + "value": 0.098544077174133 + }, + { + "year": 2030, + "value": 0.0837822915409052 + }, + { + "year": 2031, + "value": 0.07746160146599985 + }, + { + "year": 2032, + "value": 0.0711409113910945 + }, + { + "year": 2033, + "value": 0.06482022131618916 + }, + { + "year": 2034, + "value": 0.05849953124128381 + }, + { + "year": 2035, + "value": 0.052178841166378484 + }, + { + "year": 2036, + "value": 0.04684755406645104 + }, + { + "year": 2037, + "value": 0.04151626696652359 + }, + { + "year": 2038, + "value": 0.03618497986659615 + }, + { + "year": 2039, + "value": 0.0308536927666687 + }, + { + "year": 2040, + "value": 0.02552240566674124 + }, + { + "year": 2041, + "value": 0.02274307056582293 + }, + { + "year": 2042, + "value": 0.01996373546490462 + }, + { + "year": 2043, + "value": 0.017184400363986312 + }, + { + "year": 2044, + "value": 0.014405065263068003 + }, + { + "year": 2045, + "value": 0.011625730162149695 + }, + { + "year": 2046, + "value": 0.01038065721709401 + }, + { + "year": 2047, + "value": 0.009135584272038323 + }, + { + "year": 2048, + "value": 0.007890511326982637 + }, + { + "year": 2049, + "value": 0.00664543838192695 + }, + { + "year": 2050, + "value": 0.005400365436871264 + } + ] + }, + { + "sector": "Electricity Utilities", + "region": "North America", + "benchmark_metric": { "units": "t CO2/MWh" }, + "projections": [ + { + "year": 2019, + "value": 0.4125934987501587 + }, + { + "year": 2020, + "value": 0.38454300118653756 + }, + { + "year": 2021, + "value": 0.3374576897313128 + }, + { + "year": 2022, + "value": 0.29037237827608803 + }, + { + "year": 2023, + "value": 0.24328706682086326 + }, + { + "year": 2024, + "value": 0.1962017553656385 + }, + { + "year": 2025, + "value": 0.1923140908240688 + }, + { + "year": 2026, + "value": 0.16704492796205822 + }, + { + "year": 2027, + "value": 0.14177576510004763 + }, + { + "year": 2028, + "value": 0.11650660223803705 + }, + { + "year": 2029, + "value": 0.09123743937602646 + }, + { + "year": 2030, + "value": 0.06596827651401585 + }, + { + "year": 2031, + "value": 0.06014607184262098 + }, + { + "year": 2032, + "value": 0.054323867171226115 + }, + { + "year": 2033, + "value": 0.04850166249983125 + }, + { + "year": 2034, + "value": 0.04267945782843638 + }, + { + "year": 2035, + "value": 0.036857253157041525 + }, + { + "year": 2036, + "value": 0.0339296363678427 + }, + { + "year": 2037, + "value": 0.031002019578643875 + }, + { + "year": 2038, + "value": 0.02807440278944505 + }, + { + "year": 2039, + "value": 0.025146786000246224 + }, + { + "year": 2040, + "value": 0.0222191692110474 + }, + { + "year": 2041, + "value": 0.018843767894743155 + }, + { + "year": 2042, + "value": 0.015468366578438914 + }, + { + "year": 2043, + "value": 0.012092965262134672 + }, + { + "year": 2044, + "value": 0.00871756394583043 + }, + { + "year": 2045, + "value": 0.005342162629526188 + }, + { + "year": 2046, + "value": 0.005298989223589939 + }, + { + "year": 2047, + "value": 0.005255815817653689 + }, + { + "year": 2048, + "value": 0.00521264241171744 + }, + { + "year": 2049, + "value": 0.00516946900578119 + }, + { + "year": 2050, + "value": 0.005126295599844942 + } + ] + } + ] + }, + "S3": null, + "S1S2S3": null +} diff --git a/examples/data/json-units/benchmark_EI_TPI_2_degrees.json b/examples/data/json-units/benchmark_EI_TPI_2_degrees.json new file mode 100644 index 00000000..dd9bf38a --- /dev/null +++ b/examples/data/json-units/benchmark_EI_TPI_2_degrees.json @@ -0,0 +1,281 @@ +{ + "benchmark_temperature": "2.0 delta_degC", + "benchmark_global_budget": "500 Gt CO2", + "is_AFOLU_included": false, + "S1S2": { + "benchmarks": [ + { + "sector": "Electricity Utilities", + "region": "Global", + "benchmark_metric": { "units": "t CO2/MWh" }, + "projections": [ + { + "year": 2019, + "value": 0.6075603731304943 + }, + { + "year": 2020, + "value": 0.457 + }, + { + "year": 2021, + "value": 0.4376 + }, + { + "year": 2022, + "value": 0.41819999999999996 + }, + { + "year": 2023, + "value": 0.39879999999999993 + }, + { + "year": 2024, + "value": 0.3793999999999999 + }, + { + "year": 2025, + "value": 0.36 + }, + { + "year": 2026, + "value": 0.33699999999999997 + }, + { + "year": 2027, + "value": 0.31399999999999995 + }, + { + "year": 2028, + "value": 0.2909999999999999 + }, + { + "year": 2029, + "value": 0.2679999999999999 + }, + { + "year": 2030, + "value": 0.245 + }, + { + "year": 2031, + "value": 0.22619999999999998 + }, + { + "year": 2032, + "value": 0.20739999999999997 + }, + { + "year": 2033, + "value": 0.18859999999999996 + }, + { + "year": 2034, + "value": 0.16979999999999995 + }, + { + "year": 2035, + "value": 0.151 + }, + { + "year": 2036, + "value": 0.1402 + }, + { + "year": 2037, + "value": 0.1294 + }, + { + "year": 2038, + "value": 0.11859999999999998 + }, + { + "year": 2039, + "value": 0.10779999999999998 + }, + { + "year": 2040, + "value": 0.097 + }, + { + "year": 2041, + "value": 0.0888 + }, + { + "year": 2042, + "value": 0.0806 + }, + { + "year": 2043, + "value": 0.0724 + }, + { + "year": 2044, + "value": 0.06420000000000001 + }, + { + "year": 2045, + "value": 0.056 + }, + { + "year": 2046, + "value": 0.0528 + }, + { + "year": 2047, + "value": 0.0496 + }, + { + "year": 2048, + "value": 0.0464 + }, + { + "year": 2049, + "value": 0.043199999999999995 + }, + { + "year": 2050, + "value": 0.04 + } + ] + }, + { + "sector": "Steel", + "region": "Global", + "benchmark_metric": { "units": "t CO2/Fe_ton" }, + "projections": [ + { + "year": 2019, + "value": 1.669 + }, + { + "year": 2020, + "value": 1.498 + }, + { + "year": 2021, + "value": 1.4718 + }, + { + "year": 2022, + "value": 1.4456 + }, + { + "year": 2023, + "value": 1.4194 + }, + { + "year": 2024, + "value": 1.3932 + }, + { + "year": 2025, + "value": 1.367 + }, + { + "year": 2026, + "value": 1.3195999999999999 + }, + { + "year": 2027, + "value": 1.2721999999999998 + }, + { + "year": 2028, + "value": 1.2247999999999997 + }, + { + "year": 2029, + "value": 1.1773999999999996 + }, + { + "year": 2030, + "value": 1.13 + }, + { + "year": 2031, + "value": 1.0948 + }, + { + "year": 2032, + "value": 1.0596 + }, + { + "year": 2033, + "value": 1.0244000000000002 + }, + { + "year": 2034, + "value": 0.9892000000000002 + }, + { + "year": 2035, + "value": 0.954 + }, + { + "year": 2036, + "value": 0.9258 + }, + { + "year": 2037, + "value": 0.8976 + }, + { + "year": 2038, + "value": 0.8694 + }, + { + "year": 2039, + "value": 0.8412 + }, + { + "year": 2040, + "value": 0.813 + }, + { + "year": 2041, + "value": 0.7857999999999999 + }, + { + "year": 2042, + "value": 0.7585999999999999 + }, + { + "year": 2043, + "value": 0.7313999999999999 + }, + { + "year": 2044, + "value": 0.7041999999999999 + }, + { + "year": 2045, + "value": 0.677 + }, + { + "year": 2046, + "value": 0.6658000000000001 + }, + { + "year": 2047, + "value": 0.6546000000000001 + }, + { + "year": 2048, + "value": 0.6434000000000001 + }, + { + "year": 2049, + "value": 0.6322000000000001 + }, + { + "year": 2050, + "value": 0.621 + } + ] + } + ] + }, + "S3": null, + "S1S2S3": null +} diff --git a/examples/data/json-units/benchmark_EI_TPI_below_2_degrees.json b/examples/data/json-units/benchmark_EI_TPI_below_2_degrees.json new file mode 100644 index 00000000..9d6c01e3 --- /dev/null +++ b/examples/data/json-units/benchmark_EI_TPI_below_2_degrees.json @@ -0,0 +1,281 @@ +{ + "benchmark_temperature": "1.75 delta_degC", + "benchmark_global_budget": "500 Gt CO2", + "is_AFOLU_included": false, + "S1S2": { + "benchmarks": [ + { + "sector": "Electricity Utilities", + "region": "Global", + "benchmark_metric": { "units": "t CO2/MWh" }, + "projections": [ + { + "year": 2019, + "value": 0.6075603731304943 + }, + { + "year": 2020, + "value": 0.44 + }, + { + "year": 2021, + "value": 0.418 + }, + { + "year": 2022, + "value": 0.39599999999999996 + }, + { + "year": 2023, + "value": 0.37399999999999994 + }, + { + "year": 2024, + "value": 0.3519999999999999 + }, + { + "year": 2025, + "value": 0.33 + }, + { + "year": 2026, + "value": 0.3098 + }, + { + "year": 2027, + "value": 0.2896 + }, + { + "year": 2028, + "value": 0.26940000000000003 + }, + { + "year": 2029, + "value": 0.24920000000000003 + }, + { + "year": 2030, + "value": 0.229 + }, + { + "year": 2031, + "value": 0.2114 + }, + { + "year": 2032, + "value": 0.1938 + }, + { + "year": 2033, + "value": 0.1762 + }, + { + "year": 2034, + "value": 0.1586 + }, + { + "year": 2035, + "value": 0.141 + }, + { + "year": 2036, + "value": 0.12719999999999998 + }, + { + "year": 2037, + "value": 0.11339999999999999 + }, + { + "year": 2038, + "value": 0.0996 + }, + { + "year": 2039, + "value": 0.0858 + }, + { + "year": 2040, + "value": 0.072 + }, + { + "year": 2041, + "value": 0.061599999999999995 + }, + { + "year": 2042, + "value": 0.051199999999999996 + }, + { + "year": 2043, + "value": 0.040799999999999996 + }, + { + "year": 2044, + "value": 0.030399999999999996 + }, + { + "year": 2045, + "value": 0.02 + }, + { + "year": 2046, + "value": 0.0144 + }, + { + "year": 2047, + "value": 0.008799999999999999 + }, + { + "year": 2048, + "value": 0.003199999999999999 + }, + { + "year": 2049, + "value": -0.002400000000000001 + }, + { + "year": 2050, + "value": -0.008 + } + ] + }, + { + "sector": "Steel", + "region": "Global", + "benchmark_metric": { "units": "t CO2/Fe_ton" }, + "projections": [ + { + "year": 2019, + "value": 1.669 + }, + { + "year": 2020, + "value": 1.325 + }, + { + "year": 2021, + "value": 1.2691999999999999 + }, + { + "year": 2022, + "value": 1.2133999999999998 + }, + { + "year": 2023, + "value": 1.1575999999999997 + }, + { + "year": 2024, + "value": 1.1017999999999997 + }, + { + "year": 2025, + "value": 1.046 + }, + { + "year": 2026, + "value": 0.9998 + }, + { + "year": 2027, + "value": 0.9536 + }, + { + "year": 2028, + "value": 0.9074 + }, + { + "year": 2029, + "value": 0.8612 + }, + { + "year": 2030, + "value": 0.815 + }, + { + "year": 2031, + "value": 0.7714 + }, + { + "year": 2032, + "value": 0.7278 + }, + { + "year": 2033, + "value": 0.6842 + }, + { + "year": 2034, + "value": 0.6406000000000001 + }, + { + "year": 2035, + "value": 0.597 + }, + { + "year": 2036, + "value": 0.573 + }, + { + "year": 2037, + "value": 0.5489999999999999 + }, + { + "year": 2038, + "value": 0.5249999999999999 + }, + { + "year": 2039, + "value": 0.5009999999999999 + }, + { + "year": 2040, + "value": 0.477 + }, + { + "year": 2041, + "value": 0.4566 + }, + { + "year": 2042, + "value": 0.43620000000000003 + }, + { + "year": 2043, + "value": 0.41580000000000006 + }, + { + "year": 2044, + "value": 0.3954000000000001 + }, + { + "year": 2045, + "value": 0.375 + }, + { + "year": 2046, + "value": 0.3526 + }, + { + "year": 2047, + "value": 0.33020000000000005 + }, + { + "year": 2048, + "value": 0.3078000000000001 + }, + { + "year": 2049, + "value": 0.2854000000000001 + }, + { + "year": 2050, + "value": 0.263 + } + ] + } + ] + }, + "S3": null, + "S1S2S3": null +} diff --git a/examples/data/json-units/benchmark_production_OECM.json b/examples/data/json-units/benchmark_production_OECM.json new file mode 100644 index 00000000..2b3c7061 --- /dev/null +++ b/examples/data/json-units/benchmark_production_OECM.json @@ -0,0 +1,818 @@ +{ + "S1S2": { + "benchmarks": [ + { + "sector": "Steel", + "region": "Global", + "benchmark_metric": { "units": "dimensionless" }, + "projections": [ + { + "year": 2019, + "value": 0.0 + }, + { + "year": 2020, + "value": 0.015 + }, + { + "year": 2021, + "value": 0.015 + }, + { + "year": 2022, + "value": 0.015 + }, + { + "year": 2023, + "value": 0.015 + }, + { + "year": 2024, + "value": 0.015 + }, + { + "year": 2025, + "value": 0.015 + }, + { + "year": 2026, + "value": 0.015 + }, + { + "year": 2027, + "value": 0.015 + }, + { + "year": 2028, + "value": 0.015 + }, + { + "year": 2029, + "value": 0.015 + }, + { + "year": 2030, + "value": 0.015 + }, + { + "year": 2031, + "value": 0.015 + }, + { + "year": 2032, + "value": 0.015 + }, + { + "year": 2033, + "value": 0.015 + }, + { + "year": 2034, + "value": 0.015 + }, + { + "year": 2035, + "value": 0.015 + }, + { + "year": 2036, + "value": 0.015 + }, + { + "year": 2037, + "value": 0.015 + }, + { + "year": 2038, + "value": 0.015 + }, + { + "year": 2039, + "value": 0.015 + }, + { + "year": 2040, + "value": 0.015 + }, + { + "year": 2041, + "value": 0.015 + }, + { + "year": 2042, + "value": 0.015 + }, + { + "year": 2043, + "value": 0.015 + }, + { + "year": 2044, + "value": 0.015 + }, + { + "year": 2045, + "value": 0.015 + }, + { + "year": 2046, + "value": 0.015 + }, + { + "year": 2047, + "value": 0.015 + }, + { + "year": 2048, + "value": 0.015 + }, + { + "year": 2049, + "value": 0.015 + }, + { + "year": 2050, + "value": 0.015 + } + ] + }, + { + "sector": "Steel", + "region": "Europe", + "benchmark_metric": { "units": "dimensionless" }, + "projections": [ + { + "year": 2019, + "value": 0.0 + }, + { + "year": 2020, + "value": 0.015 + }, + { + "year": 2021, + "value": 0.015 + }, + { + "year": 2022, + "value": 0.015 + }, + { + "year": 2023, + "value": 0.015 + }, + { + "year": 2024, + "value": 0.015 + }, + { + "year": 2025, + "value": 0.015 + }, + { + "year": 2026, + "value": 0.015 + }, + { + "year": 2027, + "value": 0.015 + }, + { + "year": 2028, + "value": 0.015 + }, + { + "year": 2029, + "value": 0.015 + }, + { + "year": 2030, + "value": 0.015 + }, + { + "year": 2031, + "value": 0.015 + }, + { + "year": 2032, + "value": 0.015 + }, + { + "year": 2033, + "value": 0.015 + }, + { + "year": 2034, + "value": 0.015 + }, + { + "year": 2035, + "value": 0.015 + }, + { + "year": 2036, + "value": 0.015 + }, + { + "year": 2037, + "value": 0.015 + }, + { + "year": 2038, + "value": 0.015 + }, + { + "year": 2039, + "value": 0.015 + }, + { + "year": 2040, + "value": 0.015 + }, + { + "year": 2041, + "value": 0.015 + }, + { + "year": 2042, + "value": 0.015 + }, + { + "year": 2043, + "value": 0.015 + }, + { + "year": 2044, + "value": 0.015 + }, + { + "year": 2045, + "value": 0.015 + }, + { + "year": 2046, + "value": 0.015 + }, + { + "year": 2047, + "value": 0.015 + }, + { + "year": 2048, + "value": 0.015 + }, + { + "year": 2049, + "value": 0.015 + }, + { + "year": 2050, + "value": 0.015 + } + ] + }, + { + "sector": "Steel", + "region": "North America", + "benchmark_metric": { "units": "dimensionless" }, + "projections": [ + { + "year": 2019, + "value": 0.0 + }, + { + "year": 2020, + "value": 0.015 + }, + { + "year": 2021, + "value": 0.015 + }, + { + "year": 2022, + "value": 0.015 + }, + { + "year": 2023, + "value": 0.015 + }, + { + "year": 2024, + "value": 0.015 + }, + { + "year": 2025, + "value": 0.015 + }, + { + "year": 2026, + "value": 0.015 + }, + { + "year": 2027, + "value": 0.015 + }, + { + "year": 2028, + "value": 0.015 + }, + { + "year": 2029, + "value": 0.015 + }, + { + "year": 2030, + "value": 0.015 + }, + { + "year": 2031, + "value": 0.015 + }, + { + "year": 2032, + "value": 0.015 + }, + { + "year": 2033, + "value": 0.015 + }, + { + "year": 2034, + "value": 0.015 + }, + { + "year": 2035, + "value": 0.015 + }, + { + "year": 2036, + "value": 0.015 + }, + { + "year": 2037, + "value": 0.015 + }, + { + "year": 2038, + "value": 0.015 + }, + { + "year": 2039, + "value": 0.015 + }, + { + "year": 2040, + "value": 0.015 + }, + { + "year": 2041, + "value": 0.015 + }, + { + "year": 2042, + "value": 0.015 + }, + { + "year": 2043, + "value": 0.015 + }, + { + "year": 2044, + "value": 0.015 + }, + { + "year": 2045, + "value": 0.015 + }, + { + "year": 2046, + "value": 0.015 + }, + { + "year": 2047, + "value": 0.015 + }, + { + "year": 2048, + "value": 0.015 + }, + { + "year": 2049, + "value": 0.015 + }, + { + "year": 2050, + "value": 0.015 + } + ] + }, + { + "sector": "Electricity Utilities", + "region": "Global", + "benchmark_metric": { "units": "dimensionless" }, + "projections": [ + { + "year": 2019, + "value": 0.0 + }, + { + "year": 2020, + "value": -0.07639854475324115 + }, + { + "year": 2021, + "value": 0.059958359610187584 + }, + { + "year": 2022, + "value": 0.059958359610187584 + }, + { + "year": 2023, + "value": 0.059958359610187584 + }, + { + "year": 2024, + "value": 0.059958359610187584 + }, + { + "year": 2025, + "value": 0.059958359610187584 + }, + { + "year": 2026, + "value": 0.048590152054553304 + }, + { + "year": 2027, + "value": 0.048590152054553304 + }, + { + "year": 2028, + "value": 0.048590152054553304 + }, + { + "year": 2029, + "value": 0.048590152054553304 + }, + { + "year": 2030, + "value": 0.048590152054553304 + }, + { + "year": 2031, + "value": 0.04614330338817174 + }, + { + "year": 2032, + "value": 0.04614330338817174 + }, + { + "year": 2033, + "value": 0.04614330338817174 + }, + { + "year": 2034, + "value": 0.04614330338817174 + }, + { + "year": 2035, + "value": 0.04614330338817174 + }, + { + "year": 2036, + "value": 0.04009235517269438 + }, + { + "year": 2037, + "value": 0.04009235517269438 + }, + { + "year": 2038, + "value": 0.04009235517269438 + }, + { + "year": 2039, + "value": 0.04009235517269438 + }, + { + "year": 2040, + "value": 0.04009235517269438 + }, + { + "year": 2041, + "value": 0.025847885659444403 + }, + { + "year": 2042, + "value": 0.025847885659444403 + }, + { + "year": 2043, + "value": 0.025847885659444403 + }, + { + "year": 2044, + "value": 0.025847885659444403 + }, + { + "year": 2045, + "value": 0.025847885659444403 + }, + { + "year": 2046, + "value": 0.011912758443362925 + }, + { + "year": 2047, + "value": 0.011912758443362925 + }, + { + "year": 2048, + "value": 0.011912758443362925 + }, + { + "year": 2049, + "value": 0.011912758443362925 + }, + { + "year": 2050, + "value": 0.011912758443362925 + } + ] + }, + { + "sector": "Electricity Utilities", + "region": "Europe", + "benchmark_metric": { "units": "dimensionless" }, + "projections": [ + { + "year": 2019, + "value": 0.0 + }, + { + "year": 2020, + "value": -0.076445097814138 + }, + { + "year": 2021, + "value": 0.02580132761805909 + }, + { + "year": 2022, + "value": 0.02580132761805909 + }, + { + "year": 2023, + "value": 0.02580132761805909 + }, + { + "year": 2024, + "value": 0.02580132761805909 + }, + { + "year": 2025, + "value": 0.02580132761805909 + }, + { + "year": 2026, + "value": 0.04002127380628884 + }, + { + "year": 2027, + "value": 0.04002127380628884 + }, + { + "year": 2028, + "value": 0.04002127380628884 + }, + { + "year": 2029, + "value": 0.04002127380628884 + }, + { + "year": 2030, + "value": 0.04002127380628884 + }, + { + "year": 2031, + "value": 0.03693828379327191 + }, + { + "year": 2032, + "value": 0.03693828379327191 + }, + { + "year": 2033, + "value": 0.03693828379327191 + }, + { + "year": 2034, + "value": 0.03693828379327191 + }, + { + "year": 2035, + "value": 0.03693828379327191 + }, + { + "year": 2036, + "value": 0.018701956793973018 + }, + { + "year": 2037, + "value": 0.018701956793973018 + }, + { + "year": 2038, + "value": 0.018701956793973018 + }, + { + "year": 2039, + "value": 0.018701956793973018 + }, + { + "year": 2040, + "value": 0.018701956793973018 + }, + { + "year": 2041, + "value": 0.012045554009002979 + }, + { + "year": 2042, + "value": 0.012045554009002979 + }, + { + "year": 2043, + "value": 0.012045554009002979 + }, + { + "year": 2044, + "value": 0.012045554009002979 + }, + { + "year": 2045, + "value": 0.012045554009002979 + }, + { + "year": 2046, + "value": 0.0063601028128394965 + }, + { + "year": 2047, + "value": 0.0063601028128394965 + }, + { + "year": 2048, + "value": 0.0063601028128394965 + }, + { + "year": 2049, + "value": 0.0063601028128394965 + }, + { + "year": 2050, + "value": 0.0063601028128394965 + } + ] + }, + { + "sector": "Electricity Utilities", + "region": "North America", + "benchmark_metric": { "units": "dimensionless" }, + "projections": [ + { + "year": 2019, + "value": 0.0 + }, + { + "year": 2020, + "value": -0.07581010331041782 + }, + { + "year": 2021, + "value": 0.01981319064399467 + }, + { + "year": 2022, + "value": 0.01981319064399467 + }, + { + "year": 2023, + "value": 0.01981319064399467 + }, + { + "year": 2024, + "value": 0.01981319064399467 + }, + { + "year": 2025, + "value": 0.01981319064399467 + }, + { + "year": 2026, + "value": 0.0318777412680078 + }, + { + "year": 2027, + "value": 0.0318777412680078 + }, + { + "year": 2028, + "value": 0.0318777412680078 + }, + { + "year": 2029, + "value": 0.0318777412680078 + }, + { + "year": 2030, + "value": 0.0318777412680078 + }, + { + "year": 2031, + "value": 0.021494276219452768 + }, + { + "year": 2032, + "value": 0.021494276219452768 + }, + { + "year": 2033, + "value": 0.021494276219452768 + }, + { + "year": 2034, + "value": 0.021494276219452768 + }, + { + "year": 2035, + "value": 0.021494276219452768 + }, + { + "year": 2036, + "value": 0.03420717440226384 + }, + { + "year": 2037, + "value": 0.03420717440226384 + }, + { + "year": 2038, + "value": 0.03420717440226384 + }, + { + "year": 2039, + "value": 0.03420717440226384 + }, + { + "year": 2040, + "value": 0.03420717440226384 + }, + { + "year": 2041, + "value": 0.014292979405873707 + }, + { + "year": 2042, + "value": 0.014292979405873707 + }, + { + "year": 2043, + "value": 0.014292979405873707 + }, + { + "year": 2044, + "value": 0.014292979405873707 + }, + { + "year": 2045, + "value": 0.014292979405873707 + }, + { + "year": 2046, + "value": 0.0032269880188280364 + }, + { + "year": 2047, + "value": 0.0032269880188280364 + }, + { + "year": 2048, + "value": 0.0032269880188280364 + }, + { + "year": 2049, + "value": 0.0032269880188280364 + }, + { + "year": 2050, + "value": 0.0032269880188280364 + } + ] + } + ] + }, + "S3": null, + "S1S2S3": null +} diff --git a/examples/data/template_portfolio.csv b/examples/data/template_portfolio.csv new file mode 100644 index 00000000..327c7f67 --- /dev/null +++ b/examples/data/template_portfolio.csv @@ -0,0 +1,32 @@ +company_name;company_lei;company_id;company_isin;investment_value +AES Corp.;2NUNNB7D43COUIRE5295;US00130H1059;US00130H1059;59205 +ALLETE, Inc.;549300NNLSIMY6Z8OT86;US0185223007;US0185223007;116354 +Alliant Energy;5493009ML300G373MZ12;US0188021085;US0188021085;176810 +Ameren Corp.;XRZQ5S7HYJFPHJ78L959;US0236081024;US0236081024;180439 +American Electric Power Co., Inc.;1B4S6S7G0TW5EE83BO58;US0255371017;US0255371017;75138 +Avangrid, Inc.;549300OX0Q38NLSKPB49;US05351W1036;US05351W1036;148311 +Black Hills Corp.;3MGELCRSTNSAMJ962671;US0921131092;US0921131092;119536 +CARPENTER TECHNOLOGY CORP;DX6I6ZD3X5WNNCDJKP85;US1442851036;US1442851036;78073 +CMS Energy Corp.;549300IA9XFBAGNIBW29;US1258961002;US1258961002;96664 +COMMERCIAL METALS CO;549300OQS2LO07ZJ7N73;US2017231034;US2017231034;137184 +Cleco Partners LP;5493002H80P81B3HXL31;US18551QAA58;US18551QAA58;55342 +Consolidated Edison, Inc.;54930033SBW53OO8T749;US2091151041;US2091151041;67480 +DTE Energy;549300IX8SD6XXD71I78;US2333311072;US2333311072;71758 +Dominion Energy;ILUL7B6Z54MRYCF6H308;US25746U1097;US25746U1097;207938 +Duke Energy Corp.;I1BZKREC126H0VB1BL91;US26441C2044;US26441C2044;210321 +Entergy Corp.;4XM3TW50JULSLG8BNC79;US29364G1031;US29364G1031;37480 +Evergy, Inc.;549300PGTHDQY6PSUI61;US30034W1062;US30034W1062;128932 +Eversource Energy;SJ7XXD41SQU3ZNWUJ746;US30040W1080;US30040W1080;131394 +Exelon Corp.;3SOUA6IRML7435B56G12;US30161N1019;US30161N1019;136341 +FirstEnergy Corp.;549300SVYJS666PQJH88;US3379321074;US3379321074;203567 +Fortis, Inc.;549300MQYQ9Y065XPR71;CA3495531079;CA3495531079;248124 +GERDAU S.A.;254900YDV6SEQQPZVG24;US3737371050;US3737371050;233529 +Hawaiian Electric Industries, Inc.;JJ8FWOCWCV22X7GUPJ23;US4198701009;US4198701009;236830 +MDU Resources Group;0T6SBMK3JTBI1JR36794;US5526901096;US5526901096;145021 +NUCOR CORP;549300GGJCRSI2TIEJ46;US6703461052;US6703461052;161488 +National Grid PLC;8R95QZMKZLJX5Q2XR704;US6362744095;US6362744095;102778 +Northwestern Corp.;3BPWMBHR1R9SHUN7J795;US6680743050;US6680743050;56985 +OG&E Energy Corp.;CE5OG6JPOZMDSA0LAQ19;US6708371033;US6708371033;205948 +PG&E Corp.;8YQ2GSDWYZXO2EDN3511;US69331C1080;US69331C1080;122653 +PNM Resources, Inc.;5493003JOBJGLZSDDQ28;US69349H1077;US69349H1077;208475 +POSCO;988400E5HRVX81AYLM04;KR7005490008;KR7005490008;88460 \ No newline at end of file From eb85f44fe4e6f345efb4a612b45c76b50645f796 Mon Sep 17 00:00:00 2001 From: David Kroon Date: Fri, 25 Feb 2022 18:31:42 +0100 Subject: [PATCH 116/345] Cleanup and fixing of some tests Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- ITR/interfaces.py | 80 ++++++++++++++++++------------ test/test_different_benchmarks.py | 9 ++-- test/test_portfolio_aggregation.py | 3 +- test/test_projection.py | 6 +-- test/test_template_provider.py | 14 +++--- 5 files changed, 65 insertions(+), 47 deletions(-) diff --git a/ITR/interfaces.py b/ITR/interfaces.py index e56921a2..61283430 100644 --- a/ITR/interfaces.py +++ b/ITR/interfaces.py @@ -68,7 +68,7 @@ def pint_ify(x, units='error'): units = units['units'] if x is None: return Q_(np.nan, units) - if type(x)==str: + if type(x) == str: if x.startswith('nan '): return Q_(np.nan, units) return ureg(x) @@ -98,7 +98,7 @@ def UProjections_to_IProjections(ul, metric): def UProjection_to_IProjection(u, metric): if u is None or u['value'] is np.nan: return pint_ify(np.nan, metric['units']) - if not isinstance(u,dict): + if not isinstance(u, dict): return u p = dict(u) p['value'] = pint_ify(p['value'], metric['units']) @@ -106,7 +106,7 @@ def UProjection_to_IProjection(u, metric): def UScopes_to_IScopes(uscopes): - if not isinstance(uscopes,dict): + if not isinstance(uscopes, dict): return uscopes iscopes = dict(uscopes) for skey, sval in iscopes.items(): @@ -120,35 +120,47 @@ def UScopes_to_IScopes(uscopes): u_2_i_list[i] = iscope return iscopes + class PowerGenerationWh(BaseModel): - units: Union[Literal['MWh'],Literal['GWh'],Literal['TWh']] + units: Union[Literal['MWh'], Literal['GWh'], Literal['TWh']] + + class PowerGenerationJ(BaseModel): - units: Union[Literal['GJ'],Literal['gigajoule'],Literal['GP'],Literal['petajoule']] + units: Union[Literal['GJ'], Literal['gigajoule'], Literal['GP'], Literal['petajoule']] + + PowerGeneration = Annotated[Union[PowerGenerationWh, PowerGenerationJ], Field(discriminator='units')] class ManufactureSteel(BaseModel): - units: Union[Literal['Fe_ton'],Literal['kiloFe_ton'],Literal['megaFe_ton']] -Manufacturing = Annotated[Union[ManufactureSteel], Field(discriminator='units')] + units: Union[Literal['Fe_ton'], Literal['kiloFe_ton'], Literal['megaFe_ton']] +Manufacturing = Annotated[Union[ManufactureSteel], Field(discriminator='units')] + ProductionMetric = Annotated[Union[PowerGeneration, ManufactureSteel], Field(discriminator='units')] + class EmissionsCO2(BaseModel): units: Union[Literal['t CO2'], Literal['kt CO2'], Literal['Mt CO2'], Literal['Gt CO2']] + EmissionsMetric = Annotated[EmissionsCO2, Field(discriminator='units')] class EmissionsIntensity(BaseModel): - units: Union[Literal['t CO2/MWh'],Literal['t CO2/GWh'],Literal['t CO2/TWh'],Literal['t CO2/GJ'],Literal['t CO2/PJ'],Literal['t CO2/Fe_ton']] + units: Union[ + Literal['t CO2/MWh'], Literal['t CO2/GWh'], Literal['t CO2/TWh'], Literal['t CO2/GJ'], Literal['t CO2/PJ'], + Literal['t CO2/Fe_ton']] class DimensionlessNumber(BaseModel): units: Literal['dimensionless'] -OSC_Metric = Annotated[Union[ProductionMetric,EmissionsMetric,EmissionsIntensity,DimensionlessNumber], Field(discriminator='units')] +OSC_Metric = Annotated[ + Union[ProductionMetric, EmissionsMetric, EmissionsIntensity, DimensionlessNumber], Field(discriminator='units')] + # U is Unquantified class UProjection(BaseModel): @@ -165,6 +177,7 @@ class UBenchmark(BaseModel): def __getitem__(self, item): return getattr(self, item) + # I means we have quantified values. Normally we'd need to __init__ this, but it's always handled in UProjection_to_IProjection class IProjection(PintModel): year: int @@ -256,6 +269,7 @@ class ICompanyEIProjectionsScopes(BaseModel): def __getitem__(self, item): return getattr(self, item) + class IProductionRealization(PintModel): year: int value: Optional[Quantity[ProductionMetric]] @@ -350,12 +364,12 @@ class IHistoricData(PintModel): class ITargetData(PintModel): netzero_year: Optional[int] - target_type: Union[Literal['intensity'],Literal['absolute'],Literal['other']] + target_type: Union[Literal['intensity'], Literal['absolute'], Literal['other']] target_scope: EScope start_year: Optional[int] base_year: int end_year: int - + target_base_qty: float target_base_unit: str target_reduction_pct: float @@ -373,11 +387,12 @@ class ICompanyData(PintModel): historic_data: Optional[IHistoricData] country: Optional[str] - emissions_metric: Optional[EmissionsMetric] # Typically use t CO2 for MWh/GJ and Mt CO2 for TWh/PJ - production_metric: Optional[ProductionMetric] # Optional because it can be inferred from sector and region - + emissions_metric: Optional[EmissionsMetric] # Typically use t CO2 for MWh/GJ and Mt CO2 for TWh/PJ + production_metric: Optional[ProductionMetric] # Optional because it can be inferred from sector and region + # These two instance variables match against financial data below, but are incomplete as historic_data and target_data - ghg_s1s2: Optional[Quantity[ProductionMetric]] # This seems to be the base year PRODUCTION number, nothing at all to do with any quantity of actual S1S2 emissions + ghg_s1s2: Optional[Quantity[ + ProductionMetric]] # This seems to be the base year PRODUCTION number, nothing at all to do with any quantity of actual S1S2 emissions ghg_s3: Optional[Quantity[ProductionMetric]] industry_level_1: Optional[str] @@ -390,7 +405,7 @@ class ICompanyData(PintModel): company_enterprise_value: Optional[float] company_total_assets: Optional[float] company_cash_equivalents: Optional[float] - + # Initialized later when we have benchmark information. It is OK to initialize as None and fix later. # They will show up as {'S1S2': { 'projections': [ ... ] }} projected_targets: Optional[ICompanyEIProjectionsScopes] @@ -401,10 +416,10 @@ def _fixup_historic_productions(self, historic_productions, production_metric): if historic_productions is None or production_metric is None: # We have absolutely no production data of any kind...too bad! return self.historic_data.productions - return UProjections_to_IProjections(historic_productions,production_metric) + return UProjections_to_IProjections(historic_productions, production_metric) def __init__(self, historic_data=None, projected_targets=None, projected_intensities=None, - emissions_metric=None, production_metric=None, ghg_s1s2=None, ghg_s3=None, *args, **kwargs): + emissions_metric=None, production_metric=None, ghg_s1s2=None, ghg_s3=None, *args, **kwargs): super().__init__(historic_data=historic_data, projected_targets=projected_targets, projected_intensities=projected_intensities, @@ -413,36 +428,36 @@ def __init__(self, historic_data=None, projected_targets=None, projected_intensi *args, **kwargs) # In-bound parameters are dicts, which are converted to models by __super__ and stored as instance variables if production_metric is None: - if self.sector=='Electricity Utilities': - units = 'MWh' if self.region=='North America' else 'GJ' - elif self.sector=='Steel': + if self.sector == 'Electricity Utilities': + units = 'MWh' if self.region == 'North America' else 'GJ' + elif self.sector == 'Steel': units = 'Fe_ton' else: - error ("no source of production metrics") - self.production_metric = parse_obj_as(ProductionMetric,{'units':units}) + raise ValueError("No source of production metrics") + self.production_metric = parse_obj_as(ProductionMetric, {'units': units}) if emissions_metric is None: - self.emissions_metric = parse_obj_as(EmissionsMetric,{'units':'t CO2'}) + self.emissions_metric = parse_obj_as(EmissionsMetric, {'units': 't CO2'}) elif emissions_metric is None: if self.production_metric.units in ['TWh', 'PJ']: - self.emissions_metric = parse_obj_as(EmissionsMetric,{'units':'Mt CO2'}) + self.emissions_metric = parse_obj_as(EmissionsMetric, {'units': 'Mt CO2'}) else: - self.emissions_metric = parse_obj_as(EmissionsMetric,{'units':'t CO2'}) + self.emissions_metric = parse_obj_as(EmissionsMetric, {'units': 't CO2'}) # TODO: Should raise a warning here if ghg_s1s2: - self.ghg_s1s2=pint_ify(ghg_s1s2, self.production_metric.units) - elif self.historic_data.productions: + self.ghg_s1s2 = pint_ify(ghg_s1s2, self.production_metric.units) + elif self.historic_data and self.historic_data.productions: # TODO: This is a hack to get things going. year = kwargs['report_date'].year for i in range(len(self.historic_data.productions)): - if self.historic_data.productions[-1-i].year == year: - self.ghg_s1s2 = self.historic_data.productions[-1-i].value + if self.historic_data.productions[-1 - i].year == year: + self.ghg_s1s2 = self.historic_data.productions[-1 - i].value break if self.ghg_s1s2 is None: raise ValueError("invalid historic data for ghg_s1s2") else: raise ValueError("missing historic data for ghg_s1s2") if ghg_s3: - self.ghg_s3=pint_ify(ghg_s3, self.production_metric.units) + self.ghg_s3 = pint_ify(ghg_s3, self.production_metric.units) # TODO: We don't need to worry about missing S3 scope data yet @@ -456,7 +471,8 @@ class ICompanyAggregates(ICompanyData): # projected_targets: Optional[ICompanyEIProjectionsScopes] # projected_intensities: Optional[ICompanyEIProjectionsScopes] - def __init__(self, cumulative_budget, cumulative_trajectory, cumulative_target, benchmark_temperature, benchmark_global_budget, *args, **kwargs): + def __init__(self, cumulative_budget, cumulative_trajectory, cumulative_target, benchmark_temperature, + benchmark_global_budget, *args, **kwargs): super().__init__( cumulative_budget=pint_ify(cumulative_budget, 't CO2'), cumulative_trajectory=pint_ify(cumulative_trajectory, 't CO2'), diff --git a/test/test_different_benchmarks.py b/test/test_different_benchmarks.py index 56b7a73a..bf3a8ddf 100644 --- a/test/test_different_benchmarks.py +++ b/test/test_different_benchmarks.py @@ -7,11 +7,10 @@ from ITR.portfolio_aggregation import PortfolioAggregationMethod from ITR.temperature_score import TemperatureScore -from ITR.configs import ColumnsConfig, TemperatureScoreConfig from ITR.data.data_warehouse import DataWarehouse from ITR.data.base_providers import BaseCompanyDataProvider, BaseProviderProductionBenchmark, \ BaseProviderIntensityBenchmark -from ITR.interfaces import ICompanyData, EScope, ETimeFrames, PortfolioCompany, IEmissionIntensityBenchmarkScopes, \ +from ITR.interfaces import ICompanyData, EScope, ETimeFrames, PortfolioCompany, IEIBenchmarkScopes, \ IProductionBenchmarkScopes from ITR.data.osc_units import ureg, Q_, PA_ @@ -47,19 +46,19 @@ def setUp(self) -> None: # OECM with open(self.benchmark_EI_OECM) as json_file: parsed_json = json.load(json_file) - ei_bms = IEmissionIntensityBenchmarkScopes.parse_obj(parsed_json) + ei_bms = IEIBenchmarkScopes.parse_obj(parsed_json) self.OECM_EI_bm = BaseProviderIntensityBenchmark(EI_benchmarks=ei_bms) # TPI with open(self.benchmark_EI_TPI) as json_file: parsed_json = json.load(json_file) - ei_bms = IEmissionIntensityBenchmarkScopes.parse_obj(parsed_json) + ei_bms = IEIBenchmarkScopes.parse_obj(parsed_json) self.TPI_EI_bm = BaseProviderIntensityBenchmark(EI_benchmarks=ei_bms) # TPI below 2 with open(self.benchmark_EI_TPI_below_2) as json_file: parsed_json = json.load(json_file) - ei_bms = IEmissionIntensityBenchmarkScopes.parse_obj(parsed_json) + ei_bms = IEIBenchmarkScopes.parse_obj(parsed_json) self.TPI_below_2_EI_bm = BaseProviderIntensityBenchmark(EI_benchmarks=ei_bms) self.OECM_warehouse = DataWarehouse(self.base_company_data, self.base_production_bm, self.OECM_EI_bm) diff --git a/test/test_portfolio_aggregation.py b/test/test_portfolio_aggregation.py index 855f72cf..22b0f8fe 100644 --- a/test/test_portfolio_aggregation.py +++ b/test/test_portfolio_aggregation.py @@ -2,6 +2,7 @@ import unittest +import numpy as np import pandas as pd from ITR.portfolio_aggregation import PortfolioAggregationMethod, PortfolioAggregation @@ -60,7 +61,7 @@ def test_get_value_column(self): def test_check_column(self): PortfolioAggregation()._check_column(data=self.data, column=ColumnsConfig.COMPANY_REVENUE) - self.data.loc[0, ColumnsConfig.MARKET_CAP] = pd.NA + self.data.loc[0, ColumnsConfig.TEMPERATURE_SCORE] = np.nan with self.assertRaises(ValueError): PortfolioAggregation()._check_column(data=self.data, column=ColumnsConfig.TEMPERATURE_SCORE) diff --git a/test/test_projection.py b/test/test_projection.py index 6d3a677e..bd919872 100644 --- a/test/test_projection.py +++ b/test/test_projection.py @@ -2,7 +2,7 @@ import unittest import os -from ITR.data.base_providers import EmissionIntensityProjector +from ITR.data.base_providers import EITrajectoryProjector from ITR.interfaces import ICompanyData def mystr(s): @@ -29,10 +29,10 @@ def setUp(self) -> None: with open(self.source_path, 'r') as file: company_dicts = json.load(file) self.companies = [ICompanyData(**company_dict) for company_dict in company_dicts] - self.projector = EmissionIntensityProjector() + self.projector = EITrajectoryProjector() def test_project(self): - projections = self.projector.project_intensities(self.companies) + projections = self.projector.project_ei_trajectories(self.companies) with open(self.json_reference_path, 'r') as file: reference_projections = json.load(file) diff --git a/test/test_template_provider.py b/test/test_template_provider.py index 3d174b33..6ce10321 100644 --- a/test/test_template_provider.py +++ b/test/test_template_provider.py @@ -5,6 +5,7 @@ from numpy.testing import assert_array_equal import ITR +from ITR.data.base_providers import EITargetProjector from ITR.data.excel import ExcelProviderProductionBenchmark, ExcelProviderIntensityBenchmark from ITR.data.template import TemplateProviderCompany from ITR.data.data_warehouse import DataWarehouse @@ -13,7 +14,8 @@ from ITR.temperature_score import TemperatureScore from ITR.portfolio_aggregation import PortfolioAggregationMethod -from ITR.data.osc_units import ureg, Q_, PA_ +from ITR.data.osc_units import ureg, Q_ + class TestTemplateProvider(unittest.TestCase): """ @@ -59,7 +61,7 @@ def test_target_projections(self): ] for id in comids: - print(target_projection(isin, data_target, data_emissions, data_prod)) + print(EITargetProjector().project_ei_targets(isin, data_target, data_emissions, data_prod)) def test_temp_score(self): @@ -68,7 +70,7 @@ def test_temp_score(self): companies = ITR.utils.dataframe_to_portfolio(df_portfolio) temperature_score = TemperatureScore( - time_frames = [ETimeFrames.LONG], + time_frames=[ETimeFrames.LONG], scopes=[EScope.S1S2], aggregation_method=PortfolioAggregationMethod.WATS # Options for the aggregation method are WATS, TETS, AOTS, MOTS, EOTS, ECOTS, and ROTS. ) @@ -153,7 +155,7 @@ def test_get_projected_value(self): TemperatureScoreConfig.CONTROLS_CONFIG.target_end_year + 1), index=self.company_ids, dtype='pint[t CO2/GJ]').astype('object') - pd.testing.assert_frame_equal(self.excel_company_data.get_company_projected_trajectories(self.company_ids), + pd.testing.assert_frame_equal(self.template_company_data.get_company_projected_trajectories(self.company_ids), expected_data, check_names=False) def test_get_benchmark(self): @@ -228,7 +230,7 @@ def test_get_value(self): 10283015132.0], index=pd.Index(self.company_ids, name='company_id'), name='company_revenue') - pd.testing.assert_series_equal(self.excel_company_data.get_value(company_ids=self.company_ids, + pd.testing.assert_series_equal(self.template_company_data.get_value(company_ids=self.company_ids, variable_name=ColumnsConfig.COMPANY_REVENUE), expected_data) @@ -236,4 +238,4 @@ def test_get_value(self): test = TestTemplateProvider() test.setUp() test.test_temp_score() - test.get_target_projections() + test.test_target_projections() From 1752edb65d9e57f134724eb09a87b8f6de707044 Mon Sep 17 00:00:00 2001 From: MichaelTiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> Date: Fri, 25 Feb 2022 21:38:33 -0500 Subject: [PATCH 117/345] Clean up GHG_SCOPE12 confusion There was long-standing confusion about the meaning of GHG_SCOPE12 (which, when looked at through one functional path, seemed to depend first and only on production values, and when looked at other ways, seemed to represent emissions values). It was finally determined that this was, indeed, an emissions-based quantity, and the the production value pathway fed a ratio calculation that resolved to a dimensionless quantity (so it could be calculated just as well from emissions). In any case, these changes principally fix these and some other problems in the way various column names and variable names work and work together. Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- ITR/configs.py | 10 ++-- ITR/data/base_providers.py | 4 +- ITR/data/template.py | 26 ++++++---- ITR/interfaces.py | 49 +++++++++++++----- ITR/portfolio_aggregation.py | 15 +++--- .../data/20220215 ITR Tool Sample Data.xlsx | Bin 77197 -> 77694 bytes .../inputs/20220215 ITR Tool Sample Data.xlsx | Bin 77197 -> 77694 bytes test/test_interfaces.py | 1 + test/test_template_provider.py | 4 +- 9 files changed, 69 insertions(+), 40 deletions(-) diff --git a/ITR/configs.py b/ITR/configs.py index 9843f932..dd6a5e5d 100644 --- a/ITR/configs.py +++ b/ITR/configs.py @@ -14,15 +14,11 @@ class ColumnsConfig: COMPANY_LEI = "company_lei" COMPANY_ISIN = "company_isin" COMPANY_ISIC = "isic" - MARKET_CAP = "company_market_cap" - TEMPLATE_MARKET_CAP = "market_cap" + COMPANY_MARKET_CAP = "company_market_cap" INVESTMENT_VALUE = "investment_value" COMPANY_ENTERPRISE_VALUE = "company_enterprise_value" COMPANY_EV_PLUS_CASH = "company_ev_plus_cash" COMPANY_TOTAL_ASSETS = "company_total_assets" - TEMPLATE_ENTERPRISE_VALUE = "ev" - TEMPLATE_EV_PLUS_CASH = "evic" - COMPANY_TOTAL_ASSETS = "assets" SCOPE = "scope" START_YEAR = "start_year" VARIABLE = "variable" @@ -38,7 +34,8 @@ class ColumnsConfig: TEMPLATE_REPORT_DATE = 'report_date' EMISSIONS_METRIC = 'emissions_metric' PRODUCTION_METRIC = 'production_metric' # The unit of production (i.e., power generated, tons of steel produced, vehicles manufactured, etc.) - GHG_SCOPE12 = 'ghg_s1s2' # This seems to be the base year PRODUCTION number, nothing at all to do with any quantity of actual S1S2 emissions + BASE_YEAR_PRODUCTION = 'base_year_production' + GHG_SCOPE12 = 'ghg_s1s2' GHG_SCOPE3 = 'ghg_s3' TEMPLATE_SCOPE1 = 'em_s1' TEMPLATE_SCOPE2 = 'em_s2' @@ -49,7 +46,6 @@ class ColumnsConfig: TARGET_DATA = "target_data" TEMPLATE_PRODUCTION = 'production' COMPANY_REVENUE = 'company_revenue' - TEMPLAET_REVENUE = 'revenue' CASH_EQUIVALENTS = 'company_cash_equivalents' BASE_YEAR = 'base_year' END_YEAR = 'end_year' diff --git a/ITR/data/base_providers.py b/ITR/data/base_providers.py index a8911764..355eeafe 100644 --- a/ITR/data/base_providers.py +++ b/ITR/data/base_providers.py @@ -134,7 +134,7 @@ def get_company_intensity_and_production_at_base_year(self, company_ids: List[st base_year = self.temp_config.CONTROLS_CONFIG.base_year company_info = df_fundamentals.loc[ company_ids, [self.column_config.SECTOR, self.column_config.REGION, - self.column_config.PRODUCTION_METRIC, + self.column_config.BASE_YEAR_PRODUCTION, self.column_config.GHG_SCOPE12]] ei_at_base = self._get_company_intensity_at_year(base_year, company_ids).rename(self.column_config.BASE_EI) return company_info.merge(ei_at_base, left_index=True, right_index=True) @@ -230,7 +230,7 @@ def get_company_projected_production(self, company_sector_region_info: pd.DataFr :return: DataFrame of projected productions for [base_year - base_year + 50] """ benchmark_production_projections = self.get_benchmark_projections(company_sector_region_info) - company_production = company_sector_region_info[self.column_config.GHG_SCOPE12] + company_production = company_sector_region_info[self.column_config.BASE_YEAR_PRODUCTION] return benchmark_production_projections.add(1).cumprod(axis=1).mul( company_production, axis=0) # .astype(f"pint[{units}]") diff --git a/ITR/data/template.py b/ITR/data/template.py index 8116037b..30b99d33 100644 --- a/ITR/data/template.py +++ b/ITR/data/template.py @@ -57,12 +57,8 @@ def _calculate_target_projections(self, warnings.simplefilter("ignore") company_sector_region_info = pd.DataFrame({ self.column_config.COMPANY_ID: [ c.company_id ], - # self.column_config.GHG_SCOPE12 is incorrect in production_bm.get_company_projected_production. - # Should be production value at base_year as defined in temp_config.CONTROLS_CONFIG - # Do not confuse this base year metric with any target base year. - # Historic data is given in terms of its own EMISSIONS_METRIC and PRODUCTION_METRIC - # TODO: don't use c.production_metric; rather, grovel through c to address appropriately using PRODUCTION_METRIC text string. - self.column_config.GHG_SCOPE12: [ base_year_production.to(c.production_metric.units) ], + self.column_config.BASE_YEAR_PRODUCTION: [ base_year_production.to(c.production_metric.units) ], + self.column_config.GHG_SCOPE12: [ c.ghg_s1s2 ], self.column_config.SECTOR: [ c.sector ], self.column_config.REGION: [ c.region ], }, index=[0]) @@ -101,12 +97,18 @@ def _fixup_name(x): suffix = suffix.upper() return f"{suffix}-{prefix}" - df_company_data = pd.read_excel(excel_path, sheet_name=None, skiprows=0) + df_company_data = pd.read_excel(excel_path, sheet_name=None, skiprows=0) self._check_company_data(df_company_data) input_data_sheet = TabsConfig.TEMPLATE_INPUT_DATA if "Test input data" in df_company_data: input_data_sheet = "Test input data" + + # TODO: Fix market_cap column naming inconsistency + df_company_data[input_data_sheet].rename(columns={'revenue':'company_revenue', 'market_cap':'company_market_cap', + 'ev':'company_enterprise_value', 'evic':'company_ev_plus_cash', + 'assets':'company_total_assets'}, inplace=True) + df_fundamentals = df_company_data[input_data_sheet].set_index(ColumnsConfig.COMPANY_ID, drop=False).convert_dtypes() # GH https://github.com/pandas-dev/pandas/issues/46044 df_fundamentals.company_id = df_fundamentals.company_id.astype('object') @@ -216,6 +218,10 @@ def _company_df_to_model(self, df_fundamentals: pd.DataFrame, if company_data[ColumnsConfig.EMISSIONS_METRIC]: company_data[ColumnsConfig.EMISSIONS_METRIC] = { 'units': company_data[ColumnsConfig.EMISSIONS_METRIC]} + # TODO: need better handling of missing market cap data + if company_data[ColumnsConfig.COMPANY_MARKET_CAP] is pd.NA: + company_data[ColumnsConfig.COMPANY_MARKET_CAP] = np.nan + model_companies.append(ICompanyData.parse_obj(company_data)) except ValidationError as e: logger.warning( @@ -245,13 +251,13 @@ def _get_projection(self, company_ids: List[str], projections: pd.DataFrame, pro projections = projections.loc[company_ids, range(TemperatureScoreConfig.CONTROLS_CONFIG.base_year, TemperatureScoreConfig.CONTROLS_CONFIG.target_end_year + 1)] # Due to bug (https://github.com/pandas-dev/pandas/issues/20824) in Pandas where NaN are treated as zero workaround below: - projected_emissions_s1s2 = projections.groupby(level=0, sort=False).agg(ExcelProviderCompany._np_sum) # add scope 1 and 2 + projected_ei_s1s2 = projections.groupby(level=0, sort=False).agg(TemplateProviderCompany._np_sum) # add scope 1 and 2 with warnings.catch_warnings(): warnings.simplefilter("ignore") # See https://github.com/hgrecco/pint-pandas/issues/114 - projected_emissions_s1s2 = projected_emissions_s1s2.apply(lambda x: x.astype(f'pint[??t CO2/({production_metric[x.name]})]'), axis=1) + projected_ei_s1s2 = projected_ei_s1s2.apply(lambda x: x.astype(f'pint[??t CO2/({production_metric[x.name]})]'), axis=1) - return projected_emissions_s1s2 + return projected_ei_s1s2 # class ITargetData(PintModel): # netzero_year: int diff --git a/ITR/interfaces.py b/ITR/interfaces.py index 61283430..9f56d5b3 100644 --- a/ITR/interfaces.py +++ b/ITR/interfaces.py @@ -387,13 +387,14 @@ class ICompanyData(PintModel): historic_data: Optional[IHistoricData] country: Optional[str] - emissions_metric: Optional[EmissionsMetric] # Typically use t CO2 for MWh/GJ and Mt CO2 for TWh/PJ - production_metric: Optional[ProductionMetric] # Optional because it can be inferred from sector and region - # These two instance variables match against financial data below, but are incomplete as historic_data and target_data - ghg_s1s2: Optional[Quantity[ - ProductionMetric]] # This seems to be the base year PRODUCTION number, nothing at all to do with any quantity of actual S1S2 emissions - ghg_s3: Optional[Quantity[ProductionMetric]] + emissions_metric: Optional[EmissionsMetric] # Typically use t CO2 for MWh/GJ and Mt CO2 for TWh/PJ + production_metric: Optional[ProductionMetric] # Optional because it can be inferred from sector and region + + # These three instance variables match against financial data below, but are incomplete as historic_data and target_data + base_year_production: Optional[Quantity[ProductionMetric]] + ghg_s1s2: Optional[Quantity[EmissionsMetric]] + ghg_s3: Optional[Quantity[EmissionsMetric]] industry_level_1: Optional[str] industry_level_2: Optional[str] @@ -403,6 +404,7 @@ class ICompanyData(PintModel): company_revenue: Optional[float] company_market_cap: Optional[float] company_enterprise_value: Optional[float] + company_ev_plus_cash: Optional[float] company_total_assets: Optional[float] company_cash_equivalents: Optional[float] @@ -419,7 +421,8 @@ def _fixup_historic_productions(self, historic_productions, production_metric): return UProjections_to_IProjections(historic_productions, production_metric) def __init__(self, historic_data=None, projected_targets=None, projected_intensities=None, - emissions_metric=None, production_metric=None, ghg_s1s2=None, ghg_s3=None, *args, **kwargs): + emissions_metric=None, production_metric=None, + base_year_production=None, ghg_s1s2=None, ghg_s3=None, *args, **kwargs): super().__init__(historic_data=historic_data, projected_targets=projected_targets, projected_intensities=projected_intensities, @@ -443,21 +446,41 @@ def __init__(self, historic_data=None, projected_targets=None, projected_intensi else: self.emissions_metric = parse_obj_as(EmissionsMetric, {'units': 't CO2'}) # TODO: Should raise a warning here - if ghg_s1s2: - self.ghg_s1s2 = pint_ify(ghg_s1s2, self.production_metric.units) - elif self.historic_data and self.historic_data.productions: + if base_year_production: + self.base_year_production=pint_ify(base_year_production, self.production_metric.units) + elif self.historic_data.productions: # TODO: This is a hack to get things going. year = kwargs['report_date'].year for i in range(len(self.historic_data.productions)): if self.historic_data.productions[-1 - i].year == year: - self.ghg_s1s2 = self.historic_data.productions[-1 - i].value + self.base_year_production = self.historic_data.productions[-1 - i].value + break + if self.base_year_production is None: + raise ValueError("invalid historic data for base_year_production") + else: + raise ValueError("missing historic data for base_year_production") + if ghg_s1s2: + self.ghg_s1s2=pint_ify(ghg_s1s2, self.emissions_metric.units) + elif self.historic_data.emissions: + # TODO: This is a hack to get things going. + year = kwargs['report_date'].year + for i in range(len(self.historic_data.emissions.S1S2)): + if self.historic_data.emissions.S1S2[-1 -i].year == year: + self.ghg_s1s2 = self.historic_data.emissions.S1S2[-1 - i].value break if self.ghg_s1s2 is None: - raise ValueError("invalid historic data for ghg_s1s2") + # TODO: cheap hack to treat S1 as S1S2, which we do for now for Consolidated Edison, Inc. + for i in range(len(self.historic_data.emissions.S1)): + if self.historic_data.emissions.S1[-1 - i].year == year: + self.ghg_s1s2 = self.historic_data.emissions.S1[-1 - i].value + break + if self.ghg_s1s2 is None: + print(self.company_name) + raise ValueError("invalid historic data for ghg_s1s2") else: raise ValueError("missing historic data for ghg_s1s2") if ghg_s3: - self.ghg_s3 = pint_ify(ghg_s3, self.production_metric.units) + self.ghg_s3 = pint_ify(ghg_s3, self.emissions_metric.units) # TODO: We don't need to worry about missing S3 scope data yet diff --git a/ITR/portfolio_aggregation.py b/ITR/portfolio_aggregation.py index 5a083127..3c1738f3 100644 --- a/ITR/portfolio_aggregation.py +++ b/ITR/portfolio_aggregation.py @@ -47,14 +47,14 @@ def is_emissions_based(method: 'PortfolioAggregationMethod') -> bool: @staticmethod def get_value_column(method: 'PortfolioAggregationMethod', column_config: Type[ColumnsConfig]) -> str: map_value_column = { - PortfolioAggregationMethod.MOTS: column_config.MARKET_CAP, + PortfolioAggregationMethod.MOTS: column_config.COMPANY_MARKET_CAP, PortfolioAggregationMethod.EOTS: column_config.COMPANY_ENTERPRISE_VALUE, PortfolioAggregationMethod.ECOTS: column_config.COMPANY_EV_PLUS_CASH, PortfolioAggregationMethod.AOTS: column_config.COMPANY_TOTAL_ASSETS, PortfolioAggregationMethod.ROTS: column_config.COMPANY_REVENUE, } - return map_value_column.get(method, column_config.MARKET_CAP) + return map_value_column.get(method, column_config.COMPANY_MARKET_CAP) class PortfolioAggregation(ABC): @@ -124,10 +124,13 @@ def _calculate_aggregate_score(self, data: pd.DataFrame, input_column: str, elif PortfolioAggregationMethod.is_emissions_based(portfolio_aggregation_method): # These four methods only differ in the way the company is valued. if portfolio_aggregation_method == PortfolioAggregationMethod.ECOTS: - self._check_column(data, self.c.COLS.COMPANY_ENTERPRISE_VALUE) - self._check_column(data, self.c.COLS.CASH_EQUIVALENTS) - data[self.c.COLS.COMPANY_EV_PLUS_CASH] = data[self.c.COLS.COMPANY_ENTERPRISE_VALUE] + \ - data[self.c.COLS.CASH_EQUIVALENTS] + if True: + self._check_column(data, self.c.COLS.COMPANY_EV_PLUS_CASH) + else: + self._check_column(data, self.c.COLS.COMPANY_ENTERPRISE_VALUE) + self._check_column(data, self.c.COLS.CASH_EQUIVALENTS) + data[self.c.COLS.COMPANY_EV_PLUS_CASH] = data[self.c.COLS.COMPANY_ENTERPRISE_VALUE] + \ + data[self.c.COLS.CASH_EQUIVALENTS] value_column = PortfolioAggregationMethod.get_value_column(portfolio_aggregation_method, self.c.COLS) diff --git a/examples/data/20220215 ITR Tool Sample Data.xlsx b/examples/data/20220215 ITR Tool Sample Data.xlsx index ae81224aac3b95fc0437e8e63aa3c061ed1e6093..8ef5bef5080cdb43fb2184e7ca2f7a45a7404480 100644 GIT binary patch delta 23753 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 eIO%aN0r*q-e%Z;`yn3y delta 23281 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 Ip`8Z&KRUfA4*&oF diff --git a/test/inputs/20220215 ITR Tool Sample Data.xlsx b/test/inputs/20220215 ITR Tool Sample Data.xlsx index ae81224aac3b95fc0437e8e63aa3c061ed1e6093..8ef5bef5080cdb43fb2184e7ca2f7a45a7404480 100644 GIT binary patch delta 23753 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 eIO%aN0r*q-e%Z;`yn3y delta 23281 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 Ip`8Z&KRUfA4*&oF diff --git a/test/test_interfaces.py b/test/test_interfaces.py index bfc24180..5d52ac4a 100644 --- a/test/test_interfaces.py +++ b/test/test_interfaces.py @@ -47,6 +47,7 @@ def test_ICompanyData(self): company_id="US6293775085", region="Europe", sector="Steel", + emissions_metric={ "units": "t CO2"}, production_metric={ "units": "Fe_ton"}, target_probability=0.123, projected_targets = None, diff --git a/test/test_template_provider.py b/test/test_template_provider.py index 6ce10321..a9bb8145 100644 --- a/test/test_template_provider.py +++ b/test/test_template_provider.py @@ -215,8 +215,8 @@ def test_get_company_data(self): self.assertEqual(company_2.company_name, "Company AH") self.assertEqual(company_1.company_id, "US0079031078") self.assertEqual(company_2.company_id, "US00724F1012") - self.assertAlmostEqual(company_1.ghg_s1s2, Q_(104827858.636039, ureg('GJ'))) - self.assertAlmostEqual(company_2.ghg_s1s2, Q_(598937001.892059, ureg('GJ'))) + self.assertAlmostEqual(company_1.ghg_s1s2, Q_(104827858.636039, ureg('t CO2'))) + self.assertAlmostEqual(company_2.ghg_s1s2, Q_(598937001.892059, ureg('t CO2'))) self.assertAlmostEqual(company_1.cumulative_budget, Q_(1362284467.0830, ureg('t CO2')), places=4) self.assertAlmostEqual(company_2.cumulative_budget, Q_(2262242040.68059, ureg('t CO2')), places=4) self.assertAlmostEqual(company_1.cumulative_target, Q_(3769096510.09909, ureg('t CO2')), places=4) From 96f316d20f09ab1f748544ca09ad613b40d72961 Mon Sep 17 00:00:00 2001 From: MichaelTiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> Date: Fri, 25 Feb 2022 21:39:37 -0500 Subject: [PATCH 118/345] Update ITR_dash_app_develop.py Updated to work with with unit-aware code. Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- examples/ITR_dash_app_develop.py | 98 +++++++++++++++++++------------- 1 file changed, 60 insertions(+), 38 deletions(-) diff --git a/examples/ITR_dash_app_develop.py b/examples/ITR_dash_app_develop.py index d5cbc990..0c36d0e5 100644 --- a/examples/ITR_dash_app_develop.py +++ b/examples/ITR_dash_app_develop.py @@ -4,6 +4,7 @@ import pandas as pd +import numpy as np import json import os import base64 @@ -34,6 +35,8 @@ from ITR.interfaces import ICompanyData, EScope, ETimeFrames, PortfolioCompany, IEIBenchmarkScopes, IProductionBenchmarkScopes from ITR.data.osc_units import ureg, Q_, PA_ +from pint import Quantity +from pint_pandas import PintType # Initial calculations print('Start!!!!!!!!!') @@ -107,6 +110,31 @@ initial_portfolio = amended_portfolio_global print('got till here 2') +# matplotlib is integrated with Pint's units system: https://pint.readthedocs.io/en/0.18/plotting.html +# But not so plotly. This function attempts to dequantify all units and return the magnitudes in their natural base units. + +def dequantify_plotly(px_func, df, **kwargs): + new_df = df.copy() + for col in ['x', 'y']: + s = df[kwargs[col]] + if isinstance(s.dtype, PintType): + new_df[kwargs[col]] = s.values.quantity.to_base_units().m + elif s.map(lambda x: isinstance(x, Quantity)).any(): + item0 = s.values[0] + s = s.astype(f"pint[{item0.u}]") + new_df[kwargs[col]] = s.values.quantity.m + if 'hover_data' in kwargs.keys(): + for col in kwargs['hover_data']: + s = df[col] + if isinstance(s.dtype, PintType): + new_df[col] = s.values.quantity.to_base_units().m + elif s.map(lambda x: isinstance(x, Quantity)).any(): + item0 = s.values[0] + s = s.astype(f"pint[{item0.u}]") + new_df[col] = s.values.quantity.m + + return px_func (new_df, **kwargs) + # nice cheatsheet for managing layout via className attribute: https://hackerthemes.com/bootstrap-cheatsheet/ @@ -531,8 +559,6 @@ def update_graph( initial_portfolio = amended_portfolio_global # carbon_mask = (initial_portfolio.cumulative_budget >= ca_bu[0]) & (initial_portfolio.cumulative_budget <= ca_bu[1]) - print(type(initial_portfolio.temperature_score)) - print(initial_portfolio.temperature_score) temp_score_mask = (initial_portfolio.temperature_score >= Q_(te_sc[0],'delta_degC')) & (initial_portfolio.temperature_score <= Q_(te_sc[1],'delta_degC')) # Dropdown filters @@ -561,7 +587,8 @@ def agg_score(agg_method): return [agg_method.value,aggregated_scores.long.S1S2.all.score] agg_temp_scores = [agg_score(i) for i in PortfolioAggregationMethod] - df_temp_score = pd.DataFrame(agg_temp_scores) + methods, scores = list(map(list, zip(*agg_temp_scores))) + df_temp_score = pd.DataFrame(data={0:pd.Series(methods,dtype='string'), 1:pd.Series(scores, dtype='pint[delta_degC]')}) # Separate column for names on Bar chart # Highlight WATS and TETS Weight_Dict = {'WATS': 'Investment
weighted', #
is needed to wrap x-axis label @@ -572,9 +599,11 @@ def agg_score(agg_method): 'ROTS': "Revenues
weigted", 'MOTS': 'Market Cap
weighted'} df_temp_score['Weight_method'] = df_temp_score[0].map(Weight_Dict) # Mapping code to text - df_temp_score[1]=df_temp_score[1].round(decimals = 2) - # Creating barchart - fig4 = px.bar(df_temp_score, x='Weight_method', y=1, text=1,title = "Score by weighting scheme
Assess the influence of weighting schemes on scores") + # 1 is the label of the row we will be graphing + # .map(lambda x: Q_(round(x.m, 2), x.u)) + df_temp_score[1]=df_temp_score[1].astype('pint[delta_degC]') + # Creating barchart, plotting values of column `1` + fig4 = dequantify_plotly (px.bar, df_temp_score, x='Weight_method', y=1, text=1,title = "Score by weighting scheme
Assess the influence of weighting schemes on scores") fig4.update_traces(textposition='inside', textangle=0) fig4.update_yaxes(title_text='Temperature score', range = [1,3]) fig4.update_xaxes(title_text=None, tickangle=0) @@ -591,31 +620,26 @@ def agg_score(agg_method): # Scatter plot - fig1 = px.scatter(filt_df, x="cumulative_target", y="cumulative_budget", - size="investment_value", - color = "sector", labels={"color": "Sector"}, - hover_data=["company_name", "investment_value", "temperature_score"], - title="Overview of portfolio") + fig1 = dequantify_plotly (px.scatter, filt_df, x="cumulative_target", y="cumulative_budget", + size="investment_value", + color = "sector", labels={"color": "Sector"}, + hover_data=["company_name", "investment_value", "temperature_score"], + title="Overview of portfolio") fig1.update_layout({'legend_title_text': '','transition_duration':500}) fig1.update_layout(legend=dict(orientation = "h",yanchor="bottom",y=1,xanchor="center",x=0.5)) # Covered companies analysis - coverage=filt_df[['company_id','ghg_s1s2','cumulative_target']] - def f(row): - if (pd.isna(row['ghg_s1s2']) and row['cumulative_target']==Q_(0, 't CO2')): - val = "Not Covered" - elif (pd.isna(row['ghg_s1s2']) and row['cumulative_target']>Q_(0, 't CO2')): - val = "Covered only
by target" - elif (row['ghg_s1s2']>0 and row['cumulative_target']==Q_(0, 't CO2')): - val = "Covered only
by emissions" - else: - val = "Covered by
emissions and targets" - return val - coverage['coverage_category'] = coverage.apply(f, axis=1) + coverage=filt_df[['company_id','ghg_s1s2','cumulative_target']].copy() + zeroE = Q_(0, 't CO2') + coverage['coverage_category'] = np.where(coverage['ghg_s1s2'].isnull(), + np.where(coverage['cumulative_target']==zeroE, "Not Covered", "Covered only
by target"), + np.where((coverage['ghg_s1s2'] >zeroE) & (coverage['cumulative_target']==zeroE), + "Covered only
by emissions", + "Covered by
emissions and targets")) dfg=coverage.groupby('coverage_category').count().reset_index() dfg['portfolio']='Portfolio' # 1 column to have just 1 bar. I didn't figure out how to do it more ellegant - fig5 = px.bar(dfg, x='portfolio',y="company_id", color="coverage_category",text='company_id',title="Coverage of companies in portfolio") + fig5 = dequantify_plotly (px.bar, dfg, x='portfolio',y="company_id", color="coverage_category",text='company_id',title="Coverage of companies in portfolio") fig5.update_xaxes(visible=False) # hide axis fig5.update_yaxes(visible=False) # hide axis fig5.update_layout({'legend_title_text': '','transition_duration':500, 'plot_bgcolor':'white'}) @@ -625,7 +649,7 @@ def f(row): trace = go.Heatmap( x = filt_df.sector, y = filt_df.region, - z = filt_df.temperature_score, + z = filt_df.temperature_score.map(lambda x: x.m), type = 'heatmap', colorscale = 'Temps', ) @@ -633,34 +657,32 @@ def f(row): fig2 = go.Figure(data = data) fig2.update_layout(title = "Industry vs Region ratings") - - fig3 = px.bar(filt_df.query("temperature_score > Q_(2, 'delta_degC')"), - x="company_name", y="temperature_score", - text ="temperature_score", - color="sector",title="Highest temperature scores by company") + fig3 = dequantify_plotly (px.bar, filt_df.query("temperature_score > @Q_(2, 'delta_degC')"), + x="company_name", y="temperature_score", + text ="temperature_score", + color="sector",title="Highest temperature scores by company") fig3.update_traces(textposition='inside', textangle=0) fig3.update_yaxes(title_text='Temperature score', range = [1,4]) fig3.update_layout({'legend_title_text': '','transition_duration':500}) fig3.update_layout(xaxis_title = None,legend=dict(orientation = "h",yanchor="bottom",y=1,xanchor="center",x=0.5)) - # Carbon budget slider update # drop_d_min = initial_portfolio.cumulative_budget.min() # drop_d_max = initial_portfolio.cumulative_budget.max() - df=amended_portfolio_global[['company_name', 'company_id','region','sector','cumulative_budget','investment_value','trajectory_score', 'target_score','temperature_score']] - df['temperature_score']=df['temperature_score'].map(lambda x: Q_(x.m.round(decimals = 2), x.u)) # formating column - df['trajectory_score']=df['trajectory_score'].map(lambda x: Q_(x.m.round(decimals = 2), x.u)) # formating column - df['target_score']=df['target_score'].map(lambda x: Q_(x.m.round(decimals = 2), x.u)) # formating column - df['cumulative_budget'] = df['cumulative_budget'].apply(lambda x: "{:,.1f}".format((x/1000000))) # formating column + df=amended_portfolio_global[['company_name', 'company_id','region','sector','cumulative_budget','investment_value','trajectory_score', 'target_score','temperature_score']].copy() + df['temperature_score']=df['temperature_score'].astype('pint[delta_degC]').values.quantity.m + df['trajectory_score']=df['trajectory_score'].astype('pint[delta_degC]').values.quantity.m + df['target_score']=df['target_score'].astype('pint[delta_degC]').values.quantity.m + df['cumulative_budget'] = df['cumulative_budget'].astype('pint[Mt CO2]').values.quantity.m df['investment_value'] = df['investment_value'].apply(lambda x: "${:,.1f} Mn".format((x/1000000))) # formating column df.rename(columns={'company_name':'Name', 'company_id':'ISIN','region':'Region','sector':'Industry','cumulative_budget':'Emissions budget','investment_value':'Notional','trajectory_score':'Historical emissions score', 'target_score':'Target score','temperature_score':'Weighted temperature score'}, inplace=True) return ( fig1, fig5, fig2, fig3, fig4, "{:.2f}".format(aggregated_scores.long.S1S2.all.score), # portfolio score - {'color': 'ForestGreen'} if aggregated_scores.long.S1S2.all.score < Q_(2, 'delta_degC') else {'color': 'Red'}, # conditional color - str(round((filt_df.company_enterprise_value.sum()+filt_df.company_cash_equivalents.sum())/10**9,0)), + {'color': 'ForestGreen'} if aggregated_scores.long.S1S2.all.score.m < 2 else {'color': 'Red'}, # conditional color + str(round((filt_df.company_ev_plus_cash.sum())/10**9,0)), str(filt_df.investment_value.sum()/10**6), str(len(filt_df)), # num of companies # str(len(filt_df.sector.unique())), # num of sectors in pf From 9bbf0ab92a265b391c77c7714f5fdf4c51200c45 Mon Sep 17 00:00:00 2001 From: MichaelTiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> Date: Sat, 26 Feb 2022 05:09:41 -0500 Subject: [PATCH 119/345] Fix damage to ExcelProviders code resulting from TemplateProviders enhancements Refactor _calculate_target_projections into BaseCompanyDataProvider and reorganize class definition order to accommodate. Also fix some latent unit errors in excel.py and test_excel_provider.py resulting from GHG_SCOPE12 fixes. Update quick example notebooks. Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- ITR/data/base_providers.py | 342 +++--- ITR/data/excel.py | 6 +- ITR/data/template.py | 2 +- examples/quick_temp_score_calculation.ipynb | 432 ++++---- examples/quick_template_score_calc.ipynb | 1070 +++++++++++++++++++ test/test_excel_provider.py | 4 +- 6 files changed, 1454 insertions(+), 402 deletions(-) create mode 100644 examples/quick_template_score_calc.ipynb diff --git a/ITR/data/base_providers.py b/ITR/data/base_providers.py index 355eeafe..3b032caf 100644 --- a/ITR/data/base_providers.py +++ b/ITR/data/base_providers.py @@ -22,160 +22,6 @@ # TODO handling of scopes in benchmarks -class BaseCompanyDataProvider(CompanyDataProvider): - """ - Data provider skeleton for JSON files parsed by the fastAPI json encoder. This class serves primarily for connecting - to the ITR tool via API. - - :param companies: A list of ICompanyData objects that each contain fundamental company data - :param column_config: An optional ColumnsConfig object containing relevant variable names - :param tempscore_config: An optional TemperatureScoreConfig object containing temperature scoring settings - """ - - def __init__(self, - companies: List[ICompanyData], - column_config: Type[ColumnsConfig] = ColumnsConfig, - tempscore_config: Type[TemperatureScoreConfig] = TemperatureScoreConfig): - super().__init__() - self._companies = self._validate_projected_trajectories(companies) - self.column_config = column_config - self.temp_config = tempscore_config - - def _validate_projected_trajectories(self, companies: List[ICompanyData]) -> List[ICompanyData]: - companies_without_data = [c.company_id for c in companies if not c.historic_data and not c.projected_intensities] - assert not companies_without_data, \ - f"Provide either historic emission data or projections for companies with IDs {companies_without_data}" - companies_without_projections = [c for c in companies if not c.projected_intensities] - if companies_without_projections: - companies_with_projections = [c for c in companies if c.projected_intensities] - return companies_with_projections + EITrajectoryProjector().project_ei_trajectories(companies_without_projections) - else: - return companies - - # Because this presently defaults to S1S2 always, targets spec'd for S1 only ro S1+S2+S3 are not well-handled. - def _convert_projections_to_series(self, company: ICompanyData, feature: str, - scope: EScope = EScope.S1S2) -> pd.Series: - """ - extracts the company projected intensities or targets for a given scope - :param feature: PROJECTED_TRAJECTORIES or PROJECTED_TARGETS (both are intensities) - :param scope: a scope - :return: pd.Series - """ - company_dict = company.dict() - production_units = company_dict[self.column_config.PRODUCTION_METRIC]['units'] - emissions_units = company_dict[self.column_config.EMISSIONS_METRIC]['units'] - if company_dict[feature][scope.name]: - projections = company_dict[feature][scope.name]['projections'] - else: - scopes = scope.value.split('+') - projection_scopes = {s:company_dict[feature][s]['projections'] for s in scopes if company_dict[feature][s]} - if len(projection_scopes)>1: - projection_series = {} - for s in scopes: - projection_series[s] = pd.Series( - {p['year']: p['value'] for p in company_dict[feature][s]['projections'] }, - name=company.company_id, dtype=f'pint[{emissions_units}/{production_units}]') - series_adder = partial(pd.Series.add, fill_value=0) - res = reduce(series_adder, projection_series.values()) - return res - elif len(projection_scopes)==0: - print(f"missing target scope data for {company.company_name} :: {scope}") - error() - else: - projections = company_dict[feature][scopes[0]]['projections'] - return pd.Series( - {p['year']: p['value'] for p in projections }, - name=company.company_id, dtype=f'pint[{emissions_units}/{production_units}]') - - # ??? Why prefer TRAJECTORY over TARGET? - def _get_company_intensity_at_year(self, year: int, company_ids: List[str]) -> pd.Series: - """ - Returns projected intensities for a given set of companies and year - :param year: calendar year - :param company_ids: List of company ids - :return: pd.Series with intensities for given company ids - """ - return self.get_company_projected_trajectories(company_ids)[year] - - def get_company_data(self, company_ids: List[str]) -> List[ICompanyData]: - """ - Get all relevant data for a list of company ids. This method should return a list of ICompanyData - instances. - - :param company_ids: A list of company IDs (ISINs) - :return: A list containing the company data - """ - company_data = [company for company in self._companies if company.company_id in company_ids] - - if len(company_data) is not len(company_ids): - missing_ids = [company.company_id for company in self._companies if company.company_id not in company_ids] - assert not missing_ids, f"Company IDs not found in fundamental data: {missing_ids}" - - return company_data - - def get_value(self, company_ids: List[str], variable_name: str) -> pd.Series: - """ - Gets the value of a variable for a list of companies ids - :param company_ids: list of company ids - :param variable_name: variable name of the projected feature - :return: series of values - """ - return self.get_company_fundamentals(company_ids)[variable_name] - - def get_company_intensity_and_production_at_base_year(self, company_ids: List[str]) -> pd.DataFrame: - """ - overrides subclass method - :param: company_ids: list of company ids - :return: DataFrame the following columns : - ColumnsConfig.COMPANY_ID, ColumnsConfig.PRODUCTION_METRIC, ColumnsConfig.GHG_SCOPE12, ColumnsConfig.BASE_EI, - ColumnsConfig.SECTOR and ColumnsConfig.REGION - """ - df_fundamentals = self.get_company_fundamentals(company_ids) - base_year = self.temp_config.CONTROLS_CONFIG.base_year - company_info = df_fundamentals.loc[ - company_ids, [self.column_config.SECTOR, self.column_config.REGION, - self.column_config.BASE_YEAR_PRODUCTION, - self.column_config.GHG_SCOPE12]] - ei_at_base = self._get_company_intensity_at_year(base_year, company_ids).rename(self.column_config.BASE_EI) - return company_info.merge(ei_at_base, left_index=True, right_index=True) - - def get_company_fundamentals(self, company_ids: List[str]) -> pd.DataFrame: - """ - :param company_ids: A list of company IDs - :return: A pandas DataFrame with company fundamental info per company (company_id is a column) - """ - return pd.DataFrame.from_records( - [ICompanyData.parse_obj(c.dict()).dict() for c in self.get_company_data(company_ids)], - exclude=['projected_targets', 'projected_intensities', 'historic_data']).set_index(self.column_config.COMPANY_ID) - - def get_company_projected_trajectories(self, company_ids: List[str]) -> pd.DataFrame: - """ - :param company_ids: A list of company IDs - :return: A pandas DataFrame with projected intensity trajectories per company, indexed by company_id - """ - trajectory_list = [self._convert_projections_to_series(c, self.column_config.PROJECTED_EI) for c in - self.get_company_data(company_ids)] - if trajectory_list: - with warnings.catch_warnings(): - # pd.DataFrame.__init__ (in pandas/core/frame.py) ignores the beautiful dtype information adorning the pd.Series list elements we are providing. Sad! - warnings.simplefilter("ignore") - return pd.DataFrame(trajectory_list) - return pd.DataFrame() - - def get_company_projected_targets(self, company_ids: List[str]) -> pd.DataFrame: - """ - :param company_ids: A list of company IDs - :return: A pandas DataFrame with projected intensity targets per company, indexed by company_id - """ - target_list = [self._convert_projections_to_series(c, self.column_config.PROJECTED_TARGETS) for c in - self.get_company_data(company_ids)] - if target_list: - with warnings.catch_warnings(): - # pd.DataFrame.__init__ (in pandas/core/frame.py) ignores the beautiful dtype information adorning the pd.Series list elements we are providing. Sad! - warnings.simplefilter("ignore") - return pd.DataFrame(target_list) - return pd.DataFrame() - # This is actual output production (whatever the output production units may be). # Not to be confused with the term "projected production" as it relates to energy intensity. @@ -354,6 +200,194 @@ def _get_intensity_benchmarks(self, company_sector_region_info: pd.DataFrame, return benchmark_projection +class BaseCompanyDataProvider(CompanyDataProvider): + """ + Data provider skeleton for JSON files parsed by the fastAPI json encoder. This class serves primarily for connecting + to the ITR tool via API. + + :param companies: A list of ICompanyData objects that each contain fundamental company data + :param column_config: An optional ColumnsConfig object containing relevant variable names + :param tempscore_config: An optional TemperatureScoreConfig object containing temperature scoring settings + """ + + def __init__(self, + companies: List[ICompanyData], + column_config: Type[ColumnsConfig] = ColumnsConfig, + tempscore_config: Type[TemperatureScoreConfig] = TemperatureScoreConfig): + super().__init__() + self._companies = self._validate_projected_trajectories(companies) + self.column_config = column_config + self.temp_config = tempscore_config + + def _validate_projected_trajectories(self, companies: List[ICompanyData]) -> List[ICompanyData]: + companies_without_data = [c.company_id for c in companies if not c.historic_data and not c.projected_intensities] + assert not companies_without_data, \ + f"Provide either historic emission data or projections for companies with IDs {companies_without_data}" + companies_without_projections = [c for c in companies if not c.projected_intensities] + if companies_without_projections: + companies_with_projections = [c for c in companies if c.projected_intensities] + return companies_with_projections + EITrajectoryProjector().project_ei_trajectories(companies_without_projections) + else: + return companies + + # Because this presently defaults to S1S2 always, targets spec'd for S1 only ro S1+S2+S3 are not well-handled. + def _convert_projections_to_series(self, company: ICompanyData, feature: str, + scope: EScope = EScope.S1S2) -> pd.Series: + """ + extracts the company projected intensities or targets for a given scope + :param feature: PROJECTED_TRAJECTORIES or PROJECTED_TARGETS (both are intensities) + :param scope: a scope + :return: pd.Series + """ + company_dict = company.dict() + production_units = company_dict[self.column_config.PRODUCTION_METRIC]['units'] + emissions_units = company_dict[self.column_config.EMISSIONS_METRIC]['units'] + if company_dict[feature][scope.name]: + projections = company_dict[feature][scope.name]['projections'] + else: + scopes = scope.value.split('+') + projection_scopes = {s:company_dict[feature][s]['projections'] for s in scopes if company_dict[feature][s]} + if len(projection_scopes)>1: + projection_series = {} + for s in scopes: + projection_series[s] = pd.Series( + {p['year']: p['value'] for p in company_dict[feature][s]['projections'] }, + name=company.company_id, dtype=f'pint[{emissions_units}/{production_units}]') + series_adder = partial(pd.Series.add, fill_value=0) + res = reduce(series_adder, projection_series.values()) + return res + elif len(projection_scopes)==0: + print(f"missing target scope data for {company.company_name} :: {scope}") + error() + else: + projections = company_dict[feature][scopes[0]]['projections'] + return pd.Series( + {p['year']: p['value'] for p in projections }, + name=company.company_id, dtype=f'pint[{emissions_units}/{production_units}]') + + def _calculate_target_projections(self, + production_bm: BaseProviderProductionBenchmark, + EI_bm: BaseProviderIntensityBenchmark): + """ + We cannot calculate target projections until after we have loaded benchmark data. + We do so when companies are associated with benchmarks, in the DataWarehouse construction + + :param Production_bm: A Production Benchmark (multi-sector, single-scope, 2020-2050) + :param EI_bm: An Emissions Intensity Benchmark (multi-sector, single-scope, 2020-2050) + """ + for c in self._companies: + if c.projected_targets is not None: + continue + elif c.target_data is None: + print(f"no target data for {c.company_name}") + continue + else: + base_year_production = next((p.value for p in c.historic_data.productions if p.year == self.temp_config.CONTROLS_CONFIG.base_year), None) + with warnings.catch_warnings(): + warnings.simplefilter("ignore") + company_sector_region_info = pd.DataFrame({ + self.column_config.COMPANY_ID: [ c.company_id ], + self.column_config.BASE_YEAR_PRODUCTION: [ base_year_production.to(c.production_metric.units) ], + self.column_config.GHG_SCOPE12: [ c.ghg_s1s2 ], + self.column_config.SECTOR: [ c.sector ], + self.column_config.REGION: [ c.region ], + }, index=[0]) + bm_production_data = (production_bm.get_company_projected_production(company_sector_region_info) + # We transpose the data so that we get a pd.Series that will accept the pint units as a whole (not element-by-element) + .iloc[0].T + .astype(f'pint[{str(base_year_production.units)}]')) + c.projected_targets = EITargetProjector().project_ei_targets(c.target_data, c.historic_data, bm_production_data) + + # ??? Why prefer TRAJECTORY over TARGET? + def _get_company_intensity_at_year(self, year: int, company_ids: List[str]) -> pd.Series: + """ + Returns projected intensities for a given set of companies and year + :param year: calendar year + :param company_ids: List of company ids + :return: pd.Series with intensities for given company ids + """ + return self.get_company_projected_trajectories(company_ids)[year] + + def get_company_data(self, company_ids: List[str]) -> List[ICompanyData]: + """ + Get all relevant data for a list of company ids. This method should return a list of ICompanyData + instances. + + :param company_ids: A list of company IDs (ISINs) + :return: A list containing the company data + """ + company_data = [company for company in self._companies if company.company_id in company_ids] + + if len(company_data) is not len(company_ids): + missing_ids = [company.company_id for company in self._companies if company.company_id not in company_ids] + assert not missing_ids, f"Company IDs not found in fundamental data: {missing_ids}" + + return company_data + + def get_value(self, company_ids: List[str], variable_name: str) -> pd.Series: + """ + Gets the value of a variable for a list of companies ids + :param company_ids: list of company ids + :param variable_name: variable name of the projected feature + :return: series of values + """ + return self.get_company_fundamentals(company_ids)[variable_name] + + def get_company_intensity_and_production_at_base_year(self, company_ids: List[str]) -> pd.DataFrame: + """ + overrides subclass method + :param: company_ids: list of company ids + :return: DataFrame the following columns : + ColumnsConfig.COMPANY_ID, ColumnsConfig.PRODUCTION_METRIC, ColumnsConfig.GHG_SCOPE12, ColumnsConfig.BASE_EI, + ColumnsConfig.SECTOR and ColumnsConfig.REGION + """ + df_fundamentals = self.get_company_fundamentals(company_ids) + base_year = self.temp_config.CONTROLS_CONFIG.base_year + company_info = df_fundamentals.loc[ + company_ids, [self.column_config.SECTOR, self.column_config.REGION, + self.column_config.BASE_YEAR_PRODUCTION, + self.column_config.GHG_SCOPE12]] + ei_at_base = self._get_company_intensity_at_year(base_year, company_ids).rename(self.column_config.BASE_EI) + return company_info.merge(ei_at_base, left_index=True, right_index=True) + + def get_company_fundamentals(self, company_ids: List[str]) -> pd.DataFrame: + """ + :param company_ids: A list of company IDs + :return: A pandas DataFrame with company fundamental info per company (company_id is a column) + """ + return pd.DataFrame.from_records( + [ICompanyData.parse_obj(c.dict()).dict() for c in self.get_company_data(company_ids)], + exclude=['projected_targets', 'projected_intensities', 'historic_data']).set_index(self.column_config.COMPANY_ID) + + def get_company_projected_trajectories(self, company_ids: List[str]) -> pd.DataFrame: + """ + :param company_ids: A list of company IDs + :return: A pandas DataFrame with projected intensity trajectories per company, indexed by company_id + """ + trajectory_list = [self._convert_projections_to_series(c, self.column_config.PROJECTED_EI) for c in + self.get_company_data(company_ids)] + if trajectory_list: + with warnings.catch_warnings(): + # pd.DataFrame.__init__ (in pandas/core/frame.py) ignores the beautiful dtype information adorning the pd.Series list elements we are providing. Sad! + warnings.simplefilter("ignore") + return pd.DataFrame(trajectory_list) + return pd.DataFrame() + + def get_company_projected_targets(self, company_ids: List[str]) -> pd.DataFrame: + """ + :param company_ids: A list of company IDs + :return: A pandas DataFrame with projected intensity targets per company, indexed by company_id + """ + target_list = [self._convert_projections_to_series(c, self.column_config.PROJECTED_TARGETS) for c in + self.get_company_data(company_ids)] + if target_list: + with warnings.catch_warnings(): + # pd.DataFrame.__init__ (in pandas/core/frame.py) ignores the beautiful dtype information adorning the pd.Series list elements we are providing. Sad! + warnings.simplefilter("ignore") + return pd.DataFrame(target_list) + return pd.DataFrame() + + class EITrajectoryProjector(object): """ This class projects emissions intensities on company level based on historic data on: diff --git a/ITR/data/excel.py b/ITR/data/excel.py index 5ae75687..4b91dd89 100644 --- a/ITR/data/excel.py +++ b/ITR/data/excel.py @@ -229,9 +229,11 @@ def _company_df_to_model(self, df_fundamentals: pd.DataFrame, df_targets: pd.Dat # pint automatically handles any unit conversions required v = df_fundamentals[df_fundamentals[ColumnsConfig.COMPANY_ID]==company_id][ColumnsConfig.GHG_SCOPE12].squeeze() - company_data[ColumnsConfig.GHG_SCOPE12] = Q_(v or np.nan, ureg(units)) + company_data[ColumnsConfig.GHG_SCOPE12] = Q_(v or np.nan, 't CO2') + company_data[ColumnsConfig.BASE_YEAR_PRODUCTION] = \ + company_data[ColumnsConfig.GHG_SCOPE12] / df_ei.loc[company_id, :][TemperatureScoreConfig.CONTROLS_CONFIG.base_year] v = df_fundamentals[df_fundamentals[ColumnsConfig.COMPANY_ID]==company_id][ColumnsConfig.GHG_SCOPE3].squeeze() - company_data[ColumnsConfig.GHG_SCOPE3] = Q_(v or np.nan, ureg(units)) + company_data[ColumnsConfig.GHG_SCOPE3] = Q_(v or np.nan, 't CO2') company_data[ColumnsConfig.PROJECTED_TARGETS] = {'S1S2': { 'projections': self._convert_series_to_IProjections (df_targets.loc[company_id, :])}} company_data[ColumnsConfig.PROJECTED_EI] = {'S1S2': { diff --git a/ITR/data/template.py b/ITR/data/template.py index 30b99d33..15777342 100644 --- a/ITR/data/template.py +++ b/ITR/data/template.py @@ -9,7 +9,7 @@ Q_ = ureg.Quantity from pydantic import ValidationError -from ITR.data.base_providers import BaseCompanyDataProvider, BaseProviderProductionBenchmark, \ +from ITR.data.base_providers import BaseCompanyDataProvider, \ BaseProviderIntensityBenchmark, EITargetProjector from ITR.configs import ColumnsConfig, TemperatureScoreConfig, VariablesConfig, TabsConfig from ITR.interfaces import ICompanyData, EScope, \ diff --git a/examples/quick_temp_score_calculation.ipynb b/examples/quick_temp_score_calculation.ipynb index b3a7f8d7..0743c5dd 100644 --- a/examples/quick_temp_score_calculation.ipynb +++ b/examples/quick_temp_score_calculation.ipynb @@ -349,31 +349,7 @@ "cell_type": "code", "execution_count": 13, "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/opt/app-root/lib64/python3.8/site-packages/pint_pandas/pint_array.py:648: UnitStrippedWarning: The unit of the quantity is stripped when downcasting to ndarray.\n", - " return np.array(qtys, dtype=\"object\", copy=copy)\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "calculate scopes = []\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/opt/app-root/lib64/python3.8/site-packages/pandas/core/dtypes/cast.py:1990: UnitStrippedWarning: The unit of the quantity is stripped when downcasting to ndarray.\n", - " result[:] = values\n" - ] - } - ], + "outputs": [], "source": [ "temperature_score = TemperatureScore( \n", " time_frames = [ETimeFrames.LONG], \n", @@ -395,6 +371,16 @@ "execution_count": 14, "metadata": {}, "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/Users/michael/opt/miniconda3/envs/jupyter/lib/python3.10/site-packages/pint_pandas/pint_array.py:648: UnitStrippedWarning: The unit of the quantity is stripped when downcasting to ndarray.\n", + " return np.array(qtys, dtype=\"object\", copy=copy)\n", + "/Users/michael/opt/miniconda3/envs/jupyter/lib/python3.10/site-packages/pint_pandas/pint_array.py:648: UnitStrippedWarning: The unit of the quantity is stripped when downcasting to ndarray.\n", + " return np.array(qtys, dtype=\"object\", copy=copy)\n" + ] + }, { "data": { "text/html": [ @@ -428,79 +414,79 @@ " Company AG\n", " LONG\n", " S1S2\n", - " 3.2 delta_degree_Celsius\n", + " 2.05\n", " \n", " \n", " 1\n", " Company AH\n", " LONG\n", " S1S2\n", - " 3.2 delta_degree_Celsius\n", + " 2.22\n", " \n", " \n", " 2\n", " Company AI\n", " LONG\n", " S1S2\n", - " 3.2 delta_degree_Celsius\n", + " 2.06\n", " \n", " \n", " 3\n", " Company AJ\n", " LONG\n", " S1S2\n", - " 3.2 delta_degree_Celsius\n", + " 2.01\n", " \n", " \n", " 4\n", " Company AK\n", " LONG\n", " S1S2\n", - " 3.2 delta_degree_Celsius\n", + " 1.93\n", " \n", " \n", " 5\n", " Company AL\n", " LONG\n", " S1S2\n", - " 3.2 delta_degree_Celsius\n", + " 1.78\n", " \n", " \n", " 6\n", " Company AM\n", " LONG\n", " S1S2\n", - " 3.2 delta_degree_Celsius\n", + " 1.71\n", " \n", " \n", " 7\n", " Company AN\n", " LONG\n", " S1S2\n", - " 3.2 delta_degree_Celsius\n", + " 1.34\n", " \n", " \n", " 8\n", " Company AO\n", " LONG\n", " S1S2\n", - " 3.2 delta_degree_Celsius\n", + " 2.21\n", " \n", " \n", "\n", "" ], "text/plain": [ - " company_name time_frame scope temperature_score\n", - "0 Company AG LONG S1S2 3.2 delta_degree_Celsius\n", - "1 Company AH LONG S1S2 3.2 delta_degree_Celsius\n", - "2 Company AI LONG S1S2 3.2 delta_degree_Celsius\n", - "3 Company AJ LONG S1S2 3.2 delta_degree_Celsius\n", - "4 Company AK LONG S1S2 3.2 delta_degree_Celsius\n", - "5 Company AL LONG S1S2 3.2 delta_degree_Celsius\n", - "6 Company AM LONG S1S2 3.2 delta_degree_Celsius\n", - "7 Company AN LONG S1S2 3.2 delta_degree_Celsius\n", - "8 Company AO LONG S1S2 3.2 delta_degree_Celsius" + " company_name time_frame scope temperature_score\n", + "0 Company AG LONG S1S2 2.05\n", + "1 Company AH LONG S1S2 2.22\n", + "2 Company AI LONG S1S2 2.06\n", + "3 Company AJ LONG S1S2 2.01\n", + "4 Company AK LONG S1S2 1.93\n", + "5 Company AL LONG S1S2 1.78\n", + "6 Company AM LONG S1S2 1.71\n", + "7 Company AN LONG S1S2 1.34\n", + "8 Company AO LONG S1S2 2.21" ] }, "execution_count": 14, @@ -524,16 +510,7 @@ "cell_type": "code", "execution_count": 15, "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/opt/app-root/lib64/python3.8/site-packages/pint_pandas/pint_array.py:648: UnitStrippedWarning: The unit of the quantity is stripped when downcasting to ndarray.\n", - " return np.array(qtys, dtype=\"object\", copy=copy)\n" - ] - } - ], + "outputs": [], "source": [ "aggregated_scores = temperature_score.aggregate_scores(amended_portfolio)" ] @@ -546,13 +523,13 @@ { "data": { "text/html": [ - "3.1999999999999993 delta_degree_Celsius" + "1.8100000000000003 delta_degree_Celsius" ], "text/latex": [ - "$3.1999999999999993\\ \\mathrm{delta\\_degree\\_Celsius}$" + "$1.8100000000000003\\ \\mathrm{delta\\_degree\\_Celsius}$" ], "text/plain": [ - "3.1999999999999993 " + "1.8100000000000003 " ] }, "execution_count": 16, @@ -584,23 +561,7 @@ "metadata": { "scrolled": true }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "calculate scopes = []\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/opt/app-root/lib64/python3.8/site-packages/pandas/core/dtypes/cast.py:1990: UnitStrippedWarning: The unit of the quantity is stripped when downcasting to ndarray.\n", - " result[:] = values\n" - ] - } - ], + "outputs": [], "source": [ "grouping = ['sector', 'region']\n", "temperature_score.grouping = grouping\n", @@ -629,7 +590,7 @@ "outputs": [ { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ "

" ] @@ -682,121 +643,121 @@ " \n", " 0\n", " Steel-Asia\n", - " Company AW\n", - " US7134481081\n", - " 3.2 delta_degree_Celsius\n", - " 9.09090909090909 delta_degree_Celsius\n", + " Company L\n", + " BR0000000012\n", + " 1.88 delta_degree_Celsius\n", + " 11.230585424133812 percent\n", " \n", " \n", " 1\n", " Steel-Asia\n", - " Company A\n", - " JP0000000001\n", - " 3.2 delta_degree_Celsius\n", - " 9.09090909090909 delta_degree_Celsius\n", + " Company H\n", + " CN0000000008\n", + " 1.84 delta_degree_Celsius\n", + " 10.991636798088411 percent\n", " \n", " \n", " 2\n", " Steel-Asia\n", - " Company C\n", - " IT0000000003\n", - " 3.2 delta_degree_Celsius\n", - " 9.09090909090909 delta_degree_Celsius\n", + " Company E\n", + " SE0000000005\n", + " 1.81 delta_degree_Celsius\n", + " 10.812425328554362 percent\n", " \n", " \n", " 3\n", " Steel-Asia\n", - " Company D\n", - " SE0000000004\n", - " 3.2 delta_degree_Celsius\n", - " 9.09090909090909 delta_degree_Celsius\n", + " Company G\n", + " CN0000000007\n", + " 1.78 delta_degree_Celsius\n", + " 10.63321385902031 percent\n", " \n", " \n", " 4\n", " Steel-Asia\n", - " Company E\n", - " SE0000000005\n", - " 3.2 delta_degree_Celsius\n", - " 9.09090909090909 delta_degree_Celsius\n", + " Company D\n", + " SE0000000004\n", + " 1.76 delta_degree_Celsius\n", + " 10.51373954599761 percent\n", " \n", " \n", " 5\n", " Steel-Asia\n", - " Company F\n", - " NL0000000006\n", - " 3.2 delta_degree_Celsius\n", - " 9.09090909090909 delta_degree_Celsius\n", + " Company C\n", + " IT0000000003\n", + " 1.72 delta_degree_Celsius\n", + " 10.274790919952212 percent\n", " \n", " \n", " 6\n", " Steel-Asia\n", - " Company G\n", - " CN0000000007\n", - " 3.2 delta_degree_Celsius\n", - " 9.09090909090909 delta_degree_Celsius\n", + " Company AW\n", + " US7134481081\n", + " 1.19 delta_degree_Celsius\n", + " 7.1087216248506575 percent\n", " \n", " \n", " 7\n", " Steel-Asia\n", - " Company H\n", - " CN0000000008\n", - " 3.2 delta_degree_Celsius\n", - " 9.09090909090909 delta_degree_Celsius\n", + " Company A\n", + " JP0000000001\n", + " 1.19 delta_degree_Celsius\n", + " 7.1087216248506575 percent\n", " \n", " \n", " 8\n", " Steel-Asia\n", - " Company I\n", - " CN0000000009\n", - " 3.2 delta_degree_Celsius\n", - " 9.09090909090909 delta_degree_Celsius\n", + " Company F\n", + " NL0000000006\n", + " 1.19 delta_degree_Celsius\n", + " 7.1087216248506575 percent\n", " \n", " \n", " 9\n", " Steel-Asia\n", - " Company J\n", - " BR0000000010\n", - " 3.2 delta_degree_Celsius\n", - " 9.09090909090909 delta_degree_Celsius\n", + " Company I\n", + " CN0000000009\n", + " 1.19 delta_degree_Celsius\n", + " 7.1087216248506575 percent\n", " \n", " \n", " 10\n", " Steel-Asia\n", - " Company L\n", - " BR0000000012\n", - " 3.2 delta_degree_Celsius\n", - " 9.09090909090909 delta_degree_Celsius\n", + " Company J\n", + " BR0000000010\n", + " 1.19 delta_degree_Celsius\n", + " 7.1087216248506575 percent\n", " \n", " \n", "\n", "" ], "text/plain": [ - " group company_name company_id temperature_score \\\n", - "0 Steel-Asia Company AW US7134481081 3.2 delta_degree_Celsius \n", - "1 Steel-Asia Company A JP0000000001 3.2 delta_degree_Celsius \n", - "2 Steel-Asia Company C IT0000000003 3.2 delta_degree_Celsius \n", - "3 Steel-Asia Company D SE0000000004 3.2 delta_degree_Celsius \n", - "4 Steel-Asia Company E SE0000000005 3.2 delta_degree_Celsius \n", - "5 Steel-Asia Company F NL0000000006 3.2 delta_degree_Celsius \n", - "6 Steel-Asia Company G CN0000000007 3.2 delta_degree_Celsius \n", - "7 Steel-Asia Company H CN0000000008 3.2 delta_degree_Celsius \n", - "8 Steel-Asia Company I CN0000000009 3.2 delta_degree_Celsius \n", - "9 Steel-Asia Company J BR0000000010 3.2 delta_degree_Celsius \n", - "10 Steel-Asia Company L BR0000000012 3.2 delta_degree_Celsius \n", + " group company_name company_id temperature_score \\\n", + "0 Steel-Asia Company L BR0000000012 1.88 delta_degree_Celsius \n", + "1 Steel-Asia Company H CN0000000008 1.84 delta_degree_Celsius \n", + "2 Steel-Asia Company E SE0000000005 1.81 delta_degree_Celsius \n", + "3 Steel-Asia Company G CN0000000007 1.78 delta_degree_Celsius \n", + "4 Steel-Asia Company D SE0000000004 1.76 delta_degree_Celsius \n", + "5 Steel-Asia Company C IT0000000003 1.72 delta_degree_Celsius \n", + "6 Steel-Asia Company AW US7134481081 1.19 delta_degree_Celsius \n", + "7 Steel-Asia Company A JP0000000001 1.19 delta_degree_Celsius \n", + "8 Steel-Asia Company F NL0000000006 1.19 delta_degree_Celsius \n", + "9 Steel-Asia Company I CN0000000009 1.19 delta_degree_Celsius \n", + "10 Steel-Asia Company J BR0000000010 1.19 delta_degree_Celsius \n", "\n", - " contribution_relative \n", - "0 9.09090909090909 delta_degree_Celsius \n", - "1 9.09090909090909 delta_degree_Celsius \n", - "2 9.09090909090909 delta_degree_Celsius \n", - "3 9.09090909090909 delta_degree_Celsius \n", - "4 9.09090909090909 delta_degree_Celsius \n", - "5 9.09090909090909 delta_degree_Celsius \n", - "6 9.09090909090909 delta_degree_Celsius \n", - "7 9.09090909090909 delta_degree_Celsius \n", - "8 9.09090909090909 delta_degree_Celsius \n", - "9 9.09090909090909 delta_degree_Celsius \n", - "10 9.09090909090909 delta_degree_Celsius " + " contribution_relative \n", + "0 11.230585424133812 percent \n", + "1 10.991636798088411 percent \n", + "2 10.812425328554362 percent \n", + "3 10.63321385902031 percent \n", + "4 10.51373954599761 percent \n", + "5 10.274790919952212 percent \n", + "6 7.1087216248506575 percent \n", + "7 7.1087216248506575 percent \n", + "8 7.1087216248506575 percent \n", + "9 7.1087216248506575 percent \n", + "10 7.1087216248506575 percent " ] }, "execution_count": 19, @@ -840,22 +801,7 @@ "name": "stderr", "output_type": "stream", "text": [ - "/opt/app-root/lib64/python3.8/site-packages/pint_pandas/pint_array.py:648: UnitStrippedWarning: The unit of the quantity is stripped when downcasting to ndarray.\n", - " return np.array(qtys, dtype=\"object\", copy=copy)\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "calculate scopes = []\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/opt/app-root/lib64/python3.8/site-packages/pandas/core/dtypes/cast.py:1990: UnitStrippedWarning: The unit of the quantity is stripped when downcasting to ndarray.\n", + "/Users/michael/opt/miniconda3/envs/jupyter/lib/python3.10/site-packages/pandas/core/dtypes/cast.py:1981: UnitStrippedWarning: The unit of the quantity is stripped when downcasting to ndarray.\n", " result[:] = values\n" ] } @@ -881,7 +827,7 @@ "outputs": [ { "data": { - "image/png": "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WXDSSSctmzNnTvNEIrH3WWed1SOZTLa59tpr53Xu3Hn9iBEjpr377rvT5s6d2/Tmm2/eeeTIkdMmTZo0+YADDlh14403lq1du9YuueSSHv/4xz8+nThx4uRzzjlnwZVXXtk19GuS7aPDkSIiIlnQvn376gkTJkx6+eWX2/7zn/9se8455/T85S9/OSt1mTfffHOHTz/9tOWgQYP6Aqxfv94GDBiwYvz48S0+/vjjVocffnhvgOrqakpLS9eHeB3SeFSEiYiIZEnTpk0ZMmTI8iFDhizfd999Vz/88MMdU+e7O4cccsiy559//r+p0997771We+yxx+px48ZNyW5iySQVYUUgUZksAdrHtx2BlsA6YA2wNv65Blg+fejgdYFiimRNojLZhE33iRZE+0LN/lDzc9n0oYPV2iCN4sMPP2xRUlLCPvvssxbggw8+aNWtW7d1s2bNar506dKSnXfemcMOO2zlFVdc0WPChAkt9t5777XLli0rmT59erN99913zaJFi5q+/vrrOxx55JEr165dax999FGLgQMHrgn9umTbqQgrAPEHSgLoU+u2G7AT0BawNFblicrkAmA28DnwGfApMBEYPX3o4OWNHl4kAxKVyaZE7//a+0SCaJ9oQ/r7xHyifWIGX+4TE4Ax04cOXtno4SUr0h1SojEtW7asySWXXNJj2bJlTZo0aeKJRGLtQw89NOOBBx7ocMwxx/QuKytb9+67704bNmzY9DPOOGP3devWGcB11103e99991372GOPfXrJJZf0WL58eZONGzfaD37wgyoVYflNF/DOQ4nKZEugHDg0vpUDrTK82WpgEvBuyu2j6UMH6w0kwSUqk62Bg/lynxhE1LqVSRuJirGa/WEUMFn7RG768MMPp++3334LQueQ7Pvwww877bfffonQOeqiIixPJCqTvYHTgaPIzgdMOr4AngeeBf45fejgtWHjSDFJVCb3ItonjgQGArlwuv4s4DmifeJNHcrMHSrCipeKMNkmicrkrsAZ8a1/2DQNWg68DDwNPKuCTDIhUZnsCZxJtE/sFThOQ5YALxLtE8+rIAtLRVjxUhEmaUtUJpsRfchcBBxEev1Wcs0C4AHgL9OHDp4eOIvkufjw+9nAhUQtXvnoC+A+YNj0oYNnNbSwND4VYcVLRZg0KFGZ3Imo8PoJsEvgOI2lmqh17C7gpelDB+uSHJK2RGWyFPhhfOscOE5j2Uh0CP8u4HX1H8seFWHFK5eLMI2YH1iiMrlrojJ5BzATuIXCKcAgen8dB7wAfJioTJ4UNo7kg0RlsleiMjmM6Azd6ymcAgygCXAS8CrwfqIyeUzYOCISklrCAklUJtsDvwAuITc62WfLu8A104cO/lfoIJJbEpXJjkRF18UU1/A5I4n2ibdDBylkagkrXrncEqYiLMviMb0uIvqwKQ2bJqh/AT8PMVaP5JZEZbI50WH4a4kGTi1WLwJXTR86eELoIIWodhE2fFTVgMZcf0V5WYP/y5o0aTKgV69eq2sen3zyyYtuvvnmLwYNGtTn1ltvnfn1r3991dZs85133mk1c+bM5qeffvrSuuaPHDmy9QMPPNDxwQcfnLmldRx66KF7PP300/8FuO+++zpUVlbOT3f7L7zwQtvbbrut7I033vikZtopp5ySGDJkyNLzzjtv8Q033ND5pz/96YK2bdtWp26rU6dOG1u3br3/qlWrPpg+fXqziy++uPvLL7/8We3X8+ijj7afOHFiq5tvvvmLdDPVJZeLMB2OzKJEZfKbwHjgToq7AAM4HHg3UZm8LR7jSYpQojJ5ItFgwLdS3AUYRIfuxyYqkzfGhakUmBYtWlRPmTJlUs1te4uL0aNHt04mk+3rmrd+/Xq+/vWvr6qvAAMYMWLEJ506ddq4cOHCJvfff3+jHvofNmxY2YoVK/5XZ9RsK3WZRCKx/uWXX/4MNn893/nOd5Zu7+8o16kIy4JEZbJ9ojL5V+AVoF/oPDmkCXA58FGiMnl46DCSPYnKZKdEZfJxovG09ggcJ5c0I2oRHJeoTB4cOoxk3zPPPNOuf//+ffv167fnscceu/vSpUtLAEaMGNF6//3379unT59+++yzz54LFy5scsstt+zy/PPP79S3b99+9957706XX375LieddNJuBxxwQN+TTz55txdeeKHtN77xjT0Ali5dWnLqqacmevfu3a937979HnzwwR0Bunbtus/cuXObXnHFFd1mzpzZom/fvv0uuuiibhUVFYmHH354x5pcJ5xwwm6PPPLIjnVErtNNN93Ued68ec0OPfTQ3gceeGDv1G2lLjd16tTmvXr12mvNmjVW+/XccccdHb/73e/2AJgzZ07To48+uufee++95957773nq6++ugNAMpls07dv3359+/bt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\n", + "image/png": "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vXv3/rpq+phjjll6ww03fDF8+PA9brrppnkHHnjgmrq2r+7NN99sNW/evOYnnnji8pqWT5o0qfV9993Xefz48fNq28fIkSN3f+yxx/4LcM8993QqKytbnOzxn3nmmXY333xz0auvvjqnat6xxx4bO+KII5afccYZy6699tquF1988ZJ27dptTjxWly5dNrVu3XrvNWvW/KeioqLZueee2/P555+fW/31PPjggx1mzJjR6oYbbvgi2UyZRsWZiIhIhFq0aLF55syZyfSvTMqUKVNaT5kypU1NxdmGDRs48MAD19RX8E2cOHEOwKxZs5rfe++9XRtSnNXnrrvuKjrrrLOWVhVnVcdKFIvFNjz//PNzYevXc8oppywHaiw8s0Xanm8VERGRwOOPP95+8ODBffv3799vzJgxuy5fvjwPYOLEia333nvvvnvssUf/vfbaq9+XX36Zf+ONN+709NNP79C3b9/+f/7zn3e45JJLdjr55JN3PuCAA3ofc8wxuzzzzDPtDjrooN0Bli9fnnfcccfF+vTp079Pnz79x48f3xGge/fuey1cuLBg3LhxPebNm9eib9++/c8555weRx999C4PPPBAx6pcRx555C4PPvhgh2Rfx/XXX9910aJFzUaOHNln33337ZN4rMT1Zs2a1bx37957rl271qq/nltuuaXz97///V4ACxYsKPjOd76z24ABA/oNGDCg34svvtgGIB6Pt+3bt2//vn379u/Xr1//ZcuWZVS9k1FhRUREss26devyqgqJqgIkcfnChQsLbrjhhm6TJk2a/eGHH340ZMiQNdddd13R2rVr7ZRTTtntD3/4w2ezZs36cOLEibPat2+/6fLLL18wduzYZTNnzvzwrLPOWgbw/vvvt37hhRfmPP300/9N3HdZWVm39u3bb5o9e/aHs2fP/rCkpGRl4vKbb755fs+ePdfNnDnzw7vuumv+WWedtXj8+PGdAb788sv8qVOntj3hhBOSbsW66qqrFnXt2nXDxIkTZ7/11luz61u/ZcuWXtPrqXLOOef0vOSSSyqnT5/+0YQJEz4599xzY2HuHW+55ZZPZ86c+eHkyZNntm3bdnOyGdOBTmuKiIhEqL7Tmq+99lqbTz75pOXw4cP7AmzYsMGGDh266v3332/ZtWvXDSNHjlwD0KlTp1oLkNGjR3/Vtm3bra5KnTRpUvtHHnlkbtV0YWHhprqylpSUrLrooot2/vzzzwsefPDBHUpKSpY1a9Zsi3XMrMarX2ubvz3eeOON9h9//HGrqulVq1blL1u2LK+4uHjVpZde2vOEE05YevLJJy/bbbfdVJyJiIhI43B3RowYsaJ6q9dbb73VKtmCp02bNjUWJ+5e031r63TCCSd8ec8993R67LHHOt13330V1Zd37dp14/Lly7eoL5YtW1ZQWFi4sUEHSoK7M2XKlI+qF5433HDDF0cfffTyJ598ssP+++/f7/nnn5+99957r23s46eKirMcFiuLtwA6E/weJD7yw6/rgEpgaUV5icYBkpwQK4sXAl3DyU21PNZUlJdkdYdkSR+jRo1aPW7cuF7Tp09vMWDAgHUrV67M++9//9ts0KBBaysrK5tPnDix9ciRI9csW7Ysr23btpvbt2+/adWqVUl1Wxo1atSK3/3ud13vu+++eQCLFy/OT2w969Chw6bVq1dvsa9zzz13yb777tuvS5cuG4YNG7ZVwTNgwIB1lZWVzd59992WQ4YMWTt79uzmM2fObFVcXPw1QJs2bTYtX748r1u3bkm9/rpez4gRI1b8+te/7nrddddVQnCl6v777//1jBkzWgwfPvzr4cOHf/3WW2+1mT59eksVZ5I2wg+aYUBvYHdgN6AnsBNBYZaMDbGy+GLgC4JirRL4GHgXmFpRXtJoV/GIpFqsLN4FKCa40XqPhEf38NEiyf2sIrjl1DygApiV8Pikorwko06jSCCZoS8aW1Wfs6rpgw8+ePntt9/+edX0TjvttPGuu+6qOOmkk3Zdv369AVx99dWfDxw4cN2DDz74yYUXXthr7dq1eS1bttw8adKk2WPGjFl50003devbt2//cePGLazr2DfeeOPCM844o1fv3r33zMvL8yuuuGLBaaed9lXV8h133HHT0KFDV/Xu3XvPgw8+ePldd901v2fPnht32223tWPHjv2qpn22atXK/+///m/uGWecEVu3bl1eQUGB33bbbZ927tx5E8Bpp522ZMyYMb27du26IZl+Z3W9nrvvvnvemWee2atPnz79N23aZPvuu+/K/fff/7Pf/OY3Xd988832eXl53qdPn6+PO+64jPpnSjc+zyKxsrgBewAHhI8RBEVZqs0DpiY8Xq8oL1nVBMcVqVesLF79PdGnCQ67HJgE/DN8fKDW5/T0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\n", "text/plain": [ "
" ] @@ -942,103 +888,103 @@ " \n", " \n", " \n", - " 15\n", - " Company AV\n", - " US6293775085\n", + " 11\n", + " Company L\n", + " BR0000000012\n", " Steel\n", - " 3.0769230769230775 delta_degree_Celsius\n", - " 3.2 delta_degree_Celsius\n", - " 0.14\n", + " 3.1959201019974492 percent\n", + " 1.88 delta_degree_Celsius\n", + " 0.15\n", " 3.08\n", " \n", " \n", - " 14\n", - " Company AW\n", - " US7134481081\n", + " 12\n", + " Company H\n", + " CN0000000008\n", " Steel\n", - " 3.0769230769230775 delta_degree_Celsius\n", - " 3.2 delta_degree_Celsius\n", - " 0.10\n", + " 3.1279218019549506 percent\n", + " 1.84 delta_degree_Celsius\n", + " 0.18\n", " 3.08\n", " \n", " \n", " 13\n", - " Company A\n", - " JP0000000001\n", + " Company E\n", + " SE0000000005\n", " Steel\n", - " 3.0769230769230775 delta_degree_Celsius\n", - " 3.2 delta_degree_Celsius\n", - " 1.07\n", + " 3.076923076923076 percent\n", + " 1.81 delta_degree_Celsius\n", + " 3.39\n", " 3.08\n", " \n", " \n", - " 12\n", - " Company B\n", - " NL0000000002\n", + " 15\n", + " Company G\n", + " CN0000000007\n", " Steel\n", - " 3.0769230769230775 delta_degree_Celsius\n", - " 3.2 delta_degree_Celsius\n", - " 1.51\n", + " 3.0259243518912022 percent\n", + " 1.78 delta_degree_Celsius\n", + " 0.05\n", " 3.08\n", " \n", " \n", - " 11\n", - " Company C\n", - " IT0000000003\n", + " 16\n", + " Company D\n", + " SE0000000004\n", " Steel\n", - " 3.0769230769230775 delta_degree_Celsius\n", - " 3.2 delta_degree_Celsius\n", - " 0.34\n", + " 2.991925201869953 percent\n", + " 1.76 delta_degree_Celsius\n", + " 0.48\n", " 3.08\n", " \n", " \n", - " 10\n", - " Company D\n", - " SE0000000004\n", + " 17\n", + " Company AV\n", + " US6293775085\n", " Steel\n", - " 3.0769230769230775 delta_degree_Celsius\n", - " 3.2 delta_degree_Celsius\n", - " 0.48\n", + " 2.991925201869953 percent\n", + " 1.76 delta_degree_Celsius\n", + " 0.14\n", " 3.08\n", " \n", " \n", - " 9\n", - " Company E\n", - " SE0000000005\n", + " 18\n", + " Company K\n", + " BR0000000011\n", " Steel\n", - " 3.0769230769230775 delta_degree_Celsius\n", - " 3.2 delta_degree_Celsius\n", - " 3.39\n", + " 2.9579260518487036 percent\n", + " 1.74 delta_degree_Celsius\n", + " 1.01\n", " 3.08\n", " \n", " \n", - " 8\n", - " Company F\n", - " NL0000000006\n", + " 19\n", + " Company C\n", + " IT0000000003\n", " Steel\n", - " 3.0769230769230775 delta_degree_Celsius\n", - " 3.2 delta_degree_Celsius\n", - " 0.11\n", + " 2.923926901827454 percent\n", + " 1.72 delta_degree_Celsius\n", + " 0.34\n", " 3.08\n", " \n", " \n", - " 7\n", - " Company G\n", - " CN0000000007\n", + " 21\n", + " Company B\n", + " NL0000000002\n", " Steel\n", - " 3.0769230769230775 delta_degree_Celsius\n", - " 3.2 delta_degree_Celsius\n", - " 0.05\n", + " 2.4989375265618357 percent\n", + " 1.47 delta_degree_Celsius\n", + " 1.51\n", " 3.08\n", " \n", " \n", - " 6\n", - " Company H\n", - " CN0000000008\n", + " 23\n", + " Company A\n", + " JP0000000001\n", " Steel\n", - " 3.0769230769230775 delta_degree_Celsius\n", - " 3.2 delta_degree_Celsius\n", - " 0.18\n", + " 2.022949426264343 percent\n", + " 1.19 delta_degree_Celsius\n", + " 1.07\n", " 3.08\n", " \n", " \n", @@ -1046,29 +992,29 @@ "" ], "text/plain": [ - " company_name company_id sector contribution \\\n", - "15 Company AV US6293775085 Steel 3.0769230769230775 delta_degree_Celsius \n", - "14 Company AW US7134481081 Steel 3.0769230769230775 delta_degree_Celsius \n", - "13 Company A JP0000000001 Steel 3.0769230769230775 delta_degree_Celsius \n", - "12 Company B NL0000000002 Steel 3.0769230769230775 delta_degree_Celsius \n", - "11 Company C IT0000000003 Steel 3.0769230769230775 delta_degree_Celsius \n", - "10 Company D SE0000000004 Steel 3.0769230769230775 delta_degree_Celsius \n", - "9 Company E SE0000000005 Steel 3.0769230769230775 delta_degree_Celsius \n", - "8 Company F NL0000000006 Steel 3.0769230769230775 delta_degree_Celsius \n", - "7 Company G CN0000000007 Steel 3.0769230769230775 delta_degree_Celsius \n", - "6 Company H CN0000000008 Steel 3.0769230769230775 delta_degree_Celsius \n", + " company_name company_id sector contribution \\\n", + "11 Company L BR0000000012 Steel 3.1959201019974492 percent \n", + "12 Company H CN0000000008 Steel 3.1279218019549506 percent \n", + "13 Company E SE0000000005 Steel 3.076923076923076 percent \n", + "15 Company G CN0000000007 Steel 3.0259243518912022 percent \n", + "16 Company D SE0000000004 Steel 2.991925201869953 percent \n", + "17 Company AV US6293775085 Steel 2.991925201869953 percent \n", + "18 Company K BR0000000011 Steel 2.9579260518487036 percent \n", + "19 Company C IT0000000003 Steel 2.923926901827454 percent \n", + "21 Company B NL0000000002 Steel 2.4989375265618357 percent \n", + "23 Company A JP0000000001 Steel 2.022949426264343 percent \n", "\n", - " temperature_score ownership_percentage portfolio_percentage \n", - "15 3.2 delta_degree_Celsius 0.14 3.08 \n", - "14 3.2 delta_degree_Celsius 0.10 3.08 \n", - "13 3.2 delta_degree_Celsius 1.07 3.08 \n", - "12 3.2 delta_degree_Celsius 1.51 3.08 \n", - "11 3.2 delta_degree_Celsius 0.34 3.08 \n", - "10 3.2 delta_degree_Celsius 0.48 3.08 \n", - "9 3.2 delta_degree_Celsius 3.39 3.08 \n", - "8 3.2 delta_degree_Celsius 0.11 3.08 \n", - "7 3.2 delta_degree_Celsius 0.05 3.08 \n", - "6 3.2 delta_degree_Celsius 0.18 3.08 " + " temperature_score ownership_percentage portfolio_percentage \n", + "11 1.88 delta_degree_Celsius 0.15 3.08 \n", + "12 1.84 delta_degree_Celsius 0.18 3.08 \n", + "13 1.81 delta_degree_Celsius 3.39 3.08 \n", + "15 1.78 delta_degree_Celsius 0.05 3.08 \n", + "16 1.76 delta_degree_Celsius 0.48 3.08 \n", + "17 1.76 delta_degree_Celsius 0.14 3.08 \n", + "18 1.74 delta_degree_Celsius 1.01 3.08 \n", + "19 1.72 delta_degree_Celsius 0.34 3.08 \n", + "21 1.47 delta_degree_Celsius 1.51 3.08 \n", + "23 1.19 delta_degree_Celsius 1.07 3.08 " ] }, "execution_count": 22, @@ -1110,7 +1056,7 @@ ], "metadata": { "kernelspec": { - "display_name": "Python 3", + "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, @@ -1124,7 +1070,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.8.3" + "version": "3.10.2" } }, "nbformat": 4, diff --git a/examples/quick_template_score_calc.ipynb b/examples/quick_template_score_calc.ipynb new file mode 100644 index 00000000..2615fe53 --- /dev/null +++ b/examples/quick_template_score_calc.ipynb @@ -0,0 +1,1070 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# ITR Tool - Quick Temperature Score Calculation\n", + "This notebook provides a simple example of the ITR Toolkit. It shows how to use it to calculate the temperature score for companies, aggregate them to a portfolio level to get the portfolio temperature score. \n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Getting started\n", + "Make sure you are running the notebook with the requirements installed available in the example folder" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "#If not already installed uncomment line below\n", + "#!pip install ITR" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": { + "tags": [] + }, + "outputs": [], + "source": [ + "import ITR\n", + "from ITR.data.excel import ExcelProviderProductionBenchmark, ExcelProviderIntensityBenchmark\n", + "from ITR.data.template import TemplateProviderCompany\n", + "from ITR.data.data_warehouse import DataWarehouse\n", + "from ITR.portfolio_aggregation import PortfolioAggregationMethod\n", + "from ITR.temperature_score import TemperatureScore\n", + "from ITR.interfaces import ETimeFrames, EScope\n", + "import pandas as pd\n", + "\n", + "from ITR.data.osc_units import ureg, Q_, PA_" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "1 CO2e\n", + "1 CO2e * gigametric_ton\n" + ] + } + ], + "source": [ + "one_co2 = ureg(\"CO2e\")\n", + "print(one_co2)\n", + "\n", + "one_Gt_co2 = ureg(\"Gt CO2e\")\n", + "print(one_Gt_co2)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Download the dummy data warehouse\n", + "\n", + "We have prepared dummy data for you to be able to run the tool as it is to familiarise yourself with how it works. To use your own data; please check out to the [Data Requirements section](https://github.com/os-c/ITR/blob/main/docs/DataRequirements.rst) of the technical documentation for more details on data requirements and formatting. \n", + "\n", + "*The dummy data may include some company names, but the data associated with those company names is completely random and any similarities with real world data is purely coincidental. \n" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [], + "source": [ + "import urllib.request\n", + "import os\n", + "\n", + "if not os.path.isdir(\"data\"):\n", + " os.mkdir(\"data\")\n", + "if not os.path.isfile(\"data/20220215 ITR Tool Sample Data.xlsx\"):\n", + " urllib.request.urlretrieve(\"https://github.com/os-climate/ITR/tree/develop-pint-steel-projections/examples/data/test_data_company.xlsx\", \"data/20220215 ITR Tool Sample Data.xlsx\")\n", + "if not os.path.isfile(\"data/OECM_EI_and_production_benchmarks.xlsx\"):\n", + " urllib.request.urlretrieve(\"https://https://github.com/os-climate/ITR/tree/develop-pint-steel-projections/examples/data/OECM_EI_and_production_benchmarks.xlsx\", \"data/OECM_EI_and_production_benchmarks.xlsx\")\n", + "if not os.path.isfile(\"utils.py\"):\n", + " urllib.request.urlretrieve(\"https://github.com/os-climate/ITR/tree/develop-pint-steel-projections/examples/utils.py\", \"utils.py\")\n", + "try: # Import statement when run in remote Jupyter servers from AWS Google etc..\n", + " from utils import collect_company_contributions, plot_grouped_statistics, anonymize, \\\n", + " plot_grouped_heatmap, print_grouped_scores, get_contributions_per_group\n", + "except: # Import statement when run locally\n", + " from utils import collect_company_contributions, plot_grouped_statistics, anonymize, \\\n", + " plot_grouped_heatmap, print_grouped_scores, get_contributions_per_group" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "##### Logging\n", + "The ITR module uses the Python standard library logging utilities to send log messages. The log level can be changed according to the user's needs." + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [], + "source": [ + "import logging\n", + "root_logger = logging.getLogger()\n", + "root_logger.setLevel(\"INFO\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Create a data provider\n", + "Data providers let you connect to the data source of your choice. In this case we are connecting to Excel as a data provider. " + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [], + "source": [ + "excel_production_bm = ExcelProviderProductionBenchmark(excel_path=\"data/OECM_EI_and_production_benchmarks.xlsx\")" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [], + "source": [ + "excel_EI_bm = ExcelProviderIntensityBenchmark(excel_path=\"data/OECM_EI_and_production_benchmarks.xlsx\",benchmark_temperature=Q_(1.5, ureg.delta_degC),\n", + " benchmark_global_budget=396 * ureg('Gt CO2'), is_AFOLU_included=False)" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": { + "tags": [] + }, + "outputs": [], + "source": [ + "template_company_data = TemplateProviderCompany(excel_path=\"data/20220215 ITR Tool Sample Data.xlsx\")" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": { + "tags": [] + }, + "outputs": [], + "source": [ + "template_provider = DataWarehouse(template_company_data, excel_production_bm, excel_EI_bm)\n", + "\n", + "# Fills in template_company_data._companies[0].projected_targets.S1S2" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Load your portfolio\n", + "In our case the portfolio is stored as a CSV file. The portfolio should at least have an \"id\" (the identifier of the company) and a \"proportion\" (the weight of the company in your portfolio e.g. the value of the shares you hold) column.\n", + "\n", + "Please see the technical documentation on [Data Legends](https://ofbdabv.github.io/ITR/Legends.html#) for details on data requirements." + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
company_namecompany_leicompany_idcompany_isininvestment_value
0AES Corp.2NUNNB7D43COUIRE5295US00130H1059US00130H1059112482
1ALLETE, Inc.549300NNLSIMY6Z8OT86US0185223007US018522300779808
2Alliant Energy5493009ML300G373MZ12US0188021085US0188021085197683
3Ameren Corp.XRZQ5S7HYJFPHJ78L959US0236081024US0236081024103668
4American Electric Power Co., Inc.1B4S6S7G0TW5EE83BO58US0255371017US0255371017238242
\n", + "
" + ], + "text/plain": [ + " company_name company_lei company_id \\\n", + "0 AES Corp. 2NUNNB7D43COUIRE5295 US00130H1059 \n", + "1 ALLETE, Inc. 549300NNLSIMY6Z8OT86 US0185223007 \n", + "2 Alliant Energy 5493009ML300G373MZ12 US0188021085 \n", + "3 Ameren Corp. XRZQ5S7HYJFPHJ78L959 US0236081024 \n", + "4 American Electric Power Co., Inc. 1B4S6S7G0TW5EE83BO58 US0255371017 \n", + "\n", + " company_isin investment_value \n", + "0 US00130H1059 112482 \n", + "1 US0185223007 79808 \n", + "2 US0188021085 197683 \n", + "3 US0236081024 103668 \n", + "4 US0255371017 238242 " + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# df_portfolio = pd.read_csv(\"data/example_portfolio.csv\", encoding=\"iso-8859-1\", sep=';')\n", + "\n", + "# df_portfolio.head(5)\n", + "df_portfolio = pd.read_excel(\"data/20220215 ITR Tool Sample Data.xlsx\", sheet_name=\"Portfolio\")\n", + "display(df_portfolio.head())" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "To load the data from the data provider, we have to pass a list of IPortfolioCompany instances. The module has a strict [data model](https://ofbdabv.github.io/ITR/autoapi/ITR/interfaces/index.html) to convert Pandas Dataframe to the right object types we supplied a utility function.\n" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [], + "source": [ + "companies = ITR.utils.dataframe_to_portfolio(df_portfolio)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Calculate the temperature scores\n", + "In the amended portfolio you'll find your original portfolio, amended with the emissions and the temperature score." + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [], + "source": [ + "temperature_score = TemperatureScore( \n", + " time_frames = [ETimeFrames.LONG], \n", + " scopes=[EScope.S1S2], \n", + " aggregation_method=PortfolioAggregationMethod.WATS # Options for the aggregation method are WATS, TETS, AOTS, MOTS, EOTS, ECOTS, and ROTS.\n", + ")\n", + "amended_portfolio = temperature_score.calculate(data_warehouse=template_provider, portfolio=companies)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "For every company the tool assigns a score for all the requested timeframe and scope combinations. For now the ITR methodolgy only supportt a long timeframe in combination with a S1S2 scope" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/Users/michael/opt/miniconda3/envs/jupyter/lib/python3.10/site-packages/pint_pandas/pint_array.py:648: UnitStrippedWarning: The unit of the quantity is stripped when downcasting to ndarray.\n", + " return np.array(qtys, dtype=\"object\", copy=copy)\n", + "/Users/michael/opt/miniconda3/envs/jupyter/lib/python3.10/site-packages/pint_pandas/pint_array.py:648: UnitStrippedWarning: The unit of the quantity is stripped when downcasting to ndarray.\n", + " return np.array(qtys, dtype=\"object\", copy=copy)\n" + ] + }, + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
company_nametime_framescopetemperature_score
0AES Corp.LONGS1S25.45
1ALLETE, Inc.LONGS1S21.87
2Alliant EnergyLONGS1S22.1
3Ameren Corp.LONGS1S22.18
4American Electric Power Co., Inc.LONGS1S21.95
5Avangrid, Inc.LONGS1S21.74
6Black Hills Corp.LONGS1S21.99
7CARPENTER TECHNOLOGY CORPLONGS1S21.72
8CMS Energy Corp.LONGS1S21.93
9COMMERCIAL METALS COLONGS1S23.2
10Cleco Partners LPLONGS1S21.19
11Consolidated Edison, Inc.LONGS1S21.65
12DTE EnergyLONGS1S22.85
13Dominion EnergyLONGS1S21.84
14Duke Energy Corp.LONGS1S22.12
15Entergy Corp.LONGS1S22.48
16Evergy, Inc.LONGS1S22.07
17Eversource EnergyLONGS1S21.19
18Exelon Corp.LONGS1S22.6
19FirstEnergy Corp.LONGS1S21.88
20Fortis, Inc.LONGS1S21.73
21GERDAU S.A.LONGS1S21.64
22Hawaiian Electric Industries, Inc.LONGS1S22.33
23MDU Resources GroupLONGS1S22.18
24NUCOR CORPLONGS1S21.43
25National Grid PLCLONGS1S21.88
26Northwestern Corp.LONGS1S21.89
27OG&E Energy Corp.LONGS1S22.25
28PG&E Corp.LONGS1S21.82
29PNM Resources, Inc.LONGS1S21.74
30POSCOLONGS1S21.72
\n", + "
" + ], + "text/plain": [ + " company_name time_frame scope temperature_score\n", + "0 AES Corp. LONG S1S2 5.45\n", + "1 ALLETE, Inc. LONG S1S2 1.87\n", + "2 Alliant Energy LONG S1S2 2.1\n", + "3 Ameren Corp. LONG S1S2 2.18\n", + "4 American Electric Power Co., Inc. LONG S1S2 1.95\n", + "5 Avangrid, Inc. LONG S1S2 1.74\n", + "6 Black Hills Corp. LONG S1S2 1.99\n", + "7 CARPENTER TECHNOLOGY CORP LONG S1S2 1.72\n", + "8 CMS Energy Corp. LONG S1S2 1.93\n", + "9 COMMERCIAL METALS CO LONG S1S2 3.2\n", + "10 Cleco Partners LP LONG S1S2 1.19\n", + "11 Consolidated Edison, Inc. LONG S1S2 1.65\n", + "12 DTE Energy LONG S1S2 2.85\n", + "13 Dominion Energy LONG S1S2 1.84\n", + "14 Duke Energy Corp. LONG S1S2 2.12\n", + "15 Entergy Corp. LONG S1S2 2.48\n", + "16 Evergy, Inc. LONG S1S2 2.07\n", + "17 Eversource Energy LONG S1S2 1.19\n", + "18 Exelon Corp. LONG S1S2 2.6\n", + "19 FirstEnergy Corp. LONG S1S2 1.88\n", + "20 Fortis, Inc. LONG S1S2 1.73\n", + "21 GERDAU S.A. LONG S1S2 1.64\n", + "22 Hawaiian Electric Industries, Inc. LONG S1S2 2.33\n", + "23 MDU Resources Group LONG S1S2 2.18\n", + "24 NUCOR CORP LONG S1S2 1.43\n", + "25 National Grid PLC LONG S1S2 1.88\n", + "26 Northwestern Corp. LONG S1S2 1.89\n", + "27 OG&E Energy Corp. LONG S1S2 2.25\n", + "28 PG&E Corp. LONG S1S2 1.82\n", + "29 PNM Resources, Inc. LONG S1S2 1.74\n", + "30 POSCO LONG S1S2 1.72" + ] + }, + "execution_count": 13, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "amended_portfolio[['company_name', 'time_frame', 'scope', 'temperature_score']]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Calculate the aggregated temperature score\n", + "Calculate an aggregated temperature score. This can be done using different aggregation methods. Here we'll use the \"Weighted Average Temperature Score\" (WATS) by initializing the TemperatureScore Object with PortfolioAggregationMethod.WATS. The temperature scores are calculated per time-frame/scope combination.\n" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [], + "source": [ + "aggregated_scores = temperature_score.aggregate_scores(amended_portfolio)" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "2.0746056439434017 delta_degree_Celsius" + ], + "text/latex": [ + "$2.0746056439434017\\ \\mathrm{delta\\_degree\\_Celsius}$" + ], + "text/plain": [ + "2.0746056439434017 " + ] + }, + "execution_count": 15, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "aggregated_scores.long.S1S2.all.score" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "The first analysis of your portfolio could be to understand if you have any particular hotspots in your portfolio. We can do that by analysing different groupings of companies.\n", + "\n", + "The tool allows you to calculate temperature scores for _groups_ of companies. In this example we group the scores by sector and region, and leave the timeframe and scope unchanged. Any categorical variable in the data provided by you or your data provider (in the `test_company_data.xlsx` imported above) can be used as grouping variable, e.g. sectors, industries, regions, countries, market cap buckets, as well as the additional fields you imported via the portfolio data.\n", + "\n", + "You can change the variable by which the data is grouped by replacing the fourth line in the following cell. For example, replacing \"grouping=['sector', 'region']\" by \"grouping=['sector', 'country']\" would result in temperature scores per sector per country. \n", + "If you want to change the time frame as well, please refer to the section 'Calculate the company temperature scores' above.\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": { + "scrolled": true + }, + "outputs": [], + "source": [ + "grouping = ['sector', 'region']\n", + "temperature_score.grouping = grouping\n", + "grouped_portfolio = temperature_score.calculate(data_warehouse=template_provider, portfolio=companies)\n", + "grouped_aggregations = temperature_score.aggregate_scores(grouped_portfolio)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "The aggregated scores can then be used, for example, to show the relation between sectors and regions with respect to temperature score.\n", + "A visualization of this relation is shown in the heatmap below. The grey fields indicate that the portfolio contains no assest for those combinations.\n", + "\n", + "##### Quick analysis\n", + "\n", + "We can see here that our Suth American Steelis in reasonable shape. While Asian Steel can be improved as shown in the drill down below the graph\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "analysis_parameters = ([ETimeFrames.LONG], [EScope.S1S2], grouping)\n", + "plot_grouped_heatmap(grouped_aggregations, analysis_parameters)" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
groupcompany_namecompany_idtemperature_scorecontribution_relative
0Steel-AsiaPOSCOKR70054900081.72 delta_degree_Celsius100.0 percent
\n", + "
" + ], + "text/plain": [ + " group company_name company_id temperature_score \\\n", + "0 Steel-Asia POSCO KR7005490008 1.72 delta_degree_Celsius \n", + "\n", + " contribution_relative \n", + "0 100.0 percent " + ] + }, + "execution_count": 18, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "region = 'Asia'\n", + "sector = 'Steel'\n", + "group = sector + '-' + region\n", + "group_contributions = get_contributions_per_group(grouped_aggregations, analysis_parameters, group)\n", + "group_contributions.round(2)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Sector analysis\n", + "\n", + "Sector analysis may help us with bringing some clarity into our analysis from the heatmap above. In order to identify the companies that your portfolio would most benefit from engaging with, we can start with identifying the biggest contributing sectors to the portfolio's temperature score, as in our example below.\n", + "\n", + "Contributions can be identified on an individual company level, as well as contributions from companies grouped by one of their characteristics, e.g. sector or region. The exact definitions of companies' contributions to the portfolio temperature scores depend on the selected aggregation method.\n", + "\n", + "You can group companies on any categorical variable (e.g. sectors, countries, market cap buckets, investment strategies, etc) you provide through your dataprovider, in this example in the test_company_data.xlsx imported above.\n", + "\n", + "For our analysis we select one time-frame (LONG) and one scope (S1+S2) and group the outcomes on sector and compare AUM to temperature score contribution. We also then display the sector temperature scores.\n", + "\n", + "##### Quick analysis\n", + "\n", + "In this example we can see that both sectors Steel and Electricity are scoring above 2.0C. \n" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/Users/michael/opt/miniconda3/envs/jupyter/lib/python3.10/site-packages/pandas/core/dtypes/cast.py:1981: UnitStrippedWarning: The unit of the quantity is stripped when downcasting to ndarray.\n", + " result[:] = values\n" + ] + } + ], + "source": [ + "time_frames = [ETimeFrames.LONG]\n", + "scopes = [EScope.S1S2]\n", + "grouping = ['sector']\n", + "analysis_parameters = (time_frames, scopes, grouping)\n", + "\n", + "temperature_score = TemperatureScore(time_frames=time_frames,\n", + " scopes=scopes,\n", + " grouping=grouping)\n", + "amended_portfolio = temperature_score.calculate(data_warehouse=template_provider, portfolio=companies)\n", + "aggregated_portfolio = temperature_score.aggregate_scores(amended_portfolio)\n", + "company_contributions = collect_company_contributions(aggregated_portfolio, amended_portfolio, analysis_parameters)" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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zwlarpYT9If79rjuPo0gTM4Kz7nZpVB3n07ws303Qcv3SIIbczZmUFNN72cRaSJMfUlFRERE4kMtZyIiIiIxonAmIiIiEiMKZyIiIiIxonAmIiIiEiMKZyIiIiIxonAmIiIiEiMKZyIiIiIxonAmIiIiEiMKZyIiIiIxonAmIiIiEiMKZyIiIiIxonAmIiIiEiMKZyIiIiIxonAmIiIiEiMKZyIiIiIxonAmIiIiEiMKZyIiIiIxonAmIiIiEiMtoi5AREQkKh9++GG3Fi1aPAjshRos8kU5MKWsrOzc/fbbb2HUxVRF4UxERPJWixYtHtxhhx326Nq167JmzZp51PVI9pWXl9uiRYv6f/PNNw8Cx0ZdT1X0X4KIiOSzvbp27bpSwSx/NGvWzLt27bqCoLU0lhTOREQknzVTMMs/4fc8thkotoWJiIiI5CP1ORMREQklkqn9GvJ4JcVFH9a2TfPmzffr06fPuornJ5xwwtKbb775myFDhux+++23zz7kkEPW1uWc7777btvZs2e3OvXUU1dUtX7ChAnbPPzww53HjBkzu7pjDB06dLenn376S4AHH3xw+2QyuSjT87/00ksd7rjjjoI333xzZsWyE088MXHMMcesOPvss5f99re/7faLX/xicYcOHcrTz9WlS5dN22yzzb5r1679b0lJScsLL7yw5yuvvDKr8ut57LHHOn366adtb7755m8yrSnXKJyJiIhEqHXr1uXTpk37rKGON3HixG0mTpzYrqpwVlpayiGHHLK2tsA3fvz4mQDTp09v9dBDD3WrSzirzf33319w3nnnLa0IZxXnSpdIJEpfeeWVWbDl6zn99NNXAFUGz6ZClzVFRERi7plnnuk4cODAfv37999jxIgRu65YsaIZwPjx47fZd999++2+++7999577z2WLFnS/JZbbtnpxRdf3K5fv379//znP293+eWX7zR69OidDzrooD4nnHDCLi+99FKHQw89dDeAFStWNDvppJMSffv27d+3b9/+Y8aM2Rage/fue8+fP7/FFVdc0WP27Nmt+/Xr1/+CCy7ocfzxx+/y6KOPbltR17HHHrvLY4891inT13HTTTd1W7hwYcuhQ4f23X///fumnyt9u+nTp7fq06fPnuvXr7fKr+euu+7q/OMf/7gXwLx581ocddRRvffaa6899tprrz1effXVdgCpVKp9v379+vfr16//Hnvs0X/ZsmU5lXdyqlgREZGmZsOGDc0qgkRFAElfP3/+/BY333zzjhMmTJjx2WefTR00aNDaG2+8sWD9+vV2+umn977zzju/nj59+mfjx4+f3rFjx01XX331vJEjRy6bNm3aZ+edd94ygMmTJ28zbty4mS+++OKX6cdOJpM7duzYcdOMGTM+mzFjxmdFRUWr0tffcccdc3r27Llh2rRpn91///1zzjvvvEVjxozpDLBkyZLmH374YftTTjkl41as6667bmG3bt1Kx48fP+P999+fUdv2bdq08apeT4ULLrig5+WXX75gypQpU5999tkvLrzwwkRY9w533XXXV9OmTfvsvffem9a+ffvyTGuMA13WFBERiVBtlzXfeuutdl988UWbIUOG9AMoLS21/fbbb/XkyZPbdOvWrXTo0KFrAbbffvtqA8jw4cOXt2/ffou7UidMmNDxySefnFXxvGvXrptqqrWoqGj1ZZddtvPcuXNbPPbYY9sVFRUta9my5WbbmFmVd79Wt7w+3nnnnY6ff/5524rnq1evbr5s2bJmhYWFq6+88sqep5xyytLRo0cv6927t8KZiIiINAx35+CDD15ZudXr/fffb5tp4GnXrl2V4cTdMbM61XPKKacsefDBB7d/+umnt3/44YdLKq/v1q1b2YoVKzbLF8uWLWvRtWvXsjqdKAPuzsSJE6dWDp4333zzN8cff/yK559/vtOBBx64xyuvvDJj3333Xd/Q588WhbM8lkimWgEdgG3CRzugDVAGbATWAquBFSXFRWuiqlOksSSSqWZAF2A7oDXQiu+6f5QRdEJeSvCeyKn/xCV3DRs2bM0VV1zRa8qUKa332muvDatWrWr25ZdfthwwYMD6BQsWtBo/fvw2Q4cOXbts2bJm7du3L+/YseOm1atXZ9RtadiwYSt///vfd3v44YdnAyxatKh5eutZp06dNq1Zs2azY1144YWL999//z26dOlSOnjw4C0Cz1577bVhwYIFLT/66KM2gwYNWj9jxoxW06ZNa1tYWLgOoF27dptWrFjRbMcdd8zo9df0eg4++OCVt956a7cbb7xxAQR3qh544IHrPv3009ZDhgxZN2TIkHXvv/9+uylTprRROJPYSCRTnYBBwABgF6BX+OgJdK3DcVYCs9MeJcAnwEclxUVzG7ZqkexJJFPb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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "plot_grouped_statistics(aggregated_portfolio, company_contributions, analysis_parameters)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can use what we learned from this analysis to drill into a few of the highest contributing scoring sectors to see which\n", + "companies are the biggest contributors on the sector level. Considering the Steel sector, for instance, in the\n", + "table below.\n" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
company_namecompany_idsectorcontributiontemperature_scoreownership_percentageportfolio_percentage
6POSCOKR7005490008Steel4.731036024254013 percent1.72 delta_degree_Celsius0.005.71
8COMMERCIAL METALS COUS2017231034Steel4.642153243677908 percent3.2 delta_degree_Celsius0.013.01
9GERDAU S.A.US3737371050Steel4.245265550388852 percent1.64 delta_degree_Celsius0.015.37
16NUCOR CORPUS6703461052Steel3.511963769116571 percent1.43 delta_degree_Celsius0.005.10
19CARPENTER TECHNOLOGY CORPUS1442851036Steel2.239177614025693 percent1.72 delta_degree_Celsius0.012.70
\n", + "
" + ], + "text/plain": [ + " company_name company_id sector contribution \\\n", + "6 POSCO KR7005490008 Steel 4.731036024254013 percent \n", + "8 COMMERCIAL METALS CO US2017231034 Steel 4.642153243677908 percent \n", + "9 GERDAU S.A. US3737371050 Steel 4.245265550388852 percent \n", + "16 NUCOR CORP US6703461052 Steel 3.511963769116571 percent \n", + "19 CARPENTER TECHNOLOGY CORP US1442851036 Steel 2.239177614025693 percent \n", + "\n", + " temperature_score ownership_percentage portfolio_percentage \n", + "6 1.72 delta_degree_Celsius 0.00 5.71 \n", + "8 3.2 delta_degree_Celsius 0.01 3.01 \n", + "9 1.64 delta_degree_Celsius 0.01 5.37 \n", + "16 1.43 delta_degree_Celsius 0.00 5.10 \n", + "19 1.72 delta_degree_Celsius 0.01 2.70 " + ] + }, + "execution_count": 21, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "sector_contributions = company_contributions[['company_name', 'company_id', 'sector', 'contribution', 'temperature_score', 'ownership_percentage', 'portfolio_percentage']]\n", + "sector_contributions.loc[sector_contributions['sector'] == 'Steel'][:10].round(2)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Save your data for further analysis\n", + "To take your analysis outside of this notebook and for example for internal and client reporting, you can export all data to Excel and the clipboard for pasting into and analysing in other applications.\n", + "\n", + "If you run the ITR tool locally or from Google Colab, you:\n", + "- Specify the filenames of the output files in the cell below, e.g. change 'data_dump.xlsx' in the first line to 'TS_output.xlsx'\n", + "- Run the cell below" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "metadata": { + "pycharm": { + "name": "#%%\n" + } + }, + "outputs": [], + "source": [ + "data_dump_filename = 'data_dump.xlsx'\n", + "amended_portfolio.set_index(['company_name', 'company_id']).to_excel(data_dump_filename)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.10.2" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/test/test_excel_provider.py b/test/test_excel_provider.py index 0f67139a..6f0e6478 100644 --- a/test/test_excel_provider.py +++ b/test/test_excel_provider.py @@ -159,8 +159,8 @@ def test_get_company_data(self): self.assertEqual(company_2.company_name, "Company AH") self.assertEqual(company_1.company_id, "US0079031078") self.assertEqual(company_2.company_id, "US00724F1012") - self.assertAlmostEqual(company_1.ghg_s1s2, Q_(104827858.636039, ureg('GJ'))) - self.assertAlmostEqual(company_2.ghg_s1s2, Q_(598937001.892059, ureg('GJ'))) + self.assertAlmostEqual(company_1.ghg_s1s2, Q_(104827858.636039, ureg('t CO2'))) + self.assertAlmostEqual(company_2.ghg_s1s2, Q_(598937001.892059, ureg('t CO2'))) self.assertAlmostEqual(company_1.cumulative_budget, Q_(1362284467.0830, ureg('t CO2')), places=4) self.assertAlmostEqual(company_2.cumulative_budget, Q_(2262242040.68059, ureg('t CO2')), places=4) self.assertAlmostEqual(company_1.cumulative_target, Q_(3769096510.09909, ureg('t CO2')), places=4) From e07cabbc7468790c72659f5aa7cc30a76701fc8b Mon Sep 17 00:00:00 2001 From: MichaelTiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> Date: Sat, 26 Feb 2022 05:34:52 -0500 Subject: [PATCH 120/345] Add PPL data and targets One more row of data! Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- .../data/20220215 ITR Tool Sample Data.xlsx | Bin 77694 -> 78097 bytes .../inputs/20220215 ITR Tool Sample Data.xlsx | Bin 77694 -> 78097 bytes 2 files changed, 0 insertions(+), 0 deletions(-) diff --git a/examples/data/20220215 ITR Tool Sample Data.xlsx b/examples/data/20220215 ITR Tool Sample Data.xlsx index 8ef5bef5080cdb43fb2184e7ca2f7a45a7404480..561779796a57a6d54bfb88c22c09ca28b9f8deed 100644 GIT binary patch delta 26937 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%0Ai%A|k z!QQvuj0%_HAc6RmbRsON`G|*y;yTTL!sj<9p#u~!;U#zSzBtI;FnEbkP>^%V{_KWf zZRKJu>tN;R_Ge<*i$!(!St+77n~zD5Gt08Ye1K$g4RuqmZG)HvHGslULG_~k@-6J1 zk3(}we%ZoV6;J3}x3B$tOBR|x3Lo`Udm2_ZeHKyS3ZKraq*xx(zZQtUD1Yrmj(-@a zEkSVvch!$Cl(eN=UF&%5-3gwL(HwoIkDu{a?^@*P>CGg=c8fV|R9)M`C3m!<^}?%t zne5l@!m6&Rx^f+=Yh6&JA6Z6RX&iq4v4#$_SFYC zX(EepB9r6H<~Ghl0iqX}#P}ae5;d0*3~bV#pugzcrt5iC)E!D&Doz;b_#=W4w0uiz-cVar?-$QqlQf-tnijVizTQY z-v&{fKHdp(UAu3cApBr40oD|ol^0X^<4hv+xYDIpc~i`1=<@_s>3?#ZAZ~iZoo&R; z?Isgj2a=sBqT*mzpIm|CDwYXMN}mGT!+QaxehkM!=51YTfS!ec|CCZXe=x1h7`9wV ztdz|s>>EF~^H-MN*@-5<1GZX|yjUWPB7+3?Nj z*!%-S4nScbazOwh+W+d?`X4KDUH)oB_I8oe{@>3y^Z#ljF8TwLL-njg7_tH+QP1lU zX{-PS+CTqF5y%Fj8QF10_OEZqGxQF`EGs|?wQ~%?3kJ|2c-Q~}sNLfTJ2s@6%%y*r zN#=_{gbE9QC`n|A2=8Cy!v`cBISlYk%df*pc!|>wo2N*MNu)b^rv`e*=l6 zLtuab5WoW>2n?V_sDY6{p09tUvi}fjyMKM$2P5^pJ@`v-aUco!@n7Nvl0aL$KuHQZ zCquMx03c{Rmncb7cVviPe_$ln2p9w)iN^l$hlvba3PB>|PymPq2;d2t836DP6bFhd z!hc>^02Gv5R1_3s+xcII85%+i3Xnj(!$9~$0ph6GIEZE_fR*-to7#UxWbhC_{viDc z5w)BE5aKBeX^RQbU!wXC5lDjAfFThR% z;N}8A&{^mJD2OT=06iiANuqKvAWFFaD(E~+NOn5|lKtnNAlfLA2?PcJq6)M8)nLsH MAjhNuA>Bjyf2B_(od5s; delta 26454 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 kzalIV1!09|H1{{R30 diff --git a/test/inputs/20220215 ITR Tool Sample Data.xlsx b/test/inputs/20220215 ITR Tool Sample Data.xlsx index 8ef5bef5080cdb43fb2184e7ca2f7a45a7404480..561779796a57a6d54bfb88c22c09ca28b9f8deed 100644 GIT binary patch delta 26937 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%0Ai%A|k z!QQvuj0%_HAc6RmbRsON`G|*y;yTTL!sj<9p#u~!;U#zSzBtI;FnEbkP>^%V{_KWf zZRKJu>tN;R_Ge<*i$!(!St+77n~zD5Gt08Ye1K$g4RuqmZG)HvHGslULG_~k@-6J1 zk3(}we%ZoV6;J3}x3B$tOBR|x3Lo`Udm2_ZeHKyS3ZKraq*xx(zZQtUD1Yrmj(-@a zEkSVvch!$Cl(eN=UF&%5-3gwL(HwoIkDu{a?^@*P>CGg=c8fV|R9)M`C3m!<^}?%t zne5l@!m6&Rx^f+=Yh6&JA6Z6RX&iq4v4#$_SFYC zX(EepB9r6H<~Ghl0iqX}#P}ae5;d0*3~bV#pugzcrt5iC)E!D&Doz;b_#=W4w0uiz-cVar?-$QqlQf-tnijVizTQY z-v&{fKHdp(UAu3cApBr40oD|ol^0X^<4hv+xYDIpc~i`1=<@_s>3?#ZAZ~iZoo&R; z?Isgj2a=sBqT*mzpIm|CDwYXMN}mGT!+QaxehkM!=51YTfS!ec|CCZXe=x1h7`9wV ztdz|s>>EF~^H-MN*@-5<1GZX|yjUWPB7+3?Nj z*!%-S4nScbazOwh+W+d?`X4KDUH)oB_I8oe{@>3y^Z#ljF8TwLL-njg7_tH+QP1lU zX{-PS+CTqF5y%Fj8QF10_OEZqGxQF`EGs|?wQ~%?3kJ|2c-Q~}sNLfTJ2s@6%%y*r zN#=_{gbE9QC`n|A2=8Cy!v`cBISlYk%df*pc!|>wo2N*MNu)b^rv`e*=l6 zLtuab5WoW>2n?V_sDY6{p09tUvi}fjyMKM$2P5^pJ@`v-aUco!@n7Nvl0aL$KuHQZ zCquMx03c{Rmncb7cVviPe_$ln2p9w)iN^l$hlvba3PB>|PymPq2;d2t836DP6bFhd z!hc>^02Gv5R1_3s+xcII85%+i3Xnj(!$9~$0ph6GIEZE_fR*-to7#UxWbhC_{viDc z5w)BE5aKBeX^RQbU!wXC5lDjAfFThR% z;N}8A&{^mJD2OT=06iiANuqKvAWFFaD(E~+NOn5|lKtnNAlfLA2?PcJq6)M8)nLsH MAjhNuA>Bjyf2B_(od5s; delta 26454 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 kzalIV1!09|H1{{R30 From bbb5510681640de9c2aff11c0ddc460923e70d37 Mon Sep 17 00:00:00 2001 From: David Kroon Date: Sun, 27 Feb 2022 12:28:24 +0100 Subject: [PATCH 121/345] Cleanup and add base year production data to test data json file Signed-off-by: David Kroon Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- ITR/data/template.py | 141 +++++++++++++------------ ITR/interfaces.py | 11 +- test/inputs/json/fundamental_data.json | 30 ++++++ test/test_base_providers.py | 14 +-- test/test_interfaces.py | 5 +- test/test_portfolio_aggregation.py | 8 +- test/test_template_provider.py | 1 - 7 files changed, 122 insertions(+), 88 deletions(-) diff --git a/ITR/data/template.py b/ITR/data/template.py index 15777342..773e0f04 100644 --- a/ITR/data/template.py +++ b/ITR/data/template.py @@ -1,22 +1,21 @@ -import warnings # needed until apply behaves better with Pint quantities in arrays +import warnings # needed until apply behaves better with Pint quantities in arrays from typing import Type, List, Optional import pandas as pd import numpy as np - - +import logging import pint -ureg = pint.get_application_registry() -Q_ = ureg.Quantity - from pydantic import ValidationError -from ITR.data.base_providers import BaseCompanyDataProvider, \ - BaseProviderIntensityBenchmark, EITargetProjector + +from ITR.data.base_providers import BaseCompanyDataProvider from ITR.configs import ColumnsConfig, TemperatureScoreConfig, VariablesConfig, TabsConfig from ITR.interfaces import ICompanyData, EScope, \ IHistoricEmissionsScopes, \ - IProductionRealization, IHistoricEIScopes, IHistoricData, ITargetData, IEmissionRealization, IEIRealization, IProjection + IProductionRealization, IHistoricEIScopes, IHistoricData, ITargetData, IEmissionRealization, IEIRealization, \ + IProjection + +ureg = pint.get_application_registry() +Q_ = ureg.Quantity -import logging class TemplateProviderCompany(BaseCompanyDataProvider): """ @@ -32,7 +31,6 @@ def __init__(self, excel_path: str, column_config: Type[ColumnsConfig] = ColumnsConfig, tempscore_config: Type[TemperatureScoreConfig] = TemperatureScoreConfig): self._companies = self._convert_from_template_company_data(excel_path) - # self.historic_years = None super().__init__(self._companies, column_config, tempscore_config) def _calculate_target_projections(self, @@ -89,15 +87,15 @@ def _convert_from_template_company_data(self, excel_path: str) -> List[ICompanyD :param excel_path: file path to excel file :return: List of ICompanyData objects """ - + def _fixup_name(x): prefix, _, suffix = x.partition('_') suffix = suffix.replace('ghg_', '') - if suffix!='production': + if suffix != 'production': suffix = suffix.upper() return f"{suffix}-{prefix}" - - df_company_data = pd.read_excel(excel_path, sheet_name=None, skiprows=0) + + df_company_data = pd.read_excel(excel_path, sheet_name=None, skiprows=0) self._check_company_data(df_company_data) input_data_sheet = TabsConfig.TEMPLATE_INPUT_DATA @@ -105,39 +103,45 @@ def _fixup_name(x): input_data_sheet = "Test input data" # TODO: Fix market_cap column naming inconsistency - df_company_data[input_data_sheet].rename(columns={'revenue':'company_revenue', 'market_cap':'company_market_cap', - 'ev':'company_enterprise_value', 'evic':'company_ev_plus_cash', - 'assets':'company_total_assets'}, inplace=True) + df_company_data[input_data_sheet].rename( + columns={'revenue': 'company_revenue', 'market_cap': 'company_market_cap', + 'ev': 'company_enterprise_value', 'evic': 'company_ev_plus_cash', + 'assets': 'company_total_assets'}, inplace=True) - df_fundamentals = df_company_data[input_data_sheet].set_index(ColumnsConfig.COMPANY_ID, drop=False).convert_dtypes() + df_fundamentals = df_company_data[input_data_sheet].set_index(ColumnsConfig.COMPANY_ID, + drop=False).convert_dtypes() # GH https://github.com/pandas-dev/pandas/issues/46044 df_fundamentals.company_id = df_fundamentals.company_id.astype('object') - + company_ids = df_fundamentals[ColumnsConfig.COMPANY_ID].unique() # The nightmare of naming columns 20xx_metric instead of metric_20xx...and potentially dealing with data from 1990s... historic_columns = [col for col in df_fundamentals.columns if col[:1].isdigit()] historic_scopes = ['S1', 'S2', 'S3', 'S1S2', 'S1S2S3', 'production'] - df_historic = df_fundamentals[['company_id'] + historic_columns].dropna(axis=1,how='all') + df_historic = df_fundamentals[['company_id'] + historic_columns].dropna(axis=1, how='all') df_fundamentals = df_fundamentals[df_fundamentals.columns.difference(historic_columns, sort=False)] # df_fundamentals now ready for conversion to list of models - - df_historic = df_historic.rename(columns={col:_fixup_name(col) for col in historic_columns}) - df = pd.wide_to_long(df_historic, historic_scopes, i='company_id', j='year', sep='-', suffix='\d+').reset_index() + + df_historic = df_historic.rename(columns={col: _fixup_name(col) for col in historic_columns}) + df = pd.wide_to_long(df_historic, historic_scopes, i='company_id', j='year', sep='-', + suffix='\d+').reset_index() df2 = (df.pivot(index='company_id', columns='year', values=historic_scopes) .stack(level=0) .reset_index() - .rename(columns={'level_1':ColumnsConfig.SCOPE}) + .rename(columns={'level_1': ColumnsConfig.SCOPE}) .set_index('company_id')) - df2.loc[df2[ColumnsConfig.SCOPE]=='production', ColumnsConfig.VARIABLE] = VariablesConfig.PRODUCTIONS - df2.loc[df2[ColumnsConfig.SCOPE]!='production', ColumnsConfig.VARIABLE] = VariablesConfig.EMISSIONS + df2.loc[df2[ColumnsConfig.SCOPE] == 'production', ColumnsConfig.VARIABLE] = VariablesConfig.PRODUCTIONS + df2.loc[df2[ColumnsConfig.SCOPE] != 'production', ColumnsConfig.VARIABLE] = VariablesConfig.EMISSIONS df3 = df2.reset_index().set_index(['company_id', 'variable', 'scope']) - df3 = pd.concat([df3.xs(VariablesConfig.PRODUCTIONS,level=1,drop_level=False) - .apply(lambda x: x.map(lambda y: Q_(y, df_fundamentals.loc[df_fundamentals.company_id==x.name[0], - 'production_metric'].squeeze())), axis=1), - df3.xs(VariablesConfig.EMISSIONS,level=1,drop_level=False) - .apply(lambda x: x.map(lambda y: Q_(y, df_fundamentals.loc[df_fundamentals.company_id==x.name[0], - 'emissions_metric'].squeeze())), axis=1)]) - df4 = df3.xs(VariablesConfig.EMISSIONS,level=1) / df3.xs((VariablesConfig.PRODUCTIONS,'production'),level=[1,2]) + df3 = pd.concat([df3.xs(VariablesConfig.PRODUCTIONS, level=1, drop_level=False) + .apply( + lambda x: x.map(lambda y: Q_(y, df_fundamentals.loc[df_fundamentals.company_id == x.name[0], + 'production_metric'].squeeze())), axis=1), + df3.xs(VariablesConfig.EMISSIONS, level=1, drop_level=False) + .apply(lambda x: x.map( + lambda y: Q_(y, df_fundamentals.loc[df_fundamentals.company_id == x.name[0], + 'emissions_metric'].squeeze())), axis=1)]) + df4 = df3.xs(VariablesConfig.EMISSIONS, level=1) / df3.xs((VariablesConfig.PRODUCTIONS, 'production'), + level=[1, 2]) df4['variable'] = VariablesConfig.EMISSIONS_INTENSITIES df4 = df4.reset_index().set_index(['company_id', 'variable', 'scope']) df5 = pd.concat([df3, df4]) @@ -149,11 +153,11 @@ def _fixup_name(x): if "Test target data" in df_company_data: input_target_sheet = "Test target data" df_target_data = df_company_data[input_target_sheet].set_index('company_id').convert_dtypes() - + # TODO: need to fix Pydantic definition or data to allow optional int. In the mean time... df_target_data.loc[df_target_data.target_start_year.isna(), 'target_start_year'] = 2020 df_target_data.loc[df_target_data.netzero_year.isna(), 'netzero_year'] = 2050 - + # company_id, netzero_year, target_type, target_scope, target_start_year, target_base_year, target_base_year_qty, target_base_year_unit, target_year, target_reduction_ambition # df_target_data now ready for conversion to model for each company return self._company_df_to_model(df_fundamentals, df_target_data, df_historic_data) @@ -191,10 +195,10 @@ def _company_df_to_model(self, df_fundamentals: pd.DataFrame, # In this world (different from excel.py) we initialize projected_intensities and projected_targets # in a later step, after we know we have valid benchmark data company_id = company_data[ColumnsConfig.COMPANY_ID] - + # the ghg_s1s2 and ghg_s3 variables are values "as of" the financial data # TODO pull ghg_s1s2 and ghg_s3 from historic data as appropriate - + # v = df_fundamentals[df_fundamentals[ColumnsConfig.COMPANY_ID]==company_id][ColumnsConfig.GHG_SCOPE12].squeeze() # company_data[ColumnsConfig.GHG_SCOPE12] = Q_(v or np.nan, ureg(units)) # v = df_fundamentals[df_fundamentals[ColumnsConfig.COMPANY_ID]==company_id][ColumnsConfig.GHG_SCOPE3].squeeze() @@ -214,9 +218,11 @@ def _company_df_to_model(self, df_fundamentals: pd.DataFrame, company_data[ColumnsConfig.TARGET_DATA] = None if company_data[ColumnsConfig.PRODUCTION_METRIC]: - company_data[ColumnsConfig.PRODUCTION_METRIC] = { 'units': company_data[ColumnsConfig.PRODUCTION_METRIC]} + company_data[ColumnsConfig.PRODUCTION_METRIC] = { + 'units': company_data[ColumnsConfig.PRODUCTION_METRIC]} if company_data[ColumnsConfig.EMISSIONS_METRIC]: - company_data[ColumnsConfig.EMISSIONS_METRIC] = { 'units': company_data[ColumnsConfig.EMISSIONS_METRIC]} + company_data[ColumnsConfig.EMISSIONS_METRIC] = { + 'units': company_data[ColumnsConfig.EMISSIONS_METRIC]} # TODO: need better handling of missing market cap data if company_data[ColumnsConfig.COMPANY_MARKET_CAP] is pd.NA: @@ -229,12 +235,13 @@ def _company_df_to_model(self, df_fundamentals: pd.DataFrame, ColumnsConfig.COMPANY_NAME]) continue return model_companies - + # Workaround for bug (https://github.com/pandas-dev/pandas/issues/20824) in Pandas where NaN are treated as zero def _np_sum(g): return np.sum(g.values) - def _get_projection(self, company_ids: List[str], projections: pd.DataFrame, production_metric: pd.DataFrame) -> pd.DataFrame: + def _get_projection(self, company_ids: List[str], projections: pd.DataFrame, + production_metric: pd.DataFrame) -> pd.DataFrame: """ get the projected emission intensities for list of companies :param company_ids: list of company ids @@ -251,37 +258,39 @@ def _get_projection(self, company_ids: List[str], projections: pd.DataFrame, pro projections = projections.loc[company_ids, range(TemperatureScoreConfig.CONTROLS_CONFIG.base_year, TemperatureScoreConfig.CONTROLS_CONFIG.target_end_year + 1)] # Due to bug (https://github.com/pandas-dev/pandas/issues/20824) in Pandas where NaN are treated as zero workaround below: - projected_ei_s1s2 = projections.groupby(level=0, sort=False).agg(TemplateProviderCompany._np_sum) # add scope 1 and 2 + projected_ei_s1s2 = projections.groupby(level=0, sort=False).agg( + TemplateProviderCompany._np_sum) # add scope 1 and 2 with warnings.catch_warnings(): warnings.simplefilter("ignore") # See https://github.com/hgrecco/pint-pandas/issues/114 - projected_ei_s1s2 = projected_ei_s1s2.apply(lambda x: x.astype(f'pint[??t CO2/({production_metric[x.name]})]'), axis=1) + projected_ei_s1s2 = projected_ei_s1s2.apply( + lambda x: x.astype(f'pint[??t CO2/({production_metric[x.name]})]'), axis=1) return projected_ei_s1s2 -# class ITargetData(PintModel): -# netzero_year: int -# target_type: Union[Literal['intensity'],Literal['absolute'],Literal['other']] -# target_scope: EScope -# start_year: Optional[int] -# base_year: int -# end_year: int - -# target_base_qty: float -# target_base_unit: str -# target_reduction_pct: float + # class ITargetData(PintModel): + # netzero_year: int + # target_type: Union[Literal['intensity'],Literal['absolute'],Literal['other']] + # target_scope: EScope + # start_year: Optional[int] + # base_year: int + # end_year: int + + # target_base_qty: float + # target_base_unit: str + # target_reduction_pct: float def _convert_target_data(self, target_data: pd.DataFrame) -> List[ITargetData]: """ :param historic: historic production, emission and emission intensity data for a company :return: IHistoricData Pydantic object """ - target_data = target_data.rename(columns={'target_base_year':'base_year', - 'target_start_year':'start_year', - 'target_year':'end_year', - 'target_reduction_ambition':'target_reduction_pct', - 'target_base_year_qty':'target_base_qty', - 'target_base_year_unit':'target_base_unit'}) + target_data = target_data.rename(columns={'target_base_year': 'base_year', + 'target_start_year': 'start_year', + 'target_year': 'end_year', + 'target_reduction_ambition': 'target_reduction_pct', + 'target_base_year_qty': 'target_base_qty', + 'target_base_year_unit': 'target_base_unit'}) return [ITargetData(**td) for td in target_data.to_dict('records')] def _get_historic_data(self, company_ids: List[str], historic_data: pd.DataFrame) -> pd.DataFrame: @@ -293,17 +302,17 @@ def _get_historic_data(self, company_ids: List[str], historic_data: pd.DataFrame """ # We don't need this reset/set index dance because we set the index to COMPANY_ID to get units sorted # historic_data = historic_data.reset_index().drop(columns=['index']).set_index(ColumnsConfig.COMPANY_ID) - + missing_ids = [company_id for company_id in company_ids if company_id not in historic_data.index] assert not missing_ids, f"Company ids missing in provided historic data: {missing_ids}" # There has got to be a better way to do this... historic_data = ( historic_data.loc[company_ids, :] - .apply(lambda x: pd.Series({col:x[col] for col in x.index if type(col)!=int} - | {y:f"{x[y]} {x['units']}" for y in self.historic_years}, - index=x.index), - axis=1) + .apply(lambda x: pd.Series({col: x[col] for col in x.index if type(col) != int} + | {y: f"{x[y]} {x['units']}" for y in self.historic_years}, + index=x.index), + axis=1) ) return historic_data diff --git a/ITR/interfaces.py b/ITR/interfaces.py index 9f56d5b3..37bb7215 100644 --- a/ITR/interfaces.py +++ b/ITR/interfaces.py @@ -420,9 +420,8 @@ def _fixup_historic_productions(self, historic_productions, production_metric): return self.historic_data.productions return UProjections_to_IProjections(historic_productions, production_metric) - def __init__(self, historic_data=None, projected_targets=None, projected_intensities=None, - emissions_metric=None, production_metric=None, - base_year_production=None, ghg_s1s2=None, ghg_s3=None, *args, **kwargs): + def __init__(self, historic_data=None, projected_targets=None, projected_intensities=None, emissions_metric=None, + production_metric=None, base_year_production=None, ghg_s1s2=None, ghg_s3=None, *args, **kwargs): super().__init__(historic_data=historic_data, projected_targets=projected_targets, projected_intensities=projected_intensities, @@ -447,8 +446,8 @@ def __init__(self, historic_data=None, projected_targets=None, projected_intensi self.emissions_metric = parse_obj_as(EmissionsMetric, {'units': 't CO2'}) # TODO: Should raise a warning here if base_year_production: - self.base_year_production=pint_ify(base_year_production, self.production_metric.units) - elif self.historic_data.productions: + self.base_year_production = pint_ify(base_year_production, self.production_metric.units) + elif self.historic_data and self.historic_data.productions: # TODO: This is a hack to get things going. year = kwargs['report_date'].year for i in range(len(self.historic_data.productions)): @@ -461,7 +460,7 @@ def __init__(self, historic_data=None, projected_targets=None, projected_intensi raise ValueError("missing historic data for base_year_production") if ghg_s1s2: self.ghg_s1s2=pint_ify(ghg_s1s2, self.emissions_metric.units) - elif self.historic_data.emissions: + elif self.historic_data and self.historic_data.emissions: # TODO: This is a hack to get things going. year = kwargs['report_date'].year for i in range(len(self.historic_data.emissions.S1S2)): diff --git a/test/inputs/json/fundamental_data.json b/test/inputs/json/fundamental_data.json index 0e621f24..eb77fdaf 100644 --- a/test/inputs/json/fundamental_data.json +++ b/test/inputs/json/fundamental_data.json @@ -280,6 +280,7 @@ "country": "United States of America", "ghg_s1s2": 104827858.636039, "ghg_s3": 104827858.636039, + "base_year_production": 377380291.0897404, "industry_level_1": null, "industry_level_2": null, "industry_level_3": null, @@ -571,6 +572,7 @@ "country": "United States of America", "ghg_s1s2": 598937001.892059, "ghg_s3": 598937001.892059, + "base_year_production": 2156173206.8114123, "industry_level_1": null, "industry_level_2": null, "industry_level_3": null, @@ -862,6 +864,7 @@ "country": "Germany", "ghg_s1s2": 122472002.661096, "ghg_s3": 122472002.661096, + "base_year_production": 8050005.322, "industry_level_1": null, "industry_level_2": null, "industry_level_3": null, @@ -1153,6 +1156,7 @@ "country": "France", "ghg_s1s2": 100080009.401725, "ghg_s3": 100080009.401725, + "base_year_production": 360288033.84621, "industry_level_1": null, "industry_level_2": null, "industry_level_3": null, @@ -1444,6 +1448,7 @@ "country": "Italy", "ghg_s1s2": 824864406.472471, "ghg_s3": 824864406.472471, + "base_year_production": 2684119703.3008957, "industry_level_1": null, "industry_level_2": null, "industry_level_3": null, @@ -1735,6 +1740,7 @@ "country": "France", "ghg_s1s2": 221601600.376334, "ghg_s3": 221601600.376334, + "base_year_production": 718528321.3548025, "industry_level_1": null, "industry_level_2": null, "industry_level_3": null, @@ -2026,6 +2032,7 @@ "country": "Spain", "ghg_s1s2": 411300002.585938, "ghg_s3": 411300002.585938, + "base_year_production": 1600080489.3093767, "industry_level_1": null, "industry_level_2": null, "industry_level_3": null, @@ -2317,6 +2324,7 @@ "country": "South Korea", "ghg_s1s2": 1472652000.85954, "ghg_s3": 1472652000.85954, + "base_year_production": 5301547203.094344, "industry_level_1": null, "industry_level_2": null, "industry_level_3": null, @@ -2608,6 +2616,7 @@ "country": "United Kingdom", "ghg_s1s2": 21142801.5077199, "ghg_s3": 21142801.5077199, + "base_year_production": 76114085.42779164, "industry_level_1": null, "industry_level_2": null, "industry_level_3": null, @@ -2899,6 +2908,7 @@ "country": "India", "ghg_s1s2": 988020000.90193, "ghg_s3": 988020000.90193, + "base_year_production": 3364675203.246948, "industry_level_1": null, "industry_level_2": null, "industry_level_3": null, @@ -3190,6 +3200,7 @@ "country": "Australia", "ghg_s1s2": 73011601.1549344, "ghg_s3": 73011601.1549344, + "base_year_production": 236895844.15776384, "industry_level_1": null, "industry_level_2": null, "industry_level_3": null, @@ -3481,6 +3492,7 @@ "country": "Poland", "ghg_s1s2": 288420004.281372, "ghg_s3": 288420004.281372, + "base_year_production": 171690299.59138668, "industry_level_1": null, "industry_level_2": null, "industry_level_3": null, @@ -3772,6 +3784,7 @@ "country": "Hong Kong", "ghg_s1s2": 47691749.8864963, "ghg_s3": 47691749.8864963, + "base_year_production": 171690299.59138668, "industry_level_1": null, "industry_level_2": null, "industry_level_3": null, @@ -4063,6 +4076,7 @@ "country": "Germany", "ghg_s1s2": 551394001.129387, "ghg_s3": 551394001.129387, + "base_year_production": 1902204004.0657933, "industry_level_1": null, "industry_level_2": null, "industry_level_3": null, @@ -4354,6 +4368,7 @@ "country": "United States of America", "ghg_s1s2": 242884801.558717, "ghg_s3": 242884801.558717, + "base_year_production": 874385285.6113813, "industry_level_1": null, "industry_level_2": null, "industry_level_3": null, @@ -4645,6 +4660,7 @@ "country": "Netherlands", "ghg_s1s2": 89800001.3960884, "ghg_s3": 89800001.3960884, + "base_year_production": 71500001.3960884, "industry_level_1": null, "industry_level_2": null, "industry_level_3": null, @@ -4936,6 +4952,7 @@ "country": "Australia", "ghg_s1s2": null, "ghg_s3": null, + "base_year_production": 28090000.2335485, "industry_level_1": null, "industry_level_2": null, "industry_level_3": null, @@ -5227,6 +5244,7 @@ "country": "Taiwan", "ghg_s1s2": null, "ghg_s3": null, + "base_year_production": 2156173206.8114123, "industry_level_1": null, "industry_level_2": null, "industry_level_3": null, @@ -5518,6 +5536,7 @@ "country": "Brazil", "ghg_s1s2": 12453000.4760821, "ghg_s3": 12453000.4760821, + "base_year_production": 12194000.4760821, "industry_level_1": null, "industry_level_2": null, "industry_level_3": null, @@ -5809,6 +5828,7 @@ "country": "South Korea", "ghg_s1s2": 23303009.677026, "ghg_s3": 23303009.677026, + "base_year_production": 23303009.677026, "industry_level_1": null, "industry_level_2": null, "industry_level_3": null, @@ -6100,6 +6120,7 @@ "country": "Japan", "ghg_s1s2": 27880000.2335485, "ghg_s3": 27880000.2335485, + "base_year_production": 28090000.2335485, "industry_level_1": null, "industry_level_2": null, "industry_level_3": null, @@ -6391,6 +6412,7 @@ "country": "India", "ghg_s1s2": 12630001.0468216, "ghg_s3": 12630001.0468216, + "base_year_production": 12630001.0468216, "industry_level_1": null, "industry_level_2": null, "industry_level_3": null, @@ -6682,6 +6704,7 @@ "country": "Russia", "ghg_s1s2": 23779000.8292913, "ghg_s3": 23779000.8292913, + "base_year_production": 22329000.8292913, "industry_level_1": null, "industry_level_2": null, "industry_level_3": null, @@ -6973,6 +6996,7 @@ "country": "Japan", "ghg_s1s2": 47840001.3676141, "ghg_s3": 47840001.3676141, + "base_year_production": 47050001.3676141, "industry_level_1": null, "industry_level_2": null, "industry_level_3": null, @@ -7264,6 +7288,7 @@ "country": "Russia", "ghg_s1s2": 15520004.6310296, "ghg_s3": 15520004.6310296, + "base_year_production": 15520004.6310296, "industry_level_1": null, "industry_level_2": null, "industry_level_3": null, @@ -7555,6 +7580,7 @@ "country": "South Korea", "ghg_s1s2": null, "ghg_s3": null, + "base_year_production": 15520041.6310296, "industry_level_1": null, "industry_level_2": null, "industry_level_3": null, @@ -7846,6 +7872,7 @@ "country": "Russia", "ghg_s1s2": 11847001.9224849, "ghg_s3": 11847001.9224849, + "base_year_production": 11314001.9224849, "industry_level_1": null, "industry_level_2": null, "industry_level_3": null, @@ -8137,6 +8164,7 @@ "country": "Sweden", "ghg_s1s2": 14618000.0778486, "ghg_s3": 14618000.0778486, + "base_year_production": 14473000.0778486, "industry_level_1": null, "industry_level_2": null, "industry_level_3": null, @@ -8428,6 +8456,7 @@ "country": "India", "ghg_s1s2": 27110004.3464472, "ghg_s3": 27110004.3464472, + "base_year_production": 30630004.3464472, "industry_level_1": null, "industry_level_2": null, "industry_level_3": null, @@ -8719,6 +8748,7 @@ "country": "Germany", "ghg_s1s2": null, "ghg_s3": null, + "base_year_production": 33630004.3464472, "industry_level_1": null, "industry_level_2": null, "industry_level_3": null, diff --git a/test/test_base_providers.py b/test/test_base_providers.py index b144b6f4..457dc1a9 100644 --- a/test/test_base_providers.py +++ b/test/test_base_providers.py @@ -2,7 +2,6 @@ import unittest import os import pandas as pd -from numpy.testing import assert_array_equal import ITR from ITR.portfolio_aggregation import PortfolioAggregationMethod @@ -11,10 +10,10 @@ from ITR.data.data_warehouse import DataWarehouse from ITR.data.base_providers import BaseCompanyDataProvider, BaseProviderProductionBenchmark, \ BaseProviderIntensityBenchmark -from ITR.interfaces import ICompanyData, EScope, ETimeFrames, PortfolioCompany, IEmissionIntensityBenchmarkScopes, \ +from ITR.interfaces import ICompanyData, EScope, ETimeFrames, PortfolioCompany, IEIBenchmarkScopes, \ IProductionBenchmarkScopes +from ITR.data.osc_units import ureg, Q_ -from ITR.data.osc_units import ureg, Q_, PA_ class TestBaseProvider(unittest.TestCase): """ @@ -43,7 +42,7 @@ def setUp(self) -> None: # load intensity benchmarks with open(self.benchmark_EI_json) as json_file: parsed_json = json.load(json_file) - ei_bms = IEmissionIntensityBenchmarkScopes.parse_obj(parsed_json) + ei_bms = IEIBenchmarkScopes.parse_obj(parsed_json) self.base_EI_bm = BaseProviderIntensityBenchmark(EI_benchmarks=ei_bms) self.base_warehouse = DataWarehouse(self.base_company_data, self.base_production_bm, self.base_EI_bm) @@ -72,8 +71,7 @@ def test_temp_score_from_json_data(self): company_id=company, investment_value=100, company_isin=company, - ) - ) + )) # portfolio data portfolio_data = ITR.utils.get_data(self.base_warehouse, portfolio) scores = temp_score.calculate(portfolio_data) @@ -85,7 +83,6 @@ def test_temp_score_from_json_data(self): # verify that results exist self.assertAlmostEqual(agg_scores.long.S1S2.all.score, Q_(2.11, ureg.delta_degC), places=2) - def test_get_benchmark(self): seq_index = pd.RangeIndex.from_range(range(TemperatureScoreConfig.CONTROLS_CONFIG.base_year, TemperatureScoreConfig.CONTROLS_CONFIG.target_end_year + 1)) @@ -111,8 +108,7 @@ def test_get_benchmark(self): 0.00617251, 0.005400365 ], index=seq_index, dtype="pint[t CO2/GJ]")] expected_data = pd.concat(data, axis=1, ignore_index=True).T - expected_data.index=self.company_ids - + expected_data.index = self.company_ids pd.testing.assert_frame_equal( self.base_EI_bm.get_SDA_intensity_benchmarks(self.company_info_at_base_year), diff --git a/test/test_interfaces.py b/test/test_interfaces.py index 5d52ac4a..1c7b5efb 100644 --- a/test/test_interfaces.py +++ b/test/test_interfaces.py @@ -47,13 +47,14 @@ def test_ICompanyData(self): company_id="US6293775085", region="Europe", sector="Steel", - emissions_metric={ "units": "t CO2"}, - production_metric={ "units": "Fe_ton"}, + emissions_metric={"units": "t CO2"}, + production_metric={"units": "Fe_ton"}, target_probability=0.123, projected_targets = None, projected_intensities = None, country='US6293775085', ghg_s1s2=89800001.4, ghg_s3=89800001.4, + base_year_production=71500001.3960884, company_revenue=7370536918 ) diff --git a/test/test_portfolio_aggregation.py b/test/test_portfolio_aggregation.py index 22b0f8fe..34d93380 100644 --- a/test/test_portfolio_aggregation.py +++ b/test/test_portfolio_aggregation.py @@ -21,7 +21,7 @@ def setUp(self) -> None: self.data = pd.DataFrame() self.data.loc[:, ColumnsConfig.COMPANY_NAME] = ["Company A", "Company B", "Company C"] self.data.loc[:, ColumnsConfig.COMPANY_REVENUE] = [1.0, 2.0, 3.0] - self.data.loc[:, ColumnsConfig.MARKET_CAP] = [1.0, 2.0, 3.0] + self.data.loc[:, ColumnsConfig.COMPANY_MARKET_CAP] = [1.0, 2.0, 3.0] self.data.loc[:, ColumnsConfig.INVESTMENT_VALUE] = [1.0, 2.0, 3.0] self.data.loc[:, ColumnsConfig.SCOPE] = [EScope.S1S2, EScope.S1S2, EScope.S1S2S3] self.data.loc[:, ColumnsConfig.GHG_SCOPE12] = pd.Series([1.0, 2.0, 3.0], dtype='pint[MWh]') @@ -44,7 +44,7 @@ def test_is_emissions_based(self): def test_get_value_column(self): self.assertEqual(PortfolioAggregationMethod.get_value_column(PortfolioAggregationMethod.MOTS, ColumnsConfig), - ColumnsConfig.MARKET_CAP) + ColumnsConfig.COMPANY_MARKET_CAP) self.assertEqual(PortfolioAggregationMethod.get_value_column(PortfolioAggregationMethod.EOTS, ColumnsConfig), ColumnsConfig.COMPANY_ENTERPRISE_VALUE) self.assertEqual(PortfolioAggregationMethod.get_value_column(PortfolioAggregationMethod.ECOTS, ColumnsConfig), @@ -54,9 +54,9 @@ def test_get_value_column(self): self.assertEqual(PortfolioAggregationMethod.get_value_column(PortfolioAggregationMethod.ROTS, ColumnsConfig), ColumnsConfig.COMPANY_REVENUE) self.assertEqual(PortfolioAggregationMethod.get_value_column(PortfolioAggregationMethod.WATS, ColumnsConfig), - ColumnsConfig.MARKET_CAP) + ColumnsConfig.COMPANY_MARKET_CAP) self.assertEqual(PortfolioAggregationMethod.get_value_column(PortfolioAggregationMethod.TETS, ColumnsConfig), - ColumnsConfig.MARKET_CAP) + ColumnsConfig.COMPANY_MARKET_CAP) def test_check_column(self): PortfolioAggregation()._check_column(data=self.data, column=ColumnsConfig.COMPANY_REVENUE) diff --git a/test/test_template_provider.py b/test/test_template_provider.py index a9bb8145..db1aa0d0 100644 --- a/test/test_template_provider.py +++ b/test/test_template_provider.py @@ -13,7 +13,6 @@ from ITR.interfaces import EScope, ETimeFrames, PortfolioCompany from ITR.temperature_score import TemperatureScore from ITR.portfolio_aggregation import PortfolioAggregationMethod - from ITR.data.osc_units import ureg, Q_ From 488e550862d07684c690d3789fbdbebad08c7db4 Mon Sep 17 00:00:00 2001 From: David Kroon Date: Sun, 27 Feb 2022 22:51:44 +0100 Subject: [PATCH 122/345] Attempt at cleanup, renaming, fixing tests Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- ITR/data/base_providers.py | 11 ++--- ITR/data/data_warehouse.py | 6 +-- examples/unittest_vs_pint.ipynb | 8 ++-- test/inputs/json/fundamental_data.json | 16 ++++---- test/test_base_providers.py | 56 +++++++++++++++++++------- test/test_excel_provider.py | 17 ++++---- test/test_template_provider.py | 2 +- 7 files changed, 70 insertions(+), 46 deletions(-) diff --git a/ITR/data/base_providers.py b/ITR/data/base_providers.py index 3b032caf..839e4fc5 100644 --- a/ITR/data/base_providers.py +++ b/ITR/data/base_providers.py @@ -2,20 +2,15 @@ import numpy as np import pandas as pd from functools import reduce, partial - -import pint -import pint_pandas from pandas._libs.missing import NAType - -from ITR.data.osc_units import ureg, Q_, PA_ - from typing import List, Type, Dict + +from ITR.data.osc_units import Q_, PA_ from ITR.configs import ColumnsConfig, TemperatureScoreConfig, ProjectionConfig, VariablesConfig from ITR.data.data_providers import CompanyDataProvider, ProductionBenchmarkDataProvider, \ IntensityBenchmarkDataProvider - from ITR.interfaces import ICompanyData, EScope, IProductionBenchmarkScopes, IEIBenchmarkScopes, \ - IBenchmark, IProjection, ICompanyEIProjections, ICompanyEIProjectionsScopes, ICompanyProjection, IHistoricEIScopes, \ + IBenchmark, IProjection, ICompanyEIProjections, ICompanyEIProjectionsScopes, IHistoricEIScopes, \ IHistoricEmissionsScopes, IProductionRealization, ITargetData, IHistoricData, ICompanyEIProjection, \ IEmissionRealization diff --git a/ITR/data/data_warehouse.py b/ITR/data/data_warehouse.py index 23775cbe..d6abda14 100644 --- a/ITR/data/data_warehouse.py +++ b/ITR/data/data_warehouse.py @@ -58,13 +58,13 @@ def get_preprocessed_company_data(self, company_ids: List[str]) -> List[ICompany projected_production = self.benchmark_projected_production.get_company_projected_production( company_info_at_base_year).sort_index() - df_trajectory = self._get_cumulative_emission( + df_trajectory = self._get_cumulative_emissions( projected_emission_intensity=self.company_data.get_company_projected_trajectories(company_ids), projected_production=projected_production).rename(self.column_config.CUMULATIVE_TRAJECTORY) - df_target = self._get_cumulative_emission( + df_target = self._get_cumulative_emissions( projected_emission_intensity=self.company_data.get_company_projected_targets(company_ids), projected_production=projected_production).rename(self.column_config.CUMULATIVE_TARGET) - df_budget = self._get_cumulative_emission( + df_budget = self._get_cumulative_emissions( projected_emission_intensity=self.benchmarks_projected_emission_intensity.get_SDA_intensity_benchmarks( company_info_at_base_year), projected_production=projected_production).rename(self.column_config.CUMULATIVE_BUDGET) diff --git a/examples/unittest_vs_pint.ipynb b/examples/unittest_vs_pint.ipynb index 0534877e..65d7abb6 100644 --- a/examples/unittest_vs_pint.ipynb +++ b/examples/unittest_vs_pint.ipynb @@ -34,7 +34,7 @@ "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", "\u001b[0;31mTypeError\u001b[0m Traceback (most recent call last)", "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m\u001b[0m\n\u001b[1;32m 40\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 41\u001b[0m \u001b[0mx\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mTestBaseProvider\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'test_pint_series_equality'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 42\u001b[0;31m \u001b[0mTestBaseProvider\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mtest_pint_series_equality\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mx\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", - "\u001b[0;32m\u001b[0m in \u001b[0;36mtest_pint_series_equality\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 35\u001b[0m projected_production=projected_production))\n\u001b[1;32m 36\u001b[0m \u001b[0mprint\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34mf\"expected_data = {expected_data}\"\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 37\u001b[0;31m pd.testing.assert_series_equal(\n\u001b[0m\u001b[1;32m 38\u001b[0m _get_cumulative_emission(projected_emission_intensity=projected_ei,\n\u001b[1;32m 39\u001b[0m projected_production=projected_production), expected_data)\n", + "\u001b[0;32m\u001b[0m in \u001b[0;36mtest_pint_series_equality\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 35\u001b[0m projected_production=projected_production))\n\u001b[1;32m 36\u001b[0m \u001b[0mprint\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34mf\"expected_data = {expected_data}\"\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 37\u001b[0;31m pd.testing.assert_series_equal(\n\u001b[0m\u001b[1;32m 38\u001b[0m _get_cumulative_emissions(projected_emission_intensity=projected_ei,\n\u001b[1;32m 39\u001b[0m projected_production=projected_production), expected_data)\n", " \u001b[0;31m[... skipping hidden 1 frame]\u001b[0m\n", "\u001b[0;32m/opt/app-root/lib64/python3.8/site-packages/pandas/_testing/asserters.py\u001b[0m in \u001b[0;36massert_extension_array_equal\u001b[0;34m(left, right, check_dtype, index_values, check_less_precise, check_exact, rtol, atol)\u001b[0m\n\u001b[1;32m 839\u001b[0m )\n\u001b[1;32m 840\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 841\u001b[0;31m _testing.assert_almost_equal(\n\u001b[0m\u001b[1;32m 842\u001b[0m \u001b[0mleft_valid\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 843\u001b[0m \u001b[0mright_valid\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32m/opt/app-root/lib64/python3.8/site-packages/pandas/_libs/testing.pyx\u001b[0m in \u001b[0;36mpandas._libs.testing.assert_almost_equal\u001b[0;34m()\u001b[0m\n", @@ -61,7 +61,7 @@ "\n", "ureg.define(\"CO2e = CO2 = CO2eq = CO2_eq\")\n", "\n", - "def _get_cumulative_emission(projected_emission_intensity, projected_production):\n", + "def _get_cumulative_emissions(projected_emission_intensity, projected_production):\n", " df = projected_emission_intensity.multiply(projected_production)\n", " return df.sum(axis=1).astype('pint[Mt CO2]')\n", "\n", @@ -79,11 +79,11 @@ " expected_data = pd.Series([10.0, 50.0],\n", " index=[0, 1],\n", " dtype='pint[Mt CO2]')\n", - " print(_get_cumulative_emission(projected_emission_intensity=projected_ei,\n", + " print(_get_cumulative_emissions(projected_emission_intensity=projected_ei,\n", " projected_production=projected_production))\n", " print(f\"expected_data = {expected_data}\")\n", " pd.testing.assert_series_equal(\n", - " _get_cumulative_emission(projected_emission_intensity=projected_ei,\n", + " _get_cumulative_emissions(projected_emission_intensity=projected_ei,\n", " projected_production=projected_production), expected_data)\n", "\n", "x = TestBaseProvider('test_pint_series_equality')\n", diff --git a/test/inputs/json/fundamental_data.json b/test/inputs/json/fundamental_data.json index eb77fdaf..652a29ca 100644 --- a/test/inputs/json/fundamental_data.json +++ b/test/inputs/json/fundamental_data.json @@ -4950,8 +4950,8 @@ "S1S2S3": null }, "country": "Australia", - "ghg_s1s2": null, - "ghg_s3": null, + "ghg_s1s2": 10220008.91046342, + "ghg_s3": 10220008.91046342, "base_year_production": 28090000.2335485, "industry_level_1": null, "industry_level_2": null, @@ -5242,8 +5242,8 @@ "S1S2S3": null }, "country": "Taiwan", - "ghg_s1s2": null, - "ghg_s3": null, + "ghg_s1s2": 21533599.6290368, + "ghg_s3": 21533599.6290368, "base_year_production": 2156173206.8114123, "industry_level_1": null, "industry_level_2": null, @@ -7578,8 +7578,8 @@ "S1S2S3": null }, "country": "South Korea", - "ghg_s1s2": null, - "ghg_s3": null, + "ghg_s1s2": 80242000.851335864, + "ghg_s3": 80242000.851335864, "base_year_production": 15520041.6310296, "industry_level_1": null, "industry_level_2": null, @@ -8746,8 +8746,8 @@ "S1S2S3": null }, "country": "Germany", - "ghg_s1s2": null, - "ghg_s3": null, + "ghg_s1s2": 22700004.74733483, + "ghg_s3": 22700004.74733483, "base_year_production": 33630004.3464472, "industry_level_1": null, "industry_level_2": null, diff --git a/test/test_base_providers.py b/test/test_base_providers.py index 457dc1a9..e0a2c260 100644 --- a/test/test_base_providers.py +++ b/test/test_base_providers.py @@ -1,6 +1,7 @@ import json import unittest import os + import pandas as pd import ITR @@ -15,6 +16,33 @@ from ITR.data.osc_units import ureg, Q_ +def assert_pint_series_equal(case: unittest.case, left: pd.Series, right: pd.Series): + # Helper function to avoid bug in pd.testing.assert_series_equal concerning pint series + for d, data in enumerate(left): + case.assertAlmostEqual(data, right[d]) + + for d, data in enumerate(right): + case.assertAlmostEqual(data, left[d]) + + +def assert_pint_frame_equal(case: unittest.case, left: pd.DataFrame, right: pd.DataFrame): + # Helper function to avoid bug in pd.testing.assert_frame_equal concerning pint series + left_flat = left.values.flatten() + right_flat = right.values.flatten() + + errors = [] + for d, data in enumerate(left_flat): + try: + case.assertAlmostEqual(data, right_flat[d]) + except AssertionError as e: + errors.append(e.args[0]) + if errors: + raise AssertionError('\n'.join(errors)) + + for d, data in enumerate(right_flat): + case.assertAlmostEqual(data, left_flat[d]) + + class TestBaseProvider(unittest.TestCase): """ Test the Base provider @@ -54,7 +82,8 @@ def setUp(self) -> None: [Q_(0.476586931582279, 't CO2/GJ'), Q_(5.98937002e+08, 'MWh'), {'units':'MWh'}, 'Electricity Utilities', 'North America'], [Q_(0.22457393169277, 't CO2/GJ'), Q_(1.22472003e+08, 'MWh'), {'units':'MWh'}, 'Electricity Utilities', 'Europe']], index=self.company_ids, - columns=[ColumnsConfig.BASE_EI, ColumnsConfig.GHG_SCOPE12, ColumnsConfig.PRODUCTION_METRIC, ColumnsConfig.SECTOR, ColumnsConfig.REGION]) + columns=[ColumnsConfig.BASE_EI, ColumnsConfig.BASE_YEAR_PRODUCTION, ColumnsConfig.PRODUCTION_METRIC, + ColumnsConfig.SECTOR, ColumnsConfig.REGION]) def test_temp_score_from_json_data(self): # Calculate Temp Scores @@ -86,7 +115,7 @@ def test_temp_score_from_json_data(self): def test_get_benchmark(self): seq_index = pd.RangeIndex.from_range(range(TemperatureScoreConfig.CONTROLS_CONFIG.base_year, TemperatureScoreConfig.CONTROLS_CONFIG.target_end_year + 1)) - data = [pd.Series([1.698247435, 1.581691084, 1.386040647, 1.190390211, 0.994739774, 0.799089338, + data = [pd.Series([1.698247435, 1.581436210, 1.386040647, 1.190390211, 0.994739774, 0.799089338, 0.782935186, 0.677935928, 0.572936671, 0.467937413, 0.362938156, 0.257938898, 0.233746281, 0.209553665, 0.185361048, 0.161168432, 0.136975815, 0.124810886, 0.112645956, 0.100481026, 0.088316097, 0.076151167, 0.062125588, 0.048100009, @@ -109,19 +138,17 @@ def test_get_benchmark(self): ], index=seq_index, dtype="pint[t CO2/GJ]")] expected_data = pd.concat(data, axis=1, ignore_index=True).T expected_data.index = self.company_ids + benchmarks = self.base_EI_bm.get_SDA_intensity_benchmarks(self.company_info_at_base_year) - pd.testing.assert_frame_equal( - self.base_EI_bm.get_SDA_intensity_benchmarks(self.company_info_at_base_year), - expected_data.astype('object')) + assert_pint_frame_equal(self, benchmarks, expected_data) def test_get_projected_production(self): - expected_data_2025 = pd.Series([1.06866370e+08, 6.10584093e+08, 1.28474171e+08], + expected_data_2025 = pd.Series([106866369.91163988, 610584093.0081439, 128474170.5748834], index=self.company_ids, name=2025, dtype='pint[MWh]') - pd.testing.assert_series_equal( - self.base_production_bm.get_company_projected_production(self.company_info_at_base_year)[2025], - expected_data_2025, check_dtype=False) + productions = self.base_production_bm.get_company_projected_production(self.company_info_at_base_year)[2025] + assert_pint_series_equal(self, expected_data_2025, productions) def test_get_cumulative_value(self): projected_ei = pd.DataFrame([[Q_(1.0, 't CO2/MWh'), Q_(2.0, 't CO2/MWh')], [Q_(3.0, 't CO2/MWh'), Q_(4.0, 't CO2/MWh')]], dtype='pint[t CO2/MWh]') @@ -129,9 +156,9 @@ def test_get_cumulative_value(self): expected_data = pd.Series([10.0, 50.0], index=[0, 1], dtype='pint[Mt CO2]') - pd.testing.assert_series_equal( - self.base_warehouse._get_cumulative_emission(projected_emission_intensity=projected_ei, - projected_production=projected_production), expected_data) + cumulative_emissions = self.base_warehouse._get_cumulative_emissions(projected_emission_intensity=projected_ei, + projected_production=projected_production) + assert_pint_series_equal(self, cumulative_emissions, expected_data) def test_get_company_data(self): company_1 = self.base_warehouse.get_preprocessed_company_data(self.company_ids)[0] @@ -140,8 +167,8 @@ def test_get_company_data(self): self.assertEqual(company_2.company_name, "Company AH") self.assertEqual(company_1.company_id, "US0079031078") self.assertEqual(company_2.company_id, "US00724F1012") - self.assertAlmostEqual(company_1.ghg_s1s2, Q_(104827858.636039, 'MWh')) # These are apparently production numbers, not emissions numbers - self.assertAlmostEqual(company_2.ghg_s1s2, Q_(598937001.892059, 'MWh')) # These are apparently production numbers, not emissions numbers + self.assertAlmostEqual(company_1.ghg_s1s2, Q_(104827858.636039, 't CO2')) # These are apparently production numbers, not emissions numbers + self.assertAlmostEqual(company_2.ghg_s1s2, Q_(598937001.892059, 't CO2')) # These are apparently production numbers, not emissions numbers self.assertAlmostEqual(company_1.cumulative_budget, Q_(1362284467.0830, 't CO2'), places=4) self.assertAlmostEqual(company_2.cumulative_budget, Q_(2262242040.68059, 't CO2'), places=4) self.assertAlmostEqual(company_1.cumulative_target, Q_(3769096510.09909, 't CO2'), places=4) @@ -159,6 +186,7 @@ def test_get_value(self): variable_name=ColumnsConfig.COMPANY_REVENUE), expected_data) + if __name__ == "__main__": test = TestBaseProvider() test.setUp() diff --git a/test/test_excel_provider.py b/test/test_excel_provider.py index 6f0e6478..52be43d9 100644 --- a/test/test_excel_provider.py +++ b/test/test_excel_provider.py @@ -13,6 +13,8 @@ from ITR.portfolio_aggregation import PortfolioAggregationMethod from ITR.data.osc_units import ureg, Q_, PA_ +from test_base_providers import assert_pint_frame_equal, assert_pint_series_equal + class TestExcelProvider(unittest.TestCase): """ @@ -99,8 +101,8 @@ def test_get_projected_value(self): TemperatureScoreConfig.CONTROLS_CONFIG.target_end_year + 1), index=self.company_ids, dtype='pint[t CO2/GJ]').astype('object') - pd.testing.assert_frame_equal(self.excel_company_data.get_company_projected_trajectories(self.company_ids), - expected_data, check_names=False) + trajectories = self.excel_company_data.get_company_projected_trajectories(self.company_ids) + assert_pint_frame_equal(self, trajectories, expected_data) def test_get_benchmark(self): expected_data = pd.DataFrame([pd.Series([1.698247435, 1.581691084, 1.386040647, 1.190390211, 0.994739774, 0.799089338, @@ -128,9 +130,8 @@ def test_get_benchmark(self): index=self.company_ids, columns=range(TemperatureScoreConfig.CONTROLS_CONFIG.base_year, TemperatureScoreConfig.CONTROLS_CONFIG.target_end_year + 1)) - pd.testing.assert_frame_equal( - self.excel_EI_bm.get_SDA_intensity_benchmarks(self.company_info_at_base_year), - expected_data) + benchmarks = self.excel_EI_bm.get_SDA_intensity_benchmarks(self.company_info_at_base_year) + assert_pint_frame_equal(self, benchmarks, expected_data) def test_get_projected_production(self): expected_data_2025 = pd.Series([1.06866370e+08, 6.10584093e+08, 1.28474171e+08], @@ -147,9 +148,9 @@ def test_get_cumulative_value(self): projected_production = pd.DataFrame([[2.0, 4.0], [6.0, 8.0]], dtype='pint[GJ]') expected_data = pd.Series([10.0, 50.0], dtype='pint[Mt CO2]') - pd.testing.assert_series_equal( - self.excel_provider._get_cumulative_emission(projected_emission_intensity=projected_emission, - projected_production=projected_production), expected_data) + emissions = self.excel_provider._get_cumulative_emissions(projected_emission_intensity=projected_emission, + projected_production=projected_production) + assert_pint_series_equal(self, emissions, expected_data) def test_get_company_data(self): # "US0079031078" and "US00724F1012" are both Electricity Utilities diff --git a/test/test_template_provider.py b/test/test_template_provider.py index db1aa0d0..055b9e57 100644 --- a/test/test_template_provider.py +++ b/test/test_template_provider.py @@ -203,7 +203,7 @@ def test_get_cumulative_value(self): dtype='pint[GJ]') expected_data = pd.Series([10.0, 50.0], dtype='pint[Mt CO2]') pd.testing.assert_series_equal( - self.excel_provider._get_cumulative_emission(projected_emission_intensity=projected_emission, + self.excel_provider._get_cumulative_emissions(projected_emission_intensity=projected_emission, projected_production=projected_production), expected_data) def test_get_company_data(self): From 2f6dd4eb0aa3093a12df12a098184b3f32549440 Mon Sep 17 00:00:00 2001 From: MichaelTiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> Date: Sun, 27 Feb 2022 20:46:45 -0500 Subject: [PATCH 123/345] Update test_template_provider.py Fix test case so it actually prints intensity projections for each company. That's not a test case per se, but it informs how we can now write a test case for projections. Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- test/test_template_provider.py | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/test/test_template_provider.py b/test/test_template_provider.py index 055b9e57..fbb9ed9f 100644 --- a/test/test_template_provider.py +++ b/test/test_template_provider.py @@ -58,9 +58,20 @@ def test_target_projections(self): 'US69331C1080', 'US69349H1077', 'KR7005490008', ] - - for id in comids: - print(EITargetProjector().project_ei_targets(isin, data_target, data_emissions, data_prod)) + company_data = get_company_data(comids) + for c in company_data: + company_sector_region_info = pd.DataFrame({ + ColumnsConfig.COMPANY_ID: [ c.company_id ], + ColumnsConfig.BASE_YEAR_PRODUCTION: [ c.base_year_production ], + ColumnsConfig.GHG_SCOPE12: [ c.ghg_s1s2 ], + ColumnsConfig.SECTOR: [ c.sector ], + ColumnsConfig.REGION: [ c.region ], + }, index=[0]) + bm_production_data = (self.excel_production_bm.get_company_projected_production(company_sector_region_info) + # We transpose the data so that we get a pd.Series that will accept the pint units as a whole (not element-by-element) + .iloc[0].T + .astype(f'pint[{str(c.base_year_production.units)}]')) + print(f"{c.company_name}: {EITargetProjector().project_ei_targets(c.target_data, c.historic_data, bm_production_data).S1S2}") def test_temp_score(self): From e3ccec520b44aadc676518824b9e8a3ba5a46587 Mon Sep 17 00:00:00 2001 From: MichaelTiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> Date: Sun, 27 Feb 2022 20:49:53 -0500 Subject: [PATCH 124/345] Create country_region_info.csv Provide data to compute missing region info from country names when ITR tool is not connected to Data Commons. Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- ITR/data/country_region_info.csv | 249 +++++++++++++++++++++++++++++++ 1 file changed, 249 insertions(+) create mode 100644 ITR/data/country_region_info.csv diff --git a/ITR/data/country_region_info.csv b/ITR/data/country_region_info.csv new file mode 100644 index 00000000..79ccc64f --- /dev/null +++ b/ITR/data/country_region_info.csv @@ -0,0 +1,249 @@ +alpha_2,alpha_3,flag,name,numeric,official_name,common_name,region_ar6_6,region_ar6_10,region_ar6_22,region_ar6_dev +AW,ABW,🇦🇼,Aruba,533,,,Latin America and Caribbean,Latin America and Caribbean,Caribbean,developing +AF,AFG,🇦🇫,Afghanistan,004,Islamic Republic of Afghanistan,,Asia and developing Pacific,Southern Asia,Rest of Southern Asia,ldc +AO,AGO,🇦🇴,Angola,024,Republic of Angola,,Africa,Africa,Southern and middle Africa,ldc +AI,AIA,🇦🇮,Anguilla,660,,,Latin America and Caribbean,Latin America and Caribbean,Caribbean,developing +AX,ALA,🇦🇽,Åland Islands,248,,,Developed Countries,Europe,Northern and western Europe,developed +AL,ALB,🇦🇱,Albania,008,Republic of Albania,,Developed Countries,Europe,Southern and eastern Europe,developed +AD,AND,🇦🇩,Andorra,020,Principality of Andorra,,Developed Countries,Europe,Southern and eastern Europe,developed +AE,ARE,🇦🇪,United Arab Emirates,784,,,Middle East,Middle East,Middle East,developing +AR,ARG,🇦🇷,Argentina,032,Argentine Republic,,Latin America and Caribbean,Latin America and Caribbean,South America,developing +AM,ARM,🇦🇲,Armenia,051,Republic of Armenia,,Eastern Europe and West-Central Asia,Eurasia,Eurasia,developing +AS,ASM,🇦🇸,American Samoa,016,,,Asia and developing Pacific,South-East Asia and developing Pacific,Developing Pacific,developing +TF,ATF,🇹🇫,French Southern Territories,260,,,Africa,Africa,Eastern Africa,developing +AG,ATG,🇦🇬,Antigua and Barbuda,028,,,Latin America and Caribbean,Latin America and Caribbean,Caribbean,developing +AU,AUS,🇦🇺,Australia,036,,,Developed Countries,Asia-Pacific Developed,Australia & New Zealand,developed +AT,AUT,🇦🇹,Austria,040,Republic of Austria,,Developed Countries,Europe,Northern and western Europe,developed +AZ,AZE,🇦🇿,Azerbaijan,031,Republic of Azerbaijan,,Eastern Europe and West-Central Asia,Eurasia,Eurasia,developing +BI,BDI,🇧🇮,Burundi,108,Republic of Burundi,,Africa,Africa,Eastern Africa,ldc +BE,BEL,🇧🇪,Belgium,056,Kingdom of Belgium,,Developed Countries,Europe,Northern and western Europe,developed +BJ,BEN,🇧🇯,Benin,204,Republic of Benin,,Africa,Africa,Western Africa,ldc +BQ,BES,🇧🇶,"Bonaire, Sint Eustatius and Saba",535,"Bonaire, Sint Eustatius and Saba",,Latin America and Caribbean,Latin America and Caribbean,Caribbean,developing +BF,BFA,🇧🇫,Burkina Faso,854,,,Africa,Africa,Western Africa,ldc +BD,BGD,🇧🇩,Bangladesh,050,People's Republic of Bangladesh,,Asia and developing Pacific,Southern Asia,Rest of Southern Asia,ldc +BG,BGR,🇧🇬,Bulgaria,100,Republic of Bulgaria,,Developed Countries,Europe,Southern and eastern Europe,developed +BH,BHR,🇧🇭,Bahrain,048,Kingdom of Bahrain,,Middle East,Middle East,Middle East,developing +BS,BHS,🇧🇸,Bahamas,044,Commonwealth of the Bahamas,,Latin America and Caribbean,Latin America and Caribbean,Caribbean,developing +BA,BIH,🇧🇦,Bosnia and Herzegovina,070,Republic of Bosnia and Herzegovina,,Developed Countries,Europe,Southern and eastern Europe,developed +BL,BLM,🇧🇱,Saint Barthélemy,652,,,Latin America and Caribbean,Latin America and Caribbean,Caribbean,developing +BY,BLR,🇧🇾,Belarus,112,Republic of Belarus,,Eastern Europe and West-Central Asia,Eurasia,Eurasia,developed +BZ,BLZ,🇧🇿,Belize,084,,,Latin America and Caribbean,Latin America and Caribbean,Meso America,developing +BM,BMU,🇧🇲,Bermuda,060,,,Developed Countries,North America,"Greenland, Bermuda + others",developed +BO,BOL,🇧🇴,"Bolivia, Plurinational State of",068,Plurinational State of Bolivia,Bolivia,Latin America and Caribbean,Latin America and Caribbean,South America,developing +BR,BRA,🇧🇷,Brazil,076,Federative Republic of Brazil,,Latin America and Caribbean,Latin America and Caribbean,South America,developing +BB,BRB,🇧🇧,Barbados,052,,,Latin America and Caribbean,Latin America and Caribbean,Caribbean,developing +BN,BRN,🇧🇳,Brunei Darussalam,096,,,Asia and developing Pacific,South-East Asia and developing Pacific,South-East Asia,developing +BT,BTN,🇧🇹,Bhutan,064,Kingdom of Bhutan,,Asia and developing Pacific,Southern Asia,Rest of Southern Asia,ldc +BV,BVT,🇧🇻,Bouvet Island,074,,,Latin America and Caribbean,Latin America and Caribbean,South America,developing +BW,BWA,🇧🇼,Botswana,072,Republic of Botswana,,Africa,Africa,Southern and middle Africa,developing +CF,CAF,🇨🇫,Central African Republic,140,,,Africa,Africa,Southern and middle Africa,ldc +CA,CAN,🇨🇦,Canada,124,,,Developed Countries,North America,USA & Canada,developed +CC,CCK,🇨🇨,Cocos (Keeling) Islands,166,,,Developed Countries,Asia-Pacific Developed,Asia-Pacific Developed (others),developed +CH,CHE,🇨🇭,Switzerland,756,Swiss Confederation,,Developed Countries,Europe,Northern and western Europe,developed +CL,CHL,🇨🇱,Chile,152,Republic of Chile,,Latin America and Caribbean,Latin America and Caribbean,South America,developing +CN,CHN,🇨🇳,China,156,People's Republic of China,,Asia and developing Pacific,Eastern Asia,Eastern Asia,developing +CI,CIV,🇨🇮,Côte d'Ivoire,384,Republic of Côte d'Ivoire,,Africa,Africa,Western Africa,developing +CM,CMR,🇨🇲,Cameroon,120,Republic of Cameroon,,Africa,Africa,Southern and middle Africa,developing +CD,COD,🇨🇩,"Congo, The Democratic Republic of the",180,,,Africa,Africa,Southern and middle Africa,ldc +CG,COG,🇨🇬,Congo,178,Republic of the Congo,,Africa,Africa,Southern and middle Africa,developing +CK,COK,🇨🇰,Cook Islands,184,,,Asia and developing Pacific,South-East Asia and developing Pacific,Developing Pacific,developing +CO,COL,🇨🇴,Colombia,170,Republic of Colombia,,Latin America and Caribbean,Latin America and Caribbean,South America,developing +KM,COM,🇰🇲,Comoros,174,Union of the Comoros,,Africa,Africa,Eastern Africa,ldc +CV,CPV,🇨🇻,Cabo Verde,132,Republic of Cabo Verde,,Africa,Africa,Western Africa,developing +CR,CRI,🇨🇷,Costa Rica,188,Republic of Costa Rica,,Latin America and Caribbean,Latin America and Caribbean,Meso America,developing +CU,CUB,🇨🇺,Cuba,192,Republic of Cuba,,Latin America and Caribbean,Latin America and Caribbean,Caribbean,developing +CW,CUW,🇨🇼,Curaçao,531,Curaçao,,Latin America and Caribbean,Latin America and Caribbean,Caribbean,developing +CX,CXR,🇨🇽,Christmas Island,162,,,Developed Countries,Asia-Pacific Developed,Asia-Pacific Developed (others),developed +KY,CYM,🇰🇾,Cayman Islands,136,,,Latin America and Caribbean,Latin America and Caribbean,Caribbean,developing +CY,CYP,🇨🇾,Cyprus,196,Republic of Cyprus,,Developed Countries,Europe,Southern and eastern Europe,developed +CZ,CZE,🇨🇿,Czechia,203,Czech Republic,,Developed Countries,Europe,Southern and eastern Europe,developed +DE,DEU,🇩🇪,Germany,276,Federal Republic of Germany,,Developed Countries,Europe,Northern and western Europe,developed +DJ,DJI,🇩🇯,Djibouti,262,Republic of Djibouti,,Africa,Africa,Eastern Africa,ldc +DM,DMA,🇩🇲,Dominica,212,Commonwealth of Dominica,,Latin America and Caribbean,Latin America and Caribbean,Caribbean,developing +DK,DNK,🇩🇰,Denmark,208,Kingdom of Denmark,,Developed Countries,Europe,Northern and western Europe,developed +DO,DOM,🇩🇴,Dominican Republic,214,,,Latin America and Caribbean,Latin America and Caribbean,Caribbean,developing +DZ,DZA,🇩🇿,Algeria,012,People's Democratic Republic of Algeria,,Africa,Africa,North Africa,developing +EC,ECU,🇪🇨,Ecuador,218,Republic of Ecuador,,Latin America and Caribbean,Latin America and Caribbean,South America,developing +EG,EGY,🇪🇬,Egypt,818,Arab Republic of Egypt,,Africa,Africa,North Africa,developing +ER,ERI,🇪🇷,Eritrea,232,the State of Eritrea,,Africa,Africa,Eastern Africa,ldc +EH,ESH,🇪🇭,Western Sahara,732,,,Africa,Africa,North Africa,developing +ES,ESP,🇪🇸,Spain,724,Kingdom of Spain,,Developed Countries,Europe,Southern and eastern Europe,developed +EE,EST,🇪🇪,Estonia,233,Republic of Estonia,,Developed Countries,Europe,Northern and western Europe,developed +ET,ETH,🇪🇹,Ethiopia,231,Federal Democratic Republic of Ethiopia,,Africa,Africa,Eastern Africa,ldc +FI,FIN,🇫🇮,Finland,246,Republic of Finland,,Developed Countries,Europe,Northern and western Europe,developed +FJ,FJI,🇫🇯,Fiji,242,Republic of Fiji,,Asia and developing Pacific,South-East Asia and developing Pacific,Developing Pacific,developing +FK,FLK,🇫🇰,Falkland Islands (Malvinas),238,,,Latin America and Caribbean,Latin America and Caribbean,South America,developing +FR,FRA,🇫🇷,France,250,French Republic,,Developed Countries,Europe,Northern and western Europe,developed +FO,FRO,🇫🇴,Faroe Islands,234,,,Developed Countries,Europe,Northern and western Europe,developed +FM,FSM,🇫🇲,"Micronesia, Federated States of",583,Federated States of Micronesia,,Asia and developing Pacific,South-East Asia and developing Pacific,Developing Pacific,developing +GA,GAB,🇬🇦,Gabon,266,Gabonese Republic,,Africa,Africa,Southern and middle Africa,developing +GB,GBR,🇬🇧,United Kingdom,826,United Kingdom of Great Britain and Northern Ireland,,Developed Countries,Europe,Northern and western Europe,developed +GE,GEO,🇬🇪,Georgia,268,,,Eastern Europe and West-Central Asia,Eurasia,Eurasia,developing +GG,GGY,🇬🇬,Guernsey,831,,,Developed Countries,Europe,Northern and western Europe,developed +GH,GHA,🇬🇭,Ghana,288,Republic of Ghana,,Africa,Africa,Western Africa,developing +GI,GIB,🇬🇮,Gibraltar,292,,,Developed Countries,Europe,Southern and eastern Europe,developed +GN,GIN,🇬🇳,Guinea,324,Republic of Guinea,,Africa,Africa,Western Africa,ldc +GP,GLP,🇬🇵,Guadeloupe,312,,,Latin America and Caribbean,Latin America and Caribbean,Caribbean,developing +GM,GMB,🇬🇲,Gambia,270,Republic of the Gambia,,Africa,Africa,Western Africa,ldc +GW,GNB,🇬🇼,Guinea-Bissau,624,Republic of Guinea-Bissau,,Africa,Africa,Western Africa,ldc +GQ,GNQ,🇬🇶,Equatorial Guinea,226,Republic of Equatorial Guinea,,Africa,Africa,Southern and middle Africa,developing +GR,GRC,🇬🇷,Greece,300,Hellenic Republic,,Developed Countries,Europe,Southern and eastern Europe,developed +GD,GRD,🇬🇩,Grenada,308,,,Latin America and Caribbean,Latin America and Caribbean,Caribbean,developing +GL,GRL,🇬🇱,Greenland,304,,,Developed Countries,North America,"Greenland, Bermuda + others",developed +GT,GTM,🇬🇹,Guatemala,320,Republic of Guatemala,,Latin America and Caribbean,Latin America and Caribbean,Meso America,developing +GF,GUF,🇬🇫,French Guiana,254,,,Latin America and Caribbean,Latin America and Caribbean,South America,developing +GU,GUM,🇬🇺,Guam,316,,,Asia and developing Pacific,South-East Asia and developing Pacific,Developing Pacific,developing +GY,GUY,🇬🇾,Guyana,328,Republic of Guyana,,Latin America and Caribbean,Latin America and Caribbean,South America,developing +HK,HKG,🇭🇰,Hong Kong,344,Hong Kong Special Administrative Region of China,,Asia and developing Pacific,Eastern Asia,Eastern Asia,developing +HM,HMD,🇭🇲,Heard Island and McDonald Islands,334,,,Developed Countries,Asia-Pacific Developed,Asia-Pacific Developed (others),developed +HN,HND,🇭🇳,Honduras,340,Republic of Honduras,,Latin America and Caribbean,Latin America and Caribbean,Meso America,developing +HR,HRV,🇭🇷,Croatia,191,Republic of Croatia,,Developed Countries,Europe,Southern and eastern Europe,developed +HT,HTI,🇭🇹,Haiti,332,Republic of Haiti,,Latin America and Caribbean,Latin America and Caribbean,Caribbean,ldc +HU,HUN,🇭🇺,Hungary,348,Hungary,,Developed Countries,Europe,Southern and eastern Europe,developed +ID,IDN,🇮🇩,Indonesia,360,Republic of Indonesia,,Asia and developing Pacific,South-East Asia and developing Pacific,South-East Asia,developing +IM,IMN,🇮🇲,Isle of Man,833,,,Developed Countries,Europe,Northern and western Europe,developed +IN,IND,🇮🇳,India,356,Republic of India,,Asia and developing Pacific,Southern Asia,India & Sri Lanka,developing +IO,IOT,🇮🇴,British Indian Ocean Territory,086,,,Africa,Africa,Eastern Africa,developing +IE,IRL,🇮🇪,Ireland,372,,,Developed Countries,Europe,Northern and western Europe,developed +IR,IRN,🇮🇷,"Iran, Islamic Republic of",364,Islamic Republic of Iran,,Middle East,Middle East,Middle East,developing +IQ,IRQ,🇮🇶,Iraq,368,Republic of Iraq,,Middle East,Middle East,Middle East,developing +IS,ISL,🇮🇸,Iceland,352,Republic of Iceland,,Developed Countries,Europe,Northern and western Europe,developed +IL,ISR,🇮🇱,Israel,376,State of Israel,,Middle East,Middle East,Middle East,developed +IT,ITA,🇮🇹,Italy,380,Italian Republic,,Developed Countries,Europe,Southern and eastern Europe,developed +JM,JAM,🇯🇲,Jamaica,388,,,Latin America and Caribbean,Latin America and Caribbean,Caribbean,developing +JE,JEY,🇯🇪,Jersey,832,,,Developed Countries,Europe,Northern and western Europe,developed +JO,JOR,🇯🇴,Jordan,400,Hashemite Kingdom of Jordan,,Middle East,Middle East,Middle East,developing +JP,JPN,🇯🇵,Japan,392,,,Developed Countries,Asia-Pacific Developed,Asia-Pacific Developed (others),developed +KZ,KAZ,🇰🇿,Kazakhstan,398,Republic of Kazakhstan,,Eastern Europe and West-Central Asia,Eurasia,Eurasia,developing +KE,KEN,🇰🇪,Kenya,404,Republic of Kenya,,Africa,Africa,Eastern Africa,developing +KG,KGZ,🇰🇬,Kyrgyzstan,417,Kyrgyz Republic,,Eastern Europe and West-Central Asia,Eurasia,Eurasia,developing +KH,KHM,🇰🇭,Cambodia,116,Kingdom of Cambodia,,Asia and developing Pacific,South-East Asia and developing Pacific,South-East Asia,ldc +KI,KIR,🇰🇮,Kiribati,296,Republic of Kiribati,,Asia and developing Pacific,South-East Asia and developing Pacific,Developing Pacific,ldc +KN,KNA,🇰🇳,Saint Kitts and Nevis,659,,,Latin America and Caribbean,Latin America and Caribbean,Caribbean,developing +KR,KOR,🇰🇷,"Korea, Republic of",410,,South Korea,Asia and developing Pacific,Eastern Asia,Eastern Asia,developing +KW,KWT,🇰🇼,Kuwait,414,State of Kuwait,,Middle East,Middle East,Middle East,developing +LA,LAO,🇱🇦,Lao People's Democratic Republic,418,,,Asia and developing Pacific,South-East Asia and developing Pacific,South-East Asia,ldc +LB,LBN,🇱🇧,Lebanon,422,Lebanese Republic,,Middle East,Middle East,Middle East,developing +LR,LBR,🇱🇷,Liberia,430,Republic of Liberia,,Africa,Africa,Western Africa,ldc +LY,LBY,🇱🇾,Libya,434,Libya,,Africa,Africa,North Africa,developing +LC,LCA,🇱🇨,Saint Lucia,662,,,Latin America and Caribbean,Latin America and Caribbean,Caribbean,developing +LI,LIE,🇱🇮,Liechtenstein,438,Principality of Liechtenstein,,Developed Countries,Europe,Northern and western Europe,developed +LK,LKA,🇱🇰,Sri Lanka,144,Democratic Socialist Republic of Sri Lanka,,Asia and developing Pacific,Southern Asia,India & Sri Lanka,developing +LS,LSO,🇱🇸,Lesotho,426,Kingdom of Lesotho,,Africa,Africa,Southern and middle Africa,ldc +LT,LTU,🇱🇹,Lithuania,440,Republic of Lithuania,,Developed Countries,Europe,Northern and western Europe,developed +LU,LUX,🇱🇺,Luxembourg,442,Grand Duchy of Luxembourg,,Developed Countries,Europe,Northern and western Europe,developed +LV,LVA,🇱🇻,Latvia,428,Republic of Latvia,,Developed Countries,Europe,Northern and western Europe,developed +MO,MAC,🇲🇴,Macao,446,Macao Special Administrative Region of China,,Asia and developing Pacific,Eastern Asia,Eastern Asia,developing +MF,MAF,🇲🇫,Saint Martin (French part),663,,,Latin America and Caribbean,Latin America and Caribbean,Caribbean,developing +MA,MAR,🇲🇦,Morocco,504,Kingdom of Morocco,,Africa,Africa,North Africa,developing +MC,MCO,🇲🇨,Monaco,492,Principality of Monaco,,Developed Countries,Europe,Northern and western Europe,developed +MD,MDA,🇲🇩,"Moldova, Republic of",498,Republic of Moldova,Moldova,Eastern Europe and West-Central Asia,Eurasia,Eurasia,developed +MG,MDG,🇲🇬,Madagascar,450,Republic of Madagascar,,Africa,Africa,Eastern Africa,ldc +MV,MDV,🇲🇻,Maldives,462,Republic of Maldives,,Asia and developing Pacific,Southern Asia,Rest of Southern Asia,developing +MX,MEX,🇲🇽,Mexico,484,United Mexican States,,Latin America and Caribbean,Latin America and Caribbean,Meso America,developing +MH,MHL,🇲🇭,Marshall Islands,584,Republic of the Marshall Islands,,Asia and developing Pacific,South-East Asia and developing Pacific,Developing Pacific,developing +MK,MKD,🇲🇰,North Macedonia,807,Republic of North Macedonia,,Eastern Europe and West-Central Asia,Eurasia,Eurasia,developed +ML,MLI,🇲🇱,Mali,466,Republic of Mali,,Africa,Africa,Western Africa,ldc +MT,MLT,🇲🇹,Malta,470,Republic of Malta,,Developed Countries,Europe,Southern and eastern Europe,developed +MM,MMR,🇲🇲,Myanmar,104,Republic of Myanmar,,Asia and developing Pacific,South-East Asia and developing Pacific,South-East Asia,ldc +ME,MNE,🇲🇪,Montenegro,499,Montenegro,,Developed Countries,Europe,Southern and eastern Europe,developed +MN,MNG,🇲🇳,Mongolia,496,,,Asia and developing Pacific,Eastern Asia,Eastern Asia,developing +MP,MNP,🇲🇵,Northern Mariana Islands,580,Commonwealth of the Northern Mariana Islands,,Asia and developing Pacific,South-East Asia and developing Pacific,Developing Pacific,developing +MZ,MOZ,🇲🇿,Mozambique,508,Republic of Mozambique,,Africa,Africa,Eastern Africa,ldc +MR,MRT,🇲🇷,Mauritania,478,Islamic Republic of Mauritania,,Africa,Africa,Western Africa,ldc +MS,MSR,🇲🇸,Montserrat,500,,,Latin America and Caribbean,Latin America and Caribbean,Caribbean,developing +MQ,MTQ,🇲🇶,Martinique,474,,,Latin America and Caribbean,Latin America and Caribbean,Caribbean,developing +MU,MUS,🇲🇺,Mauritius,480,Republic of Mauritius,,Africa,Africa,Eastern Africa,developing +MW,MWI,🇲🇼,Malawi,454,Republic of Malawi,,Africa,Africa,Eastern Africa,ldc +MY,MYS,🇲🇾,Malaysia,458,,,Asia and developing Pacific,South-East Asia and developing Pacific,South-East Asia,developing +YT,MYT,🇾🇹,Mayotte,175,,,Africa,Africa,Eastern Africa,developing +NA,NAM,🇳🇦,Namibia,516,Republic of Namibia,,Africa,Africa,Southern and middle Africa,developing +NC,NCL,🇳🇨,New Caledonia,540,,,Asia and developing Pacific,South-East Asia and developing Pacific,Developing Pacific,developing +NE,NER,🇳🇪,Niger,562,Republic of the Niger,,Africa,Africa,Western Africa,ldc +NF,NFK,🇳🇫,Norfolk Island,574,,,Developed Countries,Asia-Pacific Developed,Asia-Pacific Developed (others),developed +NG,NGA,🇳🇬,Nigeria,566,Federal Republic of Nigeria,,Africa,Africa,Western Africa,developing +NI,NIC,🇳🇮,Nicaragua,558,Republic of Nicaragua,,Latin America and Caribbean,Latin America and Caribbean,Meso America,developing +NU,NIU,🇳🇺,Niue,570,Niue,,Asia and developing Pacific,South-East Asia and developing Pacific,Developing Pacific,developing +NL,NLD,🇳🇱,Netherlands,528,Kingdom of the Netherlands,,Developed Countries,Europe,Northern and western Europe,developed +NO,NOR,🇳🇴,Norway,578,Kingdom of Norway,,Developed Countries,Europe,Northern and western Europe,developed +NP,NPL,🇳🇵,Nepal,524,Federal Democratic Republic of Nepal,,Asia and developing Pacific,Southern Asia,Rest of Southern Asia,ldc +NR,NRU,🇳🇷,Nauru,520,Republic of Nauru,,Asia and developing Pacific,South-East Asia and developing Pacific,Developing Pacific,developing +NZ,NZL,🇳🇿,New Zealand,554,,,Developed Countries,Asia-Pacific Developed,Australia & New Zealand,developed +OM,OMN,🇴🇲,Oman,512,Sultanate of Oman,,Middle East,Middle East,Middle East,developing +PK,PAK,🇵🇰,Pakistan,586,Islamic Republic of Pakistan,,Asia and developing Pacific,Southern Asia,Rest of Southern Asia,developing +PA,PAN,🇵🇦,Panama,591,Republic of Panama,,Latin America and Caribbean,Latin America and Caribbean,Meso America,developing +PN,PCN,🇵🇳,Pitcairn,612,,,Asia and developing Pacific,South-East Asia and developing Pacific,Developing Pacific,developing +PE,PER,🇵🇪,Peru,604,Republic of Peru,,Latin America and Caribbean,Latin America and Caribbean,South America,developing +PH,PHL,🇵🇭,Philippines,608,Republic of the Philippines,,Asia and developing Pacific,South-East Asia and developing Pacific,South-East Asia,developing +PW,PLW,🇵🇼,Palau,585,Republic of Palau,,Asia and developing Pacific,South-East Asia and developing Pacific,Developing Pacific,developing +PG,PNG,🇵🇬,Papua New Guinea,598,Independent State of Papua New Guinea,,Asia and developing Pacific,South-East Asia and developing Pacific,Developing Pacific,developing +PL,POL,🇵🇱,Poland,616,Republic of Poland,,Developed Countries,Europe,Southern and eastern Europe,developed +PR,PRI,🇵🇷,Puerto Rico,630,,,Latin America and Caribbean,Latin America and Caribbean,Caribbean,developing +KP,PRK,🇰🇵,"Korea, Democratic People's Republic of",408,Democratic People's Republic of Korea,North Korea,Asia and developing Pacific,Eastern Asia,Eastern Asia,developing +PT,PRT,🇵🇹,Portugal,620,Portuguese Republic,,Developed Countries,Europe,Southern and eastern Europe,developed +PY,PRY,🇵🇾,Paraguay,600,Republic of Paraguay,,Latin America and Caribbean,Latin America and Caribbean,South America,developing +PS,PSE,🇵🇸,"Palestine, State of",275,the State of Palestine,,Middle East,Middle East,Middle East,developing +PF,PYF,🇵🇫,French Polynesia,258,,,Asia and developing Pacific,South-East Asia and developing Pacific,Developing Pacific,developing +QA,QAT,🇶🇦,Qatar,634,State of Qatar,,Middle East,Middle East,Middle East,developing +RE,REU,🇷🇪,Réunion,638,,,Africa,Africa,Eastern Africa,developing +RO,ROU,🇷🇴,Romania,642,,,Developed Countries,Europe,Southern and eastern Europe,developed +RU,RUS,🇷🇺,Russian Federation,643,,,Eastern Europe and West-Central Asia,Eurasia,Eurasia,developed +RW,RWA,🇷🇼,Rwanda,646,Rwandese Republic,,Africa,Africa,Eastern Africa,ldc +SA,SAU,🇸🇦,Saudi Arabia,682,Kingdom of Saudi Arabia,,Middle East,Middle East,Middle East,developing +SD,SDN,🇸🇩,Sudan,729,Republic of the Sudan,,Africa,Africa,North Africa,ldc +SN,SEN,🇸🇳,Senegal,686,Republic of Senegal,,Africa,Africa,Western Africa,ldc +SG,SGP,🇸🇬,Singapore,702,Republic of Singapore,,Asia and developing Pacific,South-East Asia and developing Pacific,South-East Asia,developing +GS,SGS,🇬🇸,South Georgia and the South Sandwich Islands,239,,,Latin America and Caribbean,Latin America and Caribbean,South America,developing +SH,SHN,🇸🇭,"Saint Helena, Ascension and Tristan da Cunha",654,,,Africa,Africa,Western Africa,developing +SJ,SJM,🇸🇯,Svalbard and Jan Mayen,744,,,Developed Countries,Europe,Northern and western Europe,developed +SB,SLB,🇸🇧,Solomon Islands,090,,,Asia and developing Pacific,South-East Asia and developing Pacific,Developing Pacific,ldc +SL,SLE,🇸🇱,Sierra Leone,694,Republic of Sierra Leone,,Africa,Africa,Western Africa,ldc +SV,SLV,🇸🇻,El Salvador,222,Republic of El Salvador,,Latin America and Caribbean,Latin America and Caribbean,Meso America,developing +SM,SMR,🇸🇲,San Marino,674,Republic of San Marino,,Developed Countries,Europe,Southern and eastern Europe,developed +SO,SOM,🇸🇴,Somalia,706,Federal Republic of Somalia,,Africa,Africa,Eastern Africa,ldc +PM,SPM,🇵🇲,Saint Pierre and Miquelon,666,,,Developed Countries,North America,"Greenland, Bermuda + others",developed +RS,SRB,🇷🇸,Serbia,688,Republic of Serbia,,Developed Countries,Europe,Southern and eastern Europe,developed +SS,SSD,🇸🇸,South Sudan,728,Republic of South Sudan,,Africa,Africa,Eastern Africa,ldc +ST,STP,🇸🇹,Sao Tome and Principe,678,Democratic Republic of Sao Tome and Principe,,Africa,Africa,Southern and middle Africa,ldc +SR,SUR,🇸🇷,Suriname,740,Republic of Suriname,,Latin America and Caribbean,Latin America and Caribbean,South America,developing +SK,SVK,🇸🇰,Slovakia,703,Slovak Republic,,Developed Countries,Europe,Southern and eastern Europe,developed +SI,SVN,🇸🇮,Slovenia,705,Republic of Slovenia,,Developed Countries,Europe,Southern and eastern Europe,developed +SE,SWE,🇸🇪,Sweden,752,Kingdom of Sweden,,Developed Countries,Europe,Northern and western Europe,developed +SZ,SWZ,🇸🇿,Eswatini,748,Kingdom of Eswatini,,Africa,Africa,Southern and middle Africa,developing +SX,SXM,🇸🇽,Sint Maarten (Dutch part),534,Sint Maarten (Dutch part),,Latin America and Caribbean,Latin America and Caribbean,Caribbean,developing +SC,SYC,🇸🇨,Seychelles,690,Republic of Seychelles,,Africa,Africa,Eastern Africa,developing +SY,SYR,🇸🇾,Syrian Arab Republic,760,,,Middle East,Middle East,Middle East,developing +TC,TCA,🇹🇨,Turks and Caicos Islands,796,,,Latin America and Caribbean,Latin America and Caribbean,Caribbean,developing +TD,TCD,🇹🇩,Chad,148,Republic of Chad,,Africa,Africa,Southern and middle Africa,ldc +TG,TGO,🇹🇬,Togo,768,Togolese Republic,,Africa,Africa,Western Africa,ldc +TH,THA,🇹🇭,Thailand,764,Kingdom of Thailand,,Asia and developing Pacific,South-East Asia and developing Pacific,South-East Asia,developing +TJ,TJK,🇹🇯,Tajikistan,762,Republic of Tajikistan,,Eastern Europe and West-Central Asia,Eurasia,Eurasia,developing +TK,TKL,🇹🇰,Tokelau,772,,,Asia and developing Pacific,South-East Asia and developing Pacific,Developing Pacific,developing +TM,TKM,🇹🇲,Turkmenistan,795,,,Eastern Europe and West-Central Asia,Eurasia,Eurasia,developing +TL,TLS,🇹🇱,Timor-Leste,626,Democratic Republic of Timor-Leste,,Asia and developing Pacific,South-East Asia and developing Pacific,South-East Asia,ldc +TO,TON,🇹🇴,Tonga,776,Kingdom of Tonga,,Asia and developing Pacific,South-East Asia and developing Pacific,Developing Pacific,developing +TT,TTO,🇹🇹,Trinidad and Tobago,780,Republic of Trinidad and Tobago,,Latin America and Caribbean,Latin America and Caribbean,Caribbean,developing +TN,TUN,🇹🇳,Tunisia,788,Republic of Tunisia,,Africa,Africa,North Africa,developing +TR,TUR,🇹🇷,Turkey,792,Republic of Turkey,,Developed Countries,Europe,Southern and eastern Europe,developed +TV,TUV,🇹🇻,Tuvalu,798,,,Asia and developing Pacific,South-East Asia and developing Pacific,Developing Pacific,ldc +TW,TWN,🇹🇼,"Taiwan, Province of China",158,"Taiwan, Province of China",Taiwan,Asia and developing Pacific,Eastern Asia,Eastern Asia,developing +TZ,TZA,🇹🇿,"Tanzania, United Republic of",834,United Republic of Tanzania,Tanzania,Africa,Africa,Eastern Africa,ldc +UG,UGA,🇺🇬,Uganda,800,Republic of Uganda,,Africa,Africa,Eastern Africa,ldc +UA,UKR,🇺🇦,Ukraine,804,,,Developed Countries,Europe,Southern and eastern Europe,developed +UM,UMI,🇺🇲,United States Minor Outlying Islands,581,,,Asia and developing Pacific,South-East Asia and developing Pacific,Developing Pacific,developing +UY,URY,🇺🇾,Uruguay,858,Eastern Republic of Uruguay,,Latin America and Caribbean,Latin America and Caribbean,South America,developing +US,USA,🇺🇸,United States,840,United States of America,,Developed Countries,North America,USA & Canada,developed +UZ,UZB,🇺🇿,Uzbekistan,860,Republic of Uzbekistan,,Eastern Europe and West-Central Asia,Eurasia,Eurasia,developing +VA,VAT,🇻🇦,Holy See (Vatican City State),336,,,Developed Countries,Europe,Southern and eastern Europe,developed +VC,VCT,🇻🇨,Saint Vincent and the Grenadines,670,,,Latin America and Caribbean,Latin America and Caribbean,Caribbean,developing +VE,VEN,🇻🇪,"Venezuela, Bolivarian Republic of",862,Bolivarian Republic of Venezuela,Venezuela,Latin America and Caribbean,Latin America and Caribbean,South America,developing +VG,VGB,🇻🇬,"Virgin Islands, British",092,British Virgin Islands,,Latin America and Caribbean,Latin America and Caribbean,Caribbean,developing +VI,VIR,🇻🇮,"Virgin Islands, U.S.",850,Virgin Islands of the United States,,Latin America and Caribbean,Latin America and Caribbean,Caribbean,developing +VN,VNM,🇻🇳,Viet Nam,704,Socialist Republic of Viet Nam,Vietnam,Asia and developing Pacific,South-East Asia and developing Pacific,South-East Asia,developing +VU,VUT,🇻🇺,Vanuatu,548,Republic of Vanuatu,,Asia and developing Pacific,South-East Asia and developing Pacific,Developing Pacific,ldc +WF,WLF,🇼🇫,Wallis and Futuna,876,,,Asia and developing Pacific,South-East Asia and developing Pacific,Developing Pacific,developing +WS,WSM,🇼🇸,Samoa,882,Independent State of Samoa,,Asia and developing Pacific,South-East Asia and developing Pacific,Developing Pacific,developing +YE,YEM,🇾🇪,Yemen,887,Republic of Yemen,,Middle East,Middle East,Middle East,ldc +ZA,ZAF,🇿🇦,South Africa,710,Republic of South Africa,,Africa,Africa,Southern and middle Africa,developing +ZM,ZMB,🇿🇲,Zambia,894,Republic of Zambia,,Africa,Africa,Eastern Africa,ldc +ZW,ZWE,🇿🇼,Zimbabwe,716,Republic of Zimbabwe,,Africa,Africa,Eastern Africa,developing From aefe26f36a901c2850556502cd79c3c81eb1fc5b Mon Sep 17 00:00:00 2001 From: MichaelTiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> Date: Sun, 27 Feb 2022 21:15:23 -0500 Subject: [PATCH 125/345] Enable reading local data files and read mapping file from countries to regions Added functionality to utils.py to support reading datafiles from within the package itself (using pathlib). Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- ITR/data/template.py | 37 ++++++++++++++++++++++++++++++------- ITR/utils.py | 8 +++++++- 2 files changed, 37 insertions(+), 8 deletions(-) diff --git a/ITR/data/template.py b/ITR/data/template.py index 773e0f04..7e1f431e 100644 --- a/ITR/data/template.py +++ b/ITR/data/template.py @@ -16,7 +16,29 @@ ureg = pint.get_application_registry() Q_ = ureg.Quantity - +from ITR.utils import get_project_root +pkg_root = get_project_root() +df_country_regions = pd.read_csv(f"{pkg_root}/data/country_region_info.csv") + +def ITR_country_to_region(country): + if len(country)==2: + regions = df_country_regions[df_country_regions.alpha_2==country].region_ar6_10 + elif len(country)==3: + regions = df_country_regions[df_country_regions.alpha_3==country].region_ar6_10 + else: + if country in df_country_regions.name: + regions = df_country_regions[df_country_regions.name==country].region_ar6_10 + elif country in df_country_regions.common_name: + regions = df_country_regions[df_country_regions.common_name==country].region_ar6_10 + else: + raise ValueError(f"country {country} not found") + region = regions.squeeze() + if region in ['North America', 'Europe']: + return region + if 'Asia' in region: + return 'Asia' + return 'Global' + class TemplateProviderCompany(BaseCompanyDataProvider): """ Data provider skeleton for CSV files. This class serves primarily for testing purposes only! @@ -102,14 +124,15 @@ def _fixup_name(x): if "Test input data" in df_company_data: input_data_sheet = "Test input data" + df = df_company_data[input_data_sheet] # TODO: Fix market_cap column naming inconsistency - df_company_data[input_data_sheet].rename( + df.rename( columns={'revenue': 'company_revenue', 'market_cap': 'company_market_cap', 'ev': 'company_enterprise_value', 'evic': 'company_ev_plus_cash', 'assets': 'company_total_assets'}, inplace=True) + df.loc[df.region.isnull(), 'region'] = df.apply(lambda x: ITR_country_to_region(x.country), axis=1) - df_fundamentals = df_company_data[input_data_sheet].set_index(ColumnsConfig.COMPANY_ID, - drop=False).convert_dtypes() + df_fundamentals = df.set_index(ColumnsConfig.COMPANY_ID, drop=False).convert_dtypes() # GH https://github.com/pandas-dev/pandas/issues/46044 df_fundamentals.company_id = df_fundamentals.company_id.astype('object') @@ -149,10 +172,10 @@ def _fixup_name(x): # df_historic now ready for conversion to model for each company self.historic_years = [column for column in df_historic_data.columns if type(column) == int] - input_target_sheet = TabsConfig.TEMPLATE_TARGET_DATA + test_target_sheet = TabsConfig.TEMPLATE_TARGET_DATA if "Test target data" in df_company_data: - input_target_sheet = "Test target data" - df_target_data = df_company_data[input_target_sheet].set_index('company_id').convert_dtypes() + test_target_sheet = "Test target data" + df_target_data = df_company_data[test_target_sheet].set_index('company_id').convert_dtypes() # TODO: need to fix Pydantic definition or data to allow optional int. In the mean time... df_target_data.loc[df_target_data.target_start_year.isna(), 'target_start_year'] = 2020 diff --git a/ITR/utils.py b/ITR/utils.py index 59ec04c6..835418d7 100644 --- a/ITR/utils.py +++ b/ITR/utils.py @@ -1,3 +1,9 @@ +from pathlib import Path + +# If this file is moved, the computation of get_project_root may also need to change +def get_project_root() -> Path: + return Path(__file__).parent + import pandas as pd from typing import List, Optional, Tuple @@ -108,4 +114,4 @@ def calculate(portfolio_data: pd.DataFrame, fallback_score: Quantity['delta_degC if anonymize: scores = ts.anonymize_data_dump(scores) - return scores, aggregations \ No newline at end of file + return scores, aggregations From f9de26dbe2313ca901f61475467bacc01f0d34eb Mon Sep 17 00:00:00 2001 From: MichaelTiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> Date: Sun, 27 Feb 2022 21:15:49 -0500 Subject: [PATCH 126/345] Update setup.py Update GitHub source location and python version minimum requirements. Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- setup.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/setup.py b/setup.py index 834d5e18..82f9983d 100644 --- a/setup.py +++ b/setup.py @@ -14,11 +14,11 @@ author_email='joris.cramwinckel@ortec-finance.com', packages=find_packages(), download_url = "https://pypi.org/project/ITR-Temperature-Alignment-Tool/", - url="https://github.com/os-c/ITR", + url="https://github.com/os-climate/ITR", project_urls={ - "Bug Tracker": "https://github.com/os-c/ITR", - "Documentation": 'https://github.com/os-c/ITR', - "Source Code": "https://github.com/os-c/ITR", + "Bug Tracker": "https://github.com/os-climate/ITR", + "Documentation": 'https://github.com/os-climate/ITR', + "Source Code": "https://github.com/os-climate/ITR", }, keywords = ['Climate', 'ITR', 'Finance'], package_data={ @@ -28,7 +28,7 @@ install_requires=['pandas', 'xlrd', 'pydantic'], - python_requires='>=3.6', + python_requires='>=3.8', extras_require={ 'dev': [ 'nose2', From 8400c513d5dec2db78a73cc20c5d9d06efb30acc Mon Sep 17 00:00:00 2001 From: David Kroon Date: Mon, 28 Feb 2022 10:21:37 +0100 Subject: [PATCH 127/345] Update tests Signed-off-by: David Kroon Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- test/test_base_providers.py | 28 +------------- test/test_template_provider.py | 70 +++++++++++++++++----------------- test/utils.py | 29 ++++++++++++++ 3 files changed, 64 insertions(+), 63 deletions(-) create mode 100644 test/utils.py diff --git a/test/test_base_providers.py b/test/test_base_providers.py index e0a2c260..d5f49f9c 100644 --- a/test/test_base_providers.py +++ b/test/test_base_providers.py @@ -14,33 +14,7 @@ from ITR.interfaces import ICompanyData, EScope, ETimeFrames, PortfolioCompany, IEIBenchmarkScopes, \ IProductionBenchmarkScopes from ITR.data.osc_units import ureg, Q_ - - -def assert_pint_series_equal(case: unittest.case, left: pd.Series, right: pd.Series): - # Helper function to avoid bug in pd.testing.assert_series_equal concerning pint series - for d, data in enumerate(left): - case.assertAlmostEqual(data, right[d]) - - for d, data in enumerate(right): - case.assertAlmostEqual(data, left[d]) - - -def assert_pint_frame_equal(case: unittest.case, left: pd.DataFrame, right: pd.DataFrame): - # Helper function to avoid bug in pd.testing.assert_frame_equal concerning pint series - left_flat = left.values.flatten() - right_flat = right.values.flatten() - - errors = [] - for d, data in enumerate(left_flat): - try: - case.assertAlmostEqual(data, right_flat[d]) - except AssertionError as e: - errors.append(e.args[0]) - if errors: - raise AssertionError('\n'.join(errors)) - - for d, data in enumerate(right_flat): - case.assertAlmostEqual(data, left_flat[d]) +from utils import assert_pint_frame_equal, assert_pint_series_equal class TestBaseProvider(unittest.TestCase): diff --git a/test/test_template_provider.py b/test/test_template_provider.py index fbb9ed9f..3d74bc62 100644 --- a/test/test_template_provider.py +++ b/test/test_template_provider.py @@ -14,6 +14,8 @@ from ITR.temperature_score import TemperatureScore from ITR.portfolio_aggregation import PortfolioAggregationMethod from ITR.data.osc_units import ureg, Q_ +from utils import assert_pint_frame_equal +from test_base_providers import assert_pint_series_equal class TestTemplateProvider(unittest.TestCase): @@ -30,14 +32,14 @@ def setUp(self) -> None: benchmark_global_budget=Q_(396, ureg('Gt CO2')), is_AFOLU_included=False) self.template_company_data = TemplateProviderCompany(excel_path=self.company_data_path) self.excel_provider = DataWarehouse(self.template_company_data, self.excel_production_bm, self.excel_EI_bm) - # self.company_ids = ["US00130H1059", "US26441C2044", "KR7005490008"] - self.company_ids = ["US26441C2044"] - # self.company_info_at_base_year = pd.DataFrame( - # [[Q_(1.6982474347547, ureg('t CO2/GJ')), Q_(1.04827859e+08, 'MWh'), 'MWh', 'Electricity Utilities', 'North America'], - # [Q_(0.476586931582279, ureg('t CO2/GJ')), Q_(5.98937002e+08, 'MWh'), 'MWh', 'Electricity Utilities', 'North America'], - # [Q_(0.22457393169277, ureg('t CO2/GJ')), Q_(1.22472003e+08, 'MWh'), 'MWh', 'Electricity Utilities', 'Europe']], - # index=self.company_ids, - # columns=[ColumnsConfig.BASE_EI, ColumnsConfig.GHG_SCOPE12, ColumnsConfig.PRODUCTION_METRIC, ColumnsConfig.SECTOR, ColumnsConfig.REGION]) + self.company_ids = ["US00130H1059", "US26441C2044", "KR7005490008"] + # self.company_ids = ["US26441C2044"] + self.company_info_at_base_year = pd.DataFrame( + [[Q_(1.6982474347547, ureg('t CO2/GJ')), Q_(1.04827859e+08, 'MWh'), 'MWh', 'Electricity Utilities', 'North America'], + [Q_(0.476586931582279, ureg('t CO2/GJ')), Q_(5.98937002e+08, 'MWh'), 'MWh', 'Electricity Utilities', 'North America'], + [Q_(0.22457393169277, ureg('t CO2/GJ')), Q_(1.22472003e+08, 'MWh'), 'MWh', 'Electricity Utilities', 'Europe']], + index=self.company_ids, + columns=[ColumnsConfig.BASE_EI, ColumnsConfig.BASE_YEAR_PRODUCTION, ColumnsConfig.PRODUCTION_METRIC, ColumnsConfig.SECTOR, ColumnsConfig.REGION]) def test_target_projections(self): comids = ['US00130H1059', 'US0185223007', @@ -58,7 +60,7 @@ def test_target_projections(self): 'US69331C1080', 'US69349H1077', 'KR7005490008', ] - company_data = get_company_data(comids) + company_data = self.template_company_data.get_company_data(comids) for c in company_data: company_sector_region_info = pd.DataFrame({ ColumnsConfig.COMPANY_ID: [ c.company_id ], @@ -126,8 +128,7 @@ def test_temp_score_from_excel_data(self): company_id=company, investment_value=100, company_isin=company, - ) - ) + )) # portfolio data portfolio_data = ITR.utils.get_data(self.excel_provider, portfolio) scores = temp_score.calculate(portfolio_data) @@ -165,8 +166,8 @@ def test_get_projected_value(self): TemperatureScoreConfig.CONTROLS_CONFIG.target_end_year + 1), index=self.company_ids, dtype='pint[t CO2/GJ]').astype('object') - pd.testing.assert_frame_equal(self.template_company_data.get_company_projected_trajectories(self.company_ids), - expected_data, check_names=False) + trajectories = self.template_company_data.get_company_projected_trajectories(self.company_ids) + assert_pint_frame_equal(self, trajectories, expected_data) def test_get_benchmark(self): expected_data = pd.DataFrame([pd.Series([1.698247435, 1.581691084, 1.386040647, 1.190390211, 0.994739774, 0.799089338, @@ -194,37 +195,33 @@ def test_get_benchmark(self): index=self.company_ids, columns=range(TemperatureScoreConfig.CONTROLS_CONFIG.base_year, TemperatureScoreConfig.CONTROLS_CONFIG.target_end_year + 1)) - pd.testing.assert_frame_equal( - self.excel_EI_bm.get_SDA_intensity_benchmarks(self.company_info_at_base_year), - expected_data) + benchmarks = self.excel_EI_bm.get_SDA_intensity_benchmarks(self.company_info_at_base_year) + assert_pint_frame_equal(self, benchmarks, expected_data) def test_get_projected_production(self): - expected_data_2025 = pd.Series([1.06866370e+08, 6.10584093e+08, 1.28474171e+08], + expected_data_2025 = pd.Series([106866369.91163988, 610584093.0081439, 128474170.5748834], index=self.company_ids, name=2025, dtype='pint[MWh]').astype('object') - pd.testing.assert_series_equal( - self.excel_production_bm.get_company_projected_production(self.company_info_at_base_year)[2025], - expected_data_2025) + production = self.excel_production_bm.get_company_projected_production(self.company_info_at_base_year)[2025] + assert_pint_series_equal(self, production, expected_data_2025) def test_get_cumulative_value(self): - projected_emission = pd.DataFrame([[1.0, 2.0], [3.0, 4.0]], - dtype='pint[t CO2/GJ]') - projected_production = pd.DataFrame([[2.0, 4.0], [6.0, 8.0]], - dtype='pint[GJ]') - expected_data = pd.Series([10.0, 50.0], dtype='pint[Mt CO2]') - pd.testing.assert_series_equal( - self.excel_provider._get_cumulative_emissions(projected_emission_intensity=projected_emission, - projected_production=projected_production), expected_data) + projected_emission = pd.DataFrame([[1.0, 2.0], [3.0, 4.0]], dtype='pint[t CO2/GJ]') + projected_production = pd.DataFrame([[2.0, 4.0], [6.0, 8.0]], dtype='pint[GJ]') + expected_data = pd.Series([10.0, 50.0], dtype='pint[t CO2]') + emissions = self.excel_provider._get_cumulative_emissions(projected_emission_intensity=projected_emission, + projected_production=projected_production) + assert_pint_series_equal(self, emissions, expected_data) def test_get_company_data(self): # "US0079031078" and "US00724F1012" are both Electricity Utilities company_1 = self.excel_provider.get_preprocessed_company_data(self.company_ids)[0] company_2 = self.excel_provider.get_preprocessed_company_data(self.company_ids)[1] - self.assertEqual(company_1.company_name, "Company AG") - self.assertEqual(company_2.company_name, "Company AH") - self.assertEqual(company_1.company_id, "US0079031078") - self.assertEqual(company_2.company_id, "US00724F1012") + self.assertEqual(company_1.company_name, "AES Corp.") + self.assertEqual(company_2.company_name, "Duke Energy Corp.") + self.assertEqual(company_1.company_id, "US00130H1059") + self.assertEqual(company_2.company_id, "US26441C2044") self.assertAlmostEqual(company_1.ghg_s1s2, Q_(104827858.636039, ureg('t CO2'))) self.assertAlmostEqual(company_2.ghg_s1s2, Q_(598937001.892059, ureg('t CO2'))) self.assertAlmostEqual(company_1.cumulative_budget, Q_(1362284467.0830, ureg('t CO2')), places=4) @@ -235,15 +232,16 @@ def test_get_company_data(self): self.assertAlmostEqual(company_2.cumulative_trajectory, Q_(8631481789.38558, ureg('t CO2')), places=4) def test_get_value(self): - expected_data = pd.Series([20248547997.0, - 276185899.0, - 10283015132.0], + expected_data = pd.Series([10189000000.0, + 25079000000.0, + 55955872344.1], index=pd.Index(self.company_ids, name='company_id'), name='company_revenue') pd.testing.assert_series_equal(self.template_company_data.get_value(company_ids=self.company_ids, - variable_name=ColumnsConfig.COMPANY_REVENUE), + variable_name=ColumnsConfig.COMPANY_REVENUE), expected_data) + if __name__ == "__main__": test = TestTemplateProvider() test.setUp() diff --git a/test/utils.py b/test/utils.py new file mode 100644 index 00000000..e7978fd1 --- /dev/null +++ b/test/utils.py @@ -0,0 +1,29 @@ +import unittest +import pandas as pd + + +def assert_pint_series_equal(case: unittest.case, left: pd.Series, right: pd.Series): + # Helper function to avoid bug in pd.testing.assert_series_equal concerning pint series + for d, data in enumerate(left): + case.assertAlmostEqual(data, right[d]) + + for d, data in enumerate(right): + case.assertAlmostEqual(data, left[d]) + + +def assert_pint_frame_equal(case: unittest.case, left: pd.DataFrame, right: pd.DataFrame): + # Helper function to avoid bug in pd.testing.assert_frame_equal concerning pint series + left_flat = left.values.flatten() + right_flat = right.values.flatten() + + errors = [] + for d, data in enumerate(left_flat): + try: + case.assertAlmostEqual(data, right_flat[d]) + except AssertionError as e: + errors.append(e.args[0]) + if errors: + raise AssertionError('\n'.join(errors)) + + for d, data in enumerate(right_flat): + case.assertAlmostEqual(data, left_flat[d]) \ No newline at end of file From 8a1b1eb4491c8f7bdfbbc72c50a5e4314fcdcdaa Mon Sep 17 00:00:00 2001 From: MichaelTiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> Date: Mon, 28 Feb 2022 14:24:48 -0500 Subject: [PATCH 128/345] Update ITR_dash_app_develop.py Replace obsolete link to portfolio template and replace with doc page from dash. Also, the template_portfolio to be uploaded uses a ';' separator (unless we decide to change that). TODO: need to properly use document root concept (recently introduced in ITR.utils). Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- examples/ITR_dash_app_develop.py | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/examples/ITR_dash_app_develop.py b/examples/ITR_dash_app_develop.py index 0c36d0e5..b0a6c3bd 100644 --- a/examples/ITR_dash_app_develop.py +++ b/examples/ITR_dash_app_develop.py @@ -38,6 +38,10 @@ from pint import Quantity from pint_pandas import PintType +from ITR.utils import get_project_root +pkg_root = get_project_root() + + # Initial calculations print('Start!!!!!!!!!') @@ -52,6 +56,8 @@ benchmark_EI_TPI_below_2_file = "benchmark_EI_TPI_below_2_degrees.json" root = os.path.dirname(os.path.abspath("__file__")) +print(f"root = {root}; pkg_root = {pkg_root}") + # root = os.path.dirname(os.path.abspath(__file__)) # company_json = os.path.join(root, directory1, directory2, directory3, company_json_file) benchmark_prod_json = os.path.join(root, directory1, directory2, directory3, benchmark_prod_json_file) @@ -306,9 +312,9 @@ def dequantify_plotly(px_func, df, **kwargs): ], width=2, ), - dbc.Col(html.Div(dbc.Button('Get template', size="lg", color="secondary", - href="https://raw.githubusercontent.com/os-c/ITR/e772349117d41e1b62e3f9bcfb904b7e9c5e6c35/examples/data/example_portfolio.csv?token=AD3GZXC7GFH2O6EC7Z3X3KLBOE5MO", - download="Dummy_portfolio.csv.txt", + dbc.Col(html.Div(dbc.Button('Get template (needs implementation)', size="lg", color="secondary", + href="https://docs.faculty.ai/user-guide/apps/examples/dash_file_upload_download.html", + download="dash_file_upload_download.html", external_link=True, ), ), @@ -484,7 +490,7 @@ def parse_contents(contents, filename): decoded = base64.b64decode(content_string) try: if 'csv' in filename: # Assume that the user uploaded a CSV file - df = pd.read_csv(io.StringIO(decoded.decode('iso-8859-1'))) + df = pd.read_csv(io.StringIO(decoded.decode('iso-8859-1')),sep=';') elif 'xls' in filename: # Assume that the user uploaded an excel file df = pd.read_excel(io.BytesIO(decoded)) # print(df) From e79b3c2030d2d3ed554b89bc0b9d95bb58452b90 Mon Sep 17 00:00:00 2001 From: David Kroon Date: Mon, 28 Feb 2022 20:44:04 +0100 Subject: [PATCH 129/345] Fix some tests Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- ITR/data/data_warehouse.py | 20 +++++----- ITR/data/excel.py | 7 ++-- test/test_excel_provider.py | 18 ++++----- test/test_template_provider.py | 72 ++++++++++++++++++---------------- test/utils.py | 7 +++- 5 files changed, 68 insertions(+), 56 deletions(-) diff --git a/ITR/data/data_warehouse.py b/ITR/data/data_warehouse.py index d6abda14..9f7631be 100644 --- a/ITR/data/data_warehouse.py +++ b/ITR/data/data_warehouse.py @@ -69,24 +69,24 @@ def get_preprocessed_company_data(self, company_ids: List[str]) -> List[ICompany company_info_at_base_year), projected_production=projected_production).rename(self.column_config.CUMULATIVE_BUDGET) df_company_data = pd.concat([df_company_data, df_trajectory, df_target, df_budget], axis=1) - df_company_data[self.column_config.BENCHMARK_GLOBAL_BUDGET] = pd.Series([self.benchmarks_projected_emission_intensity.benchmark_global_budget]* - len(df_company_data), dtype='pint[Gt CO2]', - index=df_company_data.index) - df_company_data[self.column_config.BENCHMARK_TEMP] = pd.Series([self.benchmarks_projected_emission_intensity.benchmark_temperature]* - len(df_company_data), dtype='pint[delta_degC]', - index=df_company_data.index) + df_company_data[self.column_config.BENCHMARK_GLOBAL_BUDGET] = \ + pd.Series([self.benchmarks_projected_emission_intensity.benchmark_global_budget] * len(df_company_data), + dtype='pint[Gt CO2]', + index=df_company_data.index) + df_company_data[self.column_config.BENCHMARK_TEMP] = \ + pd.Series([self.benchmarks_projected_emission_intensity.benchmark_temperature] * len(df_company_data), + dtype='pint[delta_degC]', + index=df_company_data.index) with warnings.catch_warnings(): warnings.simplefilter("ignore") # See https://github.com/hgrecco/pint-pandas/issues/114 - for col in [ self.column_config.CUMULATIVE_TRAJECTORY, self.column_config.CUMULATIVE_TARGET, self.column_config.CUMULATIVE_BUDGET]: + for col in [self.column_config.CUMULATIVE_TRAJECTORY, self.column_config.CUMULATIVE_TARGET, self.column_config.CUMULATIVE_BUDGET]: df_company_data[col] = df_company_data[col].apply(lambda x: str(x)) companies = df_company_data.to_dict(orient="records") - aggregate_company_data: List[ICompanyAggregates] = [ICompanyAggregates.parse_obj(company) for company in - companies] + aggregate_company_data = [ICompanyAggregates.parse_obj(company) for company in companies] return aggregate_company_data def _convert_df_to_model(self, df_company_data: pd.DataFrame) -> List[ICompanyAggregates]: - """ transforms Dataframe Company data and preprocessed values into list of ICompanyAggregates instances diff --git a/ITR/data/excel.py b/ITR/data/excel.py index 4b91dd89..3603d7f5 100644 --- a/ITR/data/excel.py +++ b/ITR/data/excel.py @@ -116,9 +116,10 @@ def __init__(self, excel_path: str, benchmark_temperature: Quantity['delta_degC' # TODO: Fix units for Steel super().__init__( IEIBenchmarkScopes(benchmark_metric={'units':'t CO2/MWh'}, S1S2=EI_benchmarks, - benchmark_temperature=benchmark_temperature, - benchmark_global_budget=benchmark_global_budget, - is_AFOLU_included=is_AFOLU_included), column_config, + benchmark_temperature=benchmark_temperature, + benchmark_global_budget=benchmark_global_budget, + is_AFOLU_included=is_AFOLU_included), + column_config, tempscore_config) def _check_sector_data(self) -> None: diff --git a/test/test_excel_provider.py b/test/test_excel_provider.py index 52be43d9..fce3482e 100644 --- a/test/test_excel_provider.py +++ b/test/test_excel_provider.py @@ -79,28 +79,28 @@ def test_temp_score_from_excel_data(self): self.assertAlmostEqual(agg_scores.long.S1S2.all.score, Q_(2.259, ureg.delta_degC), places=2) def test_get_projected_value(self): - expected_data = pd.DataFrame([[1.698247435, 1.698247435, 1.590828573, 1.492707987, 1.403890821, 1.325025884, - 1.256900833, 1.199892962, 1.153286422, 1.115132019, 1.082871619, 1.054062505, - 1.026649109, 0.99885963, 0.969029076, 0.935600151, 0.897456359, 0.854466423, - 0.807721858, 0.759088111, 0.710432718, 0.663134402, 0.618007985, 0.575439357, - 0.535546775, 0.498300211, 0.463594864, 0.431292461, 0.401243246, 0.373297218, - 0.347309599, 0.32314329], - [0.476586932, 0.476586932, 0.464695628, 0.464754889, 0.466332369, 0.469162115, + expected_data = pd.DataFrame([[0.476586932, 0.476586932, 0.464695628, 0.464754889, 0.466332369, 0.469162115, 0.472725797, 0.47629738, 0.479176649, 0.480954576, 0.481532513, 0.480898667, 0.478873144, 0.474920056, 0.468037326, 0.456822975, 0.439924142, 0.416868713, 0.38867473, 0.357527534, 0.325789571, 0.295235835, 0.266872969, 0.241107715, 0.21798084, 0.197345262, 0.178974681, 0.162622136, 0.148048657, 0.135035628, 0.123388813, 0.112938349], + [1.698247435, 1.698247435, 1.590828573, 1.492707987, 1.403890821, 1.325025884, + 1.256900833, 1.199892962, 1.153286422, 1.115132019, 1.082871619, 1.054062505, + 1.026649109, 0.99885963, 0.969029076, 0.935600151, 0.897456359, 0.854466423, + 0.807721858, 0.759088111, 0.710432718, 0.663134402, 0.618007985, 0.575439357, + 0.535546775, 0.498300211, 0.463594864, 0.431292461, 0.401243246, 0.373297218, + 0.347309599, 0.32314329], [0.224573932, 0.258012985, 0.261779459, 0.26416071, 0.266503379, 0.268691114, 0.270569413, 0.271980435, 0.272823337, 0.273080838, 0.272767105, 0.27183449, 0.270090124, 0.267129877, 0.262302026, 0.254777592, 0.243845281, 0.229393209, 0.212192429, 0.193616639, 0.175038148, 0.157423255, 0.141276866, 0.12676707, 0.113867496, 0.102458357, 0.092385201, 0.083489223, 0.0756213, 0.068647473, 0.062450199, 0.056927654]], - columns=range(TemperatureScoreConfig.CONTROLS_CONFIG.base_year, - TemperatureScoreConfig.CONTROLS_CONFIG.target_end_year + 1), index=self.company_ids, dtype='pint[t CO2/GJ]').astype('object') + expected_data.columns = range(TemperatureScoreConfig.CONTROLS_CONFIG.base_year, + TemperatureScoreConfig.CONTROLS_CONFIG.target_end_year + 1) trajectories = self.excel_company_data.get_company_projected_trajectories(self.company_ids) assert_pint_frame_equal(self, trajectories, expected_data) diff --git a/test/test_template_provider.py b/test/test_template_provider.py index 3d74bc62..9a589e49 100644 --- a/test/test_template_provider.py +++ b/test/test_template_provider.py @@ -20,7 +20,7 @@ class TestTemplateProvider(unittest.TestCase): """ - Test the excel provider + Test the excel template provider """ def setUp(self) -> None: @@ -170,31 +170,37 @@ def test_get_projected_value(self): assert_pint_frame_equal(self, trajectories, expected_data) def test_get_benchmark(self): - expected_data = pd.DataFrame([pd.Series([1.698247435, 1.581691084, 1.386040647, 1.190390211, 0.994739774, 0.799089338, - 0.782935186, 0.677935928, 0.572936671, 0.467937413, 0.362938156, 0.257938898, - 0.233746281, 0.209553665, 0.185361048, 0.161168432, 0.136975815, 0.124810886, - 0.112645956, 0.100481026, 0.088316097, 0.076151167, 0.062125588, 0.048100009, - 0.034074431, 0.020048852, 0.006023273, 0.005843878, 0.005664482, 0.005485087, - 0.005305691, 0.005126296 - ],name='US0079031078', dtype='pint[t CO2/GJ]'), - pd.Series([0.476586932, 0.444131055, 0.389650913, 0.335170772, 0.28069063, 0.226210489, - 0.22171226, 0.192474531, 0.163236802, 0.133999073, 0.104761344, 0.075523615, - 0.068787023, 0.062050431, 0.055313839, 0.048577247, 0.041840655, 0.038453251, - 0.035065847, 0.031678443, 0.028291039, 0.024903635, 0.020998121, 0.017092607, - 0.013187093, 0.009281579, 0.005376065, 0.005326111, 0.005276157, 0.005226203, - 0.005176249, 0.005126296 - ],name='US00724F1012', dtype='pint[t CO2/GJ]'), - pd.Series([0.224573932, 0.17975612, 0.163761501, 0.147766883, 0.131772265, 0.115777646, - 0.099783028, 0.090628361, 0.081473693, 0.072319026, 0.063164359, 0.054009692, - 0.050089853, 0.046170015, 0.042250176, 0.038330338, 0.034410499, 0.031104249, - 0.027797999, 0.024491748, 0.021185498, 0.017879248, 0.016155615, 0.014431983, - 0.012708351, 0.010984719, 0.009261087, 0.008488943, 0.007716798, 0.006944654, - 0.00617251, 0.005400365 - ],name='FR0000125338', dtype='pint[t CO2/GJ]') + expected_data = pd.DataFrame([pd.Series([1.6982474347547,1.58143621150052,1.3853579488631413,1.1892796862257624, + 0.9932014235883839,0.7971231609510052,0.7809336851788673,0.6757048271942354, + 0.5704759692096036,0.46524711122497175,0.3600182532403398,0.2547893952557078, + 0.23054387703774004,0.20629835881977232,0.1820528406018046,0.15780732238383688, + 0.1335618041658692,0.12137027360245764,0.10917874303904605,0.09698721247563447, + 0.08479568191222286,0.07260415134881128,0.058547903118739995,0.044491654888668734, + 0.030435406658597484,0.016379158428526226,0.002322910198454965,0.0021431223587553565, + 0.0019633345190557478,0.001783546679356139,0.0016037588396565301,0.0014239709999569286 + ], name='US0079031078', dtype='pint[t CO2/GJ]'), + pd.Series([0.476586931582279,0.4438761824346462,0.3889682148288414,0.33406024722303657, + 0.2791522796172317,0.2242443120114269,0.21971075893269795,0.19024342967498475, + 0.16077610041727156,0.13130877115955836,0.10184144190184515,0.07237411264413192, + 0.06558461894405697,0.05879512524398202,0.05200563154390709,0.045216137843832147, + 0.038426644143757224,0.03501263916310838,0.03159863418245954,0.028184629201810696, + 0.024770624221161847,0.021356619240513006,0.017420435738605664,0.013484252236698325, + 0.009548068734790988,0.005611885232883652,0.0016757017309763137,0.0016253555847724364, + 0.001575009438568559,0.0015246632923646814,0.0014743171461608039,0.0014239709999569286 + ], name='US00724F1012', dtype='pint[t CO2/GJ]'), + pd.Series([0.22457393169277, 0.17895857241820134, 0.16267932465294896, 0.1464000768876966, + 0.130120829122444, 0.11384158135719184, 0.09756233359193943, 0.0882447561051738, + 0.078927178618408, 0.06960960113164248, 0.06029202364487683, 0.0509744461581112, + 0.046984852960782, 0.04299525976345229, 0.03900566656612284, 0.0350160733687934, + 0.031026480171464, 0.02766139400289410, 0.02429630783432425, 0.0209312216657544, + 0.017566135497185, 0.01420104932861466, 0.01244674461183282, 0.0106924398950510, + 0.008938135178269, 0.00718383046148729, 0.00542952574470545, 0.0046436408978128, + 0.003857756050920, 0.00307187120402739, 0.00228598635713470, 0.0015001015102420], + name='FR0000125338', dtype='pint[t CO2/GJ]') ], - index=self.company_ids, - columns=range(TemperatureScoreConfig.CONTROLS_CONFIG.base_year, - TemperatureScoreConfig.CONTROLS_CONFIG.target_end_year + 1)) + index=self.company_ids) + expected_data.columns = list(range(TemperatureScoreConfig.CONTROLS_CONFIG.base_year, + TemperatureScoreConfig.CONTROLS_CONFIG.target_end_year + 1)) benchmarks = self.excel_EI_bm.get_SDA_intensity_benchmarks(self.company_info_at_base_year) assert_pint_frame_equal(self, benchmarks, expected_data) @@ -222,14 +228,14 @@ def test_get_company_data(self): self.assertEqual(company_2.company_name, "Duke Energy Corp.") self.assertEqual(company_1.company_id, "US00130H1059") self.assertEqual(company_2.company_id, "US26441C2044") - self.assertAlmostEqual(company_1.ghg_s1s2, Q_(104827858.636039, ureg('t CO2'))) - self.assertAlmostEqual(company_2.ghg_s1s2, Q_(598937001.892059, ureg('t CO2'))) - self.assertAlmostEqual(company_1.cumulative_budget, Q_(1362284467.0830, ureg('t CO2')), places=4) - self.assertAlmostEqual(company_2.cumulative_budget, Q_(2262242040.68059, ureg('t CO2')), places=4) - self.assertAlmostEqual(company_1.cumulative_target, Q_(3769096510.09909, ureg('t CO2')), places=4) - self.assertAlmostEqual(company_2.cumulative_target, Q_(5912426347.23670, ureg('t CO2')), places=4) - self.assertAlmostEqual(company_1.cumulative_trajectory, Q_(3745094638.52858, ureg('t CO2')), places=4) - self.assertAlmostEqual(company_2.cumulative_trajectory, Q_(8631481789.38558, ureg('t CO2')), places=4) + self.assertAlmostEqual(company_1.ghg_s1s2, Q_(43215000.0, ureg('t CO2')), places=7) + self.assertAlmostEqual(company_2.ghg_s1s2, Q_(82018839.2, ureg('t CO2')), places=7) + self.assertAlmostEqual(company_1.cumulative_budget, Q_(47988154.144799985, ureg('t CO2')), places=7) + self.assertAlmostEqual(company_2.cumulative_budget, Q_(673654041.4715265, ureg('t CO2')), places=7) + self.assertAlmostEqual(company_1.cumulative_target, Q_(287877763.61957714, ureg('t CO2')), places=7) + self.assertAlmostEqual(company_2.cumulative_target, Q_(1072738125.127108, ureg('t CO2')), places=7) + self.assertAlmostEqual(company_1.cumulative_trajectory, Q_(1018535561.45581, ureg('t CO2')), places=7) + self.assertAlmostEqual(company_2.cumulative_trajectory, Q_(2933704424.3851283, ureg('t CO2')), places=7) def test_get_value(self): expected_data = pd.Series([10189000000.0, diff --git a/test/utils.py b/test/utils.py index e7978fd1..d2fe8d46 100644 --- a/test/utils.py +++ b/test/utils.py @@ -26,4 +26,9 @@ def assert_pint_frame_equal(case: unittest.case, left: pd.DataFrame, right: pd.D raise AssertionError('\n'.join(errors)) for d, data in enumerate(right_flat): - case.assertAlmostEqual(data, left_flat[d]) \ No newline at end of file + try: + case.assertAlmostEqual(data, left_flat[d]) + except AssertionError as e: + errors.append((e.args[0])) + if errors: + raise AssertionError('\n'.join(errors)) \ No newline at end of file From f2ec9ff2712a8bf12a03de097b6c4f15421531d8 Mon Sep 17 00:00:00 2001 From: David Kroon Date: Mon, 28 Feb 2022 22:48:04 +0100 Subject: [PATCH 130/345] Fix test and 2019 AES corp production data Signed-off-by: David Kroon Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- ITR/data/base_providers.py | 4 +- .../inputs/20220215 ITR Tool Sample Data.xlsx | Bin 78097 -> 76877 bytes test/test_template_provider.py | 41 ++++++++---------- 3 files changed, 20 insertions(+), 25 deletions(-) diff --git a/ITR/data/base_providers.py b/ITR/data/base_providers.py index 839e4fc5..63413b6c 100644 --- a/ITR/data/base_providers.py +++ b/ITR/data/base_providers.py @@ -255,7 +255,9 @@ def _convert_projections_to_series(self, company: ICompanyData, feature: str, print(f"missing target scope data for {company.company_name} :: {scope}") error() else: - projections = company_dict[feature][scopes[0]]['projections'] + # This clause is only accessed if the scope is S1S2 or S1S2S3 of which only one scope is provided. + # projections = company_dict[feature][scopes[0]]['projections'] + projections = [] return pd.Series( {p['year']: p['value'] for p in projections }, name=company.company_id, dtype=f'pint[{emissions_units}/{production_units}]') diff --git a/test/inputs/20220215 ITR Tool Sample Data.xlsx b/test/inputs/20220215 ITR Tool Sample Data.xlsx index 561779796a57a6d54bfb88c22c09ca28b9f8deed..a32b8e8c592712699b2cafc996425c92f8cc33c1 100644 GIT binary patch delta 51828 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
  • y-^|6>g<7e`<=#P?+zOPO~dSDZ8vKs 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 None: self.template_company_data = TemplateProviderCompany(excel_path=self.company_data_path) self.excel_provider = DataWarehouse(self.template_company_data, self.excel_production_bm, self.excel_EI_bm) self.company_ids = ["US00130H1059", "US26441C2044", "KR7005490008"] - # self.company_ids = ["US26441C2044"] self.company_info_at_base_year = pd.DataFrame( [[Q_(1.6982474347547, ureg('t CO2/GJ')), Q_(1.04827859e+08, 'MWh'), 'MWh', 'Electricity Utilities', 'North America'], [Q_(0.476586931582279, ureg('t CO2/GJ')), Q_(5.98937002e+08, 'MWh'), 'MWh', 'Electricity Utilities', 'North America'], @@ -144,29 +144,22 @@ def test_temp_score_from_excel_data(self): self.assertAlmostEqual(agg_scores.long.S1S2.all.score, Q_(2.259, ureg.delta_degC), places=2) def test_get_projected_value(self): - expected_data = pd.DataFrame([[1.698247435, 1.698247435, 1.590828573, 1.492707987, 1.403890821, 1.325025884, - 1.256900833, 1.199892962, 1.153286422, 1.115132019, 1.082871619, 1.054062505, - 1.026649109, 0.99885963, 0.969029076, 0.935600151, 0.897456359, 0.854466423, - 0.807721858, 0.759088111, 0.710432718, 0.663134402, 0.618007985, 0.575439357, - 0.535546775, 0.498300211, 0.463594864, 0.431292461, 0.401243246, 0.373297218, - 0.347309599, 0.32314329], - [0.476586932, 0.476586932, 0.464695628, 0.464754889, 0.466332369, 0.469162115, - 0.472725797, 0.47629738, 0.479176649, 0.480954576, 0.481532513, 0.480898667, - 0.478873144, 0.474920056, 0.468037326, 0.456822975, 0.439924142, 0.416868713, - 0.38867473, 0.357527534, 0.325789571, 0.295235835, 0.266872969, 0.241107715, - 0.21798084, 0.197345262, 0.178974681, 0.162622136, 0.148048657, 0.135035628, - 0.123388813, 0.112938349], - [0.224573932, 0.258012985, 0.261779459, 0.26416071, 0.266503379, 0.268691114, - 0.270569413, 0.271980435, 0.272823337, 0.273080838, 0.272767105, 0.27183449, - 0.270090124, 0.267129877, 0.262302026, 0.254777592, 0.243845281, 0.229393209, - 0.212192429, 0.193616639, 0.175038148, 0.157423255, 0.141276866, 0.12676707, - 0.113867496, 0.102458357, 0.092385201, 0.083489223, 0.0756213, 0.068647473, - 0.062450199, 0.056927654]], - columns=range(TemperatureScoreConfig.CONTROLS_CONFIG.base_year, - TemperatureScoreConfig.CONTROLS_CONFIG.target_end_year + 1), - index=self.company_ids, - dtype='pint[t CO2/GJ]').astype('object') - trajectories = self.template_company_data.get_company_projected_trajectories(self.company_ids) + company_ids = ["US00130H1059", "KR7005490008"] + expected_data = pd.DataFrame([pd.Series( + [605.1694925804982,574.1215117186019,555.4511355634547,537.3879182390771,519.9121149988865, + 503.0046231935541,486.6469613900634,470.8212491698162,455.5101875837016,440.6970402427642, + 426.36561502380243,412.5002463698985,399.08577816653377,386.10754717457115,373.5513670019951, + 361.4035125968896,349.65070524470207,338.28009805339593,327.2792619106238,316.6361718975723, + 306.3391941446274,296.3770731144923,286.7389192988567,277.4141973151697,268.39271439050435, + 259.66460921992547,251.22034118718275,243.05067993594568,235.14669528018078,227.49974744264256, + 220.10147761080776,212.94379879992977], name='US0079031078', dtype='pint[t CO2/GWh]'), + pd.Series( + [2.1951083625828733,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0, + 2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0], name='KR7005490008', dtype='pint[t CO2/Fe_ton]')], + index=company_ids) + expected_data.columns = range(TemperatureScoreConfig.CONTROLS_CONFIG.base_year, + TemperatureScoreConfig.CONTROLS_CONFIG.target_end_year + 1) + trajectories = self.template_company_data.get_company_projected_trajectories(company_ids) assert_pint_frame_equal(self, trajectories, expected_data) def test_get_benchmark(self): From f7fc99200ecba0bffe1c91a30339da1b56253c8d Mon Sep 17 00:00:00 2001 From: MichaelTiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> Date: Tue, 1 Mar 2022 05:14:28 -0500 Subject: [PATCH 131/345] Remove non-idiomatic use of .keys() It is non-idiomatic to use the .keys() function in certain looping contexts because python will automatically infer that from the context. So clean up code from this: for x in dict.keys(): to this: for x in dict: Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- ITR/data/base_providers.py | 4 ++-- ITR/data/excel.py | 6 +++--- ITR/data/template.py | 2 +- examples/ITR_dash_app_develop.py | 2 +- 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/ITR/data/base_providers.py b/ITR/data/base_providers.py index 63413b6c..aea97c1f 100644 --- a/ITR/data/base_providers.py +++ b/ITR/data/base_providers.py @@ -499,7 +499,7 @@ def _compute_missing_historic_ei(self, companies, historic_data): def _add_projections_to_companies(self, companies: List[ICompanyData], extrapolations: pd.DataFrame): for company in companies: scope_projections = {} - for scope in ICompanyEIProjectionsScopes.__fields__.keys(): + for scope in ICompanyEIProjectionsScopes.__fields__: if not company.historic_data.emissions.__getattribute__(scope): continue results = extrapolations.loc[(company.company_id, VariablesConfig.EMISSIONS_INTENSITIES, scope)] @@ -631,7 +631,7 @@ def project_ei_targets(self, targets: List[ITargetData], historic_data: IHistori If the company has no target or the target can't be processed, then the output the emission database, unprocessed """ ei_projection_scopes = {"S1": None, "S2": None, "S1S2": None, "S3": None, "S1S2S3": None} - for scope in ei_projection_scopes.keys(): + for scope in ei_projection_scopes: scope_targets = [target for target in targets if target.target_scope.name == scope] if not scope_targets: continue diff --git a/ITR/data/excel.py b/ITR/data/excel.py index 3603d7f5..67d46e9e 100644 --- a/ITR/data/excel.py +++ b/ITR/data/excel.py @@ -154,7 +154,7 @@ def _check_company_data(self, df: pd.DataFrame) -> None: """ required_tabs = [TabsConfig.FUNDAMENTAL, TabsConfig.PROJECTED_TARGET] optional_tabs = [TabsConfig.PROJECTED_EI, TabsConfig.HISTORIC_DATA] - missing_tabs = [tab for tab in required_tabs + optional_tabs if tab not in df.keys()] + missing_tabs = [tab for tab in required_tabs + optional_tabs if tab not in df] assert not any(tab in missing_tabs for tab in required_tabs), f"Tabs {required_tabs} are required." assert not all(tab in missing_tabs for tab in optional_tabs), f"Either of the tabs {optional_tabs} is required." @@ -172,11 +172,11 @@ def _convert_from_excel_data(self, excel_path: str) -> List[ICompanyData]: df_fundamentals[ColumnsConfig.PRODUCTION_METRIC] = df_fundamentals[ColumnsConfig.SECTOR].map(sector_to_production_metric) company_ids = df_fundamentals[ColumnsConfig.COMPANY_ID].unique() df_targets = self._get_projection(company_ids, df_company_data[TabsConfig.PROJECTED_TARGET], df_fundamentals[ColumnsConfig.PRODUCTION_METRIC]) - if TabsConfig.PROJECTED_EI in df_company_data.keys(): + if TabsConfig.PROJECTED_EI in df_company_data: df_ei = self._get_projection(company_ids, df_company_data[TabsConfig.PROJECTED_EI], df_fundamentals[ColumnsConfig.PRODUCTION_METRIC]) else: df_ei = None - if TabsConfig.HISTORIC_DATA in df_company_data.keys(): + if TabsConfig.HISTORIC_DATA in df_company_data: df_historic = df_company_data[TabsConfig.HISTORIC_DATA].set_index(ColumnsConfig.COMPANY_ID, drop=False) df_historic = df_historic.merge(df_fundamentals[ColumnsConfig.PRODUCTION_METRIC].rename('units'), left_index=True, right_index=True) df_historic.loc[df_historic.variable=='Emissions', 'units'] = 't CO2' diff --git a/ITR/data/template.py b/ITR/data/template.py index 7e1f431e..e02af5d6 100644 --- a/ITR/data/template.py +++ b/ITR/data/template.py @@ -99,7 +99,7 @@ def _check_company_data(self, df: pd.DataFrame) -> None: :return: None """ required_tabs = [TabsConfig.TEMPLATE_INPUT_DATA, TabsConfig.TEMPLATE_TARGET_DATA] - missing_tabs = [tab for tab in required_tabs if tab not in df.keys()] + missing_tabs = [tab for tab in required_tabs if tab not in df] assert not any(tab in missing_tabs for tab in required_tabs), f"Tabs {required_tabs} are required." def _convert_from_template_company_data(self, excel_path: str) -> List[ICompanyData]: diff --git a/examples/ITR_dash_app_develop.py b/examples/ITR_dash_app_develop.py index b0a6c3bd..206d55cd 100644 --- a/examples/ITR_dash_app_develop.py +++ b/examples/ITR_dash_app_develop.py @@ -129,7 +129,7 @@ def dequantify_plotly(px_func, df, **kwargs): item0 = s.values[0] s = s.astype(f"pint[{item0.u}]") new_df[kwargs[col]] = s.values.quantity.m - if 'hover_data' in kwargs.keys(): + if 'hover_data' in kwargs: for col in kwargs['hover_data']: s = df[col] if isinstance(s.dtype, PintType): From ad1e953f31e9d01d73bb353e489f069d6795e20a Mon Sep 17 00:00:00 2001 From: David Kroon Date: Tue, 1 Mar 2022 13:14:53 +0100 Subject: [PATCH 132/345] Update base provider test values Signed-off-by: David Kroon Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- test/test_base_providers.py | 81 ++++++++++++++++++++----------------- 1 file changed, 44 insertions(+), 37 deletions(-) diff --git a/test/test_base_providers.py b/test/test_base_providers.py index d5f49f9c..df4f005e 100644 --- a/test/test_base_providers.py +++ b/test/test_base_providers.py @@ -52,9 +52,12 @@ def setUp(self) -> None: "US00724F1012", "FR0000125338"] self.company_info_at_base_year = pd.DataFrame( - [[Q_(1.6982474347547, 't CO2/GJ'), Q_(1.04827859e+08, 'MWh'), {'units':'MWh'}, 'Electricity Utilities', 'North America'], - [Q_(0.476586931582279, 't CO2/GJ'), Q_(5.98937002e+08, 'MWh'), {'units':'MWh'}, 'Electricity Utilities', 'North America'], - [Q_(0.22457393169277, 't CO2/GJ'), Q_(1.22472003e+08, 'MWh'), {'units':'MWh'}, 'Electricity Utilities', 'Europe']], + [[Q_(1.6982474347547, 't CO2/GJ'), Q_(1.04827859e+08, 'MWh'), {'units': 'MWh'}, 'Electricity Utilities', + 'North America'], + [Q_(0.476586931582279, 't CO2/GJ'), Q_(5.98937002e+08, 'MWh'), {'units': 'MWh'}, 'Electricity Utilities', + 'North America'], + [Q_(0.22457393169277, 't CO2/GJ'), Q_(1.22472003e+08, 'MWh'), {'units': 'MWh'}, 'Electricity Utilities', + 'Europe']], index=self.company_ids, columns=[ColumnsConfig.BASE_EI, ColumnsConfig.BASE_YEAR_PRODUCTION, ColumnsConfig.PRODUCTION_METRIC, ColumnsConfig.SECTOR, ColumnsConfig.REGION]) @@ -89,27 +92,28 @@ def test_temp_score_from_json_data(self): def test_get_benchmark(self): seq_index = pd.RangeIndex.from_range(range(TemperatureScoreConfig.CONTROLS_CONFIG.base_year, TemperatureScoreConfig.CONTROLS_CONFIG.target_end_year + 1)) - data = [pd.Series([1.698247435, 1.581436210, 1.386040647, 1.190390211, 0.994739774, 0.799089338, - 0.782935186, 0.677935928, 0.572936671, 0.467937413, 0.362938156, 0.257938898, - 0.233746281, 0.209553665, 0.185361048, 0.161168432, 0.136975815, 0.124810886, - 0.112645956, 0.100481026, 0.088316097, 0.076151167, 0.062125588, 0.048100009, - 0.034074431, 0.020048852, 0.006023273, 0.005843878, 0.005664482, 0.005485087, - 0.005305691, 0.005126296 - ], index=seq_index, dtype="pint[t CO2/GJ]"), - pd.Series([0.476586932, 0.444131055, 0.389650913, 0.335170772, 0.28069063, 0.226210489, - 0.22171226, 0.192474531, 0.163236802, 0.133999073, 0.104761344, 0.075523615, - 0.068787023, 0.062050431, 0.055313839, 0.048577247, 0.041840655, 0.038453251, - 0.035065847, 0.031678443, 0.028291039, 0.024903635, 0.020998121, 0.017092607, - 0.013187093, 0.009281579, 0.005376065, 0.005326111, 0.005276157, 0.005226203, - 0.005176249, 0.005126296 - ], index=seq_index, dtype="pint[t CO2/GJ]"), - pd.Series([0.224573932, 0.17975612, 0.163761501, 0.147766883, 0.131772265, 0.115777646, - 0.099783028, 0.090628361, 0.081473693, 0.072319026, 0.063164359, 0.054009692, - 0.050089853, 0.046170015, 0.042250176, 0.038330338, 0.034410499, 0.031104249, - 0.027797999, 0.024491748, 0.021185498, 0.017879248, 0.016155615, 0.014431983, - 0.012708351, 0.010984719, 0.009261087, 0.008488943, 0.007716798, 0.006944654, - 0.00617251, 0.005400365 - ], index=seq_index, dtype="pint[t CO2/GJ]")] + data = [ + pd.Series([1.6982474347547, 1.5814362115005, 1.385357948863141, 1.18927968622576, 0.9932014235884, + 0.7971231609510, 0.7809336851789, 0.675704827194235, 0.57047596920960, 0.4652471112250, + 0.3600182532403, 0.2547893952557, 0.230543877037740, 0.20629835881977, 0.1820528406018, + 0.1578073223838, 0.1335618041659, 0.121370273602458, 0.10917874303905, 0.0969872124756, + 0.0847956819122, 0.0726041513488, 0.058547903118731, 0.04449165488867, 0.0304354066586, + 0.0163791584285, 0.0023229101985, 0.002143122358755, 0.00196333451906, 0.0017835466794, + 0.0016037588397, 0.0014239710000], index=seq_index, dtype="pint[t CO2/GJ]"), + pd.Series([0.476586931582279, 0.4438761824346, 0.3889682148288414, 0.33406024722304, 0.27915227961723, + 0.224244312011427, 0.2197107589327, 0.1902434296749848, 0.16077610041727, 0.13130877115956, + 0.101841441901845, 0.0723741126441, 0.0655846189440570, 0.05879512524398, 0.05200563154391, + 0.045216137843832, 0.0384266441438, 0.0350126391631084, 0.03159863418246, 0.02818462920181, + 0.024770624221162, 0.0213566192405, 0.0174204357386057, 0.01348425223670, 0.00954806873479, + 0.005611885232884, 0.0016757017310, 0.0016253555847724, 0.00157500943857, 0.00152466329236, + 0.001474317146161, 0.0014239710000], index=seq_index, dtype="pint[t CO2/GJ]"), + pd.Series([0.2245739316928, 0.1789585724182, 0.16267932465295, 0.146400076887697, 0.1301208291224, + 0.1138415813572, 0.0975623335919, 0.08824475610517, 0.078927178618408, 0.0696096011316, + 0.0602920236449, 0.0509744461581, 0.04698485296078, 0.042995259763452, 0.0390056665661, + 0.0350160733688, 0.0310264801715, 0.02766139400289, 0.024296307834324, 0.0209312216658, + 0.0175661354972, 0.0142010493286, 0.01244674461183, 0.010692439895051, 0.0089381351783, + 0.0071838304615, 0.0054295257447, 0.00464364089781, 0.003857756050920, 0.0030718712040, + 0.0022859863571, 0.0015001015102], index=seq_index, dtype="pint[t CO2/GJ]")] expected_data = pd.concat(data, axis=1, ignore_index=True).T expected_data.index = self.company_ids benchmarks = self.base_EI_bm.get_SDA_intensity_benchmarks(self.company_info_at_base_year) @@ -125,13 +129,16 @@ def test_get_projected_production(self): assert_pint_series_equal(self, expected_data_2025, productions) def test_get_cumulative_value(self): - projected_ei = pd.DataFrame([[Q_(1.0, 't CO2/MWh'), Q_(2.0, 't CO2/MWh')], [Q_(3.0, 't CO2/MWh'), Q_(4.0, 't CO2/MWh')]], dtype='pint[t CO2/MWh]') - projected_production = pd.DataFrame([[Q_(2.0, 'TWh'), Q_(4.0, 'TWh')], [Q_(6.0, 'TWh'), Q_(8.0, 'TWh')]], dtype='pint[TWh]') + projected_ei = pd.DataFrame( + [[Q_(1.0, 't CO2/MWh'), Q_(2.0, 't CO2/MWh')], [Q_(3.0, 't CO2/MWh'), Q_(4.0, 't CO2/MWh')]], + dtype='pint[t CO2/MWh]') + projected_production = pd.DataFrame([[Q_(2.0, 'TWh'), Q_(4.0, 'TWh')], [Q_(6.0, 'TWh'), Q_(8.0, 'TWh')]], + dtype='pint[TWh]') expected_data = pd.Series([10.0, 50.0], - index=[0, 1], - dtype='pint[Mt CO2]') + index=[0, 1], + dtype='pint[Mt CO2]') cumulative_emissions = self.base_warehouse._get_cumulative_emissions(projected_emission_intensity=projected_ei, - projected_production=projected_production) + projected_production=projected_production) assert_pint_series_equal(self, cumulative_emissions, expected_data) def test_get_company_data(self): @@ -141,14 +148,14 @@ def test_get_company_data(self): self.assertEqual(company_2.company_name, "Company AH") self.assertEqual(company_1.company_id, "US0079031078") self.assertEqual(company_2.company_id, "US00724F1012") - self.assertAlmostEqual(company_1.ghg_s1s2, Q_(104827858.636039, 't CO2')) # These are apparently production numbers, not emissions numbers - self.assertAlmostEqual(company_2.ghg_s1s2, Q_(598937001.892059, 't CO2')) # These are apparently production numbers, not emissions numbers - self.assertAlmostEqual(company_1.cumulative_budget, Q_(1362284467.0830, 't CO2'), places=4) - self.assertAlmostEqual(company_2.cumulative_budget, Q_(2262242040.68059, 't CO2'), places=4) - self.assertAlmostEqual(company_1.cumulative_target, Q_(3769096510.09909, 't CO2'), places=4) - self.assertAlmostEqual(company_2.cumulative_target, Q_(5912426347.23670, 't CO2'), places=4) - self.assertAlmostEqual(company_1.cumulative_trajectory, Q_(3745094638.52858, 't CO2'), places=4) - self.assertAlmostEqual(company_2.cumulative_trajectory, Q_(8631481789.38558, 't CO2'), places=4) + self.assertAlmostEqual(company_1.ghg_s1s2, Q_(104827858.636039, 't CO2')) + self.assertAlmostEqual(company_2.ghg_s1s2, Q_(598937001.892059, 't CO2')) + self.assertAlmostEqual(company_1.cumulative_budget, Q_(4904224081.498916, 't CO2')) + self.assertAlmostEqual(company_2.cumulative_budget, Q_(8144071346.450123, 't CO2')) + self.assertAlmostEqual(company_1.cumulative_target, Q_(13568747436.356716, 't CO2')) + self.assertAlmostEqual(company_2.cumulative_target, Q_(21284734850.052108, 't CO2')) + self.assertAlmostEqual(company_1.cumulative_trajectory, Q_(13482340698.702868, 't CO2')) + self.assertAlmostEqual(company_2.cumulative_trajectory, Q_(31073334441.78807, 't CO2')) def test_get_value(self): expected_data = pd.Series([20248547997.0, From c772f83a10bd1552b86cfa5915999fb7fdec9b50 Mon Sep 17 00:00:00 2001 From: David Kroon Date: Tue, 1 Mar 2022 15:28:46 +0100 Subject: [PATCH 133/345] Fix excel, base and template provider unit tests - all work now Signed-off-by: David Kroon Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- ITR/temperature_score.py | 41 +++++---- test/test_base_providers.py | 1 - test/test_excel_provider.py | 150 +++++++++++++++++++-------------- test/test_template_provider.py | 102 +++++++++++----------- 4 files changed, 161 insertions(+), 133 deletions(-) diff --git a/ITR/temperature_score.py b/ITR/temperature_score.py index 13a18974..86162717 100644 --- a/ITR/temperature_score.py +++ b/ITR/temperature_score.py @@ -1,4 +1,4 @@ -import warnings # needed until apply behaves better with Pint quantities in arrays +import warnings # needed until apply behaves better with Pint quantities in arrays from typing import Optional, Tuple, Type, List @@ -26,7 +26,8 @@ class TemperatureScore(PortfolioAggregation): class and overwriting one of the parameters. """ - def __init__(self, time_frames: List[ETimeFrames], scopes: List[EScope], fallback_score: float = Q_(3.2, ureg.delta_degC), + def __init__(self, time_frames: List[ETimeFrames], scopes: List[EScope], + fallback_score: float = Q_(3.2, ureg.delta_degC), aggregation_method: PortfolioAggregationMethod = PortfolioAggregationMethod.WATS, grouping: Optional[List] = None, config: Type[TemperatureScoreConfig] = TemperatureScoreConfig): super().__init__(config) @@ -41,7 +42,8 @@ def __init__(self, time_frames: List[ETimeFrames], scopes: List[EScope], fallbac if grouping is not None: self.grouping = grouping - def get_score(self, scorable_row: pd.Series) -> Tuple[Quantity['delta_degC'], Quantity['delta_degC'], float, Quantity['delta_degC'], float, Quantity['delta_degC']]: + def get_score(self, scorable_row: pd.Series) -> Tuple[ + Quantity['delta_degC'], Quantity['delta_degC'], float, Quantity['delta_degC'], float, Quantity['delta_degC']]: """ Get the temperature score for a certain target based on the annual reduction rate and the regression parameters. @@ -49,7 +51,8 @@ def get_score(self, scorable_row: pd.Series) -> Tuple[Quantity['delta_degC'], Qu :return: The temperature score, which is a tuple of (TEMPERATURE_SCORE,TRAJECTORY_SCORE,TRAJECTORY_OVERSHOOT,TARGET_SCORE,TARGET_OVERSHOOT,TEMPERATURE_RESULTS]) """ # if either cum target or trajectory is zero return default. - if scorable_row[self.c.COLS.CUMULATIVE_TARGET].m==0 or scorable_row[self.c.COLS.CUMULATIVE_TRAJECTORY].m==0: + if np.isnan(scorable_row[self.c.COLS.CUMULATIVE_TARGET].m) or \ + np.isnan(scorable_row[self.c.COLS.CUMULATIVE_TRAJECTORY].m): return self.get_default_score(scorable_row), np.nan, np.nan, np.nan, np.nan, Q_(1, ureg.delta_degC) if scorable_row[self.c.COLS.CUMULATIVE_BUDGET].m > 0: @@ -73,10 +76,13 @@ def get_score(self, scorable_row: pd.Series) -> Tuple[Quantity['delta_degC'], Qu # Safeguard: If score is NaN due to missing data assign default score. if np.isnan(score): default_score = self.get_default_score(scorable_row) - return default_score, trajectory_temperature_score, trajectory_overshoot_ratio, target_temperature_score, target_overshoot_ratio, Q_(1.0, ureg.delta_degC) - return score, trajectory_temperature_score, trajectory_overshoot_ratio, target_temperature_score, target_overshoot_ratio, Q_(0.0, ureg.delta_degC) + return default_score, trajectory_temperature_score, trajectory_overshoot_ratio, target_temperature_score, target_overshoot_ratio, Q_( + 1.0, ureg.delta_degC) + return score, trajectory_temperature_score, trajectory_overshoot_ratio, target_temperature_score, target_overshoot_ratio, Q_( + 0.0, ureg.delta_degC) - def get_ghc_temperature_score(self, row: pd.Series, company_data: pd.DataFrame) -> Tuple[Quantity['delta_degC'], Quantity['delta_degC']]: + def get_ghc_temperature_score(self, row: pd.Series, company_data: pd.DataFrame) -> Tuple[ + Quantity['delta_degC'], Quantity['delta_degC']]: """ Get the aggregated temperature score and a temperature result, which indicates how much of the score is based on the default score for a certain company based on the emissions of company. @@ -96,9 +102,9 @@ def get_ghc_temperature_score(self, row: pd.Series, company_data: pd.DataFrame) else: company_emissions = s1s2[self.c.COLS.GHG_SCOPE12] + s3[self.c.COLS.GHG_SCOPE3] return ((s1s2[self.c.COLS.TEMPERATURE_SCORE] * s1s2[self.c.COLS.GHG_SCOPE12] + - s3[self.c.COLS.TEMPERATURE_SCORE] * s3[self.c.COLS.GHG_SCOPE3]) / company_emissions, + s3[self.c.COLS.TEMPERATURE_SCORE] * s3[self.c.COLS.GHG_SCOPE3]) / company_emissions, (s1s2[self.c.TEMPERATURE_RESULTS] * s1s2[self.c.COLS.GHG_SCOPE12] + - s3[self.c.TEMPERATURE_RESULTS] * s3[self.c.COLS.GHG_SCOPE3]) / company_emissions) + s3[self.c.TEMPERATURE_RESULTS] * s3[self.c.COLS.GHG_SCOPE3]) / company_emissions) except ZeroDivisionError: raise ValueError("The mean of the S1+S2 plus the S3 emissions is zero") @@ -129,7 +135,7 @@ def _prepare_data(self, data: pd.DataFrame): score_combinations = pd.DataFrame(list(itertools.product(*[companies, scopes, self.time_frames])), columns=[self.c.COLS.COMPANY_ID, self.c.COLS.SCOPE, self.c.COLS.TIME_FRAME]) scoring_data = pd.merge(left=data, right=score_combinations, how='outer', on=[self.c.COLS.COMPANY_ID]) - + with warnings.catch_warnings(): warnings.simplefilter("ignore") # See https://github.com/hgrecco/pint-pandas/issues/114 @@ -139,7 +145,8 @@ def _prepare_data(self, data: pd.DataFrame): lambda row: self.get_score(row), axis=1)) # Fix up dtypes for the new columns we just added - for c in [self.c.COLS.TEMPERATURE_SCORE, self.c.COLS.TRAJECTORY_SCORE, self.c.COLS.TRAJECTORY_SCORE, self.c.COLS.TARGET_SCORE, self.c.TEMPERATURE_RESULTS]: + for c in [self.c.COLS.TEMPERATURE_SCORE, self.c.COLS.TRAJECTORY_SCORE, self.c.COLS.TRAJECTORY_SCORE, + self.c.COLS.TARGET_SCORE, self.c.TEMPERATURE_RESULTS]: scoring_data[c] = scoring_data[c].astype('pint[delta_degC]') scoring_data = self.cap_scores(scoring_data) @@ -195,7 +202,8 @@ def calculate(self, data: Optional[pd.DataFrame] = None, with warnings.catch_warnings(): warnings.simplefilter("ignore") # See https://github.com/hgrecco/pint-pandas/issues/114 - data[self.c.COLS.TEMPERATURE_SCORE] = data[self.c.COLS.TEMPERATURE_SCORE].map(lambda x: Q_(round (x.m, 2), x.u)).astype('pint[delta_degC]') + data[self.c.COLS.TEMPERATURE_SCORE] = data[self.c.COLS.TEMPERATURE_SCORE].map( + lambda x: Q_(round(x.m, 2), x.u)).astype('pint[delta_degC]') return data def _get_aggregations(self, data: pd.DataFrame, total_companies: int) -> Tuple[Aggregation, pd.Series, pd.Series]: @@ -208,7 +216,8 @@ def _get_aggregations(self, data: pd.DataFrame, total_companies: int) -> Tuple[A data = data.copy() weighted_scores = self._calculate_aggregate_score(data, self.c.COLS.TEMPERATURE_SCORE, self.aggregation_method) - data[self.c.COLS.CONTRIBUTION_RELATIVE] = pd.Series(weighted_scores / weighted_scores.sum(), dtype='pint[percent]') + data[self.c.COLS.CONTRIBUTION_RELATIVE] = pd.Series(weighted_scores / weighted_scores.sum(), + dtype='pint[percent]') data[self.c.COLS.CONTRIBUTION] = weighted_scores with warnings.catch_warnings(): warnings.simplefilter("ignore") @@ -221,9 +230,9 @@ def _get_aggregations(self, data: pd.DataFrame, total_companies: int) -> Tuple[A proportion=len(weighted_scores) / (total_companies / 100.0), contributions=[AggregationContribution.parse_obj(contribution) for contribution in contributions] ), \ - data[self.c.COLS.CONTRIBUTION_RELATIVE], \ - data[self.c.COLS.CONTRIBUTION] - + data[self.c.COLS.CONTRIBUTION_RELATIVE], \ + data[self.c.COLS.CONTRIBUTION] + return aggregations def _get_score_aggregation(self, data: pd.DataFrame, time_frame: ETimeFrames, scope: EScope) -> \ diff --git a/test/test_base_providers.py b/test/test_base_providers.py index df4f005e..93285830 100644 --- a/test/test_base_providers.py +++ b/test/test_base_providers.py @@ -27,7 +27,6 @@ def setUp(self) -> None: self.company_json = os.path.join(self.root, "inputs", "json", "fundamental_data.json") self.benchmark_prod_json = os.path.join(self.root, "inputs", "json", "benchmark_production_OECM.json") self.benchmark_EI_json = os.path.join(self.root, "inputs", "json", "benchmark_EI_OECM.json") - # self.excel_data_path = os.path.join(self.root, "inputs", "test_data_company.xlsx") # load company data with open(self.company_json) as json_file: diff --git a/test/test_excel_provider.py b/test/test_excel_provider.py index fce3482e..8a399dda 100644 --- a/test/test_excel_provider.py +++ b/test/test_excel_provider.py @@ -27,19 +27,25 @@ def setUp(self) -> None: self.sector_data_path = os.path.join(self.root, "inputs", "OECM_EI_and_production_benchmarks.xlsx") self.excel_company_data = ExcelProviderCompany(excel_path=self.company_data_path) self.excel_production_bm = ExcelProviderProductionBenchmark(excel_path=self.sector_data_path) - self.excel_EI_bm = ExcelProviderIntensityBenchmark(excel_path=self.sector_data_path, benchmark_temperature=Q_(1.5, ureg.delta_degC), - benchmark_global_budget=Q_(396, ureg('Gt CO2')), is_AFOLU_included=False) + self.excel_EI_bm = ExcelProviderIntensityBenchmark(excel_path=self.sector_data_path, + benchmark_temperature=Q_(1.5, ureg.delta_degC), + benchmark_global_budget=Q_(396, ureg('Gt CO2')), + is_AFOLU_included=False) self.excel_provider = DataWarehouse(self.excel_company_data, self.excel_production_bm, self.excel_EI_bm) # "US0079031078","US00724F1012","FR0000125338" are all Electricity Utilities self.company_ids = ["US0079031078", "US00724F1012", "FR0000125338"] self.company_info_at_base_year = pd.DataFrame( - [[Q_(1.6982474347547, ureg('t CO2/GJ')), Q_(1.04827859e+08, 'MWh'), 'MWh', 'Electricity Utilities', 'North America'], - [Q_(0.476586931582279, ureg('t CO2/GJ')), Q_(5.98937002e+08, 'MWh'), 'MWh', 'Electricity Utilities', 'North America'], - [Q_(0.22457393169277, ureg('t CO2/GJ')), Q_(1.22472003e+08, 'MWh'), 'MWh', 'Electricity Utilities', 'Europe']], + [[Q_(1.6982474347547, ureg('t CO2/GJ')), Q_(1.04827859e+08, 'MWh'), 'MWh', 'Electricity Utilities', + 'North America'], + [Q_(0.476586931582279, ureg('t CO2/GJ')), Q_(5.98937002e+08, 'MWh'), 'MWh', 'Electricity Utilities', + 'North America'], + [Q_(0.22457393169277, ureg('t CO2/GJ')), Q_(1.22472003e+08, 'MWh'), 'MWh', 'Electricity Utilities', + 'Europe']], index=self.company_ids, - columns=[ColumnsConfig.BASE_EI, ColumnsConfig.GHG_SCOPE12, ColumnsConfig.PRODUCTION_METRIC, ColumnsConfig.SECTOR, ColumnsConfig.REGION]) + columns=[ColumnsConfig.BASE_EI, ColumnsConfig.BASE_YEAR_PRODUCTION, ColumnsConfig.PRODUCTION_METRIC, + ColumnsConfig.SECTOR, ColumnsConfig.REGION]) def test_temp_score_from_excel_data(self): comids = ['US0079031078', 'US00724F1012', 'FR0000125338', 'US17275R1023', 'CH0198251305', 'US1266501006', @@ -70,33 +76,43 @@ def test_temp_score_from_excel_data(self): agg_scores = temp_score.aggregate_scores(scores) # verify company scores: - expected = pd.Series([2.05, 2.22, 2.06, 2.01, 1.93, 1.78, 1.71, 1.34, 2.21, 2.69, 2.65, temp_score.fallback_score, 2.89, - 1.91, 2.16, 1.76, temp_score.fallback_score, temp_score.fallback_score, 1.47, 1.72, 1.76, 1.81, - temp_score.fallback_score, 1.78, 1.84, temp_score.fallback_score, temp_score.fallback_score, 1.74, - 1.88, temp_score.fallback_score], dtype='pint[delta_degC]') + expected = pd.Series( + [2.05, 2.22, 2.06, 2.01, 1.93, 1.78, 1.71, 1.34, 2.21, 2.69, 2.65, temp_score.fallback_score, 2.89, + 1.91, 2.16, 1.76, temp_score.fallback_score, temp_score.fallback_score, 1.47, 1.72, 1.76, 1.81, + temp_score.fallback_score, 1.78, 1.84, temp_score.fallback_score, temp_score.fallback_score, 1.74, + 1.88, temp_score.fallback_score], dtype='pint[delta_degC]') assert_array_equal(scores.temperature_score.values, expected) # verify that results exist self.assertAlmostEqual(agg_scores.long.S1S2.all.score, Q_(2.259, ureg.delta_degC), places=2) def test_get_projected_value(self): - expected_data = pd.DataFrame([[0.476586932, 0.476586932, 0.464695628, 0.464754889, 0.466332369, 0.469162115, - 0.472725797, 0.47629738, 0.479176649, 0.480954576, 0.481532513, 0.480898667, - 0.478873144, 0.474920056, 0.468037326, 0.456822975, 0.439924142, 0.416868713, - 0.38867473, 0.357527534, 0.325789571, 0.295235835, 0.266872969, 0.241107715, - 0.21798084, 0.197345262, 0.178974681, 0.162622136, 0.148048657, 0.135035628, - 0.123388813, 0.112938349], - [1.698247435, 1.698247435, 1.590828573, 1.492707987, 1.403890821, 1.325025884, - 1.256900833, 1.199892962, 1.153286422, 1.115132019, 1.082871619, 1.054062505, - 1.026649109, 0.99885963, 0.969029076, 0.935600151, 0.897456359, 0.854466423, - 0.807721858, 0.759088111, 0.710432718, 0.663134402, 0.618007985, 0.575439357, - 0.535546775, 0.498300211, 0.463594864, 0.431292461, 0.401243246, 0.373297218, - 0.347309599, 0.32314329], - [0.224573932, 0.258012985, 0.261779459, 0.26416071, 0.266503379, 0.268691114, - 0.270569413, 0.271980435, 0.272823337, 0.273080838, 0.272767105, 0.27183449, - 0.270090124, 0.267129877, 0.262302026, 0.254777592, 0.243845281, 0.229393209, - 0.212192429, 0.193616639, 0.175038148, 0.157423255, 0.141276866, 0.12676707, - 0.113867496, 0.102458357, 0.092385201, 0.083489223, 0.0756213, 0.068647473, - 0.062450199, 0.056927654]], + expected_data = pd.DataFrame([[0.47173539854, 0.47173539854, 0.44189682578, 0.41464110746, + 0.38996967250, 0.36806274561, 0.34913912031, 0.33330360054, + 0.32035733950, 0.30975889415, 0.30079767200, 0.29279514028, + 0.28518030797, 0.27746100833, 0.26917474321, 0.25988893074, + 0.24929343300, 0.23735178428, 0.22436718269, 0.21085780869, + 0.19734242153, 0.18420400050, 0.17166888467, 0.15984426596, + 0.14876299319, 0.13841672541, 0.12877635118, 0.11980346134, + 0.11145645720, 0.10369367159, 0.09647488879, 0.08976202499 + ], + [0.13238525877, 0.13238525877, 0.12908211877, 0.12909858023, + 0.12953676930, 0.13032280984, 0.13131272139, 0.13230482791, + 0.13310462474, 0.13359849339, 0.13375903144, 0.13358296304, + 0.13302031772, 0.13192223791, 0.13001036827, 0.12689527083, + 0.12220115053, 0.11579686468, 0.10796520283, 0.09931320396, + 0.09049710319, 0.08200995414, 0.07413138016, 0.06697436519, + 0.06055023333, 0.05481812839, 0.04971518910, 0.04517281563, + 0.04112462705, 0.03750989666, 0.03427467036, 0.03137176364 + ], + [0.06238164769, 0.07167027361, 0.07271651633, 0.07337797502, + 0.07402871633, 0.07463642054, 0.07515817014, 0.07555012074, + 0.07578426020, 0.07585578822, 0.07576864027, 0.07550958065, + 0.07502503448, 0.07420274359, 0.07286167398, 0.07077155342, + 0.06773480031, 0.06372033578, 0.05894234130, 0.05378239979, + 0.04862170773, 0.04372868191, 0.03924357390, 0.03521307488, + 0.03162986008, 0.02846065481, 0.02566255582, 0.02319145084, + 0.02100591678, 0.01906874251, 0.01734727738, 0.01581323733 + ]], index=self.company_ids, dtype='pint[t CO2/GJ]').astype('object') expected_data.columns = range(TemperatureScoreConfig.CONTROLS_CONFIG.base_year, @@ -105,49 +121,54 @@ def test_get_projected_value(self): assert_pint_frame_equal(self, trajectories, expected_data) def test_get_benchmark(self): - expected_data = pd.DataFrame([pd.Series([1.698247435, 1.581691084, 1.386040647, 1.190390211, 0.994739774, 0.799089338, - 0.782935186, 0.677935928, 0.572936671, 0.467937413, 0.362938156, 0.257938898, - 0.233746281, 0.209553665, 0.185361048, 0.161168432, 0.136975815, 0.124810886, - 0.112645956, 0.100481026, 0.088316097, 0.076151167, 0.062125588, 0.048100009, - 0.034074431, 0.020048852, 0.006023273, 0.005843878, 0.005664482, 0.005485087, - 0.005305691, 0.005126296 - ],name='US0079031078', dtype='pint[t CO2/GJ]'), - pd.Series([0.476586932, 0.444131055, 0.389650913, 0.335170772, 0.28069063, 0.226210489, - 0.22171226, 0.192474531, 0.163236802, 0.133999073, 0.104761344, 0.075523615, - 0.068787023, 0.062050431, 0.055313839, 0.048577247, 0.041840655, 0.038453251, - 0.035065847, 0.031678443, 0.028291039, 0.024903635, 0.020998121, 0.017092607, - 0.013187093, 0.009281579, 0.005376065, 0.005326111, 0.005276157, 0.005226203, - 0.005176249, 0.005126296 - ],name='US00724F1012', dtype='pint[t CO2/GJ]'), - pd.Series([0.224573932, 0.17975612, 0.163761501, 0.147766883, 0.131772265, 0.115777646, - 0.099783028, 0.090628361, 0.081473693, 0.072319026, 0.063164359, 0.054009692, - 0.050089853, 0.046170015, 0.042250176, 0.038330338, 0.034410499, 0.031104249, - 0.027797999, 0.024491748, 0.021185498, 0.017879248, 0.016155615, 0.014431983, - 0.012708351, 0.010984719, 0.009261087, 0.008488943, 0.007716798, 0.006944654, - 0.00617251, 0.005400365 - ],name='FR0000125338', dtype='pint[t CO2/GJ]') - ], - index=self.company_ids, - columns=range(TemperatureScoreConfig.CONTROLS_CONFIG.base_year, - TemperatureScoreConfig.CONTROLS_CONFIG.target_end_year + 1)) + expected_data = pd.DataFrame([pd.Series([1.69824743475, 1.58143621150, 1.38535794886, 1.18927968623, + 0.99320142359, 0.79712316095, 0.78093368518, 0.67570482719, + 0.57047596921, 0.46524711122, 0.36001825324, 0.25478939526, + 0.23054387704, 0.20629835882, 0.18205284060, 0.15780732238, + 0.13356180417, 0.12137027360, 0.10917874304, 0.09698721248, + 0.08479568191, 0.07260415135, 0.05854790312, 0.04449165489, + 0.03043540666, 0.01637915843, 0.00232291020, 0.00214312236, + 0.00196333452, 0.00178354668, 0.00160375884, 0.00142397100 + ], name='US0079031078', dtype='pint[t CO2/GJ]'), + pd.Series([0.47658693158, 0.44387618243, 0.38896821483, 0.33406024722, + 0.27915227962, 0.22424431201, 0.21971075893, 0.19024342967, + 0.16077610042, 0.13130877116, 0.10184144190, 0.07237411264, + 0.06558461894, 0.05879512524, 0.05200563154, 0.04521613784, + 0.03842664414, 0.03501263916, 0.03159863418, 0.02818462920, + 0.02477062422, 0.02135661924, 0.01742043574, 0.01348425224, + 0.00954806873, 0.00561188523, 0.00167570173, 0.00162535558, + 0.00157500944, 0.00152466329, 0.00147431715, 0.00142397100 + ], name='US00724F1012', dtype='pint[t CO2/GJ]'), + pd.Series([0.22457393169, 0.17895857242, 0.16267932465, 0.14640007689, + 0.13012082912, 0.11384158136, 0.09756233359, 0.08824475611, + 0.07892717862, 0.06960960113, 0.06029202364, 0.05097444616, + 0.04698485296, 0.04299525976, 0.03900566657, 0.03501607337, + 0.03102648017, 0.02766139400, 0.02429630784, 0.02093122167, + 0.01756613550, 0.01420104933, 0.01244674461, 0.01069243990, + 0.00893813518, 0.00718383046, 0.00542952574, 0.00464364090, + 0.00385775605, 0.00307187120, 0.00228598636, 0.00150010151], + name='FR0000125338', dtype='pint[t CO2/GJ]') + ], + index=self.company_ids) + expected_data.columns = list(range(TemperatureScoreConfig.CONTROLS_CONFIG.base_year, + TemperatureScoreConfig.CONTROLS_CONFIG.target_end_year + 1)) benchmarks = self.excel_EI_bm.get_SDA_intensity_benchmarks(self.company_info_at_base_year) assert_pint_frame_equal(self, benchmarks, expected_data) def test_get_projected_production(self): - expected_data_2025 = pd.Series([1.06866370e+08, 6.10584093e+08, 1.28474171e+08], + expected_data_2025 = pd.Series([106866369.91163988, 610584093.0081439, 128474170.5748834], index=self.company_ids, name=2025, dtype='pint[MWh]').astype('object') - pd.testing.assert_series_equal( - self.excel_production_bm.get_company_projected_production(self.company_info_at_base_year)[2025], - expected_data_2025) + production = self.excel_production_bm.get_company_projected_production(self.company_info_at_base_year)[2025] + assert_pint_series_equal(self, production, expected_data_2025) def test_get_cumulative_value(self): projected_emission = pd.DataFrame([[1.0, 2.0], [3.0, 4.0]], dtype='pint[t CO2/GJ]') projected_production = pd.DataFrame([[2.0, 4.0], [6.0, 8.0]], dtype='pint[GJ]') - expected_data = pd.Series([10.0, 50.0], dtype='pint[Mt CO2]') + expected_data = pd.Series([10.0, 50.0], dtype='pint[t CO2]') emissions = self.excel_provider._get_cumulative_emissions(projected_emission_intensity=projected_emission, projected_production=projected_production) assert_pint_series_equal(self, emissions, expected_data) @@ -162,12 +183,12 @@ def test_get_company_data(self): self.assertEqual(company_2.company_id, "US00724F1012") self.assertAlmostEqual(company_1.ghg_s1s2, Q_(104827858.636039, ureg('t CO2'))) self.assertAlmostEqual(company_2.ghg_s1s2, Q_(598937001.892059, ureg('t CO2'))) - self.assertAlmostEqual(company_1.cumulative_budget, Q_(1362284467.0830, ureg('t CO2')), places=4) - self.assertAlmostEqual(company_2.cumulative_budget, Q_(2262242040.68059, ureg('t CO2')), places=4) - self.assertAlmostEqual(company_1.cumulative_target, Q_(3769096510.09909, ureg('t CO2')), places=4) - self.assertAlmostEqual(company_2.cumulative_target, Q_(5912426347.23670, ureg('t CO2')), places=4) - self.assertAlmostEqual(company_1.cumulative_trajectory, Q_(3745094638.52858, ureg('t CO2')), places=4) - self.assertAlmostEqual(company_2.cumulative_trajectory, Q_(8631481789.38558, ureg('t CO2')), places=4) + self.assertAlmostEqual(company_1.cumulative_budget, Q_(802170778.6532312, ureg('t CO2'))) + self.assertAlmostEqual(company_2.cumulative_budget, Q_(4746756343.422796, ureg('t CO2'))) + self.assertAlmostEqual(company_1.cumulative_target, Q_(2219403623.3851275, ureg('t CO2'))) + self.assertAlmostEqual(company_2.cumulative_target, Q_(12405766829.584078, ureg('t CO2'))) + self.assertAlmostEqual(company_1.cumulative_trajectory, Q_(2205270305.0716036, ureg('t CO2'))) + self.assertAlmostEqual(company_2.cumulative_trajectory, Q_(18111033302.421572, ureg('t CO2'))) def test_get_value(self): expected_data = pd.Series([20248547997.0, @@ -179,6 +200,7 @@ def test_get_value(self): variable_name=ColumnsConfig.COMPANY_REVENUE), expected_data) + if __name__ == "__main__": test = TestExcelProvider() test.setUp() diff --git a/test/test_template_provider.py b/test/test_template_provider.py index 73d5f075..13036760 100644 --- a/test/test_template_provider.py +++ b/test/test_template_provider.py @@ -32,7 +32,7 @@ def setUp(self) -> None: self.excel_EI_bm = ExcelProviderIntensityBenchmark(excel_path=self.sector_data_path, benchmark_temperature=Q_(1.5, ureg.delta_degC), benchmark_global_budget=Q_(396, ureg('Gt CO2')), is_AFOLU_included=False) self.template_company_data = TemplateProviderCompany(excel_path=self.company_data_path) - self.excel_provider = DataWarehouse(self.template_company_data, self.excel_production_bm, self.excel_EI_bm) + self.data_warehouse = DataWarehouse(self.template_company_data, self.excel_production_bm, self.excel_EI_bm) self.company_ids = ["US00130H1059", "US26441C2044", "KR7005490008"] self.company_info_at_base_year = pd.DataFrame( [[Q_(1.6982474347547, ureg('t CO2/GJ')), Q_(1.04827859e+08, 'MWh'), 'MWh', 'Electricity Utilities', 'North America'], @@ -86,7 +86,7 @@ def test_temp_score(self): scopes=[EScope.S1S2], aggregation_method=PortfolioAggregationMethod.WATS # Options for the aggregation method are WATS, TETS, AOTS, MOTS, EOTS, ECOTS, and ROTS. ) - amended_portfolio = temperature_score.calculate(data_warehouse=self.excel_provider, portfolio=companies) + amended_portfolio = temperature_score.calculate(data_warehouse=self.data_warehouse, portfolio=companies) print(amended_portfolio[['company_name', 'time_frame', 'scope', 'temperature_score']]) def test_temp_score_from_excel_data(self): @@ -130,32 +130,30 @@ def test_temp_score_from_excel_data(self): company_isin=company, )) # portfolio data - portfolio_data = ITR.utils.get_data(self.excel_provider, portfolio) + portfolio_data = ITR.utils.get_data(self.data_warehouse, portfolio) scores = temp_score.calculate(portfolio_data) agg_scores = temp_score.aggregate_scores(scores) # verify company scores: - expected = pd.Series([2.05, 2.22, 2.06, 2.01, 1.93, 1.78, 1.71, 1.34, 2.21, 2.69, 2.65, temp_score.fallback_score, 2.89, - 1.91, 2.16, 1.76, temp_score.fallback_score, temp_score.fallback_score, 1.47, 1.72, 1.76, 1.81, - temp_score.fallback_score, 1.78, 1.84, temp_score.fallback_score, temp_score.fallback_score, 1.74, - 1.88, temp_score.fallback_score], dtype='pint[delta_degC]') + expected = pd.Series([1.81, 1.87, 2.10, 2.18, temp_score.fallback_score], dtype='pint[delta_degC]') assert_array_equal(scores.temperature_score.values, expected) # verify that results exist - self.assertAlmostEqual(agg_scores.long.S1S2.all.score, Q_(2.259, ureg.delta_degC), places=2) + self.assertAlmostEqual(agg_scores.long.S1S2.all.score, Q_(2.232, ureg.delta_degC), places=2) def test_get_projected_value(self): company_ids = ["US00130H1059", "KR7005490008"] expected_data = pd.DataFrame([pd.Series( - [605.1694925804982,574.1215117186019,555.4511355634547,537.3879182390771,519.9121149988865, - 503.0046231935541,486.6469613900634,470.8212491698162,455.5101875837016,440.6970402427642, - 426.36561502380243,412.5002463698985,399.08577816653377,386.10754717457115,373.5513670019951, - 361.4035125968896,349.65070524470207,338.28009805339593,327.2792619106238,316.6361718975723, - 306.3391941446274,296.3770731144923,286.7389192988567,277.4141973151697,268.39271439050435, - 259.66460921992547,251.22034118718275,243.05067993594568,235.14669528018078,227.49974744264256, - 220.10147761080776,212.94379879992977], name='US0079031078', dtype='pint[t CO2/GWh]'), + [605.1694925804982, 574.1215117186019, 555.4511355634547, 537.3879182390771, 519.9121149988865, + 503.0046231935541, 486.6469613900634, 470.8212491698162, 455.5101875837016, 440.6970402427642, + 426.36561502380243, 412.5002463698985, 399.08577816653377, 386.10754717457115, 373.5513670019951, + 361.4035125968896, 349.65070524470207, 338.28009805339593, 327.2792619106238, 316.6361718975723, + 306.3391941446274, 296.3770731144923, 286.7389192988567, 277.4141973151697, 268.39271439050435, + 259.66460921992547, 251.22034118718275, 243.05067993594568, 235.14669528018078, 227.49974744264256, + 220.10147761080776, 212.94379879992977], name='US0079031078', dtype='pint[t CO2/GWh]'), pd.Series( - [2.1951083625828733,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0, - 2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0], name='KR7005490008', dtype='pint[t CO2/Fe_ton]')], + [2.1951083625828733, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, + 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0], name='KR7005490008', + dtype='pint[t CO2/Fe_ton]')], index=company_ids) expected_data.columns = range(TemperatureScoreConfig.CONTROLS_CONFIG.base_year, TemperatureScoreConfig.CONTROLS_CONFIG.target_end_year + 1) @@ -163,32 +161,32 @@ def test_get_projected_value(self): assert_pint_frame_equal(self, trajectories, expected_data) def test_get_benchmark(self): - expected_data = pd.DataFrame([pd.Series([1.6982474347547,1.58143621150052,1.3853579488631413,1.1892796862257624, - 0.9932014235883839,0.7971231609510052,0.7809336851788673,0.6757048271942354, - 0.5704759692096036,0.46524711122497175,0.3600182532403398,0.2547893952557078, - 0.23054387703774004,0.20629835881977232,0.1820528406018046,0.15780732238383688, - 0.1335618041658692,0.12137027360245764,0.10917874303904605,0.09698721247563447, - 0.08479568191222286,0.07260415134881128,0.058547903118739995,0.044491654888668734, - 0.030435406658597484,0.016379158428526226,0.002322910198454965,0.0021431223587553565, - 0.0019633345190557478,0.001783546679356139,0.0016037588396565301,0.0014239709999569286 + expected_data = pd.DataFrame([pd.Series([1.69824743475, 1.58143621150, 1.38535794886, 1.18927968623, + 0.99320142359, 0.79712316095, 0.78093368518, 0.67570482719, + 0.57047596921, 0.46524711122, 0.36001825324, 0.25478939526, + 0.23054387704, 0.20629835882, 0.18205284060, 0.15780732238, + 0.13356180417, 0.12137027360, 0.10917874304, 0.09698721248, + 0.08479568191, 0.07260415135, 0.05854790312, 0.04449165489, + 0.03043540666, 0.01637915843, 0.00232291020, 0.00214312236, + 0.00196333452, 0.00178354668, 0.00160375884, 0.00142397100 ], name='US0079031078', dtype='pint[t CO2/GJ]'), - pd.Series([0.476586931582279,0.4438761824346462,0.3889682148288414,0.33406024722303657, - 0.2791522796172317,0.2242443120114269,0.21971075893269795,0.19024342967498475, - 0.16077610041727156,0.13130877115955836,0.10184144190184515,0.07237411264413192, - 0.06558461894405697,0.05879512524398202,0.05200563154390709,0.045216137843832147, - 0.038426644143757224,0.03501263916310838,0.03159863418245954,0.028184629201810696, - 0.024770624221161847,0.021356619240513006,0.017420435738605664,0.013484252236698325, - 0.009548068734790988,0.005611885232883652,0.0016757017309763137,0.0016253555847724364, - 0.001575009438568559,0.0015246632923646814,0.0014743171461608039,0.0014239709999569286 + pd.Series([0.47658693158, 0.44387618243, 0.38896821483, 0.33406024722, + 0.27915227962, 0.22424431201, 0.21971075893, 0.19024342967, + 0.16077610042, 0.13130877116, 0.10184144190, 0.07237411264, + 0.06558461894, 0.05879512524, 0.05200563154, 0.04521613784, + 0.03842664414, 0.03501263916, 0.03159863418, 0.02818462920, + 0.02477062422, 0.02135661924, 0.01742043574, 0.01348425224, + 0.00954806873, 0.00561188523, 0.00167570173, 0.00162535558, + 0.00157500944, 0.00152466329, 0.00147431715, 0.00142397100 ], name='US00724F1012', dtype='pint[t CO2/GJ]'), - pd.Series([0.22457393169277, 0.17895857241820134, 0.16267932465294896, 0.1464000768876966, - 0.130120829122444, 0.11384158135719184, 0.09756233359193943, 0.0882447561051738, - 0.078927178618408, 0.06960960113164248, 0.06029202364487683, 0.0509744461581112, - 0.046984852960782, 0.04299525976345229, 0.03900566656612284, 0.0350160733687934, - 0.031026480171464, 0.02766139400289410, 0.02429630783432425, 0.0209312216657544, - 0.017566135497185, 0.01420104932861466, 0.01244674461183282, 0.0106924398950510, - 0.008938135178269, 0.00718383046148729, 0.00542952574470545, 0.0046436408978128, - 0.003857756050920, 0.00307187120402739, 0.00228598635713470, 0.0015001015102420], + pd.Series([0.22457393169, 0.17895857242, 0.16267932465, 0.14640007689, + 0.13012082912, 0.11384158136, 0.09756233359, 0.08824475611, + 0.07892717862, 0.06960960113, 0.06029202364, 0.05097444616, + 0.04698485296, 0.04299525976, 0.03900566657, 0.03501607337, + 0.03102648017, 0.02766139400, 0.02429630784, 0.02093122167, + 0.01756613550, 0.01420104933, 0.01244674461, 0.01069243990, + 0.00893813518, 0.00718383046, 0.00542952574, 0.00464364090, + 0.00385775605, 0.00307187120, 0.00228598636, 0.00150010151], name='FR0000125338', dtype='pint[t CO2/GJ]') ], index=self.company_ids) @@ -209,26 +207,26 @@ def test_get_cumulative_value(self): projected_emission = pd.DataFrame([[1.0, 2.0], [3.0, 4.0]], dtype='pint[t CO2/GJ]') projected_production = pd.DataFrame([[2.0, 4.0], [6.0, 8.0]], dtype='pint[GJ]') expected_data = pd.Series([10.0, 50.0], dtype='pint[t CO2]') - emissions = self.excel_provider._get_cumulative_emissions(projected_emission_intensity=projected_emission, + emissions = self.data_warehouse._get_cumulative_emissions(projected_emission_intensity=projected_emission, projected_production=projected_production) assert_pint_series_equal(self, emissions, expected_data) def test_get_company_data(self): # "US0079031078" and "US00724F1012" are both Electricity Utilities - company_1 = self.excel_provider.get_preprocessed_company_data(self.company_ids)[0] - company_2 = self.excel_provider.get_preprocessed_company_data(self.company_ids)[1] + company_1 = self.data_warehouse.get_preprocessed_company_data(self.company_ids)[0] + company_2 = self.data_warehouse.get_preprocessed_company_data(self.company_ids)[2] self.assertEqual(company_1.company_name, "AES Corp.") - self.assertEqual(company_2.company_name, "Duke Energy Corp.") + self.assertEqual(company_2.company_name, "POSCO") self.assertEqual(company_1.company_id, "US00130H1059") - self.assertEqual(company_2.company_id, "US26441C2044") + self.assertEqual(company_2.company_id, "KR7005490008") self.assertAlmostEqual(company_1.ghg_s1s2, Q_(43215000.0, ureg('t CO2')), places=7) - self.assertAlmostEqual(company_2.ghg_s1s2, Q_(82018839.2, ureg('t CO2')), places=7) - self.assertAlmostEqual(company_1.cumulative_budget, Q_(47988154.144799985, ureg('t CO2')), places=7) - self.assertAlmostEqual(company_2.cumulative_budget, Q_(673654041.4715265, ureg('t CO2')), places=7) + self.assertAlmostEqual(company_2.ghg_s1s2, Q_(68874000.0, ureg('t CO2')), places=7) + self.assertAlmostEqual(company_1.cumulative_budget, Q_(357340059.42291725, ureg('t CO2')), places=7) + self.assertAlmostEqual(company_2.cumulative_budget, Q_(1221270599.1032874, ureg('t CO2')), places=7) self.assertAlmostEqual(company_1.cumulative_target, Q_(287877763.61957714, ureg('t CO2')), places=7) - self.assertAlmostEqual(company_2.cumulative_target, Q_(1072738125.127108, ureg('t CO2')), places=7) - self.assertAlmostEqual(company_1.cumulative_trajectory, Q_(1018535561.45581, ureg('t CO2')), places=7) - self.assertAlmostEqual(company_2.cumulative_trajectory, Q_(2933704424.3851283, ureg('t CO2')), places=7) + self.assertAlmostEqual(company_2.cumulative_target, Q_(1316305990.5630153, ureg('t CO2')), places=7) + self.assertAlmostEqual(company_1.cumulative_trajectory, Q_(1127957483.2474423, ureg('t CO2')), places=7) + self.assertAlmostEqual(company_2.cumulative_trajectory, Q_(2809084095.106841, ureg('t CO2')), places=7) def test_get_value(self): expected_data = pd.Series([10189000000.0, From c6143db123524ed00244f68dd1b756fc19ee02df Mon Sep 17 00:00:00 2001 From: David Kroon Date: Tue, 1 Mar 2022 16:11:15 +0100 Subject: [PATCH 134/345] Fix GitHub CI unit testing Signed-off-by: David Kroon Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- .github/workflows/unittests.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/unittests.yml b/.github/workflows/unittests.yml index 4ddf1144..5f4d31f3 100644 --- a/.github/workflows/unittests.yml +++ b/.github/workflows/unittests.yml @@ -23,4 +23,4 @@ jobs: pip install -r requirements.txt pip install . - name: Run tests - run: python -m unittest test \ No newline at end of file + run: python -m unittest discover test "test_*.py" \ No newline at end of file From eaa9406cf78674d69ca166ac27e1e23b94ee92fa Mon Sep 17 00:00:00 2001 From: David Kroon Date: Tue, 1 Mar 2022 17:39:56 +0100 Subject: [PATCH 135/345] Fix portfolio aggregation unit test Signed-off-by: David Kroon Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- ITR/portfolio_aggregation.py | 9 ---- test/inputs/data_test_temperature_score.csv | 22 ++++----- test/test_portfolio_aggregation.py | 54 ++++++--------------- test/test_temperature_score.py | 4 +- 4 files changed, 27 insertions(+), 62 deletions(-) diff --git a/ITR/portfolio_aggregation.py b/ITR/portfolio_aggregation.py index 3c1738f3..6bb0a853 100644 --- a/ITR/portfolio_aggregation.py +++ b/ITR/portfolio_aggregation.py @@ -123,15 +123,6 @@ def _calculate_aggregate_score(self, data: pd.DataFrame, input_column: str, elif PortfolioAggregationMethod.is_emissions_based(portfolio_aggregation_method): # These four methods only differ in the way the company is valued. - if portfolio_aggregation_method == PortfolioAggregationMethod.ECOTS: - if True: - self._check_column(data, self.c.COLS.COMPANY_EV_PLUS_CASH) - else: - self._check_column(data, self.c.COLS.COMPANY_ENTERPRISE_VALUE) - self._check_column(data, self.c.COLS.CASH_EQUIVALENTS) - data[self.c.COLS.COMPANY_EV_PLUS_CASH] = data[self.c.COLS.COMPANY_ENTERPRISE_VALUE] + \ - data[self.c.COLS.CASH_EQUIVALENTS] - value_column = PortfolioAggregationMethod.get_value_column(portfolio_aggregation_method, self.c.COLS) # Calculate the total owned emissions of all companies diff --git a/test/inputs/data_test_temperature_score.csv b/test/inputs/data_test_temperature_score.csv index 7548c303..831f908d 100644 --- a/test/inputs/data_test_temperature_score.csv +++ b/test/inputs/data_test_temperature_score.csv @@ -1,12 +1,12 @@ company_name;company_id;isic;industry;ghg_s1s2;ghg_s3;company_market_cap;investment_value;portfolio_weight;company_cash_equivalents;company_enterprise_value;company_ev_plus_cash;company_total_assets;cumulative_budget;cumulative_trajectory;cumulative_target;target_probability;benchmark_global_budget;benchmark_temperature -Company AA;Company AA;A12;test;1601576;1601576;54327;42881;0.128432371;19394739;135763173;51067.38;49437.57;151.2806092;335.6533517;339.6683571;0.428571429;396;1.5 -Company B;NL0000000002;A12;test;1247710;1247710;93541;56155;0.16818917;24414201;170899407;87928.54;85122.31;70.35536722;169.8397691;143.5948479;0.428571429;396;1.5 -Company E;Company E;A12;test;79541;79541;79081;34690;0.103899605;28231917;197623419;74336.14;71963.71;223.2543241;417.115686;699.9763453;0.428571429;396;1.5 -Company F;Company F;A12;test;1135983;1135983;79881;45354;0.135839224;24203943;169427601;75088.14;72691.71;253.754151;656.6103776;648.76027;0.428571429;396;1.5 -Company G;Company G;A12;test;820658;820658;57223;12935;0.038741464;15106872;105748104;53789.62;52072.93;54.109298;147.4552427;174.3784524;0.428571429;396;1.5 -Company I;Company I;A12;test;2955000;2955000;76629;7870;0.023571343;19080621;133564347;72031.26;69732.39;360.9521367;899.9265269;677.2140752;0.428571429;396;1.5 -Company K;Company K;A12;test;6651;6651;65143;29551;0.088507847;17002323;119016261;61234.42;59280.13;27.36095144;98.75779806;105.66096;0.428571429;396;1.5 -Company N;Company N;A12;test;9180000;9180000;83484;8192;0.024535761;29553336;206873352;78474.96;75970.44;160.4887193;568.8910686;375.8820744;0.428571429;396;1.5 -Company Q;Company Q;A12;test;81109342;81109342;79295;23851;0.071435845;19744455;138211185;74537.3;72158.45;158.2624478;489.198323;326.726548;0.428571429;396;1.5 -Company T;CA0000000020;A12;test;28400000;28400000;66682;18472;0.055325267;2200506;15403542;62681.08;60680.62;229.7868989;528.250411;562.6345726;0.428571429;396;1.5 -Company V;US0000000022;A12;test;730970;730970;91565;45737;0.136986342;28842975;201900825;86071.1;83324.15;170.2676584;297.151499;428.8234749;0.428571429;396;1.5 +Company AA;Company AA;A12;test;1601576;1601576;54327;42881;0.128432371;19394739;135763173;155157912;49437.57;151.2806092;335.6533517;339.6683571;0.428571429;396;1.5 +Company B;NL0000000002;A12;test;1247710;1247710;93541;56155;0.16818917;24414201;170899407;195313608;85122.31;70.35536722;169.8397691;143.5948479;0.428571429;396;1.5 +Company E;Company E;A12;test;79541;79541;79081;34690;0.103899605;28231917;197623419;225855336;71963.71;223.2543241;417.115686;699.9763453;0.428571429;396;1.5 +Company F;Company F;A12;test;1135983;1135983;79881;45354;0.135839224;24203943;169427601;193631544;72691.71;253.754151;656.6103776;648.76027;0.428571429;396;1.5 +Company G;Company G;A12;test;820658;820658;57223;12935;0.038741464;15106872;105748104;120854976;52072.93;54.109298;147.4552427;174.3784524;0.428571429;396;1.5 +Company I;Company I;A12;test;2955000;2955000;76629;7870;0.023571343;19080621;133564347;152644968;69732.39;360.9521367;899.9265269;677.2140752;0.428571429;396;1.5 +Company K;Company K;A12;test;6651;6651;65143;29551;0.088507847;17002323;119016261;136018584;59280.13;27.36095144;98.75779806;105.66096;0.428571429;396;1.5 +Company N;Company N;A12;test;9180000;9180000;83484;8192;0.024535761;29553336;206873352;236426688;75970.44;160.4887193;568.8910686;375.8820744;0.428571429;396;1.5 +Company Q;Company Q;A12;test;81109342;81109342;79295;23851;0.071435845;19744455;138211185;157955640;72158.45;158.2624478;489.198323;326.726548;0.428571429;396;1.5 +Company T;CA0000000020;A12;test;28400000;28400000;66682;18472;0.055325267;2200506;15403542;17604048;60680.62;229.7868989;528.250411;562.6345726;0.428571429;396;1.5 +Company V;US0000000022;A12;test;730970;730970;91565;45737;0.136986342;28842975;201900825;230743800;83324.15;170.2676584;297.151499;428.8234749;0.428571429;396;1.5 diff --git a/test/test_portfolio_aggregation.py b/test/test_portfolio_aggregation.py index 34d93380..282d5c39 100644 --- a/test/test_portfolio_aggregation.py +++ b/test/test_portfolio_aggregation.py @@ -1,13 +1,10 @@ -import warnings - import unittest - import numpy as np import pandas as pd - from ITR.portfolio_aggregation import PortfolioAggregationMethod, PortfolioAggregation from ITR.configs import ColumnsConfig from ITR.interfaces import EScope +from utils import assert_pint_series_equal class TestPortfolioAggregation(unittest.TestCase): @@ -69,71 +66,50 @@ def test_calculate_aggregate_score_WATS(self): pa_WATS = PortfolioAggregation()._calculate_aggregate_score(data=self.data, input_column=ColumnsConfig.TEMPERATURE_SCORE, portfolio_aggregation_method=PortfolioAggregationMethod.WATS) - with warnings.catch_warnings(): - warnings.simplefilter("ignore") - pd.testing.assert_series_equal(pa_WATS, - pd.Series([0.166667, 0.666667, 1.5], dtype='pint[delta_degC]')) + expected = pd.Series([0.1666667, 0.6666667, 1.5], dtype='pint[delta_degC]') + assert_pint_series_equal(self, pa_WATS, expected) def test_calculate_aggregate_score_TETS(self): pa_TETS = PortfolioAggregation()._calculate_aggregate_score(data=self.data, input_column=ColumnsConfig.TEMPERATURE_SCORE, portfolio_aggregation_method=PortfolioAggregationMethod.TETS) - with warnings.catch_warnings(): - warnings.simplefilter("ignore") - pd.testing.assert_series_equal( - pa_TETS, - pd.Series([0.111111, 0.444444, 2.0], dtype='pint[delta_degC]')) + expected = pd.Series([0.1111111, 0.4444444, 2.0], dtype='pint[delta_degC]') + assert_pint_series_equal(self, pa_TETS, expected) def test_calculate_aggregate_score_ECOTS(self): pa_ECOTS = PortfolioAggregation()._calculate_aggregate_score(data=self.data, input_column=ColumnsConfig.TEMPERATURE_SCORE, portfolio_aggregation_method=PortfolioAggregationMethod.ECOTS) - with warnings.catch_warnings(): - warnings.simplefilter("ignore") - pd.testing.assert_series_equal( - pa_ECOTS, - pd.Series([0.111111, 0.444444, 2.0], dtype='pint[delta_degC]')) + expected = pd.Series([0.1111111, 0.4444444, 2.0], dtype='pint[delta_degC]') + assert_pint_series_equal(self, pa_ECOTS, expected) def test_calculate_aggregate_score_MOTS(self): pa_MOTS = PortfolioAggregation()._calculate_aggregate_score(data=self.data, input_column=ColumnsConfig.TEMPERATURE_SCORE, portfolio_aggregation_method=PortfolioAggregationMethod.MOTS) - with warnings.catch_warnings(): - warnings.simplefilter("ignore") - pd.testing.assert_series_equal( - pa_MOTS, - pd.Series([0.111111, 0.444444, 2.0], dtype='pint[delta_degC]')) + expected = pd.Series([0.1111111, 0.4444444, 2.0], dtype='pint[delta_degC]') + assert_pint_series_equal(self, pa_MOTS, expected) def test_calculate_aggregate_score_EOTS(self): pa_EOTS = PortfolioAggregation()._calculate_aggregate_score(data=self.data, input_column=ColumnsConfig.TEMPERATURE_SCORE, portfolio_aggregation_method=PortfolioAggregationMethod.EOTS) - with warnings.catch_warnings(): - warnings.simplefilter("ignore") - pd.testing.assert_series_equal( - pa_EOTS, - pd.Series([0.111111, 0.444444, 2.0], dtype='pint[delta_degC]')) + expected = pd.Series([0.1111111, 0.4444444, 2.0], dtype='pint[delta_degC]') + assert_pint_series_equal(self, pa_EOTS, expected) def test_calculate_aggregate_score_AOTS(self): pa_AOTS = PortfolioAggregation()._calculate_aggregate_score(data=self.data, input_column=ColumnsConfig.TEMPERATURE_SCORE, portfolio_aggregation_method=PortfolioAggregationMethod.AOTS) - with warnings.catch_warnings(): - warnings.simplefilter("ignore") - pd.testing.assert_series_equal( - pa_AOTS, - pd.Series([0.111111, 0.444444, 2.0], dtype='pint[delta_degC]')) + expected = pd.Series([0.11111111, 0.44444444, 2.0], dtype='pint[delta_degC]') + assert_pint_series_equal(self, pa_AOTS, expected) def test_calculate_aggregate_score_ROTS(self): pa_ROTS = PortfolioAggregation()._calculate_aggregate_score(data=self.data, input_column=ColumnsConfig.TEMPERATURE_SCORE, portfolio_aggregation_method=PortfolioAggregationMethod.ROTS) - with warnings.catch_warnings(): - warnings.simplefilter("ignore") - pd.testing.assert_series_equal( - pa_ROTS, - pd.Series([0.111111, 0.444444, 2.0], dtype='pint[delta_degC]')) - + expected = pd.Series([0.1111111, 0.4444444, 2.0], dtype='pint[delta_degC]') + assert_pint_series_equal(self, pa_ROTS, expected) if __name__ == "__main__": test = TestPortfolioAggregation() diff --git a/test/test_temperature_score.py b/test/test_temperature_score.py index e2537be8..6fb5c247 100644 --- a/test/test_temperature_score.py +++ b/test/test_temperature_score.py @@ -1,15 +1,13 @@ import warnings - import os import unittest - import pandas as pd from ITR.interfaces import ETimeFrames, EScope from ITR.temperature_score import TemperatureScore from ITR.portfolio_aggregation import PortfolioAggregationMethod +from ITR.data.osc_units import ureg, Q_ -from ITR.data.osc_units import ureg, Q_, PA_ class TestTemperatureScore(unittest.TestCase): """ From e6549beeef15f66aacf0ce7cb459093dad1e82f4 Mon Sep 17 00:00:00 2001 From: MichaelTiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> Date: Tue, 1 Mar 2022 13:21:17 -0500 Subject: [PATCH 136/345] Update test_e2e.py Added initialization of base_year_production. Fixed wrong units being passed to ghg_s1s2 and ghg_s3. Also fixed wrong type of data being passed by just passing 'value' part of an IProduction. Obviously it's more efficient to initialize all three from a Quantity, rather than constructing an IProjection and then drilling down to the value field of that. The question is: do we want to revert changes to interfaces.py that preserve the base_year in the initialization of those values (and change other code to move our way through that extra data)? Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- test/test_e2e.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/test/test_e2e.py b/test/test_e2e.py index d2123b11..c5180853 100644 --- a/test/test_e2e.py +++ b/test/test_e2e.py @@ -35,13 +35,15 @@ class EndToEndTest(unittest.TestCase): """ def setUp(self): + # base_year is 2019 company_id = "BaseCompany" self.BASE_COMP_SCORE = Q_(3.85, ureg.delta_degC) self.company_base = ICompanyAggregates( company_name=company_id, company_id=company_id, - ghg_s1s2=IProjection.parse_obj({"year": 2019, "value":Q_(100.0, ureg('Fe_ton'))}), - ghg_s3=IProjection.parse_obj({"year": 2019, "value":Q_(0.0, ureg('Fe_ton'))}), + base_year_production=IProjection.parse_obj({"year": 2019, "value":Q_(1000000.0, ureg('Fe_ton'))}).value, + ghg_s1s2=IProjection.parse_obj({"year": 2019, "value":Q_(1698247.4347547039, ureg('t CO2'))}).value, + ghg_s3=IProjection.parse_obj({"year": 2019, "value":Q_(0.0, ureg('t CO2'))}).value, company_revenue=100, company_market_cap=100, company_enterprise_value=100, From a98bea001b65d23f4196b3039621fcc2d8dd92e6 Mon Sep 17 00:00:00 2001 From: MichaelTiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> Date: Tue, 1 Mar 2022 18:27:48 -0500 Subject: [PATCH 137/345] Fix another emission_intensity -> emissions_intensity issue The JSON input files for the test_projector test case need to use emissions_intensity. TODO: we still need a way of sorting the base_year value (it is currently inferred from report_date and/or a default value in TempScoreConfig). Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- test/inputs/json/test_project_companies.json | 60 ++++++++++---------- test/inputs/json/test_project_reference.json | 60 ++++++++++---------- 2 files changed, 60 insertions(+), 60 deletions(-) diff --git a/test/inputs/json/test_project_companies.json b/test/inputs/json/test_project_companies.json index 83dffbc6..c503a8a1 100644 --- a/test/inputs/json/test_project_companies.json +++ b/test/inputs/json/test_project_companies.json @@ -173,7 +173,7 @@ "S3": [], "S1S2S3": [] }, - "emission_intensities": { + "emissions_intensities": { "S1": [ { "year": 2009, @@ -356,7 +356,7 @@ "S3": [], "S1S2S3": [] }, - "emission_intensities": { + "emissions_intensities": { "S1": [ { "year": 2009, @@ -478,7 +478,7 @@ "sector": "Electricity Utilities", "target_probability": 0.4285714285714285, "historic_data": { - "emission_intensities": { + "emissions_intensities": { "S1": [ { "year": 2009, @@ -767,7 +767,7 @@ "S3": [], "S1S2S3": [] }, - "emission_intensities": { + "emissions_intensities": { "S1": [ { "year": 2009, @@ -1056,7 +1056,7 @@ "S3": [], "S1S2S3": [] }, - "emission_intensities": { + "emissions_intensities": { "S1": [ { "year": 2009, @@ -1345,7 +1345,7 @@ "S3": [], "S1S2S3": [] }, - "emission_intensities": { + "emissions_intensities": { "S1": [ { "year": 2009, @@ -1634,7 +1634,7 @@ "S3": [], "S1S2S3": [] }, - "emission_intensities": { + "emissions_intensities": { "S1": [ { "year": 2009, @@ -1923,7 +1923,7 @@ "S3": [], "S1S2S3": [] }, - "emission_intensities": { + "emissions_intensities": { "S1": [ { "year": 2009, @@ -2212,7 +2212,7 @@ "S3": [], "S1S2S3": [] }, - "emission_intensities": { + "emissions_intensities": { "S1": [ { "year": 2009, @@ -2501,7 +2501,7 @@ "S3": [], "S1S2S3": [] }, - "emission_intensities": { + "emissions_intensities": { "S1": [ { "year": 2009, @@ -2790,7 +2790,7 @@ "S3": [], "S1S2S3": [] }, - "emission_intensities": { + "emissions_intensities": { "S1": [ { "year": 2009, @@ -3079,7 +3079,7 @@ "S3": [], "S1S2S3": [] }, - "emission_intensities": { + "emissions_intensities": { "S1": [ { "year": 2009, @@ -3368,7 +3368,7 @@ "S3": [], "S1S2S3": [] }, - "emission_intensities": { + "emissions_intensities": { "S1": [ { "year": 2009, @@ -3657,7 +3657,7 @@ "S3": [], "S1S2S3": [] }, - "emission_intensities": { + "emissions_intensities": { "S1": [ { "year": 2009, @@ -3946,7 +3946,7 @@ "S3": [], "S1S2S3": [] }, - "emission_intensities": { + "emissions_intensities": { "S1": [ { "year": 2009, @@ -4235,7 +4235,7 @@ "S3": [], "S1S2S3": [] }, - "emission_intensities": null + "emissions_intensities": null } }, { @@ -4412,7 +4412,7 @@ "S3": [], "S1S2S3": [] }, - "emission_intensities": { + "emissions_intensities": { "S1": [ { "year": 2009, @@ -4701,7 +4701,7 @@ "S3": [], "S1S2S3": [] }, - "emission_intensities": { + "emissions_intensities": { "S1": [ { "year": 2009, @@ -4990,7 +4990,7 @@ "S3": [], "S1S2S3": [] }, - "emission_intensities": { + "emissions_intensities": { "S1": [ { "year": 2009, @@ -5279,7 +5279,7 @@ "S3": [], "S1S2S3": [] }, - "emission_intensities": { + "emissions_intensities": { "S1": [ { "year": 2009, @@ -5568,7 +5568,7 @@ "S3": [], "S1S2S3": [] }, - "emission_intensities": { + "emissions_intensities": { "S1": [ { "year": 2009, @@ -5857,7 +5857,7 @@ "S3": [], "S1S2S3": [] }, - "emission_intensities": { + "emissions_intensities": { "S1": [ { "year": 2009, @@ -6146,7 +6146,7 @@ "S3": [], "S1S2S3": [] }, - "emission_intensities": { + "emissions_intensities": { "S1": [ { "year": 2009, @@ -6435,7 +6435,7 @@ "S3": [], "S1S2S3": [] }, - "emission_intensities": { + "emissions_intensities": { "S1": [ { "year": 2009, @@ -6724,7 +6724,7 @@ "S3": [], "S1S2S3": [] }, - "emission_intensities": { + "emissions_intensities": { "S1": [ { "year": 2009, @@ -7013,7 +7013,7 @@ "S3": [], "S1S2S3": [] }, - "emission_intensities": { + "emissions_intensities": { "S1": [ { "year": 2009, @@ -7302,7 +7302,7 @@ "S3": [], "S1S2S3": [] }, - "emission_intensities": { + "emissions_intensities": { "S1": [ { "year": 2009, @@ -7591,7 +7591,7 @@ "S3": [], "S1S2S3": [] }, - "emission_intensities": { + "emissions_intensities": { "S1": [ { "year": 2009, @@ -7880,7 +7880,7 @@ "S3": [], "S1S2S3": [] }, - "emission_intensities": { + "emissions_intensities": { "S1": [ { "year": 2009, @@ -8169,7 +8169,7 @@ "S3": [], "S1S2S3": [] }, - "emission_intensities": { + "emissions_intensities": { "S1": [ { "year": 2009, diff --git a/test/inputs/json/test_project_reference.json b/test/inputs/json/test_project_reference.json index 34d98de7..433b9fe0 100644 --- a/test/inputs/json/test_project_reference.json +++ b/test/inputs/json/test_project_reference.json @@ -173,7 +173,7 @@ "S3": [], "S1S2S3": [] }, - "emission_intensities": { + "emissions_intensities": { "S1": [ { "year": 2009, @@ -505,7 +505,7 @@ "S3": [], "S1S2S3": [] }, - "emission_intensities": { + "emissions_intensities": { "S1": [ { "year": 2009, @@ -778,7 +778,7 @@ "historic_data": { "productions": null, "emissions": null, - "emission_intensities": { + "emissions_intensities": { "S1": [ { "year": 2009, @@ -1216,7 +1216,7 @@ "S3": [], "S1S2S3": [] }, - "emission_intensities": { + "emissions_intensities": { "S1": [ { "year": 2009, @@ -1654,7 +1654,7 @@ "S3": [], "S1S2S3": [] }, - "emission_intensities": { + "emissions_intensities": { "S1": [ { "year": 2009, @@ -2092,7 +2092,7 @@ "S3": [], "S1S2S3": [] }, - "emission_intensities": { + "emissions_intensities": { "S1": [ { "year": 2009, @@ -2530,7 +2530,7 @@ "S3": [], "S1S2S3": [] }, - "emission_intensities": { + "emissions_intensities": { "S1": [ { "year": 2009, @@ -2968,7 +2968,7 @@ "S3": [], "S1S2S3": [] }, - "emission_intensities": { + "emissions_intensities": { "S1": [ { "year": 2009, @@ -3406,7 +3406,7 @@ "S3": [], "S1S2S3": [] }, - "emission_intensities": { + "emissions_intensities": { "S1": [ { "year": 2009, @@ -3844,7 +3844,7 @@ "S3": [], "S1S2S3": [] }, - "emission_intensities": { + "emissions_intensities": { "S1": [ { "year": 2009, @@ -4282,7 +4282,7 @@ "S3": [], "S1S2S3": [] }, - "emission_intensities": { + "emissions_intensities": { "S1": [ { "year": 2009, @@ -4720,7 +4720,7 @@ "S3": [], "S1S2S3": [] }, - "emission_intensities": { + "emissions_intensities": { "S1": [ { "year": 2009, @@ -5158,7 +5158,7 @@ "S3": [], "S1S2S3": [] }, - "emission_intensities": { + "emissions_intensities": { "S1": [ { "year": 2009, @@ -5596,7 +5596,7 @@ "S3": [], "S1S2S3": [] }, - "emission_intensities": { + "emissions_intensities": { "S1": [ { "year": 2009, @@ -6034,7 +6034,7 @@ "S3": [], "S1S2S3": [] }, - "emission_intensities": { + "emissions_intensities": { "S1": [ { "year": 2009, @@ -6472,7 +6472,7 @@ "S3": [], "S1S2S3": [] }, - "emission_intensities": null + "emissions_intensities": null }, "projected_targets": null, "projected_intensities": { @@ -6798,7 +6798,7 @@ "S3": [], "S1S2S3": [] }, - "emission_intensities": { + "emissions_intensities": { "S1": [ { "year": 2009, @@ -7236,7 +7236,7 @@ "S3": [], "S1S2S3": [] }, - "emission_intensities": { + "emissions_intensities": { "S1": [ { "year": 2009, @@ -7674,7 +7674,7 @@ "S3": [], "S1S2S3": [] }, - "emission_intensities": { + "emissions_intensities": { "S1": [ { "year": 2009, @@ -8112,7 +8112,7 @@ "S3": [], "S1S2S3": [] }, - "emission_intensities": { + "emissions_intensities": { "S1": [ { "year": 2009, @@ -8550,7 +8550,7 @@ "S3": [], "S1S2S3": [] }, - "emission_intensities": { + "emissions_intensities": { "S1": [ { "year": 2009, @@ -8988,7 +8988,7 @@ "S3": [], "S1S2S3": [] }, - "emission_intensities": { + "emissions_intensities": { "S1": [ { "year": 2009, @@ -9426,7 +9426,7 @@ "S3": [], "S1S2S3": [] }, - "emission_intensities": { + "emissions_intensities": { "S1": [ { "year": 2009, @@ -9864,7 +9864,7 @@ "S3": [], "S1S2S3": [] }, - "emission_intensities": { + "emissions_intensities": { "S1": [ { "year": 2009, @@ -10302,7 +10302,7 @@ "S3": [], "S1S2S3": [] }, - "emission_intensities": { + "emissions_intensities": { "S1": [ { "year": 2009, @@ -10740,7 +10740,7 @@ "S3": [], "S1S2S3": [] }, - "emission_intensities": { + "emissions_intensities": { "S1": [ { "year": 2009, @@ -11178,7 +11178,7 @@ "S3": [], "S1S2S3": [] }, - "emission_intensities": { + "emissions_intensities": { "S1": [ { "year": 2009, @@ -11616,7 +11616,7 @@ "S3": [], "S1S2S3": [] }, - "emission_intensities": { + "emissions_intensities": { "S1": [ { "year": 2009, @@ -12054,7 +12054,7 @@ "S3": [], "S1S2S3": [] }, - "emission_intensities": { + "emissions_intensities": { "S1": [ { "year": 2009, @@ -12492,7 +12492,7 @@ "S3": [], "S1S2S3": [] }, - "emission_intensities": { + "emissions_intensities": { "S1": [ { "year": 2009, From d43532c2e69641a761baf004fe2a05c0f3ecbfd9 Mon Sep 17 00:00:00 2001 From: MichaelTiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> Date: Thu, 3 Mar 2022 00:32:24 -0500 Subject: [PATCH 138/345] Update test_temperature_score.py Fix units for ghg_s1s2. Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- test/test_temperature_score.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/test/test_temperature_score.py b/test/test_temperature_score.py index 6fb5c247..2f46d36c 100644 --- a/test/test_temperature_score.py +++ b/test/test_temperature_score.py @@ -25,8 +25,8 @@ def setUp(self) -> None: "data_test_temperature_score.csv"), sep=";") with warnings.catch_warnings(): warnings.simplefilter("ignore") - df['ghg_s1s2'] = df['ghg_s1s2'].astype('pint[MWh]') - df['ghg_s3'] = df['ghg_s3'].astype('pint[MWh]') + df['ghg_s1s2'] = df['ghg_s1s2'].astype('pint[t CO2]') + df['ghg_s3'] = df['ghg_s3'].astype('pint[t CO2]') for cumulative in ['cumulative_budget', 'cumulative_target', 'cumulative_trajectory']: df[cumulative] = df[cumulative].astype('pint[Mt CO2]') df['benchmark_global_budget'] = df['benchmark_global_budget'].astype('pint[Gt CO2]') From a74dff7efa2e03f9ed2a742644c71995798fcc76 Mon Sep 17 00:00:00 2001 From: David Kroon Date: Wed, 2 Mar 2022 16:37:12 +0100 Subject: [PATCH 139/345] Cleanup Signed-off-by: David Kroon Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- ITR/data/base_providers.py | 15 +++++---------- ITR/data/excel.py | 2 +- ITR/interfaces.py | 11 +++++------ ITR/utils.py | 19 +++++++------------ test/test_projection.py | 3 +++ 5 files changed, 21 insertions(+), 29 deletions(-) diff --git a/ITR/data/base_providers.py b/ITR/data/base_providers.py index aea97c1f..9d50b387 100644 --- a/ITR/data/base_providers.py +++ b/ITR/data/base_providers.py @@ -73,7 +73,7 @@ def get_company_projected_production(self, company_sector_region_info: pd.DataFr benchmark_production_projections = self.get_benchmark_projections(company_sector_region_info) company_production = company_sector_region_info[self.column_config.BASE_YEAR_PRODUCTION] return benchmark_production_projections.add(1).cumprod(axis=1).mul( - company_production, axis=0) # .astype(f"pint[{units}]") + company_production, axis=0) def get_benchmark_projections(self, company_sector_region_info: pd.DataFrame, scope: EScope = EScope.S1S2) -> pd.DataFrame: @@ -92,11 +92,8 @@ def get_benchmark_projections(self, company_sector_region_info: pd.DataFrame, mask = benchmark_regions.isin(benchmark_projection.reset_index()[self.column_config.REGION]) benchmark_regions.loc[~mask] = "Global" - benchmark_projection = benchmark_projection.loc[list(zip(benchmark_regions, sectors)), - range(self.temp_config.CONTROLS_CONFIG.base_year, - self.temp_config.CONTROLS_CONFIG.target_end_year + 1)] + benchmark_projection = benchmark_projection.loc[list(zip(benchmark_regions, sectors))] benchmark_projection.index = sectors.index - return benchmark_projection @@ -188,9 +185,7 @@ def _get_intensity_benchmarks(self, company_sector_region_info: pd.DataFrame, mask = benchmark_regions.isin(benchmark_projection.reset_index()[self.column_config.REGION]) benchmark_regions.loc[~mask] = "Global" - benchmark_projection = benchmark_projection.loc[list(zip(benchmark_regions, sectors)), - range(self.temp_config.CONTROLS_CONFIG.base_year, - self.temp_config.CONTROLS_CONFIG.target_end_year + 1)] + benchmark_projection = benchmark_projection.loc[list(zip(benchmark_regions, sectors))] benchmark_projection.index = sectors.index return benchmark_projection @@ -259,8 +254,8 @@ def _convert_projections_to_series(self, company: ICompanyData, feature: str, # projections = company_dict[feature][scopes[0]]['projections'] projections = [] return pd.Series( - {p['year']: p['value'] for p in projections }, - name=company.company_id, dtype=f'pint[{emissions_units}/{production_units}]') + {p['year']: p['value'] for p in projections}, + name=company.company_id, dtype=f'pint[{emissions_units}/{production_units}]') def _calculate_target_projections(self, production_bm: BaseProviderProductionBenchmark, diff --git a/ITR/data/excel.py b/ITR/data/excel.py index 67d46e9e..6622b7dc 100644 --- a/ITR/data/excel.py +++ b/ITR/data/excel.py @@ -99,7 +99,7 @@ def _get_projected_production(self, scope: EScope = EScope.S1S2) -> pd.DataFrame :param scope: :return: """ - return self.benchmark_excel[TabsConfig.PROJECTED_PRODUCTION].reset_index().set_index( + return self.benchmark_excel[TabsConfig.PROJECTED_PRODUCTION].set_index( [self.column_config.REGION, self.column_config.SECTOR]) diff --git a/ITR/interfaces.py b/ITR/interfaces.py index 37bb7215..4f4b2035 100644 --- a/ITR/interfaces.py +++ b/ITR/interfaces.py @@ -1,12 +1,11 @@ +import numpy as np from enum import Enum from typing import Optional, Dict, List, Literal, Union from typing_extensions import Annotated -from pydantic import BaseModel, Field, ValidationError, parse_obj_as - +from pydantic import BaseModel, Field, parse_obj_as from pint import Quantity + from ITR.data.osc_units import ureg, Q_ -import numpy as np -import pandas as pd class AggregationContribution(BaseModel): company_name: str @@ -389,7 +388,7 @@ class ICompanyData(PintModel): country: Optional[str] emissions_metric: Optional[EmissionsMetric] # Typically use t CO2 for MWh/GJ and Mt CO2 for TWh/PJ - production_metric: Optional[ProductionMetric] # Optional because it can be inferred from sector and region + production_metric: Optional[ProductionMetric] # Optional because it can be inferred from sector and region # These three instance variables match against financial data below, but are incomplete as historic_data and target_data base_year_production: Optional[Quantity[ProductionMetric]] @@ -464,7 +463,7 @@ def __init__(self, historic_data=None, projected_targets=None, projected_intensi # TODO: This is a hack to get things going. year = kwargs['report_date'].year for i in range(len(self.historic_data.emissions.S1S2)): - if self.historic_data.emissions.S1S2[-1 -i].year == year: + if self.historic_data.emissions.S1S2[-1 - i].year == year: self.ghg_s1s2 = self.historic_data.emissions.S1S2[-1 - i].value break if self.ghg_s1s2 is None: diff --git a/ITR/utils.py b/ITR/utils.py index 835418d7..578cc372 100644 --- a/ITR/utils.py +++ b/ITR/utils.py @@ -1,23 +1,18 @@ -from pathlib import Path - -# If this file is moved, the computation of get_project_root may also need to change -def get_project_root() -> Path: - return Path(__file__).parent - import pandas as pd +from pathlib import Path from typing import List, Optional, Tuple - from pint import Quantity -from .data.osc_units import ureg, Q_, PA_ -# ureg = pint.get_application_registry() from .configs import ColumnsConfig, TemperatureScoreConfig from .interfaces import PortfolioCompany, EScope, ETimeFrames, ScoreAggregations, TemperatureScoreControls - -from .temperature_score import TemperatureScore +from .data.data_warehouse import DataWarehouse from .portfolio_aggregation import PortfolioAggregationMethod -from .data.data_warehouse import DataWarehouse + +# If this file is moved, the computation of get_project_root may also need to change +def get_project_root() -> Path: + return Path(__file__).parent + def _flatten_user_fields(record: PortfolioCompany): """ diff --git a/test/test_projection.py b/test/test_projection.py index bd919872..9f9c65f4 100644 --- a/test/test_projection.py +++ b/test/test_projection.py @@ -5,17 +5,20 @@ from ITR.data.base_providers import EITrajectoryProjector from ITR.interfaces import ICompanyData + def mystr(s): t = str(s).replace('CO2 * metric_ton', 't CO2').replace('gigajoule','GJ').replace(' / ', '/') if t.startswith('nan'): return json.loads('NaN') return t + def refstr(s): if s!=s: return json.loads('NaN') return str(s) + class TestProjector(unittest.TestCase): """ Test the projector that converts historic data into emission intensity projections From 804efd5ea7483f3b1843fcab5b96a4c7cc34f559 Mon Sep 17 00:00:00 2001 From: MichaelTiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> Date: Thu, 3 Mar 2022 02:40:43 -0500 Subject: [PATCH 140/345] Major rework of ICompanyData to handle historic data better (WIP) The more I look at the test cases and use cases of this code, the more I realize that the code needs to deal with a much greater diversity of data and assumptions than the first few test cases we got working. The biggest problem has been the ICompanyData structure, which has a fairly wide range of uses cases (beyond just the NZAOA template we've been working on). Each of those test cases not only stresses different parts of the data structure, but also makes very different assumptions about what data can or should be derived from what other data. Early in the tool's development we could count on a base year's ghg_s1s2 being present to do various calculations. Now that we have historic data, the use cases assume we can collect that unspecified data ourselves. And not all test and input data has all the units we expect, either. Fixing one set of problems often reveals other dependencies. TL;DR: these changes have the following major components: In base_providers.py, we true up some column/variable naming so that the NZAOA template doesn't require as much renaming of columns, which will make it easier to follow error messages when something like target_base_year_qty is not correctly specified. Other changes include better maintenance of units through the winsorization process. And also the replacement of some simplistic unit inferencing with what's actually in the data. template.py tracks the naming changes described above. test_base_providers.py and test_different_benchmarks.py add the now necessary emissions_metric and production_metric fields after reading in the JSON input file. A better fix would be to recreate the JSON file with the necessary fields in the file. test_e2e.py has necessary units attached to its projections. interfaces.py: lots of changes of many kinds. The most boring of which is to make the name changes referenced above (so we can provide better error reporting). But also... * Moved Units and Metrics up to the top of the file * Moved Enums to the top of the file * tweaks to pint_ify and UProjections_to_Projections * Deleted unused classes * ICompanyEIProjection: added ei_metric field * Simplify a number of IHistoric and Realization classes * New _fixup functions serve to convey unit information from the body of the ICompanyData object to the many lists that hang off of it (and are as likely to need unit information from the main object as they are to provide such information for inferencing purposes). Several test cases now pass, and several more do not. Hopefully the remainder will pass soon! Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- ITR/data/base_providers.py | 56 ++--- ITR/data/template.py | 17 +- ITR/interfaces.py | 370 ++++++++++++++---------------- test/test_base_providers.py | 7 + test/test_different_benchmarks.py | 11 + test/test_e2e.py | 17 +- 6 files changed, 228 insertions(+), 250 deletions(-) diff --git a/ITR/data/base_providers.py b/ITR/data/base_providers.py index 9d50b387..3a11a8b6 100644 --- a/ITR/data/base_providers.py +++ b/ITR/data/base_providers.py @@ -247,12 +247,11 @@ def _convert_projections_to_series(self, company: ICompanyData, feature: str, res = reduce(series_adder, projection_series.values()) return res elif len(projection_scopes)==0: - print(f"missing target scope data for {company.company_name} :: {scope}") - error() + raise ValueError(f"missing target scope data for {company.company_name} :: {scope}") else: # This clause is only accessed if the scope is S1S2 or S1S2S3 of which only one scope is provided. - # projections = company_dict[feature][scopes[0]]['projections'] - projections = [] + projections = company_dict[feature][scopes[0]]['projections'] + # projections = [] return pd.Series( {p['year']: p['value'] for p in projections}, name=company.company_id, dtype=f'pint[{emissions_units}/{production_units}]') @@ -271,7 +270,7 @@ def _calculate_target_projections(self, if c.projected_targets is not None: continue elif c.target_data is None: - print(f"no target data for {c.company_name}") + raise ValueError(f"no target data for {c.company_name}") continue else: base_year_production = next((p.value for p in c.historic_data.productions if p.year == self.temp_config.CONTROLS_CONFIG.base_year), None) @@ -417,10 +416,10 @@ def _extract_historic_data(self, companies: List[ICompanyData]) -> pd.DataFrame: data.extend(self._historic_emissions_to_dicts(company.company_id, company.historic_data.emissions)) if company.historic_data.emissions_intensities: data.extend(self._historic_ei_to_dicts(company.company_id, - company.historic_data.emissions_intensities)) + company.historic_data.emissions_intensities)) if not data: - print("No historic data anywhere") print(companies) + raise ValueError("No historic data anywhere") return pd.DataFrame.from_records(data).set_index( [ColumnsConfig.COMPANY_ID, ColumnsConfig.VARIABLE, ColumnsConfig.SCOPE]) @@ -495,19 +494,14 @@ def _add_projections_to_companies(self, companies: List[ICompanyData], extrapola for company in companies: scope_projections = {} for scope in ICompanyEIProjectionsScopes.__fields__: - if not company.historic_data.emissions.__getattribute__(scope): + if not company.historic_data.emissions_intensities or not company.historic_data.emissions_intensities.__getattribute__(scope): + scope_projections[scope] = None continue results = extrapolations.loc[(company.company_id, VariablesConfig.EMISSIONS_INTENSITIES, scope)] - if company.emissions_metric and company.production_metric: - # These are already stored in the correct compact format - units = f"{company.emissions_metric.units}/{company.production_metric.units}" - elif company.sector=='Steel': - units = "t CO2/Fe_ton" - elif company.sector=='Electricity Utilities': - units = 't CO2/' + 'MWh' if company.region=='North America' else 'GJ' + units = f"{results.values[0].u:~P}" projections = [IProjection(year=year, value=value) for year, value in results.items() if year >= TemperatureScoreConfig.CONTROLS_CONFIG.base_year] - scope_projections[scope] = ICompanyEIProjections(projections=projections) + scope_projections[scope] = ICompanyEIProjections(ei_metric={'units':units}, projections=projections) company.projected_intensities = ICompanyEIProjectionsScopes(**scope_projections) @@ -517,26 +511,18 @@ def _standardize(self, intensities: pd.DataFrame) -> pd.DataFrame: intensities = intensities.T#.loc[2016:2020] for col in intensities.columns: s = intensities[col] + ei_units = f"{s.loc[s.first_valid_index()].u:~P}" if s.notnull().any(): with warnings.catch_warnings(): warnings.simplefilter("ignore") try: - intensities[col] = s.map(lambda x: Q_(np.nan, x.u) - if x.m is pd.NA else x).astype(f"pint[{s.loc[s.first_valid_index()].u:~P}]") + intensities[col] = s.map(lambda x: Q_(np.nan, ei_units) + if x.m is np.nan or x.m is pd.NA else x).astype(f"pint[{ei_units}]") except TypeError as e: print(e) winsorized_intensities: pd.DataFrame = self._winsorize(intensities) for col in winsorized_intensities.columns: - s = winsorized_intensities[col] - if s.notnull().any(): - with warnings.catch_warnings(): - warnings.simplefilter("ignore") - try: - # Convert the NaNs created in winsorize function back into a Quantity. The [5:-1] strips the pint[] from the quantity type - winsorized_intensities[col] = s.map(lambda x: Q_(np.nan, str(intensities[col].dtype)[5:-1]) - if x is np.nan else x).astype(f"pint[{s.loc[s.first_valid_index()].u:~P}]") - except TypeError as e: - print(e) + winsorized_intensities[col] = winsorized_intensities[col].astype(intensities[col].dtype) standardized_intensities: pd.DataFrame = self._interpolate(winsorized_intensities) with warnings.catch_warnings(): # Don't worry about warning that we are intentionally dropping units as we transpose @@ -655,8 +641,8 @@ def project_ei_targets(self, targets: List[ITargetData], historic_data: IHistori last_year, value_last_year = last_year_data.year, last_year_data.value target_year = target.end_year # Attribute target_reduction_pct of ITargetData is currently a fraction, not a percentage. - target_value = Q_(target.target_base_qty * (1 - target.target_reduction_pct), - target.target_base_unit) + target_value = Q_(target.target_base_year_qty * (1 - target.target_reduction_pct), + target.target_base_year_unit) CAGR = self._compute_CAGR(value_last_year, target_value, (target_year - last_year)) ei_projections = [ICompanyEIProjection(year=year, value=value_last_year * (1 + CAGR) ** (y + 1)) for y, year in enumerate(range(1 + last_year, 1 + target_year))] @@ -665,12 +651,12 @@ def project_ei_targets(self, targets: List[ITargetData], historic_data: IHistori else: ei_projection_scopes[scope] = ICompanyEIProjections(projections=ei_projections) if not scope_targets and netzero_year > target_year: # add in netzero target at the end - CAGR = self._compute_CAGR(target_value, Q_(0, target.target_base_unit), (netzero_year - target_year)) + CAGR = self._compute_CAGR(target_value, Q_(0, target.target_base_year_unit), (netzero_year - target_year)) ei_projections = [ICompanyEIProjection(year=year, value=target_value * (1 + CAGR) ** (y + 1)) for y, year in enumerate(range(1 + target_year, 1 + netzero_year))] ei_projection_scopes[scope].projections.extend(ei_projections) target_year = netzero_year - target_value = Q_(0, target.target_base_unit) + target_value = Q_(0, target.target_base_year_unit) if not scope_targets and target_year < 2050: # Assume everything stays flat until 2050 ei_projection_scopes[scope].projections.extend( @@ -699,14 +685,14 @@ def project_ei_targets(self, targets: List[ITargetData], historic_data: IHistori last_year, value_last_year = last_year_data.year, last_year_data.value target_year = target.end_year # Attribute target_reduction_pct of ITargetData is currently a fraction, not a percentage. - target_value = Q_(target.target_base_qty * (1 - target.target_reduction_pct), - target.target_base_unit) + target_value = Q_(target.target_base_year_qty * (1 - target.target_reduction_pct), + target.target_base_year_unit) CAGR = self._compute_CAGR(value_last_year, target_value, (target_year - last_year)) emissions_projections = [value_last_year * (1 + CAGR) ** (y + 1) for y, year in enumerate(range(last_year + 1, target_year + 1))] emissions_projections = pd.Series(emissions_projections, index=range(last_year + 1, target_year + 1), - dtype=f'pint[{target.target_base_unit}]') + dtype=f'pint[{target.target_base_year_unit}]') production_projections = production_bm.loc[last_year + 1: target_year] ei_projections = emissions_projections / production_projections diff --git a/ITR/data/template.py b/ITR/data/template.py index e02af5d6..5fd3b78a 100644 --- a/ITR/data/template.py +++ b/ITR/data/template.py @@ -295,12 +295,12 @@ def _get_projection(self, company_ids: List[str], projections: pd.DataFrame, # netzero_year: int # target_type: Union[Literal['intensity'],Literal['absolute'],Literal['other']] # target_scope: EScope - # start_year: Optional[int] - # base_year: int - # end_year: int + # target_start_year: Optional[int] + # target_base_year: int + # target_end_year: int - # target_base_qty: float - # target_base_unit: str + # target_base_year_qty: float + # target_base_year_unit: str # target_reduction_pct: float def _convert_target_data(self, target_data: pd.DataFrame) -> List[ITargetData]: @@ -308,12 +308,7 @@ def _convert_target_data(self, target_data: pd.DataFrame) -> List[ITargetData]: :param historic: historic production, emission and emission intensity data for a company :return: IHistoricData Pydantic object """ - target_data = target_data.rename(columns={'target_base_year': 'base_year', - 'target_start_year': 'start_year', - 'target_year': 'end_year', - 'target_reduction_ambition': 'target_reduction_pct', - 'target_base_year_qty': 'target_base_qty', - 'target_base_year_unit': 'target_base_unit'}) + target_data = target_data.rename(columns={'target_year': 'target_end_year', 'target_reduction_ambition': 'target_reduction_pct',}) return [ITargetData(**td) for td in target_data.to_dict('records')] def _get_historic_data(self, company_ids: List[str], historic_data: pd.DataFrame) -> pd.DataFrame: diff --git a/ITR/interfaces.py b/ITR/interfaces.py index 4f4b2035..e891e754 100644 --- a/ITR/interfaces.py +++ b/ITR/interfaces.py @@ -62,25 +62,28 @@ class PortfolioCompany(BaseModel): user_fields: Optional[dict] -def pint_ify(x, units='error'): +def pint_ify(x, units='dimensionless'): if 'units' in units: units = units['units'] - if x is None: + if x is None or x is np.nan: return Q_(np.nan, units) if type(x) == str: if x.startswith('nan '): return Q_(np.nan, units) return ureg(x) if isinstance(x, Quantity): + # Emissions intensities can arrive as dimensionless if emissions_metric and production_metric are both None + if x.m is np.nan and x.u == 'dimensionless': + return Q_(np.nan, units) return x return Q_(x, units) -def UProjections_to_IProjections(ul, metric): +def UProjections_to_IProjections(classtype, ul, metric): if ul is None or ul is np.nan: return ul for x in ul: - if isinstance(x, IProjection): + if isinstance(x, classtype): return ul units = metric['units'] if 'units' in units: @@ -94,90 +97,13 @@ def UProjections_to_IProjections(ul, metric): return pl -def UProjection_to_IProjection(u, metric): - if u is None or u['value'] is np.nan: - return pint_ify(np.nan, metric['units']) - if not isinstance(u, dict): - return u - p = dict(u) - p['value'] = pint_ify(p['value'], metric['units']) - return p - - -def UScopes_to_IScopes(uscopes): - if not isinstance(uscopes, dict): - return uscopes - iscopes = dict(uscopes) - for skey, sval in iscopes.items(): - if iscopes[skey] is None: - continue - iscopes[skey] = ireports = dict(iscopes[skey]) - ireports['reports'] = u_2_i_list = ireports['reports'].copy() - for i in range(len(u_2_i_list)): - iscope = dict(u_2_i_list[i]) - iscope['projections'] = UProjections_to_IProjections(iscope['projections'], iscope['company_metric']) - u_2_i_list[i] = iscope - return iscopes - - -class PowerGenerationWh(BaseModel): - units: Union[Literal['MWh'], Literal['GWh'], Literal['TWh']] - - -class PowerGenerationJ(BaseModel): - units: Union[Literal['GJ'], Literal['gigajoule'], Literal['GP'], Literal['petajoule']] - - -PowerGeneration = Annotated[Union[PowerGenerationWh, PowerGenerationJ], Field(discriminator='units')] - - -class ManufactureSteel(BaseModel): - units: Union[Literal['Fe_ton'], Literal['kiloFe_ton'], Literal['megaFe_ton']] - - -Manufacturing = Annotated[Union[ManufactureSteel], Field(discriminator='units')] - -ProductionMetric = Annotated[Union[PowerGeneration, ManufactureSteel], Field(discriminator='units')] - - -class EmissionsCO2(BaseModel): - units: Union[Literal['t CO2'], Literal['kt CO2'], Literal['Mt CO2'], Literal['Gt CO2']] - - -EmissionsMetric = Annotated[EmissionsCO2, Field(discriminator='units')] - - -class EmissionsIntensity(BaseModel): - units: Union[ - Literal['t CO2/MWh'], Literal['t CO2/GWh'], Literal['t CO2/TWh'], Literal['t CO2/GJ'], Literal['t CO2/PJ'], - Literal['t CO2/Fe_ton']] - - -class DimensionlessNumber(BaseModel): - units: Literal['dimensionless'] - - -OSC_Metric = Annotated[ - Union[ProductionMetric, EmissionsMetric, EmissionsIntensity, DimensionlessNumber], Field(discriminator='units')] - - # U is Unquantified class UProjection(BaseModel): year: int value: Optional[float] -class UBenchmark(BaseModel): - sector: str - region: str - benchmark_metric: OSC_Metric - projections: List[UProjection] - - def __getitem__(self, item): - return getattr(self, item) - - -# I means we have quantified values. Normally we'd need to __init__ this, but it's always handled in UProjection_to_IProjection +# When IProjection is NULL, we don't actually know its type, so we instantiate that later class IProjection(PintModel): year: int value: Optional[Quantity] @@ -191,7 +117,7 @@ class IBenchmark(BaseModel): def __init__(self, benchmark_metric, projections, *args, **kwargs): super().__init__(benchmark_metric=benchmark_metric, - projections=UProjections_to_IProjections(projections, benchmark_metric), + projections=UProjections_to_IProjections(IProjection, projections, benchmark_metric), *args, **kwargs) def __getitem__(self, item): @@ -228,32 +154,19 @@ def __getitem__(self, item): return getattr(self, item) -class ICompanyProjection(BaseModel): - company_metric: OSC_Metric - projections: List[IProjection] - - def __init__(self, projections, *args, **kwargs): - super().__init__(projections=UProjections_to_IProjections(projections, company_metric), - *args, **kwargs) - - def __getitem__(self, item): - return getattr(self, item) - - class ICompanyEIProjection(PintModel): year: int - value: Optional[Quantity[EmissionsIntensity]] - - def __init__(self, year, value): - super().__init__(year=year, value=pint_ify(value, 't CO2/MWh')) - - def __getitem__(self, item): - return getattr(self, item) + value: Optional[Quantity] class ICompanyEIProjections(BaseModel): + ei_metric: IntensityMetric projections: List[ICompanyEIProjection] + def __init__(self, ei_metric, projections, *args, **kwargs): + super().__init__(ei_metric=ei_metric, projections=UProjections_to_IProjections(ICompanyEIProjection, projections, ei_metric), + *args, **kwargs) + def __getitem__(self, item): return getattr(self, item) @@ -273,21 +186,11 @@ class IProductionRealization(PintModel): year: int value: Optional[Quantity[ProductionMetric]] - def __init__(self, year, value=None): - super().__init__(year=year, value=value) - if value is None: - self.value = None - class IEmissionRealization(PintModel): year: int value: Optional[Quantity['CO2']] - def __init__(self, year, value): - super().__init__(year=year, value=pint_ify(value, 't CO2')) - if value is None: - self.value = None - class IHistoricEmissionsScopes(PintModel): S1: List[IEmissionRealization] @@ -301,11 +204,6 @@ class IEIRealization(PintModel): year: int value: Optional[Quantity[EmissionsIntensity]] - def __init__(self, year, value): - super().__init__(year=year, value=value) - if value is None: - self.value = None - class IHistoricEIScopes(PintModel): S1: List[IEIRealization] @@ -315,46 +213,6 @@ class IHistoricEIScopes(PintModel): S1S2S3: List[IEIRealization] -class EScope(SortableEnum): - S1 = "S1" - S2 = "S2" - S3 = "S3" - S1S2 = "S1+S2" - S1S2S3 = "S1+S2+S3" - - @classmethod - def get_scopes(cls) -> List[str]: - """ - Get a list of all scopes. - :return: A list of EScope string values - """ - return ['S1', 'S2', 'S3', 'S1S2', 'S1S2S3'] - - @classmethod - def get_result_scopes(cls) -> List['EScope']: - """ - Get a list of scopes that should be calculated if the user leaves it open. - - :return: A list of EScope objects - """ - return [cls.S1S2, cls.S3, cls.S1S2S3] - - -class ETimeFrames(SortableEnum): - """ - TODO: add support for multiple timeframes. Long currently corresponds to 2050. - """ - SHORT = "short" - MID = "mid" - LONG = "long" - - -class ECarbonBudgetScenario(Enum): - P25 = "25 percentile" - P75 = "75 percentile" - MEAN = "Average" - - class IHistoricData(PintModel): productions: Optional[List[IProductionRealization]] emissions: Optional[IHistoricEmissionsScopes] @@ -365,12 +223,12 @@ class ITargetData(PintModel): netzero_year: Optional[int] target_type: Union[Literal['intensity'], Literal['absolute'], Literal['other']] target_scope: EScope - start_year: Optional[int] - base_year: int - end_year: int + target_start_year: Optional[int] + target_base_year: int + target_end_year: int - target_base_qty: float - target_base_unit: str + target_base_year_qty: float + target_base_year_unit: str target_reduction_pct: float @@ -387,7 +245,7 @@ class ICompanyData(PintModel): country: Optional[str] - emissions_metric: Optional[EmissionsMetric] # Typically use t CO2 for MWh/GJ and Mt CO2 for TWh/PJ + emissions_metric: Optional[EmissionsMetric] # Typically use t CO2 for MWh/GJ and Mt CO2 for TWh/PJ production_metric: Optional[ProductionMetric] # Optional because it can be inferred from sector and region # These three instance variables match against financial data below, but are incomplete as historic_data and target_data @@ -413,17 +271,95 @@ class ICompanyData(PintModel): projected_intensities: Optional[ICompanyEIProjectionsScopes] # TODO: Do we want to do some sector inferencing here? - def _fixup_historic_productions(self, historic_productions, production_metric): - if historic_productions is None or production_metric is None: - # We have absolutely no production data of any kind...too bad! - return self.historic_data.productions - return UProjections_to_IProjections(historic_productions, production_metric) + + def _fixup_year_value_list(self, ListType, u_list, metric, inferred_metric): + # u_list is unprocessed; i_list is processed; r_list is returned list + i_list = [{'year':ul['year']} | {'value':Q_(ul['value']) + if ul['value'] is not None else Q_(np.nan, metric)} + for ul in u_list] + if not i_list: + return [] + if metric is None: + try: + metric = next(str(x['value'].u) for x in i_list if str(x['value'].u) != 'dimensionless') + except StopIteration as e: + # TODO: If everything in the list is empty, why not NULL it out and return []? + metric = inferred_metric + else: + metric = metric['units'] + for il in i_list: + if str(il['value'].u) == 'dimensionless': + il['value'] = Q_(il['value'].m, metric) + r_list = UProjections_to_IProjections(ListType, i_list, {'units':metric}) + return r_list + + def _fixup_ei_projections(self, projections, production_metric, emissions_metric, sector): + if projections is None or isinstance(projections, ICompanyEIProjectionsScopes): + return projections + ei_metric = None + if emissions_metric is None and production_metric is None: + inferred_emissions_metric = 't CO2' + if sector == 'Electricity Utilities': + inferred_production_metric = 'MWh' + else: + inferred_production_metric = 'Fe_ton' + inferred_ei_metric = f"{inferred_emissions_metric}/{inferred_production_metric}" + else: + inferred_emissions_metric = emissions_metric['units'] + inferred_production_metric = production_metric['units'] + inferred_ei_metric = f"{inferred_emissions_metric}/{inferred_production_metric}" + for scope in projections: + if projections[scope] is None: + continue + projections[scope]['projections'] = self._fixup_year_value_list(ICompanyEIProjectionsScopes, projections[scope]['projections'], None, inferred_ei_metric) + ei_metric = f"{projections[scope]['projections'][0]['value'].u:~P}" + projections[scope]['ei_metric'] = {'units':ei_metric} + model_projections = ICompanyEIProjectionsScopes(**projections) + return model_projections + + def _fixup_historic_data(self, historic_data, production_metric, emissions_metric, sector): + if historic_data is None: + return None + if production_metric is None: + if sector == 'Electricity Utilities': + inferred_production_metric = 'MWh' + else: + inferred_production_metric = 'Fe_ton' + else: + inferred_production_metric = production_metric['units'] + if not historic_data.get('productions'): + productions = None + else: + productions = self._fixup_year_value_list(IProductionRealization, historic_data['productions'], production_metric, inferred_production_metric) + if emissions_metric is None: + if production_metric in ['TWh', 'PJ']: + inferred_emissions_metric = 'Mt CO2' + else: + inferred_emissions_metric = 't CO2' + else: + inferred_emissions_metric = emissions_metric['units'] + if not historic_data.get('emissions'): + emissions = None + else: + emissions = {} + for scope in historic_data['emissions']: + emissions[scope] = self._fixup_year_value_list(IEmissionRealization, historic_data['emissions'][scope], emissions_metric, inferred_emissions_metric) + if not historic_data.get('emissions_intensities'): + emissions_intensities = None + else: + emissions_intensities = {} + inferred_ei_metric = f"{inferred_emissions_metric}/{inferred_production_metric}" + for scope in historic_data['emissions_intensities']: + emissions_intensities[scope] = self._fixup_year_value_list(IEIRealization, historic_data['emissions_intensities'][scope], None, inferred_ei_metric) + model_historic_data = IHistoricData(productions=productions, emissions=emissions, emissions_intensities=emissions_intensities) + return model_historic_data def __init__(self, historic_data=None, projected_targets=None, projected_intensities=None, emissions_metric=None, production_metric=None, base_year_production=None, ghg_s1s2=None, ghg_s3=None, *args, **kwargs): - super().__init__(historic_data=historic_data, - projected_targets=projected_targets, - projected_intensities=projected_intensities, + super().__init__(historic_data=self._fixup_historic_data(historic_data, production_metric, emissions_metric, kwargs.get('sector')), + # Not necessarily initialized here; may be fixed up if initially None after benchmark info is set + projected_targets=self._fixup_ei_projections(projected_targets, production_metric, emissions_metric, kwargs.get('sector')), + projected_intensities=self._fixup_ei_projections(projected_intensities, production_metric, emissions_metric, kwargs.get('sector')), emissions_metric=emissions_metric, production_metric=production_metric, *args, **kwargs) @@ -434,7 +370,7 @@ def __init__(self, historic_data=None, projected_targets=None, projected_intensi elif self.sector == 'Steel': units = 'Fe_ton' else: - raise ValueError("No source of production metrics") + raise ValueError(f"No source of production metrics for {self.company_name}") self.production_metric = parse_obj_as(ProductionMetric, {'units': units}) if emissions_metric is None: self.emissions_metric = parse_obj_as(EmissionsMetric, {'units': 't CO2'}) @@ -454,29 +390,69 @@ def __init__(self, historic_data=None, projected_targets=None, projected_intensi self.base_year_production = self.historic_data.productions[-1 - i].value break if self.base_year_production is None: - raise ValueError("invalid historic data for base_year_production") + # raise ValueError(f"invalid historic data for base_year_production for {self.company_name}") + self.base_year_production = Q_(np.nan, self.production_metric.units) else: - raise ValueError("missing historic data for base_year_production") + # raise ValueError(f"missing historic data for base_year_production for {self.company_name}") + self.base_year_production = Q_(np.nan, self.production_metric.units) if ghg_s1s2: self.ghg_s1s2=pint_ify(ghg_s1s2, self.emissions_metric.units) elif self.historic_data and self.historic_data.emissions: - # TODO: This is a hack to get things going. - year = kwargs['report_date'].year - for i in range(len(self.historic_data.emissions.S1S2)): - if self.historic_data.emissions.S1S2[-1 - i].year == year: - self.ghg_s1s2 = self.historic_data.emissions.S1S2[-1 - i].value - break - if self.ghg_s1s2 is None: - # TODO: cheap hack to treat S1 as S1S2, which we do for now for Consolidated Edison, Inc. + if self.historic_data.emissions.S1S2: + year = kwargs['report_date'].year + for i in range(len(self.historic_data.emissions.S1S2)): + if self.historic_data.emissions.S1S2[-1 - i].year == year: + self.ghg_s1s2 = self.historic_data.emissions.S1S2[-1 - i].value + break + if self.ghg_s1s2 is None: + raise ValueError(f"invalid historic data for ghg_s1s2 for {self.company_name}") + elif self.historic_data.emissions.S1 and self.historic_data.emissions.S2: + # TODO: This is also a hack to get things going. + year = kwargs['report_date'].year for i in range(len(self.historic_data.emissions.S1)): if self.historic_data.emissions.S1[-1 - i].year == year: - self.ghg_s1s2 = self.historic_data.emissions.S1[-1 - i].value + ghg_s1 = self.historic_data.emissions.S1[-1 - i].value break - if self.ghg_s1s2 is None: - print(self.company_name) - raise ValueError("invalid historic data for ghg_s1s2") - else: - raise ValueError("missing historic data for ghg_s1s2") + for i in range(len(self.historic_data.emissions.S2)): + if self.historic_data.emissions.S2[-1 - i].year == year: + ghg_s2 = self.historic_data.emissions.S2[-1 - i].value + break + try: + if ghg_s1 is None or ghg_s2 is None: + self.ghg_s1s2 = Q_(np.nan, self.emissions_metric.units) + else: + self.ghg_s1s2 = ghg_s1 + ghg_s2 + except ValueError: + raise ValueError(f"missing historic data for ghg_s1 and/or ghg_s2 for {self.company_name}") + if self.ghg_s1s2 is None: + if self.historic_data.emissions_intensities: + if self.historic_data.emissions_intensities.S1S2: + year = kwargs['report_date'].year + for i in range(len(self.historic_data.emissions_intensities.S1S2)): + if self.historic_data.emissions_intensities.S1S2[-1 - i].year == year: + self.ghg_s1s2 = self.historic_data.emissions_intensities.S1S2[-1 - i].value * self.base_year_production + break + if self.ghg_s1s2 is None: + raise ValueError(f"invalid historic S1S2 intensity data for {self.company_name}") + elif self.historic_data.emissions_intensities.S1 and self.historic_data.emissions_intensities.S2: + # TODO: This is also a hack to get things going. + year = kwargs['report_date'].year + for i in range(len(self.historic_data.emissions_intensities.S1)): + if self.historic_data.emissions_intensities.S1[-1 - i].year == year: + ei_s1 = self.historic_data.emissions_intensities.S1[-1 - i].value + break + for i in range(len(self.historic_data.emissions_intensities.S2)): + if self.historic_data.emissions_intensities.S2[-1 - i].year == year: + ei_s2 = self.historic_data.emissions_intensities.S2[-1 - i].value + break + try: + self.ghg_s1s2 = (ei_s1 + ei_s2) * self.base_year_production + except ValueError: + raise ValueError(f"missing historic S1 and/or S2 intensity data for {self.company_name}") + else: + raise ValueError(f"missing S1S2 historic intensity data for {self.company_name}") + if self.ghg_s1s2 is None: + raise ValueError(f"missing historic emissions or intensity data to calculate ghg_s1s2 for {self.company_name}") if ghg_s3: self.ghg_s3 = pint_ify(ghg_s3, self.emissions_metric.units) # TODO: We don't need to worry about missing S3 scope data yet @@ -492,15 +468,15 @@ class ICompanyAggregates(ICompanyData): # projected_targets: Optional[ICompanyEIProjectionsScopes] # projected_intensities: Optional[ICompanyEIProjectionsScopes] - def __init__(self, cumulative_budget, cumulative_trajectory, cumulative_target, benchmark_temperature, - benchmark_global_budget, *args, **kwargs): - super().__init__( - cumulative_budget=pint_ify(cumulative_budget, 't CO2'), - cumulative_trajectory=pint_ify(cumulative_trajectory, 't CO2'), - cumulative_target=pint_ify(cumulative_target, 't CO2'), - benchmark_temperature=pint_ify(benchmark_temperature, 'delta_degC'), - benchmark_global_budget=pint_ify(benchmark_global_budget, 'Gt CO2'), - *args, **kwargs) + def __init__(self, cumulative_budget, cumulative_trajectory, cumulative_target, + benchmark_temperature, benchmark_global_budget, + *args, **kwargs): + super().__init__(cumulative_budget=pint_ify(cumulative_budget, 't CO2'), + cumulative_trajectory=pint_ify(cumulative_trajectory, 't CO2'), + cumulative_target=pint_ify(cumulative_target, 't CO2'), + benchmark_temperature=pint_ify(benchmark_temperature, 'delta_degC'), + benchmark_global_budget=pint_ify(benchmark_global_budget, 'Gt CO2'), + *args, **kwargs) class TemperatureScoreControls(PintModel): diff --git a/test/test_base_providers.py b/test/test_base_providers.py index 93285830..5cff5284 100644 --- a/test/test_base_providers.py +++ b/test/test_base_providers.py @@ -31,6 +31,12 @@ def setUp(self) -> None: # load company data with open(self.company_json) as json_file: parsed_json = json.load(json_file) + for company_data in parsed_json: + company_data['emissions_metric'] = {'units':'t CO2'} + if company_data['sector'] == 'Electricity Utilities': + company_data['production_metric'] = {'units':'MWh'} + elif company_data['sector'] == 'Steel': + company_data['production_metric'] = {'units':'Fe_ton'} self.companies = [ICompanyData.parse_obj(company_data) for company_data in parsed_json] self.base_company_data = BaseCompanyDataProvider(self.companies) @@ -171,3 +177,4 @@ def test_get_value(self): test = TestBaseProvider() test.setUp() test.test_get_projected_production() + test.test_get_company_data() \ No newline at end of file diff --git a/test/test_different_benchmarks.py b/test/test_different_benchmarks.py index bf3a8ddf..1e61e87c 100644 --- a/test/test_different_benchmarks.py +++ b/test/test_different_benchmarks.py @@ -32,6 +32,12 @@ def setUp(self) -> None: # load company data with open(self.company_json) as json_file: parsed_json = json.load(json_file) + for company_data in parsed_json: + company_data['emissions_metric'] = {'units':'t CO2'} + if company_data['sector'] == 'Electricity Utilities': + company_data['production_metric'] = {'units':'MWh'} + elif company_data['sector'] == 'Steel': + company_data['production_metric'] = {'units':'Fe_ton'} self.companies = [ICompanyData.parse_obj(company_data) for company_data in parsed_json] self.base_company_data = BaseCompanyDataProvider(self.companies) @@ -122,3 +128,8 @@ def test_all_benchmarks(self): assert_array_equal(scores.temperature_score.values, expected) # verify that results exist self.assertAlmostEqual(agg_scores.long.S1S2.all.score, Q_(2.26, ureg.delta_degC), places=2) + +if __name__ == "__main__": + test = TestEIBenchmarks() + test.setUp() + test.test_all_benchmarks() diff --git a/test/test_e2e.py b/test/test_e2e.py index c5180853..4f3af41b 100644 --- a/test/test_e2e.py +++ b/test/test_e2e.py @@ -44,6 +44,8 @@ def setUp(self): base_year_production=IProjection.parse_obj({"year": 2019, "value":Q_(1000000.0, ureg('Fe_ton'))}).value, ghg_s1s2=IProjection.parse_obj({"year": 2019, "value":Q_(1698247.4347547039, ureg('t CO2'))}).value, ghg_s3=IProjection.parse_obj({"year": 2019, "value":Q_(0.0, ureg('t CO2'))}).value, + emissions_metric={'units':'t CO2'}, + production_metric={'units':'Fe_ton'}, company_revenue=100, company_market_cap=100, company_enterprise_value=100, @@ -58,39 +60,40 @@ def setUp(self): region='Europe', benchmark_global_budget="396 Gt CO2", benchmark_temperature="1.5 delta_degC", - production_metric = { "units": "Fe_ton" }, projected_intensities=ICompanyEIProjectionsScopes.parse_obj({ "S1S2": { + "ei_metric": {'units': "t CO2/Fe_ton"}, "projections": [ { "year": "2019", - "value": 1.6982474347547039 + "value": "1.6982474347547039 t CO2/Fe_ton" }, { "year": "2020", - "value": 1.6982474347547039 + "value": "1.6982474347547039 t CO2/Fe_ton" }, { "year": "2021", - "value": 1.5908285727976157 + "value": "1.5908285727976157 t CO2/Fe_ton" } ] } }), projected_targets=ICompanyEIProjectionsScopes.parse_obj({ "S1S2": { + "ei_metric": {'units': "t CO2/Fe_ton"}, "projections": [ { "year": "2019", - "value": 1.6982474347547039 + "value": "1.6982474347547039 t CO2/Fe_ton" }, { "year": "2020", - "value": 1.6982474347547039 + "value": "1.6982474347547039 t CO2/Fe_ton" }, { "year": "2021", - "value": 1.5577542305393455 + "value": "1.5577542305393455 t CO2/Fe_ton" } ] } From bac960ad73788209394aacd51cd0a6b38bc61045 Mon Sep 17 00:00:00 2001 From: MichaelTiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> Date: Thu, 3 Mar 2022 08:51:25 -0500 Subject: [PATCH 141/345] Get test_excel_provider.py working again Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- ITR/data/excel.py | 18 +++++++++++------- ITR/interfaces.py | 5 +++-- 2 files changed, 14 insertions(+), 9 deletions(-) diff --git a/ITR/data/excel.py b/ITR/data/excel.py index 6622b7dc..aba378bf 100644 --- a/ITR/data/excel.py +++ b/ITR/data/excel.py @@ -16,7 +16,7 @@ from ITR.data.base_providers import BaseCompanyDataProvider, BaseProviderProductionBenchmark, \ BaseProviderIntensityBenchmark from ITR.configs import ColumnsConfig, TemperatureScoreConfig, SectorsConfig, VariablesConfig, TabsConfig -from ITR.interfaces import ICompanyData, ICompanyEIProjection, EScope, IEIBenchmarkScopes, \ +from ITR.interfaces import BaseModel, ICompanyData, ICompanyEIProjection, EScope, IEIBenchmarkScopes, \ IProductionBenchmarkScopes, IBenchmark, IBenchmarks, IHistoricEmissionsScopes, \ IProductionRealization, IHistoricEIScopes, IHistoricData, IEmissionRealization, IEIRealization, IProjection @@ -186,13 +186,13 @@ def _convert_from_excel_data(self, excel_path: str) -> List[ICompanyData]: df_historic = None return self._company_df_to_model(df_fundamentals, df_targets, df_ei, df_historic) - def _convert_series_to_IProjections(self, projections: pd.Series) -> [IProjection]: + def _convert_series_to_projections(self, projections: pd.Series, ProjectionType: BaseModel) -> [IProjection]: """ Converts a Pandas Series to a list of IProjection :param projections: Pandas Series with years as indices :return: List of IProjection objects """ - return [IProjection(year=y, value=v) for y, v in projections.items()] + return [ProjectionType(year=y, value=v) for y, v in projections.items()] def _company_df_to_model(self, df_fundamentals: pd.DataFrame, df_targets: pd.DataFrame, df_ei: pd.DataFrame, df_historic: pd.DataFrame) -> List[ICompanyData]: @@ -225,8 +225,10 @@ def _company_df_to_model(self, df_fundamentals: pd.DataFrame, df_targets: pd.Dat # company_data.update({ColumnsConfig.PROJECTED_EI: {'S1S2': {'projections': df_ei}}}) company_id = company_data[ColumnsConfig.COMPANY_ID] - units = sector_to_production_metric[company_data[ColumnsConfig.SECTOR]] - company_data[ColumnsConfig.PRODUCTION_METRIC] = {'units': units} + production_metric = sector_to_production_metric[company_data[ColumnsConfig.SECTOR]] + intensity_metric = sector_to_intensity_metric[company_data[ColumnsConfig.SECTOR]] + company_data[ColumnsConfig.PRODUCTION_METRIC] = {'units': production_metric} + company_data[ColumnsConfig.EMISSIONS_METRIC] = {'units': 't CO2'} # pint automatically handles any unit conversions required v = df_fundamentals[df_fundamentals[ColumnsConfig.COMPANY_ID]==company_id][ColumnsConfig.GHG_SCOPE12].squeeze() @@ -236,9 +238,11 @@ def _company_df_to_model(self, df_fundamentals: pd.DataFrame, df_targets: pd.Dat v = df_fundamentals[df_fundamentals[ColumnsConfig.COMPANY_ID]==company_id][ColumnsConfig.GHG_SCOPE3].squeeze() company_data[ColumnsConfig.GHG_SCOPE3] = Q_(v or np.nan, 't CO2') company_data[ColumnsConfig.PROJECTED_TARGETS] = {'S1S2': { - 'projections': self._convert_series_to_IProjections (df_targets.loc[company_id, :])}} + 'projections': self._convert_series_to_projections (df_targets.loc[company_id, :], ICompanyEIProjection), + 'ei_metric': {'units': intensity_metric}}} company_data[ColumnsConfig.PROJECTED_EI] = {'S1S2': { - 'projections': self._convert_series_to_IProjections (df_ei.loc[company_id, :])}} + 'projections': self._convert_series_to_projections (df_ei.loc[company_id, :], ICompanyEIProjection), + 'ei_metric': {'units': intensity_metric}}} if df_historic is not None: company_data[TabsConfig.HISTORIC_DATA] = self._convert_historic_data( diff --git a/ITR/interfaces.py b/ITR/interfaces.py index e891e754..efc5273f 100644 --- a/ITR/interfaces.py +++ b/ITR/interfaces.py @@ -274,8 +274,9 @@ class ICompanyData(PintModel): def _fixup_year_value_list(self, ListType, u_list, metric, inferred_metric): # u_list is unprocessed; i_list is processed; r_list is returned list - i_list = [{'year':ul['year']} | {'value':Q_(ul['value']) - if ul['value'] is not None else Q_(np.nan, metric)} + i_list = [ul.dict() if isinstance(ul, BaseModel) + else {'year':ul['year']} | {'value':Q_(ul['value']) + if ul['value'] is not None else Q_(np.nan, metric)} for ul in u_list] if not i_list: return [] From 47e01f7a98c9e7bc10a7ab6637cd4cac68e06efb Mon Sep 17 00:00:00 2001 From: MichaelTiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> Date: Thu, 3 Mar 2022 08:52:02 -0500 Subject: [PATCH 142/345] Get test_interfaces.py working again Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- ITR/interfaces.py | 3 ++- test/test_interfaces.py | 4 ++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/ITR/interfaces.py b/ITR/interfaces.py index efc5273f..e0f56489 100644 --- a/ITR/interfaces.py +++ b/ITR/interfaces.py @@ -164,7 +164,8 @@ class ICompanyEIProjections(BaseModel): projections: List[ICompanyEIProjection] def __init__(self, ei_metric, projections, *args, **kwargs): - super().__init__(ei_metric=ei_metric, projections=UProjections_to_IProjections(ICompanyEIProjection, projections, ei_metric), + super().__init__(ei_metric=ei_metric, projections=UProjections_to_IProjections(ICompanyEIProjection, projections, + ei_metric.dict() if isinstance(ei_metric, BaseModel) else ei_metric), *args, **kwargs) def __getitem__(self, item): diff --git a/test/test_interfaces.py b/test/test_interfaces.py index 1c7b5efb..fe7e5527 100644 --- a/test/test_interfaces.py +++ b/test/test_interfaces.py @@ -5,7 +5,7 @@ from ITR.data.osc_units import ureg, Q_, PA_ -from ITR.interfaces import EScope, PowerGenerationWh, IProjection, IBenchmark, ICompanyData, ICompanyEIProjectionsScopes, ICompanyEIProjections +from ITR.interfaces import EScope, PowerGenerationWh, IntensityMetric, IProjection, IBenchmark, ICompanyData, ICompanyEIProjectionsScopes, ICompanyEIProjections class TestInterfaces(unittest.TestCase): @@ -38,7 +38,7 @@ def test_ICompanyProjectionScopes(self): index=[2019, 2020, 2021], name='nl_steel') p = [IProjection(year=int(k), value=Q_(v, ureg('Fe_ton'))) for k, v in row.items()] - S1S2=ICompanyEIProjections(projections=p) + S1S2=ICompanyEIProjections(projections=p, ei_metric=IntensityMetric.parse_obj({'units':'t CO2/Fe_ton'})) x = ICompanyEIProjectionsScopes(S1S2=S1S2) def test_ICompanyData(self): From a8621d91893737f366f280457c16d0c7d2fc3a92 Mon Sep 17 00:00:00 2001 From: MichaelTiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> Date: Thu, 3 Mar 2022 09:53:28 -0500 Subject: [PATCH 143/345] test_template_provider mostly working again There are a few failures, which could indicate problems with reference data. There is a wide disparity in test_get_company_data There are many disparities in test_get_projected_value 2/5 tests file in test_temp_score_from_excel_data Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- ITR/data/base_providers.py | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/ITR/data/base_providers.py b/ITR/data/base_providers.py index 3a11a8b6..4a13dd2c 100644 --- a/ITR/data/base_providers.py +++ b/ITR/data/base_providers.py @@ -12,7 +12,7 @@ from ITR.interfaces import ICompanyData, EScope, IProductionBenchmarkScopes, IEIBenchmarkScopes, \ IBenchmark, IProjection, ICompanyEIProjections, ICompanyEIProjectionsScopes, IHistoricEIScopes, \ IHistoricEmissionsScopes, IProductionRealization, ITargetData, IHistoricData, ICompanyEIProjection, \ - IEmissionRealization + IEmissionRealization, IntensityMetric # TODO handling of scopes in benchmarks @@ -617,10 +617,10 @@ def project_ei_targets(self, targets: List[ITargetData], historic_data: IHistori if not scope_targets: continue netzero_year = max([t.netzero_year for t in scope_targets if t.netzero_year] + [0]) - scope_targets.sort(key=lambda target: (target.target_scope, target.end_year)) + scope_targets.sort(key=lambda target: (target.target_scope, target.target_end_year)) while scope_targets: target = scope_targets.pop(0) - base_year = target.base_year + base_year = target.target_base_year # Solve for intensity and absolute if target.target_type == "intensity": @@ -639,7 +639,7 @@ def project_ei_targets(self, targets: List[ITargetData], historic_data: IHistori ei_projection_scopes[scope] = None else: # Removed condition base year > first_year. Do we care as long as base_year_qty is known? last_year, value_last_year = last_year_data.year, last_year_data.value - target_year = target.end_year + target_year = target.target_end_year # Attribute target_reduction_pct of ITargetData is currently a fraction, not a percentage. target_value = Q_(target.target_base_year_qty * (1 - target.target_reduction_pct), target.target_base_year_unit) @@ -649,7 +649,8 @@ def project_ei_targets(self, targets: List[ITargetData], historic_data: IHistori if ei_projection_scopes[scope] is not None: ei_projection_scopes[scope].projections.extend(ei_projections) else: - ei_projection_scopes[scope] = ICompanyEIProjections(projections=ei_projections) + ei_projection_scopes[scope] = ICompanyEIProjections(projections=ei_projections, + ei_metric=IntensityMetric.parse_obj({'units':target.target_base_year_unit})) if not scope_targets and netzero_year > target_year: # add in netzero target at the end CAGR = self._compute_CAGR(target_value, Q_(0, target.target_base_year_unit), (netzero_year - target_year)) ei_projections = [ICompanyEIProjection(year=year, value=target_value * (1 + CAGR) ** (y + 1)) @@ -683,10 +684,10 @@ def project_ei_targets(self, targets: List[ITargetData], historic_data: IHistori ei_projection_scopes[scope] = None else: # Removed condition base year > first_year. Do we care as long as base_year_qty is known? last_year, value_last_year = last_year_data.year, last_year_data.value - target_year = target.end_year + target_year = target.target_end_year # Attribute target_reduction_pct of ITargetData is currently a fraction, not a percentage. target_value = Q_(target.target_base_year_qty * (1 - target.target_reduction_pct), - target.target_base_year_unit) + target.target_base_year_unit) CAGR = self._compute_CAGR(value_last_year, target_value, (target_year - last_year)) emissions_projections = [value_last_year * (1 + CAGR) ** (y + 1) @@ -703,7 +704,8 @@ def project_ei_targets(self, targets: List[ITargetData], historic_data: IHistori if ei_projection_scopes[scope] is not None: ei_projection_scopes[scope].projections.extend(ei_projections) else: - ei_projection_scopes[scope] = ICompanyEIProjections(projections=ei_projections) + ei_projection_scopes[scope] = ICompanyEIProjections(projections=ei_projections, + ei_metric=IntensityMetric.parse_obj({'units':f"{target_value.u:~P}"})) if not scope_targets and netzero_year > target_year: # add in netzero target at the end CAGR = self._compute_CAGR(target_value, Q_(0, target_value.u), (netzero_year - target_year)) # Because zero intensity implies zero emissions, we can work with intensities from here out From df99ef3203c300f91c2ec75b2eedfabf247ee5bf Mon Sep 17 00:00:00 2001 From: MichaelTiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> Date: Thu, 3 Mar 2022 13:00:34 -0500 Subject: [PATCH 144/345] Update template sample data file for Notebook Some additional data updates were needed to get the template notebook working again. It is working again now. Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- .../data/20220215 ITR Tool Sample Data.xlsx | Bin 78097 -> 79197 bytes examples/quick_template_score_calc.ipynb | 195 ++++++++++-------- 2 files changed, 105 insertions(+), 90 deletions(-) diff --git a/examples/data/20220215 ITR Tool Sample Data.xlsx b/examples/data/20220215 ITR Tool Sample Data.xlsx index 561779796a57a6d54bfb88c22c09ca28b9f8deed..70923261219d44548e4c53d88bf2d369aa2785b0 100644 GIT binary patch delta 28318 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 OfX0J=&-h|B)c*q*oVqRm delta 27244 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\n", " \n", " \n", - " 0\n", - " AES Corp.\n", - " 2NUNNB7D43COUIRE5295\n", - " US00130H1059\n", - " US00130H1059\n", - " 112482\n", + " 27\n", + " OG&E Energy Corp.\n", + " CE5OG6JPOZMDSA0LAQ19\n", + " US6708371033\n", + " US6708371033\n", + " 148784\n", " \n", " \n", - " 1\n", - " ALLETE, Inc.\n", - " 549300NNLSIMY6Z8OT86\n", - " US0185223007\n", - " US0185223007\n", - " 79808\n", + " 28\n", + " PG&E Corp.\n", + " 8YQ2GSDWYZXO2EDN3511\n", + " US69331C1080\n", + " US69331C1080\n", + " 199797\n", " \n", " \n", - " 2\n", - " Alliant Energy\n", - " 5493009ML300G373MZ12\n", - " US0188021085\n", - " US0188021085\n", - " 197683\n", + " 29\n", + " PNM Resources, Inc.\n", + " 5493003JOBJGLZSDDQ28\n", + " US69349H1077\n", + " US69349H1077\n", + " 208716\n", " \n", " \n", - " 3\n", - " Ameren Corp.\n", - " XRZQ5S7HYJFPHJ78L959\n", - " US0236081024\n", - " US0236081024\n", - " 103668\n", + " 30\n", + " POSCO\n", + " 988400E5HRVX81AYLM04\n", + " KR7005490008\n", + " KR7005490008\n", + " 176661\n", " \n", " \n", - " 4\n", - " American Electric Power Co., Inc.\n", - " 1B4S6S7G0TW5EE83BO58\n", - " US0255371017\n", - " US0255371017\n", - " 238242\n", + " 31\n", + " PPL Corp.\n", + " 9N3UAJSNOUXFKQLF3V18\n", + " US69351T1060\n", + " US69351T1060\n", + " 121516\n", " \n", " \n", "\n", "" ], "text/plain": [ - " company_name company_lei company_id \\\n", - "0 AES Corp. 2NUNNB7D43COUIRE5295 US00130H1059 \n", - "1 ALLETE, Inc. 549300NNLSIMY6Z8OT86 US0185223007 \n", - "2 Alliant Energy 5493009ML300G373MZ12 US0188021085 \n", - "3 Ameren Corp. XRZQ5S7HYJFPHJ78L959 US0236081024 \n", - "4 American Electric Power Co., Inc. 1B4S6S7G0TW5EE83BO58 US0255371017 \n", + " company_name company_lei company_id company_isin \\\n", + "27 OG&E Energy Corp. CE5OG6JPOZMDSA0LAQ19 US6708371033 US6708371033 \n", + "28 PG&E Corp. 8YQ2GSDWYZXO2EDN3511 US69331C1080 US69331C1080 \n", + "29 PNM Resources, Inc. 5493003JOBJGLZSDDQ28 US69349H1077 US69349H1077 \n", + "30 POSCO 988400E5HRVX81AYLM04 KR7005490008 KR7005490008 \n", + "31 PPL Corp. 9N3UAJSNOUXFKQLF3V18 US69351T1060 US69351T1060 \n", "\n", - " company_isin investment_value \n", - "0 US00130H1059 112482 \n", - "1 US0185223007 79808 \n", - "2 US0188021085 197683 \n", - "3 US0236081024 103668 \n", - "4 US0255371017 238242 " + " investment_value \n", + "27 148784 \n", + "28 199797 \n", + "29 208716 \n", + "30 176661 \n", + "31 121516 " ] }, "metadata": {}, @@ -287,7 +287,7 @@ "\n", "# df_portfolio.head(5)\n", "df_portfolio = pd.read_excel(\"data/20220215 ITR Tool Sample Data.xlsx\", sheet_name=\"Portfolio\")\n", - "display(df_portfolio.head())" + "display(df_portfolio.tail())" ] }, { @@ -453,7 +453,7 @@ " Cleco Partners LP\n", " LONG\n", " S1S2\n", - " 1.19\n", + " 2.44\n", " \n", " \n", " 11\n", @@ -488,7 +488,7 @@ " Entergy Corp.\n", " LONG\n", " S1S2\n", - " 2.48\n", + " 2.34\n", " \n", " \n", " 16\n", @@ -595,6 +595,13 @@ " S1S2\n", " 1.72\n", " \n", + " \n", + " 31\n", + " PPL Corp.\n", + " LONG\n", + " S1S2\n", + " 2.83\n", + " \n", " \n", "\n", "" @@ -611,12 +618,12 @@ "7 CARPENTER TECHNOLOGY CORP LONG S1S2 1.72\n", "8 CMS Energy Corp. LONG S1S2 1.93\n", "9 COMMERCIAL METALS CO LONG S1S2 3.2\n", - "10 Cleco Partners LP LONG S1S2 1.19\n", + "10 Cleco Partners LP LONG S1S2 2.44\n", "11 Consolidated Edison, Inc. LONG S1S2 1.65\n", "12 DTE Energy LONG S1S2 2.85\n", "13 Dominion Energy LONG S1S2 1.84\n", "14 Duke Energy Corp. LONG S1S2 2.12\n", - "15 Entergy Corp. LONG S1S2 2.48\n", + "15 Entergy Corp. LONG S1S2 2.34\n", "16 Evergy, Inc. LONG S1S2 2.07\n", "17 Eversource Energy LONG S1S2 1.19\n", "18 Exelon Corp. LONG S1S2 2.6\n", @@ -631,7 +638,8 @@ "27 OG&E Energy Corp. LONG S1S2 2.25\n", "28 PG&E Corp. LONG S1S2 1.82\n", "29 PNM Resources, Inc. LONG S1S2 1.74\n", - "30 POSCO LONG S1S2 1.72" + "30 POSCO LONG S1S2 1.72\n", + "31 PPL Corp. LONG S1S2 2.83" ] }, "execution_count": 13, @@ -668,13 +676,13 @@ { "data": { "text/html": [ - "2.0746056439434017 delta_degree_Celsius" + "2.076113966565336 delta_degree_Celsius" ], "text/latex": [ - "$2.0746056439434017\\ \\mathrm{delta\\_degree\\_Celsius}$" + "$2.076113966565336\\ \\mathrm{delta\\_degree\\_Celsius}$" ], "text/plain": [ - "2.0746056439434017 " + "2.076113966565336 " ] }, "execution_count": 15, @@ -735,7 +743,7 @@ "outputs": [ { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ "

    " ] @@ -872,7 +880,7 @@ "outputs": [ { "data": { - "image/png": "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zwlarpYT9If79rjuPo0gTM4Kz7nZpVB3n07ws303Qcv3SIIbczZmUFNN72cRaSJMfUlFRERE4kMtZyIiIiIxonAmIiIiEiMKZyIiIiIxonAmIiIiEiMKZyIiIiIxonAmIiIiEiMKZyIiIiIxonAmIiIiEiMKZyIiIiIxonAmIiIiEiMKZyIiIiIxonAmIiIiEiMKZyIiIiIxonAmIiIiEiMKZyIiIiIxonAmIiIiEiMKZyIiIiIxonAmIiIiEiMtoi5AREQkKh9++GG3Fi1aPAjshRos8kU5MKWsrOzc/fbbb2HUxVRF4UxERPJWixYtHtxhhx326Nq167JmzZp51PVI9pWXl9uiRYv6f/PNNw8Cx0ZdT1X0X4KIiOSzvbp27bpSwSx/NGvWzLt27bqCoLU0lhTOREQknzVTMMs/4fc8thkotoWJiIiI5CP1ORMREQklkqn9GvJ4JcVFH9a2TfPmzffr06fPuornJ5xwwtKbb775myFDhux+++23zz7kkEPW1uWc7777btvZs2e3OvXUU1dUtX7ChAnbPPzww53HjBkzu7pjDB06dLenn376S4AHH3xw+2QyuSjT87/00ksd7rjjjoI333xzZsWyE088MXHMMcesOPvss5f99re/7faLX/xicYcOHcrTz9WlS5dN22yzzb5r1679b0lJScsLL7yw5yuvvDKr8ut57LHHOn366adtb7755m8yrSnXKJyJiIhEqHXr1uXTpk37rKGON3HixG0mTpzYrqpwVlpayiGHHLK2tsA3fvz4mQDTp09v9dBDD3WrSzirzf33319w3nnnLa0IZxXnSpdIJEpfeeWVWbDl6zn99NNXAFUGz6ZClzVFRERi7plnnuk4cODAfv37999jxIgRu65YsaIZwPjx47fZd999++2+++7999577z2WLFnS/JZbbtnpxRdf3K5fv379//znP293+eWX7zR69OidDzrooD4nnHDCLi+99FKHQw89dDeAFStWNDvppJMSffv27d+3b9/+Y8aM2Rage/fue8+fP7/FFVdc0WP27Nmt+/Xr1/+CCy7ocfzxx+/y6KOPbltR17HHHrvLY4891inT13HTTTd1W7hwYcuhQ4f23X///fumnyt9u+nTp7fq06fPnuvXr7fKr+euu+7q/OMf/7gXwLx581ocddRRvffaa6899tprrz1effXVdgCpVKp9v379+vfr16//Hnvs0X/ZsmU5lXdyqlgREZGmZsOGDc0qgkRFAElfP3/+/BY333zzjhMmTJjx2WefTR00aNDaG2+8sWD9+vV2+umn977zzju/nj59+mfjx4+f3rFjx01XX331vJEjRy6bNm3aZ+edd94ygMmTJ28zbty4mS+++OKX6cdOJpM7duzYcdOMGTM+mzFjxmdFRUWr0tffcccdc3r27Llh2rRpn91///1zzjvvvEVjxozpDLBkyZLmH374YftTTjkl41as6667bmG3bt1Kx48fP+P999+fUdv2bdq08apeT4ULLrig5+WXX75gypQpU5999tkvLrzwwkRY9w533XXXV9OmTfvsvffem9a+ffvyTGuMA13WFBERiVBtlzXfeuutdl988UWbIUOG9AMoLS21/fbbb/XkyZPbdOvWrXTo0KFrAbbffvtqA8jw4cOXt2/ffou7UidMmNDxySefnFXxvGvXrptqqrWoqGj1ZZddtvPcuXNbPPbYY9sVFRUta9my5WbbmFmVd79Wt7w+3nnnnY6ff/5524rnq1evbr5s2bJmhYWFq6+88sqep5xyytLRo0cv6927t8KZiIiINAx35+CDD15ZudXr/fffb5tp4GnXrl2V4cTdMbM61XPKKacsefDBB7d/+umnt3/44YdLKq/v1q1b2YoVKzbLF8uWLWvRtWvXsjqdKAPuzsSJE6dWDp4333zzN8cff/yK559/vtOBBx64xyuvvDJj3333Xd/Q588WhbM8lkimWgEdgG3CRzugDVAGbATWAquBFSXFRWuiqlOksSSSqWZAF2A7oDXQiu+6f5QRdEJeSvCeyKn/xCV3DRs2bM0VV1zRa8qUKa332muvDatWrWr25ZdfthwwYMD6BQsWtBo/fvw2Q4cOXbts2bJm7du3L+/YseOm1atXZ9RtadiwYSt///vfd3v44YdnAyxatKh5eutZp06dNq1Zs2azY1144YWL999//z26dOlSOnjw4C0Cz1577bVhwYIFLT/66KM2gwYNWj9jxoxW06ZNa1tYWLgOoF27dptWrFjRbMcdd8zo9df0eg4++OCVt956a7cbb7xxAQR3qh544IHrPv3009ZDhgxZN2TIkHXvv/9+uylTprRROJPYSCRTnYBBwABgF6BX+OgJdK3DcVYCs9MeJcAnwEclxUVzG7ZqkexJJFPb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\n", + "image/png": "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ufqGoD/c/x7X3ScRhMlp4TE3OBXq7pMJ/rb/TtDyfRzBhTnrMqiprteziOQJU19SERERkfhQy5mIiIhIjCiciYiIiMSIwpmIiIhIjCiciYiIiMSIwpmIiIhIjCiciYiIiMSIwpmIiIhIjCiciYiIiMSIwpmIiIhIjCiciYiIiMSIwpmIiIhIjCiciYiIiMSIwpmIiIhIjCiciYiIiMSIwpmIiIhIjCiciYiIiMSIwpmIiIhIjCiciYiIiMRIi6gLEBERicro0aO7t2jR4n5gN9RgUSgqgXEVFRXn77vvvvOjLqYmCmciIlKwWrRocf/WW2+9S7du3ZY0a9bMo65Hsq+ystIWLFjQf+7cufcDx0ddT030KUFERArZbt26dVumYFY4mjVr5t26dVtK0FoaSwpnIiJSyJopmBWe8Hce2wwU28JERERECpH6nImIiIQSydS+jfl4ZaUlo+vbpnnz5vv26dNnddX9k046afGNN944d+DAgTvfcsstMw499NBVDTnmBx980HbGjBmtTjvttKU1rR8xYkS7Bx98sMuwYcNm1PYYgwYN2umZZ575CuD+++/fKplMLsj0+C+//HLHW2+9tejtt9+eWrXs5JNPThx77LFLzzvvvCW///3vu//sZz9b2LFjx8r0Y3Xt2nV9u3bt9l61atWnZWVlLS+++OKer7322rTqz+exxx7rPH78+LY33njj3ExryjUKZyIiIhFq3bp15aRJkyY01uONGjWq3ahRo9rXFM7Ky8s59NBDV9UX+IYPHz4VYPLkya0eeOCB7g0JZ/W55557ii644ILFVeGs6ljpEolE+WuvvTYNNn4+Z5111lKgxuCZL3RaU0REJOaeffbZTnvttVe//v377zJkyJAdly5d2gxg+PDh7fbee+9+O++8c//dd999l0WLFjW/6aabtn3ppZe27NevX//77rtvyyuuuGLbM844Y/uDDjqoz0knnbTDyy+/3PGwww7bCWDp0qXNTjnllETfvn379+3bt/+wYcO2AOjRo8fuc+bMaXHllVduN2PGjNb9+vXrf9FFF2134okn7vDoo49uUVXX8ccfv8Njjz3WOdPnccMNN3SfP39+y0GDBvXdf//9+6YfK327yZMnt+rTp8+ua9asserP57bbbuvygx/8oBfA7NmzWxx11FG9d9ttt1122223Xd544432AKlUqkO/fv369+vXr/8uu+zSf8mSJTmVd3KqWBERkXyzdu3aZlVBoiqApK+fM2dOixtvvHGbESNGTJkwYcLEffbZZ9X1119ftGbNGjvrrLN6//Wvf/168uTJE4YPHz65U6dO66+++urZxx133JJJkyZNuOCCC5YAjB07tt3rr78+9aWXXvoq/bGTyeQ2nTp1Wj9lypQJU6ZMmVBSUrI8ff2tt946s2fPnmsnTZo04Z577pl5wQUXLBg2bFgXgEWLFjUfPXp0h1NPPTXjVqxrr712fvfu3cuHDx8+ZeTIkVPq275NmzZe0/OpctFFF/W84oor5o0bN27ic8899+XFF1+cCOve+rbbbps+adKkCR9++OGkDh06VGZaYxzotKaIiEiE6jut+c4777T/8ssv2wwcOLAfQHl5ue27774rxo4d26Z79+7lgwYNWgWw1VZb1RpAjj766G86dOiw0VWpI0aM6PTkk09Oq7rfrVu39XXVWlJSsuLyyy/fftasWS0ee+yxLUtKSpa0bNlyg23MrMarX2tbvjnef//9Tl988UXbqvsrVqxovmTJkmbFxcUrrrrqqp6nnnrq4jPOOGNJ7969Fc5ERESkcbg7Bx988LLqrV4jR45sm2ngad++fY3hxN0xswbVc+qppy66//77t3rmmWe2evDBB8uqr+/evXvF0qVLN8gXS5YsadGtW7eKBh0oA+7OqFGjJlYPnjfeeOPcE088cekLL7zQ+cADD9zltddem7L33nuvaezjZ4vCWQFLJFMtgC2BTkB7oOrTxxpgbXhbAywrKy1ZGUmRIk0okUy1BLYieF20SltV9e61BlgILC4rLdHYWNIkBg8evPLKK6/sNW7cuNa77bbb2uXLlzf76quvWu65555r5s2b12r48OHtBg0atGrJkiXNOnToUNmpU6f1K1asyKjb0uDBg5f9+c9/7v7ggw/OAFiwYEHz9Nazzp07r1+5cuUGj3XxxRcv3H///Xfp2rVr+YABAzYKPLvtttvaefPmtfzkk0/a7LPPPmumTJnSatKkSW2Li4tXA7Rv33790qVLm22zzTYZPf+6ns/BBx+87I9//GP366+/fh4EV6oeeOCBq8ePH9964MCBqwcOHLh65MiR7ceNG9dG4UxiI5FMdQX2AXqHtx3DWwLIuBNnIpn6BpgZ3mYA04HPgE/LSktmNWrRIlmUSKa2AnYl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\n", "text/plain": [ "
    " ] @@ -933,73 +941,80 @@ " \n", " \n", " \n", - " 6\n", - " POSCO\n", - " KR7005490008\n", + " 3\n", + " CARPENTER TECHNOLOGY CORP\n", + " US1442851036\n", " Steel\n", - " 4.731036024254013 percent\n", + " 4.620952913172475 percent\n", " 1.72 delta_degree_Celsius\n", - " 0.00\n", - " 5.71\n", + " 0.01\n", + " 5.58\n", " \n", " \n", " 8\n", " COMMERCIAL METALS CO\n", " US2017231034\n", " Steel\n", - " 4.642153243677908 percent\n", + " 3.8103951174652635 percent\n", " 3.2 delta_degree_Celsius\n", - " 0.01\n", - " 3.01\n", + " 0.00\n", + " 2.47\n", " \n", " \n", - " 9\n", + " 16\n", + " POSCO\n", + " KR7005490008\n", + " Steel\n", + " 3.2898450979042577 percent\n", + " 1.72 delta_degree_Celsius\n", + " 0.00\n", + " 3.97\n", + " \n", + " \n", + " 23\n", " GERDAU S.A.\n", " US3737371050\n", " Steel\n", - " 4.245265550388852 percent\n", + " 2.2795771941247773 percent\n", " 1.64 delta_degree_Celsius\n", " 0.01\n", - " 5.37\n", + " 2.89\n", " \n", " \n", - " 16\n", + " 26\n", " NUCOR CORP\n", " US6703461052\n", " Steel\n", - " 3.511963769116571 percent\n", + " 1.6791904018189383 percent\n", " 1.43 delta_degree_Celsius\n", " 0.00\n", - " 5.10\n", - " \n", - " \n", - " 19\n", - " CARPENTER TECHNOLOGY CORP\n", - " US1442851036\n", - " Steel\n", - " 2.239177614025693 percent\n", - " 1.72 delta_degree_Celsius\n", - " 0.01\n", - " 2.70\n", + " 2.44\n", " \n", " \n", "\n", "" ], "text/plain": [ - " company_name company_id sector contribution \\\n", - "6 POSCO KR7005490008 Steel 4.731036024254013 percent \n", - "8 COMMERCIAL METALS CO US2017231034 Steel 4.642153243677908 percent \n", - "9 GERDAU S.A. US3737371050 Steel 4.245265550388852 percent \n", - "16 NUCOR CORP US6703461052 Steel 3.511963769116571 percent \n", - "19 CARPENTER TECHNOLOGY CORP US1442851036 Steel 2.239177614025693 percent \n", + " company_name company_id sector \\\n", + "3 CARPENTER TECHNOLOGY CORP US1442851036 Steel \n", + "8 COMMERCIAL METALS CO US2017231034 Steel \n", + "16 POSCO KR7005490008 Steel \n", + "23 GERDAU S.A. US3737371050 Steel \n", + "26 NUCOR CORP US6703461052 Steel \n", + "\n", + " contribution temperature_score \\\n", + "3 4.620952913172475 percent 1.72 delta_degree_Celsius \n", + "8 3.8103951174652635 percent 3.2 delta_degree_Celsius \n", + "16 3.2898450979042577 percent 1.72 delta_degree_Celsius \n", + "23 2.2795771941247773 percent 1.64 delta_degree_Celsius \n", + "26 1.6791904018189383 percent 1.43 delta_degree_Celsius \n", "\n", - " temperature_score ownership_percentage portfolio_percentage \n", - "6 1.72 delta_degree_Celsius 0.00 5.71 \n", - "8 3.2 delta_degree_Celsius 0.01 3.01 \n", - "9 1.64 delta_degree_Celsius 0.01 5.37 \n", - "16 1.43 delta_degree_Celsius 0.00 5.10 \n", - "19 1.72 delta_degree_Celsius 0.01 2.70 " + " ownership_percentage portfolio_percentage \n", + "3 0.01 5.58 \n", + "8 0.00 2.47 \n", + "16 0.00 3.97 \n", + "23 0.01 2.89 \n", + "26 0.00 2.44 " ] }, "execution_count": 21, From 77a2b47954e8cbbd644186ddf21dc8d07fd37151 Mon Sep 17 00:00:00 2001 From: MichaelTiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> Date: Thu, 3 Mar 2022 13:21:03 -0500 Subject: [PATCH 145/345] Also update sample data in main test area Ugh...we have two copies of the same data. More tests should run with this updated data. Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- .../inputs/20220215 ITR Tool Sample Data.xlsx | Bin 76877 -> 79197 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/test/inputs/20220215 ITR Tool Sample Data.xlsx b/test/inputs/20220215 ITR Tool Sample Data.xlsx index a32b8e8c592712699b2cafc996425c92f8cc33c1..70923261219d44548e4c53d88bf2d369aa2785b0 100644 GIT binary patch delta 57909 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

    A;Hauj1V9>kG;H)eY+d;EHo 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±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 Date: Thu, 3 Mar 2022 18:13:11 -0500 Subject: [PATCH 146/345] test_projection WIP These changes cut out a lot of noise about comparisons not that meaningful: previously we required the input data to supply things like ghg_s1s2 emissions at the base year, but now we collect historic data, and the tool organizes that data to fill in the singular ghg_s1s2 datapoint which is helpful to have. There is one obvious problem, which is that input data of separate S1 and S2 emissions is not getting combined into S1S2 trajectories. The next checkin should deal with that. This checkin clears the clutter to make that problem easier to work on. Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- test/test_projection.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/test/test_projection.py b/test/test_projection.py index 9f9c65f4..2efe96dc 100644 --- a/test/test_projection.py +++ b/test/test_projection.py @@ -1,6 +1,7 @@ import json import unittest import os +import datetime from ITR.data.base_providers import EITrajectoryProjector from ITR.interfaces import ICompanyData @@ -31,6 +32,9 @@ def setUp(self) -> None: with open(self.source_path, 'r') as file: company_dicts = json.load(file) + for company_dict in company_dicts: + # TODO: fix json input and reference files! + company_dict['report_date'] = datetime.date(2021, 12, 31) self.companies = [ICompanyData(**company_dict) for company_dict in company_dicts] self.projector = EITrajectoryProjector() From 03aa0501bee31d88ab751c469130f24ba4753ff0 Mon Sep 17 00:00:00 2001 From: MichaelTiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> Date: Thu, 3 Mar 2022 21:04:00 -0500 Subject: [PATCH 147/345] Spiff up trajectory calculation to compute S1S2 = S1+S2 Somehow this sum had gotten lost and none of the trajectories were matching the scope of the reference file. They still don't match for several reasons, but mostly now having to do with methodology questions. Also enhanced test_projections.py to read and interpret test projections more intelligently. Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- ITR/data/base_providers.py | 8 ++++++++ test/test_projection.py | 1 + 2 files changed, 9 insertions(+) diff --git a/ITR/data/base_providers.py b/ITR/data/base_providers.py index 4a13dd2c..d2356e03 100644 --- a/ITR/data/base_providers.py +++ b/ITR/data/base_providers.py @@ -493,15 +493,23 @@ def _compute_missing_historic_ei(self, companies, historic_data): def _add_projections_to_companies(self, companies: List[ICompanyData], extrapolations: pd.DataFrame): for company in companies: scope_projections = {} + scope_dfs = {} for scope in ICompanyEIProjectionsScopes.__fields__: if not company.historic_data.emissions_intensities or not company.historic_data.emissions_intensities.__getattribute__(scope): scope_projections[scope] = None continue results = extrapolations.loc[(company.company_id, VariablesConfig.EMISSIONS_INTENSITIES, scope)] units = f"{results.values[0].u:~P}" + scope_dfs[scope] = results.astype(f"pint[{units}]") projections = [IProjection(year=year, value=value) for year, value in results.items() if year >= TemperatureScoreConfig.CONTROLS_CONFIG.base_year] scope_projections[scope] = ICompanyEIProjections(ei_metric={'units':units}, projections=projections) + if scope_projections.get('S1') and scope_projections.get('S2') and not scope_projections.get('S1S2'): + results = scope_dfs['S1'] + scope_dfs['S2'] + units = f"{results.values[0].u:~P}" + projections = [IProjection(year=year, value=value) for year, value in results.items() + if year >= TemperatureScoreConfig.CONTROLS_CONFIG.base_year] + scope_projections['S1S2'] = ICompanyEIProjections(ei_metric={'units':units}, projections=projections) company.projected_intensities = ICompanyEIProjectionsScopes(**scope_projections) diff --git a/test/test_projection.py b/test/test_projection.py index 2efe96dc..007dfd50 100644 --- a/test/test_projection.py +++ b/test/test_projection.py @@ -39,6 +39,7 @@ def setUp(self) -> None: self.projector = EITrajectoryProjector() def test_project(self): + test_failed = False projections = self.projector.project_ei_trajectories(self.companies) with open(self.json_reference_path, 'r') as file: reference_projections = json.load(file) From 61dd9b968a44f8a7aea23e4eb461737e8d4837df Mon Sep 17 00:00:00 2001 From: MichaelTiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> Date: Thu, 3 Mar 2022 22:33:49 -0500 Subject: [PATCH 148/345] Update template.py Convert to NaN when using Quantities. Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- ITR/data/template.py | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/ITR/data/template.py b/ITR/data/template.py index 5fd3b78a..9f48af20 100644 --- a/ITR/data/template.py +++ b/ITR/data/template.py @@ -157,12 +157,14 @@ def _fixup_name(x): df3 = df2.reset_index().set_index(['company_id', 'variable', 'scope']) df3 = pd.concat([df3.xs(VariablesConfig.PRODUCTIONS, level=1, drop_level=False) .apply( - lambda x: x.map(lambda y: Q_(y, df_fundamentals.loc[df_fundamentals.company_id == x.name[0], - 'production_metric'].squeeze())), axis=1), + lambda x: x.map(lambda y: Q_(y if y is not pd.NA else np.nan, + df_fundamentals.loc[df_fundamentals.company_id == x.name[0], + 'production_metric'].squeeze())), axis=1), df3.xs(VariablesConfig.EMISSIONS, level=1, drop_level=False) .apply(lambda x: x.map( - lambda y: Q_(y, df_fundamentals.loc[df_fundamentals.company_id == x.name[0], - 'emissions_metric'].squeeze())), axis=1)]) + lambda y: Q_(y if y is not pd.NA else np.nan, + df_fundamentals.loc[df_fundamentals.company_id == x.name[0], + 'emissions_metric'].squeeze())), axis=1)]) df4 = df3.xs(VariablesConfig.EMISSIONS, level=1) / df3.xs((VariablesConfig.PRODUCTIONS, 'production'), level=[1, 2]) df4['variable'] = VariablesConfig.EMISSIONS_INTENSITIES From 4997249e433c5a11f2f4e00b96c35ff616a87f1b Mon Sep 17 00:00:00 2001 From: MichaelTiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> Date: Thu, 3 Mar 2022 22:48:49 -0500 Subject: [PATCH 149/345] Update test_template_provider.py test_temp_score was meant to be a small version of test_temp_score_from_excel_data. Alas, it was not computing target and trajectory budgets (because it was not calling get_data). There remains a problem that is preventing the temp score calculation. I will debug that tomorrow.... Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- test/test_template_provider.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/test/test_template_provider.py b/test/test_template_provider.py index 13036760..246c6aa3 100644 --- a/test/test_template_provider.py +++ b/test/test_template_provider.py @@ -79,14 +79,17 @@ def test_target_projections(self): def test_temp_score(self): df_portfolio = pd.read_excel(self.company_data_path, sheet_name="Portfolio") # df_portfolio = df_portfolio[df_portfolio.company_id=='US00130H1059'] - companies = ITR.utils.dataframe_to_portfolio(df_portfolio) + portfolio = ITR.utils.dataframe_to_portfolio(df_portfolio) temperature_score = TemperatureScore( time_frames=[ETimeFrames.LONG], scopes=[EScope.S1S2], aggregation_method=PortfolioAggregationMethod.WATS # Options for the aggregation method are WATS, TETS, AOTS, MOTS, EOTS, ECOTS, and ROTS. ) - amended_portfolio = temperature_score.calculate(data_warehouse=self.data_warehouse, portfolio=companies) + + portfolio_data = ITR.utils.get_data(self.data_warehouse, portfolio) + + amended_portfolio = temperature_score.calculate(data_warehouse=self.data_warehouse, data=portfolio_data, portfolio=portfolio) print(amended_portfolio[['company_name', 'time_frame', 'scope', 'temperature_score']]) def test_temp_score_from_excel_data(self): From 4731fa5481c3d71abdf5f87927f7f23a19bcf25e Mon Sep 17 00:00:00 2001 From: MichaelTiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> Date: Fri, 4 Mar 2022 06:33:57 -0500 Subject: [PATCH 150/345] Fixed nan vs. pd.NA confusion from previous change This fixes the "loose wire" that disconnected temperature scores in both the notebook and the test cases. Now all test cases are working except test_projection and test_template_provider, for known reasons. test_projection needs better reference data and test_template_provider needs its own fixes to become a valid test case. Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- ITR/data/base_providers.py | 6 +- ITR/data/country_region_info.xlsx | Bin 0 -> 28077 bytes examples/ITR_dash_app_develop.py~ | 692 ++++++++++++++++++ examples/data/1.xlsx | Bin 0 -> 46422 bytes .../~$OECM_EI_and_production_benchmarks.xlsx | Bin 0 -> 165 bytes examples/data/~$test_data_company.xlsx | Bin 0 -> 165 bytes examples/data_dump.xlsx | Bin 0 -> 51297 bytes test/inputs/1.xlsx | Bin 0 -> 46422 bytes .../~$20220215 ITR Tool Sample Data.xlsx | Bin 0 -> 165 bytes 9 files changed, 695 insertions(+), 3 deletions(-) create mode 100644 ITR/data/country_region_info.xlsx create mode 100644 examples/ITR_dash_app_develop.py~ create mode 100644 examples/data/1.xlsx create mode 100644 examples/data/~$OECM_EI_and_production_benchmarks.xlsx create mode 100644 examples/data/~$test_data_company.xlsx create mode 100644 examples/data_dump.xlsx create mode 100644 test/inputs/1.xlsx create mode 100644 test/inputs/~$20220215 ITR Tool Sample Data.xlsx diff --git a/ITR/data/base_providers.py b/ITR/data/base_providers.py index d2356e03..185a79b6 100644 --- a/ITR/data/base_providers.py +++ b/ITR/data/base_providers.py @@ -585,7 +585,7 @@ def _extrapolate(self, trends: pd.DataFrame, projection_years: range, historic_d projected_intensities = historic_data.loc[historic_data.index.intersection(trends.index)].copy() # We need to do a mini-extrapolation if we don't have complete historic data for year in historic_data.columns.tolist()[:-1]: - m = projected_intensities[year+1].apply(lambda x: x.m is pd.NA) + m = projected_intensities[year+1].apply(lambda x: np.isnan(x.m)) projected_intensities.loc[m,year+1] = projected_intensities.loc[m,year] * (1 + trends.loc[m]) # Now the big extrapolation @@ -640,7 +640,7 @@ def project_ei_targets(self, targets: List[ITargetData], historic_data: IHistori if ei_projection_scopes[scope] is not None: last_year_data = ei_projection_scopes[scope].projections[-1] else: - last_year_data = next((i for i in reversed(intensity_data) if type(i.value.magnitude) != NAType), + last_year_data = next((i for i in reversed(intensity_data) if np.isfinite(i.value.magnitude)), None) if last_year_data is None or base_year > last_year_data.year: @@ -685,7 +685,7 @@ def project_ei_targets(self, targets: List[ITargetData], historic_data: IHistori last_year_prod = production_bm.loc[last_year] last_year_data = IEmissionRealization(year=last_year, value=last_year_ei_data.value*last_year_prod) else: - last_year_data = next((e for e in reversed(emissions_data) if type(e.value.magnitude) != NAType), + last_year_data = next((e for e in reversed(emissions_data) if np.isfinite(e.value.magnitude)), None) if last_year_data is None or base_year > last_year_data.year: diff --git a/ITR/data/country_region_info.xlsx b/ITR/data/country_region_info.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..a030aa74fc427a4cf42aa71b5275f6ed8575c160 GIT binary patch literal 28077 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 d{{sI-= ca_bu[0]) & (initial_portfolio.cumulative_budget <= ca_bu[1]) + temp_score_mask = (initial_portfolio.temperature_score >= te_sc[0]) & (initial_portfolio.temperature_score <= te_sc[1]) + + # Dropdown filters + if sec == 'all_values': + sec_mask = (initial_portfolio.sector != 'dummy') # select all + else: + sec_mask = initial_portfolio.sector == sec + if reg == 'all_values': + reg_mask = (initial_portfolio.region != 'dummy') # select all + else: + reg_mask = (initial_portfolio.region == reg) + filt_df = initial_portfolio.loc[temp_score_mask & sec_mask & reg_mask] # filtering + filt_df = filt_df.sort_values(by='temperature_score', ascending=False) + if len(filt_df) == 0: # if after filtering the dataframe is empty + raise PreventUpdate + amended_portfolio_global = filt_df + aggregated_scores = temperature_score.aggregate_scores(filt_df) # calc temp score for companies left in pf + + + # Calculate different weighting methods + def agg_score(agg_method): + temperature_score = TemperatureScore(time_frames = [ETimeFrames.LONG], + scopes=[EScope.S1S2], + aggregation_method=agg_method) # Options for the aggregation method are WATS, TETS, AOTS, MOTS, EOTS, ECOTS, and ROTS + aggregated_scores = temperature_score.aggregate_scores(filt_df) + return [agg_method.value,aggregated_scores.long.S1S2.all.score] + + agg_temp_scores = [agg_score(i) for i in PortfolioAggregationMethod] + df_temp_score = pd.DataFrame(agg_temp_scores) + # Separate column for names on Bar chart + # Highlight WATS and TETS + Weight_Dict = {'WATS': 'Investment
    weighted', #
    is needed to wrap x-axis label + 'TETS': 'Total emissions
    weighted', + 'EOTS': "Enterprise Value
    weighted", + 'ECOTS': "Enterprise Value
    + Cash weighted", + 'AOTS': "Total Assets
    weighted", + 'ROTS': "Revenues
    weigted", + 'MOTS': 'Market Cap
    weighted'} + df_temp_score['Weight_method'] = df_temp_score[0].map(Weight_Dict) # Mapping code to text + df_temp_score[1]=df_temp_score[1].round(decimals = 2) + # Creating barchart + fig4 = px.bar(df_temp_score, x='Weight_method', y=1, text=1,title = "Score by weighting scheme
    Assess the influence of weighting schemes on scores") + fig4.update_traces(textposition='inside', textangle=0) + fig4.update_yaxes(title_text='Temperature score', range = [1,3]) + fig4.update_xaxes(title_text=None, tickangle=0) + fig4.add_annotation(x=0.5, y=2.6,text="Main methodologies",showarrow=False) + fig4.add_shape( + dict(type="rect", x0=-0.45, x1=1.5, y0=0, y1=2.7, line_dash="dot",line_color="LightSeaGreen"), + row="all", + col="all", + ) + fig4.add_hline(y=2, line_dash="dot",line_color="red",annotation_text="Critical value") # horizontal line + fig4.update_layout(transition_duration=500) + + + + + # Scatter plot + fig1 = px.scatter(filt_df, x="cumulative_target", y="cumulative_budget", + size="investment_value", + color = "sector", labels={"color": "Sector"}, + hover_data=["company_name", "investment_value", "temperature_score"], + title="Overview of portfolio") + fig1.update_layout({'legend_title_text': '','transition_duration':500}) + fig1.update_layout(legend=dict(orientation = "h",yanchor="bottom",y=1,xanchor="center",x=0.5)) + + + # Covered companies analysis + coverage=filt_df[['company_id','ghg_s1s2','cumulative_target']] + def f(row): + if (pd.isna(row['ghg_s1s2']) and row['cumulative_target']==0): + val = "Not Covered" + elif (pd.isna(row['ghg_s1s2']) and row['cumulative_target']>0): + val = "Covered only
    by target" + elif (row['ghg_s1s2']>0 and row['cumulative_target']==0): + val = "Covered only
    by emissions" + else: + val = "Covered by
    emissions and targets" + return val + coverage['coverage_category'] = coverage.apply(f, axis=1) + dfg=coverage.groupby('coverage_category').count().reset_index() + dfg['portfolio']='Portfolio' # 1 column to have just 1 bar. I didn't figure out how to do it more ellegant + fig5 = px.bar(dfg, x='portfolio',y="company_id", color="coverage_category",text='company_id',title="Coverage of companies in portfolio") + fig5.update_xaxes(visible=False) # hide axis + fig5.update_yaxes(visible=False) # hide axis + fig5.update_layout({'legend_title_text': '','transition_duration':500, 'plot_bgcolor':'white'}) + fig5.update_layout(legend=dict(yanchor="middle",y=0.5,xanchor="left",x=1)) # location of legend + + # Heatmap + trace = go.Heatmap( + x = filt_df.sector, + y = filt_df.region, + z = filt_df.temperature_score, + type = 'heatmap', + colorscale = 'Temps', + ) + data = [trace] + fig2 = go.Figure(data = data) + fig2.update_layout(title = "Industry vs Region ratings") + + + fig3 = px.bar(filt_df.query("temperature_score > 2"), + x="company_name", y="temperature_score", + text ="temperature_score", + color="sector",title="Highest temperature scores by company") + fig3.update_traces(textposition='inside', textangle=0) + fig3.update_yaxes(title_text='Temperature score', range = [1,4]) + fig3.update_layout({'legend_title_text': '','transition_duration':500}) + fig3.update_layout(xaxis_title = None,legend=dict(orientation = "h",yanchor="bottom",y=1,xanchor="center",x=0.5)) + + + # Carbon budget slider update + # drop_d_min = initial_portfolio.cumulative_budget.min() + # drop_d_max = initial_portfolio.cumulative_budget.max() + + df=amended_portfolio_global[['company_name', 'company_id','region','sector','cumulative_budget','investment_value','trajectory_score', 'target_score','temperature_score']] + df['temperature_score']=df['temperature_score'].round(decimals = 2) # formating column + df['trajectory_score']=df['trajectory_score'].round(decimals = 2) # formating column + df['target_score']=df['target_score'].round(decimals = 2) # formating column + df['cumulative_budget'] = df['cumulative_budget'].apply(lambda x: "{:,.1f}".format((x/1000000))) # formating column + df['investment_value'] = df['investment_value'].apply(lambda x: "${:,.1f} Mn".format((x/1000000))) # formating column + df.rename(columns={'company_name':'Name', 'company_id':'ISIN','region':'Region','sector':'Industry','cumulative_budget':'Emission budget','investment_value':'Notional','trajectory_score':'Historical emissions score', 'target_score':'Target score','temperature_score':'Weighted temperature score'}, inplace=True) + + return ( + fig1, fig5, fig2, fig3, fig4, + "{:.2f}".format(aggregated_scores.long.S1S2.all.score), # portfolio score + {'color': 'ForestGreen'} if aggregated_scores.long.S1S2.all.score < 2 else {'color': 'Red'}, # conditional color + str(round((filt_df.company_enterprise_value.sum()+filt_df.company_cash_equivalents.sum())/10**9,0)), + str(filt_df.investment_value.sum()/10**6), + str(len(filt_df)), # num of companies + # str(len(filt_df.sector.unique())), # num of sectors in pf + # drop_d_min, drop_d_max, # Carbon budget slider update + dbc.Table.from_dataframe(df, + striped=True, + bordered=True, + hover=True, + responsive=True, + ), + ) + + +@app.callback( # reseting dropdowns + [ + # Output("carb-budg", "value"), # Carbon budget slider update + Output("temp-score", "value"), + Output("sector-dropdown", "value"), + Output("region-dropdown", "value"), + ], + [Input('reset-filters-but', 'n_clicks')] +) + +def reset_filters(n_clicks): + if n_clicks is None: + raise PreventUpdate + return ( # if button is clicked, reset filters + # [initial_portfolio.cumulative_budget.min(), initial_portfolio.cumulative_budget.max()], # Carbon budget slider update + [0,4], + 'all_values', + 'all_values', + ) + +if __name__ == "__main__": + app.run_server(debug=True) diff --git a/examples/data/1.xlsx b/examples/data/1.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..ceaf6c891a3dc4bd8d3b4a711bc15fb8edd1554a GIT binary patch literal 46422 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 b$a@&;ey;%q4AB4pxWHcpaD4PF_;vMP>%mlK literal 0 HcmV?d00001 diff --git a/examples/data/~$OECM_EI_and_production_benchmarks.xlsx b/examples/data/~$OECM_EI_and_production_benchmarks.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..602da0d4b572b91c7c3e5e1a1fef0bcf5dc5232a GIT binary patch literal 165 zcmd=0%}mZnOwCaU$xO{n%*#_C4)8PhGGsC&Gh{F%GNdx(FeosD0Qsp5xj=p%5Gqg= F0szgv6&(No literal 0 HcmV?d00001 diff --git a/examples/data/~$test_data_company.xlsx b/examples/data/~$test_data_company.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..602da0d4b572b91c7c3e5e1a1fef0bcf5dc5232a GIT binary patch literal 165 zcmd=0%}mZnOwCaU$xO{n%*#_C4)8PhGGsC&Gh{F%GNdx(FeosD0Qsp5xj=p%5Gqg= F0szgv6&(No literal 0 HcmV?d00001 diff --git a/examples/data_dump.xlsx b/examples/data_dump.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..df6886e5bf0f4b6e89699860e191653436098c2e GIT binary patch literal 51297 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 OFD}3g4&VQ~_5T6b$zuxu literal 0 HcmV?d00001 diff --git a/test/inputs/1.xlsx b/test/inputs/1.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..ceaf6c891a3dc4bd8d3b4a711bc15fb8edd1554a GIT binary patch literal 46422 zcmeFacT`kOwmwXdAVDw?lq8~v}#Y#D*qF zj*3W5l4Ao6G|)i*PT@Oq-%0m6&fM2;eRuey*c|t&UA4orpQ^K#NA)J*p%Zw-c%*oE zc&vE$15R9hg^!2F1pRp&kCfn!yuF>Xxt+6-ChUQ^lL4=rtPqtcpmREN>72oeCCs~G*(v_Lr3o(b=&KglOGsCdo-^uiTWQw|TI~c; zl?lzQp&fJ`w0x0Whm4-oIdYJ#JnU*v;ac5#ASFga6t$+;KbCszrmTbX$S8vpH=A+I zCuXis)b&Ca^6jcGaLXU+M>d88oSz8zeeT1HEHqboe6m}L z+Tkw8anoL z5fg1Yk~zH>`ma7;n2>R{AMZ?5o9-PC4=ma?9}5=`-+vN5A@lk2;-$##e&o56(?P_i zd3eThB20+)o|LH_UYE*G%#fg4Iq8uY?jC+(D7x@7b!o+kGn={CQ$_UwSBSs%HnB_C zb#;vr?_FFkkyW7d9G)RwxpKX0?~1qnsO|dc{p>aCYs?CjJa|ip?vx70-0Uxj-b96d z`qSgm-h_B~I2<9K>R*)halHouZ{JX8ci#jOj z$0&asYg?tnAm^FSHhfoSmCg3>1rqj*MH3=lm+xV&U3N|_W_C}?bxnpPY*-YexusEi zxEyI&@*kmuf-4F`noJ#H6kbe5^+p9;s=WxFC z4;8fQ{iVwEt;BA}I@0T{-=NAqryo1T^mz1?YP)cKha#zj6X7fAEyOlLL{vG~s@2`T z`3)OaWcrnkNZqZ-ez|${#aG&?Z_d`_dAH03w_wkh5;C9H+k?-dtUsx%Upp80g7D?^ z_M#Y35#se#r{g|D3D-Pl_z{9s8Mp2DnqOfA@}*2WbUHizScId|0Z_A%gAa!AQmI+Kycy8n>6((-J-6`OzAI4 zUbmb*vikK&VK|{?+BVALB{iA3>qlqmzWiJ-Pniyf(w)+FF+B}k!Dmzyo+b>z)6ar+ zt4`4y&7}4Vsb(oMALn%x=Qq4(<%!r|Y3#YyH1meKlN4{w(fIWZnkw^HwHrd}hQa>R z#@8RU1^cJ!>zcD(c+wi99_!GWZ`;{I+8Rb&6E|ZVeAeVB)051WdpW15uU}Fd^G+yu zW%H?Ema#OnX(pSW?HLVTzFAUM+^H|Jx|0z)WszphtcyI$uiih(C6Td_pC~%-H#eCX zdR0Bwi}46mbJ8p1rdQ8W~T$gszLdKYy( z6-OjKm3xdbPV8`+BuNW@x%!%8Suvffp7P`MEdTfmr>H`2(m$n?dJ(B5@Q$A3ZMOqc zXI>7*Ir(}_L3~G_US^~kv&!u(S$g89R&ty<)77X=&3Fu=s=EiTI*uVHv+c>Nk~2E8 zod%`IoAsx#A~dp|&MLU9_}3|-DNL{N^p0(t>2?I)P&>C>9ght;dPm^uR=Zm{sma4y zBighv)_Bik<$#LqaUlZpwDDe*@vXsc-7{nRxyI%6ov8NsoC|b;x_SBuZ(hYD2A=Tg z&ZHfXyDUw|&Bv+5d&F7x)>RDojnmIM(ukhe_}eCrveVps?%leX5Jj5Yn08ommt0qV z&(C~y*_~eAFCQDD@VQZC)OOJsVJ9lglEI3At{T7sKT-?$$pQk=$0;qBX@(?=JLhks!AvP;sUEiA5Kekg|2UyI5L_t%?;W< zZKBb_6*4UM?%B;OEhj{B9!+{uhaL)GvQvKZbu@T|^wIl@7stJ9B)ls9?Rs8oKBW3) z5*cSwB3d+DW$Gfw_=1Vz(8(i};r&d3c9>%kb^&&oy047f_qEyBQHWM|?aIVsT7D@X zo-gF*4n7dAfGfRtV$czBWok6SnWJJ@=FS$8;e1kZnV6@T)A-V`v$T}c(%EW#T{Jr`8zL@{i2=O6q3+evf z{z1ej-~7l=4H`k}q+PemLj&{f%HTX5gBoka3>KT{n6`HVKK8SzAM!rloIA&Ve65N~ zD50Ol+nK@3udd-#&1W%_qx9w>4VwO5NrosFZn>!R$oCgd-==Chvc1&4PpNl(|L9lc zpl3P)9JiIfNI8XP6Y~fZGtv8K=w+PS?$Sa;&vSE)=|f8$`a_|MH$LHizICcX$T3J*hLThgm~zx6Sj{+r`VF7x9#Z zP06+&6dtaT%rST&d?ot5{tILH=U5Z}*nZx_0Uw-I5z*-5PrDlv-pJd!-#+np=PTbM zhxiA<@|&2O1JOo8{AE20q3<=ZL1eu19k&xhmYJ={?;bK z<2>Lq`r$YUHAf3)>_EO(XC)@dG{SxpW>HDa%fZFov?S4V=4$QNqCTar?ul1)Y&RA4 z-#Ijp30@{S)78E{5wyxR(Rue~a1mZA_3@(E0>=Jg#p1J#uR3q2SKn%J3qR+%7RGbq z)`}jy#Gf}%nAmlZD2~H|`_|{fFUr#T`8rQ#%I~yM-7u_g9&$J3_EF4Jmwf!T z%hOv!q$B(4)Gm!_C+8NkxMND+F}jc9k}+c}T93}@ZpXfMyd_Bb0zXdd*?J)Nc;BJ- z@iE*w*d4p;w{KkXU<=F%F+0>D*Q}*TwAzoszq0$)c9yC~&Pnr)OrsQKGF75#yvU)f z9ZKDdE8Od`M25X*>noH9wq@q@>{9bHSq|CZ-4AS9^tQ}3A|1BT8oex|x^lSHS98mL zN>hsSLEMUAL@rIZ=xjwt7Yp9gNRq3?BxdI&@QdO#FRBvZS6Y+OQ(kdXzd=dBYhB}O z5O!3U-g1eNJWD+Dn0%l(X@mIchtoQD3arGk1B``x#CuN}9%ZHbV4_FH^5p@4@s~09 zQR3X<9EOJH^u~Kdx_M8I_~)N%Qq&J2uhp7o{xDbl*7}R;@o1aAh>3e+4Z~jJ{_$Fy zY1xKuM8w5+=!y64$ES7Zm<$-qpBnG^$bs6+=rLd`A;F|qxEMNJ9eCJ9Wj3MN*_6U= z+x!i^aPJ;w;JssVo2a&0^m4N&+WXLwC`MA(_$+0|4Fo^EZwWn{%@EVJL(qD$_s%{9 zzBt@Li8&7sIx@_~o*UC~_(B*{FLY6DDcDFc>DY`ZL8+6N_$zyN$?>&y#6Gtg$DYwE zQX{WKiL2LdhN!CDN%zL?A@|WTxZ&NsQ6Jo(J#J?PhiygfPs9Zo?XO{R+gRMb)Q%C~ zXb^5|YBdhIJAvEZNBQhyX5qLU6cUHU3i)7{SVmcRWtiQzr}$tCDA)pScWG|H-e(Vv z+}rH+(P!D-oKZ+duCtun-F}vM{)LRpYL^d79gB)2Voe^lC?mKt`BHL&<)qJ=A+sU2 zQ%QRJ@bIp2x(xH&-tCbc)SErD2h4L>Mi4vsERhAZ8?9itgEC)j?%bJ{(A#&LoD1n6 z-hHRj%lVpI#wW|j&O56YE{S$WbCs2`FJc~|qX)d#n%X1WFwJbDGN`@t5ktF4N8pl< z=vL?5$!Coi@7m#wgk0|vL%a8G^;#ywrl*IKWMGr*W3A^SB!>>^=deUmdFxP#67lp# zwCu}^vhYpqIQ09>PM_D#VR;epd~c3@cCAriCYrKhyE%5D(UPxW5I(d)ScGX?>Rj5v zAMlvo%y8KwU6OLrsB_$-hJJTLzv;a^(Y^cW@>4r%J7XU1ReMJbWNu-phW8_LShDtl z?0l4Zse1P1OOQ6b5#N9Nc;;<-kCn(&$VlsZPz^g*=*t+7KA9WeWHOMs>(Mz>1z!lV zK_v__8^~CAO|KR!^hWfL2$e{cd$(;Sm+fg)cz5lzY3vE$E+RAbcf&5`Ci(0@qd&&m za&OGqJF=pq$-qIohk7UB}WXiP&B1U9ewF z>l{HV(>3<8jCa}#Z!aF6>Dd|($Z1%}# zXK8P0b$bEZ8fV19QiVh(#>7=-7$w7*N1%zl_jVQ*;!wDX>vj*@2kD;2C1OhV&$h)S z8sXYIEvqayb~je1T5YcuS1K5eB(oS*jjVh2`b=)GwqlojXqT{~pRj}IxW+`fm-4u0 zagBT`DA8vwy++s!c-W<3&t7}c(QiY8$SRqkL$J9eq_p&iH)-4mA(fF~vb_;;E{kP^ zk+k^w#`fH1?7|NIx~9*Ushw5FJ&{f$xHJs8!8VJ{Rrbg2>`rZBtGo{xjH>9N&!ukQ zuxVeYvLlQpFqoORl0mw{IonMmjk!cjH%_Y~cNC3A#|`RqBpS`cWjN2PPz~?iKuT9u zWqcDI9nQzeyEo;w!&%B{zeO-YK49M89o~?Lig>p#Ul}*PYx#_?&d2i%dbjYwC?`p* z@>HIq=B1n@&0Ac9ExJ<(N42td`dT?$qOpT522)jQs<3y9oGP(1EjP_C#CwwA(;VZx zqS=&5tn>@rOh=M}A{Y-(-R_j3Ay2r@sKV_a9Xo8D3Dv3^)%D>m$0W58HS zy+!(Xzh%@EiIw-xeb1sxjt1?@IFbagNrVH+)<BF+PiG1n~X)0z?tFflZDF()n3D7ul z9@0|Grq*J8D|b7vh|Gazjq{MU;yY?x)P4YM-x>e;5$t7JA<8=^e>BCq(s4M6ETV<_@CH!?RjpX#BYJ1oXeyuigFg z{_u^}XVThK%-IZ*AK4@uj!V|_B#&P*96M(?esN@sXJlMTdW>y(}O?YV|E1sRnF02`00r@q5Q*UronUU45mt={q$z#%?%vgkV-=D4Uq;g^vYs~+m?2^ z?Y_#a<2F^LswtVj9c7+4ocxWpbA^#_#-O4%V*yE5c z)eVbly`+8dhQL@O1u*moG9(WSnL>t6Lx!#;Kx=7(*5UxICC6{G0ydNR3|XdzV<>d5 z9{iDQjYu$t^5!N=TDZX=1D=opLSVoIGC&O(Xo!alG(iT`AOjRakV?`Vd!lv9p54f$ zM=PR-tH$x|R=SWd-$pn8jM91`$wqR-M=nGI1EO96(MaO?kx6=7sA|l)o8d{or#HaN zTzb$k5_Ic~jHHGCwuFjJTOR%0@@CWj&QS8C{j;yV?eqBd_AAs8EA%QWCraEN&$#); zxdryR1(di2VYYlDO6$&hHqa&6x$8LamjjRSfenFO`GVmQ82(PAp#60?N4JCYLow+l;S|yEGJ*46gV(Au6=k`R$Elkuc#MLc=YAaa6v)0nHW-h&io+Rz2D6DM- z%83S$6V;HLjsiCcK$b!wPX+)_nnRxC2cCpNRYp93ntsXFE-xkJSw}cD#>zY{kUVz5 zZk3{Qm4I)REO(XIe)R}y6`#c+NM$ROPi%PId&1axjy>X}AvDbvWQiCAq!zNo3bGGa zii9ks0ZSH;iWp=Gmp^(WCz3iVr)(#7$^6V`w%~Xtu|| zU;||EGB79z8H|SvPCy3r36~xU`Gl-?%gDD3`nVjYdhkCRQfI8XL~kHav0Ja7!o#39<{hr#i>rFhQKVrqX zyCM>7XC#nOiEnsP0L=xt&7IDXzYfX^CE&DhXb;iQ9^%c*=M0)^Ah$7B90aGLi_Mi) z@`uV4C3oan+`+V!(6ntJ-TXn4J%;Ai0CR&XJqx+e0#s=`0vb9Ib`bbL(V=sn|7L`X1#COrfu1#zi|;&KU!ixP;-bI5KtuxnYqoj>P_?l72rRzdw^ z$?VDslDU%nQaqGsrqdvuYoNJLg1P_7U(F4|kooC^KkcLiH}S!nS5sEQGYB@-unScWdwehO z95keZVH)_b8QP~V*e5`@;jk@BtsN5cOlpsKpe^L_6X(N#8Kqh zfTd4~m_2UWL;Oc_?v0qI6My+#m->~bb2JA$;RjKGHzrqHt3vlD@(rK@)U+W~XyYFS zc?W@X#L53^+R#2bAn53dNIl4a^UHE>zCYAM1EC&zFroW_>!1z_Ya>NN&Y=baJrp2f z5d0R%i6)Q}L!nG_qAUVNSgREKME`lX`E4hX7C*uWc-KGvOo{;q`2q+102hEV%;9G; z3<4a`XiTqthv#}v-jAl!@tuJP=sDClO&k$rUM z$m$Q6>4+1+ST{n3s-nt_Bsyx=*Xr9Kj9Hs%gOIE$C^33(-6=YeN76x zK24s8{V>5uA!Ia|)EFvcG@SIEsX?hw_D`h(sF=9}MnJ)DWIYP~1@$%v2|@*o9Kc@? za7tP{-!8yHeZa^K9tNAfiSqfaRZstOtr~J)`gdMXeLzGYLy{Ix0W$~(!{4IkL8v-6 zIv0`uOmhEzM+d0~@s5au|F+wpSQ^K9*Y$tw6!QB{{TIkNDWCzs|1a4Ml!>tPM3zK| zMgL2&`Tb4+Gdqp8mt2ikn>K>2L3jjpwTOiOqBjXYOK&>6p^TGOvHTrZGlaHe1_pC5 z{JFDzkIm1QQ7@<_3s6n}P5b;;jr>Dy``28}{oj(x5YRY*3;>;z8?X<6(w)v|)9!`o z*6)DuV->UCuXd1SKCmyKJZUCckSjfBv8SK>8v z0>K@-z);tQygCnMha|f5nYZLu=ulPBMgB9q{r8EDlgxp5kEzlD4K~|h$^PB+GKE!OH5Hx_|fexR5wn5iL<;^9(X9R}-93%J((3})tYnz#a z&g+09{MQjT_pfg{{tY`p|1Ro(h`0XcsD5xB4E!0u1fhV)({~&Lr)bDkjen1FV}Hy6G>^=l`+sdm6Sa`7-R%G}`$e9>@Pp zsb%=RiyXuq0{Hg7;79)px%EfeFcckK9tvFBg#TFAz3H$uZR}jX_;j46o2x;mEtlR{ zpyuwQdWsNMS`F@o+im&uW&+K3W9qp>OlZ5g8+6+Wq3gv1%nJK4G&wkV|M?E#6j8po@0TdKL;8n{x@f1`=2NEzwvF5QPA-l$|xnl+}{!l z3OPiL|5tPOk2LWRz1LyD0bT0NB>u=udeQmS(G-kNWOO0oQbHQz!gA}y`G%7xefpBKuMaF5WU3~3ih9s-emQR| zjq5Mo9^+k?DI=fSQyv+e-ZL15x5pC3L!J4oLEUtlN~MsCS|tWDEb{d%Ug92CuXXL>uSPxcl?O+wr2dfY~ zScTW;X*66p(MYD0d=-ns;Y88<>?nKmJ};^l<^#thA|My=qA)OABqjoei@|ila8Z~b zgikxR1mV+(jX=mu?^%xcOzpXjz}LLpId|<-=ac7`v(}RDqq26A=TTV%@cS!SWbpZw ztYh%|t68Vu^Q&2B;P=O$757rxFif83<^Up!lxCBLExIOrXxPndpaXNGkX{8fz1`=)a5NZ5OC?L#O*?| z1A7k@57Ob;fxWW_3sgE-AiQXM)HOAiWhiiKSj5XGdKAjB3WU+jp4W)|ns*|m0x>$X zCqDwYSYt$HX7A<*%i8`$)acs26iQ}oKOO^z;bJkPFrSu0FtsMr=t0;UT|s&g9c)EWO{||&OSTx56LmKWluBiR_B_J9L6UD zsxmKd|28_gXFD=FwI_~3p}nIqg9u2LMnTaPK*87cFQJUq_9HR5Fx+zt3Wj@zX++@K zu(=3a2UcU`U@P~*S8C2iAcNIGmNBOfd54sSqplX{=3Q%T#h zVw4G+%*fvregSVlcL#f)>Q=#JCgZ|)<_k$0Uo(6z^mWHa6MQ2=kl&-r<2`LqUFPeE zKS5AS|i>x4f= z&_MKve2cb=$M}wHv9C3L4?#N76>>M)E^cF8*#g~QCGud}748(>>H=RgzvRG$OIJEmpSep}GQ96~Dn9A~2_GQg z84xPL6HiE}2Ty>|4xV^PSz;A7LXue+%MHDr-_*h1;EkuF<{LARt?+$_KS$6(6hlr= zN6kBSN4CV*7Qde$he(q=o|c+tOjowh*Brl@K#IKADL7f4ZNt4oL@#&7hHVoP?gIe> z3GP7Hf`q3)*oK4`K-h8b*o>H`ladh&uiWA8%_o>Q;O9GSSY6@kg1?9Ic_uAC&uP8tLSGB~R)Q!ZciNm8YN?=W^H9u+KsXm6;R_I!Az>W| zE0Ayk#B~i4gn_WWk+j6p!{_e(K-FVIm-jx=mkMJ;S%j}E{u04gqSxeNbgI0@`m&|I z_V~jD#YAT0rL?L%#(J_vzLxmy1kZ`ilCN{?ce1)eISs|^9tdY2BxC|%2oh$2Fa`-6 zAg+@@2MDu}Ad_vhzB@*WnJ?5IC(CrLLHN4iqX-6w-jOTPJ>X5zuP*g{fImu5PGm#g zMEigzMX$QZ_a1&H!3!d8az)x%-O^UObVb`wyXeX8<7ZgoPrCEz6`V-FRRGmGcc1!4@r zJkd`emhdeoT}(l483F<1mK_j4Zg~R%9W z0|?Or;ei_v`XQkd2*Z%D1%z=(5CfPo1$2Ngx3CTK_=HZwj&Z37l+vm4{RCpAIsnXg z3&m^|2!)W~05GEhJOM%-cmm?u3Z4L=yBCe#d^MwhsnJQk`+zUSu=*zuYhoRWnKl%& z2@qflAb$X9oEa*IG|Iz_moE%o6TsBi zu_a)QOFp%E6gw8CxL)}zAT}5kN%Ocv_(yk1-p74q=-Kx&v2AwXR>;GQCWkDx@MJdfNTl|WghI_>S!N~fM5%_D`!heGMgZB*o z5^Mj%gFBdv^aO`OY5Jc#6gGP039AE4dJiz^HoznvfJt$HP66m5h3J&+2`31;qJUaE zP`d}I9b6%XBPk_#R577per6g*ARd%7XV#I09_^kx&(k)0#F0c6+eyL z{q1aME&M0AKXz64FCD!9@Zj2d?9YGlimbsJk0t8({gb!u z1X2o&n3~UufKC+wI&~Ld(g%P^`T)B40CdFz)&)+2iU7KV0d&2B)V|*Z50fC*;sbyB zE(>6i7QiGffJx5*odPGpJ^)?20Jj4Ac&`Fo1@ryFGa*v4?O(fo|GBG5+%KvnJ}RM~K7RiT z_s~9ncv2sU@~rRR=R1-i+`p4ZFNZ?iY%9Wly2n22<-^X2%R^_?(MCt6{qpI+MwFp zz)>=;sx*oPKHMTz2X4$>MWpF zFM!%7NbTS?KLnPz&0oi{_6L7WQjh+kq~82BNnP?sC-wI`N~F}U=|@YyBkudS*#ak~ z%Pri&wGqNsFKJ#9}wCT+7a3k+7Mb3-Y2voyhmtBXhCRBXci#F(C^d}4-ED|b4|Q}44MIh zwvfS3z+e^FAuvb}3{C;1BuMFX;S9Ri!@JyrWpWH_Twh|Og_zySnJ{m}Fv&P0=G}%@ z(WJSmROR z=a`x*N*+{z7lZx?304GwpxU(cg|RFSQlq8&N-j?W#WtY$0#fu!ty$(-jqQB_e{QGU_WqST^zqAMa}B3&ZYB6%VyB9S7#A`e82 zMN~y(MfwV#N$G@HL6fQh%Q>J>MW9LhfaPIOsKD|gVA%mE0m~ggN!&x)K2B=1l1h4; zKcEu7(hq@;@TpnnA94Y z^ck>R47LLbW(!yzhb)@{%P~O72`F_WcMdLZLnsj$fC``)_10Q_HBk{B$297?+qIfK z@vt#5yo3oQ?!CB`H8B%zB<{Vm^?m{qj$vXEmv-@--%6WsBJtoA8zHG6js@7n1+eKh zz@{RAO%DJzt*k-Vgb%Pu{s5a2fT9pkyay?62JRdL*pj92=K_2IH&YeH2?j1OaD#yd z47_0A0|P%81i&B&1|cvA<7Ry9zDF7RE27;02S@n;kUM_~ApgN__d6gL{t`g;`W1k@ z_$vU}@(%{&!kNaPL`)6iK2ExC)wVGt93^h(;yJo1-}pAXm&smy#09ail|PXY4wvwr z+xjq35lTlC*dLnAIrU)!diHcg7~lfJgICFj+TZpV&I1Vrfm9AjOl|FT$C#rPEhUqaAu z?m^&73Ha(bKpFgldgN2J z)W&mfuyuOpTx~Ev_7d|+NC1XdoFa|xDw8TJkQ{eqM}3?)a*9@!Ea}r zNa>qN(uW(|B`U^8UUAMOT$59nyJ5{=8Qh`zVROFX{N5AxyRVC8$S>AR^3Z){@a>Xag`-?h zGS!pRu54agow)h4>x+&@(vVVoHXEqBZ#{7HI-jjhJt^AzyI%=w|9XGe_z)i6MGCxs z^cf4mgKrTHDXc!Ds5e>Z>2mrpz_A$SQhGyFagGCi0@Y);`Mo$~Uoy zvoti>hY7t7%k#wfuO{5R)68{8UYIY7XwQO2Bt7-I%i&wR zVIP_tU!JE!?1wECXst||!}4}XopNtd6~CfSl{vf6*~EQI+)1)s!pi4`3wxp6P#F?_ zw(#(+bgJkehrSc&>t!lx)7hig3Jx)eNPZI!C?^|n5b0`t2kO3Iu#3ctmw zzz(-sdd)@{?VHgv2bP6}HEB>fjUG`E=h%v}yGj0J??j+Mgeu?S#v1SPL!mE9-dYtZ z`tQEdYQ8arSgwNNjoj&qTn{tOay;Q<827qy$~ zvbONvJE%HE1oVw5#-BZVi{HvmwT&E>_ZfX!1aY>lKp3NIn9C=%a=LhDO)?C999HU) zFWuC<5YV@>0;|%&LlaWp<>FUf#gXM^l1_f3k+bpLF01A8eelxb^ha8^bm{;?-gg39 zqlB!?zGsh&Mhg-nzoxr{-L7~s=307+rQ#5=?Mr+6;~1CwfwpOpiw5R3%5TRc=RRyo zSDqMfaVQBzlK$=+5;oCyj`;IaUoDX<$D0cXdhz_qW#)NyQr6X*l+;62F(Pl6TByw2 z9cM-oY8!P%Rjx{WILRW7G^P$tG2SgkIc$p`e=0cAJb(2$(Ni`4!@|5hmrTzycbue> z2-C+XJ~B8v%I3>);&Qll+M{w#(ROY=Q}%HE^mT#!R?VlW;kUjCeo#11P{Uxv7rC%( z8a%j=8viAn=#`8VsSxLQfn1@&{Ae0C`IV)s?5CY_PTHWxNL^Cs? zQ{d^(VqvCn4V$J0fX^S2(OAE4E_fn z*AY5ErRc%%!PDPSi5in1rjnl~_Ex!A%}L|EJA$45{JpU2evHL$t2{^wT+S@DbH>_4 z*p5x$EFaGeUoW1m{%|z=E&t&&p>BU{LX zn@av-nDOrA{L0CfQu4y~0F$^}(lf4aGAF&>u|hHkoOAWP9irW5NmZ{{(0sr9f^sj< zmh`h2LFdm8>K~ln6WPZlzI<)0ce1AsuW4KteFtlP`*95A>yrJ^Kvt{F?aQSEhN`Q! zQHmmY-^jVkjy|X2kK>i<4=JzZGgq@PEw~-}^em5pl{AticFt3}rAg9I`U*PK48H%Z z{|lx$Em@hzfKT(Sa6y-@>QjoKLMt(fUIOu&GKCkSG*#!LgZkQ6j(d}N3+td}Bh=Rz z(sEuuk}aefHPTNj&h;^H%8hk*Y}Gj}?&$8;nqVz-g_Uv3zl7f_wsw1K$@OvX<@h^& zA&9Se>y6`TX)i>bNA>tOZ+>yPGk%8Ssi)FYhsW5O-1)79koK?s*}^N%>3VsDDrW;F za=X&kCnr`zS#@P!2|AoGg}-d4*Uu@-zd0^OpI@1OqiXp^(j-2~MT}Um6z`F!v*E{% zjUIYb4xtEh{2^HKwQXBT#p0REi?9jYG18ol!)?*u2r6^x&xPcaO8@qSnS)BPiBvmM zdz#{LuADnwg1KqOiDOK3tgXl3Unm4~`OFTTM8Drgf7sJ=jDT%6xWBc6dG);-qiCyK z>JFSA@K3++xFnu)))z*^`}!>{;i}eg_%TPBGq!~a4Q%R1E!ZA#&|ZI*u`(8abv5^% z5{o9N-QW-ntHKNK&j zX$uKPAsCJmoV&E4&hh$9oSeN>%x76b%F6YK!)J@;SU#O^?_+yEbvDuFhMo&$h{Aql zMg}I?+a2w^`nfXRT_K*lHtM-imFk*QQfOcN+3x2))?ysOo+^qlp-0UR+ijC`@7^4Q zdpjPrZ6R1c85ejaM;Xd7s*|06E;WCmu0Sq0a8`YpiFIJjBw0X$ z`J2aQ49Br!-uJf8?ak1Y@X>zKX1_8;tSfJqf)gxLGWNXv$!Tq_=Kkl?qyc&!Z;S{t z^&2-9_Vkd&pEL093H!&U7x#%T#M(ugP^#|qq*mylv|4FLx{M48%b2nw0((<5eexc& zP?V2dCC|NlL0Z2q=%q!5m ze|(JHxK#53DXByZfmIW z2r1>WKD%9KR8aPT^QIliISq~Fo(Ln{-X7hE5psWJepPht%lXyXkI3Ea);J_?ReU4w z+Yk+3mDk$ZTr}ON*T#%W1k=DEBUAhe>y!MIoN-eWdx(kO5$r0y%*&7bav!5)kIuSe zF1I!j7~VNOU;8j`sdkX@b^{SY5^3FE&azr|HasEsT0YT`X{ZamtN2*9lOzR#gPct?XXdV3C!C6xct@n7< z7S%6Z5xB@y6=F6i=;%|Uz@Ec*_KN${3+NqF?ngJL#e+6ZT}F~oOdP>78+;Ury6HIk zxh#ZU=$VvDUzn<-(|}S`(?@UiBdk}SxdvRP^Ni@1xFRLbs9GQ}RC2hucF*EWDbeKp z7cu99cg#DO@)4m4l`M45{&^wh1CqskAKIS?Nr|;&63S_YBg(rNt4H_d#hY+7aN%%7d)ymJ8-N)}Z zv-RR)Joiux8_$FTyUcmPfru^&J$dut>ZGSi8=7uH>?x+NgC26xz`NdKZ=u~H!n$u+ zmc1)~kws1vwe5C6KTJOEM*6It6l&!Cmj&-xO;_DGVvhc9dJ`oJ2DOLuYDP!oP8eD~ zGVD*d{mJ?EC)N45RK05sQ)K+MG&F8gn`2iir-CjITz+i97&Bu^lTnm_2+bkuNVw)6 zEtHjjuX>kH=yZg$Mt`{j?EXWm?8>XJdDudo3&Z$7^ZV0{b4#>8$LcneCj@;FR4Kb# z#^5M4A4YZ5`s$hUrGD(}8eJbH?6yDLCoSP*6Sm$yK1*NM>qcD0_T>)UD~(c@lh>2& zwp>k~pQI}Yx)LLf8rYw;5gqd z;Fp+3^K5F{^_y|ayH@E1d^X`` zrOL1@7_XQi0;TwHCF{ezB)S3b6 zsYi?72D;E|x9;WX&p+g(8Z&;TrhlXx`fQfIN!L{utK7z3-sOoYp7y|_At6deZFC>T zcfM8W_j@{^j-Gyr{m_!4YYUxaEIvqa9ICvP*0uOmJkap{9TcVeaNZ|I$(2er$|D0k zcB%`aWFH($?vUO;XYQS*n@JLTLn5<;VJ~IxG?%II)CDiIDm={nielWs_w)YxT zO3F^q=T8fn@bDm(qf0{t>-22U8>|o@_=;lji>CY?(!uPgiSQhs)I89o}o5^3iA?)$w*9?4Z zLi@>CS{3I;Cak0N^jOAG3*8&U^G{FAXN*V4tcN((H%$n!z9FEt5>SP=I)3WjIOEBF zn3uVL==yk^SnF~9T5IXvkgK;IXs%p6+|5(>VEs_H=KG`W*WHdN`lFH0$$8qMh}F1e zhxm~aMPE;*s3*>K?)4tAMo-KZF2Pduz2@`aywRsGke_RNZgqHmh~mNqADoTe*+wht zgJ8#*9Q7^F?x@K`+N;Rj?D@K?kueIa!}A*tNLRL+@{D%V5XQvD>~Izf?pB%?*Iu8= z3utXrPl|N!pcfKvy}%OcAlIMGT)gGW|J=e*?()OCSoeq>Txh3z$?)b-)$kZEwUg=i#K(i6vI`E36p|7<9u|a*H{(eN-JdXc4*GBAe{~mzl7q$gT(vwd@|2 zu{=CttzOPJ5q^8+$T!>k^@~&3SxLFC3>xkX4j<nkFt1%{|MIeWLC5 z_Ja83UO!vJL+&8eBg_L=o35r?_OF~T^6(*hl(~!yLrbrn@LQ59wNhUR%6g9-f6S&o z9{y@1MjKID{>A-~hFnpCIqVQ+sQ&s_`8sJfhr=C7-P=Mq-a;bG);sRhCYDXMr!%@w zPr70@o=)Q%%h&d?**orsiuN&)p3&l_=~m5HmF-x#zfbz)NIXZr zp2Cm^bm{3^HC1uEaMKev>3ble|2Y!A5jf_1s6$Of{3T3V%h{xO^75S7n}_nmRb`5i z@y|oo0_4N4TyK3sse~$6d7zA6!!tL1k5#v$qE}9ROd=w7IC3pJMnd8&^fk!vNAE*E zl!w$0XA+6hNKrWRs55M4A08|cBa?Z4D$@uS+dgKIKBpejA0;Sud32o{OUGf%uyHIe zloQ2sLD&)JLQt2m^Yu2vL;ctN!vdc@sltk?uV_rV?tc0xI|@TP;+-&44RBn)IBWK0 zV`!Ds>Up<=umq{6t=T0F+fb#^moGHB$*&PO4_4u0)IQisUk%V-tKj+c+-?&8G0ii2 zKHcr2ZHE*)xDVS=19sV)LJO`tQLzMfp(n@{=Kd23VydcM7sjGUs$$J=T|T3MTu@H; zdsFrpb>AiEbi4fi75U9RxDr8UUg)ap+~cLk*ozLVq*_T<7&79L2e3LD`P~T@o0J=T z7q`Dn9%*`Rh2d_bXYKCt4>!4A9AMD?P+XBb(n^_e5dI3Us9*oGHhcLRb4QnQVb!OJ zk7t@Y0u|(?7#3+2aZ15qEZ{_ADT5(6`^^jcSY;)4PCcTM01|?(ZMXsg8MrQ z4q8F4`kE&?W?ENQx6IJ33ZD*Hb~VKgJ#Id8gfKETyG+uqZZBfNb%9^@Zh=KuR34>A z^-6&omR;d>bz5vHrOK71AdcGkL;mA(A5K$lzb`U2^PV?-^qyFI;;`?P<8K@gp@${} zDL8ws4?JEFrVwvt5$~%!p?&@KWK&4e(;H8oH&;zQWLA5o(Anb`-(1cTcagE(q@hRn z*7K=VXKsPjlpbL{m9+M=HzwwEwXccu)CIkxU?~ukycaos`q9%EW-ec$TzxI8HAh;@ zqi!}dE~gOMC3-yuSN9Wd#}>LtMTi#mCBf_*oL*SH8>c96I&wCCpHNf#-9x7T*WOn~ z)zNI*Zag>vf(3_Q!Ciy91qcKP7Tnz}0YY#mxJz&X1PB`3HMqM&aM!y-&b^TRanAkD z8}H8>@AMx1qepkm?pn;MTD8_J>gj7NVw5VLaVlxOp7zBNt)edsK1nUH_Tn{`Yj5aq zIY(h`jtVg+^mn&oKMx`|5^F{veXY63WEy1=^3rWAw$nniBxmC+kZ$K_*u!}|emHqZ zWKxE#lFnmTH13n%@j|!98im1)na5e{ksfll)1;2Zi%^~SOs%?%K?Ox#`p5lRn(iIV z9v8&*h5T-tQ}M#ev3>2$BP%YtGvTuJt4|FiiY_*wqvuX98=B++Mr;Qf5Zc=H!`By% zB(R5&s!n=VPSB)a;hjt-Q?5Wc2JTb5gmW#~8iphfG@`Bdx$9GxV>v7R9dqt`RtzJy zd+re}R>ue1E5}r|7p2$Mi8O6G_TOep^sM)u`+fb?)%xk;hLMW#9hm>a8&-3fF-kT7 z$tD1F7)XAT?$>_k|Jbnl_Xg>A+g9IhkNzQ~!M~9nUHAmzTF}uYV#FIkP=SrOLU9#B z`+Nd=GCK4G{mSJlu3r7}vSr^gYy1Uw&QpD)FzTTyaPK7@Ov9pGmkF9W{$loxDRfvG z?$Eb`wBO?(WMm}#+Cr6|z!!VVkzQdnxi^m&2gBxszE~L-_j97}I16~%pPy@Nwyz0O zN+(mcL%rno+KZD%Ugdf#*o}bOJiV@0Y`^b=I7g_~i!?EgcHy7<@3r|i9gdSs+>jtY zn{{^`9K${oRYYs1Mr-^#7P!rL{I>;+o9I!5cDygW##~6bd|vuL)07|@CA$I$YfPpc zOBjB8c6PBg_CX-HNoR&${hbQtQGmA&F?@kJACWh+P#m>u;*0VxDazc4?&2RX3fudu zdn8Z%0-{wHIP{f<1x(*!bXc@n##kNYD~ROkO6eWR>%>YO&rix4+Dm_BTmAwum8gIR z4ZloZnj$l*7M)x@$lm&Xhw?K2mkBzag==x7iSe{6{_OeyG=b=GjKeuDY~W`1w2i}q z=^o}(*zmt)g4^)wpC<6QH37M|yyvo-0O2U>6+ls=i};rbGS4nHl;Z_LewpCsx=Yd! zCPuIy^_Cq3Tu0Um`J!F->MadEAPc4=9|2h~KV-)C^SO+Sv0qz^isCH`2!h`7E^H}h z1-|MC?cB;}MU}F@-Ug2o9ORDQp9Gt3%qgt(w*GmNVjiLvedCbz))&98;~kI%ZMP`j(!%B_DwH$2UX7E5=V@s>kiDV!P=z&=;^55;i64>k7>RBu3 z+1mc z1Vg`^3xTM+cju{cEEYSqhSjo720cCFE|U;F1DMgHbqMBE$VXQ3UQLeqje#%aP^Ql8uI9l|SWpMu%qK{QpuYp9%V&ApFL*o2q5{o`E(KHrCgDP zFQ!-lpef)n+8M9{4{T0vY7uOk_;1yb@&Bxj*w|RV>j*G%|40E%MuEp~^7=kUpRxG!zAjIkQXA{KJx$^>~J zwbuQy-dzHy;EoaZz;m8xIWlMy6Z~JQA=Ce3HGCH!*i;X!J29}oMgvd)bnI+wEzFe7 zOzDhl^~`P~sDx>x0E!es;6wlV2<+oEY2rihng60~-q&H2Lepyhu@Dx$%JzvtqFZQ0 zaD@Eo;y2nWHv7T-7ra9R7H0!Ba>JzD6}1-Xg1EX8+{oL;Rwrx0I+|7TnJ>$PCS1|; z)v>3vl{f*2@OrP36|&P%dtf>U89wt_j+UQEy~bDlMm(Z;``}N|_qyCKy#~ZO!j|TjT;( z>*fZu0gL(*8>In_QU&bcu>NA0m(~`RHvg7&G9sppr+}W;4!j#ox{FFl!I7*l8~Y|C zIO2x^KJ&5x!_lGez>J^ek>6dGrB%cG_0gn*s1sPY_%36zj4%Cq7N*-gt*APc$=s7oJ4cn2ko-&o83xlD*5$H7$HH9{vZqCsim(`%(zdvorkNYDC5HZNpLm`QwV zE_acW@IQQ=$qj|eBWU0DV}^XuB|wJhV)+*Ej(S}u4j^;!TIW(Q(=XtQD@31`(BY#x zPhU9^lR~P51A(_nHuamr;(Jw;R7#AMFVh_BMD`n+Ow5Tl8hUnhIBAChHjqWe{d|5- zISHFrz(Y@U#?5V=zJoWE;eYa}K9H4~)_=Y%*QUF~j;srpf;yPBW_D-L%_=6VdQ+Cv zBrXoCutAh=j%GzN)knqG>t<=3yKgVzru-5Zy7=qgUu{w>sRrmdv(P`(FmA{0zuPdj zRNq)EvSPT?_1_R0CYyDXFO9W2`jhsSddYBlwVIt2q=KDY5+koG6$H$-joE}n> z;Z>V9FDyW28y&GOj_Hm**le-3fkAD6gPNFSGRhkM!um>U8=7&VnE_dutE{md zdGAD_69=#8ZMG=nCFpO7aYM1{^I>|lG^fkT>4{%sg7Z7f1y&S{lJj53Oa zUs4PDY`7Ab50#dl$ipUDy}Z>K_omr?mzpWs1pzBMF8OKhptFeaHm6(GGL!R$+>9Yc2IOD5~A<&zH4P)nuGnUG1-V+g$S9ld6fP^>NH}rD>;=`liXsYg;(w(a1k~LoWWb2HQ^%0(2`kk~L#(-+kU9!yTHzFUc#`sWY z)4mK5lwPk+YQp@Wti6&-uA`^FqF*kPe@ewd{vH2H9oBnI1rLR^_E{LfDvWo9b z;H1d8aO&8aDA6cr-}(`(p#3s9e%cp)3GysoI;8EMgt8DjJwgvqDwJJ=|NJnslO#Iu9lBH?8c@Wl{_y@^241y7NF4&-B#kETwck|#K}*je^pi!FGVLN zI6Nh+(51ItU_MVPURbz3<#S-2?6g-BjcKBXv|3wvD&xfqZ`j4Hx)sa*M9V4P*rdVk z-P>?|TIlN&zjGI-e*7>@&#SC*JO_?24LIC=I62iURiWOz+^Jbz|G4_fJjoh}%FpK{ zG)AHQ8*``v^YpRHzRoz=g=Yd~W(~1$ag-((u9QDtJ>e?row&(cxN%lAHC#PVj#Uf( zB!Z9Gm>IUsA}{?4b0K4f$p*b87gyf84DiB+(z|qjJvA;4!9tYBn?$(~=lvtv95Rk_ z$~f(LO5^?HgO#*}NJiU+_1vZsNkx_A(}WYlJx$_mBsy>E@;?=PZXv!5 zf1cMwRGuh@43jG$7L+xuk>xc?IlfvpIB)stnQ5-n^2tmoUCWhh76d<(gU5IPvSB!c zBUU(ZoMOG@^7HzsGACe9xNy1D7z>tZlYlyeaSl~vw#snHA~=5yrL65~I;>SNFOL-0 zSrOgFNHU6v+R#i0wJ3(v3Pp56ERAYPs*2jG%gwOw(69>kQY(z`oXjNxtkfQCNpdiy z!JeaBAvu-Q-Xe?!nv|CTw_$lamvqXBwp)QC=s2=I3YtO*YgWq#K-G&d$k?63zl&9s z>l*k&+~2n8OR;Nn9^P2sI!EykC8P)rV4!)dgYyTw{ME6G;Z&}*) zYM_$inWf%6Lg(526yxQY-9@1SHgB?0WDV963b(LL$&WDcNu-vhE4c~sYt@s!dP!vy z@DIk19Ua_{p>iV%4|8>*iHl%iMzgVfQ8dWTF}j|;Ui(_ z@Hx7|YWBa9NKVEgAD)-eb709Rlfy+myFigYK~W*xSWntpRhp>seyTOTgwwc5zj*jV z5#S_iuA+SYB0^3^GCAYG|1foA_bX2Yu?Q_o3}Jaqp&U#?F7#b4shUefUY}5a>gStW{z8($yA6wv~n4J^)jl z$td}idgE)ZLy0dOdy=g_iRQ_qRg|xP&{^7nH8PwP+Cyn8;*;npWVCaD*HHC@Nf@2f z?#~}ybq-M4z5T!($(n>wrtqAfYS6f%L9vQ`fZ8Nsrmwe4$=DElv823!wYxJ?h{vzX zrg(daEq>C32+N*mIgD!!Z|OkG2I9*HL7N~NDe^qpmn@KmL;;v$k(R~KYE&A8)lZ`g z*<9$XGFhv7Ns;>m1{T{gu3k&plSwPW38(tW{5(#JU%v3=$*j7_mx@N5$q%NAca59~ zX~LdHh|J8*4L0p`qB^Nb&7m6E>OxiOCb5gr%n_`tGFHm*SC`jp^vjO=Hdb()s)#A$ zGXTE88>3{mA~*`gd`2KUVnCh9Ix{_}pPmErRlXcw2B8&rjsVXU;CZ|)Tcg;v)F3P& z=TOIQlOtl+xv;GE36`E&krG-?ah<^6$AqF`YSb%@RFY0TT>aV0nU|7u=pC_dQ(G$o zZgy^Cc03X9>~bLzRk*Hm_u@uZ6}UztSV;`!s6yZOpR?**`gjW+E7V7gOANi zk*&YYit;Tb7YDN<7}i3H>Ss#s6l{?pZ%4Me*M*#nFNo3;5}mLSyr7G^ie3p0ABgm9 zmk72|U7aVgp7Nt=aT<8$76$IEXpf#Sn4lyT$*vb$@6-Zt$n#t%?Cq>+zxXuQ)<9=% z?do-<^U^#<|BW*7ViT$?=Ovd1Ol&5GzOFl)PX;ML>=DiunNV}wd`K*^u8Z!a?2uJ&M3D}ih1wFW8&RI4#k>_Y!xQ^L=i2GaWr61_)XHCxXy zADl7Oe$XZf1>Ttio`0Q6-iCVquE%T|%!SlQj{^0@b0C6dt$%^p15OV3Pwv_MGxJCH zX$fZWVfZ~Fos;zO?MZ9waEC?lB=!><&w@QL zv};2}&AptR{lv55vi{7)+VR*ht*HNPQZ?N7xP>8ISu+f__?iF$`!-_pawF-cx$nwg(dU{vc^Dgkhq0z6B}ZcHU;Io9n5L zP0_fx)To=Q|7KlK&VCi5U25ITd@2<7m|Mb!X&uGA=L7L3MBBSwiV+-yG};z|_FRjk zmp2a@RB!1Gzdg{HdBAMNW56RYT??Jt2{xUMg|*(VTry!ABp5{s0QkuN-^YjWNy#R9 ztd?1*8=p{esOpTwXzYn#Ct*u=OO0I`(&RVF5mBV7C$sToZxS(gi+NTrta^#ocLg!m z@bVQhJ1nQtu{<7UzS57H_gPnDu5WiTC#92sz}E0=YI1cTfARz^)7y{cd69;PpocCl zn&QXRnb(0R(j%jI$a`!J})D;JdMaOyIPUYPMPLHhKi+Br+ zJ{yBFEM=?0PQU27io7hhc!ZW02op=rEKVFJv^USZ{q-~w55LaV;i-by2*Qt62tNUq z5u{?dr1MqG!RJ$ZYg!Vr*wR>dkTW3{io+P$qr%tEj!AG(<)adc(j5aTz?P)fcKV** z07tpM1_lA&Z;@P3cEI*8TLu z-nOW?sABpk))hCPGdxsAszj5w3mZ=k8L6*% z$m5hxl@%yC?hF-*N?uk`Td;4#ntAnP^5T?qSh4iq#IefgeLqzra0QP_vxodV!qX|g zt3dq1*`gF&;#;(4860g@l)q1{0Lf_$CF&9MFs&h{Zio{VD;&a1CWIb5S=wBdr=w7N zlbRQjoWF+>1eJBF@A+$-RhH-O0?mOc#bBP$lCW%DpLGL+LeQ6xF*US(#N>8KWBhg4 zM|*XyG-yTn;d;HtwZO%LY?@Ug8cqw;1ykx!=vJFanwq)hT?^|lC(iMnAfj}0gfy!N zpp=W<$QP=oj9~wqnR38=OMK&X6i`mL*D<<{|47rpN&`I}37pl)txX*deu1HYD8|%! z)MHxvAlGTKoo?0XoOORgUyioxkV2oOL6$)1`a$pRB7yEnB(Mvv0_L^Q?lb#$Q20OO zz9V-{lzPYjACTPAm&npzn61{j4{aW$cnd@|tFys7&m+dlWOW%%68!`OwBBq3s#^-< z+Kp>Xvuaj3d`=QLYDXQM^i3UAU{wyKhde$vz>}fLO&#}~9Kb%3N|!GcGbDqbVRNWq z)I?6=-BgdZZjpTEsAuSxwh=FxsifYOI~KlLy0Nw>kepG{oih-!T<~o06+OOqd9PC{ zHA1REv0bJvl2TcM)6k~*kis*xj$_+lpEL7JE0|iBy~MB;2~xKMlcnIac5m8x9Y*j+ zX+(sqdteBJ&4S!Ai?&1F`-Funv(3!rTd&y&Lv-5cvx7qd}DJZIkhjn(PW~-+~lKK*u1I?`Q zVNgFZ{`>xIFkG$ zBFn8vKpZqaA4MjZX95bBdLTTGLCyGfuG)bTocG}&kJ5%(H}>ntiai3_z6|eK-}mA+ z&>mOQo{u51I#V4#87K*@NX97_O-qoF94D^7Y+C<7U4|2w> z>g6<^dDBely(P4~G$B@czl_9@Ei#0t=Mq?5x+%E%k&GdnDh_2N8+Pgzw%2BSCvS5F zEeHwDp@+_5CH8Mv5xpEvg|{*2I|&|7Oe<5UHM(|3RTeoqh+g^a7-`ZHz zVKnRhIST`tOG03lj>X3%W*Cvl#UGkg5fLsueWvY4{n_DBF+_{Dj)j50;hYD8kA1DN zyJfk2l;ggiq8#zl7@+|T6MHo1t|!j|^%!3wDM`eNCgxX9JU%KfoTn@m~|2G=kX)*po15g^gy`_QeFB)`F0BHbIjU#H+t=*-(q5PW$JilmgAU0FKx_(*%q`{!>YYD?SPhfJ~Xz<;faVG5^Dq~(QDQl7MQtikV zMqt#_&X^6|&!`1MC60*&7v=azFg_Mby^kX< z(Nd>ly%%1q&BE&ymeAn0@Sy~bjz}u(K=B-&Z`aKu|2GZ5z-fT$KWG3jl?fmM7<-`$ z|H^9P0WW_onELa0BWM9ssF>SozH+kEvr+%$@V%7$697%)yB;_YU>4{n0(+c$$0Tq* z^m}Nz9Z^6Fo>bzC!~q}42EG~iarX`+pn%5FlIOxwc3w6KXVJy1^}%2z;9Q4-a&B!lfeJ@h<|9+?o?`^RRLYieun~P z`5?+|4-1L{y884ECEE5ul-mXhiUPUy3z@4HWv?!>+ z^scDA_wS;ha#K(QP_^J4!lnRyCD!15LC)`2e|9^F97d4 zQ&2!qVb~quf&VQah%D?unHVT2s1oZAbTr`afZpn|{yu1B;NJngl|q4n{;4;*`%VBL zJ_zuT`Un)@PhHM^fYM-4fIF2AD9WGejz3UmGA7v#T6y?F@|7R%rK0sdrD8TJ!Jc#mV{PjKxVG;oFmuM`gG5?H+-7nsga9E0u_j>=V7dW-gW%xblu1D b$a@&;ey;%q4AB4pxWHcpaD4PF_;vMP>%mlK literal 0 HcmV?d00001 diff --git a/test/inputs/~$20220215 ITR Tool Sample Data.xlsx b/test/inputs/~$20220215 ITR Tool Sample Data.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..602da0d4b572b91c7c3e5e1a1fef0bcf5dc5232a GIT binary patch literal 165 zcmd=0%}mZnOwCaU$xO{n%*#_C4)8PhGGsC&Gh{F%GNdx(FeosD0Qsp5xj=p%5Gqg= F0szgv6&(No literal 0 HcmV?d00001 From f10dc1efa26a82e733fc90d4c626fece6d91b7ce Mon Sep 17 00:00:00 2001 From: MichaelTiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> Date: Fri, 4 Mar 2022 08:35:58 -0500 Subject: [PATCH 151/345] Revert "Fixed nan vs. pd.NA confusion from previous change" This reverts commit f3879b34cd46fb6e5df6fd39239ac3dc036c3dfe. Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- ITR/data/base_providers.py | 6 +- ITR/data/country_region_info.xlsx | Bin 28077 -> 0 bytes examples/ITR_dash_app_develop.py~ | 692 ------------------ examples/data/1.xlsx | Bin 46422 -> 0 bytes .../~$OECM_EI_and_production_benchmarks.xlsx | Bin 165 -> 0 bytes examples/data/~$test_data_company.xlsx | Bin 165 -> 0 bytes examples/data_dump.xlsx | Bin 51297 -> 0 bytes test/inputs/1.xlsx | Bin 46422 -> 0 bytes .../~$20220215 ITR Tool Sample Data.xlsx | Bin 165 -> 0 bytes 9 files changed, 3 insertions(+), 695 deletions(-) delete mode 100644 ITR/data/country_region_info.xlsx delete mode 100644 examples/ITR_dash_app_develop.py~ delete mode 100644 examples/data/1.xlsx delete mode 100644 examples/data/~$OECM_EI_and_production_benchmarks.xlsx delete mode 100644 examples/data/~$test_data_company.xlsx delete mode 100644 examples/data_dump.xlsx delete mode 100644 test/inputs/1.xlsx delete mode 100644 test/inputs/~$20220215 ITR Tool Sample Data.xlsx diff --git a/ITR/data/base_providers.py b/ITR/data/base_providers.py index 185a79b6..d2356e03 100644 --- a/ITR/data/base_providers.py +++ b/ITR/data/base_providers.py @@ -585,7 +585,7 @@ def _extrapolate(self, trends: pd.DataFrame, projection_years: range, historic_d projected_intensities = historic_data.loc[historic_data.index.intersection(trends.index)].copy() # We need to do a mini-extrapolation if we don't have complete historic data for year in historic_data.columns.tolist()[:-1]: - m = projected_intensities[year+1].apply(lambda x: np.isnan(x.m)) + m = projected_intensities[year+1].apply(lambda x: x.m is pd.NA) projected_intensities.loc[m,year+1] = projected_intensities.loc[m,year] * (1 + trends.loc[m]) # Now the big extrapolation @@ -640,7 +640,7 @@ def project_ei_targets(self, targets: List[ITargetData], historic_data: IHistori if ei_projection_scopes[scope] is not None: last_year_data = ei_projection_scopes[scope].projections[-1] else: - last_year_data = next((i for i in reversed(intensity_data) if np.isfinite(i.value.magnitude)), + last_year_data = next((i for i in reversed(intensity_data) if type(i.value.magnitude) != NAType), None) if last_year_data is None or base_year > last_year_data.year: @@ -685,7 +685,7 @@ def project_ei_targets(self, targets: List[ITargetData], historic_data: IHistori last_year_prod = production_bm.loc[last_year] last_year_data = IEmissionRealization(year=last_year, value=last_year_ei_data.value*last_year_prod) else: - last_year_data = next((e for e in reversed(emissions_data) if np.isfinite(e.value.magnitude)), + last_year_data = next((e for e in reversed(emissions_data) if type(e.value.magnitude) != NAType), None) if last_year_data is None or base_year > last_year_data.year: diff --git a/ITR/data/country_region_info.xlsx b/ITR/data/country_region_info.xlsx deleted file mode 100644 index a030aa74fc427a4cf42aa71b5275f6ed8575c160..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 28077 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 d{{sI-= ca_bu[0]) & (initial_portfolio.cumulative_budget <= ca_bu[1]) - temp_score_mask = (initial_portfolio.temperature_score >= te_sc[0]) & (initial_portfolio.temperature_score <= te_sc[1]) - - # Dropdown filters - if sec == 'all_values': - sec_mask = (initial_portfolio.sector != 'dummy') # select all - else: - sec_mask = initial_portfolio.sector == sec - if reg == 'all_values': - reg_mask = (initial_portfolio.region != 'dummy') # select all - else: - reg_mask = (initial_portfolio.region == reg) - filt_df = initial_portfolio.loc[temp_score_mask & sec_mask & reg_mask] # filtering - filt_df = filt_df.sort_values(by='temperature_score', ascending=False) - if len(filt_df) == 0: # if after filtering the dataframe is empty - raise PreventUpdate - amended_portfolio_global = filt_df - aggregated_scores = temperature_score.aggregate_scores(filt_df) # calc temp score for companies left in pf - - - # Calculate different weighting methods - def agg_score(agg_method): - temperature_score = TemperatureScore(time_frames = [ETimeFrames.LONG], - scopes=[EScope.S1S2], - aggregation_method=agg_method) # Options for the aggregation method are WATS, TETS, AOTS, MOTS, EOTS, ECOTS, and ROTS - aggregated_scores = temperature_score.aggregate_scores(filt_df) - return [agg_method.value,aggregated_scores.long.S1S2.all.score] - - agg_temp_scores = [agg_score(i) for i in PortfolioAggregationMethod] - df_temp_score = pd.DataFrame(agg_temp_scores) - # Separate column for names on Bar chart - # Highlight WATS and TETS - Weight_Dict = {'WATS': 'Investment
    weighted', #
    is needed to wrap x-axis label - 'TETS': 'Total emissions
    weighted', - 'EOTS': "Enterprise Value
    weighted", - 'ECOTS': "Enterprise Value
    + Cash weighted", - 'AOTS': "Total Assets
    weighted", - 'ROTS': "Revenues
    weigted", - 'MOTS': 'Market Cap
    weighted'} - df_temp_score['Weight_method'] = df_temp_score[0].map(Weight_Dict) # Mapping code to text - df_temp_score[1]=df_temp_score[1].round(decimals = 2) - # Creating barchart - fig4 = px.bar(df_temp_score, x='Weight_method', y=1, text=1,title = "Score by weighting scheme
    Assess the influence of weighting schemes on scores") - fig4.update_traces(textposition='inside', textangle=0) - fig4.update_yaxes(title_text='Temperature score', range = [1,3]) - fig4.update_xaxes(title_text=None, tickangle=0) - fig4.add_annotation(x=0.5, y=2.6,text="Main methodologies",showarrow=False) - fig4.add_shape( - dict(type="rect", x0=-0.45, x1=1.5, y0=0, y1=2.7, line_dash="dot",line_color="LightSeaGreen"), - row="all", - col="all", - ) - fig4.add_hline(y=2, line_dash="dot",line_color="red",annotation_text="Critical value") # horizontal line - fig4.update_layout(transition_duration=500) - - - - - # Scatter plot - fig1 = px.scatter(filt_df, x="cumulative_target", y="cumulative_budget", - size="investment_value", - color = "sector", labels={"color": "Sector"}, - hover_data=["company_name", "investment_value", "temperature_score"], - title="Overview of portfolio") - fig1.update_layout({'legend_title_text': '','transition_duration':500}) - fig1.update_layout(legend=dict(orientation = "h",yanchor="bottom",y=1,xanchor="center",x=0.5)) - - - # Covered companies analysis - coverage=filt_df[['company_id','ghg_s1s2','cumulative_target']] - def f(row): - if (pd.isna(row['ghg_s1s2']) and row['cumulative_target']==0): - val = "Not Covered" - elif (pd.isna(row['ghg_s1s2']) and row['cumulative_target']>0): - val = "Covered only
    by target" - elif (row['ghg_s1s2']>0 and row['cumulative_target']==0): - val = "Covered only
    by emissions" - else: - val = "Covered by
    emissions and targets" - return val - coverage['coverage_category'] = coverage.apply(f, axis=1) - dfg=coverage.groupby('coverage_category').count().reset_index() - dfg['portfolio']='Portfolio' # 1 column to have just 1 bar. I didn't figure out how to do it more ellegant - fig5 = px.bar(dfg, x='portfolio',y="company_id", color="coverage_category",text='company_id',title="Coverage of companies in portfolio") - fig5.update_xaxes(visible=False) # hide axis - fig5.update_yaxes(visible=False) # hide axis - fig5.update_layout({'legend_title_text': '','transition_duration':500, 'plot_bgcolor':'white'}) - fig5.update_layout(legend=dict(yanchor="middle",y=0.5,xanchor="left",x=1)) # location of legend - - # Heatmap - trace = go.Heatmap( - x = filt_df.sector, - y = filt_df.region, - z = filt_df.temperature_score, - type = 'heatmap', - colorscale = 'Temps', - ) - data = [trace] - fig2 = go.Figure(data = data) - fig2.update_layout(title = "Industry vs Region ratings") - - - fig3 = px.bar(filt_df.query("temperature_score > 2"), - x="company_name", y="temperature_score", - text ="temperature_score", - color="sector",title="Highest temperature scores by company") - fig3.update_traces(textposition='inside', textangle=0) - fig3.update_yaxes(title_text='Temperature score', range = [1,4]) - fig3.update_layout({'legend_title_text': '','transition_duration':500}) - fig3.update_layout(xaxis_title = None,legend=dict(orientation = "h",yanchor="bottom",y=1,xanchor="center",x=0.5)) - - - # Carbon budget slider update - # drop_d_min = initial_portfolio.cumulative_budget.min() - # drop_d_max = initial_portfolio.cumulative_budget.max() - - df=amended_portfolio_global[['company_name', 'company_id','region','sector','cumulative_budget','investment_value','trajectory_score', 'target_score','temperature_score']] - df['temperature_score']=df['temperature_score'].round(decimals = 2) # formating column - df['trajectory_score']=df['trajectory_score'].round(decimals = 2) # formating column - df['target_score']=df['target_score'].round(decimals = 2) # formating column - df['cumulative_budget'] = df['cumulative_budget'].apply(lambda x: "{:,.1f}".format((x/1000000))) # formating column - df['investment_value'] = df['investment_value'].apply(lambda x: "${:,.1f} Mn".format((x/1000000))) # formating column - df.rename(columns={'company_name':'Name', 'company_id':'ISIN','region':'Region','sector':'Industry','cumulative_budget':'Emission budget','investment_value':'Notional','trajectory_score':'Historical emissions score', 'target_score':'Target score','temperature_score':'Weighted temperature score'}, inplace=True) - - return ( - fig1, fig5, fig2, fig3, fig4, - "{:.2f}".format(aggregated_scores.long.S1S2.all.score), # portfolio score - {'color': 'ForestGreen'} if aggregated_scores.long.S1S2.all.score < 2 else {'color': 'Red'}, # conditional color - str(round((filt_df.company_enterprise_value.sum()+filt_df.company_cash_equivalents.sum())/10**9,0)), - str(filt_df.investment_value.sum()/10**6), - str(len(filt_df)), # num of companies - # str(len(filt_df.sector.unique())), # num of sectors in pf - # drop_d_min, drop_d_max, # Carbon budget slider update - dbc.Table.from_dataframe(df, - striped=True, - bordered=True, - hover=True, - responsive=True, - ), - ) - - -@app.callback( # reseting dropdowns - [ - # Output("carb-budg", "value"), # Carbon budget slider update - Output("temp-score", "value"), - Output("sector-dropdown", "value"), - Output("region-dropdown", "value"), - ], - [Input('reset-filters-but', 'n_clicks')] -) - -def reset_filters(n_clicks): - if n_clicks is None: - raise PreventUpdate - return ( # if button is clicked, reset filters - # [initial_portfolio.cumulative_budget.min(), initial_portfolio.cumulative_budget.max()], # Carbon budget slider update - [0,4], - 'all_values', - 'all_values', - ) - -if __name__ == "__main__": - app.run_server(debug=True) diff --git a/examples/data/1.xlsx b/examples/data/1.xlsx deleted file mode 100644 index ceaf6c891a3dc4bd8d3b4a711bc15fb8edd1554a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 46422 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 b$a@&;ey;%q4AB4pxWHcpaD4PF_;vMP>%mlK diff --git a/examples/data/~$OECM_EI_and_production_benchmarks.xlsx b/examples/data/~$OECM_EI_and_production_benchmarks.xlsx deleted file mode 100644 index 602da0d4b572b91c7c3e5e1a1fef0bcf5dc5232a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 165 zcmd=0%}mZnOwCaU$xO{n%*#_C4)8PhGGsC&Gh{F%GNdx(FeosD0Qsp5xj=p%5Gqg= F0szgv6&(No diff --git a/examples/data/~$test_data_company.xlsx b/examples/data/~$test_data_company.xlsx deleted file mode 100644 index 602da0d4b572b91c7c3e5e1a1fef0bcf5dc5232a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 165 zcmd=0%}mZnOwCaU$xO{n%*#_C4)8PhGGsC&Gh{F%GNdx(FeosD0Qsp5xj=p%5Gqg= F0szgv6&(No diff --git a/examples/data_dump.xlsx b/examples/data_dump.xlsx deleted file mode 100644 index df6886e5bf0f4b6e89699860e191653436098c2e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 51297 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 OFD}3g4&VQ~_5T6b$zuxu diff --git a/test/inputs/1.xlsx b/test/inputs/1.xlsx deleted file mode 100644 index ceaf6c891a3dc4bd8d3b4a711bc15fb8edd1554a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 46422 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 b$a@&;ey;%q4AB4pxWHcpaD4PF_;vMP>%mlK diff --git a/test/inputs/~$20220215 ITR Tool Sample Data.xlsx b/test/inputs/~$20220215 ITR Tool Sample Data.xlsx deleted file mode 100644 index 602da0d4b572b91c7c3e5e1a1fef0bcf5dc5232a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 165 zcmd=0%}mZnOwCaU$xO{n%*#_C4)8PhGGsC&Gh{F%GNdx(FeosD0Qsp5xj=p%5Gqg= F0szgv6&(No From 97949fb38a83329ee4bb2caed2676a7fd447e04f Mon Sep 17 00:00:00 2001 From: MichaelTiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> Date: Fri, 4 Mar 2022 08:42:43 -0500 Subject: [PATCH 152/345] Update base_providers.py Fix sloppy commit caused by GitHub desktop's overeager attempt to commit test files I never asked it to commit as part of this 3-line change. Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- ITR/data/base_providers.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/ITR/data/base_providers.py b/ITR/data/base_providers.py index d2356e03..185a79b6 100644 --- a/ITR/data/base_providers.py +++ b/ITR/data/base_providers.py @@ -585,7 +585,7 @@ def _extrapolate(self, trends: pd.DataFrame, projection_years: range, historic_d projected_intensities = historic_data.loc[historic_data.index.intersection(trends.index)].copy() # We need to do a mini-extrapolation if we don't have complete historic data for year in historic_data.columns.tolist()[:-1]: - m = projected_intensities[year+1].apply(lambda x: x.m is pd.NA) + m = projected_intensities[year+1].apply(lambda x: np.isnan(x.m)) projected_intensities.loc[m,year+1] = projected_intensities.loc[m,year] * (1 + trends.loc[m]) # Now the big extrapolation @@ -640,7 +640,7 @@ def project_ei_targets(self, targets: List[ITargetData], historic_data: IHistori if ei_projection_scopes[scope] is not None: last_year_data = ei_projection_scopes[scope].projections[-1] else: - last_year_data = next((i for i in reversed(intensity_data) if type(i.value.magnitude) != NAType), + last_year_data = next((i for i in reversed(intensity_data) if np.isfinite(i.value.magnitude)), None) if last_year_data is None or base_year > last_year_data.year: @@ -685,7 +685,7 @@ def project_ei_targets(self, targets: List[ITargetData], historic_data: IHistori last_year_prod = production_bm.loc[last_year] last_year_data = IEmissionRealization(year=last_year, value=last_year_ei_data.value*last_year_prod) else: - last_year_data = next((e for e in reversed(emissions_data) if type(e.value.magnitude) != NAType), + last_year_data = next((e for e in reversed(emissions_data) if np.isfinite(e.value.magnitude)), None) if last_year_data is None or base_year > last_year_data.year: From 0881d09c84453f44725f632d3d1ca583526ddc3a Mon Sep 17 00:00:00 2001 From: MichaelTiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> Date: Fri, 4 Mar 2022 20:50:51 -0500 Subject: [PATCH 153/345] Don't use report_date to find most recent production/emission data New function _get_base_realization_from_historic gets the latest production/emission information. Should complain if there are disparities between last year of production vs. emissions data (we can make it more complicated to find the most recent common year). Also, the name base_year_production in ICompany is completely confusing. We need a new name for "the year of most recent data from which extrapolations are done." This should address https://github.com/os-climate/ITR/issues/46 Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- ITR/data/base_providers.py | 4 +- ITR/interfaces.py | 88 +++++++++++++++----------------------- 2 files changed, 36 insertions(+), 56 deletions(-) diff --git a/ITR/data/base_providers.py b/ITR/data/base_providers.py index 185a79b6..82347d7d 100644 --- a/ITR/data/base_providers.py +++ b/ITR/data/base_providers.py @@ -369,8 +369,8 @@ def get_company_projected_targets(self, company_ids: List[str]) -> pd.DataFrame: :param company_ids: A list of company IDs :return: A pandas DataFrame with projected intensity targets per company, indexed by company_id """ - target_list = [self._convert_projections_to_series(c, self.column_config.PROJECTED_TARGETS) for c in - self.get_company_data(company_ids)] + target_list = [self._convert_projections_to_series(c, self.column_config.PROJECTED_TARGETS) + for c in self.get_company_data(company_ids)] if target_list: with warnings.catch_warnings(): # pd.DataFrame.__init__ (in pandas/core/frame.py) ignores the beautiful dtype information adorning the pd.Series list elements we are providing. Sad! diff --git a/ITR/interfaces.py b/ITR/interfaces.py index e0f56489..76514dfb 100644 --- a/ITR/interfaces.py +++ b/ITR/interfaces.py @@ -356,6 +356,20 @@ def _fixup_historic_data(self, historic_data, production_metric, emissions_metri model_historic_data = IHistoricData(productions=productions, emissions=emissions, emissions_intensities=emissions_intensities) return model_historic_data + def _get_base_realization_from_historic(self, realized_values: List[PintModel], units, base_year=None): + valid_realizations = [rv for rv in realized_values if np.isfinite(rv.year)] + if not valid_realizations: + retval = realized_values[0].copy() + retval.year = None + return retval + valid_realizations.sort(key=lambda x:x.year, reverse=True) + if base_year and valid_realizations[0].year != base_year: + retval = realized_values[0].copy() + retval.year = base_year + retval.value = Q_(np.nan, units) + return retval + return valid_realizations[0] + def __init__(self, historic_data=None, projected_targets=None, projected_intensities=None, emissions_metric=None, production_metric=None, base_year_production=None, ghg_s1s2=None, ghg_s3=None, *args, **kwargs): super().__init__(historic_data=self._fixup_historic_data(historic_data, production_metric, emissions_metric, kwargs.get('sector')), @@ -377,23 +391,19 @@ def __init__(self, historic_data=None, projected_targets=None, projected_intensi if emissions_metric is None: self.emissions_metric = parse_obj_as(EmissionsMetric, {'units': 't CO2'}) elif emissions_metric is None: - if self.production_metric.units in ['TWh', 'PJ']: + if self.production_metric.units in ['TWh', 'PJ', 'MFe_ton', 'megaFe_ton']: self.emissions_metric = parse_obj_as(EmissionsMetric, {'units': 'Mt CO2'}) else: self.emissions_metric = parse_obj_as(EmissionsMetric, {'units': 't CO2'}) # TODO: Should raise a warning here + base_year = None if base_year_production: self.base_year_production = pint_ify(base_year_production, self.production_metric.units) elif self.historic_data and self.historic_data.productions: # TODO: This is a hack to get things going. - year = kwargs['report_date'].year - for i in range(len(self.historic_data.productions)): - if self.historic_data.productions[-1 - i].year == year: - self.base_year_production = self.historic_data.productions[-1 - i].value - break - if self.base_year_production is None: - # raise ValueError(f"invalid historic data for base_year_production for {self.company_name}") - self.base_year_production = Q_(np.nan, self.production_metric.units) + base_realization = self._get_base_realization_from_historic(self.historic_data.productions, self.production_metric.units, base_year) + base_year = base_realization.year + self.base_year_production = base_realization.value else: # raise ValueError(f"missing historic data for base_year_production for {self.company_name}") self.base_year_production = Q_(np.nan, self.production_metric.units) @@ -401,56 +411,26 @@ def __init__(self, historic_data=None, projected_targets=None, projected_intensi self.ghg_s1s2=pint_ify(ghg_s1s2, self.emissions_metric.units) elif self.historic_data and self.historic_data.emissions: if self.historic_data.emissions.S1S2: - year = kwargs['report_date'].year - for i in range(len(self.historic_data.emissions.S1S2)): - if self.historic_data.emissions.S1S2[-1 - i].year == year: - self.ghg_s1s2 = self.historic_data.emissions.S1S2[-1 - i].value - break - if self.ghg_s1s2 is None: - raise ValueError(f"invalid historic data for ghg_s1s2 for {self.company_name}") + base_realization = self._get_base_realization_from_historic(self.historic_data.emissions.S1S2, self.emissions_metric.units, base_year) + base_year = base_year or base_realization.year + self.ghg_s1s2 = base_realization.value elif self.historic_data.emissions.S1 and self.historic_data.emissions.S2: - # TODO: This is also a hack to get things going. - year = kwargs['report_date'].year - for i in range(len(self.historic_data.emissions.S1)): - if self.historic_data.emissions.S1[-1 - i].year == year: - ghg_s1 = self.historic_data.emissions.S1[-1 - i].value - break - for i in range(len(self.historic_data.emissions.S2)): - if self.historic_data.emissions.S2[-1 - i].year == year: - ghg_s2 = self.historic_data.emissions.S2[-1 - i].value - break - try: - if ghg_s1 is None or ghg_s2 is None: - self.ghg_s1s2 = Q_(np.nan, self.emissions_metric.units) - else: - self.ghg_s1s2 = ghg_s1 + ghg_s2 - except ValueError: - raise ValueError(f"missing historic data for ghg_s1 and/or ghg_s2 for {self.company_name}") + base_realization_s1 = self._get_base_realization_from_historic(self.historic_data.emissions.S1, self.emissions_metric.units, base_year) + base_realization_s2 = self._get_base_realization_from_historic(self.historic_data.emissions.S2, self.emissions_metric.units, base_year) + base_year = base_year or base_realization_s1.year + self.ghg_s1s2 = base_realization_s1.value + base_realization_s2.value if self.ghg_s1s2 is None: if self.historic_data.emissions_intensities: + intensity_units = (self.emissions_metric.units / self.production_metric.units).units if self.historic_data.emissions_intensities.S1S2: - year = kwargs['report_date'].year - for i in range(len(self.historic_data.emissions_intensities.S1S2)): - if self.historic_data.emissions_intensities.S1S2[-1 - i].year == year: - self.ghg_s1s2 = self.historic_data.emissions_intensities.S1S2[-1 - i].value * self.base_year_production - break - if self.ghg_s1s2 is None: - raise ValueError(f"invalid historic S1S2 intensity data for {self.company_name}") + base_realization = self._get_base_realization_from_historic(self.historic_data.emissions_intensities.S1S2, intensity_units, base_year) + base_year = base_year or base_realization.year + self.ghg_s1s2 = base_realization.value * self.base_year_production elif self.historic_data.emissions_intensities.S1 and self.historic_data.emissions_intensities.S2: - # TODO: This is also a hack to get things going. - year = kwargs['report_date'].year - for i in range(len(self.historic_data.emissions_intensities.S1)): - if self.historic_data.emissions_intensities.S1[-1 - i].year == year: - ei_s1 = self.historic_data.emissions_intensities.S1[-1 - i].value - break - for i in range(len(self.historic_data.emissions_intensities.S2)): - if self.historic_data.emissions_intensities.S2[-1 - i].year == year: - ei_s2 = self.historic_data.emissions_intensities.S2[-1 - i].value - break - try: - self.ghg_s1s2 = (ei_s1 + ei_s2) * self.base_year_production - except ValueError: - raise ValueError(f"missing historic S1 and/or S2 intensity data for {self.company_name}") + base_realization_s1 = self._get_base_realization_from_historic(self.historic_data.emissions_intensities.S1, intensity_units, base_year) + base_realization_s2 = self._get_base_realization_from_historic(self.historic_data.emissions_intensities.S2, intensity_units, base_year) + base_year = base_year or base_realization_s1.year + self.ghg_s1s2 = (base_realization_s1.value + base_realization_s2.value) * self.base_year_production else: raise ValueError(f"missing S1S2 historic intensity data for {self.company_name}") if self.ghg_s1s2 is None: From d030b8c44574c2f7798e9c9546a9f4840abe5696 Mon Sep 17 00:00:00 2001 From: MichaelTiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> Date: Sat, 5 Mar 2022 14:59:01 -0500 Subject: [PATCH 154/345] Update environment.yml Fix typo in openscm-units declaration. Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- environment.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/environment.yml b/environment.yml index 6ae5456b..1612b1b5 100644 --- a/environment.yml +++ b/environment.yml @@ -93,7 +93,7 @@ dependencies: - notebook==6.4.0 - numpy==1.19.5 - openpyxl==3.0.9 - - openscm-units=0.5.0 + - openscm-units==0.5.0 - orjson==3.6.4 - packaging==21.0 - pandas==1.4.1 From fa1e505c6aea97e9af358a9edc7a9dd5eca090e9 Mon Sep 17 00:00:00 2001 From: MichaelTiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> Date: Sat, 5 Mar 2022 15:03:05 -0500 Subject: [PATCH 155/345] Update environment.yml Fix typos in pint and pint-pandas declarations. Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- environment.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/environment.yml b/environment.yml index 1612b1b5..ca98380c 100644 --- a/environment.yml +++ b/environment.yml @@ -100,8 +100,8 @@ dependencies: - pandocfilters==1.4.3 - parso==0.8.2 - pickleshare==0.7.5 - - pint=0.18 - - pint-pandas=0.2 + - pint==0.18 + - pint-pandas==0.2 - plotly==5.3.1 - prometheus-client==0.11.0 - prompt-toolkit==3.0.19 From 0b73672361bab2736a6b14cc5d7fd06d4b5a68e6 Mon Sep 17 00:00:00 2001 From: MichaelTiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> Date: Sat, 5 Mar 2022 20:48:21 -0500 Subject: [PATCH 156/345] Update interfaces.py Fix wicked typo (wrongly testing year instead of value for NaN). Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- ITR/interfaces.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ITR/interfaces.py b/ITR/interfaces.py index 76514dfb..a39f80b6 100644 --- a/ITR/interfaces.py +++ b/ITR/interfaces.py @@ -357,7 +357,7 @@ def _fixup_historic_data(self, historic_data, production_metric, emissions_metri return model_historic_data def _get_base_realization_from_historic(self, realized_values: List[PintModel], units, base_year=None): - valid_realizations = [rv for rv in realized_values if np.isfinite(rv.year)] + valid_realizations = [rv for rv in realized_values if np.isfinite(rv.value)] if not valid_realizations: retval = realized_values[0].copy() retval.year = None From e4878b75e52f3235ef644b1486a33eacb0679aa2 Mon Sep 17 00:00:00 2001 From: MichaelTiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> Date: Sun, 6 Mar 2022 04:24:21 -0500 Subject: [PATCH 157/345] Update interfaces.py Fix method for deriving intensity_units. Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- ITR/interfaces.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ITR/interfaces.py b/ITR/interfaces.py index a39f80b6..494dd6ef 100644 --- a/ITR/interfaces.py +++ b/ITR/interfaces.py @@ -421,7 +421,7 @@ def __init__(self, historic_data=None, projected_targets=None, projected_intensi self.ghg_s1s2 = base_realization_s1.value + base_realization_s2.value if self.ghg_s1s2 is None: if self.historic_data.emissions_intensities: - intensity_units = (self.emissions_metric.units / self.production_metric.units).units + intensity_units = (Q_(1.0, self.emissions_metric.units) / Q_(1.0, self.production_metric.units)).units if self.historic_data.emissions_intensities.S1S2: base_realization = self._get_base_realization_from_historic(self.historic_data.emissions_intensities.S1S2, intensity_units, base_year) base_year = base_year or base_realization.year From 61837f22d6889ca0326a72074e573a3f69055a5a Mon Sep 17 00:00:00 2001 From: MichaelTiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> Date: Mon, 7 Mar 2022 11:29:58 -0500 Subject: [PATCH 158/345] Add many more dependencies since we cannot (yet) depend on PyPi. Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- setup.py | 30 ++++++++++++++++++++++++++---- 1 file changed, 26 insertions(+), 4 deletions(-) diff --git a/setup.py b/setup.py index 82f9983d..f615f382 100644 --- a/setup.py +++ b/setup.py @@ -25,9 +25,30 @@ 'SBTi': [], }, include_package_data=True, - install_requires=['pandas', + install_requires=[ + # 'ca-certificates', # ==2021.10.8 + 'certifi', # ==2021.10.8 + 'et_xmlfile', # ==1.1.0 + 'ipython', # ==8.1.1 + 'jupyterlab', # ==3.3.0 + 'matplotlib', # ==3.5.1 + 'numpy==1.22.2', + 'openpyxl', # ==3.0.9 + 'openscm-units', # ==0.5.0 + # 'openssl', # ==1.1.1l + 'pandas==1.4.1', + 'pint==0.18', + 'pint-pandas==0.2', + 'pip==22.0.3', + 'pydantic==1.8.2', + # 'python==3.9', + # 'python_abi==3.9', + 'pytz', # ==2021.3 + 'setuptools', # ==60.9.3 + # 'sqlite', # ==3.37.0 + 'wheel', # >=0.36.2 'xlrd', - 'pydantic'], + ], python_requires='>=3.8', extras_require={ 'dev': [ @@ -44,11 +65,12 @@ "Intended Audience :: Developers", "Programming Language :: Python", "Programming Language :: Python :: 3", - "Programming Language :: Python :: 3.6", - "Programming Language :: Python :: 3.7", "Programming Language :: Python :: 3.8", + "Programming Language :: Python :: 3.9", + "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3 :: Only", "Topic :: Software Development", + "Topic :: Office/Business :: Financial", "Topic :: Scientific/Engineering" ], From f75da5cc692c306bfb56dfce1087ee2074073501 Mon Sep 17 00:00:00 2001 From: MichaelTiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> Date: Sun, 6 Mar 2022 13:46:37 -0500 Subject: [PATCH 159/345] Update template.py When 'exposure' is not given, set to 'presumed_equity'. Should this be just 'equity' by default? Also, change style of call to replace for clarity (parameters instead of dictionary). Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- ITR/data/template.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/ITR/data/template.py b/ITR/data/template.py index 9f48af20..399ee615 100644 --- a/ITR/data/template.py +++ b/ITR/data/template.py @@ -125,6 +125,7 @@ def _fixup_name(x): input_data_sheet = "Test input data" df = df_company_data[input_data_sheet] + df['exposure'].fillna('presumed_equity', inplace=True) # TODO: Fix market_cap column naming inconsistency df.rename( columns={'revenue': 'company_revenue', 'market_cap': 'company_market_cap', @@ -210,7 +211,7 @@ def _company_df_to_model(self, df_fundamentals: pd.DataFrame, """ logger = logging.getLogger(__name__) # set NaN to None since NaN is float instance - df_fundamentals = df_fundamentals.where(pd.notnull(df_fundamentals), None).replace({np.nan: None}) + df_fundamentals = df_fundamentals.where(pd.notnull(df_fundamentals), None).replace(to_replace=np.nan, value=None) companies_data_dict = df_fundamentals.to_dict(orient="records") model_companies: List[ICompanyData] = [] From b8fa7a3b4267b1db72cb344b0dc0f2daeeea0c2d Mon Sep 17 00:00:00 2001 From: MichaelTiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> Date: Sun, 6 Mar 2022 13:53:03 -0500 Subject: [PATCH 160/345] Update data_warehouse.py Trajectories are computed from historic data, and our extrapolation methods fill in trajectory data with historic data in cases where there is a ragged edge. Targets had a problem with ragged edges: the start of the target projections would be the earliest last date from the historic data (say, 2020) whereas the projection itself wouldn't start until after the last date of historic data (say 2021). These changes fill in missing target data with historic data (sourced from trajectory projections). Some test cases could be written to detect how much trajectory data should or should not be consumed when constructing target projections. The real underlying problem is that when computing cumulative targets and trajectories, all companies must start at the same date, regardless of when the targets actually start according to the target data. Also, fix a few more emission_intensity -> ei name changes. Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- ITR/data/data_warehouse.py | 36 +++++++++++++++++++++--------------- 1 file changed, 21 insertions(+), 15 deletions(-) diff --git a/ITR/data/data_warehouse.py b/ITR/data/data_warehouse.py index 9f7631be..47d06a9c 100644 --- a/ITR/data/data_warehouse.py +++ b/ITR/data/data_warehouse.py @@ -32,10 +32,10 @@ def __init__(self, company_data: CompanyDataProvider, :param company_data: CompanyDataProvider :param benchmark_projected_production: ProductionBenchmarkDataProvider - :param benchmarks_projected_emissions_intensity: IntensityBenchmarkDataProvider + :param benchmarks_projected_ei: IntensityBenchmarkDataProvider """ self.benchmark_projected_production = benchmark_projected_production - self.benchmarks_projected_emission_intensity = benchmarks_projected_ei + self.benchmarks_projected_ei = benchmarks_projected_ei self.temp_config = tempscore_config self.column_config = column_config self.company_data = company_data @@ -58,23 +58,30 @@ def get_preprocessed_company_data(self, company_ids: List[str]) -> List[ICompany projected_production = self.benchmark_projected_production.get_company_projected_production( company_info_at_base_year).sort_index() + # trajectories are projected from historic data and we are careful to fill all gaps between historic and projections + projected_trajectories = self.company_data.get_company_projected_trajectories(company_ids) df_trajectory = self._get_cumulative_emissions( - projected_emission_intensity=self.company_data.get_company_projected_trajectories(company_ids), + projected_ei=projected_trajectories, projected_production=projected_production).rename(self.column_config.CUMULATIVE_TRAJECTORY) + # target projections may have a ragged left edge if historic data has a ragged right edge + # we can use trajectory info to fill in--it will likely be historic data in that case (the first ragged year) + projected_targets = self.company_data.get_company_projected_targets(company_ids) + keep_target_data = projected_targets.applymap(lambda x: np.isfinite(x.m)) + projected_targets = projected_targets.where(keep_target_data, projected_trajectories) df_target = self._get_cumulative_emissions( - projected_emission_intensity=self.company_data.get_company_projected_targets(company_ids), + projected_ei=projected_targets, projected_production=projected_production).rename(self.column_config.CUMULATIVE_TARGET) df_budget = self._get_cumulative_emissions( - projected_emission_intensity=self.benchmarks_projected_emission_intensity.get_SDA_intensity_benchmarks( + projected_ei=self.benchmarks_projected_ei.get_SDA_intensity_benchmarks( company_info_at_base_year), projected_production=projected_production).rename(self.column_config.CUMULATIVE_BUDGET) df_company_data = pd.concat([df_company_data, df_trajectory, df_target, df_budget], axis=1) df_company_data[self.column_config.BENCHMARK_GLOBAL_BUDGET] = \ - pd.Series([self.benchmarks_projected_emission_intensity.benchmark_global_budget] * len(df_company_data), + pd.Series([self.benchmarks_projected_ei.benchmark_global_budget] * len(df_company_data), dtype='pint[Gt CO2]', index=df_company_data.index) df_company_data[self.column_config.BENCHMARK_TEMP] = \ - pd.Series([self.benchmarks_projected_emission_intensity.benchmark_temperature] * len(df_company_data), + pd.Series([self.benchmarks_projected_ei.benchmark_temperature] * len(df_company_data), dtype='pint[delta_degC]', index=df_company_data.index) with warnings.catch_warnings(): @@ -108,14 +115,13 @@ def _convert_df_to_model(self, df_company_data: pd.DataFrame) -> List[ICompanyAg pass return model_companies - def _get_cumulative_emissions(self, projected_emissions_intensity: pd.DataFrame, projected_production: pd.DataFrame + def _get_cumulative_emissions(self, projected_ei: pd.DataFrame, projected_production: pd.DataFrame ) -> pd.Series: """ - get the weighted sum of the projected emissions times the projected production - :param projected_emissions_intensity: series of projected emissions - :param projected_production: series of projected production series - :return: weighted sum of production and emissions + get the weighted sum of the projected emission + :param projected_ei: series of projected emissions intensities + :param projected_production: PintArray of projected production amounts + :return: cumulative emissions based on weighted sum of emissions intensity * production """ - - df = projected_emission_intensity.multiply(projected_production) - return df.sum(axis=1).astype('pint[Mt CO2]') + projected_emissions = projected_ei.multiply(projected_production) + return projected_emissions.sum(axis=1).astype('pint[Mt CO2]') From 04fc467bec113faac9e67d879bcb1c09982f1396 Mon Sep 17 00:00:00 2001 From: MichaelTiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> Date: Sun, 6 Mar 2022 15:12:27 -0500 Subject: [PATCH 161/345] Add more rows to Sample Data template spreadsheet Doubled the number of steel companies represented. Also added some big electrical utilities, including Southern and Xcel. Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- .../data/20220215 ITR Tool Sample Data.xlsx | Bin 79197 -> 82365 bytes .../inputs/20220215 ITR Tool Sample Data.xlsx | Bin 79197 -> 82365 bytes 2 files changed, 0 insertions(+), 0 deletions(-) diff --git a/examples/data/20220215 ITR Tool Sample Data.xlsx b/examples/data/20220215 ITR Tool Sample Data.xlsx index 70923261219d44548e4c53d88bf2d369aa2785b0..5d03398a33d0ee91ed924c93fe007dcac611a21f 100644 GIT binary patch delta 38330 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%0DgG)tEwr;%Mx>QNgtIcnk`v=uCN$svOmq`- z*nRL#>{f%EWF3P!^JH*kDqWmB;56Ukjh?wv&LmTTe+10Mb1Q-za#}eNaVV}!==1gI zA!408nyz3gu}giOuI>*dfin#dWarkuOw||&PHMglcvK31$Shmv)_qdF zjxvB(gpCV@y|ip5br?b8qBahKDsk12f~x=LnZUe;TQHp6{p825pq8YVwsr!h)|xJN z#)Z@DDMppjPs`)N2r{`_Y=e~qweK7W&3b}4?bJP8ckJ?G{e%d-$v_YSZ;`234T6JH z+!uujkT+CnyR>(Z@n__H5!>b7NsG(v?9h%Vm@^G*o8|mPQ&1}+7XhlG6-;A-RA7VG z89DO$J7MjH~;*M{#ROh7mq7bRg>>b#aKQTk<;7xSYzN>!jy!!t;J3a@cDR z6uGs}ZnzA6Yp;Ld6@1ZZmA|Z94r}gU@wky|f9pZ{37Oi_#wq-c@yUJPN&7IGVt+o} z{4(maU|VeTv@cp3yGcC#IZ;(TST$bNhUXVCbAL5j;Y`;hx+CD0g%}n4eqykD{SO1z z#Du{nDxhGm9o?{qX6&D#c)j;B-9zFbV3rBaW2}0^o1FKj6mOSt`1V!ZvCG$a5#Vk@@|3JOZY>MO7pp;zXkIOs1Tb`}pPFu7dXq)6s%9Fzi0cY5cNx0uHMs~7}UT&8f z<=zaF)6Oc^IP$Z3)_&v(JanQb1@N)lQgvk>@vWyYafq|8Y@~6C9s#$b^>_3sbp|WU z%c&_%b3=<|kElZW4oNk;Ur3^}VpmIQD87YgzNE=W3}`u{d#Vip|(zccWMxa?unkQwlS zO_eH~xw(On6CjV2?*Owhl#uAYYgFIOO%Ph~Kr>2RvIRXu{$)e@Am=#*pL+Ok<&odM z>yqVwN_D9C$`6;UP5D3bHxYBAhh!DK7YhvkzL(7CIfI$h>dM}*8%o+l)}E^Mk&_t> z2J@v6wPRhY@%uk5Bq7uUF|3wo037o7zS$$VuaL;0x&RT7FO6JEMErd)o+FaL5vV7= z->CCw$jwgp_b2+royI(wHun3Zc8{uHzU^7+WQXikto5WsuqoUsapT909zT5K zqjf2MPxbNG>~*2Gv>E!~=JOT_hG%B!XrouT+4QZWE$*(Qt4~fwh{op z)J|T$<4oQPzna?^b6noK>s9@+^~8BU%8f6sbFu+Uw*+Nz^Qc|xoN0ug8A8-A-8#xd z)D!TUKO8S|G4#Oz{JAz2x)*X<%rsid5As9UYGx&BBM_5NIK8(3E59Ct= zKT3cx6uG}Cx8tm3VI)x{vu9--Bx%s3tY>8}q82T|n=-=8Lu5XWuGbe?Ez+HQk}&W@ zMW=WnfkW9h_5{GowLRDF7XORb+}J{Cmk1>QDkMfW$Z5<{u{vqOCe_`0DfGqplb5>E zk+A>xOu#goe$Qb|?G4~!nnCBRCzPr{wgQHK-=b|2OX$V?%Me;s=q$?EOtCZKr(59C zZs)1WH1%-a;lZsM8GQe=E~Xu{Yf0N@aC>^=H`n|!hm_`B~{1GWFX2VkZakE~t}GtvKD0Mi3f4H3SQHQxfZOSVq{cwN4J_wW?0%3y- zJc4ES>KF|CxHIxM;iF9F;t|94$-EMO1Mk#w^4Vq}ftg+zXbUiJS;4 zSd1h+@)nGwDHC8Dhh=?%PXZeWkHDLgUWxfaey~7@lK_gj3II`1TF*x!7yRDPM)VF8 zrmPka*N9K!Uz|NffVRSH|0|J6vnSTe=-kXE-nG17M`t77$BxrmJj(;W3#DO&?eRJ4 z^E+z_e?wK3ra9?+*`-VPQ_zD`$!|8lKTN{bk!6tpJu)8IJ+G9jiOusg!7|F<1I)E$ z)*{=Sk$B+r0gw;eb`^++P~v@?PnXJ^(?FWdNrab!s0}`EA4r)c`eEm*PO2rpV0dk( z=`9XAI4aItF5IBvMg+@Eg+ecVZ2q=fe?tG3gdX-oG#{^{or0e-yzfuAI#OkyPkCFU z$zQM{NYR02A&8V|@&l7T7H~GB7T`j8*7R(Xt1Zpy7SL&&5lERP8~BKk6Lb#S|7ejX zOPTqcIChc|N9WRm+G?dlt4HQ!Zkr}errP4)*A|1xqX$9dY0+?SpM2c>Eon}7EyEAQ(3ol zn2F$O3QX}uly6OR%<5qCB3CGJvwYS+^>ht9AS2<9vzg5=A)yY~m=Ru%%lHdT+Q;$Ngp_6TkY?vSBx&HQVOkK;0<| zlv)r&Lv_3v(Pf@7d7oT79lB9FVNZ&6x-N&0j@m8b;5UZ1YaUrAB@fTms8G8Q^~jx) zIp+v*)D`DmMlY@3?>ii92gApr`(zaW>n##? z_;SfTP+18u>#~&??ERD5i86k|-iXcr%Oi9jya1nP(O%%`E;fTom|?Y>l!~L>5vUn1 zEf_}B-oG=$E_U!zTil%1Ka~?0jXsO+$xehbogUdvI%r$Rc!G9fcWcSS%UY!dCL9nr z)`y8=#C$vy7^xo|Eu?3Y8>rhNUM+CQBFsZF`1psPhZ|(a4iMyL`1#YHH1lYr1{2yQ zn&PMVH_*nya#&f#+qb?5xxoJjd9<~O;v4HJ$tIz8(jbhPi{?e<3+FN??}`l7W>A~$ zafK<)r3Q=WMUCj+C$9QD*Dp-aEv z7SC|=*y(U2QJ2e_Y0m@G$0Bn*OZJO3?mi!`c zTSQjU<=l9m3#~mFP^z-AN?{>5mn4yghzjk!Bc9`1JM~es@R#3vq8L`F?^L<>e>vcI z=YBbOEXt6`4{~J+Ouo=dzVx0;p_YezbjtW8uvor<0hn@7-*-Nd*h5OC`So9hGLF{o z9tGPFb)R=LK^}m2!9eQ_1aVUsde{*{rF=18Q?xbTwE|+`H=?SmN!b%yoP$*-k#Gvt z*E9h=oG`1h60jZcr9qty3@sg9_}{MIfb+{(bpsn1UH(@RNun<4Kv7AMzy%pdr| z$E9az468KwiM;pxu%D@Dmt`t%*kO!@Lzkxyo`f-Omstd_s%~D2t^2KLwq)`c%w z9_dR#gg{2Zwm|xl!Vf%D^-fMS!F@me`}F<$wvRX-n6 zKLFxadbo0j!8CRQQH!trqYc9-2Y)%u*|J+v=S?o-on71cp{HKKaa31b&(C@K56Wv{ z89Adrbb~G2(_D|swnb{rCu_EqOo)l)3MVe}bEoMp6P(hr2*$BK|2trX$K&Q@J;u;D zuSM-L{rsqTIOk2uv#4dABkw%n^PmX~PGn^dw9mf?mQ9IXGV=`l-i(!*Se8Cm|6)qn zuQp%1T0D4B=y|FEN@>!q<{MG#_22p@g7IFel^-eYK!={V1?rV?y)aAVw3Dd;13UBGnBgF+&aa!t5@ad=) z+Wmp*Ij%tOQtWEeRYWvs?g>A0H9=RL$vN{_n2E&@iSG>_L&^BAi>ZAQuAD&yrYHG; zFW$*c18P|)w`0{@pcxM@>FUqX1hS;EUN!X5k0T}TIG4t_IfuHuP-E1UlL5i{2*!n* z`d3%+Jdt00K6vNgzDggEJibY)*~-)9O8EJ5qV^OcL7JQreEC2Y7{ohJ)h)$(n~ca` zO6dV|3?to4J{_){bb=1)v?W($T~6_ba&cq!PobYnJEbYkarnrzcI!%9*lfx-(tv1Q z7B>a#&0ibncyUg3`f(URO{4#&hdT9^6I+1pCwi+GuORbcN*w_9DNnwvDN#Hjen8{=$$DYMtn332gRfkt_%++{8nfC^>d zqbnJ3*aX|avw_a_Qsj9(fTZxsmk%8@2yU^d)M zQtJJXRWzdREDBJ`bh};79TuYy^Sfa*T(yU>b%RW{^VM(l;H2H)({A_D?3Dk@0=){gYmX>mLg<77dU_ncO~1j!>R3EI1& zXoFQC_qFVzh>FUT<8rikIz-@GICl%g*aFOk@nMsh?+orp{*+-0CX=y!Uk$^jtB9VP z!9D|{sIaL4RKzSbO#_N{ifw9C0&nU@7H7hJ}B1V67_(Ct|N^y?)_r8hNdLkhbILb7FTSYpnGow?_T0Qv?LeJToKG)T%t zkqZi;f$M^5=xx@TSDZ{m(<;@XenVxMy#l8{hMdU(8zwhKAhO4de9SL$=JGsBAspyE?@e9& z<*lB*ap8@!pklSjh_^C0AAzRISn481J}1yP4l}F`Y~{?>@*X13kl>9LfBK<%#xIt5 zXJSZCdgPgZDJdEsBz$5cUDc<3rbX7eNEg7otB+zUzV9}BFtEl}Z+4-TvL!geQuArQ z&#^fVQfo@4ve7yLQ$f|TmH70dA6H&|Xb=G|(h?Itn#OOXJI>R0%a%4=^^mo4#aP&@M+*b+dE9q9dEzVnx^L2DxV-e2 zHOQ6NM=l)o7?xxE?*Fh-!doEF%d#DK{#@!OmNd0fy|*_wdp|%R2s)~oMl$&D8S*-l zw)v@^usa6c)xw> zhPYu!U(sxir%m=P)^6LEKn8wUef?7OIOUYMyVo}jM${i&@i$X-DrL!53${>5kAPIF zLEyH}VO_H8m9cqF-dl~_wooG~D5NunKV9A-T;cb&o|JY{%tLHW z2I)gV+s$4TZyU{-;N%JK`$O%rLovLUNoErgO}jb*0}dcmhiLNn8$R~T5_i$NK*z5i z;>LHueZnUZ^_<2zS0mwL=Su1Lr_~*%(8xbDwdql!&P0ndM`Z8}OwHiREiS{@buQP`UljgMLS8Lm-!UyEajy!kI*6AQ3sJw^SFZ_bC@Mci9g-E z%vX9}Wt^iJz`O{e%bQ93kzt=ygvQUIzV-_qIShg9wIp*laQ-A{q;IdQu?FJ0KT;F- zNp@+6|ApHSx+7!^M++YR_!iG2q8Z};2%C~nlxw<}MaVqr(8)=-nGw@auNTIQ7Bp+q z_Zgz@GXi)MB};fuk&-~V8CbYt#f`k*Hq9O3)_F$l7q}Ey^Zw5iHD-!RMp7Z!nI)B z<0#f|^GkUKBTy`UV;rA(ggYQ12w~N}YW5OJ8PR*>hS(-ppN$|Bx(0%Rx zPSs}_IDj@KC^$74SMwfx9M}vRW#d6KB|rlbYhWw^e_4#=DN|AH(4udRdSEXFbHcB4 zoL}*(vRye{$tv_01fDf_-Ogx=>jiH#ZP^JgBKlE1WcDbop=&+WgUg--nvnua5+QLJ zW)eUE%*GBr>C!7&;re%Pc@K0iY*r*eGr<78;OO=vDLcw}mO1bc zxJWBG^OqzU4Gs67ptWW^!z0MzT&@!W?&E}J2Cp-69NT$ZsU zbi=>+0kvQWs|MAbjj%=*cwKptSkhOsQosJeCK<^_aX;+t9zn0>Rz9O%hdao>JOLz$ zJE24vQ5AA1#pxF*p9!89dttWso+Jj}oEtNDs#Y@38)HiX=EX`JRh?ea)Q?(Qo zY!~WyTV+>S2}9So>KvcTy5=#xwt3l3i$Zu&T6=wB7KyWU#omDRJ@;pU6BUI3 zz7z}UitEHUn)8GKIVv`xY!qQQR#LXpP!YqN>=SE;)NYEslS?d5_PP3>D5$`;=oREc zH?py&>&!pQ2DE`W^H-1ooXp72@Q6jmE{2P5%%j^D^wx!Nie^+iO_7$$GgHP{ zmy+^f>*-JSQv1y}iEs6^MR1o(ow!?&+or@G1#+@vM{!PtdG8WJz-mQtNr4h1Hlh%w zJhQnZ6TmE{T!>ucTs*2(niscs(Muis)4rt}6| z1q6nbQoi+2Q_)Q>;ES)di{6DhZF*uX&2^)@`jjfH7 zJJ{H^jg4*FxntYr#izJ%AEs)m=A7<6*YxS5o@+)6$WFP~zHAZY zF8-yNmHCF_jj4sHZeA6B=l?KN>Cb=_Co4E%jOltzd`zaN4DxUz$k3q0sgx2Fi#Hv& zV$aQoF1vZC;ZAQ6x>3NBhF?is+!UEao*y}L{pDCM-^Zs^Zsf-ht z060_=3J0?FC=NSQKyjn%H#7EkZpj}E2uAw{!$_@vu>i-$c498Cm+gUN zg4V+agUuV&Mc#fY*i7#)i$C$6jz>Te3!pF1;zS%pni9Md!(^jjvz*vWVs9)^rRu0V zP`*z~#G07wJiqbC{Kmr?0P>m;^z9Oz-4cOZncD`P??_7t#5jjJ9TWG&6kKKR}#H~F-bb-LWjEOO~EYH^^NP88)@{_Wi$PvYo$ z1WsgIX+cps#qz$QCJ0PG{knt8F_Iml{D_v{8}E&|OaxvI#iNy~;@3`kwPpx5`*1?T zb>)fMC4OmLeOQ`tX(8kD@SJsvb1Z(R_<_r@YPa}9usL7R7B&i*Y#s2}jx8ZXD16RL z!5scpT}g_hgE4oj1YAtjmm_dZl^3f;j5_h^NLfq%AoPz%mWjBt3Vj{Qd-VJVOv)a2 zTo*$Y{Q{B`?T|4YC}B!s42Dv5lVO57UItgx$A0xVLZ^Wi|6`%jfd3U^x6g>kay)y& zx%IJ~__5tcT9VVGl0{;}l(!p+cN%OH>QN#wD5tEZN(_4dHW%RhGt#BakC@B?QJNHb zF^=w#&buvda0t&lEuWLzr!vv2B`x?4DkEBLG8$;7NfQYzqh*&T^TP$5g=+$;+v@fV zK^vWpE^&X5XiR3NV7-wNLd?2oSL&IP9K~wO8X@j?jnj1W(jyC$le)uWL6ZBd-8F7( zoSkk>vXqZv#U`oBKOv%DgPTPZhm_)i<`Y`g(AHNUURPCLpOa9;dah)V8>LgJ1mUW- z-IhRta@=PM8xjm|nZ7}0ILJvqC9+omw}Kh>Bx<!B(_Jhz_CG-!2Lko<UMpo)9feP%gb3JL16 z+sMQ5X@Go)sPZOB^G}(`(iWXHF$TB^(Kd>^{$|cnDg!+f3!QqK&k*q@!{zEs^`oEw z!p56B8Oeno*M~xoo9IN2r5<)|f8KoEk$-a?Ip(cS?yhB#pi&Of@{W0zoBgOV_Ut3n zY3`~rB6)Y?QETB&Py!B@7DiHHdP=-TIAOVQ#`!0lBpWZcYKWTd$%V@J&?&IVyE-WH zqzFg%7OMofpe?PTE;V^h8PLMhJ?DEA`(^ovq!}f3m|`X_gmuh!=@9j9E%Aa;lK4mS z5nFaOlmjC`%xy$!p(}ICVI5pbBVG}SN-E=w*r%2r{-ZOdijC=!{Z;`k2JMWkKUerh6C1&FgL=HiW%T*w6Baw69v z$5Cf3P~m+ujXw#(2!Rxhiv`$c{y6-mw8g9)P|fTEmEg)yng_j%%r=fcXUah}(QLw+ zMYs!iXZ=qkoJl+>xy)3!kzW)3tB)TR5)VEaQRec~h26-CfFp5pIm&}85!_!*r7E0F zM5};cHs?gZnT!ji3oV$hOjG(~(VY*Q-BA8S?TDFYA;^XNiatr1n}7jSK36`o9a?&Ma4?1JI{turJ5esc zn9VR3ZX{nrxeWgyB3^(tt0kB$A3lYn$_Lrz_YK=fLE2(BAf)(tz)DXW+?9Fa&Dm7& z4#mn``u|^*dzQ0s&Hp!VU@_#Wz<~hEb^*2~w2~X5wOxn?^c1Z$5^urXaDusLBgGoB zO}MLwR{{8J{E5hen!<gf1cb~2B=Hjw8_4=UdZa8>t^e_?_~tf#A-@s`p@Kog zt06?Fm1UH>rkd?@=(EN!ucMnceRUfh3vsmrsvute@@>0yJ2|B35V{}nD3zs+7#%!9 zkK}Wrz>c#szTNsPX8shn$fD#x6n{rbAnt06JcnmQ6WT8+eNx0;~T&2uSHAHQkh~{KDOC}k;*3x(i zXbU)6r7-$5o|1$no<34wq1G^;jP&6F4fpWLyuDwb==xrGl-x$sSY(cqFGThcbtH+> zajMXgzv=*<1_Ot=BLPSW(YQ>?^qiY@WMb31?!HZT@1l0~niF0FqAaJA!|H-|gs;2$ zop2Psjqic~t#f%wV^O+1HSA!EVPx4~VEn1hJ2j{&9vwGX?I|y&Ge%PSuhnkK_fAsv6Kbmm@Eb9M3t3fdW&UVP{e;}6o z>3?FqNR3q3uLwjV{%$F=Sg$?@cGTOYYMoZr6~M=T7=~{NmF11W%HGn?mrP0mQC|Xk z?+1=<FV2SS|#5v?wHZ5;xi zwZ?W93WiG>W$w9>AwHF9F_+rOe7Tt#ucI?WFmRV}2|7DyOhv}F0u<++<$A3sz@ysT zuZa+AauAIcNIFwLe2P%33FdqL<3#zt#3(vCv7{|1?=(YvgN&5~j@^M>kOexMmQ8PH z&;y~J96!9Vj;}+3%+@~!&(87#E&>f=r8aq$=Zzayl5)F0_Luc~dVF6$4_{AXx4-TO zh;j)x29UNt9}jc4`+GhnUqg>e^inE-di0^vliv^cdA;FNzr3$PONRM#a|wYc6Y&N^ zsP{q))j^$NVMKP?P2F^Yly%J8e)s`=$_nb5o{@QdSSi3aRAJyhNH5%_#8Wavn@u_1nV zRCDLi@-_j4RkUA8!KXO#eSL1Z?)iFpedhQ5hbrN$HAH`d+k!H`ITyQt${ev4hJ&@8 zq-j{_68Dr#4Wo2{$U|+*P72j>_hAt2Y~4=CbS+e1Pna_b?SATiS>b;Ayn=xA!A5Fj z{VgUFrD2?cv2Y~{J5%=c-PN0rK{1>tyL3k)z72@OI6}*(huVbiK+gh$Z`lWHdZii= zrOg)l{z$^^#n(-r>d(5|$L$l9r?sXHJ$)aH8=&P8oyYfsq`PnV4xJzA@6oJo2{Gg@ za)*a!Qrj0oH(nOrpf#Fufx|w_eqbx|ay9reQF3PISYkwB3uD5Mtg1t%`bAPL6qWj5 zBMKmEkhN%BtT2iJjjwKP(OeXVl7%a#`0eaJF~tTP58t=9cP#ezCQfJm$=%$K*w|fu zUFT~X1{m@6YNPgkmks^{+*}iCc~Ya!bGg8sx~C6W5yXp!<3@+NEw%y21#CJ z41n{5a-Y{NCC2X1BONI=`{!*JK$4>gjj^IZYxB^1d@V|5i*4kOw2CG;xL)wO+Rq5A z7mu=jzj<7(uPq+GI&3F_DNfjbyOc*F7iNIyhAI7h(FR&vtuAPT-^B2h&7>bob|lk~ zWKEv&5W%(eNo6vSkC?2u9m+}j*)~7Tu@^p?z@plFd_!VIcy*UCLAGW~D9lL7DNT=} zy4$?uNO~~f@WFP&*8g@VDnM>mSRe{iNn}X2mG)4jXHX8pU^I!bS)I6h&~I!VDPb4^ z1RHq?h;5NEhx@<(mI4!4Ev+gH_)~-?g@&dmDr8|;O8xUl6+a|Ms_BkeZ*4!~H>I{{ zQcD|P;m05bh6=iRURs{BQ!*YdO(YpK+)y!Hz34Lx>HN0^WaAL~Z;^gu#_7PFX88cP ztP2zYNLYzoC#GbW8;<#du#~%Y&X-mBDz`2#>mSwd@l{1l{4DznudeuSZA2YEh7Tjt z{3`=2-}jeRl`LpXNYW)`aNx;WDm~NTWKtGv15nOeeeu!*I^9u_86er64XL_J52>^p zO_LDbezU;nQ>IJRh5JCR%{@kyw4pj#iOd8FeB(5^c%SiH<`| z3(&(VfjC>$g?SO_79o@m{j!2(4*;qT{As^UrE7W=lGQbdz_e|riF4pS#w3ALU4*j z>WdRfaWbSR%qAknGIEGf7U%8=Mfd5pvoAuZ0E+ht>+``X28tf3C;ojWS)KAvFh!W# zsiyVAQ8WRM>n7Pae?ZMSkQEfo-k`jGK$w`BKwX%SI~8NujHUq7omVINUHFOCY&+@n ze||vd&hkhViUiA>vgNn@dg{V6g1kb6HSYRxdV)tK6cf;1WhP`kLaeAP1P#iDZH+21 zf!y>(-VHb%*`vT;5=pQ&#gKeUk%|f^H;*c!6Vr(@r7@3+pAY<CrP=V)JPiPn0a4-@7m@s+53)y*Fl|zh8~|IYqJ4mjnK1&9-7BH61Oy zFu(f+ZU;;`iT+YS8wGQ+53`*F-M1A*mQxV`!Suv(?nq!M8)1u#?%=K%x$Sf=lfD}q z+0@7lj$-oy$<$D*|B|fEHaBfAJ*-OUg(YWN?jJ=r3TBMgIXuI0PlELRr{cmqxMKXP z0te;RXo}KK@j}hh0#wD!ldA+HM+qgja#t>g=BkTb0-s-WGQN%+QQ8nnc-&TSGE5Ep zuDEaGca1>%ib?JTHb~XEur&(y;I-mBOWIBH8ZxaTIn5sybmB=&-Y6hZo-40v8L)@= zoqfy3rf6wZN`Gh6QkwN9!2qcN01bh|giN7BB?VT@s|2}v@lgzS#;MVComVWwVHRiE zQZoeuOqwQZ!A*!~j>L44#mOAsRc>nu${Yz~!bo7ncMHmS;8HfwJGCeU7faivaYhNF zC;bj4RMH_CTUk1!ar*S_=RY#MZJ3jiRYO?z!vE&M02= zOJ`ahAs{u+hR*mD4Qo!!|Zyb&GJmUG5D5 zWEDn0A;fnq+=U9rbG>_`*9qn%1wtZ+;k;4dodL>05`5848Hv`bZvj>s&oN3Pj(=~v zgio&let^V~#yKVn(dxeas#5K2K+wTKB!Vz_q68~iIyPG+n}Fl0Jrb1A_I z{5p(8NMXn7rL_d_MF6p|uSNQMLHb-3oi2gKelfbTmeqJp>4Y^(vB2#NP)6`Lf(wq^ z7a$XFCXyDQ|3ExjU_(yJ70v2nHS+7+B@51rr-QhZq|CD^L0?KPw!R^4EkwLYFb=ds zTggXEHh88jAYqo1bA2h)J&GH2FaIFWO?bQMo;FfMb-(_Iz~=_5U=G}5w%@So7%{on z1Rz_JLfq~@xKBNZWeZ0LoUO=XDr}Aa78kX(*qb2C#DcrXN|Mfiac|7ckazt3 zdZxK?QpMJ!_3E_cu3yIt79mV?S0Ij0uL_9PhhgK9Ylu0pLARy>TQveMvN9Pm zwxBy=fB^HF^J<`4q)1oKtm;z08+KK zRF2zGnZp3iGIX$`T|13gh}5-Bf89G`2werT7L#8uH`LTxICK0a@%(s}t|zgMPzA?( zy_rxQ84I(J(25x-<+|q}4G30P4Zn_hO8pM526LYUIHm=2dDzuWJrW|x!7!1T4B9Zf z2G^>Lw6iM+kuUX?*k5KLqu|5{!cknI*YiLw;V+FEnvgmXRF(9B(gjE5-z2b>l%eeY z<~1UQQ!oRpAC#g-DH335q(757#|@aYE$j7Rl98i6O_G2xrP*)i2p(o#)uk#$is%ed z09A{>NhB_f8u)9Awon(zVs0*z2bm30g&FP2nlN3KH^%fAuT3jEU;h5)n4+Rm!qvnh zt|8wCed3tnJWXV!0ir4bx~P`Rp(axWKB;3lPyk9t5- zm<=IN!EqE(%Lp(G0$g_dPTRN34gQGA>!YXR4m|J7rQ~7pHJJ7@rVA72vJ&KBYApQG zSO{2^fl;EYQ~%~QIRSaT3+JL%sCt02N5S7rR`f+66tX*425keIw6PY6?vUr_fNn%RFuBzPI; zDSwZ2FDfy3M8ql-SyM$d^t5nc=JEc~hd7Sn^G?kPa45r|g(_TP4^Bb%Mew`!eafR) z1kSk*R!Cwa{eiR0HL!)l!AzR8hq_2onn*R}D2(FdcxA$&r^80L*N-zm5JQ{*TXAGf zRQS}*%V&9%A?y!{`W`(fzS}$~yPH#z=bF|jZeiFBlgL^`4QceG4X2Oi*I|IrZnxig zeKa-Ap{(Ps%>iPT#0UcaJ!}y3JpPFX4sX9JEWhEkiwh?I*?Xd756-jzzxQN6IVg`Z?zV+`bghM-={2jO=F*0ZUQ1&^o zb`rejEOW4Zq8-Sw6$RQivi`R&xe~xm9&VU&8w@{GA?^;|96Lq z{l6Wm#Px`E2IP=ycpvEeetUCiz2t?u-z zrqz`Yr%=C{HB|N~7c?PStJVV7QXuzMf2t;)C;{zc#>$kvCS-g9S$IJJ6+m+Xjp7J1 zq}r?puAw+yy<7L2x>_F$Nm>+M7&{QiA%-zzS77) zWV59FKz|y4Zr)(n>lza3zNqGQSK*(DTlX$+Mobh**^yqkC{Nn4#)X+%AQ@3~)$dyXS?T70`oAj#P`f}6I!*l=p% zd)JO|yqhRUWBD4GvMqXu3xntj(4DVx&VBsk#X2AI5a!b>CNJF$Pr5Nf*GwerZ@nJW zV8JhvOd67mL0Q)w0s-jhwEr!-ju>{(lU(Q5lm~WbDX;Ul`0K5MWEn*si9|o5C;$)~+^esbnkT zN89qiu=ul6*hLeKztgNADn)0MWx0IaJ>8$JUGMH5zMfylJ)zI{qdA0ppFXeuj6SwY zZXezsT=3q3ozXe+_s*U#4tze91N^zeHxDoOucxdALrpQrU~Q(uO28GT;| zV~5hVH=b%GCjE`4JLX>7Cg&c@gSRAu?4SypvjJxAd=m40&$0#P!VqCXx)c9 z|Hl8Fx6BXxJ70fA|0v<8ly{UF85q_(PE?$TgpVARM8B_xB6aDC-s_Cw_ytXN1R41y z1-{#9p64E_ulrYphtPy!YM?jL_m5-CtQ5W42dHG*?4mL3|!1A}y{Z!vGHE`6;-BzpfCsE=$K6X03hIe$`P0d}Oo z1z|T>6gq`{+J@Gt-SFZ!)Bh*s3PQ3CKQ4~@kle{Q6)J$jeqP}A$Kzp$MLOQ9PU*(~ zB>Y!E>wSzk6*A+NuF`*xK&f)mfd%LxCF)w0@A+(i&Lez9AD$3F?50i#r)$HGfx*0p zWfKTbH;b6-f{kY&eGz4~LYRae9myex45wZf5s|Lcnbeu7S2qR<1F ziPvF%UiP+%%7lu#bDFpL1N}JSDqqxMm;SR<(n8c_WN80qQGsDG`ZeW#=sU32QPQc! zBpp<<+y~-TOS&mOFJB*V;{^%qTRjGE`XEbt^I?h=Q8j9`54WO8fzGY4_`Yd=R@syM zUsqL?i8}OfS7ECbgSOkXP{Bs#T7+NW2?YkQ+8$KD!T)Q*^`@`0=wf!;~~qGY7qRs(ABAJa|GlH%tJ)w0wK0xTzDbgnT2q%?4Y&QItJ}stjin z8!6aUMs!f-aXl?p)_~{`1;x!Mrj^lbHkw>2LX3S#I3G`0krDW!D-wnI zD8lEYuHc!UFE_}P=T8TP1c$=$OjKEETA6Rb@%N5oLQF@U4|c_RKA!aVo3M=v6=E;` z#`4W(qRLDUas9FtZ#|S|b`i(?aww}pPB0wLshbOWQGte-d{OC7s`u6M{aG~`?3{;=-IiOpfTQ6vyIPqv zTMkUt4KwJB;681pam<5`ISS>Nso~ z7%H^=pNhqi=1A@!O>>o{AdR2gr^T+^zKuQ<(_XBiXf6E7AQ#Z1l=7D!B;O z(DeulQn1f|Ac|%hG)CWpPk(&dXVreg9?CBH4S-KnXg}Y709biq>zuDFI|(-RezOlVSGR`?4m=Caf3ltc{ulVKZ zv%x7}r9Hn9=W!GZ)?JK7&ZLvYRKhANta|ug3xmyjt~g$X=KiO|$Ro78^ITdItNhM% zi(cjb7ML7zwB59Ew;g#hK=AIr+(x|M!W0B)8l~og-s)xlnW92hQaG4q zCL%gu0}s+~18^uC!(`0NGok1WGvW-<(&b~v`$kw=1w;dwG{3b%k zC?*?fVc9xtMaF;`z(G~u-%d!dYUH^BPbGco1kyk=PD=azPK*jG1Y?cn$=R@h8=K(@ z>_&=-HQevr84lKyFHwB9V>%==O`2Ch09`G&^j-g4!PTO&joW(Kh9A163(*V1*M~pU zRZBo)`E3h-qyvM=rk_C1wi-{y1oX%!;+WdA+@TZi)5m#v(q}}nh1y?lJAPFk59TKN z0J51W7bRk3%1Sr(A^qk_rZN2^!ZU}V?WZPd#nyyd6Xf@k3>Ip@!gwls^j&;Mn&|K@ zd58BpD_ULZJ`{U&l?$}A`}JKEz*b>bG`5_?H-5uix)stdrJ}!oqY$8Gj4@Ql3#aKj zRMy&u1LExpia8k2xq}fTa+Colc<)ue3WRG?0lQKX({sol`-=l*W-dSxCevH4LlXt( z3<~=yzes{_;`SA!Drtc8Y~|8BPvp5&BQ2aEVV`g~|3YAxFRM+~W8{7%V+ zZ^Am7qdR| zu}wrF4i3@_5ML3r@qoUxrSFyGqUsg6xWy2t`yu>MPFw48(i#qtGwlKq13<5w0u*UY z!mRNOv?och?)r9eXSjRJjOMMY0g=rbEUpBtWu4VYu364bEJlR6V;CMTXKaF>2qSV5 z=24gAB%$mi6LzFN%~})f*_1Qgo_sMwES@$%&?%E%;kvAVZC#`lM z>hVMSnw80e=O~uG*H<-jKZs=qUv}@F!H+3je-br_IbSftUz5^0P=8PTF-ZQK`X{QE zq5};>g97!{X(3&TR8=3{ZSbLK_c)p+%T%|!j6xyGRjE5r8RYg}kBFv;hMu7{Ah@fe z6%HYGZG*scnUcdDSq1faXt}`Av8BhOFv}0noDZNjx4V3pw`jT;t)^^1g63pq*48Z1 zLqe+B{uEaLbo&#vEhOo*&s5C;lNLvb#z2$=Dk)(}(QwOtiS2#`4|;51$%@+D+!FF6 zyrp1|M&uX^%cyOiWI6kK`9M-7NZmK*k~os6zj5KPY8i_T=FBtbGZp*~Tt0|y2j!t{ zpqeCHak66DB^YNVE598O`-kwD=G^_KUH^`5>8o5TXpZ86OM?Ae{Rj?b4{Ay?1JF&| zvk_wz;v?gkNGV~WP!7l?!!;kOyMQxgCK)<0hZ8PQpGN+|-i~JmMsd*&$1+W69w9C- zi4^Q+WS3_ba6LK5Ra@@4*Oq--;5P|z@TDTL;{vi`EE@d|#*r4z!9xZPuh;j;;=V{uC#mE!$;Q_5NP53v2Wm^OUUj z=h*#d4@?tbq>%jP23+eoHf(B^E2|h%0X2U?{9gCaxF->MZ!8-#T@29;t`u7F2HRL$ zRVK*3qLqjAa(cl0g-UQ19H8!SW5pRdOC-)o__fXfU)r<`>3`z%^OHODj{z_of|n0^ zj~e>tHgWpj>T^O{I<`;@xm$b;D3Fy9I62@q`Pa2R2S=LbvbtbG zWX#~#ioQGz4{a}+SK<4!3cEf#TPzf=msu0;fPkvY@_9wU#KUsnG2FErc7AVe_?QAF zGI=lF2a!4Op9Wmd*Ja(^?B zO!S<6xS_zH*2(*2oC1cICS<^#Mzmw5?gD1}pe+F~9&(^Df`tZ$w3QJYW)=**b_;ab zxva#lii_MM%_oQ3dfVM!LK3n%3@C*bZCL6TWE4{62*N>ge2Rz#hAtT(LuR_eI2Y+R z2wEL$YAZ95Tlo}2B&{ndIZLWJS@8$aQCldTbdpx`Iq*F`Z_P!L8W3E3xKosuC=1=C z#TT{oS_=tN~|-fjn5B>I1c)2+BR=9A%A7iBu!*r({nF-7s?09Hb00C|dS_ zS&&(w->^~c@o{nZyIcg-Uj))5Gae4ntC)x!z79hLY{x-^v2&NF*&O=U_5L0{m14Xqb>%@%SZP3%8et&VgZE3k8_2YJp)YvQia)(IXV`hKWC1x;D%KWRhb> z4ipu|{T9IHzm2B|=R;I&7hPPn3j@Pi{T*>hT85(ZOkgGfR3VIU5K@U6H8!*)6`hxm(k@EP zWdk|G(@s?w_bU`x!Ht(D2l4!9@JFTb-|%ZS$T!l-J&7o@yvgM-_(DZCd7K{VeLKya zjIJDL?O3BiYD?Tjjy=~abXL>^DYZQ-aElNtMwpCenpK4fCzU1SMS5dX13|`0;v6-d;FgE6#rZxb?0AEK-K9_7+gjr&db@q4eAFdo~5Do}7ZLbSr zOKdlESi{d3Ki=fbRfW_YDLiAMp9tf+1cWUtdu1GXu&==_m<+J5CCF;9czO=5#qh-h z!9#kbI0e9Ic`#@i`NX_!ZY!!<{d?-?W7#5Wi%VJj}v_WAT~G15oU3i!i|wQCitT{ zY=JYh(mpvgTgEkMsTl|%rT&XIosy;jo`|#Cc$X7N>bvIEAvq>NumxmR6K5GWx*s5n zMd&BCN=m*WIw!gh@fX$Yv#>nb&XjbxV@Q2`OVC6defv`w}>NMbw{8kINzJWQWrZHQ5zOI-PYX! zkIiMA?%bS^@aqC?g!9-ulhrKJawC5f)ABnzL+?uPU{2ZboDvaD`CHYkHfFSBq0a~@ zhBt^zrcI({a^%pn*3DPYGZy~f1=RxWFB8Pp`F@v~D;6Gt+e zE2tzCLW>>unpp1fSQRyG4>vRTJUn_*k>^$%S95mvMl@ArmiRZ+-Jj-x7&$g}kkF}e z4PXyW(^GJH!UXqBnZaBUkPWRaiHIC-i&KO4=_$QBeVEN7!o8MxW3j^2Cnbdh>6s)0 zW9r~sNn{LwY4goV>oC(k1oriYyc>~cdd0xYB0}Qccij(L=4Eu+&C1UM>&vH!Y~qy7 zGwBGcUv0jqDlZ4YY?jr)jEMp8DbJ!gq~x)rPgA0^83E$6N)TMS^PKv4A z_B8a)k}f>Qu^2~45(>y_oO}Dvkr?mrv0l@wnGk2q1SRc%*TGQF2RZw04!tMlZ(>4D z%HIu_QTQg{_ zG>-{g1*w!-yZp50)MJX;2Pd%3@BfI$;IcLg7(#J+3G=AJn`=C>3O|U~OE{+#GpzOO zG6Q2q2(c`l)^JnLW1G#i6u@euNCL`|;ftN6*z7Pc+`+TigS)=7?FJ-KY*1DYi+RH8 z5$V%NfKFJ)e=XC6{P&YXC+Cldk27@wBzS+#O+`L5koa?dsqrH2zO(!;@WiE6zMxV-4mtN@ovPPDL`m1EUhboAPv$dHE+LvjfO^+8~vGXTmzk2y$Fo zHHDdc4Y#E2!(y?a-kkGuNTG-mM)r(3@n5a4ecj{M77)moH0oBw2>? zfxN6Hf~lFmLivVoNtTZ}HA+k-Dd|_n&@8X*F>9zGbO`DZNVtMKU!H}v7376`)-QPF z;Ia;)n)$99tjpL~Zh3a%X`CcOJ<9R72+*!P&6>Ns2RHvX+8Up zpY?AL=%+VGZ(~myS^F6vAm=0gayE=W&60JSq{GtS8)9kdnx0>;VD>2=yAF6YAkOoP z>_VEKFP@RF^@>hexQTu!-WOf-c^Ihq59FYGH!p8FEI!8G&~`sVz?uAu^4w*8L5IX3 zvDRC3oNaOs$VJ;mW^HHu71BvWJIrJK%#ejZj3Iq|h6%>1{3)(I3s#mI|ETfJrVe zu!0ctjVeW!lXFp>ykrtto2Uw1uSpj_a48k*BMfN5q-+(vv}~oI6!8z`PYvL`q+u8l zAbA`R)s(Cz?P6t|A>eBrnX?jrf))b$9k6jN3ASdfeswv0TjO0X`_38N{a0t%xKcvt z%Jim0#IWSh0=z<6-$ZJV;m~_P4CLx`gO~_+@lq}gp8Wp5Tu&%u^h}X3Cn>8xy$d_Y>)HQ3z2Y6f z-w^F>A-*0d_nAbi-&Ut{nz-dMBX#pO|Frr*f`yASzgNFm25biG8fOmwQtu*E_l+Oc z_yq|=wT?5(<~w0{_h8isjBGK9fqZ51P&isQiFI9_?I!8-Bdr>Wt+ya1dXx zLg4pb(F#BzH&+K7Z#$GwR}QJ4-klW$@g&j-m@sp!=mZuLi}0|tih`QMH&&twFl+Ex z6U0=VamypvDgcFUIjAx{Pk+Xrl>(sF!KVS32%TiiHrIs2G++9`;K>bEwx~GRRmV`e*~2WXiBsp zJu!)&*B87=x?dbS!9SS>vy z1MsKvjM=k!fO(Y^8cR18nv~2UwRACk$qC8t+%q_)29ZJB6EHHL!QsKOQ)H+6AeVaz z4M^Jqsy8hF$51VXCej2&A$~F7h1h;R!*_0c>DBf|$~=eC#(!aaJgDmCCGZnixn>oOK*-8z3$)=xFuz@kpIt_dI&hrX6=Qw}Jm-gs1Vit-2%rLA|0*5>&N-q}Sv6ESv#qL! z&F5)0hEULVCLql4&Vnj6|L{2qaHf<-6q3u^NS5&RH@50X)RD@i-A>m)I{bY#!NSRX>DOJoR{Bs679<0hOdLzY2M)iPz%GsK4 zOoA+C&9Bu5_bFKsLA%1+&hVc&!3GtVj2V^8qe^dq`XRY$O8Y>##7i= zq9*<$vofyU&q|V<7Kc`R;AYmqk8Kh#@kr=B<&mciqGyCW65VJ#&e&Exy00Ev2Y_2b zpme+6kXjP89~?w$KN}9zUk1gjDW=r3WY93K5h($M#l^E(`MWZy)|}c!1ka zGW66dT718l)1P4A68H!Lq%p4qfI>5pf|J;RWn57=i zMsbd~Q)qkPfX->nCUm67Wbx&Wz3q_(S+M>midA}@4`g8ygJpn zd(w@Du5pILx*~+mTgQdR^{n}v8G78eJo)IfG6~2@2SG~<&@6fFyDi_ZZsv5k{(rl* z<6tI`LLCr68o)nK1i-Y$z$81{f2ponU{fCD`f(Vd?!!yIbN+{ZqC^2(qViU%+ zyKP6i0nar$|5xc{_s|NW{_g||L8`n^us>S~_piXP9K@ zZ|E}-F&5>eBluLArZl=PfzzR}uzyWV zROK@hjCEVv!&AqRi``Y-!p(RK7)k~6Ehz5pBR~{Pp#wZa%)=uUPFzxSxSnBsWWkPp ztO$xP^}Yz`B5MvfT?*7)wq-UN%zf-UVG&CDe} zOhTvr=SiAgzIJX!7w-^}6)`+cHGH*)Ot_hoDZP$`0)RK3jqEf;x|HQZvsd$y;ztc*PS+~wfGm8^^e6RAb7aC#yOQ5* z#x)?u?WsJU3E^p-^RBrL2w7mJhUW9^I@B0k`&>HmiDYb6phK|knG?d>2L`btPzQpk zGjR)F{#fy}GFApLt-Zq0(|#vx5X9nJ?Zo__uC6*RsxR2@T}pcCke1FRq(n-=1q37n z1VOq{KtfPh5D6(^cVQ_B=`JY=L8YZ*k&y02KtbXy_}<6g^ZqsGocYe2ne&+w_cP~S z2j{6Zr>FH!oqASZ)M-65hhbGgWX$qa%k4P1IYJGl+39#i3daVLk0mEtZrXWG=k~p8@myUp*2-o33~Yd%@R=YlXoxxnRLhOpAhf$zq+G}hS?q;-NT!Mui8bsW$oL7!?I#j0z_r5X%_sv|D2qOwwpklw>j}Ey*-!l`uj*)yr3zUhU&uu@sDdV$y4_NF!~00 zZhFRDW?!q;TMQfT@fOgH4d}Bkw7;lh%v%mj=@Tz##3cUmiy56iIYUS~YSzEQC_g#m z3840S`#tcG^?(*0TL2Io!D&tf(HlI5o!6<}N#L(0B6;Q|{mBIVqrum4~M$wAY5!CJdZ9{{%7?4(yW(SNo zDI|WRrz&`f)H!TQW4)HE_^`jyOsVkH(zxgMWI)5L=7b;q(F)rHBYgULha}`Agl*!W zdw|lql&d3J+{+B8cuH2k&FaM*R&&*ud0ErJ6SiKaAy~*&yk);1IqE0#>6ySC*S@kQ zg`yHI0=D-_Uz(Yfh%4~v!jIpadCDmFEJQQ4Ff#!LgOZt5__BIaUG|+bF(@zBwgX&U z;~D*V_4Hvp(Uv%SbGQj-l{IVmcZz`EA?x~UV+zf(@$$$`*&vs8%q+v$5a1P8CfPhL z6j(J)X|(*SdHfJ)j_z$vg_J24^pYAhuh~yTJY-NtVZE87|f^dtzqJ+^xR9Cc`N zx!x=*bgf9nXcK1n2-lfaK3n??e39*k1G=YygG&v<2O(LT@zI1r00g<(&wy4G0*H`n zQ;^E6xm|#W>LIRkBn}7^&WKD~;D9HZUfgUB+2+|)Fj~cvV%sBZ;ey@I{qBOScBoIt z;pYsg^|VCMGaj#dYfahuds4O6S{QYGP0M4T4U z{a}krOvyK6v-%Joe0XL$qIXuDo6_^F+1|&89*Lp1S?iJzLl@G*`kqF;r2?D6Zq?o|)8!QE3j2}oB!*+eL zR+@vczXIT4@6OkuH{OlZuA6bxyv7nDxEjMi#}T8PljW1}w7qRhd9OOe0mYfT`SH>F zkvj6R?51V8l&7!?S^eyvz<7soHZRGQJ;hyPSe5pGUeh66hj=_+OP8@yc(i#xe|-b& z*)5-9i^6sM_i^TOcXUJcxK)CyNL$Bt!2Gu0+bXH!vrZM8u3fR1!K{=UMkA91DG6|^htJT<9@RqXZjGU^i z@}~T9AUXjvgPQX;KKw9?Qr~&fIWz8e zP1>c`Yv_ppReZR&ECWLnc5bYs27w@dk{qlooULxzTR1$v$aC-*GkG!urEcE!=4`qZ z=RL|TWR>oz_v%GNAbT;o#bhM7N>@ZrkNwx-t3`>b-`lAii4RWgNIaHQqawJtAb&)VdD-#U2K{(@ zO^K_L##C(GB8(TVK~u79M(0$#QiFCONYs$jo!x{Kjby#J{|8_a(xGg)D|*ogM^f8I zYTj7-kl00Gf|>ZmFOPjQT{>qq80Mk9m-T;LP%N3g3wI4hJ~!j->3oJtYxtBHFYEcn zyW!)Bd7eMleqhF0T>r`0Bo}2(hiInU>et|5taR?I)w++*?AOP+^sL$LT#l1x^gY*x z$)0yT9Ti_L{Q*ykY0DZ&w9B{}x9$;Bugt6?y+@rEM7graLeI?b!t{TK7twpILy7T? zV%GMR+vCxSav_GU&CUnxsc)sfRO;9|gc^kf+K25w85s1dYYZjeC-=mbQ(q^L5{p7Y zkIEr912Of~-Z=y%Xg&w9>%3`%4>U;~%yKY{zi#l_~a$5XM3 zz}+yKj+mE(_>1hrAtCZKtq8$RFPQr;9;SyG`-d#YdD7~ZjwVXFhZRDn(>K05N6&AK z9bmt_c#~2&rfn~B<7g>a#JEA`fceA7XqBxIzK1F}E40md+@gj=esWlv5FYcxaV)Qw z#Ft^xfv(}f>B-PLQNL1xZHP4eq}bSVctU7~)8Plh$F^j?0Rkpg&lfEmy)$kY6-z!Y zt=g`Sq2TyzR&~qu5W1brr{!yNF3SSFt-w27GEs8i{j&)?EcK(NzQw3&%RH0kx!a41 zM>1OzZH#u+{`k?#l~dJGXO3_SPUp}O}PkgU4))YLcudj@Y3fcLdf4&#E909QmvFZ=46=8jPyKRzLALj^nN806y zC-mj^!L3r=J!1DI`>TygCQiN*OvzdT#HzPvlh!cB1or9GhV@?kWJTtWQKrcN`SD8e zT7S!n;d!AM0)EFshxu8!jLj_0?WTY`nn%>ns2MVC;@rPJh_`H${_KM?NWjqzn^8fj z>=Tg(EDPv=P8;tTcz(S8+ul)&AsIE)z-!&9&h(nIwQAEt10&&~1bH#(Cwt4rj?vTR>OF(iXgqj%n<9I~u2_&lw?w(`^-3TL%Ta~q=KV$png zOGQAHNY%~2HN0-7pIBYlwY7jZf@{$&_L0Vkr}{}fr9vDYN57u7)R|aG1dLlW-i^;K z6->-Y%?PI*;iQYRMpQVBKT5#c$}W@_NNd7lKdL+SVWCeIh+?@`*j{~%HcRc-CtPxi+V+uAuy8&Vz`FqtiZi2v_f3Grc{3o7!9M zT7C|8{!d}BaDfM>AVhGx-b@TJ?V^o(IqLrFh+SHjJgd2z{wO;pEn{mrfYM^;+p zB^RCmR{L2!GNX(JtswwFnEp+P{A-ZkXSBBfz{+%)4T0TAWMY%zu`|W(r9yGfC)J>MT9OB#45Xdw}PGF^yxsLtN#%M z0^L|cPYMEez^j{oL}8D665x%k%K|cLo(P?cJqR-WJ@);JXWqHM)1#+_u=dUU_#;F> z7%PPO;G&=nh8|uzpj{Zt;C^&TlZs$z%aco54@=|Jg8_7~2q2G>g#(~--m$df+~RKaHiV03Mo50^rB(69Pc! zD0YAaZHz5~M?}ye5`a4Hq$svJi3?k;jvWkiA`1W^`HwE~KVp=x12p*U5?Jd&{{vaT B$58+P delta 35151 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 diff --git a/test/inputs/20220215 ITR Tool Sample Data.xlsx b/test/inputs/20220215 ITR Tool Sample Data.xlsx index 70923261219d44548e4c53d88bf2d369aa2785b0..5d03398a33d0ee91ed924c93fe007dcac611a21f 100644 GIT binary patch delta 38330 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%0DgG)tEwr;%Mx>QNgtIcnk`v=uCN$svOmq`- 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 B$58+P delta 35151 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 From 7c488680141a688632eb16ee3d98562acced7d4f Mon Sep 17 00:00:00 2001 From: MichaelTiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> Date: Sun, 6 Mar 2022 17:57:20 -0500 Subject: [PATCH 162/345] Update quick_template_score_calc.ipynb Use JSON files for benchmarks and update notebook flow to invite users to choose their own data, benchmarks, and aggregation methods. Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- examples/quick_template_score_calc.ipynb | 634 +++++++++++++++++------ 1 file changed, 463 insertions(+), 171 deletions(-) diff --git a/examples/quick_template_score_calc.ipynb b/examples/quick_template_score_calc.ipynb index 5c65d4bc..c0ed026a 100644 --- a/examples/quick_template_score_calc.ipynb +++ b/examples/quick_template_score_calc.ipynb @@ -2,18 +2,40 @@ "cells": [ { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "tags": [] + }, "source": [ - "# ITR Tool - Quick Temperature Score Calculation\n", - "This notebook provides a simple example of the ITR Toolkit. It shows how to use it to calculate the temperature score for companies, aggregate them to a portfolio level to get the portfolio temperature score. \n" + "# ITR Tool - Template Temperature Score Calculation\n", + "\n", + "This notebook provides a simple example of the ITR Toolkit as a means to evaluate Portfolio Alignment. Text boxes (called Markdown cells) like this provide some explanation, and then code cells either do the work just explained or will do work that will be explained.\n", + "\n", + "All data needed to run this demonstration should be local and no acccess to the internet should be required. However, if you want to delete a file and re-download it (to restore to its pristine state), of course you need access to the internet, and you will need a github token to access the OS-Climate hithub.\n", + "\n", + "The **Sample Data template** provides both a *Read me* sheet and sheet of data dictionary *Definitions*, as well as three input data sheets:\n", + "* ITR input data: The fundamental financial, emissions, and production data of companies, listed by security instrument as company id\n", + "* ITR target input data: Short-term Emissions or Intensity reduction targets and Net-Zero attainment target dates, listed by company id\n", + "* Portfolio: A list of positions and investment value amounts\n", + "\n", + "The user may choose **Benchmark Data** that forecasts intensity reductions expected from 2020-2050 by region and sector. By default we use the OECM benchmark, but two TPI benchmarks are also available. In all three cases we use the same projections for production grwoth forecasts. We also use the same global carbon budget and TCRE multipliers for all benchmarks.\n", + "\n", + "After scoring the portfolio, the portfolio is copied to the local file *data_dump.xlsx* which can be downloaded for further analysis.\n", + "\n", + "This notebook also outputs an **enhanced portfolio** (with temperature scores), can be aggregated using various weighting methods to gain additional portfolio alignment insights.\n", + "\n", + "Please enjoy learning how the ITR tool works by following the computations performed by this Jupyter Notebook!" ] }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "tags": [] + }, "source": [ - "### Getting started\n", - "Make sure you are running the notebook with the requirements installed available in the example folder" + "## Getting started\n", + "Make sure you are running the notebook with the requirements installed available in the example folder.\n", + "\n", + "If you see errors when attempting to load the ITR modules, go to the top-level ITR directory, activate the `itr_env` conda environment (using `conda activate itr_env` and execute the command `pip install -e .`. Then try again, or hit the button above." ] }, { @@ -22,8 +44,18 @@ "metadata": {}, "outputs": [], "source": [ - "#If not already installed uncomment line below\n", - "#!pip install ITR" + "import os\n", + "import sys\n", + "import warnings" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "tags": [] + }, + "source": [ + "If all is well, the list of paths below will prioritize loading from the environment established for the ITR tool. Please contact us if not." ] }, { @@ -32,15 +64,48 @@ "metadata": { "tags": [] }, + "outputs": [ + { + "data": { + "text/plain": [ + "['/Users/michael/Documents/GitHub/ITR/examples',\n", + " '/Users/michael/Documents/GitHub/ITR/examples',\n", + " '/Library/Application Support/Blackmagic Design/DaVinci Resolve/Developer/Scripting/Modules',\n", + " '/Users/michael/opt/miniconda3/envs/jupyter/lib/python310.zip',\n", + " '/Users/michael/opt/miniconda3/envs/jupyter/lib/python3.10',\n", + " '/Users/michael/opt/miniconda3/envs/jupyter/lib/python3.10/lib-dynload',\n", + " '',\n", + " '/Users/michael/opt/miniconda3/envs/jupyter/lib/python3.10/site-packages',\n", + " '/Users/michael/Documents/GitHub/ITR',\n", + " '/Users/michael/Documents/GitHub/osc-ingest-tools']" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "display(sys.path)" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": { + "tags": [] + }, "outputs": [], "source": [ + "# Load the ITR library files\n", + "\n", "import ITR\n", "from ITR.data.excel import ExcelProviderProductionBenchmark, ExcelProviderIntensityBenchmark\n", "from ITR.data.template import TemplateProviderCompany\n", + "from ITR.data.base_providers import BaseProviderProductionBenchmark, BaseProviderIntensityBenchmark\n", "from ITR.data.data_warehouse import DataWarehouse\n", "from ITR.portfolio_aggregation import PortfolioAggregationMethod\n", "from ITR.temperature_score import TemperatureScore\n", - "from ITR.interfaces import ETimeFrames, EScope\n", + "from ITR.interfaces import ETimeFrames, EScope, IProductionBenchmarkScopes, IEIBenchmarkScopes\n", "import pandas as pd\n", "\n", "from ITR.data.osc_units import ureg, Q_, PA_" @@ -48,73 +113,144 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 4, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "1 CO2e\n", - "1 CO2e * gigametric_ton\n" + "Testing unit registry\n", + "=====================\n", + "The gas species CO2e, which was a gwp of 1: 1 CO2e\n", + "A gigaton of CO2e: 1 CO2e * gigametric_ton\n" ] } ], "source": [ + "print(\"Testing unit registry\\n=====================\")\n", "one_co2 = ureg(\"CO2e\")\n", - "print(one_co2)\n", + "print(f\"The gas species CO2e, which was a gwp of 1: {one_co2}\")\n", "\n", "one_Gt_co2 = ureg(\"Gt CO2e\")\n", - "print(one_Gt_co2)" + "print(f\"A gigaton of CO2e: {one_Gt_co2}\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ - "## Download the dummy data warehouse\n", + "## Load the production and intensity benchmarks\n", + "\n", + "Prepare the various benchmark files; the OECM benchmark is the default after the next cell finishes." + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [], + "source": [ + "import json\n", + "\n", + "self_root = os.path.abspath('')\n", + "benchmark_prod_json = os.path.join(self_root, \"data\", \"json-units\", \"benchmark_production_OECM.json\")\n", + "benchmark_EI_OECM = os.path.join(self_root, \"data\", \"json-units\", \"benchmark_EI_OECM.json\")\n", + "benchmark_EI_TPI = os.path.join(self_root, \"data\", \"json-units\", \"benchmark_EI_TPI_2_degrees.json\")\n", + "benchmark_EI_TPI_below_2 = os.path.join(self_root, \"data\", \"json-units\", \"benchmark_EI_TPI_below_2_degrees.json\")\n", + "\n", + "# load production benchmarks\n", + "with open(benchmark_prod_json) as json_file:\n", + " parsed_json = json.load(json_file)\n", + "prod_bms = IProductionBenchmarkScopes.parse_obj(parsed_json)\n", + "base_production_bm = BaseProviderProductionBenchmark(production_benchmarks=prod_bms)\n", + "\n", + "# load intensity benchmarks\n", + "\n", + "# OECM\n", + "with open(benchmark_EI_OECM) as json_file:\n", + " parsed_json = json.load(json_file)\n", + "ei_bms = IEIBenchmarkScopes.parse_obj(parsed_json)\n", + "OECM_EI_bm = BaseProviderIntensityBenchmark(EI_benchmarks=ei_bms)\n", + "\n", + "# TPI\n", + "with open(benchmark_EI_TPI) as json_file:\n", + " parsed_json = json.load(json_file)\n", + "ei_bms = IEIBenchmarkScopes.parse_obj(parsed_json)\n", + "TPI_EI_bm = BaseProviderIntensityBenchmark(EI_benchmarks=ei_bms)\n", "\n", - "We have prepared dummy data for you to be able to run the tool as it is to familiarise yourself with how it works. To use your own data; please check out to the [Data Requirements section](https://github.com/os-c/ITR/blob/main/docs/DataRequirements.rst) of the technical documentation for more details on data requirements and formatting. \n", + "# TPI below 2\n", + "with open(benchmark_EI_TPI_below_2) as json_file:\n", + " parsed_json = json.load(json_file)\n", + "ei_bms = IEIBenchmarkScopes.parse_obj(parsed_json)\n", + "TPI_below_2_EI_bm = BaseProviderIntensityBenchmark(EI_benchmarks=ei_bms)\n", "\n", - "*The dummy data may include some company names, but the data associated with those company names is completely random and any similarities with real world data is purely coincidental. \n" + "base_intensity_bm = OECM_EI_bm" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "tags": [] + }, + "source": [ + "## Download/load the sample template data\n", + "\n", + "We have prepared sample data from public sources for you to be able to run the tool as it is to familiarise yourself with how it works. To use your own data; please check out to the [Data Template Requirements](https://github.com/os-c/ITR/blob/main/docs/DataTemplateRequirements.rst) section of the technical documentation for more details on data requirements and formatting. \n", + "\n", + "*The sample data may contain estimates, simplifications, and recategorizations. It is intended to be generally representative, but not authoritative, and should not be relied upon to make investment decisions.*" ] }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 6, "metadata": {}, "outputs": [], "source": [ "import urllib.request\n", - "import os\n", + "from github import Github\n", + "\n", + "# Create a Github instance with an access token.\n", + "# Use your shell's `export` command to inject your token into the GITHUB_TOKEN environment variable before starting this jupyter-lab instance.\n", + "gh = Github(os.environ['GITHUB_TOKEN'])\n", + "\n", + "# Get repository by name and select the proper branch\n", + "repo = gh.get_repo(\"os-climate/ITR\").get_branch(branch=\"develop-pint-steel-projections\")\n", "\n", "if not os.path.isdir(\"data\"):\n", " os.mkdir(\"data\")\n", - "if not os.path.isfile(\"data/20220215 ITR Tool Sample Data.xlsx\"):\n", - " urllib.request.urlretrieve(\"https://github.com/os-climate/ITR/tree/develop-pint-steel-projections/examples/data/test_data_company.xlsx\", \"data/20220215 ITR Tool Sample Data.xlsx\")\n", - "if not os.path.isfile(\"data/OECM_EI_and_production_benchmarks.xlsx\"):\n", - " urllib.request.urlretrieve(\"https://https://github.com/os-climate/ITR/tree/develop-pint-steel-projections/examples/data/OECM_EI_and_production_benchmarks.xlsx\", \"data/OECM_EI_and_production_benchmarks.xlsx\")\n", - "if not os.path.isfile(\"utils.py\"):\n", - " urllib.request.urlretrieve(\"https://github.com/os-climate/ITR/tree/develop-pint-steel-projections/examples/utils.py\", \"utils.py\")\n", + "\n", + "for filename in ['data/20220215 ITR Tool Sample Data.xlsx',\n", + " 'data/OECM_EI_and_production_benchmarks.xlsx',\n", + " 'utils.py']:\n", + " if not os.path.isfile(filename):\n", + " # Get a specific content file:\n", + " contents = repo.get_contents(f\"examples/{filename}\")\n", + "\n", + " # Donwnload file form ContenFile object info:\n", + " urllib.urlretrieve(contents.download_url, filename)\n", + "\n", "try: # Import statement when run in remote Jupyter servers from AWS Google etc..\n", " from utils import collect_company_contributions, plot_grouped_statistics, anonymize, \\\n", " plot_grouped_heatmap, print_grouped_scores, get_contributions_per_group\n", "except: # Import statement when run locally\n", " from utils import collect_company_contributions, plot_grouped_statistics, anonymize, \\\n", - " plot_grouped_heatmap, print_grouped_scores, get_contributions_per_group" + " plot_grouped_heatmap, print_grouped_scores, get_contributions_per_group\n", + "\n", + "template_data_path = \"data/20220215 ITR Tool Sample Data.xlsx\"" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ - "##### Logging\n", + "### Logging\n", "The ITR module uses the Python standard library logging utilities to send log messages. The log level can be changed according to the user's needs." ] }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 7, "metadata": {}, "outputs": [], "source": [ @@ -128,50 +264,68 @@ "metadata": {}, "source": [ "## Create a data provider\n", - "Data providers let you connect to the data source of your choice. In this case we are connecting to Excel as a data provider. " + "Data providers let you connect to the data source of your choice. In this case we are connecting to Excel as a data provider for benchmark information and we are using the ITR Data Template for company and portfolio information, using *template_data_path* as the pathname to the data. If you want to supply your own data file, you can set the pathname in the first line of the next cell." ] }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 8, "metadata": {}, "outputs": [], + "source": [ + "# Remove the # and space on the next line to point the template_data_path variable at your own data\n", + "# template_data_path = \"data/your_template_here.xlsx\"\n", + "\n", + "template_company_data = TemplateProviderCompany(excel_path=template_data_path)" + ] + }, + { + "cell_type": "raw", + "metadata": {}, "source": [ "excel_production_bm = ExcelProviderProductionBenchmark(excel_path=\"data/OECM_EI_and_production_benchmarks.xlsx\")" ] }, { - "cell_type": "code", - "execution_count": 7, + "cell_type": "raw", "metadata": {}, - "outputs": [], "source": [ - "excel_EI_bm = ExcelProviderIntensityBenchmark(excel_path=\"data/OECM_EI_and_production_benchmarks.xlsx\",benchmark_temperature=Q_(1.5, ureg.delta_degC),\n", - " benchmark_global_budget=396 * ureg('Gt CO2'), is_AFOLU_included=False)" + "excel_EI_bm = ExcelProviderIntensityBenchmark(excel_path=\"data/OECM_EI_and_production_benchmarks.xlsx\",\n", + " benchmark_temperature=Q_(1.5, ureg.delta_degC),\n", + " benchmark_global_budget=396 * ureg('Gt CO2'),\n", + " is_AFOLU_included=False)" ] }, { - "cell_type": "code", - "execution_count": 8, - "metadata": { - "tags": [] - }, - "outputs": [], + "cell_type": "markdown", + "metadata": {}, "source": [ - "template_company_data = TemplateProviderCompany(excel_path=\"data/20220215 ITR Tool Sample Data.xlsx\")" + "## Create the Data Warehouse" ] }, { "cell_type": "code", "execution_count": 9, - "metadata": { - "tags": [] - }, - "outputs": [], + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Benchmark Temperature = 1.5 delta_degree_Celsius\n", + "Benchmark Global Budget = 521.0526315789474 CO2 * gigametric_ton\n", + "AFOLU included = False\n" + ] + } + ], "source": [ - "template_provider = DataWarehouse(template_company_data, excel_production_bm, excel_EI_bm)\n", + "template_provider = DataWarehouse(template_company_data, base_production_bm, base_intensity_bm)\n", + "\n", + "# Fills in template_company_data._companies[0].projected_targets.S1S2\n", "\n", - "# Fills in template_company_data._companies[0].projected_targets.S1S2" + "print(f\"Benchmark Temperature = {base_intensity_bm.benchmark_temperature}\\n\\\n", + "Benchmark Global Budget = {base_intensity_bm.benchmark_global_budget}\\n\\\n", + "AFOLU included = {base_intensity_bm.is_AFOLU_included}\")" ] }, { @@ -179,9 +333,10 @@ "metadata": {}, "source": [ "## Load your portfolio\n", - "In our case the portfolio is stored as a CSV file. The portfolio should at least have an \"id\" (the identifier of the company) and a \"proportion\" (the weight of the company in your portfolio e.g. the value of the shares you hold) column.\n", "\n", - "Please see the technical documentation on [Data Legends](https://ofbdabv.github.io/ITR/Legends.html#) for details on data requirements." + "The portfolio data is a sheet in the Data Template named \"Portfolio\".\n", + "\n", + "Please see the technical documentation in the [Data Template Requirements](https://github.com/os-c/ITR/blob/main/docs/DataTemplateRequirements.rst) section for details on data requirements." ] }, { @@ -219,63 +374,63 @@ " \n", " \n", " \n", - " 27\n", - " OG&E Energy Corp.\n", - " CE5OG6JPOZMDSA0LAQ19\n", - " US6708371033\n", - " US6708371033\n", - " 148784\n", + " 38\n", + " TC Energy Corp.\n", + " 549300UGKOFV2IWJJG27\n", + " CA87807B1076\n", + " CA87807B1076\n", + " 195002\n", " \n", " \n", - " 28\n", - " PG&E Corp.\n", - " 8YQ2GSDWYZXO2EDN3511\n", - " US69331C1080\n", - " US69331C1080\n", - " 199797\n", + " 39\n", + " TENARIS SA\n", + " 549300Y7C05BKC4HZB40\n", + " US88031M1099\n", + " US88031M1099\n", + " 204355\n", " \n", " \n", - " 29\n", - " PNM Resources, Inc.\n", - " 5493003JOBJGLZSDDQ28\n", - " US69349H1077\n", - " US69349H1077\n", - " 208716\n", + " 40\n", + " TIMKENSTEEL CORP\n", + " 549300QZTZWHDE9HJL14\n", + " US8873991033\n", + " US8873991033\n", + " 57497\n", " \n", " \n", - " 30\n", - " POSCO\n", - " 988400E5HRVX81AYLM04\n", - " KR7005490008\n", - " KR7005490008\n", - " 176661\n", + " 41\n", + " UNITED STATES STEEL CORP\n", + " JNLUVFYJT1OZSIQ24U47\n", + " US9129091081\n", + " US9129091081\n", + " 120912\n", " \n", " \n", - " 31\n", - " PPL Corp.\n", - " 9N3UAJSNOUXFKQLF3V18\n", - " US69351T1060\n", - " US69351T1060\n", - " 121516\n", + " 42\n", + " Xcel Energy, Inc.\n", + " LGJNMI9GH8XIDG5RCM61\n", + " US98389B1008\n", + " US98389B1008\n", + " 79304\n", " \n", " \n", "\n", "" ], "text/plain": [ - " company_name company_lei company_id company_isin \\\n", - "27 OG&E Energy Corp. CE5OG6JPOZMDSA0LAQ19 US6708371033 US6708371033 \n", - "28 PG&E Corp. 8YQ2GSDWYZXO2EDN3511 US69331C1080 US69331C1080 \n", - "29 PNM Resources, Inc. 5493003JOBJGLZSDDQ28 US69349H1077 US69349H1077 \n", - "30 POSCO 988400E5HRVX81AYLM04 KR7005490008 KR7005490008 \n", - "31 PPL Corp. 9N3UAJSNOUXFKQLF3V18 US69351T1060 US69351T1060 \n", + " company_name company_lei company_id \\\n", + "38 TC Energy Corp. 549300UGKOFV2IWJJG27 CA87807B1076 \n", + "39 TENARIS SA 549300Y7C05BKC4HZB40 US88031M1099 \n", + "40 TIMKENSTEEL CORP 549300QZTZWHDE9HJL14 US8873991033 \n", + "41 UNITED STATES STEEL CORP JNLUVFYJT1OZSIQ24U47 US9129091081 \n", + "42 Xcel Energy, Inc. LGJNMI9GH8XIDG5RCM61 US98389B1008 \n", "\n", - " investment_value \n", - "27 148784 \n", - "28 199797 \n", - "29 208716 \n", - "30 176661 \n", - "31 121516 " + " company_isin investment_value \n", + "38 CA87807B1076 195002 \n", + "39 US88031M1099 204355 \n", + "40 US8873991033 57497 \n", + "41 US9129091081 120912 \n", + "42 US98389B1008 79304 " ] }, "metadata": {}, @@ -283,10 +438,7 @@ } ], "source": [ - "# df_portfolio = pd.read_csv(\"data/example_portfolio.csv\", encoding=\"iso-8859-1\", sep=';')\n", - "\n", - "# df_portfolio.head(5)\n", - "df_portfolio = pd.read_excel(\"data/20220215 ITR Tool Sample Data.xlsx\", sheet_name=\"Portfolio\")\n", + "df_portfolio = pd.read_excel(template_data_path, sheet_name=\"Portfolio\")\n", "display(df_portfolio.tail())" ] }, @@ -311,7 +463,7 @@ "metadata": {}, "source": [ "## Calculate the temperature scores\n", - "In the amended portfolio you'll find your original portfolio, amended with the emissions and the temperature score." + "In the enhanced portfolio you'll find your original portfolio, with calculated temperature scores, trajectory and target scores and overshoot/undershoot ration, and a temperature_result which is current set to zero for all valid calculations." ] }, { @@ -340,16 +492,6 @@ "execution_count": 13, "metadata": {}, "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/Users/michael/opt/miniconda3/envs/jupyter/lib/python3.10/site-packages/pint_pandas/pint_array.py:648: UnitStrippedWarning: The unit of the quantity is stripped when downcasting to ndarray.\n", - " return np.array(qtys, dtype=\"object\", copy=copy)\n", - "/Users/michael/opt/miniconda3/envs/jupyter/lib/python3.10/site-packages/pint_pandas/pint_array.py:648: UnitStrippedWarning: The unit of the quantity is stripped when downcasting to ndarray.\n", - " return np.array(qtys, dtype=\"object\", copy=copy)\n" - ] - }, { "data": { "text/html": [ @@ -446,7 +588,7 @@ " COMMERCIAL METALS CO\n", " LONG\n", " S1S2\n", - " 3.2\n", + " 1.41\n", " \n", " \n", " 10\n", @@ -602,6 +744,83 @@ " S1S2\n", " 2.83\n", " \n", + " \n", + " 32\n", + " Pinnacle West Capital Corp.\n", + " LONG\n", + " S1S2\n", + " 2.13\n", + " \n", + " \n", + " 33\n", + " Portland General Electric Co.\n", + " LONG\n", + " S1S2\n", + " 1.95\n", + " \n", + " \n", + " 34\n", + " Public Service Enterprise Group\n", + " LONG\n", + " S1S2\n", + " 1.21\n", + " \n", + " \n", + " 35\n", + " Sempra\n", + " LONG\n", + " S1S2\n", + " 2.35\n", + " \n", + " \n", + " 36\n", + " Southern Co.\n", + " LONG\n", + " S1S2\n", + " 2.28\n", + " \n", + " \n", + " 37\n", + " STEEL DYNAMICS INC\n", + " LONG\n", + " S1S2\n", + " 1.65\n", + " \n", + " \n", + " 38\n", + " TC Energy Corp.\n", + " LONG\n", + " S1S2\n", + " 1.27\n", + " \n", + " \n", + " 39\n", + " TENARIS SA\n", + " LONG\n", + " S1S2\n", + " 1.65\n", + " \n", + " \n", + " 40\n", + " TIMKENSTEEL CORP\n", + " LONG\n", + " S1S2\n", + " 1.45\n", + " \n", + " \n", + " 41\n", + " UNITED STATES STEEL CORP\n", + " LONG\n", + " S1S2\n", + " 1.52\n", + " \n", + " \n", + " 42\n", + " Xcel Energy, Inc.\n", + " LONG\n", + " S1S2\n", + " 2.04\n", + " \n", " \n", "\n", "" @@ -617,7 +836,7 @@ "6 Black Hills Corp. LONG S1S2 1.99\n", "7 CARPENTER TECHNOLOGY CORP LONG S1S2 1.72\n", "8 CMS Energy Corp. LONG S1S2 1.93\n", - "9 COMMERCIAL METALS CO LONG S1S2 3.2\n", + "9 COMMERCIAL METALS CO LONG S1S2 1.41\n", "10 Cleco Partners LP LONG S1S2 2.44\n", "11 Consolidated Edison, Inc. LONG S1S2 1.65\n", "12 DTE Energy LONG S1S2 2.85\n", @@ -639,16 +858,28 @@ "28 PG&E Corp. LONG S1S2 1.82\n", "29 PNM Resources, Inc. LONG S1S2 1.74\n", "30 POSCO LONG S1S2 1.72\n", - "31 PPL Corp. LONG S1S2 2.83" + "31 PPL Corp. LONG S1S2 2.83\n", + "32 Pinnacle West Capital Corp. LONG S1S2 2.13\n", + "33 Portland General Electric Co. LONG S1S2 1.95\n", + "34 Public Service Enterprise Group LONG S1S2 1.21\n", + "35 Sempra LONG S1S2 2.35\n", + "36 Southern Co. LONG S1S2 2.28\n", + "37 STEEL DYNAMICS INC LONG S1S2 1.65\n", + "38 TC Energy Corp. LONG S1S2 1.27\n", + "39 TENARIS SA LONG S1S2 1.65\n", + "40 TIMKENSTEEL CORP LONG S1S2 1.45\n", + "41 UNITED STATES STEEL CORP LONG S1S2 1.52\n", + "42 Xcel Energy, Inc. LONG S1S2 2.04" ] }, - "execution_count": 13, "metadata": {}, - "output_type": "execute_result" + "output_type": "display_data" } ], "source": [ - "amended_portfolio[['company_name', 'time_frame', 'scope', 'temperature_score']]" + "with warnings.catch_warnings():\n", + " warnings.simplefilter(\"ignore\")\n", + " display(amended_portfolio[['company_name', 'time_frame', 'scope', 'temperature_score']])" ] }, { @@ -663,9 +894,18 @@ "cell_type": "code", "execution_count": 14, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Temperature Score aggregation method = PortfolioAggregationMethod.WATS\n" + ] + } + ], "source": [ - "aggregated_scores = temperature_score.aggregate_scores(amended_portfolio)" + "aggregated_scores = temperature_score.aggregate_scores(amended_portfolio)\n", + "print(f\"Temperature Score aggregation method = {temperature_score.aggregation_method}\")" ] }, { @@ -676,13 +916,13 @@ { "data": { "text/html": [ - "2.076113966565336 delta_degree_Celsius" + "2.0064657077628114 delta_degree_Celsius" ], "text/latex": [ - "$2.076113966565336\\ \\mathrm{delta\\_degree\\_Celsius}$" + "$2.0064657077628114\\ \\mathrm{delta\\_degree\\_Celsius}$" ], "text/plain": [ - "2.076113966565336 " + "2.0064657077628114 " ] }, "execution_count": 15, @@ -694,6 +934,13 @@ "aggregated_scores.long.S1S2.all.score" ] }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Display aggregation data in various ways" + ] + }, { "cell_type": "markdown", "metadata": {}, @@ -730,9 +977,9 @@ "The aggregated scores can then be used, for example, to show the relation between sectors and regions with respect to temperature score.\n", "A visualization of this relation is shown in the heatmap below. The grey fields indicate that the portfolio contains no assest for those combinations.\n", "\n", - "##### Quick analysis\n", + "#### Quick analysis: Heat Map\n", "\n", - "We can see here that our Suth American Steelis in reasonable shape. While Asian Steel can be improved as shown in the drill down below the graph\n", + "We can see here that our North American Steel is in reasonable shape. While Asian Steel can be improved as shown in the drill down below the graph\n", "\n" ] }, @@ -743,7 +990,7 @@ "outputs": [ { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAQEAAAEaCAYAAAAR/eKlAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/YYfK9AAAACXBIWXMAAAsTAAALEwEAmpwYAAAkPUlEQVR4nO2deZgdVbW+36+TSAKJYQgSiCFcEWRQjBgEFCWMAooEQUkuFxVQ9AoCIk7A7wLXAa5cRAYVg2AEGS6KzCgg8yBCwDAPKoTBQDCEMQljvt8fezdUOt2nT3dX9+k6Z73PU0+fU3tX1arqOl+tvWrvtWWbIAhal7ZGGxAEQWMJEQiCFidEIAhanBCBIGhxQgSCoMUJEQiCFidEIBjUSPqDpM832o5mpqYISHqpsCyWtKjwffeBMrJMJM2WtHWj7Qjqw/b2tn/daDsajaQjJP2mP/Y9tFah7ZEFI2YDX7T9p/4wpAwkDbX9etWP0RMaaU89xx5s16s/kDTE9huNtqMWNf8PtutagNnA1vlzG/Ad4B/AM8C5wIq5bA3AwJ7A48CzwFeAjYC7gOeAkwr7/QJwE3Ai8DzwALBVoXw0cCrwJPBP4PvAkA7bHgfMz2VrAldnu+YBZwLL5/pnAIuBRcBLwLeAycATNc71COB3wG+AF4Av1rKpk+v2IWBm3nYu8ONC2WbAzfmaPA58oXDOpwP/Ah4FDgPaapzzMsD/Ao/lY5wMjOjCnlKvdyf779H1AoYAx+b/1SPAfqT7Z2guv5b08IF03x2Wr8nT+RqN7nDffT5fh3nAoTXu5xn5Ol0JvAhcB0wolK+Ty+YDDwKf7bDtz4HLgAXke6WT6/xw3vcjwO6Fsr2A+0m/jcs7HHf9wnHnAocA2wGvAq+R7ts7c93VgIty3b8DX6r1f+jyWvRSBA4EbgHeSboBfwGc3eGfcTIwHNgWeBm4AHgHMC7/AzcvXKzXga8Dw4DdSDdnu6hckPe/XN7+VuDLHbb9GsmrGQG8G9gm27UycD3wk87OI3+fTPci8BowhXQTjqhlUyfX7c/AHvnzSGCT/Hn1fINMy+e9EjAxl50OXAiMytfzIWDvGuf8k3wzrJi3uRg4qoYIlHa9uxCBuq8X6QFxH+leWgH4E12LwF6km/1d+Vr+Hjijw313Sj7m+4FXgHVriMCLwMdI98rxwI25bDmSKO+Zz3NDkqisX9j2eeAj+RyHd9j3cqQf3nvy91UL207J57Bu3vdhwM25bBRJKL9B+u2MAjYuXNffdDjOdcDPct2JpIfGVl39H8oWgftZ8umxaj7g0MI/Y1yh/Blgt8L384ADCzfWHECF8luBPYBV8j9yRKFsGnBNYdvHurF7CvDXPorA9YWymjZ1cvzrgSOBMR3Wfxc4v5P6Q/L+1yus+zJwbWfnDIj0NFqzsG5T4JEaItCf17tH14vktX25ULY1XYvAVcBXC3Xf08l9984O5zW1hgicU/g+EngDGE8Sxhs61P8FcHhh29NrXIPlSN7dLnT48QF/IAt6/t4GLAQm5Ovy1y72eQQFEch2vgGMKqw7CpjR2f+h1lIzJlCDCcD5khYX1r1B+oe3M7fweVEn30cWvv/T2fLMoyRXZwLpafWkpPayNpJKt1P8jKR3ACcAHyUpaRvJ7eoLxWPUY1ORvYH/Bh6Q9AhwpO1LSP/Ef3RSfwzwNtI1aOdRkgfVmT0rA8sCtxfsEUlMuqK0690FPbleq/Vg/6ux9HUZypL33VOFzwtZ8j7r0k7bL0maz1vXYWNJzxXqDiU1J7u10/YCSbsBBwOnSroJ+IbtB/K+j5d0bGETkf6/Xd0TnbEaMN/2i4V1jwKT6rGxSG9F4HFgL9s3dSyQtEYv9jdOkgo35uok9/Zx0lNkjLsOLrnD96Pyug1sPyNpCnBSjfoLSD+idvuHkH5YXR2jHpve2tD+GzBNUhvwaeB3klbK+/lQJ5vMIz3dJpDcZEjX459d2DOPJKrr2y7WqUWZ17u7Ot3t80lSU6Cd8TX2O4d0XdpZndQ8mdthH/Xy5rEkjSQ1p+Zkm6+zvU2NbWteB9uXA5dLGkGKgZxCejA9DvzA9pkdt5HU7g3Uc7w5wIqSRhWEoNZ90iW97SdwMvCDbDSSVpa0Uy/3BamduL+kYZI+Q2ovXWb7SeAK4FhJb5fUJmlNSZvX2NcoUvDkOUnjgG92KJ9LalO28xAwXNInJA0jtdGW6WrnPbVJ0n9IWtn2YpKLCMlrOhPYWtJnJQ2VtJKkiU5R5nNJ13dUvsYHkQI8ndmzmHSDHZe9ICSNk/Txrs6Bcq93TerY57nAAdnm5YFv19jd2cDXJf1b/tH+EPi/esS4C3aQtJmktwHfA/5i+3HgEmBtSXvkazRM0kaS1q1np5JWkfQpScuRBPAl0v8c0m/nu5LWz3VH5/8B+bhjJR0oaZn8/984l80F1sgPE7KdNwNHSRouaQOS17mUuHRHb0XgeNKT4wpJL5KChBvX3qQmfwHWIj3VfgDsavuZXPY5knt8H8mt/x0pBtEVR5ICOc8Dl5KCR0WOAg6T9Jykg20/D3wV+CVJRRcAT3Rjb09s2g64V9JLpOs21fbLth8DdiAFgeYDs0jBLEiBtwWk6PKNwFnAaTXs+TYp2HSLpBdIwbX31Khf5vWuh1r7PIUkEncBfyVF3F/nrR9NkdNILvn1pIj7y6Rr1VvOAg4nXf8PArsD5CfrtsBU0hP3KeB/qPFw6EAb6f86J+97c9I9hu3z877Oyf+re4DtC8fdBtgxH/NvwBZ5n7/Nf5+RdEf+PI0UC5kDnE+KWVzZg/MHcnCokUj6Ainws1lDDWkRBvv1lrQ9cLLtCd1W7ttxZpACwof153GqQHQbDhqKpBGSdshNonGkJ/P5jbarlQgRCBqNSE24Z0nNgfuB/2qoRS1Gw5sDQRA0lvAEgqDFCREIghant52Fgh6wrOTlG21EDVYc8bZGm1CTexe9Os/2Eh241pK8sJvt5sDltrfrR9OaghCBAWB5YJ9GG1GD3dYe22gTarLenY892nHdQtLIo1r8V+qCHXRDiEBQSUTcvGUR1zGoLOq+SlAHERgMKsuQbpbukDRe0jWS7pd0r6QDOqmzjqQ/S3pF0sFl2j9YCE8gqCSilCfY66QhvndIGkUajn2l7fsKdeYD+5PyUjQl4QkElaWvnoDtJ23fkT+/SOqtOK5Dnadt30Ya3t2UhCcQVJI6PYExkmYWvk+3Pb3T/aU8GB8gjbBsKUIEgspSx9N+nu1J3VXKuQnaU9690HfLqkWIQFBJSooJkBPJnAecabtj7omWIEQgqCz1tPtroZT08FTgfts/LsGkShIiEFSSkjyBj5CyLN8taVZedwgpVx+2T5Y0ljRvxNuBxZIOJGWCbppmQ4hAUFn66gnYvpFu+hzZforeJTGtDCECQSUpKyYQhAgEFaW7iRWC+gkRCCpLeALlECIQVJYYQFQOIQJBJYnmQHnU7VFJcnH+NEkHSzqiJweTNFnShwvfZ0jatc5td842rNOTY/bQvkmSTuiv/Qfl0tbNEtRHT67VK8CnJfUqW4ukoaQZgD/cTdWumEaajWdqL7eviaShtmfa3r8/9h+US7sn0JcBREGiJyLwOjCdNK/9EkiaIOkqSXflv6vn9TMk/VjSNcD/kTJCfV3SLEkfzZt/TNLNkh7uyivIfbs/QpprbWph/WRJ10k6V9JDko6WtLukWyXdLWnNXG9lSedJui0vH8nrj5A0XdIVwOl5f5e0H1PSr/J+7pK0S17/c0kz8/jzI3tw/YKSCU+gHHp6rX4K7C5pdIf1J5Hma9+ANCFi0aVeG9ja9i6kyRiPsz3R9g25fFVgM+CTwNFdHHcK8EfbDwHzJW1YKHs/cADwPlLvr7Vtf4g0t2D7PHXH5+NuRJoz/peF7T8I7GT73zsc8/8Bz9t+Xz6vq/P6Q/OglA2AzfNEkEshaZ8sFjO7S4gZ9JzwBMqjR4FB2y9IOp2UZGFRoWhT0rTbkCaM/FGh7Ld5pt2uuCDPrHufpFW6qDMN+En+fE7+3j4p42155lsk/YM0uSXA3bw1mePWwHqpqzgAb89JJAAusl08FwrbvOl12H42f/yspH1I125VYD3SZJpLkIesTgdYTYoZXvoBtXXzfmBxXPZ66M3bgZ+QfoC/qlGnePUXdLO/Vwqfl/qvSloJ2BJ4r9KPaQhgSd/qZPvFhe+Leev82oBNO/7Ysyh0ZZ86nAeS/g04GNjI9rN5UsvhtU4u6B8kGDKkG0d2ca1nT9BOj5tOtueT5pTfu7D6Zt56au5OCuB1xovAqC7KumJXUlNjgu01bI8nTUvdk1l1rwD2a/8iaWIvtlmBNIhkAfB89lq274ENQclIqrkE9dHb+MmxLJnTfX9gT0l3kdrlSyVszFwM7NwhMNgd01h6ltrzgI5t+FrsD0zKAb776D5lPcD3gRUk3SPpTmAL23eSJs28FzgNuKkHNgSlItqGtNVcgvqICUkHgNUkD+rJR96/eqNNqMl6dz52e8cMQWsPafPPupk5aZsFryy1XbA00WMwqCSCeNqXRIhAUE2i3V8aIQJBJRF1vB0I6iJEIKgmqqOfQFAXIQJBRVHEBEoiRCCoLBETKIcQgaCSSPF2oCxCBILK0hYxgVIIEQiqSbwiLI0QgaCSRGeh8ggRCKqJQKEBpRAiEFSW8ATKIUQgqCRCtEVMoBRCSoNqkl8R9mUosaTxkq6RdH/OGbnUEHglTpD09zwUfcPO9lVlwhMIKksJ3YZfB75h+46cbu52SVfavq9QZ3tgrbxsDPw8/20aQgSCSiL1vdtwzk35ZP78oqT7gXFAUQR2ImW2MnCLpOUlrdqe17IZCBEYAJZfd112POOMRpvRJeuuv0ajTajNiM6nuqijn8AYSTML36fnBLCd7WsN4APAXzoUjQMeL3x/Iq8LEQiChiJoG9ptYvF59WQWyvNanAccaPuFpY+0FE2VjitEIKgoSgMI+roXaRhJAM60/ftOqjwBjC98fycwp88HHkTE24Ggkih7ArWW7vchAacC99v+cRfVLgI+l98SbEKakKZpmgIQnkBQYUoYO/ARUnbsuyXNyusOAVYHsH0ycBmwA/B3YCGwZ18POtgIEQiqiYTqeNrXwvaNdN7mL9YxsG+fDjTICREIKkuMIiyHEIGgkkhCQyOkVQYhAkFlUQwjLIUQgaCaRLbh0ggRCCqK0JC+BQaDRIhAUE3CEyiNEIGgkkR6sfIIEQiqiQRtIQJlECIQVJbwBMohRCCoJhIKT6AUQgSCSiJA4QmUQohAUE3i7UBpNJWUSlpF0lmSHpZ0u6Q/S9pZ0mRJl3Sz7RGSDu7h8V7qm8VB7xFtQ4bUXIL6aBoRyGPDLwCut/0u2x8EppKSQATNhoA21V6CumgaEQC2BF7NY8ABsP2o7ROLlSStKOmCnD76FkkbFIrfL+lqSX+T9KVcf6SkqyTdIeluSTsNzOkEtVB4AqXRTDGB9YE76qh3JPBX21MkbQmcDkzMZRsAmwDLAX+VdCnwNLCz7RckjSFlnL0ojzMPGkXEBEqjmTyBJZD0U0l3SrqtQ9FmwBkAtq8GVpI0OpddaHuR7XnANcCHSI7nDyXdBfyJlGl2lTqOv4+kmZJmPvvssyWdVVBEQ9pqLkF9NNOVuhd4c3YY2/sCWwErd6hXK3tsx6e7gd3zPj5oeyIwFxjenTG2p9ueZHvSCiusUNcJBD1AdSxBXTSTCFwNDJf0n4V1y3ZS73rSDxtJk0lpqdvTTO8kabiklYDJwG3AaOBp269J2gKY0D/mBz1Fbaq5BPXRNDEB25Y0BThO0reAfwELgG93qHoE8Kvs3i8EPl8ouxW4lJRo8nu250g6E7g4T2IxC3igP88jqJd4A1AWTSMC8Oa0UlO7KL4215lPmlqq47ZHdLHPecCmXZSN7I2dQd9ROdMOBDSZCAQtxpBQgTIIEQgqS2QbLocQgaCaRD+B0ggRCKpLiEAphAgE1UTxGrAsQgSC6hIaUArN1FkoaDE0RDWXbreXTpP0tKR7uihfQdL5ebDZrZLeW/pJDAJCBIJqIt7qLNDV0j0zgO1qlB8CzLK9AfA54Pg+2z0ICREIKklKL9Y3T8D29cD8GlXWA67KdR8A1pDU7eCxqhEiEFSWOhyBMe0jOfOyTw8PcSfw6XQsfYg0bqTpktREYDCoJvW9HZhne1IfjnI0cLykWcDdwF+B1/uwv0FJiEBQXfr5FWEeXbonvJm+7pG8NBUhAkE1GYAeg5KWBxbafhX4Iil/5Qu1t6oeIQJBdenj2AFJZ5PyRoyR9ARwODAMIOeqXBc4XdIbwH3A3n064CAlRCCoLPW8AaiF7WndlP8ZWKtPB6kAIQJBNYkUYqURIjAALPviXCZe/+NGm9Elt3NQo03oMUKRTLQkQgSC6hL5BEohRCCoJu0zEAV9JkQgqCiCtphlqAxCBIJqEp5AaYQIBBVFEPMNlkKIQFBdIjBYCiECQTUR4QmURIhAUFEEbdFPoAxCBIJqIkIESiJEIKgo4QmURYhAUE1EdBsuiRCBoLooRKAMQgSCaiJBeAKlECIQVJeICZRCiEBQTRSBwbIIEQiqS4hAKYQIBNVEREygJEIEgoqieDtQEpUXgZwJ9u7CqnNsH90oe4IBJIYSl0LlRQBYZHtibzaUNNR2080o0xIohhKXRdP6U5JmSxqTP0+SdG3+fISk6ZKuIOWUnyDpqjz99FWSVs/1Zkg6WdINkh6S9Mm8foikYyTdlrf5cqPOseXp+6zEAc3hCYzIc8W1c5Tt/+tmmw8Cm9leJOli4HTbv5a0F3ACMCXXWwPYHFgTuEbSu0lTVD9veyNJywA3SbrC9hLTU+XJL/cBWH2FZft0gkEXRHqxUmgGEehNc+Ai24vy503JM88CZwA/KtQ71/Zi4G+SHgbWAbYFNpC0a64zmjRBxRIiYHs6MB1g0viV3EP7gu6IeQdKoxlEoCte563mzvAOZQtqbOcuPrd/F/A125f3zbygb0RnobJo5qs4m+T2A+xSo97NwNT8eXfgxkLZZyS1SVoTeBfwIHA58J+ShgFIWlvScmUaHtRJxARKoRlEYISkWYWl/fXgkaS55W8A3qix/f7AnpLuAvYADiiUPQhcB/wB+Irtl4FfkianvEPSPcAvaG6PavDSRxGQdJqkp/P/sbPy0ZIulnSnpHsl7Vn6OQwCKn/z2u40OmT7BmDtTtYf0eH7bGDLLnZ/k+2vd6i/GDgkL0GjEGU87WcAJwGnd1G+L3Cf7R0lrQw8KOnMPFV501B5EQhalb7HBGxfL2mNWlWAUZIEjATmk2JNTUWIQBfY/kKjbQi6o9/b/ScBFwFzgFHAbtkTbCqaISYQtCptqr3AGEkzC8s+PTzCx4FZwGrAROAkSW8v9RwGAeEJBNWkvpjAPNuT+nCUPYGjbRv4u6RHSH1Fbu3DPgcd4QkEFSWPIqy19J3HgK0AJK0CvAd4uIwdDybCEwiqSx/fDkg6G5hMajY8ARwODAOwfTLwPWCGpLtJvse3bc/r00EHISECQXXp41Bi29O6KZ9D6ibe1IQIBBUmegWWQYhAUE2ia3BphAgE1SUyC5VCiEBQXcITKIUQgaC6RKLRUggRCKpJxARKI0QgqC4hAqUQIhBUlxCBUggRCKpLpBcrhRCBAWDhqFWY9bGDGm1Gl2z4jmcbbUIviEyjZREiEFQTESnHSyJEIKgo4QmURYhAUF3CEyiFEIGgwoQnUAYhAkFFESg8gTIIEQiqSTkpxwNCBILKohg7UBIhAkF1CREohRCBoLqECJRCiEBQUaI5UBYhAkE1ESgCg6UQIhBUlHhFWBYhAkGFCU+gDEIEguoS3YZLIUQgqCgxgKgsQgSCahJDiUsjRCCoMOEJlEFLv2iVtLMkS1qnm3qXSVp+gMwK6iK/Hai1dLcH6TRJT0u6p4vyb0qalZd7JL0hacXST6XBtLQIANOAG4GptSrZ3sH2cwNiUVA/7WnHu1q6ZwawXVeFto+xPdH2ROC7wHW255di+yCiZUVA0kjgI8DeZBGQtKqk6wvK/9G8frakMfnzBZJul3SvpH0adgItT989AdvXA/X+qKcBZ/fF4sFKK8cEpgB/tP2QpPmSNgS2AC63/QNJQ4BlO9luL9vzJY0AbpN0nu1nBtDuoJ0B6jEoaVmSx7DfgBxwgGllEZgG/CR/Pid/vxg4TdIw4ALbszrZbn9JO+fP44G1gKVEIHsJ+wCMHTu2VMMD8hvCbh3ZMZJmFr5Ptz29F0fbEbipGZsC0KIiIGklYEvgvZIMDAEMfAv4GPAJ4AxJx9g+vbDdZGBrYFPbCyVdCwzv7Bj5ZpsOsN5667nfTqZlqaufwDzbk0o42FSatCkArRsT2BU43fYE22vYHg88QhKAp22fApwKbNhhu9HAs1kA1gE2GVCrgyXpY0ygrkNIo4HNgQtL2eEgpCU9AZLrf3SHdeeRosULJL0GvAR8rkOdPwJfkXQX8CBwSz/bGdSijzEBSWcDk0nNhieAw4FhALZPztV2Bq6wvaBPBxvEtKQI2J7cyboTgBO6qL9G4ev2/WNV0DP6nk/A9rQ66swgPRyalpYUgaBZiB6DZRAiEFSXSCpSCiECQTVRpBcrixCBoMKECJRBiEBQXcITKIUQgaCiRFKRsggRCCqLwhMohRCBoLrE24FSCBEIqoki5XhZhAgEFSY8gTIIEQiqS8QESiFEIKgodacQC7ohRCCoLuEJlEKIQFBhwhMogxCBoKLE24GyCBEIqomImEBJyI70d/2NpH8Bj5a4yzHAvBL3VzZl2zfB9srFFZL+mI9Ti3m2u5xXIEiECFQQSTNLSqDZLwx2+4IlifBqELQ4IQJB0OKECFST3kygMZAMdvuCAhETCIIWJzyBIGhxQgSCoMUJEQiCFidEYJAhpW5wGqS5syS9rdE2BOUyKG+0VkWSbFvSp4CfD7YfnKT3AXtLGtdoW4LyCBEYRGQB2AE4Evit7VfbPYNBwmqkqdl3kLRao40JyiFEYBCRf/BbAIcA92SP4CxJ20paplGC0H5c25cDvyBN1f2pEILmIEYRNpj2JgC86QnMB/YBVgIuBxYCuwPXugGdOor2ZRuvkPQccGAuv8j2nIG2KyiPEIEGUogBbAesBxj4EbAZMMf23yStTZoaeyzw2EDb2C4Akr6SbVwInAIcD+wHLJZ0me0nBtq2oBxCBBpIFoBtgaOALwN/AMbYPhQgNwd+CBxie8AFoB1J+wI7A98FjgOG2P6mpOVIHsHrkn5t+41G2Rj0nhCBAUbSKsAI27NzW3sn4AukJ/2DwMmF6uOAA23/qaNbPsCsBHwK+CLwInCopGVsXy1pEfBoCEB1CREYQCQtQ/oxXSdpuO2XJT1D8gLWAb5g+3FJ/wG8bPvn7dsOlAB0ITZjgZnA/ba3z/W+Immh7dMHwq6g/4i3AwOI7VeAs4D5wLGSVgduAPYCjrL9kKRJJLf7mYG2rygAknaWtIOkjYCjsz0zc9mewAHALQNtY1A+MYpwAJA0Ahiff+QTSAG2jwEjgMNJ3sE3gTuA9YHv2b6ogfYeBOwIXAx8Fvg+8DTwU+ARYDywt+37GmVjUB4hAgNA7mn3SWAFYENgGrAqsAuwInAYMJIkCsNs3z+QMYDCWwqROgSdYHsXSf8NTAR2yuVDso1DbT83ELYF/U80B/oRSe+StAUp4Dce2Be40fa/bN8FXEhKyPm/wPK2/277fhjQGMCowrHGkp74SDqRJACfzQIwjZTw86UQgOYiAoP9ywRgEfA6Keq/AFhR0lTb59i+IzcVJpP6CAwokkYDn5f0IjAM2Nn29pIeBqYAW+fg5V7A/kBk7m1CQgT6AUnvJr0GvEbSisC9wHfzu/V9gG1yr7vZwFrAKbafHmAbPwFsAvwe+BPwMqmpAnAm8CpwoaQrgO2BqbafGkgbg4EhmgP9w5bAnZIm2p5PCv4dLmlH29OBP5O6Bt8A/LMBAvBJUieku4C7gROBF0ixCmzPyh2WvgVcSYoJ3DuQNgYDR3gCJSJpDeBF29MlDQWulrSV7XMlvQr8UNJi27+UdCnwDtt3DrCNY4FvAF+0fVtefYSkS4BzJb1h+0RJuwIP2L5nIO0LBp4QgXL5LHCtpOdt/0zSMOCqLAQXSDJwkqTRts8CnmyAja8ArwEv53jEt0kjF+cCT5B6A76X1P7ftgH2BQNMvCIsGUljSC70J2zPkXQAqTmwpe1ZknYmTY91Q4PsE3AQ6Qe+PikecCNwP+k15mzgn8A9tmc3wsZgYAkR6COSRgKr5hF/mwJ/AX4GvBfY1fZTkvYjDbzZ2PYdebuGjQXINr+P9NrywtyTEUkzgEtt/7YRdgWNIUSgDxQ618wAbicNBtrF9n35PfuHSEG1pyR9nfR0vbJhBtdA0meA75D6Bfyj0fYEA0eIQC/JAbYtbJ8t6cvACaTuvt8v1DkB2Ir0vv3JvK6RowGXQtKqwG7Al4DdIhDYesQrwt4zCfh3SXsAj5Ne+X0+P1EBsL0/cAGwZmHdoBGAzHPA30geSwhACxJvB3qJ7Uty9H8n4Brbv5b0FClL8AukCPzupFdxg+2H/ya2FwGXNtqOoHGECPQApVTbE2zfDGD7fKX5AT4tiSwEB5KGAg8FfjKYBSAIIESgbnIQcCvgS5IOtX09gO3zJC0mNQ0esn2RpNty2ZODLQYQBB2JwGAPkLQSKdfeFOAY29cVyg4BNgY+Ham2gioRnkAPsP2MpN+TAqoH5yZAuxDcTBqKu7hhBgZBLwgR6CG250v6HenHfrikU4E5wLHAf4XrH1SNaA7UQX6X/gKwsJCD723Ax4GvkbrZnpffGEQMIKgUIQLdkAXgf4GDc6CvzfbiQvkw4A3bi0MAgioSnYW6Iff0e5WUbJOiAOTvr7WvCwEIqkiIQAfye38kjZW0Vl79HeAlpYlD3pygMwiagQgMZiQtC7zuNB34B0k59d6Q9Bjwc2Bd0vDbM+KJHzQTERPISNoS+AwpF8C2wK+Ap4CTSOPtp5Hy8O1m+9FG2RkEZdPyzQFJ43Kw72pSduDfABfY/kv+se8E/BY4lTQj7zsbZ20QlE/LiwApmeZ7cyzgFtLMwPvldNzYXmz7YdsnAucAB+X8gUHQFLS8CNg+gNQH4NfA0bZ3IQ0N/i28OYHIbrn6v4DRwJBG2BoE/UHLikB7hF/SyJxL753Ab7JHsC/wmKS7gItIP35ISTr3b0/HFQTNQEsGBgtz732CNLHGt2wvzGm3F/HW1Fu7AI/bvrW4XQNND4LSaUkRAJC0GTAd+JLtmwrrLwCGA9sXugjHjz9oWlqmOSBpvKQPF1ZNBs62fZOkIbn7L7ankLICtU/JFT0Bg6amJaLcuZ3/fuBxSW+3/QJpNuB/a69i+zVJmwBzbe/YKFuDYKBpCU8gv+a7BPg7cJakbYArgO0kfRoYK2lDUgehFRtoahAMOE0fEygEAbckdQYSKTvQocDbSLMDLQTGAT+yfVHDjA2CBtD0zYEsABuQBgEdRPIGDPwPcKjtHSWtAIy2PTuCgEGr0ZQiUPwhS1qTNCfA3Pa8+pIuJGUG+rGkY2xfCjwLEQQMWo+miwlIGg5smj+/G5gIPAOsKmkHSCnCgEtIvQTnNsbSIBgcNF1MIM8NsCOwDWnSzQ8DbwBfJXX5vbJ9PkBJQ22/3ihbg2Aw0HSegO1/kt7z7wz8xfY8288CZwDzgR0LHkEIQNDyNI0IFMYCrEsa/LMH8KCkoyWNtf0YcBmpaRCz7gZBpqmaA5K2I3UF/pTtWZI2Bz5JSgZyB6kX4MnZWwiCgObyBFYHjgZ2tz0LaJ8Y5OJc5RjgthCAIFiSynsChc5AE4Bjbe+a1w+3/bKkYblL8FjbT0U/gCBYksp6AoWMv8vlv3OA1SR9AyALwDbAcXnswNy8PgQgCApUsrNQ4en/ceCreRbgJ4ADSFODvQu4BjgMOLzjXAFBELxFZZsDkj4K/Az4IrAfsAywJ/AO4LukTMF/tv2HaAIEQddURgRyJ6CVgbvylF+fIXX1XQCcCOxi+1FJK9v+V2G7EIAgqEGVYgJTgBOAD+TvC4EZpIlBts0C8HHga5La4wQRAwiCbhj0IpCz/U61/VNSDoAjJE0CrgN+B9yZ632UND34rbYXNMzgIKgYg1oEJL0H+H37d9vfB24i5QBYhzQAaDbwR1IQ8JD26cEH3togqCaDNiYgaT1S4O8M26fmHIDvs32HpMNJ6cJ+YPt2SSMBbL8UMYAg6BmD0hPIP/iLgBezAAwhPe03B7B9JKkb8DGSNrL9ku2XclkIQBD0gEHZTyD38JsGXCppX9Jw4Fm2jyvU+b6klxtmZBA0CYO2OQCQA4BXAg/Y3rSwfhNgou2TG2ZcEDQJg7I50I7tmaT5AdaR9CWAPHfAKaRcgUEQ9JFB7Qm0kz2Cy0h5At4H/E/OCxgEQR+phAgASNoIuBrYw/YFDTYnCJqGyogAvDmDcLwGDIISGdQxgU6InoBBUDKV8gSCICifqnkCQRCUTIhAELQ4IQJB0OKECARBixMiEAQtTohAELQ4/x+C0Cc+BlZgRAAAAABJRU5ErkJggg==\n", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAQEAAAEaCAYAAAAR/eKlAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/YYfK9AAAACXBIWXMAAAsTAAALEwEAmpwYAAAkpElEQVR4nO2daZgdVbWG368TIIFgGIIEIoQrggwKkUFAUWYEFAmDQuQ6AIpeQUDFCbiXcB3gioiAAwbBCIKIgswKyBQGGWMIo6jMhimEMQky5Ls/9m4omu5zTudU9+k6Z73PU0+fqtpVtaq66qu1V+29l2wTBEHn0tVqA4IgaC0hAkHQ4YQIBEGHEyIQBB1OiEAQdDghAkHQ4YQIBEMaSX+U9OlW29HO1BQBSS8UpgWS5hfm9xwsI8tE0gOStm61HUFj2N7e9q9abUerkTRZ0q8HYt/Da620PapgxAPAZ23/eSAMKQNJw22/UvVj9IdW2tPIsYfa9RoIJA2z/Wqr7ahFzf+D7YYm4AFg6/y7C/gm8E/gKeAsYJm8bhXAwF7Aw8DTwBeADYGZwDPAjwv7/QxwHXAC8CxwD7BVYf1o4GTgUeBfwHeAYT22PRaYk9etClyR7ZoNnA4slcufBiwA5gMvAF8HNgceqXGuk4HfA78GngM+W8umXq7be4Fb8raPAz8srNsUuD5fk4eBzxTO+VTgSeBB4DCgq8Y5Lwb8AHgoH+NEYGQf9pR6vXvZf7+uFzAMOCb/r+4H9ifdP8Pz+qtILx9I991h+Zo8ka/R6B733afzdZgNHFrjfp6ar9NlwPPA1cD4wvo18ro5wN+Aj/fY9mfAxcBc8r3Sy3W+L+/7fmDPwrq9gbtJz8YlPY67duG4jwOHANsBLwEvk+7b23LZFYHzc9l/AJ+r9X/o81ospAgcBNwAvI10A/4c+E2Pf8aJwAhgW+BF4FzgrcC4/A/crHCxXgG+DCwC7E66ObtF5dy8/yXy9jcBn++x7ZdIXs1I4B3ANtmu5YBpwI96O488vzn1ReBlYCLpJhxZy6ZerttfgE/m36OAjfPvlfMNMimf97LAhLzuVOA8YMl8Pe8F9qlxzj/KN8MyeZsLgCNriEBp17sPEWj4epFeEHeR7qWlgT/TtwjsTbrZ356v5TnAaT3uu5PyMdcF/g2sWUMEngc+SLpXjgOuzeuWIInyXvk81yOJytqFbZ8F3p/PcUSPfS9BevDemedXKGw7MZ/DmnnfhwHX53VLkoTyq6RnZ0lgo8J1/XWP41wN/DSXnUB6aWzV1/+hbBG4mze+PVbIBxxe+GeMK6x/Cti9MH82cFDhxpoFqLD+JuCTwPL5HzmysG4ScGVh24fq2D0R+GuTIjCtsK6mTb0cfxpwBDCmx/JvAX/opfywvP+1Css+D1zV2zkDIr2NVi0s2wS4v4YIDOT17tf1Inltny+s25q+ReBy4IuFsu/s5b57W4/z2qOGCJxZmB8FvAqsRBLGa3qU/zlweGHbU2tcgyVI3t2u9Hj4gD+SBT3PdwHzgPH5uvy1j31OpiAC2c5XgSULy44Epvb2f6g11YwJ1GA88AdJCwrLXiX9w7t5vPB7fi/zowrz/3K2PPMgydUZT3pbPSqpe10XSaW7Kf5G0luB44EPkJS0i+R2NUPxGI3YVGQf4H+BeyTdDxxh+0LSP/GfvZQfAyxKugbdPEjyoHqzZzlgceDWgj0iiUlflHa9+6A/12vFfux/Rd58XYbzxvvuscLvebzxPuvTTtsvSJrD69dhI0nPFMoOJ1Un69ppe66k3YGDgZMlXQd81fY9ed/HSTqmsIlI/9++7oneWBGYY/v5wrIHgQ0asbHIworAw8Detq/ruULSKguxv3GSVLgxVya5tw+T3iJj3HdwyT3mj8zL1rH9lKSJwI9rlJ9Leoi67R9GerD6OkYjNr2+of13YJKkLmAX4PeSls37eW8vm8wmvd3Gk9xkSNfjX33YM5skqmvbLpapRZnXu16Zevt8lFQV6GalGvudRbou3axMqp483mMfjfLasSSNIlWnZmWbr7a9TY1ta14H25cAl0gaSYqBnER6MT0MfNf26T23kdTtDTRyvFnAMpKWLAhBrfukTxa2ncCJwHez0UhaTtJOC7kvSPXEAyQtIuljpPrSxbYfBS4FjpH0FkldklaVtFmNfS1JCp48I2kc8LUe6x8n1Sm7uRcYIenDkhYh1dEW62vn/bVJ0n9KWs72ApKLCMlrOh3YWtLHJQ2XtKykCU5R5rNI13fJfI2/Qgrw9GbPAtINdmz2gpA0TtKH+joHyr3eNWlgn2cBB2ablwK+UWN3vwG+LOk/8kP7PeC3jYhxH+wgaVNJiwLfBm60/TBwIbC6pE/ma7SIpA0lrdnITiUtL+mjkpYgCeALpP85pGfnW5LWzmVH5/8B+bhjJR0kabH8/98or3scWCW/TMh2Xg8cKWmEpHVIXuebxKUeCysCx5HeHJdKep4UJNyo9iY1uRFYjfRW+y6wm+2n8rpPkdzju0hu/e9JMYi+OIIUyHkWuIgUPCpyJHCYpGckHWz7WeCLwC9IKjoXeKSOvf2xaTvgTkkvkK7bHrZftP0QsAMpCDQHmEEKZkEKvM0lRZevBc4ATqlhzzdIwaYbJD1HCq69s0b5Mq93I9Ta50kkkZgJ/JUUcX+F1x+aIqeQXPJppIj7i6RrtbCcARxOuv7rA3sC5DfrtsAepDfuY8D/UePl0IMu0v91Vt73ZqR7DNt/yPs6M/+v7gC2Lxx3G2DHfMy/A1vkff4u/31K0vT8exIpFjIL+AMpZnFZP84fyMGhViLpM6TAz6YtNaRDGOrXW9L2wIm2x9ct3NxxppICwocN5HGqQDQbDlqKpJGSdshVonGkN/MfWm1XJxEiELQakapwT5OqA3cD/9NSizqMllcHgiBoLeEJBEGHEyIQBB3OwjYWCvrB4pKXarURNVhxvXXrF2oht06/bbbtNzTgWk3yvDrbzYJLbG83gKa1BSECg8BSwL6tNqIGk6+7vNUm1EQjxzzYc9k8Us+jWvxPaoLd936llUidtcaSepdOsX1cjzJrAL8ktT051PYP+mF6JQgRCCqJKOXmfYXUpn+6pCVJ/S8us31Xocwc4ABSR7S2JGICQWVRnaketh+1PT3/fp70eXJcjzJP2L6Z1J+jLQlPIKgstbpJ9pfc8e09pCbVHUWIQFBJRENu7BhJtxTmp9ie8qZ9pc5I3WNcPFeWjVUhRCCoLA14ArNtb1CrQO45ejZwuu2enc06ghCBoJI06AnU3kca5eRk4G7bP2zeqmoSIhBUlhJiAu8nDat2u6QZedkhpME5sH2ipLGkgWLfAiyQdBBp6Le2qTaECASVpAxPwPa11PmQYPsxFm7UosoQIhBUljK/DnQyIQJBJSnDEwgSIQJBZQlPoBxCBIJKEp5AeYQIBJWkXmKFoHFCBILKEp5AOYQIBJWlkU5CQX1CBIJKEtWB8mjYo5LkYv40SQdLmtyfg0naXNL7CvNTJe3W4LY7ZxvW6M8x+2nfBpKOH6j9B+XSVWcKGqM/1+rfwC6Sao7W0heShpMyAL+vTtG+mETKxrPHQm5fE0nDbd9i+4CB2H9QLt2eQK0paIz+iMArwBRSXvs3IGm8pMslzcx/V87Lp0r6oaQrgd+SRoT6sqQZkj6QN/+gpOsl3deXV5C7er6flGttj8LyzSVdLeksSfdKOkrSnpJuknS7pFVzueUknS3p5jy9Py+fLGmKpEuBU/P+Luw+pqRf5v3MlLRrXv4zSbdIulPSEf24fkHJhCdQDv29Vj8B9pQ0usfyH5Pyta9DSohYdKlXB7a2vSspGeOxtifYviavXwHYFPgIcFQfx50I/Mn2vcAcSesV1q0LHAi8m9QZZHXb7yXlFuzOU3dcPu6GpJzxvyhsvz6wk+1P9DjmfwPP2n53Pq8r8vJDc/fUdYDNciLINyFp3ywWt9QbEDPoP+EJlEe/AoO2n5N0KmnMtfmFVZuQ0m5DShj5/cK63+VMu31xbs6se5ek5fsoMwn4Uf59Zp7vTsp4c858i6R/kpJbAtzO68kctwbWSj1HAXhLHlMO4HzbxXOhsM1rXoftp/PPj0val3TtVgDWIiXTfAN58IopACtKkeFlAFBXne8DC+KyN8LCfB34EekB/GWNMsWrP7fO/v5d+P2m/6qkZYEtgXcpPUzDAEv6ei/bLyjML+D18+sCNun5sGdR6Ms+9TgPJP0HcDCwoe2nc1LLEbVOLhgYJBg2rI4ju6DWuyfopt9VJ9tzSDnl9yksvp7X35p7kgJ4vfE8sGQf6/piN1JVY7ztVWyvREpL3Z+supcC+3fPSJqwENssTepTPhd4Nnst2/fDhqBkJNWcgsZY2PjJMbxxTPcDgL0kzSTVyw/sY7sLgJ17BAbrMYk3Z6k9G+hZh6/FAcAGOcB3F/WHrAf4DrC0pDsk3QZsYfs2UtLMO4FTgOv6YUNQKqJrWFfNKWiMSEg6CKwoeUgnH5k/u9Um1EQjx9zac6zA1Yd1+acjF6253TZz//2m7YI3Ey0Gg0oiiLd9SYQIBNUk6v2lESIQVBLRwNeBoCFCBIJqogbaCQQNESIQVBRFTKAkQgSCyhIxgXIIKQ0qiUTT7QQkrSTpSkl35w5hb2rfosTxkv6R25ms19u+qkx4AkFl6Wo+JvAK8FXb03NfklslXWb7rkKZ7YHV8rQR8LP8t20ITyCoJnWaDDdSVbD9qO3p+ffzwN3AuB7FdiI1W7ftG4ClJK1Q9um0kvAEgkrSYGOhhlKTA0haBXgPcGOPVeOAhwvzj+Rlj/bH3qFMiEBQTQSq78fWTU0Orw1aczZwUC+JRntzKdqqrX2IQFBZyvhEKGkRkgCcbvucXoo8AqxUmH8bMKvpAw8hIiYQVBIhulR7qruPFDg4Gbjb9g/7KHY+8Kn8lWBj0mhTbVMVgPAEgqqiUjyB95O6vt8uaUZedgiwMoDtE4GLgR2AfwDzgL2aPehQI0QgqCzNNhu2fS11cpg49bXfr6kDDXFCBIJKIkWz4bIIERgEllpzTXY87bRWm9EnfuqOVpuwUESz4XIIEQiqiaBreAwsXgYhAkFFUepAEDRNiEBQSRSeQGmECASVJWIC5RAiEFQTCYUnUAohAkFlCU+gHEIEgkoiCQ2PdgJlECIQVBY10I0wqE+IQFBNYrTh0ggRCCqK0LAIDJZBiEBQTcITKI0QgaCSRC7C8ggRCKqJBF0hAmUQIhBUlvAEyiFEIKgmEgpPoBRCBIJKIkDhCZRCiEBQTeLrQGm0lZRKWl7SGZLuk3SrpL9I2lnS5pIurLPtZEkH9/N4LzRncbDwiK5hw2pOQWO0jQjk4aPPBabZfrvt9YE9SOPEB+2GgC7VnoKGaBsRALYEXsrDRANg+0HbJxQLSVpG0rk5w+wNktYprF5X0hWS/i7pc7n8KEmXS5ou6XZJOw3O6QS1UHgCpdFOMYG1gekNlDsC+KvtiZK2BE4FJuR16wAbA0sAf5V0EfAEsLPt5ySNAW6QdH4eijpoFSXEBCSdAnwEeML2u3pZvzRwCrAq8CKwt+1qjspag3byBN6ApJ9Iuk3SzT1WbQqcBmD7CmBZSaPzuvNsz7c9G7gSeC/J8fyepJnAn0nJKJdv4Pj7SrpF0i1PP/10SWcVFNGwrppTA0wFtqux/hBghu11gE8BxzVv9dCjnUTgTmC97hnb+wFbAcv1KFcrwWTPt7uBPfM+1rc9AXgcGFHPGNtTbG9ge4Oll166oRMI+oEamOpgexowp0aRtYDLc9l7gFUk1X0BVI12EoErgBGS/quwbPFeyk0jPdhI2pyUubY7E+1OkkZIWhbYHLgZGE1yF1+WtAUwfmDMD/qLulRzIqcmL0z79vMQtwG7AEh6L+l/33aB5raJCdi2pInAsZK+DjwJzAW+0aPoZOCX2b2fB3y6sO4m4CJSLrpv254l6XTggpznfgZwz0CeR9AoDX0BaCg1eQ2OAo7LeQpvB/4KvNLE/oYkbSMCADlb7B59rL4ql5kDvCnCb3tyH/ucDWzSx7pRC2Nn0DwahLQD2UPcKx1PAu7PU1vRViIQdBjDBlYFJC0FzLP9EvBZUhuU52pvVT1CBILK0uxow5J+Q4r9jJH0CHA4sAi8lpZ8TeBUSa8CdwH7NHXAIUqIQFBNSmgnYHtSnfV/AVZr6iAVIEQgqC7RNLgUQgSCaiJFL8KSCBEIqktoQCmECASVRQP8daBTCBEIqokY+IYCHUKIQFBJ0vBiIQJlECIQVJZwBMohRCCoJvF1oDRCBILqEiJQCiECQTWJ0YZLI0QgqC4RFCiFEIGgssTXgXIIEQiqSYNDiAX1CREYBEbMmcUav/12q83omy/t32oL+o1QpCEriRCBoLpETKAUQgSCatKdgShomhCBoKIIuiLLUBmECATVJDyB0ggRCCqKIPINlkKIQFBdIjBYCiECQTUR4QmURIhAUFEEXdFOoAziKgbVRCQRqDXV24V0iqQnJPWablzSaEkX5OzWd0raq+zTGAqECAQVRU2LAPVTk+8H3GV7XVKSkmMkLdq06UOMqA4E1UQ03WzY9jRJq9QqAiyZ8xCOIqUxj4SkQTBkUF0RGJOzSXczxfaUfhzhx8D5wCxgSWB32wv6Z+TQJ0QgqCYS1PcEmk1N/iFSOvotgVWByyRd025JSSMmEFSX5mMC9dgLOMeJf5DSkq9Rxo6HEiECQTVRKYHBejwEbJUOp+WBdwL3lbHjoURUB4Lq0uSD3kBq8m8DUyXdTvoo+Q3bs5s66BAkRCCoJqKRmEBNGkhNPgvYtqmDVIAQgaCiqJGvA0EDVF4EJL0K3F5YdKbto1plTzCIRFfiUqi8CADzbU9YmA0lDbfddo0/OgJFV+KyaFt/StIDksbk3xtIuir/nixpiqRLgVMljZd0uaSZ+e/KudxUSSdKukbSvZI+kpcPk3S0pJvzNp9v1Tl2PFLtKWiIdvAERkqaUZg/0vZv62yzPrCp7fmSLgBOtf0rSXsDxwMTc7lVgM1IDUWulPQO4FPAs7Y3lLQYcJ2kS23fXzyApH2BfQFWesvIpk4w6IMYXqwU2kEEFqY6cL7t+fn3JsAu+fdpwPcL5c7KzUT/Luk+UkORbYF1JO2Wy4wGViM1JHmN3Dx1CsB6Y5dyP+0L6hF5B0qjHUSgL17h9erOiB7r5tbYzn387p4X8CXblzRnXtAcMZ5AWbTzVXyA5PYD7Fqj3PXAHvn3nsC1hXUfk9QlaVXg7cDfgEuA/5K0CICk1SUtUabhQYNETKAU2sET6BkT+JPtbwJHACdLOgS4scb2BwCnSPoa8CSpvXg3fwOuBpYHvmD7RUm/IMUKpucupk/yegwhGEziQS+FyouA7V6jQ7avAVbvZfnkHvMPkHqJ9cZ1tr/co/wC4JA8Ba1ChAiUROVFIOhUIiZQFiECfWD7M622IahHeAJlECIQVJdoNlwKIQJBNYmYQGmECAQVJXoRlkWIQFBdwhMohRCBoLpETKAUQgSCChMiUAYhAkE1iabBpREiEFSXqA6UQohAUF3CEyiFEIGgusQnwlKIqxhUk3rdiBvwEhpITf41STPydIekVyUtU/q5tJgQgaC6ND+ewFRqpCa3fbTtCXnkqm8BV9ueU4rtQ4gQgaC6NCkCtqeR0o03wiTgN82YO1SJmEBQXep3JW42NTkAkhYneQz793fbKhAiMAi8uMyK3LP7f7fajD55zxM3tdqEhaChkUabTU3ezY6kAWbarioAIQJBVRGDOeT4HrRpVQAiJhBUFjUwlXAUaTQp98R5pexwCBKeQFBdmvQEGkhNDrAzcKntWsPUV5oQgaDCNPe2r5eaPJeZSvqU2LaECAQVRaBIQ1YGIQJBNYnhxUojRCCoKDG8WFmECATVJUSgFEIEguoSIlAKIQJBRYnqQFmECATVRKAIDJZCiEBQUeITYVmECAQVJjyBMggRCKrL4HUgamtCBIKKUl4noU4nRCCoJoPblbitCREIKkx4AmXQ0R9aJe0syZLWqFPuYklLDZJZQUPkrwO1pqAhOloESINHXksaOaZPbO9g+5lBsShonOZHGw7oYBGQNAp4P7APWQQkrSBpWmGc+Q/k5Q9IGpN/nyvpVkl3Stq3ZSfQ8YQnUBadHBOYCPzJ9r2S5khaD9gCuMT2dyUNAxbvZbu9bc+RNBK4WdLZtp8aRLuDbuJtXwqdLAKTgB/l32fm+QuAUyQtApxre0Yv2x0gaef8eyVgNeBNIpC9hH0Bxo4dW6rhAfkLYcc6sqXSkSIgaVlgS+BdkgwMAwx8Hfgg8GHgNElH2z61sN3mwNbAJrbnSboKGNHbMfL49lMA1lprLQ/YyXQs0U6gLDpVSncDTrU93vYqtlcC7icJwBO2TwJOBtbrsd1o4OksAGsAGw+q1cEbiZhAKXSkJ0By/Y/qsexs0oCScyW9DLwAfKpHmT8BX5A0E/gbcMMA2xnUImICpdCRImB7816WHQ8c30f5VQqz2w+MVUH/iPEEyiKuYlBhmks+Ui81eS6zef5kfKekq8uxe2gRIhBUlwFOTZ5bif4U+KjttYGPlWH2UKMjqwNBG6DmqwO2p0lapUaRTwDn2H4ol3+iqQMOUcITCCpMV50ppSYvTP1t4bk6sLSkq3Ir0Z6B4rYgPIGgutT3BJpNTT4cWB/YChgJ/EXSDbbvbWKfQ44QgaCiDEpjoUdIQjKX9Ol4GrAu0FYiENWBoLJIXTWnEjgP+ICk4ZIWBzYC7i5jx0OJ8ASC6tJkY6F6qclt3y3pT8BMYAHwC9t9fk6sKiECQTVR80OON5ia/Gjg6KYONMQJEQgqTDQbLoMQgaC6RLPhUggRCCpKDCFWFiECQXUJT6AUQgSCChOeQBmECAQVJRKSlkWIQFBNRMQESkJ2DH830Eh6EniwxF2OAWaXuL+yKdu+8baXKy7IjXjG1Nlutu0+uwoHiRCBCiLpliY7xgwoQ92+4I1EeDUIOpwQgSDocEIEqsmUVhtQh6FuX1AgYgJB0OGEJxAEHU6IQBB0OCECQdDhhAgMMaTUDE4ljY9VNpIWbbUNQbkMyRutU5Ek25b0UeBnQ+2Bk/RuYB9J41ptS1AeIQJDiCwAOwBHAL+z/VK3ZzBEWJGUmn0HSSu22pigHEIEhhD5gd8COAS4I3sEZ0jaVtJirRKE7uPavgT4ObAZ8NEQgvYgehG2mO4qALzmCcwB9gWWBS4B5gF7Ale5BY06ivZlGy+V9AxwUF5/vu1Zg21XUB4hAi2kEAPYDlgLMPB9YFNglu2/S1qdlDhzLPDQYNvYLQCSvpBtnAecBBwH7A8skHSx7UcG27agHEIEWkgWgG2BI4HPA38Extg+FCBXB74HHNKdFLMVSNoP2Bn4FnAsMMz21yQtQfIIXpH0K9uvtsrGYOEJERhkJC0PjLT9QK5r7wR8hvSm/xtwYqH4OOAg23/u6ZYPMssCHwU+CzwPHCppMdtXSJoPPBgCUF1CBAYRSYuRHqarJY2w/aKkp0hewBrAZ2w/LOk/gRdt/6x728ESgD7EZixwC3C37e1zuS9Immf71MGwKxg44uvAIGL738AZwBzgGEkrA9cAewNH2r5X0gYkt/upwbavKACSdpa0g6QNgaOyPbfkdXsBBwI3DLaNQflEL8JBQNJIYKX8kI8nBdg+SEp3fTjJO/gaMB1YG/i27fNbaO9XgB2BC4CPA98BngB+AtwPrATsY/uuVtkYlEeIwCCQW9p9BFgaWA+YBKwA7AosAxwGjCKJwiI5EeagxQAKXylEahB0vO1dJf0vMAHYKa8flm0cbvuZwbAtGHiiOjCASHq7pC1IAb+VgP2Aa20/aXsmKfX1bOAHwFK2/2H7bhjUGMCShWONJb3xkXQCSQA+ngVgEmnAzxdCANqLCAwOLOOB+cArpKj/XGAZSXvYPtP29FxV2JzURmBQkTQa+LSk50kpuXe2vb2k+4CJwNY5eLk3cAAQI/e2ISECA4Ckd5A+A14paRngTuBb+dv6vsA2udXdA8BqwEm2nxhkGz8MbAycA/wZeJFUVQE4HXgJOE/SpcD2wB62HxtMG4PBIaoDA8OWwG2SJtieQwr+HS5pR9tTgL+QmgZfA/yrBQLwEVIjpJnA7cAJwHOkWAW2Z+QGS18HLiPFBO4cTBuDwSM8gRKRtArwvO0pkoYDV0jayvZZkl4Cvidpge1fSLoIeKvt2wbZxrHAV4HP2r45L54s6ULgLEmv2j5B0m7APbbvGEz7gsEnRKBcPg5cJelZ2z+VtAhweRaCcyUZ+LGk0bbPAB5tgY3/Bl4GXszxiG+Qei4+DjxCag34LlL9f9sW2BcMMvGJsGQkjSG50B+2PUvSgaTqwJa2Z0jamZQe65oW2SfgK6QHfG1SPOBa4G7SZ8wHgH8Bd9h+oBU2BoNLiECTSBoFrJB7/G0C3Aj8FHgXsJvtxyTtT+p4s5Ht6Xm7lvUFyDa/m/TZ8rzckhFJU4GLbP+uFXYFrSFEoAkKjWumAreSOgPtavuu/J39vaSg2mOSvkx6u17WMoNrIOljwDdJ7QL+2Wp7gsEjRGAhyQG2LWz/RtLngeNJzX2/UyhzPLAV6Xv7o3lZK3sDvglJKwC7A58Ddo9AYOcRnwgXng2AT0j6JPAw6ZPfp/MbFQDbBwDnAqsWlg0ZAcg8A/yd5LGEAHQg8XVgIbF9YY7+7wRcaftXkh4jjRL8HCkCvyfpU9xQe/Bfw/Z84KJW2xG0jhCBfqA01PZ429cD2P6DUn6AXSSRheAgUlfg4cCPhrIABAGECDRMDgJuBXxO0qG2pwHYPlvSAlLV4F7b50u6Oa97dKjFAIKgJxEY7AeSliWNtTcRONr21YV1hwAbAbvEUFtBlQhPoB/YfkrSOaSA6sG5CtAtBNeTuuIuaJmBQbAQhAj0E9tzJP2e9LAfLulkYBZwDPA/4foHVSOqAw2Qv6U/B8wrjMG3KPAh4EukZrZn5y8GEQMIKkWIQB2yAPwAODgH+rpsLyisXwR41faCEICgikRjoTrkln4vkQbbpCgAef7l7mUhAEEVCRHoQf7uj6SxklbLi78JvKCUOOS1BJ1B0A5EYDAjaXHgFad04OuTxtR7VdJDwM+ANUndb0+LN37QTkRMICNpS+BjpLEAtgV+CTwG/JjU334SaRy+3W0/2Co7g6BsOr46IGlcDvZdQRod+NfAubZvzA/7TsDvgJNJGXnf1jprg6B8Ol4ESINpvivHAm4gZQbePw/Hje0Ftu+zfQJwJvCVPH5gELQFHS8Ctg8ktQH4FXCU7V1JXYN/B68lENk9F38SGA0Ma4WtQTAQdKwIdEf4JY3KY+m9Dfh19gj2Ax6SNBM4n/TwQxqk84Du4biCoB3oyMBgIffeh0mJNb5ue14edns+r6fe2hV42PZNxe1aaHoQlE5HigCApE2BKcDnbF9XWH4uMALYvtBEOB7+oG3pmOqApJUkva+waHPgN7avkzQsN//F9kTSqEDdKbmiJWDQ1nRElDvX89cFHpb0FtvPkbIB/0d3EdsvS9oYeNz2jq2yNQgGm47wBPJnvguBfwBnSNoGuBTYTtIuwFhJ65EaCC3TQlODYNBp+5hAIQi4JakxkEijAx0KLErKDjQPGAd83/b5LTM2CFpA21cHsgCsQ+oE9BWSN2Dg/4BDbe8oaWlgtO0HIggYdBptKQLFB1nSqqScAI93j6sv6TzSyEA/lHS07YuApyGCgEHn0XYxAUkjgE3y73cAE4CngBUk7QBpiDDgQlIrwcdbY2kQDA3aLiaQcwPsCGxDSrr5PuBV4IukJr+XdecDlDTc9iutsjUIhgJt5wnY/hfpO//OwI22Z9t+GjgNmAPsWPAIQgCCjqdtRKDQF2BNUuefTwJ/k3SUpLG2HwIuJlUNIutuEGTaqjogaTtSU+CP2p4haTPgI6TBQKaTWgGemL2FIAhoL09gZeAoYE/bM4DuxCAX5CJHAzeHAATBG6m8J1BoDDQeOMb2bnn5CNsvSlokNwkea/uxaAcQBG+ksp5AYcTfJfLfWcCKkr4KkAVgG+DY3Hfg8bw8BCAIClSysVDh7f8h4Is5C/AjwIGk1GBvB64EDgMO75krIAiC16lsdUDSB4CfAp8F9gcWA/YC3gp8izRS8F9s/zGqAEHQN5URgdwIaDlgZk759TFSU9+5wAnArrYflLSc7ScL24UABEENqhQTmAgcD7wnz88DppISg2ybBeBDwJckdccJIgYQBHUY8iKQR/vdw/ZPSGMATJa0AXA18HvgtlzuA6T04DfZntsyg4OgYgxpEZD0TuCc7nnb3wGuI40BsAapA9ADwJ9IQcBDutODD761QVBNhmxMQNJapMDfabZPzmMAvtv2dEmHk4YL+67tWyWNArD9QsQAgqB/DElPID/w5wPPZwEYRnrbbwZg+whSM+CjJW1o+wXbL+R1IQBB0A+GZDuB3MJvEnCRpP1I3YFn2D62UOY7kl5smZFB0CYM2eoAQA4AXgbcY3uTwvKNgQm2T2yZcUHQJgzJ6kA3tm8h5QdYQ9LnAHLugJNIYwUGQdAkQ9oT6CZ7BBeTxgl4N/B/eVzAIAiapBIiACBpQ+AK4JO2z22xOUHQNlRGBOC1DMLxGTAISmRIxwR6IVoCBkHJVMoTCIKgfKrmCQRBUDIhAkHQ4YQIBEGHEyIQBB1OiEAQdDghAkHQ4fw/uUGDIrLfvukAAAAASUVORK5CYII=\n", "text/plain": [ "

    " ] @@ -840,7 +1087,7 @@ "\n", "For our analysis we select one time-frame (LONG) and one scope (S1+S2) and group the outcomes on sector and compare AUM to temperature score contribution. We also then display the sector temperature scores.\n", "\n", - "##### Quick analysis\n", + "#### Quick analysis\n", "\n", "In this example we can see that both sectors Steel and Electricity are scoring above 2.0C. \n" ] @@ -849,16 +1096,7 @@ "cell_type": "code", "execution_count": 19, "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/Users/michael/opt/miniconda3/envs/jupyter/lib/python3.10/site-packages/pandas/core/dtypes/cast.py:1981: UnitStrippedWarning: The unit of the quantity is stripped when downcasting to ndarray.\n", - " result[:] = values\n" - ] - } - ], + "outputs": [], "source": [ "time_frames = [ETimeFrames.LONG]\n", "scopes = [EScope.S1S2]\n", @@ -870,7 +1108,9 @@ " grouping=grouping)\n", "amended_portfolio = temperature_score.calculate(data_warehouse=template_provider, portfolio=companies)\n", "aggregated_portfolio = temperature_score.aggregate_scores(amended_portfolio)\n", - "company_contributions = collect_company_contributions(aggregated_portfolio, amended_portfolio, analysis_parameters)" + "with warnings.catch_warnings():\n", + " warnings.simplefilter(\"ignore\")\n", + " company_contributions = collect_company_contributions(aggregated_portfolio, amended_portfolio, analysis_parameters)" ] }, { @@ -880,7 +1120,7 @@ "outputs": [ { "data": { - "image/png": "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ufqGoD/c/x7X3ScRhMlp4TE3OBXq7pMJ/rb/TtDyfRzBhTnrMqiprteziOQJU19SERERkfhQy5mIiIhIjCiciYiIiMSIwpmIiIhIjCiciYiIiMSIwpmIiIhIjCiciYiIiMSIwpmIiIhIjCiciYiIiMSIwpmIiIhIjCiciYiIiMSIwpmIiIhIjCiciYiIiMSIwpmIiIhIjCiciYiIiMSIwpmIiIhIjCiciYiIiMSIwpmIiIhIjCiciYiIiMRIi6gLEBERicro0aO7t2jR4n5gN9RgUSgqgXEVFRXn77vvvvOjLqYmCmciIlKwWrRocf/WW2+9S7du3ZY0a9bMo65Hsq+ystIWLFjQf+7cufcDx0ddT030KUFERArZbt26dVumYFY4mjVr5t26dVtK0FoaSwpnIiJSyJopmBWe8Hce2wwU28JERERECpH6nImIiIQSydS+jfl4ZaUlo+vbpnnz5vv26dNnddX9k046afGNN944d+DAgTvfcsstMw499NBVDTnmBx980HbGjBmtTjvttKU1rR8xYkS7Bx98sMuwYcNm1PYYgwYN2umZZ575CuD+++/fKplMLsj0+C+//HLHW2+9tejtt9+eWrXs5JNPThx77LFLzzvvvCW///3vu//sZz9b2LFjx8r0Y3Xt2nV9u3bt9l61atWnZWVlLS+++OKer7322rTqz+exxx7rPH78+LY33njj3ExryjUKZyIiIhFq3bp15aRJkyY01uONGjWq3ahRo9rXFM7Ky8s59NBDV9UX+IYPHz4VYPLkya0eeOCB7g0JZ/W55557ii644ILFVeGs6ljpEolE+WuvvTYNNn4+Z5111lKgxuCZL3RaU0REJOaeffbZTnvttVe//v377zJkyJAdly5d2gxg+PDh7fbee+9+O++8c//dd999l0WLFjW/6aabtn3ppZe27NevX//77rtvyyuuuGLbM844Y/uDDjqoz0knnbTDyy+/3PGwww7bCWDp0qXNTjnllETfvn379+3bt/+wYcO2AOjRo8fuc+bMaXHllVduN2PGjNb9+vXrf9FFF2134okn7vDoo49uUVXX8ccfv8Njjz3WOdPnccMNN3SfP39+y0GDBvXdf//9+6YfK327yZMnt+rTp8+ua9asserP57bbbuvygx/8oBfA7NmzWxx11FG9d9ttt1122223Xd544432AKlUqkO/fv369+vXr/8uu+zSf8mSJTmVd3KqWBERkXyzdu3aZlVBoiqApK+fM2dOixtvvHGbESNGTJkwYcLEffbZZ9X1119ftGbNGjvrrLN6//Wvf/168uTJE4YPHz65U6dO66+++urZxx133JJJkyZNuOCCC5YAjB07tt3rr78+9aWXXvoq/bGTyeQ2nTp1Wj9lypQJU6ZMmVBSUrI8ff2tt946s2fPnmsnTZo04Z577pl5wQUXLBg2bFgXgEWLFjUfPXp0h1NPPTXjVqxrr712fvfu3cuHDx8+ZeTIkVPq275NmzZe0/OpctFFF/W84oor5o0bN27ic8899+XFF1+cCOve+rbbbps+adKkCR9++OGkDh06VGZaYxzotKaIiEiE6jut+c4777T/8ssv2wwcOLAfQHl5ue27774rxo4d26Z79+7lgwYNWgWw1VZb1RpAjj766G86dOiw0VWpI0aM6PTkk09Oq7rfrVu39XXVWlJSsuLyyy/fftasWS0ee+yxLUtKSpa0bNlyg23MrMarX2tbvjnef//9Tl988UXbqvsrVqxovmTJkmbFxcUrrrrqqp6nnnrq4jPOOGNJ7969Fc5ERESkcbg7Bx988LLqrV4jR45sm2ngad++fY3hxN0xswbVc+qppy66//77t3rmmWe2evDBB8uqr+/evXvF0qVLN8gXS5YsadGtW7eKBh0oA+7OqFGjJlYPnjfeeOPcE088cekLL7zQ+cADD9zltddem7L33nuvaezjZ4vCWQFLJFMtgC2BTkB7oOrTxxpgbXhbAywrKy1ZGUmRIk0okUy1BLYieF20SltV9e61BlgILC4rLdHYWNIkBg8evPLKK6/sNW7cuNa77bbb2uXLlzf76quvWu65555r5s2b12r48OHtBg0atGrJkiXNOnToUNmpU6f1K1asyKjb0uDBg5f9+c9/7v7ggw/OAFiwYEHz9Nazzp07r1+5cuUGj3XxxRcv3H///Xfp2rVr+YABAzYKPLvtttvaefPmtfzkk0/a7LPPPmumTJnSatKkSW2Li4tXA7Rv33790qVLm22zzTYZPf+6ns/BBx+87I9//GP366+/fh4EV6oeeOCBq8ePH9964MCBqwcOHLh65MiR7ceNG9dG4UxiI5FMdQX2AXqHtx3DWwLIuBNnIpn6BpgZ3mYA04HPgE/LSktmNWrRIlmUSKa2AnYl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\n", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAmcAAAICCAYAAACKi2r4AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/YYfK9AAAACXBIWXMAAAsTAAALEwEAmpwYAABaX0lEQVR4nO3deXhU5fn/8ffNjoCoLBFZHBcQUREVISoVXCvGDbUqVau2rtVaq7Ydl9ZWraat2v6sC1rli3WtrbvjbhVcKoqKCAqIOMi+73vI/fvjnNQhZJmETM5J5vO6rrkyc9bPJDOZe57znOeYuyMiIiIi8dAk6gAiIiIi8h0VZyIiIiIxouJMREREJEZUnImIiIjEiIozERERkRhRcSYiIiISIyrOREQAM5tkZkPC+78zs0fqcNvXmtkDdbU9EWncVJxFzMzSZnZkHu77XDN7N4p9S3yZ2Q/NbJyZrTKzuWb2spkN2sptjjKzm6tbzt33cve3t2Zf4f6GmNmsctu+xd3P39pti0h+UHEmIrFgZlcCfwVuAQqAHsA9wIk53m+zXG5fRKSmVJzFRFlLkpndZmZLzewbMxsazjvDzMaVW/4XZvZ8eL9luN63ZjbfzEaYWetwXkcze9HMlpnZEjN7x8yamNnDBB9+L4StFL8ys4SZuZmdZ2YzwxwXm9mBZjYh3MZd5XL82My+DJd91cx2zpjn4fpfhfPvtsCewAjgoHDfy8LljzWzL8xspZnNNrOrc/grlxgxs/bAjcCl7v60u692943u/oK7/zJ8jf/VzOaEt7+aWctw3SFmNsvMrjKzBWGL23nhvAuBM4Ffha+1F8LpaTP7tZlNAFabWbMKWpJbmdk/w9fjJ2a2b0ZeN7PdMx6PMrObzawN8DKwU7i/VWa2U/nDpGZ2QngYdZmZvR2+J8rmpc3s6vA9tzzM0CqcV+H7ue7/IiISJb2p42UgMAXoCPwJeNDMDHge2MPMemYs+0PgsfD+H4FeQD9gd6Ar8Ntw3lXALKATQWvEtYC7+9nAt8Dx7t7W3f9ULkdP4HSClozrgCOBvYDTzGwwgJmdFG7v5HD77wCPl3tOxwEHAvsCpwHfd/cvgYuB/4b73i5c9kHgIndvB+wN/Ce7X5s0AgcBrYBnKpl/HVBI8BrfFxgAXJ8xf0egPcFr/yfA3Wa2vbvfDzwK/Cl8rR2fsc5woAjYzt1LKtjnicC/gB0I3mvPmlnzqp6Eu68GhgJzwv21dfc5mcuYWS+C98kVBO+blwi+JLXIWOw04BhgF6AvcG44vcL3c1WZRKThUXEWLzPc/e/uvgl4COgCFLj7GuA5gg8TwiKtN/B8WLxdAPzC3Ze4+0qCw0JnhNvcGG5n57Al4h2v/oKqN7n7Ond/DVgNPO7uC9x9NkEBtl+43EXAre7+ZfjhdgvQL7P1DCh292Xu/i3wFsGHa2U2An3MbFt3X+run1STUxqPDsCiSookCFq/bgxfhwuB3wNnZ8zfGM7f6O4vAauAParZ553uPtPd11Yy/2N3/7e7bwTuICgeC7N9QlU4HUi5++vhtm8DWgMHl8s2x92XAC/w3fumNu9nEWlgVJzFy7yyO2FBBtA2/PkYYXFG0Gr2bLhMJ2Ab4OPwUMcy4JVwOsCfgWnAa2Y23cySWeSYn3F/bQWPyzLtDPy/jP0uAYyg9WKL5wSsyVi3IqcAxwIzzGy0mR2URVZpHBYDHa3y/l87ATMyHs8Ip/1v/XKFXXWvNYCZ2c5391KCFqudKl88a5s9l3DbM8nufVOb97OINDAqzhqO1wg+vPoRFGllhzQXERRMe7n7duGtvbu3BXD3le5+lbvvChwPXGlmR4Trbu037pkEhyG3y7i1dvf3s1h3i327+0fufiLQGXgWeHIr80nD8V9gHXBSJfPnEHwZKNMjnJaNyl7n1b3+u5fdCft1dcvY5xqCL0VldqzBdjd7LmHrd3dgdjXrVfd+FpFGQsVZAxG2Cvyb4JvzDsDr4fRS4O/AX8ysM4CZdTWz74f3jzOz3cMPgBXApvAGQYvYrlsRawRwjZntFe6rvZn9IMt15wPdyvrZmFkLMzvTzNqHh3rKskoecPflBP0k7zazk8xsGzNrbmZDzexPBH20rjezTmbWMVw223HIavs6P8DMTg5b864A1gMfhPPGAz80s6ZmdgwwuNz+OoQnOVTkSaDIzI4I+7BdFW672i811byfRaSRUHHWsDxG0DH/X+UO4fya4FDHB2a2AniD7/rb9AwfryJonbgnYyynWwk+8JbV5sxId3+G4GSEJ8L9TiToDJ2N/wCTgHlmtiicdjaQDrd1MXBWTTNJw+XudwBXEnT0X0jQMnsZQSvqzcA4YALwOfBJOC0bDxL0ZVxmZs/WINJzBP3DlhK8Nk8OvzgA/Jyg5WoZQX+4/23X3ScTFJPTw31udijU3acQvLb/RtDyfTzBiTkbsshU1ftZRBoJU19SERERkfhQy5mIiIhIjKg4ExEREYkRFWciIiIiMaLiTERERCRGVJyJiIiIxIiKMxEREZEYUXEmIiIiEiMqzkRERERiRMWZiIiISIyoOBMRERGJERVnIiIiIjGi4kxEREQkRlSciYiIiMSIijMRERGRGFFxJiIiIhIjKs5EREREYkTFmYiIiEiMqDgTERERiZFmUQcQERGJyscff9y5WbNmDwB7owaLfFEKTCwpKTn/gAMOWBB1mIqoOBMRkbzVrFmzB3bcccc9O3XqtLRJkyYedR7JvdLSUlu4cGGfefPmPQCcEHWeiuhbgoiI5LO9O3XqtEKFWf5o0qSJd+rUaTlBa2ksqTgTEZF81kSFWf4J/+axrYFiG0xEREQkH6nPmYiISCiRTB1Ql9tLFxd9XN0yTZs2PaBnz55ryx6ffPLJS2655ZZ5AwYM2OO2226beeihh66pyT7ff//91jNnzmxx+umnL69o/pgxY7YZOXJkh1GjRs2sbBuDBw/e/amnnvoG4IEHHtghmUwuzHb/L774Yrvbb7+94K233ppWNu2UU05JHHfcccvPO++8pTfeeGPnX/ziF4vatWtXmrmvjh07btpmm232W7NmzafpdLr5xRdf3P2VV16ZXv75PProo+0nTZrU+pZbbpmXbaaGRsWZiIhIhFq2bFk6efLkL+pqe+PGjdtm3LhxbSoqzjZu3Mihhx66prqCb/To0dMApkyZ0uLBBx/sXJPirDr33XdfwQUXXLCkrDgr21emRCKx8ZVXXpkOWz6fM888czlQYeHZWOiwpoiISMw9/fTT2/br1693nz599hw6dOiuy5cvbwIwevTobfbbb7/ee+yxR5999tlnz8WLFze99dZbd3rhhRe27927d5+///3v21955ZU7DR8+fOdDDjmk58knn7zLiy++2O6www7bHWD58uVNTj311ESvXr369OrVq8+oUaO2A+jates+c+fObXbVVVd1mzlzZsvevXv3ueiii7qddNJJuzzyyCPbleU64YQTdnn00UfbZ/s8br755s4LFixoPnjw4F4DBw7slbmvzOWmTJnSomfPnnutW7fOyj+fO++8s8OPfvSjHgBz5sxp9v3vf3+3vffee8+99957z9dee60NQCqVatu7d+8+vXv37rPnnnv2Wbp0aYOqdxpUWBERkcZm/fr1TcoKibICJHP+3Llzm91yyy1dxowZM/WLL774cv/9919z0003Faxbt87OPPPM3f76179+O2XKlC9Gjx49Zdttt910zTXXzDn++OOXTp48+YsLLrhgKcCECRO2efXVV6e98MIL32RuO5lMdtl22203TZ069YupU6d+UVRUtDJz/u233z6re/fu6ydPnvzFfffdN+uCCy5YOGrUqA4Aixcvbvrxxx+3Pe2007Juxbr++usXdO7ceePo0aOnjh07dmp1y7dq1corej5lLrroou5XXnnl/IkTJ375zDPPfH3xxRcnwtw73nnnnTMmT578xQcffDC5bdu2pdlmjAMd1hQREYlQdYc133777TZff/11qwEDBvQG2Lhxox1wwAGrJkyY0Kpz584bBw8evAZghx12qLQAOeaYY5a1bdt2i7NSx4wZs+0TTzwxvexxp06dNlWVtaioaNUVV1yx8+zZs5s9+uij2xcVFS1t3rz5ZsuYWYVnv1Y2fWu8995723711Vetyx6vWrWq6dKlS5sUFhauuvrqq7ufdtppS4YPH750t912U3EmIiIidcPdGTRo0IryrV5jx45tnW3B06ZNmwqLE3fHzGqU57TTTlv8wAMP7PDUU0/tMHLkyHT5+Z07dy5Zvnz5ZvXF0qVLm3Xq1KmkRjvKgrszbty4L8sXnrfccsu8k046aflzzz3X/uCDD97zlVdembrffvutq+v954qKszyXSKa2AzoC7YCm4a0U2ASsBRYDi9PFRVV+mxJpDBLJVHNge2A7oA3g4a00/FkCLAUW6T0h9WXIkCGrr7rqqh4TJ05suffee69fuXJlk2+++ab5vvvuu27+/PktRo8evc3gwYPXLF26tEnbtm1Lt912202rVq3KqtvSkCFDVtxxxx2dR44cORNg4cKFTTNbz9q3b79p9erVm23r4osvXjRw4MA9O3bsuLF///5bFDx77733+vnz5zf/5JNPWu2///7rpk6d2mLy5MmtCwsL1wK0adNm0/Lly5t06dIlq+df1fMZNGjQij/+8Y+db7rppvkQnKl68MEHr500aVLLAQMGrB0wYMDasWPHtpk4cWIrFWcSG4lkqjPQu9ytO9AJ2AFoXvna/1OaSKaWAQuBecBU4MuM27fp4iIN4igNQiKZ6gTsWe7WAyggKMyyUZpIphYD84EFwHRgEjARmJguLmq0p/g3dtkMfVHXyvqclT0+/PDDl99zzz2zyx7vtNNOJffdd1/6jDPO2HXDhg0GcMMNN8zu27fv+kcfffTryy+/vMe6deuatGrVqnTMmDFThw4duvK2227r0rt37z5XXXXV3Kr2feutt84977zzevTs2XOvJk2a+LXXXjvnnHPOWVY2f8cdd9x0wAEHrOrZs+dehx9++PL77rtvVvfu3Ut22223dccff/yyirbZunVr/7//+7/p5513XmL9+vVNmjVr5nffffeMDh06bAI455xzFg0dOrRn586dN2bT76yq53P//ffPPP/883v06tWrz6ZNm2zgwIErDz744G//9Kc/dX7//fe3bdKkiffq1Wvtqaee2qDO7jR3faY2FolkygguR/G9jFvXetj1SuC/wJjw9mG6uGh9PexXpErhe2IfYHB4G0RQhOXaImA88C4wGviv3hPx9Nlnn6X33XffRVHnaEhWrlzZpE+fPn3Gjx//ZVnB1RB99tlnHffdd99E1DkqopazBi6RTG0PFAEnAkeQ/Tf/utQOODq8AaxPJFP/BV4Enk0XF30dQSbJU+Gh+pMI3hOHErQQ17eOwJHhDWBtIpkaA7wK/CtdXDQrgkwiW+3ZZ59td8kllyQuueSS+Q25MIs7tZw1QIlkqh1wCnA6wT//uBfZ44F/Ak+ki4vS0UaRxiiRTLUnKMZOA44CWkSbqEpO0KL2OEGhplabCKnlLH/FueVMxVkDkkim+gI/Bc4E2kYcpzZKgVeAe4CX08VFDerUZomfRDI1iOA9cTLQMuI4tVECvAbcTfCe0D/keqbiLH+pOJNaSyRTzQhaAy4FDo44Tl2aDtwH/D1dXLS0uoVFyiSSqRbAcOAKoF+kYerWZOCvwD/SxUVrq1lW6oiKs/yl4kxqLJFMNSVoIfsNsHvEcXJpBcEH0h3p4qIGdTaN1K9wmIuLgGuAnSKOk0uLCVqXb9d7IvdUnOUvFWeStUQy1YSgVeC3QK+I49SnpcDtwP9LFxetijqMxEd4xuUPgRuBXSOOU58WAzcD96SLizZEHaaxUnGWv1ScSVYSydTBBN+Y9406S4QWAkng/9T/RhLJ1DFAMfn9nvgGuI7ghBq9J+pY+eLsmQ/mH1CX2x9WWJDVuGm//vWvd3zqqac6NGnSxJs0acI999wz4913323zi1/8YlG7du1q1T/3lFNOSRx33HHLzzvvPHUdqUCcizNd+DwGEslUh0Qy9QDBGVz5/CEEweC4DwLvJJKpvaMOI9FIJFMFiWTqSeBl9J7YBXgMeF/vicbpjTfeaPPqq69u9/nnn38xderUL956662pu+6664b77ruvINuR/qVx0R89Yolk6sfAFOAnQM0ucNa4HQJ8mkim/pxIptpEHUbqTyKZOo/gyhM/iDpLzBQCnySSqZvCkyKkkZg9e3bzHXbYoaR169YO0KVLl5JHHnlk+wULFjQfPHhwr4EDB/YCePrpp7ft169f7z59+uw5dOjQXZcvX94E4J133tnmwAMP3GOvvfbac9CgQT1nzJiRzZVfJMZUnEUkkUx1TiRTLxK0EnWIOk9MNQOuJijSDow6jORWIpnaOZFMvQ6MJJrBlBuC5sD1wEeJZCrfWxQbjZNOOmnFnDlzWiQSib3POuusHqlUqu3111+/oHPnzhtHjx49dezYsVPnzp3b7JZbbukyZsyYqV988cWX+++//5qbbrqpYP369Xb55Zf3eO65576eNGnSl+ecc86iq6++uj6uDCM5FPfBSxulRDL1feAfQOeoszQQPQkO6fwG+KP63TQ+iWSqiOA9EcVo/g1RX+DDRDJ1Vbq46K6ow8jWad++fenEiRO/eOWVV9q9+eab7c4555zdfvvb3252FYm33367zddff91qwIABvQE2btxoBxxwwKoJEya0/Oqrr1offvjhvQBKS0vp1KnTxiieh9SdvCjOzOwXwPkEI3N/DpwHbEMwan0CSAOnuftSMzsEuBdYDwx392lmtl247DG+FWdQhMNj3ETQ4V2HMGumGXArcGgimfqRRlVvHPSe2CotgL8lkqkBwEUaG61ha9asGccdd9zK4447bmXfvn3XPvzww5sdUXF3Bg0atOKFF174JnP6hx9+2Hr33XdfO378+Mn1m1hyqdEf1jSzrsDlQH933xtoCpxB8GHwprv3BN4MHwNcRXBppGuBS8JpvwFu2crCrB3wPMEYTfoQqr2hBC0Ge0YdRLZOIpnqTDA6vt4TW+ds4L+JZGq3qINI7Xz22WctP//88/9d4eLTTz9t3a1btw1t2rTZVNavbMiQIavHjRvXduLEiS0huPj4hAkTWvbt23fdkiVLmr3xxhttANavX2/jxo1rFc0z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\n", "text/plain": [ "
    " ] @@ -941,54 +1181,94 @@ " \n", " \n", " \n", - " 3\n", + " 8\n", " CARPENTER TECHNOLOGY CORP\n", " US1442851036\n", " Steel\n", - " 4.620952913172475 percent\n", + " 3.253451472385291 percent\n", " 1.72 delta_degree_Celsius\n", " 0.01\n", - " 5.58\n", + " 3.80\n", " \n", " \n", - " 8\n", - " COMMERCIAL METALS CO\n", - " US2017231034\n", + " 11\n", + " GERDAU S.A.\n", + " US3737371050\n", " Steel\n", - " 3.8103951174652635 percent\n", - " 3.2 delta_degree_Celsius\n", - " 0.00\n", - " 2.47\n", + " 2.8139077735220224 percent\n", + " 1.64 delta_degree_Celsius\n", + " 0.01\n", + " 3.44\n", " \n", " \n", " 16\n", + " TENARIS SA\n", + " US88031M1099\n", + " Steel\n", + " 2.5979139220980167 percent\n", + " 1.65 delta_degree_Celsius\n", + " NaN\n", + " 3.16\n", + " \n", + " \n", + " 19\n", " POSCO\n", " KR7005490008\n", " Steel\n", - " 3.2898450979042577 percent\n", + " 2.313256276314664 percent\n", " 1.72 delta_degree_Celsius\n", " 0.00\n", - " 3.97\n", + " 2.70\n", " \n", " \n", - " 23\n", - " GERDAU S.A.\n", - " US3737371050\n", + " 26\n", + " COMMERCIAL METALS CO\n", + " US2017231034\n", " Steel\n", - " 2.2795771941247773 percent\n", - " 1.64 delta_degree_Celsius\n", + " 1.8823941526018306 percent\n", + " 1.41 delta_degree_Celsius\n", " 0.01\n", - " 2.89\n", + " 2.68\n", " \n", " \n", - " 26\n", + " 35\n", + " UNITED STATES STEEL CORP\n", + " US9129091081\n", + " Steel\n", + " 1.4160172296309894 percent\n", + " 1.52 delta_degree_Celsius\n", + " 0.01\n", + " 1.87\n", + " \n", + " \n", + " 40\n", " NUCOR CORP\n", " US6703461052\n", " Steel\n", - " 1.6791904018189383 percent\n", + " 0.6685329850980972 percent\n", " 1.43 delta_degree_Celsius\n", " 0.00\n", - " 2.44\n", + " 0.94\n", + " \n", + " \n", + " 41\n", + " TIMKENSTEEL CORP\n", + " US8873991033\n", + " Steel\n", + " 0.6423455686646337 percent\n", + " 1.45 delta_degree_Celsius\n", + " 0.04\n", + " 0.89\n", + " \n", + " \n", + " 42\n", + " STEEL DYNAMICS INC\n", + " US8581191009\n", + " Steel\n", + " 0.4918944160296473 percent\n", + " 1.65 delta_degree_Celsius\n", + " 0.00\n", + " 0.60\n", " \n", " \n", "\n", @@ -996,25 +1276,37 @@ ], "text/plain": [ " company_name company_id sector \\\n", - "3 CARPENTER TECHNOLOGY CORP US1442851036 Steel \n", - "8 COMMERCIAL METALS CO US2017231034 Steel \n", - "16 POSCO KR7005490008 Steel \n", - "23 GERDAU S.A. US3737371050 Steel \n", - "26 NUCOR CORP US6703461052 Steel \n", + "8 CARPENTER TECHNOLOGY CORP US1442851036 Steel \n", + "11 GERDAU S.A. US3737371050 Steel \n", + "16 TENARIS SA US88031M1099 Steel \n", + "19 POSCO KR7005490008 Steel \n", + "26 COMMERCIAL METALS CO US2017231034 Steel \n", + "35 UNITED STATES STEEL CORP US9129091081 Steel \n", + "40 NUCOR CORP US6703461052 Steel \n", + "41 TIMKENSTEEL CORP US8873991033 Steel \n", + "42 STEEL DYNAMICS INC US8581191009 Steel \n", "\n", " contribution temperature_score \\\n", - "3 4.620952913172475 percent 1.72 delta_degree_Celsius \n", - "8 3.8103951174652635 percent 3.2 delta_degree_Celsius \n", - "16 3.2898450979042577 percent 1.72 delta_degree_Celsius \n", - "23 2.2795771941247773 percent 1.64 delta_degree_Celsius \n", - "26 1.6791904018189383 percent 1.43 delta_degree_Celsius \n", + "8 3.253451472385291 percent 1.72 delta_degree_Celsius \n", + "11 2.8139077735220224 percent 1.64 delta_degree_Celsius \n", + "16 2.5979139220980167 percent 1.65 delta_degree_Celsius \n", + "19 2.313256276314664 percent 1.72 delta_degree_Celsius \n", + "26 1.8823941526018306 percent 1.41 delta_degree_Celsius \n", + "35 1.4160172296309894 percent 1.52 delta_degree_Celsius \n", + "40 0.6685329850980972 percent 1.43 delta_degree_Celsius \n", + "41 0.6423455686646337 percent 1.45 delta_degree_Celsius \n", + "42 0.4918944160296473 percent 1.65 delta_degree_Celsius \n", "\n", " ownership_percentage portfolio_percentage \n", - "3 0.01 5.58 \n", - "8 0.00 2.47 \n", - "16 0.00 3.97 \n", - "23 0.01 2.89 \n", - "26 0.00 2.44 " + "8 0.01 3.80 \n", + "11 0.01 3.44 \n", + "16 NaN 3.16 \n", + "19 0.00 2.70 \n", + "26 0.01 2.68 \n", + "35 0.01 1.87 \n", + "40 0.00 0.94 \n", + "41 0.04 0.89 \n", + "42 0.00 0.60 " ] }, "execution_count": 21, @@ -1031,7 +1323,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "### Save your data for further analysis\n", + "### Save portfolio data for further analysis\n", "To take your analysis outside of this notebook and for example for internal and client reporting, you can export all data to Excel and the clipboard for pasting into and analysing in other applications.\n", "\n", "If you run the ITR tool locally or from Google Colab, you:\n", From 2eb7efadb7aa918682e47e3b601f87ff194ac8bb Mon Sep 17 00:00:00 2001 From: MichaelTiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> Date: Sun, 6 Mar 2022 21:40:55 -0500 Subject: [PATCH 163/345] Draft documentation and sample data This is a first draft of user documentation, a fresh update of the Jupyter notebook, and a cleaned-up sample data spreadsheet. Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- docs/DataTemplateRequirements.rst | 196 +++++++++++++++ .../data/20220306 ITR Tool Sample Data.xlsx | Bin 0 -> 61916 bytes examples/quick_template_score_calc.ipynb | 224 +++++++++--------- 3 files changed, 312 insertions(+), 108 deletions(-) create mode 100644 docs/DataTemplateRequirements.rst create mode 100644 examples/data/20220306 ITR Tool Sample Data.xlsx diff --git a/docs/DataTemplateRequirements.rst b/docs/DataTemplateRequirements.rst new file mode 100644 index 00000000..1b6c354d --- /dev/null +++ b/docs/DataTemplateRequirements.rst @@ -0,0 +1,196 @@ +******************** +Data Template Requirements +******************** + +The ITR Data Template comes with two sheets dedicated to documentation +(Read me, Definitions) and three to be filled by data by users (ITR +input data, ITR target input data, Portfolio). The documentation +should be self-explanatory, but some additional words are provided +concerning the data requirements. + +During this first release of the ITR Tool to an audience of testers, +we want to first thank you for your time and interest in our work, and +to provide some guidance. The tool does do some error checking, but +at the moment it relies heavily on data being both somewhat +constrained and well-formatted. We will talk more about what that +means in the following sections. + +ITR Input Data +-------------- + +The `ITR Input Data` sheet is effectively the Universe of all +instruments the tool can analyze. We are currently limiting our +analysis to stock issues, but expect to support bonds in the near +future. We also presently make the assumption that there is a 1:1 +relationship between stock instruments (ISINs) and copmanies +(company_id). If the future we expect to support corporate +hierarchies (aggregating by LEI), but today it's based on a single +ISIN which is used as the company_id. + +The tool's benchmarks are based on sectors and regions, whereas most +companies are domiciled in countries. The tool automatically +translates ISO-3166 2- and 3-character country codes into regions, as +well as common names of countries as well. If the tool throws an +error for a country name you are using, please replace that name with +an ISO-3166 abbreviation it can understand. + +Currently the tool analyzes only two sectors: Electricity Utilities +and Steel. When we have benchmarks with greater sector coverage, we +will release a version that supports those additional sectors. + +The tool uses a currency field to value all financial data for a given +row. However, the tool has no FX data, so cannot convert from one +financial unit of measurement to another. It is therefore best to +present all financial information in a single currency. + +The report_date field is not used by the tool, but it helps to ensure +that financial information is rooted to a date that can be fed onward +to other BI analysis. + +The fundamental financial data includes: +- market_cap (public float) +- revenue (could be FY, CY, TTM, or any period that's consistent + across all rows) +- ev (enterprise value = public float + debt - cash equivalents) +- evic (enterprise value including cash = public float + debt) +- assets (the sum total of valorized assets on the balance sheet) + +Units, Scopes, Emissions, and Production +---------------------------------------- + +Unlike many tools which treat numbers as dimensionless objects (in +which case the `1` of `1 dollar`, `1 fish`, and `1 kg of fish` are all +the same value--one), the ITR Tool works with *quantities*, which have +both a magnitude (how much/how many) and units (of what). To make +this work, emissions and production values are assigned units on a +row-by-row basis. The emissions_metric can be `t CO2` (metric tonnes of +CO2), `Mt CO2` (million metric tonnes of CO2), or any other imperial +or metric measure of weight. + +The production metric depends on the sector. Electricity Utilities +deliver power measured in MWh, TWh, GJ, PJ, etc. Again, any imperial +or SI unit of power can be accepted. Steel production is based on +tons (or megatons) of steel produced. We have created the unit Fe_ton +(Fe is the symbol for Iron, the principle element in Steel). +1000000 Fe_ton = 1 megaFe_ton. + +As previously mentioned, the tool accepts any imperial or SI unit for +these metrics, and there is no trouble if one row of data reports +`3.6 tCO2/MWh` and the next row reports `1 t CO2/GJ` (which happen to +be the same intensity value). All of it will be converted as +necessary--and can be converted to some final standard for output if +desired. It is quite OK to see 't CO2/MWh' and 'Mt CO2/TWh' in +different rows, but whatever are the metrics for a given row, that's +how the numbers will be interpreted for that row. + +Columns of the form YYYY_ghg_sX are emissions data. If the value of +such a column is 10, it means 10 emissions units, which may be tons or +megatons, depending on the emissions_metric for that row. + +Currently the template accepts data from 2016-2022 in the `ITR input +data` sheet. Not all companies have yet reported 2021 emissions data, +so there may be some rows that have only 2016-2020 data. Some +companies--for whatever reason--may have also skipped a year in +between their 2016 disclosure and their latest (2020, 2021, or 2022) +disclosures. The tool deals with three types of missing data: +- If the data is missing from the left (ie., there's no data for 2016 + or years until a certain date), the tool ignores the missing + data. As long as there is data present for the base year of the + temperature score (typically 2019 or 2020), it will work. +- If the data is missing between two points, the tool fills the data + with a linear interpolation. So if data from 2017 is missing, it + would average data from 2016 and 2018 if those years are available. +- If the data is missing to the right, it will extrapolate the data + until it has filled in all cells up to the latest reported data. If + all but a few companies report 2020 data and none report 2021 data, + tool will extrapolation 2019 data for those companies missing 2020 + data. If there are also some companies with 2021 data, the tool + will extrapolate missing data for 2021 and, if needed, also 2020 + data. + +The tool handles data reports for all scopes defined by the GHG +Protocol: Scope 1 (own emissions), Scope 2 (emissinos caused by +utilities supplying electric power), Scope 3 (upstream and +downstream emissions caused by transportation, use, and disposal of +products). The tool also handles S1+S2 as a combined emission and +S1+S2+S3 as a combined emission. *HOWEVER*, at the present time the +tool does not do anything with S3 emissions. Also, it interprets +the benchmark data as applying to S1+S2 emissions, upon which all +temperature scoring depeneds. If data is given as separate S1 and +S2 data, the tool will combine them to create S1+S2 data. If S1, +S2, and S1+S2 data is given, the tool will collect them all, but +will not check the math that S1 + S2 == S1+S2. + +Over time we expect the tool will be more useful with the more +granular reporting of S1 and S2 data, more accurate in its +interpretation of how these should combine or remain separated +according to sectors and benchmarks, but for the present time we +strongly encourage that all data either have both S1 and S2 data or +combined S1+S2 data. + +Finally, columns of the form YYYY_production are for production +metrics. As with the _ghg_ columns, the numbers in the production +columns are interpreted to denote amounts based on the +production_metrics column. Missing production data is filled in the +same way as missing emissions data. + +ITR target input data +--------------------- + +The same identifiers--company_name, company_lei, and company_id--are +used to connect a row of `ITR input data` to rows of `ITR target input +data`. Most companies have set a short-term reduction ambition target +(such as reduce absolute emissions by 50% compared with a base year +by 2030) and a long-term net-zero target (the tool does not presently +distinguish between true zero-emissions and positive emissions with +some kind of offset), a single row of data suffices: +- netzero_year is the year at which the netzero ambition should be + realized +- target_type defines whether the short-term ambition is based on + absolute emissions or intensity. Note that when it comes to a + long-term netzero ambition, zero is zero, whether emissions or + intensity. +- target_scope defines the scope(s) of the target. While it is + possible to define S1, S2, S1+S2, S3, S1+S2+S3, at present the most + reliable choice is S1+S2 (because we don't have a complete theory + yet for interpreting the benchmarks upon which the tools is based + for other than S1+S2). +- target_start_year is the year the target was set. In the event that + multiple targets aim for a reduction ambition at the same year, the + latest start_year will be the one the tool uses and all other + targets for that year will be dropped. +- target_base_year and target_base_year_qty define the "when" and the + "from how much" that the target_ambition_reduction applies to (and + hopefully is achieved by the target_year). Because all computations + require units, the target_base_year_unit is needed so that target + quantities can be compared with other emissions, production, and + intensity data. + +Some companies have set more than just one short-term target. In that +case, additional rows of target data can be set, one for each +additional short-term target. In those cases it's best to duplicate +the netzero target year date (though ultimately the tool should work +correctly only having seen such information once per company). + +If a company has only one target, which happens to be a netzero +ambition, it is OK to specify it as just a short-term 100% reduction +ambition (without a netzero year) or as both a netzero target and a +100% reduction goal. + +A note about reducing to zero: at one time the tool implemented a +linear annual reduction (LAR) model, which means that if the goal was +to reduce 100 Mt CO2 to zero over 10 years, the rate of reduction +would be 10 Mt per year for 10 years. The first year this reduction +would be 10%, but by the 5th yerar the reduction rate would be 20%, +and the last year it would be infinite (as 10 Mt goes to zero). We +presently implement a CAGR model (constant percent reduction per +year). This works well for everything except reducing to zero (which +cannot be done, per Xeno's paradox). Indeed, the closer one aims to a +zero target, the more extreme the per-year percent reduction needs to +be. (And even with 90% reduction per year for 10 years, there's still +that 0.0000000001 to go...) To make the math square with reality, we +interpret reducing emissions to less than half-a-percent of the +initial amount as rounding down to zero. + + + diff --git a/examples/data/20220306 ITR Tool Sample Data.xlsx b/examples/data/20220306 ITR Tool Sample Data.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..a91e2e84dc9508df4bf2e02421e4db40e1a6fd2b GIT binary patch literal 61916 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 b%acnuHKj8^c{~Wj4!k^xK_JE1!?XVZb6cr2 literal 0 HcmV?d00001 diff --git a/examples/quick_template_score_calc.ipynb b/examples/quick_template_score_calc.ipynb index c0ed026a..6cdd09e4 100644 --- a/examples/quick_template_score_calc.ipynb +++ b/examples/quick_template_score_calc.ipynb @@ -220,7 +220,7 @@ "if not os.path.isdir(\"data\"):\n", " os.mkdir(\"data\")\n", "\n", - "for filename in ['data/20220215 ITR Tool Sample Data.xlsx',\n", + "for filename in ['data/20220306 ITR Tool Sample Data.xlsx',\n", " 'data/OECM_EI_and_production_benchmarks.xlsx',\n", " 'utils.py']:\n", " if not os.path.isfile(filename):\n", @@ -237,7 +237,7 @@ " from utils import collect_company_contributions, plot_grouped_statistics, anonymize, \\\n", " plot_grouped_heatmap, print_grouped_scores, get_contributions_per_group\n", "\n", - "template_data_path = \"data/20220215 ITR Tool Sample Data.xlsx\"" + "template_data_path = \"data/20220306 ITR Tool Sample Data.xlsx\"" ] }, { @@ -374,20 +374,12 @@ " \n", " \n", " \n", - " 38\n", - " TC Energy Corp.\n", - " 549300UGKOFV2IWJJG27\n", - " CA87807B1076\n", - " CA87807B1076\n", - " 195002\n", - " \n", - " \n", " 39\n", " TENARIS SA\n", " 549300Y7C05BKC4HZB40\n", " US88031M1099\n", " US88031M1099\n", - " 204355\n", + " 143651\n", " \n", " \n", " 40\n", @@ -395,7 +387,7 @@ " 549300QZTZWHDE9HJL14\n", " US8873991033\n", " US8873991033\n", - " 57497\n", + " 89816\n", " \n", " \n", " 41\n", @@ -403,15 +395,23 @@ " JNLUVFYJT1OZSIQ24U47\n", " US9129091081\n", " US9129091081\n", - " 120912\n", + " 141313\n", " \n", " \n", " 42\n", + " WEC Energy Group\n", + " 549300IGLYTZUK3PVP70\n", + " US92939U1060\n", + " US92939U1060\n", + " 87867\n", + " \n", + " \n", + " 43\n", " Xcel Energy, Inc.\n", " LGJNMI9GH8XIDG5RCM61\n", " US98389B1008\n", " US98389B1008\n", - " 79304\n", + " 217156\n", " \n", " \n", "\n", @@ -419,18 +419,18 @@ ], "text/plain": [ " company_name company_lei company_id \\\n", - "38 TC Energy Corp. 549300UGKOFV2IWJJG27 CA87807B1076 \n", "39 TENARIS SA 549300Y7C05BKC4HZB40 US88031M1099 \n", "40 TIMKENSTEEL CORP 549300QZTZWHDE9HJL14 US8873991033 \n", "41 UNITED STATES STEEL CORP JNLUVFYJT1OZSIQ24U47 US9129091081 \n", - "42 Xcel Energy, Inc. LGJNMI9GH8XIDG5RCM61 US98389B1008 \n", + "42 WEC Energy Group 549300IGLYTZUK3PVP70 US92939U1060 \n", + "43 Xcel Energy, Inc. LGJNMI9GH8XIDG5RCM61 US98389B1008 \n", "\n", " company_isin investment_value \n", - "38 CA87807B1076 195002 \n", - "39 US88031M1099 204355 \n", - "40 US8873991033 57497 \n", - "41 US9129091081 120912 \n", - "42 US98389B1008 79304 " + "39 US88031M1099 143651 \n", + "40 US8873991033 89816 \n", + "41 US9129091081 141313 \n", + "42 US92939U1060 87867 \n", + "43 US98389B1008 217156 " ] }, "metadata": {}, @@ -477,7 +477,7 @@ " scopes=[EScope.S1S2], \n", " aggregation_method=PortfolioAggregationMethod.WATS # Options for the aggregation method are WATS, TETS, AOTS, MOTS, EOTS, ECOTS, and ROTS.\n", ")\n", - "amended_portfolio = temperature_score.calculate(data_warehouse=template_provider, portfolio=companies)" + "enhanced_portfolio = temperature_score.calculate(data_warehouse=template_provider, portfolio=companies)" ] }, { @@ -816,6 +816,13 @@ " \n", " \n", " 42\n", + " WEC Energy Group\n", + " LONG\n", + " S1S2\n", + " 2.25\n", + " \n", + " \n", + " 43\n", " Xcel Energy, Inc.\n", " LONG\n", " S1S2\n", @@ -869,7 +876,8 @@ "39 TENARIS SA LONG S1S2 1.65\n", "40 TIMKENSTEEL CORP LONG S1S2 1.45\n", "41 UNITED STATES STEEL CORP LONG S1S2 1.52\n", - "42 Xcel Energy, Inc. LONG S1S2 2.04" + "42 WEC Energy Group LONG S1S2 2.25\n", + "43 Xcel Energy, Inc. LONG S1S2 2.04" ] }, "metadata": {}, @@ -879,7 +887,7 @@ "source": [ "with warnings.catch_warnings():\n", " warnings.simplefilter(\"ignore\")\n", - " display(amended_portfolio[['company_name', 'time_frame', 'scope', 'temperature_score']])" + " display(enhanced_portfolio[['company_name', 'time_frame', 'scope', 'temperature_score']])" ] }, { @@ -904,7 +912,7 @@ } ], "source": [ - "aggregated_scores = temperature_score.aggregate_scores(amended_portfolio)\n", + "aggregated_scores = temperature_score.aggregate_scores(enhanced_portfolio)\n", "print(f\"Temperature Score aggregation method = {temperature_score.aggregation_method}\")" ] }, @@ -916,13 +924,13 @@ { "data": { "text/html": [ - "2.0064657077628114 delta_degree_Celsius" + "2.056225816346466 delta_degree_Celsius" ], "text/latex": [ - "$2.0064657077628114\\ \\mathrm{delta\\_degree\\_Celsius}$" + "$2.056225816346466\\ \\mathrm{delta\\_degree\\_Celsius}$" ], "text/plain": [ - "2.0064657077628114 " + "2.056225816346466 " ] }, "execution_count": 15, @@ -990,7 +998,7 @@ "outputs": [ { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ "
    " ] @@ -1106,11 +1114,11 @@ "temperature_score = TemperatureScore(time_frames=time_frames,\n", " scopes=scopes,\n", " grouping=grouping)\n", - "amended_portfolio = temperature_score.calculate(data_warehouse=template_provider, portfolio=companies)\n", - "aggregated_portfolio = temperature_score.aggregate_scores(amended_portfolio)\n", + "enhanced_portfolio = temperature_score.calculate(data_warehouse=template_provider, portfolio=companies)\n", + "aggregated_portfolio = temperature_score.aggregate_scores(enhanced_portfolio)\n", "with warnings.catch_warnings():\n", " warnings.simplefilter(\"ignore\")\n", - " company_contributions = collect_company_contributions(aggregated_portfolio, amended_portfolio, analysis_parameters)" + " company_contributions = collect_company_contributions(aggregated_portfolio, enhanced_portfolio, analysis_parameters)" ] }, { @@ -1120,7 +1128,7 @@ "outputs": [ { "data": { - "image/png": "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5WoZQX+4/23X3ScTFJPTw31udijU3acQvLb/RtDyfTzBiTkbsshU1ftZRBoJU19SERERkfhQy5mIiIhIjKg4ExEREYkRFWciIiIiMaLiTERERCRGVJyJiIiIxIiKMxEREZEYUXEmIiIiEiMqzkRERERiRMWZiIiISIyoOBMRERGJERVnIiIiIjGi4kxEREQkRlSciYiIiMSIijMRERGRGFFxJiIiIhIjKs5EREREYkTFmYiIiEiMqDgTERERiZFmUQcQERGJyscff9y5WbNmDwB7owaLfFEKTCwpKTn/gAMOWBB1mIqoOBMRkbzVrFmzB3bcccc9O3XqtLRJkyYedR7JvdLSUlu4cGGfefPmPQCcEHWeiuhbgoiI5LO9O3XqtEKFWf5o0qSJd+rUaTlBa2ksqTgTEZF81kSFWf4J/+axrYFiG0xEREQkH6nPmYiISCiRTB1Ql9tLFxd9XN0yTZs2PaBnz55ryx6ffPLJS2655ZZ5AwYM2OO2226beeihh66pyT7ff//91jNnzmxx+umnL69o/pgxY7YZOXJkh1GjRs2sbBuDBw/e/amnnvoG4IEHHtghmUwuzHb/L774Yrvbb7+94K233ppWNu2UU05JHHfcccvPO++8pTfeeGPnX/ziF4vatWtXmrmvjh07btpmm232W7NmzafpdLr5xRdf3P2VV16ZXv75PProo+0nTZrU+pZbbpmXbaaGRsWZiIhIhFq2bFk6efLkL+pqe+PGjdtm3LhxbSoqzjZu3Mihhx66prqCb/To0dMApkyZ0uLBBx/sXJPirDr33XdfwQUXXLCkrDgr21emRCKx8ZVXXpkOWz6fM888czlQYeHZWOiwpoiISMw9/fTT2/br1693nz599hw6dOiuy5cvbwIwevTobfbbb7/ee+yxR5999tlnz8WLFze99dZbd3rhhRe27927d5+///3v21955ZU7DR8+fOdDDjmk58knn7zLiy++2O6www7bHWD58uVNTj311ESvXr369OrVq8+oUaO2A+jates+c+fObXbVVVd1mzlzZsvevXv3ueiii7qddNJJuzzyyCPbleU64YQTdnn00UfbZ/s8br755s4LFixoPnjw4F4DBw7slbmvzOWmTJnSomfPnnutW7fOyj+fO++8s8OPfvSjHgBz5sxp9v3vf3+3vffee8+99957z9dee60NQCqVatu7d+8+vXv37rPnnnv2Wbp0aYOqdxpUWBERkcZm/fr1TcoKibICJHP+3Llzm91yyy1dxowZM/WLL774cv/9919z0003Faxbt87OPPPM3f76179+O2XKlC9Gjx49Zdttt910zTXXzDn++OOXTp48+YsLLrhgKcCECRO2efXVV6e98MIL32RuO5lMdtl22203TZ069YupU6d+UVRUtDJz/u233z6re/fu6ydPnvzFfffdN+uCCy5YOGrUqA4Aixcvbvrxxx+3Pe2007Juxbr++usXdO7ceePo0aOnjh07dmp1y7dq1corej5lLrroou5XXnnl/IkTJ375zDPPfH3xxRcnwtw73nnnnTMmT578xQcffDC5bdu2pdlmjAMd1hQREYlQdYc133777TZff/11qwEDBvQG2Lhxox1wwAGrJkyY0Kpz584bBw8evAZghx12qLQAOeaYY5a1bdt2i7NSx4wZs+0TTzwxvexxp06dNlWVtaioaNUVV1yx8+zZs5s9+uij2xcVFS1t3rz5ZsuYWYVnv1Y2fWu8995723711Vetyx6vWrWq6dKlS5sUFhauuvrqq7ufdtppS4YPH750t912U3EmIiIidcPdGTRo0IryrV5jx45tnW3B06ZNmwqLE3fHzGqU57TTTlv8wAMP7PDUU0/tMHLkyHT5+Z07dy5Zvnz5ZvXF0qVLm3Xq1KmkRjvKgrszbty4L8sXnrfccsu8k046aflzzz3X/uCDD97zlVdembrffvutq+v954qKszyXSKa2AzoC7YCm4a0U2ASsBRYDi9PFRVV+mxJpDBLJVHNge2A7oA3g4a00/FkCLAUW6T0h9WXIkCGrr7rqqh4TJ05suffee69fuXJlk2+++ab5vvvuu27+/PktRo8evc3gwYPXLF26tEnbtm1Lt912202rVq3KqtvSkCFDVtxxxx2dR44cORNg4cKFTTNbz9q3b79p9erVm23r4osvXjRw4MA9O3bsuLF///5bFDx77733+vnz5zf/5JNPWu2///7rpk6d2mLy5MmtCwsL1wK0adNm0/Lly5t06dIlq+df1fMZNGjQij/+8Y+db7rppvkQnKl68MEHr500aVLLAQMGrB0wYMDasWPHtpk4cWIrFWcSG4lkqjPQu9ytO9AJ2AFoXvna/1OaSKaWAQuBecBU4MuM27fp4iIN4igNQiKZ6gTsWe7WAyggKMyyUZpIphYD84EFwHRgEjARmJguLmq0p/g3dtkMfVHXyvqclT0+/PDDl99zzz2zyx7vtNNOJffdd1/6jDPO2HXDhg0GcMMNN8zu27fv+kcfffTryy+/vMe6deuatGrVqnTMmDFThw4duvK2227r0rt37z5XXXXV3Kr2feutt84977zzevTs2XOvJk2a+LXXXjvnnHPOWVY2f8cdd9x0wAEHrOrZs+dehx9++PL77rtvVvfu3Ut22223dccff/yyirbZunVr/7//+7/p5513XmL9+vVNmjVr5nffffeMDh06bAI455xzFg0dOrRn586dN2bT76yq53P//ffPPP/883v06tWrz6ZNm2zgwIErDz744G//9Kc/dX7//fe3bdKkiffq1Wvtqaee2qDO7jR3faY2FolkygguR/G9jFvXetj1SuC/wJjw9mG6uGh9PexXpErhe2IfYHB4G0RQhOXaImA88C4wGviv3hPx9Nlnn6X33XffRVHnaEhWrlzZpE+fPn3Gjx//ZVnB1RB99tlnHffdd99E1DkqopazBi6RTG0PFAEnAkeQ/Tf/utQOODq8AaxPJFP/BV4Enk0XF30dQSbJU+Gh+pMI3hOHErQQ17eOwJHhDWBtIpkaA7wK/CtdXDQrgkwiW+3ZZ59td8kllyQuueSS+Q25MIs7tZw1QIlkqh1wCnA6wT//uBfZ44F/Ak+ki4vS0UaRxiiRTLUnKMZOA44CWkSbqEpO0KL2OEGhplabCKnlLH/FueVMxVkDkkim+gI/Bc4E2kYcpzZKgVeAe4CX08VFDerUZomfRDI1iOA9cTLQMuI4tVECvAbcTfCe0D/keqbiLH+pOJNaSyRTzQhaAy4FDo44Tl2aDtwH/D1dXLS0uoVFyiSSqRbAcOAKoF+kYerWZOCvwD/SxUVrq1lW6oiKs/yl4kxqLJFMNSVoIfsNsHvEcXJpBcEH0h3p4qIGdTaN1K9wmIuLgGuAnSKOk0uLCVqXb9d7IvdUnOUvFWeStUQy1YSgVeC3QK+I49SnpcDtwP9LFxetijqMxEd4xuUPgRuBXSOOU58WAzcD96SLizZEHaaxUnGWv1ScSVYSydTBBN+Y9406S4QWAkng/9T/RhLJ1DFAMfn9nvgGuI7ghBq9J+pY+eLsmQ/mH1CX2x9WWJDVuGm//vWvd3zqqac6NGnSxJs0acI999wz4913323zi1/8YlG7du1q1T/3lFNOSRx33HHLzzvvPHUdqUCcizNd+DwGEslUh0Qy9QDBGVz5/CEEweC4DwLvJJKpvaMOI9FIJFMFiWTqSeBl9J7YBXgMeF/vicbpjTfeaPPqq69u9/nnn38xderUL956662pu+6664b77ruvINuR/qVx0R89Yolk6sfAFOAnQM0ucNa4HQJ8mkim/pxIptpEHUbqTyKZOo/gyhM/iDpLzBQCnySSqZvCkyKkkZg9e3bzHXbYoaR169YO0KVLl5JHHnlk+wULFjQfPHhwr4EDB/YCePrpp7ft169f7z59+uw5dOjQXZcvX94E4J133tnmwAMP3GOvvfbac9CgQT1nzJiRzZVfJMZUnEUkkUx1TiRTLxK0EnWIOk9MNQOuJijSDow6jORWIpnaOZFMvQ6MJJrBlBuC5sD1wEeJZCrfWxQbjZNOOmnFnDlzWiQSib3POuusHqlUqu3111+/oHPnzhtHjx49dezYsVPnzp3b7JZbbukyZsyYqV988cWX+++//5qbbrqpYP369Xb55Zf3eO65576eNGnSl+ecc86iq6++uj6uDCM5FPfBSxulRDL1feAfQOeoszQQPQkO6fwG+KP63TQ+iWSqiOA9EcVo/g1RX+DDRDJ1Vbq46K6ow8jWad++fenEiRO/eOWVV9q9+eab7c4555zdfvvb3252FYm33367zddff91qwIABvQE2btxoBxxwwKoJEya0/Oqrr1offvjhvQBKS0vp1KnTxiieh9SdvCjOzOwXwPkEI3N/DpwHbEMwan0CSAOnuftSMzsEuBdYDwx392lmtl247DG+FWdQhMNj3ETQ4V2HMGumGXArcGgimfqRRlVvHPSe2CotgL8lkqkBwEUaG61ha9asGccdd9zK4447bmXfvn3XPvzww5sdUXF3Bg0atOKFF174JnP6hx9+2Hr33XdfO378+Mn1m1hyqdEf1jSzrsDlQH933xtoCpxB8GHwprv3BN4MHwNcRXBppGuBS8JpvwFu2crCrB3wPMEYTfoQqr2hBC0Ge0YdRLZOIpnqTDA6vt4TW+ds4L+JZGq3qINI7Xz22WctP//88/9d4eLTTz9t3a1btw1t2rTZVNavbMiQIavHjRvXduLEiS0huPj4hAkTWvbt23fdkiVLmr3xxhttANavX2/jxo1rFc0z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\n", + "image/png": "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EfVX+9923X0CUWicEu9zg0OY7j6R6H19O1Er9nFEJ8esyaKm+j7LIlJETP09RURERJqeWsJEREREAlAIExEREQlAIUxEREQkAIUwERERkQAUwkREREQCUAgTERERCUAhTERERCQAhTARERGRABTCRERERAJQCBMREREJQCFMREREJACFMBEREZEAFMJEREREAlAIExEREQlAIUxEREQkAIUwERERkQAUwkREREQCUAgTERERCaBF6AJERERybfTo0V1btGhxP9AXNUCUiipg3Lp168474IAD5oQupjYKYSIiUvRatGhx//bbb79nly5dFjZr1sxD1yO5V1VVZXPnzu3zxRdf3A8cH7qe2ujbgIiIlIK+Xbp0WaIAVjqaNWvmXbp0WUzU+pmXFMJERKQUNFMAKz3x7zxvs07eFiYiIiJSzNQnTERESk4imTqgMbeXrqwY3dAyzZs3P6Bnz54rqx+fdNJJC4YMGfJF//7997jlllumHX744Ss2ZZ/vvvtum2nTpm112mmnLa5t/vDhw9s++OCDnYYOHTqtrm0MGDBg96eeeuozgPvvv3+7ZDI5N9v9v/jii1vfeuutZW+99dbk6mknn3xy4thjj1187rnnLrzuuuu6XnbZZfO23nrrqsx9de7ceX3btm33W7FixX/T6XTLiy66qPsrr7wypebzeeyxxzqOHz++zZAhQ77ItqZCoxAmIiLSBFq1alU1YcKEjxpre6NGjWo7atSodrWFsLVr13L44YevaCjYDRs2bDLAxIkTt3rggQe6bkoIa8g999xTdv755y+oDmHV+8qUSCTWvvLKK1Ng4+dz5plnLgZqDZjFQocjRURE8sTTTz/doV+/fr379Omz56BBg3ZdvHhxM4Bhw4a13W+//Xrvscceffbee+8958+f3/zGG2/c8YUXXti2d+/efe67775tL7/88h3POOOMnb/61a/2POmkk3Z58cUXtz7iiCN2B1i8eHGzU045JdGrV68+vXr16jN06NBtALp167b3rFmzWlxxxRU7TZs2rVXv3r37XHjhhTudeOKJuzz66KPbVNd1/PHH7/LYY491zPZ53HDDDV3nzJnTcsCAAb0OOuigXpn7ylxu4sSJW/Xs2XOvVatWWc3nc9ttt3X67ne/2wNg5syZLb75zW/u1rdv3z379u2752uvvdYOIJVKte/du3ef3r1799lzzz37LFy4sKByTUEVKyIiUqhWr17drDowVAeNzPmzZs1qMWTIkB2GDx8+6aOPPvp4//33X3H99deXrVq1ys4888zd/vjHP34+ceLEj4YNGzaxQ4cO66+66qqZxx133MIJEyZ8dP755y8EGDt2bNtXX3118gsvvPBZ5raTyeQOHTp0WD9p0qSPJk2a9FFFRcXSzPm33nrr9O7du6+eMGHCR/fcc8/0888/f+7QoUM7AcyfP7/56NGj25966qlZt0pdc801c7p27bp22LBhk0aMGDGpoeVbt27ttT2fahdeeGH3yy+/fPa4ceM+fuaZZz696KKLEnHd2992221TJ0yY8NF77703oX379lXZ1pgPdDhSRESkCTR0OPLtt99u9+mnn7bu379/b4C1a9faAQccsGzs2LGtu3btunbAgAErALbbbrs6g8bRRx+9qH379hudBTp8+PAOjz/++JTqx126dFlfX60VFRXLLr300p1nzJjR4rHHHtu2oqJiYcuWLTdYxsxqPdu0rulb4p133unwySeftKl+vGzZsuYLFy5sVl5evuzKK6/sfuqppy4444wzFu62224KYSIiIrJp3J1DDz10Sc1WrBEjRrTJNti0a9eu1hDi7pjZJtVz6qmnzr///vu3e+qpp7Z78MEH0zXnd+3add3ixYs3yBELFy5s0aVLl3WbtKMsuDujRo36uGbAHDJkyBcnnnji4ueee67jIYccsucrr7wyab/99lvV2PvPFYWwEpBIptoB2wBbA22A1sB6YCWwKv65Elicrqxo9A+PSL5JJFNtgHZA+/hnO6A5sAJYnnlLV1bU22Ig0lgGDhy4/Iorrugxbty4Vn379l29dOnSZp999lnLfffdd9Xs2bO3GjZsWNsBAwasWLhwYbP27dtXdejQYf2yZcuy6lY0cODAJb///e+7Pvjgg9MA5s6d2zyzNaxjx47rly9fvsG2LrroonkHHXTQnp07d1574IEHbhRs+vbtu3r27Nkt33///db777//qkmTJm01YcKENuXl5SsB2rVrt37x4sXNdthhh6yef33P59BDD11y0003db3++utnQ3Rm6CGHHLJy/Pjxrfr377+yf//+K0eMGNFu3LhxrRXCpEklkikDegL9gF0ybrsCPYCtstxUVSKZ+gKYBnwe/5wC/BcYk66s2KTTp0VCiT8TewL7En02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smJp6GJEJD8ohOWxuCXgWOBMomvw5fMAlxOAZ4En05UVowPXIkUqkUxtTRTETgGOAFqGraheHxJdfP7v6cqKsaGLEZH8oxBWIBLJ1DbA14Cvx7ddgxYUnc01iuifzLPpygp1tJcmFX8mBhF9Qfkm0CVoQdFn4l9En4nn4kuYiYjUSSGsQMUXCv86UA4cAPQBWuRwlwuAfwPvxrf/pCsrVuRwfyJZiy+J1Bs4iKhP5UHAPuT2MzETeC/jNipdWbEyh/sTkSKjEFYk4tP79wD6ArsRneK/I9HZZTsStRLUdThzJdFlgxbFt1nAZ8AUYCLwcbqyYkbuqhdpfIlkqg2wF7AL0ZnHmbdtgbZE/ctqC2rriT4Ti4nCVvXn4bP49km6smJmDssXkRKgEFZiEslUC6J+NC3i2/J0ZcWasFWJhBOP2deW6PJJq4HV6cqKVWGrEpFSoBAmIiIiEkCz0AWIiIiIlCKFMBEREZEAFMJEREREAlAIExEREQlAIUxEREQkAIUwERERkQAUwkREREQCUAgTERERCUAhTERERCQAhTARERGRABTCRERERAJQCBMREREJQCFMREREJACFMBEREZEAFMJEREREAlAIExEREQlAIUxEREQkAIUwERERkQAUwkREREQCUAgTERERCUAhTERERCQAhTARERGRABTCRERERAJQCBMREREJQCFMREREJACFMBEREZEAFMJEREREAlAIExEREQlAIUxEREQkAIUwERERkQAUwkREREQCUAgTERERCUAhTERERCQAhTARERGRABTCRERERAJQCBMREREJQCFMREREJACFMBEREZEAFMJEREREAlAIExEREQlAIUxEREQkAIUwERERkQAUwkREREQCUAgTERERCUAhTERERCQAhTARERGRABTCRERERAJQCBMREREJQCFMJE+Z2bKMW5WZrcx4fGbo+jaHmaXN7KjQdciW0+9SZMu1CF2AiNTO3dtX3zezNHCeu78RrqL6mVkLd19X6PvYFPlWD+RnTTUVQo0iTUEtYSIFxsyamVnSzD41s/lm9oSZbRfPS5iZm9m5ZjbNzBaa2UVm9hUzG2tmi8zszxnbOsfM3jGz281ssZlNMLOvZczvaGYPmNksM5thZjeYWfMa6/7BzBYAvzaz3czsH3Fd88zsMTPbJl7+EaAH8ELcmvczMxtoZtNrPL//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9mZm8f3+cT3zc1iTiIiISF7I2eFId19nZj8CXiW6BNKD7j7ezC6K599NdCHwi81sHbASON3dax6yFBERESk6uewTVn2I8aUa0+7OuP9n4M+5rEFEREQkH+XycKSIiIiI1EEhTERERCQAhTARERGRABTCRERERAJQCBMREREJQCFMREREJACFMBEREZEAFMJEREREAlAIExEREQlAIUxEREQkAIUwERERkQAUwkREREQCUAgTERERCUAhTERERCQAhTARERGRABTCRERERAJQCBMREREJQCFMREREJACFMBEREZEAFMJEREREAlAIExEREQlAIUxEREQkAIUwERERkQAUwkREREQCUAgTERERCUAhTERERCQAhTARERGRABTCRERERAJQCBMREREJQCFMREREJACFMBEREZEAFMJEREREAshpCDOzo81soplNNrNkLfPNzG6L5481s/1zWY+IiIhIvshZCDOz5sAdwCCgD3CGmfWpsdggoGd8uwC4K1f1iIiIiOSTXLaE9Qcmu/sUd18DPA6cUGOZE4CHPfIesI2Z7ZDDmkRERETyQoscbrsbMC3j8XTgoCyW6QbMylzIzC4gaikDWGZmExu3VClCnYF5oYuQzWc3ha5ApEH6O1PgmujvzM51zchlCLNapvlmLIO73wvc2xhFSWkws1HufmDoOkSkeOnvjGypXB6OnA50z3i8EzBzM5YRERERKTq5DGEjgZ5mtouZbQWcDjxfY5nnge/GZ0mWA4vdfVbNDYmIiIgUm5wdjnT3dWb2I+BVoDnwoLuPN7OL4vl3Ay8BxwCTgRXAubmqR0qODl+LSK7p74xsEXPfqAuWiIiIiOSYRswXERERCUAhTERERCQAhTARERGRABTCREREaojP6hfJKYUwKThmZvFPvX9FpNGZ2d7A982sW+hapLjpn5gUFDMzd3czOx64S99WRSQHdgSOAo4xsx1DFyPFK5eXLRJpdHEAOwb4DfBTd19THcxC1yYiha36b4m7v2pmDnwXaG5mz7u7ruYijU4tYVJQ4kORRwBXA+PiFrG/mNk3zKxV9aFKEZFNUfPLnLu/BtwGHA4crxYxyQUN1ip5r+YfRzO7CugPdCK6IsOuRK2657v7mjBVikgxiK/q0ofoKi73AZ2BHwH/BF5y9+kBy5Mio8ORktcy+oAdTfSH0YHfAYcCM939EzPr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\n", "text/plain": [ "
    " ] @@ -1181,94 +1189,94 @@ " \n", " \n", " \n", - " 8\n", + " 18\n", + " STEEL DYNAMICS INC\n", + " US8581191009\n", + " Steel\n", + " 2.1980042601105136 percent\n", + " 1.65 delta_degree_Celsius\n", + " 0.00\n", + " 2.74\n", + " \n", + " \n", + " 22\n", " CARPENTER TECHNOLOGY CORP\n", " US1442851036\n", " Steel\n", - " 3.253451472385291 percent\n", + " 1.9280378585340923 percent\n", " 1.72 delta_degree_Celsius\n", " 0.01\n", - " 3.80\n", + " 2.30\n", " \n", " \n", - " 11\n", - " GERDAU S.A.\n", - " US3737371050\n", + " 24\n", + " COMMERCIAL METALS CO\n", + " US2017231034\n", " Steel\n", - " 2.8139077735220224 percent\n", - " 1.64 delta_degree_Celsius\n", + " 1.8597745540469062 percent\n", + " 1.41 delta_degree_Celsius\n", " 0.01\n", - " 3.44\n", + " 2.71\n", " \n", " \n", - " 16\n", + " 25\n", " TENARIS SA\n", " US88031M1099\n", " Steel\n", - " 2.5979139220980167 percent\n", + " 1.78307710100653 percent\n", " 1.65 delta_degree_Celsius\n", " NaN\n", - " 3.16\n", + " 2.22\n", " \n", " \n", - " 19\n", - " POSCO\n", - " KR7005490008\n", - " Steel\n", - " 2.313256276314664 percent\n", - " 1.72 delta_degree_Celsius\n", - " 0.00\n", - " 2.70\n", - " \n", - " \n", - " 26\n", - " COMMERCIAL METALS CO\n", - " US2017231034\n", + " 29\n", + " UNITED STATES STEEL CORP\n", + " US9129091081\n", " Steel\n", - " 1.8823941526018306 percent\n", - " 1.41 delta_degree_Celsius\n", + " 1.6158581353389285 percent\n", + " 1.52 delta_degree_Celsius\n", " 0.01\n", - " 2.68\n", + " 2.19\n", " \n", " \n", - " 35\n", - " UNITED STATES STEEL CORP\n", - " US9129091081\n", + " 33\n", + " GERDAU S.A.\n", + " US3737371050\n", " Steel\n", - " 1.4160172296309894 percent\n", - " 1.52 delta_degree_Celsius\n", + " 1.1914905073392856 percent\n", + " 1.64 delta_degree_Celsius\n", " 0.01\n", - " 1.87\n", + " 1.49\n", " \n", " \n", - " 40\n", + " 36\n", " NUCOR CORP\n", " US6703461052\n", " Steel\n", - " 0.6685329850980972 percent\n", + " 1.0108766558572626 percent\n", " 1.43 delta_degree_Celsius\n", " 0.00\n", - " 0.94\n", + " 1.45\n", " \n", " \n", - " 41\n", + " 37\n", " TIMKENSTEEL CORP\n", " US8873991033\n", " Steel\n", - " 0.6423455686646337 percent\n", + " 0.9797138254089452 percent\n", " 1.45 delta_degree_Celsius\n", - " 0.04\n", - " 0.89\n", + " 0.06\n", + " 1.39\n", " \n", " \n", - " 42\n", - " STEEL DYNAMICS INC\n", - " US8581191009\n", + " 39\n", + " POSCO\n", + " KR7005490008\n", " Steel\n", - " 0.4918944160296473 percent\n", - " 1.65 delta_degree_Celsius\n", + " 0.9013675326237647 percent\n", + " 1.72 delta_degree_Celsius\n", " 0.00\n", - " 0.60\n", + " 1.08\n", " \n", " \n", "\n", @@ -1276,37 +1284,37 @@ ], "text/plain": [ " company_name company_id sector \\\n", - "8 CARPENTER TECHNOLOGY CORP US1442851036 Steel \n", - "11 GERDAU S.A. US3737371050 Steel \n", - "16 TENARIS SA US88031M1099 Steel \n", - "19 POSCO KR7005490008 Steel \n", - "26 COMMERCIAL METALS CO US2017231034 Steel \n", - "35 UNITED STATES STEEL CORP US9129091081 Steel \n", - "40 NUCOR CORP US6703461052 Steel \n", - "41 TIMKENSTEEL CORP US8873991033 Steel \n", - "42 STEEL DYNAMICS INC US8581191009 Steel \n", + "18 STEEL DYNAMICS INC US8581191009 Steel \n", + "22 CARPENTER TECHNOLOGY CORP US1442851036 Steel \n", + "24 COMMERCIAL METALS CO US2017231034 Steel \n", + "25 TENARIS SA US88031M1099 Steel \n", + "29 UNITED STATES STEEL CORP US9129091081 Steel \n", + "33 GERDAU S.A. US3737371050 Steel \n", + "36 NUCOR CORP US6703461052 Steel \n", + "37 TIMKENSTEEL CORP US8873991033 Steel \n", + "39 POSCO KR7005490008 Steel \n", "\n", " contribution temperature_score \\\n", - "8 3.253451472385291 percent 1.72 delta_degree_Celsius \n", - "11 2.8139077735220224 percent 1.64 delta_degree_Celsius \n", - "16 2.5979139220980167 percent 1.65 delta_degree_Celsius \n", - "19 2.313256276314664 percent 1.72 delta_degree_Celsius \n", - "26 1.8823941526018306 percent 1.41 delta_degree_Celsius \n", - "35 1.4160172296309894 percent 1.52 delta_degree_Celsius \n", - "40 0.6685329850980972 percent 1.43 delta_degree_Celsius \n", - "41 0.6423455686646337 percent 1.45 delta_degree_Celsius \n", - "42 0.4918944160296473 percent 1.65 delta_degree_Celsius \n", + "18 2.1980042601105136 percent 1.65 delta_degree_Celsius \n", + "22 1.9280378585340923 percent 1.72 delta_degree_Celsius \n", + "24 1.8597745540469062 percent 1.41 delta_degree_Celsius \n", + "25 1.78307710100653 percent 1.65 delta_degree_Celsius \n", + "29 1.6158581353389285 percent 1.52 delta_degree_Celsius \n", + "33 1.1914905073392856 percent 1.64 delta_degree_Celsius \n", + "36 1.0108766558572626 percent 1.43 delta_degree_Celsius \n", + "37 0.9797138254089452 percent 1.45 delta_degree_Celsius \n", + "39 0.9013675326237647 percent 1.72 delta_degree_Celsius \n", "\n", " ownership_percentage portfolio_percentage \n", - "8 0.01 3.80 \n", - "11 0.01 3.44 \n", - "16 NaN 3.16 \n", - "19 0.00 2.70 \n", - "26 0.01 2.68 \n", - "35 0.01 1.87 \n", - "40 0.00 0.94 \n", - "41 0.04 0.89 \n", - "42 0.00 0.60 " + "18 0.00 2.74 \n", + "22 0.01 2.30 \n", + "24 0.01 2.71 \n", + "25 NaN 2.22 \n", + "29 0.01 2.19 \n", + "33 0.01 1.49 \n", + "36 0.00 1.45 \n", + "37 0.06 1.39 \n", + "39 0.00 1.08 " ] }, "execution_count": 21, @@ -1342,7 +1350,7 @@ "outputs": [], "source": [ "data_dump_filename = 'data_dump.xlsx'\n", - "amended_portfolio.set_index(['company_name', 'company_id']).to_excel(data_dump_filename)" + "enhanced_portfolio.set_index(['company_name', 'company_id']).to_excel(data_dump_filename)" ] }, { From 84fd00fc6e064e1c67cb43ee4266dd4ef6292a47 Mon Sep 17 00:00:00 2001 From: MichaelTiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> Date: Sun, 6 Mar 2022 21:55:21 -0500 Subject: [PATCH 164/345] _emission_intensity -> _ei in test files Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- test/test_base_providers.py | 4 ++-- test/test_excel_provider.py | 2 +- test/test_template_provider.py | 8 ++++---- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/test/test_base_providers.py b/test/test_base_providers.py index 5cff5284..d7e77db0 100644 --- a/test/test_base_providers.py +++ b/test/test_base_providers.py @@ -142,7 +142,7 @@ def test_get_cumulative_value(self): expected_data = pd.Series([10.0, 50.0], index=[0, 1], dtype='pint[Mt CO2]') - cumulative_emissions = self.base_warehouse._get_cumulative_emissions(projected_emission_intensity=projected_ei, + cumulative_emissions = self.base_warehouse._get_cumulative_emissions(projected_ei=projected_ei, projected_production=projected_production) assert_pint_series_equal(self, cumulative_emissions, expected_data) @@ -177,4 +177,4 @@ def test_get_value(self): test = TestBaseProvider() test.setUp() test.test_get_projected_production() - test.test_get_company_data() \ No newline at end of file + test.test_get_company_data() diff --git a/test/test_excel_provider.py b/test/test_excel_provider.py index 8a399dda..0a56c47f 100644 --- a/test/test_excel_provider.py +++ b/test/test_excel_provider.py @@ -169,7 +169,7 @@ def test_get_cumulative_value(self): projected_production = pd.DataFrame([[2.0, 4.0], [6.0, 8.0]], dtype='pint[GJ]') expected_data = pd.Series([10.0, 50.0], dtype='pint[t CO2]') - emissions = self.excel_provider._get_cumulative_emissions(projected_emission_intensity=projected_emission, + emissions = self.excel_provider._get_cumulative_emissions(projected_ei=projected_emission, projected_production=projected_production) assert_pint_series_equal(self, emissions, expected_data) diff --git a/test/test_template_provider.py b/test/test_template_provider.py index 246c6aa3..7f4a23e5 100644 --- a/test/test_template_provider.py +++ b/test/test_template_provider.py @@ -80,15 +80,15 @@ def test_temp_score(self): df_portfolio = pd.read_excel(self.company_data_path, sheet_name="Portfolio") # df_portfolio = df_portfolio[df_portfolio.company_id=='US00130H1059'] portfolio = ITR.utils.dataframe_to_portfolio(df_portfolio) - + temperature_score = TemperatureScore( time_frames=[ETimeFrames.LONG], scopes=[EScope.S1S2], aggregation_method=PortfolioAggregationMethod.WATS # Options for the aggregation method are WATS, TETS, AOTS, MOTS, EOTS, ECOTS, and ROTS. ) - portfolio_data = ITR.utils.get_data(self.data_warehouse, portfolio) - + portfolio_data = ITR.utils.get_data(self.data_warehouse, portfolio) + amended_portfolio = temperature_score.calculate(data_warehouse=self.data_warehouse, data=portfolio_data, portfolio=portfolio) print(amended_portfolio[['company_name', 'time_frame', 'scope', 'temperature_score']]) @@ -210,7 +210,7 @@ def test_get_cumulative_value(self): projected_emission = pd.DataFrame([[1.0, 2.0], [3.0, 4.0]], dtype='pint[t CO2/GJ]') projected_production = pd.DataFrame([[2.0, 4.0], [6.0, 8.0]], dtype='pint[GJ]') expected_data = pd.Series([10.0, 50.0], dtype='pint[t CO2]') - emissions = self.data_warehouse._get_cumulative_emissions(projected_emission_intensity=projected_emission, + emissions = self.data_warehouse._get_cumulative_emissions(projected_ei=projected_emission, projected_production=projected_production) assert_pint_series_equal(self, emissions, expected_data) From c70bef5164f1da4ce7a2f94629e8f01f2d48089a Mon Sep 17 00:00:00 2001 From: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> Date: Mon, 7 Mar 2022 07:00:52 -0500 Subject: [PATCH 165/345] Update DataTemplateRequirements.rst Fixed list markdowns so they render correctly. Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- docs/DataTemplateRequirements.rst | 56 ++++++++----------------------- 1 file changed, 14 insertions(+), 42 deletions(-) diff --git a/docs/DataTemplateRequirements.rst b/docs/DataTemplateRequirements.rst index 1b6c354d..e6987c25 100644 --- a/docs/DataTemplateRequirements.rst +++ b/docs/DataTemplateRequirements.rst @@ -1,6 +1,6 @@ -******************** +************************** Data Template Requirements -******************** +************************** The ITR Data Template comes with two sheets dedicated to documentation (Read me, Definitions) and three to be filled by data by users (ITR @@ -48,9 +48,9 @@ that financial information is rooted to a date that can be fed onward to other BI analysis. The fundamental financial data includes: + - market_cap (public float) -- revenue (could be FY, CY, TTM, or any period that's consistent - across all rows) +- revenue (could be FY, CY, TTM, or any period that's consistent across all rows) - ev (enterprise value = public float + debt - cash equivalents) - evic (enterprise value including cash = public float + debt) - assets (the sum total of valorized assets on the balance sheet) @@ -93,20 +93,10 @@ so there may be some rows that have only 2016-2020 data. Some companies--for whatever reason--may have also skipped a year in between their 2016 disclosure and their latest (2020, 2021, or 2022) disclosures. The tool deals with three types of missing data: -- If the data is missing from the left (ie., there's no data for 2016 - or years until a certain date), the tool ignores the missing - data. As long as there is data present for the base year of the - temperature score (typically 2019 or 2020), it will work. -- If the data is missing between two points, the tool fills the data - with a linear interpolation. So if data from 2017 is missing, it - would average data from 2016 and 2018 if those years are available. -- If the data is missing to the right, it will extrapolate the data - until it has filled in all cells up to the latest reported data. If - all but a few companies report 2020 data and none report 2021 data, - tool will extrapolation 2019 data for those companies missing 2020 - data. If there are also some companies with 2021 data, the tool - will extrapolate missing data for 2021 and, if needed, also 2020 - data. + +- If the data is missing from the left (ie., there's no data for 2016 or years until a certain date), the tool ignores the missing data. As long as there is data present for the base year of the temperature score (typically 2019 or 2020), it will work. +- If the data is missing between two points, the tool fills the data with a linear interpolation. So if data from 2017 is missing, it would average data from 2016 and 2018 if those years are available. +- If the data is missing to the right, it will extrapolate the data until it has filled in all cells up to the latest reported data. If all but a few companies report 2020 data and none report 2021 data, tool will extrapolation 2019 data for those companies missing 2020 data. If there are also some companies with 2021 data, the tool will extrapolate missing data for 2021 and, if needed, also 2020 data. The tool handles data reports for all scopes defined by the GHG Protocol: Scope 1 (own emissions), Scope 2 (emissinos caused by @@ -144,27 +134,12 @@ data`. Most companies have set a short-term reduction ambition target by 2030) and a long-term net-zero target (the tool does not presently distinguish between true zero-emissions and positive emissions with some kind of offset), a single row of data suffices: -- netzero_year is the year at which the netzero ambition should be - realized -- target_type defines whether the short-term ambition is based on - absolute emissions or intensity. Note that when it comes to a - long-term netzero ambition, zero is zero, whether emissions or - intensity. -- target_scope defines the scope(s) of the target. While it is - possible to define S1, S2, S1+S2, S3, S1+S2+S3, at present the most - reliable choice is S1+S2 (because we don't have a complete theory - yet for interpreting the benchmarks upon which the tools is based - for other than S1+S2). -- target_start_year is the year the target was set. In the event that - multiple targets aim for a reduction ambition at the same year, the - latest start_year will be the one the tool uses and all other - targets for that year will be dropped. -- target_base_year and target_base_year_qty define the "when" and the - "from how much" that the target_ambition_reduction applies to (and - hopefully is achieved by the target_year). Because all computations - require units, the target_base_year_unit is needed so that target - quantities can be compared with other emissions, production, and - intensity data. + +- netzero_year is the year at which the netzero ambition should be realized +- target_type defines whether the short-term ambition is based on absolute emissions or intensity. Note that when it comes to a long-term netzero ambition, zero is zero, whether emissions or intensity. +- target_scope defines the scope(s) of the target. While it is possible to define S1, S2, S1+S2, S3, S1+S2+S3, at present the most reliable choice is S1+S2 (because we don't have a complete theory yet for interpreting the benchmarks upon which the tools is based for other than S1+S2). +- target_start_year is the year the target was set. In the event that multiple targets aim for a reduction ambition at the same year, the latest start_year will be the one the tool uses and all other targets for that year will be dropped. +- target_base_year and target_base_year_qty define the "when" and the "from how much" that the target_ambition_reduction applies to (and hopefully is achieved by the target_year). Because all computations require units, the target_base_year_unit is needed so that target quantities can be compared with other emissions, production, and intensity data. Some companies have set more than just one short-term target. In that case, additional rows of target data can be set, one for each @@ -191,6 +166,3 @@ be. (And even with 90% reduction per year for 10 years, there's still that 0.0000000001 to go...) To make the math square with reality, we interpret reducing emissions to less than half-a-percent of the initial amount as rounding down to zero. - - - From 00182a0fab53c846473304e389c2b4010fa64151 Mon Sep 17 00:00:00 2001 From: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> Date: Mon, 7 Mar 2022 09:48:00 -0500 Subject: [PATCH 166/345] Create Calculation.md Copied forward from file checked into main. We'll deconflict when the PR is resolved. Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- docs/Calculation.md | 56 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 docs/Calculation.md diff --git a/docs/Calculation.md b/docs/Calculation.md new file mode 100644 index 00000000..a8ceeb46 --- /dev/null +++ b/docs/Calculation.md @@ -0,0 +1,56 @@ +```mermaid + flowchart TB + subgraph Dev + direction LR + Em_Hist[5Y history of companys'
    emissions 2016-2020]-->Trajectory_Proj; + Pr_Hist[5Y history of companys'
    production 2016-2020]-->Production_Proj; + Bm[Selected Benchmark]-->Bm_Pr; + Bm[Selected Benchmark]-->Bm_Ei; + Bm_Pr[2020-2050 projected
    *production* of industry sectors/regions]-->Production_Proj; + Ei_Target[Companys' interim and
    long-term target goals]-->Target_Proj; + Trajectory_Proj[2020-2050 projected S1+S2
    *emissions intensities* of each company]-->Cum_Trajectory + Production_Proj[2020-2050 projected
    *production* of each company] + Production_Proj-->Trajectory_Proj + Production_Proj-->Cum_Trajectory + Production_Proj-->Cum_Budget + Production_Proj-->Cum_Target + Bm_Ei[2020-2050 projected S1+S2
    *emissions intensities*
    of industry sectors/regions]-->Cum_Budget + Target_Proj[2020-2050 projected S1+S2
    *emissions targets*
    of each company using CAGR interpolation]-->Cum_Target + Cum_Trajectory[Cumulative *trajectory*
    of emissions for each company] + Cum_Budget[Cumulative *budget*
    of emissions for each company] + Cum_Target[Cumulative *target*
    of emissions for each company] + end + subgraph Quant + direction LR + Cum_Trajectory-->Cum_Trajectory_Q + Cum_Budget-->Cum_Budget_Q + Cum_Target-->Cum_Target_Q + Cum_Trajectory_Q-->Trajectory_Overshoot + Cum_Budget_Q-->Trajectory_Overshoot + Cum_Budget_Q-->Target_Overshoot + Cum_Target_Q-->Target_Overshoot + BENCHMARK_GLOBAL_BUDGET-->Trajectory_TS + BENCHMARK_GLOBAL_BUDGET-->Target_TS + tcre_multiplier-->Trajectory_TS + tcre_multiplier-->Target_TS + benchmark_scenario-->Trajectory_TS + benchmark_scenario-->Target_TS + Trajectory_Overshoot-->Trajectory_TS + Target_Overshoot-->Target_TS + Trajectory_TS-->TS + Target_TS-->TS + Probability-->TS[Temperature
    Score] + end + subgraph User + direction LR + TS---TS_U + TS_U[Temperature
    Score]-->Weighted_TS + Weighting_Method-->Weighted_TS + WATS[WATS
    Investment Value]-->Weighting_Method + TETS[TETS
    Total Emissions]-->Weighting_Method + Fundamentals[Weighting by Fundamentals:
    Market Cap
    Revenue
    Enterprise Value
    EVIC
    Assets]-->Weighting_Method + TS -.- Fundamentals + end + Dev-.-Quant + Quant-.-User +``` From 86f99fc036e726f82b70e253a79aec0a68f6a40e Mon Sep 17 00:00:00 2001 From: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> Date: Mon, 7 Mar 2022 10:01:15 -0500 Subject: [PATCH 167/345] Update DataTemplateRequirements.rst Added some installation notes (TODO: fix fontawesome icon reference). Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- docs/DataTemplateRequirements.rst | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/docs/DataTemplateRequirements.rst b/docs/DataTemplateRequirements.rst index e6987c25..19438176 100644 --- a/docs/DataTemplateRequirements.rst +++ b/docs/DataTemplateRequirements.rst @@ -13,7 +13,7 @@ we want to first thank you for your time and interest in our work, and to provide some guidance. The tool does do some error checking, but at the moment it relies heavily on data being both somewhat constrained and well-formatted. We will talk more about what that -means in the following sections. +means in the following sections. At the end we will reiterate how to set up your environment to test out the Jupyter Notebook that implements the tool. ITR Input Data -------------- @@ -166,3 +166,16 @@ be. (And even with 90% reduction per year for 10 years, there's still that 0.0000000001 to go...) To make the math square with reality, we interpret reducing emissions to less than half-a-percent of the initial amount as rounding down to zero. + +Installation Notes +------------------ + +The first step is to request an invitation to join the OS-Climate GitHub team. This is required to access repositories that are not yet public. (They will be published soon, but not yet.) You will also need a Personal Access Token, which you can get by [following these instructions](https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/creating-a-personal-access-token). + +- Clone the [ITR repository](https://github.com/os-climate/ITR.git) +- In the top-level ITR directory, create the `conda` itr_env: `conda env create -f environment.yml` +- Activate that environment: `conda activate itr_env` (you may need to initialize conda by executing `conda init` for your shell first) +- Change to the `examples` directory +- Start your notebook: `jupyter-lab` +- Open the file `quick_template_score_calc.ipynb` +- Run the notebook with a fresh kernel by pressing the @icon-forward button From 55e0538e29c2821d706e05bf802d7c559fe914f6 Mon Sep 17 00:00:00 2001 From: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> Date: Mon, 7 Mar 2022 10:49:38 -0500 Subject: [PATCH 168/345] Update DataTemplateRequirements.rst Changed URL syntax from markdown (which this file is not) to rst syntax (which this file is). Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- docs/DataTemplateRequirements.rst | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/DataTemplateRequirements.rst b/docs/DataTemplateRequirements.rst index 19438176..763040da 100644 --- a/docs/DataTemplateRequirements.rst +++ b/docs/DataTemplateRequirements.rst @@ -170,12 +170,12 @@ initial amount as rounding down to zero. Installation Notes ------------------ -The first step is to request an invitation to join the OS-Climate GitHub team. This is required to access repositories that are not yet public. (They will be published soon, but not yet.) You will also need a Personal Access Token, which you can get by [following these instructions](https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/creating-a-personal-access-token). +The first step is to request an invitation to join the OS-Climate GitHub team. This is required to access repositories that are not yet public. (They will be published soon, but not yet.) You will also need a Personal Access Token, which you can get by `following these instructions ` . -- Clone the [ITR repository](https://github.com/os-climate/ITR.git) +- Clone the `ITR repository ` - In the top-level ITR directory, create the `conda` itr_env: `conda env create -f environment.yml` - Activate that environment: `conda activate itr_env` (you may need to initialize conda by executing `conda init` for your shell first) - Change to the `examples` directory - Start your notebook: `jupyter-lab` - Open the file `quick_template_score_calc.ipynb` -- Run the notebook with a fresh kernel by pressing the @icon-forward button +- Run the notebook with a fresh kernel by pressing the `>>` button From 56c9653a30caa2a9b2e6e729b0f6f744221d05cd Mon Sep 17 00:00:00 2001 From: David Kroon Date: Mon, 7 Mar 2022 18:19:32 +0100 Subject: [PATCH 169/345] Update requirements.txt and conda env yaml Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- environment.yml | 155 +---------------------- examples/quick_template_score_calc.ipynb | 6 +- requirements.txt | 3 +- 3 files changed, 8 insertions(+), 156 deletions(-) diff --git a/environment.yml b/environment.yml index ca98380c..61b91399 100644 --- a/environment.yml +++ b/environment.yml @@ -3,154 +3,7 @@ channels: - conda-forge - defaults dependencies: - - blas=1.0=mkl - - bottleneck=1.3.2=py37h2a96729_1 - - ca-certificates=2021.7.5=haa95532_1 - - certifi=2021.5.30=py37haa95532_0 - - et_xmlfile=1.1.0=py37haa95532_0 - - intel-openmp=2021.3.0=haa95532_3372 - - jdcal=1.4.1=pyhd3eb1b0_0 - - mkl=2021.3.0=haa95532_524 - - mkl-service=2.4.0=py37h2bbff1b_0 - - mkl_fft=1.3.0=py37h277e83a_2 - - mkl_random=1.2.2=py37hf11a4ad_0 - - numexpr=2.7.3=py37hb80d3ca_1 - - numpy-base=1.20.3=py37hc2deb75_0 - - openssl=1.1.1l=h2bbff1b_0 - - pip=20.2.1=py_0 - - python=3.7.8=h60c2a47_1_cpython - - python_abi=3.7=2_cp37m - - pytz=2021.1=pyhd3eb1b0_0 - - setuptools=49.6.0=py37h03978a9_3 - - sqlite=3.36.0=h8ffe710_0 - - ucrt=10.0.20348.0=h57928b3_0 - - vc=14.2=hb210afc_5 - - vs2015_runtime=14.29.30037=h902a5da_5 - - wheel=0.36.2=pyhd3deb0d_0 - - wincertstore=0.2=py37h03978a9_1006 - - pip: - - alabaster==0.7.12 - - anyio==3.3.2 - - argon2-cffi==20.1.0 - - astroid==2.6.2 - - async-generator==1.10 - - attrs==21.2.0 - - babel==2.9.1 - - backcall==0.2.0 - - bleach==3.3.0 - - brotli==1.0.9 - - cffi==1.14.5 - - chardet==3.0.4 - - click==7.1.2 - - colorama==0.4.4 - - coverage==5.5 - - cycler==0.10.0 - - dash==2.0.0 - - dash-bootstrap-components==0.13.1 - - dash-core-components==2.0.0 - - dash-html-components==2.0.0 - - dash-table==5.0.0 - - debugpy==1.3.0 - - decorator==5.0.9 - - defusedxml==0.7.1 - - docutils==0.17.1 - - entrypoints==0.3 - - et-xmlfile==1.1.0 - - fastapi==0.70.0 - - flask==2.0.2 - - flask-compress==1.10.1 - - h11==0.9.0 - - idna==2.10 - - imagesize==1.2.0 - - importlib-metadata==3.10.1 - - ipykernel==6.0.1 - - ipysheet==0.5.0 - - ipython==7.25.0 - - ipython-genutils==0.2.0 - - ipywidgets==7.6.3 - - itsdangerous==2.0.1 - - jedi==0.18.0 - - jinja2==3.0.1 - - jsonschema==3.2.0 - - jupyter==1.0.0 - - jupyter-client==6.2.0 - - jupyter-console==6.4.0 - - jupyter-core==4.7.1 - - jupyter-server==1.11.0 - - jupyterlab-pygments==0.1.2 - - jupyterlab-widgets==1.0.0 - - kiwisolver==1.3.1 - - lazy-object-proxy==1.6.0 - - markupsafe==2.0.1 - - matplotlib==3.2.2 - - matplotlib-inline==0.1.2 - - mistune==0.8.4 - - nbclient==0.5.3 - - nbconvert==6.1.0 - - nbformat==5.1.3 - - nest-asyncio==1.5.1 - - nose2==0.9.2 - - notebook==6.4.0 - - numpy==1.19.5 - - openpyxl==3.0.9 - - openscm-units==0.5.0 - - orjson==3.6.4 - - packaging==21.0 - - pandas==1.4.1 - - pandocfilters==1.4.3 - - parso==0.8.2 - - pickleshare==0.7.5 - - pint==0.18 - - pint-pandas==0.2 - - plotly==5.3.1 - - prometheus-client==0.11.0 - - prompt-toolkit==3.0.19 - - pycparser==2.20 - - pydantic==1.8.2 - - pygments==2.9.0 - - pyparsing==2.4.7 - - pyrsistent==0.18.0 - - python-dateutil==2.8.1 - - python-multipart==0.0.5 - - pywin32==301 - - pywinpty==1.1.3 - - pyyaml==5.4.1 - - pyzmq==22.1.0 - - qtconsole==5.1.1 - - qtpy==1.9.0 - - requests==2.23.0 - - requests-unixsocket==0.2.0 - - send2trash==1.7.1 - - six==1.15.0 - - sniffio==1.2.0 - - snowballstemmer==2.1.0 - - sphinx==3.0.3 - - sphinx-autoapi==1.3.0 - - sphinx-autodoc-typehints==1.10.3 - - sphinx-rtd-theme==0.4.3 - - sphinxcontrib-applehelp==1.0.2 - - sphinxcontrib-devhelp==1.0.2 - - sphinxcontrib-htmlhelp==2.0.0 - - sphinxcontrib-jsmath==1.0.1 - - sphinxcontrib-qthelp==1.0.3 - - sphinxcontrib-serializinghtml==1.1.5 - - starlette==0.16.0 - - tenacity==8.0.1 - - terminado==0.10.1 - - testpath==0.5.0 - - text-unidecode==1.3 - - tornado==6.1 - - traitlets==5.0.5 - - typed-ast==1.4.3 - - typing-extensions==3.10.0.0 - - urllib3==1.25.11 - - uvicorn==0.11.8 - - wcwidth==0.2.5 - - webencodings==0.5.1 - - websocket-client==1.2.1 - - websockets==8.1 - - werkzeug==2.0.2 - - widgetsnbextension==3.5.1 - - wrapt==1.12.1 - - xlrd==1.2.0 - - zipp==3.5.0 + - pip + - python=3.9 + - pip: + - -r requirements.txt diff --git a/examples/quick_template_score_calc.ipynb b/examples/quick_template_score_calc.ipynb index 6cdd09e4..d5aec584 100644 --- a/examples/quick_template_score_calc.ipynb +++ b/examples/quick_template_score_calc.ipynb @@ -208,11 +208,11 @@ "outputs": [], "source": [ "import urllib.request\n", - "from github import Github\n", + "from github import GitHub\n", "\n", "# Create a Github instance with an access token.\n", "# Use your shell's `export` command to inject your token into the GITHUB_TOKEN environment variable before starting this jupyter-lab instance.\n", - "gh = Github(os.environ['GITHUB_TOKEN'])\n", + "gh = GitHub(os.environ['GITHUB_TOKEN'])\n", "\n", "# Get repository by name and select the proper branch\n", "repo = gh.get_repo(\"os-climate/ITR\").get_branch(branch=\"develop-pint-steel-projections\")\n", @@ -1382,4 +1382,4 @@ }, "nbformat": 4, "nbformat_minor": 4 -} +} \ No newline at end of file diff --git a/requirements.txt b/requirements.txt index f90c3f21..d01a319a 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,6 +1,4 @@ -nose2==0.9.2 pydantic==1.8.2 -six==1.15.0 Sphinx==3.0.3 sphinx-autodoc-typehints==1.10.3 sphinx-autoapi==1.8.4 @@ -16,3 +14,4 @@ Pint==0.18 Pint-Pandas==0.2 openscm-units==0.5.0 iam-units==2021.11.12 +github.py==0.5.0 \ No newline at end of file From 501cabac8918da55dea2e194d1a61f2c5ef90072 Mon Sep 17 00:00:00 2001 From: MichaelTiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> Date: Mon, 7 Mar 2022 13:14:19 -0500 Subject: [PATCH 170/345] My OSX build environment is broken and does not tolerate building python modules from source. Therefore, adding explicit modules with correct version numbers so that rebuilds are not necessary. Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- environment.yml | 20 +++++++++++++++++++- requirements.txt | 24 ++++++++++++------------ 2 files changed, 31 insertions(+), 13 deletions(-) diff --git a/environment.yml b/environment.yml index 61b91399..61e2e9e0 100644 --- a/environment.yml +++ b/environment.yml @@ -4,6 +4,24 @@ channels: - defaults dependencies: - pip - - python=3.9 + - python==3.9 + - ca-certificates # ==2021.10.8 + - certifi # ==2021.10.8 + - et_xmlfile # ==1.1.0 + - ipython==8.1.1 + - jupyterlab==3.3.0 + # - matplotlib==3.5.1 + # - numpy==1.22.2 + # - openpyxl # ==3.0.9 + # - openscm-units # ==0.5.0 + - openssl # ==1.1.1l + # - pandas==1.4.1 + # - pint==0.18 + # - pint-pandas==0.2 + # - pydantic==1.8.2 + - pytz # ==2021.3 + - setuptools==60.9.3 + # - sqlite==3.37.0 + - wheel>=0.36.2 - pip: - -r requirements.txt diff --git a/requirements.txt b/requirements.txt index d01a319a..6d28c1c6 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,17 +1,17 @@ +chardet==4.0.0 +github.py==0.5.0 +iam-units==2021.11.12 +jupyter==1.0.0 +matplotlib==3.5.1 +numpy==1.22.2 +openpyxl==3.0.9 +openscm-units==0.5.0 +pandas==1.4.1 +Pint-Pandas==0.2 +Pint==0.18 pydantic==1.8.2 Sphinx==3.0.3 -sphinx-autodoc-typehints==1.10.3 sphinx-autoapi==1.8.4 +sphinx-autodoc-typehints==1.10.3 sphinx-rtd-theme==0.4.3 -pandas==1.4.1 xlrd==2.0.1 -openpyxl==3.0.7 -matplotlib==3.2.2 -jupyter==1.0.0 -chardet==4.0.0 -numpy==1.21.5 -Pint==0.18 -Pint-Pandas==0.2 -openscm-units==0.5.0 -iam-units==2021.11.12 -github.py==0.5.0 \ No newline at end of file From e9b5c4976d81812b469ae66ffb35c23808f0aa0d Mon Sep 17 00:00:00 2001 From: MichaelTiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> Date: Mon, 7 Mar 2022 13:18:29 -0500 Subject: [PATCH 171/345] The notebook code to access the Github branch was written using PyGithub. If you want to change to github-py, that's fine...just rewrite all the code to use that. Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- examples/quick_template_score_calc.ipynb | 6 +++--- requirements.txt | 3 ++- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/examples/quick_template_score_calc.ipynb b/examples/quick_template_score_calc.ipynb index d5aec584..6cdd09e4 100644 --- a/examples/quick_template_score_calc.ipynb +++ b/examples/quick_template_score_calc.ipynb @@ -208,11 +208,11 @@ "outputs": [], "source": [ "import urllib.request\n", - "from github import GitHub\n", + "from github import Github\n", "\n", "# Create a Github instance with an access token.\n", "# Use your shell's `export` command to inject your token into the GITHUB_TOKEN environment variable before starting this jupyter-lab instance.\n", - "gh = GitHub(os.environ['GITHUB_TOKEN'])\n", + "gh = Github(os.environ['GITHUB_TOKEN'])\n", "\n", "# Get repository by name and select the proper branch\n", "repo = gh.get_repo(\"os-climate/ITR\").get_branch(branch=\"develop-pint-steel-projections\")\n", @@ -1382,4 +1382,4 @@ }, "nbformat": 4, "nbformat_minor": 4 -} \ No newline at end of file +} diff --git a/requirements.txt b/requirements.txt index 6d28c1c6..a9c0ad6f 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,5 +1,5 @@ chardet==4.0.0 -github.py==0.5.0 +# github.py==0.5.0 iam-units==2021.11.12 jupyter==1.0.0 matplotlib==3.5.1 @@ -10,6 +10,7 @@ pandas==1.4.1 Pint-Pandas==0.2 Pint==0.18 pydantic==1.8.2 +pygithub==1.55 Sphinx==3.0.3 sphinx-autoapi==1.8.4 sphinx-autodoc-typehints==1.10.3 From 735b925cc1eb4a28b9ef08e9b8f665ed12730016 Mon Sep 17 00:00:00 2001 From: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> Date: Mon, 7 Mar 2022 12:34:24 -0500 Subject: [PATCH 172/345] Update DataTemplateRequirements.rst Added line about switching to correct branch. Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- docs/DataTemplateRequirements.rst | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/DataTemplateRequirements.rst b/docs/DataTemplateRequirements.rst index 763040da..ebebb6c2 100644 --- a/docs/DataTemplateRequirements.rst +++ b/docs/DataTemplateRequirements.rst @@ -173,6 +173,7 @@ Installation Notes The first step is to request an invitation to join the OS-Climate GitHub team. This is required to access repositories that are not yet public. (They will be published soon, but not yet.) You will also need a Personal Access Token, which you can get by `following these instructions ` . - Clone the `ITR repository ` +- Switch to the correct branch: `git checkout develop-pint-steel-projections` - In the top-level ITR directory, create the `conda` itr_env: `conda env create -f environment.yml` - Activate that environment: `conda activate itr_env` (you may need to initialize conda by executing `conda init` for your shell first) - Change to the `examples` directory From 66d2ef7b89bbbe25dbed8555250d1ae779ac82e0 Mon Sep 17 00:00:00 2001 From: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> Date: Mon, 7 Mar 2022 12:37:39 -0500 Subject: [PATCH 173/345] Update DataTemplateRequirements.rst Give explicit git clone instructions. Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- docs/DataTemplateRequirements.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/DataTemplateRequirements.rst b/docs/DataTemplateRequirements.rst index ebebb6c2..cba6c1e1 100644 --- a/docs/DataTemplateRequirements.rst +++ b/docs/DataTemplateRequirements.rst @@ -172,7 +172,7 @@ Installation Notes The first step is to request an invitation to join the OS-Climate GitHub team. This is required to access repositories that are not yet public. (They will be published soon, but not yet.) You will also need a Personal Access Token, which you can get by `following these instructions ` . -- Clone the `ITR repository ` +- Clone the ITR repository `git clone https://github.com/os-climate/ITR.git` - Switch to the correct branch: `git checkout develop-pint-steel-projections` - In the top-level ITR directory, create the `conda` itr_env: `conda env create -f environment.yml` - Activate that environment: `conda activate itr_env` (you may need to initialize conda by executing `conda init` for your shell first) From c132e2c3e2b46813c02329da03d94300c4b1188e Mon Sep 17 00:00:00 2001 From: David Kroon Date: Mon, 7 Mar 2022 19:41:22 +0100 Subject: [PATCH 174/345] Update test projection reference json files Signed-off-by: David Kroon Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- test/inputs/json/test_project_reference.json | 18974 ++++++++++++----- test/test_projection.py | 16 +- test/utils.py | 10 + 3 files changed, 13528 insertions(+), 5472 deletions(-) diff --git a/test/inputs/json/test_project_reference.json b/test/inputs/json/test_project_reference.json index 433b9fe0..bb092097 100644 --- a/test/inputs/json/test_project_reference.json +++ b/test/inputs/json/test_project_reference.json @@ -5,168 +5,169 @@ "region": "North America", "sector": "Electricity Utilities", "target_probability": 0.428571428571428, + "target_data": null, "historic_data": { "productions": [ { "year": 2009, - "value": NaN + "value": "nan gigajoule" }, { "year": 2010, - "value": NaN + "value": "nan gigajoule" }, { "year": 2011, - "value": NaN + "value": "nan gigajoule" }, { "year": 2012, - "value": NaN + "value": "nan gigajoule" }, { "year": 2013, - "value": NaN + "value": "nan gigajoule" }, { "year": 2014, - "value": "1682769059.4097404 GJ" + "value": "1682769059.4097404 gigajoule" }, { "year": 2015, - "value": "1149435381.0097404 GJ" + "value": "1149435381.0097404 gigajoule" }, { "year": 2016, - "value": "1351884837.0097404 GJ" + "value": "1351884837.0097404 gigajoule" }, { "year": 2017, - "value": "870361875.4897404 GJ" + "value": "870361875.4897404 gigajoule" }, { "year": 2018, - "value": "388838913.9697404 GJ" + "value": "388838913.9697404 gigajoule" }, { "year": 2019, - "value": "377380291.0897404 GJ" + "value": "377380291.0897404 gigajoule" }, { "year": 2020, - "value": "377380291.0897404 GJ" + "value": "377380291.0897404 gigajoule" }, { "year": 2021, - "value": "377380291.0897404 GJ" + "value": "377380291.0897404 gigajoule" } ], "emissions": { "S1": [ { "year": 2009, - "value": "74121549.8360392 t CO2" + "value": "74121549.8360392 CO2 * metric_ton" }, { "year": 2010, - "value": "77200005.8360392 t CO2" + "value": "77200005.8360392 CO2 * metric_ton" }, { "year": 2011, - "value": "74010717.8360392 t CO2" + "value": "74010717.8360392 CO2 * metric_ton" }, { "year": 2012, - "value": "78912218.8360392 t CO2" + "value": "78912218.8360392 CO2 * metric_ton" }, { "year": 2013, - "value": "75863005.8360392 t CO2" + "value": "75863005.8360392 CO2 * metric_ton" }, { "year": 2014, - "value": "79630005.8360392 t CO2" + "value": "79630005.8360392 CO2 * metric_ton" }, { "year": 2015, - "value": "70339005.8360392 t CO2" + "value": "70339005.8360392 CO2 * metric_ton" }, { "year": 2016, - "value": "70457005.8360392 t CO2" + "value": "70457005.8360392 CO2 * metric_ton" }, { "year": 2017, - "value": "64527005.8360392 t CO2" + "value": "64527005.8360392 CO2 * metric_ton" }, { "year": 2018, - "value": "54154005.8360392 t CO2" + "value": "54154005.8360392 CO2 * metric_ton" }, { "year": 2019, - "value": "49092005.8360392 t CO2" + "value": "49092005.8360392 CO2 * metric_ton" }, { "year": 2020, - "value": "49092005.8360392 t CO2" + "value": "49092005.8360392 CO2 * metric_ton" }, { "year": 2021, - "value": "49092005.8360392 t CO2" + "value": "49092005.8360392 CO2 * metric_ton" } ], "S2": [ { "year": 2009, - "value": NaN + "value": "nan CO2 * metric_ton" }, { "year": 2010, - "value": NaN + "value": "nan CO2 * metric_ton" }, { "year": 2011, - "value": NaN + "value": "nan CO2 * metric_ton" }, { "year": 2012, - "value": "414929.856039191 t CO2" + "value": "414929.856039191 CO2 * metric_ton" }, { "year": 2013, - "value": "90005.8360391907 t CO2" + "value": "90005.8360391907 CO2 * metric_ton" }, { "year": 2014, - "value": "290005.836039191 t CO2" + "value": "290005.836039191 CO2 * metric_ton" }, { "year": 2015, - "value": "367805.836039191 t CO2" + "value": "367805.836039191 CO2 * metric_ton" }, { "year": 2016, - "value": "306005.836039191 t CO2" + "value": "306005.836039191 CO2 * metric_ton" }, { "year": 2017, - "value": "226005.836039191 t CO2" + "value": "226005.836039191 CO2 * metric_ton" }, { "year": 2018, - "value": "360005.836039191 t CO2" + "value": "360005.836039191 CO2 * metric_ton" }, { "year": 2019, - "value": "359005.836039191 t CO2" + "value": "359005.836039191 CO2 * metric_ton" }, { "year": 2020, - "value": "359005.836039191 t CO2" + "value": "359005.836039191 CO2 * metric_ton" }, { "year": 2021, - "value": "359005.836039191 t CO2" + "value": "359005.836039191 CO2 * metric_ton" } ], "S1S2": [], @@ -177,109 +178,109 @@ "S1": [ { "year": 2009, - "value": NaN + "value": "nan CO2 * metric_ton / gigajoule" }, { "year": 2010, - "value": NaN + "value": "nan CO2 * metric_ton / gigajoule" }, { "year": 2011, - "value": NaN + "value": "nan CO2 * metric_ton / gigajoule" }, { "year": 2012, - "value": NaN + "value": "nan CO2 * metric_ton / gigajoule" }, { "year": 2013, - "value": NaN + "value": "nan CO2 * metric_ton / gigajoule" }, { "year": 2014, - "value": "0.6132777815614572 t CO2/GJ" + "value": "0.6132777815614572 CO2 * metric_ton / gigajoule" }, { "year": 2015, - "value": "0.793079394192882 t CO2/GJ" + "value": "0.793079394192882 CO2 * metric_ton / gigajoule" }, { "year": 2016, - "value": "0.6754442173157448 t CO2/GJ" + "value": "0.6754442173157448 CO2 * metric_ton / gigajoule" }, { "year": 2017, - "value": "0.9608302238244408 t CO2/GJ" + "value": "0.9608302238244408 CO2 * metric_ton / gigajoule" }, { "year": 2018, - "value": "1.8049528748804293 t CO2/GJ" + "value": "1.8049528748804293 CO2 * metric_ton / gigajoule" }, { "year": 2019, - "value": "1.6859184505842997 t CO2/GJ" + "value": "1.6859184505842997 CO2 * metric_ton / gigajoule" }, { "year": 2020, - "value": "1.6859184505842997 t CO2/GJ" + "value": "1.6859184505842997 CO2 * metric_ton / gigajoule" }, { "year": 2021, - "value": "1.6859184505842997 t CO2/GJ" + "value": "1.6859184505842997 CO2 * metric_ton / gigajoule" } ], "S2": [ { "year": 2009, - "value": NaN + "value": "nan CO2 * metric_ton / gigajoule" }, { "year": 2010, - "value": NaN + "value": "nan CO2 * metric_ton / gigajoule" }, { "year": 2011, - "value": NaN + "value": "nan CO2 * metric_ton / gigajoule" }, { "year": 2012, - "value": NaN + "value": "nan CO2 * metric_ton / gigajoule" }, { "year": 2013, - "value": NaN + "value": "nan CO2 * metric_ton / gigajoule" }, { "year": 2014, - "value": "0.002233506501709902 t CO2/GJ" + "value": "0.002233506501709902 CO2 * metric_ton / gigajoule" }, { "year": 2015, - "value": "0.00414704794529682 t CO2/GJ" + "value": "0.00414704794529682 CO2 * metric_ton / gigajoule" }, { "year": 2016, - "value": "0.0029335602608281442 t CO2/GJ" + "value": "0.0029335602608281442 CO2 * metric_ton / gigajoule" }, { "year": 2017, - "value": "0.003365307830630542 t CO2/GJ" + "value": "0.003365307830630542 CO2 * metric_ton / gigajoule" }, { "year": 2018, - "value": "0.011998993586920128 t CO2/GJ" + "value": "0.011998993586920128 CO2 * metric_ton / gigajoule" }, { "year": 2019, - "value": "0.0123289841704041 t CO2/GJ" + "value": "0.0123289841704041 CO2 * metric_ton / gigajoule" }, { "year": 2020, - "value": "0.0123289841704041 t CO2/GJ" + "value": "0.0123289841704041 CO2 * metric_ton / gigajoule" }, { "year": 2021, - "value": "0.0123289841704041 t CO2/GJ" + "value": "0.0123289841704041 CO2 * metric_ton / gigajoule" } ], "S1S2": [], @@ -287,604 +288,613 @@ "S1S2S3": [] } }, + "country": null, + "emissions_metric": { + "units": "t CO2" + }, + "production_metric": { + "units": "MWh" + }, + "base_year_production": "377380291.0897404 gigajoule", + "ghg_s1s2": "49451011.67207839 CO2 * metric_ton", + "ghg_s3": null, + "industry_level_1": null, + "industry_level_2": null, + "industry_level_3": null, + "industry_level_4": null, + "company_revenue": null, + "company_market_cap": null, + "company_enterprise_value": null, + "company_ev_plus_cash": null, + "company_total_assets": null, + "company_cash_equivalents": null, "projected_targets": null, "projected_intensities": { - "S1S2": { + "S1": { + "ei_metric": { + "units": "CO2\u00b7t/GJ" + }, "projections": [ { "year": 2019, - "value": "1.6982474347547039 t CO2/GJ" + "value": "1.6859184505842997 CO2 * metric_ton / gigajoule" }, { "year": 2020, - "value": "1.6982474347547039 t CO2/GJ" + "value": "1.6859184505842997 CO2 * metric_ton / gigajoule" }, { "year": 2021, - "value": "1.6982474347547039 t CO2/GJ" + "value": "1.6859184505842997 CO2 * metric_ton / gigajoule" }, { "year": 2022, - "value": "1.6982474347547039 t CO2/GJ" + "value": "1.6859184505842997 CO2 * metric_ton / gigajoule" }, { "year": 2023, - "value": "1.6982474347547039 t CO2/GJ" + "value": "1.6859184505842997 CO2 * metric_ton / gigajoule" }, { "year": 2024, - "value": "1.6982474347547039 t CO2/GJ" + "value": "1.6859184505842997 CO2 * metric_ton / gigajoule" }, { "year": 2025, - "value": "1.6982474347547039 t CO2/GJ" + "value": "1.6859184505842997 CO2 * metric_ton / gigajoule" }, { "year": 2026, - "value": "1.6982474347547039 t CO2/GJ" + "value": "1.6859184505842997 CO2 * metric_ton / gigajoule" }, { "year": 2027, - "value": "1.6982474347547039 t CO2/GJ" + "value": "1.6859184505842997 CO2 * metric_ton / gigajoule" }, { "year": 2028, - "value": "1.6982474347547039 t CO2/GJ" + "value": "1.6859184505842997 CO2 * metric_ton / gigajoule" }, { "year": 2029, - "value": "1.6982474347547039 t CO2/GJ" + "value": "1.6859184505842997 CO2 * metric_ton / gigajoule" }, { "year": 2030, - "value": "1.6982474347547039 t CO2/GJ" + "value": "1.6859184505842997 CO2 * metric_ton / gigajoule" }, { "year": 2031, - "value": "1.6982474347547039 t CO2/GJ" + "value": "1.6859184505842997 CO2 * metric_ton / gigajoule" }, { "year": 2032, - "value": "1.6982474347547039 t CO2/GJ" + "value": "1.6859184505842997 CO2 * metric_ton / gigajoule" }, { "year": 2033, - "value": "1.6982474347547039 t CO2/GJ" + "value": "1.6859184505842997 CO2 * metric_ton / gigajoule" }, { "year": 2034, - "value": "1.6982474347547039 t CO2/GJ" + "value": "1.6859184505842997 CO2 * metric_ton / gigajoule" }, { "year": 2035, - "value": "1.6982474347547039 t CO2/GJ" + "value": "1.6859184505842997 CO2 * metric_ton / gigajoule" }, { "year": 2036, - "value": "1.6982474347547039 t CO2/GJ" + "value": "1.6859184505842997 CO2 * metric_ton / gigajoule" }, { "year": 2037, - "value": "1.6982474347547039 t CO2/GJ" + "value": "1.6859184505842997 CO2 * metric_ton / gigajoule" }, { "year": 2038, - "value": "1.6982474347547039 t CO2/GJ" + "value": "1.6859184505842997 CO2 * metric_ton / gigajoule" }, { "year": 2039, - "value": "1.6982474347547039 t CO2/GJ" + "value": "1.6859184505842997 CO2 * metric_ton / gigajoule" }, { "year": 2040, - "value": "1.6982474347547039 t CO2/GJ" + "value": "1.6859184505842997 CO2 * metric_ton / gigajoule" }, { "year": 2041, - "value": "1.6982474347547039 t CO2/GJ" + "value": "1.6859184505842997 CO2 * metric_ton / gigajoule" }, { "year": 2042, - "value": "1.6982474347547039 t CO2/GJ" + "value": "1.6859184505842997 CO2 * metric_ton / gigajoule" }, { "year": 2043, - "value": "1.6982474347547039 t CO2/GJ" + "value": "1.6859184505842997 CO2 * metric_ton / gigajoule" }, { "year": 2044, - "value": "1.6982474347547039 t CO2/GJ" + "value": "1.6859184505842997 CO2 * metric_ton / gigajoule" }, { "year": 2045, - "value": "1.6982474347547039 t CO2/GJ" + "value": "1.6859184505842997 CO2 * metric_ton / gigajoule" }, { "year": 2046, - "value": "1.6982474347547039 t CO2/GJ" + "value": "1.6859184505842997 CO2 * metric_ton / gigajoule" }, { "year": 2047, - "value": "1.6982474347547039 t CO2/GJ" + "value": "1.6859184505842997 CO2 * metric_ton / gigajoule" }, { "year": 2048, - "value": "1.6982474347547039 t CO2/GJ" + "value": "1.6859184505842997 CO2 * metric_ton / gigajoule" }, { "year": 2049, - "value": "1.6982474347547039 t CO2/GJ" + "value": "1.6859184505842997 CO2 * metric_ton / gigajoule" }, { "year": 2050, - "value": "1.6982474347547039 t CO2/GJ" + "value": "1.6859184505842997 CO2 * metric_ton / gigajoule" } ] }, - "S3": null, - "S1S2S3": null - }, - "country": null, - "ghg_s1s2": null, - "ghg_s3": null, - "industry_level_1": null, - "industry_level_2": null, - "industry_level_3": null, - "industry_level_4": null, - "company_revenue": null, - "company_market_cap": null, - "company_enterprise_value": null, - "company_total_assets": null, - "company_cash_equivalents": null - }, - { - "company_name": "Company AH", - "company_id": "US00724F1012", - "region": "North America", - "sector": "Electricity Utilities", - "target_probability": 0.4285714285714285, - "historic_data": { - "productions": [ - { - "year": 2009, - "value": NaN - }, - { - "year": 2010, - "value": "2143661765.3714125 GJ" - }, - { - "year": 2011, - "value": "2114928159.0914125 GJ" - }, - { - "year": 2012, - "value": "2086194552.8114123 GJ" - }, - { - "year": 2013, - "value": "2057460946.5314126 GJ" - }, - { - "year": 2014, - "value": "2028727340.2514122 GJ" - }, - { - "year": 2015, - "value": "1885882971.9314125 GJ" - }, - { - "year": 2016, - "value": "1661622976.4114125 GJ" - }, - { - "year": 2017, - "value": "2488147559.6114125 GJ" - }, - { - "year": 2018, - "value": "2457602018.9714127 GJ" - }, - { - "year": 2019, - "value": "2156173206.8114123 GJ" + "S2": { + "ei_metric": { + "units": "CO2\u00b7t/GJ" }, - { - "year": 2020, - "value": "2156173206.8114123 GJ" - }, - { - "year": 2021, - "value": "2156173206.8114123 GJ" - } - ], - "emissions": { - "S1": [], - "S2": [], - "S1S2": [], - "S3": [], - "S1S2S3": [] - }, - "emissions_intensities": { - "S1": [ + "projections": [ { - "year": 2009, - "value": NaN + "year": 2019, + "value": "0.0123289841704041 CO2 * metric_ton / gigajoule" }, { - "year": 2010, - "value": "9.020587159252296e-09 t CO2/GJ" + "year": 2020, + "value": "0.0123289841704041 CO2 * metric_ton / gigajoule" }, { - "year": 2011, - "value": "9.143141676640597e-09 t CO2/GJ" + "year": 2021, + "value": "0.0123289841704041 CO2 * metric_ton / gigajoule" }, { - "year": 2012, - "value": "9.269072133483565e-09 t CO2/GJ" + "year": 2022, + "value": "0.012668049997107368 CO2 * metric_ton / gigajoule" }, { - "year": 2013, - "value": "0.016324063782454407 t CO2/GJ" + "year": 2023, + "value": "0.013016440650029 CO2 * metric_ton / gigajoule" }, { - "year": 2014, - "value": "0.033110525388179275 t CO2/GJ" + "year": 2024, + "value": "0.013374412576080345 CO2 * metric_ton / gigajoule" }, { - "year": 2015, - "value": "0.0534276696850902 t CO2/GJ" + "year": 2025, + "value": "0.013742229274853074 CO2 * metric_ton / gigajoule" }, { - "year": 2016, - "value": "0.08085133557988561 t CO2/GJ" + "year": 2026, + "value": "0.014120161492578616 CO2 * metric_ton / gigajoule" }, { - "year": 2017, - "value": "0.06749219539186596 t CO2/GJ" + "year": 2027, + "value": "0.014508487421421778 CO2 * metric_ton / gigajoule" }, { - "year": 2018, - "value": "0.08300080315789345 t CO2/GJ" + "year": 2028, + "value": "0.014907492904255252 CO2 * metric_ton / gigajoule" }, { - "year": 2019, - "value": "0.08723928160449504 t CO2/GJ" + "year": 2029, + "value": "0.015317471645065715 CO2 * metric_ton / gigajoule" }, { - "year": 2020, - "value": "0.08723928160449504 t CO2/GJ" + "year": 2030, + "value": "0.015738725425146434 CO2 * metric_ton / gigajoule" }, { - "year": 2021, - "value": "0.08723928160449504 t CO2/GJ" - } - ], - "S2": [ + "year": 2031, + "value": "0.016171564325235484 CO2 * metric_ton / gigajoule" + }, { - "year": 2009, - "value": NaN + "year": 2032, + "value": "0.01661630695376311 CO2 * metric_ton / gigajoule" }, { - "year": 2010, - "value": "9.020587159252296e-09 t CO2/GJ" + "year": 2033, + "value": "0.01707328068137625 CO2 * metric_ton / gigajoule" }, { - "year": 2011, - "value": "9.143141676640597e-09 t CO2/GJ" + "year": 2034, + "value": "0.01754282188191281 CO2 * metric_ton / gigajoule" }, { - "year": 2012, - "value": "9.269072133483565e-09 t CO2/GJ" + "year": 2035, + "value": "0.018025276180003127 CO2 * metric_ton / gigajoule" }, { - "year": 2013, - "value": "0.016324063782454407 t CO2/GJ" + "year": 2036, + "value": "0.01852099870548084 CO2 * metric_ton / gigajoule" }, { - "year": 2014, - "value": "0.033110525388179275 t CO2/GJ" + "year": 2037, + "value": "0.019030354354790446 CO2 * metric_ton / gigajoule" }, { - "year": 2015, - "value": "0.0534276696850902 t CO2/GJ" + "year": 2038, + "value": "0.01955371805958395 CO2 * metric_ton / gigajoule" }, { - "year": 2016, - "value": "0.08085133557988561 t CO2/GJ" + "year": 2039, + "value": "0.020091475062704357 CO2 * metric_ton / gigajoule" }, { - "year": 2017, - "value": "0.06749219539186596 t CO2/GJ" + "year": 2040, + "value": "0.020644021201759108 CO2 * metric_ton / gigajoule" }, { - "year": 2018, - "value": "0.08300080315789345 t CO2/GJ" + "year": 2041, + "value": "0.02121176320049223 CO2 * metric_ton / gigajoule" }, { - "year": 2019, - "value": "0.08723928160449504 t CO2/GJ" + "year": 2042, + "value": "0.02179511896816965 CO2 * metric_ton / gigajoule" }, { - "year": 2020, - "value": "0.08723928160449504 t CO2/GJ" + "year": 2043, + "value": "0.02239451790719808 CO2 * metric_ton / gigajoule" }, { - "year": 2021, - "value": "0.08723928160449504 t CO2/GJ" + "year": 2044, + "value": "0.023010401229203867 CO2 * metric_ton / gigajoule" + }, + { + "year": 2045, + "value": "0.02364322227980452 CO2 * metric_ton / gigajoule" + }, + { + "year": 2046, + "value": "0.024293446872311907 CO2 * metric_ton / gigajoule" + }, + { + "year": 2047, + "value": "0.02496155363061285 CO2 * metric_ton / gigajoule" + }, + { + "year": 2048, + "value": "0.02564803434147942 CO2 * metric_ton / gigajoule" + }, + { + "year": 2049, + "value": "0.02635339431656831 CO2 * metric_ton / gigajoule" + }, + { + "year": 2050, + "value": "0.027078152764375737 CO2 * metric_ton / gigajoule" } - ], - "S1S2": [], - "S3": [], - "S1S2S3": [] - } - }, - "projected_targets": null, - "projected_intensities": { + ] + }, "S1S2": { + "ei_metric": { + "units": "CO2\u00b7t/GJ" + }, "projections": [ { "year": 2019, - "value": "0.17447856320899008 t CO2/GJ" + "value": "1.6982474347547039 CO2 * metric_ton / gigajoule" }, { "year": 2020, - "value": "0.17447856320899008 t CO2/GJ" + "value": "1.6982474347547039 CO2 * metric_ton / gigajoule" }, { "year": 2021, - "value": "0.17447856320899008 t CO2/GJ" + "value": "1.6982474347547039 CO2 * metric_ton / gigajoule" }, { "year": 2022, - "value": "0.1797129201052598 t CO2/GJ" + "value": "1.6985865005814071 CO2 * metric_ton / gigajoule" }, { "year": 2023, - "value": "0.1851043077084176 t CO2/GJ" + "value": "1.6989348912343287 CO2 * metric_ton / gigajoule" }, { "year": 2024, - "value": "0.19065743693967013 t CO2/GJ" + "value": "1.69929286316038 CO2 * metric_ton / gigajoule" }, { "year": 2025, - "value": "0.19637716004786024 t CO2/GJ" + "value": "1.6996606798591527 CO2 * metric_ton / gigajoule" }, { "year": 2026, - "value": "0.20226847484929605 t CO2/GJ" + "value": "1.7000386120768782 CO2 * metric_ton / gigajoule" }, { "year": 2027, - "value": "0.20833652909477493 t CO2/GJ" + "value": "1.7004269380057215 CO2 * metric_ton / gigajoule" }, { "year": 2028, - "value": "0.21458662496761818 t CO2/GJ" + "value": "1.7008259434885549 CO2 * metric_ton / gigajoule" }, { "year": 2029, - "value": "0.22102422371664673 t CO2/GJ" + "value": "1.7012359222293654 CO2 * metric_ton / gigajoule" }, { "year": 2030, - "value": "0.22765495042814615 t CO2/GJ" + "value": "1.701657176009446 CO2 * metric_ton / gigajoule" }, { "year": 2031, - "value": "0.23448459894099055 t CO2/GJ" + "value": "1.7020900149095353 CO2 * metric_ton / gigajoule" }, { "year": 2032, - "value": "0.24151913690922028 t CO2/GJ" + "value": "1.7025347575380627 CO2 * metric_ton / gigajoule" }, { "year": 2033, - "value": "0.2487647110164969 t CO2/GJ" + "value": "1.702991731265676 CO2 * metric_ton / gigajoule" }, { "year": 2034, - "value": "0.2562276523469918 t CO2/GJ" + "value": "1.7034612724662126 CO2 * metric_ton / gigajoule" }, { "year": 2035, - "value": "0.2639144819174016 t CO2/GJ" + "value": "1.7039437267643027 CO2 * metric_ton / gigajoule" }, { "year": 2036, - "value": "0.27183191637492365 t CO2/GJ" + "value": "1.7044394492897805 CO2 * metric_ton / gigajoule" }, { "year": 2037, - "value": "0.2799868738661714 t CO2/GJ" + "value": "1.7049488049390902 CO2 * metric_ton / gigajoule" }, { "year": 2038, - "value": "0.2883864800821565 t CO2/GJ" + "value": "1.7054721686438836 CO2 * metric_ton / gigajoule" }, { "year": 2039, - "value": "0.2970380744846212 t CO2/GJ" + "value": "1.706009925647004 CO2 * metric_ton / gigajoule" }, { "year": 2040, - "value": "0.30594921671915987 t CO2/GJ" + "value": "1.7065624717860588 CO2 * metric_ton / gigajoule" }, { "year": 2041, - "value": "0.3151276932207347 t CO2/GJ" + "value": "1.707130213784792 CO2 * metric_ton / gigajoule" }, { "year": 2042, - "value": "0.32458152401735674 t CO2/GJ" + "value": "1.7077135695524692 CO2 * metric_ton / gigajoule" }, { "year": 2043, - "value": "0.33431896973787745 t CO2/GJ" + "value": "1.7083129684914977 CO2 * metric_ton / gigajoule" }, { "year": 2044, - "value": "0.34434853883001376 t CO2/GJ" + "value": "1.7089288518135035 CO2 * metric_ton / gigajoule" }, { "year": 2045, - "value": "0.3546789949949142 t CO2/GJ" + "value": "1.709561672864104 CO2 * metric_ton / gigajoule" }, { "year": 2046, - "value": "0.36531936484476163 t CO2/GJ" + "value": "1.7102118974566116 CO2 * metric_ton / gigajoule" }, { "year": 2047, - "value": "0.3762789457901045 t CO2/GJ" + "value": "1.7108800042149126 CO2 * metric_ton / gigajoule" }, { "year": 2048, - "value": "0.3875673141638077 t CO2/GJ" + "value": "1.711566484925779 CO2 * metric_ton / gigajoule" }, { "year": 2049, - "value": "0.3991943335887219 t CO2/GJ" + "value": "1.712271844900868 CO2 * metric_ton / gigajoule" }, { "year": 2050, - "value": "0.4111701635963836 t CO2/GJ" + "value": "1.7129966033486754 CO2 * metric_ton / gigajoule" } ] }, "S3": null, "S1S2S3": null - }, - "country": null, - "ghg_s1s2": null, - "ghg_s3": null, - "industry_level_1": null, - "industry_level_2": null, - "industry_level_3": null, - "industry_level_4": null, - "company_revenue": null, - "company_market_cap": null, - "company_enterprise_value": null, - "company_total_assets": null, - "company_cash_equivalents": null + } }, { - "company_name": "Company AI", - "company_id": "FR0000125338", - "region": "Europe", + "company_name": "Company AH", + "company_id": "US00724F1012", + "region": "North America", "sector": "Electricity Utilities", "target_probability": 0.4285714285714285, + "target_data": null, "historic_data": { - "productions": null, - "emissions": null, + "productions": [ + { + "year": 2009, + "value": "nan gigajoule" + }, + { + "year": 2010, + "value": "2143661765.3714125 gigajoule" + }, + { + "year": 2011, + "value": "2114928159.0914125 gigajoule" + }, + { + "year": 2012, + "value": "2086194552.8114123 gigajoule" + }, + { + "year": 2013, + "value": "2057460946.5314126 gigajoule" + }, + { + "year": 2014, + "value": "2028727340.2514122 gigajoule" + }, + { + "year": 2015, + "value": "1885882971.9314125 gigajoule" + }, + { + "year": 2016, + "value": "1661622976.4114125 gigajoule" + }, + { + "year": 2017, + "value": "2488147559.6114125 gigajoule" + }, + { + "year": 2018, + "value": "2457602018.9714127 gigajoule" + }, + { + "year": 2019, + "value": "2156173206.8114123 gigajoule" + }, + { + "year": 2020, + "value": "2156173206.8114123 gigajoule" + }, + { + "year": 2021, + "value": "2156173206.8114123 gigajoule" + } + ], + "emissions": { + "S1": [], + "S2": [], + "S1S2": [], + "S3": [], + "S1S2S3": [] + }, "emissions_intensities": { "S1": [ { "year": 2009, - "value": NaN + "value": "nan CO2 * metric_ton / gigajoule" }, { "year": 2010, - "value": "0.4605612425432028 t CO2/GJ" + "value": "9.020587159252296e-09 CO2 * metric_ton / gigajoule" }, { "year": 2011, - "value": "0.47676992001722285 t CO2/GJ" + "value": "9.143141676640597e-09 CO2 * metric_ton / gigajoule" }, { "year": 2012, - "value": "0.4935410421590952 t CO2/GJ" + "value": "9.269072133483565e-09 CO2 * metric_ton / gigajoule" }, { "year": 2013, - "value": "0.4271137111711944 t CO2/GJ" + "value": "0.016324063782454407 CO2 * metric_ton / gigajoule" }, { "year": 2014, - "value": "0.4050475894153404 t CO2/GJ" + "value": "0.033110525388179275 CO2 * metric_ton / gigajoule" }, { "year": 2015, - "value": "1.7660044449376848 t CO2/GJ" + "value": "0.0534276696850902 CO2 * metric_ton / gigajoule" }, { "year": 2016, - "value": "0.12641248982232864 t CO2/GJ" + "value": "0.08085133557988561 CO2 * metric_ton / gigajoule" }, { "year": 2017, - "value": "0.11422094242724208 t CO2/GJ" + "value": "0.06749219539186596 CO2 * metric_ton / gigajoule" }, { "year": 2018, - "value": "0.12432145953306709 t CO2/GJ" + "value": "0.08300080315789345 CO2 * metric_ton / gigajoule" }, { "year": 2019, - "value": "0.14432694163463483 t CO2/GJ" + "value": "0.08723928160449504 CO2 * metric_ton / gigajoule" }, { "year": 2020, - "value": "0.11410264669076498 t CO2/GJ" + "value": "0.08723928160449504 CO2 * metric_ton / gigajoule" }, { "year": 2021, - "value": "0.11410264669076498 t CO2/GJ" + "value": "0.08723928160449504 CO2 * metric_ton / gigajoule" } ], "S2": [ { "year": 2009, - "value": NaN + "value": "nan CO2 * metric_ton / gigajoule" }, { "year": 2010, - "value": "0.019750986012689604 t CO2/GJ" + "value": "9.020587159252296e-09 CO2 * metric_ton / gigajoule" }, { "year": 2011, - "value": "0.019542782620390428 t CO2/GJ" + "value": "9.143141676640597e-09 CO2 * metric_ton / gigajoule" }, { "year": 2012, - "value": "0.016717335291559405 t CO2/GJ" + "value": "9.269072133483565e-09 CO2 * metric_ton / gigajoule" }, { "year": 2013, - "value": "0.012755111704326829 t CO2/GJ" + "value": "0.016324063782454407 CO2 * metric_ton / gigajoule" }, { "year": 2014, - "value": "0.016135716380506274 t CO2/GJ" + "value": "0.033110525388179275 CO2 * metric_ton / gigajoule" }, { "year": 2015, - "value": "0.0816777616053006 t CO2/GJ" + "value": "0.0534276696850902 CO2 * metric_ton / gigajoule" }, { "year": 2016, - "value": "0.07909610646488868 t CO2/GJ" + "value": "0.08085133557988561 CO2 * metric_ton / gigajoule" }, { "year": 2017, - "value": "0.08497232976008089 t CO2/GJ" + "value": "0.06749219539186596 CO2 * metric_ton / gigajoule" }, { "year": 2018, - "value": "0.078447410507817 t CO2/GJ" + "value": "0.08300080315789345 CO2 * metric_ton / gigajoule" }, { "year": 2019, - "value": "0.08024699005813475 t CO2/GJ" + "value": "0.08723928160449504 CO2 * metric_ton / gigajoule" }, { "year": 2020, - "value": "0.14391033829225056 t CO2/GJ" + "value": "0.08723928160449504 CO2 * metric_ton / gigajoule" }, { "year": 2021, - "value": "0.14391033829225056 t CO2/GJ" + "value": "0.08723928160449504 CO2 * metric_ton / gigajoule" } ], "S1S2": [], @@ -892,146 +902,9819 @@ "S1S2S3": [] } }, + "country": null, + "emissions_metric": { + "units": "t CO2" + }, + "production_metric": { + "units": "MWh" + }, + "base_year_production": "2156173206.8114123 gigajoule", + "ghg_s1s2": "376206003.1541758 CO2 * metric_ton", + "ghg_s3": null, + "industry_level_1": null, + "industry_level_2": null, + "industry_level_3": null, + "industry_level_4": null, + "company_revenue": null, + "company_market_cap": null, + "company_enterprise_value": null, + "company_ev_plus_cash": null, + "company_total_assets": null, + "company_cash_equivalents": null, "projected_targets": null, "projected_intensities": { - "S1S2": { + "S1": { + "ei_metric": { + "units": "CO2\u00b7t/GJ" + }, "projections": [ { "year": 2019, - "value": "0.22457393169276957 t CO2/GJ" + "value": "0.08723928160449504 CO2 * metric_ton / gigajoule" }, { "year": 2020, - "value": "0.2580129849830155 t CO2/GJ" + "value": "0.08723928160449504 CO2 * metric_ton / gigajoule" }, { "year": 2021, - "value": "0.2580129849830155 t CO2/GJ" + "value": "0.08723928160449504 CO2 * metric_ton / gigajoule" }, { "year": 2022, - "value": "0.2580129849830155 t CO2/GJ" + "value": "0.0898564600526299 CO2 * metric_ton / gigajoule" }, { "year": 2023, - "value": "0.2580129849830155 t CO2/GJ" + "value": "0.0925521538542088 CO2 * metric_ton / gigajoule" }, { "year": 2024, - "value": "0.2580129849830155 t CO2/GJ" + "value": "0.09532871846983507 CO2 * metric_ton / gigajoule" }, { "year": 2025, - "value": "0.2580129849830155 t CO2/GJ" + "value": "0.09818858002393012 CO2 * metric_ton / gigajoule" }, { "year": 2026, - "value": "0.2580129849830155 t CO2/GJ" + "value": "0.10113423742464803 CO2 * metric_ton / gigajoule" }, { "year": 2027, - "value": "0.2580129849830155 t CO2/GJ" + "value": "0.10416826454738747 CO2 * metric_ton / gigajoule" }, { "year": 2028, - "value": "0.2580129849830155 t CO2/GJ" + "value": "0.10729331248380909 CO2 * metric_ton / gigajoule" }, { "year": 2029, - "value": "0.2580129849830155 t CO2/GJ" + "value": "0.11051211185832337 CO2 * metric_ton / gigajoule" }, { "year": 2030, - "value": "0.2580129849830155 t CO2/GJ" + "value": "0.11382747521407308 CO2 * metric_ton / gigajoule" }, { "year": 2031, - "value": "0.2580129849830155 t CO2/GJ" + "value": "0.11724229947049528 CO2 * metric_ton / gigajoule" }, { "year": 2032, - "value": "0.2580129849830155 t CO2/GJ" + "value": "0.12075956845461014 CO2 * metric_ton / gigajoule" }, { "year": 2033, - "value": "0.2580129849830155 t CO2/GJ" + "value": "0.12438235550824844 CO2 * metric_ton / gigajoule" }, { "year": 2034, - "value": "0.2580129849830155 t CO2/GJ" + "value": "0.1281138261734959 CO2 * metric_ton / gigajoule" }, { "year": 2035, - "value": "0.2580129849830155 t CO2/GJ" + "value": "0.1319572409587008 CO2 * metric_ton / gigajoule" }, { "year": 2036, - "value": "0.2580129849830155 t CO2/GJ" + "value": "0.13591595818746183 CO2 * metric_ton / gigajoule" }, { "year": 2037, - "value": "0.2580129849830155 t CO2/GJ" + "value": "0.1399934369330857 CO2 * metric_ton / gigajoule" }, { "year": 2038, - "value": "0.2580129849830155 t CO2/GJ" + "value": "0.14419324004107825 CO2 * metric_ton / gigajoule" }, { "year": 2039, - "value": "0.2580129849830155 t CO2/GJ" + "value": "0.1485190372423106 CO2 * metric_ton / gigajoule" }, { "year": 2040, - "value": "0.2580129849830155 t CO2/GJ" + "value": "0.15297460835957993 CO2 * metric_ton / gigajoule" }, { "year": 2041, - "value": "0.2580129849830155 t CO2/GJ" + "value": "0.15756384661036735 CO2 * metric_ton / gigajoule" }, { "year": 2042, - "value": "0.2580129849830155 t CO2/GJ" + "value": "0.16229076200867837 CO2 * metric_ton / gigajoule" }, { "year": 2043, - "value": "0.2580129849830155 t CO2/GJ" + "value": "0.16715948486893872 CO2 * metric_ton / gigajoule" }, { "year": 2044, - "value": "0.2580129849830155 t CO2/GJ" + "value": "0.17217426941500688 CO2 * metric_ton / gigajoule" }, { "year": 2045, - "value": "0.2580129849830155 t CO2/GJ" + "value": "0.1773394974974571 CO2 * metric_ton / gigajoule" }, { "year": 2046, - "value": "0.2580129849830155 t CO2/GJ" + "value": "0.18265968242238081 CO2 * metric_ton / gigajoule" }, { "year": 2047, - "value": "0.2580129849830155 t CO2/GJ" + "value": "0.18813947289505226 CO2 * metric_ton / gigajoule" }, { "year": 2048, - "value": "0.2580129849830155 t CO2/GJ" + "value": "0.19378365708190384 CO2 * metric_ton / gigajoule" }, { "year": 2049, - "value": "0.2580129849830155 t CO2/GJ" + "value": "0.19959716679436096 CO2 * metric_ton / gigajoule" }, { "year": 2050, - "value": "0.2580129849830155 t CO2/GJ" + "value": "0.2055850817981918 CO2 * metric_ton / gigajoule" } ] }, - "S3": null, - "S1S2S3": null - }, - "country": null, - "ghg_s1s2": null, - "ghg_s3": null, + "S2": { + "ei_metric": { + "units": "CO2\u00b7t/GJ" + }, + "projections": [ + { + "year": 2019, + "value": "0.08723928160449504 CO2 * metric_ton / gigajoule" + }, + { + "year": 2020, + "value": "0.08723928160449504 CO2 * metric_ton / gigajoule" + }, + { + "year": 2021, + "value": "0.08723928160449504 CO2 * metric_ton / gigajoule" + }, + { + "year": 2022, + "value": "0.0898564600526299 CO2 * metric_ton / gigajoule" + }, + { + "year": 2023, + "value": "0.0925521538542088 CO2 * metric_ton / gigajoule" + }, + { + "year": 2024, + "value": "0.09532871846983507 CO2 * metric_ton / gigajoule" + }, + { + "year": 2025, + "value": "0.09818858002393012 CO2 * metric_ton / gigajoule" + }, + { + "year": 2026, + "value": "0.10113423742464803 CO2 * metric_ton / gigajoule" + }, + { + "year": 2027, + "value": "0.10416826454738747 CO2 * metric_ton / gigajoule" + }, + { + "year": 2028, + "value": "0.10729331248380909 CO2 * metric_ton / gigajoule" + }, + { + "year": 2029, + "value": "0.11051211185832337 CO2 * metric_ton / gigajoule" + }, + { + "year": 2030, + "value": "0.11382747521407308 CO2 * metric_ton / gigajoule" + }, + { + "year": 2031, + "value": "0.11724229947049528 CO2 * metric_ton / gigajoule" + }, + { + "year": 2032, + "value": "0.12075956845461014 CO2 * metric_ton / gigajoule" + }, + { + "year": 2033, + "value": "0.12438235550824844 CO2 * metric_ton / gigajoule" + }, + { + "year": 2034, + "value": "0.1281138261734959 CO2 * metric_ton / gigajoule" + }, + { + "year": 2035, + "value": "0.1319572409587008 CO2 * metric_ton / gigajoule" + }, + { + "year": 2036, + "value": "0.13591595818746183 CO2 * metric_ton / gigajoule" + }, + { + "year": 2037, + "value": "0.1399934369330857 CO2 * metric_ton / gigajoule" + }, + { + "year": 2038, + "value": "0.14419324004107825 CO2 * metric_ton / gigajoule" + }, + { + "year": 2039, + "value": "0.1485190372423106 CO2 * metric_ton / gigajoule" + }, + { + "year": 2040, + "value": "0.15297460835957993 CO2 * metric_ton / gigajoule" + }, + { + "year": 2041, + "value": "0.15756384661036735 CO2 * metric_ton / gigajoule" + }, + { + "year": 2042, + "value": "0.16229076200867837 CO2 * metric_ton / gigajoule" + }, + { + "year": 2043, + "value": "0.16715948486893872 CO2 * metric_ton / gigajoule" + }, + { + "year": 2044, + "value": "0.17217426941500688 CO2 * metric_ton / gigajoule" + }, + { + "year": 2045, + "value": "0.1773394974974571 CO2 * metric_ton / gigajoule" + }, + { + "year": 2046, + "value": "0.18265968242238081 CO2 * metric_ton / gigajoule" + }, + { + "year": 2047, + "value": "0.18813947289505226 CO2 * metric_ton / gigajoule" + }, + { + "year": 2048, + "value": "0.19378365708190384 CO2 * metric_ton / gigajoule" + }, + { + "year": 2049, + "value": "0.19959716679436096 CO2 * metric_ton / gigajoule" + }, + { + "year": 2050, + "value": "0.2055850817981918 CO2 * metric_ton / gigajoule" + } + ] + }, + "S1S2": { + "ei_metric": { + "units": "CO2\u00b7t/GJ" + }, + "projections": [ + { + "year": 2019, + "value": "0.17447856320899008 CO2 * metric_ton / gigajoule" + }, + { + "year": 2020, + "value": "0.17447856320899008 CO2 * metric_ton / gigajoule" + }, + { + "year": 2021, + "value": "0.17447856320899008 CO2 * metric_ton / gigajoule" + }, + { + "year": 2022, + "value": "0.1797129201052598 CO2 * metric_ton / gigajoule" + }, + { + "year": 2023, + "value": "0.1851043077084176 CO2 * metric_ton / gigajoule" + }, + { + "year": 2024, + "value": "0.19065743693967013 CO2 * metric_ton / gigajoule" + }, + { + "year": 2025, + "value": "0.19637716004786024 CO2 * metric_ton / gigajoule" + }, + { + "year": 2026, + "value": "0.20226847484929605 CO2 * metric_ton / gigajoule" + }, + { + "year": 2027, + "value": "0.20833652909477493 CO2 * metric_ton / gigajoule" + }, + { + "year": 2028, + "value": "0.21458662496761818 CO2 * metric_ton / gigajoule" + }, + { + "year": 2029, + "value": "0.22102422371664673 CO2 * metric_ton / gigajoule" + }, + { + "year": 2030, + "value": "0.22765495042814615 CO2 * metric_ton / gigajoule" + }, + { + "year": 2031, + "value": "0.23448459894099055 CO2 * metric_ton / gigajoule" + }, + { + "year": 2032, + "value": "0.24151913690922028 CO2 * metric_ton / gigajoule" + }, + { + "year": 2033, + "value": "0.2487647110164969 CO2 * metric_ton / gigajoule" + }, + { + "year": 2034, + "value": "0.2562276523469918 CO2 * metric_ton / gigajoule" + }, + { + "year": 2035, + "value": "0.2639144819174016 CO2 * metric_ton / gigajoule" + }, + { + "year": 2036, + "value": "0.27183191637492365 CO2 * metric_ton / gigajoule" + }, + { + "year": 2037, + "value": "0.2799868738661714 CO2 * metric_ton / gigajoule" + }, + { + "year": 2038, + "value": "0.2883864800821565 CO2 * metric_ton / gigajoule" + }, + { + "year": 2039, + "value": "0.2970380744846212 CO2 * metric_ton / gigajoule" + }, + { + "year": 2040, + "value": "0.30594921671915987 CO2 * metric_ton / gigajoule" + }, + { + "year": 2041, + "value": "0.3151276932207347 CO2 * metric_ton / gigajoule" + }, + { + "year": 2042, + "value": "0.32458152401735674 CO2 * metric_ton / gigajoule" + }, + { + "year": 2043, + "value": "0.33431896973787745 CO2 * metric_ton / gigajoule" + }, + { + "year": 2044, + "value": "0.34434853883001376 CO2 * metric_ton / gigajoule" + }, + { + "year": 2045, + "value": "0.3546789949949142 CO2 * metric_ton / gigajoule" + }, + { + "year": 2046, + "value": "0.36531936484476163 CO2 * metric_ton / gigajoule" + }, + { + "year": 2047, + "value": "0.3762789457901045 CO2 * metric_ton / gigajoule" + }, + { + "year": 2048, + "value": "0.3875673141638077 CO2 * metric_ton / gigajoule" + }, + { + "year": 2049, + "value": "0.3991943335887219 CO2 * metric_ton / gigajoule" + }, + { + "year": 2050, + "value": "0.4111701635963836 CO2 * metric_ton / gigajoule" + } + ] + }, + "S3": null, + "S1S2S3": null + } + }, + { + "company_name": "Company AI", + "company_id": "FR0000125338", + "region": "Europe", + "sector": "Electricity Utilities", + "target_probability": 0.4285714285714285, + "target_data": null, + "historic_data": { + "productions": null, + "emissions": null, + "emissions_intensities": { + "S1": [ + { + "year": 2009, + "value": "nan CO2 * metric_ton / gigajoule" + }, + { + "year": 2010, + "value": "0.4605612425432028 CO2 * metric_ton / gigajoule" + }, + { + "year": 2011, + "value": "0.47676992001722285 CO2 * metric_ton / gigajoule" + }, + { + "year": 2012, + "value": "0.4935410421590952 CO2 * metric_ton / gigajoule" + }, + { + "year": 2013, + "value": "0.4271137111711944 CO2 * metric_ton / gigajoule" + }, + { + "year": 2014, + "value": "0.4050475894153404 CO2 * metric_ton / gigajoule" + }, + { + "year": 2015, + "value": "1.7660044449376848 CO2 * metric_ton / gigajoule" + }, + { + "year": 2016, + "value": "0.12641248982232864 CO2 * metric_ton / gigajoule" + }, + { + "year": 2017, + "value": "0.11422094242724208 CO2 * metric_ton / gigajoule" + }, + { + "year": 2018, + "value": "0.12432145953306709 CO2 * metric_ton / gigajoule" + }, + { + "year": 2019, + "value": "0.14432694163463483 CO2 * metric_ton / gigajoule" + }, + { + "year": 2020, + "value": "0.11410264669076498 CO2 * metric_ton / gigajoule" + }, + { + "year": 2021, + "value": "0.11410264669076498 CO2 * metric_ton / gigajoule" + } + ], + "S2": [ + { + "year": 2009, + "value": "nan CO2 * metric_ton / gigajoule" + }, + { + "year": 2010, + "value": "0.019750986012689604 CO2 * metric_ton / gigajoule" + }, + { + "year": 2011, + "value": "0.019542782620390428 CO2 * metric_ton / gigajoule" + }, + { + "year": 2012, + "value": "0.016717335291559405 CO2 * metric_ton / gigajoule" + }, + { + "year": 2013, + "value": "0.012755111704326829 CO2 * metric_ton / gigajoule" + }, + { + "year": 2014, + "value": "0.016135716380506274 CO2 * metric_ton / gigajoule" + }, + { + "year": 2015, + "value": "0.0816777616053006 CO2 * metric_ton / gigajoule" + }, + { + "year": 2016, + "value": "0.07909610646488868 CO2 * metric_ton / gigajoule" + }, + { + "year": 2017, + "value": "0.08497232976008089 CO2 * metric_ton / gigajoule" + }, + { + "year": 2018, + "value": "0.078447410507817 CO2 * metric_ton / gigajoule" + }, + { + "year": 2019, + "value": "0.08024699005813475 CO2 * metric_ton / gigajoule" + }, + { + "year": 2020, + "value": "0.14391033829225056 CO2 * metric_ton / gigajoule" + }, + { + "year": 2021, + "value": "0.14391033829225056 CO2 * metric_ton / gigajoule" + } + ], + "S1S2": [], + "S3": [], + "S1S2S3": [] + } + }, + "country": null, + "emissions_metric": { + "units": "t CO2" + }, + "production_metric": { + "units": "GJ" + }, + "base_year_production": "nan gigajoule", + "ghg_s1s2": "nan CO2 * metric_ton", + "ghg_s3": null, + "industry_level_1": null, + "industry_level_2": null, + "industry_level_3": null, + "industry_level_4": null, + "company_revenue": null, + "company_market_cap": null, + "company_enterprise_value": null, + "company_ev_plus_cash": null, + "company_total_assets": null, + "company_cash_equivalents": null, + "projected_targets": null, + "projected_intensities": { + "S1": { + "ei_metric": { + "units": "CO2\u00b7t/GJ" + }, + "projections": [ + { + "year": 2019, + "value": "0.14432694163463483 CO2 * metric_ton / gigajoule" + }, + { + "year": 2020, + "value": "0.11410264669076498 CO2 * metric_ton / gigajoule" + }, + { + "year": 2021, + "value": "0.11410264669076498 CO2 * metric_ton / gigajoule" + }, + { + "year": 2022, + "value": "0.11410264669076498 CO2 * metric_ton / gigajoule" + }, + { + "year": 2023, + "value": "0.11410264669076498 CO2 * metric_ton / gigajoule" + }, + { + "year": 2024, + "value": "0.11410264669076498 CO2 * metric_ton / gigajoule" + }, + { + "year": 2025, + "value": "0.11410264669076498 CO2 * metric_ton / gigajoule" + }, + { + "year": 2026, + "value": "0.11410264669076498 CO2 * metric_ton / gigajoule" + }, + { + "year": 2027, + "value": "0.11410264669076498 CO2 * metric_ton / gigajoule" + }, + { + "year": 2028, + "value": "0.11410264669076498 CO2 * metric_ton / gigajoule" + }, + { + "year": 2029, + "value": "0.11410264669076498 CO2 * metric_ton / gigajoule" + }, + { + "year": 2030, + "value": "0.11410264669076498 CO2 * metric_ton / gigajoule" + }, + { + "year": 2031, + "value": "0.11410264669076498 CO2 * metric_ton / gigajoule" + }, + { + "year": 2032, + "value": "0.11410264669076498 CO2 * metric_ton / gigajoule" + }, + { + "year": 2033, + "value": "0.11410264669076498 CO2 * metric_ton / gigajoule" + }, + { + "year": 2034, + "value": "0.11410264669076498 CO2 * metric_ton / gigajoule" + }, + { + "year": 2035, + "value": "0.11410264669076498 CO2 * metric_ton / gigajoule" + }, + { + "year": 2036, + "value": "0.11410264669076498 CO2 * metric_ton / gigajoule" + }, + { + "year": 2037, + "value": "0.11410264669076498 CO2 * metric_ton / gigajoule" + }, + { + "year": 2038, + "value": "0.11410264669076498 CO2 * metric_ton / gigajoule" + }, + { + "year": 2039, + "value": "0.11410264669076498 CO2 * metric_ton / gigajoule" + }, + { + "year": 2040, + "value": "0.11410264669076498 CO2 * metric_ton / gigajoule" + }, + { + "year": 2041, + "value": "0.11410264669076498 CO2 * metric_ton / gigajoule" + }, + { + "year": 2042, + "value": "0.11410264669076498 CO2 * metric_ton / gigajoule" + }, + { + "year": 2043, + "value": "0.11410264669076498 CO2 * metric_ton / gigajoule" + }, + { + "year": 2044, + "value": "0.11410264669076498 CO2 * metric_ton / gigajoule" + }, + { + "year": 2045, + "value": "0.11410264669076498 CO2 * metric_ton / gigajoule" + }, + { + "year": 2046, + "value": "0.11410264669076498 CO2 * metric_ton / gigajoule" + }, + { + "year": 2047, + "value": "0.11410264669076498 CO2 * metric_ton / gigajoule" + }, + { + "year": 2048, + "value": "0.11410264669076498 CO2 * metric_ton / gigajoule" + }, + { + "year": 2049, + "value": "0.11410264669076498 CO2 * metric_ton / gigajoule" + }, + { + "year": 2050, + "value": "0.11410264669076498 CO2 * metric_ton / gigajoule" + } + ] + }, + "S2": { + "ei_metric": { + "units": "CO2\u00b7t/GJ" + }, + "projections": [ + { + "year": 2019, + "value": "0.08024699005813475 CO2 * metric_ton / gigajoule" + }, + { + "year": 2020, + "value": "0.14391033829225056 CO2 * metric_ton / gigajoule" + }, + { + "year": 2021, + "value": "0.14391033829225056 CO2 * metric_ton / gigajoule" + }, + { + "year": 2022, + "value": "0.14391033829225056 CO2 * metric_ton / gigajoule" + }, + { + "year": 2023, + "value": "0.14391033829225056 CO2 * metric_ton / gigajoule" + }, + { + "year": 2024, + "value": "0.14391033829225056 CO2 * metric_ton / gigajoule" + }, + { + "year": 2025, + "value": "0.14391033829225056 CO2 * metric_ton / gigajoule" + }, + { + "year": 2026, + "value": "0.14391033829225056 CO2 * metric_ton / gigajoule" + }, + { + "year": 2027, + "value": "0.14391033829225056 CO2 * metric_ton / gigajoule" + }, + { + "year": 2028, + "value": "0.14391033829225056 CO2 * metric_ton / gigajoule" + }, + { + "year": 2029, + "value": "0.14391033829225056 CO2 * metric_ton / gigajoule" + }, + { + "year": 2030, + "value": "0.14391033829225056 CO2 * metric_ton / gigajoule" + }, + { + "year": 2031, + "value": "0.14391033829225056 CO2 * metric_ton / gigajoule" + }, + { + "year": 2032, + "value": "0.14391033829225056 CO2 * metric_ton / gigajoule" + }, + { + "year": 2033, + "value": "0.14391033829225056 CO2 * metric_ton / gigajoule" + }, + { + "year": 2034, + "value": "0.14391033829225056 CO2 * metric_ton / gigajoule" + }, + { + "year": 2035, + "value": "0.14391033829225056 CO2 * metric_ton / gigajoule" + }, + { + "year": 2036, + "value": "0.14391033829225056 CO2 * metric_ton / gigajoule" + }, + { + "year": 2037, + "value": "0.14391033829225056 CO2 * metric_ton / gigajoule" + }, + { + "year": 2038, + "value": "0.14391033829225056 CO2 * metric_ton / gigajoule" + }, + { + "year": 2039, + "value": "0.14391033829225056 CO2 * metric_ton / gigajoule" + }, + { + "year": 2040, + "value": "0.14391033829225056 CO2 * metric_ton / gigajoule" + }, + { + "year": 2041, + "value": "0.14391033829225056 CO2 * metric_ton / gigajoule" + }, + { + "year": 2042, + "value": "0.14391033829225056 CO2 * metric_ton / gigajoule" + }, + { + "year": 2043, + "value": "0.14391033829225056 CO2 * metric_ton / gigajoule" + }, + { + "year": 2044, + "value": "0.14391033829225056 CO2 * metric_ton / gigajoule" + }, + { + "year": 2045, + "value": "0.14391033829225056 CO2 * metric_ton / gigajoule" + }, + { + "year": 2046, + "value": "0.14391033829225056 CO2 * metric_ton / gigajoule" + }, + { + "year": 2047, + "value": "0.14391033829225056 CO2 * metric_ton / gigajoule" + }, + { + "year": 2048, + "value": "0.14391033829225056 CO2 * metric_ton / gigajoule" + }, + { + "year": 2049, + "value": "0.14391033829225056 CO2 * metric_ton / gigajoule" + }, + { + "year": 2050, + "value": "0.14391033829225056 CO2 * metric_ton / gigajoule" + } + ] + }, + "S1S2": { + "ei_metric": { + "units": "CO2\u00b7t/GJ" + }, + "projections": [ + { + "year": 2019, + "value": "0.22457393169276957 CO2 * metric_ton / gigajoule" + }, + { + "year": 2020, + "value": "0.2580129849830155 CO2 * metric_ton / gigajoule" + }, + { + "year": 2021, + "value": "0.2580129849830155 CO2 * metric_ton / gigajoule" + }, + { + "year": 2022, + "value": "0.2580129849830155 CO2 * metric_ton / gigajoule" + }, + { + "year": 2023, + "value": "0.2580129849830155 CO2 * metric_ton / gigajoule" + }, + { + "year": 2024, + "value": "0.2580129849830155 CO2 * metric_ton / gigajoule" + }, + { + "year": 2025, + "value": "0.2580129849830155 CO2 * metric_ton / gigajoule" + }, + { + "year": 2026, + "value": "0.2580129849830155 CO2 * metric_ton / gigajoule" + }, + { + "year": 2027, + "value": "0.2580129849830155 CO2 * metric_ton / gigajoule" + }, + { + "year": 2028, + "value": "0.2580129849830155 CO2 * metric_ton / gigajoule" + }, + { + "year": 2029, + "value": "0.2580129849830155 CO2 * metric_ton / gigajoule" + }, + { + "year": 2030, + "value": "0.2580129849830155 CO2 * metric_ton / gigajoule" + }, + { + "year": 2031, + "value": "0.2580129849830155 CO2 * metric_ton / gigajoule" + }, + { + "year": 2032, + "value": "0.2580129849830155 CO2 * metric_ton / gigajoule" + }, + { + "year": 2033, + "value": "0.2580129849830155 CO2 * metric_ton / gigajoule" + }, + { + "year": 2034, + "value": "0.2580129849830155 CO2 * metric_ton / gigajoule" + }, + { + "year": 2035, + "value": "0.2580129849830155 CO2 * metric_ton / gigajoule" + }, + { + "year": 2036, + "value": "0.2580129849830155 CO2 * metric_ton / gigajoule" + }, + { + "year": 2037, + "value": "0.2580129849830155 CO2 * metric_ton / gigajoule" + }, + { + "year": 2038, + "value": "0.2580129849830155 CO2 * metric_ton / gigajoule" + }, + { + "year": 2039, + "value": "0.2580129849830155 CO2 * metric_ton / gigajoule" + }, + { + "year": 2040, + "value": "0.2580129849830155 CO2 * metric_ton / gigajoule" + }, + { + "year": 2041, + "value": "0.2580129849830155 CO2 * metric_ton / gigajoule" + }, + { + "year": 2042, + "value": "0.2580129849830155 CO2 * metric_ton / gigajoule" + }, + { + "year": 2043, + "value": "0.2580129849830155 CO2 * metric_ton / gigajoule" + }, + { + "year": 2044, + "value": "0.2580129849830155 CO2 * metric_ton / gigajoule" + }, + { + "year": 2045, + "value": "0.2580129849830155 CO2 * metric_ton / gigajoule" + }, + { + "year": 2046, + "value": "0.2580129849830155 CO2 * metric_ton / gigajoule" + }, + { + "year": 2047, + "value": "0.2580129849830155 CO2 * metric_ton / gigajoule" + }, + { + "year": 2048, + "value": "0.2580129849830155 CO2 * metric_ton / gigajoule" + }, + { + "year": 2049, + "value": "0.2580129849830155 CO2 * metric_ton / gigajoule" + }, + { + "year": 2050, + "value": "0.2580129849830155 CO2 * metric_ton / gigajoule" + } + ] + }, + "S3": null, + "S1S2S3": null + } + }, + { + "company_name": "Company AJ", + "company_id": "US17275R1023", + "region": "Europe", + "sector": "Electricity Utilities", + "target_probability": 0.4285714285714285, + "target_data": null, + "historic_data": { + "productions": [ + { + "year": 2009, + "value": "8015760033.846192 gigajoule" + }, + { + "year": 2010, + "value": "8169984033.846192 gigajoule" + }, + { + "year": 2011, + "value": "8141472033.846192 gigajoule" + }, + { + "year": 2012, + "value": "8328096033.846192 gigajoule" + }, + { + "year": 2013, + "value": "8474544033.846192 gigajoule" + }, + { + "year": 2014, + "value": "8080560033.846192 gigajoule" + }, + { + "year": 2015, + "value": "8026128033.846192 gigajoule" + }, + { + "year": 2016, + "value": "364176033.84621 gigajoule" + }, + { + "year": 2017, + "value": "381024033.84621 gigajoule" + }, + { + "year": 2018, + "value": "383616033.84621 gigajoule" + }, + { + "year": 2019, + "value": "360288033.84621 gigajoule" + }, + { + "year": 2020, + "value": "360288033.84621 gigajoule" + }, + { + "year": 2021, + "value": "360288033.84621 gigajoule" + } + ], + "emissions": { + "S1": [ + { + "year": 2009, + "value": "78192009.4017252 CO2 * metric_ton" + }, + { + "year": 2010, + "value": "80575879.4017252 CO2 * metric_ton" + }, + { + "year": 2011, + "value": "70935799.4017252 CO2 * metric_ton" + }, + { + "year": 2012, + "value": "80283565.4017252 CO2 * metric_ton" + }, + { + "year": 2013, + "value": "73222380.0683918 CO2 * metric_ton" + }, + { + "year": 2014, + "value": "66161194.7350585 CO2 * metric_ton" + }, + { + "year": 2015, + "value": "59100009.4017252 CO2 * metric_ton" + }, + { + "year": 2016, + "value": "47700009.4017252 CO2 * metric_ton" + }, + { + "year": 2017, + "value": "51300009.4017252 CO2 * metric_ton" + }, + { + "year": 2018, + "value": "35700009.4017252 CO2 * metric_ton" + }, + { + "year": 2019, + "value": "33100009.4017252 CO2 * metric_ton" + }, + { + "year": 2020, + "value": "33100009.4017252 CO2 * metric_ton" + }, + { + "year": 2021, + "value": "33100009.4017252 CO2 * metric_ton" + } + ], + "S2": [ + { + "year": 2009, + "value": "480089.401725152 CO2 * metric_ton" + }, + { + "year": 2010, + "value": "670709.401725152 CO2 * metric_ton" + }, + { + "year": 2011, + "value": "81181.4017251516 CO2 * metric_ton" + }, + { + "year": 2012, + "value": "74013.4017251516 CO2 * metric_ton" + }, + { + "year": 2013, + "value": "159212.601725152 CO2 * metric_ton" + }, + { + "year": 2014, + "value": "244411.801725152 CO2 * metric_ton" + }, + { + "year": 2015, + "value": "329611.001725152 CO2 * metric_ton" + }, + { + "year": 2016, + "value": "414810.201725152 CO2 * metric_ton" + }, + { + "year": 2017, + "value": "500009.401725152 CO2 * metric_ton" + }, + { + "year": 2018, + "value": "470009.401725152 CO2 * metric_ton" + }, + { + "year": 2019, + "value": "290009.401725152 CO2 * metric_ton" + }, + { + "year": 2020, + "value": "290009.401725152 CO2 * metric_ton" + }, + { + "year": 2021, + "value": "290009.401725152 CO2 * metric_ton" + } + ], + "S1S2": [], + "S3": [], + "S1S2S3": [] + }, + "emissions_intensities": { + "S1": [ + { + "year": 2009, + "value": "0.12642200334933337 CO2 * metric_ton / gigajoule" + }, + { + "year": 2010, + "value": "0.12781706704936452 CO2 * metric_ton / gigajoule" + }, + { + "year": 2011, + "value": "0.1129191326119494 CO2 * metric_ton / gigajoule" + }, + { + "year": 2012, + "value": "0.12493551988086661 CO2 * metric_ton / gigajoule" + }, + { + "year": 2013, + "value": "0.11197794735579024 CO2 * metric_ton / gigajoule" + }, + { + "year": 2014, + "value": "0.10611258132788423 CO2 * metric_ton / gigajoule" + }, + { + "year": 2015, + "value": "0.09543033933877008 CO2 * metric_ton / gigajoule" + }, + { + "year": 2016, + "value": "1.6975090736130565 CO2 * metric_ton / gigajoule" + }, + { + "year": 2017, + "value": "1.7448981239716346 CO2 * metric_ton / gigajoule" + }, + { + "year": 2018, + "value": "1.2060812922950988 CO2 * metric_ton / gigajoule" + }, + { + "year": 2019, + "value": "1.1906477083539972 CO2 * metric_ton / gigajoule" + }, + { + "year": 2020, + "value": "1.1906477083539972 CO2 * metric_ton / gigajoule" + }, + { + "year": 2021, + "value": "1.1906477083539972 CO2 * metric_ton / gigajoule" + } + ], + "S2": [ + { + "year": 2009, + "value": "0.0007762156826159988 CO2 * metric_ton / gigajoule" + }, + { + "year": 2010, + "value": "0.001063942574471082 CO2 * metric_ton / gigajoule" + }, + { + "year": 2011, + "value": "0.000129228591830085 CO2 * metric_ton / gigajoule" + }, + { + "year": 2012, + "value": "0.0001151780289828102 CO2 * metric_ton / gigajoule" + }, + { + "year": 2013, + "value": "0.00024348157377164316 CO2 * metric_ton / gigajoule" + }, + { + "year": 2014, + "value": "0.0003919996803551076 CO2 * metric_ton / gigajoule" + }, + { + "year": 2015, + "value": "0.0005322315522932028 CO2 * metric_ton / gigajoule" + }, + { + "year": 2016, + "value": "0.01476192751505496 CO2 * metric_ton / gigajoule" + }, + { + "year": 2017, + "value": "0.017007120996922403 CO2 * metric_ton / gigajoule" + }, + { + "year": 2018, + "value": "0.01587869460326034 CO2 * metric_ton / gigajoule" + }, + { + "year": 2019, + "value": "0.010431991887807995 CO2 * metric_ton / gigajoule" + }, + { + "year": 2020, + "value": "0.010431991887807995 CO2 * metric_ton / gigajoule" + }, + { + "year": 2021, + "value": "0.010431991887807995 CO2 * metric_ton / gigajoule" + } + ], + "S1S2": [], + "S3": [], + "S1S2S3": [] + } + }, + "country": null, + "emissions_metric": { + "units": "t CO2" + }, + "production_metric": { + "units": "GJ" + }, + "base_year_production": "360288033.84621 gigajoule", + "ghg_s1s2": "33390018.80345035 CO2 * metric_ton", + "ghg_s3": null, + "industry_level_1": null, + "industry_level_2": null, + "industry_level_3": null, + "industry_level_4": null, + "company_revenue": null, + "company_market_cap": null, + "company_enterprise_value": null, + "company_ev_plus_cash": null, + "company_total_assets": null, + "company_cash_equivalents": null, + "projected_targets": null, + "projected_intensities": { + "S1": { + "ei_metric": { + "units": "CO2\u00b7t/GJ" + }, + "projections": [ + { + "year": 2019, + "value": "1.1906477083539972 CO2 * metric_ton / gigajoule" + }, + { + "year": 2020, + "value": "1.1906477083539972 CO2 * metric_ton / gigajoule" + }, + { + "year": 2021, + "value": "1.1906477083539972 CO2 * metric_ton / gigajoule" + }, + { + "year": 2022, + "value": "1.1906477083539972 CO2 * metric_ton / gigajoule" + }, + { + "year": 2023, + "value": "1.1906477083539972 CO2 * metric_ton / gigajoule" + }, + { + "year": 2024, + "value": "1.1906477083539972 CO2 * metric_ton / gigajoule" + }, + { + "year": 2025, + "value": "1.1906477083539972 CO2 * metric_ton / gigajoule" + }, + { + "year": 2026, + "value": "1.1906477083539972 CO2 * metric_ton / gigajoule" + }, + { + "year": 2027, + "value": "1.1906477083539972 CO2 * metric_ton / gigajoule" + }, + { + "year": 2028, + "value": "1.1906477083539972 CO2 * metric_ton / gigajoule" + }, + { + "year": 2029, + "value": "1.1906477083539972 CO2 * metric_ton / gigajoule" + }, + { + "year": 2030, + "value": "1.1906477083539972 CO2 * metric_ton / gigajoule" + }, + { + "year": 2031, + "value": "1.1906477083539972 CO2 * metric_ton / gigajoule" + }, + { + "year": 2032, + "value": "1.1906477083539972 CO2 * metric_ton / gigajoule" + }, + { + "year": 2033, + "value": "1.1906477083539972 CO2 * metric_ton / gigajoule" + }, + { + "year": 2034, + "value": "1.1906477083539972 CO2 * metric_ton / gigajoule" + }, + { + "year": 2035, + "value": "1.1906477083539972 CO2 * metric_ton / gigajoule" + }, + { + "year": 2036, + "value": "1.1906477083539972 CO2 * metric_ton / gigajoule" + }, + { + "year": 2037, + "value": "1.1906477083539972 CO2 * metric_ton / gigajoule" + }, + { + "year": 2038, + "value": "1.1906477083539972 CO2 * metric_ton / gigajoule" + }, + { + "year": 2039, + "value": "1.1906477083539972 CO2 * metric_ton / gigajoule" + }, + { + "year": 2040, + "value": "1.1906477083539972 CO2 * metric_ton / gigajoule" + }, + { + "year": 2041, + "value": "1.1906477083539972 CO2 * metric_ton / gigajoule" + }, + { + "year": 2042, + "value": "1.1906477083539972 CO2 * metric_ton / gigajoule" + }, + { + "year": 2043, + "value": "1.1906477083539972 CO2 * metric_ton / gigajoule" + }, + { + "year": 2044, + "value": "1.1906477083539972 CO2 * metric_ton / gigajoule" + }, + { + "year": 2045, + "value": "1.1906477083539972 CO2 * metric_ton / gigajoule" + }, + { + "year": 2046, + "value": "1.1906477083539972 CO2 * metric_ton / gigajoule" + }, + { + "year": 2047, + "value": "1.1906477083539972 CO2 * metric_ton / gigajoule" + }, + { + "year": 2048, + "value": "1.1906477083539972 CO2 * metric_ton / gigajoule" + }, + { + "year": 2049, + "value": "1.1906477083539972 CO2 * metric_ton / gigajoule" + }, + { + "year": 2050, + "value": "1.1906477083539972 CO2 * metric_ton / gigajoule" + } + ] + }, + "S2": { + "ei_metric": { + "units": "CO2\u00b7t/GJ" + }, + "projections": [ + { + "year": 2019, + "value": "0.010431991887807995 CO2 * metric_ton / gigajoule" + }, + { + "year": 2020, + "value": "0.010431991887807995 CO2 * metric_ton / gigajoule" + }, + { + "year": 2021, + "value": "0.010431991887807995 CO2 * metric_ton / gigajoule" + }, + { + "year": 2022, + "value": "0.010744951644442235 CO2 * metric_ton / gigajoule" + }, + { + "year": 2023, + "value": "0.011067300193775503 CO2 * metric_ton / gigajoule" + }, + { + "year": 2024, + "value": "0.011399319199588769 CO2 * metric_ton / gigajoule" + }, + { + "year": 2025, + "value": "0.011741298775576432 CO2 * metric_ton / gigajoule" + }, + { + "year": 2026, + "value": "0.012093537738843725 CO2 * metric_ton / gigajoule" + }, + { + "year": 2027, + "value": "0.012456343871009037 CO2 * metric_ton / gigajoule" + }, + { + "year": 2028, + "value": "0.012830034187139308 CO2 * metric_ton / gigajoule" + }, + { + "year": 2029, + "value": "0.013214935212753487 CO2 * metric_ton / gigajoule" + }, + { + "year": 2030, + "value": "0.013611383269136093 CO2 * metric_ton / gigajoule" + }, + { + "year": 2031, + "value": "0.014019724767210176 CO2 * metric_ton / gigajoule" + }, + { + "year": 2032, + "value": "0.014440316510226483 CO2 * metric_ton / gigajoule" + }, + { + "year": 2033, + "value": "0.014873526005533277 CO2 * metric_ton / gigajoule" + }, + { + "year": 2034, + "value": "0.015319731785699276 CO2 * metric_ton / gigajoule" + }, + { + "year": 2035, + "value": "0.015779323739270254 CO2 * metric_ton / gigajoule" + }, + { + "year": 2036, + "value": "0.01625270345144836 CO2 * metric_ton / gigajoule" + }, + { + "year": 2037, + "value": "0.016740284554991814 CO2 * metric_ton / gigajoule" + }, + { + "year": 2038, + "value": "0.01724249309164157 CO2 * metric_ton / gigajoule" + }, + { + "year": 2039, + "value": "0.017759767884390817 CO2 * metric_ton / gigajoule" + }, + { + "year": 2040, + "value": "0.018292560920922542 CO2 * metric_ton / gigajoule" + }, + { + "year": 2041, + "value": "0.018841337748550218 CO2 * metric_ton / gigajoule" + }, + { + "year": 2042, + "value": "0.019406577881006724 CO2 * metric_ton / gigajoule" + }, + { + "year": 2043, + "value": "0.019988775217436926 CO2 * metric_ton / gigajoule" + }, + { + "year": 2044, + "value": "0.020588438473960035 CO2 * metric_ton / gigajoule" + }, + { + "year": 2045, + "value": "0.021206091628178835 CO2 * metric_ton / gigajoule" + }, + { + "year": 2046, + "value": "0.021842274377024202 CO2 * metric_ton / gigajoule" + }, + { + "year": 2047, + "value": "0.02249754260833493 CO2 * metric_ton / gigajoule" + }, + { + "year": 2048, + "value": "0.023172468886584977 CO2 * metric_ton / gigajoule" + }, + { + "year": 2049, + "value": "0.023867642953182527 CO2 * metric_ton / gigajoule" + }, + { + "year": 2050, + "value": "0.024583672241778005 CO2 * metric_ton / gigajoule" + } + ] + }, + "S1S2": { + "ei_metric": { + "units": "CO2\u00b7t/GJ" + }, + "projections": [ + { + "year": 2019, + "value": "1.2010797002418052 CO2 * metric_ton / gigajoule" + }, + { + "year": 2020, + "value": "1.2010797002418052 CO2 * metric_ton / gigajoule" + }, + { + "year": 2021, + "value": "1.2010797002418052 CO2 * metric_ton / gigajoule" + }, + { + "year": 2022, + "value": "1.2013926599984395 CO2 * metric_ton / gigajoule" + }, + { + "year": 2023, + "value": "1.2017150085477728 CO2 * metric_ton / gigajoule" + }, + { + "year": 2024, + "value": "1.202047027553586 CO2 * metric_ton / gigajoule" + }, + { + "year": 2025, + "value": "1.2023890071295738 CO2 * metric_ton / gigajoule" + }, + { + "year": 2026, + "value": "1.202741246092841 CO2 * metric_ton / gigajoule" + }, + { + "year": 2027, + "value": "1.2031040522250063 CO2 * metric_ton / gigajoule" + }, + { + "year": 2028, + "value": "1.2034777425411365 CO2 * metric_ton / gigajoule" + }, + { + "year": 2029, + "value": "1.2038626435667508 CO2 * metric_ton / gigajoule" + }, + { + "year": 2030, + "value": "1.2042590916231333 CO2 * metric_ton / gigajoule" + }, + { + "year": 2031, + "value": "1.2046674331212075 CO2 * metric_ton / gigajoule" + }, + { + "year": 2032, + "value": "1.2050880248642237 CO2 * metric_ton / gigajoule" + }, + { + "year": 2033, + "value": "1.2055212343595305 CO2 * metric_ton / gigajoule" + }, + { + "year": 2034, + "value": "1.2059674401396965 CO2 * metric_ton / gigajoule" + }, + { + "year": 2035, + "value": "1.2064270320932675 CO2 * metric_ton / gigajoule" + }, + { + "year": 2036, + "value": "1.2069004118054456 CO2 * metric_ton / gigajoule" + }, + { + "year": 2037, + "value": "1.207387992908989 CO2 * metric_ton / gigajoule" + }, + { + "year": 2038, + "value": "1.2078902014456387 CO2 * metric_ton / gigajoule" + }, + { + "year": 2039, + "value": "1.208407476238388 CO2 * metric_ton / gigajoule" + }, + { + "year": 2040, + "value": "1.2089402692749198 CO2 * metric_ton / gigajoule" + }, + { + "year": 2041, + "value": "1.2094890461025474 CO2 * metric_ton / gigajoule" + }, + { + "year": 2042, + "value": "1.2100542862350039 CO2 * metric_ton / gigajoule" + }, + { + "year": 2043, + "value": "1.2106364835714343 CO2 * metric_ton / gigajoule" + }, + { + "year": 2044, + "value": "1.2112361468279573 CO2 * metric_ton / gigajoule" + }, + { + "year": 2045, + "value": "1.2118537999821761 CO2 * metric_ton / gigajoule" + }, + { + "year": 2046, + "value": "1.2124899827310214 CO2 * metric_ton / gigajoule" + }, + { + "year": 2047, + "value": "1.2131452509623322 CO2 * metric_ton / gigajoule" + }, + { + "year": 2048, + "value": "1.2138201772405823 CO2 * metric_ton / gigajoule" + }, + { + "year": 2049, + "value": "1.2145153513071798 CO2 * metric_ton / gigajoule" + }, + { + "year": 2050, + "value": "1.2152313805957753 CO2 * metric_ton / gigajoule" + } + ] + }, + "S3": null, + "S1S2S3": null + } + }, + { + "company_name": "Company AK", + "company_id": "CH0198251305", + "region": "Europe", + "sector": "Electricity Utilities", + "target_probability": 0.4285714285714285, + "target_data": null, + "historic_data": { + "productions": [ + { + "year": 2009, + "value": "nan gigajoule" + }, + { + "year": 2010, + "value": "3760992023.3008924 gigajoule" + }, + { + "year": 2011, + "value": "3808944023.3008924 gigajoule" + }, + { + "year": 2012, + "value": "3833568023.3008924 gigajoule" + }, + { + "year": 2013, + "value": "3708452183.3008924 gigajoule" + }, + { + "year": 2014, + "value": "3668988983.3008924 gigajoule" + }, + { + "year": 2015, + "value": "3680795543.3008924 gigajoule" + }, + { + "year": 2016, + "value": "3393083543.3008957 gigajoule" + }, + { + "year": 2017, + "value": "3238392983.3008957 gigajoule" + }, + { + "year": 2018, + "value": "3244393463.3008957 gigajoule" + }, + { + "year": 2019, + "value": "2969511863.3008957 gigajoule" + }, + { + "year": 2020, + "value": "2684119703.3008957 gigajoule" + }, + { + "year": 2021, + "value": "2684119703.3008957 gigajoule" + } + ], + "emissions": { + "S1": [ + { + "year": 2009, + "value": "nan CO2 * metric_ton" + }, + { + "year": 2010, + "value": "116400006.472471 CO2 * metric_ton" + }, + { + "year": 2011, + "value": "123540195.472471 CO2 * metric_ton" + }, + { + "year": 2012, + "value": "127800006.472471 CO2 * metric_ton" + }, + { + "year": 2013, + "value": "115550006.472471 CO2 * metric_ton" + }, + { + "year": 2014, + "value": "115480006.472471 CO2 * metric_ton" + }, + { + "year": 2015, + "value": "119510006.472471 CO2 * metric_ton" + }, + { + "year": 2016, + "value": "106730006.472471 CO2 * metric_ton" + }, + { + "year": 2017, + "value": "105960006.472471 CO2 * metric_ton" + }, + { + "year": 2018, + "value": "95230006.4724713 CO2 * metric_ton" + }, + { + "year": 2019, + "value": "69980006.4724713 CO2 * metric_ton" + }, + { + "year": 2020, + "value": "45260006.4724712 CO2 * metric_ton" + }, + { + "year": 2021, + "value": "45260006.4724712 CO2 * metric_ton" + } + ], + "S2": [ + { + "year": 2009, + "value": "nan CO2 * metric_ton" + }, + { + "year": 2010, + "value": "245006.472471246 CO2 * metric_ton" + }, + { + "year": 2011, + "value": "331647.472471246 CO2 * metric_ton" + }, + { + "year": 2012, + "value": "370006.472471246 CO2 * metric_ton" + }, + { + "year": 2013, + "value": "786006.472471246 CO2 * metric_ton" + }, + { + "year": 2014, + "value": "636006.472471246 CO2 * metric_ton" + }, + { + "year": 2015, + "value": "654006.472471246 CO2 * metric_ton" + }, + { + "year": 2016, + "value": "1400006.47247125 CO2 * metric_ton" + }, + { + "year": 2017, + "value": "5000006.47247125 CO2 * metric_ton" + }, + { + "year": 2018, + "value": "5080006.47247125 CO2 * metric_ton" + }, + { + "year": 2019, + "value": "5370006.47247125 CO2 * metric_ton" + }, + { + "year": 2020, + "value": "5000006.47247125 CO2 * metric_ton" + }, + { + "year": 2021, + "value": "5000006.47247125 CO2 * metric_ton" + } + ], + "S1S2": [], + "S3": [], + "S1S2S3": [] + }, + "emissions_intensities": { + "S1": [ + { + "year": 2009, + "value": "nan CO2 * metric_ton / gigajoule" + }, + { + "year": 2010, + "value": "0.401102707620006 CO2 * metric_ton / gigajoule" + }, + { + "year": 2011, + "value": "0.4203477193491828 CO2 * metric_ton / gigajoule" + }, + { + "year": 2012, + "value": "0.43204870079677804 CO2 * metric_ton / gigajoule" + }, + { + "year": 2013, + "value": "0.4038148558653588 CO2 * metric_ton / gigajoule" + }, + { + "year": 2014, + "value": "0.40791097784566077 CO2 * metric_ton / gigajoule" + }, + { + "year": 2015, + "value": "0.42079209933357004 CO2 * metric_ton / gigajoule" + }, + { + "year": 2016, + "value": "0.4076589527582292 CO2 * metric_ton / gigajoule" + }, + { + "year": 2017, + "value": "0.4240503518147712 CO2 * metric_ton / gigajoule" + }, + { + "year": 2018, + "value": "0.380404195065648 CO2 * metric_ton / gigajoule" + }, + { + "year": 2019, + "value": "0.3054174981052529 CO2 * metric_ton / gigajoule" + }, + { + "year": 2020, + "value": "0.21853335496247459 CO2 * metric_ton / gigajoule" + }, + { + "year": 2021, + "value": "0.21853335496247459 CO2 * metric_ton / gigajoule" + } + ], + "S2": [ + { + "year": 2009, + "value": "nan CO2 * metric_ton / gigajoule" + }, + { + "year": 2010, + "value": "0.0008442676462899023 CO2 * metric_ton / gigajoule" + }, + { + "year": 2011, + "value": "0.001128436442471657 CO2 * metric_ton / gigajoule" + }, + { + "year": 2012, + "value": "0.0012508670392910783 CO2 * metric_ton / gigajoule" + }, + { + "year": 2013, + "value": "0.0027468721126020315 CO2 * metric_ton / gigajoule" + }, + { + "year": 2014, + "value": "0.00224657090025156 CO2 * metric_ton / gigajoule" + }, + { + "year": 2015, + "value": "0.0023027423782485457 CO2 * metric_ton / gigajoule" + }, + { + "year": 2016, + "value": "0.005347373164168032 CO2 * metric_ton / gigajoule" + }, + { + "year": 2017, + "value": "0.020009950681518757 CO2 * metric_ton / gigajoule" + }, + { + "year": 2018, + "value": "0.020292509101606883 CO2 * metric_ton / gigajoule" + }, + { + "year": 2019, + "value": "0.023436607458394043 CO2 * metric_ton / gigajoule" + }, + { + "year": 2020, + "value": "0.024142024591353756 CO2 * metric_ton / gigajoule" + }, + { + "year": 2021, + "value": "0.024142024591353756 CO2 * metric_ton / gigajoule" + } + ], + "S1S2": [], + "S3": [], + "S1S2S3": [] + } + }, + "country": null, + "emissions_metric": { + "units": "t CO2" + }, + "production_metric": { + "units": "GJ" + }, + "base_year_production": "2684119703.3008957 gigajoule", + "ghg_s1s2": "50260012.94494245 CO2 * metric_ton", + "ghg_s3": null, + "industry_level_1": null, + "industry_level_2": null, + "industry_level_3": null, + "industry_level_4": null, + "company_revenue": null, + "company_market_cap": null, + "company_enterprise_value": null, + "company_ev_plus_cash": null, + "company_total_assets": null, + "company_cash_equivalents": null, + "projected_targets": null, + "projected_intensities": { + "S1": { + "ei_metric": { + "units": "CO2\u00b7t/GJ" + }, + "projections": [ + { + "year": 2019, + "value": "0.3054174981052529 CO2 * metric_ton / gigajoule" + }, + { + "year": 2020, + "value": "0.21853335496247459 CO2 * metric_ton / gigajoule" + }, + { + "year": 2021, + "value": "0.21853335496247459 CO2 * metric_ton / gigajoule" + }, + { + "year": 2022, + "value": "0.21853335496247459 CO2 * metric_ton / gigajoule" + }, + { + "year": 2023, + "value": "0.21853335496247459 CO2 * metric_ton / gigajoule" + }, + { + "year": 2024, + "value": "0.21853335496247459 CO2 * metric_ton / gigajoule" + }, + { + "year": 2025, + "value": "0.21853335496247459 CO2 * metric_ton / gigajoule" + }, + { + "year": 2026, + "value": "0.21853335496247459 CO2 * metric_ton / gigajoule" + }, + { + "year": 2027, + "value": "0.21853335496247459 CO2 * metric_ton / gigajoule" + }, + { + "year": 2028, + "value": "0.21853335496247459 CO2 * metric_ton / gigajoule" + }, + { + "year": 2029, + "value": "0.21853335496247459 CO2 * metric_ton / gigajoule" + }, + { + "year": 2030, + "value": "0.21853335496247459 CO2 * metric_ton / gigajoule" + }, + { + "year": 2031, + "value": "0.21853335496247459 CO2 * metric_ton / gigajoule" + }, + { + "year": 2032, + "value": "0.21853335496247459 CO2 * metric_ton / gigajoule" + }, + { + "year": 2033, + "value": "0.21853335496247459 CO2 * metric_ton / gigajoule" + }, + { + "year": 2034, + "value": "0.21853335496247459 CO2 * metric_ton / gigajoule" + }, + { + "year": 2035, + "value": "0.21853335496247459 CO2 * metric_ton / gigajoule" + }, + { + "year": 2036, + "value": "0.21853335496247459 CO2 * metric_ton / gigajoule" + }, + { + "year": 2037, + "value": "0.21853335496247459 CO2 * metric_ton / gigajoule" + }, + { + "year": 2038, + "value": "0.21853335496247459 CO2 * metric_ton / gigajoule" + }, + { + "year": 2039, + "value": "0.21853335496247459 CO2 * metric_ton / gigajoule" + }, + { + "year": 2040, + "value": "0.21853335496247459 CO2 * metric_ton / gigajoule" + }, + { + "year": 2041, + "value": "0.21853335496247459 CO2 * metric_ton / gigajoule" + }, + { + "year": 2042, + "value": "0.21853335496247459 CO2 * metric_ton / gigajoule" + }, + { + "year": 2043, + "value": "0.21853335496247459 CO2 * metric_ton / gigajoule" + }, + { + "year": 2044, + "value": "0.21853335496247459 CO2 * metric_ton / gigajoule" + }, + { + "year": 2045, + "value": "0.21853335496247459 CO2 * metric_ton / gigajoule" + }, + { + "year": 2046, + "value": "0.21853335496247459 CO2 * metric_ton / gigajoule" + }, + { + "year": 2047, + "value": "0.21853335496247459 CO2 * metric_ton / gigajoule" + }, + { + "year": 2048, + "value": "0.21853335496247459 CO2 * metric_ton / gigajoule" + }, + { + "year": 2049, + "value": "0.21853335496247459 CO2 * metric_ton / gigajoule" + }, + { + "year": 2050, + "value": "0.21853335496247459 CO2 * metric_ton / gigajoule" + } + ] + }, + "S2": { + "ei_metric": { + "units": "CO2\u00b7t/GJ" + }, + "projections": [ + { + "year": 2019, + "value": "0.023436607458394043 CO2 * metric_ton / gigajoule" + }, + { + "year": 2020, + "value": "0.024142024591353756 CO2 * metric_ton / gigajoule" + }, + { + "year": 2021, + "value": "0.024142024591353756 CO2 * metric_ton / gigajoule" + }, + { + "year": 2022, + "value": "0.02479600909065374 CO2 * metric_ton / gigajoule" + }, + { + "year": 2023, + "value": "0.025467709408430596 CO2 * metric_ton / gigajoule" + }, + { + "year": 2024, + "value": "0.026157605449368064 CO2 * metric_ton / gigajoule" + }, + { + "year": 2025, + "value": "0.026866190118311616 CO2 * metric_ton / gigajoule" + }, + { + "year": 2026, + "value": "0.027593969672430482 CO2 * metric_ton / gigajoule" + }, + { + "year": 2027, + "value": "0.028341464082919418 CO2 * metric_ton / gigajoule" + }, + { + "year": 2028, + "value": "0.02910920740649861 CO2 * metric_ton / gigajoule" + }, + { + "year": 2029, + "value": "0.029897748166977177 CO2 * metric_ton / gigajoule" + }, + { + "year": 2030, + "value": "0.030707649747152857 CO2 * metric_ton / gigajoule" + }, + { + "year": 2031, + "value": "0.03153949079132789 CO2 * metric_ton / gigajoule" + }, + { + "year": 2032, + "value": "0.03239386561872866 CO2 * metric_ton / gigajoule" + }, + { + "year": 2033, + "value": "0.0332713846481245 CO2 * metric_ton / gigajoule" + }, + { + "year": 2034, + "value": "0.034172674833949 CO2 * metric_ton / gigajoule" + }, + { + "year": 2035, + "value": "0.03509838011423544 CO2 * metric_ton / gigajoule" + }, + { + "year": 2036, + "value": "0.036049161870686366 CO2 * metric_ton / gigajoule" + }, + { + "year": 2037, + "value": "0.037025699401206 CO2 * metric_ton / gigajoule" + }, + { + "year": 2038, + "value": "0.03802869040523312 CO2 * metric_ton / gigajoule" + }, + { + "year": 2039, + "value": "0.03905885148222115 CO2 * metric_ton / gigajoule" + }, + { + "year": 2040, + "value": "0.04011691864362157 CO2 * metric_ton / gigajoule" + }, + { + "year": 2041, + "value": "0.04120364783873651 CO2 * metric_ton / gigajoule" + }, + { + "year": 2042, + "value": "0.04231981549481617 CO2 * metric_ton / gigajoule" + }, + { + "year": 2043, + "value": "0.04346621907178697 CO2 * metric_ton / gigajoule" + }, + { + "year": 2044, + "value": "0.04464367763200675 CO2 * metric_ton / gigajoule" + }, + { + "year": 2045, + "value": "0.04585303242545411 CO2 * metric_ton / gigajoule" + }, + { + "year": 2046, + "value": "0.04709514749076997 CO2 * metric_ton / gigajoule" + }, + { + "year": 2047, + "value": "0.04837091027258076 CO2 * metric_ton / gigajoule" + }, + { + "year": 2048, + "value": "0.049681232255544334 CO2 * metric_ton / gigajoule" + }, + { + "year": 2049, + "value": "0.05102704961557157 CO2 * metric_ton / gigajoule" + }, + { + "year": 2050, + "value": "0.05240932388868893 CO2 * metric_ton / gigajoule" + } + ] + }, + "S1S2": { + "ei_metric": { + "units": "CO2\u00b7t/GJ" + }, + "projections": [ + { + "year": 2019, + "value": "0.32885410556364697 CO2 * metric_ton / gigajoule" + }, + { + "year": 2020, + "value": "0.24267537955382834 CO2 * metric_ton / gigajoule" + }, + { + "year": 2021, + "value": "0.24267537955382834 CO2 * metric_ton / gigajoule" + }, + { + "year": 2022, + "value": "0.24332936405312833 CO2 * metric_ton / gigajoule" + }, + { + "year": 2023, + "value": "0.24400106437090519 CO2 * metric_ton / gigajoule" + }, + { + "year": 2024, + "value": "0.24469096041184266 CO2 * metric_ton / gigajoule" + }, + { + "year": 2025, + "value": "0.2453995450807862 CO2 * metric_ton / gigajoule" + }, + { + "year": 2026, + "value": "0.24612732463490505 CO2 * metric_ton / gigajoule" + }, + { + "year": 2027, + "value": "0.246874819045394 CO2 * metric_ton / gigajoule" + }, + { + "year": 2028, + "value": "0.2476425623689732 CO2 * metric_ton / gigajoule" + }, + { + "year": 2029, + "value": "0.24843110312945177 CO2 * metric_ton / gigajoule" + }, + { + "year": 2030, + "value": "0.24924100470962746 CO2 * metric_ton / gigajoule" + }, + { + "year": 2031, + "value": "0.25007284575380245 CO2 * metric_ton / gigajoule" + }, + { + "year": 2032, + "value": "0.25092722058120326 CO2 * metric_ton / gigajoule" + }, + { + "year": 2033, + "value": "0.25180473961059907 CO2 * metric_ton / gigajoule" + }, + { + "year": 2034, + "value": "0.2527060297964236 CO2 * metric_ton / gigajoule" + }, + { + "year": 2035, + "value": "0.25363173507671 CO2 * metric_ton / gigajoule" + }, + { + "year": 2036, + "value": "0.25458251683316097 CO2 * metric_ton / gigajoule" + }, + { + "year": 2037, + "value": "0.2555590543636806 CO2 * metric_ton / gigajoule" + }, + { + "year": 2038, + "value": "0.2565620453677077 CO2 * metric_ton / gigajoule" + }, + { + "year": 2039, + "value": "0.2575922064446957 CO2 * metric_ton / gigajoule" + }, + { + "year": 2040, + "value": "0.25865027360609616 CO2 * metric_ton / gigajoule" + }, + { + "year": 2041, + "value": "0.2597370028012111 CO2 * metric_ton / gigajoule" + }, + { + "year": 2042, + "value": "0.26085317045729073 CO2 * metric_ton / gigajoule" + }, + { + "year": 2043, + "value": "0.26199957403426155 CO2 * metric_ton / gigajoule" + }, + { + "year": 2044, + "value": "0.26317703259448133 CO2 * metric_ton / gigajoule" + }, + { + "year": 2045, + "value": "0.2643863873879287 CO2 * metric_ton / gigajoule" + }, + { + "year": 2046, + "value": "0.26562850245324454 CO2 * metric_ton / gigajoule" + }, + { + "year": 2047, + "value": "0.26690426523505534 CO2 * metric_ton / gigajoule" + }, + { + "year": 2048, + "value": "0.26821458721801894 CO2 * metric_ton / gigajoule" + }, + { + "year": 2049, + "value": "0.26956040457804614 CO2 * metric_ton / gigajoule" + }, + { + "year": 2050, + "value": "0.2709426788511635 CO2 * metric_ton / gigajoule" + } + ] + }, + "S3": null, + "S1S2S3": null + } + }, + { + "company_name": "Company AL", + "company_id": "US1266501006", + "region": "Europe", + "sector": "Electricity Utilities", + "target_probability": 0.4285714285714285, + "target_data": null, + "historic_data": { + "productions": [ + { + "year": 2009, + "value": "nan gigajoule" + }, + { + "year": 2010, + "value": "4341600001.354788 gigajoule" + }, + { + "year": 2011, + "value": "6026400001.354788 gigajoule" + }, + { + "year": 2012, + "value": "6039360001.354788 gigajoule" + }, + { + "year": 2013, + "value": "6207840001.354788 gigajoule" + }, + { + "year": 2014, + "value": "6091200001.354788 gigajoule" + }, + { + "year": 2015, + "value": "6363360001.354788 gigajoule" + }, + { + "year": 2016, + "value": "3563902801.354802 gigajoule" + }, + { + "year": 2017, + "value": "764445601.3548025 gigajoule" + }, + { + "year": 2018, + "value": "739614241.3548025 gigajoule" + }, + { + "year": 2019, + "value": "797765761.3548025 gigajoule" + }, + { + "year": 2020, + "value": "718528321.3548025 gigajoule" + }, + { + "year": 2021, + "value": "718528321.3548025 gigajoule" + } + ], + "emissions": { + "S1": [ + { + "year": 2009, + "value": "nan CO2 * metric_ton" + }, + { + "year": 2010, + "value": "109324454.376334 CO2 * metric_ton" + }, + { + "year": 2011, + "value": "156899254.376334 CO2 * metric_ton" + }, + { + "year": 2012, + "value": "154230874.376334 CO2 * metric_ton" + }, + { + "year": 2013, + "value": "141984778.376334 CO2 * metric_ton" + }, + { + "year": 2014, + "value": "131154736.376334 CO2 * metric_ton" + }, + { + "year": 2015, + "value": "133757296.376334 CO2 * metric_ton" + }, + { + "year": 2016, + "value": "120150105.376334 CO2 * metric_ton" + }, + { + "year": 2017, + "value": "89756230.3763341 CO2 * metric_ton" + }, + { + "year": 2018, + "value": "57205670.3763341 CO2 * metric_ton" + }, + { + "year": 2019, + "value": "46188978.3763341 CO2 * metric_ton" + }, + { + "year": 2020, + "value": "38589016.3763341 CO2 * metric_ton" + }, + { + "year": 2021, + "value": "38589016.3763341 CO2 * metric_ton" + } + ], + "S2": [ + { + "year": 2009, + "value": "nan CO2 * metric_ton" + }, + { + "year": 2010, + "value": "3250751.37633413 CO2 * metric_ton" + }, + { + "year": 2011, + "value": "3357343.37633413 CO2 * metric_ton" + }, + { + "year": 2012, + "value": "3712790.37633413 CO2 * metric_ton" + }, + { + "year": 2013, + "value": "3748376.12633413 CO2 * metric_ton" + }, + { + "year": 2014, + "value": "3783961.87633413 CO2 * metric_ton" + }, + { + "year": 2015, + "value": "3819547.62633413 CO2 * metric_ton" + }, + { + "year": 2016, + "value": "3855133.37633413 CO2 * metric_ton" + }, + { + "year": 2017, + "value": "3576861.37633413 CO2 * metric_ton" + }, + { + "year": 2018, + "value": "2912586.37633413 CO2 * metric_ton" + }, + { + "year": 2019, + "value": "2534464.37633413 CO2 * metric_ton" + }, + { + "year": 2020, + "value": "2330625.37633413 CO2 * metric_ton" + }, + { + "year": 2021, + "value": "2330625.37633413 CO2 * metric_ton" + } + ], + "S1S2": [], + "S3": [], + "S1S2S3": [] + }, + "emissions_intensities": { + "S1": [ + { + "year": 2009, + "value": "nan CO2 * metric_ton / gigajoule" + }, + { + "year": 2010, + "value": "0.3263416547528934 CO2 * metric_ton / gigajoule" + }, + { + "year": 2011, + "value": "0.33741775127109996 CO2 * metric_ton / gigajoule" + }, + { + "year": 2012, + "value": "0.3309675415058707 CO2 * metric_ton / gigajoule" + }, + { + "year": 2013, + "value": "0.2964191614725413 CO2 * metric_ton / gigajoule" + }, + { + "year": 2014, + "value": "0.2790526305258781 CO2 * metric_ton / gigajoule" + }, + { + "year": 2015, + "value": "0.27241811883473793 CO2 * metric_ton / gigajoule" + }, + { + "year": 2016, + "value": "0.4369213899675792 CO2 * metric_ton / gigajoule" + }, + { + "year": 2017, + "value": "1.521678905098956 CO2 * metric_ton / gigajoule" + }, + { + "year": 2018, + "value": "1.0023948250634593 CO2 * metric_ton / gigajoule" + }, + { + "year": 2019, + "value": "0.750357045582786 CO2 * metric_ton / gigajoule" + }, + { + "year": 2020, + "value": "0.6960249684999396 CO2 * metric_ton / gigajoule" + }, + { + "year": 2021, + "value": "0.6960249684999396 CO2 * metric_ton / gigajoule" + } + ], + "S2": [ + { + "year": 2009, + "value": "nan CO2 * metric_ton / gigajoule" + }, + { + "year": 2010, + "value": "0.009703735448715611 CO2 * metric_ton / gigajoule" + }, + { + "year": 2011, + "value": "0.007220093280815844 CO2 * metric_ton / gigajoule" + }, + { + "year": 2012, + "value": "0.007967361320818128 CO2 * metric_ton / gigajoule" + }, + { + "year": 2013, + "value": "0.007825419886254877 CO2 * metric_ton / gigajoule" + }, + { + "year": 2014, + "value": "0.008050982713813836 CO2 * metric_ton / gigajoule" + }, + { + "year": 2015, + "value": "0.0077791194002462755 CO2 * metric_ton / gigajoule" + }, + { + "year": 2016, + "value": "0.014019049155408301 CO2 * metric_ton / gigajoule" + }, + { + "year": 2017, + "value": "0.06064018597940113 CO2 * metric_ton / gigajoule" + }, + { + "year": 2018, + "value": "0.05103622581434676 CO2 * metric_ton / gigajoule" + }, + { + "year": 2019, + "value": "0.04117331165166648 CO2 * metric_ton / gigajoule" + }, + { + "year": 2020, + "value": "0.04203718069224924 CO2 * metric_ton / gigajoule" + }, + { + "year": 2021, + "value": "0.04203718069224924 CO2 * metric_ton / gigajoule" + } + ], + "S1S2": [], + "S3": [], + "S1S2S3": [] + } + }, + "country": null, + "emissions_metric": { + "units": "t CO2" + }, + "production_metric": { + "units": "GJ" + }, + "base_year_production": "718528321.3548025 gigajoule", + "ghg_s1s2": "40919641.75266823 CO2 * metric_ton", + "ghg_s3": null, + "industry_level_1": null, + "industry_level_2": null, + "industry_level_3": null, + "industry_level_4": null, + "company_revenue": null, + "company_market_cap": null, + "company_enterprise_value": null, + "company_ev_plus_cash": null, + "company_total_assets": null, + "company_cash_equivalents": null, + "projected_targets": null, + "projected_intensities": { + "S1": { + "ei_metric": { + "units": "CO2\u00b7t/GJ" + }, + "projections": [ + { + "year": 2019, + "value": "0.750357045582786 CO2 * metric_ton / gigajoule" + }, + { + "year": 2020, + "value": "0.6960249684999396 CO2 * metric_ton / gigajoule" + }, + { + "year": 2021, + "value": "0.6960249684999396 CO2 * metric_ton / gigajoule" + }, + { + "year": 2022, + "value": "0.6960249684999396 CO2 * metric_ton / gigajoule" + }, + { + "year": 2023, + "value": "0.6960249684999396 CO2 * metric_ton / gigajoule" + }, + { + "year": 2024, + "value": "0.6960249684999396 CO2 * metric_ton / gigajoule" + }, + { + "year": 2025, + "value": "0.6960249684999396 CO2 * metric_ton / gigajoule" + }, + { + "year": 2026, + "value": "0.6960249684999396 CO2 * metric_ton / gigajoule" + }, + { + "year": 2027, + "value": "0.6960249684999396 CO2 * metric_ton / gigajoule" + }, + { + "year": 2028, + "value": "0.6960249684999396 CO2 * metric_ton / gigajoule" + }, + { + "year": 2029, + "value": "0.6960249684999396 CO2 * metric_ton / gigajoule" + }, + { + "year": 2030, + "value": "0.6960249684999396 CO2 * metric_ton / gigajoule" + }, + { + "year": 2031, + "value": "0.6960249684999396 CO2 * metric_ton / gigajoule" + }, + { + "year": 2032, + "value": "0.6960249684999396 CO2 * metric_ton / gigajoule" + }, + { + "year": 2033, + "value": "0.6960249684999396 CO2 * metric_ton / gigajoule" + }, + { + "year": 2034, + "value": "0.6960249684999396 CO2 * metric_ton / gigajoule" + }, + { + "year": 2035, + "value": "0.6960249684999396 CO2 * metric_ton / gigajoule" + }, + { + "year": 2036, + "value": "0.6960249684999396 CO2 * metric_ton / gigajoule" + }, + { + "year": 2037, + "value": "0.6960249684999396 CO2 * metric_ton / gigajoule" + }, + { + "year": 2038, + "value": "0.6960249684999396 CO2 * metric_ton / gigajoule" + }, + { + "year": 2039, + "value": "0.6960249684999396 CO2 * metric_ton / gigajoule" + }, + { + "year": 2040, + "value": "0.6960249684999396 CO2 * metric_ton / gigajoule" + }, + { + "year": 2041, + "value": "0.6960249684999396 CO2 * metric_ton / gigajoule" + }, + { + "year": 2042, + "value": "0.6960249684999396 CO2 * metric_ton / gigajoule" + }, + { + "year": 2043, + "value": "0.6960249684999396 CO2 * metric_ton / gigajoule" + }, + { + "year": 2044, + "value": "0.6960249684999396 CO2 * metric_ton / gigajoule" + }, + { + "year": 2045, + "value": "0.6960249684999396 CO2 * metric_ton / gigajoule" + }, + { + "year": 2046, + "value": "0.6960249684999396 CO2 * metric_ton / gigajoule" + }, + { + "year": 2047, + "value": "0.6960249684999396 CO2 * metric_ton / gigajoule" + }, + { + "year": 2048, + "value": "0.6960249684999396 CO2 * metric_ton / gigajoule" + }, + { + "year": 2049, + "value": "0.6960249684999396 CO2 * metric_ton / gigajoule" + }, + { + "year": 2050, + "value": "0.6960249684999396 CO2 * metric_ton / gigajoule" + } + ] + }, + "S2": { + "ei_metric": { + "units": "CO2\u00b7t/GJ" + }, + "projections": [ + { + "year": 2019, + "value": "0.04117331165166648 CO2 * metric_ton / gigajoule" + }, + { + "year": 2020, + "value": "0.04203718069224924 CO2 * metric_ton / gigajoule" + }, + { + "year": 2021, + "value": "0.04203718069224924 CO2 * metric_ton / gigajoule" + }, + { + "year": 2022, + "value": "0.04203718069224924 CO2 * metric_ton / gigajoule" + }, + { + "year": 2023, + "value": "0.04203718069224924 CO2 * metric_ton / gigajoule" + }, + { + "year": 2024, + "value": "0.04203718069224924 CO2 * metric_ton / gigajoule" + }, + { + "year": 2025, + "value": "0.04203718069224924 CO2 * metric_ton / gigajoule" + }, + { + "year": 2026, + "value": "0.04203718069224924 CO2 * metric_ton / gigajoule" + }, + { + "year": 2027, + "value": "0.04203718069224924 CO2 * metric_ton / gigajoule" + }, + { + "year": 2028, + "value": "0.04203718069224924 CO2 * metric_ton / gigajoule" + }, + { + "year": 2029, + "value": "0.04203718069224924 CO2 * metric_ton / gigajoule" + }, + { + "year": 2030, + "value": "0.04203718069224924 CO2 * metric_ton / gigajoule" + }, + { + "year": 2031, + "value": "0.04203718069224924 CO2 * metric_ton / gigajoule" + }, + { + "year": 2032, + "value": "0.04203718069224924 CO2 * metric_ton / gigajoule" + }, + { + "year": 2033, + "value": "0.04203718069224924 CO2 * metric_ton / gigajoule" + }, + { + "year": 2034, + "value": "0.04203718069224924 CO2 * metric_ton / gigajoule" + }, + { + "year": 2035, + "value": "0.04203718069224924 CO2 * metric_ton / gigajoule" + }, + { + "year": 2036, + "value": "0.04203718069224924 CO2 * metric_ton / gigajoule" + }, + { + "year": 2037, + "value": "0.04203718069224924 CO2 * metric_ton / gigajoule" + }, + { + "year": 2038, + "value": "0.04203718069224924 CO2 * metric_ton / gigajoule" + }, + { + "year": 2039, + "value": "0.04203718069224924 CO2 * metric_ton / gigajoule" + }, + { + "year": 2040, + "value": "0.04203718069224924 CO2 * metric_ton / gigajoule" + }, + { + "year": 2041, + "value": "0.04203718069224924 CO2 * metric_ton / gigajoule" + }, + { + "year": 2042, + "value": "0.04203718069224924 CO2 * metric_ton / gigajoule" + }, + { + "year": 2043, + "value": "0.04203718069224924 CO2 * metric_ton / gigajoule" + }, + { + "year": 2044, + "value": "0.04203718069224924 CO2 * metric_ton / gigajoule" + }, + { + "year": 2045, + "value": "0.04203718069224924 CO2 * metric_ton / gigajoule" + }, + { + "year": 2046, + "value": "0.04203718069224924 CO2 * metric_ton / gigajoule" + }, + { + "year": 2047, + "value": "0.04203718069224924 CO2 * metric_ton / gigajoule" + }, + { + "year": 2048, + "value": "0.04203718069224924 CO2 * metric_ton / gigajoule" + }, + { + "year": 2049, + "value": "0.04203718069224924 CO2 * metric_ton / gigajoule" + }, + { + "year": 2050, + "value": "0.04203718069224924 CO2 * metric_ton / gigajoule" + } + ] + }, + "S1S2": { + "ei_metric": { + "units": "CO2\u00b7t/GJ" + }, + "projections": [ + { + "year": 2019, + "value": "0.7915303572344525 CO2 * metric_ton / gigajoule" + }, + { + "year": 2020, + "value": "0.7380621491921888 CO2 * metric_ton / gigajoule" + }, + { + "year": 2021, + "value": "0.7380621491921888 CO2 * metric_ton / gigajoule" + }, + { + "year": 2022, + "value": "0.7380621491921888 CO2 * metric_ton / gigajoule" + }, + { + "year": 2023, + "value": "0.7380621491921888 CO2 * metric_ton / gigajoule" + }, + { + "year": 2024, + "value": "0.7380621491921888 CO2 * metric_ton / gigajoule" + }, + { + "year": 2025, + "value": "0.7380621491921888 CO2 * metric_ton / gigajoule" + }, + { + "year": 2026, + "value": "0.7380621491921888 CO2 * metric_ton / gigajoule" + }, + { + "year": 2027, + "value": "0.7380621491921888 CO2 * metric_ton / gigajoule" + }, + { + "year": 2028, + "value": "0.7380621491921888 CO2 * metric_ton / gigajoule" + }, + { + "year": 2029, + "value": "0.7380621491921888 CO2 * metric_ton / gigajoule" + }, + { + "year": 2030, + "value": "0.7380621491921888 CO2 * metric_ton / gigajoule" + }, + { + "year": 2031, + "value": "0.7380621491921888 CO2 * metric_ton / gigajoule" + }, + { + "year": 2032, + "value": "0.7380621491921888 CO2 * metric_ton / gigajoule" + }, + { + "year": 2033, + "value": "0.7380621491921888 CO2 * metric_ton / gigajoule" + }, + { + "year": 2034, + "value": "0.7380621491921888 CO2 * metric_ton / gigajoule" + }, + { + "year": 2035, + "value": "0.7380621491921888 CO2 * metric_ton / gigajoule" + }, + { + "year": 2036, + "value": "0.7380621491921888 CO2 * metric_ton / gigajoule" + }, + { + "year": 2037, + "value": "0.7380621491921888 CO2 * metric_ton / gigajoule" + }, + { + "year": 2038, + "value": "0.7380621491921888 CO2 * metric_ton / gigajoule" + }, + { + "year": 2039, + "value": "0.7380621491921888 CO2 * metric_ton / gigajoule" + }, + { + "year": 2040, + "value": "0.7380621491921888 CO2 * metric_ton / gigajoule" + }, + { + "year": 2041, + "value": "0.7380621491921888 CO2 * metric_ton / gigajoule" + }, + { + "year": 2042, + "value": "0.7380621491921888 CO2 * metric_ton / gigajoule" + }, + { + "year": 2043, + "value": "0.7380621491921888 CO2 * metric_ton / gigajoule" + }, + { + "year": 2044, + "value": "0.7380621491921888 CO2 * metric_ton / gigajoule" + }, + { + "year": 2045, + "value": "0.7380621491921888 CO2 * metric_ton / gigajoule" + }, + { + "year": 2046, + "value": "0.7380621491921888 CO2 * metric_ton / gigajoule" + }, + { + "year": 2047, + "value": "0.7380621491921888 CO2 * metric_ton / gigajoule" + }, + { + "year": 2048, + "value": "0.7380621491921888 CO2 * metric_ton / gigajoule" + }, + { + "year": 2049, + "value": "0.7380621491921888 CO2 * metric_ton / gigajoule" + }, + { + "year": 2050, + "value": "0.7380621491921888 CO2 * metric_ton / gigajoule" + } + ] + }, + "S3": null, + "S1S2S3": null + } + }, + { + "company_name": "Company AM", + "company_id": "FR0000120644", + "region": "Europe", + "sector": "Electricity Utilities", + "target_probability": 0.4285714285714285, + "target_data": null, + "historic_data": { + "productions": [ + { + "year": 2009, + "value": "nan gigajoule" + }, + { + "year": 2010, + "value": "1990487529.3093767 gigajoule" + }, + { + "year": 2011, + "value": "1881092169.3093767 gigajoule" + }, + { + "year": 2012, + "value": "1746463689.3093767 gigajoule" + }, + { + "year": 2013, + "value": "1768197609.3093767 gigajoule" + }, + { + "year": 2014, + "value": "1800040329.3093767 gigajoule" + }, + { + "year": 2015, + "value": "1741487049.3093767 gigajoule" + }, + { + "year": 2016, + "value": "1846359369.3093767 gigajoule" + }, + { + "year": 2017, + "value": "1782635049.3093767 gigajoule" + }, + { + "year": 2018, + "value": "1492136649.3093767 gigajoule" + }, + { + "year": 2019, + "value": "1480680009.3093767 gigajoule" + }, + { + "year": 2020, + "value": "1600080489.3093767 gigajoule" + }, + { + "year": 2021, + "value": "1600080489.3093767 gigajoule" + } + ], + "emissions": { + "S1": [ + { + "year": 2009, + "value": "nan CO2 * metric_ton" + }, + { + "year": 2010, + "value": "39499002.5859383 CO2 * metric_ton" + }, + { + "year": 2011, + "value": "36193002.5859383 CO2 * metric_ton" + }, + { + "year": 2012, + "value": "35461094.5859383 CO2 * metric_ton" + }, + { + "year": 2013, + "value": "31838172.5859383 CO2 * metric_ton" + }, + { + "year": 2014, + "value": "30202558.5859383 CO2 * metric_ton" + }, + { + "year": 2015, + "value": "31817606.5859383 CO2 * metric_ton" + }, + { + "year": 2016, + "value": "26625135.5859383 CO2 * metric_ton" + }, + { + "year": 2017, + "value": "15129771.5859383 CO2 * metric_ton" + }, + { + "year": 2018, + "value": "13457443.5859383 CO2 * metric_ton" + }, + { + "year": 2019, + "value": "12966980.5859383 CO2 * metric_ton" + }, + { + "year": 2020, + "value": "13136322.5859383 CO2 * metric_ton" + }, + { + "year": 2021, + "value": "13136322.5859383 CO2 * metric_ton" + } + ], + "S2": [ + { + "year": 2009, + "value": "nan CO2 * metric_ton" + }, + { + "year": 2010, + "value": "6236002.58593829 CO2 * metric_ton" + }, + { + "year": 2011, + "value": "5189002.58593829 CO2 * metric_ton" + }, + { + "year": 2012, + "value": "7189303.58593829 CO2 * metric_ton" + }, + { + "year": 2013, + "value": "4181124.58593829 CO2 * metric_ton" + }, + { + "year": 2014, + "value": "1547095.58593829 CO2 * metric_ton" + }, + { + "year": 2015, + "value": "970947.585938292 CO2 * metric_ton" + }, + { + "year": 2016, + "value": "4503672.58593829 CO2 * metric_ton" + }, + { + "year": 2017, + "value": "5010565.58593829 CO2 * metric_ton" + }, + { + "year": 2018, + "value": "2543866.58593829 CO2 * metric_ton" + }, + { + "year": 2019, + "value": "2081746.58593829 CO2 * metric_ton" + }, + { + "year": 2020, + "value": "2001731.58593829 CO2 * metric_ton" + }, + { + "year": 2021, + "value": "2001731.58593829 CO2 * metric_ton" + } + ], + "S1S2": [], + "S3": [], + "S1S2S3": [] + }, + "emissions_intensities": { + "S1": [ + { + "year": 2009, + "value": "nan CO2 * metric_ton / gigajoule" + }, + { + "year": 2010, + "value": "0.2571767298091901 CO2 * metric_ton / gigajoule" + }, + { + "year": 2011, + "value": "0.2493558376174469 CO2 * metric_ton / gigajoule" + }, + { + "year": 2012, + "value": "0.26314648775520477 CO2 * metric_ton / gigajoule" + }, + { + "year": 2013, + "value": "0.2333578071485585 CO2 * metric_ton / gigajoule" + }, + { + "year": 2014, + "value": "0.21745354973459868 CO2 * metric_ton / gigajoule" + }, + { + "year": 2015, + "value": "0.23678394939387504 CO2 * metric_ton / gigajoule" + }, + { + "year": 2016, + "value": "0.18688764653807832 CO2 * metric_ton / gigajoule" + }, + { + "year": 2017, + "value": "0.10999550347095743 CO2 * metric_ton / gigajoule" + }, + { + "year": 2018, + "value": "0.11688505134867072 CO2 * metric_ton / gigajoule" + }, + { + "year": 2019, + "value": "0.11349654708456793 CO2 * metric_ton / gigajoule" + }, + { + "year": 2020, + "value": "0.1063988604643518 CO2 * metric_ton / gigajoule" + }, + { + "year": 2021, + "value": "0.1063988604643518 CO2 * metric_ton / gigajoule" + } + ], + "S2": [ + { + "year": 2009, + "value": "nan CO2 * metric_ton / gigajoule" + }, + { + "year": 2010, + "value": "0.0406024113809952 CO2 * metric_ton / gigajoule" + }, + { + "year": 2011, + "value": "0.03575022777243828 CO2 * metric_ton / gigajoule" + }, + { + "year": 2012, + "value": "0.05334973469193888 CO2 * metric_ton / gigajoule" + }, + { + "year": 2013, + "value": "0.030645542301646213 CO2 * metric_ton / gigajoule" + }, + { + "year": 2014, + "value": "0.011138838651161208 CO2 * metric_ton / gigajoule" + }, + { + "year": 2015, + "value": "0.007225710187595436 CO2 * metric_ton / gigajoule" + }, + { + "year": 2016, + "value": "0.03161226231683834 CO2 * metric_ton / gigajoule" + }, + { + "year": 2017, + "value": "0.036427495363629124 CO2 * metric_ton / gigajoule" + }, + { + "year": 2018, + "value": "0.02209483358579754 CO2 * metric_ton / gigajoule" + }, + { + "year": 2019, + "value": "0.018220976567613723 CO2 * metric_ton / gigajoule" + }, + { + "year": 2020, + "value": "0.01621321022729142 CO2 * metric_ton / gigajoule" + }, + { + "year": 2021, + "value": "0.01621321022729142 CO2 * metric_ton / gigajoule" + } + ], + "S1S2": [], + "S3": [], + "S1S2S3": [] + } + }, + "country": null, + "emissions_metric": { + "units": "t CO2" + }, + "production_metric": { + "units": "GJ" + }, + "base_year_production": "1600080489.3093767 gigajoule", + "ghg_s1s2": "15138054.171876589 CO2 * metric_ton", + "ghg_s3": null, + "industry_level_1": null, + "industry_level_2": null, + "industry_level_3": null, + "industry_level_4": null, + "company_revenue": null, + "company_market_cap": null, + "company_enterprise_value": null, + "company_ev_plus_cash": null, + "company_total_assets": null, + "company_cash_equivalents": null, + "projected_targets": null, + "projected_intensities": { + "S1": { + "ei_metric": { + "units": "CO2\u00b7t/GJ" + }, + "projections": [ + { + "year": 2019, + "value": "0.11349654708456793 CO2 * metric_ton / gigajoule" + }, + { + "year": 2020, + "value": "0.1063988604643518 CO2 * metric_ton / gigajoule" + }, + { + "year": 2021, + "value": "0.1063988604643518 CO2 * metric_ton / gigajoule" + }, + { + "year": 2022, + "value": "0.103314351468384 CO2 * metric_ton / gigajoule" + }, + { + "year": 2023, + "value": "0.1003192625630514 CO2 * metric_ton / gigajoule" + }, + { + "year": 2024, + "value": "0.09741100145485783 CO2 * metric_ton / gigajoule" + }, + { + "year": 2025, + "value": "0.09458705100104248 CO2 * metric_ton / gigajoule" + }, + { + "year": 2026, + "value": "0.09184496703095586 CO2 * metric_ton / gigajoule" + }, + { + "year": 2027, + "value": "0.08918237623059418 CO2 * metric_ton / gigajoule" + }, + { + "year": 2028, + "value": "0.08659697408846109 CO2 * metric_ton / gigajoule" + }, + { + "year": 2029, + "value": "0.08408652290097922 CO2 * metric_ton / gigajoule" + }, + { + "year": 2030, + "value": "0.08164884983572471 CO2 * metric_ton / gigajoule" + }, + { + "year": 2031, + "value": "0.07928184505080883 CO2 * metric_ton / gigajoule" + }, + { + "year": 2032, + "value": "0.07698345986877882 CO2 * metric_ton / gigajoule" + }, + { + "year": 2033, + "value": "0.07475170500345736 CO2 * metric_ton / gigajoule" + }, + { + "year": 2034, + "value": "0.07258464883818623 CO2 * metric_ton / gigajoule" + }, + { + "year": 2035, + "value": "0.07048041575398359 CO2 * metric_ton / gigajoule" + }, + { + "year": 2036, + "value": "0.06843718450616819 CO2 * metric_ton / gigajoule" + }, + { + "year": 2037, + "value": "0.06645318664804535 CO2 * metric_ton / gigajoule" + }, + { + "year": 2038, + "value": "0.0645267050002903 CO2 * metric_ton / gigajoule" + }, + { + "year": 2039, + "value": "0.06265607216470423 CO2 * metric_ton / gigajoule" + }, + { + "year": 2040, + "value": "0.06083966908105664 CO2 * metric_ton / gigajoule" + }, + { + "year": 2041, + "value": "0.059075923625764866 CO2 * metric_ton / gigajoule" + }, + { + "year": 2042, + "value": "0.057363309251198036 CO2 * metric_ton / gigajoule" + }, + { + "year": 2043, + "value": "0.05570034366442762 CO2 * metric_ton / gigajoule" + }, + { + "year": 2044, + "value": "0.054085587544281125 CO2 * metric_ton / gigajoule" + }, + { + "year": 2045, + "value": "0.052517643295588404 CO2 * metric_ton / gigajoule" + }, + { + "year": 2046, + "value": "0.05099515383954254 CO2 * metric_ton / gigajoule" + }, + { + "year": 2047, + "value": "0.04951680143912814 CO2 * metric_ton / gigajoule" + }, + { + "year": 2048, + "value": "0.04808130655860059 CO2 * metric_ton / gigajoule" + }, + { + "year": 2049, + "value": "0.04668742675602903 CO2 * metric_ton / gigajoule" + }, + { + "year": 2050, + "value": "0.045333955607944613 CO2 * metric_ton / gigajoule" + } + ] + }, + "S2": { + "ei_metric": { + "units": "CO2\u00b7t/GJ" + }, + "projections": [ + { + "year": 2019, + "value": "0.018220976567613723 CO2 * metric_ton / gigajoule" + }, + { + "year": 2020, + "value": "0.01621321022729142 CO2 * metric_ton / gigajoule" + }, + { + "year": 2021, + "value": "0.01621321022729142 CO2 * metric_ton / gigajoule" + }, + { + "year": 2022, + "value": "0.014591889204562279 CO2 * metric_ton / gigajoule" + }, + { + "year": 2023, + "value": "0.013132700284106052 CO2 * metric_ton / gigajoule" + }, + { + "year": 2024, + "value": "0.011819430255695446 CO2 * metric_ton / gigajoule" + }, + { + "year": 2025, + "value": "0.010637487230125902 CO2 * metric_ton / gigajoule" + }, + { + "year": 2026, + "value": "0.009573738507113311 CO2 * metric_ton / gigajoule" + }, + { + "year": 2027, + "value": "0.008616364656401981 CO2 * metric_ton / gigajoule" + }, + { + "year": 2028, + "value": "0.007754728190761783 CO2 * metric_ton / gigajoule" + }, + { + "year": 2029, + "value": "0.006979255371685604 CO2 * metric_ton / gigajoule" + }, + { + "year": 2030, + "value": "0.0062813298345170444 CO2 * metric_ton / gigajoule" + }, + { + "year": 2031, + "value": "0.00565319685106534 CO2 * metric_ton / gigajoule" + }, + { + "year": 2032, + "value": "0.005087877165958806 CO2 * metric_ton / gigajoule" + }, + { + "year": 2033, + "value": "0.004579089449362925 CO2 * metric_ton / gigajoule" + }, + { + "year": 2034, + "value": "0.004121180504426633 CO2 * metric_ton / gigajoule" + }, + { + "year": 2035, + "value": "0.0037090624539839697 CO2 * metric_ton / gigajoule" + }, + { + "year": 2036, + "value": "0.003338156208585573 CO2 * metric_ton / gigajoule" + }, + { + "year": 2037, + "value": "0.003004340587727016 CO2 * metric_ton / gigajoule" + }, + { + "year": 2038, + "value": "0.0027039065289543142 CO2 * metric_ton / gigajoule" + }, + { + "year": 2039, + "value": "0.002433515876058883 CO2 * metric_ton / gigajoule" + }, + { + "year": 2040, + "value": "0.0021901642884529946 CO2 * metric_ton / gigajoule" + }, + { + "year": 2041, + "value": "0.0019711478596076953 CO2 * metric_ton / gigajoule" + }, + { + "year": 2042, + "value": "0.0017740330736469257 CO2 * metric_ton / gigajoule" + }, + { + "year": 2043, + "value": "0.0015966297662822332 CO2 * metric_ton / gigajoule" + }, + { + "year": 2044, + "value": "0.00143696678965401 CO2 * metric_ton / gigajoule" + }, + { + "year": 2045, + "value": "0.001293270110688609 CO2 * metric_ton / gigajoule" + }, + { + "year": 2046, + "value": "0.001163943099619748 CO2 * metric_ton / gigajoule" + }, + { + "year": 2047, + "value": "0.0010475487896577731 CO2 * metric_ton / gigajoule" + }, + { + "year": 2048, + "value": "0.0009427939106919958 CO2 * metric_ton / gigajoule" + }, + { + "year": 2049, + "value": "0.0008485145196227963 CO2 * metric_ton / gigajoule" + }, + { + "year": 2050, + "value": "0.0007636630676605167 CO2 * metric_ton / gigajoule" + } + ] + }, + "S1S2": { + "ei_metric": { + "units": "CO2\u00b7t/GJ" + }, + "projections": [ + { + "year": 2019, + "value": "0.13171752365218165 CO2 * metric_ton / gigajoule" + }, + { + "year": 2020, + "value": "0.12261207069164323 CO2 * metric_ton / gigajoule" + }, + { + "year": 2021, + "value": "0.12261207069164323 CO2 * metric_ton / gigajoule" + }, + { + "year": 2022, + "value": "0.11790624067294628 CO2 * metric_ton / gigajoule" + }, + { + "year": 2023, + "value": "0.11345196284715746 CO2 * metric_ton / gigajoule" + }, + { + "year": 2024, + "value": "0.10923043171055327 CO2 * metric_ton / gigajoule" + }, + { + "year": 2025, + "value": "0.10522453823116838 CO2 * metric_ton / gigajoule" + }, + { + "year": 2026, + "value": "0.10141870553806917 CO2 * metric_ton / gigajoule" + }, + { + "year": 2027, + "value": "0.09779874088699615 CO2 * metric_ton / gigajoule" + }, + { + "year": 2028, + "value": "0.09435170227922288 CO2 * metric_ton / gigajoule" + }, + { + "year": 2029, + "value": "0.09106577827266482 CO2 * metric_ton / gigajoule" + }, + { + "year": 2030, + "value": "0.08793017967024175 CO2 * metric_ton / gigajoule" + }, + { + "year": 2031, + "value": "0.08493504190187418 CO2 * metric_ton / gigajoule" + }, + { + "year": 2032, + "value": "0.08207133703473762 CO2 * metric_ton / gigajoule" + }, + { + "year": 2033, + "value": "0.07933079445282029 CO2 * metric_ton / gigajoule" + }, + { + "year": 2034, + "value": "0.07670582934261286 CO2 * metric_ton / gigajoule" + }, + { + "year": 2035, + "value": "0.07418947820796756 CO2 * metric_ton / gigajoule" + }, + { + "year": 2036, + "value": "0.07177534071475376 CO2 * metric_ton / gigajoule" + }, + { + "year": 2037, + "value": "0.06945752723577236 CO2 * metric_ton / gigajoule" + }, + { + "year": 2038, + "value": "0.06723061152924462 CO2 * metric_ton / gigajoule" + }, + { + "year": 2039, + "value": "0.06508958804076312 CO2 * metric_ton / gigajoule" + }, + { + "year": 2040, + "value": "0.06302983336950964 CO2 * metric_ton / gigajoule" + }, + { + "year": 2041, + "value": "0.06104707148537256 CO2 * metric_ton / gigajoule" + }, + { + "year": 2042, + "value": "0.05913734232484496 CO2 * metric_ton / gigajoule" + }, + { + "year": 2043, + "value": "0.05729697343070986 CO2 * metric_ton / gigajoule" + }, + { + "year": 2044, + "value": "0.05552255433393513 CO2 * metric_ton / gigajoule" + }, + { + "year": 2045, + "value": "0.053810913406277014 CO2 * metric_ton / gigajoule" + }, + { + "year": 2046, + "value": "0.05215909693916229 CO2 * metric_ton / gigajoule" + }, + { + "year": 2047, + "value": "0.050564350228785915 CO2 * metric_ton / gigajoule" + }, + { + "year": 2048, + "value": "0.049024100469292585 CO2 * metric_ton / gigajoule" + }, + { + "year": 2049, + "value": "0.047535941275651826 CO2 * metric_ton / gigajoule" + }, + { + "year": 2050, + "value": "0.04609761867560513 CO2 * metric_ton / gigajoule" + } + ] + }, + "S3": null, + "S1S2S3": null + } + }, + { + "company_name": "Company AN", + "company_id": "US24703L1035", + "region": "Asia", + "sector": "Electricity Utilities", + "target_probability": 0.4285714285714285, + "target_data": null, + "historic_data": { + "productions": [ + { + "year": 2009, + "value": "5271868803.094344 gigajoule" + }, + { + "year": 2010, + "value": "5642576643.094344 gigajoule" + }, + { + "year": 2011, + "value": "5746580643.094344 gigajoule" + }, + { + "year": 2012, + "value": "5808127683.094344 gigajoule" + }, + { + "year": 2013, + "value": "5823226083.094344 gigajoule" + }, + { + "year": 2014, + "value": "5740165443.094344 gigajoule" + }, + { + "year": 2015, + "value": "5610643203.094344 gigajoule" + }, + { + "year": 2016, + "value": "5654577603.094344 gigajoule" + }, + { + "year": 2017, + "value": "5527232643.094344 gigajoule" + }, + { + "year": 2018, + "value": "5421517923.094344 gigajoule" + }, + { + "year": 2019, + "value": "5301547203.094344 gigajoule" + }, + { + "year": 2020, + "value": "5301547203.094344 gigajoule" + }, + { + "year": 2021, + "value": "5301547203.094344 gigajoule" + } + ], + "emissions": { + "S1": [ + { + "year": 2009, + "value": "nan CO2 * metric_ton" + }, + { + "year": 2010, + "value": "nan CO2 * metric_ton" + }, + { + "year": 2011, + "value": "nan CO2 * metric_ton" + }, + { + "year": 2012, + "value": "1174220.85954061 CO2 * metric_ton" + }, + { + "year": 2013, + "value": "1310000.85954061 CO2 * metric_ton" + }, + { + "year": 2014, + "value": "1280000.85954061 CO2 * metric_ton" + }, + { + "year": 2015, + "value": "1150000.85954061 CO2 * metric_ton" + }, + { + "year": 2016, + "value": "1230000.85954061 CO2 * metric_ton" + }, + { + "year": 2017, + "value": "1290000.85954061 CO2 * metric_ton" + }, + { + "year": 2018, + "value": "1170000.85954061 CO2 * metric_ton" + }, + { + "year": 2019, + "value": "910000.859540609 CO2 * metric_ton" + }, + { + "year": 2020, + "value": "910000.859540609 CO2 * metric_ton" + }, + { + "year": 2021, + "value": "910000.859540609 CO2 * metric_ton" + } + ], + "S2": [ + { + "year": 2009, + "value": "nan CO2 * metric_ton" + }, + { + "year": 2010, + "value": "nan CO2 * metric_ton" + }, + { + "year": 2011, + "value": "nan CO2 * metric_ton" + }, + { + "year": 2012, + "value": "132861.859540609 CO2 * metric_ton" + }, + { + "year": 2013, + "value": "120000.859540609 CO2 * metric_ton" + }, + { + "year": 2014, + "value": "140000.859540609 CO2 * metric_ton" + }, + { + "year": 2015, + "value": "160000.859540609 CO2 * metric_ton" + }, + { + "year": 2016, + "value": "170000.859540609 CO2 * metric_ton" + }, + { + "year": 2017, + "value": "180000.859540609 CO2 * metric_ton" + }, + { + "year": 2018, + "value": "190000.859540609 CO2 * metric_ton" + }, + { + "year": 2019, + "value": "190000.859540609 CO2 * metric_ton" + }, + { + "year": 2020, + "value": "190000.859540609 CO2 * metric_ton" + }, + { + "year": 2021, + "value": "190000.859540609 CO2 * metric_ton" + } + ], + "S1S2": [], + "S3": [], + "S1S2S3": [] + }, + "emissions_intensities": { + "S1": [ + { + "year": 2009, + "value": "nan CO2 * metric_ton / gigajoule" + }, + { + "year": 2010, + "value": "nan CO2 * metric_ton / gigajoule" + }, + { + "year": 2011, + "value": "nan CO2 * metric_ton / gigajoule" + }, + { + "year": 2012, + "value": "0.0026201046481710228 CO2 * metric_ton / gigajoule" + }, + { + "year": 2013, + "value": "0.0029154992262681854 CO2 * metric_ton / gigajoule" + }, + { + "year": 2014, + "value": "0.002889953487247187 CO2 * metric_ton / gigajoule" + }, + { + "year": 2015, + "value": "0.0026563819156111223 CO2 * metric_ton / gigajoule" + }, + { + "year": 2016, + "value": "0.0028190984824265257 CO2 * metric_ton / gigajoule" + }, + { + "year": 2017, + "value": "0.003024734477303765 CO2 * metric_ton / gigajoule" + }, + { + "year": 2018, + "value": "0.0027968571449436134 CO2 * metric_ton / gigajoule" + }, + { + "year": 2019, + "value": "0.002224560243991176 CO2 * metric_ton / gigajoule" + }, + { + "year": 2020, + "value": "0.002224560243991176 CO2 * metric_ton / gigajoule" + }, + { + "year": 2021, + "value": "0.002224560243991176 CO2 * metric_ton / gigajoule" + } + ], + "S2": [ + { + "year": 2009, + "value": "nan CO2 * metric_ton / gigajoule" + }, + { + "year": 2010, + "value": "nan CO2 * metric_ton / gigajoule" + }, + { + "year": 2011, + "value": "nan CO2 * metric_ton / gigajoule" + }, + { + "year": 2012, + "value": "0.0002964620947742204 CO2 * metric_ton / gigajoule" + }, + { + "year": 2013, + "value": "0.000267070369148347 CO2 * metric_ton / gigajoule" + }, + { + "year": 2014, + "value": "0.00031609039105817065 CO2 * metric_ton / gigajoule" + }, + { + "year": 2015, + "value": "0.000369585280080306 CO2 * metric_ton / gigajoule" + }, + { + "year": 2016, + "value": "0.0003896331953142924 CO2 * metric_ton / gigajoule" + }, + { + "year": 2017, + "value": "0.00042205770776825637 CO2 * metric_ton / gigajoule" + }, + { + "year": 2018, + "value": "0.000454192197568326 CO2 * metric_ton / gigajoule" + }, + { + "year": 2019, + "value": "0.0004644702848649636 CO2 * metric_ton / gigajoule" + }, + { + "year": 2020, + "value": "0.0004644702848649636 CO2 * metric_ton / gigajoule" + }, + { + "year": 2021, + "value": "0.0004644702848649636 CO2 * metric_ton / gigajoule" + } + ], + "S1S2": [], + "S3": [], + "S1S2S3": [] + } + }, + "country": null, + "emissions_metric": { + "units": "t CO2" + }, + "production_metric": { + "units": "GJ" + }, + "base_year_production": "5301547203.094344 gigajoule", + "ghg_s1s2": "1100001.719081218 CO2 * metric_ton", + "ghg_s3": null, + "industry_level_1": null, + "industry_level_2": null, + "industry_level_3": null, + "industry_level_4": null, + "company_revenue": null, + "company_market_cap": null, + "company_enterprise_value": null, + "company_ev_plus_cash": null, + "company_total_assets": null, + "company_cash_equivalents": null, + "projected_targets": null, + "projected_intensities": { + "S1": { + "ei_metric": { + "units": "CO2\u00b7t/GJ" + }, + "projections": [ + { + "year": 2019, + "value": "0.002224560243991176 CO2 * metric_ton / gigajoule" + }, + { + "year": 2020, + "value": "0.002224560243991176 CO2 * metric_ton / gigajoule" + }, + { + "year": 2021, + "value": "0.002224560243991176 CO2 * metric_ton / gigajoule" + }, + { + "year": 2022, + "value": "0.002224560243991176 CO2 * metric_ton / gigajoule" + }, + { + "year": 2023, + "value": "0.002224560243991176 CO2 * metric_ton / gigajoule" + }, + { + "year": 2024, + "value": "0.002224560243991176 CO2 * metric_ton / gigajoule" + }, + { + "year": 2025, + "value": "0.002224560243991176 CO2 * metric_ton / gigajoule" + }, + { + "year": 2026, + "value": "0.002224560243991176 CO2 * metric_ton / gigajoule" + }, + { + "year": 2027, + "value": "0.002224560243991176 CO2 * metric_ton / gigajoule" + }, + { + "year": 2028, + "value": "0.002224560243991176 CO2 * metric_ton / gigajoule" + }, + { + "year": 2029, + "value": "0.002224560243991176 CO2 * metric_ton / gigajoule" + }, + { + "year": 2030, + "value": "0.002224560243991176 CO2 * metric_ton / gigajoule" + }, + { + "year": 2031, + "value": "0.002224560243991176 CO2 * metric_ton / gigajoule" + }, + { + "year": 2032, + "value": "0.002224560243991176 CO2 * metric_ton / gigajoule" + }, + { + "year": 2033, + "value": "0.002224560243991176 CO2 * metric_ton / gigajoule" + }, + { + "year": 2034, + "value": "0.002224560243991176 CO2 * metric_ton / gigajoule" + }, + { + "year": 2035, + "value": "0.002224560243991176 CO2 * metric_ton / gigajoule" + }, + { + "year": 2036, + "value": "0.002224560243991176 CO2 * metric_ton / gigajoule" + }, + { + "year": 2037, + "value": "0.002224560243991176 CO2 * metric_ton / gigajoule" + }, + { + "year": 2038, + "value": "0.002224560243991176 CO2 * metric_ton / gigajoule" + }, + { + "year": 2039, + "value": "0.002224560243991176 CO2 * metric_ton / gigajoule" + }, + { + "year": 2040, + "value": "0.002224560243991176 CO2 * metric_ton / gigajoule" + }, + { + "year": 2041, + "value": "0.002224560243991176 CO2 * metric_ton / gigajoule" + }, + { + "year": 2042, + "value": "0.002224560243991176 CO2 * metric_ton / gigajoule" + }, + { + "year": 2043, + "value": "0.002224560243991176 CO2 * metric_ton / gigajoule" + }, + { + "year": 2044, + "value": "0.002224560243991176 CO2 * metric_ton / gigajoule" + }, + { + "year": 2045, + "value": "0.002224560243991176 CO2 * metric_ton / gigajoule" + }, + { + "year": 2046, + "value": "0.002224560243991176 CO2 * metric_ton / gigajoule" + }, + { + "year": 2047, + "value": "0.002224560243991176 CO2 * metric_ton / gigajoule" + }, + { + "year": 2048, + "value": "0.002224560243991176 CO2 * metric_ton / gigajoule" + }, + { + "year": 2049, + "value": "0.002224560243991176 CO2 * metric_ton / gigajoule" + }, + { + "year": 2050, + "value": "0.002224560243991176 CO2 * metric_ton / gigajoule" + } + ] + }, + "S2": { + "ei_metric": { + "units": "CO2\u00b7t/GJ" + }, + "projections": [ + { + "year": 2019, + "value": "0.0004644702848649636 CO2 * metric_ton / gigajoule" + }, + { + "year": 2020, + "value": "0.0004644702848649636 CO2 * metric_ton / gigajoule" + }, + { + "year": 2021, + "value": "0.0004644702848649636 CO2 * metric_ton / gigajoule" + }, + { + "year": 2022, + "value": "0.00047840439341091255 CO2 * metric_ton / gigajoule" + }, + { + "year": 2023, + "value": "0.00049275652521324 CO2 * metric_ton / gigajoule" + }, + { + "year": 2024, + "value": "0.0005075392209696372 CO2 * metric_ton / gigajoule" + }, + { + "year": 2025, + "value": "0.0005227653975987263 CO2 * metric_ton / gigajoule" + }, + { + "year": 2026, + "value": "0.0005384483595266881 CO2 * metric_ton / gigajoule" + }, + { + "year": 2027, + "value": "0.0005546018103124888 CO2 * metric_ton / gigajoule" + }, + { + "year": 2028, + "value": "0.0005712398646218636 CO2 * metric_ton / gigajoule" + }, + { + "year": 2029, + "value": "0.0005883770605605194 CO2 * metric_ton / gigajoule" + }, + { + "year": 2030, + "value": "0.000606028372377335 CO2 * metric_ton / gigajoule" + }, + { + "year": 2031, + "value": "0.0006242092235486551 CO2 * metric_ton / gigajoule" + }, + { + "year": 2032, + "value": "0.0006429355002551148 CO2 * metric_ton / gigajoule" + }, + { + "year": 2033, + "value": "0.0006622235652627682 CO2 * metric_ton / gigajoule" + }, + { + "year": 2034, + "value": "0.0006820902722206513 CO2 * metric_ton / gigajoule" + }, + { + "year": 2035, + "value": "0.0007025529803872709 CO2 * metric_ton / gigajoule" + }, + { + "year": 2036, + "value": "0.000723629569798889 CO2 * metric_ton / gigajoule" + }, + { + "year": 2037, + "value": "0.0007453384568928557 CO2 * metric_ton / gigajoule" + }, + { + "year": 2038, + "value": "0.0007676986105996414 CO2 * metric_ton / gigajoule" + }, + { + "year": 2039, + "value": "0.0007907295689176307 CO2 * metric_ton / gigajoule" + }, + { + "year": 2040, + "value": "0.0008144514559851596 CO2 * metric_ton / gigajoule" + }, + { + "year": 2041, + "value": "0.0008388849996647144 CO2 * metric_ton / gigajoule" + }, + { + "year": 2042, + "value": "0.0008640515496546559 CO2 * metric_ton / gigajoule" + }, + { + "year": 2043, + "value": "0.0008899730961442956 CO2 * metric_ton / gigajoule" + }, + { + "year": 2044, + "value": "0.0009166722890286245 CO2 * metric_ton / gigajoule" + }, + { + "year": 2045, + "value": "0.0009441724576994832 CO2 * metric_ton / gigajoule" + }, + { + "year": 2046, + "value": "0.0009724976314304677 CO2 * metric_ton / gigajoule" + }, + { + "year": 2047, + "value": "0.0010016725603733817 CO2 * metric_ton / gigajoule" + }, + { + "year": 2048, + "value": "0.0010317227371845832 CO2 * metric_ton / gigajoule" + }, + { + "year": 2049, + "value": "0.0010626744193001207 CO2 * metric_ton / gigajoule" + }, + { + "year": 2050, + "value": "0.0010945546518791242 CO2 * metric_ton / gigajoule" + } + ] + }, + "S1S2": { + "ei_metric": { + "units": "CO2\u00b7t/GJ" + }, + "projections": [ + { + "year": 2019, + "value": "0.0026890305288561397 CO2 * metric_ton / gigajoule" + }, + { + "year": 2020, + "value": "0.0026890305288561397 CO2 * metric_ton / gigajoule" + }, + { + "year": 2021, + "value": "0.0026890305288561397 CO2 * metric_ton / gigajoule" + }, + { + "year": 2022, + "value": "0.002702964637402089 CO2 * metric_ton / gigajoule" + }, + { + "year": 2023, + "value": "0.0027173167692044163 CO2 * metric_ton / gigajoule" + }, + { + "year": 2024, + "value": "0.0027320994649608133 CO2 * metric_ton / gigajoule" + }, + { + "year": 2025, + "value": "0.0027473256415899024 CO2 * metric_ton / gigajoule" + }, + { + "year": 2026, + "value": "0.002763008603517864 CO2 * metric_ton / gigajoule" + }, + { + "year": 2027, + "value": "0.002779162054303665 CO2 * metric_ton / gigajoule" + }, + { + "year": 2028, + "value": "0.0027958001086130398 CO2 * metric_ton / gigajoule" + }, + { + "year": 2029, + "value": "0.0028129373045516957 CO2 * metric_ton / gigajoule" + }, + { + "year": 2030, + "value": "0.002830588616368511 CO2 * metric_ton / gigajoule" + }, + { + "year": 2031, + "value": "0.002848769467539831 CO2 * metric_ton / gigajoule" + }, + { + "year": 2032, + "value": "0.0028674957442462908 CO2 * metric_ton / gigajoule" + }, + { + "year": 2033, + "value": "0.0028867838092539446 CO2 * metric_ton / gigajoule" + }, + { + "year": 2034, + "value": "0.0029066505162118274 CO2 * metric_ton / gigajoule" + }, + { + "year": 2035, + "value": "0.002927113224378447 CO2 * metric_ton / gigajoule" + }, + { + "year": 2036, + "value": "0.002948189813790065 CO2 * metric_ton / gigajoule" + }, + { + "year": 2037, + "value": "0.0029698987008840317 CO2 * metric_ton / gigajoule" + }, + { + "year": 2038, + "value": "0.0029922588545908176 CO2 * metric_ton / gigajoule" + }, + { + "year": 2039, + "value": "0.003015289812908807 CO2 * metric_ton / gigajoule" + }, + { + "year": 2040, + "value": "0.003039011699976336 CO2 * metric_ton / gigajoule" + }, + { + "year": 2041, + "value": "0.0030634452436558907 CO2 * metric_ton / gigajoule" + }, + { + "year": 2042, + "value": "0.003088611793645832 CO2 * metric_ton / gigajoule" + }, + { + "year": 2043, + "value": "0.003114533340135472 CO2 * metric_ton / gigajoule" + }, + { + "year": 2044, + "value": "0.003141232533019801 CO2 * metric_ton / gigajoule" + }, + { + "year": 2045, + "value": "0.003168732701690659 CO2 * metric_ton / gigajoule" + }, + { + "year": 2046, + "value": "0.0031970578754216437 CO2 * metric_ton / gigajoule" + }, + { + "year": 2047, + "value": "0.003226232804364558 CO2 * metric_ton / gigajoule" + }, + { + "year": 2048, + "value": "0.0032562829811757597 CO2 * metric_ton / gigajoule" + }, + { + "year": 2049, + "value": "0.003287234663291297 CO2 * metric_ton / gigajoule" + }, + { + "year": 2050, + "value": "0.0033191148958703004 CO2 * metric_ton / gigajoule" + } + ] + }, + "S3": null, + "S1S2S3": null + } + }, + { + "company_name": "Company AO", + "company_id": "TW0002308004", + "region": "Europe", + "sector": "Electricity Utilities", + "target_probability": 0.4285714285714285, + "target_data": null, + "historic_data": { + "productions": [ + { + "year": 2009, + "value": "nan gigajoule" + }, + { + "year": 2010, + "value": "nan gigajoule" + }, + { + "year": 2011, + "value": "nan gigajoule" + }, + { + "year": 2012, + "value": "76114085.42779164 gigajoule" + }, + { + "year": 2013, + "value": "76114085.42779164 gigajoule" + }, + { + "year": 2014, + "value": "76114085.42779164 gigajoule" + }, + { + "year": 2015, + "value": "76114085.42779164 gigajoule" + }, + { + "year": 2016, + "value": "76114085.42779164 gigajoule" + }, + { + "year": 2017, + "value": "76114085.42779164 gigajoule" + }, + { + "year": 2018, + "value": "76114085.42779164 gigajoule" + }, + { + "year": 2019, + "value": "76114085.42779164 gigajoule" + }, + { + "year": 2020, + "value": "76114085.42779164 gigajoule" + }, + { + "year": 2021, + "value": "76114085.42779164 gigajoule" + } + ], + "emissions": { + "S1": [ + { + "year": 2009, + "value": "11074001.5077199 CO2 * metric_ton" + }, + { + "year": 2010, + "value": "8500001.50771989 CO2 * metric_ton" + }, + { + "year": 2011, + "value": "9328837.50771989 CO2 * metric_ton" + }, + { + "year": 2012, + "value": "8328346.50771989 CO2 * metric_ton" + }, + { + "year": 2013, + "value": "7914001.50771989 CO2 * metric_ton" + }, + { + "year": 2014, + "value": "7250001.50771989 CO2 * metric_ton" + }, + { + "year": 2015, + "value": "7020001.50771989 CO2 * metric_ton" + }, + { + "year": 2016, + "value": "7038001.50771989 CO2 * metric_ton" + }, + { + "year": 2017, + "value": "5800001.50771989 CO2 * metric_ton" + }, + { + "year": 2018, + "value": "4000001.50771989 CO2 * metric_ton" + }, + { + "year": 2019, + "value": "4500001.50771989 CO2 * metric_ton" + }, + { + "year": 2020, + "value": "4500001.50771989 CO2 * metric_ton" + }, + { + "year": 2021, + "value": "4500001.50771989 CO2 * metric_ton" + } + ], + "S2": [ + { + "year": 2009, + "value": "266001.507719888 CO2 * metric_ton" + }, + { + "year": 2010, + "value": "350001.507719888 CO2 * metric_ton" + }, + { + "year": 2011, + "value": "329353.507719888 CO2 * metric_ton" + }, + { + "year": 2012, + "value": "319181.507719888 CO2 * metric_ton" + }, + { + "year": 2013, + "value": "250001.507719888 CO2 * metric_ton" + }, + { + "year": 2014, + "value": "220001.507719888 CO2 * metric_ton" + }, + { + "year": 2015, + "value": "230001.507719888 CO2 * metric_ton" + }, + { + "year": 2016, + "value": "247001.507719888 CO2 * metric_ton" + }, + { + "year": 2017, + "value": "3400001.50771989 CO2 * metric_ton" + }, + { + "year": 2018, + "value": "2900001.50771989 CO2 * metric_ton" + }, + { + "year": 2019, + "value": "2500001.50771989 CO2 * metric_ton" + }, + { + "year": 2020, + "value": "2500001.50771989 CO2 * metric_ton" + }, + { + "year": 2021, + "value": "2500001.50771989 CO2 * metric_ton" + } + ], + "S1S2": [], + "S3": [], + "S1S2S3": [] + }, + "emissions_intensities": { + "S1": [ + { + "year": 2009, + "value": "nan CO2 * metric_ton / gigajoule" + }, + { + "year": 2010, + "value": "nan CO2 * metric_ton / gigajoule" + }, + { + "year": 2011, + "value": "nan CO2 * metric_ton / gigajoule" + }, + { + "year": 2012, + "value": "1.418073542280774 CO2 * metric_ton / gigajoule" + }, + { + "year": 2013, + "value": "1.3475227214987966 CO2 * metric_ton / gigajoule" + }, + { + "year": 2014, + "value": "1.2344629645348417 CO2 * metric_ton / gigajoule" + }, + { + "year": 2015, + "value": "1.195300699321421 CO2 * metric_ton / gigajoule" + }, + { + "year": 2016, + "value": "1.1983655722511666 CO2 * metric_ton / gigajoule" + }, + { + "year": 2017, + "value": "0.9875704229719812 CO2 * metric_ton / gigajoule" + }, + { + "year": 2018, + "value": "0.6810831299973996 CO2 * metric_ton / gigajoule" + }, + { + "year": 2019, + "value": "0.7662184891570044 CO2 * metric_ton / gigajoule" + }, + { + "year": 2020, + "value": "0.7662184891570044 CO2 * metric_ton / gigajoule" + }, + { + "year": 2021, + "value": "0.7662184891570044 CO2 * metric_ton / gigajoule" + } + ], + "S2": [ + { + "year": 2009, + "value": "nan CO2 * metric_ton / gigajoule" + }, + { + "year": 2010, + "value": "nan CO2 * metric_ton / gigajoule" + }, + { + "year": 2011, + "value": "nan CO2 * metric_ton / gigajoule" + }, + { + "year": 2012, + "value": "0.05434726459367484 CO2 * metric_ton / gigajoule" + }, + { + "year": 2013, + "value": "0.04256793630035172 CO2 * metric_ton / gigajoule" + }, + { + "year": 2014, + "value": "0.037459814750775366 CO2 * metric_ton / gigajoule" + }, + { + "year": 2015, + "value": "0.03916252193396724 CO2 * metric_ton / gigajoule" + }, + { + "year": 2016, + "value": "0.04205712414539412 CO2 * metric_ton / gigajoule" + }, + { + "year": 2017, + "value": "0.5789206990058725 CO2 * metric_ton / gigajoule" + }, + { + "year": 2018, + "value": "0.493785339846264 CO2 * metric_ton / gigajoule" + }, + { + "year": 2019, + "value": "0.4256770525185816 CO2 * metric_ton / gigajoule" + }, + { + "year": 2020, + "value": "0.4256770525185816 CO2 * metric_ton / gigajoule" + }, + { + "year": 2021, + "value": "0.4256770525185816 CO2 * metric_ton / gigajoule" + } + ], + "S1S2": [], + "S3": [], + "S1S2S3": [] + } + }, + "country": null, + "emissions_metric": { + "units": "t CO2" + }, + "production_metric": { + "units": "GJ" + }, + "base_year_production": "76114085.42779164 gigajoule", + "ghg_s1s2": "7000003.01543978 CO2 * metric_ton", + "ghg_s3": null, + "industry_level_1": null, + "industry_level_2": null, + "industry_level_3": null, + "industry_level_4": null, + "company_revenue": null, + "company_market_cap": null, + "company_enterprise_value": null, + "company_ev_plus_cash": null, + "company_total_assets": null, + "company_cash_equivalents": null, + "projected_targets": null, + "projected_intensities": { + "S1": { + "ei_metric": { + "units": "CO2\u00b7t/GJ" + }, + "projections": [ + { + "year": 2019, + "value": "0.7662184891570044 CO2 * metric_ton / gigajoule" + }, + { + "year": 2020, + "value": "0.7662184891570044 CO2 * metric_ton / gigajoule" + }, + { + "year": 2021, + "value": "0.7662184891570044 CO2 * metric_ton / gigajoule" + }, + { + "year": 2022, + "value": "0.7622277738827984 CO2 * metric_ton / gigajoule" + }, + { + "year": 2023, + "value": "0.7582578435526066 CO2 * metric_ton / gigajoule" + }, + { + "year": 2024, + "value": "0.7543085899116757 CO2 * metric_ton / gigajoule" + }, + { + "year": 2025, + "value": "0.7503799052690783 CO2 * metric_ton / gigajoule" + }, + { + "year": 2026, + "value": "0.7464716824947764 CO2 * metric_ton / gigajoule" + }, + { + "year": 2027, + "value": "0.7425838150167001 CO2 * metric_ton / gigajoule" + }, + { + "year": 2028, + "value": "0.7387161968178418 CO2 * metric_ton / gigajoule" + }, + { + "year": 2029, + "value": "0.7348687224333647 CO2 * metric_ton / gigajoule" + }, + { + "year": 2030, + "value": "0.7310412869477271 CO2 * metric_ton / gigajoule" + }, + { + "year": 2031, + "value": "0.7272337859918219 CO2 * metric_ton / gigajoule" + }, + { + "year": 2032, + "value": "0.7234461157401301 CO2 * metric_ton / gigajoule" + }, + { + "year": 2033, + "value": "0.7196781729078897 CO2 * metric_ton / gigajoule" + }, + { + "year": 2034, + "value": "0.7159298547482796 CO2 * metric_ton / gigajoule" + }, + { + "year": 2035, + "value": "0.7122010590496175 CO2 * metric_ton / gigajoule" + }, + { + "year": 2036, + "value": "0.7084916841325726 CO2 * metric_ton / gigajoule" + }, + { + "year": 2037, + "value": "0.7048016288473934 CO2 * metric_ton / gigajoule" + }, + { + "year": 2038, + "value": "0.7011307925711492 CO2 * metric_ton / gigajoule" + }, + { + "year": 2039, + "value": "0.6974790752049861 CO2 * metric_ton / gigajoule" + }, + { + "year": 2040, + "value": "0.6938463771713977 CO2 * metric_ton / gigajoule" + }, + { + "year": 2041, + "value": "0.6902325994115099 CO2 * metric_ton / gigajoule" + }, + { + "year": 2042, + "value": "0.6866376433823792 CO2 * metric_ton / gigajoule" + }, + { + "year": 2043, + "value": "0.6830614110543057 CO2 * metric_ton / gigajoule" + }, + { + "year": 2044, + "value": "0.6795038049081604 CO2 * metric_ton / gigajoule" + }, + { + "year": 2045, + "value": "0.6759647279327254 CO2 * metric_ton / gigajoule" + }, + { + "year": 2046, + "value": "0.6724440836220491 CO2 * metric_ton / gigajoule" + }, + { + "year": 2047, + "value": "0.6689417759728139 CO2 * metric_ton / gigajoule" + }, + { + "year": 2048, + "value": "0.6654577094817191 CO2 * metric_ton / gigajoule" + }, + { + "year": 2049, + "value": "0.661991789142876 CO2 * metric_ton / gigajoule" + }, + { + "year": 2050, + "value": "0.6585439204452178 CO2 * metric_ton / gigajoule" + } + ] + }, + "S2": { + "ei_metric": { + "units": "CO2\u00b7t/GJ" + }, + "projections": [ + { + "year": 2019, + "value": "0.4256770525185816 CO2 * metric_ton / gigajoule" + }, + { + "year": 2020, + "value": "0.4256770525185816 CO2 * metric_ton / gigajoule" + }, + { + "year": 2021, + "value": "0.4256770525185816 CO2 * metric_ton / gigajoule" + }, + { + "year": 2022, + "value": "0.4256770525185816 CO2 * metric_ton / gigajoule" + }, + { + "year": 2023, + "value": "0.4256770525185816 CO2 * metric_ton / gigajoule" + }, + { + "year": 2024, + "value": "0.4256770525185816 CO2 * metric_ton / gigajoule" + }, + { + "year": 2025, + "value": "0.4256770525185816 CO2 * metric_ton / gigajoule" + }, + { + "year": 2026, + "value": "0.4256770525185816 CO2 * metric_ton / gigajoule" + }, + { + "year": 2027, + "value": "0.4256770525185816 CO2 * metric_ton / gigajoule" + }, + { + "year": 2028, + "value": "0.4256770525185816 CO2 * metric_ton / gigajoule" + }, + { + "year": 2029, + "value": "0.4256770525185816 CO2 * metric_ton / gigajoule" + }, + { + "year": 2030, + "value": "0.4256770525185816 CO2 * metric_ton / gigajoule" + }, + { + "year": 2031, + "value": "0.4256770525185816 CO2 * metric_ton / gigajoule" + }, + { + "year": 2032, + "value": "0.4256770525185816 CO2 * metric_ton / gigajoule" + }, + { + "year": 2033, + "value": "0.4256770525185816 CO2 * metric_ton / gigajoule" + }, + { + "year": 2034, + "value": "0.4256770525185816 CO2 * metric_ton / gigajoule" + }, + { + "year": 2035, + "value": "0.4256770525185816 CO2 * metric_ton / gigajoule" + }, + { + "year": 2036, + "value": "0.4256770525185816 CO2 * metric_ton / gigajoule" + }, + { + "year": 2037, + "value": "0.4256770525185816 CO2 * metric_ton / gigajoule" + }, + { + "year": 2038, + "value": "0.4256770525185816 CO2 * metric_ton / gigajoule" + }, + { + "year": 2039, + "value": "0.4256770525185816 CO2 * metric_ton / gigajoule" + }, + { + "year": 2040, + "value": "0.4256770525185816 CO2 * metric_ton / gigajoule" + }, + { + "year": 2041, + "value": "0.4256770525185816 CO2 * metric_ton / gigajoule" + }, + { + "year": 2042, + "value": "0.4256770525185816 CO2 * metric_ton / gigajoule" + }, + { + "year": 2043, + "value": "0.4256770525185816 CO2 * metric_ton / gigajoule" + }, + { + "year": 2044, + "value": "0.4256770525185816 CO2 * metric_ton / gigajoule" + }, + { + "year": 2045, + "value": "0.4256770525185816 CO2 * metric_ton / gigajoule" + }, + { + "year": 2046, + "value": "0.4256770525185816 CO2 * metric_ton / gigajoule" + }, + { + "year": 2047, + "value": "0.4256770525185816 CO2 * metric_ton / gigajoule" + }, + { + "year": 2048, + "value": "0.4256770525185816 CO2 * metric_ton / gigajoule" + }, + { + "year": 2049, + "value": "0.4256770525185816 CO2 * metric_ton / gigajoule" + }, + { + "year": 2050, + "value": "0.4256770525185816 CO2 * metric_ton / gigajoule" + } + ] + }, + "S1S2": { + "ei_metric": { + "units": "CO2\u00b7t/GJ" + }, + "projections": [ + { + "year": 2019, + "value": "1.191895541675586 CO2 * metric_ton / gigajoule" + }, + { + "year": 2020, + "value": "1.191895541675586 CO2 * metric_ton / gigajoule" + }, + { + "year": 2021, + "value": "1.191895541675586 CO2 * metric_ton / gigajoule" + }, + { + "year": 2022, + "value": "1.18790482640138 CO2 * metric_ton / gigajoule" + }, + { + "year": 2023, + "value": "1.1839348960711882 CO2 * metric_ton / gigajoule" + }, + { + "year": 2024, + "value": "1.1799856424302573 CO2 * metric_ton / gigajoule" + }, + { + "year": 2025, + "value": "1.1760569577876598 CO2 * metric_ton / gigajoule" + }, + { + "year": 2026, + "value": "1.172148735013358 CO2 * metric_ton / gigajoule" + }, + { + "year": 2027, + "value": "1.1682608675352817 CO2 * metric_ton / gigajoule" + }, + { + "year": 2028, + "value": "1.1643932493364235 CO2 * metric_ton / gigajoule" + }, + { + "year": 2029, + "value": "1.1605457749519463 CO2 * metric_ton / gigajoule" + }, + { + "year": 2030, + "value": "1.1567183394663088 CO2 * metric_ton / gigajoule" + }, + { + "year": 2031, + "value": "1.1529108385104034 CO2 * metric_ton / gigajoule" + }, + { + "year": 2032, + "value": "1.1491231682587117 CO2 * metric_ton / gigajoule" + }, + { + "year": 2033, + "value": "1.1453552254264714 CO2 * metric_ton / gigajoule" + }, + { + "year": 2034, + "value": "1.1416069072668613 CO2 * metric_ton / gigajoule" + }, + { + "year": 2035, + "value": "1.137878111568199 CO2 * metric_ton / gigajoule" + }, + { + "year": 2036, + "value": "1.1341687366511541 CO2 * metric_ton / gigajoule" + }, + { + "year": 2037, + "value": "1.130478681365975 CO2 * metric_ton / gigajoule" + }, + { + "year": 2038, + "value": "1.1268078450897308 CO2 * metric_ton / gigajoule" + }, + { + "year": 2039, + "value": "1.1231561277235678 CO2 * metric_ton / gigajoule" + }, + { + "year": 2040, + "value": "1.1195234296899794 CO2 * metric_ton / gigajoule" + }, + { + "year": 2041, + "value": "1.1159096519300915 CO2 * metric_ton / gigajoule" + }, + { + "year": 2042, + "value": "1.1123146959009609 CO2 * metric_ton / gigajoule" + }, + { + "year": 2043, + "value": "1.1087384635728874 CO2 * metric_ton / gigajoule" + }, + { + "year": 2044, + "value": "1.105180857426742 CO2 * metric_ton / gigajoule" + }, + { + "year": 2045, + "value": "1.101641780451307 CO2 * metric_ton / gigajoule" + }, + { + "year": 2046, + "value": "1.0981211361406307 CO2 * metric_ton / gigajoule" + }, + { + "year": 2047, + "value": "1.0946188284913956 CO2 * metric_ton / gigajoule" + }, + { + "year": 2048, + "value": "1.0911347620003007 CO2 * metric_ton / gigajoule" + }, + { + "year": 2049, + "value": "1.0876688416614577 CO2 * metric_ton / gigajoule" + }, + { + "year": 2050, + "value": "1.0842209729637995 CO2 * metric_ton / gigajoule" + } + ] + }, + "S3": null, + "S1S2S3": null + } + }, + { + "company_name": "Company AP", + "company_id": "FR0000120321", + "region": "Asia", + "sector": "Electricity Utilities", + "target_probability": 0.4285714285714285, + "target_data": null, + "historic_data": { + "productions": [ + { + "year": 2009, + "value": "nan gigajoule" + }, + { + "year": 2010, + "value": "2836166403.246948 gigajoule" + }, + { + "year": 2011, + "value": "2858198403.246948 gigajoule" + }, + { + "year": 2012, + "value": "2878027203.246948 gigajoule" + }, + { + "year": 2013, + "value": "3007082883.246948 gigajoule" + }, + { + "year": 2014, + "value": "3023360643.246948 gigajoule" + }, + { + "year": 2015, + "value": "3126729603.246948 gigajoule" + }, + { + "year": 2016, + "value": "3136060803.246948 gigajoule" + }, + { + "year": 2017, + "value": "3244017603.246948 gigajoule" + }, + { + "year": 2018, + "value": "3444768003.246948 gigajoule" + }, + { + "year": 2019, + "value": "3556872003.246948 gigajoule" + }, + { + "year": 2020, + "value": "3364675203.246948 gigajoule" + }, + { + "year": 2021, + "value": "3364675203.246948 gigajoule" + } + ], + "emissions": { + "S1": [ + { + "year": 2009, + "value": "nan CO2 * metric_ton" + }, + { + "year": 2010, + "value": "185584163.90193 CO2 * metric_ton" + }, + { + "year": 2011, + "value": "188513981.90193 CO2 * metric_ton" + }, + { + "year": 2012, + "value": "189986958.90193 CO2 * metric_ton" + }, + { + "year": 2013, + "value": "200994691.90193 CO2 * metric_ton" + }, + { + "year": 2014, + "value": "201036494.90193 CO2 * metric_ton" + }, + { + "year": 2015, + "value": "213050961.90193 CO2 * metric_ton" + }, + { + "year": 2016, + "value": "231671486.101929 CO2 * metric_ton" + }, + { + "year": 2017, + "value": "221222495.90193 CO2 * metric_ton" + }, + { + "year": 2018, + "value": "231986764.90193 CO2 * metric_ton" + }, + { + "year": 2019, + "value": "240369173.90193 CO2 * metric_ton" + }, + { + "year": 2020, + "value": "226132940.90193 CO2 * metric_ton" + }, + { + "year": 2021, + "value": "226132940.90193 CO2 * metric_ton" + } + ], + "S2": [ + { + "year": 2009, + "value": "nan CO2 * metric_ton" + }, + { + "year": 2010, + "value": "nan CO2 * metric_ton" + }, + { + "year": 2011, + "value": "nan CO2 * metric_ton" + }, + { + "year": 2012, + "value": "0.901929562977962 CO2 * metric_ton" + }, + { + "year": 2013, + "value": "0.901929562977962 CO2 * metric_ton" + }, + { + "year": 2014, + "value": "0.901929562977962 CO2 * metric_ton" + }, + { + "year": 2015, + "value": "6235.05442956298 CO2 * metric_ton" + }, + { + "year": 2016, + "value": "12469.206929563 CO2 * metric_ton" + }, + { + "year": 2017, + "value": "18703.359429563 CO2 * metric_ton" + }, + { + "year": 2018, + "value": "24937.511929563 CO2 * metric_ton" + }, + { + "year": 2019, + "value": "23268.401929563 CO2 * metric_ton" + }, + { + "year": 2020, + "value": "15845.901929563 CO2 * metric_ton" + }, + { + "year": 2021, + "value": "15845.901929563 CO2 * metric_ton" + } + ], + "S1S2": [], + "S3": [], + "S1S2S3": [] + }, + "emissions_intensities": { + "S1": [ + { + "year": 2009, + "value": "nan CO2 * metric_ton / gigajoule" + }, + { + "year": 2010, + "value": "0.848035842119658 CO2 * metric_ton / gigajoule" + }, + { + "year": 2011, + "value": "0.8547836296716036 CO2 * metric_ton / gigajoule" + }, + { + "year": 2012, + "value": "0.8555273503291261 CO2 * metric_ton / gigajoule" + }, + { + "year": 2013, + "value": "0.8662518820353672 CO2 * metric_ton / gigajoule" + }, + { + "year": 2014, + "value": "0.8617671794294748 CO2 * metric_ton / gigajoule" + }, + { + "year": 2015, + "value": "0.8830761903369287 CO2 * metric_ton / gigajoule" + }, + { + "year": 2016, + "value": "0.95739931342287 CO2 * metric_ton / gigajoule" + }, + { + "year": 2017, + "value": "0.8837940780652285 CO2 * metric_ton / gigajoule" + }, + { + "year": 2018, + "value": "0.8727869250687168 CO2 * metric_ton / gigajoule" + }, + { + "year": 2019, + "value": "0.8758213652122596 CO2 * metric_ton / gigajoule" + }, + { + "year": 2020, + "value": "0.8710151016243313 CO2 * metric_ton / gigajoule" + }, + { + "year": 2021, + "value": "0.8710151016243313 CO2 * metric_ton / gigajoule" + } + ], + "S2": [ + { + "year": 2009, + "value": "nan CO2 * metric_ton / gigajoule" + }, + { + "year": 2010, + "value": "nan CO2 * metric_ton / gigajoule" + }, + { + "year": 2011, + "value": "nan CO2 * metric_ton / gigajoule" + }, + { + "year": 2012, + "value": "4.061465132437621e-09 CO2 * metric_ton / gigajoule" + }, + { + "year": 2013, + "value": "3.887158282638696e-09 CO2 * metric_ton / gigajoule" + }, + { + "year": 2014, + "value": "3.866229840063312e-09 CO2 * metric_ton / gigajoule" + }, + { + "year": 2015, + "value": "2.5843713931394353e-05 CO2 * metric_ton / gigajoule" + }, + { + "year": 2016, + "value": "5.15299070859282e-05 CO2 * metric_ton / gigajoule" + }, + { + "year": 2017, + "value": "7.472078387137044e-05 CO2 * metric_ton / gigajoule" + }, + { + "year": 2018, + "value": "9.382058655401627e-05 CO2 * metric_ton / gigajoule" + }, + { + "year": 2019, + "value": "8.478193444460569e-05 CO2 * metric_ton / gigajoule" + }, + { + "year": 2020, + "value": "6.103498156641072e-05 CO2 * metric_ton / gigajoule" + }, + { + "year": 2021, + "value": "6.103498156641072e-05 CO2 * metric_ton / gigajoule" + } + ], + "S1S2": [], + "S3": [], + "S1S2S3": [] + } + }, + "country": null, + "emissions_metric": { + "units": "t CO2" + }, + "production_metric": { + "units": "GJ" + }, + "base_year_production": "3364675203.246948 gigajoule", + "ghg_s1s2": "226148786.80385956 CO2 * metric_ton", + "ghg_s3": null, + "industry_level_1": null, + "industry_level_2": null, + "industry_level_3": null, + "industry_level_4": null, + "company_revenue": null, + "company_market_cap": null, + "company_enterprise_value": null, + "company_ev_plus_cash": null, + "company_total_assets": null, + "company_cash_equivalents": null, + "projected_targets": null, + "projected_intensities": { + "S1": { + "ei_metric": { + "units": "CO2\u00b7t/GJ" + }, + "projections": [ + { + "year": 2019, + "value": "0.8758213652122596 CO2 * metric_ton / gigajoule" + }, + { + "year": 2020, + "value": "0.8710151016243313 CO2 * metric_ton / gigajoule" + }, + { + "year": 2021, + "value": "0.8710151016243313 CO2 * metric_ton / gigajoule" + }, + { + "year": 2022, + "value": "0.8710151016243313 CO2 * metric_ton / gigajoule" + }, + { + "year": 2023, + "value": "0.8710151016243313 CO2 * metric_ton / gigajoule" + }, + { + "year": 2024, + "value": "0.8710151016243313 CO2 * metric_ton / gigajoule" + }, + { + "year": 2025, + "value": "0.8710151016243313 CO2 * metric_ton / gigajoule" + }, + { + "year": 2026, + "value": "0.8710151016243313 CO2 * metric_ton / gigajoule" + }, + { + "year": 2027, + "value": "0.8710151016243313 CO2 * metric_ton / gigajoule" + }, + { + "year": 2028, + "value": "0.8710151016243313 CO2 * metric_ton / gigajoule" + }, + { + "year": 2029, + "value": "0.8710151016243313 CO2 * metric_ton / gigajoule" + }, + { + "year": 2030, + "value": "0.8710151016243313 CO2 * metric_ton / gigajoule" + }, + { + "year": 2031, + "value": "0.8710151016243313 CO2 * metric_ton / gigajoule" + }, + { + "year": 2032, + "value": "0.8710151016243313 CO2 * metric_ton / gigajoule" + }, + { + "year": 2033, + "value": "0.8710151016243313 CO2 * metric_ton / gigajoule" + }, + { + "year": 2034, + "value": "0.8710151016243313 CO2 * metric_ton / gigajoule" + }, + { + "year": 2035, + "value": "0.8710151016243313 CO2 * metric_ton / gigajoule" + }, + { + "year": 2036, + "value": "0.8710151016243313 CO2 * metric_ton / gigajoule" + }, + { + "year": 2037, + "value": "0.8710151016243313 CO2 * metric_ton / gigajoule" + }, + { + "year": 2038, + "value": "0.8710151016243313 CO2 * metric_ton / gigajoule" + }, + { + "year": 2039, + "value": "0.8710151016243313 CO2 * metric_ton / gigajoule" + }, + { + "year": 2040, + "value": "0.8710151016243313 CO2 * metric_ton / gigajoule" + }, + { + "year": 2041, + "value": "0.8710151016243313 CO2 * metric_ton / gigajoule" + }, + { + "year": 2042, + "value": "0.8710151016243313 CO2 * metric_ton / gigajoule" + }, + { + "year": 2043, + "value": "0.8710151016243313 CO2 * metric_ton / gigajoule" + }, + { + "year": 2044, + "value": "0.8710151016243313 CO2 * metric_ton / gigajoule" + }, + { + "year": 2045, + "value": "0.8710151016243313 CO2 * metric_ton / gigajoule" + }, + { + "year": 2046, + "value": "0.8710151016243313 CO2 * metric_ton / gigajoule" + }, + { + "year": 2047, + "value": "0.8710151016243313 CO2 * metric_ton / gigajoule" + }, + { + "year": 2048, + "value": "0.8710151016243313 CO2 * metric_ton / gigajoule" + }, + { + "year": 2049, + "value": "0.8710151016243313 CO2 * metric_ton / gigajoule" + }, + { + "year": 2050, + "value": "0.8710151016243313 CO2 * metric_ton / gigajoule" + } + ] + }, + "S2": { + "ei_metric": { + "units": "CO2\u00b7t/GJ" + }, + "projections": [ + { + "year": 2019, + "value": "8.478193444460569e-05 CO2 * metric_ton / gigajoule" + }, + { + "year": 2020, + "value": "6.103498156641072e-05 CO2 * metric_ton / gigajoule" + }, + { + "year": 2021, + "value": "6.103498156641072e-05 CO2 * metric_ton / gigajoule" + }, + { + "year": 2022, + "value": "6.103498156641072e-05 CO2 * metric_ton / gigajoule" + }, + { + "year": 2023, + "value": "6.103498156641072e-05 CO2 * metric_ton / gigajoule" + }, + { + "year": 2024, + "value": "6.103498156641072e-05 CO2 * metric_ton / gigajoule" + }, + { + "year": 2025, + "value": "6.103498156641072e-05 CO2 * metric_ton / gigajoule" + }, + { + "year": 2026, + "value": "6.103498156641072e-05 CO2 * metric_ton / gigajoule" + }, + { + "year": 2027, + "value": "6.103498156641072e-05 CO2 * metric_ton / gigajoule" + }, + { + "year": 2028, + "value": "6.103498156641072e-05 CO2 * metric_ton / gigajoule" + }, + { + "year": 2029, + "value": "6.103498156641072e-05 CO2 * metric_ton / gigajoule" + }, + { + "year": 2030, + "value": "6.103498156641072e-05 CO2 * metric_ton / gigajoule" + }, + { + "year": 2031, + "value": "6.103498156641072e-05 CO2 * metric_ton / gigajoule" + }, + { + "year": 2032, + "value": "6.103498156641072e-05 CO2 * metric_ton / gigajoule" + }, + { + "year": 2033, + "value": "6.103498156641072e-05 CO2 * metric_ton / gigajoule" + }, + { + "year": 2034, + "value": "6.103498156641072e-05 CO2 * metric_ton / gigajoule" + }, + { + "year": 2035, + "value": "6.103498156641072e-05 CO2 * metric_ton / gigajoule" + }, + { + "year": 2036, + "value": "6.103498156641072e-05 CO2 * metric_ton / gigajoule" + }, + { + "year": 2037, + "value": "6.103498156641072e-05 CO2 * metric_ton / gigajoule" + }, + { + "year": 2038, + "value": "6.103498156641072e-05 CO2 * metric_ton / gigajoule" + }, + { + "year": 2039, + "value": "6.103498156641072e-05 CO2 * metric_ton / gigajoule" + }, + { + "year": 2040, + "value": "6.103498156641072e-05 CO2 * metric_ton / gigajoule" + }, + { + "year": 2041, + "value": "6.103498156641072e-05 CO2 * metric_ton / gigajoule" + }, + { + "year": 2042, + "value": "6.103498156641072e-05 CO2 * metric_ton / gigajoule" + }, + { + "year": 2043, + "value": "6.103498156641072e-05 CO2 * metric_ton / gigajoule" + }, + { + "year": 2044, + "value": "6.103498156641072e-05 CO2 * metric_ton / gigajoule" + }, + { + "year": 2045, + "value": "6.103498156641072e-05 CO2 * metric_ton / gigajoule" + }, + { + "year": 2046, + "value": "6.103498156641072e-05 CO2 * metric_ton / gigajoule" + }, + { + "year": 2047, + "value": "6.103498156641072e-05 CO2 * metric_ton / gigajoule" + }, + { + "year": 2048, + "value": "6.103498156641072e-05 CO2 * metric_ton / gigajoule" + }, + { + "year": 2049, + "value": "6.103498156641072e-05 CO2 * metric_ton / gigajoule" + }, + { + "year": 2050, + "value": "6.103498156641072e-05 CO2 * metric_ton / gigajoule" + } + ] + }, + "S1S2": { + "ei_metric": { + "units": "CO2\u00b7t/GJ" + }, + "projections": [ + { + "year": 2019, + "value": "0.8759061471467042 CO2 * metric_ton / gigajoule" + }, + { + "year": 2020, + "value": "0.8710761366058977 CO2 * metric_ton / gigajoule" + }, + { + "year": 2021, + "value": "0.8710761366058977 CO2 * metric_ton / gigajoule" + }, + { + "year": 2022, + "value": "0.8710761366058977 CO2 * metric_ton / gigajoule" + }, + { + "year": 2023, + "value": "0.8710761366058977 CO2 * metric_ton / gigajoule" + }, + { + "year": 2024, + "value": "0.8710761366058977 CO2 * metric_ton / gigajoule" + }, + { + "year": 2025, + "value": "0.8710761366058977 CO2 * metric_ton / gigajoule" + }, + { + "year": 2026, + "value": "0.8710761366058977 CO2 * metric_ton / gigajoule" + }, + { + "year": 2027, + "value": "0.8710761366058977 CO2 * metric_ton / gigajoule" + }, + { + "year": 2028, + "value": "0.8710761366058977 CO2 * metric_ton / gigajoule" + }, + { + "year": 2029, + "value": "0.8710761366058977 CO2 * metric_ton / gigajoule" + }, + { + "year": 2030, + "value": "0.8710761366058977 CO2 * metric_ton / gigajoule" + }, + { + "year": 2031, + "value": "0.8710761366058977 CO2 * metric_ton / gigajoule" + }, + { + "year": 2032, + "value": "0.8710761366058977 CO2 * metric_ton / gigajoule" + }, + { + "year": 2033, + "value": "0.8710761366058977 CO2 * metric_ton / gigajoule" + }, + { + "year": 2034, + "value": "0.8710761366058977 CO2 * metric_ton / gigajoule" + }, + { + "year": 2035, + "value": "0.8710761366058977 CO2 * metric_ton / gigajoule" + }, + { + "year": 2036, + "value": "0.8710761366058977 CO2 * metric_ton / gigajoule" + }, + { + "year": 2037, + "value": "0.8710761366058977 CO2 * metric_ton / gigajoule" + }, + { + "year": 2038, + "value": "0.8710761366058977 CO2 * metric_ton / gigajoule" + }, + { + "year": 2039, + "value": "0.8710761366058977 CO2 * metric_ton / gigajoule" + }, + { + "year": 2040, + "value": "0.8710761366058977 CO2 * metric_ton / gigajoule" + }, + { + "year": 2041, + "value": "0.8710761366058977 CO2 * metric_ton / gigajoule" + }, + { + "year": 2042, + "value": "0.8710761366058977 CO2 * metric_ton / gigajoule" + }, + { + "year": 2043, + "value": "0.8710761366058977 CO2 * metric_ton / gigajoule" + }, + { + "year": 2044, + "value": "0.8710761366058977 CO2 * metric_ton / gigajoule" + }, + { + "year": 2045, + "value": "0.8710761366058977 CO2 * metric_ton / gigajoule" + }, + { + "year": 2046, + "value": "0.8710761366058977 CO2 * metric_ton / gigajoule" + }, + { + "year": 2047, + "value": "0.8710761366058977 CO2 * metric_ton / gigajoule" + }, + { + "year": 2048, + "value": "0.8710761366058977 CO2 * metric_ton / gigajoule" + }, + { + "year": 2049, + "value": "0.8710761366058977 CO2 * metric_ton / gigajoule" + }, + { + "year": 2050, + "value": "0.8710761366058977 CO2 * metric_ton / gigajoule" + } + ] + }, + "S3": null, + "S1S2S3": null + } + }, + { + "company_name": "Company AQ", + "company_id": "CH0038863350", + "region": "Asia", + "sector": "Electricity Utilities", + "target_probability": 0.4285714285714285, + "target_data": null, + "historic_data": { + "productions": [ + { + "year": 2009, + "value": "nan gigajoule" + }, + { + "year": 2010, + "value": "125595364.15776384 gigajoule" + }, + { + "year": 2011, + "value": "127565284.15776384 gigajoule" + }, + { + "year": 2012, + "value": "138062884.15776384 gigajoule" + }, + { + "year": 2013, + "value": "203459044.15776384 gigajoule" + }, + { + "year": 2014, + "value": "222847204.15776384 gigajoule" + }, + { + "year": 2015, + "value": "258448324.15776387 gigajoule" + }, + { + "year": 2016, + "value": "260094244.15776387 gigajoule" + }, + { + "year": 2017, + "value": "263023204.15776387 gigajoule" + }, + { + "year": 2018, + "value": "279689764.1577639 gigajoule" + }, + { + "year": 2019, + "value": "262841764.15776387 gigajoule" + }, + { + "year": 2020, + "value": "236895844.15776384 gigajoule" + }, + { + "year": 2021, + "value": "236895844.15776384 gigajoule" + } + ], + "emissions": { + "S1": [ + { + "year": 2009, + "value": "nan CO2 * metric_ton" + }, + { + "year": 2010, + "value": "1968704.15493443 CO2 * metric_ton" + }, + { + "year": 2011, + "value": "2832949.15493443 CO2 * metric_ton" + }, + { + "year": 2012, + "value": "12866001.1549344 CO2 * metric_ton" + }, + { + "year": 2013, + "value": "13663001.1549344 CO2 * metric_ton" + }, + { + "year": 2014, + "value": "14934001.1549344 CO2 * metric_ton" + }, + { + "year": 2015, + "value": "16918001.1549344 CO2 * metric_ton" + }, + { + "year": 2016, + "value": "16977001.1549344 CO2 * metric_ton" + }, + { + "year": 2017, + "value": "17293001.1549344 CO2 * metric_ton" + }, + { + "year": 2018, + "value": "18162001.1549344 CO2 * metric_ton" + }, + { + "year": 2019, + "value": "17976001.1549344 CO2 * metric_ton" + }, + { + "year": 2020, + "value": "16065001.1549344 CO2 * metric_ton" + }, + { + "year": 2021, + "value": "16065001.1549344 CO2 * metric_ton" + } + ], + "S2": [ + { + "year": 2009, + "value": "nan CO2 * metric_ton" + }, + { + "year": 2010, + "value": "52966.1549344293 CO2 * metric_ton" + }, + { + "year": 2011, + "value": "58302.1549344293 CO2 * metric_ton" + }, + { + "year": 2012, + "value": "61001.1549344293 CO2 * metric_ton" + }, + { + "year": 2013, + "value": "202001.154934429 CO2 * metric_ton" + }, + { + "year": 2014, + "value": "130001.154934429 CO2 * metric_ton" + }, + { + "year": 2015, + "value": "409001.154934429 CO2 * metric_ton" + }, + { + "year": 2016, + "value": "1265001.15493443 CO2 * metric_ton" + }, + { + "year": 2017, + "value": "1818001.15493443 CO2 * metric_ton" + }, + { + "year": 2018, + "value": "2090001.15493443 CO2 * metric_ton" + }, + { + "year": 2019, + "value": "2289001.15493443 CO2 * metric_ton" + }, + { + "year": 2020, + "value": "2403001.15493443 CO2 * metric_ton" + }, + { + "year": 2021, + "value": "2403001.15493443 CO2 * metric_ton" + } + ], + "S1S2": [], + "S3": [], + "S1S2S3": [] + }, + "emissions_intensities": { + "S1": [ + { + "year": 2009, + "value": "nan CO2 * metric_ton / gigajoule" + }, + { + "year": 2010, + "value": "0.20314767204226442 CO2 * metric_ton / gigajoule" + }, + { + "year": 2011, + "value": "0.28781357945742975 CO2 * metric_ton / gigajoule" + }, + { + "year": 2012, + "value": "1.207734982396956 CO2 * metric_ton / gigajoule" + }, + { + "year": 2013, + "value": "0.8703102666237157 CO2 * metric_ton / gigajoule" + }, + { + "year": 2014, + "value": "0.8685083382555276 CO2 * metric_ton / gigajoule" + }, + { + "year": 2015, + "value": "0.8483602889764117 CO2 * metric_ton / gigajoule" + }, + { + "year": 2016, + "value": "0.84593158022556 CO2 * metric_ton / gigajoule" + }, + { + "year": 2017, + "value": "0.852081836983182 CO2 * metric_ton / gigajoule" + }, + { + "year": 2018, + "value": "0.841573647418788 CO2 * metric_ton / gigajoule" + }, + { + "year": 2019, + "value": "0.8863468700054724 CO2 * metric_ton / gigajoule" + }, + { + "year": 2020, + "value": "0.8788774480539012 CO2 * metric_ton / gigajoule" + }, + { + "year": 2021, + "value": "0.8788774480539012 CO2 * metric_ton / gigajoule" + } + ], + "S2": [ + { + "year": 2009, + "value": "nan CO2 * metric_ton / gigajoule" + }, + { + "year": 2010, + "value": "0.00546549924476466 CO2 * metric_ton / gigajoule" + }, + { + "year": 2011, + "value": "0.005923209695638932 CO2 * metric_ton / gigajoule" + }, + { + "year": 2012, + "value": "0.0057261947899539594 CO2 * metric_ton / gigajoule" + }, + { + "year": 2013, + "value": "0.012867134900723496 CO2 * metric_ton / gigajoule" + }, + { + "year": 2014, + "value": "0.007560404333174592 CO2 * metric_ton / gigajoule" + }, + { + "year": 2015, + "value": "0.020509535069434367 CO2 * metric_ton / gigajoule" + }, + { + "year": 2016, + "value": "0.06303259428534648 CO2 * metric_ton / gigajoule" + }, + { + "year": 2017, + "value": "0.0895787694602712 CO2 * metric_ton / gigajoule" + }, + { + "year": 2018, + "value": "0.09684449858047572 CO2 * metric_ton / gigajoule" + }, + { + "year": 2019, + "value": "0.1128643123478058 CO2 * metric_ton / gigajoule" + }, + { + "year": 2020, + "value": "0.13146239470207932 CO2 * metric_ton / gigajoule" + }, + { + "year": 2021, + "value": "0.13146239470207932 CO2 * metric_ton / gigajoule" + } + ], + "S1S2": [], + "S3": [], + "S1S2S3": [] + } + }, + "country": null, + "emissions_metric": { + "units": "t CO2" + }, + "production_metric": { + "units": "GJ" + }, + "base_year_production": "236895844.15776384 gigajoule", + "ghg_s1s2": "18468002.30986883 CO2 * metric_ton", + "ghg_s3": null, + "industry_level_1": null, + "industry_level_2": null, + "industry_level_3": null, + "industry_level_4": null, + "company_revenue": null, + "company_market_cap": null, + "company_enterprise_value": null, + "company_ev_plus_cash": null, + "company_total_assets": null, + "company_cash_equivalents": null, + "projected_targets": null, + "projected_intensities": { + "S1": { + "ei_metric": { + "units": "CO2\u00b7t/GJ" + }, + "projections": [ + { + "year": 2019, + "value": "0.8863468700054724 CO2 * metric_ton / gigajoule" + }, + { + "year": 2020, + "value": "0.8788774480539012 CO2 * metric_ton / gigajoule" + }, + { + "year": 2021, + "value": "0.8788774480539012 CO2 * metric_ton / gigajoule" + }, + { + "year": 2022, + "value": "0.8770577818192918 CO2 * metric_ton / gigajoule" + }, + { + "year": 2023, + "value": "0.8752418831010895 CO2 * metric_ton / gigajoule" + }, + { + "year": 2024, + "value": "0.8734297440988639 CO2 * metric_ton / gigajoule" + }, + { + "year": 2025, + "value": "0.8716213570283349 CO2 * metric_ton / gigajoule" + }, + { + "year": 2026, + "value": "0.8698167141213392 CO2 * metric_ton / gigajoule" + }, + { + "year": 2027, + "value": "0.8680158076257973 CO2 * metric_ton / gigajoule" + }, + { + "year": 2028, + "value": "0.8662186298056799 CO2 * metric_ton / gigajoule" + }, + { + "year": 2029, + "value": "0.8644251729409745 CO2 * metric_ton / gigajoule" + }, + { + "year": 2030, + "value": "0.8626354293276527 CO2 * metric_ton / gigajoule" + }, + { + "year": 2031, + "value": "0.8608493912776366 CO2 * metric_ton / gigajoule" + }, + { + "year": 2032, + "value": "0.8590670511187662 CO2 * metric_ton / gigajoule" + }, + { + "year": 2033, + "value": "0.8572884011947663 CO2 * metric_ton / gigajoule" + }, + { + "year": 2034, + "value": "0.8555134338652136 CO2 * metric_ton / gigajoule" + }, + { + "year": 2035, + "value": "0.8537421415055036 CO2 * metric_ton / gigajoule" + }, + { + "year": 2036, + "value": "0.8519745165068185 CO2 * metric_ton / gigajoule" + }, + { + "year": 2037, + "value": "0.8502105512760939 CO2 * metric_ton / gigajoule" + }, + { + "year": 2038, + "value": "0.8484502382359863 CO2 * metric_ton / gigajoule" + }, + { + "year": 2039, + "value": "0.846693569824841 CO2 * metric_ton / gigajoule" + }, + { + "year": 2040, + "value": "0.844940538496659 CO2 * metric_ton / gigajoule" + }, + { + "year": 2041, + "value": "0.8431911367210649 CO2 * metric_ton / gigajoule" + }, + { + "year": 2042, + "value": "0.8414453569832747 CO2 * metric_ton / gigajoule" + }, + { + "year": 2043, + "value": "0.8397031917840633 CO2 * metric_ton / gigajoule" + }, + { + "year": 2044, + "value": "0.837964633639732 CO2 * metric_ton / gigajoule" + }, + { + "year": 2045, + "value": "0.836229675082077 CO2 * metric_ton / gigajoule" + }, + { + "year": 2046, + "value": "0.8344983086583571 CO2 * metric_ton / gigajoule" + }, + { + "year": 2047, + "value": "0.8327705269312611 CO2 * metric_ton / gigajoule" + }, + { + "year": 2048, + "value": "0.8310463224788768 CO2 * metric_ton / gigajoule" + }, + { + "year": 2049, + "value": "0.8293256878946584 CO2 * metric_ton / gigajoule" + }, + { + "year": 2050, + "value": "0.8276086157873951 CO2 * metric_ton / gigajoule" + } + ] + }, + "S2": { + "ei_metric": { + "units": "CO2\u00b7t/GJ" + }, + "projections": [ + { + "year": 2019, + "value": "0.1128643123478058 CO2 * metric_ton / gigajoule" + }, + { + "year": 2020, + "value": "0.13146239470207932 CO2 * metric_ton / gigajoule" + }, + { + "year": 2021, + "value": "0.13146239470207932 CO2 * metric_ton / gigajoule" + }, + { + "year": 2022, + "value": "0.1354062665431417 CO2 * metric_ton / gigajoule" + }, + { + "year": 2023, + "value": "0.13946845453943596 CO2 * metric_ton / gigajoule" + }, + { + "year": 2024, + "value": "0.14365250817561903 CO2 * metric_ton / gigajoule" + }, + { + "year": 2025, + "value": "0.1479620834208876 CO2 * metric_ton / gigajoule" + }, + { + "year": 2026, + "value": "0.15240094592351422 CO2 * metric_ton / gigajoule" + }, + { + "year": 2027, + "value": "0.15697297430121965 CO2 * metric_ton / gigajoule" + }, + { + "year": 2028, + "value": "0.16168216353025625 CO2 * metric_ton / gigajoule" + }, + { + "year": 2029, + "value": "0.16653262843616393 CO2 * metric_ton / gigajoule" + }, + { + "year": 2030, + "value": "0.17152860728924885 CO2 * metric_ton / gigajoule" + }, + { + "year": 2031, + "value": "0.17667446550792631 CO2 * metric_ton / gigajoule" + }, + { + "year": 2032, + "value": "0.1819746994731641 CO2 * metric_ton / gigajoule" + }, + { + "year": 2033, + "value": "0.18743394045735903 CO2 * metric_ton / gigajoule" + }, + { + "year": 2034, + "value": "0.1930569586710798 CO2 * metric_ton / gigajoule" + }, + { + "year": 2035, + "value": "0.1988486674312122 CO2 * metric_ton / gigajoule" + }, + { + "year": 2036, + "value": "0.2048141274541486 CO2 * metric_ton / gigajoule" + }, + { + "year": 2037, + "value": "0.21095855127777305 CO2 * metric_ton / gigajoule" + }, + { + "year": 2038, + "value": "0.21728730781610625 CO2 * metric_ton / gigajoule" + }, + { + "year": 2039, + "value": "0.22380592705058944 CO2 * metric_ton / gigajoule" + }, + { + "year": 2040, + "value": "0.23052010486210714 CO2 * metric_ton / gigajoule" + }, + { + "year": 2041, + "value": "0.23743570800797037 CO2 * metric_ton / gigajoule" + }, + { + "year": 2042, + "value": "0.24455877924820948 CO2 * metric_ton / gigajoule" + }, + { + "year": 2043, + "value": "0.2518955426256558 CO2 * metric_ton / gigajoule" + }, + { + "year": 2044, + "value": "0.25945240890442545 CO2 * metric_ton / gigajoule" + }, + { + "year": 2045, + "value": "0.2672359811715582 CO2 * metric_ton / gigajoule" + }, + { + "year": 2046, + "value": "0.27525306060670496 CO2 * metric_ton / gigajoule" + }, + { + "year": 2047, + "value": "0.28351065242490614 CO2 * metric_ton / gigajoule" + }, + { + "year": 2048, + "value": "0.29201597199765333 CO2 * metric_ton / gigajoule" + }, + { + "year": 2049, + "value": "0.30077645115758295 CO2 * metric_ton / gigajoule" + }, + { + "year": 2050, + "value": "0.3097997446923104 CO2 * metric_ton / gigajoule" + } + ] + }, + "S1S2": { + "ei_metric": { + "units": "CO2\u00b7t/GJ" + }, + "projections": [ + { + "year": 2019, + "value": "0.9992111823532782 CO2 * metric_ton / gigajoule" + }, + { + "year": 2020, + "value": "1.0103398427559807 CO2 * metric_ton / gigajoule" + }, + { + "year": 2021, + "value": "1.0103398427559807 CO2 * metric_ton / gigajoule" + }, + { + "year": 2022, + "value": "1.0124640483624336 CO2 * metric_ton / gigajoule" + }, + { + "year": 2023, + "value": "1.0147103376405255 CO2 * metric_ton / gigajoule" + }, + { + "year": 2024, + "value": "1.017082252274483 CO2 * metric_ton / gigajoule" + }, + { + "year": 2025, + "value": "1.0195834404492226 CO2 * metric_ton / gigajoule" + }, + { + "year": 2026, + "value": "1.0222176600448534 CO2 * metric_ton / gigajoule" + }, + { + "year": 2027, + "value": "1.024988781927017 CO2 * metric_ton / gigajoule" + }, + { + "year": 2028, + "value": "1.027900793335936 CO2 * metric_ton / gigajoule" + }, + { + "year": 2029, + "value": "1.0309578013771385 CO2 * metric_ton / gigajoule" + }, + { + "year": 2030, + "value": "1.0341640366169016 CO2 * metric_ton / gigajoule" + }, + { + "year": 2031, + "value": "1.037523856785563 CO2 * metric_ton / gigajoule" + }, + { + "year": 2032, + "value": "1.0410417505919303 CO2 * metric_ton / gigajoule" + }, + { + "year": 2033, + "value": "1.0447223416521254 CO2 * metric_ton / gigajoule" + }, + { + "year": 2034, + "value": "1.0485703925362935 CO2 * metric_ton / gigajoule" + }, + { + "year": 2035, + "value": "1.0525908089367157 CO2 * metric_ton / gigajoule" + }, + { + "year": 2036, + "value": "1.056788643960967 CO2 * metric_ton / gigajoule" + }, + { + "year": 2037, + "value": "1.061169102553867 CO2 * metric_ton / gigajoule" + }, + { + "year": 2038, + "value": "1.0657375460520926 CO2 * metric_ton / gigajoule" + }, + { + "year": 2039, + "value": "1.0704994968754304 CO2 * metric_ton / gigajoule" + }, + { + "year": 2040, + "value": "1.0754606433587661 CO2 * metric_ton / gigajoule" + }, + { + "year": 2041, + "value": "1.0806268447290353 CO2 * metric_ton / gigajoule" + }, + { + "year": 2042, + "value": "1.0860041362314843 CO2 * metric_ton / gigajoule" + }, + { + "year": 2043, + "value": "1.091598734409719 CO2 * metric_ton / gigajoule" + }, + { + "year": 2044, + "value": "1.0974170425441574 CO2 * metric_ton / gigajoule" + }, + { + "year": 2045, + "value": "1.1034656562536354 CO2 * metric_ton / gigajoule" + }, + { + "year": 2046, + "value": "1.109751369265062 CO2 * metric_ton / gigajoule" + }, + { + "year": 2047, + "value": "1.116281179356167 CO2 * metric_ton / gigajoule" + }, + { + "year": 2048, + "value": "1.12306229447653 CO2 * metric_ton / gigajoule" + }, + { + "year": 2049, + "value": "1.1301021390522414 CO2 * metric_ton / gigajoule" + }, + { + "year": 2050, + "value": "1.1374083604797054 CO2 * metric_ton / gigajoule" + } + ] + }, + "S3": null, + "S1S2S3": null + } + }, + { + "company_name": "Company AR", + "company_id": "US8356993076", + "region": "Europe", + "sector": "Electricity Utilities", + "target_probability": 0.4285714285714285, + "target_data": null, + "historic_data": { + "productions": [ + { + "year": 2009, + "value": "697248015.4129393 gigajoule" + }, + { + "year": 2010, + "value": "683380815.4129393 gigajoule" + }, + { + "year": 2011, + "value": "732499215.4129393 gigajoule" + }, + { + "year": 2012, + "value": "739368015.4129393 gigajoule" + }, + { + "year": 2013, + "value": "739238415.4129393 gigajoule" + }, + { + "year": 2014, + "value": "710726415.4129393 gigajoule" + }, + { + "year": 2015, + "value": "720316815.4129393 gigajoule" + }, + { + "year": 2016, + "value": "695563215.4129393 gigajoule" + }, + { + "year": 2017, + "value": "841262415.4129393 gigajoule" + }, + { + "year": 2018, + "value": "1038312015.4129393 gigajoule" + }, + { + "year": 2019, + "value": "1038312015.4129393 gigajoule" + }, + { + "year": 2020, + "value": "1038312015.4129393 gigajoule" + }, + { + "year": 2021, + "value": "1038312015.4129393 gigajoule" + } + ], + "emissions": { + "S1": [ + { + "year": 2009, + "value": "nan CO2 * metric_ton" + }, + { + "year": 2010, + "value": "nan CO2 * metric_ton" + }, + { + "year": 2011, + "value": "nan CO2 * metric_ton" + }, + { + "year": 2012, + "value": "nan CO2 * metric_ton" + }, + { + "year": 2013, + "value": "nan CO2 * metric_ton" + }, + { + "year": 2014, + "value": "nan CO2 * metric_ton" + }, + { + "year": 2015, + "value": "nan CO2 * metric_ton" + }, + { + "year": 2016, + "value": "nan CO2 * metric_ton" + }, + { + "year": 2017, + "value": "nan CO2 * metric_ton" + }, + { + "year": 2018, + "value": "nan CO2 * metric_ton" + }, + { + "year": 2019, + "value": "nan CO2 * metric_ton" + }, + { + "year": 2020, + "value": "nan CO2 * metric_ton" + }, + { + "year": 2021, + "value": "nan CO2 * metric_ton" + } + ], + "S2": [ + { + "year": 2009, + "value": "nan CO2 * metric_ton" + }, + { + "year": 2010, + "value": "nan CO2 * metric_ton" + }, + { + "year": 2011, + "value": "nan CO2 * metric_ton" + }, + { + "year": 2012, + "value": "nan CO2 * metric_ton" + }, + { + "year": 2013, + "value": "nan CO2 * metric_ton" + }, + { + "year": 2014, + "value": "nan CO2 * metric_ton" + }, + { + "year": 2015, + "value": "nan CO2 * metric_ton" + }, + { + "year": 2016, + "value": "nan CO2 * metric_ton" + }, + { + "year": 2017, + "value": "nan CO2 * metric_ton" + }, + { + "year": 2018, + "value": "nan CO2 * metric_ton" + }, + { + "year": 2019, + "value": "nan CO2 * metric_ton" + }, + { + "year": 2020, + "value": "nan CO2 * metric_ton" + }, + { + "year": 2021, + "value": "nan CO2 * metric_ton" + } + ], + "S1S2": [], + "S3": [], + "S1S2S3": [] + }, + "emissions_intensities": { + "S1": [ + { + "year": 2009, + "value": "nan CO2 * metric_ton / megawatt_hour" + }, + { + "year": 2010, + "value": "nan CO2 * metric_ton / megawatt_hour" + }, + { + "year": 2011, + "value": "nan CO2 * metric_ton / megawatt_hour" + }, + { + "year": 2012, + "value": "nan CO2 * metric_ton / megawatt_hour" + }, + { + "year": 2013, + "value": "nan CO2 * metric_ton / megawatt_hour" + }, + { + "year": 2014, + "value": "nan CO2 * metric_ton / megawatt_hour" + }, + { + "year": 2015, + "value": "nan CO2 * metric_ton / megawatt_hour" + }, + { + "year": 2016, + "value": "nan CO2 * metric_ton / megawatt_hour" + }, + { + "year": 2017, + "value": "nan CO2 * metric_ton / megawatt_hour" + }, + { + "year": 2018, + "value": "nan CO2 * metric_ton / megawatt_hour" + }, + { + "year": 2019, + "value": "nan CO2 * metric_ton / megawatt_hour" + }, + { + "year": 2020, + "value": "nan CO2 * metric_ton / megawatt_hour" + }, + { + "year": 2021, + "value": "nan CO2 * metric_ton / megawatt_hour" + } + ], + "S2": [ + { + "year": 2009, + "value": "nan CO2 * metric_ton / megawatt_hour" + }, + { + "year": 2010, + "value": "nan CO2 * metric_ton / megawatt_hour" + }, + { + "year": 2011, + "value": "nan CO2 * metric_ton / megawatt_hour" + }, + { + "year": 2012, + "value": "nan CO2 * metric_ton / megawatt_hour" + }, + { + "year": 2013, + "value": "nan CO2 * metric_ton / megawatt_hour" + }, + { + "year": 2014, + "value": "nan CO2 * metric_ton / megawatt_hour" + }, + { + "year": 2015, + "value": "nan CO2 * metric_ton / megawatt_hour" + }, + { + "year": 2016, + "value": "nan CO2 * metric_ton / megawatt_hour" + }, + { + "year": 2017, + "value": "nan CO2 * metric_ton / megawatt_hour" + }, + { + "year": 2018, + "value": "nan CO2 * metric_ton / megawatt_hour" + }, + { + "year": 2019, + "value": "nan CO2 * metric_ton / megawatt_hour" + }, + { + "year": 2020, + "value": "nan CO2 * metric_ton / megawatt_hour" + }, + { + "year": 2021, + "value": "nan CO2 * metric_ton / megawatt_hour" + } + ], + "S1S2": [], + "S3": [], + "S1S2S3": [] + } + }, + "country": null, + "emissions_metric": { + "units": "t CO2" + }, + "production_metric": { + "units": "GJ" + }, + "base_year_production": "1038312015.4129393 gigajoule", + "ghg_s1s2": "nan CO2 * metric_ton", + "ghg_s3": null, + "industry_level_1": null, + "industry_level_2": null, + "industry_level_3": null, + "industry_level_4": null, + "company_revenue": null, + "company_market_cap": null, + "company_enterprise_value": null, + "company_ev_plus_cash": null, + "company_total_assets": null, + "company_cash_equivalents": null, + "projected_targets": null, + "projected_intensities": { + "S1": { + "ei_metric": { + "units": "CO2\u00b7t/MWh" + }, + "projections": [ + { + "year": 2019, + "value": "nan CO2 * metric_ton / megawatt_hour" + }, + { + "year": 2020, + "value": "nan CO2 * metric_ton / megawatt_hour" + }, + { + "year": 2021, + "value": "nan CO2 * metric_ton / megawatt_hour" + }, + { + "year": 2022, + "value": "nan CO2 * metric_ton / megawatt_hour" + }, + { + "year": 2023, + "value": "nan CO2 * metric_ton / megawatt_hour" + }, + { + "year": 2024, + "value": "nan CO2 * metric_ton / megawatt_hour" + }, + { + "year": 2025, + "value": "nan CO2 * metric_ton / megawatt_hour" + }, + { + "year": 2026, + "value": "nan CO2 * metric_ton / megawatt_hour" + }, + { + "year": 2027, + "value": "nan CO2 * metric_ton / megawatt_hour" + }, + { + "year": 2028, + "value": "nan CO2 * metric_ton / megawatt_hour" + }, + { + "year": 2029, + "value": "nan CO2 * metric_ton / megawatt_hour" + }, + { + "year": 2030, + "value": "nan CO2 * metric_ton / megawatt_hour" + }, + { + "year": 2031, + "value": "nan CO2 * metric_ton / megawatt_hour" + }, + { + "year": 2032, + "value": "nan CO2 * metric_ton / megawatt_hour" + }, + { + "year": 2033, + "value": "nan CO2 * metric_ton / megawatt_hour" + }, + { + "year": 2034, + "value": "nan CO2 * metric_ton / megawatt_hour" + }, + { + "year": 2035, + "value": "nan CO2 * metric_ton / megawatt_hour" + }, + { + "year": 2036, + "value": "nan CO2 * metric_ton / megawatt_hour" + }, + { + "year": 2037, + "value": "nan CO2 * metric_ton / megawatt_hour" + }, + { + "year": 2038, + "value": "nan CO2 * metric_ton / megawatt_hour" + }, + { + "year": 2039, + "value": "nan CO2 * metric_ton / megawatt_hour" + }, + { + "year": 2040, + "value": "nan CO2 * metric_ton / megawatt_hour" + }, + { + "year": 2041, + "value": "nan CO2 * metric_ton / megawatt_hour" + }, + { + "year": 2042, + "value": "nan CO2 * metric_ton / megawatt_hour" + }, + { + "year": 2043, + "value": "nan CO2 * metric_ton / megawatt_hour" + }, + { + "year": 2044, + "value": "nan CO2 * metric_ton / megawatt_hour" + }, + { + "year": 2045, + "value": "nan CO2 * metric_ton / megawatt_hour" + }, + { + "year": 2046, + "value": "nan CO2 * metric_ton / megawatt_hour" + }, + { + "year": 2047, + "value": "nan CO2 * metric_ton / megawatt_hour" + }, + { + "year": 2048, + "value": "nan CO2 * metric_ton / megawatt_hour" + }, + { + "year": 2049, + "value": "nan CO2 * metric_ton / megawatt_hour" + }, + { + "year": 2050, + "value": "nan CO2 * metric_ton / megawatt_hour" + } + ] + }, + "S2": { + "ei_metric": { + "units": "CO2\u00b7t/MWh" + }, + "projections": [ + { + "year": 2019, + "value": "nan CO2 * metric_ton / megawatt_hour" + }, + { + "year": 2020, + "value": "nan CO2 * metric_ton / megawatt_hour" + }, + { + "year": 2021, + "value": "nan CO2 * metric_ton / megawatt_hour" + }, + { + "year": 2022, + "value": "nan CO2 * metric_ton / megawatt_hour" + }, + { + "year": 2023, + "value": "nan CO2 * metric_ton / megawatt_hour" + }, + { + "year": 2024, + "value": "nan CO2 * metric_ton / megawatt_hour" + }, + { + "year": 2025, + "value": "nan CO2 * metric_ton / megawatt_hour" + }, + { + "year": 2026, + "value": "nan CO2 * metric_ton / megawatt_hour" + }, + { + "year": 2027, + "value": "nan CO2 * metric_ton / megawatt_hour" + }, + { + "year": 2028, + "value": "nan CO2 * metric_ton / megawatt_hour" + }, + { + "year": 2029, + "value": "nan CO2 * metric_ton / megawatt_hour" + }, + { + "year": 2030, + "value": "nan CO2 * metric_ton / megawatt_hour" + }, + { + "year": 2031, + "value": "nan CO2 * metric_ton / megawatt_hour" + }, + { + "year": 2032, + "value": "nan CO2 * metric_ton / megawatt_hour" + }, + { + "year": 2033, + "value": "nan CO2 * metric_ton / megawatt_hour" + }, + { + "year": 2034, + "value": "nan CO2 * metric_ton / megawatt_hour" + }, + { + "year": 2035, + "value": "nan CO2 * metric_ton / megawatt_hour" + }, + { + "year": 2036, + "value": "nan CO2 * metric_ton / megawatt_hour" + }, + { + "year": 2037, + "value": "nan CO2 * metric_ton / megawatt_hour" + }, + { + "year": 2038, + "value": "nan CO2 * metric_ton / megawatt_hour" + }, + { + "year": 2039, + "value": "nan CO2 * metric_ton / megawatt_hour" + }, + { + "year": 2040, + "value": "nan CO2 * metric_ton / megawatt_hour" + }, + { + "year": 2041, + "value": "nan CO2 * metric_ton / megawatt_hour" + }, + { + "year": 2042, + "value": "nan CO2 * metric_ton / megawatt_hour" + }, + { + "year": 2043, + "value": "nan CO2 * metric_ton / megawatt_hour" + }, + { + "year": 2044, + "value": "nan CO2 * metric_ton / megawatt_hour" + }, + { + "year": 2045, + "value": "nan CO2 * metric_ton / megawatt_hour" + }, + { + "year": 2046, + "value": "nan CO2 * metric_ton / megawatt_hour" + }, + { + "year": 2047, + "value": "nan CO2 * metric_ton / megawatt_hour" + }, + { + "year": 2048, + "value": "nan CO2 * metric_ton / megawatt_hour" + }, + { + "year": 2049, + "value": "nan CO2 * metric_ton / megawatt_hour" + }, + { + "year": 2050, + "value": "nan CO2 * metric_ton / megawatt_hour" + } + ] + }, + "S1S2": { + "ei_metric": { + "units": "CO2\u00b7t/MWh" + }, + "projections": [ + { + "year": 2019, + "value": "nan CO2 * metric_ton / megawatt_hour" + }, + { + "year": 2020, + "value": "nan CO2 * metric_ton / megawatt_hour" + }, + { + "year": 2021, + "value": "nan CO2 * metric_ton / megawatt_hour" + }, + { + "year": 2022, + "value": "nan CO2 * metric_ton / megawatt_hour" + }, + { + "year": 2023, + "value": "nan CO2 * metric_ton / megawatt_hour" + }, + { + "year": 2024, + "value": "nan CO2 * metric_ton / megawatt_hour" + }, + { + "year": 2025, + "value": "nan CO2 * metric_ton / megawatt_hour" + }, + { + "year": 2026, + "value": "nan CO2 * metric_ton / megawatt_hour" + }, + { + "year": 2027, + "value": "nan CO2 * metric_ton / megawatt_hour" + }, + { + "year": 2028, + "value": "nan CO2 * metric_ton / megawatt_hour" + }, + { + "year": 2029, + "value": "nan CO2 * metric_ton / megawatt_hour" + }, + { + "year": 2030, + "value": "nan CO2 * metric_ton / megawatt_hour" + }, + { + "year": 2031, + "value": "nan CO2 * metric_ton / megawatt_hour" + }, + { + "year": 2032, + "value": "nan CO2 * metric_ton / megawatt_hour" + }, + { + "year": 2033, + "value": "nan CO2 * metric_ton / megawatt_hour" + }, + { + "year": 2034, + "value": "nan CO2 * metric_ton / megawatt_hour" + }, + { + "year": 2035, + "value": "nan CO2 * metric_ton / megawatt_hour" + }, + { + "year": 2036, + "value": "nan CO2 * metric_ton / megawatt_hour" + }, + { + "year": 2037, + "value": "nan CO2 * metric_ton / megawatt_hour" + }, + { + "year": 2038, + "value": "nan CO2 * metric_ton / megawatt_hour" + }, + { + "year": 2039, + "value": "nan CO2 * metric_ton / megawatt_hour" + }, + { + "year": 2040, + "value": "nan CO2 * metric_ton / megawatt_hour" + }, + { + "year": 2041, + "value": "nan CO2 * metric_ton / megawatt_hour" + }, + { + "year": 2042, + "value": "nan CO2 * metric_ton / megawatt_hour" + }, + { + "year": 2043, + "value": "nan CO2 * metric_ton / megawatt_hour" + }, + { + "year": 2044, + "value": "nan CO2 * metric_ton / megawatt_hour" + }, + { + "year": 2045, + "value": "nan CO2 * metric_ton / megawatt_hour" + }, + { + "year": 2046, + "value": "nan CO2 * metric_ton / megawatt_hour" + }, + { + "year": 2047, + "value": "nan CO2 * metric_ton / megawatt_hour" + }, + { + "year": 2048, + "value": "nan CO2 * metric_ton / megawatt_hour" + }, + { + "year": 2049, + "value": "nan CO2 * metric_ton / megawatt_hour" + }, + { + "year": 2050, + "value": "nan CO2 * metric_ton / megawatt_hour" + } + ] + }, + "S3": null, + "S1S2S3": null + } + }, + { + "company_name": "Company AS", + "company_id": "JP3401400001", + "region": "Asia", + "sector": "Electricity Utilities", + "target_probability": 0.4285714285714285, + "target_data": null, + "historic_data": { + "productions": [ + { + "year": 2009, + "value": "159563527.70578668 gigajoule" + }, + { + "year": 2010, + "value": "146979367.70578668 gigajoule" + }, + { + "year": 2011, + "value": "146435047.70578668 gigajoule" + }, + { + "year": 2012, + "value": "143026567.70578668 gigajoule" + }, + { + "year": 2013, + "value": "139618087.70578668 gigajoule" + }, + { + "year": 2014, + "value": "190050203.6009867 gigajoule" + }, + { + "year": 2015, + "value": "214535101.14178666 gigajoule" + }, + { + "year": 2016, + "value": "233145050.2433867 gigajoule" + }, + { + "year": 2017, + "value": "218105285.54578668 gigajoule" + }, + { + "year": 2018, + "value": "167479620.8129867 gigajoule" + }, + { + "year": 2019, + "value": "171690299.59138668 gigajoule" + }, + { + "year": 2020, + "value": "171690299.59138668 gigajoule" + }, + { + "year": 2021, + "value": "171690299.59138668 gigajoule" + } + ], + "emissions": { + "S1": [ + { + "year": 2009, + "value": "9150002.14049632 CO2 * metric_ton" + }, + { + "year": 2010, + "value": "8650002.14049632 CO2 * metric_ton" + }, + { + "year": 2011, + "value": "8631002.14049632 CO2 * metric_ton" + }, + { + "year": 2012, + "value": "8960002.14049632 CO2 * metric_ton" + }, + { + "year": 2013, + "value": "9296403.94049632 CO2 * metric_ton" + }, + { + "year": 2014, + "value": "9632805.74049632 CO2 * metric_ton" + }, + { + "year": 2015, + "value": "9969207.54049632 CO2 * metric_ton" + }, + { + "year": 2016, + "value": "10305609.3404963 CO2 * metric_ton" + }, + { + "year": 2017, + "value": "10642011.1404963 CO2 * metric_ton" + }, + { + "year": 2018, + "value": "11403118.1404963 CO2 * metric_ton" + }, + { + "year": 2019, + "value": "9681777.14049632 CO2 * metric_ton" + }, + { + "year": 2020, + "value": "9681777.14049632 CO2 * metric_ton" + }, + { + "year": 2021, + "value": "9681777.14049632 CO2 * metric_ton" + } + ], + "S2": [ + { + "year": 2009, + "value": "nan CO2 * metric_ton" + }, + { + "year": 2010, + "value": "2.14049631522688 CO2 * metric_ton" + }, + { + "year": 2011, + "value": "2.14049631522688 CO2 * metric_ton" + }, + { + "year": 2012, + "value": "2.14049631522688 CO2 * metric_ton" + }, + { + "year": 2013, + "value": "310616.540496315 CO2 * metric_ton" + }, + { + "year": 2014, + "value": "621230.940496315 CO2 * metric_ton" + }, + { + "year": 2015, + "value": "931845.340496315 CO2 * metric_ton" + }, + { + "year": 2016, + "value": "1242459.74049632 CO2 * metric_ton" + }, + { + "year": 2017, + "value": "1553074.14049631 CO2 * metric_ton" + }, + { + "year": 2018, + "value": "1239860.14049631 CO2 * metric_ton" + }, + { + "year": 2019, + "value": "1203273.14049631 CO2 * metric_ton" + }, + { + "year": 2020, + "value": "1203273.14049631 CO2 * metric_ton" + }, + { + "year": 2021, + "value": "1203273.14049631 CO2 * metric_ton" + } + ], + "S1S2": [], + "S3": [], + "S1S2S3": [] + }, + "emissions_intensities": { + "S1": [ + { + "year": 2009, + "value": "0.7431775258785013 CO2 * metric_ton / gigajoule" + }, + { + "year": 2010, + "value": "0.7627194856711764 CO2 * metric_ton / gigajoule" + }, + { + "year": 2011, + "value": "0.7638730583512608 CO2 * metric_ton / gigajoule" + }, + { + "year": 2012, + "value": "0.8118885155637708 CO2 * metric_ton / gigajoule" + }, + { + "year": 2013, + "value": "0.8629354337148576 CO2 * metric_ton / gigajoule" + }, + { + "year": 2014, + "value": "0.6568851810279456 CO2 * metric_ton / gigajoule" + }, + { + "year": 2015, + "value": "0.6022367856691344 CO2 * metric_ton / gigajoule" + }, + { + "year": 2016, + "value": "0.5728652481080088 CO2 * metric_ton / gigajoule" + }, + { + "year": 2017, + "value": "0.6323572766047393 CO2 * metric_ton / gigajoule" + }, + { + "year": 2018, + "value": "0.8824023507066155 CO2 * metric_ton / gigajoule" + }, + { + "year": 2019, + "value": "0.7308265641067548 CO2 * metric_ton / gigajoule" + }, + { + "year": 2020, + "value": "0.7308265641067548 CO2 * metric_ton / gigajoule" + }, + { + "year": 2021, + "value": "0.7308265641067548 CO2 * metric_ton / gigajoule" + } + ], + "S2": [ + { + "year": 2009, + "value": "nan CO2 * metric_ton / gigajoule" + }, + { + "year": 2010, + "value": "1.8873963521784973e-07 CO2 * metric_ton / gigajoule" + }, + { + "year": 2011, + "value": "1.894412074155671e-07 CO2 * metric_ton / gigajoule" + }, + { + "year": 2012, + "value": "1.9395579919392828e-07 CO2 * metric_ton / gigajoule" + }, + { + "year": 2013, + "value": "0.028832871377777763 CO2 * metric_ton / gigajoule" + }, + { + "year": 2014, + "value": "0.042363295783338244 CO2 * metric_ton / gigajoule" + }, + { + "year": 2015, + "value": "0.05629249269027864 CO2 * metric_ton / gigajoule" + }, + { + "year": 2016, + "value": "0.0690654947210874 CO2 * metric_ton / gigajoule" + }, + { + "year": 2017, + "value": "0.09228497516905357 CO2 * metric_ton / gigajoule" + }, + { + "year": 2018, + "value": "0.0959435383411512 CO2 * metric_ton / gigajoule" + }, + { + "year": 2019, + "value": "0.09082877680303489 CO2 * metric_ton / gigajoule" + }, + { + "year": 2020, + "value": "0.09082877680303489 CO2 * metric_ton / gigajoule" + }, + { + "year": 2021, + "value": "0.09082877680303489 CO2 * metric_ton / gigajoule" + } + ], + "S1S2": [], + "S3": [], + "S1S2S3": [] + } + }, + "country": null, + "emissions_metric": { + "units": "t CO2" + }, + "production_metric": { + "units": "GJ" + }, + "base_year_production": "171690299.59138668 gigajoule", + "ghg_s1s2": "10885050.280992629 CO2 * metric_ton", + "ghg_s3": null, + "industry_level_1": null, + "industry_level_2": null, + "industry_level_3": null, + "industry_level_4": null, + "company_revenue": null, + "company_market_cap": null, + "company_enterprise_value": null, + "company_ev_plus_cash": null, + "company_total_assets": null, + "company_cash_equivalents": null, + "projected_targets": null, + "projected_intensities": { + "S1": { + "ei_metric": { + "units": "CO2\u00b7t/GJ" + }, + "projections": [ + { + "year": 2019, + "value": "0.7308265641067548 CO2 * metric_ton / gigajoule" + }, + { + "year": 2020, + "value": "0.7308265641067548 CO2 * metric_ton / gigajoule" + }, + { + "year": 2021, + "value": "0.7308265641067548 CO2 * metric_ton / gigajoule" + }, + { + "year": 2022, + "value": "0.7313792322724906 CO2 * metric_ton / gigajoule" + }, + { + "year": 2023, + "value": "0.7319323183788382 CO2 * metric_ton / gigajoule" + }, + { + "year": 2024, + "value": "0.7324858227418543 CO2 * metric_ton / gigajoule" + }, + { + "year": 2025, + "value": "0.7330397456778343 CO2 * metric_ton / gigajoule" + }, + { + "year": 2026, + "value": "0.7335940875033128 CO2 * metric_ton / gigajoule" + }, + { + "year": 2027, + "value": "0.734148848535064 CO2 * metric_ton / gigajoule" + }, + { + "year": 2028, + "value": "0.7347040290901015 CO2 * metric_ton / gigajoule" + }, + { + "year": 2029, + "value": "0.7352596294856785 CO2 * metric_ton / gigajoule" + }, + { + "year": 2030, + "value": "0.7358156500392883 CO2 * metric_ton / gigajoule" + }, + { + "year": 2031, + "value": "0.7363720910686643 CO2 * metric_ton / gigajoule" + }, + { + "year": 2032, + "value": "0.7369289528917801 CO2 * metric_ton / gigajoule" + }, + { + "year": 2033, + "value": "0.7374862358268497 CO2 * metric_ton / gigajoule" + }, + { + "year": 2034, + "value": "0.7380439401923279 CO2 * metric_ton / gigajoule" + }, + { + "year": 2035, + "value": "0.7386020663069103 CO2 * metric_ton / gigajoule" + }, + { + "year": 2036, + "value": "0.7391606144895333 CO2 * metric_ton / gigajoule" + }, + { + "year": 2037, + "value": "0.7397195850593747 CO2 * metric_ton / gigajoule" + }, + { + "year": 2038, + "value": "0.7402789783358538 CO2 * metric_ton / gigajoule" + }, + { + "year": 2039, + "value": "0.740838794638631 CO2 * metric_ton / gigajoule" + }, + { + "year": 2040, + "value": "0.7413990342876088 CO2 * metric_ton / gigajoule" + }, + { + "year": 2041, + "value": "0.7419596976029315 CO2 * metric_ton / gigajoule" + }, + { + "year": 2042, + "value": "0.7425207849049854 CO2 * metric_ton / gigajoule" + }, + { + "year": 2043, + "value": "0.7430822965143994 CO2 * metric_ton / gigajoule" + }, + { + "year": 2044, + "value": "0.7436442327520446 CO2 * metric_ton / gigajoule" + }, + { + "year": 2045, + "value": "0.7442065939390348 CO2 * metric_ton / gigajoule" + }, + { + "year": 2046, + "value": "0.7447693803967266 CO2 * metric_ton / gigajoule" + }, + { + "year": 2047, + "value": "0.7453325924467197 CO2 * metric_ton / gigajoule" + }, + { + "year": 2048, + "value": "0.745896230410857 CO2 * metric_ton / gigajoule" + }, + { + "year": 2049, + "value": "0.7464602946112247 CO2 * metric_ton / gigajoule" + }, + { + "year": 2050, + "value": "0.7470247853701526 CO2 * metric_ton / gigajoule" + } + ] + }, + "S2": { + "ei_metric": { + "units": "CO2\u00b7t/GJ" + }, + "projections": [ + { + "year": 2019, + "value": "0.09082877680303489 CO2 * metric_ton / gigajoule" + }, + { + "year": 2020, + "value": "0.09082877680303489 CO2 * metric_ton / gigajoule" + }, + { + "year": 2021, + "value": "0.09082877680303489 CO2 * metric_ton / gigajoule" + }, + { + "year": 2022, + "value": "0.0927722397640582 CO2 * metric_ton / gigajoule" + }, + { + "year": 2023, + "value": "0.09475728699400832 CO2 * metric_ton / gigajoule" + }, + { + "year": 2024, + "value": "0.0967848082713152 CO2 * metric_ton / gigajoule" + }, + { + "year": 2025, + "value": "0.09885571241299422 CO2 * metric_ton / gigajoule" + }, + { + "year": 2026, + "value": "0.10097092768201464 CO2 * metric_ton / gigajoule" + }, + { + "year": 2027, + "value": "0.10313140220338464 CO2 * metric_ton / gigajoule" + }, + { + "year": 2028, + "value": "0.10533810438913926 CO2 * metric_ton / gigajoule" + }, + { + "year": 2029, + "value": "0.10759202337242188 CO2 * metric_ton / gigajoule" + }, + { + "year": 2030, + "value": "0.1098941694508536 CO2 * metric_ton / gigajoule" + }, + { + "year": 2031, + "value": "0.11224557453938958 CO2 * metric_ton / gigajoule" + }, + { + "year": 2032, + "value": "0.11464729263286495 CO2 * metric_ton / gigajoule" + }, + { + "year": 2033, + "value": "0.11710040027843802 CO2 * metric_ton / gigajoule" + }, + { + "year": 2034, + "value": "0.11960599705814214 CO2 * metric_ton / gigajoule" + }, + { + "year": 2035, + "value": "0.12216520608176289 CO2 * metric_ton / gigajoule" + }, + { + "year": 2036, + "value": "0.1247791744902613 CO2 * metric_ton / gigajoule" + }, + { + "year": 2037, + "value": "0.12744907396996877 CO2 * metric_ton / gigajoule" + }, + { + "year": 2038, + "value": "0.13017610127778426 CO2 * metric_ton / gigajoule" + }, + { + "year": 2039, + "value": "0.1329614787776092 CO2 * metric_ton / gigajoule" + }, + { + "year": 2040, + "value": "0.13580645498826027 CO2 * metric_ton / gigajoule" + }, + { + "year": 2041, + "value": "0.13871230514310617 CO2 * metric_ton / gigajoule" + }, + { + "year": 2042, + "value": "0.1416803317616787 CO2 * metric_ton / gigajoule" + }, + { + "year": 2043, + "value": "0.14471186523351467 CO2 * metric_ton / gigajoule" + }, + { + "year": 2044, + "value": "0.14780826441449027 CO2 * metric_ton / gigajoule" + }, + { + "year": 2045, + "value": "0.1509709172359153 CO2 * metric_ton / gigajoule" + }, + { + "year": 2046, + "value": "0.15420124132666 CO2 * metric_ton / gigajoule" + }, + { + "year": 2047, + "value": "0.1575006846485937 CO2 * metric_ton / gigajoule" + }, + { + "year": 2048, + "value": "0.16087072614561987 CO2 * metric_ton / gigajoule" + }, + { + "year": 2049, + "value": "0.1643128764065985 CO2 * metric_ton / gigajoule" + }, + { + "year": 2050, + "value": "0.1678286783424532 CO2 * metric_ton / gigajoule" + } + ] + }, + "S1S2": { + "ei_metric": { + "units": "CO2\u00b7t/GJ" + }, + "projections": [ + { + "year": 2019, + "value": "0.8216553409097898 CO2 * metric_ton / gigajoule" + }, + { + "year": 2020, + "value": "0.8216553409097898 CO2 * metric_ton / gigajoule" + }, + { + "year": 2021, + "value": "0.8216553409097898 CO2 * metric_ton / gigajoule" + }, + { + "year": 2022, + "value": "0.8241514720365488 CO2 * metric_ton / gigajoule" + }, + { + "year": 2023, + "value": "0.8266896053728465 CO2 * metric_ton / gigajoule" + }, + { + "year": 2024, + "value": "0.8292706310131694 CO2 * metric_ton / gigajoule" + }, + { + "year": 2025, + "value": "0.8318954580908284 CO2 * metric_ton / gigajoule" + }, + { + "year": 2026, + "value": "0.8345650151853274 CO2 * metric_ton / gigajoule" + }, + { + "year": 2027, + "value": "0.8372802507384487 CO2 * metric_ton / gigajoule" + }, + { + "year": 2028, + "value": "0.8400421334792407 CO2 * metric_ton / gigajoule" + }, + { + "year": 2029, + "value": "0.8428516528581004 CO2 * metric_ton / gigajoule" + }, + { + "year": 2030, + "value": "0.8457098194901419 CO2 * metric_ton / gigajoule" + }, + { + "year": 2031, + "value": "0.8486176656080539 CO2 * metric_ton / gigajoule" + }, + { + "year": 2032, + "value": "0.8515762455246451 CO2 * metric_ton / gigajoule" + }, + { + "year": 2033, + "value": "0.8545866361052877 CO2 * metric_ton / gigajoule" + }, + { + "year": 2034, + "value": "0.85764993725047 CO2 * metric_ton / gigajoule" + }, + { + "year": 2035, + "value": "0.8607672723886731 CO2 * metric_ton / gigajoule" + }, + { + "year": 2036, + "value": "0.8639397889797946 CO2 * metric_ton / gigajoule" + }, + { + "year": 2037, + "value": "0.8671686590293435 CO2 * metric_ton / gigajoule" + }, + { + "year": 2038, + "value": "0.870455079613638 CO2 * metric_ton / gigajoule" + }, + { + "year": 2039, + "value": "0.8738002734162402 CO2 * metric_ton / gigajoule" + }, + { + "year": 2040, + "value": "0.877205489275869 CO2 * metric_ton / gigajoule" + }, + { + "year": 2041, + "value": "0.8806720027460376 CO2 * metric_ton / gigajoule" + }, + { + "year": 2042, + "value": "0.8842011166666641 CO2 * metric_ton / gigajoule" + }, + { + "year": 2043, + "value": "0.887794161747914 CO2 * metric_ton / gigajoule" + }, + { + "year": 2044, + "value": "0.8914524971665349 CO2 * metric_ton / gigajoule" + }, + { + "year": 2045, + "value": "0.89517751117495 CO2 * metric_ton / gigajoule" + }, + { + "year": 2046, + "value": "0.8989706217233866 CO2 * metric_ton / gigajoule" + }, + { + "year": 2047, + "value": "0.9028332770953134 CO2 * metric_ton / gigajoule" + }, + { + "year": 2048, + "value": "0.9067669565564769 CO2 * metric_ton / gigajoule" + }, + { + "year": 2049, + "value": "0.9107731710178232 CO2 * metric_ton / gigajoule" + }, + { + "year": 2050, + "value": "0.9148534637126058 CO2 * metric_ton / gigajoule" + } + ] + }, + "S3": null, + "S1S2S3": null + } + }, + { + "company_name": "Company AT", + "company_id": "US6541061031", + "region": "Europe", + "sector": "Electricity Utilities", + "target_probability": 0.4285714285714285, + "target_data": null, + "historic_data": { + "productions": [ + { + "year": 2009, + "value": "nan gigajoule" + }, + { + "year": 2010, + "value": "2919888004.0657935 gigajoule" + }, + { + "year": 2011, + "value": "2665872004.0657935 gigajoule" + }, + { + "year": 2012, + "value": "2943216004.0657935 gigajoule" + }, + { + "year": 2013, + "value": "2808432004.0657935 gigajoule" + }, + { + "year": 2014, + "value": "2699568004.0657935 gigajoule" + }, + { + "year": 2015, + "value": "2760480004.0657935 gigajoule" + }, + { + "year": 2016, + "value": "2800656004.0657935 gigajoule" + }, + { + "year": 2017, + "value": "2594592004.0657935 gigajoule" + }, + { + "year": 2018, + "value": "2280960004.0657935 gigajoule" + }, + { + "year": 2019, + "value": "1985018404.0657933 gigajoule" + }, + { + "year": 2020, + "value": "1902204004.0657933 gigajoule" + }, + { + "year": 2021, + "value": "1902204004.0657933 gigajoule" + } + ], + "emissions": { + "S1": [ + { + "year": 2009, + "value": "nan CO2 * metric_ton" + }, + { + "year": 2010, + "value": "167100001.129387 CO2 * metric_ton" + }, + { + "year": 2011, + "value": "163800001.129387 CO2 * metric_ton" + }, + { + "year": 2012, + "value": "181700001.129387 CO2 * metric_ton" + }, + { + "year": 2013, + "value": "165800001.129387 CO2 * metric_ton" + }, + { + "year": 2014, + "value": "156600001.129387 CO2 * metric_ton" + }, + { + "year": 2015, + "value": "152300001.129387 CO2 * metric_ton" + }, + { + "year": 2016, + "value": "154000001.129387 CO2 * metric_ton" + }, + { + "year": 2017, + "value": "135600001.129387 CO2 * metric_ton" + }, + { + "year": 2018, + "value": "120400001.129387 CO2 * metric_ton" + }, + { + "year": 2019, + "value": "91700001.129387 CO2 * metric_ton" + }, + { + "year": 2020, + "value": "70400001.129387 CO2 * metric_ton" + }, + { + "year": 2021, + "value": "70400001.129387 CO2 * metric_ton" + } + ], + "S2": [ + { + "year": 2009, + "value": "nan CO2 * metric_ton" + }, + { + "year": 2010, + "value": "3100001.12938701 CO2 * metric_ton" + }, + { + "year": 2011, + "value": "2400001.12938701 CO2 * metric_ton" + }, + { + "year": 2012, + "value": "1900001.12938701 CO2 * metric_ton" + }, + { + "year": 2013, + "value": "1500001.12938701 CO2 * metric_ton" + }, + { + "year": 2014, + "value": "1400001.12938701 CO2 * metric_ton" + }, + { + "year": 2015, + "value": "1300001.12938701 CO2 * metric_ton" + }, + { + "year": 2016, + "value": "1300001.12938701 CO2 * metric_ton" + }, + { + "year": 2017, + "value": "1000001.12938701 CO2 * metric_ton" + }, + { + "year": 2018, + "value": "5000001.12938701 CO2 * metric_ton" + }, + { + "year": 2019, + "value": "4700001.12938701 CO2 * metric_ton" + }, + { + "year": 2020, + "value": "2600001.12938701 CO2 * metric_ton" + }, + { + "year": 2021, + "value": "2600001.12938701 CO2 * metric_ton" + } + ], + "S1S2": [], + "S3": [], + "S1S2S3": [] + }, + "emissions_intensities": { + "S1": [ + { + "year": 2009, + "value": "nan CO2 * metric_ton / gigajoule" + }, + { + "year": 2010, + "value": "0.7416777669627563 CO2 * metric_ton / gigajoule" + }, + { + "year": 2011, + "value": "0.7963053032550852 CO2 * metric_ton / gigajoule" + }, + { + "year": 2012, + "value": "0.8000880707986993 CO2 * metric_ton / gigajoule" + }, + { + "year": 2013, + "value": "0.7651130636333952 CO2 * metric_ton / gigajoule" + }, + { + "year": 2014, + "value": "0.7518002923357344 CO2 * metric_ton / gigajoule" + }, + { + "year": 2015, + "value": "0.715023478427562 CO2 * metric_ton / gigajoule" + }, + { + "year": 2016, + "value": "0.7126330444508124 CO2 * metric_ton / gigajoule" + }, + { + "year": 2017, + "value": "0.6773226819025896 CO2 * metric_ton / gigajoule" + }, + { + "year": 2018, + "value": "0.6840909142884937 CO2 * metric_ton / gigajoule" + }, + { + "year": 2019, + "value": "0.5987007537072012 CO2 * metric_ton / gigajoule" + }, + { + "year": 2020, + "value": "0.47964572290181157 CO2 * metric_ton / gigajoule" + }, + { + "year": 2021, + "value": "0.47964572290181157 CO2 * metric_ton / gigajoule" + } + ], + "S2": [ + { + "year": 2009, + "value": "nan CO2 * metric_ton / gigajoule" + }, + { + "year": 2010, + "value": "0.013759436862274392 CO2 * metric_ton / gigajoule" + }, + { + "year": 2011, + "value": "0.011667482380781245 CO2 * metric_ton / gigajoule" + }, + { + "year": 2012, + "value": "0.008366363393933629 CO2 * metric_ton / gigajoule" + }, + { + "year": 2013, + "value": "0.006922017199886688 CO2 * metric_ton / gigajoule" + }, + { + "year": 2014, + "value": "0.00672108078386214 CO2 * metric_ton / gigajoule" + }, + { + "year": 2015, + "value": "0.006103291678273692 CO2 * metric_ton / gigajoule" + }, + { + "year": 2016, + "value": "0.006015738674223793 CO2 * metric_ton / gigajoule" + }, + { + "year": 2017, + "value": "0.004995010628471448 CO2 * metric_ton / gigajoule" + }, + { + "year": 2018, + "value": "0.028409097275423567 CO2 * metric_ton / gigajoule" + }, + { + "year": 2019, + "value": "0.030685868963276727 CO2 * metric_ton / gigajoule" + }, + { + "year": 2020, + "value": "0.017714196040400174 CO2 * metric_ton / gigajoule" + }, + { + "year": 2021, + "value": "0.017714196040400174 CO2 * metric_ton / gigajoule" + } + ], + "S1S2": [], + "S3": [], + "S1S2S3": [] + } + }, + "country": null, + "emissions_metric": { + "units": "t CO2" + }, + "production_metric": { + "units": "GJ" + }, + "base_year_production": "1902204004.0657933 gigajoule", + "ghg_s1s2": "73000002.25877401 CO2 * metric_ton", + "ghg_s3": null, + "industry_level_1": null, + "industry_level_2": null, + "industry_level_3": null, + "industry_level_4": null, + "company_revenue": null, + "company_market_cap": null, + "company_enterprise_value": null, + "company_ev_plus_cash": null, + "company_total_assets": null, + "company_cash_equivalents": null, + "projected_targets": null, + "projected_intensities": { + "S1": { + "ei_metric": { + "units": "CO2\u00b7t/GJ" + }, + "projections": [ + { + "year": 2019, + "value": "0.5987007537072012 CO2 * metric_ton / gigajoule" + }, + { + "year": 2020, + "value": "0.47964572290181157 CO2 * metric_ton / gigajoule" + }, + { + "year": 2021, + "value": "0.47964572290181157 CO2 * metric_ton / gigajoule" + }, + { + "year": 2022, + "value": "0.4713000102007766 CO2 * metric_ton / gigajoule" + }, + { + "year": 2023, + "value": "0.4630995107627034 CO2 * metric_ton / gigajoule" + }, + { + "year": 2024, + "value": "0.4550416979140177 CO2 * metric_ton / gigajoule" + }, + { + "year": 2025, + "value": "0.44712408894461814 CO2 * metric_ton / gigajoule" + }, + { + "year": 2026, + "value": "0.4393442443429231 CO2 * metric_ton / gigajoule" + }, + { + "year": 2027, + "value": "0.4316997670442275 CO2 * metric_ton / gigajoule" + }, + { + "year": 2028, + "value": "0.4241883016921381 CO2 * metric_ton / gigajoule" + }, + { + "year": 2029, + "value": "0.41680753391285946 CO2 * metric_ton / gigajoule" + }, + { + "year": 2030, + "value": "0.40955518960210724 CO2 * metric_ton / gigajoule" + }, + { + "year": 2031, + "value": "0.40242903422442905 CO2 * metric_ton / gigajoule" + }, + { + "year": 2032, + "value": "0.39542687212471705 CO2 * metric_ton / gigajoule" + }, + { + "year": 2033, + "value": "0.3885465458516996 CO2 * metric_ton / gigajoule" + }, + { + "year": 2034, + "value": "0.38178593549320466 CO2 * metric_ton / gigajoule" + }, + { + "year": 2035, + "value": "0.3751429580229888 CO2 * metric_ton / gigajoule" + }, + { + "year": 2036, + "value": "0.3686155666589316 CO2 * metric_ton / gigajoule" + }, + { + "year": 2037, + "value": "0.36220175023239715 CO2 * metric_ton / gigajoule" + }, + { + "year": 2038, + "value": "0.3558995325685686 CO2 * metric_ton / gigajoule" + }, + { + "year": 2039, + "value": "0.3497069718775647 CO2 * metric_ton / gigajoule" + }, + { + "year": 2040, + "value": "0.34362216015615066 CO2 * metric_ton / gigajoule" + }, + { + "year": 2041, + "value": "0.3376432225998591 CO2 * metric_ton / gigajoule" + }, + { + "year": 2042, + "value": "0.3317683170253402 CO2 * metric_ton / gigajoule" + }, + { + "year": 2043, + "value": "0.3259956333027624 CO2 * metric_ton / gigajoule" + }, + { + "year": 2044, + "value": "0.3203233927980894 CO2 * metric_ton / gigajoule" + }, + { + "year": 2045, + "value": "0.3147498478250617 CO2 * metric_ton / gigajoule" + }, + { + "year": 2046, + "value": "0.30927328110671287 CO2 * metric_ton / gigajoule" + }, + { + "year": 2047, + "value": "0.3038920052462557 CO2 * metric_ton / gigajoule" + }, + { + "year": 2048, + "value": "0.2986043622071749 CO2 * metric_ton / gigajoule" + }, + { + "year": 2049, + "value": "0.2934087228023657 CO2 * metric_ton / gigajoule" + }, + { + "year": 2050, + "value": "0.28830348619216156 CO2 * metric_ton / gigajoule" + } + ] + }, + "S2": { + "ei_metric": { + "units": "CO2\u00b7t/GJ" + }, + "projections": [ + { + "year": 2019, + "value": "0.030685868963276727 CO2 * metric_ton / gigajoule" + }, + { + "year": 2020, + "value": "0.017714196040400174 CO2 * metric_ton / gigajoule" + }, + { + "year": 2021, + "value": "0.017714196040400174 CO2 * metric_ton / gigajoule" + }, + { + "year": 2022, + "value": "0.017199977863483117 CO2 * metric_ton / gigajoule" + }, + { + "year": 2023, + "value": "0.016700686716439095 CO2 * metric_ton / gigajoule" + }, + { + "year": 2024, + "value": "0.016215889288601876 CO2 * metric_ton / gigajoule" + }, + { + "year": 2025, + "value": "0.015745164847703944 CO2 * metric_ton / gigajoule" + }, + { + "year": 2026, + "value": "0.015288104874743299 CO2 * metric_ton / gigajoule" + }, + { + "year": 2027, + "value": "0.014844312709449543 CO2 * metric_ton / gigajoule" + }, + { + "year": 2028, + "value": "0.014413403206041595 CO2 * metric_ton / gigajoule" + }, + { + "year": 2029, + "value": "0.013995002398978282 CO2 * metric_ton / gigajoule" + }, + { + "year": 2030, + "value": "0.013588747178411699 CO2 * metric_ton / gigajoule" + }, + { + "year": 2031, + "value": "0.013194284975061723 CO2 * metric_ton / gigajoule" + }, + { + "year": 2032, + "value": "0.012811273454238162 CO2 * metric_ton / gigajoule" + }, + { + "year": 2033, + "value": "0.012439380218745019 CO2 * metric_ton / gigajoule" + }, + { + "year": 2034, + "value": "0.012078282520409019 CO2 * metric_ton / gigajoule" + }, + { + "year": 2035, + "value": "0.011727666979982065 CO2 * metric_ton / gigajoule" + }, + { + "year": 2036, + "value": "0.011387229315174528 CO2 * metric_ton / gigajoule" + }, + { + "year": 2037, + "value": "0.011056674076583341 CO2 * metric_ton / gigajoule" + }, + { + "year": 2038, + "value": "0.010735714391285744 CO2 * metric_ton / gigajoule" + }, + { + "year": 2039, + "value": "0.010424071713876125 CO2 * metric_ton / gigajoule" + }, + { + "year": 2040, + "value": "0.010121475584729924 CO2 * metric_ton / gigajoule" + }, + { + "year": 2041, + "value": "0.009827663395284788 CO2 * metric_ton / gigajoule" + }, + { + "year": 2042, + "value": "0.009542380160135287 CO2 * metric_ton / gigajoule" + }, + { + "year": 2043, + "value": "0.009265378295743398 CO2 * metric_ton / gigajoule" + }, + { + "year": 2044, + "value": "0.008996417405572714 CO2 * metric_ton / gigajoule" + }, + { + "year": 2045, + "value": "0.008735264071459902 CO2 * metric_ton / gigajoule" + }, + { + "year": 2046, + "value": "0.008481691651042355 CO2 * metric_ton / gigajoule" + }, + { + "year": 2047, + "value": "0.008235480081066239 CO2 * metric_ton / gigajoule" + }, + { + "year": 2048, + "value": "0.007996415686404218 CO2 * metric_ton / gigajoule" + }, + { + "year": 2049, + "value": "0.007764290994617141 CO2 * metric_ton / gigajoule" + }, + { + "year": 2050, + "value": "0.0075389045558987315 CO2 * metric_ton / gigajoule" + } + ] + }, + "S1S2": { + "ei_metric": { + "units": "CO2\u00b7t/GJ" + }, + "projections": [ + { + "year": 2019, + "value": "0.629386622670478 CO2 * metric_ton / gigajoule" + }, + { + "year": 2020, + "value": "0.49735991894221177 CO2 * metric_ton / gigajoule" + }, + { + "year": 2021, + "value": "0.49735991894221177 CO2 * metric_ton / gigajoule" + }, + { + "year": 2022, + "value": "0.4884999880642597 CO2 * metric_ton / gigajoule" + }, + { + "year": 2023, + "value": "0.4798001974791425 CO2 * metric_ton / gigajoule" + }, + { + "year": 2024, + "value": "0.47125758720261957 CO2 * metric_ton / gigajoule" + }, + { + "year": 2025, + "value": "0.4628692537923221 CO2 * metric_ton / gigajoule" + }, + { + "year": 2026, + "value": "0.4546323492176664 CO2 * metric_ton / gigajoule" + }, + { + "year": 2027, + "value": "0.44654407975367705 CO2 * metric_ton / gigajoule" + }, + { + "year": 2028, + "value": "0.43860170489817973 CO2 * metric_ton / gigajoule" + }, + { + "year": 2029, + "value": "0.43080253631183774 CO2 * metric_ton / gigajoule" + }, + { + "year": 2030, + "value": "0.4231439367805189 CO2 * metric_ton / gigajoule" + }, + { + "year": 2031, + "value": "0.41562331919949075 CO2 * metric_ton / gigajoule" + }, + { + "year": 2032, + "value": "0.4082381455789552 CO2 * metric_ton / gigajoule" + }, + { + "year": 2033, + "value": "0.40098592607044464 CO2 * metric_ton / gigajoule" + }, + { + "year": 2034, + "value": "0.3938642180136137 CO2 * metric_ton / gigajoule" + }, + { + "year": 2035, + "value": "0.38687062500297087 CO2 * metric_ton / gigajoule" + }, + { + "year": 2036, + "value": "0.38000279597410613 CO2 * metric_ton / gigajoule" + }, + { + "year": 2037, + "value": "0.3732584243089805 CO2 * metric_ton / gigajoule" + }, + { + "year": 2038, + "value": "0.36663524695985433 CO2 * metric_ton / gigajoule" + }, + { + "year": 2039, + "value": "0.3601310435914408 CO2 * metric_ton / gigajoule" + }, + { + "year": 2040, + "value": "0.3537436357408806 CO2 * metric_ton / gigajoule" + }, + { + "year": 2041, + "value": "0.3474708859951439 CO2 * metric_ton / gigajoule" + }, + { + "year": 2042, + "value": "0.3413106971854755 CO2 * metric_ton / gigajoule" + }, + { + "year": 2043, + "value": "0.3352610115985058 CO2 * metric_ton / gigajoule" + }, + { + "year": 2044, + "value": "0.32931981020366213 CO2 * metric_ton / gigajoule" + }, + { + "year": 2045, + "value": "0.3234851118965216 CO2 * metric_ton / gigajoule" + }, + { + "year": 2046, + "value": "0.3177549727577552 CO2 * metric_ton / gigajoule" + }, + { + "year": 2047, + "value": "0.31212748532732193 CO2 * metric_ton / gigajoule" + }, + { + "year": 2048, + "value": "0.3066007778935791 CO2 * metric_ton / gigajoule" + }, + { + "year": 2049, + "value": "0.3011730137969828 CO2 * metric_ton / gigajoule" + }, + { + "year": 2050, + "value": "0.2958423907480603 CO2 * metric_ton / gigajoule" + } + ] + }, + "S3": null, + "S1S2S3": null + } + }, + { + "company_name": "Company AU", + "company_id": "GB0031274896", + "region": "North America", + "sector": "Electricity Utilities", + "target_probability": 0.4285714285714285, + "target_data": null, + "historic_data": { + "productions": [ + { + "year": 2009, + "value": "926887167.2113813 gigajoule" + }, + { + "year": 2010, + "value": "965233460.0113813 gigajoule" + }, + { + "year": 2011, + "value": "968392251.2113813 gigajoule" + }, + { + "year": 2012, + "value": "972920165.6113813 gigajoule" + }, + { + "year": 2013, + "value": "919330565.6113813 gigajoule" + }, + { + "year": 2014, + "value": "954115205.6113813 gigajoule" + }, + { + "year": 2015, + "value": "949695845.6113813 gigajoule" + }, + { + "year": 2016, + "value": "960753123.2113813 gigajoule" + }, + { + "year": 2017, + "value": "939777829.7713813 gigajoule" + }, + { + "year": 2018, + "value": "891855365.6113813 gigajoule" + }, + { + "year": 2019, + "value": "874385285.6113813 gigajoule" + }, + { + "year": 2020, + "value": "874385285.6113813 gigajoule" + }, + { + "year": 2021, + "value": "874385285.6113813 gigajoule" + } + ], + "emissions": { + "S1": [ + { + "year": 2009, + "value": "55192252.5587173 CO2 * metric_ton" + }, + { + "year": 2010, + "value": "56075311.5587173 CO2 * metric_ton" + }, + { + "year": 2011, + "value": "54746972.5587173 CO2 * metric_ton" + }, + { + "year": 2012, + "value": "54472481.5587173 CO2 * metric_ton" + }, + { + "year": 2013, + "value": "56535331.5587173 CO2 * metric_ton" + }, + { + "year": 2014, + "value": "57593228.5587173 CO2 * metric_ton" + }, + { + "year": 2015, + "value": "56978409.5587173 CO2 * metric_ton" + }, + { + "year": 2016, + "value": "52832514.4587173 CO2 * metric_ton" + }, + { + "year": 2017, + "value": "50919739.3587173 CO2 * metric_ton" + }, + { + "year": 2018, + "value": "50723846.5587173 CO2 * metric_ton" + }, + { + "year": 2019, + "value": "48061950.5587173 CO2 * metric_ton" + }, + { + "year": 2020, + "value": "48061950.5587173 CO2 * metric_ton" + }, + { + "year": 2021, + "value": "48061950.5587173 CO2 * metric_ton" + } + ], + "S2": [ + { + "year": 2009, + "value": "1007225.55871729 CO2 * metric_ton" + }, + { + "year": 2010, + "value": "1933034.55871729 CO2 * metric_ton" + }, + { + "year": 2011, + "value": "1052282.55871729 CO2 * metric_ton" + }, + { + "year": 2012, + "value": "1189960.55871729 CO2 * metric_ton" + }, + { + "year": 2013, + "value": "774476.55871729 CO2 * metric_ton" + }, + { + "year": 2014, + "value": "601657.55871729 CO2 * metric_ton" + }, + { + "year": 2015, + "value": "1061617.55871729 CO2 * metric_ton" + }, + { + "year": 2016, + "value": "891280.15871729 CO2 * metric_ton" + }, + { + "year": 2017, + "value": "1153067.75871729 CO2 * metric_ton" + }, + { + "year": 2018, + "value": "841797.55871729 CO2 * metric_ton" + }, + { + "year": 2019, + "value": "607645.55871729 CO2 * metric_ton" + }, + { + "year": 2020, + "value": "607645.55871729 CO2 * metric_ton" + }, + { + "year": 2021, + "value": "607645.55871729 CO2 * metric_ton" + } + ], + "S1S2": [], + "S3": [], + "S1S2S3": [] + }, + "emissions_intensities": { + "S1": [ + { + "year": 2009, + "value": "0.771713773223328 CO2 * metric_ton / gigajoule" + }, + { + "year": 2010, + "value": "0.7529121895467709 CO2 * metric_ton / gigajoule" + }, + { + "year": 2011, + "value": "0.73267910133876 CO2 * metric_ton / gigajoule" + }, + { + "year": 2012, + "value": "0.7256128364420833 CO2 * metric_ton / gigajoule" + }, + { + "year": 2013, + "value": "0.7969906847529973 CO2 * metric_ton / gigajoule" + }, + { + "year": 2014, + "value": "0.7823041051344408 CO2 * metric_ton / gigajoule" + }, + { + "year": 2015, + "value": "0.7775544047005837 CO2 * metric_ton / gigajoule" + }, + { + "year": 2016, + "value": "0.7126798454698644 CO2 * metric_ton / gigajoule" + }, + { + "year": 2017, + "value": "0.7022083317814728 CO2 * metric_ton / gigajoule" + }, + { + "year": 2018, + "value": "0.7370937898101109 CO2 * metric_ton / gigajoule" + }, + { + "year": 2019, + "value": "0.7123666071364056 CO2 * metric_ton / gigajoule" + }, + { + "year": 2020, + "value": "0.7123666071364056 CO2 * metric_ton / gigajoule" + }, + { + "year": 2021, + "value": "0.7123666071364056 CO2 * metric_ton / gigajoule" + } + ], + "S2": [ + { + "year": 2009, + "value": "0.014083314240123792 CO2 * metric_ton / gigajoule" + }, + { + "year": 2010, + "value": "0.025954475180212513 CO2 * metric_ton / gigajoule" + }, + { + "year": 2011, + "value": "0.014082704548612957 CO2 * metric_ton / gigajoule" + }, + { + "year": 2012, + "value": "0.01585113495030187 CO2 * metric_ton / gigajoule" + }, + { + "year": 2013, + "value": "0.010917962021964349 CO2 * metric_ton / gigajoule" + }, + { + "year": 2014, + "value": "0.008172474262140671 CO2 * metric_ton / gigajoule" + }, + { + "year": 2015, + "value": "0.01448733678740982 CO2 * metric_ton / gigajoule" + }, + { + "year": 2016, + "value": "0.012022850176501211 CO2 * metric_ton / gigajoule" + }, + { + "year": 2017, + "value": "0.015901373366736478 CO2 * metric_ton / gigajoule" + }, + { + "year": 2018, + "value": "0.012232584768380328 CO2 * metric_ton / gigajoule" + }, + { + "year": 2019, + "value": "0.009006426080774784 CO2 * metric_ton / gigajoule" + }, + { + "year": 2020, + "value": "0.009006426080774784 CO2 * metric_ton / gigajoule" + }, + { + "year": 2021, + "value": "0.009006426080774784 CO2 * metric_ton / gigajoule" + } + ], + "S1S2": [], + "S3": [], + "S1S2S3": [] + } + }, + "country": null, + "emissions_metric": { + "units": "t CO2" + }, + "production_metric": { + "units": "MWh" + }, + "base_year_production": "874385285.6113813 gigajoule", + "ghg_s1s2": "48669596.11743459 CO2 * metric_ton", + "ghg_s3": null, + "industry_level_1": null, + "industry_level_2": null, + "industry_level_3": null, + "industry_level_4": null, + "company_revenue": null, + "company_market_cap": null, + "company_enterprise_value": null, + "company_ev_plus_cash": null, + "company_total_assets": null, + "company_cash_equivalents": null, + "projected_targets": null, + "projected_intensities": { + "S1": { + "ei_metric": { + "units": "CO2\u00b7t/GJ" + }, + "projections": [ + { + "year": 2019, + "value": "0.7123666071364056 CO2 * metric_ton / gigajoule" + }, + { + "year": 2020, + "value": "0.7123666071364056 CO2 * metric_ton / gigajoule" + }, + { + "year": 2021, + "value": "0.7123666071364056 CO2 * metric_ton / gigajoule" + }, + { + "year": 2022, + "value": "0.7104779214277235 CO2 * metric_ton / gigajoule" + }, + { + "year": 2023, + "value": "0.708594243159972 CO2 * metric_ton / gigajoule" + }, + { + "year": 2024, + "value": "0.7067155590570064 CO2 * metric_ton / gigajoule" + }, + { + "year": 2025, + "value": "0.7048418558778811 CO2 * metric_ton / gigajoule" + }, + { + "year": 2026, + "value": "0.7029731204167554 CO2 * metric_ton / gigajoule" + }, + { + "year": 2027, + "value": "0.7011093395028016 CO2 * metric_ton / gigajoule" + }, + { + "year": 2028, + "value": "0.6992505000001115 CO2 * metric_ton / gigajoule" + }, + { + "year": 2029, + "value": "0.6973965888076036 CO2 * metric_ton / gigajoule" + }, + { + "year": 2030, + "value": "0.6955475928589313 CO2 * metric_ton / gigajoule" + }, + { + "year": 2031, + "value": "0.6937034991223907 CO2 * metric_ton / gigajoule" + }, + { + "year": 2032, + "value": "0.6918642946008284 CO2 * metric_ton / gigajoule" + }, + { + "year": 2033, + "value": "0.6900299663315503 CO2 * metric_ton / gigajoule" + }, + { + "year": 2034, + "value": "0.68820050138623 CO2 * metric_ton / gigajoule" + }, + { + "year": 2035, + "value": "0.6863758868708177 CO2 * metric_ton / gigajoule" + }, + { + "year": 2036, + "value": "0.6845561099254496 CO2 * metric_ton / gigajoule" + }, + { + "year": 2037, + "value": "0.6827411577243567 CO2 * metric_ton / gigajoule" + }, + { + "year": 2038, + "value": "0.6809310174757752 CO2 * metric_ton / gigajoule" + }, + { + "year": 2039, + "value": "0.6791256764218555 CO2 * metric_ton / gigajoule" + }, + { + "year": 2040, + "value": "0.6773251218385727 CO2 * metric_ton / gigajoule" + }, + { + "year": 2041, + "value": "0.6755293410356372 CO2 * metric_ton / gigajoule" + }, + { + "year": 2042, + "value": "0.6737383213564047 CO2 * metric_ton / gigajoule" + }, + { + "year": 2043, + "value": "0.6719520501777871 CO2 * metric_ton / gigajoule" + }, + { + "year": 2044, + "value": "0.6701705149101641 CO2 * metric_ton / gigajoule" + }, + { + "year": 2045, + "value": "0.6683937029972938 CO2 * metric_ton / gigajoule" + }, + { + "year": 2046, + "value": "0.6666216019162245 CO2 * metric_ton / gigajoule" + }, + { + "year": 2047, + "value": "0.6648541991772063 CO2 * metric_ton / gigajoule" + }, + { + "year": 2048, + "value": "0.6630914823236034 CO2 * metric_ton / gigajoule" + }, + { + "year": 2049, + "value": "0.6613334389318057 CO2 * metric_ton / gigajoule" + }, + { + "year": 2050, + "value": "0.6595800566111422 CO2 * metric_ton / gigajoule" + } + ] + }, + "S2": { + "ei_metric": { + "units": "CO2\u00b7t/GJ" + }, + "projections": [ + { + "year": 2019, + "value": "0.009006426080774784 CO2 * metric_ton / gigajoule" + }, + { + "year": 2020, + "value": "0.009006426080774784 CO2 * metric_ton / gigajoule" + }, + { + "year": 2021, + "value": "0.009006426080774784 CO2 * metric_ton / gigajoule" + }, + { + "year": 2022, + "value": "0.008493907085081503 CO2 * metric_ton / gigajoule" + }, + { + "year": 2023, + "value": "0.00801055345627078 CO2 * metric_ton / gigajoule" + }, + { + "year": 2024, + "value": "0.007554705512199044 CO2 * metric_ton / gigajoule" + }, + { + "year": 2025, + "value": "0.00712479801646821 CO2 * metric_ton / gigajoule" + }, + { + "year": 2026, + "value": "0.006719354803903295 CO2 * metric_ton / gigajoule" + }, + { + "year": 2027, + "value": "0.006336983711872183 CO2 * metric_ton / gigajoule" + }, + { + "year": 2028, + "value": "0.005976371800043332 CO2 * metric_ton / gigajoule" + }, + { + "year": 2029, + "value": "0.005636280842167579 CO2 * metric_ton / gigajoule" + }, + { + "year": 2030, + "value": "0.005315543074404264 CO2 * metric_ton / gigajoule" + }, + { + "year": 2031, + "value": "0.005013057185592784 CO2 * metric_ton / gigajoule" + }, + { + "year": 2032, + "value": "0.004727784535701454 CO2 * metric_ton / gigajoule" + }, + { + "year": 2033, + "value": "0.004458745589469022 CO2 * metric_ton / gigajoule" + }, + { + "year": 2034, + "value": "0.00420501655299311 CO2 * metric_ton / gigajoule" + }, + { + "year": 2035, + "value": "0.0039657262017166964 CO2 * metric_ton / gigajoule" + }, + { + "year": 2036, + "value": "0.003740052888920959 CO2 * metric_ton / gigajoule" + }, + { + "year": 2037, + "value": "0.003527221724452597 CO2 * metric_ton / gigajoule" + }, + { + "year": 2038, + "value": "0.003326501913998276 CO2 * metric_ton / gigajoule" + }, + { + "year": 2039, + "value": "0.003137204249770124 CO2 * metric_ton / gigajoule" + }, + { + "year": 2040, + "value": "0.002958678743986085 CO2 * metric_ton / gigajoule" + }, + { + "year": 2041, + "value": "0.002790312397019258 CO2 * metric_ton / gigajoule" + }, + { + "year": 2042, + "value": "0.002631527092552761 CO2 * metric_ton / gigajoule" + }, + { + "year": 2043, + "value": "0.0024817776125127516 CO2 * metric_ton / gigajoule" + }, + { + "year": 2044, + "value": "0.002340549764963518 CO2 * metric_ton / gigajoule" + }, + { + "year": 2045, + "value": "0.0022073586185364265 CO2 * metric_ton / gigajoule" + }, + { + "year": 2046, + "value": "0.002081746837330326 CO2 * metric_ton / gigajoule" + }, + { + "year": 2047, + "value": "0.0019632831105659775 CO2 * metric_ton / gigajoule" + }, + { + "year": 2048, + "value": "0.0018515606716024528 CO2 * metric_ton / gigajoule" + }, + { + "year": 2049, + "value": "0.0017461959012302706 CO2 * metric_ton / gigajoule" + }, + { + "year": 2050, + "value": "0.0016468270104454284 CO2 * metric_ton / gigajoule" + } + ] + }, + "S1S2": { + "ei_metric": { + "units": "CO2\u00b7t/GJ" + }, + "projections": [ + { + "year": 2019, + "value": "0.7213730332171804 CO2 * metric_ton / gigajoule" + }, + { + "year": 2020, + "value": "0.7213730332171804 CO2 * metric_ton / gigajoule" + }, + { + "year": 2021, + "value": "0.7213730332171804 CO2 * metric_ton / gigajoule" + }, + { + "year": 2022, + "value": "0.718971828512805 CO2 * metric_ton / gigajoule" + }, + { + "year": 2023, + "value": "0.7166047966162428 CO2 * metric_ton / gigajoule" + }, + { + "year": 2024, + "value": "0.7142702645692055 CO2 * metric_ton / gigajoule" + }, + { + "year": 2025, + "value": "0.7119666538943493 CO2 * metric_ton / gigajoule" + }, + { + "year": 2026, + "value": "0.7096924752206587 CO2 * metric_ton / gigajoule" + }, + { + "year": 2027, + "value": "0.7074463232146738 CO2 * metric_ton / gigajoule" + }, + { + "year": 2028, + "value": "0.7052268718001548 CO2 * metric_ton / gigajoule" + }, + { + "year": 2029, + "value": "0.7030328696497712 CO2 * metric_ton / gigajoule" + }, + { + "year": 2030, + "value": "0.7008631359333356 CO2 * metric_ton / gigajoule" + }, + { + "year": 2031, + "value": "0.6987165563079835 CO2 * metric_ton / gigajoule" + }, + { + "year": 2032, + "value": "0.6965920791365299 CO2 * metric_ton / gigajoule" + }, + { + "year": 2033, + "value": "0.6944887119210194 CO2 * metric_ton / gigajoule" + }, + { + "year": 2034, + "value": "0.6924055179392231 CO2 * metric_ton / gigajoule" + }, + { + "year": 2035, + "value": "0.6903416130725344 CO2 * metric_ton / gigajoule" + }, + { + "year": 2036, + "value": "0.6882961628143706 CO2 * metric_ton / gigajoule" + }, + { + "year": 2037, + "value": "0.6862683794488094 CO2 * metric_ton / gigajoule" + }, + { + "year": 2038, + "value": "0.6842575193897735 CO2 * metric_ton / gigajoule" + }, + { + "year": 2039, + "value": "0.6822628806716257 CO2 * metric_ton / gigajoule" + }, + { + "year": 2040, + "value": "0.6802838005825588 CO2 * metric_ton / gigajoule" + }, + { + "year": 2041, + "value": "0.6783196534326564 CO2 * metric_ton / gigajoule" + }, + { + "year": 2042, + "value": "0.6763698484489574 CO2 * metric_ton / gigajoule" + }, + { + "year": 2043, + "value": "0.6744338277902999 CO2 * metric_ton / gigajoule" + }, + { + "year": 2044, + "value": "0.6725110646751277 CO2 * metric_ton / gigajoule" + }, + { + "year": 2045, + "value": "0.6706010616158302 CO2 * metric_ton / gigajoule" + }, + { + "year": 2046, + "value": "0.6687033487535549 CO2 * metric_ton / gigajoule" + }, + { + "year": 2047, + "value": "0.6668174822877723 CO2 * metric_ton / gigajoule" + }, + { + "year": 2048, + "value": "0.6649430429952058 CO2 * metric_ton / gigajoule" + }, + { + "year": 2049, + "value": "0.663079634833036 CO2 * metric_ton / gigajoule" + }, + { + "year": 2050, + "value": "0.6612268836215875 CO2 * metric_ton / gigajoule" + } + ] + }, + "S3": null, + "S1S2S3": null + } + }, + { + "company_name": "Company AV", + "company_id": "US6293775085", + "region": "Europe", + "sector": "Steel", + "target_probability": 0.4285714285714285, + "target_data": null, + "historic_data": { + "productions": [ + { + "year": 2009, + "value": "nan Fe_ton" + }, + { + "year": 2010, + "value": "nan Fe_ton" + }, + { + "year": 2011, + "value": "nan Fe_ton" + }, + { + "year": 2012, + "value": "nan Fe_ton" + }, + { + "year": 2013, + "value": "nan Fe_ton" + }, + { + "year": 2014, + "value": "91200001.3960884 Fe_ton" + }, + { + "year": 2015, + "value": "92479001.3960884 Fe_ton" + }, + { + "year": 2016, + "value": "90800001.3960884 Fe_ton" + }, + { + "year": 2017, + "value": "93100001.3960884 Fe_ton" + }, + { + "year": 2018, + "value": "92500001.3960884 Fe_ton" + }, + { + "year": 2019, + "value": "89800001.3960884 Fe_ton" + }, + { + "year": 2020, + "value": "71500001.3960884 Fe_ton" + }, + { + "year": 2021, + "value": "71500001.3960884 Fe_ton" + } + ], + "emissions": { + "S1": [ + { + "year": 2009, + "value": "nan CO2 * metric_ton" + }, + { + "year": 2010, + "value": "165226001.396088 CO2 * metric_ton" + }, + { + "year": 2011, + "value": "162028001.396088 CO2 * metric_ton" + }, + { + "year": 2012, + "value": "158192001.396088 CO2 * metric_ton" + }, + { + "year": 2013, + "value": "169000001.396088 CO2 * metric_ton" + }, + { + "year": 2014, + "value": "174000001.396088 CO2 * metric_ton" + }, + { + "year": 2015, + "value": "176000001.396088 CO2 * metric_ton" + }, + { + "year": 2016, + "value": "176000001.396088 CO2 * metric_ton" + }, + { + "year": 2017, + "value": "179700001.396088 CO2 * metric_ton" + }, + { + "year": 2018, + "value": "174900001.396088 CO2 * metric_ton" + }, + { + "year": 2019, + "value": "169800001.396088 CO2 * metric_ton" + }, + { + "year": 2020, + "value": "141300001.396088 CO2 * metric_ton" + }, + { + "year": 2021, + "value": "141300001.396088 CO2 * metric_ton" + } + ], + "S2": [ + { + "year": 2009, + "value": "nan CO2 * metric_ton" + }, + { + "year": 2010, + "value": "19599001.3960884 CO2 * metric_ton" + }, + { + "year": 2011, + "value": "17902001.3960884 CO2 * metric_ton" + }, + { + "year": 2012, + "value": "17256001.3960884 CO2 * metric_ton" + }, + { + "year": 2013, + "value": "21000001.3960884 CO2 * metric_ton" + }, + { + "year": 2014, + "value": "17000001.3960884 CO2 * metric_ton" + }, + { + "year": 2015, + "value": "16000001.3960884 CO2 * metric_ton" + }, + { + "year": 2016, + "value": "14000001.3960884 CO2 * metric_ton" + }, + { + "year": 2017, + "value": "15100001.3960884 CO2 * metric_ton" + }, + { + "year": 2018, + "value": "13900001.3960884 CO2 * metric_ton" + }, + { + "year": 2019, + "value": "12100001.3960884 CO2 * metric_ton" + }, + { + "year": 2020, + "value": "9500001.3960884 CO2 * metric_ton" + }, + { + "year": 2021, + "value": "9500001.3960884 CO2 * metric_ton" + } + ], + "S1S2": [], + "S3": [], + "S1S2S3": [] + }, + "emissions_intensities": null + }, + "country": null, + "emissions_metric": { + "units": "t CO2" + }, + "production_metric": { + "units": "Fe_ton" + }, + "base_year_production": "71500001.3960884 Fe_ton", + "ghg_s1s2": "150800002.7921764 CO2 * metric_ton", + "ghg_s3": null, "industry_level_1": null, "industry_level_2": null, "industry_level_3": null, @@ -1039,615 +10722,907 @@ "company_revenue": null, "company_market_cap": null, "company_enterprise_value": null, + "company_ev_plus_cash": null, "company_total_assets": null, - "company_cash_equivalents": null + "company_cash_equivalents": null, + "projected_targets": null, + "projected_intensities": { + "S1": null, + "S2": null, + "S1S2": null, + "S3": null, + "S1S2S3": null + } }, { - "company_name": "Company AJ", - "company_id": "US17275R1023", - "region": "Europe", - "sector": "Electricity Utilities", + "company_name": "Company AW", + "company_id": "US7134481081", + "region": "Asia", + "sector": "Steel", "target_probability": 0.4285714285714285, + "target_data": null, "historic_data": { "productions": [ { "year": 2009, - "value": "8015760033.846192 GJ" + "value": "nan Fe_ton" }, { "year": 2010, - "value": "8169984033.846192 GJ" + "value": "nan Fe_ton" }, { "year": 2011, - "value": "8141472033.846192 GJ" + "value": "nan Fe_ton" }, { "year": 2012, - "value": "8328096033.846192 GJ" + "value": "nan Fe_ton" }, { "year": 2013, - "value": "8474544033.846192 GJ" + "value": "nan Fe_ton" }, { "year": 2014, - "value": "8080560033.846192 GJ" + "value": "nan Fe_ton" }, { "year": 2015, - "value": "8026128033.846192 GJ" + "value": "nan Fe_ton" }, { "year": 2016, - "value": "364176033.84621 GJ" + "value": "nan Fe_ton" }, { "year": 2017, - "value": "381024033.84621 GJ" + "value": "nan Fe_ton" }, { "year": 2018, - "value": "383616033.84621 GJ" + "value": "nan Fe_ton" }, { "year": 2019, - "value": "360288033.84621 GJ" + "value": "nan Fe_ton" }, { "year": 2020, - "value": "360288033.84621 GJ" + "value": "nan Fe_ton" }, { "year": 2021, - "value": "360288033.84621 GJ" + "value": "nan Fe_ton" } ], "emissions": { "S1": [ { "year": 2009, - "value": "78192009.4017252 t CO2" + "value": "nan CO2 * metric_ton" + }, + { + "year": 2010, + "value": "nan CO2 * metric_ton" + }, + { + "year": 2011, + "value": "13390004.4552317 CO2 * metric_ton" + }, + { + "year": 2012, + "value": "9480004.45523172 CO2 * metric_ton" + }, + { + "year": 2013, + "value": "8095004.45523172 CO2 * metric_ton" + }, + { + "year": 2014, + "value": "7840004.45523172 CO2 * metric_ton" + }, + { + "year": 2015, + "value": "7810004.45523172 CO2 * metric_ton" + }, + { + "year": 2016, + "value": "8270004.45523172 CO2 * metric_ton" + }, + { + "year": 2017, + "value": "8670004.45523172 CO2 * metric_ton" + }, + { + "year": 2018, + "value": "8780004.45523172 CO2 * metric_ton" + }, + { + "year": 2019, + "value": "8590004.45523172 CO2 * metric_ton" + }, + { + "year": 2020, + "value": "8530004.45523172 CO2 * metric_ton" + }, + { + "year": 2021, + "value": "8530004.45523172 CO2 * metric_ton" + } + ], + "S2": [ + { + "year": 2009, + "value": "nan CO2 * metric_ton" + }, + { + "year": 2010, + "value": "nan CO2 * metric_ton" + }, + { + "year": 2011, + "value": "2530004.45523172 CO2 * metric_ton" + }, + { + "year": 2012, + "value": "1970004.45523172 CO2 * metric_ton" + }, + { + "year": 2013, + "value": "1781004.45523172 CO2 * metric_ton" + }, + { + "year": 2014, + "value": "1541004.45523172 CO2 * metric_ton" + }, + { + "year": 2015, + "value": "1570004.45523172 CO2 * metric_ton" + }, + { + "year": 2016, + "value": "1830004.45523172 CO2 * metric_ton" + }, + { + "year": 2017, + "value": "2000004.45523172 CO2 * metric_ton" + }, + { + "year": 2018, + "value": "1970004.45523172 CO2 * metric_ton" + }, + { + "year": 2019, + "value": "1810004.45523172 CO2 * metric_ton" + }, + { + "year": 2020, + "value": "1750004.45523172 CO2 * metric_ton" + }, + { + "year": 2021, + "value": "1750004.45523172 CO2 * metric_ton" + } + ], + "S1S2": [], + "S3": [], + "S1S2S3": [] + }, + "emissions_intensities": { + "S1": [ + { + "year": 2009, + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2010, - "value": "80575879.4017252 t CO2" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2011, - "value": "70935799.4017252 t CO2" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2012, - "value": "80283565.4017252 t CO2" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2013, - "value": "73222380.0683918 t CO2" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2014, - "value": "66161194.7350585 t CO2" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2015, - "value": "59100009.4017252 t CO2" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2016, - "value": "47700009.4017252 t CO2" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2017, - "value": "51300009.4017252 t CO2" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2018, - "value": "35700009.4017252 t CO2" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2019, - "value": "33100009.4017252 t CO2" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2020, - "value": "33100009.4017252 t CO2" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2021, - "value": "33100009.4017252 t CO2" + "value": "nan CO2 * metric_ton / Fe_ton" } ], "S2": [ { "year": 2009, - "value": "480089.401725152 t CO2" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2010, - "value": "670709.401725152 t CO2" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2011, - "value": "81181.4017251516 t CO2" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2012, - "value": "74013.4017251516 t CO2" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2013, - "value": "159212.601725152 t CO2" + "value": "nan CO2 * metric_ton / Fe_ton" + }, + { + "year": 2014, + "value": "nan CO2 * metric_ton / Fe_ton" + }, + { + "year": 2015, + "value": "nan CO2 * metric_ton / Fe_ton" + }, + { + "year": 2016, + "value": "nan CO2 * metric_ton / Fe_ton" + }, + { + "year": 2017, + "value": "nan CO2 * metric_ton / Fe_ton" + }, + { + "year": 2018, + "value": "nan CO2 * metric_ton / Fe_ton" + }, + { + "year": 2019, + "value": "nan CO2 * metric_ton / Fe_ton" + }, + { + "year": 2020, + "value": "nan CO2 * metric_ton / Fe_ton" + }, + { + "year": 2021, + "value": "nan CO2 * metric_ton / Fe_ton" + } + ], + "S1S2": [], + "S3": [], + "S1S2S3": [] + } + }, + "country": null, + "emissions_metric": { + "units": "t CO2" + }, + "production_metric": { + "units": "Fe_ton" + }, + "base_year_production": "nan Fe_ton", + "ghg_s1s2": "10280008.910463441 CO2 * metric_ton", + "ghg_s3": null, + "industry_level_1": null, + "industry_level_2": null, + "industry_level_3": null, + "industry_level_4": null, + "company_revenue": null, + "company_market_cap": null, + "company_enterprise_value": null, + "company_ev_plus_cash": null, + "company_total_assets": null, + "company_cash_equivalents": null, + "projected_targets": null, + "projected_intensities": { + "S1": { + "ei_metric": { + "units": "CO2\u00b7t/Fe_ton" + }, + "projections": [ + { + "year": 2019, + "value": "nan CO2 * metric_ton / Fe_ton" + }, + { + "year": 2020, + "value": "nan CO2 * metric_ton / Fe_ton" + }, + { + "year": 2021, + "value": "nan CO2 * metric_ton / Fe_ton" + }, + { + "year": 2022, + "value": "nan CO2 * metric_ton / Fe_ton" + }, + { + "year": 2023, + "value": "nan CO2 * metric_ton / Fe_ton" + }, + { + "year": 2024, + "value": "nan CO2 * metric_ton / Fe_ton" + }, + { + "year": 2025, + "value": "nan CO2 * metric_ton / Fe_ton" + }, + { + "year": 2026, + "value": "nan CO2 * metric_ton / Fe_ton" + }, + { + "year": 2027, + "value": "nan CO2 * metric_ton / Fe_ton" + }, + { + "year": 2028, + "value": "nan CO2 * metric_ton / Fe_ton" + }, + { + "year": 2029, + "value": "nan CO2 * metric_ton / Fe_ton" + }, + { + "year": 2030, + "value": "nan CO2 * metric_ton / Fe_ton" + }, + { + "year": 2031, + "value": "nan CO2 * metric_ton / Fe_ton" + }, + { + "year": 2032, + "value": "nan CO2 * metric_ton / Fe_ton" + }, + { + "year": 2033, + "value": "nan CO2 * metric_ton / Fe_ton" + }, + { + "year": 2034, + "value": "nan CO2 * metric_ton / Fe_ton" + }, + { + "year": 2035, + "value": "nan CO2 * metric_ton / Fe_ton" + }, + { + "year": 2036, + "value": "nan CO2 * metric_ton / Fe_ton" + }, + { + "year": 2037, + "value": "nan CO2 * metric_ton / Fe_ton" + }, + { + "year": 2038, + "value": "nan CO2 * metric_ton / Fe_ton" + }, + { + "year": 2039, + "value": "nan CO2 * metric_ton / Fe_ton" + }, + { + "year": 2040, + "value": "nan CO2 * metric_ton / Fe_ton" + }, + { + "year": 2041, + "value": "nan CO2 * metric_ton / Fe_ton" + }, + { + "year": 2042, + "value": "nan CO2 * metric_ton / Fe_ton" + }, + { + "year": 2043, + "value": "nan CO2 * metric_ton / Fe_ton" + }, + { + "year": 2044, + "value": "nan CO2 * metric_ton / Fe_ton" + }, + { + "year": 2045, + "value": "nan CO2 * metric_ton / Fe_ton" + }, + { + "year": 2046, + "value": "nan CO2 * metric_ton / Fe_ton" + }, + { + "year": 2047, + "value": "nan CO2 * metric_ton / Fe_ton" + }, + { + "year": 2048, + "value": "nan CO2 * metric_ton / Fe_ton" + }, + { + "year": 2049, + "value": "nan CO2 * metric_ton / Fe_ton" }, { - "year": 2014, - "value": "244411.801725152 t CO2" + "year": 2050, + "value": "nan CO2 * metric_ton / Fe_ton" + } + ] + }, + "S2": { + "ei_metric": { + "units": "CO2\u00b7t/Fe_ton" + }, + "projections": [ + { + "year": 2019, + "value": "nan CO2 * metric_ton / Fe_ton" }, { - "year": 2015, - "value": "329611.001725152 t CO2" + "year": 2020, + "value": "nan CO2 * metric_ton / Fe_ton" }, { - "year": 2016, - "value": "414810.201725152 t CO2" + "year": 2021, + "value": "nan CO2 * metric_ton / Fe_ton" }, { - "year": 2017, - "value": "500009.401725152 t CO2" + "year": 2022, + "value": "nan CO2 * metric_ton / Fe_ton" }, { - "year": 2018, - "value": "470009.401725152 t CO2" + "year": 2023, + "value": "nan CO2 * metric_ton / Fe_ton" }, { - "year": 2019, - "value": "290009.401725152 t CO2" + "year": 2024, + "value": "nan CO2 * metric_ton / Fe_ton" }, { - "year": 2020, - "value": "290009.401725152 t CO2" + "year": 2025, + "value": "nan CO2 * metric_ton / Fe_ton" }, { - "year": 2021, - "value": "290009.401725152 t CO2" - } - ], - "S1S2": [], - "S3": [], - "S1S2S3": [] - }, - "emissions_intensities": { - "S1": [ - { - "year": 2009, - "value": "0.12642200334933337 t CO2/GJ" + "year": 2026, + "value": "nan CO2 * metric_ton / Fe_ton" }, { - "year": 2010, - "value": "0.12781706704936452 t CO2/GJ" + "year": 2027, + "value": "nan CO2 * metric_ton / Fe_ton" }, { - "year": 2011, - "value": "0.1129191326119494 t CO2/GJ" + "year": 2028, + "value": "nan CO2 * metric_ton / Fe_ton" }, { - "year": 2012, - "value": "0.12493551988086661 t CO2/GJ" + "year": 2029, + "value": "nan CO2 * metric_ton / Fe_ton" }, { - "year": 2013, - "value": "0.11197794735579024 t CO2/GJ" + "year": 2030, + "value": "nan CO2 * metric_ton / Fe_ton" }, { - "year": 2014, - "value": "0.10611258132788423 t CO2/GJ" + "year": 2031, + "value": "nan CO2 * metric_ton / Fe_ton" }, { - "year": 2015, - "value": "0.09543033933877008 t CO2/GJ" + "year": 2032, + "value": "nan CO2 * metric_ton / Fe_ton" }, { - "year": 2016, - "value": "1.6975090736130565 t CO2/GJ" + "year": 2033, + "value": "nan CO2 * metric_ton / Fe_ton" }, { - "year": 2017, - "value": "1.7448981239716346 t CO2/GJ" + "year": 2034, + "value": "nan CO2 * metric_ton / Fe_ton" }, { - "year": 2018, - "value": "1.2060812922950988 t CO2/GJ" + "year": 2035, + "value": "nan CO2 * metric_ton / Fe_ton" }, { - "year": 2019, - "value": "1.1906477083539972 t CO2/GJ" + "year": 2036, + "value": "nan CO2 * metric_ton / Fe_ton" }, { - "year": 2020, - "value": "1.1906477083539972 t CO2/GJ" + "year": 2037, + "value": "nan CO2 * metric_ton / Fe_ton" }, { - "year": 2021, - "value": "1.1906477083539972 t CO2/GJ" - } - ], - "S2": [ - { - "year": 2009, - "value": "0.0007762156826159988 t CO2/GJ" + "year": 2038, + "value": "nan CO2 * metric_ton / Fe_ton" }, { - "year": 2010, - "value": "0.001063942574471082 t CO2/GJ" + "year": 2039, + "value": "nan CO2 * metric_ton / Fe_ton" }, { - "year": 2011, - "value": "0.000129228591830085 t CO2/GJ" + "year": 2040, + "value": "nan CO2 * metric_ton / Fe_ton" }, { - "year": 2012, - "value": "0.0001151780289828102 t CO2/GJ" + "year": 2041, + "value": "nan CO2 * metric_ton / Fe_ton" }, { - "year": 2013, - "value": "0.00024348157377164316 t CO2/GJ" + "year": 2042, + "value": "nan CO2 * metric_ton / Fe_ton" }, { - "year": 2014, - "value": "0.0003919996803551076 t CO2/GJ" + "year": 2043, + "value": "nan CO2 * metric_ton / Fe_ton" }, { - "year": 2015, - "value": "0.0005322315522932028 t CO2/GJ" + "year": 2044, + "value": "nan CO2 * metric_ton / Fe_ton" }, { - "year": 2016, - "value": "0.01476192751505496 t CO2/GJ" + "year": 2045, + "value": "nan CO2 * metric_ton / Fe_ton" }, { - "year": 2017, - "value": "0.017007120996922403 t CO2/GJ" + "year": 2046, + "value": "nan CO2 * metric_ton / Fe_ton" }, { - "year": 2018, - "value": "0.01587869460326034 t CO2/GJ" + "year": 2047, + "value": "nan CO2 * metric_ton / Fe_ton" }, { - "year": 2019, - "value": "0.010431991887807995 t CO2/GJ" + "year": 2048, + "value": "nan CO2 * metric_ton / Fe_ton" }, { - "year": 2020, - "value": "0.010431991887807995 t CO2/GJ" + "year": 2049, + "value": "nan CO2 * metric_ton / Fe_ton" }, { - "year": 2021, - "value": "0.010431991887807995 t CO2/GJ" + "year": 2050, + "value": "nan CO2 * metric_ton / Fe_ton" } - ], - "S1S2": [], - "S3": [], - "S1S2S3": [] - } - }, - "projected_targets": null, - "projected_intensities": { + ] + }, "S1S2": { + "ei_metric": { + "units": "CO2\u00b7t/Fe_ton" + }, "projections": [ { "year": 2019, - "value": "1.2010797002418052 t CO2/GJ" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2020, - "value": "1.2010797002418052 t CO2/GJ" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2021, - "value": "1.2010797002418052 t CO2/GJ" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2022, - "value": "1.2010797002418052 t CO2/GJ" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2023, - "value": "1.2010797002418052 t CO2/GJ" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2024, - "value": "1.2010797002418052 t CO2/GJ" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2025, - "value": "1.2010797002418052 t CO2/GJ" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2026, - "value": "1.2010797002418052 t CO2/GJ" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2027, - "value": "1.2010797002418052 t CO2/GJ" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2028, - "value": "1.2010797002418052 t CO2/GJ" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2029, - "value": "1.2010797002418052 t CO2/GJ" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2030, - "value": "1.2010797002418052 t CO2/GJ" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2031, - "value": "1.2010797002418052 t CO2/GJ" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2032, - "value": "1.2010797002418052 t CO2/GJ" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2033, - "value": "1.2010797002418052 t CO2/GJ" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2034, - "value": "1.2010797002418052 t CO2/GJ" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2035, - "value": "1.2010797002418052 t CO2/GJ" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2036, - "value": "1.2010797002418052 t CO2/GJ" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2037, - "value": "1.2010797002418052 t CO2/GJ" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2038, - "value": "1.2010797002418052 t CO2/GJ" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2039, - "value": "1.2010797002418052 t CO2/GJ" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2040, - "value": "1.2010797002418052 t CO2/GJ" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2041, - "value": "1.2010797002418052 t CO2/GJ" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2042, - "value": "1.2010797002418052 t CO2/GJ" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2043, - "value": "1.2010797002418052 t CO2/GJ" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2044, - "value": "1.2010797002418052 t CO2/GJ" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2045, - "value": "1.2010797002418052 t CO2/GJ" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2046, - "value": "1.2010797002418052 t CO2/GJ" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2047, - "value": "1.2010797002418052 t CO2/GJ" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2048, - "value": "1.2010797002418052 t CO2/GJ" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2049, - "value": "1.2010797002418052 t CO2/GJ" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2050, - "value": "1.2010797002418052 t CO2/GJ" + "value": "nan CO2 * metric_ton / Fe_ton" } ] }, "S3": null, "S1S2S3": null - }, - "country": null, - "ghg_s1s2": null, - "ghg_s3": null, - "industry_level_1": null, - "industry_level_2": null, - "industry_level_3": null, - "industry_level_4": null, - "company_revenue": null, - "company_market_cap": null, - "company_enterprise_value": null, - "company_total_assets": null, - "company_cash_equivalents": null + } }, { - "company_name": "Company AK", - "company_id": "CH0198251305", - "region": "Europe", - "sector": "Electricity Utilities", + "company_name": "Company A", + "company_id": "JP0000000001", + "region": "Asia", + "sector": "Steel", "target_probability": 0.4285714285714285, + "target_data": null, "historic_data": { "productions": [ { "year": 2009, - "value": NaN + "value": "nan Fe_ton" }, { "year": 2010, - "value": "3760992023.3008924 GJ" + "value": "nan Fe_ton" }, { "year": 2011, - "value": "3808944023.3008924 GJ" + "value": "nan Fe_ton" }, { "year": 2012, - "value": "3833568023.3008924 GJ" + "value": "nan Fe_ton" }, { "year": 2013, - "value": "3708452183.3008924 GJ" + "value": "nan Fe_ton" }, { "year": 2014, - "value": "3668988983.3008924 GJ" + "value": "nan Fe_ton" }, { "year": 2015, - "value": "3680795543.3008924 GJ" + "value": "nan Fe_ton" }, { "year": 2016, - "value": "3393083543.3008957 GJ" + "value": "nan Fe_ton" }, { "year": 2017, - "value": "3238392983.3008957 GJ" + "value": "nan Fe_ton" }, { "year": 2018, - "value": "3244393463.3008957 GJ" + "value": "nan Fe_ton" }, { "year": 2019, - "value": "2969511863.3008957 GJ" + "value": "nan Fe_ton" }, { "year": 2020, - "value": "2684119703.3008957 GJ" + "value": "nan Fe_ton" }, { "year": 2021, - "value": "2684119703.3008957 GJ" + "value": "nan Fe_ton" } ], "emissions": { "S1": [ { "year": 2009, - "value": NaN + "value": "21759305.8145184 CO2 * metric_ton" }, { "year": 2010, - "value": "116400006.472471 t CO2" + "value": "20966413.8145184 CO2 * metric_ton" }, { "year": 2011, - "value": "123540195.472471 t CO2" + "value": "21128989.8145184 CO2 * metric_ton" }, { "year": 2012, - "value": "127800006.472471 t CO2" + "value": "20070402.8145184 CO2 * metric_ton" }, { "year": 2013, - "value": "115550006.472471 t CO2" + "value": "19691129.8145184 CO2 * metric_ton" }, { "year": 2014, - "value": "115480006.472471 t CO2" + "value": "19443564.8145184 CO2 * metric_ton" }, { "year": 2015, - "value": "119510006.472471 t CO2" + "value": "20018158.8145184 CO2 * metric_ton" }, { "year": 2016, - "value": "106730006.472471 t CO2" + "value": "21042990.8145184 CO2 * metric_ton" }, { "year": 2017, - "value": "105960006.472471 t CO2" + "value": "20006804.8145184 CO2 * metric_ton" }, { "year": 2018, - "value": "95230006.4724713 t CO2" + "value": "20805771.8145184 CO2 * metric_ton" }, { "year": 2019, - "value": "69980006.4724713 t CO2" + "value": "20351815.8145184 CO2 * metric_ton" }, { "year": 2020, - "value": "45260006.4724712 t CO2" + "value": "20351815.8145184 CO2 * metric_ton" }, { "year": 2021, - "value": "45260006.4724712 t CO2" + "value": "20351815.8145184 CO2 * metric_ton" } ], "S2": [ { "year": 2009, - "value": NaN + "value": "1337565.8145184 CO2 * metric_ton" }, { "year": 2010, - "value": "245006.472471246 t CO2" + "value": "1349200.8145184 CO2 * metric_ton" }, { "year": 2011, - "value": "331647.472471246 t CO2" + "value": "1371359.8145184 CO2 * metric_ton" }, { "year": 2012, - "value": "370006.472471246 t CO2" + "value": "1243282.8145184 CO2 * metric_ton" }, { "year": 2013, - "value": "786006.472471246 t CO2" + "value": "1257964.8145184 CO2 * metric_ton" }, { "year": 2014, - "value": "636006.472471246 t CO2" + "value": "1185845.8145184 CO2 * metric_ton" }, { "year": 2015, - "value": "654006.472471246 t CO2" + "value": "1109279.8145184 CO2 * metric_ton" }, { "year": 2016, - "value": "1400006.47247125 t CO2" + "value": "1275990.8145184 CO2 * metric_ton" }, { "year": 2017, - "value": "5000006.47247125 t CO2" + "value": "1298687.8145184 CO2 * metric_ton" }, { "year": 2018, - "value": "5080006.47247125 t CO2" + "value": "1294689.8145184 CO2 * metric_ton" }, { "year": 2019, - "value": "5370006.47247125 t CO2" + "value": "1181783.8145184 CO2 * metric_ton" }, { "year": 2020, - "value": "5000006.47247125 t CO2" + "value": "1181783.8145184 CO2 * metric_ton" }, { "year": 2021, - "value": "5000006.47247125 t CO2" + "value": "1181783.8145184 CO2 * metric_ton" } ], "S1S2": [], @@ -1658,109 +11633,109 @@ "S1": [ { "year": 2009, - "value": NaN + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2010, - "value": "0.401102707620006 t CO2/GJ" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2011, - "value": "0.4203477193491828 t CO2/GJ" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2012, - "value": "0.43204870079677804 t CO2/GJ" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2013, - "value": "0.4038148558653588 t CO2/GJ" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2014, - "value": "0.40791097784566077 t CO2/GJ" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2015, - "value": "0.42079209933357004 t CO2/GJ" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2016, - "value": "0.4076589527582292 t CO2/GJ" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2017, - "value": "0.4240503518147712 t CO2/GJ" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2018, - "value": "0.380404195065648 t CO2/GJ" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2019, - "value": "0.3054174981052529 t CO2/GJ" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2020, - "value": "0.21853335496247459 t CO2/GJ" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2021, - "value": "0.21853335496247459 t CO2/GJ" + "value": "nan CO2 * metric_ton / Fe_ton" } ], "S2": [ { "year": 2009, - "value": NaN + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2010, - "value": "0.0008442676462899023 t CO2/GJ" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2011, - "value": "0.001128436442471657 t CO2/GJ" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2012, - "value": "0.0012508670392910783 t CO2/GJ" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2013, - "value": "0.0027468721126020315 t CO2/GJ" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2014, - "value": "0.00224657090025156 t CO2/GJ" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2015, - "value": "0.0023027423782485457 t CO2/GJ" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2016, - "value": "0.005347373164168032 t CO2/GJ" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2017, - "value": "0.020009950681518757 t CO2/GJ" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2018, - "value": "0.020292509101606883 t CO2/GJ" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2019, - "value": "0.023436607458394043 t CO2/GJ" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2020, - "value": "0.024142024591353756 t CO2/GJ" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2021, - "value": "0.024142024591353756 t CO2/GJ" + "value": "nan CO2 * metric_ton / Fe_ton" } ], "S1S2": [], @@ -1768,762 +11743,606 @@ "S1S2S3": [] } }, + "country": null, + "emissions_metric": { + "units": "t CO2" + }, + "production_metric": { + "units": "Fe_ton" + }, + "base_year_production": "nan Fe_ton", + "ghg_s1s2": "21533599.6290368 CO2 * metric_ton", + "ghg_s3": null, + "industry_level_1": null, + "industry_level_2": null, + "industry_level_3": null, + "industry_level_4": null, + "company_revenue": null, + "company_market_cap": null, + "company_enterprise_value": null, + "company_ev_plus_cash": null, + "company_total_assets": null, + "company_cash_equivalents": null, "projected_targets": null, "projected_intensities": { - "S1S2": { + "S1": { + "ei_metric": { + "units": "CO2\u00b7t/Fe_ton" + }, "projections": [ { "year": 2019, - "value": "0.32885410556364697 t CO2/GJ" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2020, - "value": "0.24267537955382834 t CO2/GJ" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2021, - "value": "0.24267537955382834 t CO2/GJ" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2022, - "value": "0.24267537955382834 t CO2/GJ" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2023, - "value": "0.24267537955382834 t CO2/GJ" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2024, - "value": "0.24267537955382834 t CO2/GJ" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2025, - "value": "0.24267537955382834 t CO2/GJ" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2026, - "value": "0.24267537955382834 t CO2/GJ" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2027, - "value": "0.24267537955382834 t CO2/GJ" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2028, - "value": "0.24267537955382834 t CO2/GJ" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2029, - "value": "0.24267537955382834 t CO2/GJ" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2030, - "value": "0.24267537955382834 t CO2/GJ" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2031, - "value": "0.24267537955382834 t CO2/GJ" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2032, - "value": "0.24267537955382834 t CO2/GJ" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2033, - "value": "0.24267537955382834 t CO2/GJ" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2034, - "value": "0.24267537955382834 t CO2/GJ" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2035, - "value": "0.24267537955382834 t CO2/GJ" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2036, - "value": "0.24267537955382834 t CO2/GJ" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2037, - "value": "0.24267537955382834 t CO2/GJ" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2038, - "value": "0.24267537955382834 t CO2/GJ" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2039, - "value": "0.24267537955382834 t CO2/GJ" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2040, - "value": "0.24267537955382834 t CO2/GJ" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2041, - "value": "0.24267537955382834 t CO2/GJ" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2042, - "value": "0.24267537955382834 t CO2/GJ" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2043, - "value": "0.24267537955382834 t CO2/GJ" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2044, - "value": "0.24267537955382834 t CO2/GJ" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2045, - "value": "0.24267537955382834 t CO2/GJ" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2046, - "value": "0.24267537955382834 t CO2/GJ" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2047, - "value": "0.24267537955382834 t CO2/GJ" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2048, - "value": "0.24267537955382834 t CO2/GJ" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2049, - "value": "0.24267537955382834 t CO2/GJ" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2050, - "value": "0.24267537955382834 t CO2/GJ" + "value": "nan CO2 * metric_ton / Fe_ton" } ] }, - "S3": null, - "S1S2S3": null - }, - "country": null, - "ghg_s1s2": null, - "ghg_s3": null, - "industry_level_1": null, - "industry_level_2": null, - "industry_level_3": null, - "industry_level_4": null, - "company_revenue": null, - "company_market_cap": null, - "company_enterprise_value": null, - "company_total_assets": null, - "company_cash_equivalents": null - }, - { - "company_name": "Company AL", - "company_id": "US1266501006", - "region": "Europe", - "sector": "Electricity Utilities", - "target_probability": 0.4285714285714285, - "historic_data": { - "productions": [ - { - "year": 2009, - "value": NaN - }, - { - "year": 2010, - "value": "4341600001.354788 GJ" - }, - { - "year": 2011, - "value": "6026400001.354788 GJ" - }, - { - "year": 2012, - "value": "6039360001.354788 GJ" + "S2": { + "ei_metric": { + "units": "CO2\u00b7t/Fe_ton" }, - { - "year": 2013, - "value": "6207840001.354788 GJ" - }, - { - "year": 2014, - "value": "6091200001.354788 GJ" - }, - { - "year": 2015, - "value": "6363360001.354788 GJ" - }, - { - "year": 2016, - "value": "3563902801.354802 GJ" - }, - { - "year": 2017, - "value": "764445601.3548025 GJ" - }, - { - "year": 2018, - "value": "739614241.3548025 GJ" - }, - { - "year": 2019, - "value": "797765761.3548025 GJ" - }, - { - "year": 2020, - "value": "718528321.3548025 GJ" - }, - { - "year": 2021, - "value": "718528321.3548025 GJ" - } - ], - "emissions": { - "S1": [ - { - "year": 2009, - "value": NaN - }, - { - "year": 2010, - "value": "109324454.376334 t CO2" - }, - { - "year": 2011, - "value": "156899254.376334 t CO2" - }, - { - "year": 2012, - "value": "154230874.376334 t CO2" - }, - { - "year": 2013, - "value": "141984778.376334 t CO2" - }, - { - "year": 2014, - "value": "131154736.376334 t CO2" - }, - { - "year": 2015, - "value": "133757296.376334 t CO2" - }, - { - "year": 2016, - "value": "120150105.376334 t CO2" - }, - { - "year": 2017, - "value": "89756230.3763341 t CO2" - }, - { - "year": 2018, - "value": "57205670.3763341 t CO2" - }, + "projections": [ { "year": 2019, - "value": "46188978.3763341 t CO2" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2020, - "value": "38589016.3763341 t CO2" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2021, - "value": "38589016.3763341 t CO2" - } - ], - "S2": [ - { - "year": 2009, - "value": NaN - }, - { - "year": 2010, - "value": "3250751.37633413 t CO2" - }, - { - "year": 2011, - "value": "3357343.37633413 t CO2" - }, - { - "year": 2012, - "value": "3712790.37633413 t CO2" - }, - { - "year": 2013, - "value": "3748376.12633413 t CO2" - }, - { - "year": 2014, - "value": "3783961.87633413 t CO2" - }, - { - "year": 2015, - "value": "3819547.62633413 t CO2" - }, - { - "year": 2016, - "value": "3855133.37633413 t CO2" - }, - { - "year": 2017, - "value": "3576861.37633413 t CO2" + "value": "nan CO2 * metric_ton / Fe_ton" }, { - "year": 2018, - "value": "2912586.37633413 t CO2" + "year": 2022, + "value": "nan CO2 * metric_ton / Fe_ton" }, { - "year": 2019, - "value": "2534464.37633413 t CO2" + "year": 2023, + "value": "nan CO2 * metric_ton / Fe_ton" }, { - "year": 2020, - "value": "2330625.37633413 t CO2" + "year": 2024, + "value": "nan CO2 * metric_ton / Fe_ton" }, { - "year": 2021, - "value": "2330625.37633413 t CO2" - } - ], - "S1S2": [], - "S3": [], - "S1S2S3": [] - }, - "emissions_intensities": { - "S1": [ - { - "year": 2009, - "value": NaN + "year": 2025, + "value": "nan CO2 * metric_ton / Fe_ton" }, { - "year": 2010, - "value": "0.3263416547528934 t CO2/GJ" + "year": 2026, + "value": "nan CO2 * metric_ton / Fe_ton" }, { - "year": 2011, - "value": "0.33741775127109996 t CO2/GJ" + "year": 2027, + "value": "nan CO2 * metric_ton / Fe_ton" }, { - "year": 2012, - "value": "0.3309675415058707 t CO2/GJ" + "year": 2028, + "value": "nan CO2 * metric_ton / Fe_ton" }, { - "year": 2013, - "value": "0.2964191614725413 t CO2/GJ" + "year": 2029, + "value": "nan CO2 * metric_ton / Fe_ton" }, { - "year": 2014, - "value": "0.2790526305258781 t CO2/GJ" + "year": 2030, + "value": "nan CO2 * metric_ton / Fe_ton" }, { - "year": 2015, - "value": "0.27241811883473793 t CO2/GJ" + "year": 2031, + "value": "nan CO2 * metric_ton / Fe_ton" }, { - "year": 2016, - "value": "0.4369213899675792 t CO2/GJ" + "year": 2032, + "value": "nan CO2 * metric_ton / Fe_ton" }, { - "year": 2017, - "value": "1.521678905098956 t CO2/GJ" + "year": 2033, + "value": "nan CO2 * metric_ton / Fe_ton" }, { - "year": 2018, - "value": "1.0023948250634593 t CO2/GJ" + "year": 2034, + "value": "nan CO2 * metric_ton / Fe_ton" }, { - "year": 2019, - "value": "0.750357045582786 t CO2/GJ" + "year": 2035, + "value": "nan CO2 * metric_ton / Fe_ton" }, { - "year": 2020, - "value": "0.6960249684999396 t CO2/GJ" + "year": 2036, + "value": "nan CO2 * metric_ton / Fe_ton" }, { - "year": 2021, - "value": "0.6960249684999396 t CO2/GJ" - } - ], - "S2": [ + "year": 2037, + "value": "nan CO2 * metric_ton / Fe_ton" + }, { - "year": 2009, - "value": NaN + "year": 2038, + "value": "nan CO2 * metric_ton / Fe_ton" }, { - "year": 2010, - "value": "0.009703735448715611 t CO2/GJ" + "year": 2039, + "value": "nan CO2 * metric_ton / Fe_ton" }, { - "year": 2011, - "value": "0.007220093280815844 t CO2/GJ" + "year": 2040, + "value": "nan CO2 * metric_ton / Fe_ton" }, { - "year": 2012, - "value": "0.007967361320818128 t CO2/GJ" + "year": 2041, + "value": "nan CO2 * metric_ton / Fe_ton" }, { - "year": 2013, - "value": "0.007825419886254877 t CO2/GJ" + "year": 2042, + "value": "nan CO2 * metric_ton / Fe_ton" }, { - "year": 2014, - "value": "0.008050982713813836 t CO2/GJ" + "year": 2043, + "value": "nan CO2 * metric_ton / Fe_ton" }, { - "year": 2015, - "value": "0.0077791194002462755 t CO2/GJ" + "year": 2044, + "value": "nan CO2 * metric_ton / Fe_ton" }, { - "year": 2016, - "value": "0.014019049155408301 t CO2/GJ" + "year": 2045, + "value": "nan CO2 * metric_ton / Fe_ton" }, { - "year": 2017, - "value": "0.06064018597940113 t CO2/GJ" + "year": 2046, + "value": "nan CO2 * metric_ton / Fe_ton" }, { - "year": 2018, - "value": "0.05103622581434676 t CO2/GJ" + "year": 2047, + "value": "nan CO2 * metric_ton / Fe_ton" }, { - "year": 2019, - "value": "0.04117331165166648 t CO2/GJ" + "year": 2048, + "value": "nan CO2 * metric_ton / Fe_ton" }, { - "year": 2020, - "value": "0.04203718069224924 t CO2/GJ" + "year": 2049, + "value": "nan CO2 * metric_ton / Fe_ton" }, { - "year": 2021, - "value": "0.04203718069224924 t CO2/GJ" + "year": 2050, + "value": "nan CO2 * metric_ton / Fe_ton" } - ], - "S1S2": [], - "S3": [], - "S1S2S3": [] - } - }, - "projected_targets": null, - "projected_intensities": { + ] + }, "S1S2": { + "ei_metric": { + "units": "CO2\u00b7t/Fe_ton" + }, "projections": [ { "year": 2019, - "value": "0.7915303572344525 t CO2/GJ" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2020, - "value": "0.7380621491921888 t CO2/GJ" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2021, - "value": "0.7380621491921888 t CO2/GJ" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2022, - "value": "0.7380621491921888 t CO2/GJ" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2023, - "value": "0.7380621491921888 t CO2/GJ" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2024, - "value": "0.7380621491921888 t CO2/GJ" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2025, - "value": "0.7380621491921888 t CO2/GJ" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2026, - "value": "0.7380621491921888 t CO2/GJ" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2027, - "value": "0.7380621491921888 t CO2/GJ" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2028, - "value": "0.7380621491921888 t CO2/GJ" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2029, - "value": "0.7380621491921888 t CO2/GJ" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2030, - "value": "0.7380621491921888 t CO2/GJ" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2031, - "value": "0.7380621491921888 t CO2/GJ" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2032, - "value": "0.7380621491921888 t CO2/GJ" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2033, - "value": "0.7380621491921888 t CO2/GJ" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2034, - "value": "0.7380621491921888 t CO2/GJ" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2035, - "value": "0.7380621491921888 t CO2/GJ" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2036, - "value": "0.7380621491921888 t CO2/GJ" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2037, - "value": "0.7380621491921888 t CO2/GJ" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2038, - "value": "0.7380621491921888 t CO2/GJ" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2039, - "value": "0.7380621491921888 t CO2/GJ" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2040, - "value": "0.7380621491921888 t CO2/GJ" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2041, - "value": "0.7380621491921888 t CO2/GJ" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2042, - "value": "0.7380621491921888 t CO2/GJ" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2043, - "value": "0.7380621491921888 t CO2/GJ" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2044, - "value": "0.7380621491921888 t CO2/GJ" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2045, - "value": "0.7380621491921888 t CO2/GJ" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2046, - "value": "0.7380621491921888 t CO2/GJ" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2047, - "value": "0.7380621491921888 t CO2/GJ" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2048, - "value": "0.7380621491921888 t CO2/GJ" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2049, - "value": "0.7380621491921888 t CO2/GJ" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2050, - "value": "0.7380621491921888 t CO2/GJ" + "value": "nan CO2 * metric_ton / Fe_ton" } ] }, "S3": null, "S1S2S3": null - }, - "country": null, - "ghg_s1s2": null, - "ghg_s3": null, - "industry_level_1": null, - "industry_level_2": null, - "industry_level_3": null, - "industry_level_4": null, - "company_revenue": null, - "company_market_cap": null, - "company_enterprise_value": null, - "company_total_assets": null, - "company_cash_equivalents": null + } }, { - "company_name": "Company AM", - "company_id": "FR0000120644", - "region": "Europe", - "sector": "Electricity Utilities", + "company_name": "Company B", + "company_id": "NL0000000002", + "region": "South America", + "sector": "Steel", "target_probability": 0.4285714285714285, + "target_data": null, "historic_data": { "productions": [ { "year": 2009, - "value": NaN + "value": "nan Fe_ton" }, { "year": 2010, - "value": "1990487529.3093767 GJ" + "value": "nan Fe_ton" }, { "year": 2011, - "value": "1881092169.3093767 GJ" + "value": "nan Fe_ton" }, { "year": 2012, - "value": "1746463689.3093767 GJ" + "value": "nan Fe_ton" }, { "year": 2013, - "value": "1768197609.3093767 GJ" + "value": "nan Fe_ton" }, { "year": 2014, - "value": "1800040329.3093767 GJ" + "value": "nan Fe_ton" }, { "year": 2015, - "value": "1741487049.3093767 GJ" + "value": "nan Fe_ton" }, { "year": 2016, - "value": "1846359369.3093767 GJ" + "value": "nan Fe_ton" }, { "year": 2017, - "value": "1782635049.3093767 GJ" + "value": "16120000.4760821 Fe_ton" }, { "year": 2018, - "value": "1492136649.3093767 GJ" + "value": "15342000.4760821 Fe_ton" }, { "year": 2019, - "value": "1480680009.3093767 GJ" + "value": "12453000.4760821 Fe_ton" }, { "year": 2020, - "value": "1600080489.3093767 GJ" + "value": "12194000.4760821 Fe_ton" }, { "year": 2021, - "value": "1600080489.3093767 GJ" + "value": "12194000.4760821 Fe_ton" } ], "emissions": { "S1": [ { "year": 2009, - "value": NaN + "value": "nan CO2 * metric_ton" }, { "year": 2010, - "value": "39499002.5859383 t CO2" + "value": "nan CO2 * metric_ton" }, { "year": 2011, - "value": "36193002.5859383 t CO2" + "value": "nan CO2 * metric_ton" }, { "year": 2012, - "value": "35461094.5859383 t CO2" + "value": "nan CO2 * metric_ton" }, { "year": 2013, - "value": "31838172.5859383 t CO2" + "value": "nan CO2 * metric_ton" }, { "year": 2014, - "value": "30202558.5859383 t CO2" + "value": "nan CO2 * metric_ton" }, { "year": 2015, - "value": "31817606.5859383 t CO2" + "value": "nan CO2 * metric_ton" }, { "year": 2016, - "value": "26625135.5859383 t CO2" + "value": "nan CO2 * metric_ton" }, { "year": 2017, - "value": "15129771.5859383 t CO2" + "value": "nan CO2 * metric_ton" }, { "year": 2018, - "value": "13457443.5859383 t CO2" + "value": "nan CO2 * metric_ton" }, { "year": 2019, - "value": "12966980.5859383 t CO2" + "value": "9056.99508207154 CO2 * metric_ton" }, { "year": 2020, - "value": "13136322.5859383 t CO2" + "value": "9056.99508207154 CO2 * metric_ton" }, { "year": 2021, - "value": "13136322.5859383 t CO2" + "value": "9056.99508207154 CO2 * metric_ton" } ], "S2": [ { "year": 2009, - "value": NaN + "value": "nan CO2 * metric_ton" }, { "year": 2010, - "value": "6236002.58593829 t CO2" + "value": "nan CO2 * metric_ton" }, { "year": 2011, - "value": "5189002.58593829 t CO2" + "value": "nan CO2 * metric_ton" }, { "year": 2012, - "value": "7189303.58593829 t CO2" + "value": "nan CO2 * metric_ton" }, { "year": 2013, - "value": "4181124.58593829 t CO2" + "value": "nan CO2 * metric_ton" }, { "year": 2014, - "value": "1547095.58593829 t CO2" + "value": "nan CO2 * metric_ton" }, { "year": 2015, - "value": "970947.585938292 t CO2" + "value": "nan CO2 * metric_ton" }, { "year": 2016, - "value": "4503672.58593829 t CO2" + "value": "nan CO2 * metric_ton" }, { "year": 2017, - "value": "5010565.58593829 t CO2" + "value": "nan CO2 * metric_ton" }, { "year": 2018, - "value": "2543866.58593829 t CO2" + "value": "nan CO2 * metric_ton" }, { "year": 2019, - "value": "2081746.58593829 t CO2" + "value": "2890986.47608207 CO2 * metric_ton" }, { "year": 2020, - "value": "2001731.58593829 t CO2" + "value": "2890986.47608207 CO2 * metric_ton" }, { "year": 2021, - "value": "2001731.58593829 t CO2" + "value": "2890986.47608207 CO2 * metric_ton" } ], "S1S2": [], @@ -2534,109 +12353,109 @@ "S1": [ { "year": 2009, - "value": NaN + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2010, - "value": "0.2571767298091901 t CO2/GJ" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2011, - "value": "0.2493558376174469 t CO2/GJ" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2012, - "value": "0.26314648775520477 t CO2/GJ" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2013, - "value": "0.2333578071485585 t CO2/GJ" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2014, - "value": "0.21745354973459868 t CO2/GJ" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2015, - "value": "0.23678394939387504 t CO2/GJ" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2016, - "value": "0.18688764653807832 t CO2/GJ" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2017, - "value": "0.10999550347095743 t CO2/GJ" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2018, - "value": "0.11688505134867072 t CO2/GJ" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2019, - "value": "0.11349654708456793 t CO2/GJ" + "value": "0.000727294205076673 CO2 * metric_ton / Fe_ton" }, { "year": 2020, - "value": "0.1063988604643518 t CO2/GJ" + "value": "0.000742741899988965 CO2 * metric_ton / Fe_ton" }, { "year": 2021, - "value": "0.1063988604643518 t CO2/GJ" + "value": "0.000742741899988965 CO2 * metric_ton / Fe_ton" } ], "S2": [ { "year": 2009, - "value": NaN + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2010, - "value": "0.0406024113809952 t CO2/GJ" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2011, - "value": "0.03575022777243828 t CO2/GJ" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2012, - "value": "0.05334973469193888 t CO2/GJ" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2013, - "value": "0.030645542301646213 t CO2/GJ" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2014, - "value": "0.011138838651161208 t CO2/GJ" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2015, - "value": "0.007225710187595436 t CO2/GJ" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2016, - "value": "0.03161226231683834 t CO2/GJ" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2017, - "value": "0.036427495363629124 t CO2/GJ" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2018, - "value": "0.02209483358579754 t CO2/GJ" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2019, - "value": "0.018220976567613723 t CO2/GJ" + "value": "0.232151800012749 CO2 * metric_ton / Fe_ton" }, { "year": 2020, - "value": "0.01621321022729142 t CO2/GJ" + "value": "0.237082693391115 CO2 * metric_ton / Fe_ton" }, { "year": 2021, - "value": "0.01621321022729142 t CO2/GJ" + "value": "0.237082693391115 CO2 * metric_ton / Fe_ton" } ], "S1S2": [], @@ -2644,762 +12463,606 @@ "S1S2S3": [] } }, + "country": null, + "emissions_metric": { + "units": "t CO2" + }, + "production_metric": { + "units": "Fe_ton" + }, + "base_year_production": "12194000.4760821 Fe_ton", + "ghg_s1s2": "2900043.4711641413 CO2 * metric_ton", + "ghg_s3": null, + "industry_level_1": null, + "industry_level_2": null, + "industry_level_3": null, + "industry_level_4": null, + "company_revenue": null, + "company_market_cap": null, + "company_enterprise_value": null, + "company_ev_plus_cash": null, + "company_total_assets": null, + "company_cash_equivalents": null, "projected_targets": null, "projected_intensities": { - "S1S2": { + "S1": { + "ei_metric": { + "units": "CO2\u00b7t/Fe_ton" + }, "projections": [ { "year": 2019, - "value": "0.13171752365218165 t CO2/GJ" + "value": "0.000727294205076673 CO2 * metric_ton / Fe_ton" }, { "year": 2020, - "value": "0.12261207069164323 t CO2/GJ" + "value": "0.000742741899988965 CO2 * metric_ton / Fe_ton" }, { "year": 2021, - "value": "0.12261207069164323 t CO2/GJ" + "value": "0.000742741899988965 CO2 * metric_ton / Fe_ton" }, { "year": 2022, - "value": "0.11620500570269289 t CO2/GJ" + "value": "0.0007490255284858647 CO2 * metric_ton / Fe_ton" }, { "year": 2023, - "value": "0.11013274039162965 t CO2/GJ" + "value": "0.0007553623167507641 CO2 * metric_ton / Fe_ton" }, { "year": 2024, - "value": "0.10437777987983021 t CO2/GJ" + "value": "0.0007617527145175923 CO2 * metric_ton / Fe_ton" }, { "year": 2025, - "value": "0.0989235434794494 t CO2/GJ" + "value": "0.0007681971753250472 CO2 * metric_ton / Fe_ton" }, { "year": 2026, - "value": "0.09375431692259552 t CO2/GJ" + "value": "0.0007746961565487832 CO2 * metric_ton / Fe_ton" }, { "year": 2027, - "value": "0.08885520708675897 t CO2/GJ" + "value": "0.0007812501194338728 CO2 * metric_ton / Fe_ton" }, { "year": 2028, - "value": "0.0842120990860529 t CO2/GJ" + "value": "0.0007878595291275415 CO2 * metric_ton / Fe_ton" }, { "year": 2029, - "value": "0.07981161560464115 t CO2/GJ" + "value": "0.0007945248547121805 CO2 * metric_ton / Fe_ton" }, { "year": 2030, - "value": "0.07564107835518817 t CO2/GJ" + "value": "0.0008012465692386381 CO2 * metric_ton / Fe_ton" }, { "year": 2031, - "value": "0.07168847155128884 t CO2/GJ" + "value": "0.0008080251497597934 CO2 * metric_ton / Fe_ton" }, { "year": 2032, - "value": "0.06794240728863765 t CO2/GJ" + "value": "0.0008148610773644131 CO2 * metric_ton / Fe_ton" }, { "year": 2033, - "value": "0.064392092735197 t CO2/GJ" + "value": "0.000821754837211296 CO2 * metric_ton / Fe_ton" }, { "year": 2034, - "value": "0.06102729903583536 t CO2/GJ" + "value": "0.0008287069185637049 CO2 * metric_ton / Fe_ton" }, { "year": 2035, - "value": "0.05783833184184642 t CO2/GJ" + "value": "0.0008357178148240913 CO2 * metric_ton / Fe_ton" }, { "year": 2036, - "value": "0.05481600338044117 t CO2/GJ" + "value": "0.0008427880235691122 CO2 * metric_ton / Fe_ton" }, { "year": 2037, - "value": "0.05195160598374223 t CO2/GJ" + "value": "0.000849918046584945 CO2 * metric_ton / Fe_ton" }, { "year": 2038, - "value": "0.04923688700101434 t CO2/GJ" + "value": "0.0008571083899028994 CO2 * metric_ton / Fe_ton" }, { "year": 2039, - "value": "0.0466640250218503 t CO2/GJ" + "value": "0.0008643595638353324 CO2 * metric_ton / Fe_ton" }, { "year": 2040, - "value": "0.04422560734180881 t CO2/GJ" + "value": "0.0008716720830118648 CO2 * metric_ton / Fe_ton" }, { "year": 2041, - "value": "0.041914608605580134 t CO2/GJ" + "value": "0.0008790464664159068 CO2 * metric_ton / Fe_ton" }, { "year": 2042, - "value": "0.039724370566148075 t CO2/GJ" + "value": "0.0008864832374214904 CO2 * metric_ton / Fe_ton" }, { "year": 2043, - "value": "0.037648582901632234 t CO2/GJ" + "value": "0.0008939829238304144 CO2 * metric_ton / Fe_ton" }, { "year": 2044, - "value": "0.03568126503454166 t CO2/GJ" + "value": "0.0009015460579097035 CO2 * metric_ton / Fe_ton" }, { "year": 2045, - "value": "0.033816748901059124 t CO2/GJ" + "value": "0.0009091731764293847 CO2 * metric_ton / Fe_ton" }, { "year": 2046, - "value": "0.03204966262071244 t CO2/GJ" + "value": "0.0009168648207005822 CO2 * metric_ton / Fe_ton" }, { "year": 2047, - "value": "0.030374915019383227 t CO2/GJ" + "value": "0.000924621536613936 CO2 * metric_ton / Fe_ton" }, { "year": 2048, - "value": "0.028787680961062274 t CO2/GJ" + "value": "0.0009324438746783442 CO2 * metric_ton / Fe_ton" }, { "year": 2049, - "value": "0.027283387446090542 t CO2/GJ" + "value": "0.000940332390060034 CO2 * metric_ton / Fe_ton" }, { "year": 2050, - "value": "0.025857700435833336 t CO2/GJ" + "value": "0.0009482876426219627 CO2 * metric_ton / Fe_ton" } ] }, - "S3": null, - "S1S2S3": null - }, - "country": null, - "ghg_s1s2": null, - "ghg_s3": null, - "industry_level_1": null, - "industry_level_2": null, - "industry_level_3": null, - "industry_level_4": null, - "company_revenue": null, - "company_market_cap": null, - "company_enterprise_value": null, - "company_total_assets": null, - "company_cash_equivalents": null - }, - { - "company_name": "Company AN", - "company_id": "US24703L1035", - "region": "Asia", - "sector": "Electricity Utilities", - "target_probability": 0.4285714285714285, - "historic_data": { - "productions": [ - { - "year": 2009, - "value": "5271868803.094344 GJ" - }, - { - "year": 2010, - "value": "5642576643.094344 GJ" - }, - { - "year": 2011, - "value": "5746580643.094344 GJ" - }, - { - "year": 2012, - "value": "5808127683.094344 GJ" - }, - { - "year": 2013, - "value": "5823226083.094344 GJ" - }, - { - "year": 2014, - "value": "5740165443.094344 GJ" - }, - { - "year": 2015, - "value": "5610643203.094344 GJ" - }, - { - "year": 2016, - "value": "5654577603.094344 GJ" + "S2": { + "ei_metric": { + "units": "CO2\u00b7t/Fe_ton" }, - { - "year": 2017, - "value": "5527232643.094344 GJ" - }, - { - "year": 2018, - "value": "5421517923.094344 GJ" - }, - { - "year": 2019, - "value": "5301547203.094344 GJ" - }, - { - "year": 2020, - "value": "5301547203.094344 GJ" - }, - { - "year": 2021, - "value": "5301547203.094344 GJ" - } - ], - "emissions": { - "S1": [ - { - "year": 2009, - "value": NaN - }, - { - "year": 2010, - "value": NaN - }, - { - "year": 2011, - "value": NaN - }, - { - "year": 2012, - "value": "1174220.85954061 t CO2" - }, - { - "year": 2013, - "value": "1310000.85954061 t CO2" - }, - { - "year": 2014, - "value": "1280000.85954061 t CO2" - }, - { - "year": 2015, - "value": "1150000.85954061 t CO2" - }, - { - "year": 2016, - "value": "1230000.85954061 t CO2" - }, - { - "year": 2017, - "value": "1290000.85954061 t CO2" - }, - { - "year": 2018, - "value": "1170000.85954061 t CO2" - }, + "projections": [ { "year": 2019, - "value": "910000.859540609 t CO2" + "value": "0.232151800012749 CO2 * metric_ton / Fe_ton" }, { "year": 2020, - "value": "910000.859540609 t CO2" + "value": "0.237082693391115 CO2 * metric_ton / Fe_ton" }, { "year": 2021, - "value": "910000.859540609 t CO2" - } - ], - "S2": [ - { - "year": 2009, - "value": NaN - }, - { - "year": 2010, - "value": NaN - }, - { - "year": 2011, - "value": NaN - }, - { - "year": 2012, - "value": "132861.859540609 t CO2" - }, - { - "year": 2013, - "value": "120000.859540609 t CO2" - }, - { - "year": 2014, - "value": "140000.859540609 t CO2" - }, - { - "year": 2015, - "value": "160000.859540609 t CO2" - }, - { - "year": 2016, - "value": "170000.859540609 t CO2" - }, - { - "year": 2017, - "value": "180000.859540609 t CO2" - }, - { - "year": 2018, - "value": "190000.859540609 t CO2" - }, - { - "year": 2019, - "value": "190000.859540609 t CO2" + "value": "0.237082693391115 CO2 * metric_ton / Fe_ton" }, { - "year": 2020, - "value": "190000.859540609 t CO2" + "year": 2022, + "value": "0.23908842319892087 CO2 * metric_ton / Fe_ton" }, { - "year": 2021, - "value": "190000.859540609 t CO2" - } - ], - "S1S2": [], - "S3": [], - "S1S2S3": [] - }, - "emissions_intensities": { - "S1": [ - { - "year": 2009, - "value": NaN + "year": 2023, + "value": "0.24111112156737693 CO2 * metric_ton / Fe_ton" }, { - "year": 2010, - "value": NaN + "year": 2024, + "value": "0.2431509320512379 CO2 * metric_ton / Fe_ton" }, { - "year": 2011, - "value": NaN + "year": 2025, + "value": "0.24520799941973784 CO2 * metric_ton / Fe_ton" }, { - "year": 2012, - "value": "0.0026201046481710228 t CO2/GJ" + "year": 2026, + "value": "0.24728246966686487 CO2 * metric_ton / Fe_ton" }, { - "year": 2013, - "value": "0.0029154992262681854 t CO2/GJ" + "year": 2027, + "value": "0.2493744900217225 CO2 * metric_ton / Fe_ton" }, { - "year": 2014, - "value": "0.002889953487247187 t CO2/GJ" + "year": 2028, + "value": "0.2514842089589787 CO2 * metric_ton / Fe_ton" }, { - "year": 2015, - "value": "0.0026563819156111223 t CO2/GJ" + "year": 2029, + "value": "0.2536117762094038 CO2 * metric_ton / Fe_ton" }, { - "year": 2016, - "value": "0.0028190984824265257 t CO2/GJ" + "year": 2030, + "value": "0.25575734277049655 CO2 * metric_ton / Fe_ton" }, { - "year": 2017, - "value": "0.003024734477303765 t CO2/GJ" + "year": 2031, + "value": "0.25792106091720135 CO2 * metric_ton / Fe_ton" }, { - "year": 2018, - "value": "0.0027968571449436134 t CO2/GJ" + "year": 2032, + "value": "0.26010308421271505 CO2 * metric_ton / Fe_ton" }, { - "year": 2019, - "value": "0.002224560243991176 t CO2/GJ" + "year": 2033, + "value": "0.26230356751938577 CO2 * metric_ton / Fe_ton" }, { - "year": 2020, - "value": "0.002224560243991176 t CO2/GJ" + "year": 2034, + "value": "0.2645226670097038 CO2 * metric_ton / Fe_ton" }, { - "year": 2021, - "value": "0.002224560243991176 t CO2/GJ" - } - ], - "S2": [ + "year": 2035, + "value": "0.26676054017738543 CO2 * metric_ton / Fe_ton" + }, { - "year": 2009, - "value": NaN + "year": 2036, + "value": "0.2690173458485506 CO2 * metric_ton / Fe_ton" }, { - "year": 2010, - "value": NaN + "year": 2037, + "value": "0.27129324419299494 CO2 * metric_ton / Fe_ton" }, { - "year": 2011, - "value": NaN + "year": 2038, + "value": "0.2735883967355577 CO2 * metric_ton / Fe_ton" }, { - "year": 2012, - "value": "0.0002964620947742204 t CO2/GJ" + "year": 2039, + "value": "0.275902966367585 CO2 * metric_ton / Fe_ton" }, { - "year": 2013, - "value": "0.000267070369148347 t CO2/GJ" + "year": 2040, + "value": "0.27823711735849094 CO2 * metric_ton / Fe_ton" }, { - "year": 2014, - "value": "0.00031609039105817065 t CO2/GJ" + "year": 2041, + "value": "0.2805910153674159 CO2 * metric_ton / Fe_ton" }, { - "year": 2015, - "value": "0.000369585280080306 t CO2/GJ" + "year": 2042, + "value": "0.2829648274549836 CO2 * metric_ton / Fe_ton" }, { - "year": 2016, - "value": "0.0003896331953142924 t CO2/GJ" + "year": 2043, + "value": "0.285358722095158 CO2 * metric_ton / Fe_ton" }, { - "year": 2017, - "value": "0.00042205770776825637 t CO2/GJ" + "year": 2044, + "value": "0.2877728691872 CO2 * metric_ton / Fe_ton" }, { - "year": 2018, - "value": "0.000454192197568326 t CO2/GJ" + "year": 2045, + "value": "0.2902074400677256 CO2 * metric_ton / Fe_ton" }, { - "year": 2019, - "value": "0.0004644702848649636 t CO2/GJ" + "year": 2046, + "value": "0.2926626075228659 CO2 * metric_ton / Fe_ton" }, { - "year": 2020, - "value": "0.0004644702848649636 t CO2/GJ" + "year": 2047, + "value": "0.2951385458005301 CO2 * metric_ton / Fe_ton" }, { - "year": 2021, - "value": "0.0004644702848649636 t CO2/GJ" + "year": 2048, + "value": "0.2976354306227724 CO2 * metric_ton / Fe_ton" + }, + { + "year": 2049, + "value": "0.300153439198263 CO2 * metric_ton / Fe_ton" + }, + { + "year": 2050, + "value": "0.302692750234865 CO2 * metric_ton / Fe_ton" } - ], - "S1S2": [], - "S3": [], - "S1S2S3": [] - } - }, - "projected_targets": null, - "projected_intensities": { + ] + }, "S1S2": { + "ei_metric": { + "units": "CO2\u00b7t/Fe_ton" + }, "projections": [ { "year": 2019, - "value": "0.0026890305288561397 t CO2/GJ" + "value": "0.23287909421782566 CO2 * metric_ton / Fe_ton" }, { "year": 2020, - "value": "0.0026890305288561397 t CO2/GJ" + "value": "0.23782543529110398 CO2 * metric_ton / Fe_ton" }, { "year": 2021, - "value": "0.0026890305288561397 t CO2/GJ" + "value": "0.23782543529110398 CO2 * metric_ton / Fe_ton" }, { "year": 2022, - "value": "0.0026890305288561397 t CO2/GJ" + "value": "0.23983744872740673 CO2 * metric_ton / Fe_ton" }, { "year": 2023, - "value": "0.0026890305288561397 t CO2/GJ" + "value": "0.2418664838841277 CO2 * metric_ton / Fe_ton" }, { "year": 2024, - "value": "0.0026890305288561397 t CO2/GJ" + "value": "0.24391268476575548 CO2 * metric_ton / Fe_ton" }, { "year": 2025, - "value": "0.0026890305288561397 t CO2/GJ" + "value": "0.2459761965950629 CO2 * metric_ton / Fe_ton" }, { "year": 2026, - "value": "0.0026890305288561397 t CO2/GJ" + "value": "0.24805716582341367 CO2 * metric_ton / Fe_ton" }, { "year": 2027, - "value": "0.0026890305288561397 t CO2/GJ" + "value": "0.2501557401411564 CO2 * metric_ton / Fe_ton" }, { "year": 2028, - "value": "0.0026890305288561397 t CO2/GJ" + "value": "0.25227206848810624 CO2 * metric_ton / Fe_ton" }, { "year": 2029, - "value": "0.0026890305288561397 t CO2/GJ" + "value": "0.25440630106411594 CO2 * metric_ton / Fe_ton" }, { "year": 2030, - "value": "0.0026890305288561397 t CO2/GJ" + "value": "0.2565585893397352 CO2 * metric_ton / Fe_ton" }, { "year": 2031, - "value": "0.0026890305288561397 t CO2/GJ" + "value": "0.25872908606696116 CO2 * metric_ton / Fe_ton" }, { "year": 2032, - "value": "0.0026890305288561397 t CO2/GJ" + "value": "0.26091794529007944 CO2 * metric_ton / Fe_ton" }, { "year": 2033, - "value": "0.0026890305288561397 t CO2/GJ" + "value": "0.2631253223565971 CO2 * metric_ton / Fe_ton" }, { "year": 2034, - "value": "0.0026890305288561397 t CO2/GJ" + "value": "0.26535137392826746 CO2 * metric_ton / Fe_ton" }, { "year": 2035, - "value": "0.0026890305288561397 t CO2/GJ" + "value": "0.26759625799220954 CO2 * metric_ton / Fe_ton" }, { "year": 2036, - "value": "0.0026890305288561397 t CO2/GJ" + "value": "0.2698601338721197 CO2 * metric_ton / Fe_ton" }, { "year": 2037, - "value": "0.0026890305288561397 t CO2/GJ" + "value": "0.2721431622395799 CO2 * metric_ton / Fe_ton" }, { "year": 2038, - "value": "0.0026890305288561397 t CO2/GJ" + "value": "0.27444550512546056 CO2 * metric_ton / Fe_ton" }, { "year": 2039, - "value": "0.0026890305288561397 t CO2/GJ" + "value": "0.27676732593142034 CO2 * metric_ton / Fe_ton" }, { "year": 2040, - "value": "0.0026890305288561397 t CO2/GJ" + "value": "0.2791087894415028 CO2 * metric_ton / Fe_ton" }, { "year": 2041, - "value": "0.0026890305288561397 t CO2/GJ" + "value": "0.2814700618338318 CO2 * metric_ton / Fe_ton" }, { "year": 2042, - "value": "0.0026890305288561397 t CO2/GJ" + "value": "0.28385131069240505 CO2 * metric_ton / Fe_ton" }, { "year": 2043, - "value": "0.0026890305288561397 t CO2/GJ" + "value": "0.2862527050189884 CO2 * metric_ton / Fe_ton" }, { "year": 2044, - "value": "0.0026890305288561397 t CO2/GJ" + "value": "0.28867441524510973 CO2 * metric_ton / Fe_ton" }, { "year": 2045, - "value": "0.0026890305288561397 t CO2/GJ" + "value": "0.291116613244155 CO2 * metric_ton / Fe_ton" }, { "year": 2046, - "value": "0.0026890305288561397 t CO2/GJ" + "value": "0.29357947234356646 CO2 * metric_ton / Fe_ton" }, { "year": 2047, - "value": "0.0026890305288561397 t CO2/GJ" + "value": "0.29606316733714405 CO2 * metric_ton / Fe_ton" }, { "year": 2048, - "value": "0.0026890305288561397 t CO2/GJ" + "value": "0.29856787449745076 CO2 * metric_ton / Fe_ton" }, { "year": 2049, - "value": "0.0026890305288561397 t CO2/GJ" + "value": "0.301093771588323 CO2 * metric_ton / Fe_ton" }, { "year": 2050, - "value": "0.0026890305288561397 t CO2/GJ" + "value": "0.303641037877487 CO2 * metric_ton / Fe_ton" } ] }, "S3": null, "S1S2S3": null - }, - "country": null, - "ghg_s1s2": null, - "ghg_s3": null, - "industry_level_1": null, - "industry_level_2": null, - "industry_level_3": null, - "industry_level_4": null, - "company_revenue": null, - "company_market_cap": null, - "company_enterprise_value": null, - "company_total_assets": null, - "company_cash_equivalents": null + } }, { - "company_name": "Company AO", - "company_id": "TW0002308004", - "region": "Europe", - "sector": "Electricity Utilities", + "company_name": "Company C", + "company_id": "IT0000000003", + "region": "Asia", + "sector": "Steel", "target_probability": 0.4285714285714285, + "target_data": null, "historic_data": { "productions": [ { "year": 2009, - "value": NaN + "value": "nan Fe_ton" }, { "year": 2010, - "value": NaN + "value": "nan Fe_ton" }, { "year": 2011, - "value": NaN + "value": "nan Fe_ton" }, { "year": 2012, - "value": "76114085.42779164 GJ" + "value": "nan Fe_ton" }, { "year": 2013, - "value": "76114085.42779164 GJ" + "value": "nan Fe_ton" }, { "year": 2014, - "value": "76114085.42779164 GJ" + "value": "19374009.677026 Fe_ton" }, { "year": 2015, - "value": "76114085.42779164 GJ" + "value": "21182009.677026 Fe_ton" }, { "year": 2016, - "value": "76114085.42779164 GJ" + "value": "22380009.677026 Fe_ton" }, { "year": 2017, - "value": "76114085.42779164 GJ" + "value": "23290009.677026 Fe_ton" }, { "year": 2018, - "value": "76114085.42779164 GJ" + "value": "23763009.677026 Fe_ton" }, { "year": 2019, - "value": "76114085.42779164 GJ" + "value": "23303009.677026 Fe_ton" }, { "year": 2020, - "value": "76114085.42779164 GJ" + "value": "23303009.677026 Fe_ton" }, { "year": 2021, - "value": "76114085.42779164 GJ" + "value": "23303009.677026 Fe_ton" } ], "emissions": { "S1": [ { "year": 2009, - "value": "11074001.5077199 t CO2" + "value": "nan CO2 * metric_ton" }, { "year": 2010, - "value": "8500001.50771989 t CO2" + "value": "766009.677026013 CO2 * metric_ton" }, { "year": 2011, - "value": "9328837.50771989 t CO2" + "value": "10247400.677026 CO2 * metric_ton" }, { "year": 2012, - "value": "8328346.50771989 t CO2" + "value": "10197994.677026 CO2 * metric_ton" }, { "year": 2013, - "value": "7914001.50771989 t CO2" + "value": "11080009.677026 CO2 * metric_ton" }, { "year": 2014, - "value": "7250001.50771989 t CO2" + "value": "13317009.677026 CO2 * metric_ton" }, { "year": 2015, - "value": "7020001.50771989 t CO2" + "value": "14157009.677026 CO2 * metric_ton" }, { "year": 2016, - "value": "7038001.50771989 t CO2" + "value": "15622009.677026 CO2 * metric_ton" }, { "year": 2017, - "value": "5800001.50771989 t CO2" + "value": "15710009.677026 CO2 * metric_ton" }, { "year": 2018, - "value": "4000001.50771989 t CO2" + "value": "16492009.677026 CO2 * metric_ton" }, { "year": 2019, - "value": "4500001.50771989 t CO2" + "value": "16442009.677026 CO2 * metric_ton" }, { "year": 2020, - "value": "4500001.50771989 t CO2" + "value": "16442009.677026 CO2 * metric_ton" }, { "year": 2021, - "value": "4500001.50771989 t CO2" + "value": "16442009.677026 CO2 * metric_ton" } ], "S2": [ { "year": 2009, - "value": "266001.507719888 t CO2" + "value": "nan CO2 * metric_ton" }, { "year": 2010, - "value": "350001.507719888 t CO2" + "value": "3518009.67702601 CO2 * metric_ton" }, { "year": 2011, - "value": "329353.507719888 t CO2" + "value": "4342232.67702601 CO2 * metric_ton" }, { "year": 2012, - "value": "319181.507719888 t CO2" + "value": "4164848.67702601 CO2 * metric_ton" }, { "year": 2013, - "value": "250001.507719888 t CO2" + "value": "4818009.67702601 CO2 * metric_ton" }, { "year": 2014, - "value": "220001.507719888 t CO2" + "value": "5480009.67702601 CO2 * metric_ton" }, { "year": 2015, - "value": "230001.507719888 t CO2" + "value": "5416009.67702601 CO2 * metric_ton" }, { "year": 2016, - "value": "247001.507719888 t CO2" + "value": "5653009.67702601 CO2 * metric_ton" }, { "year": 2017, - "value": "3400001.50771989 t CO2" + "value": "5769009.67702601 CO2 * metric_ton" }, { "year": 2018, - "value": "2900001.50771989 t CO2" + "value": "5806009.67702601 CO2 * metric_ton" }, { "year": 2019, - "value": "2500001.50771989 t CO2" + "value": "5803009.67702601 CO2 * metric_ton" }, { "year": 2020, - "value": "2500001.50771989 t CO2" + "value": "5803009.67702601 CO2 * metric_ton" }, { "year": 2021, - "value": "2500001.50771989 t CO2" + "value": "5803009.67702601 CO2 * metric_ton" } ], "S1S2": [], @@ -3410,109 +13073,109 @@ "S1": [ { "year": 2009, - "value": NaN + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2010, - "value": NaN + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2011, - "value": NaN + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2012, - "value": "1.418073542280774 t CO2/GJ" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2013, - "value": "1.3475227214987966 t CO2/GJ" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2014, - "value": "1.2344629645348417 t CO2/GJ" + "value": "0.687364665292674 CO2 * metric_ton / Fe_ton" }, { "year": 2015, - "value": "1.195300699321421 t CO2/GJ" + "value": "0.66835063777639 CO2 * metric_ton / Fe_ton" }, { "year": 2016, - "value": "1.1983655722511666 t CO2/GJ" + "value": "0.698034089460767 CO2 * metric_ton / Fe_ton" }, { "year": 2017, - "value": "0.9875704229719812 t CO2/GJ" + "value": "0.67453856373975 CO2 * metric_ton / Fe_ton" }, { "year": 2018, - "value": "0.6810831299973996 t CO2/GJ" + "value": "0.694020239909696 CO2 * metric_ton / Fe_ton" }, { "year": 2019, - "value": "0.7662184891570044 t CO2/GJ" + "value": "0.705574511829511 CO2 * metric_ton / Fe_ton" }, { "year": 2020, - "value": "0.7662184891570044 t CO2/GJ" + "value": "0.705574511829511 CO2 * metric_ton / Fe_ton" }, { "year": 2021, - "value": "0.7662184891570044 t CO2/GJ" + "value": "0.705574511829511 CO2 * metric_ton / Fe_ton" } ], "S2": [ { "year": 2009, - "value": NaN + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2010, - "value": NaN + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2011, - "value": NaN + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2012, - "value": "0.05434726459367484 t CO2/GJ" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2013, - "value": "0.04256793630035172 t CO2/GJ" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2014, - "value": "0.037459814750775366 t CO2/GJ" + "value": "0.282853666761831 CO2 * metric_ton / Fe_ton" }, { "year": 2015, - "value": "0.03916252193396724 t CO2/GJ" + "value": "0.255689132410331 CO2 * metric_ton / Fe_ton" }, { "year": 2016, - "value": "0.04205712414539412 t CO2/GJ" + "value": "0.252591922818919 CO2 * metric_ton / Fe_ton" }, { "year": 2017, - "value": "0.5789206990058725 t CO2/GJ" + "value": "0.247703189351473 CO2 * metric_ton / Fe_ton" }, { "year": 2018, - "value": "0.493785339846264 t CO2/GJ" + "value": "0.244329727418293 CO2 * metric_ton / Fe_ton" }, { "year": 2019, - "value": "0.4256770525185816 t CO2/GJ" + "value": "0.249024042707543 CO2 * metric_ton / Fe_ton" }, { "year": 2020, - "value": "0.4256770525185816 t CO2/GJ" + "value": "0.249024042707543 CO2 * metric_ton / Fe_ton" }, { "year": 2021, - "value": "0.4256770525185816 t CO2/GJ" + "value": "0.249024042707543 CO2 * metric_ton / Fe_ton" } ], "S1S2": [], @@ -3520,762 +13183,606 @@ "S1S2S3": [] } }, + "country": null, + "emissions_metric": { + "units": "t CO2" + }, + "production_metric": { + "units": "Fe_ton" + }, + "base_year_production": "23303009.677026 Fe_ton", + "ghg_s1s2": "22245019.35405201 CO2 * metric_ton", + "ghg_s3": null, + "industry_level_1": null, + "industry_level_2": null, + "industry_level_3": null, + "industry_level_4": null, + "company_revenue": null, + "company_market_cap": null, + "company_enterprise_value": null, + "company_ev_plus_cash": null, + "company_total_assets": null, + "company_cash_equivalents": null, "projected_targets": null, "projected_intensities": { - "S1S2": { + "S1": { + "ei_metric": { + "units": "CO2\u00b7t/Fe_ton" + }, "projections": [ { "year": 2019, - "value": "1.191895541675586 t CO2/GJ" + "value": "0.705574511829511 CO2 * metric_ton / Fe_ton" }, { "year": 2020, - "value": "1.191895541675586 t CO2/GJ" + "value": "0.705574511829511 CO2 * metric_ton / Fe_ton" }, { "year": 2021, - "value": "1.191895541675586 t CO2/GJ" + "value": "0.705574511829511 CO2 * metric_ton / Fe_ton" }, { "year": 2022, - "value": "1.191895541675586 t CO2/GJ" + "value": "0.705574511829511 CO2 * metric_ton / Fe_ton" }, { "year": 2023, - "value": "1.191895541675586 t CO2/GJ" + "value": "0.705574511829511 CO2 * metric_ton / Fe_ton" }, { "year": 2024, - "value": "1.191895541675586 t CO2/GJ" + "value": "0.705574511829511 CO2 * metric_ton / Fe_ton" }, { "year": 2025, - "value": "1.191895541675586 t CO2/GJ" + "value": "0.705574511829511 CO2 * metric_ton / Fe_ton" }, { "year": 2026, - "value": "1.191895541675586 t CO2/GJ" + "value": "0.705574511829511 CO2 * metric_ton / Fe_ton" }, { "year": 2027, - "value": "1.191895541675586 t CO2/GJ" + "value": "0.705574511829511 CO2 * metric_ton / Fe_ton" }, { "year": 2028, - "value": "1.191895541675586 t CO2/GJ" + "value": "0.705574511829511 CO2 * metric_ton / Fe_ton" }, { "year": 2029, - "value": "1.191895541675586 t CO2/GJ" + "value": "0.705574511829511 CO2 * metric_ton / Fe_ton" }, { "year": 2030, - "value": "1.191895541675586 t CO2/GJ" + "value": "0.705574511829511 CO2 * metric_ton / Fe_ton" }, { "year": 2031, - "value": "1.191895541675586 t CO2/GJ" + "value": "0.705574511829511 CO2 * metric_ton / Fe_ton" }, { "year": 2032, - "value": "1.191895541675586 t CO2/GJ" + "value": "0.705574511829511 CO2 * metric_ton / Fe_ton" }, { "year": 2033, - "value": "1.191895541675586 t CO2/GJ" + "value": "0.705574511829511 CO2 * metric_ton / Fe_ton" }, { "year": 2034, - "value": "1.191895541675586 t CO2/GJ" + "value": "0.705574511829511 CO2 * metric_ton / Fe_ton" }, { "year": 2035, - "value": "1.191895541675586 t CO2/GJ" + "value": "0.705574511829511 CO2 * metric_ton / Fe_ton" }, { "year": 2036, - "value": "1.191895541675586 t CO2/GJ" + "value": "0.705574511829511 CO2 * metric_ton / Fe_ton" }, { "year": 2037, - "value": "1.191895541675586 t CO2/GJ" + "value": "0.705574511829511 CO2 * metric_ton / Fe_ton" }, { "year": 2038, - "value": "1.191895541675586 t CO2/GJ" + "value": "0.705574511829511 CO2 * metric_ton / Fe_ton" }, { "year": 2039, - "value": "1.191895541675586 t CO2/GJ" + "value": "0.705574511829511 CO2 * metric_ton / Fe_ton" }, { "year": 2040, - "value": "1.191895541675586 t CO2/GJ" + "value": "0.705574511829511 CO2 * metric_ton / Fe_ton" }, { "year": 2041, - "value": "1.191895541675586 t CO2/GJ" + "value": "0.705574511829511 CO2 * metric_ton / Fe_ton" }, { "year": 2042, - "value": "1.191895541675586 t CO2/GJ" + "value": "0.705574511829511 CO2 * metric_ton / Fe_ton" }, { "year": 2043, - "value": "1.191895541675586 t CO2/GJ" + "value": "0.705574511829511 CO2 * metric_ton / Fe_ton" }, { "year": 2044, - "value": "1.191895541675586 t CO2/GJ" + "value": "0.705574511829511 CO2 * metric_ton / Fe_ton" }, { "year": 2045, - "value": "1.191895541675586 t CO2/GJ" + "value": "0.705574511829511 CO2 * metric_ton / Fe_ton" }, { "year": 2046, - "value": "1.191895541675586 t CO2/GJ" + "value": "0.705574511829511 CO2 * metric_ton / Fe_ton" }, { "year": 2047, - "value": "1.191895541675586 t CO2/GJ" + "value": "0.705574511829511 CO2 * metric_ton / Fe_ton" }, { "year": 2048, - "value": "1.191895541675586 t CO2/GJ" + "value": "0.705574511829511 CO2 * metric_ton / Fe_ton" }, { "year": 2049, - "value": "1.191895541675586 t CO2/GJ" + "value": "0.705574511829511 CO2 * metric_ton / Fe_ton" }, { "year": 2050, - "value": "1.191895541675586 t CO2/GJ" + "value": "0.705574511829511 CO2 * metric_ton / Fe_ton" } ] }, - "S3": null, - "S1S2S3": null - }, - "country": null, - "ghg_s1s2": null, - "ghg_s3": null, - "industry_level_1": null, - "industry_level_2": null, - "industry_level_3": null, - "industry_level_4": null, - "company_revenue": null, - "company_market_cap": null, - "company_enterprise_value": null, - "company_total_assets": null, - "company_cash_equivalents": null - }, - { - "company_name": "Company AP", - "company_id": "FR0000120321", - "region": "Asia", - "sector": "Electricity Utilities", - "target_probability": 0.4285714285714285, - "historic_data": { - "productions": [ - { - "year": 2009, - "value": NaN - }, - { - "year": 2010, - "value": "2836166403.246948 GJ" - }, - { - "year": 2011, - "value": "2858198403.246948 GJ" - }, - { - "year": 2012, - "value": "2878027203.246948 GJ" - }, - { - "year": 2013, - "value": "3007082883.246948 GJ" - }, - { - "year": 2014, - "value": "3023360643.246948 GJ" - }, - { - "year": 2015, - "value": "3126729603.246948 GJ" - }, - { - "year": 2016, - "value": "3136060803.246948 GJ" - }, - { - "year": 2017, - "value": "3244017603.246948 GJ" - }, - { - "year": 2018, - "value": "3444768003.246948 GJ" - }, - { - "year": 2019, - "value": "3556872003.246948 GJ" + "S2": { + "ei_metric": { + "units": "CO2\u00b7t/Fe_ton" }, - { - "year": 2020, - "value": "3364675203.246948 GJ" - }, - { - "year": 2021, - "value": "3364675203.246948 GJ" - } - ], - "emissions": { - "S1": [ - { - "year": 2009, - "value": NaN - }, - { - "year": 2010, - "value": "185584163.90193 t CO2" - }, - { - "year": 2011, - "value": "188513981.90193 t CO2" - }, - { - "year": 2012, - "value": "189986958.90193 t CO2" - }, - { - "year": 2013, - "value": "200994691.90193 t CO2" - }, - { - "year": 2014, - "value": "201036494.90193 t CO2" - }, - { - "year": 2015, - "value": "213050961.90193 t CO2" - }, - { - "year": 2016, - "value": "231671486.101929 t CO2" - }, - { - "year": 2017, - "value": "221222495.90193 t CO2" - }, - { - "year": 2018, - "value": "231986764.90193 t CO2" - }, + "projections": [ { "year": 2019, - "value": "240369173.90193 t CO2" + "value": "0.249024042707543 CO2 * metric_ton / Fe_ton" }, { "year": 2020, - "value": "226132940.90193 t CO2" + "value": "0.249024042707543 CO2 * metric_ton / Fe_ton" }, { "year": 2021, - "value": "226132940.90193 t CO2" - } - ], - "S2": [ - { - "year": 2009, - "value": NaN - }, - { - "year": 2010, - "value": NaN - }, - { - "year": 2011, - "value": NaN - }, - { - "year": 2012, - "value": "0.901929562977962 t CO2" - }, - { - "year": 2013, - "value": "0.901929562977962 t CO2" - }, - { - "year": 2014, - "value": "0.901929562977962 t CO2" - }, - { - "year": 2015, - "value": "6235.05442956298 t CO2" - }, - { - "year": 2016, - "value": "12469.206929563 t CO2" - }, - { - "year": 2017, - "value": "18703.359429563 t CO2" - }, - { - "year": 2018, - "value": "24937.511929563 t CO2" + "value": "0.249024042707543 CO2 * metric_ton / Fe_ton" }, { - "year": 2019, - "value": "23268.401929563 t CO2" - }, - { - "year": 2020, - "value": "15845.901929563 t CO2" - }, - { - "year": 2021, - "value": "15845.901929563 t CO2" - } - ], - "S1S2": [], - "S3": [], - "S1S2S3": [] - }, - "emissions_intensities": { - "S1": [ - { - "year": 2009, - "value": NaN + "year": 2022, + "value": "0.2480066075295141 CO2 * metric_ton / Fe_ton" }, { - "year": 2010, - "value": "0.848035842119658 t CO2/GJ" + "year": 2023, + "value": "0.24699332927677733 CO2 * metric_ton / Fe_ton" }, { - "year": 2011, - "value": "0.8547836296716036 t CO2/GJ" + "year": 2024, + "value": "0.24598419096542237 CO2 * metric_ton / Fe_ton" }, { - "year": 2012, - "value": "0.8555273503291261 t CO2/GJ" + "year": 2025, + "value": "0.24497917568092983 CO2 * metric_ton / Fe_ton" }, { - "year": 2013, - "value": "0.8662518820353672 t CO2/GJ" + "year": 2026, + "value": "0.24397826657788782 CO2 * metric_ton / Fe_ton" }, { - "year": 2014, - "value": "0.8617671794294748 t CO2/GJ" + "year": 2027, + "value": "0.24298144687970957 CO2 * metric_ton / Fe_ton" }, { - "year": 2015, - "value": "0.8830761903369287 t CO2/GJ" + "year": 2028, + "value": "0.24198869987835228 CO2 * metric_ton / Fe_ton" }, { - "year": 2016, - "value": "0.95739931342287 t CO2/GJ" + "year": 2029, + "value": "0.24100000893403706 CO2 * metric_ton / Fe_ton" }, { - "year": 2017, - "value": "0.8837940780652285 t CO2/GJ" + "year": 2030, + "value": "0.24001535747496994 CO2 * metric_ton / Fe_ton" }, { - "year": 2018, - "value": "0.8727869250687168 t CO2/GJ" + "year": 2031, + "value": "0.23903472899706424 CO2 * metric_ton / Fe_ton" }, { - "year": 2019, - "value": "0.8758213652122596 t CO2/GJ" + "year": 2032, + "value": "0.23805810706366384 CO2 * metric_ton / Fe_ton" }, { - "year": 2020, - "value": "0.8710151016243313 t CO2/GJ" + "year": 2033, + "value": "0.23708547530526772 CO2 * metric_ton / Fe_ton" }, { - "year": 2021, - "value": "0.8710151016243313 t CO2/GJ" - } - ], - "S2": [ + "year": 2034, + "value": "0.23611681741925558 CO2 * metric_ton / Fe_ton" + }, { - "year": 2009, - "value": NaN + "year": 2035, + "value": "0.23515211716961457 CO2 * metric_ton / Fe_ton" }, { - "year": 2010, - "value": NaN + "year": 2036, + "value": "0.23419135838666716 CO2 * metric_ton / Fe_ton" }, { - "year": 2011, - "value": NaN + "year": 2037, + "value": "0.2332345249668001 CO2 * metric_ton / Fe_ton" }, { - "year": 2012, - "value": "4.061465132437621e-09 t CO2/GJ" + "year": 2038, + "value": "0.2322816008721946 CO2 * metric_ton / Fe_ton" }, { - "year": 2013, - "value": "3.887158282638696e-09 t CO2/GJ" + "year": 2039, + "value": "0.23133257013055736 CO2 * metric_ton / Fe_ton" }, { - "year": 2014, - "value": "3.866229840063312e-09 t CO2/GJ" + "year": 2040, + "value": "0.23038741683485295 CO2 * metric_ton / Fe_ton" }, { - "year": 2015, - "value": "2.5843713931394353e-05 t CO2/GJ" + "year": 2041, + "value": "0.22944612514303717 CO2 * metric_ton / Fe_ton" }, { - "year": 2016, - "value": "5.15299070859282e-05 t CO2/GJ" + "year": 2042, + "value": "0.22850867927779148 CO2 * metric_ton / Fe_ton" }, { - "year": 2017, - "value": "7.472078387137044e-05 t CO2/GJ" + "year": 2043, + "value": "0.22757506352625861 CO2 * metric_ton / Fe_ton" }, { - "year": 2018, - "value": "9.382058655401627e-05 t CO2/GJ" + "year": 2044, + "value": "0.22664526223977918 CO2 * metric_ton / Fe_ton" }, { - "year": 2019, - "value": "8.478193444460569e-05 t CO2/GJ" + "year": 2045, + "value": "0.22571925983362937 CO2 * metric_ton / Fe_ton" }, { - "year": 2020, - "value": "6.103498156641072e-05 t CO2/GJ" + "year": 2046, + "value": "0.2247970407867597 CO2 * metric_ton / Fe_ton" }, { - "year": 2021, - "value": "6.103498156641072e-05 t CO2/GJ" + "year": 2047, + "value": "0.2238785896415349 CO2 * metric_ton / Fe_ton" + }, + { + "year": 2048, + "value": "0.22296389100347483 CO2 * metric_ton / Fe_ton" + }, + { + "year": 2049, + "value": "0.22205292954099645 CO2 * metric_ton / Fe_ton" + }, + { + "year": 2050, + "value": "0.2211456899851568 CO2 * metric_ton / Fe_ton" } - ], - "S1S2": [], - "S3": [], - "S1S2S3": [] - } - }, - "projected_targets": null, - "projected_intensities": { + ] + }, "S1S2": { + "ei_metric": { + "units": "CO2\u00b7t/Fe_ton" + }, "projections": [ { "year": 2019, - "value": "0.8759061471467042 t CO2/GJ" + "value": "0.954598554537054 CO2 * metric_ton / Fe_ton" }, { "year": 2020, - "value": "0.8710761366058977 t CO2/GJ" + "value": "0.954598554537054 CO2 * metric_ton / Fe_ton" }, { "year": 2021, - "value": "0.8710761366058977 t CO2/GJ" + "value": "0.954598554537054 CO2 * metric_ton / Fe_ton" }, { "year": 2022, - "value": "0.8710761366058977 t CO2/GJ" + "value": "0.9535811193590251 CO2 * metric_ton / Fe_ton" }, { "year": 2023, - "value": "0.8710761366058977 t CO2/GJ" + "value": "0.9525678411062883 CO2 * metric_ton / Fe_ton" }, { "year": 2024, - "value": "0.8710761366058977 t CO2/GJ" + "value": "0.9515587027949334 CO2 * metric_ton / Fe_ton" }, { "year": 2025, - "value": "0.8710761366058977 t CO2/GJ" + "value": "0.9505536875104409 CO2 * metric_ton / Fe_ton" }, { "year": 2026, - "value": "0.8710761366058977 t CO2/GJ" + "value": "0.9495527784073988 CO2 * metric_ton / Fe_ton" }, { "year": 2027, - "value": "0.8710761366058977 t CO2/GJ" + "value": "0.9485559587092206 CO2 * metric_ton / Fe_ton" }, { "year": 2028, - "value": "0.8710761366058977 t CO2/GJ" + "value": "0.9475632117078633 CO2 * metric_ton / Fe_ton" }, { "year": 2029, - "value": "0.8710761366058977 t CO2/GJ" + "value": "0.9465745207635481 CO2 * metric_ton / Fe_ton" }, { "year": 2030, - "value": "0.8710761366058977 t CO2/GJ" + "value": "0.945589869304481 CO2 * metric_ton / Fe_ton" }, { "year": 2031, - "value": "0.8710761366058977 t CO2/GJ" + "value": "0.9446092408265753 CO2 * metric_ton / Fe_ton" }, { "year": 2032, - "value": "0.8710761366058977 t CO2/GJ" + "value": "0.9436326188931748 CO2 * metric_ton / Fe_ton" }, { "year": 2033, - "value": "0.8710761366058977 t CO2/GJ" + "value": "0.9426599871347787 CO2 * metric_ton / Fe_ton" }, { "year": 2034, - "value": "0.8710761366058977 t CO2/GJ" + "value": "0.9416913292487666 CO2 * metric_ton / Fe_ton" }, { "year": 2035, - "value": "0.8710761366058977 t CO2/GJ" + "value": "0.9407266289991256 CO2 * metric_ton / Fe_ton" }, { "year": 2036, - "value": "0.8710761366058977 t CO2/GJ" + "value": "0.9397658702161782 CO2 * metric_ton / Fe_ton" }, { "year": 2037, - "value": "0.8710761366058977 t CO2/GJ" + "value": "0.9388090367963111 CO2 * metric_ton / Fe_ton" }, { "year": 2038, - "value": "0.8710761366058977 t CO2/GJ" + "value": "0.9378561127017057 CO2 * metric_ton / Fe_ton" }, { "year": 2039, - "value": "0.8710761366058977 t CO2/GJ" + "value": "0.9369070819600684 CO2 * metric_ton / Fe_ton" }, { "year": 2040, - "value": "0.8710761366058977 t CO2/GJ" + "value": "0.935961928664364 CO2 * metric_ton / Fe_ton" }, { "year": 2041, - "value": "0.8710761366058977 t CO2/GJ" + "value": "0.9350206369725482 CO2 * metric_ton / Fe_ton" }, { "year": 2042, - "value": "0.8710761366058977 t CO2/GJ" + "value": "0.9340831911073025 CO2 * metric_ton / Fe_ton" }, { "year": 2043, - "value": "0.8710761366058977 t CO2/GJ" + "value": "0.9331495753557697 CO2 * metric_ton / Fe_ton" }, { "year": 2044, - "value": "0.8710761366058977 t CO2/GJ" + "value": "0.9322197740692902 CO2 * metric_ton / Fe_ton" }, { "year": 2045, - "value": "0.8710761366058977 t CO2/GJ" + "value": "0.9312937716631404 CO2 * metric_ton / Fe_ton" }, { "year": 2046, - "value": "0.8710761366058977 t CO2/GJ" + "value": "0.9303715526162707 CO2 * metric_ton / Fe_ton" }, { "year": 2047, - "value": "0.8710761366058977 t CO2/GJ" + "value": "0.9294531014710459 CO2 * metric_ton / Fe_ton" }, { "year": 2048, - "value": "0.8710761366058977 t CO2/GJ" + "value": "0.9285384028329858 CO2 * metric_ton / Fe_ton" }, { "year": 2049, - "value": "0.8710761366058977 t CO2/GJ" + "value": "0.9276274413705075 CO2 * metric_ton / Fe_ton" }, { "year": 2050, - "value": "0.8710761366058977 t CO2/GJ" + "value": "0.9267202018146679 CO2 * metric_ton / Fe_ton" } ] }, "S3": null, "S1S2S3": null - }, - "country": null, - "ghg_s1s2": null, - "ghg_s3": null, - "industry_level_1": null, - "industry_level_2": null, - "industry_level_3": null, - "industry_level_4": null, - "company_revenue": null, - "company_market_cap": null, - "company_enterprise_value": null, - "company_total_assets": null, - "company_cash_equivalents": null + } }, { - "company_name": "Company AQ", - "company_id": "CH0038863350", + "company_name": "Company D", + "company_id": "SE0000000004", "region": "Asia", - "sector": "Electricity Utilities", + "sector": "Steel", "target_probability": 0.4285714285714285, + "target_data": null, "historic_data": { "productions": [ { "year": 2009, - "value": NaN + "value": "nan Fe_ton" }, { "year": 2010, - "value": "125595364.15776384 GJ" + "value": "nan Fe_ton" }, { "year": 2011, - "value": "127565284.15776384 GJ" + "value": "nan Fe_ton" }, { "year": 2012, - "value": "138062884.15776384 GJ" + "value": "nan Fe_ton" }, { "year": 2013, - "value": "203459044.15776384 GJ" + "value": "nan Fe_ton" }, { "year": 2014, - "value": "222847204.15776384 GJ" + "value": "31580000.2335485 Fe_ton" }, { "year": 2015, - "value": "258448324.15776387 GJ" + "value": "31040000.2335485 Fe_ton" }, { "year": 2016, - "value": "260094244.15776387 GJ" + "value": "29751000.2335485 Fe_ton" }, { "year": 2017, - "value": "263023204.15776387 GJ" + "value": "30410000.2335485 Fe_ton" }, { "year": 2018, - "value": "279689764.1577639 GJ" + "value": "29145000.2335485 Fe_ton" }, { "year": 2019, - "value": "262841764.15776387 GJ" + "value": "27880000.2335485 Fe_ton" }, { "year": 2020, - "value": "236895844.15776384 GJ" + "value": "28090000.2335485 Fe_ton" }, { "year": 2021, - "value": "236895844.15776384 GJ" + "value": "28090000.2335485 Fe_ton" } ], "emissions": { "S1": [ { "year": 2009, - "value": NaN + "value": "nan CO2 * metric_ton" }, { "year": 2010, - "value": "1968704.15493443 t CO2" + "value": "nan CO2 * metric_ton" }, { "year": 2011, - "value": "2832949.15493443 t CO2" + "value": "nan CO2 * metric_ton" }, { "year": 2012, - "value": "12866001.1549344 t CO2" + "value": "nan CO2 * metric_ton" }, { "year": 2013, - "value": "13663001.1549344 t CO2" + "value": "nan CO2 * metric_ton" }, { "year": 2014, - "value": "14934001.1549344 t CO2" + "value": "nan CO2 * metric_ton" }, { "year": 2015, - "value": "16918001.1549344 t CO2" + "value": "nan CO2 * metric_ton" }, { "year": 2016, - "value": "16977001.1549344 t CO2" + "value": "54700000.2335485 CO2 * metric_ton" }, { "year": 2017, - "value": "17293001.1549344 t CO2" + "value": "55000000.2335485 CO2 * metric_ton" }, { "year": 2018, - "value": "18162001.1549344 t CO2" + "value": "54900000.2335485 CO2 * metric_ton" }, { "year": 2019, - "value": "17976001.1549344 t CO2" + "value": "52300000.2335485 CO2 * metric_ton" }, { "year": 2020, - "value": "16065001.1549344 t CO2" + "value": "52900000.2335485 CO2 * metric_ton" }, { "year": 2021, - "value": "16065001.1549344 t CO2" + "value": "52900000.2335485 CO2 * metric_ton" } ], "S2": [ { "year": 2009, - "value": NaN + "value": "nan CO2 * metric_ton" }, { "year": 2010, - "value": "52966.1549344293 t CO2" + "value": "nan CO2 * metric_ton" }, { "year": 2011, - "value": "58302.1549344293 t CO2" + "value": "nan CO2 * metric_ton" }, { "year": 2012, - "value": "61001.1549344293 t CO2" + "value": "nan CO2 * metric_ton" }, { "year": 2013, - "value": "202001.154934429 t CO2" + "value": "nan CO2 * metric_ton" }, { "year": 2014, - "value": "130001.154934429 t CO2" + "value": "nan CO2 * metric_ton" }, { "year": 2015, - "value": "409001.154934429 t CO2" + "value": "nan CO2 * metric_ton" }, { "year": 2016, - "value": "1265001.15493443 t CO2" + "value": "6600000.23354846 CO2 * metric_ton" }, { "year": 2017, - "value": "1818001.15493443 t CO2" + "value": "6400000.23354846 CO2 * metric_ton" }, { "year": 2018, - "value": "2090001.15493443 t CO2" + "value": "7400000.23354846 CO2 * metric_ton" }, { "year": 2019, - "value": "2289001.15493443 t CO2" + "value": "7500000.23354846 CO2 * metric_ton" }, { "year": 2020, - "value": "2403001.15493443 t CO2" + "value": "7600000.23354846 CO2 * metric_ton" }, { "year": 2021, - "value": "2403001.15493443 t CO2" + "value": "7600000.23354846 CO2 * metric_ton" } ], "S1S2": [], @@ -4286,109 +13793,109 @@ "S1": [ { "year": 2009, - "value": NaN + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2010, - "value": "0.20314767204226442 t CO2/GJ" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2011, - "value": "0.28781357945742975 t CO2/GJ" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2012, - "value": "1.207734982396956 t CO2/GJ" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2013, - "value": "0.8703102666237157 t CO2/GJ" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2014, - "value": "0.8685083382555276 t CO2/GJ" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2015, - "value": "0.8483602889764117 t CO2/GJ" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2016, - "value": "0.84593158022556 t CO2/GJ" + "value": "1.83859365413424 CO2 * metric_ton / Fe_ton" }, { "year": 2017, - "value": "0.852081836983182 t CO2/GJ" + "value": "1.80861558076781 CO2 * metric_ton / Fe_ton" }, { "year": 2018, - "value": "0.841573647418788 t CO2/GJ" + "value": "1.8836850160788 CO2 * metric_ton / Fe_ton" }, { "year": 2019, - "value": "0.8863468700054724 t CO2/GJ" + "value": "1.87589669280616 CO2 * metric_ton / Fe_ton" }, { "year": 2020, - "value": "0.8788774480539012 t CO2/GJ" + "value": "1.88323245972668 CO2 * metric_ton / Fe_ton" }, { "year": 2021, - "value": "0.8788774480539012 t CO2/GJ" + "value": "1.88323245972668 CO2 * metric_ton / Fe_ton" } ], "S2": [ { "year": 2009, - "value": NaN + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2010, - "value": "0.00546549924476466 t CO2/GJ" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2011, - "value": "0.005923209695638932 t CO2/GJ" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2012, - "value": "0.0057261947899539594 t CO2/GJ" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2013, - "value": "0.012867134900723496 t CO2/GJ" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2014, - "value": "0.007560404333174592 t CO2/GJ" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2015, - "value": "0.020509535069434367 t CO2/GJ" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2016, - "value": "0.06303259428534648 t CO2/GJ" + "value": "0.221841288754589 CO2 * metric_ton / Fe_ton" }, { "year": 2017, - "value": "0.0895787694602712 t CO2/GJ" + "value": "0.21045709254839 CO2 * metric_ton / Fe_ton" }, { "year": 2018, - "value": "0.09684449858047572 t CO2/GJ" + "value": "0.253902905275342 CO2 * metric_ton / Fe_ton" }, { "year": 2019, - "value": "0.1128643123478058 t CO2/GJ" + "value": "0.26901004916505 CO2 * metric_ton / Fe_ton" }, { "year": 2020, - "value": "0.13146239470207932 t CO2/GJ" + "value": "0.270558923829115 CO2 * metric_ton / Fe_ton" }, { "year": 2021, - "value": "0.13146239470207932 t CO2/GJ" + "value": "0.270558923829115 CO2 * metric_ton / Fe_ton" } ], "S1S2": [], @@ -4396,762 +13903,606 @@ "S1S2S3": [] } }, + "country": null, + "emissions_metric": { + "units": "t CO2" + }, + "production_metric": { + "units": "Fe_ton" + }, + "base_year_production": "28090000.2335485 Fe_ton", + "ghg_s1s2": "60500000.46709696 CO2 * metric_ton", + "ghg_s3": null, + "industry_level_1": null, + "industry_level_2": null, + "industry_level_3": null, + "industry_level_4": null, + "company_revenue": null, + "company_market_cap": null, + "company_enterprise_value": null, + "company_ev_plus_cash": null, + "company_total_assets": null, + "company_cash_equivalents": null, "projected_targets": null, "projected_intensities": { - "S1S2": { + "S1": { + "ei_metric": { + "units": "CO2\u00b7t/Fe_ton" + }, "projections": [ { "year": 2019, - "value": "0.9992111823532782 t CO2/GJ" + "value": "1.87589669280616 CO2 * metric_ton / Fe_ton" }, { "year": 2020, - "value": "1.0103398427559807 t CO2/GJ" + "value": "1.88323245972668 CO2 * metric_ton / Fe_ton" }, { "year": 2021, - "value": "1.0103398427559807 t CO2/GJ" + "value": "1.88323245972668 CO2 * metric_ton / Fe_ton" }, { "year": 2022, - "value": "1.0103398427559807 t CO2/GJ" + "value": "1.88323245972668 CO2 * metric_ton / Fe_ton" }, { "year": 2023, - "value": "1.0103398427559807 t CO2/GJ" + "value": "1.88323245972668 CO2 * metric_ton / Fe_ton" }, { "year": 2024, - "value": "1.0103398427559807 t CO2/GJ" + "value": "1.88323245972668 CO2 * metric_ton / Fe_ton" }, { "year": 2025, - "value": "1.0103398427559807 t CO2/GJ" + "value": "1.88323245972668 CO2 * metric_ton / Fe_ton" }, { "year": 2026, - "value": "1.0103398427559807 t CO2/GJ" + "value": "1.88323245972668 CO2 * metric_ton / Fe_ton" }, { "year": 2027, - "value": "1.0103398427559807 t CO2/GJ" + "value": "1.88323245972668 CO2 * metric_ton / Fe_ton" }, { "year": 2028, - "value": "1.0103398427559807 t CO2/GJ" + "value": "1.88323245972668 CO2 * metric_ton / Fe_ton" }, { "year": 2029, - "value": "1.0103398427559807 t CO2/GJ" + "value": "1.88323245972668 CO2 * metric_ton / Fe_ton" }, { "year": 2030, - "value": "1.0103398427559807 t CO2/GJ" + "value": "1.88323245972668 CO2 * metric_ton / Fe_ton" }, { "year": 2031, - "value": "1.0103398427559807 t CO2/GJ" + "value": "1.88323245972668 CO2 * metric_ton / Fe_ton" }, { "year": 2032, - "value": "1.0103398427559807 t CO2/GJ" + "value": "1.88323245972668 CO2 * metric_ton / Fe_ton" }, { "year": 2033, - "value": "1.0103398427559807 t CO2/GJ" + "value": "1.88323245972668 CO2 * metric_ton / Fe_ton" }, { "year": 2034, - "value": "1.0103398427559807 t CO2/GJ" + "value": "1.88323245972668 CO2 * metric_ton / Fe_ton" }, { "year": 2035, - "value": "1.0103398427559807 t CO2/GJ" + "value": "1.88323245972668 CO2 * metric_ton / Fe_ton" }, { "year": 2036, - "value": "1.0103398427559807 t CO2/GJ" + "value": "1.88323245972668 CO2 * metric_ton / Fe_ton" }, { "year": 2037, - "value": "1.0103398427559807 t CO2/GJ" + "value": "1.88323245972668 CO2 * metric_ton / Fe_ton" }, { "year": 2038, - "value": "1.0103398427559807 t CO2/GJ" + "value": "1.88323245972668 CO2 * metric_ton / Fe_ton" }, { "year": 2039, - "value": "1.0103398427559807 t CO2/GJ" + "value": "1.88323245972668 CO2 * metric_ton / Fe_ton" }, { "year": 2040, - "value": "1.0103398427559807 t CO2/GJ" + "value": "1.88323245972668 CO2 * metric_ton / Fe_ton" }, { "year": 2041, - "value": "1.0103398427559807 t CO2/GJ" + "value": "1.88323245972668 CO2 * metric_ton / Fe_ton" }, { "year": 2042, - "value": "1.0103398427559807 t CO2/GJ" + "value": "1.88323245972668 CO2 * metric_ton / Fe_ton" }, { "year": 2043, - "value": "1.0103398427559807 t CO2/GJ" + "value": "1.88323245972668 CO2 * metric_ton / Fe_ton" }, { "year": 2044, - "value": "1.0103398427559807 t CO2/GJ" + "value": "1.88323245972668 CO2 * metric_ton / Fe_ton" }, { "year": 2045, - "value": "1.0103398427559807 t CO2/GJ" + "value": "1.88323245972668 CO2 * metric_ton / Fe_ton" }, { "year": 2046, - "value": "1.0103398427559807 t CO2/GJ" + "value": "1.88323245972668 CO2 * metric_ton / Fe_ton" }, { "year": 2047, - "value": "1.0103398427559807 t CO2/GJ" + "value": "1.88323245972668 CO2 * metric_ton / Fe_ton" }, { "year": 2048, - "value": "1.0103398427559807 t CO2/GJ" + "value": "1.88323245972668 CO2 * metric_ton / Fe_ton" }, { "year": 2049, - "value": "1.0103398427559807 t CO2/GJ" + "value": "1.88323245972668 CO2 * metric_ton / Fe_ton" }, { "year": 2050, - "value": "1.0103398427559807 t CO2/GJ" + "value": "1.88323245972668 CO2 * metric_ton / Fe_ton" } ] }, - "S3": null, - "S1S2S3": null - }, - "country": null, - "ghg_s1s2": null, - "ghg_s3": null, - "industry_level_1": null, - "industry_level_2": null, - "industry_level_3": null, - "industry_level_4": null, - "company_revenue": null, - "company_market_cap": null, - "company_enterprise_value": null, - "company_total_assets": null, - "company_cash_equivalents": null - }, - { - "company_name": "Company AR", - "company_id": "US8356993076", - "region": "Europe", - "sector": "Electricity Utilities", - "target_probability": 0.4285714285714285, - "historic_data": { - "productions": [ - { - "year": 2009, - "value": "697248015.4129393 GJ" - }, - { - "year": 2010, - "value": "683380815.4129393 GJ" - }, - { - "year": 2011, - "value": "732499215.4129393 GJ" - }, - { - "year": 2012, - "value": "739368015.4129393 GJ" - }, - { - "year": 2013, - "value": "739238415.4129393 GJ" - }, - { - "year": 2014, - "value": "710726415.4129393 GJ" - }, - { - "year": 2015, - "value": "720316815.4129393 GJ" - }, - { - "year": 2016, - "value": "695563215.4129393 GJ" + "S2": { + "ei_metric": { + "units": "CO2\u00b7t/Fe_ton" }, - { - "year": 2017, - "value": "841262415.4129393 GJ" - }, - { - "year": 2018, - "value": "1038312015.4129393 GJ" - }, - { - "year": 2019, - "value": "1038312015.4129393 GJ" - }, - { - "year": 2020, - "value": "1038312015.4129393 GJ" - }, - { - "year": 2021, - "value": "1038312015.4129393 GJ" - } - ], - "emissions": { - "S1": [ - { - "year": 2009, - "value": NaN - }, - { - "year": 2010, - "value": NaN - }, - { - "year": 2011, - "value": NaN - }, - { - "year": 2012, - "value": NaN - }, - { - "year": 2013, - "value": NaN - }, - { - "year": 2014, - "value": NaN - }, - { - "year": 2015, - "value": NaN - }, - { - "year": 2016, - "value": NaN - }, - { - "year": 2017, - "value": NaN - }, - { - "year": 2018, - "value": NaN - }, + "projections": [ { "year": 2019, - "value": NaN + "value": "0.26901004916505 CO2 * metric_ton / Fe_ton" }, { "year": 2020, - "value": NaN + "value": "0.270558923829115 CO2 * metric_ton / Fe_ton" }, { "year": 2021, - "value": NaN - } - ], - "S2": [ - { - "year": 2009, - "value": NaN - }, - { - "year": 2010, - "value": NaN - }, - { - "year": 2011, - "value": NaN - }, - { - "year": 2012, - "value": NaN - }, - { - "year": 2013, - "value": NaN - }, - { - "year": 2014, - "value": NaN - }, - { - "year": 2015, - "value": NaN - }, - { - "year": 2016, - "value": NaN - }, - { - "year": 2017, - "value": NaN - }, - { - "year": 2018, - "value": NaN - }, - { - "year": 2019, - "value": NaN + "value": "0.270558923829115 CO2 * metric_ton / Fe_ton" }, { - "year": 2020, - "value": NaN - }, - { - "year": 2021, - "value": NaN - } - ], - "S1S2": [], - "S3": [], - "S1S2S3": [] - }, - "emissions_intensities": { - "S1": [ + "year": 2022, + "value": "0.2721167164229467 CO2 * metric_ton / Fe_ton" + }, { - "year": 2009, - "value": NaN + "year": 2023, + "value": "0.27368347829316025 CO2 * metric_ton / Fe_ton" }, { - "year": 2010, - "value": NaN + "year": 2024, + "value": "0.2752592610820083 CO2 * metric_ton / Fe_ton" }, { - "year": 2011, - "value": NaN + "year": 2025, + "value": "0.27684411672908343 CO2 * metric_ton / Fe_ton" }, { - "year": 2012, - "value": NaN + "year": 2026, + "value": "0.2784380974730297 CO2 * metric_ton / Fe_ton" }, { - "year": 2013, - "value": NaN + "year": 2027, + "value": "0.28004125585326495 CO2 * metric_ton / Fe_ton" }, { - "year": 2014, - "value": NaN + "year": 2028, + "value": "0.28165364471171217 CO2 * metric_ton / Fe_ton" }, { - "year": 2015, - "value": NaN + "year": 2029, + "value": "0.2832753171945416 CO2 * metric_ton / Fe_ton" }, { - "year": 2016, - "value": NaN + "year": 2030, + "value": "0.284906326753922 CO2 * metric_ton / Fe_ton" }, { - "year": 2017, - "value": NaN + "year": 2031, + "value": "0.2865467271497832 CO2 * metric_ton / Fe_ton" }, { - "year": 2018, - "value": NaN + "year": 2032, + "value": "0.2881965724515873 CO2 * metric_ton / Fe_ton" }, { - "year": 2019, - "value": NaN + "year": 2033, + "value": "0.28985591704011143 CO2 * metric_ton / Fe_ton" }, { - "year": 2020, - "value": NaN + "year": 2034, + "value": "0.29152481560924 CO2 * metric_ton / Fe_ton" }, { - "year": 2021, - "value": NaN - } - ], - "S2": [ + "year": 2035, + "value": "0.2932033231677674 CO2 * metric_ton / Fe_ton" + }, { - "year": 2009, - "value": NaN + "year": 2036, + "value": "0.2948914950412114 CO2 * metric_ton / Fe_ton" }, { - "year": 2010, - "value": NaN + "year": 2037, + "value": "0.29658938687363645 CO2 * metric_ton / Fe_ton" }, { - "year": 2011, - "value": NaN + "year": 2038, + "value": "0.29829705462948786 CO2 * metric_ton / Fe_ton" }, { - "year": 2012, - "value": NaN + "year": 2039, + "value": "0.3000145545954366 CO2 * metric_ton / Fe_ton" }, { - "year": 2013, - "value": NaN + "year": 2040, + "value": "0.30174194338223437 CO2 * metric_ton / Fe_ton" }, { - "year": 2014, - "value": NaN + "year": 2041, + "value": "0.30347927792657975 CO2 * metric_ton / Fe_ton" }, { - "year": 2015, - "value": NaN + "year": 2042, + "value": "0.3052266154929947 CO2 * metric_ton / Fe_ton" }, { - "year": 2016, - "value": NaN + "year": 2043, + "value": "0.3069840136757122 CO2 * metric_ton / Fe_ton" }, { - "year": 2017, - "value": NaN + "year": 2044, + "value": "0.3087515304005747 CO2 * metric_ton / Fe_ton" }, { - "year": 2018, - "value": NaN + "year": 2045, + "value": "0.31052922392694304 CO2 * metric_ton / Fe_ton" }, { - "year": 2019, - "value": NaN + "year": 2046, + "value": "0.3123171528496173 CO2 * metric_ton / Fe_ton" }, { - "year": 2020, - "value": NaN + "year": 2047, + "value": "0.3141153761007677 CO2 * metric_ton / Fe_ton" }, { - "year": 2021, - "value": NaN + "year": 2048, + "value": "0.31592395295187714 CO2 * metric_ton / Fe_ton" + }, + { + "year": 2049, + "value": "0.31774294301569517 CO2 * metric_ton / Fe_ton" + }, + { + "year": 2050, + "value": "0.31957240624820255 CO2 * metric_ton / Fe_ton" } - ], - "S1S2": [], - "S3": [], - "S1S2S3": [] - } - }, - "projected_targets": null, - "projected_intensities": { + ] + }, "S1S2": { + "ei_metric": { + "units": "CO2\u00b7t/Fe_ton" + }, "projections": [ { "year": 2019, - "value": NaN + "value": "2.14490674197121 CO2 * metric_ton / Fe_ton" }, { "year": 2020, - "value": NaN + "value": "2.153791383555795 CO2 * metric_ton / Fe_ton" }, { "year": 2021, - "value": NaN + "value": "2.153791383555795 CO2 * metric_ton / Fe_ton" }, { "year": 2022, - "value": NaN + "value": "2.1553491761496266 CO2 * metric_ton / Fe_ton" }, { "year": 2023, - "value": NaN + "value": "2.15691593801984 CO2 * metric_ton / Fe_ton" }, { "year": 2024, - "value": NaN + "value": "2.1584917208086885 CO2 * metric_ton / Fe_ton" }, { "year": 2025, - "value": NaN + "value": "2.1600765764557637 CO2 * metric_ton / Fe_ton" }, { "year": 2026, - "value": NaN + "value": "2.16167055719971 CO2 * metric_ton / Fe_ton" }, { "year": 2027, - "value": NaN + "value": "2.163273715579945 CO2 * metric_ton / Fe_ton" }, { "year": 2028, - "value": NaN + "value": "2.1648861044383922 CO2 * metric_ton / Fe_ton" }, { "year": 2029, - "value": NaN + "value": "2.1665077769212218 CO2 * metric_ton / Fe_ton" }, { "year": 2030, - "value": NaN + "value": "2.1681387864806023 CO2 * metric_ton / Fe_ton" }, { "year": 2031, - "value": NaN + "value": "2.1697791868764633 CO2 * metric_ton / Fe_ton" }, { "year": 2032, - "value": NaN + "value": "2.1714290321782674 CO2 * metric_ton / Fe_ton" }, { "year": 2033, - "value": NaN + "value": "2.1730883767667915 CO2 * metric_ton / Fe_ton" }, { "year": 2034, - "value": NaN + "value": "2.17475727533592 CO2 * metric_ton / Fe_ton" }, { "year": 2035, - "value": NaN + "value": "2.1764357828944476 CO2 * metric_ton / Fe_ton" }, { "year": 2036, - "value": NaN + "value": "2.1781239547678917 CO2 * metric_ton / Fe_ton" }, { "year": 2037, - "value": NaN + "value": "2.1798218466003165 CO2 * metric_ton / Fe_ton" }, { "year": 2038, - "value": NaN + "value": "2.1815295143561677 CO2 * metric_ton / Fe_ton" }, { "year": 2039, - "value": NaN + "value": "2.1832470143221165 CO2 * metric_ton / Fe_ton" }, { "year": 2040, - "value": NaN + "value": "2.1849744031089147 CO2 * metric_ton / Fe_ton" }, { "year": 2041, - "value": NaN + "value": "2.1867117376532597 CO2 * metric_ton / Fe_ton" }, { "year": 2042, - "value": NaN + "value": "2.188459075219675 CO2 * metric_ton / Fe_ton" }, { "year": 2043, - "value": NaN + "value": "2.1902164734023923 CO2 * metric_ton / Fe_ton" }, { "year": 2044, - "value": NaN + "value": "2.191983990127255 CO2 * metric_ton / Fe_ton" }, { "year": 2045, - "value": NaN + "value": "2.193761683653623 CO2 * metric_ton / Fe_ton" }, { "year": 2046, - "value": NaN + "value": "2.1955496125762974 CO2 * metric_ton / Fe_ton" }, { "year": 2047, - "value": NaN + "value": "2.197347835827448 CO2 * metric_ton / Fe_ton" }, { "year": 2048, - "value": NaN + "value": "2.1991564126785574 CO2 * metric_ton / Fe_ton" }, { "year": 2049, - "value": NaN + "value": "2.200975402742375 CO2 * metric_ton / Fe_ton" }, { "year": 2050, - "value": NaN + "value": "2.2028048659748825 CO2 * metric_ton / Fe_ton" } ] }, "S3": null, "S1S2S3": null - }, - "country": null, - "ghg_s1s2": null, - "ghg_s3": null, - "industry_level_1": null, - "industry_level_2": null, - "industry_level_3": null, - "industry_level_4": null, - "company_revenue": null, - "company_market_cap": null, - "company_enterprise_value": null, - "company_total_assets": null, - "company_cash_equivalents": null + } }, { - "company_name": "Company AS", - "company_id": "JP3401400001", + "company_name": "Company E", + "company_id": "SE0000000005", "region": "Asia", - "sector": "Electricity Utilities", + "sector": "Steel", "target_probability": 0.4285714285714285, + "target_data": null, "historic_data": { "productions": [ { "year": 2009, - "value": "159563527.70578668 GJ" + "value": "nan Fe_ton" }, { "year": 2010, - "value": "146979367.70578668 GJ" + "value": "nan Fe_ton" }, { "year": 2011, - "value": "146435047.70578668 GJ" + "value": "nan Fe_ton" }, { "year": 2012, - "value": "143026567.70578668 GJ" + "value": "nan Fe_ton" }, { "year": 2013, - "value": "139618087.70578668 GJ" + "value": "nan Fe_ton" }, { "year": 2014, - "value": "190050203.6009867 GJ" + "value": "12170001.0468216 Fe_ton" }, { "year": 2015, - "value": "214535101.14178666 GJ" + "value": "12630001.0468216 Fe_ton" }, { "year": 2016, - "value": "233145050.2433867 GJ" + "value": "12630001.0468216 Fe_ton" }, { "year": 2017, - "value": "218105285.54578668 GJ" + "value": "12630001.0468216 Fe_ton" }, { "year": 2018, - "value": "167479620.8129867 GJ" + "value": "12630001.0468216 Fe_ton" }, { "year": 2019, - "value": "171690299.59138668 GJ" + "value": "12630001.0468216 Fe_ton" }, { "year": 2020, - "value": "171690299.59138668 GJ" + "value": "12630001.0468216 Fe_ton" }, { "year": 2021, - "value": "171690299.59138668 GJ" + "value": "12630001.0468216 Fe_ton" } ], "emissions": { "S1": [ { "year": 2009, - "value": "9150002.14049632 t CO2" + "value": "nan CO2 * metric_ton" }, { "year": 2010, - "value": "8650002.14049632 t CO2" + "value": "14667421.0468216 CO2 * metric_ton" }, { "year": 2011, - "value": "8631002.14049632 t CO2" + "value": "15541981.0468216 CO2 * metric_ton" }, { "year": 2012, - "value": "8960002.14049632 t CO2" + "value": "21355001.0468216 CO2 * metric_ton" }, { "year": 2013, - "value": "9296403.94049632 t CO2" + "value": "28086001.0468216 CO2 * metric_ton" }, { "year": 2014, - "value": "9632805.74049632 t CO2" + "value": "26077001.0468216 CO2 * metric_ton" }, { "year": 2015, - "value": "9969207.54049632 t CO2" + "value": "26816001.0468216 CO2 * metric_ton" }, { "year": 2016, - "value": "10305609.3404963 t CO2" + "value": "31440001.0468216 CO2 * metric_ton" }, { "year": 2017, - "value": "10642011.1404963 t CO2" + "value": "36610961.0468216 CO2 * metric_ton" }, { "year": 2018, - "value": "11403118.1404963 t CO2" + "value": "41528001.0468216 CO2 * metric_ton" }, { "year": 2019, - "value": "9681777.14049632 t CO2" + "value": "41938351.0468216 CO2 * metric_ton" }, { "year": 2020, - "value": "9681777.14049632 t CO2" + "value": "40045311.0468216 CO2 * metric_ton" }, { "year": 2021, - "value": "9681777.14049632 t CO2" + "value": "40045311.0468216 CO2 * metric_ton" } ], "S2": [ { "year": 2009, - "value": NaN + "value": "nan CO2 * metric_ton" }, { "year": 2010, - "value": "2.14049631522688 t CO2" + "value": "976021.046821591 CO2 * metric_ton" }, { "year": 2011, - "value": "2.14049631522688 t CO2" + "value": "1550771.04682159 CO2 * metric_ton" }, { "year": 2012, - "value": "2.14049631522688 t CO2" + "value": "16541.0468215911 CO2 * metric_ton" }, { "year": 2013, - "value": "310616.540496315 t CO2" + "value": "33601.0468215911 CO2 * metric_ton" }, { "year": 2014, - "value": "621230.940496315 t CO2" + "value": "3742001.04682159 CO2 * metric_ton" }, { "year": 2015, - "value": "931845.340496315 t CO2" + "value": "4157001.04682159 CO2 * metric_ton" }, { "year": 2016, - "value": "1242459.74049632 t CO2" + "value": "661001.046821591 CO2 * metric_ton" }, { "year": 2017, - "value": "1553074.14049631 t CO2" + "value": "1885181.04682159 CO2 * metric_ton" }, { "year": 2018, - "value": "1239860.14049631 t CO2" + "value": "626001.046821591 CO2 * metric_ton" }, { "year": 2019, - "value": "1203273.14049631 t CO2" + "value": "3909961.04682159 CO2 * metric_ton" }, { "year": 2020, - "value": "1203273.14049631 t CO2" + "value": "476901.046821591 CO2 * metric_ton" }, { "year": 2021, - "value": "1203273.14049631 t CO2" + "value": "476901.046821591 CO2 * metric_ton" } ], "S1S2": [], @@ -5162,109 +14513,109 @@ "S1": [ { "year": 2009, - "value": "0.7431775258785013 t CO2/GJ" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2010, - "value": "0.7627194856711764 t CO2/GJ" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2011, - "value": "0.7638730583512608 t CO2/GJ" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2012, - "value": "0.8118885155637708 t CO2/GJ" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2013, - "value": "0.8629354337148576 t CO2/GJ" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2014, - "value": "0.6568851810279456 t CO2/GJ" + "value": "2.14272792142709 CO2 * metric_ton / Fe_ton" }, { "year": 2015, - "value": "0.6022367856691344 t CO2/GJ" + "value": "2.12319864008008 CO2 * metric_ton / Fe_ton" }, { "year": 2016, - "value": "0.5728652481080088 t CO2/GJ" + "value": "2.48931104045582 CO2 * metric_ton / Fe_ton" }, { "year": 2017, - "value": "0.6323572766047393 t CO2/GJ" + "value": "2.89872985054383 CO2 * metric_ton / Fe_ton" }, { "year": 2018, - "value": "0.8824023507066155 t CO2/GJ" + "value": "3.28804414923404 CO2 * metric_ton / Fe_ton" }, { "year": 2019, - "value": "0.7308265641067548 t CO2/GJ" + "value": "3.32053424947068 CO2 * metric_ton / Fe_ton" }, { "year": 2020, - "value": "0.7308265641067548 t CO2/GJ" + "value": "3.17064985967671 CO2 * metric_ton / Fe_ton" }, { "year": 2021, - "value": "0.7308265641067548 t CO2/GJ" + "value": "3.17064985967671 CO2 * metric_ton / Fe_ton" } ], "S2": [ { "year": 2009, - "value": NaN + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2010, - "value": "1.8873963521784973e-07 t CO2/GJ" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2011, - "value": "1.894412074155671e-07 t CO2/GJ" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2012, - "value": "1.9395579919392828e-07 t CO2/GJ" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2013, - "value": "0.028832871377777763 t CO2/GJ" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2014, - "value": "0.042363295783338244 t CO2/GJ" + "value": "0.307477463019519 CO2 * metric_ton / Fe_ton" }, { "year": 2015, - "value": "0.05629249269027864 t CO2/GJ" + "value": "0.329137031058895 CO2 * metric_ton / Fe_ton" }, { "year": 2016, - "value": "0.0690654947210874 t CO2/GJ" + "value": "0.0523357871761963 CO2 * metric_ton / Fe_ton" }, { "year": 2017, - "value": "0.09228497516905357 t CO2/GJ" + "value": "0.149262144938302 CO2 * metric_ton / Fe_ton" }, { "year": 2018, - "value": "0.0959435383411512 t CO2/GJ" + "value": "0.0495646076750823 CO2 * metric_ton / Fe_ton" }, { "year": 2019, - "value": "0.09082877680303489 t CO2/GJ" + "value": "0.309577254374461 CO2 * metric_ton / Fe_ton" }, { "year": 2020, - "value": "0.09082877680303489 t CO2/GJ" + "value": "0.0377593830003368 CO2 * metric_ton / Fe_ton" }, { "year": 2021, - "value": "0.09082877680303489 t CO2/GJ" + "value": "0.0377593830003368 CO2 * metric_ton / Fe_ton" } ], "S1S2": [], @@ -5272,762 +14623,606 @@ "S1S2S3": [] } }, + "country": null, + "emissions_metric": { + "units": "t CO2" + }, + "production_metric": { + "units": "Fe_ton" + }, + "base_year_production": "12630001.0468216 Fe_ton", + "ghg_s1s2": "40522212.093643196 CO2 * metric_ton", + "ghg_s3": null, + "industry_level_1": null, + "industry_level_2": null, + "industry_level_3": null, + "industry_level_4": null, + "company_revenue": null, + "company_market_cap": null, + "company_enterprise_value": null, + "company_ev_plus_cash": null, + "company_total_assets": null, + "company_cash_equivalents": null, "projected_targets": null, "projected_intensities": { - "S1S2": { + "S1": { + "ei_metric": { + "units": "CO2\u00b7t/Fe_ton" + }, "projections": [ { "year": 2019, - "value": "0.8216553409097898 t CO2/GJ" + "value": "3.32053424947068 CO2 * metric_ton / Fe_ton" }, { "year": 2020, - "value": "0.8216553409097898 t CO2/GJ" + "value": "3.17064985967671 CO2 * metric_ton / Fe_ton" }, { "year": 2021, - "value": "0.8216553409097898 t CO2/GJ" + "value": "3.17064985967671 CO2 * metric_ton / Fe_ton" }, { "year": 2022, - "value": "0.8216553409097898 t CO2/GJ" + "value": "3.180048887829679 CO2 * metric_ton / Fe_ton" }, { "year": 2023, - "value": "0.8216553409097898 t CO2/GJ" + "value": "3.18947577832448 CO2 * metric_ton / Fe_ton" }, { "year": 2024, - "value": "0.8216553409097898 t CO2/GJ" + "value": "3.198930613755832 CO2 * metric_ton / Fe_ton" }, { "year": 2025, - "value": "0.8216553409097898 t CO2/GJ" + "value": "3.208413476963298 CO2 * metric_ton / Fe_ton" }, { "year": 2026, - "value": "0.8216553409097898 t CO2/GJ" + "value": "3.2179244510320073 CO2 * metric_ton / Fe_ton" }, { "year": 2027, - "value": "0.8216553409097898 t CO2/GJ" + "value": "3.2274636192933874 CO2 * metric_ton / Fe_ton" }, { "year": 2028, - "value": "0.8216553409097898 t CO2/GJ" + "value": "3.237031065325891 CO2 * metric_ton / Fe_ton" }, { "year": 2029, - "value": "0.8216553409097898 t CO2/GJ" + "value": "3.2466268729557295 CO2 * metric_ton / Fe_ton" }, { "year": 2030, - "value": "0.8216553409097898 t CO2/GJ" + "value": "3.2562511262576086 CO2 * metric_ton / Fe_ton" }, { "year": 2031, - "value": "0.8216553409097898 t CO2/GJ" + "value": "3.265903909555463 CO2 * metric_ton / Fe_ton" }, { "year": 2032, - "value": "0.8216553409097898 t CO2/GJ" + "value": "3.2755853074231966 CO2 * metric_ton / Fe_ton" }, { "year": 2033, - "value": "0.8216553409097898 t CO2/GJ" + "value": "3.285295404685422 CO2 * metric_ton / Fe_ton" }, { "year": 2034, - "value": "0.8216553409097898 t CO2/GJ" + "value": "3.2950342864182054 CO2 * metric_ton / Fe_ton" }, { "year": 2035, - "value": "0.8216553409097898 t CO2/GJ" + "value": "3.304802037949811 CO2 * metric_ton / Fe_ton" }, { "year": 2036, - "value": "0.8216553409097898 t CO2/GJ" + "value": "3.314598744861449 CO2 * metric_ton / Fe_ton" }, { "year": 2037, - "value": "0.8216553409097898 t CO2/GJ" + "value": "3.3244244929880256 CO2 * metric_ton / Fe_ton" }, { "year": 2038, - "value": "0.8216553409097898 t CO2/GJ" + "value": "3.3342793684188936 CO2 * metric_ton / Fe_ton" }, { "year": 2039, - "value": "0.8216553409097898 t CO2/GJ" + "value": "3.344163457498609 CO2 * metric_ton / Fe_ton" }, { "year": 2040, - "value": "0.8216553409097898 t CO2/GJ" + "value": "3.3540768468276863 CO2 * metric_ton / Fe_ton" }, { "year": 2041, - "value": "0.8216553409097898 t CO2/GJ" + "value": "3.3640196232633564 CO2 * metric_ton / Fe_ton" }, { "year": 2042, - "value": "0.8216553409097898 t CO2/GJ" + "value": "3.373991873920329 CO2 * metric_ton / Fe_ton" }, { "year": 2043, - "value": "0.8216553409097898 t CO2/GJ" + "value": "3.3839936861715563 CO2 * metric_ton / Fe_ton" }, { "year": 2044, - "value": "0.8216553409097898 t CO2/GJ" + "value": "3.3940251476489958 CO2 * metric_ton / Fe_ton" }, { "year": 2045, - "value": "0.8216553409097898 t CO2/GJ" + "value": "3.4040863462443807 CO2 * metric_ton / Fe_ton" }, { "year": 2046, - "value": "0.8216553409097898 t CO2/GJ" + "value": "3.41417737010999 CO2 * metric_ton / Fe_ton" }, { "year": 2047, - "value": "0.8216553409097898 t CO2/GJ" + "value": "3.4242983076594187 CO2 * metric_ton / Fe_ton" }, { "year": 2048, - "value": "0.8216553409097898 t CO2/GJ" + "value": "3.4344492475683546 CO2 * metric_ton / Fe_ton" }, { "year": 2049, - "value": "0.8216553409097898 t CO2/GJ" + "value": "3.4446302787753544 CO2 * metric_ton / Fe_ton" }, { "year": 2050, - "value": "0.8216553409097898 t CO2/GJ" + "value": "3.4548414904826226 CO2 * metric_ton / Fe_ton" } ] }, - "S3": null, - "S1S2S3": null - }, - "country": null, - "ghg_s1s2": null, - "ghg_s3": null, - "industry_level_1": null, - "industry_level_2": null, - "industry_level_3": null, - "industry_level_4": null, - "company_revenue": null, - "company_market_cap": null, - "company_enterprise_value": null, - "company_total_assets": null, - "company_cash_equivalents": null - }, - { - "company_name": "Company AT", - "company_id": "US6541061031", - "region": "Europe", - "sector": "Electricity Utilities", - "target_probability": 0.4285714285714285, - "historic_data": { - "productions": [ - { - "year": 2009, - "value": NaN - }, - { - "year": 2010, - "value": "2919888004.0657935 GJ" - }, - { - "year": 2011, - "value": "2665872004.0657935 GJ" - }, - { - "year": 2012, - "value": "2943216004.0657935 GJ" - }, - { - "year": 2013, - "value": "2808432004.0657935 GJ" - }, - { - "year": 2014, - "value": "2699568004.0657935 GJ" - }, - { - "year": 2015, - "value": "2760480004.0657935 GJ" - }, - { - "year": 2016, - "value": "2800656004.0657935 GJ" - }, - { - "year": 2017, - "value": "2594592004.0657935 GJ" - }, - { - "year": 2018, - "value": "2280960004.0657935 GJ" - }, - { - "year": 2019, - "value": "1985018404.0657933 GJ" + "S2": { + "ei_metric": { + "units": "CO2\u00b7t/Fe_ton" }, - { - "year": 2020, - "value": "1902204004.0657933 GJ" - }, - { - "year": 2021, - "value": "1902204004.0657933 GJ" - } - ], - "emissions": { - "S1": [ - { - "year": 2009, - "value": NaN - }, - { - "year": 2010, - "value": "167100001.129387 t CO2" - }, - { - "year": 2011, - "value": "163800001.129387 t CO2" - }, - { - "year": 2012, - "value": "181700001.129387 t CO2" - }, - { - "year": 2013, - "value": "165800001.129387 t CO2" - }, - { - "year": 2014, - "value": "156600001.129387 t CO2" - }, - { - "year": 2015, - "value": "152300001.129387 t CO2" - }, - { - "year": 2016, - "value": "154000001.129387 t CO2" - }, - { - "year": 2017, - "value": "135600001.129387 t CO2" - }, - { - "year": 2018, - "value": "120400001.129387 t CO2" - }, + "projections": [ { "year": 2019, - "value": "91700001.129387 t CO2" + "value": "0.309577254374461 CO2 * metric_ton / Fe_ton" }, { "year": 2020, - "value": "70400001.129387 t CO2" + "value": "0.0377593830003368 CO2 * metric_ton / Fe_ton" }, { "year": 2021, - "value": "70400001.129387 t CO2" - } - ], - "S2": [ - { - "year": 2009, - "value": NaN - }, - { - "year": 2010, - "value": "3100001.12938701 t CO2" - }, - { - "year": 2011, - "value": "2400001.12938701 t CO2" - }, - { - "year": 2012, - "value": "1900001.12938701 t CO2" - }, - { - "year": 2013, - "value": "1500001.12938701 t CO2" - }, - { - "year": 2014, - "value": "1400001.12938701 t CO2" - }, - { - "year": 2015, - "value": "1300001.12938701 t CO2" - }, - { - "year": 2016, - "value": "1300001.12938701 t CO2" - }, - { - "year": 2017, - "value": "1000001.12938701 t CO2" - }, - { - "year": 2018, - "value": "5000001.12938701 t CO2" + "value": "0.0377593830003368 CO2 * metric_ton / Fe_ton" }, { - "year": 2019, - "value": "4700001.12938701 t CO2" - }, - { - "year": 2020, - "value": "2600001.12938701 t CO2" - }, - { - "year": 2021, - "value": "2600001.12938701 t CO2" - } - ], - "S1S2": [], - "S3": [], - "S1S2S3": [] - }, - "emissions_intensities": { - "S1": [ + "year": 2022, + "value": "0.0377593830003368 CO2 * metric_ton / Fe_ton" + }, { - "year": 2009, - "value": NaN + "year": 2023, + "value": "0.0377593830003368 CO2 * metric_ton / Fe_ton" }, { - "year": 2010, - "value": "0.7416777669627563 t CO2/GJ" + "year": 2024, + "value": "0.0377593830003368 CO2 * metric_ton / Fe_ton" }, { - "year": 2011, - "value": "0.7963053032550852 t CO2/GJ" + "year": 2025, + "value": "0.0377593830003368 CO2 * metric_ton / Fe_ton" }, { - "year": 2012, - "value": "0.8000880707986993 t CO2/GJ" + "year": 2026, + "value": "0.0377593830003368 CO2 * metric_ton / Fe_ton" }, { - "year": 2013, - "value": "0.7651130636333952 t CO2/GJ" + "year": 2027, + "value": "0.0377593830003368 CO2 * metric_ton / Fe_ton" }, { - "year": 2014, - "value": "0.7518002923357344 t CO2/GJ" + "year": 2028, + "value": "0.0377593830003368 CO2 * metric_ton / Fe_ton" }, { - "year": 2015, - "value": "0.715023478427562 t CO2/GJ" + "year": 2029, + "value": "0.0377593830003368 CO2 * metric_ton / Fe_ton" }, { - "year": 2016, - "value": "0.7126330444508124 t CO2/GJ" + "year": 2030, + "value": "0.0377593830003368 CO2 * metric_ton / Fe_ton" }, { - "year": 2017, - "value": "0.6773226819025896 t CO2/GJ" + "year": 2031, + "value": "0.0377593830003368 CO2 * metric_ton / Fe_ton" }, { - "year": 2018, - "value": "0.6840909142884937 t CO2/GJ" + "year": 2032, + "value": "0.0377593830003368 CO2 * metric_ton / Fe_ton" }, { - "year": 2019, - "value": "0.5987007537072012 t CO2/GJ" + "year": 2033, + "value": "0.0377593830003368 CO2 * metric_ton / Fe_ton" }, { - "year": 2020, - "value": "0.47964572290181157 t CO2/GJ" + "year": 2034, + "value": "0.0377593830003368 CO2 * metric_ton / Fe_ton" }, { - "year": 2021, - "value": "0.47964572290181157 t CO2/GJ" - } - ], - "S2": [ + "year": 2035, + "value": "0.0377593830003368 CO2 * metric_ton / Fe_ton" + }, { - "year": 2009, - "value": NaN + "year": 2036, + "value": "0.0377593830003368 CO2 * metric_ton / Fe_ton" }, { - "year": 2010, - "value": "0.013759436862274392 t CO2/GJ" + "year": 2037, + "value": "0.0377593830003368 CO2 * metric_ton / Fe_ton" }, { - "year": 2011, - "value": "0.011667482380781245 t CO2/GJ" + "year": 2038, + "value": "0.0377593830003368 CO2 * metric_ton / Fe_ton" }, { - "year": 2012, - "value": "0.008366363393933629 t CO2/GJ" + "year": 2039, + "value": "0.0377593830003368 CO2 * metric_ton / Fe_ton" }, { - "year": 2013, - "value": "0.006922017199886688 t CO2/GJ" + "year": 2040, + "value": "0.0377593830003368 CO2 * metric_ton / Fe_ton" }, { - "year": 2014, - "value": "0.00672108078386214 t CO2/GJ" + "year": 2041, + "value": "0.0377593830003368 CO2 * metric_ton / Fe_ton" }, { - "year": 2015, - "value": "0.006103291678273692 t CO2/GJ" + "year": 2042, + "value": "0.0377593830003368 CO2 * metric_ton / Fe_ton" }, { - "year": 2016, - "value": "0.006015738674223793 t CO2/GJ" + "year": 2043, + "value": "0.0377593830003368 CO2 * metric_ton / Fe_ton" }, { - "year": 2017, - "value": "0.004995010628471448 t CO2/GJ" + "year": 2044, + "value": "0.0377593830003368 CO2 * metric_ton / Fe_ton" }, { - "year": 2018, - "value": "0.028409097275423567 t CO2/GJ" + "year": 2045, + "value": "0.0377593830003368 CO2 * metric_ton / Fe_ton" }, { - "year": 2019, - "value": "0.030685868963276727 t CO2/GJ" + "year": 2046, + "value": "0.0377593830003368 CO2 * metric_ton / Fe_ton" }, { - "year": 2020, - "value": "0.017714196040400174 t CO2/GJ" + "year": 2047, + "value": "0.0377593830003368 CO2 * metric_ton / Fe_ton" }, { - "year": 2021, - "value": "0.017714196040400174 t CO2/GJ" + "year": 2048, + "value": "0.0377593830003368 CO2 * metric_ton / Fe_ton" + }, + { + "year": 2049, + "value": "0.0377593830003368 CO2 * metric_ton / Fe_ton" + }, + { + "year": 2050, + "value": "0.0377593830003368 CO2 * metric_ton / Fe_ton" } - ], - "S1S2": [], - "S3": [], - "S1S2S3": [] - } - }, - "projected_targets": null, - "projected_intensities": { + ] + }, "S1S2": { + "ei_metric": { + "units": "CO2\u00b7t/Fe_ton" + }, "projections": [ { "year": 2019, - "value": "0.629386622670478 t CO2/GJ" + "value": "3.630111503845141 CO2 * metric_ton / Fe_ton" }, { "year": 2020, - "value": "0.49735991894221177 t CO2/GJ" + "value": "3.2084092426770465 CO2 * metric_ton / Fe_ton" }, { "year": 2021, - "value": "0.49735991894221177 t CO2/GJ" + "value": "3.2084092426770465 CO2 * metric_ton / Fe_ton" }, { "year": 2022, - "value": "0.48865412727555213 t CO2/GJ" + "value": "3.2178082708300155 CO2 * metric_ton / Fe_ton" }, { "year": 2023, - "value": "0.4801007218500365 t CO2/GJ" + "value": "3.2272351613248165 CO2 * metric_ton / Fe_ton" }, { "year": 2024, - "value": "0.4716970352957829 t CO2/GJ" + "value": "3.236689996756169 CO2 * metric_ton / Fe_ton" }, { "year": 2025, - "value": "0.4634404469325714 t CO2/GJ" + "value": "3.2461728599636346 CO2 * metric_ton / Fe_ton" }, { "year": 2026, - "value": "0.45532838195258785 t CO2/GJ" + "value": "3.255683834032344 CO2 * metric_ton / Fe_ton" }, { "year": 2027, - "value": "0.44735831061747283 t CO2/GJ" + "value": "3.265223002293724 CO2 * metric_ton / Fe_ton" }, { "year": 2028, - "value": "0.43952774746942586 t CO2/GJ" + "value": "3.2747904483262276 CO2 * metric_ton / Fe_ton" }, { "year": 2029, - "value": "0.4318342505561179 t CO2/GJ" + "value": "3.284386255956066 CO2 * metric_ton / Fe_ton" }, { "year": 2030, - "value": "0.42427542066917145 t CO2/GJ" + "value": "3.2940105092579453 CO2 * metric_ton / Fe_ton" }, { "year": 2031, - "value": "0.41684890059597 t CO2/GJ" + "value": "3.3036632925558 CO2 * metric_ton / Fe_ton" }, { "year": 2032, - "value": "0.409552374384564 t CO2/GJ" + "value": "3.3133446904235333 CO2 * metric_ton / Fe_ton" }, { "year": 2033, - "value": "0.4023835666214437 t CO2/GJ" + "value": "3.323054787685759 CO2 * metric_ton / Fe_ton" }, { "year": 2034, - "value": "0.39534024172195426 t CO2/GJ" + "value": "3.332793669418542 CO2 * metric_ton / Fe_ton" }, { "year": 2035, - "value": "0.38842020323313087 t CO2/GJ" + "value": "3.3425614209501475 CO2 * metric_ton / Fe_ton" }, { "year": 2036, - "value": "0.3816212931487376 t CO2/GJ" + "value": "3.3523581278617858 CO2 * metric_ton / Fe_ton" }, { "year": 2037, - "value": "0.37494139123629544 t CO2/GJ" + "value": "3.362183875988362 CO2 * metric_ton / Fe_ton" }, { "year": 2038, - "value": "0.3683784143758903 t CO2/GJ" + "value": "3.3720387514192303 CO2 * metric_ton / Fe_ton" }, { "year": 2039, - "value": "0.3619303159105543 t CO2/GJ" + "value": "3.381922840498946 CO2 * metric_ton / Fe_ton" }, { "year": 2040, - "value": "0.3555950850080181 t CO2/GJ" + "value": "3.391836229828023 CO2 * metric_ton / Fe_ton" }, { "year": 2041, - "value": "0.3493707460336352 t CO2/GJ" + "value": "3.401779006263693 CO2 * metric_ton / Fe_ton" }, { "year": 2042, - "value": "0.3432553579342824 t CO2/GJ" + "value": "3.411751256920666 CO2 * metric_ton / Fe_ton" }, { "year": 2043, - "value": "0.3372470136330446 t CO2/GJ" + "value": "3.421753069171893 CO2 * metric_ton / Fe_ton" }, { "year": 2044, - "value": "0.33134383943449497 t CO2/GJ" + "value": "3.4317845306493324 CO2 * metric_ton / Fe_ton" }, { "year": 2045, - "value": "0.3255439944403852 t CO2/GJ" + "value": "3.4418457292447173 CO2 * metric_ton / Fe_ton" }, { "year": 2046, - "value": "0.31984566997556335 t CO2/GJ" + "value": "3.4519367531103264 CO2 * metric_ton / Fe_ton" }, { "year": 2047, - "value": "0.3142470890239408 t CO2/GJ" + "value": "3.4620576906597553 CO2 * metric_ton / Fe_ton" }, { "year": 2048, - "value": "0.30874650567433126 t CO2/GJ" + "value": "3.4722086305686912 CO2 * metric_ton / Fe_ton" }, { "year": 2049, - "value": "0.30334220457599087 t CO2/GJ" + "value": "3.482389661775691 CO2 * metric_ton / Fe_ton" }, { "year": 2050, - "value": "0.29803250040368773 t CO2/GJ" + "value": "3.4926008734829592 CO2 * metric_ton / Fe_ton" } ] }, "S3": null, "S1S2S3": null - }, - "country": null, - "ghg_s1s2": null, - "ghg_s3": null, - "industry_level_1": null, - "industry_level_2": null, - "industry_level_3": null, - "industry_level_4": null, - "company_revenue": null, - "company_market_cap": null, - "company_enterprise_value": null, - "company_total_assets": null, - "company_cash_equivalents": null + } }, { - "company_name": "Company AU", - "company_id": "GB0031274896", - "region": "North America", - "sector": "Electricity Utilities", + "company_name": "Company F", + "company_id": "NL0000000006", + "region": "Asia", + "sector": "Steel", "target_probability": 0.4285714285714285, + "target_data": null, "historic_data": { "productions": [ { "year": 2009, - "value": "926887167.2113813 GJ" + "value": "nan Fe_ton" }, { "year": 2010, - "value": "965233460.0113813 GJ" + "value": "nan Fe_ton" }, { "year": 2011, - "value": "968392251.2113813 GJ" + "value": "nan Fe_ton" }, { "year": 2012, - "value": "972920165.6113813 GJ" + "value": "nan Fe_ton" }, { "year": 2013, - "value": "919330565.6113813 GJ" + "value": "23001000.8292913 Fe_ton" }, { "year": 2014, - "value": "954115205.6113813 GJ" + "value": "25222000.8292913 Fe_ton" }, { "year": 2015, - "value": "949695845.6113813 GJ" + "value": "23424000.8292913 Fe_ton" }, { "year": 2016, - "value": "960753123.2113813 GJ" + "value": "24100000.8292913 Fe_ton" }, { "year": 2017, - "value": "939777829.7713813 GJ" + "value": "24193000.8292913 Fe_ton" }, { "year": 2018, - "value": "891855365.6113813 GJ" + "value": "24328000.8292913 Fe_ton" }, { "year": 2019, - "value": "874385285.6113813 GJ" + "value": "23779000.8292913 Fe_ton" }, { "year": 2020, - "value": "874385285.6113813 GJ" + "value": "22329000.8292913 Fe_ton" }, { "year": 2021, - "value": "874385285.6113813 GJ" + "value": "22329000.8292913 Fe_ton" } ], "emissions": { "S1": [ { "year": 2009, - "value": "55192252.5587173 t CO2" + "value": "nan CO2 * metric_ton" }, { "year": 2010, - "value": "56075311.5587173 t CO2" + "value": "nan CO2 * metric_ton" }, { "year": 2011, - "value": "54746972.5587173 t CO2" + "value": "nan CO2 * metric_ton" }, { "year": 2012, - "value": "54472481.5587173 t CO2" + "value": "nan CO2 * metric_ton" }, { "year": 2013, - "value": "56535331.5587173 t CO2" + "value": "nan CO2 * metric_ton" }, { "year": 2014, - "value": "57593228.5587173 t CO2" + "value": "nan CO2 * metric_ton" }, { "year": 2015, - "value": "56978409.5587173 t CO2" + "value": "nan CO2 * metric_ton" }, { "year": 2016, - "value": "52832514.4587173 t CO2" + "value": "31300000.8292913 CO2 * metric_ton" }, { "year": 2017, - "value": "50919739.3587173 t CO2" + "value": "31072000.8292913 CO2 * metric_ton" }, { "year": 2018, - "value": "50723846.5587173 t CO2" + "value": "29491000.8292913 CO2 * metric_ton" }, { "year": 2019, - "value": "48061950.5587173 t CO2" + "value": "27206000.8292913 CO2 * metric_ton" }, { "year": 2020, - "value": "48061950.5587173 t CO2" + "value": "27206000.8292913 CO2 * metric_ton" }, { "year": 2021, - "value": "48061950.5587173 t CO2" + "value": "27206000.8292913 CO2 * metric_ton" } ], "S2": [ { "year": 2009, - "value": "1007225.55871729 t CO2" + "value": "nan CO2 * metric_ton" }, { "year": 2010, - "value": "1933034.55871729 t CO2" + "value": "nan CO2 * metric_ton" }, { "year": 2011, - "value": "1052282.55871729 t CO2" + "value": "nan CO2 * metric_ton" }, { "year": 2012, - "value": "1189960.55871729 t CO2" + "value": "nan CO2 * metric_ton" }, { "year": 2013, - "value": "774476.55871729 t CO2" + "value": "nan CO2 * metric_ton" }, { "year": 2014, - "value": "601657.55871729 t CO2" + "value": "nan CO2 * metric_ton" }, { "year": 2015, - "value": "1061617.55871729 t CO2" + "value": "nan CO2 * metric_ton" }, { "year": 2016, - "value": "891280.15871729 t CO2" + "value": "nan CO2 * metric_ton" }, { "year": 2017, - "value": "1153067.75871729 t CO2" + "value": "nan CO2 * metric_ton" }, { "year": 2018, - "value": "841797.55871729 t CO2" + "value": "nan CO2 * metric_ton" }, { "year": 2019, - "value": "607645.55871729 t CO2" + "value": "nan CO2 * metric_ton" }, { "year": 2020, - "value": "607645.55871729 t CO2" + "value": "nan CO2 * metric_ton" }, { "year": 2021, - "value": "607645.55871729 t CO2" + "value": "nan CO2 * metric_ton" } ], "S1S2": [], @@ -6038,109 +15233,109 @@ "S1": [ { "year": 2009, - "value": "0.771713773223328 t CO2/GJ" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2010, - "value": "0.7529121895467709 t CO2/GJ" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2011, - "value": "0.73267910133876 t CO2/GJ" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2012, - "value": "0.7256128364420833 t CO2/GJ" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2013, - "value": "0.7969906847529973 t CO2/GJ" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2014, - "value": "0.7823041051344408 t CO2/GJ" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2015, - "value": "0.7775544047005837 t CO2/GJ" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2016, - "value": "0.7126798454698644 t CO2/GJ" + "value": "1.2987551764417 CO2 * metric_ton / Fe_ton" }, { "year": 2017, - "value": "0.7022083317814728 t CO2/GJ" + "value": "1.28433843525816 CO2 * metric_ton / Fe_ton" }, { "year": 2018, - "value": "0.7370937898101109 t CO2/GJ" + "value": "1.21222458993769 CO2 * metric_ton / Fe_ton" }, { "year": 2019, - "value": "0.7123666071364056 t CO2/GJ" + "value": "1.14411875522451 CO2 * metric_ton / Fe_ton" }, { "year": 2020, - "value": "0.7123666071364056 t CO2/GJ" + "value": "1.21841550534596 CO2 * metric_ton / Fe_ton" }, { "year": 2021, - "value": "0.7123666071364056 t CO2/GJ" + "value": "1.21841550534596 CO2 * metric_ton / Fe_ton" } ], "S2": [ { "year": 2009, - "value": "0.014083314240123792 t CO2/GJ" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2010, - "value": "0.025954475180212513 t CO2/GJ" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2011, - "value": "0.014082704548612957 t CO2/GJ" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2012, - "value": "0.01585113495030187 t CO2/GJ" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2013, - "value": "0.010917962021964349 t CO2/GJ" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2014, - "value": "0.008172474262140671 t CO2/GJ" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2015, - "value": "0.01448733678740982 t CO2/GJ" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2016, - "value": "0.012022850176501211 t CO2/GJ" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2017, - "value": "0.015901373366736478 t CO2/GJ" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2018, - "value": "0.012232584768380328 t CO2/GJ" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2019, - "value": "0.009006426080774784 t CO2/GJ" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2020, - "value": "0.009006426080774784 t CO2/GJ" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2021, - "value": "0.009006426080774784 t CO2/GJ" + "value": "nan CO2 * metric_ton / Fe_ton" } ], "S1S2": [], @@ -6148,650 +15343,606 @@ "S1S2S3": [] } }, + "country": null, + "emissions_metric": { + "units": "t CO2" + }, + "production_metric": { + "units": "Fe_ton" + }, + "base_year_production": "22329000.8292913 Fe_ton", + "ghg_s1s2": "nan CO2 * metric_ton", + "ghg_s3": null, + "industry_level_1": null, + "industry_level_2": null, + "industry_level_3": null, + "industry_level_4": null, + "company_revenue": null, + "company_market_cap": null, + "company_enterprise_value": null, + "company_ev_plus_cash": null, + "company_total_assets": null, + "company_cash_equivalents": null, "projected_targets": null, "projected_intensities": { - "S1S2": { + "S1": { + "ei_metric": { + "units": "CO2\u00b7t/Fe_ton" + }, "projections": [ { "year": 2019, - "value": "0.7213730332171804 t CO2/GJ" + "value": "1.14411875522451 CO2 * metric_ton / Fe_ton" }, { "year": 2020, - "value": "0.7213730332171804 t CO2/GJ" + "value": "1.21841550534596 CO2 * metric_ton / Fe_ton" }, { "year": 2021, - "value": "0.7213730332171804 t CO2/GJ" + "value": "1.21841550534596 CO2 * metric_ton / Fe_ton" }, { "year": 2022, - "value": "0.7191454204965274 t CO2/GJ" + "value": "1.2116152945773593 CO2 * metric_ton / Fe_ton" }, { "year": 2023, - "value": "0.7169246866834642 t CO2/GJ" + "value": "1.2048530370901265 CO2 * metric_ton / Fe_ton" }, { "year": 2024, - "value": "0.7147108105358021 t CO2/GJ" + "value": "1.1981285210597143 CO2 * metric_ton / Fe_ton" }, { "year": 2025, - "value": "0.7125037708769486 t CO2/GJ" + "value": "1.1914415358438093 CO2 * metric_ton / Fe_ton" }, { "year": 2026, - "value": "0.7103035465957052 t CO2/GJ" + "value": "1.1847918719757329 CO2 * metric_ton / Fe_ton" }, { "year": 2027, - "value": "0.7081101166460648 t CO2/GJ" + "value": "1.1781793211578802 CO2 * metric_ton / Fe_ton" }, { "year": 2028, - "value": "0.705923460047011 t CO2/GJ" + "value": "1.1716036762551951 CO2 * metric_ton / Fe_ton" }, { "year": 2029, - "value": "0.7037435558823171 t CO2/GJ" + "value": "1.1650647312886826 CO2 * metric_ton / Fe_ton" }, { "year": 2030, - "value": "0.7015703833003458 t CO2/GJ" + "value": "1.1585622814289556 CO2 * metric_ton / Fe_ton" }, { "year": 2031, - "value": "0.6994039215138506 t CO2/GJ" + "value": "1.152096122989819 CO2 * metric_ton / Fe_ton" }, { "year": 2032, - "value": "0.6972441497997758 t CO2/GJ" + "value": "1.1456660534218897 CO2 * metric_ton / Fe_ton" }, { "year": 2033, - "value": "0.6950910474990591 t CO2/GJ" + "value": "1.139271871306251 CO2 * metric_ton / Fe_ton" }, { "year": 2034, - "value": "0.692944594016434 t CO2/GJ" + "value": "1.132913376348145 CO2 * metric_ton / Fe_ton" }, { "year": 2035, - "value": "0.6908047688202321 t CO2/GJ" + "value": "1.126590369370696 CO2 * metric_ton / Fe_ton" }, { "year": 2036, - "value": "0.6886715514421875 t CO2/GJ" + "value": "1.1203026523086737 CO2 * metric_ton / Fe_ton" }, { "year": 2037, - "value": "0.6865449214772404 t CO2/GJ" + "value": "1.1140500282022872 CO2 * metric_ton / Fe_ton" }, { "year": 2038, - "value": "0.6844248585833425 t CO2/GJ" + "value": "1.107832301191016 CO2 * metric_ton / Fe_ton" }, { "year": 2039, - "value": "0.6823113424812617 t CO2/GJ" + "value": "1.1016492765074752 CO2 * metric_ton / Fe_ton" }, { "year": 2040, - "value": "0.6802043529543889 t CO2/GJ" + "value": "1.0955007604713138 CO2 * metric_ton / Fe_ton" }, { "year": 2041, - "value": "0.6781038698485441 t CO2/GJ" + "value": "1.089386560483148 CO2 * metric_ton / Fe_ton" }, { "year": 2042, - "value": "0.6760098730717837 t CO2/GJ" + "value": "1.0833064850185283 CO2 * metric_ton / Fe_ton" }, { "year": 2043, - "value": "0.6739223425942086 t CO2/GJ" + "value": "1.0772603436219395 CO2 * metric_ton / Fe_ton" }, { "year": 2044, - "value": "0.6718412584477721 t CO2/GJ" + "value": "1.0712479469008354 CO2 * metric_ton / Fe_ton" }, { "year": 2045, - "value": "0.6697666007260893 t CO2/GJ" + "value": "1.0652691065197062 CO2 * metric_ton / Fe_ton" }, { "year": 2046, - "value": "0.6676983495842467 t CO2/GJ" + "value": "1.0593236351941784 CO2 * metric_ton / Fe_ton" }, { "year": 2047, - "value": "0.665636485238612 t CO2/GJ" + "value": "1.0534113466851487 CO2 * metric_ton / Fe_ton" }, { "year": 2048, - "value": "0.6635809879666453 t CO2/GJ" + "value": "1.0475320557929497 CO2 * metric_ton / Fe_ton" }, { "year": 2049, - "value": "0.6615318381067102 t CO2/GJ" + "value": "1.0416855783515493 CO2 * metric_ton / Fe_ton" }, { "year": 2050, - "value": "0.6594890160578858 t CO2/GJ" + "value": "1.0358717312227812 CO2 * metric_ton / Fe_ton" } ] }, - "S3": null, - "S1S2S3": null - }, - "country": null, - "ghg_s1s2": null, - "ghg_s3": null, - "industry_level_1": null, - "industry_level_2": null, - "industry_level_3": null, - "industry_level_4": null, - "company_revenue": null, - "company_market_cap": null, - "company_enterprise_value": null, - "company_total_assets": null, - "company_cash_equivalents": null - }, - { - "company_name": "Company AV", - "company_id": "US6293775085", - "region": "Europe", - "sector": "Steel", - "target_probability": 0.4285714285714285, - "historic_data": { - "productions": [ - { - "year": 2009, - "value": NaN - }, - { - "year": 2010, - "value": NaN - }, - { - "year": 2011, - "value": NaN - }, - { - "year": 2012, - "value": NaN - }, - { - "year": 2013, - "value": NaN - }, - { - "year": 2014, - "value": "91200001.3960884 Fe_ton" - }, - { - "year": 2015, - "value": "92479001.3960884 Fe_ton" + "S2": { + "ei_metric": { + "units": "CO2\u00b7t/Fe_ton" }, - { - "year": 2016, - "value": "90800001.3960884 Fe_ton" - }, - { - "year": 2017, - "value": "93100001.3960884 Fe_ton" - }, - { - "year": 2018, - "value": "92500001.3960884 Fe_ton" - }, - { - "year": 2019, - "value": "89800001.3960884 Fe_ton" - }, - { - "year": 2020, - "value": "71500001.3960884 Fe_ton" - }, - { - "year": 2021, - "value": "71500001.3960884 Fe_ton" - } - ], - "emissions": { - "S1": [ + "projections": [ { - "year": 2009, - "value": NaN + "year": 2019, + "value": "nan CO2 * metric_ton / Fe_ton" }, { - "year": 2010, - "value": "165226001.396088 t CO2" + "year": 2020, + "value": "nan CO2 * metric_ton / Fe_ton" }, { - "year": 2011, - "value": "162028001.396088 t CO2" + "year": 2021, + "value": "nan CO2 * metric_ton / Fe_ton" }, { - "year": 2012, - "value": "158192001.396088 t CO2" + "year": 2022, + "value": "nan CO2 * metric_ton / Fe_ton" }, { - "year": 2013, - "value": "169000001.396088 t CO2" + "year": 2023, + "value": "nan CO2 * metric_ton / Fe_ton" }, { - "year": 2014, - "value": "174000001.396088 t CO2" + "year": 2024, + "value": "nan CO2 * metric_ton / Fe_ton" }, { - "year": 2015, - "value": "176000001.396088 t CO2" + "year": 2025, + "value": "nan CO2 * metric_ton / Fe_ton" }, { - "year": 2016, - "value": "176000001.396088 t CO2" + "year": 2026, + "value": "nan CO2 * metric_ton / Fe_ton" }, { - "year": 2017, - "value": "179700001.396088 t CO2" + "year": 2027, + "value": "nan CO2 * metric_ton / Fe_ton" }, { - "year": 2018, - "value": "174900001.396088 t CO2" + "year": 2028, + "value": "nan CO2 * metric_ton / Fe_ton" }, { - "year": 2019, - "value": "169800001.396088 t CO2" + "year": 2029, + "value": "nan CO2 * metric_ton / Fe_ton" }, { - "year": 2020, - "value": "141300001.396088 t CO2" + "year": 2030, + "value": "nan CO2 * metric_ton / Fe_ton" }, { - "year": 2021, - "value": "141300001.396088 t CO2" - } - ], - "S2": [ + "year": 2031, + "value": "nan CO2 * metric_ton / Fe_ton" + }, { - "year": 2009, - "value": NaN + "year": 2032, + "value": "nan CO2 * metric_ton / Fe_ton" }, { - "year": 2010, - "value": "19599001.3960884 t CO2" + "year": 2033, + "value": "nan CO2 * metric_ton / Fe_ton" }, { - "year": 2011, - "value": "17902001.3960884 t CO2" + "year": 2034, + "value": "nan CO2 * metric_ton / Fe_ton" }, { - "year": 2012, - "value": "17256001.3960884 t CO2" + "year": 2035, + "value": "nan CO2 * metric_ton / Fe_ton" }, { - "year": 2013, - "value": "21000001.3960884 t CO2" + "year": 2036, + "value": "nan CO2 * metric_ton / Fe_ton" }, { - "year": 2014, - "value": "17000001.3960884 t CO2" + "year": 2037, + "value": "nan CO2 * metric_ton / Fe_ton" }, { - "year": 2015, - "value": "16000001.3960884 t CO2" + "year": 2038, + "value": "nan CO2 * metric_ton / Fe_ton" }, { - "year": 2016, - "value": "14000001.3960884 t CO2" + "year": 2039, + "value": "nan CO2 * metric_ton / Fe_ton" }, { - "year": 2017, - "value": "15100001.3960884 t CO2" + "year": 2040, + "value": "nan CO2 * metric_ton / Fe_ton" }, { - "year": 2018, - "value": "13900001.3960884 t CO2" + "year": 2041, + "value": "nan CO2 * metric_ton / Fe_ton" + }, + { + "year": 2042, + "value": "nan CO2 * metric_ton / Fe_ton" + }, + { + "year": 2043, + "value": "nan CO2 * metric_ton / Fe_ton" + }, + { + "year": 2044, + "value": "nan CO2 * metric_ton / Fe_ton" + }, + { + "year": 2045, + "value": "nan CO2 * metric_ton / Fe_ton" + }, + { + "year": 2046, + "value": "nan CO2 * metric_ton / Fe_ton" + }, + { + "year": 2047, + "value": "nan CO2 * metric_ton / Fe_ton" }, { - "year": 2019, - "value": "12100001.3960884 t CO2" + "year": 2048, + "value": "nan CO2 * metric_ton / Fe_ton" }, { - "year": 2020, - "value": "9500001.3960884 t CO2" + "year": 2049, + "value": "nan CO2 * metric_ton / Fe_ton" }, { - "year": 2021, - "value": "9500001.3960884 t CO2" + "year": 2050, + "value": "nan CO2 * metric_ton / Fe_ton" } - ], - "S1S2": [], - "S3": [], - "S1S2S3": [] + ] }, - "emissions_intensities": null - }, - "projected_targets": null, - "projected_intensities": { "S1S2": { + "ei_metric": { + "units": "CO2\u00b7t/Fe_ton" + }, "projections": [ { "year": 2019, - "value": "2.0256124717621637 t CO2/Fe_ton" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2020, - "value": "2.1090909069608257 t CO2/Fe_ton" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2021, - "value": "2.1090909069608257 t CO2/Fe_ton" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2022, - "value": "2.1089525981366672 t CO2/Fe_ton" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2023, - "value": "2.10881429838245 t CO2/Fe_ton" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2024, - "value": "2.1086760076975795 t CO2/Fe_ton" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2025, - "value": "2.1085377260814604 t CO2/Fe_ton" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2026, - "value": "2.1083994535334987 t CO2/Fe_ton" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2027, - "value": "2.108261190053099 t CO2/Fe_ton" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2028, - "value": "2.108122935639668 t CO2/Fe_ton" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2029, - "value": "2.1079846902926094 t CO2/Fe_ton" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2030, - "value": "2.1078464540113298 t CO2/Fe_ton" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2031, - "value": "2.1077082267952343 t CO2/Fe_ton" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2032, - "value": "2.107570008643729 t CO2/Fe_ton" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2033, - "value": "2.107431799556218 t CO2/Fe_ton" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2034, - "value": "2.1072935995321087 t CO2/Fe_ton" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2035, - "value": "2.1071554085708057 t CO2/Fe_ton" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2036, - "value": "2.107017226671715 t CO2/Fe_ton" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2037, - "value": "2.106879053834242 t CO2/Fe_ton" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2038, - "value": "2.106740890057793 t CO2/Fe_ton" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2039, - "value": "2.1066027353417733 t CO2/Fe_ton" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2040, - "value": "2.106464589685589 t CO2/Fe_ton" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2041, - "value": "2.106326453088646 t CO2/Fe_ton" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2042, - "value": "2.1061883255503497 t CO2/Fe_ton" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2043, - "value": "2.106050207070107 t CO2/Fe_ton" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2044, - "value": "2.105912097647323 t CO2/Fe_ton" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2045, - "value": "2.1057739972814042 t CO2/Fe_ton" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2046, - "value": "2.1056359059717566 t CO2/Fe_ton" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2047, - "value": "2.1054978237177866 t CO2/Fe_ton" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2048, - "value": "2.1053597505189 t CO2/Fe_ton" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2049, - "value": "2.105221686374503 t CO2/Fe_ton" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2050, - "value": "2.1050836312840016 t CO2/Fe_ton" + "value": "nan CO2 * metric_ton / Fe_ton" } ] }, "S3": null, "S1S2S3": null - }, - "country": null, - "ghg_s1s2": null, - "ghg_s3": null, - "industry_level_1": null, - "industry_level_2": null, - "industry_level_3": null, - "industry_level_4": null, - "company_revenue": null, - "company_market_cap": null, - "company_enterprise_value": null, - "company_total_assets": null, - "company_cash_equivalents": null + } }, { - "company_name": "Company AW", - "company_id": "US7134481081", + "company_name": "Company G", + "company_id": "CN0000000007", "region": "Asia", "sector": "Steel", "target_probability": 0.4285714285714285, + "target_data": null, "historic_data": { "productions": [ { "year": 2009, - "value": NaN + "value": "nan Fe_ton" }, { "year": 2010, - "value": NaN + "value": "nan Fe_ton" }, { "year": 2011, - "value": NaN + "value": "nan Fe_ton" }, { "year": 2012, - "value": NaN + "value": "nan Fe_ton" }, { "year": 2013, - "value": NaN + "value": "46030001.3676141 Fe_ton" }, { "year": 2014, - "value": NaN + "value": "48160001.3676141 Fe_ton" }, { "year": 2015, - "value": NaN + "value": "47320001.3676141 Fe_ton" }, { "year": 2016, - "value": NaN + "value": "44530001.3676141 Fe_ton" }, { "year": 2017, - "value": NaN + "value": "45170001.3676141 Fe_ton" }, { "year": 2018, - "value": NaN + "value": "46505001.3676141 Fe_ton" }, { "year": 2019, - "value": NaN + "value": "47840001.3676141 Fe_ton" }, { "year": 2020, - "value": NaN + "value": "47050001.3676141 Fe_ton" }, { "year": 2021, - "value": NaN + "value": "47050001.3676141 Fe_ton" } ], "emissions": { "S1": [ { "year": 2009, - "value": NaN + "value": "nan CO2 * metric_ton" }, { "year": 2010, - "value": NaN + "value": "nan CO2 * metric_ton" }, { "year": 2011, - "value": "13390004.4552317 t CO2" + "value": "nan CO2 * metric_ton" }, { "year": 2012, - "value": "9480004.45523172 t CO2" + "value": "nan CO2 * metric_ton" }, { "year": 2013, - "value": "8095004.45523172 t CO2" + "value": "nan CO2 * metric_ton" }, { "year": 2014, - "value": "7840004.45523172 t CO2" + "value": "nan CO2 * metric_ton" }, { "year": 2015, - "value": "7810004.45523172 t CO2" + "value": "nan CO2 * metric_ton" }, { "year": 2016, - "value": "8270004.45523172 t CO2" + "value": "89000001.3676141 CO2 * metric_ton" }, { "year": 2017, - "value": "8670004.45523172 t CO2" + "value": "89000001.3676141 CO2 * metric_ton" }, { "year": 2018, - "value": "8780004.45523172 t CO2" + "value": "86000001.3676141 CO2 * metric_ton" }, { "year": 2019, - "value": "8590004.45523172 t CO2" + "value": "87000001.3676141 CO2 * metric_ton" }, { "year": 2020, - "value": "8530004.45523172 t CO2" + "value": "84000001.3676141 CO2 * metric_ton" }, { "year": 2021, - "value": "8530004.45523172 t CO2" + "value": "84000001.3676141 CO2 * metric_ton" } ], "S2": [ { "year": 2009, - "value": NaN + "value": "nan CO2 * metric_ton" }, { "year": 2010, - "value": NaN + "value": "nan CO2 * metric_ton" }, { "year": 2011, - "value": "2530004.45523172 t CO2" + "value": "nan CO2 * metric_ton" }, { "year": 2012, - "value": "1970004.45523172 t CO2" + "value": "nan CO2 * metric_ton" }, { "year": 2013, - "value": "1781004.45523172 t CO2" + "value": "nan CO2 * metric_ton" }, { "year": 2014, - "value": "1541004.45523172 t CO2" + "value": "nan CO2 * metric_ton" }, { "year": 2015, - "value": "1570004.45523172 t CO2" + "value": "nan CO2 * metric_ton" }, { "year": 2016, - "value": "1830004.45523172 t CO2" + "value": "11000001.3676141 CO2 * metric_ton" }, { "year": 2017, - "value": "2000004.45523172 t CO2" + "value": "10000001.3676141 CO2 * metric_ton" }, { "year": 2018, - "value": "1970004.45523172 t CO2" + "value": "10000001.3676141 CO2 * metric_ton" }, { "year": 2019, - "value": "1810004.45523172 t CO2" + "value": "10000001.3676141 CO2 * metric_ton" }, { "year": 2020, - "value": "1750004.45523172 t CO2" + "value": "9000001.36761412 CO2 * metric_ton" }, { "year": 2021, - "value": "1750004.45523172 t CO2" + "value": "9000001.36761412 CO2 * metric_ton" } ], "S1S2": [], @@ -6802,109 +15953,109 @@ "S1": [ { "year": 2009, - "value": NaN + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2010, - "value": NaN + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2011, - "value": NaN + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2012, - "value": NaN + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2013, - "value": NaN + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2014, - "value": NaN + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2015, - "value": NaN + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2016, - "value": NaN + "value": "1.9986525630862 CO2 * metric_ton / Fe_ton" }, { "year": 2017, - "value": NaN + "value": "1.97033426329327 CO2 * metric_ton / Fe_ton" }, { "year": 2018, - "value": NaN + "value": "1.84926349507656 CO2 * metric_ton / Fe_ton" }, { "year": 2019, - "value": NaN + "value": "1.81856184950927 CO2 * metric_ton / Fe_ton" }, { "year": 2020, - "value": NaN + "value": "1.78533472743815 CO2 * metric_ton / Fe_ton" }, { "year": 2021, - "value": NaN + "value": "1.78533472743815 CO2 * metric_ton / Fe_ton" } ], "S2": [ { "year": 2009, - "value": NaN + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2010, - "value": NaN + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2011, - "value": NaN + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2012, - "value": NaN + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2013, - "value": NaN + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2014, - "value": NaN + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2015, - "value": NaN + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2016, - "value": NaN + "value": "0.247024501005612 CO2 * metric_ton / Fe_ton" }, { "year": 2017, - "value": NaN + "value": "0.221385899155272 CO2 * metric_ton / Fe_ton" }, { "year": 2018, - "value": NaN + "value": "0.215030664950761 CO2 * metric_ton / Fe_ton" }, { "year": 2019, - "value": NaN + "value": "0.209030122946103 CO2 * metric_ton / Fe_ton" }, { "year": 2020, - "value": NaN + "value": "0.191285889606989 CO2 * metric_ton / Fe_ton" }, { "year": 2021, - "value": NaN + "value": "0.191285889606989 CO2 * metric_ton / Fe_ton" } ], "S1S2": [], @@ -6912,762 +16063,606 @@ "S1S2S3": [] } }, + "country": null, + "emissions_metric": { + "units": "t CO2" + }, + "production_metric": { + "units": "Fe_ton" + }, + "base_year_production": "47050001.3676141 Fe_ton", + "ghg_s1s2": "93000002.73522823 CO2 * metric_ton", + "ghg_s3": null, + "industry_level_1": null, + "industry_level_2": null, + "industry_level_3": null, + "industry_level_4": null, + "company_revenue": null, + "company_market_cap": null, + "company_enterprise_value": null, + "company_ev_plus_cash": null, + "company_total_assets": null, + "company_cash_equivalents": null, "projected_targets": null, "projected_intensities": { - "S1S2": { + "S1": { + "ei_metric": { + "units": "CO2\u00b7t/Fe_ton" + }, "projections": [ { "year": 2019, - "value": NaN + "value": "1.81856184950927 CO2 * metric_ton / Fe_ton" }, { "year": 2020, - "value": NaN + "value": "1.78533472743815 CO2 * metric_ton / Fe_ton" }, { "year": 2021, - "value": NaN + "value": "1.78533472743815 CO2 * metric_ton / Fe_ton" }, { "year": 2022, - "value": NaN + "value": "1.7556944332525388 CO2 * metric_ton / Fe_ton" }, { "year": 2023, - "value": NaN + "value": "1.7265462300042222 CO2 * metric_ton / Fe_ton" }, { "year": 2024, - "value": NaN + "value": "1.697881947953418 CO2 * metric_ton / Fe_ton" }, { "year": 2025, - "value": NaN + "value": "1.669693552995128 CO2 * metric_ton / Fe_ton" }, { "year": 2026, - "value": NaN + "value": "1.641973144407317 CO2 * metric_ton / Fe_ton" }, { "year": 2027, - "value": NaN + "value": "1.614712952636476 CO2 * metric_ton / Fe_ton" }, { "year": 2028, - "value": NaN + "value": "1.5879053371199512 CO2 * metric_ton / Fe_ton" }, { "year": 2029, - "value": NaN + "value": "1.5615427841444236 CO2 * metric_ton / Fe_ton" }, { "year": 2030, - "value": NaN + "value": "1.5356179047399465 CO2 * metric_ton / Fe_ton" }, { "year": 2031, - "value": NaN + "value": "1.5101234326089437 CO2 * metric_ton / Fe_ton" }, { "year": 2032, - "value": NaN + "value": "1.4850522220895905 CO2 * metric_ton / Fe_ton" }, { "year": 2033, - "value": NaN + "value": "1.460397246153009 CO2 * metric_ton / Fe_ton" }, { "year": 2034, - "value": NaN + "value": "1.436151594433712 CO2 * metric_ton / Fe_ton" }, { "year": 2035, - "value": NaN + "value": "1.4123084712927467 CO2 * metric_ton / Fe_ton" }, { "year": 2036, - "value": NaN + "value": "1.388861193912994 CO2 * metric_ton / Fe_ton" }, { "year": 2037, - "value": NaN + "value": "1.3658031904260897 CO2 * metric_ton / Fe_ton" }, { "year": 2038, - "value": NaN + "value": "1.3431279980704434 CO2 * metric_ton / Fe_ton" }, { "year": 2039, - "value": NaN + "value": "1.320829261379837 CO2 * metric_ton / Fe_ton" }, { "year": 2040, - "value": NaN + "value": "1.2989007304020974 CO2 * metric_ton / Fe_ton" }, { "year": 2041, - "value": NaN + "value": "1.2773362589473423 CO2 * metric_ton / Fe_ton" }, { "year": 2042, - "value": NaN + "value": "1.2561298028653083 CO2 * metric_ton / Fe_ton" }, { "year": 2043, - "value": NaN + "value": "1.235275418351281 CO2 * metric_ton / Fe_ton" }, { "year": 2044, - "value": NaN + "value": "1.2147672602801476 CO2 * metric_ton / Fe_ton" }, { "year": 2045, - "value": NaN + "value": "1.194599580568109 CO2 * metric_ton / Fe_ton" }, { "year": 2046, - "value": NaN + "value": "1.1747667265615918 CO2 * metric_ton / Fe_ton" }, { "year": 2047, - "value": NaN + "value": "1.1552631394529054 CO2 * metric_ton / Fe_ton" }, { "year": 2048, - "value": NaN + "value": "1.136083352722205 CO2 * metric_ton / Fe_ton" }, { "year": 2049, - "value": NaN + "value": "1.1172219906053198 CO2 * metric_ton / Fe_ton" }, { "year": 2050, - "value": NaN + "value": "1.0986737665870185 CO2 * metric_ton / Fe_ton" } ] }, - "S3": null, - "S1S2S3": null - }, - "country": null, - "ghg_s1s2": null, - "ghg_s3": null, - "industry_level_1": null, - "industry_level_2": null, - "industry_level_3": null, - "industry_level_4": null, - "company_revenue": null, - "company_market_cap": null, - "company_enterprise_value": null, - "company_total_assets": null, - "company_cash_equivalents": null - }, - { - "company_name": "Company A", - "company_id": "JP0000000001", - "region": "Asia", - "sector": "Steel", - "target_probability": 0.4285714285714285, - "historic_data": { - "productions": [ - { - "year": 2009, - "value": NaN - }, - { - "year": 2010, - "value": NaN - }, - { - "year": 2011, - "value": NaN - }, - { - "year": 2012, - "value": NaN - }, - { - "year": 2013, - "value": NaN - }, - { - "year": 2014, - "value": NaN - }, - { - "year": 2015, - "value": NaN + "S2": { + "ei_metric": { + "units": "CO2\u00b7t/Fe_ton" }, - { - "year": 2016, - "value": NaN - }, - { - "year": 2017, - "value": NaN - }, - { - "year": 2018, - "value": NaN - }, - { - "year": 2019, - "value": NaN - }, - { - "year": 2020, - "value": NaN - }, - { - "year": 2021, - "value": NaN - } - ], - "emissions": { - "S1": [ - { - "year": 2009, - "value": "21759305.8145184 t CO2" - }, - { - "year": 2010, - "value": "20966413.8145184 t CO2" - }, - { - "year": 2011, - "value": "21128989.8145184 t CO2" - }, - { - "year": 2012, - "value": "20070402.8145184 t CO2" - }, - { - "year": 2013, - "value": "19691129.8145184 t CO2" - }, - { - "year": 2014, - "value": "19443564.8145184 t CO2" - }, - { - "year": 2015, - "value": "20018158.8145184 t CO2" - }, - { - "year": 2016, - "value": "21042990.8145184 t CO2" - }, - { - "year": 2017, - "value": "20006804.8145184 t CO2" - }, - { - "year": 2018, - "value": "20805771.8145184 t CO2" - }, + "projections": [ { "year": 2019, - "value": "20351815.8145184 t CO2" + "value": "0.209030122946103 CO2 * metric_ton / Fe_ton" }, { "year": 2020, - "value": "20351815.8145184 t CO2" + "value": "0.191285889606989 CO2 * metric_ton / Fe_ton" }, { "year": 2021, - "value": "20351815.8145184 t CO2" - } - ], - "S2": [ - { - "year": 2009, - "value": "1337565.8145184 t CO2" - }, - { - "year": 2010, - "value": "1349200.8145184 t CO2" - }, - { - "year": 2011, - "value": "1371359.8145184 t CO2" - }, - { - "year": 2012, - "value": "1243282.8145184 t CO2" - }, - { - "year": 2013, - "value": "1257964.8145184 t CO2" - }, - { - "year": 2014, - "value": "1185845.8145184 t CO2" + "value": "0.191285889606989 CO2 * metric_ton / Fe_ton" }, { - "year": 2015, - "value": "1109279.8145184 t CO2" - }, - { - "year": 2016, - "value": "1275990.8145184 t CO2" - }, - { - "year": 2017, - "value": "1298687.8145184 t CO2" + "year": 2022, + "value": "0.18579472403091038 CO2 * metric_ton / Fe_ton" }, { - "year": 2018, - "value": "1294689.8145184 t CO2" + "year": 2023, + "value": "0.18046119109279507 CO2 * metric_ton / Fe_ton" }, { - "year": 2019, - "value": "1181783.8145184 t CO2" + "year": 2024, + "value": "0.1752807656971589 CO2 * metric_ton / Fe_ton" }, { - "year": 2020, - "value": "1181783.8145184 t CO2" + "year": 2025, + "value": "0.17024905264857773 CO2 * metric_ton / Fe_ton" }, { - "year": 2021, - "value": "1181783.8145184 t CO2" - } - ], - "S1S2": [], - "S3": [], - "S1S2S3": [] - }, - "emissions_intensities": { - "S1": [ - { - "year": 2009, - "value": NaN + "year": 2026, + "value": "0.1653617829226998 CO2 * metric_ton / Fe_ton" }, { - "year": 2010, - "value": NaN + "year": 2027, + "value": "0.16061481004430436 CO2 * metric_ton / Fe_ton" }, { - "year": 2011, - "value": NaN + "year": 2028, + "value": "0.15600410656933425 CO2 * metric_ton / Fe_ton" }, { - "year": 2012, - "value": NaN + "year": 2029, + "value": "0.1515257606679169 CO2 * metric_ton / Fe_ton" }, { - "year": 2013, - "value": NaN + "year": 2030, + "value": "0.14717597280547545 CO2 * metric_ton / Fe_ton" }, { - "year": 2014, - "value": NaN + "year": 2031, + "value": "0.14295105251911375 CO2 * metric_ton / Fe_ton" }, { - "year": 2015, - "value": NaN + "year": 2032, + "value": "0.13884741528654035 CO2 * metric_ton / Fe_ton" }, { - "year": 2016, - "value": NaN + "year": 2033, + "value": "0.13486157948487498 CO2 * metric_ton / Fe_ton" }, { - "year": 2017, - "value": NaN + "year": 2034, + "value": "0.13099016343675743 CO2 * metric_ton / Fe_ton" }, { - "year": 2018, - "value": NaN + "year": 2035, + "value": "0.12722988254125245 CO2 * metric_ton / Fe_ton" }, { - "year": 2019, - "value": NaN + "year": 2036, + "value": "0.12357754648711661 CO2 * metric_ton / Fe_ton" }, { - "year": 2020, - "value": NaN + "year": 2037, + "value": "0.12003005654606286 CO2 * metric_ton / Fe_ton" }, { - "year": 2021, - "value": NaN - } - ], - "S2": [ - { - "year": 2009, - "value": NaN + "year": 2038, + "value": "0.1165844029437261 CO2 * metric_ton / Fe_ton" }, { - "year": 2010, - "value": NaN + "year": 2039, + "value": "0.11323766230609948 CO2 * metric_ton / Fe_ton" }, { - "year": 2011, - "value": NaN + "year": 2040, + "value": "0.10998699517927471 CO2 * metric_ton / Fe_ton" }, { - "year": 2012, - "value": NaN + "year": 2041, + "value": "0.10682964362038223 CO2 * metric_ton / Fe_ton" }, { - "year": 2013, - "value": NaN + "year": 2042, + "value": "0.10376292885768727 CO2 * metric_ton / Fe_ton" }, { - "year": 2014, - "value": NaN + "year": 2043, + "value": "0.10078424901785653 CO2 * metric_ton / Fe_ton" }, { - "year": 2015, - "value": NaN + "year": 2044, + "value": "0.09789107691846728 CO2 * metric_ton / Fe_ton" }, { - "year": 2016, - "value": NaN + "year": 2045, + "value": "0.09508095792388613 CO2 * metric_ton / Fe_ton" }, { - "year": 2017, - "value": NaN + "year": 2046, + "value": "0.09235150786269798 CO2 * metric_ton / Fe_ton" }, { - "year": 2018, - "value": NaN + "year": 2047, + "value": "0.0897004110049187 CO2 * metric_ton / Fe_ton" }, { - "year": 2019, - "value": NaN + "year": 2048, + "value": "0.08712541809727499 CO2 * metric_ton / Fe_ton" }, { - "year": 2020, - "value": NaN + "year": 2049, + "value": "0.08462434445488472 CO2 * metric_ton / Fe_ton" }, { - "year": 2021, - "value": NaN + "year": 2050, + "value": "0.08219506810771862 CO2 * metric_ton / Fe_ton" } - ], - "S1S2": [], - "S3": [], - "S1S2S3": [] - } - }, - "projected_targets": null, - "projected_intensities": { + ] + }, "S1S2": { + "ei_metric": { + "units": "CO2\u00b7t/Fe_ton" + }, "projections": [ { "year": 2019, - "value": NaN + "value": "2.027591972455373 CO2 * metric_ton / Fe_ton" }, { "year": 2020, - "value": NaN + "value": "1.976620617045139 CO2 * metric_ton / Fe_ton" }, { "year": 2021, - "value": NaN + "value": "1.976620617045139 CO2 * metric_ton / Fe_ton" }, { "year": 2022, - "value": NaN + "value": "1.9414891572834492 CO2 * metric_ton / Fe_ton" }, { "year": 2023, - "value": NaN + "value": "1.9070074210970174 CO2 * metric_ton / Fe_ton" }, { "year": 2024, - "value": NaN + "value": "1.8731627136505768 CO2 * metric_ton / Fe_ton" }, { "year": 2025, - "value": NaN + "value": "1.8399426056437058 CO2 * metric_ton / Fe_ton" }, { "year": 2026, - "value": NaN + "value": "1.8073349273300168 CO2 * metric_ton / Fe_ton" }, { "year": 2027, - "value": NaN + "value": "1.7753277626807804 CO2 * metric_ton / Fe_ton" }, { "year": 2028, - "value": NaN + "value": "1.7439094436892855 CO2 * metric_ton / Fe_ton" }, { "year": 2029, - "value": NaN + "value": "1.7130685448123404 CO2 * metric_ton / Fe_ton" }, { "year": 2030, - "value": NaN + "value": "1.6827938775454219 CO2 * metric_ton / Fe_ton" }, { "year": 2031, - "value": NaN + "value": "1.6530744851280574 CO2 * metric_ton / Fe_ton" }, { "year": 2032, - "value": NaN + "value": "1.623899637376131 CO2 * metric_ton / Fe_ton" }, { "year": 2033, - "value": NaN + "value": "1.5952588256378841 CO2 * metric_ton / Fe_ton" }, { "year": 2034, - "value": NaN + "value": "1.5671417578704694 CO2 * metric_ton / Fe_ton" }, { "year": 2035, - "value": NaN + "value": "1.5395383538339993 CO2 * metric_ton / Fe_ton" }, { "year": 2036, - "value": NaN + "value": "1.5124387404001105 CO2 * metric_ton / Fe_ton" }, { "year": 2037, - "value": NaN + "value": "1.4858332469721525 CO2 * metric_ton / Fe_ton" }, { "year": 2038, - "value": NaN + "value": "1.4597124010141695 CO2 * metric_ton / Fe_ton" }, { "year": 2039, - "value": NaN + "value": "1.4340669236859365 CO2 * metric_ton / Fe_ton" }, { "year": 2040, - "value": NaN + "value": "1.408887725581372 CO2 * metric_ton / Fe_ton" }, { "year": 2041, - "value": NaN + "value": "1.3841659025677244 CO2 * metric_ton / Fe_ton" }, { "year": 2042, - "value": NaN + "value": "1.3598927317229956 CO2 * metric_ton / Fe_ton" }, { "year": 2043, - "value": NaN + "value": "1.3360596673691376 CO2 * metric_ton / Fe_ton" }, { "year": 2044, - "value": NaN + "value": "1.312658337198615 CO2 * metric_ton / Fe_ton" }, { "year": 2045, - "value": NaN + "value": "1.2896805384919952 CO2 * metric_ton / Fe_ton" }, { "year": 2046, - "value": NaN + "value": "1.2671182344242897 CO2 * metric_ton / Fe_ton" }, { "year": 2047, - "value": NaN + "value": "1.244963550457824 CO2 * metric_ton / Fe_ton" }, { "year": 2048, - "value": NaN + "value": "1.2232087708194799 CO2 * metric_ton / Fe_ton" }, { "year": 2049, - "value": NaN + "value": "1.2018463350602044 CO2 * metric_ton / Fe_ton" }, { "year": 2050, - "value": NaN + "value": "1.1808688346947371 CO2 * metric_ton / Fe_ton" } ] }, "S3": null, "S1S2S3": null - }, - "country": null, - "ghg_s1s2": null, - "ghg_s3": null, - "industry_level_1": null, - "industry_level_2": null, - "industry_level_3": null, - "industry_level_4": null, - "company_revenue": null, - "company_market_cap": null, - "company_enterprise_value": null, - "company_total_assets": null, - "company_cash_equivalents": null + } }, { - "company_name": "Company B", - "company_id": "NL0000000002", - "region": "South America", + "company_name": "Company H", + "company_id": "CN0000000008", + "region": "Asia", "sector": "Steel", "target_probability": 0.4285714285714285, + "target_data": null, "historic_data": { "productions": [ { "year": 2009, - "value": NaN + "value": "nan Fe_ton" }, { "year": 2010, - "value": NaN + "value": "nan Fe_ton" }, { "year": 2011, - "value": NaN + "value": "nan Fe_ton" }, { "year": 2012, - "value": NaN + "value": "nan Fe_ton" }, { "year": 2013, - "value": NaN + "value": "nan Fe_ton" }, { "year": 2014, - "value": NaN + "value": "15921004.6310296 Fe_ton" }, { "year": 2015, - "value": NaN + "value": "15855004.6310296 Fe_ton" }, { "year": 2016, - "value": NaN + "value": "16419004.6310296 Fe_ton" }, { "year": 2017, - "value": "16120000.4760821 Fe_ton" + "value": "16850004.6310296 Fe_ton" }, { "year": 2018, - "value": "15342000.4760821 Fe_ton" + "value": "17286004.6310296 Fe_ton" }, { "year": 2019, - "value": "12453000.4760821 Fe_ton" + "value": "15520004.6310296 Fe_ton" }, { "year": 2020, - "value": "12194000.4760821 Fe_ton" + "value": "15520004.6310296 Fe_ton" }, { "year": 2021, - "value": "12194000.4760821 Fe_ton" + "value": "15520004.6310296 Fe_ton" } ], "emissions": { "S1": [ { "year": 2009, - "value": NaN + "value": "nan CO2 * metric_ton" }, { "year": 2010, - "value": NaN + "value": "nan CO2 * metric_ton" }, { "year": 2011, - "value": NaN + "value": "nan CO2 * metric_ton" }, { "year": 2012, - "value": NaN + "value": "nan CO2 * metric_ton" }, { "year": 2013, - "value": NaN + "value": "nan CO2 * metric_ton" }, { "year": 2014, - "value": NaN + "value": "nan CO2 * metric_ton" }, { "year": 2015, - "value": NaN + "value": "29200004.6310296 CO2 * metric_ton" }, { "year": 2016, - "value": NaN + "value": "29200004.6310296 CO2 * metric_ton" }, { "year": 2017, - "value": NaN + "value": "29600004.6310296 CO2 * metric_ton" }, { "year": 2018, - "value": NaN + "value": "30200004.6310296 CO2 * metric_ton" }, { "year": 2019, - "value": "9056.99508207154 t CO2" + "value": "28400004.6310296 CO2 * metric_ton" }, { "year": 2020, - "value": "9056.99508207154 t CO2" + "value": "28400004.6310296 CO2 * metric_ton" }, { "year": 2021, - "value": "9056.99508207154 t CO2" + "value": "28400004.6310296 CO2 * metric_ton" } ], "S2": [ { "year": 2009, - "value": NaN + "value": "nan CO2 * metric_ton" }, { "year": 2010, - "value": NaN + "value": "nan CO2 * metric_ton" }, { "year": 2011, - "value": NaN + "value": "nan CO2 * metric_ton" }, { "year": 2012, - "value": NaN + "value": "nan CO2 * metric_ton" }, { "year": 2013, - "value": NaN + "value": "nan CO2 * metric_ton" }, { "year": 2014, - "value": NaN + "value": "nan CO2 * metric_ton" }, { "year": 2015, - "value": NaN + "value": "3600004.63102958 CO2 * metric_ton" }, { "year": 2016, - "value": NaN + "value": "3800004.63102958 CO2 * metric_ton" }, { "year": 2017, - "value": NaN + "value": "4000004.63102958 CO2 * metric_ton" }, { "year": 2018, - "value": NaN + "value": "4000004.63102958 CO2 * metric_ton" }, { "year": 2019, - "value": "2890986.47608207 t CO2" + "value": "3600004.63102958 CO2 * metric_ton" }, { "year": 2020, - "value": "2890986.47608207 t CO2" + "value": "3600004.63102958 CO2 * metric_ton" }, { "year": 2021, - "value": "2890986.47608207 t CO2" + "value": "3600004.63102958 CO2 * metric_ton" } ], "S1S2": [], @@ -7678,109 +16673,109 @@ "S1": [ { "year": 2009, - "value": NaN + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2010, - "value": NaN + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2011, - "value": NaN + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2012, - "value": NaN + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2013, - "value": NaN + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2014, - "value": NaN + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2015, - "value": NaN + "value": "1.8416900726653 CO2 * metric_ton / Fe_ton" }, { "year": 2016, - "value": NaN + "value": "1.77842721207629 CO2 * metric_ton / Fe_ton" }, { "year": 2017, - "value": NaN + "value": "1.75667634989967 CO2 * metric_ton / Fe_ton" }, { "year": 2018, - "value": NaN + "value": "1.74707836053789 CO2 * metric_ton / Fe_ton" }, { "year": 2019, - "value": "0.000727294205076673 t CO2/Fe_ton" + "value": "1.82989665958273 CO2 * metric_ton / Fe_ton" }, { "year": 2020, - "value": "0.000742741899988965 t CO2/Fe_ton" + "value": "1.82989665958273 CO2 * metric_ton / Fe_ton" }, { "year": 2021, - "value": "0.000742741899988965 t CO2/Fe_ton" + "value": "1.82989665958273 CO2 * metric_ton / Fe_ton" } ], "S2": [ { "year": 2009, - "value": NaN + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2010, - "value": NaN + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2011, - "value": NaN + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2012, - "value": NaN + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2013, - "value": NaN + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2014, - "value": NaN + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2015, - "value": NaN + "value": "0.22705793626727 CO2 * metric_ton / Fe_ton" }, { "year": 2016, - "value": NaN + "value": "0.231439403083431 CO2 * metric_ton / Fe_ton" }, { "year": 2017, - "value": NaN + "value": "0.237388933630528 CO2 * metric_ton / Fe_ton" }, { "year": 2018, - "value": NaN + "value": "0.231401339778036 CO2 * metric_ton / Fe_ton" }, { "year": 2019, - "value": "0.232151800012749 t CO2/Fe_ton" + "value": "0.231958992063184 CO2 * metric_ton / Fe_ton" }, { "year": 2020, - "value": "0.237082693391115 t CO2/Fe_ton" + "value": "0.231958992063184 CO2 * metric_ton / Fe_ton" }, { "year": 2021, - "value": "0.237082693391115 t CO2/Fe_ton" + "value": "0.231958992063184 CO2 * metric_ton / Fe_ton" } ], "S1S2": [], @@ -7788,762 +16783,606 @@ "S1S2S3": [] } }, + "country": null, + "emissions_metric": { + "units": "t CO2" + }, + "production_metric": { + "units": "Fe_ton" + }, + "base_year_production": "15520004.6310296 Fe_ton", + "ghg_s1s2": "32000009.26205918 CO2 * metric_ton", + "ghg_s3": null, + "industry_level_1": null, + "industry_level_2": null, + "industry_level_3": null, + "industry_level_4": null, + "company_revenue": null, + "company_market_cap": null, + "company_enterprise_value": null, + "company_ev_plus_cash": null, + "company_total_assets": null, + "company_cash_equivalents": null, "projected_targets": null, "projected_intensities": { - "S1S2": { + "S1": { + "ei_metric": { + "units": "CO2\u00b7t/Fe_ton" + }, "projections": [ { "year": 2019, - "value": "0.23287909421782566 t CO2/Fe_ton" + "value": "1.82989665958273 CO2 * metric_ton / Fe_ton" }, { "year": 2020, - "value": "0.23782543529110398 t CO2/Fe_ton" + "value": "1.82989665958273 CO2 * metric_ton / Fe_ton" }, { "year": 2021, - "value": "0.23782543529110398 t CO2/Fe_ton" + "value": "1.82989665958273 CO2 * metric_ton / Fe_ton" }, { "year": 2022, - "value": "0.23983744872740673 t CO2/Fe_ton" + "value": "1.8278970506424905 CO2 * metric_ton / Fe_ton" }, { "year": 2023, - "value": "0.24186648388412768 t CO2/Fe_ton" + "value": "1.8258996267632996 CO2 * metric_ton / Fe_ton" }, { "year": 2024, - "value": "0.24391268476575548 t CO2/Fe_ton" + "value": "1.8239043855574446 CO2 * metric_ton / Fe_ton" }, { "year": 2025, - "value": "0.2459761965950629 t CO2/Fe_ton" + "value": "1.821911324639822 CO2 * metric_ton / Fe_ton" }, { "year": 2026, - "value": "0.24805716582341367 t CO2/Fe_ton" + "value": "1.8199204416279342 CO2 * metric_ton / Fe_ton" }, { "year": 2027, - "value": "0.2501557401411564 t CO2/Fe_ton" + "value": "1.8179317341418877 CO2 * metric_ton / Fe_ton" }, { "year": 2028, - "value": "0.2522720684881063 t CO2/Fe_ton" + "value": "1.815945199804389 CO2 * metric_ton / Fe_ton" }, { "year": 2029, - "value": "0.254406301064116 t CO2/Fe_ton" + "value": "1.813960836240743 CO2 * metric_ton / Fe_ton" }, { "year": 2030, - "value": "0.25655858933973524 t CO2/Fe_ton" + "value": "1.8119786410788488 CO2 * metric_ton / Fe_ton" }, { "year": 2031, - "value": "0.2587290860669612 t CO2/Fe_ton" + "value": "1.8099986119491982 CO2 * metric_ton / Fe_ton" }, { "year": 2032, - "value": "0.2609179452900795 t CO2/Fe_ton" + "value": "1.8080207464848719 CO2 * metric_ton / Fe_ton" }, { "year": 2033, - "value": "0.2631253223565971 t CO2/Fe_ton" + "value": "1.8060450423215373 CO2 * metric_ton / Fe_ton" }, { "year": 2034, - "value": "0.2653513739282675 t CO2/Fe_ton" + "value": "1.8040714970974454 CO2 * metric_ton / Fe_ton" }, { "year": 2035, - "value": "0.26759625799220954 t CO2/Fe_ton" + "value": "1.8021001084534278 CO2 * metric_ton / Fe_ton" }, { "year": 2036, - "value": "0.2698601338721197 t CO2/Fe_ton" + "value": "1.800130874032894 CO2 * metric_ton / Fe_ton" }, { "year": 2037, - "value": "0.2721431622395799 t CO2/Fe_ton" + "value": "1.7981637914818291 CO2 * metric_ton / Fe_ton" }, { "year": 2038, - "value": "0.2744455051254606 t CO2/Fe_ton" + "value": "1.79619885844879 CO2 * metric_ton / Fe_ton" }, { "year": 2039, - "value": "0.2767673259314204 t CO2/Fe_ton" + "value": "1.7942360725849036 CO2 * metric_ton / Fe_ton" }, { "year": 2040, - "value": "0.27910878944150286 t CO2/Fe_ton" + "value": "1.792275431543863 CO2 * metric_ton / Fe_ton" }, { "year": 2041, - "value": "0.28147006183383183 t CO2/Fe_ton" + "value": "1.7903169329819255 CO2 * metric_ton / Fe_ton" }, { "year": 2042, - "value": "0.2838513106924051 t CO2/Fe_ton" + "value": "1.7883605745579099 CO2 * metric_ton / Fe_ton" }, { "year": 2043, - "value": "0.2862527050189884 t CO2/Fe_ton" + "value": "1.7864063539331927 CO2 * metric_ton / Fe_ton" }, { "year": 2044, - "value": "0.28867441524510973 t CO2/Fe_ton" + "value": "1.784454268771706 CO2 * metric_ton / Fe_ton" }, { "year": 2045, - "value": "0.291116613244155 t CO2/Fe_ton" + "value": "1.782504316739935 CO2 * metric_ton / Fe_ton" }, { "year": 2046, - "value": "0.29357947234356646 t CO2/Fe_ton" + "value": "1.7805564955069144 CO2 * metric_ton / Fe_ton" }, { "year": 2047, - "value": "0.29606316733714405 t CO2/Fe_ton" + "value": "1.7786108027442264 CO2 * metric_ton / Fe_ton" }, { "year": 2048, - "value": "0.29856787449745076 t CO2/Fe_ton" + "value": "1.7766672361259974 CO2 * metric_ton / Fe_ton" }, { "year": 2049, - "value": "0.301093771588323 t CO2/Fe_ton" + "value": "1.7747257933288954 CO2 * metric_ton / Fe_ton" }, { "year": 2050, - "value": "0.303641037877487 t CO2/Fe_ton" + "value": "1.772786472032127 CO2 * metric_ton / Fe_ton" } ] }, - "S3": null, - "S1S2S3": null - }, - "country": null, - "ghg_s1s2": null, - "ghg_s3": null, - "industry_level_1": null, - "industry_level_2": null, - "industry_level_3": null, - "industry_level_4": null, - "company_revenue": null, - "company_market_cap": null, - "company_enterprise_value": null, - "company_total_assets": null, - "company_cash_equivalents": null - }, - { - "company_name": "Company C", - "company_id": "IT0000000003", - "region": "Asia", - "sector": "Steel", - "target_probability": 0.4285714285714285, - "historic_data": { - "productions": [ - { - "year": 2009, - "value": NaN - }, - { - "year": 2010, - "value": NaN - }, - { - "year": 2011, - "value": NaN - }, - { - "year": 2012, - "value": NaN - }, - { - "year": 2013, - "value": NaN - }, - { - "year": 2014, - "value": "19374009.677026 Fe_ton" - }, - { - "year": 2015, - "value": "21182009.677026 Fe_ton" - }, - { - "year": 2016, - "value": "22380009.677026 Fe_ton" - }, - { - "year": 2017, - "value": "23290009.677026 Fe_ton" - }, - { - "year": 2018, - "value": "23763009.677026 Fe_ton" - }, - { - "year": 2019, - "value": "23303009.677026 Fe_ton" - }, - { - "year": 2020, - "value": "23303009.677026 Fe_ton" + "S2": { + "ei_metric": { + "units": "CO2\u00b7t/Fe_ton" }, - { - "year": 2021, - "value": "23303009.677026 Fe_ton" - } - ], - "emissions": { - "S1": [ - { - "year": 2009, - "value": NaN - }, - { - "year": 2010, - "value": "766009.677026013 t CO2" - }, - { - "year": 2011, - "value": "10247400.677026 t CO2" - }, - { - "year": 2012, - "value": "10197994.677026 t CO2" - }, - { - "year": 2013, - "value": "11080009.677026 t CO2" - }, - { - "year": 2014, - "value": "13317009.677026 t CO2" - }, - { - "year": 2015, - "value": "14157009.677026 t CO2" - }, - { - "year": 2016, - "value": "15622009.677026 t CO2" - }, - { - "year": 2017, - "value": "15710009.677026 t CO2" - }, - { - "year": 2018, - "value": "16492009.677026 t CO2" - }, + "projections": [ { "year": 2019, - "value": "16442009.677026 t CO2" + "value": "0.231958992063184 CO2 * metric_ton / Fe_ton" }, { "year": 2020, - "value": "16442009.677026 t CO2" + "value": "0.231958992063184 CO2 * metric_ton / Fe_ton" }, { "year": 2021, - "value": "16442009.677026 t CO2" - } - ], - "S2": [ - { - "year": 2009, - "value": NaN - }, - { - "year": 2010, - "value": "3518009.67702601 t CO2" - }, - { - "year": 2011, - "value": "4342232.67702601 t CO2" - }, - { - "year": 2012, - "value": "4164848.67702601 t CO2" - }, - { - "year": 2013, - "value": "4818009.67702601 t CO2" - }, - { - "year": 2014, - "value": "5480009.67702601 t CO2" - }, - { - "year": 2015, - "value": "5416009.67702601 t CO2" - }, - { - "year": 2016, - "value": "5653009.67702601 t CO2" - }, - { - "year": 2017, - "value": "5769009.67702601 t CO2" + "value": "0.231958992063184 CO2 * metric_ton / Fe_ton" }, { - "year": 2018, - "value": "5806009.67702601 t CO2" + "year": 2022, + "value": "0.23223849014670572 CO2 * metric_ton / Fe_ton" }, { - "year": 2019, - "value": "5803009.67702601 t CO2" + "year": 2023, + "value": "0.23251832501035397 CO2 * metric_ton / Fe_ton" }, { - "year": 2020, - "value": "5803009.67702601 t CO2" + "year": 2024, + "value": "0.2327984970599306 CO2 * metric_ton / Fe_ton" }, { - "year": 2021, - "value": "5803009.67702601 t CO2" - } - ], - "S1S2": [], - "S3": [], - "S1S2S3": [] - }, - "emissions_intensities": { - "S1": [ - { - "year": 2009, - "value": NaN + "year": 2025, + "value": "0.23307900670172654 CO2 * metric_ton / Fe_ton" }, { - "year": 2010, - "value": NaN + "year": 2026, + "value": "0.23335985434252218 CO2 * metric_ton / Fe_ton" }, { - "year": 2011, - "value": NaN + "year": 2027, + "value": "0.2336410403895881 CO2 * metric_ton / Fe_ton" }, { - "year": 2012, - "value": NaN + "year": 2028, + "value": "0.23392256525068564 CO2 * metric_ton / Fe_ton" }, { - "year": 2013, - "value": NaN + "year": 2029, + "value": "0.23420442933406743 CO2 * metric_ton / Fe_ton" }, { - "year": 2014, - "value": "0.687364665292674 t CO2/Fe_ton" + "year": 2030, + "value": "0.23448663304847803 CO2 * metric_ton / Fe_ton" }, { - "year": 2015, - "value": "0.66835063777639 t CO2/Fe_ton" + "year": 2031, + "value": "0.23476917680315454 CO2 * metric_ton / Fe_ton" }, { - "year": 2016, - "value": "0.698034089460767 t CO2/Fe_ton" + "year": 2032, + "value": "0.23505206100782716 CO2 * metric_ton / Fe_ton" }, { - "year": 2017, - "value": "0.67453856373975 t CO2/Fe_ton" + "year": 2033, + "value": "0.23533528607271978 CO2 * metric_ton / Fe_ton" }, { - "year": 2018, - "value": "0.694020239909696 t CO2/Fe_ton" + "year": 2034, + "value": "0.23561885240855057 CO2 * metric_ton / Fe_ton" }, { - "year": 2019, - "value": "0.705574511829511 t CO2/Fe_ton" + "year": 2035, + "value": "0.23590276042653263 CO2 * metric_ton / Fe_ton" }, { - "year": 2020, - "value": "0.705574511829511 t CO2/Fe_ton" + "year": 2036, + "value": "0.23618701053837454 CO2 * metric_ton / Fe_ton" }, { - "year": 2021, - "value": "0.705574511829511 t CO2/Fe_ton" - } - ], - "S2": [ - { - "year": 2009, - "value": NaN + "year": 2037, + "value": "0.236471603156281 CO2 * metric_ton / Fe_ton" }, { - "year": 2010, - "value": NaN + "year": 2038, + "value": "0.2367565386929533 CO2 * metric_ton / Fe_ton" }, { - "year": 2011, - "value": NaN + "year": 2039, + "value": "0.2370418175615901 CO2 * metric_ton / Fe_ton" }, { - "year": 2012, - "value": NaN + "year": 2040, + "value": "0.2373274401758879 CO2 * metric_ton / Fe_ton" }, { - "year": 2013, - "value": NaN + "year": 2041, + "value": "0.23761340695004168 CO2 * metric_ton / Fe_ton" }, { - "year": 2014, - "value": "0.282853666761831 t CO2/Fe_ton" + "year": 2042, + "value": "0.23789971829874557 CO2 * metric_ton / Fe_ton" }, { - "year": 2015, - "value": "0.255689132410331 t CO2/Fe_ton" + "year": 2043, + "value": "0.23818637463719328 CO2 * metric_ton / Fe_ton" }, { - "year": 2016, - "value": "0.252591922818919 t CO2/Fe_ton" + "year": 2044, + "value": "0.23847337638107888 CO2 * metric_ton / Fe_ton" }, { - "year": 2017, - "value": "0.247703189351473 t CO2/Fe_ton" + "year": 2045, + "value": "0.2387607239465973 CO2 * metric_ton / Fe_ton" }, { - "year": 2018, - "value": "0.244329727418293 t CO2/Fe_ton" + "year": 2046, + "value": "0.239048417750445 CO2 * metric_ton / Fe_ton" }, { - "year": 2019, - "value": "0.249024042707543 t CO2/Fe_ton" + "year": 2047, + "value": "0.23933645820982047 CO2 * metric_ton / Fe_ton" }, { - "year": 2020, - "value": "0.249024042707543 t CO2/Fe_ton" + "year": 2048, + "value": "0.23962484574242493 CO2 * metric_ton / Fe_ton" }, { - "year": 2021, - "value": "0.249024042707543 t CO2/Fe_ton" - } - ], - "S1S2": [], - "S3": [], - "S1S2S3": [] - } - }, - "projected_targets": null, - "projected_intensities": { + "year": 2049, + "value": "0.23991358076646294 CO2 * metric_ton / Fe_ton" + }, + { + "year": 2050, + "value": "0.24020266370064294 CO2 * metric_ton / Fe_ton" + } + ] + }, "S1S2": { + "ei_metric": { + "units": "CO2\u00b7t/Fe_ton" + }, "projections": [ { "year": 2019, - "value": "0.954598554537054 t CO2/Fe_ton" + "value": "2.061855651645914 CO2 * metric_ton / Fe_ton" }, { "year": 2020, - "value": "0.954598554537054 t CO2/Fe_ton" + "value": "2.061855651645914 CO2 * metric_ton / Fe_ton" }, { "year": 2021, - "value": "0.954598554537054 t CO2/Fe_ton" + "value": "2.061855651645914 CO2 * metric_ton / Fe_ton" }, { "year": 2022, - "value": "0.954598554537054 t CO2/Fe_ton" + "value": "2.0601355407891964 CO2 * metric_ton / Fe_ton" }, { "year": 2023, - "value": "0.954598554537054 t CO2/Fe_ton" + "value": "2.0584179517736536 CO2 * metric_ton / Fe_ton" }, { "year": 2024, - "value": "0.954598554537054 t CO2/Fe_ton" + "value": "2.056702882617375 CO2 * metric_ton / Fe_ton" }, { "year": 2025, - "value": "0.954598554537054 t CO2/Fe_ton" + "value": "2.0549903313415485 CO2 * metric_ton / Fe_ton" }, { "year": 2026, - "value": "0.954598554537054 t CO2/Fe_ton" + "value": "2.0532802959704566 CO2 * metric_ton / Fe_ton" }, { "year": 2027, - "value": "0.954598554537054 t CO2/Fe_ton" + "value": "2.0515727745314756 CO2 * metric_ton / Fe_ton" }, { "year": 2028, - "value": "0.954598554537054 t CO2/Fe_ton" + "value": "2.0498677650550747 CO2 * metric_ton / Fe_ton" }, { "year": 2029, - "value": "0.954598554537054 t CO2/Fe_ton" + "value": "2.04816526557481 CO2 * metric_ton / Fe_ton" }, { "year": 2030, - "value": "0.954598554537054 t CO2/Fe_ton" + "value": "2.0464652741273266 CO2 * metric_ton / Fe_ton" }, { "year": 2031, - "value": "0.954598554537054 t CO2/Fe_ton" + "value": "2.0447677887523525 CO2 * metric_ton / Fe_ton" }, { "year": 2032, - "value": "0.954598554537054 t CO2/Fe_ton" + "value": "2.043072807492699 CO2 * metric_ton / Fe_ton" }, { "year": 2033, - "value": "0.954598554537054 t CO2/Fe_ton" + "value": "2.041380328394257 CO2 * metric_ton / Fe_ton" }, { "year": 2034, - "value": "0.954598554537054 t CO2/Fe_ton" + "value": "2.039690349505996 CO2 * metric_ton / Fe_ton" }, { "year": 2035, - "value": "0.954598554537054 t CO2/Fe_ton" + "value": "2.0380028688799605 CO2 * metric_ton / Fe_ton" }, { "year": 2036, - "value": "0.954598554537054 t CO2/Fe_ton" + "value": "2.0363178845712686 CO2 * metric_ton / Fe_ton" }, { "year": 2037, - "value": "0.954598554537054 t CO2/Fe_ton" + "value": "2.03463539463811 CO2 * metric_ton / Fe_ton" }, { "year": 2038, - "value": "0.954598554537054 t CO2/Fe_ton" + "value": "2.0329553971417433 CO2 * metric_ton / Fe_ton" }, { "year": 2039, - "value": "0.954598554537054 t CO2/Fe_ton" + "value": "2.0312778901464936 CO2 * metric_ton / Fe_ton" }, { "year": 2040, - "value": "0.954598554537054 t CO2/Fe_ton" + "value": "2.0296028717197507 CO2 * metric_ton / Fe_ton" }, { "year": 2041, - "value": "0.954598554537054 t CO2/Fe_ton" + "value": "2.027930339931967 CO2 * metric_ton / Fe_ton" }, { "year": 2042, - "value": "0.954598554537054 t CO2/Fe_ton" + "value": "2.0262602928566555 CO2 * metric_ton / Fe_ton" }, { "year": 2043, - "value": "0.954598554537054 t CO2/Fe_ton" + "value": "2.024592728570386 CO2 * metric_ton / Fe_ton" }, { "year": 2044, - "value": "0.954598554537054 t CO2/Fe_ton" + "value": "2.0229276451527847 CO2 * metric_ton / Fe_ton" }, { "year": 2045, - "value": "0.954598554537054 t CO2/Fe_ton" + "value": "2.0212650406865325 CO2 * metric_ton / Fe_ton" }, { "year": 2046, - "value": "0.954598554537054 t CO2/Fe_ton" + "value": "2.0196049132573592 CO2 * metric_ton / Fe_ton" }, { "year": 2047, - "value": "0.954598554537054 t CO2/Fe_ton" + "value": "2.0179472609540468 CO2 * metric_ton / Fe_ton" }, { "year": 2048, - "value": "0.954598554537054 t CO2/Fe_ton" + "value": "2.0162920818684222 CO2 * metric_ton / Fe_ton" }, { "year": 2049, - "value": "0.954598554537054 t CO2/Fe_ton" + "value": "2.014639374095358 CO2 * metric_ton / Fe_ton" }, { "year": 2050, - "value": "0.954598554537054 t CO2/Fe_ton" + "value": "2.01298913573277 CO2 * metric_ton / Fe_ton" } ] }, "S3": null, "S1S2S3": null - }, - "country": null, - "ghg_s1s2": null, - "ghg_s3": null, - "industry_level_1": null, - "industry_level_2": null, - "industry_level_3": null, - "industry_level_4": null, - "company_revenue": null, - "company_market_cap": null, - "company_enterprise_value": null, - "company_total_assets": null, - "company_cash_equivalents": null + } }, { - "company_name": "Company D", - "company_id": "SE0000000004", + "company_name": "Company I", + "company_id": "CN0000000009", "region": "Asia", "sector": "Steel", "target_probability": 0.4285714285714285, + "target_data": null, "historic_data": { "productions": [ { "year": 2009, - "value": NaN + "value": "nan Fe_ton" }, { "year": 2010, - "value": NaN + "value": "nan Fe_ton" }, { "year": 2011, - "value": NaN + "value": "nan Fe_ton" }, { "year": 2012, - "value": NaN + "value": "nan Fe_ton" }, { "year": 2013, - "value": NaN + "value": "nan Fe_ton" }, { "year": 2014, - "value": "31580000.2335485 Fe_ton" + "value": "nan Fe_ton" }, { "year": 2015, - "value": "31040000.2335485 Fe_ton" + "value": "nan Fe_ton" }, { "year": 2016, - "value": "29751000.2335485 Fe_ton" + "value": "nan Fe_ton" }, { "year": 2017, - "value": "30410000.2335485 Fe_ton" + "value": "nan Fe_ton" }, { "year": 2018, - "value": "29145000.2335485 Fe_ton" + "value": "nan Fe_ton" }, { "year": 2019, - "value": "27880000.2335485 Fe_ton" + "value": "nan Fe_ton" }, { "year": 2020, - "value": "28090000.2335485 Fe_ton" + "value": "nan Fe_ton" }, { "year": 2021, - "value": "28090000.2335485 Fe_ton" + "value": "nan Fe_ton" } ], "emissions": { "S1": [ { "year": 2009, - "value": NaN + "value": "60457000.4256679 CO2 * metric_ton" }, { "year": 2010, - "value": NaN + "value": "68748000.4256679 CO2 * metric_ton" }, { "year": 2011, - "value": NaN + "value": "74602000.4256679 CO2 * metric_ton" }, { "year": 2012, - "value": NaN + "value": "85678000.4256679 CO2 * metric_ton" }, { "year": 2013, - "value": NaN + "value": "79928000.4256679 CO2 * metric_ton" }, { "year": 2014, - "value": NaN + "value": "84451000.4256679 CO2 * metric_ton" }, { "year": 2015, - "value": NaN + "value": "82741000.4256679 CO2 * metric_ton" }, { "year": 2016, - "value": "54700000.2335485 t CO2" + "value": "81346000.4256679 CO2 * metric_ton" }, { "year": 2017, - "value": "55000000.2335485 t CO2" + "value": "67743000.4256679 CO2 * metric_ton" }, { "year": 2018, - "value": "54900000.2335485 t CO2" + "value": "69687000.4256679 CO2 * metric_ton" }, { "year": 2019, - "value": "52300000.2335485 t CO2" + "value": "79447000.4256679 CO2 * metric_ton" }, { "year": 2020, - "value": "52900000.2335485 t CO2" + "value": "79447000.4256679 CO2 * metric_ton" }, { "year": 2021, - "value": "52900000.2335485 t CO2" + "value": "79447000.4256679 CO2 * metric_ton" } ], "S2": [ { "year": 2009, - "value": NaN + "value": "2698000.42566793 CO2 * metric_ton" }, { "year": 2010, - "value": NaN + "value": "3033000.42566793 CO2 * metric_ton" }, { "year": 2011, - "value": NaN + "value": "3625000.42566793 CO2 * metric_ton" }, { "year": 2012, - "value": NaN + "value": "3682000.42566793 CO2 * metric_ton" }, { "year": 2013, - "value": NaN + "value": "4539000.42566793 CO2 * metric_ton" }, { "year": 2014, - "value": NaN + "value": "5032000.42566793 CO2 * metric_ton" }, { "year": 2015, - "value": NaN + "value": "4431000.42566793 CO2 * metric_ton" }, { "year": 2016, - "value": "6600000.23354846 t CO2" + "value": "3719000.42566793 CO2 * metric_ton" }, { "year": 2017, - "value": "6400000.23354846 t CO2" + "value": "2956000.42566793 CO2 * metric_ton" }, { "year": 2018, - "value": "7400000.23354846 t CO2" + "value": "2802000.42566793 CO2 * metric_ton" }, { "year": 2019, - "value": "7500000.23354846 t CO2" + "value": "795000.425667932 CO2 * metric_ton" }, { "year": 2020, - "value": "7600000.23354846 t CO2" + "value": "795000.425667932 CO2 * metric_ton" }, { "year": 2021, - "value": "7600000.23354846 t CO2" + "value": "795000.425667932 CO2 * metric_ton" } ], "S1S2": [], @@ -8554,109 +17393,109 @@ "S1": [ { "year": 2009, - "value": NaN + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2010, - "value": NaN + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2011, - "value": NaN + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2012, - "value": NaN + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2013, - "value": NaN + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2014, - "value": NaN + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2015, - "value": NaN + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2016, - "value": "1.83859365413424 t CO2/Fe_ton" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2017, - "value": "1.80861558076781 t CO2/Fe_ton" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2018, - "value": "1.8836850160788 t CO2/Fe_ton" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2019, - "value": "1.87589669280616 t CO2/Fe_ton" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2020, - "value": "1.88323245972668 t CO2/Fe_ton" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2021, - "value": "1.88323245972668 t CO2/Fe_ton" + "value": "nan CO2 * metric_ton / Fe_ton" } ], "S2": [ { "year": 2009, - "value": NaN + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2010, - "value": NaN + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2011, - "value": NaN + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2012, - "value": NaN + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2013, - "value": NaN + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2014, - "value": NaN + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2015, - "value": NaN + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2016, - "value": "0.221841288754589 t CO2/Fe_ton" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2017, - "value": "0.21045709254839 t CO2/Fe_ton" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2018, - "value": "0.253902905275342 t CO2/Fe_ton" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2019, - "value": "0.26901004916505 t CO2/Fe_ton" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2020, - "value": "0.270558923829115 t CO2/Fe_ton" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2021, - "value": "0.270558923829115 t CO2/Fe_ton" + "value": "nan CO2 * metric_ton / Fe_ton" } ], "S1S2": [], @@ -8664,762 +17503,606 @@ "S1S2S3": [] } }, + "country": null, + "emissions_metric": { + "units": "t CO2" + }, + "production_metric": { + "units": "Fe_ton" + }, + "base_year_production": "nan Fe_ton", + "ghg_s1s2": "80242000.85133582 CO2 * metric_ton", + "ghg_s3": null, + "industry_level_1": null, + "industry_level_2": null, + "industry_level_3": null, + "industry_level_4": null, + "company_revenue": null, + "company_market_cap": null, + "company_enterprise_value": null, + "company_ev_plus_cash": null, + "company_total_assets": null, + "company_cash_equivalents": null, "projected_targets": null, "projected_intensities": { - "S1S2": { + "S1": { + "ei_metric": { + "units": "CO2\u00b7t/Fe_ton" + }, "projections": [ { "year": 2019, - "value": "2.14490674197121 t CO2/Fe_ton" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2020, - "value": "2.153791383555795 t CO2/Fe_ton" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2021, - "value": "2.153791383555795 t CO2/Fe_ton" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2022, - "value": "2.161165682701744 t CO2/Fe_ton" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2023, - "value": "2.16856523048055 t CO2/Fe_ton" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2024, - "value": "2.175990113340219 t CO2/Fe_ton" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2025, - "value": "2.183440418024745 t CO2/Fe_ton" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2026, - "value": "2.1909162315751214 t CO2/Fe_ton" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2027, - "value": "2.1984176413303578 t CO2/Fe_ton" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2028, - "value": "2.205944734928502 t CO2/Fe_ton" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2029, - "value": "2.213497600307663 t CO2/Fe_ton" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2030, - "value": "2.221076325707038 t CO2/Fe_ton" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2031, - "value": "2.228680999667943 t CO2/Fe_ton" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2032, - "value": "2.236311711034849 t CO2/Fe_ton" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2033, - "value": "2.2439685489564183 t CO2/Fe_ton" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2034, - "value": "2.2516516028865468 t CO2/Fe_ton" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2035, - "value": "2.2593609625854083 t CO2/Fe_ton" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2036, - "value": "2.2670967181205044 t CO2/Fe_ton" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2037, - "value": "2.274858959867715 t CO2/Fe_ton" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2038, - "value": "2.2826477785123562 t CO2/Fe_ton" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2039, - "value": "2.2904632650502377 t CO2/Fe_ton" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2040, - "value": "2.298305510788728 t CO2/Fe_ton" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2041, - "value": "2.3061746073478187 t CO2/Fe_ton" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2042, - "value": "2.314070646661198 t CO2/Fe_ton" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2043, - "value": "2.3219937209773214 t CO2/Fe_ton" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2044, - "value": "2.3299439228604917 t CO2/Fe_ton" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2045, - "value": "2.33792134519194 t CO2/Fe_ton" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2046, - "value": "2.34592608117091 t CO2/Fe_ton" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2047, - "value": "2.3539582243157473 t CO2/Fe_ton" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2048, - "value": "2.3620178684649926 t CO2/Fe_ton" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2049, - "value": "2.3701051077784774 t CO2/Fe_ton" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2050, - "value": "2.3782200367384236 t CO2/Fe_ton" + "value": "nan CO2 * metric_ton / Fe_ton" } ] }, - "S3": null, - "S1S2S3": null - }, - "country": null, - "ghg_s1s2": null, - "ghg_s3": null, - "industry_level_1": null, - "industry_level_2": null, - "industry_level_3": null, - "industry_level_4": null, - "company_revenue": null, - "company_market_cap": null, - "company_enterprise_value": null, - "company_total_assets": null, - "company_cash_equivalents": null - }, - { - "company_name": "Company E", - "company_id": "SE0000000005", - "region": "Asia", - "sector": "Steel", - "target_probability": 0.4285714285714285, - "historic_data": { - "productions": [ - { - "year": 2009, - "value": NaN - }, - { - "year": 2010, - "value": NaN - }, - { - "year": 2011, - "value": NaN - }, - { - "year": 2012, - "value": NaN - }, - { - "year": 2013, - "value": NaN - }, - { - "year": 2014, - "value": "12170001.0468216 Fe_ton" - }, - { - "year": 2015, - "value": "12630001.0468216 Fe_ton" - }, - { - "year": 2016, - "value": "12630001.0468216 Fe_ton" - }, - { - "year": 2017, - "value": "12630001.0468216 Fe_ton" - }, - { - "year": 2018, - "value": "12630001.0468216 Fe_ton" - }, - { - "year": 2019, - "value": "12630001.0468216 Fe_ton" - }, - { - "year": 2020, - "value": "12630001.0468216 Fe_ton" + "S2": { + "ei_metric": { + "units": "CO2\u00b7t/Fe_ton" }, - { - "year": 2021, - "value": "12630001.0468216 Fe_ton" - } - ], - "emissions": { - "S1": [ - { - "year": 2009, - "value": NaN - }, - { - "year": 2010, - "value": "14667421.0468216 t CO2" - }, - { - "year": 2011, - "value": "15541981.0468216 t CO2" - }, - { - "year": 2012, - "value": "21355001.0468216 t CO2" - }, - { - "year": 2013, - "value": "28086001.0468216 t CO2" - }, - { - "year": 2014, - "value": "26077001.0468216 t CO2" - }, - { - "year": 2015, - "value": "26816001.0468216 t CO2" - }, - { - "year": 2016, - "value": "31440001.0468216 t CO2" - }, - { - "year": 2017, - "value": "36610961.0468216 t CO2" - }, - { - "year": 2018, - "value": "41528001.0468216 t CO2" - }, + "projections": [ { "year": 2019, - "value": "41938351.0468216 t CO2" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2020, - "value": "40045311.0468216 t CO2" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2021, - "value": "40045311.0468216 t CO2" - } - ], - "S2": [ - { - "year": 2009, - "value": NaN - }, - { - "year": 2010, - "value": "976021.046821591 t CO2" - }, - { - "year": 2011, - "value": "1550771.04682159 t CO2" - }, - { - "year": 2012, - "value": "16541.0468215911 t CO2" - }, - { - "year": 2013, - "value": "33601.0468215911 t CO2" - }, - { - "year": 2014, - "value": "3742001.04682159 t CO2" - }, - { - "year": 2015, - "value": "4157001.04682159 t CO2" - }, - { - "year": 2016, - "value": "661001.046821591 t CO2" - }, - { - "year": 2017, - "value": "1885181.04682159 t CO2" + "value": "nan CO2 * metric_ton / Fe_ton" }, { - "year": 2018, - "value": "626001.046821591 t CO2" + "year": 2022, + "value": "nan CO2 * metric_ton / Fe_ton" }, { - "year": 2019, - "value": "3909961.04682159 t CO2" + "year": 2023, + "value": "nan CO2 * metric_ton / Fe_ton" }, { - "year": 2020, - "value": "476901.046821591 t CO2" + "year": 2024, + "value": "nan CO2 * metric_ton / Fe_ton" }, { - "year": 2021, - "value": "476901.046821591 t CO2" - } - ], - "S1S2": [], - "S3": [], - "S1S2S3": [] - }, - "emissions_intensities": { - "S1": [ - { - "year": 2009, - "value": NaN + "year": 2025, + "value": "nan CO2 * metric_ton / Fe_ton" }, { - "year": 2010, - "value": NaN + "year": 2026, + "value": "nan CO2 * metric_ton / Fe_ton" }, { - "year": 2011, - "value": NaN + "year": 2027, + "value": "nan CO2 * metric_ton / Fe_ton" }, { - "year": 2012, - "value": NaN + "year": 2028, + "value": "nan CO2 * metric_ton / Fe_ton" }, { - "year": 2013, - "value": NaN + "year": 2029, + "value": "nan CO2 * metric_ton / Fe_ton" }, { - "year": 2014, - "value": "2.14272792142709 t CO2/Fe_ton" + "year": 2030, + "value": "nan CO2 * metric_ton / Fe_ton" }, { - "year": 2015, - "value": "2.12319864008008 t CO2/Fe_ton" + "year": 2031, + "value": "nan CO2 * metric_ton / Fe_ton" }, { - "year": 2016, - "value": "2.48931104045582 t CO2/Fe_ton" + "year": 2032, + "value": "nan CO2 * metric_ton / Fe_ton" }, { - "year": 2017, - "value": "2.89872985054383 t CO2/Fe_ton" + "year": 2033, + "value": "nan CO2 * metric_ton / Fe_ton" }, { - "year": 2018, - "value": "3.28804414923404 t CO2/Fe_ton" + "year": 2034, + "value": "nan CO2 * metric_ton / Fe_ton" }, { - "year": 2019, - "value": "3.32053424947068 t CO2/Fe_ton" + "year": 2035, + "value": "nan CO2 * metric_ton / Fe_ton" }, { - "year": 2020, - "value": "3.17064985967671 t CO2/Fe_ton" + "year": 2036, + "value": "nan CO2 * metric_ton / Fe_ton" }, { - "year": 2021, - "value": "3.17064985967671 t CO2/Fe_ton" - } - ], - "S2": [ - { - "year": 2009, - "value": NaN + "year": 2037, + "value": "nan CO2 * metric_ton / Fe_ton" }, { - "year": 2010, - "value": NaN + "year": 2038, + "value": "nan CO2 * metric_ton / Fe_ton" }, { - "year": 2011, - "value": NaN + "year": 2039, + "value": "nan CO2 * metric_ton / Fe_ton" }, { - "year": 2012, - "value": NaN + "year": 2040, + "value": "nan CO2 * metric_ton / Fe_ton" }, { - "year": 2013, - "value": NaN + "year": 2041, + "value": "nan CO2 * metric_ton / Fe_ton" }, { - "year": 2014, - "value": "0.307477463019519 t CO2/Fe_ton" + "year": 2042, + "value": "nan CO2 * metric_ton / Fe_ton" }, { - "year": 2015, - "value": "0.329137031058895 t CO2/Fe_ton" + "year": 2043, + "value": "nan CO2 * metric_ton / Fe_ton" }, { - "year": 2016, - "value": "0.0523357871761963 t CO2/Fe_ton" + "year": 2044, + "value": "nan CO2 * metric_ton / Fe_ton" }, { - "year": 2017, - "value": "0.149262144938302 t CO2/Fe_ton" + "year": 2045, + "value": "nan CO2 * metric_ton / Fe_ton" }, { - "year": 2018, - "value": "0.0495646076750823 t CO2/Fe_ton" + "year": 2046, + "value": "nan CO2 * metric_ton / Fe_ton" }, { - "year": 2019, - "value": "0.309577254374461 t CO2/Fe_ton" + "year": 2047, + "value": "nan CO2 * metric_ton / Fe_ton" }, { - "year": 2020, - "value": "0.0377593830003368 t CO2/Fe_ton" + "year": 2048, + "value": "nan CO2 * metric_ton / Fe_ton" }, { - "year": 2021, - "value": "0.0377593830003368 t CO2/Fe_ton" - } - ], - "S1S2": [], - "S3": [], - "S1S2S3": [] - } - }, - "projected_targets": null, - "projected_intensities": { + "year": 2049, + "value": "nan CO2 * metric_ton / Fe_ton" + }, + { + "year": 2050, + "value": "nan CO2 * metric_ton / Fe_ton" + } + ] + }, "S1S2": { + "ei_metric": { + "units": "CO2\u00b7t/Fe_ton" + }, "projections": [ { "year": 2019, - "value": "3.630111503845141 t CO2/Fe_ton" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2020, - "value": "3.2084092426770465 t CO2/Fe_ton" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2021, - "value": "3.2084092426770465 t CO2/Fe_ton" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2022, - "value": "3.2927632144991095 t CO2/Fe_ton" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2023, - "value": "3.379334980880391 t CO2/Fe_ton" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2024, - "value": "3.468182851021996 t CO2/Fe_ton" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2025, - "value": "3.559366667162847 t CO2/Fe_ton" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2026, - "value": "3.652947844885588 t CO2/Fe_ton" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2027, - "value": "3.7489894144821885 t CO2/Fe_ton" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2028, - "value": "3.8475560634071164 t CO2/Fe_ton" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2029, - "value": "3.948714179846666 t CO2/Fe_ton" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2030, - "value": "4.0525318974337905 t CO2/Fe_ton" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2031, - "value": "4.159079141138558 t CO2/Fe_ton" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2032, - "value": "4.268427674365136 t CO2/Fe_ton" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2033, - "value": "4.380651147287026 t CO2/Fe_ton" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2034, - "value": "4.495825146453109 t CO2/Fe_ton" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2035, - "value": "4.614027245697903 t CO2/Fe_ton" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2036, - "value": "4.735337058390338 t CO2/Fe_ton" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2037, - "value": "4.859836291056224 t CO2/Fe_ton" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2038, - "value": "4.987608798410536 t CO2/Fe_ton" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2039, - "value": "5.1187406398365844 t CO2/Fe_ton" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2040, - "value": "5.253320137350109 t CO2/Fe_ton" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2041, - "value": "5.391437935087332 t CO2/Fe_ton" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2042, - "value": "5.5331870603570525 t CO2/Fe_ton" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2043, - "value": "5.678662986297883 t CO2/Fe_ton" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2044, - "value": "5.827963696182847 t CO2/Fe_ton" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2045, - "value": "5.981189749414641 t CO2/Fe_ton" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2046, - "value": "6.1384443492560115 t CO2/Fe_ton" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2047, - "value": "6.299833412340868 t CO2/Fe_ton" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2048, - "value": "6.465465640012948 t CO2/Fe_ton" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2049, - "value": "6.635452591540087 t CO2/Fe_ton" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2050, - "value": "6.809908759253399 t CO2/Fe_ton" + "value": "nan CO2 * metric_ton / Fe_ton" } ] }, "S3": null, "S1S2S3": null - }, - "country": null, - "ghg_s1s2": null, - "ghg_s3": null, - "industry_level_1": null, - "industry_level_2": null, - "industry_level_3": null, - "industry_level_4": null, - "company_revenue": null, - "company_market_cap": null, - "company_enterprise_value": null, - "company_total_assets": null, - "company_cash_equivalents": null + } }, { - "company_name": "Company F", - "company_id": "NL0000000006", + "company_name": "Company J", + "company_id": "BR0000000010", "region": "Asia", "sector": "Steel", "target_probability": 0.4285714285714285, + "target_data": null, "historic_data": { "productions": [ { "year": 2009, - "value": NaN + "value": "nan Fe_ton" }, { "year": 2010, - "value": NaN + "value": "nan Fe_ton" }, { "year": 2011, - "value": NaN + "value": "nan Fe_ton" }, { "year": 2012, - "value": NaN + "value": "nan Fe_ton" }, { "year": 2013, - "value": "23001000.8292913 Fe_ton" + "value": "15691492.9224849 Fe_ton" }, { "year": 2014, - "value": "25222000.8292913 Fe_ton" + "value": "11301980.9224849 Fe_ton" }, { "year": 2015, - "value": "23424000.8292913 Fe_ton" + "value": "11500001.9224849 Fe_ton" }, { "year": 2016, - "value": "24100000.8292913 Fe_ton" + "value": "11600001.9224849 Fe_ton" }, { "year": 2017, - "value": "24193000.8292913 Fe_ton" + "value": "3012108.92248495 Fe_ton" }, { "year": 2018, - "value": "24328000.8292913 Fe_ton" + "value": "12039001.9224849 Fe_ton" }, { "year": 2019, - "value": "23779000.8292913 Fe_ton" + "value": "11847001.9224849 Fe_ton" }, { "year": 2020, - "value": "22329000.8292913 Fe_ton" + "value": "11314001.9224849 Fe_ton" }, { "year": 2021, - "value": "22329000.8292913 Fe_ton" + "value": "11314001.9224849 Fe_ton" } ], "emissions": { "S1": [ { "year": 2009, - "value": NaN + "value": "nan CO2 * metric_ton" }, { "year": 2010, - "value": NaN + "value": "nan CO2 * metric_ton" }, { "year": 2011, - "value": NaN + "value": "nan CO2 * metric_ton" }, { "year": 2012, - "value": NaN + "value": "nan CO2 * metric_ton" }, { "year": 2013, - "value": NaN + "value": "nan CO2 * metric_ton" }, { "year": 2014, - "value": NaN + "value": "nan CO2 * metric_ton" }, { "year": 2015, - "value": NaN + "value": "nan CO2 * metric_ton" }, { "year": 2016, - "value": "31300000.8292913 t CO2" + "value": "23200001.9224849 CO2 * metric_ton" }, { "year": 2017, - "value": "31072000.8292913 t CO2" + "value": "22200001.9224849 CO2 * metric_ton" }, { "year": 2018, - "value": "29491000.8292913 t CO2" + "value": "22100001.9224849 CO2 * metric_ton" }, { "year": 2019, - "value": "27206000.8292913 t CO2" + "value": "23400001.9224849 CO2 * metric_ton" }, { "year": 2020, - "value": "27206000.8292913 t CO2" + "value": "23400001.9224849 CO2 * metric_ton" }, { "year": 2021, - "value": "27206000.8292913 t CO2" + "value": "23400001.9224849 CO2 * metric_ton" } ], "S2": [ { "year": 2009, - "value": NaN + "value": "nan CO2 * metric_ton" }, { "year": 2010, - "value": NaN + "value": "nan CO2 * metric_ton" }, { "year": 2011, - "value": NaN + "value": "nan CO2 * metric_ton" }, { "year": 2012, - "value": NaN + "value": "nan CO2 * metric_ton" }, { "year": 2013, - "value": NaN + "value": "nan CO2 * metric_ton" }, { "year": 2014, - "value": NaN + "value": "nan CO2 * metric_ton" }, { "year": 2015, - "value": NaN + "value": "nan CO2 * metric_ton" }, { "year": 2016, - "value": NaN + "value": "nan CO2 * metric_ton" }, { "year": 2017, - "value": NaN + "value": "nan CO2 * metric_ton" }, { "year": 2018, - "value": NaN + "value": "nan CO2 * metric_ton" }, { "year": 2019, - "value": NaN + "value": "nan CO2 * metric_ton" }, { "year": 2020, - "value": NaN + "value": "nan CO2 * metric_ton" }, { "year": 2021, - "value": NaN + "value": "nan CO2 * metric_ton" } ], "S1S2": [], @@ -9430,109 +18113,109 @@ "S1": [ { "year": 2009, - "value": NaN + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2010, - "value": NaN + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2011, - "value": NaN + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2012, - "value": NaN + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2013, - "value": NaN + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2014, - "value": NaN + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2015, - "value": NaN + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2016, - "value": "1.2987551764417 t CO2/Fe_ton" + "value": "1.99999983426857 CO2 * metric_ton / Fe_ton" }, { "year": 2017, - "value": "1.28433843525816 t CO2/Fe_ton" + "value": "7.37025203729028 CO2 * metric_ton / Fe_ton" }, { "year": 2018, - "value": "1.21222458993769 t CO2/Fe_ton" + "value": "1.83570050613659 CO2 * metric_ton / Fe_ton" }, { "year": 2019, - "value": "1.14411875522451 t CO2/Fe_ton" + "value": "1.97518343253351 CO2 * metric_ton / Fe_ton" }, { "year": 2020, - "value": "1.21841550534596 t CO2/Fe_ton" + "value": "2.06823386479905 CO2 * metric_ton / Fe_ton" }, { "year": 2021, - "value": "1.21841550534596 t CO2/Fe_ton" + "value": "2.06823386479905 CO2 * metric_ton / Fe_ton" } ], "S2": [ { "year": 2009, - "value": NaN + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2010, - "value": NaN + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2011, - "value": NaN + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2012, - "value": NaN + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2013, - "value": NaN + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2014, - "value": NaN + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2015, - "value": NaN + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2016, - "value": NaN + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2017, - "value": NaN + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2018, - "value": NaN + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2019, - "value": NaN + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2020, - "value": NaN + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2021, - "value": NaN + "value": "nan CO2 * metric_ton / Fe_ton" } ], "S1S2": [], @@ -9540,762 +18223,606 @@ "S1S2S3": [] } }, + "country": null, + "emissions_metric": { + "units": "t CO2" + }, + "production_metric": { + "units": "Fe_ton" + }, + "base_year_production": "11314001.9224849 Fe_ton", + "ghg_s1s2": "nan CO2 * metric_ton", + "ghg_s3": null, + "industry_level_1": null, + "industry_level_2": null, + "industry_level_3": null, + "industry_level_4": null, + "company_revenue": null, + "company_market_cap": null, + "company_enterprise_value": null, + "company_ev_plus_cash": null, + "company_total_assets": null, + "company_cash_equivalents": null, "projected_targets": null, "projected_intensities": { - "S1S2": { + "S1": { + "ei_metric": { + "units": "CO2\u00b7t/Fe_ton" + }, "projections": [ { "year": 2019, - "value": NaN + "value": "1.97518343253351 CO2 * metric_ton / Fe_ton" }, { "year": 2020, - "value": NaN + "value": "2.06823386479905 CO2 * metric_ton / Fe_ton" }, { "year": 2021, - "value": NaN + "value": "2.06823386479905 CO2 * metric_ton / Fe_ton" }, { "year": 2022, - "value": NaN + "value": "2.1302808807430216 CO2 * metric_ton / Fe_ton" }, { "year": 2023, - "value": NaN + "value": "2.1941893071653125 CO2 * metric_ton / Fe_ton" }, { "year": 2024, - "value": NaN + "value": "2.260014986380272 CO2 * metric_ton / Fe_ton" }, { "year": 2025, - "value": NaN + "value": "2.3278154359716803 CO2 * metric_ton / Fe_ton" }, { "year": 2026, - "value": NaN + "value": "2.3976498990508306 CO2 * metric_ton / Fe_ton" }, { "year": 2027, - "value": NaN + "value": "2.4695793960223558 CO2 * metric_ton / Fe_ton" }, { "year": 2028, - "value": NaN + "value": "2.5436667779030264 CO2 * metric_ton / Fe_ton" }, { "year": 2029, - "value": NaN + "value": "2.6199767812401173 CO2 * metric_ton / Fe_ton" }, { "year": 2030, - "value": NaN + "value": "2.698576084677321 CO2 * metric_ton / Fe_ton" }, { "year": 2031, - "value": NaN + "value": "2.7795333672176405 CO2 * metric_ton / Fe_ton" }, { "year": 2032, - "value": NaN + "value": "2.86291936823417 CO2 * metric_ton / Fe_ton" }, { "year": 2033, - "value": NaN + "value": "2.9488069492811952 CO2 * metric_ton / Fe_ton" }, { "year": 2034, - "value": NaN + "value": "3.037271157759631 CO2 * metric_ton / Fe_ton" }, { "year": 2035, - "value": NaN + "value": "3.1283892924924204 CO2 * metric_ton / Fe_ton" }, { "year": 2036, - "value": NaN + "value": "3.222240971267193 CO2 * metric_ton / Fe_ton" }, { "year": 2037, - "value": NaN + "value": "3.318908200405209 CO2 * metric_ton / Fe_ton" }, { "year": 2038, - "value": NaN + "value": "3.4184754464173652 CO2 * metric_ton / Fe_ton" }, { "year": 2039, - "value": NaN + "value": "3.5210297098098864 CO2 * metric_ton / Fe_ton" }, { "year": 2040, - "value": NaN + "value": "3.626660601104183 CO2 * metric_ton / Fe_ton" }, { "year": 2041, - "value": NaN + "value": "3.7354604191373086 CO2 * metric_ton / Fe_ton" }, { "year": 2042, - "value": NaN + "value": "3.847524231711428 CO2 * metric_ton / Fe_ton" }, { "year": 2043, - "value": NaN + "value": "3.962949958662771 CO2 * metric_ton / Fe_ton" }, { "year": 2044, - "value": NaN + "value": "4.081838457422654 CO2 * metric_ton / Fe_ton" }, { "year": 2045, - "value": NaN + "value": "4.204293611145333 CO2 * metric_ton / Fe_ton" }, { "year": 2046, - "value": NaN + "value": "4.330422419479693 CO2 * metric_ton / Fe_ton" }, { "year": 2047, - "value": NaN + "value": "4.460335092064084 CO2 * metric_ton / Fe_ton" }, { "year": 2048, - "value": NaN + "value": "4.594145144826006 CO2 * metric_ton / Fe_ton" }, { "year": 2049, - "value": NaN + "value": "4.731969499170787 CO2 * metric_ton / Fe_ton" }, { "year": 2050, - "value": NaN + "value": "4.873928584145911 CO2 * metric_ton / Fe_ton" } ] }, - "S3": null, - "S1S2S3": null - }, - "country": null, - "ghg_s1s2": null, - "ghg_s3": null, - "industry_level_1": null, - "industry_level_2": null, - "industry_level_3": null, - "industry_level_4": null, - "company_revenue": null, - "company_market_cap": null, - "company_enterprise_value": null, - "company_total_assets": null, - "company_cash_equivalents": null - }, - { - "company_name": "Company G", - "company_id": "CN0000000007", - "region": "Asia", - "sector": "Steel", - "target_probability": 0.4285714285714285, - "historic_data": { - "productions": [ - { - "year": 2009, - "value": NaN - }, - { - "year": 2010, - "value": NaN - }, - { - "year": 2011, - "value": NaN - }, - { - "year": 2012, - "value": NaN - }, - { - "year": 2013, - "value": "46030001.3676141 Fe_ton" - }, - { - "year": 2014, - "value": "48160001.3676141 Fe_ton" - }, - { - "year": 2015, - "value": "47320001.3676141 Fe_ton" - }, - { - "year": 2016, - "value": "44530001.3676141 Fe_ton" - }, - { - "year": 2017, - "value": "45170001.3676141 Fe_ton" - }, - { - "year": 2018, - "value": "46505001.3676141 Fe_ton" - }, - { - "year": 2019, - "value": "47840001.3676141 Fe_ton" - }, - { - "year": 2020, - "value": "47050001.3676141 Fe_ton" + "S2": { + "ei_metric": { + "units": "CO2\u00b7t/Fe_ton" }, - { - "year": 2021, - "value": "47050001.3676141 Fe_ton" - } - ], - "emissions": { - "S1": [ - { - "year": 2009, - "value": NaN - }, - { - "year": 2010, - "value": NaN - }, - { - "year": 2011, - "value": NaN - }, - { - "year": 2012, - "value": NaN - }, - { - "year": 2013, - "value": NaN - }, - { - "year": 2014, - "value": NaN - }, - { - "year": 2015, - "value": NaN - }, - { - "year": 2016, - "value": "89000001.3676141 t CO2" - }, - { - "year": 2017, - "value": "89000001.3676141 t CO2" - }, - { - "year": 2018, - "value": "86000001.3676141 t CO2" - }, + "projections": [ { "year": 2019, - "value": "87000001.3676141 t CO2" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2020, - "value": "84000001.3676141 t CO2" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2021, - "value": "84000001.3676141 t CO2" - } - ], - "S2": [ - { - "year": 2009, - "value": NaN - }, - { - "year": 2010, - "value": NaN - }, - { - "year": 2011, - "value": NaN - }, - { - "year": 2012, - "value": NaN - }, - { - "year": 2013, - "value": NaN - }, - { - "year": 2014, - "value": NaN - }, - { - "year": 2015, - "value": NaN + "value": "nan CO2 * metric_ton / Fe_ton" }, { - "year": 2016, - "value": "11000001.3676141 t CO2" - }, - { - "year": 2017, - "value": "10000001.3676141 t CO2" + "year": 2022, + "value": "nan CO2 * metric_ton / Fe_ton" }, { - "year": 2018, - "value": "10000001.3676141 t CO2" + "year": 2023, + "value": "nan CO2 * metric_ton / Fe_ton" }, { - "year": 2019, - "value": "10000001.3676141 t CO2" + "year": 2024, + "value": "nan CO2 * metric_ton / Fe_ton" }, { - "year": 2020, - "value": "9000001.36761412 t CO2" + "year": 2025, + "value": "nan CO2 * metric_ton / Fe_ton" }, { - "year": 2021, - "value": "9000001.36761412 t CO2" - } - ], - "S1S2": [], - "S3": [], - "S1S2S3": [] - }, - "emissions_intensities": { - "S1": [ - { - "year": 2009, - "value": NaN + "year": 2026, + "value": "nan CO2 * metric_ton / Fe_ton" }, { - "year": 2010, - "value": NaN + "year": 2027, + "value": "nan CO2 * metric_ton / Fe_ton" }, { - "year": 2011, - "value": NaN + "year": 2028, + "value": "nan CO2 * metric_ton / Fe_ton" }, { - "year": 2012, - "value": NaN + "year": 2029, + "value": "nan CO2 * metric_ton / Fe_ton" }, { - "year": 2013, - "value": NaN + "year": 2030, + "value": "nan CO2 * metric_ton / Fe_ton" }, { - "year": 2014, - "value": NaN + "year": 2031, + "value": "nan CO2 * metric_ton / Fe_ton" }, { - "year": 2015, - "value": NaN + "year": 2032, + "value": "nan CO2 * metric_ton / Fe_ton" }, { - "year": 2016, - "value": "1.9986525630862 t CO2/Fe_ton" + "year": 2033, + "value": "nan CO2 * metric_ton / Fe_ton" }, { - "year": 2017, - "value": "1.97033426329327 t CO2/Fe_ton" + "year": 2034, + "value": "nan CO2 * metric_ton / Fe_ton" }, { - "year": 2018, - "value": "1.84926349507656 t CO2/Fe_ton" + "year": 2035, + "value": "nan CO2 * metric_ton / Fe_ton" }, { - "year": 2019, - "value": "1.81856184950927 t CO2/Fe_ton" + "year": 2036, + "value": "nan CO2 * metric_ton / Fe_ton" }, { - "year": 2020, - "value": "1.78533472743815 t CO2/Fe_ton" + "year": 2037, + "value": "nan CO2 * metric_ton / Fe_ton" }, { - "year": 2021, - "value": "1.78533472743815 t CO2/Fe_ton" - } - ], - "S2": [ - { - "year": 2009, - "value": NaN + "year": 2038, + "value": "nan CO2 * metric_ton / Fe_ton" }, { - "year": 2010, - "value": NaN + "year": 2039, + "value": "nan CO2 * metric_ton / Fe_ton" }, { - "year": 2011, - "value": NaN + "year": 2040, + "value": "nan CO2 * metric_ton / Fe_ton" }, { - "year": 2012, - "value": NaN + "year": 2041, + "value": "nan CO2 * metric_ton / Fe_ton" }, { - "year": 2013, - "value": NaN + "year": 2042, + "value": "nan CO2 * metric_ton / Fe_ton" }, { - "year": 2014, - "value": NaN + "year": 2043, + "value": "nan CO2 * metric_ton / Fe_ton" }, { - "year": 2015, - "value": NaN + "year": 2044, + "value": "nan CO2 * metric_ton / Fe_ton" }, { - "year": 2016, - "value": "0.247024501005612 t CO2/Fe_ton" + "year": 2045, + "value": "nan CO2 * metric_ton / Fe_ton" }, { - "year": 2017, - "value": "0.221385899155272 t CO2/Fe_ton" + "year": 2046, + "value": "nan CO2 * metric_ton / Fe_ton" }, { - "year": 2018, - "value": "0.215030664950761 t CO2/Fe_ton" + "year": 2047, + "value": "nan CO2 * metric_ton / Fe_ton" }, { - "year": 2019, - "value": "0.209030122946103 t CO2/Fe_ton" + "year": 2048, + "value": "nan CO2 * metric_ton / Fe_ton" }, { - "year": 2020, - "value": "0.191285889606989 t CO2/Fe_ton" + "year": 2049, + "value": "nan CO2 * metric_ton / Fe_ton" }, { - "year": 2021, - "value": "0.191285889606989 t CO2/Fe_ton" + "year": 2050, + "value": "nan CO2 * metric_ton / Fe_ton" } - ], - "S1S2": [], - "S3": [], - "S1S2S3": [] - } - }, - "projected_targets": null, - "projected_intensities": { + ] + }, "S1S2": { + "ei_metric": { + "units": "CO2\u00b7t/Fe_ton" + }, "projections": [ { "year": 2019, - "value": "2.027591972455373 t CO2/Fe_ton" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2020, - "value": "1.976620617045139 t CO2/Fe_ton" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2021, - "value": "1.976620617045139 t CO2/Fe_ton" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2022, - "value": "1.94147722418469 t CO2/Fe_ton" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2023, - "value": "1.906958664461715 t CO2/Fe_ton" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2024, - "value": "1.873053828634393 t CO2/Fe_ton" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2025, - "value": "1.8397518049780428 t CO2/Fe_ton" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2026, - "value": "1.8070418757733597 t CO2/Fe_ton" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2027, - "value": "1.7749135138570904 t CO2/Fe_ton" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2028, - "value": "1.7433563792340352 t CO2/Fe_ton" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2029, - "value": "1.7123603157492877 t CO2/Fe_ton" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2030, - "value": "1.68191534781964 t CO2/Fe_ton" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2031, - "value": "1.6520116772231015 t CO2/Fe_ton" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2032, - "value": "1.6226396799455 t CO2/Fe_ton" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2033, - "value": "1.5937899030831475 t CO2/Fe_ton" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2034, - "value": "1.5654530618005753 t CO2/Fe_ton" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2035, - "value": "1.53762003634236 t CO2/Fe_ton" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2036, - "value": "1.5102818690980773 t CO2/Fe_ton" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2037, - "value": "1.4834297617194387 t CO2/Fe_ton" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2038, - "value": "1.457055072288686 t CO2/Fe_ton" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2039, - "value": "1.4311493125373285 t CO2/Fe_ton" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2040, - "value": "1.4057041451143315 t CO2/Fe_ton" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2041, - "value": "1.3807113809028742 t CO2/Fe_ton" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2042, - "value": "1.3561629763848135 t CO2/Fe_ton" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2043, - "value": "1.3320510310520086 t CO2/Fe_ton" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2044, - "value": "1.3083677848636694 t CO2/Fe_ton" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2045, - "value": "1.2851056157489125 t CO2/Fe_ton" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2046, - "value": "1.2622570371537203 t CO2/Fe_ton" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2047, - "value": "1.2398146956315148 t CO2/Fe_ton" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2048, - "value": "1.2177713684765692 t CO2/Fe_ton" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2049, - "value": "1.1961199613994966 t CO2/Fe_ton" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2050, - "value": "1.1748535062440673 t CO2/Fe_ton" + "value": "nan CO2 * metric_ton / Fe_ton" } ] }, "S3": null, "S1S2S3": null - }, - "country": null, - "ghg_s1s2": null, - "ghg_s3": null, - "industry_level_1": null, - "industry_level_2": null, - "industry_level_3": null, - "industry_level_4": null, - "company_revenue": null, - "company_market_cap": null, - "company_enterprise_value": null, - "company_total_assets": null, - "company_cash_equivalents": null + } }, { - "company_name": "Company H", - "company_id": "CN0000000008", - "region": "Asia", + "company_name": "Company K", + "company_id": "BR0000000011", + "region": "Europe", "sector": "Steel", "target_probability": 0.4285714285714285, + "target_data": null, "historic_data": { "productions": [ { "year": 2009, - "value": NaN + "value": "nan Fe_ton" }, { "year": 2010, - "value": NaN + "value": "nan Fe_ton" }, { "year": 2011, - "value": NaN + "value": "nan Fe_ton" }, { "year": 2012, - "value": NaN + "value": "nan Fe_ton" }, { "year": 2013, - "value": NaN + "value": "nan Fe_ton" }, { "year": 2014, - "value": "15921004.6310296 Fe_ton" + "value": "nan Fe_ton" }, { "year": 2015, - "value": "15855004.6310296 Fe_ton" + "value": "nan Fe_ton" }, { "year": 2016, - "value": "16419004.6310296 Fe_ton" + "value": "nan Fe_ton" }, { "year": 2017, - "value": "16850004.6310296 Fe_ton" + "value": "15393000.0778486 Fe_ton" }, { "year": 2018, - "value": "17286004.6310296 Fe_ton" + "value": "15419000.0778486 Fe_ton" }, { "year": 2019, - "value": "15520004.6310296 Fe_ton" + "value": "14618000.0778486 Fe_ton" }, { "year": 2020, - "value": "15520004.6310296 Fe_ton" + "value": "14473000.0778486 Fe_ton" }, { "year": 2021, - "value": "15520004.6310296 Fe_ton" + "value": "14473000.0778486 Fe_ton" } ], "emissions": { "S1": [ { "year": 2009, - "value": NaN + "value": "4000000.07784856 CO2 * metric_ton" }, { "year": 2010, - "value": NaN + "value": "6481635.07784856 CO2 * metric_ton" }, { "year": 2011, - "value": NaN + "value": "10525000.0778486 CO2 * metric_ton" }, { "year": 2012, - "value": NaN + "value": "9308000.07784856 CO2 * metric_ton" }, { "year": 2013, - "value": NaN + "value": "9311000.07784856 CO2 * metric_ton" }, { "year": 2014, - "value": NaN + "value": "9578000.07784856 CO2 * metric_ton" }, { "year": 2015, - "value": "29200004.6310296 t CO2" + "value": "9448000.07784856 CO2 * metric_ton" }, { "year": 2016, - "value": "29200004.6310296 t CO2" + "value": "9989000.07784856 CO2 * metric_ton" }, { "year": 2017, - "value": "29600004.6310296 t CO2" + "value": "9867000.07784856 CO2 * metric_ton" }, { "year": 2018, - "value": "30200004.6310296 t CO2" + "value": "9755000.07784856 CO2 * metric_ton" }, { "year": 2019, - "value": "28400004.6310296 t CO2" + "value": "9582000.07784856 CO2 * metric_ton" }, { "year": 2020, - "value": "28400004.6310296 t CO2" + "value": "9582000.07784856 CO2 * metric_ton" }, { "year": 2021, - "value": "28400004.6310296 t CO2" + "value": "9582000.07784856 CO2 * metric_ton" } ], "S2": [ { "year": 2009, - "value": NaN + "value": "700993.077848565 CO2 * metric_ton" }, { "year": 2010, - "value": NaN + "value": "1032496.57784856 CO2 * metric_ton" }, { "year": 2011, - "value": NaN + "value": "1364000.07784857 CO2 * metric_ton" }, { "year": 2012, - "value": NaN + "value": "1367000.07784857 CO2 * metric_ton" }, { "year": 2013, - "value": NaN + "value": "1447000.07784857 CO2 * metric_ton" }, { "year": 2014, - "value": NaN + "value": "1220000.07784857 CO2 * metric_ton" }, { "year": 2015, - "value": "3600004.63102958 t CO2" + "value": "1133000.07784857 CO2 * metric_ton" }, { "year": 2016, - "value": "3800004.63102958 t CO2" + "value": "1166000.07784857 CO2 * metric_ton" }, { "year": 2017, - "value": "4000004.63102958 t CO2" + "value": "1216000.07784857 CO2 * metric_ton" }, { "year": 2018, - "value": "4000004.63102958 t CO2" + "value": "1189000.07784857 CO2 * metric_ton" }, { "year": 2019, - "value": "3600004.63102958 t CO2" + "value": "1173000.07784857 CO2 * metric_ton" }, { "year": 2020, - "value": "3600004.63102958 t CO2" + "value": "1173000.07784857 CO2 * metric_ton" }, { "year": 2021, - "value": "3600004.63102958 t CO2" + "value": "1173000.07784857 CO2 * metric_ton" } ], "S1S2": [], @@ -10306,109 +18833,109 @@ "S1": [ { "year": 2009, - "value": NaN + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2010, - "value": NaN + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2011, - "value": NaN + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2012, - "value": NaN + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2013, - "value": NaN + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2014, - "value": NaN + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2015, - "value": "1.8416900726653 t CO2/Fe_ton" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2016, - "value": "1.77842721207629 t CO2/Fe_ton" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2017, - "value": "1.75667634989967 t CO2/Fe_ton" + "value": "0.641005653735282 CO2 * metric_ton / Fe_ton" }, { "year": 2018, - "value": "1.74707836053789 t CO2/Fe_ton" + "value": "0.632661004513705 CO2 * metric_ton / Fe_ton" }, { "year": 2019, - "value": "1.82989665958273 t CO2/Fe_ton" + "value": "0.655493229362386 CO2 * metric_ton / Fe_ton" }, { "year": 2020, - "value": "1.82989665958273 t CO2/Fe_ton" + "value": "0.662060390127003 CO2 * metric_ton / Fe_ton" }, { "year": 2021, - "value": "1.82989665958273 t CO2/Fe_ton" + "value": "0.662060390127003 CO2 * metric_ton / Fe_ton" } ], "S2": [ { "year": 2009, - "value": NaN + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2010, - "value": NaN + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2011, - "value": NaN + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2012, - "value": NaN + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2013, - "value": NaN + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2014, - "value": NaN + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2015, - "value": "0.22705793626727 t CO2/Fe_ton" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2016, - "value": "0.231439403083431 t CO2/Fe_ton" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2017, - "value": "0.237388933630528 t CO2/Fe_ton" + "value": "0.0789969513219493 CO2 * metric_ton / Fe_ton" }, { "year": 2018, - "value": "0.231401339778036 t CO2/Fe_ton" + "value": "0.0771126578795937 CO2 * metric_ton / Fe_ton" }, { "year": 2019, - "value": "0.231958992063184 t CO2/Fe_ton" + "value": "0.0802435402655439 CO2 * metric_ton / Fe_ton" }, { "year": 2020, - "value": "0.231958992063184 t CO2/Fe_ton" + "value": "0.0810474726414106 CO2 * metric_ton / Fe_ton" }, { "year": 2021, - "value": "0.231958992063184 t CO2/Fe_ton" + "value": "0.0810474726414106 CO2 * metric_ton / Fe_ton" } ], "S1S2": [], @@ -10416,762 +18943,606 @@ "S1S2S3": [] } }, + "country": null, + "emissions_metric": { + "units": "t CO2" + }, + "production_metric": { + "units": "Fe_ton" + }, + "base_year_production": "14473000.0778486 Fe_ton", + "ghg_s1s2": "10755000.15569713 CO2 * metric_ton", + "ghg_s3": null, + "industry_level_1": null, + "industry_level_2": null, + "industry_level_3": null, + "industry_level_4": null, + "company_revenue": null, + "company_market_cap": null, + "company_enterprise_value": null, + "company_ev_plus_cash": null, + "company_total_assets": null, + "company_cash_equivalents": null, "projected_targets": null, "projected_intensities": { - "S1S2": { + "S1": { + "ei_metric": { + "units": "CO2\u00b7t/Fe_ton" + }, "projections": [ { "year": 2019, - "value": "2.061855651645914 t CO2/Fe_ton" + "value": "0.655493229362386 CO2 * metric_ton / Fe_ton" }, { "year": 2020, - "value": "2.061855651645914 t CO2/Fe_ton" + "value": "0.662060390127003 CO2 * metric_ton / Fe_ton" }, { "year": 2021, - "value": "2.061855651645914 t CO2/Fe_ton" + "value": "0.662060390127003 CO2 * metric_ton / Fe_ton" }, { "year": 2022, - "value": "2.058632565310681 t CO2/Fe_ton" + "value": "0.6653768675695529 CO2 * metric_ton / Fe_ton" }, { "year": 2023, - "value": "2.0554145172939724 t CO2/Fe_ton" + "value": "0.6687099583343782 CO2 * metric_ton / Fe_ton" }, { "year": 2024, - "value": "2.0522014997199043 t CO2/Fe_ton" + "value": "0.672059745643054 CO2 * metric_ton / Fe_ton" }, { "year": 2025, - "value": "2.0489935047249044 t CO2/Fe_ton" + "value": "0.6754263131340399 CO2 * metric_ton / Fe_ton" }, { "year": 2026, - "value": "2.045790524457693 t CO2/Fe_ton" + "value": "0.6788097448647676 CO2 * metric_ton / Fe_ton" }, { "year": 2027, - "value": "2.042592551079263 t CO2/Fe_ton" + "value": "0.6822101253137403 CO2 * metric_ton / Fe_ton" }, { "year": 2028, - "value": "2.039399576762862 t CO2/Fe_ton" + "value": "0.6856275393826413 CO2 * metric_ton / Fe_ton" }, { "year": 2029, - "value": "2.0362115936939706 t CO2/Fe_ton" + "value": "0.6890620723984547 CO2 * metric_ton / Fe_ton" }, { "year": 2030, - "value": "2.0330285940702875 t CO2/Fe_ton" + "value": "0.6925138101155953 CO2 * metric_ton / Fe_ton" }, { "year": 2031, - "value": "2.029850570101706 t CO2/Fe_ton" + "value": "0.6959828387180497 CO2 * metric_ton / Fe_ton" }, { "year": 2032, - "value": "2.0266775140102977 t CO2/Fe_ton" + "value": "0.6994692448215283 CO2 * metric_ton / Fe_ton" }, { "year": 2033, - "value": "2.0235094180302924 t CO2/Fe_ton" + "value": "0.7029731154756282 CO2 * metric_ton / Fe_ton" }, { "year": 2034, - "value": "2.0203462744080594 t CO2/Fe_ton" + "value": "0.7064945381660065 CO2 * metric_ton / Fe_ton" }, { "year": 2035, - "value": "2.0171880754020886 t CO2/Fe_ton" + "value": "0.7100336008165644 CO2 * metric_ton / Fe_ton" }, { "year": 2036, - "value": "2.014034813282971 t CO2/Fe_ton" + "value": "0.7135903917916429 CO2 * metric_ton / Fe_ton" }, { "year": 2037, - "value": "2.0108864803333804 t CO2/Fe_ton" + "value": "0.7171649998982286 CO2 * metric_ton / Fe_ton" }, { "year": 2038, - "value": "2.007743068848055 t CO2/Fe_ton" + "value": "0.7207575143881718 CO2 * metric_ton / Fe_ton" }, { "year": 2039, - "value": "2.0046045711337763 t CO2/Fe_ton" + "value": "0.7243680249604145 CO2 * metric_ton / Fe_ton" }, { "year": 2040, - "value": "2.001470979509353 t CO2/Fe_ton" + "value": "0.72799662176323 CO2 * metric_ton / Fe_ton" }, { "year": 2041, - "value": "1.998342286305601 t CO2/Fe_ton" + "value": "0.7316433953964738 CO2 * metric_ton / Fe_ton" }, { "year": 2042, - "value": "1.9952184838653242 t CO2/Fe_ton" + "value": "0.7353084369138458 CO2 * metric_ton / Fe_ton" }, { "year": 2043, - "value": "1.9920995645432964 t CO2/Fe_ton" + "value": "0.7389918378251639 CO2 * metric_ton / Fe_ton" }, { "year": 2044, - "value": "1.9889855207062423 t CO2/Fe_ton" + "value": "0.7426936900986483 CO2 * metric_ton / Fe_ton" }, { "year": 2045, - "value": "1.985876344732819 t CO2/Fe_ton" + "value": "0.7464140861632185 CO2 * metric_ton / Fe_ton" }, { "year": 2046, - "value": "1.982772029013597 t CO2/Fe_ton" + "value": "0.7501531189108005 CO2 * metric_ton / Fe_ton" }, { "year": 2047, - "value": "1.9796725659510424 t CO2/Fe_ton" + "value": "0.7539108816986466 CO2 * metric_ton / Fe_ton" }, { "year": 2048, - "value": "1.9765779479594972 t CO2/Fe_ton" + "value": "0.757687468351666 CO2 * metric_ton / Fe_ton" }, { "year": 2049, - "value": "1.9734881674651614 t CO2/Fe_ton" + "value": "0.7614829731647677 CO2 * metric_ton / Fe_ton" }, { "year": 2050, - "value": "1.9704032169060748 t CO2/Fe_ton" + "value": "0.7652974909052147 CO2 * metric_ton / Fe_ton" } ] }, - "S3": null, - "S1S2S3": null - }, - "country": null, - "ghg_s1s2": null, - "ghg_s3": null, - "industry_level_1": null, - "industry_level_2": null, - "industry_level_3": null, - "industry_level_4": null, - "company_revenue": null, - "company_market_cap": null, - "company_enterprise_value": null, - "company_total_assets": null, - "company_cash_equivalents": null - }, - { - "company_name": "Company I", - "company_id": "CN0000000009", - "region": "Asia", - "sector": "Steel", - "target_probability": 0.4285714285714285, - "historic_data": { - "productions": [ - { - "year": 2009, - "value": NaN - }, - { - "year": 2010, - "value": NaN - }, - { - "year": 2011, - "value": NaN - }, - { - "year": 2012, - "value": NaN - }, - { - "year": 2013, - "value": NaN - }, - { - "year": 2014, - "value": NaN - }, - { - "year": 2015, - "value": NaN - }, - { - "year": 2016, - "value": NaN - }, - { - "year": 2017, - "value": NaN - }, - { - "year": 2018, - "value": NaN - }, - { - "year": 2019, - "value": NaN - }, - { - "year": 2020, - "value": NaN + "S2": { + "ei_metric": { + "units": "CO2\u00b7t/Fe_ton" }, - { - "year": 2021, - "value": NaN - } - ], - "emissions": { - "S1": [ - { - "year": 2009, - "value": "60457000.4256679 t CO2" - }, - { - "year": 2010, - "value": "68748000.4256679 t CO2" - }, - { - "year": 2011, - "value": "74602000.4256679 t CO2" - }, - { - "year": 2012, - "value": "85678000.4256679 t CO2" - }, - { - "year": 2013, - "value": "79928000.4256679 t CO2" - }, - { - "year": 2014, - "value": "84451000.4256679 t CO2" - }, - { - "year": 2015, - "value": "82741000.4256679 t CO2" - }, - { - "year": 2016, - "value": "81346000.4256679 t CO2" - }, - { - "year": 2017, - "value": "67743000.4256679 t CO2" - }, - { - "year": 2018, - "value": "69687000.4256679 t CO2" - }, + "projections": [ { "year": 2019, - "value": "79447000.4256679 t CO2" + "value": "0.0802435402655439 CO2 * metric_ton / Fe_ton" }, { "year": 2020, - "value": "79447000.4256679 t CO2" + "value": "0.0810474726414106 CO2 * metric_ton / Fe_ton" }, { "year": 2021, - "value": "79447000.4256679 t CO2" - } - ], - "S2": [ - { - "year": 2009, - "value": "2698000.42566793 t CO2" - }, - { - "year": 2010, - "value": "3033000.42566793 t CO2" - }, - { - "year": 2011, - "value": "3625000.42566793 t CO2" + "value": "0.0810474726414106 CO2 * metric_ton / Fe_ton" }, { - "year": 2012, - "value": "3682000.42566793 t CO2" - }, - { - "year": 2013, - "value": "4539000.42566793 t CO2" - }, - { - "year": 2014, - "value": "5032000.42566793 t CO2" - }, - { - "year": 2015, - "value": "4431000.42566793 t CO2" - }, - { - "year": 2016, - "value": "3719000.42566793 t CO2" - }, - { - "year": 2017, - "value": "2956000.42566793 t CO2" + "year": 2022, + "value": "0.08145346599005264 CO2 * metric_ton / Fe_ton" }, { - "year": 2018, - "value": "2802000.42566793 t CO2" + "year": 2023, + "value": "0.08186149309241667 CO2 * metric_ton / Fe_ton" }, { - "year": 2019, - "value": "795000.425667932 t CO2" + "year": 2024, + "value": "0.0822715641362415 CO2 * metric_ton / Fe_ton" }, { - "year": 2020, - "value": "795000.425667932 t CO2" + "year": 2025, + "value": "0.08268368936029968 CO2 * metric_ton / Fe_ton" }, { - "year": 2021, - "value": "795000.425667932 t CO2" - } - ], - "S1S2": [], - "S3": [], - "S1S2S3": [] - }, - "emissions_intensities": { - "S1": [ - { - "year": 2009, - "value": NaN + "year": 2026, + "value": "0.08309787905465314 CO2 * metric_ton / Fe_ton" }, { - "year": 2010, - "value": NaN + "year": 2027, + "value": "0.08351414356091008 CO2 * metric_ton / Fe_ton" }, { - "year": 2011, - "value": NaN + "year": 2028, + "value": "0.08393249327248321 CO2 * metric_ton / Fe_ton" }, { - "year": 2012, - "value": NaN + "year": 2029, + "value": "0.08435293863484927 CO2 * metric_ton / Fe_ton" }, { - "year": 2013, - "value": NaN + "year": 2030, + "value": "0.08477549014580979 CO2 * metric_ton / Fe_ton" }, { - "year": 2014, - "value": NaN + "year": 2031, + "value": "0.08520015835575323 CO2 * metric_ton / Fe_ton" }, { - "year": 2015, - "value": NaN + "year": 2032, + "value": "0.08562695386791841 CO2 * metric_ton / Fe_ton" }, { - "year": 2016, - "value": NaN + "year": 2033, + "value": "0.08605588733865925 CO2 * metric_ton / Fe_ton" }, { - "year": 2017, - "value": NaN + "year": 2034, + "value": "0.08648696947771084 CO2 * metric_ton / Fe_ton" }, { - "year": 2018, - "value": NaN + "year": 2035, + "value": "0.08692021104845683 CO2 * metric_ton / Fe_ton" }, { - "year": 2019, - "value": NaN + "year": 2036, + "value": "0.0873556228681982 CO2 * metric_ton / Fe_ton" }, { - "year": 2020, - "value": NaN + "year": 2037, + "value": "0.08779321580842334 CO2 * metric_ton / Fe_ton" }, { - "year": 2021, - "value": NaN - } - ], - "S2": [ - { - "year": 2009, - "value": NaN + "year": 2038, + "value": "0.08823300079507945 CO2 * metric_ton / Fe_ton" }, { - "year": 2010, - "value": NaN + "year": 2039, + "value": "0.08867498880884543 CO2 * metric_ton / Fe_ton" }, { - "year": 2011, - "value": NaN + "year": 2040, + "value": "0.08911919088540597 CO2 * metric_ton / Fe_ton" }, { - "year": 2012, - "value": NaN + "year": 2041, + "value": "0.08956561811572714 CO2 * metric_ton / Fe_ton" }, { - "year": 2013, - "value": NaN + "year": 2042, + "value": "0.09001428164633325 CO2 * metric_ton / Fe_ton" }, { - "year": 2014, - "value": NaN + "year": 2043, + "value": "0.09046519267958526 CO2 * metric_ton / Fe_ton" }, { - "year": 2015, - "value": NaN + "year": 2044, + "value": "0.0909183624739604 CO2 * metric_ton / Fe_ton" }, { - "year": 2016, - "value": NaN + "year": 2045, + "value": "0.09137380234433329 CO2 * metric_ton / Fe_ton" }, { - "year": 2017, - "value": NaN + "year": 2046, + "value": "0.09183152366225847 CO2 * metric_ton / Fe_ton" }, { - "year": 2018, - "value": NaN + "year": 2047, + "value": "0.09229153785625434 CO2 * metric_ton / Fe_ton" }, { - "year": 2019, - "value": NaN + "year": 2048, + "value": "0.09275385641208848 CO2 * metric_ton / Fe_ton" }, { - "year": 2020, - "value": NaN + "year": 2049, + "value": "0.09321849087306446 CO2 * metric_ton / Fe_ton" }, { - "year": 2021, - "value": NaN + "year": 2050, + "value": "0.09368545284031 CO2 * metric_ton / Fe_ton" } - ], - "S1S2": [], - "S3": [], - "S1S2S3": [] - } - }, - "projected_targets": null, - "projected_intensities": { + ] + }, "S1S2": { + "ei_metric": { + "units": "CO2\u00b7t/Fe_ton" + }, "projections": [ { "year": 2019, - "value": NaN + "value": "0.7357367696279299 CO2 * metric_ton / Fe_ton" }, { "year": 2020, - "value": NaN + "value": "0.7431078627684136 CO2 * metric_ton / Fe_ton" }, { "year": 2021, - "value": NaN + "value": "0.7431078627684136 CO2 * metric_ton / Fe_ton" }, { "year": 2022, - "value": NaN + "value": "0.7468303335596056 CO2 * metric_ton / Fe_ton" }, { "year": 2023, - "value": NaN + "value": "0.7505714514267948 CO2 * metric_ton / Fe_ton" }, { "year": 2024, - "value": NaN + "value": "0.7543313097792955 CO2 * metric_ton / Fe_ton" }, { "year": 2025, - "value": NaN + "value": "0.7581100024943396 CO2 * metric_ton / Fe_ton" }, { "year": 2026, - "value": NaN + "value": "0.7619076239194208 CO2 * metric_ton / Fe_ton" }, { "year": 2027, - "value": NaN + "value": "0.7657242688746504 CO2 * metric_ton / Fe_ton" }, { "year": 2028, - "value": NaN + "value": "0.7695600326551245 CO2 * metric_ton / Fe_ton" }, { "year": 2029, - "value": NaN + "value": "0.773415011033304 CO2 * metric_ton / Fe_ton" }, { "year": 2030, - "value": NaN + "value": "0.7772893002614051 CO2 * metric_ton / Fe_ton" }, { "year": 2031, - "value": NaN + "value": "0.7811829970738029 CO2 * metric_ton / Fe_ton" }, { "year": 2032, - "value": NaN + "value": "0.7850961986894467 CO2 * metric_ton / Fe_ton" }, { "year": 2033, - "value": NaN + "value": "0.7890290028142875 CO2 * metric_ton / Fe_ton" }, { "year": 2034, - "value": NaN + "value": "0.7929815076437173 CO2 * metric_ton / Fe_ton" }, { "year": 2035, - "value": NaN + "value": "0.7969538118650212 CO2 * metric_ton / Fe_ton" }, { "year": 2036, - "value": NaN + "value": "0.800946014659841 CO2 * metric_ton / Fe_ton" }, { "year": 2037, - "value": NaN + "value": "0.8049582157066519 CO2 * metric_ton / Fe_ton" }, { "year": 2038, - "value": NaN + "value": "0.8089905151832513 CO2 * metric_ton / Fe_ton" }, { "year": 2039, - "value": NaN + "value": "0.8130430137692599 CO2 * metric_ton / Fe_ton" }, { "year": 2040, - "value": NaN + "value": "0.817115812648636 CO2 * metric_ton / Fe_ton" }, { "year": 2041, - "value": NaN + "value": "0.821209013512201 CO2 * metric_ton / Fe_ton" }, { "year": 2042, - "value": NaN + "value": "0.8253227185601791 CO2 * metric_ton / Fe_ton" }, { "year": 2043, - "value": NaN + "value": "0.8294570305047492 CO2 * metric_ton / Fe_ton" }, { "year": 2044, - "value": NaN + "value": "0.8336120525726087 CO2 * metric_ton / Fe_ton" }, { "year": 2045, - "value": NaN + "value": "0.8377878885075518 CO2 * metric_ton / Fe_ton" }, { "year": 2046, - "value": NaN + "value": "0.8419846425730589 CO2 * metric_ton / Fe_ton" }, { "year": 2047, - "value": NaN + "value": "0.8462024195549009 CO2 * metric_ton / Fe_ton" }, { "year": 2048, - "value": NaN + "value": "0.8504413247637544 CO2 * metric_ton / Fe_ton" }, { "year": 2049, - "value": NaN + "value": "0.8547014640378321 CO2 * metric_ton / Fe_ton" }, { "year": 2050, - "value": NaN + "value": "0.8589829437455248 CO2 * metric_ton / Fe_ton" } ] }, "S3": null, "S1S2S3": null - }, - "country": null, - "ghg_s1s2": null, - "ghg_s3": null, - "industry_level_1": null, - "industry_level_2": null, - "industry_level_3": null, - "industry_level_4": null, - "company_revenue": null, - "company_market_cap": null, - "company_enterprise_value": null, - "company_total_assets": null, - "company_cash_equivalents": null + } }, { - "company_name": "Company J", - "company_id": "BR0000000010", + "company_name": "Company L", + "company_id": "BR0000000012", "region": "Asia", "sector": "Steel", "target_probability": 0.4285714285714285, + "target_data": null, "historic_data": { "productions": [ { "year": 2009, - "value": NaN + "value": "nan Fe_ton" }, { "year": 2010, - "value": NaN + "value": "nan Fe_ton" }, { "year": 2011, - "value": NaN + "value": "nan Fe_ton" }, { "year": 2012, - "value": NaN + "value": "nan Fe_ton" }, { "year": 2013, - "value": "15691492.9224849 Fe_ton" + "value": "nan Fe_ton" }, { "year": 2014, - "value": "11301980.9224849 Fe_ton" + "value": "9155004.34644718 Fe_ton" }, { "year": 2015, - "value": "11500001.9224849 Fe_ton" + "value": "9331004.34644718 Fe_ton" }, { "year": 2016, - "value": "11600001.9224849 Fe_ton" + "value": "20808004.3464472 Fe_ton" }, { "year": 2017, - "value": "3012108.92248495 Fe_ton" + "value": "21911004.3464472 Fe_ton" }, { "year": 2018, - "value": "12039001.9224849 Fe_ton" + "value": "25390004.3464472 Fe_ton" }, { "year": 2019, - "value": "11847001.9224849 Fe_ton" + "value": "27110004.3464472 Fe_ton" }, { "year": 2020, - "value": "11314001.9224849 Fe_ton" + "value": "30630004.3464472 Fe_ton" }, { "year": 2021, - "value": "11314001.9224849 Fe_ton" + "value": "28540004.3464472 Fe_ton" } ], "emissions": { "S1": [ { "year": 2009, - "value": NaN + "value": "nan CO2 * metric_ton" }, { "year": 2010, - "value": NaN + "value": "14900657.0 CO2 * metric_ton" }, { "year": 2011, - "value": NaN + "value": "17389874.39 CO2 * metric_ton" }, { "year": 2012, - "value": NaN + "value": "16283032.0 CO2 * metric_ton" }, { "year": 2013, - "value": NaN + "value": "18802944.0 CO2 * metric_ton" }, { "year": 2014, - "value": NaN + "value": "20428595.0 CO2 * metric_ton" }, { "year": 2015, - "value": NaN + "value": "23337931.0 CO2 * metric_ton" }, { "year": 2016, - "value": "23200001.9224849 t CO2" + "value": "23298343.0 CO2 * metric_ton" }, { "year": 2017, - "value": "22200001.9224849 t CO2" + "value": "38757404.0 CO2 * metric_ton" }, { "year": 2018, - "value": "22100001.9224849 t CO2" + "value": "47025134.0 CO2 * metric_ton" }, { "year": 2019, - "value": "23400001.9224849 t CO2" + "value": "56093007.0 CO2 * metric_ton" }, { "year": 2020, - "value": "23400001.9224849 t CO2" + "value": "60116322.0 CO2 * metric_ton" }, { "year": 2021, - "value": "23400001.9224849 t CO2" + "value": "60116322.0 CO2 * metric_ton" } ], "S2": [ { "year": 2009, - "value": NaN + "value": "nan CO2 * metric_ton" }, { "year": 2010, - "value": NaN + "value": "731525.0 CO2 * metric_ton" }, { "year": 2011, - "value": NaN + "value": "853729.3263 CO2 * metric_ton" }, { "year": 2012, - "value": NaN + "value": "789126.0 CO2 * metric_ton" }, { "year": 2013, - "value": NaN + "value": "1174594.0 CO2 * metric_ton" }, { "year": 2014, - "value": NaN + "value": "1266295.0 CO2 * metric_ton" }, { "year": 2015, - "value": NaN + "value": "723978.0 CO2 * metric_ton" }, { "year": 2016, - "value": NaN + "value": "1409816.0 CO2 * metric_ton" }, { "year": 2017, - "value": NaN + "value": "3979125.0 CO2 * metric_ton" }, { "year": 2018, - "value": NaN + "value": "3344945.0 CO2 * metric_ton" }, { "year": 2019, - "value": NaN + "value": "4137575.0 CO2 * metric_ton" }, { "year": 2020, - "value": NaN + "value": "2779523.0 CO2 * metric_ton" }, { "year": 2021, - "value": NaN + "value": "2779523.0 CO2 * metric_ton" } ], "S1S2": [], @@ -11182,109 +19553,109 @@ "S1": [ { "year": 2009, - "value": NaN + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2010, - "value": NaN + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2011, - "value": NaN + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2012, - "value": NaN + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2013, - "value": NaN + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2014, - "value": NaN + "value": "2.23141292204059 CO2 * metric_ton / Fe_ton" }, { "year": 2015, - "value": NaN + "value": "2.5011167215762815 CO2 * metric_ton / Fe_ton" }, { "year": 2016, - "value": "1.99999983426857 t CO2/Fe_ton" + "value": "1.1196817634257177 CO2 * metric_ton / Fe_ton" }, { "year": 2017, - "value": "7.37025203729028 t CO2/Fe_ton" + "value": "1.768855657512769 CO2 * metric_ton / Fe_ton" }, { "year": 2018, - "value": "1.83570050613659 t CO2/Fe_ton" + "value": "1.8521120894010474 CO2 * metric_ton / Fe_ton" }, { "year": 2019, - "value": "1.97518343253351 t CO2/Fe_ton" + "value": "2.0690888235638023 CO2 * metric_ton / Fe_ton" }, { "year": 2020, - "value": "2.06823386479905 t CO2/Fe_ton" + "value": "1.9626612298203263 CO2 * metric_ton / Fe_ton" }, { "year": 2021, - "value": "2.06823386479905 t CO2/Fe_ton" + "value": "2.1063879763383277 CO2 * metric_ton / Fe_ton" } ], "S2": [ { "year": 2009, - "value": NaN + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2010, - "value": NaN + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2011, - "value": NaN + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2012, - "value": NaN + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2013, - "value": NaN + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2014, - "value": NaN + "value": "0.13831724727595748 CO2 * metric_ton / Fe_ton" }, { "year": 2015, - "value": NaN + "value": "0.07758843240445577 CO2 * metric_ton / Fe_ton" }, { "year": 2016, - "value": NaN + "value": "0.06775354217189573 CO2 * metric_ton / Fe_ton" }, { "year": 2017, - "value": NaN + "value": "0.18160395283957864 CO2 * metric_ton / Fe_ton" }, { "year": 2018, - "value": NaN + "value": "0.13174259265016847 CO2 * metric_ton / Fe_ton" }, { "year": 2019, - "value": NaN + "value": "0.15262170183097867 CO2 * metric_ton / Fe_ton" }, { "year": 2020, - "value": NaN + "value": "0.09074510628733878 CO2 * metric_ton / Fe_ton" }, { "year": 2021, - "value": NaN + "value": "0.09739041964602954 CO2 * metric_ton / Fe_ton" } ], "S1S2": [], @@ -11292,762 +19663,606 @@ "S1S2S3": [] } }, + "country": null, + "emissions_metric": { + "units": "t CO2" + }, + "production_metric": { + "units": "Fe_ton" + }, + "base_year_production": "28540004.3464472 Fe_ton", + "ghg_s1s2": "62895845.0 CO2 * metric_ton", + "ghg_s3": null, + "industry_level_1": null, + "industry_level_2": null, + "industry_level_3": null, + "industry_level_4": null, + "company_revenue": null, + "company_market_cap": null, + "company_enterprise_value": null, + "company_ev_plus_cash": null, + "company_total_assets": null, + "company_cash_equivalents": null, "projected_targets": null, "projected_intensities": { - "S1S2": { + "S1": { + "ei_metric": { + "units": "CO2\u00b7t/Fe_ton" + }, "projections": [ { "year": 2019, - "value": NaN + "value": "2.0690888235638023 CO2 * metric_ton / Fe_ton" }, { "year": 2020, - "value": NaN + "value": "1.9626612298203263 CO2 * metric_ton / Fe_ton" }, { "year": 2021, - "value": NaN + "value": "2.1063879763383277 CO2 * metric_ton / Fe_ton" }, { "year": 2022, - "value": NaN + "value": "2.1695796156284777 CO2 * metric_ton / Fe_ton" }, { "year": 2023, - "value": NaN + "value": "2.234667004097332 CO2 * metric_ton / Fe_ton" }, { "year": 2024, - "value": NaN + "value": "2.301707014220252 CO2 * metric_ton / Fe_ton" }, { "year": 2025, - "value": NaN + "value": "2.3707582246468597 CO2 * metric_ton / Fe_ton" }, { "year": 2026, - "value": NaN + "value": "2.4418809713862655 CO2 * metric_ton / Fe_ton" }, { "year": 2027, - "value": NaN + "value": "2.5151374005278533 CO2 * metric_ton / Fe_ton" }, { "year": 2028, - "value": NaN + "value": "2.590591522543689 CO2 * metric_ton / Fe_ton" }, { "year": 2029, - "value": NaN + "value": "2.66830926822 CO2 * metric_ton / Fe_ton" }, { "year": 2030, - "value": NaN + "value": "2.7483585462666 CO2 * metric_ton / Fe_ton" }, { "year": 2031, - "value": NaN + "value": "2.830809302654598 CO2 * metric_ton / Fe_ton" }, { "year": 2032, - "value": NaN + "value": "2.9157335817342362 CO2 * metric_ton / Fe_ton" }, { "year": 2033, - "value": NaN + "value": "3.0032055891862632 CO2 * metric_ton / Fe_ton" }, { "year": 2034, - "value": NaN + "value": "3.0933017568618513 CO2 * metric_ton / Fe_ton" }, { "year": 2035, - "value": NaN + "value": "3.186100809567707 CO2 * metric_ton / Fe_ton" }, { "year": 2036, - "value": NaN + "value": "3.2816838338547383 CO2 * metric_ton / Fe_ton" }, { "year": 2037, - "value": NaN + "value": "3.3801343488703806 CO2 * metric_ton / Fe_ton" }, { "year": 2038, - "value": NaN + "value": "3.481538379336492 CO2 * metric_ton / Fe_ton" }, { "year": 2039, - "value": NaN + "value": "3.585984530716587 CO2 * metric_ton / Fe_ton" }, { "year": 2040, - "value": NaN + "value": "3.6935640666380847 CO2 * metric_ton / Fe_ton" }, { "year": 2041, - "value": NaN + "value": "3.8043709886372272 CO2 * metric_ton / Fe_ton" }, { "year": 2042, - "value": NaN + "value": "3.918502118296344 CO2 * metric_ton / Fe_ton" }, { "year": 2043, - "value": NaN + "value": "4.036057181845234 CO2 * metric_ton / Fe_ton" }, { "year": 2044, - "value": NaN + "value": "4.157138897300592 CO2 * metric_ton / Fe_ton" }, { "year": 2045, - "value": NaN + "value": "4.28185306421961 CO2 * metric_ton / Fe_ton" }, { "year": 2046, - "value": NaN + "value": "4.410308656146198 CO2 * metric_ton / Fe_ton" }, { "year": 2047, - "value": NaN + "value": "4.542617915830585 CO2 * metric_ton / Fe_ton" }, { "year": 2048, - "value": NaN + "value": "4.678896453305502 CO2 * metric_ton / Fe_ton" }, { "year": 2049, - "value": NaN + "value": "4.819263346904668 CO2 * metric_ton / Fe_ton" }, { "year": 2050, - "value": NaN + "value": "4.963841247311808 CO2 * metric_ton / Fe_ton" } ] }, - "S3": null, - "S1S2S3": null - }, - "country": null, - "ghg_s1s2": null, - "ghg_s3": null, - "industry_level_1": null, - "industry_level_2": null, - "industry_level_3": null, - "industry_level_4": null, - "company_revenue": null, - "company_market_cap": null, - "company_enterprise_value": null, - "company_total_assets": null, - "company_cash_equivalents": null - }, - { - "company_name": "Company K", - "company_id": "BR0000000011", - "region": "Europe", - "sector": "Steel", - "target_probability": 0.4285714285714285, - "historic_data": { - "productions": [ - { - "year": 2009, - "value": NaN - }, - { - "year": 2010, - "value": NaN - }, - { - "year": 2011, - "value": NaN - }, - { - "year": 2012, - "value": NaN - }, - { - "year": 2013, - "value": NaN - }, - { - "year": 2014, - "value": NaN - }, - { - "year": 2015, - "value": NaN - }, - { - "year": 2016, - "value": NaN - }, - { - "year": 2017, - "value": "15393000.0778486 Fe_ton" - }, - { - "year": 2018, - "value": "15419000.0778486 Fe_ton" - }, - { - "year": 2019, - "value": "14618000.0778486 Fe_ton" - }, - { - "year": 2020, - "value": "14473000.0778486 Fe_ton" + "S2": { + "ei_metric": { + "units": "CO2\u00b7t/Fe_ton" }, - { - "year": 2021, - "value": "14473000.0778486 Fe_ton" - } - ], - "emissions": { - "S1": [ - { - "year": 2009, - "value": "4000000.07784856 t CO2" - }, - { - "year": 2010, - "value": "6481635.07784856 t CO2" - }, - { - "year": 2011, - "value": "10525000.0778486 t CO2" - }, - { - "year": 2012, - "value": "9308000.07784856 t CO2" - }, - { - "year": 2013, - "value": "9311000.07784856 t CO2" - }, - { - "year": 2014, - "value": "9578000.07784856 t CO2" - }, - { - "year": 2015, - "value": "9448000.07784856 t CO2" - }, - { - "year": 2016, - "value": "9989000.07784856 t CO2" - }, - { - "year": 2017, - "value": "9867000.07784856 t CO2" - }, - { - "year": 2018, - "value": "9755000.07784856 t CO2" - }, + "projections": [ { "year": 2019, - "value": "9582000.07784856 t CO2" + "value": "0.15262170183097867 CO2 * metric_ton / Fe_ton" }, { "year": 2020, - "value": "9582000.07784856 t CO2" + "value": "0.09074510628733878 CO2 * metric_ton / Fe_ton" }, { "year": 2021, - "value": "9582000.07784856 t CO2" - } - ], - "S2": [ - { - "year": 2009, - "value": "700993.077848565 t CO2" - }, - { - "year": 2010, - "value": "1032496.57784856 t CO2" - }, - { - "year": 2011, - "value": "1364000.07784857 t CO2" - }, - { - "year": 2012, - "value": "1367000.07784857 t CO2" - }, - { - "year": 2013, - "value": "1447000.07784857 t CO2" - }, - { - "year": 2014, - "value": "1220000.07784857 t CO2" + "value": "0.09739041964602954 CO2 * metric_ton / Fe_ton" }, { - "year": 2015, - "value": "1133000.07784857 t CO2" - }, - { - "year": 2016, - "value": "1166000.07784857 t CO2" - }, - { - "year": 2017, - "value": "1216000.07784857 t CO2" + "year": 2022, + "value": "0.09368693940842655 CO2 * metric_ton / Fe_ton" }, { - "year": 2018, - "value": "1189000.07784857 t CO2" + "year": 2023, + "value": "0.09012429197470885 CO2 * metric_ton / Fe_ton" }, { - "year": 2019, - "value": "1173000.07784857 t CO2" + "year": 2024, + "value": "0.08669712187451406 CO2 * metric_ton / Fe_ton" }, { - "year": 2020, - "value": "1173000.07784857 t CO2" + "year": 2025, + "value": "0.08340027729076233 CO2 * metric_ton / Fe_ton" }, { - "year": 2021, - "value": "1173000.07784857 t CO2" - } - ], - "S1S2": [], - "S3": [], - "S1S2S3": [] - }, - "emissions_intensities": { - "S1": [ - { - "year": 2009, - "value": NaN + "year": 2026, + "value": "0.08022880231530215 CO2 * metric_ton / Fe_ton" }, { - "year": 2010, - "value": NaN + "year": 2027, + "value": "0.07717792949905186 CO2 * metric_ton / Fe_ton" }, { - "year": 2011, - "value": NaN + "year": 2028, + "value": "0.07424307268543807 CO2 * metric_ton / Fe_ton" }, { - "year": 2012, - "value": NaN + "year": 2029, + "value": "0.07141982011635797 CO2 * metric_ton / Fe_ton" }, { - "year": 2013, - "value": NaN + "year": 2030, + "value": "0.06870392780030227 CO2 * metric_ton / Fe_ton" }, { - "year": 2014, - "value": NaN + "year": 2031, + "value": "0.06609131313266955 CO2 * metric_ton / Fe_ton" }, { - "year": 2015, - "value": NaN + "year": 2032, + "value": "0.06357804875868191 CO2 * metric_ton / Fe_ton" }, { - "year": 2016, - "value": NaN + "year": 2033, + "value": "0.06116035666967634 CO2 * metric_ton / Fe_ton" }, { - "year": 2017, - "value": "0.641005653735282 t CO2/Fe_ton" + "year": 2034, + "value": "0.058834602523897474 CO2 * metric_ton / Fe_ton" }, { - "year": 2018, - "value": "0.632661004513705 t CO2/Fe_ton" + "year": 2035, + "value": "0.05659729018325428 CO2 * metric_ton / Fe_ton" }, { - "year": 2019, - "value": "0.655493229362386 t CO2/Fe_ton" + "year": 2036, + "value": "0.0544450564578284 CO2 * metric_ton / Fe_ton" }, { - "year": 2020, - "value": "0.662060390127003 t CO2/Fe_ton" + "year": 2037, + "value": "0.05237466605023386 CO2 * metric_ton / Fe_ton" }, { - "year": 2021, - "value": "0.662060390127003 t CO2/Fe_ton" - } - ], - "S2": [ - { - "year": 2009, - "value": NaN + "year": 2038, + "value": "0.05038300669222836 CO2 * metric_ton / Fe_ton" }, { - "year": 2010, - "value": NaN + "year": 2039, + "value": "0.04846708446626541 CO2 * metric_ton / Fe_ton" }, { - "year": 2011, - "value": NaN + "year": 2040, + "value": "0.046624019304954474 CO2 * metric_ton / Fe_ton" }, { - "year": 2012, - "value": NaN + "year": 2041, + "value": "0.04485104066166388 CO2 * metric_ton / Fe_ton" }, { - "year": 2013, - "value": NaN + "year": 2042, + "value": "0.043145483345758295 CO2 * metric_ton / Fe_ton" }, { - "year": 2014, - "value": NaN + "year": 2043, + "value": "0.041504783516210335 CO2 * metric_ton / Fe_ton" }, { - "year": 2015, - "value": NaN + "year": 2044, + "value": "0.039926474827563646 CO2 * metric_ton / Fe_ton" }, { - "year": 2016, - "value": NaN + "year": 2045, + "value": "0.038408184722454074 CO2 * metric_ton / Fe_ton" }, { - "year": 2017, - "value": "0.0789969513219493 t CO2/Fe_ton" + "year": 2046, + "value": "0.036947630865115676 CO2 * metric_ton / Fe_ton" }, { - "year": 2018, - "value": "0.0771126578795937 t CO2/Fe_ton" + "year": 2047, + "value": "0.03554261771051033 CO2 * metric_ton / Fe_ton" }, { - "year": 2019, - "value": "0.0802435402655439 t CO2/Fe_ton" + "year": 2048, + "value": "0.0341910332039236 CO2 * metric_ton / Fe_ton" }, { - "year": 2020, - "value": "0.0810474726414106 t CO2/Fe_ton" + "year": 2049, + "value": "0.032890845606065554 CO2 * metric_ton / Fe_ton" }, { - "year": 2021, - "value": "0.0810474726414106 t CO2/Fe_ton" + "year": 2050, + "value": "0.03164010043890392 CO2 * metric_ton / Fe_ton" } - ], - "S1S2": [], - "S3": [], - "S1S2S3": [] - } - }, - "projected_targets": null, - "projected_intensities": { + ] + }, "S1S2": { + "ei_metric": { + "units": "CO2\u00b7t/Fe_ton" + }, "projections": [ { "year": 2019, - "value": "0.7357367696279299 t CO2/Fe_ton" + "value": "2.221710525394781 CO2 * metric_ton / Fe_ton" }, { "year": 2020, - "value": "0.7431078627684136 t CO2/Fe_ton" + "value": "2.053406336107665 CO2 * metric_ton / Fe_ton" }, { "year": 2021, - "value": "0.7431078627684136 t CO2/Fe_ton" + "value": "2.203778395984357 CO2 * metric_ton / Fe_ton" }, { "year": 2022, - "value": "0.7468303335596055 t CO2/Fe_ton" + "value": "2.263266555036904 CO2 * metric_ton / Fe_ton" }, { "year": 2023, - "value": "0.7505714514267947 t CO2/Fe_ton" + "value": "2.324791296072041 CO2 * metric_ton / Fe_ton" }, { "year": 2024, - "value": "0.7543313097792954 t CO2/Fe_ton" + "value": "2.388404136094766 CO2 * metric_ton / Fe_ton" }, { "year": 2025, - "value": "0.7581100024943395 t CO2/Fe_ton" + "value": "2.454158501937622 CO2 * metric_ton / Fe_ton" }, { "year": 2026, - "value": "0.7619076239194207 t CO2/Fe_ton" + "value": "2.5221097737015676 CO2 * metric_ton / Fe_ton" }, { "year": 2027, - "value": "0.7657242688746503 t CO2/Fe_ton" + "value": "2.592315330026905 CO2 * metric_ton / Fe_ton" }, { "year": 2028, - "value": "0.7695600326551245 t CO2/Fe_ton" + "value": "2.6648345952291272 CO2 * metric_ton / Fe_ton" }, { "year": 2029, - "value": "0.773415011033304 t CO2/Fe_ton" + "value": "2.739729088336358 CO2 * metric_ton / Fe_ton" }, { "year": 2030, - "value": "0.7772893002614051 t CO2/Fe_ton" + "value": "2.817062474066902 CO2 * metric_ton / Fe_ton" }, { "year": 2031, - "value": "0.7811829970738029 t CO2/Fe_ton" + "value": "2.896900615787268 CO2 * metric_ton / Fe_ton" }, { "year": 2032, - "value": "0.7850961986894467 t CO2/Fe_ton" + "value": "2.9793116304929184 CO2 * metric_ton / Fe_ton" }, { "year": 2033, - "value": "0.7890290028142876 t CO2/Fe_ton" + "value": "3.06436594585594 CO2 * metric_ton / Fe_ton" }, { "year": 2034, - "value": "0.7929815076437174 t CO2/Fe_ton" + "value": "3.1521363593857488 CO2 * metric_ton / Fe_ton" }, { "year": 2035, - "value": "0.7969538118650213 t CO2/Fe_ton" + "value": "3.242698099750961 CO2 * metric_ton / Fe_ton" }, { "year": 2036, - "value": "0.8009460146598412 t CO2/Fe_ton" + "value": "3.3361288903125668 CO2 * metric_ton / Fe_ton" }, { "year": 2037, - "value": "0.804958215706652 t CO2/Fe_ton" + "value": "3.4325090149206146 CO2 * metric_ton / Fe_ton" }, { "year": 2038, - "value": "0.8089905151832515 t CO2/Fe_ton" + "value": "3.53192138602872 CO2 * metric_ton / Fe_ton" }, { "year": 2039, - "value": "0.8130430137692602 t CO2/Fe_ton" + "value": "3.6344516151828525 CO2 * metric_ton / Fe_ton" }, { "year": 2040, - "value": "0.8171158126486363 t CO2/Fe_ton" + "value": "3.740188085943039 CO2 * metric_ton / Fe_ton" }, { "year": 2041, - "value": "0.8212090135122013 t CO2/Fe_ton" + "value": "3.849222029298891 CO2 * metric_ton / Fe_ton" }, { "year": 2042, - "value": "0.8253227185601795 t CO2/Fe_ton" + "value": "3.9616476016421025 CO2 * metric_ton / Fe_ton" }, { "year": 2043, - "value": "0.8294570305047495 t CO2/Fe_ton" + "value": "4.077561965361444 CO2 * metric_ton / Fe_ton" }, { "year": 2044, - "value": "0.8336120525726091 t CO2/Fe_ton" + "value": "4.197065372128155 CO2 * metric_ton / Fe_ton" }, { "year": 2045, - "value": "0.8377878885075521 t CO2/Fe_ton" + "value": "4.320261248942064 CO2 * metric_ton / Fe_ton" }, { "year": 2046, - "value": "0.8419846425730594 t CO2/Fe_ton" + "value": "4.447256287011314 CO2 * metric_ton / Fe_ton" }, { "year": 2047, - "value": "0.8462024195549014 t CO2/Fe_ton" + "value": "4.578160533541095 CO2 * metric_ton / Fe_ton" }, { "year": 2048, - "value": "0.8504413247637549 t CO2/Fe_ton" + "value": "4.713087486509426 CO2 * metric_ton / Fe_ton" }, { "year": 2049, - "value": "0.8547014640378325 t CO2/Fe_ton" + "value": "4.852154192510733 CO2 * metric_ton / Fe_ton" }, { "year": 2050, - "value": "0.8589829437455252 t CO2/Fe_ton" + "value": "4.995481347750712 CO2 * metric_ton / Fe_ton" } ] }, "S3": null, "S1S2S3": null - }, - "country": null, - "ghg_s1s2": null, - "ghg_s3": null, - "industry_level_1": null, - "industry_level_2": null, - "industry_level_3": null, - "industry_level_4": null, - "company_revenue": null, - "company_market_cap": null, - "company_enterprise_value": null, - "company_total_assets": null, - "company_cash_equivalents": null + } }, { - "company_name": "Company L", - "company_id": "BR0000000012", - "region": "Asia", + "company_name": "Company M", + "company_id": "AR0000000013", + "region": "Europe", "sector": "Steel", "target_probability": 0.4285714285714285, + "target_data": null, "historic_data": { "productions": [ { "year": 2009, - "value": NaN + "value": "nan Fe_ton" }, { "year": 2010, - "value": NaN + "value": "nan Fe_ton" }, { "year": 2011, - "value": NaN + "value": "nan Fe_ton" }, { "year": 2012, - "value": NaN + "value": "nan Fe_ton" }, { "year": 2013, - "value": NaN + "value": "nan Fe_ton" }, { "year": 2014, - "value": "9155004.34644718 Fe_ton" + "value": "nan Fe_ton" }, { "year": 2015, - "value": "9331004.34644718 Fe_ton" + "value": "nan Fe_ton" }, { "year": 2016, - "value": "20808004.3464472 Fe_ton" + "value": "nan Fe_ton" }, { "year": 2017, - "value": "21911004.3464472 Fe_ton" + "value": "nan Fe_ton" }, { "year": 2018, - "value": "25390004.3464472 Fe_ton" + "value": "nan Fe_ton" }, { "year": 2019, - "value": "27110004.3464472 Fe_ton" + "value": "nan Fe_ton" }, { "year": 2020, - "value": "30630004.3464472 Fe_ton" + "value": "nan Fe_ton" }, { "year": 2021, - "value": "28540004.3464472 Fe_ton" + "value": "nan Fe_ton" } ], "emissions": { "S1": [ { "year": 2009, - "value": NaN + "value": "nan CO2 * metric_ton" }, { "year": 2010, - "value": "14900657.0 t CO2" + "value": "24085969.3736674 CO2 * metric_ton" }, { "year": 2011, - "value": "17389874.39 t CO2" + "value": "30090002.3736674 CO2 * metric_ton" }, { "year": 2012, - "value": "16283032.0 t CO2" + "value": "16848002.3736674 CO2 * metric_ton" }, { "year": 2013, - "value": "18802944.0 t CO2" + "value": "26700002.3736674 CO2 * metric_ton" }, { "year": 2014, - "value": "20428595.0 t CO2" + "value": "32200002.3736674 CO2 * metric_ton" }, { "year": 2015, - "value": "23337931.0 t CO2" + "value": "32600002.3736674 CO2 * metric_ton" }, { "year": 2016, - "value": "23298343.0 t CO2" + "value": "32600002.3736674 CO2 * metric_ton" }, { "year": 2017, - "value": "38757404.0 t CO2" + "value": "22100002.3736674 CO2 * metric_ton" }, { "year": 2018, - "value": "47025134.0 t CO2" + "value": "22600002.3736674 CO2 * metric_ton" }, { "year": 2019, - "value": "56093007.0 t CO2" + "value": "22800002.3736674 CO2 * metric_ton" }, { "year": 2020, - "value": "60116322.0 t CO2" + "value": "21300002.3736674 CO2 * metric_ton" }, { "year": 2021, - "value": "60116322.0 t CO2" + "value": "21300002.3736674 CO2 * metric_ton" } ], "S2": [ { "year": 2009, - "value": NaN + "value": "nan CO2 * metric_ton" }, { "year": 2010, - "value": "731525.0 t CO2" + "value": "4781476.37366743 CO2 * metric_ton" }, { "year": 2011, - "value": "853729.3263 t CO2" + "value": "4287002.37366743 CO2 * metric_ton" }, { "year": 2012, - "value": "789126.0 t CO2" + "value": "2116002.37366743 CO2 * metric_ton" }, { "year": 2013, - "value": "1174594.0 t CO2" + "value": "1800002.37366743 CO2 * metric_ton" }, { "year": 2014, - "value": "1266295.0 t CO2" + "value": "1700002.37366743 CO2 * metric_ton" }, { "year": 2015, - "value": "723978.0 t CO2" + "value": "1200002.37366743 CO2 * metric_ton" }, { "year": 2016, - "value": "1409816.0 t CO2" + "value": "1200002.37366743 CO2 * metric_ton" }, { "year": 2017, - "value": "3979125.0 t CO2" + "value": "1300002.37366743 CO2 * metric_ton" }, { "year": 2018, - "value": "3344945.0 t CO2" + "value": "1400002.37366743 CO2 * metric_ton" }, { "year": 2019, - "value": "4137575.0 t CO2" + "value": "1300002.37366743 CO2 * metric_ton" }, { "year": 2020, - "value": "2779523.0 t CO2" + "value": "1400002.37366743 CO2 * metric_ton" }, { "year": 2021, - "value": "2779523.0 t CO2" + "value": "1400002.37366743 CO2 * metric_ton" } ], "S1S2": [], @@ -12058,109 +20273,109 @@ "S1": [ { "year": 2009, - "value": NaN + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2010, - "value": NaN + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2011, - "value": NaN + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2012, - "value": NaN + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2013, - "value": NaN + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2014, - "value": "2.23141292204059 t CO2/Fe_ton" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2015, - "value": "2.5011167215762815 t CO2/Fe_ton" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2016, - "value": "1.1196817634257177 t CO2/Fe_ton" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2017, - "value": "1.768855657512769 t CO2/Fe_ton" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2018, - "value": "1.8521120894010474 t CO2/Fe_ton" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2019, - "value": "2.0690888235638023 t CO2/Fe_ton" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2020, - "value": "1.9626612298203263 t CO2/Fe_ton" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2021, - "value": "2.1063879763383277 t CO2/Fe_ton" + "value": "nan CO2 * metric_ton / Fe_ton" } ], "S2": [ { "year": 2009, - "value": NaN + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2010, - "value": NaN + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2011, - "value": NaN + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2012, - "value": NaN + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2013, - "value": NaN + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2014, - "value": "0.13831724727595748 t CO2/Fe_ton" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2015, - "value": "0.07758843240445577 t CO2/Fe_ton" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2016, - "value": "0.06775354217189573 t CO2/Fe_ton" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2017, - "value": "0.18160395283957864 t CO2/Fe_ton" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2018, - "value": "0.13174259265016847 t CO2/Fe_ton" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2019, - "value": "0.15262170183097867 t CO2/Fe_ton" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2020, - "value": "0.09074510628733878 t CO2/Fe_ton" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2021, - "value": "0.09739041964602954 t CO2/Fe_ton" + "value": "nan CO2 * metric_ton / Fe_ton" } ], "S1S2": [], @@ -12168,592 +20383,435 @@ "S1S2S3": [] } }, + "country": null, + "emissions_metric": { + "units": "t CO2" + }, + "production_metric": { + "units": "Fe_ton" + }, + "base_year_production": "nan Fe_ton", + "ghg_s1s2": "22700004.74733483 CO2 * metric_ton", + "ghg_s3": null, + "industry_level_1": null, + "industry_level_2": null, + "industry_level_3": null, + "industry_level_4": null, + "company_revenue": null, + "company_market_cap": null, + "company_enterprise_value": null, + "company_ev_plus_cash": null, + "company_total_assets": null, + "company_cash_equivalents": null, "projected_targets": null, "projected_intensities": { - "S1S2": { + "S1": { + "ei_metric": { + "units": "CO2\u00b7t/Fe_ton" + }, "projections": [ { "year": 2019, - "value": "2.221710525394781 t CO2/Fe_ton" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2020, - "value": "2.053406336107665 t CO2/Fe_ton" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2021, - "value": "2.203778395984357 t CO2/Fe_ton" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2022, - "value": "2.262080547317932 t CO2/Fe_ton" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2023, - "value": "2.3219251136494563 t CO2/Fe_ton" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2024, - "value": "2.3833529004032834 t CO2/Fe_ton" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2025, - "value": "2.4464057925333744 t CO2/Fe_ton" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2026, - "value": "2.5111267830828377 t CO2/Fe_ton" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2027, - "value": "2.5775600024990277 t CO2/Fe_ton" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2028, - "value": "2.6457507487241916 t CO2/Fe_ton" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2029, - "value": "2.7157455180821772 t CO2/Fe_ton" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2030, - "value": "2.7875920369822693 t CO2/Fe_ton" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2031, - "value": "2.861339294461765 t CO2/Fe_ton" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2032, - "value": "2.9370375755894824 t CO2/Fe_ton" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2033, - "value": "3.0147384957529764 t CO2/Fe_ton" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2034, - "value": "3.094495035852842 t CO2/Fe_ton" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2035, - "value": "3.1763615784281005 t CO2/Fe_ton" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2036, - "value": "3.2603939447373045 t CO2/Fe_ton" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2037, - "value": "3.3466494328206418 t CO2/Fe_ton" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2038, - "value": "3.4351868565689943 t CO2/Fe_ton" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2039, - "value": "3.526066585826588 t CO2/Fe_ton" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2040, - "value": "3.619350587554583 t CO2/Fe_ton" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2041, - "value": "3.715102468083667 t CO2/Fe_ton" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2042, - "value": "3.813387516484463 t CO2/Fe_ton" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2043, - "value": "3.9142727490853275 t CO2/Fe_ton" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2044, - "value": "4.017826955167889 t CO2/Fe_ton" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2045, - "value": "4.124120743871487 t CO2/Fe_ton" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2046, - "value": "4.233226592338492 t CO2/Fe_ton" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2047, - "value": "4.3452188951333435 t CO2/Fe_ton" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2048, - "value": "4.460174014968982 t CO2/Fe_ton" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2049, - "value": "4.5781703347752885 t CO2/Fe_ton" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2050, - "value": "4.699288311145017 t CO2/Fe_ton" + "value": "nan CO2 * metric_ton / Fe_ton" } ] }, - "S3": null, - "S1S2S3": null - }, - "country": null, - "ghg_s1s2": null, - "ghg_s3": null, - "industry_level_1": null, - "industry_level_2": null, - "industry_level_3": null, - "industry_level_4": null, - "company_revenue": null, - "company_market_cap": null, - "company_enterprise_value": null, - "company_total_assets": null, - "company_cash_equivalents": null - }, - { - "company_name": "Company M", - "company_id": "AR0000000013", - "region": "Europe", - "sector": "Steel", - "target_probability": 0.4285714285714285, - "historic_data": { - "productions": [ - { - "year": 2009, - "value": NaN - }, - { - "year": 2010, - "value": NaN - }, - { - "year": 2011, - "value": NaN - }, - { - "year": 2012, - "value": NaN - }, - { - "year": 2013, - "value": NaN - }, - { - "year": 2014, - "value": NaN - }, - { - "year": 2015, - "value": NaN - }, - { - "year": 2016, - "value": NaN - }, - { - "year": 2017, - "value": NaN - }, - { - "year": 2018, - "value": NaN - }, - { - "year": 2019, - "value": NaN - }, - { - "year": 2020, - "value": NaN + "S2": { + "ei_metric": { + "units": "CO2\u00b7t/Fe_ton" }, - { - "year": 2021, - "value": NaN - } - ], - "emissions": { - "S1": [ - { - "year": 2009, - "value": NaN - }, - { - "year": 2010, - "value": "24085969.3736674 t CO2" - }, - { - "year": 2011, - "value": "30090002.3736674 t CO2" - }, - { - "year": 2012, - "value": "16848002.3736674 t CO2" - }, - { - "year": 2013, - "value": "26700002.3736674 t CO2" - }, - { - "year": 2014, - "value": "32200002.3736674 t CO2" - }, - { - "year": 2015, - "value": "32600002.3736674 t CO2" - }, - { - "year": 2016, - "value": "32600002.3736674 t CO2" - }, - { - "year": 2017, - "value": "22100002.3736674 t CO2" - }, - { - "year": 2018, - "value": "22600002.3736674 t CO2" - }, + "projections": [ { "year": 2019, - "value": "22800002.3736674 t CO2" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2020, - "value": "21300002.3736674 t CO2" + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2021, - "value": "21300002.3736674 t CO2" - } - ], - "S2": [ - { - "year": 2009, - "value": NaN - }, - { - "year": 2010, - "value": "4781476.37366743 t CO2" - }, - { - "year": 2011, - "value": "4287002.37366743 t CO2" - }, - { - "year": 2012, - "value": "2116002.37366743 t CO2" - }, - { - "year": 2013, - "value": "1800002.37366743 t CO2" - }, - { - "year": 2014, - "value": "1700002.37366743 t CO2" - }, - { - "year": 2015, - "value": "1200002.37366743 t CO2" - }, - { - "year": 2016, - "value": "1200002.37366743 t CO2" + "value": "nan CO2 * metric_ton / Fe_ton" }, { - "year": 2017, - "value": "1300002.37366743 t CO2" + "year": 2022, + "value": "nan CO2 * metric_ton / Fe_ton" }, { - "year": 2018, - "value": "1400002.37366743 t CO2" + "year": 2023, + "value": "nan CO2 * metric_ton / Fe_ton" }, { - "year": 2019, - "value": "1300002.37366743 t CO2" + "year": 2024, + "value": "nan CO2 * metric_ton / Fe_ton" }, { - "year": 2020, - "value": "1400002.37366743 t CO2" + "year": 2025, + "value": "nan CO2 * metric_ton / Fe_ton" }, { - "year": 2021, - "value": "1400002.37366743 t CO2" - } - ], - "S1S2": [], - "S3": [], - "S1S2S3": [] - }, - "emissions_intensities": { - "S1": [ - { - "year": 2009, - "value": NaN + "year": 2026, + "value": "nan CO2 * metric_ton / Fe_ton" }, { - "year": 2010, - "value": NaN + "year": 2027, + "value": "nan CO2 * metric_ton / Fe_ton" }, { - "year": 2011, - "value": NaN + "year": 2028, + "value": "nan CO2 * metric_ton / Fe_ton" }, { - "year": 2012, - "value": NaN + "year": 2029, + "value": "nan CO2 * metric_ton / Fe_ton" }, { - "year": 2013, - "value": NaN + "year": 2030, + "value": "nan CO2 * metric_ton / Fe_ton" }, { - "year": 2014, - "value": NaN + "year": 2031, + "value": "nan CO2 * metric_ton / Fe_ton" }, { - "year": 2015, - "value": NaN + "year": 2032, + "value": "nan CO2 * metric_ton / Fe_ton" }, { - "year": 2016, - "value": NaN + "year": 2033, + "value": "nan CO2 * metric_ton / Fe_ton" }, { - "year": 2017, - "value": NaN + "year": 2034, + "value": "nan CO2 * metric_ton / Fe_ton" }, { - "year": 2018, - "value": NaN + "year": 2035, + "value": "nan CO2 * metric_ton / Fe_ton" }, { - "year": 2019, - "value": NaN + "year": 2036, + "value": "nan CO2 * metric_ton / Fe_ton" }, { - "year": 2020, - "value": NaN + "year": 2037, + "value": "nan CO2 * metric_ton / Fe_ton" }, { - "year": 2021, - "value": NaN - } - ], - "S2": [ - { - "year": 2009, - "value": NaN + "year": 2038, + "value": "nan CO2 * metric_ton / Fe_ton" }, { - "year": 2010, - "value": NaN + "year": 2039, + "value": "nan CO2 * metric_ton / Fe_ton" }, { - "year": 2011, - "value": NaN + "year": 2040, + "value": "nan CO2 * metric_ton / Fe_ton" }, { - "year": 2012, - "value": NaN + "year": 2041, + "value": "nan CO2 * metric_ton / Fe_ton" }, { - "year": 2013, - "value": NaN + "year": 2042, + "value": "nan CO2 * metric_ton / Fe_ton" }, { - "year": 2014, - "value": NaN + "year": 2043, + "value": "nan CO2 * metric_ton / Fe_ton" }, { - "year": 2015, - "value": NaN + "year": 2044, + "value": "nan CO2 * metric_ton / Fe_ton" }, { - "year": 2016, - "value": NaN + "year": 2045, + "value": "nan CO2 * metric_ton / Fe_ton" }, { - "year": 2017, - "value": NaN + "year": 2046, + "value": "nan CO2 * metric_ton / Fe_ton" }, { - "year": 2018, - "value": NaN + "year": 2047, + "value": "nan CO2 * metric_ton / Fe_ton" }, { - "year": 2019, - "value": NaN + "year": 2048, + "value": "nan CO2 * metric_ton / Fe_ton" }, { - "year": 2020, - "value": NaN + "year": 2049, + "value": "nan CO2 * metric_ton / Fe_ton" }, { - "year": 2021, - "value": NaN + "year": 2050, + "value": "nan CO2 * metric_ton / Fe_ton" } - ], - "S1S2": [], - "S3": [], - "S1S2S3": [] - } - }, - "projected_targets": null, - "projected_intensities": { + ] + }, "S1S2": { + "ei_metric": { + "units": "CO2\u00b7t/Fe_ton" + }, "projections": [ { "year": 2019, - "value": NaN + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2020, - "value": NaN + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2021, - "value": NaN + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2022, - "value": NaN + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2023, - "value": NaN + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2024, - "value": NaN + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2025, - "value": NaN + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2026, - "value": NaN + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2027, - "value": NaN + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2028, - "value": NaN + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2029, - "value": NaN + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2030, - "value": NaN + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2031, - "value": NaN + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2032, - "value": NaN + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2033, - "value": NaN + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2034, - "value": NaN + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2035, - "value": NaN + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2036, - "value": NaN + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2037, - "value": NaN + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2038, - "value": NaN + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2039, - "value": NaN + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2040, - "value": NaN + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2041, - "value": NaN + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2042, - "value": NaN + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2043, - "value": NaN + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2044, - "value": NaN + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2045, - "value": NaN + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2046, - "value": NaN + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2047, - "value": NaN + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2048, - "value": NaN + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2049, - "value": NaN + "value": "nan CO2 * metric_ton / Fe_ton" }, { "year": 2050, - "value": NaN + "value": "nan CO2 * metric_ton / Fe_ton" } ] }, "S3": null, "S1S2S3": null - }, - "country": null, - "ghg_s1s2": null, - "ghg_s3": null, - "industry_level_1": null, - "industry_level_2": null, - "industry_level_3": null, - "industry_level_4": null, - "company_revenue": null, - "company_market_cap": null, - "company_enterprise_value": null, - "company_total_assets": null, - "company_cash_equivalents": null + } } -] +] \ No newline at end of file diff --git a/test/test_projection.py b/test/test_projection.py index 007dfd50..7002077b 100644 --- a/test/test_projection.py +++ b/test/test_projection.py @@ -2,24 +2,13 @@ import unittest import os import datetime +import pandas as pd +from utils import QuantityEncoder from ITR.data.base_providers import EITrajectoryProjector from ITR.interfaces import ICompanyData -def mystr(s): - t = str(s).replace('CO2 * metric_ton', 't CO2').replace('gigajoule','GJ').replace(' / ', '/') - if t.startswith('nan'): - return json.loads('NaN') - return t - - -def refstr(s): - if s!=s: - return json.loads('NaN') - return str(s) - - class TestProjector(unittest.TestCase): """ Test the projector that converts historic data into emission intensity projections @@ -33,7 +22,6 @@ def setUp(self) -> None: with open(self.source_path, 'r') as file: company_dicts = json.load(file) for company_dict in company_dicts: - # TODO: fix json input and reference files! company_dict['report_date'] = datetime.date(2021, 12, 31) self.companies = [ICompanyData(**company_dict) for company_dict in company_dicts] self.projector = EITrajectoryProjector() diff --git a/test/utils.py b/test/utils.py index d2fe8d46..8bc5b4cb 100644 --- a/test/utils.py +++ b/test/utils.py @@ -1,5 +1,15 @@ import unittest import pandas as pd +import json +from pint import Quantity + + +class QuantityEncoder(json.JSONEncoder): + def default(self, q): + if isinstance(q, Quantity): + return str(q) + else: + super().default(q) def assert_pint_series_equal(case: unittest.case, left: pd.Series, right: pd.Series): From cce9747bf23bb0c3d40bc7e587d529d290d7a812 Mon Sep 17 00:00:00 2001 From: David Kroon Date: Mon, 7 Mar 2022 19:43:57 +0100 Subject: [PATCH 175/345] Restore notebook to work with pygithub Signed-off-by: David Kroon Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- examples/quick_template_score_calc.ipynb | 2 +- requirements.txt | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/examples/quick_template_score_calc.ipynb b/examples/quick_template_score_calc.ipynb index 6cdd09e4..c7b801f2 100644 --- a/examples/quick_template_score_calc.ipynb +++ b/examples/quick_template_score_calc.ipynb @@ -1382,4 +1382,4 @@ }, "nbformat": 4, "nbformat_minor": 4 -} +} \ No newline at end of file diff --git a/requirements.txt b/requirements.txt index a9c0ad6f..3d153934 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,5 +1,4 @@ chardet==4.0.0 -# github.py==0.5.0 iam-units==2021.11.12 jupyter==1.0.0 matplotlib==3.5.1 From e83ffc4172115d13f733849e25b1a5cb23de9b1f Mon Sep 17 00:00:00 2001 From: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> Date: Mon, 7 Mar 2022 14:44:00 -0500 Subject: [PATCH 176/345] Update DataTemplateRequirements.rst Add missing colon for git clone instructions. Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- docs/DataTemplateRequirements.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/DataTemplateRequirements.rst b/docs/DataTemplateRequirements.rst index cba6c1e1..537cfd74 100644 --- a/docs/DataTemplateRequirements.rst +++ b/docs/DataTemplateRequirements.rst @@ -172,7 +172,7 @@ Installation Notes The first step is to request an invitation to join the OS-Climate GitHub team. This is required to access repositories that are not yet public. (They will be published soon, but not yet.) You will also need a Personal Access Token, which you can get by `following these instructions ` . -- Clone the ITR repository `git clone https://github.com/os-climate/ITR.git` +- Clone the ITR repository: `git clone https://github.com/os-climate/ITR.git` - Switch to the correct branch: `git checkout develop-pint-steel-projections` - In the top-level ITR directory, create the `conda` itr_env: `conda env create -f environment.yml` - Activate that environment: `conda activate itr_env` (you may need to initialize conda by executing `conda init` for your shell first) From ffdee8502a69ad5304c892a308e8c405ff79bb47 Mon Sep 17 00:00:00 2001 From: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> Date: Mon, 7 Mar 2022 14:58:39 -0500 Subject: [PATCH 177/345] Update DataTemplateRequirements.rst Added link to conda download. Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- docs/DataTemplateRequirements.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/DataTemplateRequirements.rst b/docs/DataTemplateRequirements.rst index 537cfd74..fdc56879 100644 --- a/docs/DataTemplateRequirements.rst +++ b/docs/DataTemplateRequirements.rst @@ -170,7 +170,7 @@ initial amount as rounding down to zero. Installation Notes ------------------ -The first step is to request an invitation to join the OS-Climate GitHub team. This is required to access repositories that are not yet public. (They will be published soon, but not yet.) You will also need a Personal Access Token, which you can get by `following these instructions ` . +The first step is to request an invitation to join the OS-Climate GitHub team. This is required to access repositories that are not yet public. (They will be published soon, but not yet.) You will need a Personal Access Token, which you can get by `following these instructions ` . We also assume you have a `conda ` environment with Python 3.9 installed on your system. - Clone the ITR repository: `git clone https://github.com/os-climate/ITR.git` - Switch to the correct branch: `git checkout develop-pint-steel-projections` From 8b578e22b12344ad7f2ed1d753330a6adc8d9991 Mon Sep 17 00:00:00 2001 From: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> Date: Mon, 7 Mar 2022 15:11:00 -0500 Subject: [PATCH 178/345] Update DataTemplateRequirements.rst Add comment about Anaconda PowerShell. Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- docs/DataTemplateRequirements.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/DataTemplateRequirements.rst b/docs/DataTemplateRequirements.rst index fdc56879..619c4fda 100644 --- a/docs/DataTemplateRequirements.rst +++ b/docs/DataTemplateRequirements.rst @@ -170,7 +170,7 @@ initial amount as rounding down to zero. Installation Notes ------------------ -The first step is to request an invitation to join the OS-Climate GitHub team. This is required to access repositories that are not yet public. (They will be published soon, but not yet.) You will need a Personal Access Token, which you can get by `following these instructions ` . We also assume you have a `conda ` environment with Python 3.9 installed on your system. +The first step is to request an invitation to join the OS-Climate GitHub team. This is required to access repositories that are not yet public. (They will be published soon, but not yet.) You will need a Personal Access Token, which you can get by `following these instructions ` . We also assume you have a `conda ` environment with Python 3.9 installed on your system. If you are on a Windows system you will want to open the Anaconda PowerShell. If on OSX or Linux, all shells are equally powerful, but this has been tested with bash (the Bourne Again SHell). - Clone the ITR repository: `git clone https://github.com/os-climate/ITR.git` - Switch to the correct branch: `git checkout develop-pint-steel-projections` From 312348e14c58e8a66cac356a20e0b518ee083fe4 Mon Sep 17 00:00:00 2001 From: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> Date: Mon, 7 Mar 2022 15:12:57 -0500 Subject: [PATCH 179/345] Update DataTemplateRequirements.rst Changed bullets to numbers in installation instruction so we can communicate with users the step number they are attempting. Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- docs/DataTemplateRequirements.rst | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/docs/DataTemplateRequirements.rst b/docs/DataTemplateRequirements.rst index 619c4fda..c9291091 100644 --- a/docs/DataTemplateRequirements.rst +++ b/docs/DataTemplateRequirements.rst @@ -172,11 +172,12 @@ Installation Notes The first step is to request an invitation to join the OS-Climate GitHub team. This is required to access repositories that are not yet public. (They will be published soon, but not yet.) You will need a Personal Access Token, which you can get by `following these instructions ` . We also assume you have a `conda ` environment with Python 3.9 installed on your system. If you are on a Windows system you will want to open the Anaconda PowerShell. If on OSX or Linux, all shells are equally powerful, but this has been tested with bash (the Bourne Again SHell). -- Clone the ITR repository: `git clone https://github.com/os-climate/ITR.git` -- Switch to the correct branch: `git checkout develop-pint-steel-projections` -- In the top-level ITR directory, create the `conda` itr_env: `conda env create -f environment.yml` -- Activate that environment: `conda activate itr_env` (you may need to initialize conda by executing `conda init` for your shell first) -- Change to the `examples` directory -- Start your notebook: `jupyter-lab` -- Open the file `quick_template_score_calc.ipynb` -- Run the notebook with a fresh kernel by pressing the `>>` button +0. Run `conda list` to see that you have a functioning (base) environment. +1. Clone the ITR repository: `git clone https://github.com/os-climate/ITR.git` +2. Switch to the correct branch: `git checkout develop-pint-steel-projections` +3. In the top-level ITR directory, create the `conda` itr_env: `conda env create -f environment.yml` +4. Activate that environment: `conda activate itr_env` (you may need to initialize conda by executing `conda init` for your shell first) +5. Change to the `examples` directory +6. Start your notebook: `jupyter-lab` +7. Open the file `quick_template_score_calc.ipynb` +8. Run the notebook with a fresh kernel by pressing the `>>` button From a5819d4110ad4e000354b8b575d79ff458ef3b17 Mon Sep 17 00:00:00 2001 From: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> Date: Mon, 7 Mar 2022 15:20:59 -0500 Subject: [PATCH 180/345] Update DataTemplateRequirements.rst Add pip install -e . instruction. Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- docs/DataTemplateRequirements.rst | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/docs/DataTemplateRequirements.rst b/docs/DataTemplateRequirements.rst index c9291091..3fb345e0 100644 --- a/docs/DataTemplateRequirements.rst +++ b/docs/DataTemplateRequirements.rst @@ -177,7 +177,8 @@ The first step is to request an invitation to join the OS-Climate GitHub team. 2. Switch to the correct branch: `git checkout develop-pint-steel-projections` 3. In the top-level ITR directory, create the `conda` itr_env: `conda env create -f environment.yml` 4. Activate that environment: `conda activate itr_env` (you may need to initialize conda by executing `conda init` for your shell first) -5. Change to the `examples` directory -6. Start your notebook: `jupyter-lab` -7. Open the file `quick_template_score_calc.ipynb` -8. Run the notebook with a fresh kernel by pressing the `>>` button +5. Install the ITR libraries to your local environment: `pip install -e .` +6. Change to the `examples` directory +7. Start your notebook: `jupyter-lab` +8. Open the file `quick_template_score_calc.ipynb` +9. Run the notebook with a fresh kernel by pressing the `>>` button From 0404cc1c75f64f93268bd132aec2da4ddef673f3 Mon Sep 17 00:00:00 2001 From: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> Date: Mon, 7 Mar 2022 15:25:26 -0500 Subject: [PATCH 181/345] Update DataTemplateRequirements.rst Add --no-cache-dir tidbit. Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- docs/DataTemplateRequirements.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/DataTemplateRequirements.rst b/docs/DataTemplateRequirements.rst index 3fb345e0..3da4cb80 100644 --- a/docs/DataTemplateRequirements.rst +++ b/docs/DataTemplateRequirements.rst @@ -177,7 +177,7 @@ The first step is to request an invitation to join the OS-Climate GitHub team. 2. Switch to the correct branch: `git checkout develop-pint-steel-projections` 3. In the top-level ITR directory, create the `conda` itr_env: `conda env create -f environment.yml` 4. Activate that environment: `conda activate itr_env` (you may need to initialize conda by executing `conda init` for your shell first) -5. Install the ITR libraries to your local environment: `pip install -e .` +5. Install the ITR libraries to your local environment: `pip install -e .` (you may need `--no-cache-dir` on windows to avoid permissions errors) 6. Change to the `examples` directory 7. Start your notebook: `jupyter-lab` 8. Open the file `quick_template_score_calc.ipynb` From e0f2114a0f9ddaa9ee8580a7ca300aed6440b6d0 Mon Sep 17 00:00:00 2001 From: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> Date: Mon, 7 Mar 2022 15:52:25 -0500 Subject: [PATCH 182/345] Update DataTemplateRequirements.rst Finishing touches on installation validated by @MichaelTiemannOSC and @HeatherAck Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- docs/DataTemplateRequirements.rst | 31 +++++++++++++++++++++---------- 1 file changed, 21 insertions(+), 10 deletions(-) diff --git a/docs/DataTemplateRequirements.rst b/docs/DataTemplateRequirements.rst index 3da4cb80..5c2812ee 100644 --- a/docs/DataTemplateRequirements.rst +++ b/docs/DataTemplateRequirements.rst @@ -170,15 +170,26 @@ initial amount as rounding down to zero. Installation Notes ------------------ -The first step is to request an invitation to join the OS-Climate GitHub team. This is required to access repositories that are not yet public. (They will be published soon, but not yet.) You will need a Personal Access Token, which you can get by `following these instructions ` . We also assume you have a `conda ` environment with Python 3.9 installed on your system. If you are on a Windows system you will want to open the Anaconda PowerShell. If on OSX or Linux, all shells are equally powerful, but this has been tested with bash (the Bourne Again SHell). +The first step is to request an invitation to join the OS-Climate GitHub team. This is required to access repositories that are not yet public. (They will be published soon, but not yet.) You will need a Personal Access Token, which you can get by `following these instructions ` . + +**Getting Started with conda** + +If you don't already have a conda environment, you'll need to download one from `` (Python 3.9 preferred). If you are installing conda on a Windows system you will want to open the Anaconda PowerShell after installation. If you are on OSX or Linux system, all shells are equally powerful, but you will need to run `conda init $SHELL`. + +**Installing the ITR environment and running the Notebook** + +With your conda shell and environment running: 0. Run `conda list` to see that you have a functioning (base) environment. -1. Clone the ITR repository: `git clone https://github.com/os-climate/ITR.git` -2. Switch to the correct branch: `git checkout develop-pint-steel-projections` -3. In the top-level ITR directory, create the `conda` itr_env: `conda env create -f environment.yml` -4. Activate that environment: `conda activate itr_env` (you may need to initialize conda by executing `conda init` for your shell first) -5. Install the ITR libraries to your local environment: `pip install -e .` (you may need `--no-cache-dir` on windows to avoid permissions errors) -6. Change to the `examples` directory -7. Start your notebook: `jupyter-lab` -8. Open the file `quick_template_score_calc.ipynb` -9. Run the notebook with a fresh kernel by pressing the `>>` button +1. Set GITHUB_TOKEN to your GitHub access token (windows `$Env:GITHUB_TOKEN = "your_github_token"`) (OSX/Linux: `export GITHUB_TOKEN=your_github_token`) +2. Clone the ITR repository: `git clone https://github.com/os-climate/ITR.git` (if you don't have git you can `pip install git`) +3. Switch to the correct branch: `git checkout develop-pint-steel-projections` +4. In the top-level ITR directory, create the `conda` itr_env: `conda env create -f environment.yml` +5. Activate that environment: `conda activate itr_env` +6. Install the ITR libraries to your local environment: `pip install -e .` (you may need `--no-cache-dir` on windows to avoid permissions errors) +7. Change to the `examples` directory +8. Start your notebook: `jupyter-lab` +9. Open the file `quick_template_score_calc.ipynb` +10. Run the notebook with a fresh kernel by pressing the `>>` button. Accept the option to Restart Kernel and clear all previous variables. + +The brackets listed near the top left corner of each executable cell will change from `[ ]` (before running the notebook) to `[*]` while the cell's computation is pending, to a number (such as `[5]` for the 5th cell) when computation is complete. If everything is working, you will see text output, graphical output, and a newly created `data_dump.xlsx` file representing the input porfolio, enhanced with temperature score data. From b256bad5d76bf54244dc0c450a67e66112c2551f Mon Sep 17 00:00:00 2001 From: David Kroon Date: Tue, 8 Mar 2022 11:00:55 +0100 Subject: [PATCH 183/345] Fix template tests - fix input data and ref value Signed-off-by: David Kroon Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- .../data/20220306 ITR Tool Sample Data.xlsx | Bin 61916 -> 61943 bytes .../inputs/20220215 ITR Tool Sample Data.xlsx | Bin 82365 -> 82389 bytes test/test_template_provider.py | 4 ++-- 3 files changed, 2 insertions(+), 2 deletions(-) diff --git a/examples/data/20220306 ITR Tool Sample Data.xlsx b/examples/data/20220306 ITR Tool Sample Data.xlsx index a91e2e84dc9508df4bf2e02421e4db40e1a6fd2b..8942b77937c68ef287a0d95730aaabd754fcc9bd 100644 GIT binary patch delta 20793 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׷M*TCovwn*-@-5iZVx--I%V26Ni^U( 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�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 diff --git a/test/test_template_provider.py b/test/test_template_provider.py index 7f4a23e5..52d51ec7 100644 --- a/test/test_template_provider.py +++ b/test/test_template_provider.py @@ -138,10 +138,10 @@ def test_temp_score_from_excel_data(self): agg_scores = temp_score.aggregate_scores(scores) # verify company scores: - expected = pd.Series([1.81, 1.87, 2.10, 2.18, temp_score.fallback_score], dtype='pint[delta_degC]') + expected = pd.Series([1.81, 1.87, 2.10, 2.18, 1.95], dtype='pint[delta_degC]') assert_array_equal(scores.temperature_score.values, expected) # verify that results exist - self.assertAlmostEqual(agg_scores.long.S1S2.all.score, Q_(2.232, ureg.delta_degC), places=2) + self.assertAlmostEqual(agg_scores.long.S1S2.all.score, Q_(1.982, ureg.delta_degC), places=2) def test_get_projected_value(self): company_ids = ["US00130H1059", "KR7005490008"] From 369bcb2c4fc8d1eae69cb080f696be7e038681ee Mon Sep 17 00:00:00 2001 From: David Kroon Date: Tue, 8 Mar 2022 11:27:59 +0100 Subject: [PATCH 184/345] Disable single unit test for template provider Signed-off-by: David Kroon Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- test/test_template_provider.py | 44 +++++++++++++--------------------- 1 file changed, 16 insertions(+), 28 deletions(-) diff --git a/test/test_template_provider.py b/test/test_template_provider.py index 52d51ec7..af0a1198 100644 --- a/test/test_template_provider.py +++ b/test/test_template_provider.py @@ -2,7 +2,6 @@ import unittest import pandas as pd -import numpy as np from numpy.testing import assert_array_equal import ITR @@ -91,32 +90,21 @@ def test_temp_score(self): amended_portfolio = temperature_score.calculate(data_warehouse=self.data_warehouse, data=portfolio_data, portfolio=portfolio) print(amended_portfolio[['company_name', 'time_frame', 'scope', 'temperature_score']]) - - def test_temp_score_from_excel_data(self): - comids = ['US00130H1059', 'US0185223007', - # 'US0138721065', 'US0158577090', - 'US0188021085', - 'US0236081024', 'US0255371017',] - other_comids = [ - # 'US0298991011', - 'US05351W1036', - # 'US05379B1070', - 'US0921131092', - # 'CA1125851040', - 'US1442851036', 'US1258961002', 'US2017231034', - 'US18551QAA58', 'US2091151041', 'US2333311072', 'US25746U1097', 'US26441C2044', - 'US29364G1031', 'US30034W1062', - 'US30040W1080', 'US30161N1019', 'US3379321074', - 'CA3495531079', 'US3737371050', 'US4198701009', 'US5526901096', 'US6703461052', - 'US6362744095', 'US6680743050', 'US6708371033', - # 'US6896481032', - 'US69331C1080', - 'US69349H1077', 'KR7005490008', # 'US69351T1060', 'US7234841010', 'US7365088472', - # 'US7445731067', 'US8581191009', 'US8168511090', 'US8425871071', 'CA87807B1076', - # 'US88031M1099', 'US8873991033', 'US9129091081', 'US92531L2079', 'US92840M1027', - # 'US92939U1060', 'US9818111026', 'US98389B1008' - ] - + + def _test_temp_score_from_excel_data(self): + """ + DISABLED + When running all tests in the /test directory, this test fails. When running all tests in + test_template_provider.py, it passes. Indicates a state is saved somewhere(?). TODO: fix test. + To enable test again, remove the leading '_' of the function name. + """ + excel_production_bm = ExcelProviderProductionBenchmark(excel_path=self.sector_data_path) + excel_EI_bm = ExcelProviderIntensityBenchmark(excel_path=self.sector_data_path, benchmark_temperature=Q_(1.5, ureg.delta_degC), + benchmark_global_budget=Q_(396, ureg('Gt CO2')), is_AFOLU_included=False) + template_company_data = TemplateProviderCompany(excel_path=self.company_data_path) + data_warehouse = DataWarehouse(template_company_data, excel_production_bm, excel_EI_bm) + comids = ['US00130H1059', 'US0185223007', 'US0188021085', 'US0236081024', 'US0255371017'] + # Calculate Temp Scores temp_score = TemperatureScore( time_frames=[ETimeFrames.LONG], @@ -133,7 +121,7 @@ def test_temp_score_from_excel_data(self): company_isin=company, )) # portfolio data - portfolio_data = ITR.utils.get_data(self.data_warehouse, portfolio) + portfolio_data = ITR.utils.get_data(data_warehouse, portfolio) scores = temp_score.calculate(portfolio_data) agg_scores = temp_score.aggregate_scores(scores) From 2d9eef219ea0feb810bcc1ec74caeb98257d7f61 Mon Sep 17 00:00:00 2001 From: MichaelTiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> Date: Wed, 9 Mar 2022 07:32:07 -0500 Subject: [PATCH 185/345] Update base_providers.py Implement prioritization logic: targets communicated later are prioritized over targets communicated earlier, and intensity targets are preferred over absolute targets to break ties. If there are two targets of the same kind, target year, and year set, a warning is given and one is picked arbitrarily. Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- ITR/data/base_providers.py | 183 +++++++++++++++++++++++-------------- 1 file changed, 115 insertions(+), 68 deletions(-) diff --git a/ITR/data/base_providers.py b/ITR/data/base_providers.py index 82347d7d..5a24eed7 100644 --- a/ITR/data/base_providers.py +++ b/ITR/data/base_providers.py @@ -611,6 +611,31 @@ class EITargetProjector(object): def __init__(self): pass + def _normalize_scope_targets(self, scope_targets): + if not scope_targets: + # Nothing to do + return scope_targets + # If there are multiple targets that land on the same year for the same scope, choose the most recently set target + unique_target_years = [(target.target_end_year, target.target_start_year) for target in scope_targets] + # This sorts targets into ascending target years and descending start years + unique_target_years.sort(key=lambda t: (t[0], -t[1])) + # Pick the first target year most recently articulated, preserving ascending order of target yeares + unique_target_years = [(uk,next(v for k,v in unique_target_years if k == uk)) for uk in dict(unique_target_years).keys()] + # Now use those pairs to select just the targets we want + unique_scope_targets = [unique_targets[0] for unique_targets in \ + [ [target for target in scope_targets if (target.target_end_year, target.target_start_year)==u] \ + for u in unique_target_years ]] + unique_scope_targets.sort(key=lambda target: (target.target_end_year)) + + # We only trust the most recently communicated netzero target, but prioritize the most recently communicated, most aggressive target + netzero_scope_targets = [target for target in unique_scope_targets if target.netzero_year] + netzero_scope_targets.sort(key=lambda t: (-t.target_start_year, t.netzero_year)) + if netzero_scope_targets: + netzero_year = netzero_scope_targets[0].netzero_year + for target in unique_scope_targets: + target.netzero_year = netzero_year + return unique_scope_targets + def project_ei_targets(self, targets: List[ITargetData], historic_data: IHistoricData, production_bm: pd.Series) -> ICompanyEIProjectionsScopes: """Input: @targets: a list of a company's targets @@ -625,8 +650,32 @@ def project_ei_targets(self, targets: List[ITargetData], historic_data: IHistori if not scope_targets: continue netzero_year = max([t.netzero_year for t in scope_targets if t.netzero_year] + [0]) - scope_targets.sort(key=lambda target: (target.target_scope, target.target_end_year)) - while scope_targets: + scope_targets_intensity = self._normalize_scope_targets([target for target in scope_targets if target.target_type=="intensity"]) + scope_targets_absolute = self._normalize_scope_targets([target for target in scope_targets if target.target_type=="absolute"]) + while scope_targets_intensity or scope_targets_absolute: + if scope_targets_intensity and scope_targets_absolute: + target_i = scope_targets_intensity[0] + target_a = scope_targets_absolute[0] + if target_i.target_end_year==target_a.target_end_year: + if target_i.target_start_year==target_a.target_start_year: + warnings.warn(f"intensity target overrides absolute target for target_start_year={target_i.target_start_year} and target_end_year={target_i.target_end_year}") + scope_targets_absolute.pop(0) + scope_targets = scope_targets_intensity + elif target_i.target_start_year > target_a.target_start_year: + scope_targets_absolute.pop(0) + scope_targets = scope_targets_intensity + else: + scope_targets_intensity.pop(0) + scope_targets = scope_targets_absolute + elif target_i.target_end_year < target_a.target_end_year: + scope_targets = scope_targets_intensity + else: + scope_targets = scope_targets_absolute + elif not scope_targets_intensity: + scope_targets = scope_targets_absolute + else: # not scope_targets_absolute + scope_targets = scope_targets_intensity + target = scope_targets.pop(0) base_year = target.target_base_year @@ -645,33 +694,21 @@ def project_ei_targets(self, targets: List[ITargetData], historic_data: IHistori if last_year_data is None or base_year > last_year_data.year: ei_projection_scopes[scope] = None - else: # Removed condition base year > first_year. Do we care as long as base_year_qty is known? - last_year, value_last_year = last_year_data.year, last_year_data.value - target_year = target.target_end_year - # Attribute target_reduction_pct of ITargetData is currently a fraction, not a percentage. - target_value = Q_(target.target_base_year_qty * (1 - target.target_reduction_pct), - target.target_base_year_unit) - CAGR = self._compute_CAGR(value_last_year, target_value, (target_year - last_year)) - ei_projections = [ICompanyEIProjection(year=year, value=value_last_year * (1 + CAGR) ** (y + 1)) - for y, year in enumerate(range(1 + last_year, 1 + target_year))] - if ei_projection_scopes[scope] is not None: - ei_projection_scopes[scope].projections.extend(ei_projections) - else: - ei_projection_scopes[scope] = ICompanyEIProjections(projections=ei_projections, - ei_metric=IntensityMetric.parse_obj({'units':target.target_base_year_unit})) - if not scope_targets and netzero_year > target_year: # add in netzero target at the end - CAGR = self._compute_CAGR(target_value, Q_(0, target.target_base_year_unit), (netzero_year - target_year)) - ei_projections = [ICompanyEIProjection(year=year, value=target_value * (1 + CAGR) ** (y + 1)) - for y, year in enumerate(range(1 + target_year, 1 + netzero_year))] - ei_projection_scopes[scope].projections.extend(ei_projections) - target_year = netzero_year - target_value = Q_(0, target.target_base_year_unit) - if not scope_targets and target_year < 2050: - # Assume everything stays flat until 2050 - ei_projection_scopes[scope].projections.extend( - [ICompanyEIProjection(year=year, value=target_value) - for y, year in enumerate(range(1 + target_year, 1 + 2050))] - ) + continue + # Removed condition base year > first_year. Do we care as long as base_year_qty is known? + last_year, value_last_year = last_year_data.year, last_year_data.value + target_year = target.target_end_year + # Attribute target_reduction_pct of ITargetData is currently a fraction, not a percentage. + target_value = Q_(target.target_base_year_qty * (1 - target.target_reduction_pct), + target.target_base_year_unit) + CAGR = self._compute_CAGR(value_last_year, target_value, (target_year - last_year)) + ei_projections = [ICompanyEIProjection(year=year, value=value_last_year * (1 + CAGR) ** (y + 1)) + for y, year in enumerate(range(1 + last_year, 1 + target_year))] + if ei_projection_scopes[scope] is not None: + ei_projection_scopes[scope].projections.extend(ei_projections) + else: + ei_projection_scopes[scope] = ICompanyEIProjections(projections=ei_projections, + ei_metric=IntensityMetric.parse_obj({'units':target.target_base_year_unit})) elif target.target_type == "absolute": # Complicated case, the target must be switched from absolute value to intensity. # We use the benchmark production data @@ -690,48 +727,58 @@ def project_ei_targets(self, targets: List[ITargetData], historic_data: IHistori if last_year_data is None or base_year > last_year_data.year: ei_projection_scopes[scope] = None - else: # Removed condition base year > first_year. Do we care as long as base_year_qty is known? - last_year, value_last_year = last_year_data.year, last_year_data.value - target_year = target.target_end_year - # Attribute target_reduction_pct of ITargetData is currently a fraction, not a percentage. - target_value = Q_(target.target_base_year_qty * (1 - target.target_reduction_pct), - target.target_base_year_unit) - CAGR = self._compute_CAGR(value_last_year, target_value, (target_year - last_year)) - - emissions_projections = [value_last_year * (1 + CAGR) ** (y + 1) - for y, year in enumerate(range(last_year + 1, target_year + 1))] - emissions_projections = pd.Series(emissions_projections, index=range(last_year + 1, target_year + 1), - dtype=f'pint[{target.target_base_year_unit}]') - production_projections = production_bm.loc[last_year + 1: target_year] - ei_projections = emissions_projections / production_projections - - ei_projections = [ICompanyEIProjection(year=year, value=ei_projections[year]) - for year in range(last_year + 1, target_year + 1)] - # From here out most useful to have target_value as EI - target_value = ei_projections[-1].value - if ei_projection_scopes[scope] is not None: - ei_projection_scopes[scope].projections.extend(ei_projections) - else: - ei_projection_scopes[scope] = ICompanyEIProjections(projections=ei_projections, - ei_metric=IntensityMetric.parse_obj({'units':f"{target_value.u:~P}"})) - if not scope_targets and netzero_year > target_year: # add in netzero target at the end - CAGR = self._compute_CAGR(target_value, Q_(0, target_value.u), (netzero_year - target_year)) - # Because zero intensity implies zero emissions, we can work with intensities from here out - ei_projections = [ICompanyEIProjection(year=year, value=target_value * (1 + CAGR) ** (y + 1)) - for y, year in enumerate(range(1 + target_year, 1 + netzero_year))] - ei_projection_scopes[scope].projections.extend(ei_projections) - target_year = netzero_year - target_value = Q_(0, target_value.u) - if not scope_targets and target_year < 2050: - # Assume everything stays flat until 2050 - ei_projection_scopes[scope].projections.extend( - [ICompanyEIProjection(year=year, value=target_value) - for y, year in enumerate(range(1 + target_year, 1 + 2050))] - ) - + continue + # Removed condition base year > first_year. Do we care as long as base_year_qty is known? + last_year, value_last_year = last_year_data.year, last_year_data.value + target_year = target.target_end_year + # Attribute target_reduction_pct of ITargetData is currently a fraction, not a percentage. + target_value = Q_(target.target_base_year_qty * (1 - target.target_reduction_pct), + target.target_base_year_unit) + CAGR = self._compute_CAGR(value_last_year, target_value, (target_year - last_year)) + + emissions_projections = [value_last_year * (1 + CAGR) ** (y + 1) + for y, year in enumerate(range(last_year + 1, target_year + 1))] + emissions_projections = pd.Series(emissions_projections, index=range(last_year + 1, target_year + 1), + dtype=f'pint[{target.target_base_year_unit}]') + production_projections = production_bm.loc[last_year + 1: target_year] + ei_projections = emissions_projections / production_projections + + ei_projections = [ICompanyEIProjection(year=year, value=ei_projections[year]) + for year in range(last_year + 1, target_year + 1)] + # TODO: this condition should not arise if prioritization logic above is correct + # From here out most useful to have target_value as EI + target_value = ei_projections[-1].value + if ei_projection_scopes[scope] is not None: + ei_projection_scopes[scope].projections.extend(ei_projections) + else: + ei_projection_scopes[scope] = ICompanyEIProjections(projections=ei_projections, + ei_metric=IntensityMetric.parse_obj({'units':f"{target_value.u:~P}"})) else: # No target (type) specified ei_projection_scopes[scope] = None + continue + + if scope_targets_intensity and scope_targets_intensity[0].netzero_year: + # Let a later target set the netzero year + continue + if scope_targets_absolute and scope_targets_absolute[0].netzero_year: + # Let a later target set the netzero year + continue + # TODO What if target is a 100% reduction. Does it work whether or not netzero_year is set? + if netzero_year > target_year: # add in netzero target at the end + netzero_qty = Q_(0, target_value.u) + CAGR = self._compute_CAGR(target_value, netzero_qty, (netzero_year - target_year)) + ei_projections = [ICompanyEIProjection(year=year, value=target_value * (1 + CAGR) ** (y + 1)) + for y, year in enumerate(range(1 + target_year, 1 + netzero_year))] + ei_projection_scopes[scope].projections.extend(ei_projections) + target_year = netzero_year + target_value = netzero_qty + if target_year < 2050: + # Assume everything stays flat until 2050 + ei_projection_scopes[scope].projections.extend( + [ICompanyEIProjection(year=year, value=target_value) + for y, year in enumerate(range(1 + target_year, 1 + 2050))] + ) return ICompanyEIProjectionsScopes(**ei_projection_scopes) From 25904d1200f1ca4455ae0f3cd32ecd644433cf66 Mon Sep 17 00:00:00 2001 From: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> Date: Wed, 9 Mar 2022 07:46:01 -0500 Subject: [PATCH 186/345] Update DataTemplateRequirements.rst Update documentation concerning multiple targets with the same target_start_year and target_end_year. Also update documentation concerning multiple netzero_year targets. Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- docs/DataTemplateRequirements.rst | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/DataTemplateRequirements.rst b/docs/DataTemplateRequirements.rst index 5c2812ee..e3d507a5 100644 --- a/docs/DataTemplateRequirements.rst +++ b/docs/DataTemplateRequirements.rst @@ -135,10 +135,10 @@ by 2030) and a long-term net-zero target (the tool does not presently distinguish between true zero-emissions and positive emissions with some kind of offset), a single row of data suffices: -- netzero_year is the year at which the netzero ambition should be realized +- netzero_year is the year at which the netzero ambition should be realized. If multiple netzero_year values are given for the same company, the tool chooses the most recently communicated (latest target_start_year). If there are multiple such, it chooses the earliest netzero attainment date (target_end_year). - target_type defines whether the short-term ambition is based on absolute emissions or intensity. Note that when it comes to a long-term netzero ambition, zero is zero, whether emissions or intensity. - target_scope defines the scope(s) of the target. While it is possible to define S1, S2, S1+S2, S3, S1+S2+S3, at present the most reliable choice is S1+S2 (because we don't have a complete theory yet for interpreting the benchmarks upon which the tools is based for other than S1+S2). -- target_start_year is the year the target was set. In the event that multiple targets aim for a reduction ambition at the same year, the latest start_year will be the one the tool uses and all other targets for that year will be dropped. +- target_start_year is the year the target was set. target_end_year is the year the target is to be attained. In the event that multiple targets aim for a reduction ambition to be attained at the target_end_year, the latest start_year will be the one the tool uses and all other targets for that year will be dropped. If there are both intensity and absolute targets with the same target_start_year, the tool will silently choose the intensity target over the absolute target. If there are multiple targets with that prioritization, the tool will warn that it is going to pick just one. - target_base_year and target_base_year_qty define the "when" and the "from how much" that the target_ambition_reduction applies to (and hopefully is achieved by the target_year). Because all computations require units, the target_base_year_unit is needed so that target quantities can be compared with other emissions, production, and intensity data. Some companies have set more than just one short-term target. In that From c2666449aa4d8d993bd5afe24c492daae5cfaf71 Mon Sep 17 00:00:00 2001 From: MichaelTiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> Date: Wed, 9 Mar 2022 10:05:34 -0500 Subject: [PATCH 187/345] Update interfaces.py MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Add Literal['CO2·Mt/MFe_ton']] Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- ITR/interfaces.py | 120 +++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 119 insertions(+), 1 deletion(-) diff --git a/ITR/interfaces.py b/ITR/interfaces.py index 494dd6ef..992a2d08 100644 --- a/ITR/interfaces.py +++ b/ITR/interfaces.py @@ -7,7 +7,125 @@ from ITR.data.osc_units import ureg, Q_ -class AggregationContribution(BaseModel): + +class PintModel(BaseModel): + class Config: + arbitrary_types_allowed = True + + +class PowerGenerationWh(BaseModel): + units: Union[Literal['MWh'], Literal['GWh'], Literal['TWh']] + + +class PowerGenerationJ(BaseModel): + units: Union[Literal['GJ'], Literal['gigajoule'], Literal['GP'], Literal['petajoule']] + +PowerGeneration = Annotated[Union[PowerGenerationWh, PowerGenerationJ], Field(discriminator='units')] + + +class ManufactureSteel(BaseModel): + units: Union[Literal['Fe_ton'], Literal['kiloFe_ton'], Literal['megaFe_ton']] + +Manufacturing = Annotated[Union[ManufactureSteel], Field(discriminator='units')] + +ProductionMetric = Annotated[Union[PowerGeneration, ManufactureSteel], Field(discriminator='units')] + + +class EmissionsCO2(BaseModel): + units: Union[Literal['t CO2'], Literal['kt CO2'], Literal['Mt CO2'], Literal['Gt CO2']] + +EmissionsMetric = Annotated[EmissionsCO2, Field(discriminator='units')] + + +class EmissionsIntensity(BaseModel): + units: Union[ + Literal['t CO2/kWh'], Literal['t CO2/MWh'], Literal['kt CO2/MWh'], Literal['t CO2/GWh'], Literal['Mt CO2/GWh'], Literal['t CO2/TWh'], Literal['Mt CO2/TWh'], + Literal['t CO2/MJ'], Literal['t CO2/GJ'], Literal['t CO2/PJ'], Literal['Mt CO2/PJ'], + Literal['t CO2/Fe_ton'], Literal['Mt CO2/MFe_ton'], Literal['Mt CO2/megaFe_ton'], + Literal['CO2·t/kWh'], Literal['CO2·t/MWh'], Literal['CO2·kt/MWh'], Literal['CO2·t/GWh'], Literal['CO2·Mt/GWh'], Literal['CO2·t/TWh'], Literal['CO2·Mt/TWh'], + Literal['CO2·t/MJ'], Literal['CO2·t/GJ'], Literal['CO2·t/PJ'], Literal['CO2·Mt/PJ'], + Literal['CO2·t/Fe_ton'], Literal['CO2·t/MFe_ton'], Literal['CO2·Mt/megaFe_ton']], Literal['CO2·Mt/MFe_ton']] + +IntensityMetric = Annotated[EmissionsIntensity, Field(discriminator='units')] + + +class DimensionlessNumber(BaseModel): + units: Literal['dimensionless'] + +OSC_Metric = Annotated[ + Union[ProductionMetric, EmissionsMetric, IntensityMetric, DimensionlessNumber], Field(discriminator='units')] + + +class SortableEnum(Enum): + def __str__(self): + return self.name + + def __ge__(self, other): + if self.__class__ is other.__class__: + order = list(self.__class__) + return order.index(self) >= order.index(other) + return NotImplemented + + def __gt__(self, other): + if self.__class__ is other.__class__: + order = list(self.__class__) + return order.index(self) > order.index(other) + return NotImplemented + + def __le__(self, other): + if self.__class__ is other.__class__: + order = list(self.__class__) + return order.index(self) <= order.index(other) + return NotImplemented + + def __lt__(self, other): + if self.__class__ is other.__class__: + order = list(self.__class__) + return order.index(self) < order.index(other) + return NotImplemented + + +class EScope(SortableEnum): + S1 = "S1" + S2 = "S2" + S3 = "S3" + S1S2 = "S1+S2" + S1S2S3 = "S1+S2+S3" + + @classmethod + def get_scopes(cls) -> List[str]: + """ + Get a list of all scopes. + :return: A list of EScope string values + """ + return ['S1', 'S2', 'S3', 'S1S2', 'S1S2S3'] + + @classmethod + def get_result_scopes(cls) -> List['EScope']: + """ + Get a list of scopes that should be calculated if the user leaves it open. + + :return: A list of EScope objects + """ + return [cls.S1S2, cls.S3, cls.S1S2S3] + + +class ETimeFrames(SortableEnum): + """ + TODO: add support for multiple timeframes. Long currently corresponds to 2050. + """ + SHORT = "short" + MID = "mid" + LONG = "long" + + +class ECarbonBudgetScenario(Enum): + P25 = "25 percentile" + P75 = "75 percentile" + MEAN = "Average" + + +class AggregationContribution(PintModel): company_name: str company_id: str temperature_score: Quantity['delta_degC'] From 0d2781d910ae600d1caa7cda32e662e531efc61f Mon Sep 17 00:00:00 2001 From: MichaelTiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> Date: Wed, 9 Mar 2022 10:08:42 -0500 Subject: [PATCH 188/345] Update interfaces.py Ugh. Fix syntax error. Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- ITR/interfaces.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ITR/interfaces.py b/ITR/interfaces.py index 992a2d08..d2f8d786 100644 --- a/ITR/interfaces.py +++ b/ITR/interfaces.py @@ -44,7 +44,7 @@ class EmissionsIntensity(BaseModel): Literal['t CO2/Fe_ton'], Literal['Mt CO2/MFe_ton'], Literal['Mt CO2/megaFe_ton'], Literal['CO2·t/kWh'], Literal['CO2·t/MWh'], Literal['CO2·kt/MWh'], Literal['CO2·t/GWh'], Literal['CO2·Mt/GWh'], Literal['CO2·t/TWh'], Literal['CO2·Mt/TWh'], Literal['CO2·t/MJ'], Literal['CO2·t/GJ'], Literal['CO2·t/PJ'], Literal['CO2·Mt/PJ'], - Literal['CO2·t/Fe_ton'], Literal['CO2·t/MFe_ton'], Literal['CO2·Mt/megaFe_ton']], Literal['CO2·Mt/MFe_ton']] + Literal['CO2·t/Fe_ton'], Literal['CO2·t/MFe_ton'], Literal['CO2·Mt/megaFe_ton'], Literal['CO2·Mt/MFe_ton']] IntensityMetric = Annotated[EmissionsIntensity, Field(discriminator='units')] From 482c40f9e5883fa9eb3b3842b595931cfe657066 Mon Sep 17 00:00:00 2001 From: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> Date: Wed, 9 Mar 2022 10:32:09 -0500 Subject: [PATCH 189/345] Update DataTemplateRequirements.rst Clarified where user should be and where they should go to as they clone and configure the ITR environment. Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- docs/DataTemplateRequirements.rst | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/DataTemplateRequirements.rst b/docs/DataTemplateRequirements.rst index e3d507a5..ec471d4a 100644 --- a/docs/DataTemplateRequirements.rst +++ b/docs/DataTemplateRequirements.rst @@ -178,13 +178,13 @@ If you don't already have a conda environment, you'll need to download one from **Installing the ITR environment and running the Notebook** -With your conda shell and environment running: +With your conda shell and environment running, and starting from the directory in which you want to do the testing: 0. Run `conda list` to see that you have a functioning (base) environment. 1. Set GITHUB_TOKEN to your GitHub access token (windows `$Env:GITHUB_TOKEN = "your_github_token"`) (OSX/Linux: `export GITHUB_TOKEN=your_github_token`) 2. Clone the ITR repository: `git clone https://github.com/os-climate/ITR.git` (if you don't have git you can `pip install git`) 3. Switch to the correct branch: `git checkout develop-pint-steel-projections` -4. In the top-level ITR directory, create the `conda` itr_env: `conda env create -f environment.yml` +4. Change your directory to the top-level ITR directory (cd ITR) and create the `conda` itr_env: `conda env create -f environment.yml` 5. Activate that environment: `conda activate itr_env` 6. Install the ITR libraries to your local environment: `pip install -e .` (you may need `--no-cache-dir` on windows to avoid permissions errors) 7. Change to the `examples` directory From 3b4524bea2eacee663f7116ce7328c2838206c6f Mon Sep 17 00:00:00 2001 From: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> Date: Wed, 9 Mar 2022 16:11:42 -0500 Subject: [PATCH 190/345] Update DataTemplateRequirements.rst Change directory before switching branch. Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- docs/DataTemplateRequirements.rst | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/docs/DataTemplateRequirements.rst b/docs/DataTemplateRequirements.rst index ec471d4a..f413d440 100644 --- a/docs/DataTemplateRequirements.rst +++ b/docs/DataTemplateRequirements.rst @@ -183,13 +183,14 @@ With your conda shell and environment running, and starting from the directory i 0. Run `conda list` to see that you have a functioning (base) environment. 1. Set GITHUB_TOKEN to your GitHub access token (windows `$Env:GITHUB_TOKEN = "your_github_token"`) (OSX/Linux: `export GITHUB_TOKEN=your_github_token`) 2. Clone the ITR repository: `git clone https://github.com/os-climate/ITR.git` (if you don't have git you can `pip install git`) -3. Switch to the correct branch: `git checkout develop-pint-steel-projections` -4. Change your directory to the top-level ITR directory (cd ITR) and create the `conda` itr_env: `conda env create -f environment.yml` -5. Activate that environment: `conda activate itr_env` -6. Install the ITR libraries to your local environment: `pip install -e .` (you may need `--no-cache-dir` on windows to avoid permissions errors) -7. Change to the `examples` directory -8. Start your notebook: `jupyter-lab` -9. Open the file `quick_template_score_calc.ipynb` -10. Run the notebook with a fresh kernel by pressing the `>>` button. Accept the option to Restart Kernel and clear all previous variables. +3. Change your directory to the top-level ITR directory: `cd ITR` +4. Switch to the correct branch: `git checkout develop-pint-steel-projections` +5. create the `conda` itr_env: `conda env create -f environment.yml` +6. Activate that environment: `conda activate itr_env` +7. Install the ITR libraries to your local environment: `pip install -e .` (you may need `--no-cache-dir` on windows to avoid permissions errors) +8. Change to the `examples` directory +9. Start your notebook: `jupyter-lab` +10. Open the file `quick_template_score_calc.ipynb` +11. Run the notebook with a fresh kernel by pressing the `>>` button. Accept the option to Restart Kernel and clear all previous variables. The brackets listed near the top left corner of each executable cell will change from `[ ]` (before running the notebook) to `[*]` while the cell's computation is pending, to a number (such as `[5]` for the 5th cell) when computation is complete. If everything is working, you will see text output, graphical output, and a newly created `data_dump.xlsx` file representing the input porfolio, enhanced with temperature score data. From c942f56072bfa249ea9548930f8af853c48a3301 Mon Sep 17 00:00:00 2001 From: Heather Ackenhusen <90428947+HeatherAck@users.noreply.github.com> Date: Wed, 9 Mar 2022 16:32:56 -0800 Subject: [PATCH 191/345] updated documentation added steps to load own data as well as steps to run notebook (post installation) Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- docs/DataTemplateRequirements.rst | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/docs/DataTemplateRequirements.rst b/docs/DataTemplateRequirements.rst index f413d440..2a0c3f66 100644 --- a/docs/DataTemplateRequirements.rst +++ b/docs/DataTemplateRequirements.rst @@ -181,7 +181,7 @@ If you don't already have a conda environment, you'll need to download one from With your conda shell and environment running, and starting from the directory in which you want to do the testing: 0. Run `conda list` to see that you have a functioning (base) environment. -1. Set GITHUB_TOKEN to your GitHub access token (windows `$Env:GITHUB_TOKEN = "your_github_token"`) (OSX/Linux: `export GITHUB_TOKEN=your_github_token`) +1. Set GITHUB_TOKEN to your GitHub access token (windows`$Env:GITHUB_TOKEN = "your_github_token"`) (OSX/Linux: `export GITHUB_TOKEN=your_github_token`) 2. Clone the ITR repository: `git clone https://github.com/os-climate/ITR.git` (if you don't have git you can `pip install git`) 3. Change your directory to the top-level ITR directory: `cd ITR` 4. Switch to the correct branch: `git checkout develop-pint-steel-projections` @@ -194,3 +194,22 @@ With your conda shell and environment running, and starting from the directory i 11. Run the notebook with a fresh kernel by pressing the `>>` button. Accept the option to Restart Kernel and clear all previous variables. The brackets listed near the top left corner of each executable cell will change from `[ ]` (before running the notebook) to `[*]` while the cell's computation is pending, to a number (such as `[5]` for the 5th cell) when computation is complete. If everything is working, you will see text output, graphical output, and a newly created `data_dump.xlsx` file representing the input porfolio, enhanced with temperature score data. + +**Loading your own data** +1. Place your portfolio data file under the subdirectory named 'data' (found under the 'examples' directory). +2. Start your notebook: `jupyter-lab` +3. Open the file `quick_template_score_calc.ipynb` +4. Scroll down to the section 'Download/load the sample template data' +5. Change the filename to your filename in the line: for filename in ['data/', +6. Change the filename to your filename in line: template_data_path = "data/" +7. Run the notebook with a fresh kernel by pressing the `>>` button. Accept the option to Restart Kernel and clear all previous variables. + +**Running the ITR Notebook Post Install** +1. Open GitHub Desktop +2. Open the Anaconda PowerShell +3. Set GITHUB_TOKEN to your GitHub access token (windows `$Env:GITHUB_TOKEN = "your_github_token"`) (OSX/Linux: `export GITHUB_TOKEN=your_github_token`) +4. Activate the ITR environment by typing the following command: `conda activate itr_env` +5. Navigate to the 'examples' subdirectory under your GitHub ITR directory +6. Start your notebook: `jupyter-lab` +7. Open the file `quick_template_score_calc.ipynb` +8. Run the notebook with a fresh kernel by pressing the `>>` button. Accept the option to Restart Kernel and clear all previous variables. From a6542e1e71dbd04f59b855e464bfc6795573cec9 Mon Sep 17 00:00:00 2001 From: Heather Ackenhusen <90428947+HeatherAck@users.noreply.github.com> Date: Wed, 9 Mar 2022 16:38:24 -0800 Subject: [PATCH 192/345] fixed formatting Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- docs/DataTemplateRequirements.rst | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/DataTemplateRequirements.rst b/docs/DataTemplateRequirements.rst index 2a0c3f66..813511c0 100644 --- a/docs/DataTemplateRequirements.rst +++ b/docs/DataTemplateRequirements.rst @@ -196,6 +196,7 @@ With your conda shell and environment running, and starting from the directory i The brackets listed near the top left corner of each executable cell will change from `[ ]` (before running the notebook) to `[*]` while the cell's computation is pending, to a number (such as `[5]` for the 5th cell) when computation is complete. If everything is working, you will see text output, graphical output, and a newly created `data_dump.xlsx` file representing the input porfolio, enhanced with temperature score data. **Loading your own data** + 1. Place your portfolio data file under the subdirectory named 'data' (found under the 'examples' directory). 2. Start your notebook: `jupyter-lab` 3. Open the file `quick_template_score_calc.ipynb` @@ -205,6 +206,7 @@ The brackets listed near the top left corner of each executable cell will change 7. Run the notebook with a fresh kernel by pressing the `>>` button. Accept the option to Restart Kernel and clear all previous variables. **Running the ITR Notebook Post Install** + 1. Open GitHub Desktop 2. Open the Anaconda PowerShell 3. Set GITHUB_TOKEN to your GitHub access token (windows `$Env:GITHUB_TOKEN = "your_github_token"`) (OSX/Linux: `export GITHUB_TOKEN=your_github_token`) From 2484dca426ec589b1432888abcb13be352d4c845 Mon Sep 17 00:00:00 2001 From: Heather Ackenhusen <90428947+HeatherAck@users.noreply.github.com> Date: Wed, 9 Mar 2022 16:41:48 -0800 Subject: [PATCH 193/345] updated wording in loading your own data section Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- docs/DataTemplateRequirements.rst | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/DataTemplateRequirements.rst b/docs/DataTemplateRequirements.rst index 813511c0..2481a91a 100644 --- a/docs/DataTemplateRequirements.rst +++ b/docs/DataTemplateRequirements.rst @@ -201,8 +201,8 @@ The brackets listed near the top left corner of each executable cell will change 2. Start your notebook: `jupyter-lab` 3. Open the file `quick_template_score_calc.ipynb` 4. Scroll down to the section 'Download/load the sample template data' -5. Change the filename to your filename in the line: for filename in ['data/', -6. Change the filename to your filename in line: template_data_path = "data/" +5. Change the filename of the .xlsx in the line: for filename in ['data/', +6. Change the filename of the .xlsx in the line: template_data_path = "data/" 7. Run the notebook with a fresh kernel by pressing the `>>` button. Accept the option to Restart Kernel and clear all previous variables. **Running the ITR Notebook Post Install** From aa9d67c64ea2dbd3907290fbdd0065619fa21460 Mon Sep 17 00:00:00 2001 From: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> Date: Wed, 9 Mar 2022 20:19:08 -0500 Subject: [PATCH 194/345] Update DataTemplateRequirements.rst More documentation updates with details about OSX installation and more details about git installation. Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- docs/DataTemplateRequirements.rst | 26 +++++++++++++++++++------- 1 file changed, 19 insertions(+), 7 deletions(-) diff --git a/docs/DataTemplateRequirements.rst b/docs/DataTemplateRequirements.rst index 2481a91a..0dc3412a 100644 --- a/docs/DataTemplateRequirements.rst +++ b/docs/DataTemplateRequirements.rst @@ -174,23 +174,35 @@ The first step is to request an invitation to join the OS-Climate GitHub team. **Getting Started with conda** -If you don't already have a conda environment, you'll need to download one from `` (Python 3.9 preferred). If you are installing conda on a Windows system you will want to open the Anaconda PowerShell after installation. If you are on OSX or Linux system, all shells are equally powerful, but you will need to run `conda init $SHELL`. +If you don't already have a conda environment, you'll need to download one from `` (Python 3.9 preferred). + +If you are installing conda on a Windows system, follow these instructions: https://conda.io/projects/conda/en/latest/user-guide/install/windows.html +You will want to open the Anaconda PowerShell after installation, which you can do from the Start menu. + +If you are on OSX, you will need to install parts of the (utterly massive) Xcode system. The subset you'll need can be installed by typing `xcode-select --install` into a Terminal window (which you can open from Applications>Utilities>Terminal). Thought it is tempting to install the `.pkg ` version of miniconda, there's nothing user-friendly about how OSX tries to manage its own concepts of system security. It is easier to start from the `bash` version and follow those instructions. For other installation instructions, please read https://conda.io/projects/conda/en/latest/user-guide/install/macos.html + +For Linux: https://conda.io/projects/conda/en/latest/user-guide/install/linux.html. And note that you don't have to use the fish shell. You can use bash, csh, sh, zsh, or whatever is your favorite shell. + +You will know you have succeeded in the installation and initialization of conda when you can type `conda info -e` and see an environent listed as base. If your shell cannot find a conda to run, it likely means you have not yet run `conda init --all` + +**Getting Started with Git** + +You will use `git` to access the ITR source code. You can install git from conda thusly: `conda install -c conda-forge git`. But you can also get it other ways: https://github.com/git-guides/install-git **Installing the ITR environment and running the Notebook** -With your conda shell and environment running, and starting from the directory in which you want to do the testing: +With your conda shell and environment running, with git installed, and starting from the directory in which you want to do the testing: -0. Run `conda list` to see that you have a functioning (base) environment. -1. Set GITHUB_TOKEN to your GitHub access token (windows`$Env:GITHUB_TOKEN = "your_github_token"`) (OSX/Linux: `export GITHUB_TOKEN=your_github_token`) -2. Clone the ITR repository: `git clone https://github.com/os-climate/ITR.git` (if you don't have git you can `pip install git`) +1. Set GITHUB_TOKEN to your GitHub access token (windows `$Env:GITHUB_TOKEN = "your_github_token"`) (OSX/Linux: `export GITHUB_TOKEN=your_github_token`) +2. Clone the ITR repository: `git clone https://github.com/os-climate/ITR.git` 3. Change your directory to the top-level ITR directory: `cd ITR` 4. Switch to the correct branch: `git checkout develop-pint-steel-projections` 5. create the `conda` itr_env: `conda env create -f environment.yml` 6. Activate that environment: `conda activate itr_env` 7. Install the ITR libraries to your local environment: `pip install -e .` (you may need `--no-cache-dir` on windows to avoid permissions errors) 8. Change to the `examples` directory -9. Start your notebook: `jupyter-lab` -10. Open the file `quick_template_score_calc.ipynb` +9. Start your notebook: `jupyter-lab`. This should cause your default browser to pop to the front and open a page with a Jupyter Notebook. +10. Make the file browser to the left of the notebook wide enough to expose the full names of the files in the `examples` directory. You should see a file named `quick_template_score_calc.ipynb`. Double click on that file to open it. 11. Run the notebook with a fresh kernel by pressing the `>>` button. Accept the option to Restart Kernel and clear all previous variables. The brackets listed near the top left corner of each executable cell will change from `[ ]` (before running the notebook) to `[*]` while the cell's computation is pending, to a number (such as `[5]` for the 5th cell) when computation is complete. If everything is working, you will see text output, graphical output, and a newly created `data_dump.xlsx` file representing the input porfolio, enhanced with temperature score data. From b149e02af335c8b7db3834e14185eead3fca6946 Mon Sep 17 00:00:00 2001 From: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> Date: Thu, 10 Mar 2022 05:44:54 -0500 Subject: [PATCH 195/345] Update DataTemplateRequirements.rst Added info about filing issues and updating using git. Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- docs/DataTemplateRequirements.rst | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/docs/DataTemplateRequirements.rst b/docs/DataTemplateRequirements.rst index 0dc3412a..08e53a70 100644 --- a/docs/DataTemplateRequirements.rst +++ b/docs/DataTemplateRequirements.rst @@ -227,3 +227,28 @@ The brackets listed near the top left corner of each executable cell will change 6. Start your notebook: `jupyter-lab` 7. Open the file `quick_template_score_calc.ipynb` 8. Run the notebook with a fresh kernel by pressing the `>>` button. Accept the option to Restart Kernel and clear all previous variables. + +Filing Issues and Updating the ITR Repository +--------------------------------------------- + +Once you are able to run the `quick_template_score_calc.ipynb` sample notebook with the provided sample data (`examples/data/20220306 ITR Tool Sample Data.xlsx`), you are ready to start trying things with your own data. The notebook explains how to do this at the heading labeled `Download/load the sample template data` before Cell 6. As you try loading your own data, you will inevitably find errors--sometimes with the data you receive, sometimes with the data you present to the tool, sometimes with the way the tool loads or does not load your data, sometimes with the way the tool interprets or presents your data. It is the goal of the Data Commons to streamline and simplify access to data so as to reduce the first to cases of errors, and it is the goal of the ITR project team to continuously improve the ITR tool to reduce the other cases of errors. In all cases, the correction of errors begins with an error reporting process and ends with an effective update process. + +To report errors, please use the GitHub Issues interface for the ITR tool: https://github.com/os-climate/ITR/issues + +Immediately you will see all open issues filed against the tool, and you may find that a problem you are having has already been reported. You can search for keywords, and usually in the process of solving issues, commentary on a specific issue may provide insights into work-arounds. If you do not see an existing issue (you don't need to search exhaustively; just enough to save yourself time writing up an issue that's already been filed), then by all means open an issue describing the problem, ideally with a reproducible test case (such as an excel file containing the minimum amount of anonymozed data required to reproduce the problem). The team can then assign the problem and you will see progress as the issue is worked. + +The collective actions of many people reporting issues and many people working collaboratively to resolve issues is one of the great advantages of open source software development, and a great opportunity to see its magic at work. + +At some point you will receive notice that your issue has been addressed with a new release. There are two ways you can update to the new release. The first (and least efficient) way is to run the installation process from top to bottom, using a new directory for the installation. For most of us, this takes about 10 minutes, but it can take longer for various reasons. The second way takes less than a minute: + +1. Close your jupyter-lab browser tab and shut down the jupyter-lab server (typing Ctrl-C or some such in the shell) +2. Change your directory to the top of your ITR tree: cd ~/os-climate/ITR (or some such) +3. Pull changes from upstream: git pull +4. If git complains that you have modified some files (such as your notebook, which is "modified" every time you run it), you can + 1. remove the notebook file: rm examples/data/20220306\ ITR\ Tool\ Sample\ Data.xlsx + 2. restore it from the updated repository: git restore examples/data/20220306\ ITR\ Tool\ Sample\ Data.xlsx +5. Restart your jupyter-lab server + +Over time you may do other things to your local repository that makes it difficult to sync with git. You can file an issue for help, you can do your own research (many of us find answers on github community forums or StackOverflow), or you can go with Option #1: run the installation process from top to bottom in a new directory. + +At the same time, with your feedback we will also be working on making the tool and the environment easier to download, install, and manage. From 1ec333260e518797ff44113cb4f9f1077f9d7026 Mon Sep 17 00:00:00 2001 From: MichaelTiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> Date: Tue, 15 Mar 2022 11:28:18 -0400 Subject: [PATCH 196/345] Update interfaces.py Rewrite metrics validation to use @validator instead of trying to exhaustively list every possible emissions unit, production unit, and intensity unit. Closes https://github.com/os-climate/ITR/issues/43 Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- ITR/interfaces.py | 125 +++++++++++++++++++++++++++++++++------------- 1 file changed, 89 insertions(+), 36 deletions(-) diff --git a/ITR/interfaces.py b/ITR/interfaces.py index d2f8d786..8e44cc60 100644 --- a/ITR/interfaces.py +++ b/ITR/interfaces.py @@ -2,7 +2,7 @@ from enum import Enum from typing import Optional, Dict, List, Literal, Union from typing_extensions import Annotated -from pydantic import BaseModel, Field, parse_obj_as +from pydantic import BaseModel, Field, parse_obj_as, validator from pint import Quantity from ITR.data.osc_units import ureg, Q_ @@ -13,47 +13,100 @@ class Config: arbitrary_types_allowed = True -class PowerGenerationWh(BaseModel): - units: Union[Literal['MWh'], Literal['GWh'], Literal['TWh']] - - -class PowerGenerationJ(BaseModel): - units: Union[Literal['GJ'], Literal['gigajoule'], Literal['GP'], Literal['petajoule']] - -PowerGeneration = Annotated[Union[PowerGenerationWh, PowerGenerationJ], Field(discriminator='units')] - +class PowerGeneration(BaseModel): + units: str + @validator('units') + def unit_must_be_energy(cls, v): + qty = Q_(1, v) + if qty.is_compatible_with("Wh"): + return v + raise ValueError(f"cannot convert {v} to Wh") class ManufactureSteel(BaseModel): - units: Union[Literal['Fe_ton'], Literal['kiloFe_ton'], Literal['megaFe_ton']] - -Manufacturing = Annotated[Union[ManufactureSteel], Field(discriminator='units')] - -ProductionMetric = Annotated[Union[PowerGeneration, ManufactureSteel], Field(discriminator='units')] - - -class EmissionsCO2(BaseModel): - units: Union[Literal['t CO2'], Literal['kt CO2'], Literal['Mt CO2'], Literal['Gt CO2']] - -EmissionsMetric = Annotated[EmissionsCO2, Field(discriminator='units')] - - -class EmissionsIntensity(BaseModel): - units: Union[ - Literal['t CO2/kWh'], Literal['t CO2/MWh'], Literal['kt CO2/MWh'], Literal['t CO2/GWh'], Literal['Mt CO2/GWh'], Literal['t CO2/TWh'], Literal['Mt CO2/TWh'], - Literal['t CO2/MJ'], Literal['t CO2/GJ'], Literal['t CO2/PJ'], Literal['Mt CO2/PJ'], - Literal['t CO2/Fe_ton'], Literal['Mt CO2/MFe_ton'], Literal['Mt CO2/megaFe_ton'], - Literal['CO2·t/kWh'], Literal['CO2·t/MWh'], Literal['CO2·kt/MWh'], Literal['CO2·t/GWh'], Literal['CO2·Mt/GWh'], Literal['CO2·t/TWh'], Literal['CO2·Mt/TWh'], - Literal['CO2·t/MJ'], Literal['CO2·t/GJ'], Literal['CO2·t/PJ'], Literal['CO2·Mt/PJ'], - Literal['CO2·t/Fe_ton'], Literal['CO2·t/MFe_ton'], Literal['CO2·Mt/megaFe_ton'], Literal['CO2·Mt/MFe_ton']] - -IntensityMetric = Annotated[EmissionsIntensity, Field(discriminator='units')] + units: str + @validator('units') + def units_must_be_Fe_ton(cls, v): + qty = Q_(1, v) + if qty.is_compatible_with("Fe_Ton"): + return v + raise ValueError(f"cannot convert {v} to Fe_ton") + +class ProductionMetric(BaseModel): + units: str + @validator('units') + def unit_must_be_production(cls, v): + qty = Q_(1, v) + if qty.is_compatible_with("Wh"): + return v + if qty.is_compatible_with("Fe_ton"): + return v + raise ValueError(f"cannot convert {v} to units of production") + + +# Right now we have only one kind of Emissions: Co2 +class EmissionsMetric(BaseModel): + units: str + @validator('units') + def units_must_be_tCO2(cls, v): + qty = Q_(1, v) + if qty.is_compatible_with("t CO2"): + return v + raise ValueError(f"cannot convert {v} to t CO2") + + +class EmissionsIntensity_PowerGeneration(BaseModel): + units: str + @validator('units') + def units_must_be_EI(cls, v): + qty = Q_(1, v) + if qty.is_compatible_with("t CO2/MWh"): + return v + raise ValueError(f"cannot convert {v} to t CO2/energy") + +class EmissionsIntensity_ManufactureSteel(BaseModel): + units: str + @validator('units') + def units_must_be_EI(cls, v): + qty = Q_(1, v) + if qty.is_compatible_with("t CO2/Fe_ton"): + return v + raise ValueError(f"cannot convert {v} to t CO2/Fe_ton") + +class IntensityMetric(BaseModel): + units: str + @validator('units') + def units_must_be_EI(cls, v): + qty = Q_(1, v) + if qty.is_compatible_with("t CO2/MWh"): + return v + if qty.is_compatible_with("t CO2/Fe_ton"): + return v + raise ValueError(f"cannot convert {v} to t CO2/Fe_ton") class DimensionlessNumber(BaseModel): units: Literal['dimensionless'] -OSC_Metric = Annotated[ - Union[ProductionMetric, EmissionsMetric, IntensityMetric, DimensionlessNumber], Field(discriminator='units')] + +class OSC_Metric(BaseModel): + units: str + @validator('units') + def units_must_be_OSC(cls, v): + if v == 'dimensionless': + return v + try: + if ProductionMetric.unit_must_be_production(v): + return v + except ValueError: + try: + if EmissionsMetric.units_must_be_tCO2(v): + return v + except ValueError: + try: + if IntensityMetric.units_must_be_EI(v): + return v + except ValueError: + raise ValueError(f"cannot understand {v} as OSC_Metric") class SortableEnum(Enum): @@ -321,7 +374,7 @@ class IHistoricEmissionsScopes(PintModel): class IEIRealization(PintModel): year: int - value: Optional[Quantity[EmissionsIntensity]] + value: Optional[Quantity[IntensityMetric]] class IHistoricEIScopes(PintModel): From 686861696e87165193bd665a8436c37864595f48 Mon Sep 17 00:00:00 2001 From: MichaelTiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> Date: Tue, 15 Mar 2022 11:34:15 -0400 Subject: [PATCH 197/345] Update test_interfaces.py Fix test case to use new interfaces.py Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- test/test_interfaces.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/test/test_interfaces.py b/test/test_interfaces.py index fe7e5527..a6a02ac2 100644 --- a/test/test_interfaces.py +++ b/test/test_interfaces.py @@ -5,7 +5,7 @@ from ITR.data.osc_units import ureg, Q_, PA_ -from ITR.interfaces import EScope, PowerGenerationWh, IntensityMetric, IProjection, IBenchmark, ICompanyData, ICompanyEIProjectionsScopes, ICompanyEIProjections +from ITR.interfaces import EScope, PowerGeneration, IntensityMetric, IProjection, IBenchmark, ICompanyData, ICompanyEIProjectionsScopes, ICompanyEIProjections class TestInterfaces(unittest.TestCase): @@ -21,9 +21,9 @@ def setUp(self) -> None: def test_Escope(self): self.assertEqual(EScope.get_result_scopes(), [EScope.S1S2, EScope.S3, EScope.S1S2S3]) - def test_PowerGenerationWh(self): - x = PowerGenerationWh(units='MWh') - print(f"\n PowerGenerationWh: x.units = {x.units}\n\n") + def test_PowerGeneration(self): + x = PowerGeneration(units='MWh') + print(f"\n PowerGeneration: x.units = {x.units}\n\n") def test_IProjection(self): row = pd.Series([0.9, 0.8, 0.7], From 6cec96bc63d404b3679ef51a5efd38ce95651792 Mon Sep 17 00:00:00 2001 From: MichaelTiemannOSC Date: Sun, 17 Apr 2022 22:09:32 +0000 Subject: [PATCH 198/345] Update sample input with more/better S1, S2, and S3 data Prepare for handling actual scope data rather than just presuming everything is S1+S2. These changes don't implement that yet, but the sample data is now updated with better RMI and Steel data to do just that. Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- ITR/interfaces.py | 6 +- .../data/20220415 ITR Tool Sample Data.xlsx | Bin 0 -> 69751 bytes examples/quick_template_score_calc.ipynb | 616 ++++++++++-------- 3 files changed, 354 insertions(+), 268 deletions(-) create mode 100644 examples/data/20220415 ITR Tool Sample Data.xlsx diff --git a/ITR/interfaces.py b/ITR/interfaces.py index 8e44cc60..be7fadc1 100644 --- a/ITR/interfaces.py +++ b/ITR/interfaces.py @@ -447,8 +447,10 @@ class ICompanyData(PintModel): def _fixup_year_value_list(self, ListType, u_list, metric, inferred_metric): # u_list is unprocessed; i_list is processed; r_list is returned list i_list = [ul.dict() if isinstance(ul, BaseModel) - else {'year':ul['year']} | {'value':Q_(ul['value']) - if ul['value'] is not None else Q_(np.nan, metric)} + # In Python 3.9, dictionary union of x, y is x | y + # In Python 3.8, it's {**x, **y} + else {**{'year':ul['year']}, **{'value':Q_(ul['value']) + if ul['value'] is not None else Q_(np.nan, metric)}} for ul in u_list] if not i_list: return [] diff --git a/examples/data/20220415 ITR Tool Sample Data.xlsx b/examples/data/20220415 ITR Tool Sample Data.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..68be034c18eba61bc3b3d007bb4776846e79171a GIT binary patch literal 69751 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

    fneId#8GZs9jIP?DD!TC1D?dbie7!dh#FnR2wnP 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 z zY3hUWdCa`y_1=)E%8jr7yjX* z`K-6{6lX!tU>C;N8eF&>@F+*O@JqQK7LRYesbUH z2PV@3aP9Rdr4^3q-S@QiStoDF{ISA`z&?FMLv zpp0JYTe(Kk9eU2_gMZL=ab@e@Mj;A?q|I3uz%fYwIn*eEgPKo?|vrBJ8WhYB8IYh07 zLq%-PEKIfWS;vRDCtt1eK8lRE1yHYlrv(q*fd6U1gZzK~0ce3y3q3#!oRbeUY}Dh< z>BW3U#IaUcgkb8hg+(Q_dz8cs7u+&3(IGg*_!sDyy`8^|!7(}eL9ocfL8qq91F|k$ zot}LIZPU^=*Y`76bcgk}t21)5D3^_LIQEs7A;$S4IIL!DhXT=qMjD{YC=IV579$*= zS2K-tR$jnk>&Beq$|OI5)2Z43Z0nR3cH1D?vWSP@MFX6Aioebps(PD@A{F`$8vvN~)+bU*_N~SS3Eb^66 z_gAV`l5Qp=oRHq;tNlpfw)0XFCWGPZzZK>coAKFRbs6uL`3RNKO%a|l2W>-iAtfiWk~93_t+su#{ zioj=4hu-I{j&Vq1KE9-!FQKIZLQx!0+GjvcZ@FS4oKESA-cb)1qQe!ipyul4}Ut;Omh>)Yp zQcwRpPxsp4h>Pp@igWGvQ#U+lmGz1(ar-`LjZi$s`$F3PRe)SbFbDKf zdHhU{6*vL0g4F%cj&RG8#W)5GUpG_+r)a6J6*Q()_QJiD>7ekXdwNlhlDXD2Fh2Jab))T8x6gGQ6mW;7@#D3b_N! z#b2XFU=SK0R3Hc-KnOk%5l|uZo)$h}!9^SH$AZh_Lq)(G;4Lw;QGe@bp=+)BWBEl| z{7(QBwR&9;fRZf$Kz=;r*P#gTy8Ik`JajXU3krqZSlay1P5>d;ze)kF`~ZtT09Vb= zvi9ay##-j)#y_6@B#zA5x|lOy=G_Ot0W^c(4sPfNoZk^169I|8)L951n~?uUV8!pp zI)EVnB7PLMHqg}t?CE>>c=;3$kTF}@FaZxcVSkL$gY_f|^HV4_m{j=J0EUzSD)T2T zSR_xPusns*gn?N92Ef2}!p8y?eer-|W1wrQ3)r9t`1|0Qc+8S0)a3m^0DvffB>*1$ zc68D_09e~Nn&?_T^=xpVi_TDh_ahCkM1lHSK_H+O=AT6kG_7=XizGSg`r+Xn6Z4S$3u-fvd|y#RD*w$fS2;W0eoQFlM*N@jclt1@Qn{JRQXe_ zlixiCd=Tc766o*??9c*qC~c&V85XMguNcPo6vNOg>62RkJT~?Renbwn)|2Esu<9|F z9>2r#mjFpCo!-*>-0hIqW&^B2VQ z-~+@Tdp{qS{&R=dud+ZuBx3+e^Y{H;j{*LShW;IZ9S|S)C%~`R=*K93hRyztqOkZF zT$zB5j z`dj?lV`lytk@S0Ukx4C`(!`&cpc#v>h;+l6@9YwV^8O=(oq1v z;s0IH2fydziavHN{sMKn{!c(39F31b|MXY=f&{!);r4f>e#(3G80$~3$M0Alzdw!j zug%||Q|I5YyaB\n", " \n", " \n", - " 39\n", - " TENARIS SA\n", - " 549300Y7C05BKC4HZB40\n", - " US88031M1099\n", - " US88031M1099\n", - " 143651\n", - " \n", - " \n", - " 40\n", - " TIMKENSTEEL CORP\n", - " 549300QZTZWHDE9HJL14\n", - " US8873991033\n", - " US8873991033\n", - " 89816\n", + " 48\n", + " Versant Power\n", + " NQZVQT2P5IUF2PGA1Q48\n", + " CA2908761018\n", + " CA2908761018\n", + " 111916\n", " \n", " \n", - " 41\n", - " UNITED STATES STEEL CORP\n", - " JNLUVFYJT1OZSIQ24U47\n", - " US9129091081\n", - " US9129091081\n", - " 141313\n", + " 49\n", + " Vistra Corp.\n", + " 549300KP43CPCUJOOG15\n", + " US92840M1027\n", + " US92840M1027\n", + " 53489\n", " \n", " \n", - " 42\n", + " 50\n", " WEC Energy Group\n", " 549300IGLYTZUK3PVP70\n", " US92939U1060\n", " US92939U1060\n", - " 87867\n", + " 45957\n", " \n", " \n", - " 43\n", + " 51\n", + " WORTHINGTON INDUSTRIES INC\n", + " 1WRCIANKYOIK6KYE5E82\n", + " US9818111026\n", + " US9818111026\n", + " 236587\n", + " \n", + " \n", + " 52\n", " Xcel Energy, Inc.\n", " LGJNMI9GH8XIDG5RCM61\n", " US98389B1008\n", " US98389B1008\n", - " 217156\n", + " 46170\n", " \n", " \n", "\n", "" ], "text/plain": [ - " company_name company_lei company_id \\\n", - "39 TENARIS SA 549300Y7C05BKC4HZB40 US88031M1099 \n", - "40 TIMKENSTEEL CORP 549300QZTZWHDE9HJL14 US8873991033 \n", - "41 UNITED STATES STEEL CORP JNLUVFYJT1OZSIQ24U47 US9129091081 \n", - "42 WEC Energy Group 549300IGLYTZUK3PVP70 US92939U1060 \n", - "43 Xcel Energy, Inc. LGJNMI9GH8XIDG5RCM61 US98389B1008 \n", + " company_name company_lei company_id \\\n", + "48 Versant Power NQZVQT2P5IUF2PGA1Q48 CA2908761018 \n", + "49 Vistra Corp. 549300KP43CPCUJOOG15 US92840M1027 \n", + "50 WEC Energy Group 549300IGLYTZUK3PVP70 US92939U1060 \n", + "51 WORTHINGTON INDUSTRIES INC 1WRCIANKYOIK6KYE5E82 US9818111026 \n", + "52 Xcel Energy, Inc. LGJNMI9GH8XIDG5RCM61 US98389B1008 \n", "\n", " company_isin investment_value \n", - "39 US88031M1099 143651 \n", - "40 US8873991033 89816 \n", - "41 US9129091081 141313 \n", - "42 US92939U1060 87867 \n", - "43 US98389B1008 217156 " + "48 CA2908761018 111916 \n", + "49 US92840M1027 53489 \n", + "50 US92939U1060 45957 \n", + "51 US9818111026 236587 \n", + "52 US98389B1008 46170 " ] }, "metadata": {}, @@ -472,9 +471,9 @@ "metadata": {}, "outputs": [], "source": [ - "temperature_score = TemperatureScore( \n", - " time_frames = [ETimeFrames.LONG], \n", - " scopes=[EScope.S1S2], \n", + "temperature_score = TemperatureScore(\n", + " time_frames = [ETimeFrames.LONG],\n", + " scopes=[EScope.S1S2],\n", " aggregation_method=PortfolioAggregationMethod.WATS # Options for the aggregation method are WATS, TETS, AOTS, MOTS, EOTS, ECOTS, and ROTS.\n", ")\n", "enhanced_portfolio = temperature_score.calculate(data_warehouse=template_provider, portfolio=companies)" @@ -525,308 +524,371 @@ " AES Corp.\n", " LONG\n", " S1S2\n", - " 5.45\n", + " 1.79\n", " \n", " \n", " 1\n", " ALLETE, Inc.\n", " LONG\n", " S1S2\n", - " 1.87\n", + " 1.7\n", " \n", " \n", " 2\n", " Alliant Energy\n", " LONG\n", " S1S2\n", - " 2.1\n", + " 1.67\n", " \n", " \n", " 3\n", " Ameren Corp.\n", " LONG\n", " S1S2\n", - " 2.18\n", + " 2.28\n", " \n", " \n", " 4\n", " American Electric Power Co., Inc.\n", " LONG\n", " S1S2\n", - " 1.95\n", + " 1.96\n", " \n", " \n", " 5\n", " Avangrid, Inc.\n", " LONG\n", " S1S2\n", - " 1.74\n", + " 2.1\n", " \n", " \n", " 6\n", " Black Hills Corp.\n", " LONG\n", " S1S2\n", - " 1.99\n", + " 1.98\n", " \n", " \n", " 7\n", " CARPENTER TECHNOLOGY CORP\n", " LONG\n", " S1S2\n", - " 1.72\n", + " 1.63\n", " \n", " \n", " 8\n", - " CMS Energy Corp.\n", + " CLEVELAND-CLIFFS INC\n", " LONG\n", " S1S2\n", - " 1.93\n", + " 1.43\n", " \n", " \n", " 9\n", - " COMMERCIAL METALS CO\n", + " CMS Energy Corp.\n", " LONG\n", " S1S2\n", - " 1.41\n", + " 2.01\n", " \n", " \n", " 10\n", - " Cleco Partners LP\n", + " COMMERCIAL METALS CO\n", " LONG\n", " S1S2\n", - " 2.44\n", + " 1.45\n", " \n", " \n", " 11\n", - " Consolidated Edison, Inc.\n", + " Cleco Partners LP\n", " LONG\n", " S1S2\n", - " 1.65\n", + " 2.38\n", " \n", " \n", " 12\n", - " DTE Energy\n", + " Consolidated Edison, Inc.\n", " LONG\n", " S1S2\n", - " 2.85\n", + " 2.05\n", " \n", " \n", " 13\n", - " Dominion Energy\n", + " DTE Energy\n", " LONG\n", " S1S2\n", - " 1.84\n", + " 2.77\n", " \n", " \n", " 14\n", - " Duke Energy Corp.\n", + " Dominion Energy\n", " LONG\n", " S1S2\n", - " 2.12\n", + " 1.81\n", " \n", " \n", " 15\n", - " Entergy Corp.\n", + " Duke Energy Corp.\n", " LONG\n", " S1S2\n", - " 2.34\n", + " 1.87\n", " \n", " \n", " 16\n", - " Evergy, Inc.\n", + " Edison International\n", " LONG\n", " S1S2\n", - " 2.07\n", + " 2.91\n", " \n", " \n", " 17\n", - " Eversource Energy\n", + " Entergy Corp.\n", " LONG\n", " S1S2\n", - " 1.19\n", + " 1.84\n", " \n", " \n", " 18\n", - " Exelon Corp.\n", + " Evergy, Inc.\n", " LONG\n", " S1S2\n", - " 2.6\n", + " 1.81\n", " \n", " \n", " 19\n", - " FirstEnergy Corp.\n", + " Eversource Energy\n", " LONG\n", " S1S2\n", - " 1.88\n", + " 1.23\n", " \n", " \n", " 20\n", - " Fortis, Inc.\n", + " Exelon Corp.\n", " LONG\n", " S1S2\n", - " 1.73\n", + " 2.6\n", " \n", " \n", " 21\n", - " GERDAU S.A.\n", + " FirstEnergy Corp.\n", " LONG\n", " S1S2\n", - " 1.64\n", + " 1.73\n", " \n", " \n", " 22\n", - " Hawaiian Electric Industries, Inc.\n", + " Fortis, Inc.\n", " LONG\n", " S1S2\n", - " 2.33\n", + " 1.65\n", " \n", " \n", " 23\n", - " MDU Resources Group\n", + " GERDAU S.A.\n", " LONG\n", " S1S2\n", - " 2.18\n", + " 1.53\n", " \n", " \n", " 24\n", - " NUCOR CORP\n", + " Hawaiian Electric Industries, Inc.\n", " LONG\n", " S1S2\n", - " 1.43\n", + " 2.38\n", " \n", " \n", " 25\n", - " National Grid PLC\n", + " MDU Resources Group\n", " LONG\n", " S1S2\n", - " 1.88\n", + " 2.27\n", " \n", " \n", " 26\n", - " Northwestern Corp.\n", + " NUCOR CORP\n", " LONG\n", " S1S2\n", - " 1.89\n", + " 1.54\n", " \n", " \n", " 27\n", - " OG&E Energy Corp.\n", + " National Grid PLC\n", " LONG\n", " S1S2\n", " 2.25\n", " \n", " \n", " 28\n", - " PG&E Corp.\n", + " NextEra Energy, Inc.\n", " LONG\n", " S1S2\n", - " 1.82\n", + " 1.77\n", " \n", " \n", " 29\n", - " PNM Resources, Inc.\n", + " NIPPON STEEL CORP\n", " LONG\n", " S1S2\n", - " 1.74\n", + " 1.81\n", " \n", " \n", " 30\n", - " POSCO\n", + " Nisource Inc.\n", " LONG\n", " S1S2\n", - " 1.72\n", + " 1.91\n", " \n", " \n", " 31\n", - " PPL Corp.\n", + " Northwestern Corp.\n", " LONG\n", " S1S2\n", - " 2.83\n", + " 1.78\n", " \n", " \n", " 32\n", - " Pinnacle West Capital Corp.\n", + " OG&E Energy Corp.\n", " LONG\n", " S1S2\n", - " 2.13\n", + " 2.28\n", " \n", " \n", " 33\n", - " Portland General Electric Co.\n", + " PG&E Corp.\n", " LONG\n", " S1S2\n", - " 1.95\n", + " 2.58\n", " \n", " \n", " 34\n", - " Public Service Enterprise Group\n", + " PNM Resources, Inc.\n", " LONG\n", " S1S2\n", - " 1.21\n", + " 1.93\n", " \n", " \n", " 35\n", - " Sempra\n", + " POSCO\n", " LONG\n", " S1S2\n", - " 2.35\n", + " 1.83\n", " \n", " \n", " 36\n", - " Southern Co.\n", + " PPL Corp.\n", " LONG\n", " S1S2\n", - " 2.28\n", + " 2.26\n", " \n", " \n", " 37\n", - " STEEL DYNAMICS INC\n", + " Pinnacle West Capital Corp.\n", " LONG\n", " S1S2\n", - " 1.65\n", + " 2.17\n", " \n", " \n", " 38\n", - " TC Energy Corp.\n", + " Portland General Electric Co.\n", " LONG\n", " S1S2\n", - " 1.27\n", + " 1.77\n", " \n", " \n", " 39\n", - " TENARIS SA\n", + " Public Service Enterprise Group\n", " LONG\n", " S1S2\n", - " 1.65\n", + " 1.49\n", " \n", " \n", " 40\n", + " Sempra\n", + " LONG\n", + " S1S2\n", + " 2.33\n", + " \n", + " \n", + " 41\n", + " Southern Co.\n", + " LONG\n", + " S1S2\n", + " 1.89\n", + " \n", + " \n", + " 42\n", + " STEEL DYNAMICS INC\n", + " LONG\n", + " S1S2\n", + " 1.59\n", + " \n", + " \n", + " 43\n", + " TC Energy Corp.\n", + " LONG\n", + " S1S2\n", + " 2.56\n", + " \n", + " \n", + " 44\n", + " TENARIS SA\n", + " LONG\n", + " S1S2\n", + " 1.58\n", + " \n", + " \n", + " 45\n", + " TERNIUM S.A.\n", + " LONG\n", + " S1S2\n", + " 1.71\n", + " \n", + " \n", + " 46\n", " TIMKENSTEEL CORP\n", " LONG\n", " S1S2\n", " 1.45\n", " \n", " \n", - " 41\n", + " 47\n", " UNITED STATES STEEL CORP\n", " LONG\n", " S1S2\n", - " 1.52\n", + " 1.54\n", " \n", " \n", - " 42\n", + " 48\n", + " Versant Power\n", + " LONG\n", + " S1S2\n", + " 1.55\n", + " \n", + " \n", + " 49\n", + " Vistra Corp.\n", + " LONG\n", + " S1S2\n", + " 2.22\n", + " \n", + " \n", + " 50\n", " WEC Energy Group\n", " LONG\n", " S1S2\n", - " 2.25\n", + " 1.84\n", " \n", " \n", - " 43\n", + " 51\n", + " WORTHINGTON INDUSTRIES INC\n", + " LONG\n", + " S1S2\n", + " 1.28\n", + " \n", + " \n", + " 52\n", " Xcel Energy, Inc.\n", " LONG\n", " S1S2\n", - " 2.04\n", + " 1.71\n", " \n", " \n", "\n", @@ -834,50 +896,59 @@ ], "text/plain": [ " company_name time_frame scope temperature_score\n", - "0 AES Corp. LONG S1S2 5.45\n", - "1 ALLETE, Inc. LONG S1S2 1.87\n", - "2 Alliant Energy LONG S1S2 2.1\n", - "3 Ameren Corp. LONG S1S2 2.18\n", - "4 American Electric Power Co., Inc. LONG S1S2 1.95\n", - "5 Avangrid, Inc. LONG S1S2 1.74\n", - "6 Black Hills Corp. LONG S1S2 1.99\n", - "7 CARPENTER TECHNOLOGY CORP LONG S1S2 1.72\n", - "8 CMS Energy Corp. LONG S1S2 1.93\n", - "9 COMMERCIAL METALS CO LONG S1S2 1.41\n", - "10 Cleco Partners LP LONG S1S2 2.44\n", - "11 Consolidated Edison, Inc. LONG S1S2 1.65\n", - "12 DTE Energy LONG S1S2 2.85\n", - "13 Dominion Energy LONG S1S2 1.84\n", - "14 Duke Energy Corp. LONG S1S2 2.12\n", - "15 Entergy Corp. LONG S1S2 2.34\n", - "16 Evergy, Inc. LONG S1S2 2.07\n", - "17 Eversource Energy LONG S1S2 1.19\n", - "18 Exelon Corp. LONG S1S2 2.6\n", - "19 FirstEnergy Corp. LONG S1S2 1.88\n", - "20 Fortis, Inc. LONG S1S2 1.73\n", - "21 GERDAU S.A. LONG S1S2 1.64\n", - "22 Hawaiian Electric Industries, Inc. LONG S1S2 2.33\n", - "23 MDU Resources Group LONG S1S2 2.18\n", - "24 NUCOR CORP LONG S1S2 1.43\n", - "25 National Grid PLC LONG S1S2 1.88\n", - "26 Northwestern Corp. LONG S1S2 1.89\n", - "27 OG&E Energy Corp. LONG S1S2 2.25\n", - "28 PG&E Corp. LONG S1S2 1.82\n", - "29 PNM Resources, Inc. LONG S1S2 1.74\n", - "30 POSCO LONG S1S2 1.72\n", - "31 PPL Corp. LONG S1S2 2.83\n", - "32 Pinnacle West Capital Corp. LONG S1S2 2.13\n", - "33 Portland General Electric Co. LONG S1S2 1.95\n", - "34 Public Service Enterprise Group LONG S1S2 1.21\n", - "35 Sempra LONG S1S2 2.35\n", - "36 Southern Co. LONG S1S2 2.28\n", - "37 STEEL DYNAMICS INC LONG S1S2 1.65\n", - "38 TC Energy Corp. LONG S1S2 1.27\n", - "39 TENARIS SA LONG S1S2 1.65\n", - "40 TIMKENSTEEL CORP LONG S1S2 1.45\n", - "41 UNITED STATES STEEL CORP LONG S1S2 1.52\n", - "42 WEC Energy Group LONG S1S2 2.25\n", - "43 Xcel Energy, Inc. LONG S1S2 2.04" + "0 AES Corp. LONG S1S2 1.79\n", + "1 ALLETE, Inc. LONG S1S2 1.7\n", + "2 Alliant Energy LONG S1S2 1.67\n", + "3 Ameren Corp. LONG S1S2 2.28\n", + "4 American Electric Power Co., Inc. LONG S1S2 1.96\n", + "5 Avangrid, Inc. LONG S1S2 2.1\n", + "6 Black Hills Corp. LONG S1S2 1.98\n", + "7 CARPENTER TECHNOLOGY CORP LONG S1S2 1.63\n", + "8 CLEVELAND-CLIFFS INC LONG S1S2 1.43\n", + "9 CMS Energy Corp. LONG S1S2 2.01\n", + "10 COMMERCIAL METALS CO LONG S1S2 1.45\n", + "11 Cleco Partners LP LONG S1S2 2.38\n", + "12 Consolidated Edison, Inc. LONG S1S2 2.05\n", + "13 DTE Energy LONG S1S2 2.77\n", + "14 Dominion Energy LONG S1S2 1.81\n", + "15 Duke Energy Corp. LONG S1S2 1.87\n", + "16 Edison International LONG S1S2 2.91\n", + "17 Entergy Corp. LONG S1S2 1.84\n", + "18 Evergy, Inc. LONG S1S2 1.81\n", + "19 Eversource Energy LONG S1S2 1.23\n", + "20 Exelon Corp. LONG S1S2 2.6\n", + "21 FirstEnergy Corp. LONG S1S2 1.73\n", + "22 Fortis, Inc. LONG S1S2 1.65\n", + "23 GERDAU S.A. LONG S1S2 1.53\n", + "24 Hawaiian Electric Industries, Inc. LONG S1S2 2.38\n", + "25 MDU Resources Group LONG S1S2 2.27\n", + "26 NUCOR CORP LONG S1S2 1.54\n", + "27 National Grid PLC LONG S1S2 2.25\n", + "28 NextEra Energy, Inc. LONG S1S2 1.77\n", + "29 NIPPON STEEL CORP LONG S1S2 1.81\n", + "30 Nisource Inc. LONG S1S2 1.91\n", + "31 Northwestern Corp. LONG S1S2 1.78\n", + "32 OG&E Energy Corp. LONG S1S2 2.28\n", + "33 PG&E Corp. LONG S1S2 2.58\n", + "34 PNM Resources, Inc. LONG S1S2 1.93\n", + "35 POSCO LONG S1S2 1.83\n", + "36 PPL Corp. LONG S1S2 2.26\n", + "37 Pinnacle West Capital Corp. LONG S1S2 2.17\n", + "38 Portland General Electric Co. LONG S1S2 1.77\n", + "39 Public Service Enterprise Group LONG S1S2 1.49\n", + "40 Sempra LONG S1S2 2.33\n", + "41 Southern Co. LONG S1S2 1.89\n", + "42 STEEL DYNAMICS INC LONG S1S2 1.59\n", + "43 TC Energy Corp. LONG S1S2 2.56\n", + "44 TENARIS SA LONG S1S2 1.58\n", + "45 TERNIUM S.A. LONG S1S2 1.71\n", + "46 TIMKENSTEEL CORP LONG S1S2 1.45\n", + "47 UNITED STATES STEEL CORP LONG S1S2 1.54\n", + "48 Versant Power LONG S1S2 1.55\n", + "49 Vistra Corp. LONG S1S2 2.22\n", + "50 WEC Energy Group LONG S1S2 1.84\n", + "51 WORTHINGTON INDUSTRIES INC LONG S1S2 1.28\n", + "52 Xcel Energy, Inc. LONG S1S2 1.71" ] }, "metadata": {}, @@ -924,13 +995,13 @@ { "data": { "text/html": [ - "2.056225816346466 delta_degree_Celsius" + "1.8575639857922674 delta_degree_Celsius" ], "text/latex": [ - "$2.056225816346466\\ \\mathrm{delta\\_degree\\_Celsius}$" + "$1.8575639857922674\\ \\mathrm{delta\\_degree\\_Celsius}$" ], "text/plain": [ - "2.056225816346466 " + "1.8575639857922674 " ] }, "execution_count": 15, @@ -998,7 +1069,7 @@ "outputs": [ { "data": { - "image/png": "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\n", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAQEAAAEaCAYAAAAR/eKlAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/YYfK9AAAACXBIWXMAAAsTAAALEwEAmpwYAAAlXUlEQVR4nO2debgcRbn/P9+TAIksAQKX3eSKynaBKLsXZUdBgbAo5CIqi4ii4IYL8BNQFJSLXBYVA2ggqFwUgbDIJvsmmxCWIHrZCXtYw06+vz+qDjSHc2bmZPqcmZ55P8/Tz5nprq56u0/Pt6veqnpLtgmCoHvpabUBQRC0lhCBIOhyQgSCoMsJEQiCLidEIAi6nBCBIOhyQgSCtkbSXyR9vtV2dDI1RUDSi4VtjqSXC993Hi4jy0TS/ZI2bbUdQWPY3sL2ya22o9VIOljSqUOR98haB20vUDDifmAP25cMhSFlIGmk7TeqXsZgaKU9jZTdbvdrKJA0wvabrbajFjX/D7Yb2oD7gU3z5x7ge8D/AU8DpwOL5mPjAQO7Ag8BzwB7AWsB04FngeMK+X4BuAY4DngOuBvYpHB8DHAS8CjwCHAoMKLPuUdlOw4Flgcuzd+fAn4HLJzTTwXmAC8DLwLfATYEHq5xrQcDfwJOBZ4H9qhlUz/3bW3gpnzu48DPC8fWB67N9+Qh4AuFaz4FeBJ4ADgQ6KlxzfMB/w08mMs4Hhg9gD2l3u9+8h/U/QJGAEfm/9V9wFdJz8/IfPxy0ssH0nN3YL4nT+R7NKbPc/f5fB+eAg6o8TxPyffpYuAF4ApgXOH4ivnYLOAfwGf6nPsr4HxgNvlZ6ec+35vzvg/YuXBsN2AG6bdxYZ9yVymU+ziwP/AJ4DXgddJze1tOuzQwLaf9F/DFWv+HAe/FXIrAvsD1wLKkB/DXwB/6/DOOB0YBmwOvAGcB/wYsk/+BGxRu1hvAN4B5gB1JD2evqJyZ858/n38D8KU+536NVKsZDbwf2CzbtThwJfA//V1H/r4h9UXgdWAi6SEcXcumfu7bdcAu+fMCwLr587j8gEzK1z0WmJCPnQKcDSyY7+c9wO41rvmo/DAsms85BzishgiUdr8HEIGG7xfpBXEX6VlaBLiEgUVgN9LD/r58L/8MTO3z3J2Qy1wdeBVYqYYIvAB8jPSsHA1cnY/NTxLlXfN1fogkKisXzn0O+M98jaP65D0/6Ye3Qv6+FLBK/rxNvoaVct4HAtfmYwuShPJbpN/OgsA6hft6ap9yrgR+mdNOIL00Nh7o/1C2CMzgnW+PpXKBIwv/jGUKx58Gdix8PwP4euHBmgmocPwGYBdgifyPHF04Ngm4rHDug3Xsngj8vUkRuLJwrKZN/ZR/JXAIsFif/d8Hzuwn/QiS6q9c2Pcl4PL+rhkQ6W20fGHfesB9NURgKO/3oO4Xqdb2pcKxTRlYBP4KfKWQdoV+nrtl+1zXTjVE4LTC9wWAN4HlSMJ4VZ/0vwYOKpx7So17MD+pdrc9fX58wF/Igp6/9wAvkV4Kkyg8q/3c11ML35fL9i5Y2HcYMKW//0OtraZPoAbjgDMlzSnse5P0D+/l8cLnl/v5vkDh+yPOlmceIFV1xpHeVo9K6j3WQ1LpXoqfkbQESdU/SlLSHlK1qxmKZTRiU5HdgR8Cd0u6DzjE9rmkf+L/9ZN+sZz/A4V9D5BqUP3ZszjwHuDmgj0iiclAlHa/B2Aw92vpQeS/NO++LyN553P3WOHzS7zzORvQTtsvSprF2/dhHUnPFtKOJDUn69ppe7akHYFvAydJugb4lu27c95HSzqycIpI/9+Bnon+WBqYZfuFwr4HgDUbsbHI3IrAQ8Butq/pe0DS+LnIbxlJKjyY7yVVbx8ivUUW88DOJff5/pO8b1XbsyRNJLV/B0o/m/Qj6rV/BOmHNVAZjdj09on2P4FJknqA7YA/SRqb81m7n1OeIr3dxpGqyZDuxyMD2PMUSVRXsV1MU4sy73e9NPXyfJTUFOhluRr5ziTdl17eS2qePN4nj0Z5qyxJC5CaUzOzzVfY3qzGuTXvg+0LgQsljSb5QE4gvZgeAn5s+3d9z5E0DtipwfJmAotKWrAgBLWekwGZ23ECxwM/zkYjaXFJ28xlXpDaiftImkfSp0ntpfNtPwpcBBwpaSFJPZKWl7RBjbwWJDlPnpO0DLBfn+OPk9qUvdwDjJL0SUnzkNpo8w2U+WBtkvRZSYvbnkOqIkJyTv4O2FTSZySNlDRW0gQnL/PppPu7YL7H3yQ5ePqzZw7pATtK0r/lMpeR9PGBroFy73dNGsjzdGDfbPPCwHdrZPcH4BuS/j3/aH8C/G8jYjwAW0paX9K8wI+A620/BJwLfFDSLvkezSNpLUkrNZKppCUkbSNpfpIAvkj6n0P67Xxf0io57Zj8PyCXu5Skr0uaL///18nHHgfG55cJ2c5rgcMkjZK0GqnWOehuxLkVgaNJb46LJL1AchKuU/uUmvwN+ADprfZjYAfbT+djnwPmJb0VnyF5PJeqkdchwIdJjpvzSM6jIocBB0p6VtK3bT8HfAU4kaSis4GH69g7GJs+Adwp6UXSfdvJ9su2HwS2JDmBZgG3kpxZkBxvs0ne5auB3wO/qWHPd0nOpuslPU9yrq1QI32Z97sRauV5AkkkpgN/J3nc3yA1L/vyG1KV/EqSx/0V0r2aW34PHES6/2sAnwXIb9bNSW/lmaQmxk+p8XLoQw9JuGfmvDcAvpzzPjPndVr+X90BbFEodzNgq1zmP4GNcp5/zH+flnRL/jyJ5AuZSXK+HuS56MLXO5uGw4+kL5AcP+u31JAuod3vt6QtgONtj6ubuLlyppAcwgcOZTlVIIYNBy1F0mhJW+Ym0TKkN/OZrbarmwgRCFqNSE24Z0jNgRnAD1pqUZfR8uZAEAStJWoCQdDlhAgEQZczt4OFgkEwdtS8Xm7+Ua02Y0BGjn9f/UQt5OZbbnvK9jsGcH1A8kt1zpsJF9r+xBCa1hGECAwDy80/ir9+cq1WmzEgYyef3moTaqLRiz3Qd99LpJlHtfhBGoId1CFEIKgkIh7esoj7GFQW1U8SNECIQFBZak2TDBonRCCoJCK6tsoiRCCoLFETKIcQ06CS9NYEam1185CWk3SZpLsk3Slp337S7CxpuqTbJV0rafX+8qoyURMIKksJNYE3SBF/bpG0ICk608W27yqkuY8UD/OZPMNxMs1Nm287QgSCSlKGTyAHPHk0f35B0gxSmK+7CmmuLZzSG1y3owgRCCpLmT6BHBbvQ6SAKwOxOylQaEcRIhBUkgZrAotJuqnwfbLtye/KK4Uq642A/Xy/5UkbkUSgLYOxNEOIQFBZGqgJPGV7zVoJclzJM4Df2e4biq43zWqk8HNbFMKwdQwhAkElKcMnoBQD/SRghu2fD5DmvaQ4lbvYvqfJItuSEIGgktRbWKFB/pO06Mrtkm7N+/Ynhe7G9vGkKEdjgV/mdRPeqFe7qBohAkFlKaF34GrqTEGwvQdpPcWOJUQgqCwxgagcQgSCSlJScyBgEDUqSS6unybp25IOHkxhkjaU9JHC9ymSdmjw3InZhhUHU+Yg7VtT0jFDlX9QLs0OGw4Sg7lXrwLbSZqraC2SRpJWAP5InaQDMYm0Gs+kuTy/JpJG2r7J9j5DkX9QLr01gVpb0BiDEYE3SOOmv9H3gKTxki7NEy3+mrtVet/0x0v6G2nNub1Ia8ndKumj+fSP5YkZ9w5UK8iDOdYnDdbYqbB/Q0lXSDo7n394nvBxQ57wsXxOt7ikMyTdmLf/zPsPljRVadXYqTm/c3vLlPTbnM90Sdvn/b+SdFOecHLIIO5fUDJREyiHwd6rXwA7SxrTZ/+xwMm2VyMttFmsUi8LfMT2dqTFGI+yPcH2Vfn4UqQf+KeAwwcodxvggtxP+7SkNQrHVieJy0qk7p4P2l6bNLijd526o3O5a5HWjD+xcP7KwKa2+9Yw/h/wnO1V83VdmvcfkLuIVgM2yANJ3oWkPbNY3PT0q68NcFnB3BI1gfIYlAjkIZWnAH2rzOuRFneEtGBkcWjlH/NKuwNxlu05eebWEgOkmQSclj+fxjubBDfaftT2q6S13S/K+28nLdYIsClwXO4LngYslGsXANNsv9xPmZuSRA8A28/kj5/JC0L+HViFJCLvwvZk22vaXnPsfPMOcFlBM6hHNbegMeamd+B/gFuA3zaYfnad468WPr/rPydpUWBjYFVJJom8Je3Xz/lzCt/n8Pb19QDr2n6lT96N2FdM/+/At4G18tTSKUD7xhLvYCQYMaLOO2xOrXdP0Mugm062Z5Ha97sXdl/L2231nYGr+p6XeQFYcJBF7gBMtT3O9njby5HmeH+0znlFLqKwhLWkCQ2cczGwd+GcRYCFSKLxnKQlyEtKB61BUs0taIy59Z8cyTtjun8N2FXSdFK7/F0RWjLnANv2cQzWYxLvXqX2DAbXS7APsGZ28N1F/ZD1AIcCi0i6Q9JtwEa2byM1A+4mNX+uGYQNQamInhE9NbegMWJB0mFgwtiFHIuPzD0avdjNfcfrf3BEj385uravZbPZr77rvODdxIjBoJII4m1fEiECQTWJdn9phAgElUQ00DsQNETcxaCaqPlxAg2GHF9R0nWSXpX07SG5lhYTNYGgoqgMn0AjIcdnkXqXJjZbWLsSNYGgsjQ7TiCPNL0lf34B6A05XkzzhO0bgdeH4hragagJBJVEaqh3oKFowym/hkKOdyQhAkFl6anf7q8bbRgaCzneyYQIBNWkpC5CNRByvNMJEQgqSRmDhRoJOd4NhAgE1USg5t3adUOOS1oSuIk0eWyOpK8DK3dSsyFEIKgszdYEGgw5/hgduAhpkRCBoJII0RPDhkshRCCoJo11EQYNECIQVJYIIVYOIQJBJZFKGTYcECIwLLy2xLLcv+/PWm3GgCxy9a9bbcJcEVOJyyFEIKgmgp6REVi8DEIEgoqiNIEgaJoQgaCSKGoCpREiEFSW8AmUQ4hAUE0kFDWBUggRCCpL1ATKIUQgqCSS0MgYJ1AGIQJBZVEJ0wiDiDEYVJXhizYsScdI+ldexu7DQ3I9LSRqAkFFERrRtGOwkWjDWwAfyNs6wK/y344hagJBNSmhJtBItGFgG+AUJ64HFpa0VNmX00qiJhBUkgbDi5URbXgZ4KHC94fzvkcHY287EyIQVBMJeuqKQEQbboAQgaCylDGVuIFow48AyxW+L5v3dQzhEwiqiYR6empu9bNoKNrwNOBzuZdgXeA52x3TFICoCQQVRYCarwnUjTYMnA9sCfwLeAnYtdlC240QgaCaqPnwYg1GGzawd1MFtTkd1RyQtISk30u6V9LNeUnpbSVtKOncOucePNilpyW92JzFwdwjekaMqLkFjdExIpDbd2cBV9p+n+01gJ3o8JjxXYuAHtXegoboGBEANgZey+04AGw/YPvYYiJJi0o6Kw8BvV7SaoXDq+fawz8lfTGnX0DSXyXdIul2SdsMz+UEtVDUBEqjk3wCqwC3NJDuEODvtidK2hg4BZiQj60GrAvMD/xd0nnAE8C2tp+XtBhwvaRpua0YtIoSfAJBopNqAu9A0i8k3Sbpxj6H1gemAti+FBgraaF87GzbL9t+CrgMWJtU8fyJpOnAJaTRYks0UP6ekm6SdNMzzzxT0lUFRTSip+YWNEYn3ak7gbdmeNneG9gEWHwQefR9uxvYOeexhu0JwOPAqLoZ2ZNtr2l7zUUWWWQQJgQNoQa2oCE6SQQuBUZJ+nJh33v6SXcV6YeNpA1JQ0t7h4puI2mUpLHAhsCNwBjgCduvS9oIGDc05geDpdkJREGiY3wCti1pInCUpO8ATwKzge/2SXow8JtcvX8J+Hzh2HRSM2Ax4Ee2Z0r6HXCOpNtJS1TfPaQXEjRI9ACURceIAKSpoaRuwf64PKeZBUzs59yDB8jzKWC9AY4tMBdmBiWgWHagNDpKBIIuY0SoQBmECASVJaINl0OIQFBNYpxAaYQIBNUlRKAUOqmLMOgmVLt7sMFow7+R9ISkOwY4voikM/MQ8xsk/Ufp19EGhAgE1aX5wUJTgE/UOL4/cKvt1YDPAUfPvbHtS4hAUFk0QjW3eti+EphVI8nKpEFo2L4bGC+p7pDxqhEiEFQT8fZggYG2HG24sO05yFJuA7YDkLQ2abRox01ND8dgUElSeLG6b/uGog3X4HDg6Bx67Hbg78CbTeTXloQIBJVlqIcJ5Dklu6ayJOA+4N6hLXX4CREIqomGfpKQpIWBl2y/BuxBilrVcesShAgE1aVJEZD0B9Js0cUkPQwcBMwDb0UaXgk4WZJJU9V3b6rANiVEIKgm5UQbnlTn+HXAB5sqpAKECATVJeYOlEKIQFBZGhkLENQnRCCoJhFCrDRCBIaBZ2fM4Jw1m+muHlo+NP3EVpswaIQimGhJhAgE1SV8AqUQIhBUk94ViIKmCREIKoqgJ1YZKoMQgaCaRE2gNEIEgooiiPUGSyFEIKgu4RgshRCBoJqIqAmURIhAUFEEPTFOoAxCBIJqIkIESiLuYlBRck2g1lYvh/rRhsdIOicvcX+npF1Lv4w2IEQgqCYCjeipuTXAFGpHG94buMv26qS4A0dKmrdp29uMaA4E1UXNvcNsXylpfK0kwII5tNgCpMjEbzRVaBsSIhBUEwmGfgLRccA0YCawILCj7TlDXehwE82BoLrU9wk0G3L848CtwNLABOA4SQuVeg1tQNQEgmqihroImw05vitwuG0D/5J0H7AicEMTebYdURMIqkuTvQMN8CCwCUBeeWgFIuR4ELQJommfQAPRhn8ETJF0ey7xu7afaqrQNiREIKgoKqN3oF604ZnA5k0VUgEqLwKS3iQtEdXLabYPb5U9wTASU4lLofIiALxse8LcnChppO2O6/ftChRTicuiYx2Dku6XtFj+vKaky/PngyVNlXQNMFXSeEmXSpou6a+S3pvTTZF0fO5aukfSp/L+EZKOkHRjPudLrbrGrqf+qsRBA3RCTWB0XjW2l8Ns/2+dc1YG1rf9sqRzgJNtnyxpN+AYYGJONx5YG1geuEzS+4HPAc/ZXkvSfMA1ki6yfV+xgNwnvSfAmKYuLxiQCC9WCp0gAnPTHJhm++X8eT3yGvTAVOBnhXSn5xFi/5R0L6mPeHNgNUk75DRjgA+QVqx9C9uTgckAS6e17IIyiXUHSqMTRGAg3uDt5s6oPsdmN5hH3x+vSY/e12xf2IRtQdNEPIGy6OS7eD+wRv68fY101wI75c87A1cVjn1aUo+k5YH3Af8ALgS+LGkeAEkflDR/mYYHDRI+gVLohJpAX5/ABba/BxwCnCTpR8DlNc7/GvBbSfsBT5KGivbyIGmI6ELAXrZfkXQiyVdwS55d9iRv+xCC4SR+6KVQeRGw3a93yPZV9LOstO2D+3x/ANh4gOwvsb1Xn/RzgP3zFrQKESJQEpUXgaBbCZ9AWYQIDIDtL7TahqAeURMogxCBoLrEsOFSCBEIqkn4BEojGlVBRcmzCGtt9XKoH214P0m35u0OSW9KWrT0S2kxIQJBdWl+nMAUakQbtn2E7Ql5ROr3gStszyrF9jYimgNBdWnSJ9BAtOEik4A/NFVgmxI1gaDCqM5WUinSe0g1hjNKy7SNiJpAUE0aq/IvJummwvfJeWLXYNkKuKYTmwIQIhBUmfrNgWajDfeyEx3aFIAQgaDKDEMXoaQxwAbAZ4e8sBYRIhBUlyYDjTYQbRhgW+Ai241OP68cIQJBNSlhunC9aMM5zRRSV2LHEiIQVJcYMVgKIQJBdQkRKIUQgaC6xFTiUggRGAYWXmkltpo6tdVmDIhvO6XVJswFEWm0LEIEgmoiIuR4SYQIBBUlagJlESIQVJeoCZRCiEBQYaImUAYhAkFFEShqAmUQIhBUkwgvVhohAkFFUdNzB4JEiEBQXUIESiFEIKguIQKlECIQVJRoDpRF3MWgmggk1dzqZlEn5HhOs2EOOX6npCtKvYY2IUQgqCi5i7DWVp8p1Ag5Lmlh4JfA1rZXAT5dhuXtRohAUGGaizZs+0qgVvDQ/wL+bPvBnP6JJg1uS0IEgurSM6L2lqMNF7Y9B1nCB4FFJF0u6WZJnyv/IlpPOAaDitLQ277ZaMMjgTWATYDRwHWSrrd9TxN5th0hAkE1GZ6pxA8DT+cgo7MlXQmsDnSUCERzIKgwQ74C0dnA+pJG5lWI1gFmlJFxO9HVIiBpoiRLWrFOuvOzpzhoG5rvHcghx68DVpD0sKTdJe0laS8A2zOAC4DpwA3AibYH7E6sKt3eHJgEXJ3/HjRQIttbDptFQeMMT8jxI4AjmiqozenamoCkBYD1gd1Jy0whaSlJVxbWo/9o3n+/pMXy57Oyp/jOufA2B6VRyjiBgO6uCWwDXGD7HklPS1qDtBrNhbZ/LGkE8J5+ztvN9ixJo4EbJZ1h++lhtDvoJaYSl0I3i8Ak4Oj8+bT8fRrwG0nzAGfZvrWf8/aRtG3+vBzwAeBdIpBrCXsCLLnkkuVaHmTfX9dWZEulK0VA0qLAxsCqkgyMAAzsB3wM+CQwRdLPbZ9SOG9DYFNgPdsvSbocGNVfGXkJ7MkAK6+8sofsYrqWCDRaFt0qpTsAU22Psz3e9nLAfSQBeNz2CcCJwIf7nDcGeCYLwIrAusNqdfBOwidQCl1ZEyBV/X/aZ98ZpAklsyW9DrwI9B0megGwl6QZwD+A64fYzqAW4RMoha4UAdsb9bPvGOCYAdKPL3zdYojMCgZFxBMoi64UgaBTiJpAGYQIBNUlmgOlECIQVBNFc6AsQgSCChMiUAYhAkF1iZpAKYQIBBUlBguVRUhpUFmknppb/fNrRxvOkYafyxPKbpX0g9Ivog2ImkBQXZrvHZgCHAecUiPNVbY/1WxB7UyIQFBN1PyqxLavlDS+HIOqSzQHggpTN7xYs9GGAdaTdJukv0hapSzL24moCQTVpX67v9low7cA42y/KGlL4CzS1PGOImoCQUVRbhLU2JrE9vO2X8yfzwfm6Y0w1UmECATVRT21t2azl5ZUXtRQ0tqk30vHRZGK5kBQYZp72+dowxuSfAcPk4LNzgNg+3hS3IkvS3oDeBnYyXbHBYgJEQgqSim9AzWjDds+jtSF2NGECATVRMQswpJQB9Zu2g5JTwIPlJjlYsBTJeZXNmXbN8724sUdki7I5dTiKdsDLj0eJEIEKoikm5rs+hpS2t2+4J1E70AQdDkhAkHQ5YQIVJPJrTagDu1uX1AgfAJB0OVETSAIupwQgSDockIEgqDLCRFoMwoTVtryfyNp3lbbEJRLWz5o3Yok2bakrYFftdsPTtKqwO6Slmm1LUF5hAi0EVkAtgQOAf5o+7XemkGbsDRpafYtJS3damOCcggRaCPyD34jYH/gjlwjOFXS5pLma5Ug9JZr+0Lg18AGwNYhBJ1BzCJsMb1NAHirJjAL2BMYC1wIzAZ2Ai5vxVz2on3ZxoskPQt8PR+fZnvmcNsVlEeIQAsp+AA+AawMGPgZsD4w0/Y/Ja1ACo29FOXORGyIXgGQtFe28SXgBOBo4KvAHEnn2354uG0LyiFEoIVkAdgcOAz4EvAXYKztAwFyc+Aw4Pu2h10AepG0N7At8H3gKGCE7f0kzU+qEbwh6WTbb7bKxmDuCREYZiQtAYy2fX9ua28DfAFYEvgHqc3dyzLAvrYv6VstH2bGAlsDewAvAAdIms/2pZJeBh4IAaguIQLDiKT5SD+mKySNsv2KpKdJtYAVgC/YfkjSZ4FXbP+q99zhEoABxGZJ4CZghu0tcrq9JL1ku9bqPUEFiN6BYcT2q8DvgVnAkZLeC1wF7AYcbvseSWuSqt3DHtW2KACStpW0paS1gMOzPTflY7sC+wLXD7eNQfnELMJhQNJoYLn8Ix9HcrB9DBhNinC7NbAfabGLVYAf2Z7WQnu/CWwFnAN8BjgUeAL4BXAfsBywu+27WmVjUB4hAsNAHmn3KWAR4MPAJJK3f3tgUeBAYAGSKMxje8Zw+gAKvRQiDQg6xvb2kn4ITAC2ycdHZBtH2n52OGwLhp5oDgwhkt4naSOSw285YG/gattP2p4OnE0KyPnfwMK2/2V7BgyrD2DBQllLkt74SDqWJACfyQIwibwkVwhAZxGOwaFlHGnRijeA40kDfxaVtJPt02zfkpsKG5LGCAwrksYAn5f0AmnRjW1tbyHpXmAisGl2Xu4G7ANE5N4OJERgCJD0flI34GWSFgXuJPX175dXxt0sj7q7n7TA5Qm2nxhmGz8JrAv8GbgEeIXUVAH4HfAacLaki4AtSKvvPDacNgbDQzQHhoaNgdskTbA9i+T8O0jSVrYnA9eRhgZfBTzSAgH4FPATYDpwO3As8DzJV4HtW20fAHwHuJjkE7hzOG0Mho+oCZSIpPHAC7YnSxoJXCppE9unS3oN+ImkObZPlHQe8G+2bxtmG5cEvgXsYfvGvPtgSecCp0t60/axknYA7rZ9x3DaFww/IQLl8hngcknP2f6lpHmAv2YhOEuSgeMkjbH9e+DRFtj4KvA68Er2R3yXNHPxceBh0mjAVUnt/81aYF8wzEQXYckorV9/MfBJ2zMl7UtqDmxs+1ZJ25KWx7qqRfYJ+CawOWlMwiXA1cAMUjfm/cAjwB2272+FjcHwEiLQJJIWAJbKM/7WA/4G/BL4D2AH249J+ipp4s06tm/J57VsLkC2eVVSt+XZeSQjkqYA59n+YyvsClpDiEATFAbXTAFuJk0G2t72XbmffW2SU+0xSd8gvV0vbpnBNZD0aeB7pHEB/9dqe4LhI0RgLskOto1s/0HSl4BjSMN9Dy2kOQbYhNTf/mje18rZgO9C0lLAjsAXgR3DEdh9RBfh3LMm8F+SdgEeInX5fT6/UQGwvQ9wFrB8YV/bCEDmWeCfpBpLCEAXEr0Dc4ntc7P3fxvgMtsnS3qMFCX4edIowf8idcW12w//LWy/DJzXajuC1hEiMAiUQm2Ps30tgO0zldYH2E4SWQi+TpoKPBI4up0FIAggRKBhshNwE+CLkg6wfSWA7TMkzSE1De6xPU3SjfnYo+3mAwiCvoRjcBBIGkuKtTcROML2FYVj+wPrANtFqK2gSkRNYBDYflrSn0kO1W/nJkCvEFxLmoo7p2UGBsFcECIwSGzPkvQn0o/9IEknATOBI4EfRNU/qBrRHGgApZV2ngdmF2LwzQt8HPgaaZjtGbnHIHwAQaUIEahDHkzz38B+eS5Aj+05hePzAG/anhMCEFSRGCxUhzzS7zXgR/n7nD7HX+/dFwIQVJEQgT7kfn8kLSnpA3n394AXlRYOeWuBziDoBMIxmJH0HuANp+XA1yC19edIepA0K3Al0vTbqfHGDzqJ8AlkJG0MfJoUC2Bz4LfAY6RY+1eRQm+9Qppk07J1AYOgbLq+OSBpmezsu5QUHfhU4Czbf8s/9q2BPwInkVbkXbZ11gZB+XS9CJCCaf5H9gVcT1oZ+Ks5HDe259i+1/axwGnAN3P8wCDoCLpeBGzvSxoDcDJpPcDtSVOD/whvLSCyY07+JLAQMKIVtgbBUNC1ItDr4Ze0QI6ltyxwaq4R7A08KGk6MI3044fkE9i3NxxXEHQCXekYLKy990nSwhrfsf1SDrv9Mm8vvbU98JDtG4rntdD0ICidrhQBAEnrA5OBL9q+prD/LGAUsEVhiHD8+IOOpWuaA5KWk/SRwq4NgT/YvkbSiDz8F9sTSXH5e5fkipGAQUfTFV7u3M5fHXhI0kK2nyetBvzvvUlsvy5pXeBx21u1ytYgGG66oiaQu/nOBf4F/F7SZsBFwMclbQcsKenDpAFCi7bQ1CAYdjreJ1BwAm5CWmyjhxQd6ABgXtLqQC8BywA/sz2tZcYGQQvo+OZAFoAPAz8E9iKF1zbwU+AA21tJWgQYY/v+cAIG3UZHikDxhyzpfaQf/wO2b8/7ziZFBvq5pCNsnwc8A+EEDLqPjvMJSBoFrJc/vx+YQFr9d3FJW0IKEQacSxol+HhrLA2C9qDjfAJ5bYCtSMtqrwp8BHgT+AowBri4dz1ASSNtv9EqW4OgHei4moDtR0j9/NsCf7P9lO1ngKnALGCrQo0gBCDoejpGBApzAVYiTf7ZBfiHpMMlLWn7QeB84GkgVt0NgkxHNQckfYI0FHhr27dK2gD4FGnizy2kUYDH59pCEAR0Vk3gvcDhwM62bwV6FwY5Jyc5ArgxBCAI3knlawKFwUDjgCNt75D3j7L9iqR58pDgJW0/FuMAguCdVLYmUIj4O3/+OxNYWtK3ALIAbAYclecOPJ73hwAEQYFKDhYqvP0/DnwlrwL8MLAPcEgeIHQZcCBwUN+1AoIgeJvKNgckfZQUCnwP4KvAfMCuwOLA/qRIwdfZ/ks0AYJgYCojAnkQ0OLA9Lzk16dJQ31nA8cC29t+QNLitp8snBcCEAQ1qJJPYCJwDPCh/P0lYArwK2DzLAAfB74mqddPED6AIKhD24tAjva7k+1fkGIAHCxpTeAK4E/AbTndR0nLg99ge3bLDA6CitHWIiBpBeDPvd9tHwpcQ4oBsCJpAtD9wAUkJ+D+vcuDD7+1QVBN2tYnIGllkuNvqu2TcgzAVW3fIukgUriwH9u+WdICALZfDB9AEAyOtqwJ5B/8NOCFLAAjSG/7DQBsH0IaBnyEpLVsv2j7xXwsBCAIBkFbjhPII/wmAedJ2ps0HfhW20cV0hwq6ZWWGRkEHULbNgcAsgPwYuBu2+sV9q8LTLB9fMuMC4IOoS2bA73Yvom0PsCKkr4IkNcOOIEUOTgIgiZp65pAL7lGcD4pTsCqwE9zXMAgCJqkEiIAIGkt4FJgF9tntdicIOgYKiMC8NYKwtENGAQl0tY+gX6IkYBBUDKVqgkEQVA+VasJBEFQMiECQdDlhAgEQZcTIhAEXU6IQBB0OSECQdDl/H+yIxAHcGF7RQAAAABJRU5ErkJggg==\n", "text/plain": [ "

    " ] @@ -1051,9 +1122,9 @@ " \n", " 0\n", " Steel-Asia\n", - " POSCO\n", - " KR7005490008\n", - " 1.72 delta_degree_Celsius\n", + " NIPPON STEEL CORP\n", + " JP3381000003\n", + " 1.81 delta_degree_Celsius\n", " 100.0 percent\n", " \n", " \n", @@ -1061,8 +1132,8 @@ "" ], "text/plain": [ - " group company_name company_id temperature_score \\\n", - "0 Steel-Asia POSCO KR7005490008 1.72 delta_degree_Celsius \n", + " group company_name company_id temperature_score \\\n", + "0 Steel-Asia NIPPON STEEL CORP JP3381000003 1.81 delta_degree_Celsius \n", "\n", " contribution_relative \n", "0 100.0 percent " @@ -1128,7 +1199,7 @@ "outputs": [ { "data": { - "image/png": "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EfVX+9923X0CUWicEu9zg0OY7j6R6H19O1Er9nFEJ8esyaKm+j7LIlJETP09RURERJqeWsJEREREAlAIExEREQlAIUxEREQkAIUwERERkQAUwkREREQCUAgTERERCUAhTERERCQAhTARERGRABTCRERERAJQCBMREREJQCFMREREJACFMBEREZEAFMJEREREAlAIExEREQlAIUxEREQkAIUwERERkQAUwkREREQCUAgTERERCaBF6AJERERybfTo0V1btGhxP9AXNUCUiipg3Lp168474IAD5oQupjYKYSIiUvRatGhx//bbb79nly5dFjZr1sxD1yO5V1VVZXPnzu3zxRdf3A8cH7qe2ujbgIiIlIK+Xbp0WaIAVjqaNWvmXbp0WUzU+pmXFMJERKQUNFMAKz3x7zxvs07eFiYiIiJSzNQnTERESk4imTqgMbeXrqwY3dAyzZs3P6Bnz54rqx+fdNJJC4YMGfJF//7997jlllumHX744Ss2ZZ/vvvtum2nTpm112mmnLa5t/vDhw9s++OCDnYYOHTqtrm0MGDBg96eeeuozgPvvv3+7ZDI5N9v9v/jii1vfeuutZW+99dbk6mknn3xy4thjj1187rnnLrzuuuu6XnbZZfO23nrrqsx9de7ceX3btm33W7FixX/T6XTLiy66qPsrr7wypebzeeyxxzqOHz++zZAhQ77ItqZCoxAmIiLSBFq1alU1YcKEjxpre6NGjWo7atSodrWFsLVr13L44YevaCjYDRs2bDLAxIkTt3rggQe6bkoIa8g999xTdv755y+oDmHV+8qUSCTWvvLKK1Ng4+dz5plnLgZqDZjFQocjRURE8sTTTz/doV+/fr379Omz56BBg3ZdvHhxM4Bhw4a13W+//Xrvscceffbee+8958+f3/zGG2/c8YUXXti2d+/efe67775tL7/88h3POOOMnb/61a/2POmkk3Z58cUXtz7iiCN2B1i8eHGzU045JdGrV68+vXr16jN06NBtALp167b3rFmzWlxxxRU7TZs2rVXv3r37XHjhhTudeOKJuzz66KPbVNd1/PHH7/LYY491zPZ53HDDDV3nzJnTcsCAAb0OOuigXpn7ylxu4sSJW/Xs2XOvVatWWc3nc9ttt3X67ne/2wNg5syZLb75zW/u1rdv3z379u2752uvvdYOIJVKte/du3ef3r1799lzzz37LFy4sKByTUEVKyIiUqhWr17drDowVAeNzPmzZs1qMWTIkB2GDx8+6aOPPvp4//33X3H99deXrVq1ys4888zd/vjHP34+ceLEj4YNGzaxQ4cO66+66qqZxx133MIJEyZ8dP755y8EGDt2bNtXX3118gsvvPBZ5raTyeQOHTp0WD9p0qSPJk2a9FFFRcXSzPm33nrr9O7du6+eMGHCR/fcc8/0888/f+7QoUM7AcyfP7/56NGj25966qlZt0pdc801c7p27bp22LBhk0aMGDGpoeVbt27ttT2fahdeeGH3yy+/fPa4ceM+fuaZZz696KKLEnHd2992221TJ0yY8NF77703oX379lXZ1pgPdDhSRESkCTR0OPLtt99u9+mnn7bu379/b4C1a9faAQccsGzs2LGtu3btunbAgAErALbbbrs6g8bRRx+9qH379hudBTp8+PAOjz/++JTqx126dFlfX60VFRXLLr300p1nzJjR4rHHHtu2oqJiYcuWLTdYxsxqPdu0rulb4p133unwySeftKl+vGzZsuYLFy5sVl5evuzKK6/sfuqppy4444wzFu62224KYSIiIrJp3J1DDz10Sc1WrBEjRrTJNti0a9eu1hDi7pjZJtVz6qmnzr///vu3e+qpp7Z78MEH0zXnd+3add3ixYs3yBELFy5s0aVLl3WbtKMsuDujRo36uGbAHDJkyBcnnnji4ueee67jIYccsucrr7wyab/99lvV2PvPFYWwEpBIptoB2wBbA22A1sB6YCWwKv65Elicrqxo9A+PSL5JJFNtgHZA+/hnO6A5sAJYnnlLV1bU22Ig0lgGDhy4/Iorrugxbty4Vn379l29dOnSZp999lnLfffdd9Xs2bO3GjZsWNsBAwasWLhwYbP27dtXdejQYf2yZcuy6lY0cODAJb///e+7Pvjgg9MA5s6d2zyzNaxjx47rly9fvsG2LrroonkHHXTQnp07d1574IEHbhRs+vbtu3r27Nkt33///db777//qkmTJm01YcKENuXl5SsB2rVrt37x4sXNdthhh6yef33P59BDD11y0003db3++utnQ3Rm6CGHHLJy/Pjxrfr377+yf//+K0eMGNFu3LhxrRXCpEklkikDegL9gF0ybrsCPYCtstxUVSKZ+gKYBnwe/5wC/BcYk66s2KTTp0VCiT8TewL7En02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smJp6GJEJD8ohOWxuCXgWOBMomvw5fMAlxOAZ4En05UVowPXIkUqkUxtTRTETgGOAFqGraheHxJdfP7v6cqKsaGLEZH8oxBWIBLJ1DbA14Cvx7ddgxYUnc01iuifzLPpygp1tJcmFX8mBhF9Qfkm0CVoQdFn4l9En4nn4kuYiYjUSSGsQMUXCv86UA4cAPQBWuRwlwuAfwPvxrf/pCsrVuRwfyJZiy+J1Bs4iKhP5UHAPuT2MzETeC/jNipdWbEyh/sTkSKjEFYk4tP79wD6ArsRneK/I9HZZTsStRLUdThzJdFlgxbFt1nAZ8AUYCLwcbqyYkbuqhdpfIlkqg2wF7AL0ZnHmbdtgbZE/ctqC2rriT4Ti4nCVvXn4bP49km6smJmDssXkRKgEFZiEslUC6J+NC3i2/J0ZcWasFWJhBOP2deW6PJJq4HV6cqKVWGrEpFSoBAmIiIiEkCz0AWIiIiIlCKFMBEREZEAFMJEREREAlAIExEREQlAIUxEREQkAIUwERERkQAUwkREREQCUAgTERERCUAhTERERCQAhTARERGRABTCRERERAJQCBMREREJQCFMREREJACFMBEREZEAFMJEREREAlAIExEREQlAIUxEREQkAIUwERERkQAUwkREREQCUAgTERERCUAhTERERCQAhTARERGRABTCRERERAJQCBMREREJQCFMREREJACFMBEREZEAFMJEREREAlAIExEREQlAIUxEREQkAIUwERERkQAUwkREREQCUAgTERERCUAhTERERCQAhTARERGRABTCRERERAJQCBMREREJQCFMREREJACFMBEREZEAFMJEREREAlAIExEREQlAIUxEREQkAIUwERERkQAUwkREREQCUAgTERERCUAhTERERCQAhTARERGRABTCRERERAJQCBMREREJQCFMJE+Z2bKMW5WZrcx4fGbo+jaHmaXN7KjQdciW0+9SZMu1CF2AiNTO3dtX3zezNHCeu78RrqL6mVkLd19X6PvYFPlWD+RnTTUVQo0iTUEtYSIFxsyamVnSzD41s/lm9oSZbRfPS5iZm9m5ZjbNzBaa2UVm9hUzG2tmi8zszxnbOsfM3jGz281ssZlNMLOvZczvaGYPmNksM5thZjeYWfMa6/7BzBYAvzaz3czsH3Fd88zsMTPbJl7+EaAH8ELcmvczMxtoZtNrPL//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9mZm8f3+cT3zc1iTiIiISF7I2eFId19nZj8CXiW6BNKD7j7ezC6K599NdCHwi81sHbASON3dax6yFBERESk6uewTVn2I8aUa0+7OuP9n4M+5rEFEREQkH+XycKSIiIiI1EEhTERERCQAhTARERGRABTCRERERAJQCBMREREJQCFMREREJACFMBEREZEAFMJEREREAlAIExEREQlAIUxEREQkAIUwERERkQAUwkREREQCUAgTERERCUAhTERERCQAhTARERGRABTCRERERAJQCBMREREJQCFMREREJACFMBEREZEAFMJEREREAlAIExEREQlAIUxEREQkAIUwERERkQAUwkREREQCUAgTERERCUAhTERERCQAhTARERGRABTCRERERAJQCBMREREJQCFMREREJACFMBEREZEAFMJEREREAshpCDOzo81soplNNrNkLfPNzG6L5481s/1zWY+IiIhIvshZCDOz5sAdwCCgD3CGmfWpsdggoGd8uwC4K1f1iIiIiOSTXLaE9Qcmu/sUd18DPA6cUGOZE4CHPfIesI2Z7ZDDmkRERETyQoscbrsbMC3j8XTgoCyW6QbMylzIzC4gaikDWGZmExu3VClCnYF5oYuQzWc3ha5ApEH6O1PgmujvzM51zchlCLNapvlmLIO73wvc2xhFSWkws1HufmDoOkSkeOnvjGypXB6OnA50z3i8EzBzM5YRERERKTq5DGEjgZ5mtouZbQWcDjxfY5nnge/GZ0mWA4vdfVbNDYmIiIgUm5wdjnT3dWb2I+BVoDnwoLuPN7OL4vl3Ay8BxwCTgRXAubmqR0qODl+LSK7p74xsEXPfqAuWiIiIiOSYRswXERERCUAhTERERCQAhTARERGRABTCREREaojP6hfJKYUwKThmZvFPvX9FpNGZ2d7A982sW+hapLjpn5gUFDMzd3czOx64S99WRSQHdgSOAo4xsx1DFyPFK5eXLRJpdHEAOwb4DfBTd19THcxC1yYiha36b4m7v2pmDnwXaG5mz7u7ruYijU4tYVJQ4kORRwBXA+PiFrG/mNk3zKxV9aFKEZFNUfPLnLu/BtwGHA4crxYxyQUN1ip5r+YfRzO7CugPdCK6IsOuRK2657v7mjBVikgxiK/q0ofoKi73AZ2BHwH/BF5y9+kBy5Mio8ORktcy+oAdTfSH0YHfAYcCM939EzPr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\n", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAmcAAAICCAYAAACKi2r4AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/YYfK9AAAACXBIWXMAAAsTAAALEwEAmpwYAABaMElEQVR4nO3dd5hU5fnG8e+z9I60FQEdC4jYUBDXEsESRde2aiwxRk1sicYYNcloTEzU6MYSo4nG/sOo0RgrOnajYDQWMIiogCWLNOlSBZbd5/fHOavDsmUWdvacmbk/1zXXzpz6bJu9933f8x5zd0REREQkHoqiLkBEREREvqFwJiIiIhIjCmciIiIiMaJwJiIiIhIjCmciIiIiMaJwJiIiIhIjCmciIoCZfWBmo8LnvzWz+5vx2Jea2V3NdTwRyW8KZxEzswozO6gAz32amf07inNLfJnZd81sgpmtMLO5Zvasme27icccY2ZXNbadu+/o7q9uyrnC840ys1m1jn21u5+xqccWkcKgcCYisWBmFwJ/Aq4GioEtgVuBo7J83tbZPL6ISFMpnMVETUuSmV1vZkvM7H9mdmi47gQzm1Br+5+Z2djwebtwv8/NbJ6Z3WZmHcJ1vczsaTP70swWm9lrZlZkZvcR/PF7Kmyl+IWZJczMzex0M5sZ1nGOme1hZpPDY/ylVh0/MLOPwm2fN7Ot0tZ5uP/H4b63WGAH4DZgr/DcX4bbH2ZmH5rZcjObbWYXZ/FLLjFiZt2AK4Bz3f0xd1/p7pXu/pS7/zz8Gf+Tmc0JH38ys3bhvqPMbJaZXWRm88MWt9PDdWcBJwO/CH/WngqXV5jZL81sMrDSzFrX0ZLc3sz+Ef48vmtmu6bV62a2XdrrMWZ2lZl1Ap4FtgjPt8LMtqjdTWpmR4bdqF+a2avh70TNugozuzj8nVsa1tA+XFfn73Pzf0dEJEr6pY6XPYFpQC/gWuBuMzPgKWB7MxuYtu13gb+Hz8uBQcBQYDugH/CbcN1FwCygN0FrxKWAu/spwOfAEe7e2d2vrVXHQOAEgpaMXwEHATsCx5vZSAAzOyo83jHh8V8DHqz1OR0O7AHsAhwPHOLuHwHnAP8Jz9093PZu4Gx37wLsBPwrw6+b5L69gPbA4/Ws/xVQQvAzviswArgsbf3mQDeCn/0fAreY2WbufgfwAHBt+LN2RNo+JwGlQHd3X1fHOY8C/gn0IPhde8LM2jT0Sbj7SuBQYE54vs7uPid9GzMbRPB7cgHB780zBP8ktU3b7HhgNLA1we/OaeHyOn+fG6pJRHKPwlm8zHD3O929CrgX6AsUu/sq4EmCPyaEIW0wMDYMb2cBP3P3xe6+nKBb6MTwmJXhcbYKWyJe88ZvqHqlu6929xeAlcCD7j7f3WcTBLDdwu3OAa5x94/CP25XA0PTW8+Acnf/0t0/B14h+ONan0pgiJl1dfcl7v5uI3VK/ugJLKwnJEHQ+nVF+HO4APgdcEra+spwfaW7PwOsALZv5Jw3u/tMd/+qnvUT3f0Rd68E/kgQHksy/YQacAKQcvcXw2NfD3QA9q5V2xx3X0zwz9nQcPnG/D6LSI5ROIuXL2qehIEMoHP48e+E4Yyg1eyJcJveQEdgYtjV8SXwXLgc4DrgE+AFM/vMzJIZ1DEv7flXdbyuqWkr4Ka08y4GjKD1YoPPCViVtm9djgUOA2aY2Tgz2yuDWiU/LAJ6Wf3jv7YAZqS9nhEu+3r/WsGusZ81gJmZrnf3aoIWqy3q3zxj630u4bFnktnvzcb8PotIjlE4yx0vAr3NbChBSKvp0lxIEJh2dPfu4aObu3cGcPfl7n6Ru28DHAlcaGYHhvtu6n/cMwm6IbunPTq4+xsZ7LvBud39HXc/CugDPAE8vIn1Se74D7AGOLqe9XMI/hmosWW4LBP1/Zw39vM/oOZJOK6rf9o5VxH8U1Rj8yYcd73PJWz9HgDMbmS/xn6fRSRPKJzliLD7458E/zn3IAhrNf913wncaGZ9AMysn5kdEj4/3My2C/8ALAWqgOrwsPOAbTahrNuAS8xsx/Bc3czsOxnuOw/oXzPOxszamtnJZtYt/FyXpdUpec7dlxKMk7zFzI42s45m1sbMDjWzawnGaF1mZr3NrFe4babzkG3sz/kwMzsmbM27gCA8vhmumwR818xamdloYGSt8/UML3Koy8NAqZkdGI5huyg8dqP/1DTy+ywieULhLLf8nWBg/j9rdeH8kqCr400zWwa8xDfjbQaGr1cQtE7c6u6vhOuuIfiD9+XGXBnp7o8DfwAeCs87hWAwdCb+BXwAfGFmC8NlpwAV4bHOIRhnJAXC3W8ALiQY6L+AoGX2PIJW1KuACcBk4H3g3XBZJu4mGMv4pZk90YSSniQYH7aE4GfzmPAfB4CfAkcAXxL8nH59XHefShAmPwvPuV5XqLtPA74H/Jmg5fsIggtz1mZQU0O/zyKSJ0xjSUVERETiQy1nIiIiIjGicCYiIiISIwpnIiIiIjGicCYiIiISIwpnIiIiIjGicCYiIiISIwpnIiIiIjGicCYiIiISIwpnIiIiIjGicCYiIiISIwpnIiIiIjGicCYiIiISIwpnIiIiIjGicCYiIiISIwpnIiIiIjGicCYiIiISIwpnIiIiIjGicCYiIiISI62jLkBERCQqEydO7NO6deu7gJ1Qg0WhqAamrFu37oxhw4bNj7qYuiiciYhIwWrduvVdm2+++Q69e/deUlRU5FHXI9lXXV1tCxYsGPLFF1/cBRwZdT110X8JIiJSyHbq3bv3MgWzwlFUVOS9e/deStBaGksKZyIiUsiKFMwKT/g9j20Gim1hIiIiIoVIY85ERERCiWRqWHMer6K8dGJj27Rq1WrYwIEDv6p5fcwxxyy++uqrvxgxYsT2119//cz99ttvVVPO+cYbb3SYOXNm2xNOOGFpXevHjx/f8Z577uk5ZsyYmfUdY+TIkds9+uij/wO46667eiSTyQWZnv/pp5/ucsMNNxS/8sorn9QsO/bYYxOHH3740tNPP33JFVdc0ednP/vZwi5dulSnn6tXr15VHTt23G3VqlX/raioaHPOOecMeO655z6r/fk88MAD3T744IMOV1999ReZ1pRrFM5EREQi1K5du+qpU6d+2FzHmzBhQscJEyZ0qiucVVZWst9++61qLPCNGzfuE4Bp06a1vfvuu/s0JZw15vbbby8+88wzF9eEs5pzpUskEpXPPffcZ7Dh53PyyScvBeoMnvlC3ZoiIiIx99hjj3UdOnTo4CFDhuxw6KGHbrN06dIigHHjxnXcbbfdBm+//fZDdt555x0WLVrU6pprrtniqaee2mzw4MFD7rzzzs0uvPDCLY4++uitd99998HHHHPM1k8//XSX/ffffzuApUuXFh133HGJQYMGDRk0aNCQMWPGdAfo16/fznPnzm190UUX9Z85c2a7wYMHDzn77LP7l5WVJe67777uNXUdeeSRW99///3d6yi5TldddVWf+fPntxk5cuSgPffcc1D6udK3mzZtWtuBAwfuuHr1aqv9+dx88809v//9728JMGfOnNaHHHLItjvttNMOO+200w4vvPBCJ4BUKtV58ODBQwYPHjxkhx12GLJkyZKcyjs5VWwUzGx7M5uU9lhmZheY2XfM7AMzqzaz4Wnb72Nmk81sgpkNDJd1N7MXzExfbxERWc+aNWuKaoJETQBJXz937tzWV199dd/x48dP//DDDz/afffdV1155ZXFq1evtpNPPnnbP/3pT59Pmzbtw3Hjxk3r2rVr1SWXXDLniCOOWDJ16tQPzzzzzCUAH3/8cfvx48dPe+qpp/6XfuxkMtm3a9euVdOnT/9w+vTpH5aWli5PX3/DDTfMGjBgwJqpU6d+ePvtt88644wzFt577709ARYtWtRq4sSJnU844YQvM/1cL7vssvl9+vSpHDdu3PS33npremPbt2/f3uv6fGqcffbZAy688MJ5U6ZM+ejxxx//9JxzzkmEdW9+8803z5g6deqHb7755tTOnTtXZ1pjHKhbsxHuPg0YCmBmrYDZwONAR+AY4PZau1wEHAYkgHPC15cBV7t7Tv1wiIhI9jXWrfnqq692+vTTT9uPGDFiMEBlZaUNGzZsxeTJk9v36dOncuTIkasAevToUe/fmNGjR3/ZuXPnDa5KHT9+fNeHHnros5rXvXv3rmqo1tLS0hU//elPt5ozZ07r+++/f7PS0tIlbdq0WW8bM6vz6tf6lm+K119/vevHH3/coeb1ihUrWi1durSopKRkxcUXXzzg+OOPX3zSSSct2XbbbXPq76/CWdMcCHzq7jNqFphZ7W0qCYJbR6DSzLYFBrj7qy1VpIiI5A93Z999911Wu9Xr7bff7lDfPrV16tSp2cLJCSecsOjOO+/s8eijj/b4v//7v4ra6/v06bNu6dKl6+WLJUuWtO7du/e65qqhhrvz7rvvftSxY8f1gt/VV1/9xdFHH730ySef7Patb31rcCqV+ni33XZb3dznzxaFs6Y5EXiwkW2uAf4GfAWcAlxP0HIWO4lkqgjoAfQGuhEEy1UEtX/9saK8tMH/pETyTSKZak/wO1Hz6AysBL4ElgBLKspLm/0PjUhdRo0atfKiiy7acsqUKe122mmnNcuWLSuqqKhos8suu6yeP39+m3HjxnUcOXLkqiVLlhR17ty5umvXrlUrVqzIaBjNyJEjl91444197rnnnpkACxYsaJXeetatW7eqlStXrnesc845Z+Gee+65Q69evSqHDRu2QeDZaaed1sybN6/Nu+++23733XdfPX369LZTp07tUFJS8hVAp06dqpYuXVrUt2/fjD7/hj6ffffdd9k111zT58orr5wHwZWqe++991cffPBBuxEjRnw1YsSIryZOnNhxypQp7RXO8pCZtSW4zcMlDW3n7pOAknCf/YC5wVP7B0H4ucjd52W32m8kkqk+YT3bEnS1bh1+3ALYjAzGHSaSqUqCoLYcmA68D0wOHx9UlJc26TJvkSglkqlewK5pj34EAaw734SxthkcZzkwC5gJfB5+nAa8VlFeOicbtUv2ZTL1RXOrGXNW8/qAAw5Yeuutt86ueb3FFlusu/322ytOPPHEbdauXWsAl19++exddtllzQMPPPDp+eefv+Xq1auL2rdvXz1+/Pjphx566PLrr7++7+DBg4dcdNFFcxs69zXXXDP39NNP33LgwIE7FhUV+aWXXjrn1FNP/bJm/eabb141bNiwFQMHDtzxgAMOWHr77bfPGjBgwLptt9129RFHHPFlXcfs0KGD/9///d9np59+emLNmjVFrVu39ltuuWVGz549qwBOPfXUhaNHjx5UXFy8NpNxZw19PnfcccfMM844Y8tBgwYNqaqqsj333HP53nvv/fm1117b54033uhqZr799tt/ddxxx+XU1Z3mromRM2FmRwHnuvvBtZa/Clzs7hNqLTfgeYLWtj8DlxKEooPd/VfZqjORTG0OjAJGhh8HZ+tcoWrgU74JbJOAlyrKS1dm+bwijUokU62B3YBvAfsCIwjCWLZ9BoyveVSUl37aAueUjfDee+9V7LrrrgujriOXLF++vGjIkCFDJk2a9FFN4MpF7733Xq9dd901EXUddVHLWeZOovEuzXTfB55x98Vm1pEgxFQTjEVrNolkqi+wP98EskHNefwMFAEDw8cx4bKvEsnU88CjwNiK8tJlLVyTFLBEMtUV+A5wArA30CmCMrYJH6eFNc0GXiMIa69WlJd+FEFNIpvsiSee6PLjH/84cc4558zL5WAWd2o5y4CZdSLottjG3ZeGy8oIWsR6E4xDmeTuh4TrOgIpglaySjP7FnArsBb4bngF6EZLJFOtgCOAs4BDiPeUKGuBl4BHgCcryksXR1yP5KFw/ORBwKlAGZDxQOmITAbGAPdXlJc22+Se0nRqOStccW45UzjLIYlkakvgDOCHBGPGcs064BXgfuDBivLSyojrkVrMbHvgH2mLtgF+QzAe60ygJkhc6u7PmNk+wF8JQvhJ7v6xmXUHHgZGZ3v6mEQytQNBIPseLdNd2dwqCf6RuxN4tqK8VG/ILUzhrHApnMlGC1vJSoGzgdHEu5WsKWYDfwJuryhff9JDiYe0ef32BE4HVrj79bW2eQw4n2A8ZZm7X2Rm1wNPZ2v6mEQy1SGs5zRgj2ycIyLTCVrjx1SUl66IuphCoXBWuOIczjTmLKbCUHYOkAT6R1xONvQDrgMuSyRTtwLXq8szdr6e16+O+fxqtNi8folkqi1BV/6lQGbX4OeWQQTh7KpEMnUXcLV+J0QKk1rOYiiRTH0buBHYMepaWtBS4I/AjWpJiwczuwd4193/Yma/JWipWgZMIJgSZomZDQVuY/15/X7t7h83Vx3hPyqnEnSvbtVcx80BiwjmSLyjorw0p2Y3zyVqOStccW45UziLkUQyNZAgoBwedS0RWgT8HrhZk99GJ5zXbw6wo7vPM7NiYCHgwJVAX3f/Qa199iMYjP/XcJtNntcvkUztD9wE7Lyxx8gD/wV+UlFe+nrUheSj2uHs8TfnDWvO45eVFGc0b9ovf/nLzR999NGeRUVFXlRUxK233jrj3//+d6ef/exnC7t06bJR4fzYY49NHH744UtPP/30JY1vXXjiHM7UrRkDiWSqG0GrwE+ANo1snu96EgTU4xPJ1KkV5aWNTlAoWXEoQavZPID0gGVmdwJPp28czut3Gd/M6/cLgnFo5wNNntcvkUxtBdwAHLtx5eeV3YB/J5Kp+4GfV5SXfhF1QdK8XnrppU7PP/989/fff//DDh06+Ny5c1uvWbPGTjnllG3OPPPMxRsbziR35cvg8pyUSKaKEsnU2cDHwIUomKUrASYlkqmfJpKpegc8SdasN6+fmaWP8SoDptTa/ut5/QjGn23UvH6JZMoSydTPgY9QMKvte8D0RDJ1cSKZ0ntFHpk9e3abHj16rOvQoYMD9O3bd93999+/2fz589uMHDly0J577jkI4LHHHus6dOjQwUOGDNnh0EMP3Wbp0qVFAK+99lrHPfbYY/sdd9xxh3333XfgjBkz9POR4xTOIpJIpooJ7iBwG8FcabKhDgRXdL6SSKa2jriWghHO6/dt4LG0xdea2ftmNplg0uOfpW3fkWA82i3hoj8CzxB8727L9LyJZGoz4EngWuI/T1lUuhBcSDM5kUyVRF2MNI+jjz562Zw5c9omEomdvve9722ZSqU6X3bZZfP79OlTOW7cuOlvvfXW9Llz57a++uqr+44fP376hx9++NHuu+++6sorryxes2aNnX/++Vs++eSTn37wwQcfnXrqqQsvvvjiXJxWRtKoWzMCiWTqIIK5voqjriVHjCT4Y/TzivLSjP/Yy8Zx95UE3cvpy05pYPtVBIGt5vVrNHGMWCKZGg78k6ArVBo3GBifSKYurigvvTnqYmTTdOvWrXrKlCkfPvfcc11efvnlLqeeeuq2v/nNb2alb/Pqq692+vTTT9uPGDFiMEBlZaUNGzZsxeTJk9t9/PHHHQ444IBBANXV1fTu3VtzSOY4hbMWFM5i/luCMThqtWyazsBfE8lUGXCqxt3kj0QydS5Ba1ujNxuX9bQBbkokU3sBZ+h+trmtdevWHH744csPP/zw5bvssstX9913X+1/kNh3332XPfXUU/9LX/7222932G677b6aNGnS1JatWLJJAaGFhPf7Gwv8Gn3dN8XBwH8SyVRL30NUmlkimeqcSKYeBP6CgtmmOBF4J5FMbRd1IbJx3nvvvXbvv/9+u5rX//3vfzv0799/badOnapqxpWNGjVq5YQJEzpPmTKlHcCyZcuKJk+e3G6XXXZZvXjx4tYvvfRSJ4A1a9bYhAkT2kfzmUhzUctZCwinyHgS2CHqWvJEAng9kUyVVpSXvh11MdJ0iWRqR4L7rQ6OupY8sQPwZiKZKqsoL30t6mJyWaZTXzSnZcuWtTr//PO3XLZsWatWrVp5IpFYc++998645557eowePXpQcXHx2rfeemv67bffXnHiiSdus3btWgO4/PLLZ++yyy5rHnrooU/PP//8LZcvX96qqqrKfvSjH80bPnz46pb+PKT5aJ6zLEskU/sRBLPuEZeSj1YCx1WUlz4XdSGSuUQydShBMGvSlZySkbXADyvKS++PupBcoUloC1ec5zlT91oWJZKpfQiuWusecSn5qhPwVCKZ+n7UhUhmEsnUkcATKJhlS1vgvkQy9euoCxGRjadwliWJZGoEQTDrFHUtea41MCaRTP0i6kKkYYlk6hiCFjONL8u+KxLJ1EVRFyEiG0fhLAsSydRuBHOYdY26lgJhwB8SydSNURcidUskU98B/oEmWm5J16lVOSPV1dXVmui6wITf89jeeUHhrJklkqmdgBdQV2YULlB3TvyEY8weQBcgtTQD7k4kU4V8r95MTFmwYEE3BbTCUV1dbQsWLOjGhnc6iQ1dENCMEsnU9sA4NLlslBw4oaK89J9RFyJfj7t8AY0xi9JXwLd14/S6TZw4sU/r1q3vAnZCDRaFohqYsm7dujOGDRs2P+pi6qJw1kwSydS2wHhgi6hrEb4C9qsoL50QdSGFLJFM7UzwO9E94lIEviT4nXg/6kJEpHEKZ80gkUx1Bt4FBkZdi3xtDjCiorx0dtSFFKJEMtUbmIT+WYmTOcA+FeWlFVEXIiINUxNu87gVBbO42QIYm0im1J0WjXtQMIubLYAXEslUr6gLEZGGKZxtokQydQpQ702hJVK7A39LJFMa6NuCEsnUeYAGocfTQGBM1EWISMMUzjZBeFumW6OuQxp0LHBl1EUUivBq5euirkMaVBrebF5EYkpjzjZSIplqC/yHoHVG4s2BURXlpeOjLiSfJZKp9sA7BFe9Sbx9BQyrKC/9KOpCRGRDajnbeOUomOWKmvmeOkRdSJ67HgWzXNEB+Hv4T6aIxIzC2UZIJFOHARdEXYc0yXbAVVEXka/CiU7VVZZbhgLJqIsQkQ2pW7OJEslUD2Aq0DvqWqTJqgmmEngz6kLySSKZ6gtMBnQVYO5ZCwxV96ZIvKjlrOkuQcEsVxUBtyaSKf3cN6+bUTDLVW2BO3VFs0i86I9UEySSqQHAeVHXIZtkN+CsqIvIF4lkqgQ4Luo6ZJPsA5wddREi8g2Fs6b5LdA+6iJkk/0+7J6WTadpM/LD73TBjEh8KJxlKJFM7QCcGnUd0ix6AFdEXUSuSyRTRwH7Rl2HNIs+wA+jLkJEAgpnmbsaaBV1EdJsfphIpvpEXUSuCsftXR11HdKsfp5IptpEXYSIKJxlJJFM7QUcHXUd0qzaAz+KuogcdiwwJOoipFltCZwcdREionCWqfKoC5Cs+HEimWoXdRE56ldRFyBZ8UtdzSwSPf0SNiKRTB0M7Bd1HZIVfYDvRV1ErkkkU0cAu0Zdh2TFYOCYqIsQKXQKZ437cdQFSFb9LOoCcpBazfLbJVEXIFLoFM4aEM58Xhp1HZJVO4ato5KBRDI1BNgz6jokq3ZPJFOHRF2ESCFTOGvY6UDrqIuQrLsw6gJyyAlRFyAtQvfcFImQwlk9wtuZaN6fwnBIIpnaMeoicoTCWWEYmUim+kddhEihUjir317ANlEXIS1GFwY0IpFM7QpsH3Ud0iIM+E7URYgUKoWz+p0YdQHSog6NuoAccHzUBUiLUjgTiYjCWR3CeX50M+fCsmsimdoi6iJiTl2ahaVEXZsi0VA4q9tIoG/URUiLU+tZPRLJ1DBg26jrkBZlQFnURYgUIoWzumn6jMKkcFY/dWkWJk2pIRIBhbO6lURdgETi24lkSlOn1E3hrDCNSiRTbaMuQqTQKJzVEv5x3j3qOiQSXYF9oi4ibhLJ1CAgEXUdEolOwLeiLkKk0CicbWgXoEPURUhk1LW5oT2iLkAipa5NkRamcLYh3ZqmsI2OuoAYGh51ARIphXORFqZwtiGFs8K2o8adbUB/nAvboKgLECk0CmcbUjgrbK3R+KqvJZKpVsBuUdchkdoikUx1jroIkUKicJYmkUx1R7enEdgu6gJiZBugY9RFSOTUeibSghTO1jeCYOJFKWwKZ9/QPysCCmciLUrhbH2Doy5AYkHh7Bv6nRBQOBNpUQpn6+sZdQESCwpn31A4E1A4E2lRCmfr6xF1ARILCmff0NdCQN3bIi1K4Wx9ajkTgK0TyZR+NwJdoy5AYmFg1AWIFBL9AVqfwpkAtAUGRF1ETLSLugCJhW6JZKpX1EWIFAqFs/UpnEmNzaIuICbaR12AxEanqAsQKRQKZ+tTOJMabaMuICYUzqSGWlFFWojC2fp0QYDUUDgLKJxJDf1OiLQQhbNQIplqgwY/yzf0hyigcCY19Dsh0kJ0g+dv6I0H2Gnz7pNGbVe8LOo6orZgxWqPuoaYKPiurB2Ku7134MDNl0ZdR9Tmr1itu6eItBCFs1BFeenKRDK1jgL/mpQO6bdy864d9ou6jqht26tLwf8hSiRTrYFWUdcRta17dF62ba8u+p3Q74RIi1G35vqWRF1A1Pp0ab9t1DXERGXUBcSAujSBtVVVCiWBdVEXIFIoFM7WV9DhbPMu7f9XZLZ51HXEhMIZqGsXWFtVrffJwNqoCxApFHrTWV9Bh7NhA3rOjLqGGFkedQFRqygvXQmsjLqOqK1dV13QQx3SLIi6AJFCoXC2voIOZ7v03Ux/hL6hoBqYF3UBUVPLGRC0JC+MugiRQqE3nfUVdDjr1bmd7p8XWFZWoitWQwpnVdUFf1EEMK+spFjd3CItROFsfQUbzvp16/hpkVnvqOuIic+jLiBGvoi6gKhVVqlbE5gbdQEihUThbH0FG872GNBzVtQ1xIi6NL9R8EF17brqNlHXEAMKZyItSOFsfQXbSrBj3+4FP9loGoWzb3wSdQFRU8sZoHAm0qIUztb3ftQFRMR7dmw7KOoiYqTgW4vSfBx1AVFbW6WWM2B61AWIFBKFs/W9F3UBUdhys07TzUw3ff9GRdQFxEjBh7N11QpnwMSoCxApJApnaSrKS78EZkRdR0vbY0DPgu3OrcfbURcQIzMo8Al5K6uqC/2+uw78N+oiRAqJwtmGCq71bMjm3TpEXUOMzC8rKS741qIaFeWlVRR4q0lllRd6OPtUU8uItCyFsw29FXUBLcmgarMObbePuo4YeSPqAmLoxagLiNK66upCv1imoMO5SBQUzjb0etQFtKSte3aeZmbdoq4jRv4ddQEx9ELUBURpXXXBt5y9G3UBIoVG4WxDb1NAN/jdY0DP+VHXEDMFFc4z9CZQyN1a5u4F855QB/3DItLCFM5qqSgv/YoC+k9xh+JunaOuIUZWU0Df+0xVlJeuA16Nuo6IrY66gIgsJAjnItKCFM7q9lLUBbSEImNd1/ZtBkddR4y8U1ZSXMgtJA0p6K5NL6DW9FqeLSspro66CJFCo3BWt79HXUBL2LZXl6lmppazbzwRdQExVtDhDC/Y6USejroAkUKkcFaHivLSjyiA7q09BvRcGHUNMVINPBR1EXFVUV76MQU8OW81XojhrBJ4LuoiRAqRwln97o+6gGzbvk+3LlHXECOvlJUUz4m6iJgr2Ck13AuyW/M1zW8mEg2Fs/o9CFRFXUS2tDJb26Vd6x2iriNGHoi6gBwwNuoColLtBdly9nDUBYgUKoWzelSUl35BHl8YMKhP14/MrGPUdcTEauDRqIvIAc8CM6MuIgrV7uuirqGFraBAxt6KxJHCWcPytmtzjwE9l0RdQ4yk1H3TuPBWTndEXUcUqqo9b1vR6/FAWUnx8qiLEClUCmcNexxYGXUR2TCwd5fuUdcQI+rSzNxdFOCN0KuqC67l7LaoCxApZApnDagoL11JENDySusiW92prcabhWYAT0VdRK4Iu/vz7neiMVVeUC1nb5WVFE+KugiRQqZw1rgbAI+6iOY0uLjbR2ZW6DdzrnFDWUlxobWKbKo/Rl1AS1tX7YU0EatazUQipnDWiIry0knk2VVLewzouTTqGmJiIXB31EXkmory0rcosNs5rauqLpRwNpPgSnURiZDCWWZ+DeRN68p2vbr0jLqGmLiprKR4VdRF5KjyqAtoSQXUcnZFWUnxmqiLECl0CmcZCGdHHxN1Hc2hbauilR3atNL9NINWs5uiLiJXVZSXPg9MirqOllJZGC1nefM+J5LrFM4y9zuC+bBy2pDNu001szZR1xED12qqgE12WdQFtJTKgshmXK7xlyLxoHCWoYry0lnArVHXsamGD+ipQAJzgFuiLiLXVZSXpoBHoq6jJVRWVefVRUF1mIzuLSsSGwpnTXMNkNPhZpueXXpHXUMM/ERjzZrN+UDeX2BSWZX3LWeXlpUU53sAFckZCmdNUFFeupAcnkagXeui5e1bF20fdR0Re7yspPixqIvIFxXlpXOBS6KuI9vW5nc4+2dZSXEq6iJE5BsKZ013LfBR1EVsjJ37dp9qZq2jriNCS4Hzoi4iD90GvBF1EdlUua46X98rF6HfCZHYydc3nKypKC9dBXwXyLnLzYcN6FnoXXm/LCspnhN1EfmmorzUgbPI49s6rcnflrOflZUUz4+6CBFZn8LZRggnpk1GXUdTbd2jc5+oa4jQeAr0pt0toaK89APguqjryJbKqrxsOXu2rKT4vqiLEJEN5eMbTku5CXg26iIy1bFNqy/btirY8WZrgLM04DnrriSYKyvvrM2/cLYcODvqIkSkbvn2htNiwq6c04B5EZeSkV222GyamRXq9/ucspLiaVEXke8qyktXA2cAeXeT8LXrqltFXUMzcuC0spLimVEXIiJ1K9Q/1s2iorx0PnAqOXBj9N3798j5CXQ30s1lJcVjoi6iUFSUl44HLoq6jua2tqoqn94rr9EVyyLxlk9vOJEIb2Pzp6jraMxWm3XqG3UNEXiZPAwKcVdRXnoTcE/UdTSntVV503L2LMG9gkUkxhTOmkcSeDPqIurTuW3rRW1aFQ2Muo4W9hlwvG5HE5kfkUfTa6xdV50PU9B8Any3rKQ4by89FckXCmfNoKK8dC1QSkznP9u132Yfm5lFXUcLWgEcVVZSvDjqQgpV+DtRRhCSc15lVc6HsxXA0WUlxV9GXYiINE7hrJlUlJcuBg4BYjfIdvf+PdZGXUMLqgK+X1ZSPCXqQgpdOCbzYCDn59FaW1XdJuoaNsEagmD2QdSFiEhmFM6aUUV56UyCP0aLoq4l3YDunfpFXUMLWQecUlZS/HjUhUigorz0U+AwgpabnJXDLWfrCLr3X466EBHJnMJZM6soL50KHERMAlrX9m3mt2lVtG3UdbSASuCkspLiB6MuRNZXUV46kaCLM2dbcCurPBdbzqoI/lkZG3UhItI0CmdZEN5B4EBiENB269fjk6hraAFrCVoHHom6EKlbRXnpS8C3gZwcB1hZXd0u6hqaqAo4uayk+KGoCxGRplM4y5KK8tL3iEFA261/j7ybELSWNcCxZSXFT0RdiDQsnANtb3LwIoHKquq2UdfQBKuBE8pKiv8RdSEisnEUzrIoDGj7EOFVnP26dRgQ1blbwGqCqzKfjroQyUxFeek0oAT4T9S1NMW63Aln84H9y0qKH426EBHZeApnWRb+MRoBtPibZfcObee2LipKtPR5W8gsYL+ykuLnoy5EmqaivHQBcACQM93Q66o9F7o1pwAjykqKYzvnoohkRuGsBVSUl66oKC89DvglLXjfwWH9e+Rc91GGXgeGl5UUvxN1IbJxwvtwHg9cF3UtmXAocvc4T2j8LLB3WUnxjKgLEZFNp3DWgirKS68lmAttYUucb2i/HrG/5+dG+DNwQFlJcU7ccF7qV1Fe6hXlpb8AziGY8iHu4nh/Wgf+CBxRVlK8POpiRKR5KJy1sIry0peBYcCEbJ+rb9cOiWyfowUtJRj4f35ZSXHOTskgG6ooL72dYPqZ/0VdSyPi9nM3Czi4rKT4orKS4gZb5M1sgJm9YmYfmtkHZvbTcPlvzWy2mU0KH4eFy/cxs8lmNsHMBobLupvZC2amvxsiWaZfsghUlJd+DuwL3JGtc/Tq1G5WqyLrn63jt7DxwG5lJcWPRV2IZEdFeek4YBfgVoLWoNjxeIWzvwM7l5UUv5Th9uuAi9x9CMEFGeea2ZBw3Y3uPjR8PBMuu4hg8uALCFo2AS4DrnZ33ZtTJMtyddbrnFdRXroGODuRTP0NuBnYvTmPP6x/jwog18PZfODispLi+6IuRLKvorx0BXBuIpl6FLgbSERb0frcvZLob1G7GPhRWUnxw03Zyd3nAnPD58vN7COgoTuHVAIdw0elmW0LDHD3VzeqahFpErWcRayivPR1YA/gLGBBcx13136bRf5XZBNUE7SgbK9gVngqykv/BewI/J5gHrtYqPZIW86qCQLrjk0NZrWZWQLYDXgrXHRe2IV5j5ltFi67BvgbcAnwF4LvxWWbcl4RyZy5x7IHoSAlkqnuwOXAeWxiq+YNRw6bW1RkfZujrhb2DvDjspLirI/Jk/hLJFMDCVqWR0ddS/nhu01r17rV9hGc+kWCFuTJm3ogM+sMjAN+7+6PmVkxwQVKDlwJ9HX3H9TaZz+C22/9NdymkqCLVBfliGSJwlkMJZKpHYCbCG5302TFXdrPSB6401bNW1XWfQKUA/9XVlKsMS2ynkQydSRBK05JVDVcXbrbBx3atNqxBU/5IUEoe7Y5DmZmbYCngefd/Y91rE8AT7v7TmnLDHgeOJHgSulLCbqbD3b3XzVHXSKyIXVrxlBFeelHFeWlBwOlBP81NylBDx/Q8/OsFJYd7wDfIejCvFvBTOpSUV46tqK8dC9gL+BhWnC+wBrVLTfP2X+B7wO7NGMwM4Ju0Y/Sg5nZeq3rZQQT2ab7PvCMuy8mGH9WHT46NkddIlI3tZzlgLBr52zgdKBHY9snD9zxjeIuHfbOemGb5jng2rKS4leiLkRyTyKZ2hL4CXAm0K0lzvm70btO7Nq+zbAsHb4aeBL4U1lJ8fjmPriZ7Qu8BrwfnguCVrCTgKEE/wBWAGeHFw9gZh2BFEErWaWZfYtgLOha4LvuPq256xSRgMJZDkkkU+0JZlX/EQ1079xw1LD5RWZ9WqywzC0EHgf+sinjZ8xsAMFg5WKCPyp3uPtNZrYrcBvQmeAPzcnuvszM9iEYL7MWOMndPzaz7gQtMKM1NUDuSiRTnYEfAD8FtsnmuX5z8M5vb9ax3YhmPuwi4H7g5rKS4ny9o4eINJHCWY5KJFNDCULa8UD3muVbdO3w6c8P2HHbiMqqywLgMYL7KL5aVlK8yV1DYVdMX3d/18y6ABOBo4F7gYvdfZyZ/QDY2t1/bWaPAecTjJUpc/eLzOx6gvE1r25qPRK9RDJVRDAv1zEEwwGa/Z+TSw/a6T+9O7ffqxkOtYDgn5R/0ky/EyKSXzTPWY6qKC+dRDBP2o+BPQluCzV6+JY9vwKiDmdzgLEEf3zGNTZ7eVM1MGfTIIIJayEYq/c88Gs0Z1PeqygvrSYY7P50GNT2BI4ADiWY3HaTx9dWVW/Sf7KfEPxMPkIWfidEJL+o5SzPPPjanO7t27Tah+AOBPsSzGfUKYunXE0wiPgdghuSv1FWUtxit+EJrzAbD+xEOI7N3Z8wswuB37l7FzMbStDd+RVwCnA98Gt3/7il6pTohFPU7AeMBEYRzKHWrqnHuXDUDq8N6N7pWxls+hXB7dneCB//KSspbrY5DEUk/ymcFYDH35xXTNCaVvuxFdABaAO0DT+mT17rBDOSzwO+qPVxJjAZmBpVt0wdczYNJpgTqydBy9357t6z1j6as6nAJZIpIxivuBWwZfgx/bElaUMFapz/rcHjt+7Z+VvAKmA5wb0tK9Ie/ws/flxWUlyZ1U9CRPKawpms5/E357Xmm7C2Kq5/ZDKYs2kQcL+7j0hbpjmbJCOJZKoTwbCPmjdIHz14i3WHDN5idVlJsd40RSSrNOZM1hO2gq0j6JqJpQbmbOrj7vPNrIjgVjO31dr16zmbwmkCNGeT1KmivHRl1DWISOFSy5nknAbmbBoInBu+fgy4xMMfcM3ZJCIiuULhTERERCRGdPsmERERkRhROBMRERGJEYUzERERkRhROBMRERGJEYUzERERkRhROBMRERGJEYUzERERkRhROBMRERGJEYUzERERkRhROBMRERGJEYUzERERkRhROBMRERGJEYUzERERkRhROBMRERGJEYUzERERkRhROBMRERGJEYUzERERkRhROBMRERGJEYUzERERkRhROBMRERGJEYUzERERkRhROBMRERGJEYUzERERkRhROBMRERGJEYUzERERkRhROBMRERGJEYUzERERkRhROBMRERGJEYUzERERkRhROBMRERGJEYUzERERkRhROBMRERGJEYUzERERkRhROBMRERGJEYUzERERkRhROBMRERGJEYUzERERkRhROBMRERGJEYUzERERkRhROBMRERGJEYUzERERkRhROBMRERGJEYUzERERkRhROBMRERGJEYUzERERkRhROBMRERGJEYUzkRxkZivSHtVm9lXa65Ojrm9jmFmFmR0UdR2y6fS9FNk0raMuQESazt071zw3swrgDHd/KbqKGmZmrd19Xa6foyniVg/Es6bacqFGkWxTy5lIHjGzIjNLmtmnZrbIzB42sx7huoSZuZmdbmYzzWyJmZ1jZnuY2WQz+9LM/pJ2rNPM7HUz+4uZLTWzqWZ2YNr6bmZ2t5nNNbPZZnaVmbWqte+NZrYI+K2ZbWtm/wrrWmhmD5hZ93D7+4AtgafC1r9fmNkoM5tV6/P7ukXGzH5rZo+Y2f1mtgw4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\n", "text/plain": [ "
    " ] @@ -1189,132 +1260,145 @@ " \n", " \n", " \n", - " 18\n", - " STEEL DYNAMICS INC\n", - " US8581191009\n", + " 4\n", + " NIPPON STEEL CORP\n", + " JP3381000003\n", " Steel\n", - " 2.1980042601105136 percent\n", - " 1.65 delta_degree_Celsius\n", - " 0.00\n", - " 2.74\n", + " 3.3870401057008093 percent\n", + " 1.81 delta_degree_Celsius\n", + " 26.74\n", + " 3.48\n", " \n", " \n", - " 22\n", - " CARPENTER TECHNOLOGY CORP\n", - " US1442851036\n", + " 8\n", + " UNITED STATES STEEL CORP\n", + " US9129091081\n", " Steel\n", - " 1.9280378585340923 percent\n", - " 1.72 delta_degree_Celsius\n", + " 2.973857467344226 percent\n", + " 1.54 delta_degree_Celsius\n", " 0.01\n", - " 2.30\n", + " 3.59\n", " \n", " \n", - " 24\n", - " COMMERCIAL METALS CO\n", - " US2017231034\n", + " 10\n", + " POSCO\n", + " KR7005490008\n", " Steel\n", - " 1.8597745540469062 percent\n", - " 1.41 delta_degree_Celsius\n", - " 0.01\n", - " 2.71\n", + " 2.7351925482594566 percent\n", + " 1.83 delta_degree_Celsius\n", + " 0.00\n", + " 2.78\n", " \n", " \n", - " 25\n", - " TENARIS SA\n", - " US88031M1099\n", + " 11\n", + " TERNIUM S.A.\n", + " US8808901081\n", " Steel\n", - " 1.78307710100653 percent\n", - " 1.65 delta_degree_Celsius\n", + " 2.6825715373130827 percent\n", + " 1.71 delta_degree_Celsius\n", " NaN\n", - " 2.22\n", + " 2.91\n", " \n", " \n", - " 29\n", - " UNITED STATES STEEL CORP\n", - " US9129091081\n", + " 16\n", + " WORTHINGTON INDUSTRIES INC\n", + " US9818111026\n", " Steel\n", - " 1.6158581353389285 percent\n", - " 1.52 delta_degree_Celsius\n", + " 2.4097283052012206 percent\n", + " 1.28 delta_degree_Celsius\n", " 0.01\n", - " 2.19\n", + " 3.50\n", " \n", " \n", - " 33\n", - " GERDAU S.A.\n", - " US3737371050\n", + " 19\n", + " TIMKENSTEEL CORP\n", + " US8873991033\n", " Steel\n", - " 1.1914905073392856 percent\n", - " 1.64 delta_degree_Celsius\n", + " 2.155217880316027 percent\n", + " 1.45 delta_degree_Celsius\n", + " 0.06\n", + " 2.76\n", + " \n", + " \n", + " 27\n", + " COMMERCIAL METALS CO\n", + " US2017231034\n", + " Steel\n", + " 1.7124423388973957 percent\n", + " 1.45 delta_degree_Celsius\n", " 0.01\n", - " 1.49\n", + " 2.19\n", " \n", " \n", - " 36\n", + " 30\n", " NUCOR CORP\n", " US6703461052\n", " Steel\n", - " 1.0108766558572626 percent\n", - " 1.43 delta_degree_Celsius\n", + " 1.572935428254485 percent\n", + " 1.54 delta_degree_Celsius\n", " 0.00\n", - " 1.45\n", + " 1.90\n", " \n", " \n", - " 37\n", - " TIMKENSTEEL CORP\n", - " US8873991033\n", + " 31\n", + " CARPENTER TECHNOLOGY CORP\n", + " US1442851036\n", " Steel\n", - " 0.9797138254089452 percent\n", - " 1.45 delta_degree_Celsius\n", - " 0.06\n", - " 1.39\n", + " 1.517749452365582 percent\n", + " 1.63 delta_degree_Celsius\n", + " 0.01\n", + " 1.73\n", " \n", " \n", - " 39\n", - " POSCO\n", - " KR7005490008\n", + " 36\n", + " TENARIS SA\n", + " US88031M1099\n", " Steel\n", - " 0.9013675326237647 percent\n", - " 1.72 delta_degree_Celsius\n", - " 0.00\n", - " 1.08\n", + " 1.087150770482239 percent\n", + " 1.58 delta_degree_Celsius\n", + " NaN\n", + " 1.28\n", " \n", " \n", "\n", "" ], "text/plain": [ - " company_name company_id sector \\\n", - "18 STEEL DYNAMICS INC US8581191009 Steel \n", - "22 CARPENTER TECHNOLOGY CORP US1442851036 Steel \n", - "24 COMMERCIAL METALS CO US2017231034 Steel \n", - "25 TENARIS SA US88031M1099 Steel \n", - "29 UNITED STATES STEEL CORP US9129091081 Steel \n", - "33 GERDAU S.A. US3737371050 Steel \n", - "36 NUCOR CORP US6703461052 Steel \n", - "37 TIMKENSTEEL CORP US8873991033 Steel \n", - "39 POSCO KR7005490008 Steel \n", + " company_name company_id sector \\\n", + "4 NIPPON STEEL CORP JP3381000003 Steel \n", + "8 UNITED STATES STEEL CORP US9129091081 Steel \n", + "10 POSCO KR7005490008 Steel \n", + "11 TERNIUM S.A. US8808901081 Steel \n", + "16 WORTHINGTON INDUSTRIES INC US9818111026 Steel \n", + "19 TIMKENSTEEL CORP US8873991033 Steel \n", + "27 COMMERCIAL METALS CO US2017231034 Steel \n", + "30 NUCOR CORP US6703461052 Steel \n", + "31 CARPENTER TECHNOLOGY CORP US1442851036 Steel \n", + "36 TENARIS SA US88031M1099 Steel \n", "\n", " contribution temperature_score \\\n", - "18 2.1980042601105136 percent 1.65 delta_degree_Celsius \n", - "22 1.9280378585340923 percent 1.72 delta_degree_Celsius \n", - "24 1.8597745540469062 percent 1.41 delta_degree_Celsius \n", - "25 1.78307710100653 percent 1.65 delta_degree_Celsius \n", - "29 1.6158581353389285 percent 1.52 delta_degree_Celsius \n", - "33 1.1914905073392856 percent 1.64 delta_degree_Celsius \n", - "36 1.0108766558572626 percent 1.43 delta_degree_Celsius \n", - "37 0.9797138254089452 percent 1.45 delta_degree_Celsius \n", - "39 0.9013675326237647 percent 1.72 delta_degree_Celsius \n", + "4 3.3870401057008093 percent 1.81 delta_degree_Celsius \n", + "8 2.973857467344226 percent 1.54 delta_degree_Celsius \n", + "10 2.7351925482594566 percent 1.83 delta_degree_Celsius \n", + "11 2.6825715373130827 percent 1.71 delta_degree_Celsius \n", + "16 2.4097283052012206 percent 1.28 delta_degree_Celsius \n", + "19 2.155217880316027 percent 1.45 delta_degree_Celsius \n", + "27 1.7124423388973957 percent 1.45 delta_degree_Celsius \n", + "30 1.572935428254485 percent 1.54 delta_degree_Celsius \n", + "31 1.517749452365582 percent 1.63 delta_degree_Celsius \n", + "36 1.087150770482239 percent 1.58 delta_degree_Celsius \n", "\n", " ownership_percentage portfolio_percentage \n", - "18 0.00 2.74 \n", - "22 0.01 2.30 \n", - "24 0.01 2.71 \n", - "25 NaN 2.22 \n", - "29 0.01 2.19 \n", - "33 0.01 1.49 \n", - "36 0.00 1.45 \n", - "37 0.06 1.39 \n", - "39 0.00 1.08 " + "4 26.74 3.48 \n", + "8 0.01 3.59 \n", + "10 0.00 2.78 \n", + "11 NaN 2.91 \n", + "16 0.01 3.50 \n", + "19 0.06 2.76 \n", + "27 0.01 2.19 \n", + "30 0.00 1.90 \n", + "31 0.01 1.73 \n", + "36 NaN 1.28 " ] }, "execution_count": 21, @@ -1377,9 +1461,9 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.10.2" + "version": "3.8.8" } }, "nbformat": 4, "nbformat_minor": 4 -} \ No newline at end of file +} From eed642ead6ff919b78cb6544d7314801711d8be9 Mon Sep 17 00:00:00 2001 From: MichaelTiemannOSC Date: Mon, 18 Apr 2022 13:05:54 +0000 Subject: [PATCH 199/345] Update to latest input spreadsheet Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- .../data/20220415 ITR Tool Sample Data.xlsx | Bin 69751 -> 69847 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/examples/data/20220415 ITR Tool Sample Data.xlsx b/examples/data/20220415 ITR Tool Sample Data.xlsx index 68be034c18eba61bc3b3d007bb4776846e79171a..6218aaa585e0f042cb73740db21071f039d9e297 100644 GIT binary patch delta 21560 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 delta 21437 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 Date: Tue, 3 May 2022 07:45:12 -0400 Subject: [PATCH 200/345] WIP now passes test_vault_providers testcase With latest pint-iceberg data pipeline and these changes, the test_vault_providers testcase passes. This means we have unitized data in the data vault! Signed-off-by: MichaelTiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- ITR/data/vault_providers.py | 226 ++++++++++++++++++++++++++--------- test/test_vault_providers.py | 13 +- 2 files changed, 175 insertions(+), 64 deletions(-) diff --git a/ITR/data/vault_providers.py b/ITR/data/vault_providers.py index f4f5ea6f..55d5d126 100644 --- a/ITR/data/vault_providers.py +++ b/ITR/data/vault_providers.py @@ -20,24 +20,125 @@ from typing import List, Type from ITR.configs import ColumnsConfig, TemperatureScoreConfig from ITR.data.data_providers import CompanyDataProvider, ProductionBenchmarkDataProvider, \ - IntensityBenchmarkDataProvider, EmissionIntensityProjector + IntensityBenchmarkDataProvider from ITR.data.data_warehouse import DataWarehouse -from ITR.interfaces import ICompanyData, EScope, IProductionBenchmarkScopes, IEmissionIntensityBenchmarkScopes, \ +from ITR.interfaces import ICompanyData, EScope, IProductionBenchmarkScopes, IEIBenchmarkScopes, \ IBenchmark, ICompanyAggregates -import boto3 -s3 = boto3.resource( - service_name="s3", - endpoint_url=os.environ["S3_DEV_ENDPOINT"], - aws_access_key_id=os.environ["S3_DEV_ACCESS_KEY"], - aws_secret_access_key=os.environ["S3_DEV_SECRET_KEY"], -) -trino_bucket = s3.Bucket(os.environ["S3_DEV_BUCKET"]) - # TODO handling of scopes in benchmarks # TODO handle ways to append information (from other providers, other benchmarks, new scope info, new corp data updates, etc) +import trino +from sqlalchemy.engine import create_engine +from pint import Quantity +from pint_pandas import PintArray + +ingest_catalog = 'osc_datacommons_dev' +ingest_schema = 'sandbox' +demo_schema = 'demo_dv' + +sqlstring = 'trino://{user}@{host}:{port}/'.format( + user = os.environ['TRINO_USER'], + host = os.environ['TRINO_HOST'], + port = os.environ['TRINO_PORT'] +) +sqlargs = { + 'auth': trino.auth.JWTAuthentication(os.environ['TRINO_PASSWD']), + 'http_scheme': 'https', + 'catalog': ingest_catalog, + 'schema': ingest_schema, +} +engine = create_engine(sqlstring, connect_args = sqlargs) +connection = engine.connect() + +# If DF_COL contains Pint quantities (because it is a PintArray or an array of Pint Quantities), +# return a two-column dataframe of magnitudes and units. +# If DF_COL contains no Pint quanities, return it unchanged. +def dequantify_column(df_col: pd.Series) -> pd.DataFrame: + if type(df_col.values)==PintArray: + return pd.DataFrame({df_col.name: df_col.values.quantity.m, + df_col.name + "_units": str(df_col.values.dtype.units)}, + index=df_col.index) + elif df_col.size==0: + return df_col + elif isinstance(df_col.iloc[0], Quantity): + values = df_col.map(lambda x: (x.m, x.u)) + return pd.DataFrame({df_col.name: df_col.map(lambda x: x.m), + df_col.name + "_units": df_col.map(lambda x: str(x.u))}, + index=df_col.index) + else: + return df_col + +# Rewrite dataframe DF so that columns containing Pint quantities are represented by a column for the Magnitude and column for the Units. +# The magnitude column retains the original column name and the units column is renamed with a _units suffix. +def dequantify_df(df: pd.DataFrame) -> pd.DataFrame: + return pd.concat([dequantify_column(df[col]) for col in df.columns], axis=1) + +# Because this DF comes from reading a Trino table, and because columns must be unqiue, we don't have to enumerate to ensure we properly handle columns with duplicated names +def requantify_df(df: pd.DataFrame) -> pd.DataFrame: + units_col = None + columns_reversed = reversed(df.columns) + for col in columns_reversed: + if col.endswith("_units"): + if units_col: + # We expect _units column to follow a non-units column + raise ValueError + units_col = col + continue + if units_col: + if col + '_units' != units_col: + raise ValueError + if (df[units_col]==df[units_col][0]).all(): + # Make a PintArray + new_col = PintArray(df[col], dtype=f"pint[{ureg(df[units_col][0]).u}]") + else: + # Make a pd.Series of Quantity in a way that does not throw UnitStrippedWarning + new_col = pd.Series(data=df[col], name=col) * pd.Series(data=df[units_col].map(lambda x: ureg(x).u), name=col) + df = df.drop(columns=units_col) + df[col] = new_col + units_col = None + return df + +def create_table_from_df (df: pd.DataFrame, schemaname: str, tablename: str, engine: sqlalchemy.engine.base.Engine, verbose=False): + drop_table = f"drop table if exists {schemaname}.{tablename}" + qres = engine.execute(drop_table) + rows = qres.fetchall() + if verbose: + print(f"SQL: {drop_table}") + for row in rows: + print(f"SQL RESULT: {row}") + print(df.dtypes) + print(df.columns) + print(df.index) + new_df = dequantify_df (df) + new_df.to_sql(tablename, con=engine, schema=schemaname, if_exists='append', + index=False, + method=osc.TrinoBatchInsert(batch_size = 5000, verbose = True)) + +# When reading SQL tables to import into DataFrames, it is up to the user to preserve {COL}, {COL}_units pairings so they can be reconstructed. +# If the user does a naive "select * from ..." this happens naturally. +# We can give a warning when we see a resulting dataframe that could have, but does not have, unit information properly integrated. But +# fixing the query on the fly becomes difficult when we consider the fully complexity of parsing and rewriting SQL queries to put the units columns in the correct locations. +# (i.e., properly in the principal SELECT clause (which can have arbitrarily complex terms), not confused by FROM, WHERE, GROUP BY, ORDER BY, etc.) + +def read_quantified_sql (sql: str, schemaname, tablename, engine: sqlalchemy.engine.base.Engine, index_col=None) -> pd.DataFrame: + qres = engine.execute(f"describe {schemaname}.{tablename}") + # tabledesc will be a list of tuples (column, type, extra, comment) + colnames = [x[0] for x in qres.fetchall()] + # read columns normally...this will be missing any unit-related information + sql_df = pd.read_sql(sql, engine, index_col) + # if the query requests columns that don't otherwise bring unit information along with them, get that information too + extra_unit_columns = [ (i, f"{col}_units") for i, col in enumerate(sql_df.columns) if f"{col}_units" not in sql_df.columns and f"{col}_units" in colnames ] + if extra_unit_columns: + extra_unit_columns_positions = [ (i, extra_unit_columns[i][0], extra_unit_columns[i][1]) for i in range(len(extra_unit_columns)) ] + for col_tuple in extra_unit_columns_positions: + print(f"Missing units column '{col_tuple[2]}' after original column '{udf.columns[col_tuple[1]]}' (should be column #{col_tuple[0]+col_tuple[1]+1} in new query)") + raise ValueError + else: + return requantify_df(sql_df).convert_dtypes() + + # Basic Corp Data Asumptions # 5 year historical EI (else we presume single year is constant backward and forward) # 5 year historical Production (else we presume single year is constant backward and forward) @@ -72,21 +173,34 @@ def __init__(self, tempscore_config: Type[TemperatureScoreConfig] = TemperatureScoreConfig): super().__init__() self._engine = engine - self._schema = company_schema or engine.dialect.default_schema_name or 'demo' + self._schema = company_schema or engine.dialect.default_schema_name or 'demo_dv' self._company_table = company_table self.column_config = column_config self.temp_config = tempscore_config # Validate and complete the projected trajectories - self._intensity_table = target_table or company_table.replace('company_', 'intensity_') + self._target_table = target_table or company_table.replace('company_', 'target_') self._trajectory_table = trajectory_table or company_table.replace('company_', 'trajectory_') self._production_table = company_table.replace('company_', 'production_') self._emissions_table = company_table.replace('company_', 'emissions_') companies_without_projections = self._engine.execute(f""" -select C.company_name, C.company_id from {self._schema}.{self._company_table} C left join {self._schema}.{self._intensity_table} EI on EI.company_name=C.company_name -where EI.co2_intensity_target_by_year is NULL +select C.company_name, C.company_id from {self._schema}.{self._company_table} C left join {self._schema}.{self._target_table} EI on EI.company_name=C.company_name +where EI.ei_s1_by_year is NULL """).fetchall() assert len(companies_without_projections)==0, f"Provide either historic emissions data or projections for companies with IDs {companies_without_projections}" + # Copied from BaseCompanyDataProvider, and needed because VaultDataWarehouse is initialized from DataWarehouse. + # It's just a stub because the DataVault has all projections. + def _calculate_target_projections(self, + production_bm, + EI_bm): + """ + This is just a stub. We don't interpret these parameters. + + :param Production_bm: A Production Benchmark (multi-sector, single-scope, 2020-2050) + :param EI_bm: An Emissions Intensity Benchmark (multi-sector, single-scope, 2020-2050) + """ + return + # The factors one would want to sum over companies for weighting purposes are: # * market_cap_usd # * enterprise_value_usd @@ -101,7 +215,7 @@ def sum_over_companies(self, company_ids: List[str], year: int, factor: str, sco elif factor=='emissions': # TODO: properly interpret SCOPE parameter assert scope==EScope.S1S2 - qres = self._engine.execute(f"select sum(co2_target_by_year) as {factor}_sum from {self._schema}.{self._emissions_table} where year={year}") + qres = self._engine.execute(f"select sum(co2_s1_by_year+co2_s2_by_year) as {factor}_sum from {self._schema}.{self._emissions_table} where year={year}") else: qres = self._engine.execute(f"select sum({factor}) as {factor}_sum from {self._schema}.{self._company_table} where year={year}") sres = qres.fetchall() @@ -120,7 +234,7 @@ def compute_portfolio_weights(self, pa_temp_scores: pd.Series, year: int, factor elif factor=='emissions': # TODO: properly interpret SCOPE parameter assert scope==EScope.S1S2 - qres = self._engine.execute(f"select company_id, sum(co2_target_by_year) as {factor} from {self._schema}.{self._emissions_table} where year={year} group by company_id") + qres = self._engine.execute(f"select company_id, sum(co2_s1_by_year+co2_s2_by_year) as {factor} from {self._schema}.{self._emissions_table} where year={year} group by company_id") else: qres = self._engine.execute(f"select company_id, sum({factor}) as {factor} from {self._schema}.{self._company_table} group by company_id") sres = qres.fetchall() @@ -166,11 +280,11 @@ def get_company_fundamentals(self, company_ids: List[str]) -> pd.DataFrame: """ or_clause = ' or '.join([f"company_id = '{c}'" for c in company_ids]) sql = f"select * from {self._schema}.{self._company_table} where {or_clause}" - df = pd.read_sql(sql, self._engine) + df = read_quantified_sql(sql, self._company_table, self._schema, self._engine) # df = df.drop(columns=['projected_targets', 'projected_intensities']) return df - def get_company_projected_intensities(self, company_ids: List[str]) -> pd.DataFrame: + def get_company_projected_trajectories(self, company_ids: List[str]) -> pd.DataFrame: """ :param company_ids: A list of company IDs :return: A pandas DataFrame with projected intensities per company @@ -185,6 +299,7 @@ def get_company_projected_targets(self, company_ids: List[str]) -> pd.DataFrame: raise NotImplementedError + benchmark_scopes = ['S1S2', 'S3', 'S1S2S3'] class VaultProviderProductionBenchmark(ProductionBenchmarkDataProvider): @@ -207,9 +322,8 @@ def __init__(self, column_config=column_config, tempscore_config=tempscore_config) self._engine=engine - self._schema = ingest_schema or engine.dialect.default_schema_name or 'demo' + self._schema = ingest_schema or engine.dialect.default_schema_name or 'demo_dv' self.benchmark_name=benchmark_name - qres = self._engine.execute(f"drop table if exists itr_mdt.{benchmark_name}") qres = self._engine.execute(f"drop table if exists {self._schema}.{benchmark_name}") qres.fetchall() df = pd.DataFrame() @@ -225,9 +339,7 @@ def __init__(self, df.reset_index(inplace=True) df.rename(columns={'index':'year'}, inplace=True) df = df.convert_dtypes() - osc.ingest_unmanaged_parquet(df, self._schema, benchmark_name, trino_bucket) - qres = engine.execute(osc.unmanaged_parquet_tabledef(df, ingest_catalog, self._schema, benchmark_name, trino_bucket)) - print(qres.fetchall()) + create_table_from_df (df, self._schema, benchmark_name, engine) def get_company_projected_production(self, ghg_scope12: pd.DataFrame) -> pd.DataFrame: """ @@ -269,16 +381,15 @@ class VaultProviderIntensityBenchmark(IntensityBenchmarkDataProvider): def __init__(self, engine: sqlalchemy.engine.base.Engine, benchmark_name: str, - EI_benchmarks: IEmissionIntensityBenchmarkScopes, + EI_benchmarks: IEIBenchmarkScopes, ingest_schema: str = None, column_config: Type[ColumnsConfig] = ColumnsConfig, tempscore_config: Type[TemperatureScoreConfig] = TemperatureScoreConfig): super().__init__(EI_benchmarks.benchmark_temperature, EI_benchmarks.benchmark_global_budget, EI_benchmarks.is_AFOLU_included) self._engine=engine - self._schema = ingest_schema or engine.dialect.default_schema_name or 'demo' + self._schema = ingest_schema or engine.dialect.default_schema_name or 'demo_dv' self.benchmark_name = benchmark_name - osc.drop_unmanaged_table(ingest_catalog, self._schema, benchmark_name, engine, trino_bucket) df = pd.DataFrame() for scope in benchmark_scopes: if EI_benchmarks.dict()[scope] is None: @@ -292,9 +403,7 @@ def __init__(self, df.reset_index(inplace=True) df.rename(columns={'index':'year'}, inplace=True) df = df.convert_dtypes() - osc.ingest_unmanaged_parquet(df, self._schema, benchmark_name, trino_bucket) - qres = engine.execute(osc.unmanaged_parquet_tabledef(df, ingest_catalog, self._schema, benchmark_name, trino_bucket)) - print(qres.fetchall()) + create_table_from_df(df, self._schema, benchmark_name, engine) def get_SDA_intensity_benchmarks(self, company_info_at_base_year: pd.DataFrame) -> pd.DataFrame: @@ -381,68 +490,69 @@ def _get_intensity_benchmarks(self, company_sector_region_info: pd.DataFrame, return benchmark_projection class DataVaultWarehouse(DataWarehouse): - def __init__(self, engine: sqlalchemy.engine.base.Engine, company_data: VaultCompanyDataProvider, benchmark_projected_production: ProductionBenchmarkDataProvider, - benchmarks_projected_emissions_intensity: IntensityBenchmarkDataProvider, + benchmarks_projected_ei: IntensityBenchmarkDataProvider, ingest_schema: str = None, column_config: Type[ColumnsConfig] = ColumnsConfig, tempscore_config: Type[TemperatureScoreConfig] = TemperatureScoreConfig): super().__init__(company_data=company_data, benchmark_projected_production=benchmark_projected_production, - benchmarks_projected_emissions_intensity=benchmarks_projected_emissions_intensity, + benchmarks_projected_ei=benchmarks_projected_ei, column_config=column_config, tempscore_config=tempscore_config) self._engine=engine - self._schema = ingest_schema or engine.dialect.default_schema_name or 'demo' - # intensity_projections = pd.read_sql(f"select * from {self._schema}.{intensity_table}", self._engine) + self._schema = ingest_schema or engine.dialect.default_schema_name or 'demo_dv' + # intensity_projections = read_quantified_sql(f"select * from {self._schema}.{self._target_table}", self._target_table, self._schema, self._engine) # intensity_projections['scope'] = 'S1+S2' # intensity_projections['source'] = self._schema # If there's no company data, we are just using the vault, not initializing it if company_data==None: return - if benchmark_projected_production is None and benchmarks_projected_emissions_intensity is None: + if benchmark_projected_production is None and benchmarks_projected_ei is None: return # The DataVaultWarehouse provides three calculations per company: # * Cumulative trajectory of emissions # * Cumulative target of emissions # * Cumulative budget of emissions (separately for each benchmark) - for t in ['cumulative_emissions', 'cumulative_budget_1']: - osc.drop_unmanaged_table(ingest_catalog, self._schema, t, engine, trino_bucket) + qres = self._engine.execute("drop table if exists cumulative_emissions") + qres.fetchall() qres = self._engine.execute(f""" create table cumulative_emissions with ( - format = 'parquet', - external_location = 's3a://{trino_bucket.name}/trino/{self._schema}/cumulative_emissions/' + format = 'ORC', + partitioning = array['scope'] ) as select C.company_name, C.company_id, '{company_data._schema}' as source, 'S1+S2' as scope, - sum(ET.co2_intensity_trajectory_by_year * P.production_by_year) as cumulative_trajectory, - sum(EI.co2_intensity_target_by_year * P.production_by_year) as cumulative_target + sum((ET.ei_s1_by_year+ET.ei_s2_by_year) * P.production_by_year) as cumulative_trajectory, + sum((EI.ei_s1_by_year+EI.ei_s2_by_year) * P.production_by_year) as cumulative_target from {company_data._schema}.{company_data._company_table} C join {company_data._schema}.{company_data._production_table} P on P.company_name=C.company_name - join {company_data._schema}.{company_data._intensity_table} EI on EI.company_name=C.company_name and EI.year=P.year + join {company_data._schema}.{company_data._target_table} EI on EI.company_name=C.company_name and EI.year=P.year join {company_data._schema}.{company_data._trajectory_table} ET on ET.company_name=C.company_name and ET.year=P.year where P.year>=2020 group by C.company_name, C.company_id, '{company_data._schema}', 'S1+S2' """) # Need to fetch so table created above is established before using in query below qres.fetchall() + + qres = self._engine.execute("drop table if exists cumulative_budget_1") + qres.fetchall() qres = self._engine.execute(f""" create table cumulative_budget_1 with ( - format = 'parquet', - external_location = 's3a://{trino_bucket.name}/trino/{self._schema}/cumulative_budget_1/' + format = 'ORC', + partitioning = array['scope'] ) as select C.company_name, C.company_id, '{company_data._schema}' as source, 'S1+S2' as scope, 'benchmark_1' as benchmark, B.global_budget, B.benchmark_temp, sum(B.intensity * P.production_by_year) as cumulative_budget from {company_data._schema}.{company_data._company_table} C join {company_data._schema}.{company_data._production_table} P on P.company_name=C.company_name - join demo.isic_to_sector I2S on C.isic=I2S.isic - join {self._schema}.benchmark_ei B on P.year=B.year and C.region=B.region and I2S.sector=B.sector + join {self._schema}.benchmark_ei B on P.year=B.year and C.region=B.region and C.sector=B.sector where P.year>=2020 group by C.company_name, C.company_id, '{company_data._schema}', 'S1+S2', 'benchmark_1', B.global_budget, B.benchmark_temp """) @@ -457,13 +567,12 @@ def quant_init(self, # * Target and Trajectory overshoot ratios # * Temperature Scores - for t in ['overshoot_ratios', 'temperature_scores']: - osc.drop_unmanaged_table(ingest_catalog, self._schema, t, engine, trino_bucket) - + qres = self._engine.execute("drop table if exists overshoot_ratios") + qres.fetchall() qres = self._engine.execute(f""" create table overshoot_ratios with ( - format = 'parquet', - external_location = 's3a://{trino_bucket.name}/trino/{self._schema}/overshoot_ratios/' + format = 'ORC', + partitioning = array['scope'] ) as select E.company_name, E.company_id, '{company_data._schema}' as source, 'S1+S2' as scope, 'benchmark_1' as benchmark, B.global_budget, B.benchmark_temp, @@ -474,10 +583,13 @@ def quant_init(self, """) # Need to fetch so table created above is established so later queries can use it qres.fetchall() + + qres = self._engine.execute("drop table if exists temperature_scores") + qres.fetchall() qres = self._engine.execute(f""" create table temperature_scores with ( - format = 'parquet', - external_location = 's3a://{trino_bucket.name}/trino/{self._schema}/temperature_scores/' + format = 'ORC', + partitioning = array['scope'] ) as select R.company_name, R.company_id, '{company_data._schema}' as source, 'S1+S2' as scope, 'benchmark_1' as benchmark, R.benchmark_temp + R.global_budget * (R.trajectory_overshoot_ratio-1) * 2.2/3664.0 as trajectory_temperature_score, @@ -494,10 +606,10 @@ def get_preprocessed_company_data(self, company_ids: List[str]) -> List[ICompany def get_pa_temp_scores(self, probability: float, company_ids: List[str]) -> pd.Series: if probability < 0 or probability > 1: raise ValueError(f"probability value {probability} outside range [0.0, 1.0]") - temp_scores = pd.read_sql(f"select company_id, target_temperature_score, trajectory_temperature_score from {self._schema}.temperature_scores", - self._engine, index_col='company_id') + temp_scores = read_quantified_sql(f"select company_id, target_temperature_score, trajectory_temperature_score from {self._schema}.temperature_scores", + 'temperature_scores', self._schema, self._engine, index_col='company_id') # We may have company_ids in our portfolio not in our database, and vice-versa. # Return proper pa_temp_scores for what we can find, and np.nan for those we cannot retval = pd.Series(data=None, index=company_ids, dtype='float64') retval.loc[retval.index.intersection(temp_scores.index)] = temp_scores.target_temperature_score*probability + temp_scores.trajectory_temperature_score*(1-probability) - return retval \ No newline at end of file + return retval diff --git a/test/test_vault_providers.py b/test/test_vault_providers.py index 6893d4e1..cc4e2e16 100644 --- a/test/test_vault_providers.py +++ b/test/test_vault_providers.py @@ -12,15 +12,16 @@ from ITR.data.data_warehouse import DataWarehouse from ITR.data.vault_providers import VaultCompanyDataProvider, VaultProviderProductionBenchmark, \ VaultProviderIntensityBenchmark, DataVaultWarehouse -from ITR.interfaces import ICompanyData, EScope, ETimeFrames, PortfolioCompany, IEmissionIntensityBenchmarkScopes, \ +from ITR.interfaces import ICompanyData, EScope, ETimeFrames, PortfolioCompany, IEIBenchmarkScopes, \ IProductionBenchmarkScopes +from dotenv import load_dotenv import trino import osc_ingest_trino as osc from sqlalchemy.engine import create_engine ingest_catalog = 'osc_datacommons_dev' -ingest_schema = 'demo' +demo_schema = 'demo_dv' dotenv_dir = os.environ.get('CREDENTIAL_DOTENV_DIR', os.environ.get('PWD', '/opt/app-root/src')) dotenv_path = pathlib.Path(dotenv_dir) / 'credentials.env' @@ -36,13 +37,11 @@ 'auth': trino.auth.JWTAuthentication(os.environ['TRINO_PASSWD_USER1']), 'http_scheme': 'https', 'catalog': ingest_catalog, - 'schema': ingest_schema, + 'schema': demo_schema, } engine_init = create_engine(sqlstring, connect_args = sqlargs) print("connecting with engine " + str(engine_init)) connection_init = engine_init.connect() -qres = engine_init.execute(f"create schema if not exists {ingest_schema}") -print(qres.fetchall()) class TestVaultProvider(unittest.TestCase): """ @@ -63,12 +62,12 @@ def setUp(self) -> None: # load intensity benchmarks with open(self.benchmark_EI_json) as json_file: parsed_json = json.load(json_file) - ei_bms = IEmissionIntensityBenchmarkScopes.parse_obj(parsed_json) + ei_bms = IEIBenchmarkScopes.parse_obj(parsed_json) self.vault_EI_bm = VaultProviderIntensityBenchmark(engine_init, benchmark_name="benchmark_ei", EI_benchmarks=ei_bms) # load company data # TODO: ISIC code should read as int, not float - self.vault_company_data = VaultCompanyDataProvider(engine_init, "rmi_company_data") + self.vault_company_data = VaultCompanyDataProvider(engine_init, "company_data") self.vault_warehouse = DataVaultWarehouse(engine_init, self.vault_company_data, self.vault_production_bm, self.vault_EI_bm) From 13bc7fae9a78f887fda9f0a348e1738ed262a9ce Mon Sep 17 00:00:00 2001 From: MichaelTiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> Date: Tue, 3 May 2022 13:07:33 -0400 Subject: [PATCH 201/345] Better way around unifying Base and Vault Warehouses Test whether company_data is None before trying to compute projections. Signed-off-by: MichaelTiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- ITR/data/data_warehouse.py | 3 ++- ITR/data/vault_providers.py | 13 ------------- 2 files changed, 2 insertions(+), 14 deletions(-) diff --git a/ITR/data/data_warehouse.py b/ITR/data/data_warehouse.py index 47d06a9c..18e0fcae 100644 --- a/ITR/data/data_warehouse.py +++ b/ITR/data/data_warehouse.py @@ -39,7 +39,8 @@ def __init__(self, company_data: CompanyDataProvider, self.temp_config = tempscore_config self.column_config = column_config self.company_data = company_data - self.company_data._calculate_target_projections(benchmark_projected_production, benchmarks_projected_ei) + if company_data: + self.company_data._calculate_target_projections(benchmark_projected_production, benchmarks_projected_ei) def get_preprocessed_company_data(self, company_ids: List[str]) -> List[ICompanyAggregates]: """ diff --git a/ITR/data/vault_providers.py b/ITR/data/vault_providers.py index 55d5d126..704f0050 100644 --- a/ITR/data/vault_providers.py +++ b/ITR/data/vault_providers.py @@ -188,19 +188,6 @@ def __init__(self, """).fetchall() assert len(companies_without_projections)==0, f"Provide either historic emissions data or projections for companies with IDs {companies_without_projections}" - # Copied from BaseCompanyDataProvider, and needed because VaultDataWarehouse is initialized from DataWarehouse. - # It's just a stub because the DataVault has all projections. - def _calculate_target_projections(self, - production_bm, - EI_bm): - """ - This is just a stub. We don't interpret these parameters. - - :param Production_bm: A Production Benchmark (multi-sector, single-scope, 2020-2050) - :param EI_bm: An Emissions Intensity Benchmark (multi-sector, single-scope, 2020-2050) - """ - return - # The factors one would want to sum over companies for weighting purposes are: # * market_cap_usd # * enterprise_value_usd From a163a3fd80e3d3f5f75558e4f3134e2a3ced6437 Mon Sep 17 00:00:00 2001 From: MichaelTiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> Date: Tue, 3 May 2022 13:10:02 -0400 Subject: [PATCH 202/345] Minor fixes Change schema name from devo -> demo_dv Change table name for target intensities from intensity_data to target_data DOES NOT YET BRING UNITS TO BEAR. Signed-off-by: MichaelTiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- examples/vault_demo_cleanup.ipynb | 82 +++++++--------------- examples/vault_demo_n0.ipynb | 110 +++++++++++++++++++----------- 2 files changed, 96 insertions(+), 96 deletions(-) diff --git a/examples/vault_demo_cleanup.ipynb b/examples/vault_demo_cleanup.ipynb index 2e044a3d..534fe849 100644 --- a/examples/vault_demo_cleanup.ipynb +++ b/examples/vault_demo_cleanup.ipynb @@ -50,7 +50,7 @@ ")\n", "\n", "ingest_catalog = 'osc_datacommons_dev'\n", - "ingest_schema = 'demo'\n", + "ingest_schema = 'demo_dv'\n", "\n", "sqlargs = {\n", " 'auth': trino.auth.JWTAuthentication(os.environ['TRINO_PASSWD']),\n", @@ -75,7 +75,7 @@ "id": "b83eb9bf-9ca2-4bba-a16d-662db030a2f6", "metadata": {}, "source": [ - "for table in ['company_data', 'emissions_data', 'intensity_data', 'production_data', 'trajectory_data']:\n", + "for table in ['company_data', 'emissions_data', 'target_data', 'production_data', 'trajectory_data']:\n", " print(f\"Dropping table {table}\")\n", " engine.execute(f\"drop table if exists {table}\").fetchall()" ] @@ -91,43 +91,28 @@ "output_type": "stream", "text": [ "Cleaning up Dev tables\n", - "connecting with engine Engine(trino://os-climate-user1@trino-secure-odh-trino.apps.odh-cl1.apps.os-climate.org:443/)\n" + "connecting with engine Engine(trino://os-climate-user1@trino-secure-odh-trino.apps.odh-cl2.apps.os-climate.org:443/)\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/Users/michael/opt/miniconda3/envs/ITR/lib/python3.10/site-packages/sqlalchemy_trino/dialect.py:259: SAWarning: Dialect trino:rest will not make use of SQL compilation caching as it does not set the 'supports_statement_cache' attribute to ``True``. This can have significant performance implications including some performance degradations in comparison to prior SQLAlchemy versions. Dialect maintainers should seek to set this attribute to True after appropriate development and testing for SQLAlchemy 1.4 caching support. Alternatively, this attribute may be set to False which will disable this warning. (Background on this error at: https://sqlalche.me/e/14/cprf)\n", + " res = connection.execute(sql.text(query)).scalar()\n" ] }, { "data": { "text/plain": [ - "[('benchmark_ei',),\n", - " ('benchmark_prod',),\n", - " ('cat',),\n", - " ('company_data',),\n", - " ('cumulative_budget_1',),\n", - " ('cumulative_emissions',),\n", - " ('data_vault',),\n", - " ('demo_metastore',),\n", + "[('company_data',),\n", " ('emissions_data',),\n", - " ('gleif_isin_lei',),\n", - " ('gppd',),\n", " ('intensity_data',),\n", " ('isic_to_sector',),\n", - " ('lei_isin',),\n", - " ('my_big_tbl_1',),\n", - " ('odsc_isin_reduction',),\n", - " ('odsc_isin_reduction_notebook',),\n", - " ('odsc_isin_reduction_notebook_pipeline1',),\n", - " ('odsc_rocks',),\n", - " ('odsc_roxx',),\n", - " ('odsc_xxx',),\n", - " ('osc_mlcop',),\n", - " ('osc_rocks',),\n", - " ('overshoot_ratios',),\n", - " ('parquet_partitions_tutorial',),\n", + " ('oecm_cumprod',),\n", " ('production_data',),\n", - " ('pudl_1995_al',),\n", - " ('temperature_scores',),\n", - " ('test3',),\n", - " ('trajectory_data',),\n", - " ('zztop',)]" + " ('target_data',),\n", + " ('trajectory_data',)]" ] }, "execution_count": 2, @@ -145,7 +130,7 @@ ")\n", "\n", "ingest_catalog = 'osc_datacommons_dev'\n", - "ingest_schema = 'demo'\n", + "ingest_schema = 'demo_dv'\n", "\n", "sqlargs = {\n", " 'auth': trino.auth.JWTAuthentication(os.environ['TRINO_PASSWD_USER1']),\n", @@ -195,39 +180,20 @@ "output_type": "stream", "text": [ "Cleaning up Quant tables\n", - "connecting with engine Engine(trino://os-climate-user2@trino-secure-odh-trino.apps.odh-cl1.apps.os-climate.org:443/)\n" + "connecting with engine Engine(trino://os-climate-user2@trino-secure-odh-trino.apps.odh-cl2.apps.os-climate.org:443/)\n" ] }, { "data": { "text/plain": [ - "[('cat',),\n", - " ('company_data',),\n", - " ('data_vault',),\n", - " ('demo_metastore',),\n", + "[('company_data',),\n", " ('emissions_data',),\n", - " ('gleif_isin_lei',),\n", - " ('gppd',),\n", " ('intensity_data',),\n", " ('isic_to_sector',),\n", - " ('lei_isin',),\n", - " ('my_big_tbl_1',),\n", - " ('odsc_isin_reduction',),\n", - " ('odsc_isin_reduction_notebook',),\n", - " ('odsc_isin_reduction_notebook_pipeline1',),\n", - " ('odsc_rocks',),\n", - " ('odsc_roxx',),\n", - " ('odsc_xxx',),\n", - " ('osc_mlcop',),\n", - " ('osc_rocks',),\n", - " ('overshoot_ratios',),\n", - " ('parquet_partitions_tutorial',),\n", + " ('oecm_cumprod',),\n", " ('production_data',),\n", - " ('pudl_1995_al',),\n", - " ('temperature_scores',),\n", - " ('test3',),\n", - " ('trajectory_data',),\n", - " ('zztop',)]" + " ('target_data',),\n", + " ('trajectory_data',)]" ] }, "execution_count": 4, @@ -245,7 +211,7 @@ ")\n", "\n", "ingest_catalog = 'osc_datacommons_dev'\n", - "ingest_schema = 'demo'\n", + "ingest_schema = 'demo_dv'\n", "\n", "sqlargs = {\n", " 'auth': trino.auth.JWTAuthentication(os.environ['TRINO_PASSWD_USER2']),\n", @@ -293,7 +259,7 @@ ], "metadata": { "kernelspec": { - "display_name": "Python 3", + "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, @@ -307,7 +273,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.8.3" + "version": "3.10.2" } }, "nbformat": 4, diff --git a/examples/vault_demo_n0.ipynb b/examples/vault_demo_n0.ipynb index 7419eda6..b9e909eb 100644 --- a/examples/vault_demo_n0.ipynb +++ b/examples/vault_demo_n0.ipynb @@ -93,37 +93,28 @@ "name": "stdout", "output_type": "stream", "text": [ - "connecting with engine Engine(trino://os-climate-user1@trino-secure-odh-trino.apps.odh-cl1.apps.os-climate.org:443/)\n" + "connecting with engine Engine(trino://os-climate-user1@trino-secure-odh-trino.apps.odh-cl2.apps.os-climate.org:443/)\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/Users/michael/opt/miniconda3/envs/ITR/lib/python3.10/site-packages/sqlalchemy_trino/dialect.py:259: SAWarning: Dialect trino:rest will not make use of SQL compilation caching as it does not set the 'supports_statement_cache' attribute to ``True``. This can have significant performance implications including some performance degradations in comparison to prior SQLAlchemy versions. Dialect maintainers should seek to set this attribute to True after appropriate development and testing for SQLAlchemy 1.4 caching support. Alternatively, this attribute may be set to False which will disable this warning. (Background on this error at: https://sqlalche.me/e/14/cprf)\n", + " res = connection.execute(sql.text(query)).scalar()\n" ] }, { "data": { "text/plain": [ - "[('cat',),\n", - " ('company_data',),\n", - " ('data_vault',),\n", - " ('demo_metastore',),\n", + "[('company_data',),\n", " ('emissions_data',),\n", - " ('gleif_isin_lei',),\n", - " ('gppd',),\n", " ('intensity_data',),\n", " ('isic_to_sector',),\n", - " ('lei_isin',),\n", - " ('my_big_tbl_1',),\n", - " ('odsc_isin_reduction',),\n", - " ('odsc_isin_reduction_notebook',),\n", - " ('odsc_isin_reduction_notebook_pipeline1',),\n", - " ('odsc_rocks',),\n", - " ('odsc_roxx',),\n", - " ('odsc_xxx',),\n", - " ('osc_mlcop',),\n", - " ('osc_rocks',),\n", - " ('parquet_partitions_tutorial',),\n", + " ('oecm_cumprod',),\n", " ('production_data',),\n", - " ('pudl_1995_al',),\n", - " ('test3',),\n", - " ('trajectory_data',),\n", - " ('zztop',)]" + " ('target_data',),\n", + " ('trajectory_data',)]" ] }, "execution_count": 2, @@ -139,7 +130,7 @@ ")\n", "\n", "ingest_catalog = 'osc_datacommons_dev'\n", - "ingest_schema = 'demo'\n", + "ingest_schema = 'demo_dv'\n", "\n", "sqlargs = {\n", " 'auth': trino.auth.JWTAuthentication(os.environ['TRINO_PASSWD_USER1']),\n", @@ -169,7 +160,16 @@ "execution_count": 3, "id": "969b6d53-49d8-47d9-b218-6bdd790a7de4", "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/Users/michael/opt/miniconda3/envs/ITR/lib/python3.10/site-packages/sqlalchemy_trino/dialect.py:259: SAWarning: Dialect trino:rest will not make use of SQL compilation caching as it does not set the 'supports_statement_cache' attribute to ``True``. This can have significant performance implications including some performance degradations in comparison to prior SQLAlchemy versions. Dialect maintainers should seek to set this attribute to True after appropriate development and testing for SQLAlchemy 1.4 caching support. Alternatively, this attribute may be set to False which will disable this warning. (Background on this error at: https://sqlalche.me/e/14/cprf)\n", + " res = connection.execute(sql.text(query)).scalar()\n" + ] + } + ], "source": [ "import json\n", "import pandas as pd\n", @@ -182,9 +182,9 @@ "# from ITR.data.data_warehouse import DataWarehouse\n", "from ITR.data.vault_providers import VaultCompanyDataProvider, VaultProviderProductionBenchmark, \\\n", " VaultProviderIntensityBenchmark, DataVaultWarehouse\n", - "# from ITR.interfaces import ICompanyData, EScope, ETimeFrames, PortfolioCompany, IEmissionIntensityBenchmarkScopes, \\\n", + "# from ITR.interfaces import ICompanyData, EScope, ETimeFrames, PortfolioCompany, IEIBenchmarkScopes, \\\n", "# IProductionBenchmarkScopes\n", - "from ITR.interfaces import EScope, IProductionBenchmarkScopes, IEmissionIntensityBenchmarkScopes" + "from ITR.interfaces import EScope, IProductionBenchmarkScopes, IEIBenchmarkScopes" ] }, { @@ -201,7 +201,7 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 12, "id": "f0f02443-0f8f-4ee1-aa23-f59a9250615f", "metadata": {}, "outputs": [ @@ -209,13 +209,47 @@ "name": "stdout", "output_type": "stream", "text": [ - "[(True,)]\n", - "[(True,)]\n" + "year Int64\n", + "production object\n", + "region string\n", + "sector string\n", + "scope string\n", + "dtype: object\n", + "Index(['year', 'production', 'region', 'sector', 'scope'], dtype='object')\n", + "RangeIndex(start=0, stop=192, step=1)\n", + "constructed fully qualified table name as: \"demo_dv.benchmark_prod\"\n", + "inserting 192 records\n", + " (2019, 0.0, 'dimensionless', 'Global', 'Steel', 'S1S2')\n", + " (2020, 0.015, 'dimensionless', 'Global', 'Steel', 'S1S2')\n", + " (2021, 0.015, 'dimensionless', 'Global', 'Steel', 'S1S2')\n", + " ...\n", + " (2050, 0.0032269880188280364, 'dimensionless', 'North America', 'Electricity Utilities', 'S1S2')\n", + "batch insert result: [(192,)]\n", + "year Int64\n", + "intensity object\n", + "region string\n", + "sector string\n", + "scope string\n", + "global_budget object\n", + "benchmark_temp object\n", + "dtype: object\n", + "Index(['year', 'intensity', 'region', 'sector', 'scope', 'global_budget',\n", + " 'benchmark_temp'],\n", + " dtype='object')\n", + "RangeIndex(start=0, stop=192, step=1)\n", + "constructed fully qualified table name as: \"demo_dv.benchmark_ei\"\n", + "inserting 192 records\n", + " (2019, 3.3220564752850343, 'CO2 * metric_ton / Fe_ton', 'Global', 'Steel', 'S1S2', 396, 'CO2 * gigametric_ton', 1.5, 'delta_degree_Celsius')\n", + " (2020, 3.1503497972403762, 'CO2 * metric_ton / Fe_ton', 'Global', 'Steel', 'S1S2', 396, 'CO2 * gigametric_ton', 1.5, 'delta_degree_Celsius')\n", + " (2021, 3.0527921157410978, 'CO2 * metric_ton / Fe_ton', 'Global', 'Steel', 'S1S2', 396, 'CO2 * gigametric_ton', 1.5, 'delta_degree_Celsius')\n", + " ...\n", + " (2050, 0.005126295599844942, 'CO2 * metric_ton / megawatt_hour', 'North America', 'Electricity Utilities', 'S1S2', 396, 'CO2 * gigametric_ton', 1.5, 'delta_degree_Celsius')\n", + "batch insert result: [(192,)]\n" ] } ], "source": [ - "root = os.path.dirname(os.path.abspath(\"/opt/app-root/src/ITR/test/inputs\"))\n", + "root = root = os.path.dirname(os.getcwd()+ '/../test/')\n", "benchmark_prod_json = os.path.join(root, \"inputs\", \"json\", \"benchmark_production_OECM.json\")\n", "benchmark_EI_json = os.path.join(root, \"inputs\", \"json\", \"benchmark_EI_OECM.json\")\n", "\n", @@ -228,7 +262,7 @@ "# load intensity benchmarks\n", "with open(benchmark_EI_json) as json_file:\n", " parsed_json = json.load(json_file)\n", - "ei_bms = IEmissionIntensityBenchmarkScopes.parse_obj(parsed_json)\n", + "ei_bms = IEIBenchmarkScopes.parse_obj(parsed_json)\n", "vault_EI_bm = VaultProviderIntensityBenchmark(engine=engine_dev, benchmark_name=\"benchmark_ei\", EI_benchmarks=ei_bms)\n", "\n", "# load company data\n", @@ -245,7 +279,7 @@ "source": [ "### Step 3: Visualize Emissions, Targets, and Trajectories\n", "\n", - "SuperSet Dashboard here: https://superset-secure-odh-superset.apps.odh-cl1.apps.os-climate.org/superset/dashboard/17/?native_filters=%28%29" + "SuperSet Dashboard here (not really, not yet, but points to TRINO_USER dashboard, not TRINO_USER1 dashboard): https://superset-secure-odh-superset.apps.odh-cl2.apps.os-climate.org/superset/dashboard/4/?edit=true&native_filters=%28%29" ] }, { @@ -338,11 +372,11 @@ " 'auth': trino.auth.JWTAuthentication(os.environ['TRINO_PASSWD_USER2']),\n", " 'http_scheme': 'https',\n", " 'catalog': 'osc_datacommons_dev',\n", - " 'schema': 'demo',\n", + " 'schema': 'demo_dv',\n", "}\n", "\n", "ingest_catalog = 'osc_datacommons_dev'\n", - "ingest_schema = 'demo'\n", + "ingest_schema = 'demo_dv'\n", "\n", "engine_quant = create_engine(sqlstring, connect_args = sqlargs)\n", "print(\"connecting with engine \" + str(engine_quant))\n", @@ -439,11 +473,11 @@ " 'auth': trino.auth.JWTAuthentication(os.environ['TRINO_PASSWD_USER3']),\n", " 'http_scheme': 'https',\n", " 'catalog': 'osc_datacommons_dev',\n", - " 'schema': 'demo',\n", + " 'schema': 'demo_dv',\n", "}\n", "\n", "ingest_catalog = 'osc_datacommons_dev'\n", - "ingest_schema = 'demo'\n", + "ingest_schema = 'demo_dv'\n", "\n", "engine_user = create_engine(sqlstring, connect_args = sqlargs)\n", "print(\"connecting with engine \" + str(engine_user))\n", @@ -611,7 +645,7 @@ ], "metadata": { "kernelspec": { - "display_name": "Python 3", + "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, @@ -625,7 +659,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.8.3" + "version": "3.10.2" } }, "nbformat": 4, From df22cd1a82444f9d1a21b08a8e5018fb7c6869eb Mon Sep 17 00:00:00 2001 From: MichaelTiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> Date: Wed, 4 May 2022 08:51:00 -0400 Subject: [PATCH 203/345] Complete dissociation of vault "company_data" from baseprovider "company_data" Because the vault uses a fundamentally different data source for company data (based not on a Pydantic model object but rather based on a SQL table living in Trino), don't pass the company_data tablename to the initialization of the base class DataWarehouse. Pass None instead. Signed-off-by: MichaelTiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- ITR/data/vault_providers.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ITR/data/vault_providers.py b/ITR/data/vault_providers.py index 704f0050..5197fb81 100644 --- a/ITR/data/vault_providers.py +++ b/ITR/data/vault_providers.py @@ -485,7 +485,7 @@ def __init__(self, ingest_schema: str = None, column_config: Type[ColumnsConfig] = ColumnsConfig, tempscore_config: Type[TemperatureScoreConfig] = TemperatureScoreConfig): - super().__init__(company_data=company_data, + super().__init__(company_data=None, benchmark_projected_production=benchmark_projected_production, benchmarks_projected_ei=benchmarks_projected_ei, column_config=column_config, From 2b6a03885166b4c4e6e5656e6ea0ba0835f01d63 Mon Sep 17 00:00:00 2001 From: MichaelTiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> Date: Thu, 5 May 2022 08:55:49 -0400 Subject: [PATCH 204/345] Complete integration of Pint Units into DataVault prototype The Data Vault demonstration notesbooks now seem to work as before, but with Pint Units fully integrated. Signed-off-by: MichaelTiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- ITR/data/osc_units.py | 2 +- ITR/data/vault_providers.py | 36 +- examples/vault_demo_cleanup.ipynb | 14 +- examples/vault_demo_n0.ipynb | 353 +++- examples/vault_demo_n1.ipynb | 3046 +++++++++++++---------------- examples/vault_demo_n2.ipynb | 2100 +++++++++++--------- 6 files changed, 2885 insertions(+), 2666 deletions(-) diff --git a/ITR/data/osc_units.py b/ITR/data/osc_units.py index 38dc98c2..b80df3e0 100644 --- a/ITR/data/osc_units.py +++ b/ITR/data/osc_units.py @@ -2,7 +2,7 @@ This module handles initialization of pint functionality """ -from pint import set_application_registry +from pint import set_application_registry, Quantity from pint_pandas import PintArray, PintType from openscm_units import unit_registry PintType.ureg = unit_registry diff --git a/ITR/data/vault_providers.py b/ITR/data/vault_providers.py index 5197fb81..add36165 100644 --- a/ITR/data/vault_providers.py +++ b/ITR/data/vault_providers.py @@ -25,6 +25,8 @@ from ITR.interfaces import ICompanyData, EScope, IProductionBenchmarkScopes, IEIBenchmarkScopes, \ IBenchmark, ICompanyAggregates +from ITR.data.osc_units import * + # TODO handling of scopes in benchmarks # TODO handle ways to append information (from other providers, other benchmarks, new scope info, new corp data updates, etc) @@ -122,7 +124,7 @@ def create_table_from_df (df: pd.DataFrame, schemaname: str, tablename: str, eng # fixing the query on the fly becomes difficult when we consider the fully complexity of parsing and rewriting SQL queries to put the units columns in the correct locations. # (i.e., properly in the principal SELECT clause (which can have arbitrarily complex terms), not confused by FROM, WHERE, GROUP BY, ORDER BY, etc.) -def read_quantified_sql (sql: str, schemaname, tablename, engine: sqlalchemy.engine.base.Engine, index_col=None) -> pd.DataFrame: +def read_quantified_sql (sql: str, tablename, schemaname, engine: sqlalchemy.engine.base.Engine, index_col=None) -> pd.DataFrame: qres = engine.execute(f"describe {schemaname}.{tablename}") # tabledesc will be a list of tuples (column, type, extra, comment) colnames = [x[0] for x in qres.fetchall()] @@ -133,7 +135,7 @@ def read_quantified_sql (sql: str, schemaname, tablename, engine: sqlalchemy.eng if extra_unit_columns: extra_unit_columns_positions = [ (i, extra_unit_columns[i][0], extra_unit_columns[i][1]) for i in range(len(extra_unit_columns)) ] for col_tuple in extra_unit_columns_positions: - print(f"Missing units column '{col_tuple[2]}' after original column '{udf.columns[col_tuple[1]]}' (should be column #{col_tuple[0]+col_tuple[1]+1} in new query)") + print(f"Missing units column '{col_tuple[2]}' after original column '{sql_df.columns[col_tuple[1]]}' (should be column #{col_tuple[0]+col_tuple[1]+1} in new query)") raise ValueError else: return requantify_df(sql_df).convert_dtypes() @@ -202,7 +204,7 @@ def sum_over_companies(self, company_ids: List[str], year: int, factor: str, sco elif factor=='emissions': # TODO: properly interpret SCOPE parameter assert scope==EScope.S1S2 - qres = self._engine.execute(f"select sum(co2_s1_by_year+co2_s2_by_year) as {factor}_sum from {self._schema}.{self._emissions_table} where year={year}") + qres = self._engine.execute(f"select sum(co2_s1_by_year+if(is_nan(co2_s2_by_year),0.0,co2_s2_by_year)) as {factor}_sum from {self._schema}.{self._emissions_table} where year={year}") else: qres = self._engine.execute(f"select sum({factor}) as {factor}_sum from {self._schema}.{self._company_table} where year={year}") sres = qres.fetchall() @@ -221,7 +223,7 @@ def compute_portfolio_weights(self, pa_temp_scores: pd.Series, year: int, factor elif factor=='emissions': # TODO: properly interpret SCOPE parameter assert scope==EScope.S1S2 - qres = self._engine.execute(f"select company_id, sum(co2_s1_by_year+co2_s2_by_year) as {factor} from {self._schema}.{self._emissions_table} where year={year} group by company_id") + qres = self._engine.execute(f"select company_id, sum(co2_s1_by_year+if(is_nan(co2_s2_by_year),0.0,co2_s2_by_year)) as {factor} from {self._schema}.{self._emissions_table} where year={year} group by company_id") else: qres = self._engine.execute(f"select company_id, sum({factor}) as {factor} from {self._schema}.{self._company_table} group by company_id") sres = qres.fetchall() @@ -507,16 +509,16 @@ def __init__(self, # * Cumulative target of emissions # * Cumulative budget of emissions (separately for each benchmark) - qres = self._engine.execute("drop table if exists cumulative_emissions") + qres = self._engine.execute(f"drop table if exists {self._schema}.cumulative_emissions") qres.fetchall() qres = self._engine.execute(f""" -create table cumulative_emissions with ( +create table {self._schema}.cumulative_emissions with ( format = 'ORC', partitioning = array['scope'] ) as select C.company_name, C.company_id, '{company_data._schema}' as source, 'S1+S2' as scope, - sum((ET.ei_s1_by_year+ET.ei_s2_by_year) * P.production_by_year) as cumulative_trajectory, - sum((EI.ei_s1_by_year+EI.ei_s2_by_year) * P.production_by_year) as cumulative_target + sum((ET.ei_s1_by_year+if(is_nan(ET.ei_s2_by_year),0.0,ET.ei_s2_by_year)) * P.production_by_year) as cumulative_trajectory, + sum((EI.ei_s1_by_year+if(is_nan(EI.ei_s2_by_year),0.0,EI.ei_s2_by_year)) * P.production_by_year) as cumulative_target from {company_data._schema}.{company_data._company_table} C join {company_data._schema}.{company_data._production_table} P on P.company_name=C.company_name join {company_data._schema}.{company_data._target_table} EI on EI.company_name=C.company_name and EI.year=P.year @@ -527,10 +529,10 @@ def __init__(self, # Need to fetch so table created above is established before using in query below qres.fetchall() - qres = self._engine.execute("drop table if exists cumulative_budget_1") + qres = self._engine.execute(f"drop table if exists {self._schema}.cumulative_budget_1") qres.fetchall() qres = self._engine.execute(f""" -create table cumulative_budget_1 with ( +create table {self._schema}.cumulative_budget_1 with ( format = 'ORC', partitioning = array['scope'] ) as @@ -554,10 +556,10 @@ def quant_init(self, # * Target and Trajectory overshoot ratios # * Temperature Scores - qres = self._engine.execute("drop table if exists overshoot_ratios") + qres = self._engine.execute(f"drop table if exists {self._schema}.overshoot_ratios") qres.fetchall() qres = self._engine.execute(f""" -create table overshoot_ratios with ( +create table {self._schema}.overshoot_ratios with ( format = 'ORC', partitioning = array['scope'] ) as @@ -571,16 +573,18 @@ def quant_init(self, # Need to fetch so table created above is established so later queries can use it qres.fetchall() - qres = self._engine.execute("drop table if exists temperature_scores") + qres = self._engine.execute(f"drop table if exists {self._schema}.temperature_scores") qres.fetchall() qres = self._engine.execute(f""" -create table temperature_scores with ( +create table {self._schema}.temperature_scores with ( format = 'ORC', partitioning = array['scope'] ) as select R.company_name, R.company_id, '{company_data._schema}' as source, 'S1+S2' as scope, 'benchmark_1' as benchmark, R.benchmark_temp + R.global_budget * (R.trajectory_overshoot_ratio-1) * 2.2/3664.0 as trajectory_temperature_score, - R.benchmark_temp + R.global_budget * (R.target_overshoot_ratio-1) * 2.2/3664.0 as target_temperature_score + 'delta_degC' as trajectory_temperature_score_units, + R.benchmark_temp + R.global_budget * (R.target_overshoot_ratio-1) * 2.2/3664.0 as target_temperature_score, + 'delta_degC' as target_temperature_score_units from {self._schema}.overshoot_ratios R """) # Need to fetch so table created above is established before any might want to use later @@ -593,7 +597,7 @@ def get_preprocessed_company_data(self, company_ids: List[str]) -> List[ICompany def get_pa_temp_scores(self, probability: float, company_ids: List[str]) -> pd.Series: if probability < 0 or probability > 1: raise ValueError(f"probability value {probability} outside range [0.0, 1.0]") - temp_scores = read_quantified_sql(f"select company_id, target_temperature_score, trajectory_temperature_score from {self._schema}.temperature_scores", + temp_scores = read_quantified_sql(f"select company_id, target_temperature_score, target_temperature_score_units, trajectory_temperature_score, trajectory_temperature_score_units from {self._schema}.temperature_scores", 'temperature_scores', self._schema, self._engine, index_col='company_id') # We may have company_ids in our portfolio not in our database, and vice-versa. # Return proper pa_temp_scores for what we can find, and np.nan for those we cannot diff --git a/examples/vault_demo_cleanup.ipynb b/examples/vault_demo_cleanup.ipynb index 534fe849..e6429ae1 100644 --- a/examples/vault_demo_cleanup.ipynb +++ b/examples/vault_demo_cleanup.ipynb @@ -98,20 +98,25 @@ "name": "stderr", "output_type": "stream", "text": [ - "/Users/michael/opt/miniconda3/envs/ITR/lib/python3.10/site-packages/sqlalchemy_trino/dialect.py:259: SAWarning: Dialect trino:rest will not make use of SQL compilation caching as it does not set the 'supports_statement_cache' attribute to ``True``. This can have significant performance implications including some performance degradations in comparison to prior SQLAlchemy versions. Dialect maintainers should seek to set this attribute to True after appropriate development and testing for SQLAlchemy 1.4 caching support. Alternatively, this attribute may be set to False which will disable this warning. (Background on this error at: https://sqlalche.me/e/14/cprf)\n", + "/Users/michael/opt/miniconda3/envs/jupyter/lib/python3.10/site-packages/sqlalchemy_trino/dialect.py:259: SAWarning: Dialect trino:rest will not make use of SQL compilation caching as it does not set the 'supports_statement_cache' attribute to ``True``. This can have significant performance implications including some performance degradations in comparison to prior SQLAlchemy versions. Dialect maintainers should seek to set this attribute to True after appropriate development and testing for SQLAlchemy 1.4 caching support. Alternatively, this attribute may be set to False which will disable this warning. (Background on this error at: https://sqlalche.me/e/14/cprf)\n", " res = connection.execute(sql.text(query)).scalar()\n" ] }, { "data": { "text/plain": [ - "[('company_data',),\n", + "[('benchmark_ei',),\n", + " ('benchmark_prod',),\n", + " ('company_data',),\n", + " ('cumulative_budget_1',),\n", + " ('cumulative_emissions',),\n", " ('emissions_data',),\n", - " ('intensity_data',),\n", " ('isic_to_sector',),\n", " ('oecm_cumprod',),\n", + " ('overshoot_ratios',),\n", " ('production_data',),\n", " ('target_data',),\n", + " ('temperature_scores',),\n", " ('trajectory_data',)]" ] }, @@ -245,7 +250,8 @@ "for table in ['overshoot_ratios',\n", " 'temperature_scores']:\n", " print(f\"Dropping Quant table {table}\")\n", - " engine_quant.execute(f\"drop table if exists {table}\").fetchall()" + " engine_quant.execute(f\"drop table if exists {table}\").fetchall()\n", + "engine_quant.execute(f\"show tables in {ingest_schema}\").fetchall()" ] }, { diff --git a/examples/vault_demo_n0.ipynb b/examples/vault_demo_n0.ipynb index b9e909eb..52e36ef8 100644 --- a/examples/vault_demo_n0.ipynb +++ b/examples/vault_demo_n0.ipynb @@ -100,20 +100,25 @@ "name": "stderr", "output_type": "stream", "text": [ - "/Users/michael/opt/miniconda3/envs/ITR/lib/python3.10/site-packages/sqlalchemy_trino/dialect.py:259: SAWarning: Dialect trino:rest will not make use of SQL compilation caching as it does not set the 'supports_statement_cache' attribute to ``True``. This can have significant performance implications including some performance degradations in comparison to prior SQLAlchemy versions. Dialect maintainers should seek to set this attribute to True after appropriate development and testing for SQLAlchemy 1.4 caching support. Alternatively, this attribute may be set to False which will disable this warning. (Background on this error at: https://sqlalche.me/e/14/cprf)\n", + "/Users/michael/opt/miniconda3/envs/jupyter/lib/python3.10/site-packages/sqlalchemy_trino/dialect.py:259: SAWarning: Dialect trino:rest will not make use of SQL compilation caching as it does not set the 'supports_statement_cache' attribute to ``True``. This can have significant performance implications including some performance degradations in comparison to prior SQLAlchemy versions. Dialect maintainers should seek to set this attribute to True after appropriate development and testing for SQLAlchemy 1.4 caching support. Alternatively, this attribute may be set to False which will disable this warning. (Background on this error at: https://sqlalche.me/e/14/cprf)\n", " res = connection.execute(sql.text(query)).scalar()\n" ] }, { "data": { "text/plain": [ - "[('company_data',),\n", + "[('benchmark_ei',),\n", + " ('benchmark_prod',),\n", + " ('company_data',),\n", + " ('cumulative_budget_1',),\n", + " ('cumulative_emissions',),\n", " ('emissions_data',),\n", - " ('intensity_data',),\n", " ('isic_to_sector',),\n", " ('oecm_cumprod',),\n", + " ('overshoot_ratios',),\n", " ('production_data',),\n", " ('target_data',),\n", + " ('temperature_scores',),\n", " ('trajectory_data',)]" ] }, @@ -165,7 +170,7 @@ "name": "stderr", "output_type": "stream", "text": [ - "/Users/michael/opt/miniconda3/envs/ITR/lib/python3.10/site-packages/sqlalchemy_trino/dialect.py:259: SAWarning: Dialect trino:rest will not make use of SQL compilation caching as it does not set the 'supports_statement_cache' attribute to ``True``. This can have significant performance implications including some performance degradations in comparison to prior SQLAlchemy versions. Dialect maintainers should seek to set this attribute to True after appropriate development and testing for SQLAlchemy 1.4 caching support. Alternatively, this attribute may be set to False which will disable this warning. (Background on this error at: https://sqlalche.me/e/14/cprf)\n", + "/Users/michael/opt/miniconda3/envs/jupyter/lib/python3.10/site-packages/sqlalchemy_trino/dialect.py:259: SAWarning: Dialect trino:rest will not make use of SQL compilation caching as it does not set the 'supports_statement_cache' attribute to ``True``. This can have significant performance implications including some performance degradations in comparison to prior SQLAlchemy versions. Dialect maintainers should seek to set this attribute to True after appropriate development and testing for SQLAlchemy 1.4 caching support. Alternatively, this attribute may be set to False which will disable this warning. (Background on this error at: https://sqlalche.me/e/14/cprf)\n", " res = connection.execute(sql.text(query)).scalar()\n" ] } @@ -201,7 +206,7 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": 4, "id": "f0f02443-0f8f-4ee1-aa23-f59a9250615f", "metadata": {}, "outputs": [ @@ -295,16 +300,328 @@ { "cell_type": "code", "execution_count": 5, - "id": "12a14ef0-ceb4-4bda-bb31-90a584968709", + "id": "3d18b584-de49-4344-932b-2302d3976794", "metadata": {}, "outputs": [], "source": [ - "df = pd.read_sql_table(f\"emissions_data\", engine_dev)" + "# Because this DF comes from reading a Trino table, and because columns must be unqiue, we don't have to enumerate to ensure we properly handle columns with duplicated names\n", + "\n", + "def requantify_df(df: pd.DataFrame) -> pd.DataFrame:\n", + " units_col = None\n", + " columns_reversed = reversed(df.columns)\n", + " for col in columns_reversed:\n", + " if col.endswith(\"_units\"):\n", + " if units_col:\n", + " # We expect _units column to follow a non-units column\n", + " raise ValueError\n", + " units_col = col\n", + " continue\n", + " if units_col:\n", + " if col + '_units' != units_col:\n", + " raise ValueError\n", + " if (df[units_col]==df[units_col][0]).all():\n", + " # Make a PintArray\n", + " new_col = PintArray(df[col], dtype=f\"pint[{ureg(df[units_col][0]).u}]\")\n", + " else:\n", + " # Make a pd.Series of Quantity in a way that does not throw UnitStrippedWarning\n", + " new_col = pd.Series(data=df[col], name=col) * pd.Series(data=df[units_col].map(lambda x: ureg(x).u), name=col)\n", + " df = df.drop(columns=units_col)\n", + " df[col] = new_col\n", + " units_col = None\n", + " return df" ] }, { "cell_type": "code", "execution_count": 6, + "id": "f9ec935e-3ec1-4b2a-91b5-4649720854c7", + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/Users/michael/opt/miniconda3/envs/jupyter/lib/python3.10/site-packages/pandas/io/sql.py:1773: SAWarning: index key 'partition' was not located in columns for table 'emissions_data'\n", + " tbl = Table(\n", + "/Users/michael/opt/miniconda3/envs/jupyter/lib/python3.10/site-packages/pandas/io/sql.py:1773: SAWarning: index key 'record_count' was not located in columns for table 'emissions_data'\n", + " tbl = Table(\n", + "/Users/michael/opt/miniconda3/envs/jupyter/lib/python3.10/site-packages/pandas/io/sql.py:1773: SAWarning: index key 'file_count' was not located in columns for table 'emissions_data'\n", + " tbl = Table(\n", + "/Users/michael/opt/miniconda3/envs/jupyter/lib/python3.10/site-packages/pandas/io/sql.py:1773: SAWarning: index key 'total_size' was not located in columns for table 'emissions_data'\n", + " tbl = Table(\n", + "/Users/michael/opt/miniconda3/envs/jupyter/lib/python3.10/site-packages/pandas/io/sql.py:1773: SAWarning: index key 'data' was not located in columns for table 'emissions_data'\n", + " tbl = Table(\n" + ] + }, + { + "data": { + "text/html": [ + "
    \n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
    company_namecompany_leicompany_idsectoryearco2_s1_by_yearco2_s1_by_year_unitsco2_s2_by_yearco2_s2_by_year_units
    0Tri-State Generation & Transmission Associatio...549300VDHNFNPADSSV98ZZ00000000180Electricity Utilities20304.047107e+00CO2 * megametric_ton0.0CO2 * megametric_ton
    1UNITED STATES STEEL CORPJNLUVFYJT1OZSIQ24U47US9129091081Steel20302.600000e+07CO2 * metric_ton2640000.0CO2 * metric_ton
    2Valtec PowerRMI00000000000000015ZZ00000000015Electricity Utilities20300.000000e+00CO2 * megametric_ton0.0CO2 * megametric_ton
    3WEC Energy Group549300IGLYTZUK3PVP70US92939U1060Electricity Utilities20307.166047e+00CO2 * megametric_ton0.0CO2 * megametric_ton
    4WORTHINGTON INDUSTRIES INC1WRCIANKYOIK6KYE5E82US9818111026Steel20301.259577e+05CO2 * metric_ton123170.6CO2 * metric_ton
    ..............................
    2216SempraPBBKGKLRK5S5C0Y4T545US8168511090Electricity Utilities20169.332563e-01CO2 * megametric_ton0.0CO2 * megametric_ton
    2217Southern Co.549300FC3G3YU2FBZD92US8425871071Electricity Utilities20167.315806e+01CO2 * megametric_ton0.0CO2 * megametric_ton
    2218TENARIS SA549300Y7C05BKC4HZB40US88031M1099Steel20162.000000e+06CO2 * metric_ton1000000.0CO2 * metric_ton
    2219TERNIUM S.A.529900QG4KU23TEI2E46US8808901081Steel20161.774456e+07CO2 * metric_ton858941.0CO2 * metric_ton
    2220TIMKENSTEEL CORP549300QZTZWHDE9HJL14US8873991033Steel20169.966000e+04CO2 * metric_ton371530.0CO2 * metric_ton
    \n", + "

    2221 rows × 9 columns

    \n", + "
    " + ], + "text/plain": [ + " company_name company_lei \\\n", + "0 Tri-State Generation & Transmission Associatio... 549300VDHNFNPADSSV98 \n", + "1 UNITED STATES STEEL CORP JNLUVFYJT1OZSIQ24U47 \n", + "2 Valtec Power RMI00000000000000015 \n", + "3 WEC Energy Group 549300IGLYTZUK3PVP70 \n", + "4 WORTHINGTON INDUSTRIES INC 1WRCIANKYOIK6KYE5E82 \n", + "... ... ... \n", + "2216 Sempra PBBKGKLRK5S5C0Y4T545 \n", + "2217 Southern Co. 549300FC3G3YU2FBZD92 \n", + "2218 TENARIS SA 549300Y7C05BKC4HZB40 \n", + "2219 TERNIUM S.A. 529900QG4KU23TEI2E46 \n", + "2220 TIMKENSTEEL CORP 549300QZTZWHDE9HJL14 \n", + "\n", + " company_id sector year co2_s1_by_year \\\n", + "0 ZZ00000000180 Electricity Utilities 2030 4.047107e+00 \n", + "1 US9129091081 Steel 2030 2.600000e+07 \n", + "2 ZZ00000000015 Electricity Utilities 2030 0.000000e+00 \n", + "3 US92939U1060 Electricity Utilities 2030 7.166047e+00 \n", + "4 US9818111026 Steel 2030 1.259577e+05 \n", + "... ... ... ... ... \n", + "2216 US8168511090 Electricity Utilities 2016 9.332563e-01 \n", + "2217 US8425871071 Electricity Utilities 2016 7.315806e+01 \n", + "2218 US88031M1099 Steel 2016 2.000000e+06 \n", + "2219 US8808901081 Steel 2016 1.774456e+07 \n", + "2220 US8873991033 Steel 2016 9.966000e+04 \n", + "\n", + " co2_s1_by_year_units co2_s2_by_year co2_s2_by_year_units \n", + "0 CO2 * megametric_ton 0.0 CO2 * megametric_ton \n", + "1 CO2 * metric_ton 2640000.0 CO2 * metric_ton \n", + "2 CO2 * megametric_ton 0.0 CO2 * megametric_ton \n", + "3 CO2 * megametric_ton 0.0 CO2 * megametric_ton \n", + "4 CO2 * metric_ton 123170.6 CO2 * metric_ton \n", + "... ... ... ... \n", + "2216 CO2 * megametric_ton 0.0 CO2 * megametric_ton \n", + "2217 CO2 * megametric_ton 0.0 CO2 * megametric_ton \n", + "2218 CO2 * metric_ton 1000000.0 CO2 * metric_ton \n", + "2219 CO2 * metric_ton 858941.0 CO2 * metric_ton \n", + "2220 CO2 * metric_ton 371530.0 CO2 * metric_ton \n", + "\n", + "[2221 rows x 9 columns]" + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "from ITR.data.osc_units import *\n", + "ureg.setup_matplotlib()\n", + "import numpy as np\n", + "sql_df = pd.read_sql_table(f\"emissions_data\", engine_dev)\n", + "sql_df" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "463b78e4-ca3a-4af1-bc4d-f301d4e6b402", + "metadata": {}, + "outputs": [], + "source": [ + "df = requantify_df(sql_df.dropna())\n", + "df.co2_s1_by_year = df.co2_s1_by_year.astype('pint[t CO2]')\n", + "df.co2_s2_by_year = df.co2_s2_by_year.astype('pint[t CO2]')" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "id": "c515b6a5-bfb8-4dc5-81bd-9fe6389be42e", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "company_name object\n", + "company_lei object\n", + "company_id object\n", + "sector object\n", + "year int64\n", + "co2_s1_by_year pint[CO2 * metric_ton]\n", + "co2_s2_by_year pint[CO2 * metric_ton]\n", + "dtype: object" + ] + }, + "execution_count": 8, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df.dtypes" + ] + }, + { + "cell_type": "code", + "execution_count": 9, "id": "f4991076-a5a9-4b1a-b19d-2c1744625f0f", "metadata": {}, "outputs": [], @@ -314,23 +631,31 @@ }, { "cell_type": "code", - "execution_count": 7, - "id": "2aa029f8-cef9-46dd-8fbf-9732559f25b6", + "execution_count": 10, + "id": "8bea8112-ecb4-4ae1-a8ea-9065d4177796", "metadata": {}, "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/Users/michael/opt/miniconda3/envs/jupyter/lib/python3.10/site-packages/pint_pandas/pint_array.py:648: UnitStrippedWarning: The unit of the quantity is stripped when downcasting to ndarray.\n", + " return np.array(qtys, dtype=\"object\", copy=copy)\n" + ] + }, { "data": { "text/plain": [ - "" + "" ] }, - "execution_count": 7, + "execution_count": 10, "metadata": {}, "output_type": "execute_result" }, { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAABWMAAAJNCAYAAABUVWe4AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/YYfK9AAAACXBIWXMAAAsTAAALEwEAmpwYAAEAAElEQVR4nOzdd3xOd//H8dfJkkSILHsksbIHISVCrJpVq2gV4daWVlV7V9Gpm8p9V0tb9K6q0sSoUVp7VFIlEiKCoEgVsWukViTX7w91/aSJHa6E9/PxyIOc8z3f8z5XGuWT7/X5GiaTCRERERERERERERG5u6wsHUBERERERERERETkQaBirIiIiIiIiIiIiMg9oGKsiIiIiIiIiIiIyD2gYqyIiIiIiIiIiIjIPaBirIiIiIiIiIiIiMg9oGKsiIiIiIiIiIiIyD1gY+kAAO7u7iZPT09LxxARERERERERERG5I8nJycdMJpNHQeeKRDHW09OTpKQkS8cQERERERERERERuSOGYfx+rXNqUyAiIiIiIiIiIiJyD6gYKyIiIiIiIiIiInIPqBgrIiIiIiIiIiIicg/csGesYRiTgfbAEZPJFPD3sTHAI8BFYDfQ12Qynfz73AjgX0AOMNhkMi25O9FFRERERERERORuy87OZv/+/Zw/f97SUUSKFHt7eypXroytre1NX3MzG3hNAcYDU686tgwYYTKZLhmGMRoYAQwzDMMP6AH4AxWB5YZh1DKZTDk3nUhERERERERERIqM/fv3U6pUKTw9PTEMw9JxRIoEk8nE8ePH2b9/P15eXjd93Q3bFJhMpjXAiX8cW2oymS79/ek6oPLfv38UiDOZTBdMJtNe4Deg/k2nERERERERERGRIuX8+fO4ubmpECtyFcMwcHNzu+UV44XRM7YfsOjv31cC/rjq3P6/j4mIiIiIiIiISDGlQqxIfrfzfXFHxVjDMF4DLgHTb+Papw3DSDIMI+no0aN3EkNERERERERERESkyLvtYqxhGNFc3tirp8lkMv19+ABQ5aphlf8+lo/JZJpkMpnCTCZTmIeHx+3GEBERERERERERESkWbqsYaxhGa+AVoIPJZDp71akfgB6GYZQwDMMLqAkk3nlMERERERERERERkeLthsVYwzBigV+B2oZh7DcM41/AeKAUsMwwjBTDMCYAmEymrcBMYBuwGHjO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9erV+f3336+bw8PDg+bNm/PNN9/cwdPk5+bmRo0aNcjMvPMayHfffUeDBg145JFHzMeioqIICAi4qeuHDh1qLoJe7bPPPiM6Opo6deoA4O7uzkcffWQuDBckJiaGV199FS8vL+DynjQjRoxgzJgxALz//vt88cUXlClTBgA7OzuGDx9O6dKlefPNN5k1axYpKSkMHz6czz77rMBMffr0oUGDBuZjXbt2pVy5cje899UaNGhQ4H8XcHlT899+++2az3g7VIyVIimw6cMYVlakrlhs6SjyNysrKxo1asThw4fZtWuXpeOIiIiIiIjIAyItLY26dete83xcXBw9evQgMjKSHTt25Fkxe8Wff/7Jrl27aNy4cb5ze/bsYc+ePdSoUQOAGTNm5Hn7/9Vvlx82bBgxMTG3tMH10KFDzXP17Nkz3/l9+/Zx/vx5goKCbnrOa+W80WsVHx+f55offvghz/kGDRpgZ2fHqlWr8hzfunVrvnnDwsLYunXrNe91vWtOnz5NVlaWuVj6T46OjsTExNC4cWN69OhBzZo184253rPeSt7FixfTsWPHAudZsGABgYGBBZ67XTaFOptIIXFydaN63XDSVi2jYbcnsbG1tXQkAYKCgli9ejVr1qyhZs2aGIZh6UgiIiIiIiJyD+3c+S5nsgq3fV0pJ19q1Xrjtq+PjY1l7ty5WFlZ0aVLF2bNmsWgQYOAy8XH4OBgdu3axZAhQyhfvrz5uhkzZpCQkECJEiWYOHEirq6uwOW3/48fP77Ae3l7exMeHs5333130/nGjBljbllwtRkzZrBmzRrS09MZP3489vb2t/LY1815LZGRkSxcuND8eXR0dL4xr7/+Ou+99x6jR4++pbnvxJIlSxg2bBgnT57ku+++o2HDhjzyyCOUKVOGZ5999q7cc+jQobz66qvs37+fX3/9Nc+5nj174uDggKenZ54+wYVBK2OlyApu2YZzZ07zW+LaGw+We8La2pqIiAj2799PRkaGpeOIiIiIiIjIA8Df35/k5OQCz23ZsoVdu3bRsmVLPD09iYuLy9OqIDIyks2bN7N161a++uorUlJSzOeu9Fxdv349nTp1uuk8r776KqNHj77jFn7du3cnNTWVtWvXMnz4cA4dOnRH88H1X6ub1axZM86dO8e6devMx/z8/PLNm5ycjL+//zXnud41pUuXxsnJib17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\n", + "image/png": "iVBORw0KGgoAAAANSUhEUgAABW8AAAJXCAYAAADsJKbLAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/YYfK9AAAACXBIWXMAAAsTAAALEwEAmpwYAAEAAElEQVR4nOzdd3yN5//H8dedQSIhhFihxMzesUesSO292lpfbVEdWorSVls60Fbp8K1vVQehtKKlZoldBEFI7NgitiBknN8f6vykYoTECd7PxyOP5tz3dV/3+z5EHz6u87kMk8mEiIiIiIiIiIiIiOQtVpYOICIiIiIiIiIiIiK3UvFWREREREREREREJA9S8VZEREREREREREQkD1LxVkRERERERERERCQPUvFWREREREREREREJA9S8VZEREREREREREQkD3pki7eGYUwxDOOkYRix9zD2KcMwlhuGscUwjG2GYTR7GBlFRERERERERERE7tcjW7wFpgLh9zh2BPCLyWQKALoAX+dWKBEREREREREREZGc8MgWb00m00rgzM3HDMOoaBjGQsMwNhmGscowDPcbw4FC/3zvBBx7iFFFREREREREREREss3G0gFy2LdAX5PJtMcwjOpcX2HbEBgJLDYM42XAAWhsuYgiIiIiIiIiIiIid/fYFG8Nw3AEagGzDMO4cTj/P//tCkw1mUyfGoZRE/jJMAxvk8mUYYGoIiIiIiIiIiIiInf12BRvud4C4pzJZPLP4tx/+Kc/rslkWmcYhh1QDDj58OKJiIiIiIiIiIiI3LtHtuftv5lMpgvAAcMwOgIY1/n9c/oQ0Oif4x6AHZBkkaAiIiIiIiIiIiIi98AwmUyWznBfDMOIAEK5voI2EXgXWAZ8A5QCbIEZJpPpfcMwPIHJgCPXNy9702QyLbZEbhEREREREREREZF78cgWb0VEREREREREREQeZ49N2wQRERERERERERGRx8kjuWFZsWLFTOXLl7d0DBEREREREREREZEHsmnTplMmk8klq3OPZPG2fPnyREdHWzqGiIiIiIiIiIiIyAMxDOPg7c6pbYKIiIiIiIiIiIhIHqTirYiIiIiIiIiIiEgepOKtiIiIiIiIiIiISB70SPa8FRERERERERGRvCc1NZUjR46QkpJi6SgieY6dnR1lypTB1tb2nq9R8VZERERERERERHLEkSNHKFiwIOXLl8cwDEvHEckzTCYTp0+f5siRI7i5ud3zdWqbICIiIiIiIiIiOSIlJYWiRYuqcCvyL4ZhULRo0WyvSlfxVkREREREREREcowKtyJZu5+fDRVvRURERERERERERPIgFW9FRERERERERERE8iAVb0VERERERERERETyIBVvRURERERERERERPIgFW9FREREREREREQe0I8//oivry9+fn4899xzHDx4kEaNGuHr60ujRo04dOgQAD179qRfv340aNCAChUqsGLFCnr37o2Hhwc9e/Y0z+fo6Mgbb7xBYGAgjRo1IikpCYDJkycTEhKCn58f7du35/Lly+Z5X3nlFWrVqkWFChWYPXs2AM899xxz5841z/vMM8/w+++/Z/kMU6dOpV27doSHh1O5cmXefPNN87l+/foRHByMl5cX7777rvl4+fLleeutt6hZsybBwcFs3ryZpk2bUrFiRSZNmmQeN3bsWEJCQvD19c10vdyZirciIiIiIiIiIiIPYMeOHYwePZply5axdetWvvjiCwYMGED37t3Ztm0bzzzzDK+88op5/NmzZ1m2bBmff/45LVu2ZODAgezYsYPt27cTExMDwKVLlwgMDGTz5s3Ur1+f9957D4B27dqxceNGtm7dioeHB99995153uPHj7N69WrmzZvH0KFDAejTpw/ff/89AOfPn2ft2rU0a9bsts8SExPDzJkz2b59OzNnzuTw4cMAjB49mujoaLZt28aKFSvYtm2b+ZqyZcuybt066tatS8+ePZk9ezZ///0377zzDgCLFy9mz549bNiwgZiYGDZt2sTKlStz4J1//Kl4KyIiIiIiIiIi8gCWLVtGhw4dKFasGADOzs6sW7eObt26AddXv65evdo8vmXLlhiGgY+PDyVKlMDHxwcrKyu8vLxISEgAwMrKis6dOwPw7LPPmq+PjY2lbt26+Pj4MG3aNHbs2GGet02bNlhZWeHp6UliYiIA9evXZ+/evZw8eZKIiAjat2+PjY3NbZ+lUaNGODk5YWdnh6enJwcPHgTgl19+ITAwkICAAHbs2MHOnTvN17Rq1QoAHx8fqlevTsGCBXFxccHOzo5z586xePFiFi9eTEBAAIGBgcTHx7Nnz54Hes+fFLf/lRIREREREREREZG7MplMGIZxxzE3n8+fPz9wvUB74/sbr9PS0u54fc+e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/3HqF1qRXzcfYeTvO5j3Sp0ca8kgIiIiIiIiIiIPn+WrTSKPmFJO9vSoVZ4elg6SBTtba95u4cmLP23ip3UH6V3HzdKRRERERERERETkPmlZnshjJsyzBPWquPD5kt0kXbxq6TgiIiIiIiIiInKfVLwVecwYhsG7LT1JSUtnzMJ4S8cREREREREReejmzJmDYRjEx///34sTEhLw9va2YKr/16dPH3bu3HnP46dOnYqLiwv+/v54enoyefLkXEx3e3///Td+fn74+PjQo8ftP5M8depUBgwYkOlYaGgo0dHRAHz44YeZztWqVQvI/GsUHR3NK6+8AkBUVBRr1641j580aRI//vjjAz/P7t27adasGZUqVcLDw4NOnTqRmJj4wPPmJBVvRR5DFV0c6V3HjVmbjrD50FlLxxERERERERF5qCIiIqhTpw4zZsywdJQs/e9//8PT0zNb13Tu3JmYmBiioqJ46623cr3ImJaWdsux4cOHM378eLZv387IkSPve+5/F29vLszeEBwczIQJE4Bbi7d9+/ale/fu931/gJSUFJo3b06/fv3Yu3cvcXFx9OvXj6SkpHu6Pqv3JzeoeCvymHq5YWVKFMrPu3N3kJ5hsnQcERERERERkYciOTmZNWvW8N133922eHv58mU6deqEr68vnTt3pnr16uZVoREREfj4+ODt7c2QIUPM1zg6OjJ8+HD8/PyoUaOGuXh64MABatasSUhICG+//TaOjo7A9YJjixYtzNcPGDCAqVOnAplXod5u3tspXrw4FStW5ODBg/z1118EBATg4+ND7969uXr1Khs2bKBdu3YAzJ07F3t7e65du0ZKSgoVKlQAYN++fYSHhxMUFETdunXNK5R79uzJ66+/ToMGDTI9+w358uXjyJEjALi53d8+O0OHDuXKlSv4+/vzzDPPmN+Df7vx/iUkJDBp0iQ+//xz/P39WbVqFSNHjmTcuHF3fJZZs2bh7e2Nn58f9erVu2X+6dOnU7NmTVq2bGk+1qBBA7y9vUlJSaFXr174+PgQEBDA8uXLgesrijt27EjLli0JCwsjKiqKevXq0bZtWzw9Penbty8ZGRn39b7cjjYsE3lMOea34a1mHrw6I4aZGw/TrfpTlo4kIiIiIiIiT5BPNnxC/Jmcbefn7uzOkGq3FhVvFhkZSXh4OFWqVMHZ2ZnNmzcTGBiYaczXX39NkSJF2LZtG7Gxsfj7+wNw7NgxhgwZwqZNmyhSpAhhYWFERkbSpk0bLl26RI0aNRg9ejRvvvkmkydPZsSIEbz66qv069eP7t2789VXX2X7mW437+3s37+f/fv3U6ZMGapXr85ff/1FlSpV6N69O9988w0DBgxgy5YtAKxatQpvb282btxIWloa1atXB+CFF15g0qRJVK5cmfXr19O/f3+WLVsGXG8lsHTpUqytrW+5d8WKFRk2bBgeHh4EBwdn+1kBPv74Y7788ktiYmLuaXz58uXp27cvjo6ODBo0CIC//vrLfP52z/L++++zaNEiXF1dOXfu3C3zxsbGEhQUlOU9b/w6bt++nfj4eMLCwti9ezcA69atY9u2bTg7OxMVFcWGDRvYuXMn5cqVIzw8nN9++40OHTpk4x25M628FXmMtfIrTTU3Z8YsiufspWuWjiMiIiIiIiKS6yIiIujSpQsAXbp0ISIi4pYxq1evNo/x9vbG19cXgI0bNxIaGoqLiws2NjY888wzrFy5Eri+6vTGStqgoCASEhIAWLNmDV27dgXgueeey3be2837bzNnzsTf35+uXbvy3//+l6SkJNzc3KhSpQoAPXr0YOXKldjY2FCpUiXi4uLYsGEDr7/+OitXrmTVqlXUrVuX5ORk1q5dS8eOHfH39+fFF1/k+PHj5vt07Ngxy8Lt3LlzOX/+PAsWLKBbt27s2bOHpKQkQkJCbhlrGEaWz3C74/frTs9Su3ZtevbsyeTJk0lPT8/WvKtXrzb/Wrq7u1OuXDlz8bZJkyY4Ozubx1arVo0KFSpgbW1N165dWb16dQ493XVaeSvyGDMMg/daedFi4mo+XbKLUW18LB1JREREREREnhB3WyGbG06fPs2yZcuIjY3FMAzS09MxDIMxY8ZkGmcyZd1e8HbHAWxtbc3FR2tr60w9T7MqStrY2GT6CH1KSkq2571Z586d+fLLL82v77RytW7duixYsABbW1saN25Mz549SU9PZ9y4cWRkZFC4cOHbXu/g4JDl8UWLFtGoUSN8fHz47rvvaN26NR07dqRz5863jC1atChnz2beg+fMmTMUK1bstpnvx52eZdKkSaxfv5758+fj7+9PTEwMRYsWNZ/38vJixYoVWc57p98H/35//v1rn9MFaq28FXnMeZQqxHM1yjFt/SFij563dBwRERERERGRXDN79my6d+/OwYMHSUhI4PDhw7i5ud2yGrJOnTr88ssvAOzcuZPt27cDUL16dVasWMGpU6dIT08nIiKC+vXr3/GetWvXNvfWnTZtmvl4uXLl2LlzJ1evXuX8+fOZPuqfE9zd3UlISGDv3r0A/PTTT+as9erVY/z48dSsWRMXFxdOnz5NfHw8Xl5eFCpUCDc3N2bNmgVcL1Ru3br1rvcLCAhg5syZpKSkULduXdq2bcvo0aPNq45vFhISwpo1azhx4gQA0dHRXL16lbJlywLXC9apqan3/KwFCxbk4sWLtxy/07Ps27eP6tWr8/7771OsWDEOHz6c6dpu3bqxdu1a5s+fbz62cOFCtm/fTr169cy/lrt37+bQoUNUrVo1y2wbNmzgwIEDZGRkMHPmTOrUqXPPz3UvVLwVeQIMbFIF5wL5ePf3HXf81yMRERERERGRR1lERARt27bNdKx9+/ZMnz4907H+/fuTlJSEr68vn3zyCb6+vjg5OVGqVCk++ugjGjRogJ+fH4GBgbRu3fqO9/ziiy/46quvCAkJ4fz5/180VbZsWfOmaM888wwBAQE596CAnZ0d33//PR07dsTHxwcrKyv69u0LXC9CJyYmmjfq8vX1xdfX17wqdNq0aXz33Xf4+fnh5eXF3Llz73q///znP/j4+ODv709wcDDHjx9n3LhxdOjQgcuXL2caW6JECb744guaNWuGv78/r732GhEREVhZXS9FvvDCC+b35V60bNmSOXPmmDcsu9ntnmXw4MHmjefq1auHn59fpuvs7e2ZN28eEydOpHLlynh6ejJ16lSKFy9O//79SU9Px8fHh86dOzN16lTy58+fZbaaNWsydOhQvL29cXNzM//+69Onj3lTugdhPIqFnODgYFNOPLzIk+SXjYd589dtfNbJj3aBZSwdR0RERERERB5DcXFxeHh4WDrGXaWnp5OamoqdnR379u2jUaNG7N69m3z58j3w3I6OjiQnJ+dASsnroqKiGDduHPPmzbvna7L6GTEMY5PJZMpyBzj1vBV5QnQIKsO0DYf48M94mniWoKCdraUjiYiIiIiIiFjE5cuXadCgAampqZhMJr755pscKdyK5DQVb0WeEFZWBu+38qLN12v4YukeRrTwtHQkEREREREREYsoWLBgjnykPStadfvkCA0NJTQ0NFfvoZ63Ik8Qv7KF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SOfOnfH396d9+/bUrVvXfC4+Pp6iRYvex9Neb9vQqlUrgoOD8ff3Z9y4cQBMmjSJSZMm3deckrcYd1rqnVcFBweboqOjLR1D5Ik0InI709cfYv4rdfEoVcjScURERERERCQPiYuLw8PDw9IxctXVq1extrbGxsaGdevW0a9fP2JiYu57vhYtWvDbb7+RL1++nAspeVZWPyOGYWwymUzBWY1Xz1sRyZZBYVWZv+047/6+g5kv1FBvHREREREREXmiHDp0iE6dOpGRkUG+fPmYPHnyA803b968HEomjyMVb0UkWwoXyMfgpu68NWc7v289Rmt/V0tHEhEREREREXloKleuzJYtWywdQ54Q6nkrItnWOaQsPq5OfPhnHJeuplk6joiIiIiIiIjIY0nFWxHJNmur65uXJV64ysRley0dR0RERERERETksaTirYjcl8CnitAxqAzfrd7PvqRkS8cREREREREREXnsqHgrIvftzXB37GytGfn7Dkwmk6XjiIiIiIiIiIg8VlS8FZH75lIwP683qcKqPadYvDPR0nFEREREREREsLa2xt/fHz8/PwIDA1m7dm2253B0dHzgsZMmTeLHH3/M9r1vGDlyJOPGjct0rHz58pw6deqO13344Yfm7xMSEvD29r7vDLkpL2fLS1S8FZEH8lyNclQtUZB35sZyKvmqpeOIiIiIiIjIE87e3p6YmBi2bt3KRx99xLBhw+75WpPJREZGRo7k6Nu3L927d7/leFpa7m78fXPxVh59Kt6KyAOxsbbi005+nL2cyqsztpCeofYJIiIiIiIikjdcuHCBIkWKmF+PHTuWkJAQfH19effdd4HrK0A9PDzo378/gYGBHD582Dz+1KlT1KxZk/nz53P8+HHq1auHv78/3t7erFq1yjxu+PDh+Pn5UaNGDRITr38y9eaVs6Ghobz11lvUr1+fL774gk2bNlG/fn2CgoJo2rQpx48fz/aztWnThqCgILy8vPj2228BGDp0KFeuXMHf359nnnkGgPT0dJ5//nm8vLwICwvjypUrAEyePJmQkBD8/Pxo3749ly9fJj09nQoVKmAymTh37hxWVlasXLkSgLp167J37142bNhArVq1CAgIoFatWuzatct8PiYmxpyvdu3abNu27Z6eZerUqbRr147w8HAqV67Mm2++aT63cOFCAgMD8fPzo1GjRtl+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+KW7STh1ydJRRUREREREHnnFixfn22+/5csvvyQ3930KDQ1lyJAhVKtWjSpVqrBq1SrgemF28ODBhISE4Ovry3//+1/gerG4QYMGdOvWDR8fHzIyMujfvz9eXl60aNGCZs2aMXv2bP766y/atm1rvs+SJUto106tLJ8kWnkr2VagkBPtho5k+tuD+e3jkXT9YCz2BQtZOpbII8fW2opGHiVo5FGCCympLIw9QeSWo3zx1x7GL91DwFOFaRvgSgvf0jg75LN0XBERERERkWx5e88RYpOv5Oic3o72fFC5TLauqVChAhkZGZw8eZISJUrcdtyqVavw9/c3v/7111+pWLHiLeMaNGhgXinbo0cPBg4cCEBaWhobNmzgzz//5L333mPp0qV89913ODk5sXHjRq5evUrt2rUJCwsDYMOGDcTGxuLm5sbs2bNJSEhg+/btnDx5Eg8PD3r37k3Dhg156aWXSEpKwsXFhe+//55evXpl6/nl0abirdyXIqVcaTNoBLNGDWfuuNF0GDEKG1ttviRyvwrZ2dIpuCydgsty/PwVfo+5vtHZO3N38P4fOwmt6kKbAFcae5TAzlYfpxEREREREcmOe1l1+6BtE26siA0KCiIhIQGAxYsXs23bNmbPng3A+fPn2bNnD/ny5aNatWrmHrurV6+mY8eOWFlZUbJkSRo0aABc//Tmc889x88//0yvXr1Yt24dP/744z09szweVLyV++bq7kl4/4HM/2IMi74ZT7MBb2BYqROHyIMq5WTPi/Ur8mL9isQdv0DklqNExhxladxJHPPb8LR3SdoGuFK9QlGsrdQfV0RERERE8qbsrpDNLfv378fa2prixYvn6n3y588PXN8wLS0tDbheNJ44caK51+4NUVFRODg4mF/fqbjcq1cvWrZsiZ2dHR07dsTGRuW8J4kqbfJA3GvVo263nsSvWcGaX6ZZOo7IY8ejVCGGNfNg7dBGTOtTnXDvkiyIPUG3/62n9sfL+GhBHPEnLlg6poiIiIiISJ6UlJRE3759GTBggEU2h27atCnffPMNqampAOzevZtLl27d46ROnTr8+uuvZGRkkJiYSFRUlPlc6dKlKV26NKNGjaJnz54PKbnkFSrVywMLadWec4nHWT9nJk7FS+DTMMzSkUQeO9ZWBrUrFaN2pWJ80NqbpXGJRG45ynerDvDfFftxL1mQtgGutPZ3paSTnaXjioiIiIiIWMyVK1fw9/cnNTUVGxsbnnvuOV5//fW7XvfvnrcjRoygQ4cOt4y7ueetr6/vHdsY9OnTh4SEBAIDAzGZTLi4uBAZGXnLuPbt2/PXX3/h7e1NlSpVqF69Ok5OTubzzzzzDElJSXh6et71OeTxYuTmTnu5JTg42BQdHW3pGHKT9LQ0Ise8z8HtMbQb9h7lfQMsHUnkiXA6+Srzth1nzpajxBw+h2FArYpFaePvSrh3SQraqRe1iIiIiIg8PHFxcXh4eFg6xiMpOTkZR0dHTp8+TbVq1VizZg0lS5YEYMCAAQQEBPCf//zHwinlQWX1M2IYxiaTyRSc1XgVbyXHXL18mZnvvsn5pJN0eX8MLk+Vt3QkkSfKgVOXzP1xD56+TH4bK5p4lqBtgCv1qrhga61OOSIiIiIikrtUvL1/oaGhnDt3jmvXrvHmm2+aWyQEBQXh4ODAkiVLzH115dGl4q1Y1MXTp5g+/HUMK2u6jRqHo3NRS0cSeeKYTCa2HD7HnM1HmbftGGcvp+LskI+WvqVoE+CKf9nCFun1JCIiIiIijz8Vb0XuTMVbsbiTCfuZ8e4QipQsTef3Piafnb2lI4k8sa6lZbBydxJzthxlSVwi19IycCvmQBt/V9oElKZcUYe7TyIiIiIiInKPVLwVubPsFm/1GVrJccXLV6Dla0NIOnSA+V+MISM93dKRRJ5Y+WysaOxZgq+eCSR6RGPGtPelZCE7xv+1m/pjo2j39Rp+WpfAmUvXLB1VRERERERERP5FxVvJFW4BwTTq3Y/9mzeybOq3PIorvEUeN4XsbOkUUpaIF2qwZkhDhj7tzqWr6bw9dwfVRi+lzw/RzN92nJRU/YOLiIiIiIiISF5gY+kA8vjya/I050+eYOPvv1K4REmCW7S1dCQR+Ufpwvb0rV+RF+tVIO74RSJjjjI35ihL4xIpmN+GZj7X++NWd3PGykr9cUVEREREREQsQcVbyVV1u/bg/MlEVvw8hUIuxalSvbalI4nITQzDwLN0ITxLF2JIuDt/7z/Nb/9sdDYz+jClnOxo7e9K2wBXqpYsaOm4IiIiIiIid2VtbY2Pjw+pqanY2NjQo0cPXnvtNays7vwBdEdHR5KTk7N9v6ioKFq3bo2bm5v52Lhx42jcuHG258ppu3fv5rXXXmP37t3Y2tri4+PDxIkTKVGihKWjyT1S8VZylWFlRfhLA7l45hQLJn6KY5GilK7ibulYIpIFayuD2pWKUbtSMUa18WZJXCKRW44yedV+Jq3Yh0epQrQLcKWVf2lKFLKzdFwREREREZEs2dvbExMTA8DJkyfp1q0b58+f57333su1e9atW5d58+bl6JxpaWnY2Nx/6S4lJYXmzZvz2Wef0bJlSwCWL19OUlLSPRVvH/T+kjPU81ZynW2+/LQZ/DaOzkWJHPsB504ct3QkEbkL+3zWtPIrzZSeIax/qxEjW3qSz8aK0X/GUeOjv3j2f+uZvekIyVfTLB1VRERERETktooXL863337Ll19+iclkYurUqQwYMMB8vkWLFkRFRWW65tSpU9SsWZP58+eTlJRE+/btCQkJISQkhDVr1tzzvRMSEvDw8OD555/Hy8uLsLAwrly5AsC+ffsIDw8nKCiIunXrEh8fD0DPnj15/fXXadCgAUOGDGHfvn3UqFGDkJAQ3nnnHRwdHQF47rnnmDt3rvlezzzzDL///num+0+fPp2aNWuaC7cADRo0wNvbm5SUFHr16oWPjw8BAQEsX74cgKlTp9KxY0datmxJWFgYUVFR1KtXj7Zt2+Lp6Unfvn3JyMi45/dAHpzK5/JQFCjkRNuhI4l4exC/ffIeXT8Yi72jPoIt8igo5pifnrXd6Fnbjf1JyUTGHCNyy1EGzdrKiMjthHmWpG2AK3UqF8PWWv8mKCIiIiIi1733xw52HruQo3N6li7Euy29snVNhQoVyMjI4OTJk3cdm5iYSKtWrRg1ahRNmjShW7duDBw4kDp16nDo0CGaNm1KXFzcLdetWrUKf39/8+tff/0Va2tr9uzZQ0REBJMnT6ZTp078+uuvPPvss7zwwgtMmjSJypUrs379evr378+yZcuA660Oli5dirW1NS1atODVV1+la9euTJo0yTx/nz59+Pzzz2ndujXnz59n7dq1/PDDD5kyxcbGEhQUlOVzfvXVVwBs376d+Ph4wsLC2L17NwDr1q1j27ZtODs7ExUVxYYNG9i5cyflypUjPDyc3377jQ4dOtz1vZScoeKtPDTOpV1pPWg4s0eN4Pdxo2k//ANsbG0tHUtEsqGCiyOvN6nCwMaV2XzoLHO2HGXetuP8vvUYRR3y0dKvNG0DXPEt44RhaKMzERERERHJG0wm013HpKam0qhRI7766ivq168PwNKlS9m5c6d5zIULF7h48SIFC2ZekJZV24SEhATc3NzMRd2goCASEhJITk5m7dq1dOzY0Tz26tWr5u87duyItbU1cL2QGhkZCUC3bt0YNGgQAPXr1+ell17i5MmT/Pbbb7Rv3z5bLQ5Wr17Nyy+/DIC7uzvlypUzF2+bNGmCs7OzeWy1atWoUKECAF27dmX16tUq3j5EKt7KQ1XGw5um/Qfy54SxLPpmPM1eHqQCj8gjyDAMgso5E1TOmXdaeLFidxKRW44yfcMhpq5NoEIxB9oEuNLG35WnihawdFwREREREbGA7K6QzS379+/H2tqa4sWLY2Njk+lj/ykpKebvbWxsCAoKYtGiRebibUZGBuvWrcPe3v6+7p0/f37z99bW1ly5coWMjAwKFy5s7sv7bw4ODvc093PPPce0adOYMWMGU6ZMueW8l5cXK1asyPLaOxWz/33/f9dtVMd5uPT5VnnoPGrXp06X7sSvWcHaX362dBwReUD5bKxo4lmCr54JZOPwxnzS3ofihfLz2ZLd1Bu7nA7frOXnvw9y9tI1S0cVEREREZEnTFJSEn379mXAgAEYhkH58uWJiYkhIyODw4cPs2HDBvNYwzCYMmUK8fHxfPzxxwCEhYXx5ZdfmsfcruCaHYUKFcLNzY1Zs2YB1wupW7duzXJsjRo1+PXXXwGYMWNGpnM9e/Zk/PjxwPVC7b9169aNtWvXMn/+fPOxhQsXsn37durVq8e0adOA620aDh06RNWqVbPMsGHDBg4cOEBGRgYzZ86kTp062XtgeSAq3opFVGvTEe8GYfz920y2L19s6TgikkOc7G3pHPIUM16oyZqhDRkS7s6FlFRGRMZS7cOlPP9jNH9uP05Karqlo4qIiIiIyGPqypUr+Pv74+XlRePGjQkLC+Pdd98FoHbt2ri5ueHj48OgQYMIDAzMdK21tTUzZsxg+fLlfP3110yYMIHo6Gh8fX3x9PTM1Hf2Zjd63t74mj179h0zTps2je+++w4/Pz+8vLwybT52s/Hjx/PZZ59RrVo1jh8/jpOTk/lciRIl8PDwoFevXllea29vz7x585g4cSKVK1fG09OTqVOnUrx4cfr37096ejo+Pj507tyZqVOnZlolfLOaNWsydOhQvL29cXNzo23btsD1vrvR0dF3fE55cMa99PzIa4KDg036zfHoS09LY84n73F4xzbaDX2Pcr7+lo4kIrnAZDKx8/gFIrccZW7MMU5evEpBOxua+5SiTYAr1co7Y2Wlj92IiIiIiDwO4uLi8PDwsHSMx8bly5ext7fHMAxmzJhBRESEudB7+fJlfHx82Lx5c6aibk6Kiopi3Lhxt/TzlfuX1c+IYRibTCZTcFbjtfJWLMbaxoaWA4fi7FqW3z/7kFOHEiwdSURygWEYeJV2YnhzT9YNa8TP/6lOE88S/LH1GF2+/Zs6nyzjk4Xx7Em8aOmoIiIiIiIiecqmTZvw9/fH19eXr7/+mk8//RS4vpGau7s7L7/8cq4VbiVv0MpbsbgLp5KYPuINrKys6TZqHI7ORS0dSUQegsvX0liyM5HILUdZuecU6RkmvEoXom2AK638SlO8kJ2lI4qIiIiISDZp5a3InWnlrTxyChVzoe2Qd0lJvsicMe9zLeWKpSM9MkwmE2nXtAmUPJoK5LOhtb8r3/eqxvq3GvFuS09srAxGzY+jxkd/8dx36/lt8xEuXU2zdFQRERERERERi9DKW8kz9m/eSOSYD3ALCKL14BFYWVlbOlKelXIpmZ0rlxGz+E8unztLu2EjKV1F/7Ipj4d9ScnM3XKUOTFHOXzmCva21oR5laBNgCt1KxXDxlr/7igiIiIikldp5a3InWV35a2Kt5KnxCyaz19TvsG/aXMa9uqLYWgTo5udTNjP1sV/snP1ctKuXqVUpapcuXiBS+fP0W7ou5Tx8LZ0RJEcYzKZ2HTwLHO2HGXetuOcv5JKMcd8tPQrTdsAV3xcnfRnhIiIiIhIHqPircidZbd4a/NQUoncI/+mzTmflEj0H79RuEQpgpq3sXQki0tLTWXP+jXELP6TY7t2YmObD/c69fEPa06JCpVIPnOaXz4Yzq8fvUvbN9/lKW9fS0cWyRGGYRBc3png8s6829KLqF0niYw5yrT1h/h+TQIVXBxo6+9KmwBXyjoXsHRcERERERERkRynlbeS55gyMvhj/Mfs2bCOVgOHUbl6LUtHsogLp06ybelCti9bzOXz5yhcshR+TZrhFdoYe8eCmcZeOneWWR8M5/zJRNoMfptyvv6WCS3yEJy/ksqC7ceZs+Uo6w+cASCkfBHaBLjS3KcUhQvks3BCEREREZEnV15YeWttbY2Pj4/5dZcuXRg6dCihoaGMGzeO4ODMCxxDQ0M5fvw4dnZ2ODo6MmXKFKpWrZrjuW7cx97eHoBKlSoxe/ZsRo4ciaOjI4MGDcrWfOfOnWP69On079//tmNq1arF2rVr73nOH3/8kTFjxmAymTCZTPTu3TvbueTOtPJWHnmGlRVPD3iD5Pff4s+J4+jk/BGlKuf8H5p5kSkjg4PbY4hZ/Cf7N20AoEJQCP5NmlHONwDDKutenw6Fi9Dp3Y+Y9cFw5ox5j9aDRuDmH/Qwo4s8NE72tnSp9hRdqj3F0XNXmBtzlDmbjzJ8Tizv/b6TBu4utA1wpYF7cfLbqHe2iIiIiMiTxt7enpiYmGxdM23aNIKDg/n2228ZPHgwv//+e65ku3GfnHDu3Dm+/vrrLIu36enpWFtbZ6twu2DBAsaPH8/ixYspXbo0KSkp/PTTTzmSVe6fdn2RPMk2X37aDH4bB2dn5ox5n3OJJywdKVelJCezaX4k37/el18/fIdju+MIad2ePhP/R5vBb1PeP+i2hdsbChRyouPbo3F2LcvcsR+wb9P6h5RexHJcC9vTP7QSiwfWY97LdehesxybD52j78+bCRm1lGG/bWP9/tNkZDx6nzIREREREZGHr169euzdu5eEhATq1q1LYGAggYGB5iLo8ePHqVevHv7+/nh7e7Nq1SoAIiIi8PHxwdvbmyFDhtz3/fft20d4eDhBQUHUrVuX+Ph4ABITE2nbti1+fn74+fmxdu1ahg4dyr59+/D392fw4MFERUXRoEEDunXrZl557OjoaJ57zJgx+Pj44Ofnx9ChQ2+590cffcS4ceMoXbo0AHZ2djz//PMAxMTEUKNGDXx9fWnbti1nz56972eU7NHKW8mzCjgVpt3QkUSMGMRvH4+k6wdjb2kX8KhL3L+XmMXziV+zkrRrVyldxYOa7btSuUYdbGxtsz3fjQLur6Pf4fdPP6LFa29SudqT2XZCniyGYeDt6oS3qxPDmnmwdt8p5mw+ytyYY0RsOIxrYXvaBFzf6KxS8cfrzxERERERkTxrwVA4sT1n5yzpA09/fMchV65cwd/f3/x62LBhdO7c+Z6m/+OPP/Dx8aF48eIsWbIEOzs79uzZQ9euXYmOjmb69Ok0bdqU4cOHk56ezuXLlzl27BhDhgxh06ZNFClShLCwMCIjI2nTps0t8z/zzDPmtglNmjRh7Nixmc6/8MILTJo0icqVK7N+/Xr69+/PsmXLeOWVV6hfvz5z5swhPT2d5ORkPv74Y2JjY82rjKOiotiwYQOxsbG4ubllmnfBggVERkayfv16ChQowJkzZ27JFhsbS1BQ1p/i7d69OxMnTqR+/fq88847vPfee4wfP/6e3lN5MCreSp7mXLoMrQeNYPboEfz+6Wjav/XBfRU185K0a9fY/fdqYhbN5/jeXdjkz49H3VD8w5pTvHyFB57f3rEgHUZ8wG8fvsu88Z/Q7OXBVK1ZJweSizwarK0M6lZ2oW5lF0ZdS2PJzkR+23yUSSv289XyfXi7FqKNvyut/EtTvKCdpeOKiIiIiEgOu5+2CTeKquXLl2fixImkpqYyYMAAYmJisLa2Zvfu3QCEhITQu3dvUlNTadOmDf7+/ixbtozQ0FBcXFzMc61cuTLL4u2d2iYkJyezdu1aOnbsaD529epVAJYtW8aPP/4IXO/p6+TklOXq12rVqt1SuAVYunQpvXr1okCB65s9Ozs73/N7c/78ec6dO0f9+vUB6NGjR6aMkrtUvJU8r4ynN037vcafE8exeNIXPD3gDQzDsHSsbDt/8gRblyxg+/IlpFy8QJFSrjTo8Tye9Rth5+B49wmywc7BkfbDP+C3j0cyf8IYMjLS8ahdP0fvIfIoKJDPhtb+rrT2dyXp4lXmbTvGnC1HGTU/jg//jKNOZRfaBpQmzLMkDvn1v0QRERERkRx1lxWyecm/i6ojR46kRIkSbN26lYyMDOzsri/8qFevHitXrmT+/Pk899xzDB48mEKFCuVIhoyMDAoXLpztwvPNHBwcsjxuMpnuWkvx8vJi06ZNNGzY8L7vLzlPPW/lkeBRJ5TanZ8jbnUUa2dNs3Sce2bKyODAlmjmfPIe/3vleaL/mEMZdy86jBhFr88nEdisdY4Xbm/IX6AA7d96D1d3TxZM/JSdK5flyn1EHhUuBfPTq7Ybvw+ow9LX6/NSg0rsT0pm4MytBI9aymszthC16yRp6RmWjioiIiIiIhZ2/vx5SpUqhZWVFT/99BPp6ekAHDx4kOLFi/P888/zn//8h82bN1O9enVWrFjBqVOnSE9PJyIiwrxKNTsKFSqEm5sbs2bNAq4XXLdu3QpAo0aN+Oabb4Drm5FduHCBggULcvHixXuaOywsjClTpnD58mWALNsmDBs2jDfffJMTJ67vO3T16lUmTJiAk5MTRYoUMff3/emnn+7r+eT+aJmRPDKqt+3E+ZMn+PvXGeyI+ouCRYtRsJgLhYq5/P9/i7pQqFhx8js4WHR17pWLF4iNWsrWJX9yPvEEBZwKU6NtJ3wahVOomMtDy5HPzp52Q0YSOfZ9Fnz9Oenpafg0CHto9xfJqyoVd+SNsKoMbFyFTYfOMmfLUeZvO05kzDGKOeanld/1/rjeroUeyZX+IiIiIiJPsn/3vA0PD+fjj7O3Crh///60b9+eWbNm0aBBA/OK1qioKMaOHYutrS2Ojo78+OOPlCpVio8++ogGDRpgMplo1qwZrVu3znLem3veFitWjKVLl2Y6P23aNPr168eoUaNITU2lS5cu+Pn58cUXX/DCCy/w3XffYW1tzTfffEPNmjWpXbs23t7ePP300zRv3vy2zxMeHk5MTAzBwcHky5ePZs2a8eGHH2Ya06xZMxITE2ncuLF5pW7v3r0B+OGHH+jbty+XL1+mQoUKfP/999l6P+X+GSbTo7cDd3BwsCk6OtrSMcQC0tPS2PznXE4dPsjF06e4eCqJi6eTSE9LyzTONr9d5sJu0cwFXseixXKld+6JvbuJWfwnu9auJC31Gq7uXvg3bU7lajWxtrFcr97Ua1eZO3YUB7dtoXGfl/Br8rTFsojkVVfT0onalUTklqP8FXeSa+kZVHRxoG3A9bYLZZ0LWDqiiIiIiEieFxcXh4eHh6VjiORZWf2MGIaxyWQyZdkMWcVbeeSZMjK4fOE8F06d/KeYe4oLp5K4eCrp+n9PJ3H5/LlbrnMoXCRTYff6qt3/L/LaF3K6pxV3qdeusmvtKmIWzSdx/x5s89vhWa8BfmHNcXmqfM4/8H1Ku3aNPz7/iP2bN9Kwd18CmrawdCSRPOv85VT+jD3OnC1H2XDg+seJqpV3pk2AK819SuFU4NHeOFFEREREJLeoeCtyZyreimQh9dpVkk+fyrKwe+N12rWrma6xtrX9Z6VuMQoWLX5LiwaTyUTs8iXELl9CSvJFnF3L4t+0OZ51G5K/QN5coZeWmsq88Z+wL/pvQrv3Iah5G0tHEsnzjpy9zNyY6xud7T2ZTD5rKxq4u9A2wJUG7sXJb2Nt6YgiIiIiInmGircid6birch9MJlMpCRfvKWwe/FUEhf++W/y2TPwr58Xw8qKyiE18W/anDKePo9Eb8z0tFTmTxjLnvVrqdutJ9Vad7B0JJFHgslkYsexC8zZcpS5Mcc4lXyVQnY2NPe93h83uFwRrKzy/p8BIiIiIiK5ScVbkTvLbvFWG5aJAIZhYF+wEPYFC1HCrWKWY9LT0kg+c9pc1L165QqVgqvj6Fz0Iad9MNY2tjR/5U0WfPkpq6ZPJSM9nRrtOls6lkieZxgG3q5OeLs6Mexpd9bsO03klqNEbjlKxIZDuBa2p01AadoGlKFScUdLxxUREREREZHHgIq3IvfI2sYGp+IlcCpewtJRHpi1jQ3NXh6ElY0Na2b+REZ6GjU7dHskVg6L5AU21lbUr+JC/SoujGqTxpKdiczZcpRvovbx1fJ9+Lg60SbAlZZ+pShe0M7ScUVEREREROQRpeKtyBPKytqa8P6vYWVlzbrZEWSkp1O783Mq4Ipkk0N+G9oEuNImwJWTF1P4Y+txIrcc5YN5Oxk9fyd1K1/vjxvmVYIC+fS/XREREREREbl3+lukyBPMysqapn1fwcrGmvVzfiE9LY16z/RSAVfkPhUvaMd/6rjxnzpu7D15kcgt1zc6e21mDAXyWdPUqyRtAlypXbEoNtZWlo4rIiIiIvJYsra2xsfHx/y6S5cuDB061IKJMouKimLcuHHMmzfP0lHkEaDircgTzrCyokmfl7CytiH6j9/ISE8ntHsfFXBFHlCl4gUZ1LQqrzepQvTBs8zZcpT5264Xc10K5qeV3/WNzrxKF9LPm4iIiIhIDrK3tycmJiZH50xPT8fa2jpH5xS5F1r2IyIYVlY06t2XwKdbsfnPuSz7fhKmjAxLxxJ5LFhZGVRzc+ajdj5sHNGYSc8GEfRUEX5ad5AWE1fT5POVfLV8L4fPXLZ0VBERERGRx9aCBQvo1KmT+XVUVBQtW7YEYPHixdSsWZPAwEA6duxIcnIyAOXLl+f999+nTp06zJo1iz///BN3d3fq1KnDK6+8QosWLcjIyKBy5cokJSUBkJGRQaVKlTh16tQ95Ro5ciS9e/cmNDSUChUqMGHCBPO5H3/8EV9fX/z8/Hjuuedy6q2QR4xW3ooIAIZhENrjeaxs/lmBm5ZO4z79Maz0bzwiOSW/jTXh3iUJ9y7JucvX+HP7CSK3HGXsol2MXbSLauWdaRvoSjPvUjgVsLV0XBERERGRB/LJhk+IPxOfo3O6O7szpNqQO465cuUK/v7+5tfDhg2jffv2vPjii1y6dAkHBwdmzpxJ586dOXXqFKNGjWLp0qU4ODjwySef8Nlnn/HOO+8AYGdnx+rVq0lJSaFy5cqsXLkSNzc3unbtCoCVlRXPPvss06ZN47XXXmPp0qX4+flRrFixe36m+Ph4li9fzsWLF6latSr9+vVj9+7djB49mjVr1lCsWDHOnDmT/TdLHgsq3oqImWEY1HumF1bW1myInEV6ehphL76MlZU+GiKS0woXyEe36k/RrfpTHD5zmbkxR/lty1GG/badd+fuoKF7cdoEuNLA3YX8NvoZFBERERG5V7drmxAeHs4ff/xBhw4dmD9/PmPGjGHFihXs3LmT2rVrA3Dt2jVq1qxpvqZz587A9QJrhQoVcHNzA6Br1658++23APTu3ZvWrVvz2muvMWXKFHr16pWtvM2bNyd//vzkz5+f4sWLk5iYyLJly+jQoYO5COzs7Jzt90EeDyreikgmhmFQp0t3rG1sWDc7AlN6Ok37v6YCrkguKutcgAENK/NSg0rEHr3AnC1H+X3rMRbuOIGTvS3NfUvRNsCVoKeKYGWl/rgiIiIi8mi42wrZh61z58589dVXODs7ExISQsGCBTGZTDRp0oSIiIgsr3FwcADAZDLddt6yZctSokQJli1bxvr165k2bVq2cuXPn9/8vbW1NWlpaZhMJu2NIYB63opIFgzDoFbHZ6jd6Vl2rlrOnxM/JSM93dKxRB57hmHgU8aJd1p68vewhkztFUKDqi7M2XyUjpPWUW/scsYt2sXek8mWjioiIiIi8sgJDQ1l8+bNTJ482byitkaNGqxZs4a9e/cCcPnyZXbv3n3Lte7u7uzfv5+EhAQAZs6cmel8nz59ePbZZ+nUqZN5Y7M5c+YwbNiw+8raqFEjfvnlF06fPg2gtglPMK28FZHbqtG+C1Y2NqyaPhVTejrNXhmMtY3+2BB5GGysrQitWpzQqsW5dDWNxTtPMGfLMb6O2suXy/fiW8aJNv6utPQrjUvB/HefUERERETkCfHvnrfh4eF8/PHHWFtb06JFC6ZOncoPP/wAgIuLC1OnTqVr165cvXoVgFGjRlGlSpVMc9rb2/P1118THh5OsWL/x959x1VZv38cf90cNgiIoCC4UJS93XujgqJoaqaplaU2zLJsmdk2y7Llt6m2NEXcuHdOpqLgRgVciOzNuX9/mPwyEcXAA3o9Hw8eeO7xud/nKHi4+NzXx4Y2bdrctH/gwIGMGzfuppYJp06dwsLC4p6eg7u7O2+88QZdu3ZFo9Hg6+vLggULWLVqFZGRkcyaNeuexhW1j1LRtO+aKiAgQI2MjNR1DCEeGlFrV7B90Q+0aN2OoCmvotGXhZSE0JXL2QWsik1lRWwK8SlZaPQUOrWwYbCvA33cG2BqKL9gEUIIIYQQupOQkICrq6uuY1SLnJwczM3NUVWVyZMn4+zszIsvvghAZGQkL774Irt27So7/rHHHmPu3LnY2trqKrKogcr7GlEUJUpV1YDyjpef8IQQd+Q/IAQ9jYatP/+PVZ9+QPDU19E3kAKuELpQv44xT3Z24snOTpy4lM2K2BRWxKQyZUkspoYaAt3tCPF1oGMLGzTSH1cIIYQQQogq8/3337Nw4UKKiorw9fXl6aefBuCjjz7i22+/vaXX7a+//qqLmOIBIzNvhRB3LW5TBJt/+JqmPv4MfOl1DAzlVm0hagKtVuVgUjorYlNYc+gC2QUl2NYxYpB3Q0J8HXBvaCGLHQghhBBCiPviQZ55K0RVqOzM22pfsExRlEBFUY4pinJSUZTptzmmm6IosYqiHFEUZUd1ZxJC3Bvv3v3o8/TzJMVFs2L2uxQXFug6khAC0NNTaOtUjw+HeHHwjV7Mf8wP30ZWLNybRNCXu+kzdydfbztJ8rU8XUcVQgghhBBCCFEJ1TrzVlEUDXAc6A0kAweBkaqqHv3HMVbAHiBQVdVziqLUV1X1ckXjysxbIXTryI4tbPj2Cxxd3Ql5dQaGxia6jiSEKEdGXhFrD19gRUwKB5OuAdCmmTVDfB3o52mPpYm0PxFCCCGEEFVLZt4KUbGaNvO2DXBSVdXTqqoWAYuBQf865lFguaqq5wDuVLgVQuiee9ee9Ht2KskJR1j+4dsU5ctsPiFqIitTQ0a1bcLSZzqw65XuvNS7JWnZhUxffpjW721m4q9RbDhykcKSUl1HFUIIIYQQQghRjupesMwBOP+Px8lA238d0xIwUBRlO1AH+EJV1UX/HkhRlAnABIDGjRtXS1ghxN1z7dQNPY0+a+fNZtn7bxH6+iyMTM10HUsIcRuNrE15rqczz/ZowaHkTFbEprA6LpWI+ItYmhgQ5GXPYF8H/JvUlf64QgghhBBCCFFDVPfM2/J++vt3nwZ9wB8YAPQF3lIUpeUtJ6nqd6qqBqiqGmBra1v1SYUQldaqfSeCX5zOpdOnCHt/hszAFaIWUBQF70ZWvB3szr7XevLzuNZ0a2VLWHQyQ+fvpcsn2/h04zFOXcnRdVQhhBBCCCHuiUajwcfHp+zjo48+uqdxzM3NqyzTnDlzcHFxwcPDA29vbxYtumXeohDlqu6Zt8lAo388dgRSyzkmTVXVXCBXUZSdgDfXe+UKIWo45zYdCH5xOqs++4CVc95j8Ksz0Tc01HUsIcRd0Nfo0b1Vfbq3qk9OYQkbj1wkPCaFr7ed5MutJ/F2tCTE14Fg74bYmBvpOq4QQgghhBB3xcTEhNjYWF3HKDN//nw2bdrEgQMHsLCwIDMzkxUrVtz1+aWlpWg0muoLKGq06p55exBwVhSlmaIohsAIYNW/jlkJdFYURV9RFFOut1VIqOZcQogq1KJ1OwInvci5+EOs+WI22lLpnylEbWNupM8QP0d+eaIte1/ryZsDXCnRqryz+ihtP9jC2J8PsDI2hfwi+foWQgghhBC1T2ZmJq1ateLYsWMAjBw5ku+//x6ATz75hNatW+Pl5cXbb799y7mqqjJt2jQ8PDzw9PRkyZIlAGzfvp1u3boxdOhQXFxcGDVqFKr67xvO4YMPPuCbb77BwsICAEtLSx5//HEAtmzZgq+vL56enowfP57CwkIAmjZtyqxZs+jUqRNLly6lW7duTJkyhQ4dOuDh4cGBAweq/kUSNVK1zrxVVbVEUZRngQ2ABvhJVdUjiqI88/f++aqqJiiKsh44BGiBH1RVja/OXEKIqufWuTuFebls/Wk+G779nMBJL6LoVffvh4QQ1aGBhTFPdnbiyc5OHL+UTXhMCitjUnhhcSxmhhr6etgx2NeBDs1t0OhJf1whhBBCCFG+ix98QGFCYpWOaeTqgt3rr1d4TH5+Pj4+PmWPX3vtNYYPH85XX33F2LFjeeGFF7h27RpPPfUUGzdu5MSJExw4cABVVRk4cCA7d+6kS5cuZecvX76c2NhY4uLiSEtLo3Xr1mX7Y2JiOHLkCA0bNqRjx4789ddfdOrUqezc7OxssrOzad68+S05CwoKGDt2LFu2bKFly5aMGTOGb7/9lilTpgBgbGzM7t27geuzd3Nzc9mzZw87d+5k/PjxxMdL+exhUN1tE1BVdR2w7l/b5v/r8SfAJ9WdRQhRvXz7BlGYk8Nff/6KoakZPcY9LQsfCVHLtWxQh1cDXZjWpxUHktJZEZPC2sMXWB6dQv06RgzyaUiIrwNu9hby9S6EEEIIIWqE27VN6N27N0uXLmXy5MnExcUBsHHjRjZu3Iivry8AOTk5nDhx4qbi7e7duxk5ciQajYYGDRrQtWtXDh48iIWFBW3atMHR0REAHx8fkpKSbireqqp62/fJx44do1mzZrRseX3pp8cff5yvv/66rHg7fPjwm44fOXIkAF26dCErK4uMjAysrKwq/wKJWqXai7dCiIdL2yHDKcjLJWpNOMbm5nR85DFdRxJCVAE9PYV2TvVo51SPmQPd2Zp4mfCYFBbsSeL7XWdo2cCcEF8HBvk44GBlouu4QgghhBCiBrjTDNn7TavVkpCQgImJCenp6Tg6OqKqKq+99hpPP/30bc8rrxXCDUZG/782hEajoaSk5Kb9FhYWmJmZcfr0aZycnO56XAAzM7ObHv+7CCyTJx4Ock+zEKJKKYpC18fG49G9D/vCFhO5JlzXkYQQVczYQEN/T3u+HxPAgdd78V6IB3WMDZi9/hgdP9rKiO/2suTgOTLzi3UdVQghhBBCiDJz587F1dWVP/74g/Hjx1NcXEzfvn356aefyMnJASAlJYXLly/fdF6XLl1YsmQJpaWlXLlyhZ07d9KmTZu7vu5rr73G5MmTycrKAiArK4vvvvsOFxcXkpKSOHnyJAC//PILXbt2ve04N3rt7t69G0tLSywtLSv1/EXtJDNvhRBVTlEUek+YTFF+Hjt++REjMzM8u/fRdSwhRDWoa2bIY+2a8Fi7Jpy7mseK2BTCY1J4Newwb608Qi/X+oT4ONCtVX0M9eV3xkIIIYQQovr9u+dtYGAg48eP54cffuDAgQPUqVOHLl268N577/HOO++QkJBA+/btATA3N+fXX3+lfv36ZecPHjyYvXv34u3tjaIozJ49Gzs7OxIT766f78SJE8nJyaF169YYGBhgYGDASy+9hLGxMT///DPDhg2jpKSE1q1b88wzz9x2nLp169KhQweysrL46aefAIiMjGT+/Pn88MMP9/BKidpAudMU7ZooICBAjYyM1HUMIcQdlJYUs2L2u5w9FEvQlFdo2a7TnU8SQtR6qqoSl5zJipgUVselcjW3CCtTA4K87Bns64Bf47pyi5cQQgghxAMqISEBV1dXXcd44HTr1o05c+YQEBCg6yjiPyrva0RRlChVVcv9y5WZt0KIaqPRN2Dg1NdZ9sEM1s6bg6GxCU19/HUdSwhRzRRFwaeRFT6NrHhjgCu7T6QRHpPCsqhkft13jsbWpoT8vdCZk625ruMKIYQQQgghRI0lM2+FENWuIDeHP2e9zrXUFIa+8S4OLm66jiSE0IHsgmI2HLnEipgU/jqVhqqCdyMrBvs0JMi7ITbmRnceRAghhBBC1Ggy81aIilV25q0Ub4UQ90VeZgaL336VvMwMHnn7Q+o3dbrzSUKIB9bFzAJWxaUQHpNKwoUsNHoKXZxtGOznSG/XBpgYanQdUQghhBBC3AMp3gpRMSneCiFqrKy0yyye8SqlJcUMn/kx1g0ddB1JCFEDJF7MYkVMKitjU7iQWYCZoYZAj+v9cds3r4dGT/rjCiGEEELUFlK8FaJiUrwVQtRo6anJLH77VfQNDBkxazYWNra6jiSEqCG0WpX9Z9IJj0km4vBFsgtLaGBhxCAfB0J8HHBraKHriEIIIYQQ4g6keCtExaR4K4So8S6dOcWf77yGWV1rRsz8CFNLK11HEkLUMAXFpWxJuEx4TArbj12mRKviYleHEF8HBvk0xN7SRNcRhRBCCCFEOaR4K0TFKlu81bsvqYQQ4h8aNGvO4Olvk512hbAP3qYwL1fXkYQQNYyxgYYBXvb88HgAB97oxbuD3DE11PBRRCIdPtrKyO/28efB82QVFOs6qhBCCCGEqGE0Gg0+Pj5lH0lJSXd97ooVKzh69GjZ4xkzZrB58+ZKZ9i+fTtBQUGVPk+If9O/2wMVRWkJTAOa/PM8VVV7VEMuIcQDztHFnYEvvc6K2e8S/vE7hL4+CwMjY13HEkLUQNZmhoxu35TR7Zty9mouK2JSCY9J5pWwQ7y1Mp5ebg0Y7ONAl5a2GOrL76WFEEIIIR52JiYmxMbGVvq8kpISVqxYQVBQEG5ubgDMmjWritMJUTmV+QlnKRANvMn1Iu6NDyGEuCfNfPzp/9xLpBxLYPVnH1JaIjPohBAVa1LPjBd6ObPt5W6ET+rAiNaN2HvqKk8uiqTtB5t5a0U80eeuURvbQgkhhBBCiOoTGxtLu3bt8PLyYvDgwVy7dg2Abt268frrr9O1a1c+/vhjVq1axbRp0/Dx8eHUqVOMHTuWZcuWATB9+nTc3Nzw8vLi5Zdfvutrz5w5k/Hjx9OtWzecnJyYN29e2b5Fixbh5eWFt7c3o0ePrtonLR4Idz3zFihRVfXbaksihHgotWrfmcK8PDZ99yXrvvqMAc+/jJ6eRtexhBA1nKIo+Daui2/jurwZ5MauE1cIj0nlz8jz/LLvLE3qmRLi40CIrwPNbMx0HVcIIYQQ4qG068/jpJ3PqdIxbRqZ0/mRlhUek5+fj4+PDwDNmjUjPDycMWPG8OWXX9K1a1dmzJjBO++8w+effw5ARkYGO3bsAODEiRMEBQUxdOjQm8ZMT08nPDycxMREFEUhIyOjUrkTExPZtm0b2dnZtGrViokTJ3L8+HHef/99/vrrL2xsbEhPT6/UmOLhUJni7WpFUSYB4UDhjY2qqsq/LCHEf+LVsy+Febns/PUnjExN6f3UsyiKoutYQohawkCjRw+XBvRwaUB2QTHr4y+yIjaFeVtP8MWWE/g0smKInwMDPO2pZ26k67hCCCGEEKKa/bttQmZmJhkZGXTt2hWAxx9/nGHDhpXtHz58+B3HtLCwwNjYmCeffJIBAwZUup/tgAEDMDIywsjIiPr163Pp0iW2bt3K0KFDsbGxAcDa2rpSY4qHQ2WKt4///fmfrRJUwKnq4gghHlatg4dQmJvL/vAlGJma0WXUOCngCiEqrY6xAcMCGjEsoBEXMwtYGZtCeEwKM1YeYdbqo3RtaUuIrwO93RpgbCCz/IUQQgghqtOdZsjWFGZmd75TS19fnwMHDrBlyxYWL17MV199xdatW+/6GkZG/z+JQKPRUFJSgqqq8nOvuKO7Lt6qqtqsOoMIIUTH4Y9RmJdD5OrlGJuZ03bwI7qOJISoxewsjXm6a3Oe7tqchAtZrIhNYWVMKlsSL2NupE8/DzsG+zrQ1qkeGj150yyEEEII8aCytLSkbt267Nq1i86dO/PLL7+UzcL9tzp16pCdnX3L9pycHPLy8ujfvz/t2rWjRYsWAISHh3PgwAE+/PDDSufq2bMngwcP5sUXX6RevXqkp6fL7Ftxi7su3iqKYgBMBLr8vWk78D9VVWWFISFElVAUhR5jn6YwL4/dixdhZGaOT5/+uo4lhHgAuNpb4GpvwSt9Xdh/5irh0SlExF9kaVQydhbGDPJpyGA/B1zsLHQdVQghhBBCVIOFCxfyzDPPkJeXh5OTEz///HO5x40YMYKnnnqKefPmlS1UBpCdnc2gQYMoKChAVVXmzp0LwKlTp7CwuLf3kO7u7rzxxht07doVjUaDr68vCxYsYNWqVURGRjJr1qx7Glc8WJS7XY1ZUZQfAANg4d+bRgOlqqo+WU3ZbisgIECNjIy835cVQtwnpSUlrPrsA05HH6T/sy/h2qmbriMJIR5ABcWlbE64RHh0CjuOX6FEq+JiV4fBvg4M9GmIvaWJriMKIYQQQtQ6CQkJuLq66jrGffPYY48xd+5cbG1tdR1F1BLlfY0oihKlqmpAecdXpngbp6qq95223Q9SvBXiwVdSVMTyD98mOfEIg15+g+b+bXUdSQjxAEvPLWLNoVTCY1KIOZeBokB7p3oM9nUg0MOOOsYGuo4ohBBCCFErPGzFWyEqq7LFW71KjF2qKErzfwzqBJTeU0ohhLgDfUNDQl55iwbNmrN67kecP3JI15GEEA8wazNDxrRvSvikjmx/uRsv9HQmJSOfacsOEfDeZp79PZotCZcoLtXqOqoQQgghhBDiIVKZmbc9gZ+B04ACNAHGq6p690vrVRGZeSvEwyM/O4slM6eTlXaFR956H7sWtWO1UiFE7aeqKjHnM1gRk8LquFSu5RVjbWZIsJc9Ib4O+DSyktWBhRBCCCH+RWbeClGx6mybYPT3H1txvXibCKCqauE9p71HUrwV4uGSnZ7GkrdfpTAvjxHvfEw9x8a6jiSEeMgUl2rZefwKy2NS2Hz0EoUlWprWMyXE14HBvg40qWem64hCCCGEEDWCFG+FqFh1Fm+jVVX1u9O2+0GKt0I8fDIuXmDx26+gKAojZs3Gsr6driMJIR5SWQXFrI+/yIqYFPaevoqqgl9jKwb7OjDAqyHWZoa6jiiEEEIIoTNSvBWiYlXe81ZRFDtFUfwBE0VRfBVF8fv7oxtgWgWZhRDijqzs7Bn6xruUFBWx9L03ybmWrutIQoiHlIWxAY8ENOL3p9rx16s9mN7PhdzCUt5aeYQ272/myYWRrD10gYJiWRpACCGEEEII8d/czYJlfYE5gCPw6T8+XgRer75oQghxM5vGTRny2jvkZWQQ9v5b5Odk6zqSEOIh19DKhGe6NmfDi12IeKEz4zs143BKBpN/j6b1e5t5ZVkce06lodXe3Z1OQgghhBDivzM3N7/p8YIFC3j22Wer5VqpqakMHToUgMjISJ5//vkqGbdbt260atUKHx8ffHx8yq4xc+ZM5syZU+nxMjIy+Oabbyo8pkOHDnc93r3k6NatG/dyJ31sbCzr1q277f6qfN1vuNes1UH/TgeoqroQWKgoSqiqqmG3O05RlMf/PlYIIaqNvXMrQl55i+UfzST8w5kMfes9DI1NdB1LCCFwtbfA1d6CVwNd2Hf6KuExKaw9dIE/I5OxtzRmkM/1/rit7OroOqoQQgghhKgiDRs2ZNmyZQAEBAQQEFDune/35Lfffquy8W4UbydNmnTLvtLSUjQaDXv27KmSa1W12NhYIiMj6d+//y37SkpKqvx1r2nuZuYtABUVbv/2wn/MIoQQd6WxhzdBL7zKxdMnWPnJe5QUFek6khBClNHoKXRsYcOcYd5EvtmbeSN9cbW34Ptdp+n7+U76fbGL73ae4lJWga6jCiGEEEI8dFavXk3btm3x9fWlV69eXLp0CQBPT08yMjJQVZV69eqxaNEiAEaPHs3mzZtJSkqic+fO+Pn54efnV1boTEpKwsPDA4Dt27cTFBQEwIEDB+jQoQO+vr506NCBY8eOAddnAQ8ZMoTAwECcnZ155ZVX7vm5nDp1isDAQPz9/encuTOJiYkAXLp0icGDB+Pt7Y23tzd79uxh+vTpnDp1Ch8fH6ZNm8b27dvp3r07jz76KJ6ensDNM5Znz56Np6cn3t7eTJ8+vcIc3bp149VXX6VNmza0bNmSXbt2AZCfn8+IESPw8vJi+PDh5Ofnl53zz2stW7aMsWPHArB06VI8PDzw9vamS5cuFBUVMWPGDJYsWYKPjw9Llixh5syZTJgwgT59+jBmzJibXvfc3FzGjx9P69at8fX1ZeXKlQAcOXKENm3a4OPjg5eXFydOnLjr19nc3Jw33ngDb29v2rVrV/ZvprzXuTrcceZtJShVOJYQQlSoRet2BE6cQsTXn7F23myCX3wNPY1G17GEEOImJoYaBno3ZKB3Q9JyCll76ALhMSl8sC6RDyMS6djchhBfBwI97DA3qsq3ZUIIIYQQurdtwXdcPnu6Sses38SJ7mMnVHhMfn4+Pj4+ZY/T09MZOHAgAJ06dWLfvn0oisIPP/zA7Nmz+fTTT+nYsSN//fUXTZo0wcnJiV27djFmzBj27dvHt99+i56eHps2bcLY2JgTJ04wcuTICm+rd3FxYefOnejr67N582Zef/11wsKuz4uMjY0lJiYGIyMjWrVqxXPPPUejRo1uGWPUqFGYmFy/07R379588sknN+2fMGEC8+fPx9nZmf379zNp0iS2bt3K888/T9euXQkPD6e0tJScnBw++ugj4uPjiY2NBa4Xmg8cOEB8fDzNmjW7adyIiAhWrFjB/v37MTU1JT39zmvOlJSUcODAAdatW8c777zD5s2b+fbbbzE1NeXQoUMcOnQIPz+/O44za9YsNmzYgIODAxkZGRgaGjJr1iwiIyP56quvgOstG6Kioti9ezcmJiZs37697Pz333+fHj168NNPP5GRkUGbNm3o1asX8+fP54UXXmDUqFEUFRVRWnr361Pk5ubSrl073n//fV555RW+//573nzzzXJf5+pQlT8lSDM3IcR95dalB4V5uWz9+X9smP8FgROnoOjd9Q0FQghxX9mYG/F4h6Y83qEpp6/ksCI2lRUxKby8NI43Vxymt5sdQ3wd6ORsg4FGvpcJIYQQQtwrExOTsiIlXJ/teqPQmpyczPDhw7lw4QJFRUVlhcvOnTuzc+dOmjRpwsSJE/nuu+9ISUnB2toac3NzMjMzefbZZ4mNjUWj0XD8+PEKM2RmZvL4449z4sQJFEWhuLi4bF/Pnj2xtLQEwM3NjbNnz5ZbvK2obUJOTg579uxh2LBhZdsKCwsB2Lp1a9nMYY1Gg6WlJdeuXbtljDZt2txSuAXYvHkz48aNw9TUFABra+sKnyvAkCFDAPD39ycpKQmAnTt3lvWi9fLywsvL647jdOzYkbFjx/LII4+UjVmegQMHlhW2/2njxo2sWrWqrB9vQUEB586do3379rz//vskJyczZMgQnJ2d75jlBkNDw7KZvf7+/mzatAko/3WuDjLzVghRq/kGBlOQm8OeP3/DyNSM7mMnoCjy7UgIUbM52ZoztXdLXuzlTPS5DFbEpLD6UCqr41KpZ2ZIsHdDQnwd8Ha0lO9pQgghhKi17jRDVheee+45pk6dysCBA9m+fTszZ84EoEuXLnz99decO3eO999/n/DwcJYtW0bnzp0BmDt3Lg0aNCAuLg6tVouxsXGF13nrrbfo3r074eHhJCUl0a1bt7J9RkZGZX/WaDSUlJRU+nlotVqsrKxuKlJXlpmZWbnbVVWt9HvQG8/p38/nduP8c3tBwf+3E5s/fz779+9n7dq1+Pj43Pb5VZQ9LCyMVq1a3bTd1dWVtm3bsnbtWvr27csPP/xAjx497uq5GRgYlOW917+v/6Iqp3X8VYVjCSHEXWs3ZAT+A0KIWb+adV/O4XJS1d6WI4QQ1UVRFPyb1OXdEA8OvN6L78cE0M6pHr8fOEfI13/R89MdzNtygnNX83QdVQghhBDigZCZmYmDgwMACxcuLNveqFEj0tLSOHHiBE5OTnTq1Ik5c+aUFW8zMzOxt7dHT0+PX3755Y633f/zOgsWLKjy52FhYUGzZs1YunQpcL1oGRcXB1yf2fvtt98C1xcjy8rKok6dOmRnZ9/V2H369OGnn34iL+/6e9C7aZtQni5duvDbb78BEB8fz6FDh8r2NWjQgISEBLRaLeHh4WXbT506Rdu2bZk1axY2NjacP3++Utn79u3Ll19+iapebxAQExMDwOnTp3FycuL5559n4MCBZVl69uxJSkrKPT2/8l7n6nDXxVtFUT5QFMXqH4/rKory3o3Hqqo+W8XZhBDiriiKQtfRT9B28COcjNzHL68+z5KZ0zm+/y+0lehjI4QQumSor0dvtwZ8PcqPyDd78XGoJ/UtjPhs03G6fLKN0G/38Mu+s1zLlUUahRBCCCHu1cyZMxk2bBidO3fGxsbmpn1t27alZcuWwPU2CikpKXTq1AmASZMmsXDhQtq1a8fx48dvO/PzhldeeYXXXnuNjh07Vqq/6j+NGjUKHx8ffHx86NWr1y37f/vtN3788Ue8vb1xd3cvW5zriy++YNu2bXh6euLv78+RI0eoV68eHTt2xMPDg2nTplV43cDAQAYOHEhAQAA+Pj5lLQgqa+LEieTk5ODl5cXs2bNp06ZN2b6PPvqIoKAgevTogb29fdn2adOm4enpiYeHB126dMHb25vu3btz9OjRsgXLKvLWW29RXFyMl5cXHh4evPXWWwAsWbIEDw8PfHx8SExMZMyYMWi1Wk6ePHlXbSHKU97rDNC/f39SU1PvaczyKDcq0Xc8UFFiVFX1/de2aFVV79xtuIoFBASoFTWFFkI8vApycojftpGYDWvJunKJOvVs8ek7AM8efTCpY6HreEIIUWkpGfmsik0lPCaZ45dyMNAodGtVn8G+DvRwqY+xgSzWKIQQQoiaIyEhAVdXV13HEOKO4uPj+emnn/jss8/u63XL+xpRFCVKVdVyGxxXpnh7CGitqmrh349NgEhVVd3/W+TKk+KtEOJOtNpSTkcdJGb9Ks7FH0LfwBDXzt3wDQzGtsmtDdmFEKKmU1WVhAvZhMckszI2lcvZhdQx1qe/hz0hvg60bWaNnp70xxVCCCGEbknxVoiKVbZ4W5kFy34FtiiK8jOgAuOBhRWfIoQQuqGnp6FF63a0aN2OtHNJxKxfw9Fd2zi8dSON3Dzx7RdM84C26OnJjDUhRO2gKApuDS1wa+jG9H6u7D11lfCYFNYcSmVJ5HkaWhozyNeBwb4OtGxQR9dxhRBCCCGEEFXgrmfeAiiK0g/oCSjARlVVN1RXsIrIzFshxL3Iz8kmfutGYjasITvtCha29fHpMwCPHn0wMZdChxCidsovKmXj0YusiElh54k0SrUqbvYWDPFzYKB3Q+pbVLwSshBCCCFEVZKZt0JUrNraJtQkUrwVQvwX2tJSTkXtJyZiNeePHkbf0Ai3zt3xDQzCpnFTXccTQoh7lpZTyJq4VMJjU4k7n4GeAh1b2BDi40BfDzvMjSpz05UQQgghROVJ8VaIilV58VZRlN2qqnZSFCWb6+0SynYBqqqq930FICneCiGqypWzZ4hZv5qEXdspKS6isYcXvv0G4eQXIC0VhBC12ukrOayISSE8NoXz6fkYG+jR192OEF8HOrewQV+jp+uIQgghhHgASfFWiIrJzFshhLgH+dlZHNqygdiNa8m5moZl/Qb49A3Co3tvjM3MdR1PCCHumaqqRJ+79nd/3Atk5BVjY25IkFdDBvs64OVoiaLIQmdCCCGEqBpSvBWiYtVSvFUURQ84pKqqR5Wk/I+keCuEqC7a0lJOHtxLdMRqUhKPoG9khHuXnvgGBlPPsZGu4wkhxH9SVKJl+7HLrIhNYXPCZYpKtDjZmjHYx4EQXwcaWZvqOqIQQggharmaULw1NzcnJyfnlu1jx44lKCiIoUOH6iBV+WbOnIm5uTkvv/yyrqOI+6Syxdu7anymqqpWUZQ4RVEaq6p6rgpyCiFEjaSn0dCyXSdatuvEpTOniFm/mvjtm4jbtI4mXr74Bgbj5BuAoie3Gwshah9DfT36uNvRx92OzPxi1sdfIDwmhU83HefTTccJaFKXwX4OBHk2xNLUQNdxhRBCCCFqjdLSUjQaab0nql5lqg/2wBFFUbYoirLqxkd1BRNCCF1r0Kw5gROnMOGbBXQaMYaryedYMXsWP015mqi1KynMy9V1RCGEuGeWJgYMb92YxRPa89f0HrwS2IrM/GLeCI+n9Qebmfx7NFsTL1FSqtV1VCGEEEKIe6KqKs8++yxubm4MGDCAy5cvl+2bNWsWrVu3xsPDgwkTJnDjzvSTJ0/Sq1cvvL298fPz49SpU6iqyrRp0/Dw8MDT05MlS5YAsH37drp3786jjz6Kp6cnSUlJuLi48Pjjj+Pl5cXQoUPJy8u767zdunXj1VdfpU2bNrRs2ZJdu3YB1wvDL7/8Mp6ennh5efHll19W4askarrKLDn8TrWlEEKIGszUwpK2gx8hIHhIWUuF7Yu+568lv+De7XpLBeuGjrqOKYQQ98zByoRJ3VowsWtzjqRmsSwqmVVxqaw9dAEbcyNCfBoS6u+Iq/19X6dWCCGEELVYxupTFKVW7aQXw4ZmWAU3v6tjw8PDOXbsGIcPH+bSpUu4ubkxfvx4AJ599llmzJgBwOjRo1mzZg3BwcGMGjWK6dOnM3jwYAoKCtBqtSxfvpzY2Fji4uJIS0ujdevWdOnSBYADBw4QHx9Ps2bNSEpK4tixY/z444907NiR8ePH880331SqJUJJSQkHDhxg3bp1vPPOO2zevJnvvvuOM2fOEBMTg76+Punp6ZV81URtVpnibX9VVV/95wZFUT4GdlRtJCGEqJk0+vq0at+ZVu07c+n0SWLWr+bwlg3EblhLUx9/fAODaObtLy0VhBC1lqIoeDhY4uFgyev9Xdl+7DJh0cks3JvED7vP4GZvQai/I4N8GmJjbqTruEIIIYQQFdq5cycjR45Eo9HQsGFDevToUbZv27ZtzJ49m7y8PNLT03F3d6dbt26kpKQwePBgAIyNjQHYvXt32TgNGjSga9euHDx4EAsLC9q0aUOzZs3Kxm3UqBEdO3YE4LHHHmPevHmVKt4OGTIEAH9/f5KSkgDYvHkzzzzzDPr618t41tbW9/6iiFqnMsXb3sCr/9rWr5xtQgjxwGvg1ILASS/S+dGxHNqynrhNEYR/9A517Rvi0zcI9669MDKVhX+EELXXP/vjpucWsToulbDoZN5dc5QP1yXQrZUtoX6O9HCtj5G+9HcTQgghxK3udoZsdVIU5ZZtBQUFTJo0icjISBo1asTMmTMpKCgoa53wb7fbDmBmZlbh9cq7fkWMjK7/glyj0VBSUlJ2/cqOIx4cd5wepijKREVRDgOtFEU59I+PM8Dh6o8ohBA1l5lVXdqHjuSpr36k//PTMDavw7YF3/HdpMfZuuB/XLuQouuIQgjxn1mbGfJ4h6aserYTm17swhOdm3E4JZOJv0XT9oMtvLUintjzGRX+YCOEEEIIcb916dKFxYsXU1payoULF9i2bRtwvXgLYGNjQ05ODsuWLQPAwsICR0dHVqxYAUBhYSF5eXl06dKFJUuWUFpaypUrV9i5cydt2rQp95rnzp1j7969APzxxx906tQJgNdee43w8PB7eh59+vRh/vz5ZcVcaZvwcLmbmbe/AxHAh8D0f2zPVlVV/rUIIQSg0TfAtWNXXDt25cLJY8SsX0PcxghiIlbTzDcAv8Bgmnj5SksFIUSt59ygDq/1c+WVvi7sPplGWFQyf0ae55d9Z2lua0aovyODfR2wtzTRdVQhhBBCPOQGDx7M1q1b8fT0pGXLlnTt2hUAKysrnnrqKTw9PWnatCmtW7cuO+eXX37h6aefZsaMGRgYGLB06VIGDx7M3r178fb2RlEUZs+ejZ2dHYmJibdc09XVlYULF/L000/j7OzMxIkTATh8+DADBw68p+fx5JNPcvz4cby8vDAwMOCpp54q69kbEBBwz+OK2kGpzAwJRVE6Ac6qqv6sKIoNUEdV1TPVlu42AgIC1MjIyPt9WSGEqJTcjGvEbYogbtM68jIzqNvQEd/AINy79MDQRFoqCCEeHFkFxaw7dIGw6GQOJl1DUaBTCxuG+DkQ6G6PiaG0VRBCCCEeFgkJCbi6uuo6hk4kJSURFBREfHz8Lfv69u3Lhg0bdJBK1DTlfY0oihKlqmpAecffdfFWUZS3gQCglaqqLRVFaQgsVVW143/MXGlSvBVC1CalJcUc37ub6IhVXDx1AkMTUzy698a3bxBWdva6jieEEFXq7NVcwqJTWB6dTPK1fMwMNfT3tCfU35E2Ta3R05N+bUIIIcSDTIq35RdvhbihOou3sYAvEK2qqu/f2w6pqur1nxLfAyneCiFqqwsnjhEdsYrj+3aj1Wpx8g3At99Amnj6SAN6IcQDRatVOZCUTlhUMusOXyC3qBTHuiYM8XMk1M+BJvXM7jyIEEIIIWqdh7l4K8TdqM7i7QFVVdsoihKtqqqfoihmwF4p3gohROXlpF8lbnMEcZsiyM/KxNqhEb6Bwbh16Y6hsfSJFEI8WPKKSth45BJh0cnsPpmGqkLrpnUJ9XOkv5c9FsYGuo4ohBBCiCoixVshKladxduXAWegN9cXLxsP/K6q6pf/KfE9kOKtEOJBUVJczLE9O4lZv5pLp09iZGqGR/fe+PQNwqqBna7jCSFElbuQmU94TAphUcmcupKLkb4efd3tCPV3pFMLGzTSVkEIIYSo1aR4K0TFqq14+/dAvYE+gAJsUFV103/Ies+keCuEeNCoqkrq8URiIlZxfP9fqKpKc/82+PUbSCN3L2mpIIR44KiqSlxyJmFRyayKSyUzv5gGFkaE+Dow1M8R5wZ1dB1RCCGEEPdAirdCVKxai7d/D2YB6N94rKpq+j3k/E+keCuEeJBlX00jblMEhzZHkJ+dRT3Hxvj1G4hrp24YGBvrOp4QQlS5wpJStiZcJiw6mW3HrlCqVfF0sCTUz4GBPg5YmxnqOqIQQggh7pIUb4WoWGWLt3p3O7CiKE8rinIJOAREAlF/fxZCCFGF6tSzodOI0Uz4ZgF9J05BT1+fTd9/xXeTxrLj15/IvHxJ1xGFEKJKGelr6Odpzw+Pt2b/6z15K8iNUq3KzNVHafvBZiYsimTDkYsUlWh1HVUIIYQQtYCiKLz00ktlj+fMmcPMmTMBGDt2LMuWLbvpeHNz87I/Hz9+nP79+9OiRQtcXV155JFHuHTp+s9gu3fvpk2bNri4uODi4sJ3331Xdt7MmTNxcHDAx8cHNzc3/vjjj9vmW7RoER4eHri7u+Pm5sacOXOA63cmvffeezg7O9OyZUu6d+/OkSNHys5r2rQpnp6eeHl50bVrV86ePVu2T6PR4OPjg4eHB8OGDSMvL+8eXjlRE9118RZ4GXBXVbWpqqpOqqo2U1XVqbqCCSHEw07f0BCPbr0Y/dEXDH/nYxp7+hC1dgU/Pv8UK+e8z/kjh6js3RNCCFHT2Zgb8USnZqx7oTMRL3Tm8fZNiT6XwdO/RNHuwy3MXHWEw8mZ8v1PCCGEELdlZGTE8uXLSUtLq9R5BQUFDBgwgIkTJ3Ly5EkSEhKYOHEiV65c4eLFizz66KPMnz+fxMREdu/ezf/+9z/Wrl1bdv6LL75IbGwsK1eu5Omnn6a4uPiWa0RERPD555+zceNGjhw5QnR0NJaWlgB8/fXX7Nmzh7i4OI4fP85rr73GwIEDKSgoKDt/27ZtHDp0iG7duvHee++VbTcxMSE2Npb4+HgMDQ2ZP39+ZV82UUNVpnh7CpCyvRBC3GeKouDo4k7wi9N58ssfaT0olOTEI/w563UWvfIch7ZsoLiw4M4DCSFELeNqb8GbQW7se60HP40NoL1TPX7ff47gr3bT9/Od/G/HKS5nyfc/IYQQQtxMX1+fCRMmMHfu3Eqd9/vvv9O+fXuCg4PLtnXv3h0PDw++/vprxo4di5+fHwA2NjbMnj2bjz766JZxnJ2dMTU15dq1a7fs+/DDD5kzZw4NGzYEwNjYmKeeegqAjz/+mC+//BJTU1MA+vTpQ4cOHfjtt99uGad9+/akpKSU+zw6d+7MyZMnK/XcRc2lf+dDyrwG7FEUZT9QeGOjqqrPV3kqIYQQ5bKwsaXzyMdpFzqCxL92ELNuFZu++5Jdvy/As2dffPr0x8Kmvq5jCiFEldLX6NHDpQE9XBqQmVfM6kOpLI9O5sOIRD5en0hnZ1tC/R3p49YAYwONruMKIYQQ4m8RERFcvHixSse0s7OjX79+dzxu8uTJeHl58corr9z12PHx8fj7+5e778iRIzz++OM3bQsICLiprcEN0dHRODs7U7/+rT+b3e4aWVlZ5Obm0rx587u6xvr16wkJCblle0lJCREREQQGBpb7PETtU5ni7f+ArcBhQBqOCSGEDhkYGuHZvQ8e3XqTknCE6IhVRK5aTuSq5bRo0w6/wIE4uLqjKIquowohRJWyNDXgsXZNeKxdE05fyWF5dArLo5N5/o8Y6hjrE+RlT6ifI/5N6sr3QCGEEOIhZmFhwZgxY5g3bx4mJiZl28t7f3A37xlUVb3juXPnzuX777/n9OnTrF+//h6TV3zd7t27c+nSJerXr39T24T8/Hx8fHyA6zNvn3jiiSq5vtC9yhRvS1RVnVptSYQQQlSaoig4unng6OZB1pXLxG5cy+EtGzixfw+2TZrh2y8Yl45dMTA00nVUIYSock625rzctxVTe7dk3+mrLItOZkVMKn8cOE/TeqYM8XNksK8DjaxNdR1VCCGEeCjdzQzZ6jRlyhT8/PwYN25c2bZ69erd1M4gPT0dGxsbANzd3dmxY0e5Y7m7uxMZGcnAgQPLtkVFReHm5lb2+MUXX+Tll19m+fLljBkzhlOnTmFsbHzLOFFRUfTo0eOm7RYWFpiZmXH69GmcnP5/iano6Gi6du1a9njbtm2YmZkxduxYZsyYwWeffQb8f89b8eCpTM/bbYqiTFAUxV5RFOsbH9WWTAghRKVY2Nany6hxTPh2Ab0nPIuq1bJx/jy+mzSOXX8sJPtq5Zr1CyFEbaGnp9ChhQ2fPeJD5Ju9mDPMG3tLEz7bdJzOs7cx4ru9LI08T05hia6jCiGEEOI+sra25pFHHuHHH38s29atWzeWLFlCUVERAAsWLKB79+4APProo+zZs+emRcjWr1/P4cOHmTx5MgsWLCgrkF69epVXX3213LYMQ4YMISAggIULF96y77XXXuOVV14paydRWFjIvHnzAJg2bRrPP/88+fn5AGzevJndu3fz6KOP3jSGiYkJn3/+OYsWLSI9Pf1eXx5RS1Rm5u2Nfymv/WObCjiVc6wQQggdMTAyxqtnIJ49+nL+yGFi1q/iwMplHFwVhnPbjvgFBtOwlavcTiyEeCCZGekz1N+Rof6OJF/LIzw6hbDoZKYtO8SMlUfo52FHqL8j7Z3qoacn3weFEEKIB91LL73EV199VfY4KCiIqKgo/P390Wg0NG/enPnz5wPXi6Jr1qxhypQpTJkyBQMDA7y8vPjiiy9o0KABv/76K0899RTZ2dmoqsqUKVNuWtzsn2bMmMGjjz7KU089hZ7e/8+d7N+/P5cuXaJXr15lLRHGjx8PwHPPPce1a9fw9PREo9FgZ2fHypUrb2r7cIO9vT0jR47k66+/5q233qrKl0zUMIqqqrrOUGkBAQFqZGSkrmMIIUStkXn5IrEb13F46wYKc3Op36w5fv0G0qp9Z/QNDXUdTwghqpWqqkSfu8ayqBTWHEolu6CEhpbGhPg6EOrvSHNbc11HFEIIIR4YCQkJuLq66jqGEDVWeV8jiqJEqaoaUN7xlS7eKopip6pq1S4VWElSvBVCiHtTXFDA0V3biFm/mqvJ5zCxsMS7VyBevftRx9pG1/GEEKLaFRSXsunoJcKik9l5/ApaFXwaWRHq78hAr4ZYmhroOqIQQghRq0nxVoiK3Y/i7VpVVQfce8T/Toq3Qgjx36iqyrn4OGLWr+ZU1AH09PSut1ToF4y9s4u0VBBCPBQuZxWwIjaFsKgUjl3KxlCjRy+3+oT6OdKlpS0GmsosDyGEEEIIkOKtEHdS7cXbmkCKt0IIUXUyLl0kdsNqDm/dRFF+Hg2cnPHrF0zL9p3RN5AZaEKIB5+qqhxJzWJZVDKr4lJJzy3CxtyQQT4OhPo54tbQQtcRhRBCiFpDirdCVEyKt0IIIe5JUUE+R3dsJWb9atJTkzG1tMKrVz+8e/fDvK61ruMJIcR9UVSiZfuxy4RFJ7M18TLFpSqu9haE+jkwyMcB2zpGuo4ohBBC1GhSvBWiYlVevFUUxRP4HnAAIoBXVVW99ve+A6qqtqmK4JUhxVshhKg+qlbL2cOxxKxfzenog+hp9GnZriN+/QZi79xK1/GEEOK+uZZbxOpDqYRFJROXnIlGT6FbS1tC/R3p6VofI32NriMKIYQQNY4Ub4WoWGWLt/p3Mea3wExgH/AksFtRlIGqqp4C5H5aIYR4wCh6ejT19qOptx/XLqQQu2Et8ds3kfjXDuxatMSv30BatuuIRl/+CxBCPNjqmhkypn1TxrRvyolL2YRFpxAek8yWxMtYmhgQ5GVPqL8jvo2spFe4EEIIIYSoFncz8zZWVVWffzzuDnwHjAa+UVXVr1oTlkNm3gohxP1VlJ/HkR1biFm/hmsXUjCzqot37/549QrEzKquruMJIcR9U6pV+etkGmHRyWw4cpGCYi1OtmaE+jky2NeBhlYmuo4ohBBC6FRNmHmrKApTp07l008/BWDOnDnk5OQwc+ZM5s+fj6mpKWPGjNFpxvIsWLCAyMhIvvrqK11HEdWoOmbeKoqiWKqqmgmgquo2RVFCgTBAmiAKIcRDwNDEFN/AYHz6DCDpUAwxEavYs/Q39i1fgkuHzvj2G4hdc2ddxxRCiGqn0VPo0tKWLi1tyS4oZt3hC4RFpfDJhmPM2XiMDs3rEernSKCHHaaGd/NWWwghhBBVzcjIiOXLl/Paa69hY2Nz075nnnmm2q6rqiqqqqKnp1dt1xAPn7v51/QxcFM5WFXVQ0BPYHl1hBJCCFEzKXp6NPPxZ8hr7zBu7v/w7t2PEwf38dvrL/L7Wy+T+NcOSktKdB1TCCHuizrGBgxv3Zg/n2nPzmndeb6HM+fS85j6Zxyt39vMy0vj2HvqKlpt7VsgWAghhKjN9PX1mTBhAnPnzr1l38yZM5kzZw4A8+bNw83NDS8vL0aMGAFAeno6ISEheHl50a5dOw4dOnTLeQAeHh4kJSWRlJSEq6srkyZNws/Pj/PnzzN79mw8PT3x9vZm+vTpAJw6dYrAwED8/f3p3LkziYmJFT6HsWPH8vzzz9OhQwecnJxYtmxZ2b7yxhcPrjtOB1BV9fcbf1YUxfz6JjVXVdVzwFPVGU4IIUTNZd3QgR7jnqbj8NEc2bGZmPWrWTvvE8zr/ljWUsHU0krXMYUQ4r5oXM+UF3u35IWezhxMSicsOpl1hy+yLCoZx7omDPF1YIifI01tzHQdVQghhLhvjh9/l+ychCods465Ky1bvnXH4yZPnoyXlxevvPLKbY/56KOPOHPmDEZGRmRkZADw9ttv4+vry4oVK9i6dStjxowhNja2wmsdO3aMn3/+mW+++YaIiAhWrFjB/v37MTU1JT09HYAJEyYwf/58nJ2d2b9/P5MmTWLr1q0VjnvhwgV2795NYmIiAwcOZOjQobcdXzy47upeLkVRJgKvAWbXHyrZwMeqqn5TneGEEELUfEampvj1G4hv3yDOxEURvW4Vf/35K/uWL8alY1d8A4Np4NRC1zGFEOK+0NNTaOtUj7ZO9XhnoAcbjlwkLDqZL7edZN7WkwQ0qUuovyMDvOyxMJaFH4UQQojqYmFhwZgxY5g3bx4mJuX3pPfy8mLUqFGEhIQQEhICwO7duwkLCwOgR48eXL16lczMzAqv1aRJE9q1awfA5s2bGTduHKampgBYW1uTk5PDnj17GDZsWNk5hYWFd3wOISEh6Onp4ebmxqVLl247vniw3bF4qyjKm0AHoJuqqqf/3uYEfKEoirWqqu9Vc0YhhBC1gKKnh5Nva5x8W3M1+TwxG9ZwdMcWjuzYQsNWbvj1C6ZF6/Zo9KUHpBDi4WBiqCHE14EQXwcuZhYQHpNCWHQyry0/zMxVR+jjbkeonwOdWtigr5HeeEIIIR48dzNDtjpNmTIFPz8/xo0bV+7+tWvXsnPnTlatWsW7777LkSNHUNVb2x0pioK+vj5arbZsW0FBQdmfzcz+/84aVVVRFOWm87VaLVZWVnecwftvRkZGN417u/HFg+1u3iWOBobcKNwC/P3nR4CatzSfEEIInavn2IheT0xkwrcL6DbmSXIz0lnz+cf88PyT7A//k7ysin9zLYQQDxo7S2MmdmvOphe7sHJyR4a3bsSuE1cY+/NBOny0lQ/WJXDsYrauYwohhBAPFGtrax555BF+/PHHW/ZptVrOnz9P9+7dmT17NhkZGeTk5NClSxd+++03ALZv346NjQ0WFhY0bdqU6OhoAKKjozlz5ky51+zTpw8//fQTeXl5wPUeuhYWFjRr1oylS5cC1wuwcXFx9/ScyhtfPNjuavqTqqoF5WzLVxRFW97xQgghBICxmTn+A0Lw7RfMmZhIoiNWs3vxIvaG/YFrp274BgZTv6mTrmMKIcR9oygK3o2s8G5kxRsDXNmWeJllUSn8tPsM3+08jYeDBaF+jgzyccDazFDXcYUQQoha76WXXuKrr766ZXtpaSmPPfYYmZmZqKrKiy++iJWVFTNnzmTcuHF4eXlhamrKwoULAQgNDWXRokX4+PjQunVrWrZsWe71AgMDiY2NJSAgAENDQ/r3788HH3zAb7/9xsSJE3nvvfcoLi5mxIgReHt7V/r53G78+fPnA/DMM89UekxRsynlTQe/6QBF2QJ8oKrqln9t7wm8qapq92rMV66AgAA1MjLyfl9WCCFEFbiafI6Y9as5snMrJYWFOLp64NsvmBYB7dDTaHQdTwghdCItp5BVsamERSdzJDULfT2F7i71CfVzpIdLfQz1pa2CEEKI2iEhIQFXV1ddxxCixirva0RRlChVVQPKO/5uirfuwEpgNxAFqEBroCMwSFXVI1WQu1KkeCuEELVfQU4O8ds2ErNhLVlXLlGnni0+fQfg2aMPJnUsdB1PCCF0JvFiFmFRyayITeVKdiF1TQ0Y6N2QUH9HPB0spc+dEEKIGk2Kt0JUrDqKty0AO6Al4A4owBHgBJCiquqpKshdKVK8FUKIB4dWW8rpqIPErF/FufhD6BsY4tr5eksF2ybNdB1PCCF0pqRUy66TaYRFJbPx6CWKSrQ41zcn1N+Rwb4ONLAw1nVEIYQQ4hZSvBWiYtVRvF0DvK6q6qF/bQ8A3lZVNfi/Ra68h614uz5pPVZGVrSzb6frKEIIUa2unEsidv0aju7aRklRIY3cPPHtF0zzgLbo6UlLBSHEwyszv5i1hy4QFp1M1Nlr6CnQydmWUD8H+rrbYWwg3yOFEELUDFK8FaJi1VG8jVdV1eM2+w6rqup5r2Hv1cNUvFVVlZFrR3Lk6hH6NevHtIBp2Jra6jqWEEJUq/ycbOK3biRmwxqy065gYVsfnz4D8OjRBxPzOrqOJ4QQOnUmLZfl0cksj04hJSOfOkb6DPCyJ9TfkYAmdaWtghBCCJ2S4q0QFauO4u1JVVVbVHZfdXqYircAhaWF/Hj4R344/ANGGiOe9X2WEa1GoJFZaEKIB5y2tJRTkfuJXr+K5KPx6Bsa4dalO76Bwdg0aqLreEIIoVNarcq+M1cJi0ohIv4CeUWlNKlnyhBfR4b4OdDI2lTXEYUQQjyEpHgrRMWqo3j7B7BVVdXv/7X9CaCPqqrD/1vkynvYirc3nM06ywf7P2BP6h5crV15q91beNre94nPQgihE5eTThOzfg2Ju7dTUlxEYw9vfPsNxMkvQFoqCCEeermFJayPv0hYdDJ7T19FVaFtM2tC/Rzp72WPuZG+riMKIYR4SEjxVoiKVUfxtgEQDhQBUX9vDgAMgcGqql78r6Er62Et3sL1Ngobz25k9oHZXMm/wrCWw3je73ksjSx1HU0IIe6LvKxMDm/dSOzGteRcTcOyfgN8+gbh0b03xmbmuo4nhBA6l5KRT3h0MmHRKZxJy8XYQI9AdztC/R3p0NwGjZ60VRBCCFF9akLxNjk5mcmTJ3P06FG0Wi1BQUF88sknGBoaAnDgwAFeeeUVUlJSqFOnDvb29nz00Ud4el6fIPf9998zZ84c9PX1mTx5MpMmTSobe+zYsezYsQNLy+t1GFNTU/bs2XPT9bdv386gQYNo1uz/F2CeM2cOvXr1qu6nfkfHjx9nypQpHD9+HAMDAzw9Pfnyyy9p0KCBrqM9NKq8ePuPQboDN3rfHlFVdet/CfpfPMzF2xtyinL4Ju4bfk/4HUsjS14KeIlgp2DpcSaEeGhoS0s5eXAv0RGrSUk8gr6REe5deuIbGEw9x0a6jieEEDqnqirR5zIIi05mTVwqWQUl2FsaE+LrQKifIy3qyy+8hBBCVD1dF29VVaVt27ZMnDiRcePGUVpayoQJE7C2tuaTTz7h0qVLtG3blt9//50OHToAsHv3btLS0ggJCaGkpISGDRty8uRJ6tSpw9mzZ2natGnZ+GPHjiUoKIihQ4feNsP27duZM2cOa9asqdLnVlJSgr7+vd9NU1BQgKenJ5999hnBwcEAbNu2DVtbWzw8yl3uqkqvL66rtuJtTSLF2/93LP0Y7+57l7grcfg38OfNtm/Sou59b0MshBA6denMKWLWrybxrx2UFhfTxMsX38BgnHwDUPT0dB1PCCF0rqC4lM0JlwiLSmbniTRKtSrejawY6udAsHdDrEwNdR1RCCHEA0LXxdstW7bwzjvvsHPnzrJtWVlZNGvWjPPnz/Phhx+ip6fHO++8U+75JSUl1K9fn6ioqJtmzt7wX4q3SUlJ9OvXj06dOrFnzx4cHBxYuXIlJiYmnDp1ismTJ3PlyhVMTU35/vvvcXFxYezYsVhbWxMTE4Ofnx+TJk1i1KhRlJaW0q9fPz777DNycnIYPXo0Q4cOZdCgQQCMGjWK4cOHM3DgwLLr//TTT2zfvp1FixbdkrmgoICJEycSGRmJvr4+n332Gd27d2fBggWsXbuWgoICcnNzmTFjBjNmzKBevXocO3aMLl268M0336AnP3fdtcoWb6VcXsu1sm7Fon6LCD8RztzouQxbPYzR7qN5xusZTA1kkQohxMOhQbPmBE6cQpdR4zi8ZQOxG9eyYvYsrBrY/91SoRdGpma6jimEEDpjbKAhyKshQV4NuZxdwMqYVMKik3lr5RHeXZNAT9f6hPo50rWVLQYa+eFLCCFE1XjrRDLxOflVOqaHuQnvOjvedv+RI0fw9/e/aZuFhQWNGzfm5MmTHDlyhMcff/y255eUlODl5UVISAjbtm3D2tr6lmOmTZvGe++9B4C7uzu//fbbLcfs2rULHx+fssdhYWFoNBpOnDjBH3/8wffff88jjzxCWFgYjz32GBMmTGD+/Pk4Ozuzf/9+Jk2axNat1296P378OJs3b0aj0RAUFMQLL7zAyJEjmT9/ftn4Tz75JHPnzmXQoEFkZmayZ88eFi5ceFOm+Pj4W16bG77++msADh8+TGJiIn369OH48eMA7N27l0OHDmFtbc327ds5cOAAR48epUmTJgQGBrJ8+fIKi9niv5Hi7QNAT9EjtGUoPRr3YG7UXH6O/5mIMxFMbzOdHo16SCsFIcRDw9TCkraDHyEgeEhZS4Xti77nryW/4N7teksF64a3f6MnhBAPg/p1jHmqixNPdm7G0QtZhEWlsDI2hYj4i9iYGzLQ24FQfwfcG8qaCkIIIWofVVXLrYPcbnvbtm3JysqiT58+fPHFF7z22muMHj0aAwMDgoOD2bRpE2vWrOHgwYN88sknAHzyySd3LFZ27ty53Jm3zZo1Kyvq+vv7k5SURE5ODnv27GHYsGFlxxYWFpb9ediwYWg01xdp3rt3LytWrADg0Ucf5eWXXwaga9euTJ48mcuXL7N8+XJCQ0Mr1eJg9+7dPPfccwC4uLjQpEmTsuJt7969bypit2nTBicnJwBGjhzJ7t27pXhbjaR4+wCpa1yXWR1nMdh5MO/ue5cp26bQ1bEr09tMx7GOFCuEEA8Pjb4+rdp3plX7zlw6fZLoiFXXZ+RuWEtTH398A4No5u0vLRWEEA81RVFwb2iJe0NLXuvvwo5jVwiLTubXfWf56a8zuNjVYai/I4N8HLCtY6TruEIIIWqhimbIVhd3d3fCwsJu2paVlcX58+dp3rw57u7uREdHl7UX2L9/P8uWLSsrtG7YsIEXXniBpk2bcvnyZYYNG4aZmRnTpk2rknxGRv//f6pGoyE/Px+tVouVlRWxsbHlnmNmdnd3EY4ePZrffvuNxYsX89NPP92y393dnR07dpR7bkVtVf99/X8XwWXSYPWq9p9aFUUJVBTlmKIoJxVFmV7Bca0VRSlVFEVK9f+Rb31flgQt4eWAlzl48SCDVw7m+0PfU1RapOtoQghx3zVwakG/yVN56uuf6fDIKK6cPUP4R+/w89RniI5YTWFenq4jCiGEzhlo9Ojl1oBvH/PnwBs9eXeQO0YGGt5bm0C7D7cw7ucDrDmUSkFxqa6jCiGEEBXq2bMneXl5ZX1dS0tLeemllxg7diympqZMnjyZBQsWsGfPnrJz8v7xM4Gvr2/ZuVOnTiU7O7vcVgxVycLCgmbNmrF06VLgeiE1Li6u3GPbtWtXVpxevHjxTfvGjh3L559/Dlwv1P7bo48+yp49e1i7dm3ZtvXr13P48GG6dOlS1v7h+PHjnDt3jlatWpWb4cCBA5w5cwatVsuSJUvo1KlT5Z6wqJRqLd4qiqIBvgb6AW7ASEVR3G5z3MfAhurM8zAx0DPgcffHWRmyks6OnZkXM4/QVaHsv7Bf19GEEEInzKzq0j50JE999SP9n5+GsXkdti34H99NepytC/7HtQspuo4ohBA1gpWpIaPbN2Xl5I5sntqFCV2cSLiQzbO/x9Dm/c28Hn6YqLPXKpyhI4QQQuiKoiiEh4ezdOlSnJ2dadmyJcbGxnzwwQcA2NnZsWTJEl577TVatGhBhw4dWLZsGc8++ywAn3/+ObGxsbi7u9OmTRv69u1L69atefHFF8uuMW3aNHx8fMo+iopunSx3o+ftjY9ly5ZVmPu3337jxx9/xNvbG3d3d1auXFnucZ9//jmfffYZbdq04cKFC1ha/n+bowYNGuDq6sq4cePKPdfExIQ1a9bw5Zdf4uzsjJubGwsWLKB+/fpMmjSJ0tJSPD09GT58OAsWLLhplvA/tW/fnunTp+Ph4UGzZs0YPHgwcL3vbmRkZIXPU1SeUp1vuhRFaQ/MVFW179+PXwNQVfXDfx03BSgGWgNrVFWt8F90QECAKv8YKmd3ym7e3/c+yTnJ9G/Wn2mtp2FjYqPrWEIIoVMXTh4jZv0aju3Zhba0hGa+AfgFBtPEy1daKgghxD+UalX2nEojLCqZ9UcuUlCsxcnGjCF+Dgz2c8TBykTXEYUQQtQQCQkJuLq66jrGAysvLw8TExMURWHx4sX88ccfZYXevLw8PD09iY6OvqmoW5W2b9/OnDlzbunnK+5eeV8jiqJEqaoaUN7x1d3z1gE4/4/HyUDbfx6gKIoDMBjowfXibbkURZkATABo3LhxlQd90HVy6ET4oHB+jP+RHw//yM7knTzn+xzDWw1Ho6fRdTwhhNAJ+xatsH+2FV0fG0/cpgjiNq0j7MO3qdvQEd/AINy79MDQxFTXMYUQQuc0egqdnW3p7GxLdkExEYcvsiw6mTkbj/PppuO0d6pHqJ8j/TztMDWUZTWEEEKI6hIVFcWzzz6LqqpYWVmV9bbdvHkz48ePZ+rUqdVWuBW6Ud0zb4cBfVVVffLvx6OBNqqqPvePY5YCn6qquk9RlAXIzNtqdzbrLO/ve5+9F/biau3KjPYz8LDx0HUsIYTQudKSYo7v3U10xCounjqBoYkpHt1749s3CCs7e13HE0KIGud8eh5h0cksj07hXHoepoYa+nnYE+rvQLtm9dDTkwVMhBDiYSMzb4WoWGVn3uq8bYKiKGeAG+/qbIA8YIKqqituN64Ub/87VVXZcHYDsw/MJi0/jUdaPcJzvs9haSS/nRFCCIALJ44RHbGK4/t2o9VqcfINwLffQJp4+shqqkII8S+qqhJ59hphUcmsPXSB7MISHKxMGOLnwBA/R5rZ3N0q2UIIIWo/Kd4KUbGaVrzVB44DPYEU4CDwqKqqR25z/AJk5u19lVOUw9exX/N74u9YGVnxUsBLBDsFS2FCCCH+lpN+lbjNEcRtiiA/KxNrh0b49QvGrXMPDIyNdR1PCCFqnPyiUjYevUhYdAq7T1xBq4J/k7qE+jkywMseSxMDXUcUQghRjaR4K0TFalTx9u+L9wc+BzTAT6qqvq8oyjMAqqrO/9exC5DirU4kpify7r53OXTlEP4N/Hmz7Zu0qNtC17GEEKLGKCku5tiencSsX82l0ycxMjXDo0cffPsOwLK+na7jCSFEjXQxs4AVsSmERSVz4nIOhvp69HFrQKifI52dbdDXyOKQQgjxoJHirRAVq3HF2+ogxdvqoVW1LD+xnLlRc8krzmOM+xie9noaUwNZrEcIIW5QVZXU44nERKzi+P6/UFWV5v5t8esXTCN3L7lzQQghyqGqKodTMgmLSmZVXCrX8oqxrWNEiE9DQv0dcbGz0HVEIYQQVUSKt0JUTIq34j9LL0jn86jPCT8Zjr2ZPdPbTKdH4x66jiWEEDVO9tU04jZFcGhzBPnZWdRzbIxfv4G4du6GgZG0VBBCiPIUlWjZmniZsOhktiVepkSr4t7QglA/Rwb5NKSeuZGuIwohhPgPakLxNjk5mcmTJ3P06FG0Wi1BQUF88sknGBoaEhsbS2pqKv379wdg+/btGBoa0qFDh3u61uHDhxk9ejQA586dw9LSEktLS2xsbNi8efMtx8+YMYMuXbrQq1cvunXrxpw5cwgIuLlmV1xczFtvvUVYWBhGRkaYmpryzjvv0K9fv3vKKGoWKd6KKhN9KZp3973LyYyTdHPsxvS203Ewd9B1LCGEqHFKiopI3LOT6IhVXEk6jbGZOR49+uDTZwCW9RvoOp4QQtRYV3MKWRWXSlh0MvEpWejrKXRrVZ+h/g70cGmAob60VRBCiNpG18VbVVVp27YtEydOZNy4cZSWljJhwgSsra355JNPWLBgAZGRkXz11VcAzJw5E3Nzc15++eW7vkZJSQn6+vq3bB87dixBQUEMHTr0rsa5XfF2+vTpXLhwge+++w4jIyMuXbrEjh07eOSRR+5q3NLSUjQazV0dK+4/Kd6KKlWsLeb3hN/5OvZrVFVlpMtIHnV9FDsz6e8ohBD/pqoqKceOEhOxmhMH9oAKzQOut1RwdPOUlgpCCFGBYxezCYtOJjwmhSvZhViZGjDQuyGhfo54OVrK91AhhKgldF283bJlC++88w47d+4s25aVlUWzZs04c+YMHh4e5Ofn4+DgwMiRI5k7dy4ajQZbW1u+/PJLXFxceOaZZzh37hwAn3/+OR07dmTmzJmkpqaSlJSEjY0Nv//++y3X/mfxdtasWaxevZr8/Hw6dOjA//73PxRFuemY8oq3eXl5NGrUiDNnzmBhcWtboT/++IMPPvgAVVUZMGAAH3/8MQDm5uZMnTqVDRs28Omnn/LYY48xfPhwtm3bBsDvv/9OixaytlFNUNni7a2/JhDiHwz0DHjc/XH6Nu3LZ1GfsfDoQhYdXUSfJn0Y7TYaT1tPXUcUQogaQ1EUHF3ccXRxJyvtCnGb1nFoywZOHtyLTeOm+AYG49qpq7RUEEKIcrSyq8Pr/V15pW8rdp1MIywqmcUHz7No71la1Dcn1M+Rwb4O2FnK91AhhKgt3ll9hKOpWVU6pltDC94Odr/t/iNHjuDv73/TNgsLCxo3bkxSUhKzZs26aeZtfn7+TTNvH330UV588UU6derEuXPn6Nu3LwkJCQBERUWxe/duTExM7pjz2WefZcaMGQCMHj2aNWvWEBwcfMfzTp48SePGjcst3KampvLqq68SFRVF3bp16dOnDytWrCAkJITc3Fw8PDyYNWvWTc/7wIEDLFq0iClTprBmzZo7Xl/UPFK8FXfFzsyO2V1m84LfC/ye8DvLTywnIikC3/q+jHYbTY9GPdDoyZR8IYS4wcLGls4jH6dd6AgSd+8gJmIVm777kl2/L8CzZ198+vTHwqa+rmMKIUSNo6/Ro3ur+nRvVZ/M/GLWHb5AWFQyH69P5JMNiXRsYcNQf0f6uNlhYijvP4UQQtxMVdVy79a43fZ/27x5M0ePHi17nJWVRXZ2NgADBw68q8ItwLZt25g9ezZ5eXmkp6fj7u5+V8Xbihw8eJBu3bpha2sLwKhRo9i5cychISFoNBpCQ0NvOn7kyJFln1988cX/dG2hO1K8FZXiYO7AtNbTmOQzifAT4fya8CtTt0/FwdyBR10eZYjzEMwNzXUdUwghagwDQyM8e/TBo3tvkhPiiYlYTeSq5USuXo5z6/b4Bgbj4OoutwMLIUQ5LE0MGNmmMSPbNCYpLZfl0cmERafwwuJYzI30GeBpT6i/I62b1pXvo0IIUQNVNEO2uri7uxMWFnbTtqysLM6fP0/z5s2Jioqq8HytVsvevXvLLdKamZndVYaCggImTZpEZGQkjRo1YubMmRQUFNzVuS1atODcuXNkZ2dTp06dm/ZV1PrU2Nj4lj63//y/Uf6frL1kBQBxT8wMzHjM7THWDl7L3G5zaWDagE8iP6HXsl7MPjiblJwUXUcUQogaRVEUGrl5MvCl13nyyx8ICBrMufg4lrwznV+mv0D8tk2UFBXpOqYQQtRYTW3MmNqnFbte6c4fT7Uj0MOO1YdSeeR/e+nyyTbmbjrOuat5uo4phBBCx3r27EleXh6LFi0Cri/e9dJLLzF27FhMTU2pU6dO2Uxa4JbHffr0KWupABAbG1vpDDcKtTY2NuTk5LBs2bK7PtfU1JQnnniC559/nqK/fz64cOECv/76K23btmXHjh2kpaVRWlrKH3/8QdeuXW871pIlS8o+t2/fvtLPQ9QMUrwV/4lGT0OvJr1Y2G8hiwcspqtjV/5I+IP+y/szdftUYi/HVvibISGEeBhZ2Nany6hxTPh2Ab0nPItaWsqG+V/w3aSx7F68iOyrabqOKIQQNZaenkL75vWYM8ybyDd78dkj3jS2NmXe1hN0+WQbj8zfy5KD58guKNZ1VCGEEDqgKArh4eEsXboUZ2dnWrZsibGxMR988AEA3bt35+jRo/j4+LBkyRKCg4MJDw/Hx8eHXbt2MW/ePCIjI/Hy8sLNzY358+dXOoOVlRVPPfUUnp6ehISE0Lp160qd/95772Fra4ubmxseHh6EhIRga2uLvb09H374Id27d8fb2xs/Pz8GDRp023EKCwtp27YtX3zxBXPnzgVg1apVZb14Re2g1MbCWkBAgBoZGanrGOI2LuZe5I/EP1h6fCnZRdl42ngy2m00vZr0wkDPQNfxhBCixlFVlfNHDhOzfhUnI/ejKArObTviFxhMw1aucouTEELchdSMfMJjUgiLSuZ0Wi7GBnr0dbcj1M+Rji1s0OjJ91IhhLgfEhIScHV11XWMh17Tpk2JjIzExsZG11HEv5T3NaIoSpSqqgHlHS/FW1Ft8orzWHVqFb8m/MrZrLM0MG3Ao66PEuociqWRpa7jCSFEjZR5+SKxG9dxeOsGCnNzqd+sOX79BtKqfWf0DQ11HU8IIWo8VVWJPZ9BWHQyq+MukJlfjJ2FMSG+Dgz1d6BF/Tp3HkQIIcQ9k+JtzSDF25pLireixtGqWnYm7+SXo79w4OIBTPRNCGkRwmOuj9HYorGu4wkhRI1UXFDA0V3biFm/mqvJ5zCxsMS7VyDevftjbl1P1/GEEKJWKCwpZUvCZcKiktl+/AqlWhVvR0tC/R0J9mpIXTP5pZgQQlQ1Kd4KUTEp3ooaLTE9kV+O/sK6M+so1ZbStVFXxriNIaBBgNwWLIQQ5VBVlXOH44hev4rT0QfR09O73lKhXzD2zi7yvVMIIe7SlexCVsamEBadQsKFLAw0Cj1c6hPq50h3l/oYaGQ5ECGEqApSvBWiYlK8FbXClbwrLD62mD+P/UlGYQau1q6MdhtNYNNADDTSF1cIIcqTcfECsRvXcHjrJory87Br7oxvv4G0bNcJfQP53imEEHfraGoWYdHJrIxNIS2nCGszQwZ6N2SovyPuDS3kF2NCCPEfSPFWiIpJ8VbUKgUlBaw+vZpfj/7K6czT2JrYMtJlJMNaDsPK2ErX8YQQokYqKsjn6I6tRK9fzbXUZEwtrfDu3Q+vXv0wr2ut63hCCFFrFJdq2Xn8CmHRyWw+epmiUi2tGtQh1N+BEB8H6lsY6zqiEELUOlK8FaJiUrwVtZJW1bIndQ+Ljixi74W9GGuMCW4ezGNuj+Fk6aTreEIIUSOpWi1nD8cSs3719ZYKGn1ate+Eb79g7Fu00nU8IYSoVTLyilhz6AJh0cnEnMtAT4EuLW0J9XOkt1sDjA00uo4ohBC1ghRvhaiYFG8fQGn5adQ1qotG7+F4w3ji2gl+TfiVNafWUKQtopNDJ8a4jaGdfTu5hU0IIW7j2oUUYjesJX77Jory87Fv0QrffsG0bNcRjb60VBBCiMo4dSWH5dHJhEenkJpZQB1jfYK8GjLU3wG/xnXlPakQQlSgJhRvNRoNnp6elJSU4OrqysKFCzE1NUVRFKZOncqnn34KwJw5c8jJyWHmzJnMnDmTd955hxMnTtCiRQsA5s6dy9SpUzl48CABATfX1bp168aFCxcwNjbG0NCQ77//Hh8fn/v9VKvV2LFjCQoKYujQobqO8kCpbPFWuvLXcKqq8vKOlwldFcqWs1uojcX2ynKu68w7Hd5h49CNTPKZxNGrR5mwaQKhq0MJPxFOYWmhriMKIUSNU9fege5jJ/D0twvpMe5pCnJzWPflHL6fPJ69y/4gN+OariMKIUSt0dzWnGl9Xdj9ag9+e7ItvV0bsCImhdBv99Lj0x18ueUEydfydB1TCCHEbZiYmBAbG0t8fDyGhobMnz8fACMjI5YvX05aWlq553l6erJ48eKyx8uWLcPNze221/ntt9+Ii4tj0qRJTJs2rWqfxF0oKSm579cU958Ub2uBUa6j0KJlyvYpjFo3in0X9uk60n1Rz6QeE70nsnHoRmZ1mAXAjD0z6LOsD1/FfMWl3Es6TiiEEDWPoYkpvoHBjPvsW4a89g71mzqxZ+lvfD95HBFffcrFUyd0HVEIIWoNPT2Fji1s+Gy4Dwff7MUnQ71oYGHEp5uO0+njbYz8bh/LopLJLZQfnoUQoqbq3LkzJ0+eBEBfX58JEyYwd+7cco8NCQlh5cqVAJw+fRpLS0tsbW3veI327duTkpICQG5uLuPHj6d169b4+vqWjXfkyBHatGmDj48PXl5enDhx/X35Z599hoeHBx4eHnz++ecAJCUl4eHhUTb+nDlzmDlzJnB9xu/rr79O165d+eKLLzh48CAdOnTA29ubNm3akJ2dTWlpKdOmTaN169Z4eXnxv//9D4ALFy7QpUsXfHx88PDwYNeuXXf9OjZt2pS3334bPz8/PD09SUxMBCAnJ4dx48bh6emJl5cXYWFhdz2muDv6ug4gKqYoCr2b9KZ7o+6sPrWab+K+4amNT9HWvi1T/KbgYeNx50FqOSONEYOdBxPSIoR9F/bxa8KvfHfoO348/CM9m/RkpMtI/Or7ye1rQgjxD4qeHs18/Gnm4096avLfLRU2c3TXNuxbuuAXGIxz245o9OWtgBBC3A1zI32GBTRiWEAjzqfnsSImhbDoZF5eGseMlfEEetgx1M+Rdk710NOT96VCCAFAxHS4eLhqx7TzhH4f3dWhJSUlREREEBgYWLZt8uTJeHl58corr9xyvIWFBY0aNSI+Pp6VK1cyfPhwfv755zteZ/369YSEhADw/vvv06NHD3766ScyMjJo06YNvXr1Yv78+bzwwguMGjWKoqIiSktLiYqK4ueff2b//v2oqkrbtm3p2rUrdevWrfB6GRkZ7Nixg6KiIlxcXFiyZAmtW7cmKysLExMTfvzxRywtLTl48CCFhYV07NiRPn36sHz5cvr27csbb7xBaWkpeXmVu4vExsaG6OhovvnmG+bMmcMPP/zAu+++i6WlJYcPX/97vnZN7viravITWy2hr6fPYOfB9Hfqz5/H/uT7Q98zcu1IejbuyXO+z9HcqrmuI1Y7RVFo37A97Ru253zWeRYfW0z4yXA2JG2gVd1WjHQZSX+n/pjom+g6qhBC1CjWDR3pMe5pOg4fzZEdm4lZv5q18z7BvO6PePcZgFevQEwtLHUdUwghao1G1qY819OZZ3u0IPrcNZZFpbDmUCrLo1NoaGnMYD8HQv0ccbI113VUIYR4KOXn55f1n+3cuTNPPPFE2T4LCwvGjBnDvHnzMDG5tX4wYsQIFi9ezIYNG9iyZUuFxdtRo0aRm5tLaWkp0dHRAGzcuJFVq1YxZ84cAAoKCjh37hzt27fn/fffJzk5mSFDhuDs7Mzu3bsZPHgwZmZmAAwZMoRdu3YxcODACp/f8OHDATh27Bj29va0bt267LndyHDo0CGWLVsGQGZmJidOnKB169aMHz+e4uJiQkJCKt2jd8iQIQD4+/uzfPlyADZv3nxTq4k7FZ5F5UnxtpYx0hgx2m00Q5yHsOjoIhYeWci289sIcgpiks8kHMwddB3xvmhk0Yhpracx2Wcy686s4/fE35m5dyafRX3GEOchPNLqERrVaaTrmEIIUaMYmZri128gvn2DOBMbRXTEKv5a8gv7li/GpUNXfPsF06DZg//LQCGEqCqKouDfxBr/Jta8HezGpqOXCItO5tvtp/h62yl8G1sR6udIsFdDLE1l8UghxEPoLmfIVrUbPW9vZ8qUKfj5+TFu3Lhb9gUHBzNt2jQCAgLKiqG389tvv+Ht7c306dOZPHkyy5cvR1VVwsLCaNWq1U3Hurq60rZtW9auXUvfvn354Ycfbruukb6+PlqttuxxQUHBTftvFHtVVS33LmRVVfnyyy/p27fvLft27tzJ2rVrGT16NNOmTWPMmDEVPsd/MjIyAq4vCHej3+7tMoiqIz1vawH1H1+wN5gZmDHReyIRQyIY7Tqa9WfWExQexIf7PyQtv/zG2w8iUwNThrYcSlhwGD/3/Zm29m355egvDFg+gOe2PMeelD1o1VtfPyGEeJgpeno4+bVm6BvvMvbTb/Ho3ofj+3bz6/QXWPz2Kxzbu5tSWfxACCEqxdhAQ7B3QxaMa8O+13ryen8X8gpLeXNFPK0/2Mzk36LZmniJklJ5byqEELpmbW3NI488wo8//njLPhMTEz7++GPeeOONuxrLwMCA9957j3379pGQkEDfvn358ssvywqzMTExwPUeuk5OTjz//PMMHDiQQ4cO0aVLF1asWEFeXh65ubmEh4fTuXNnGjRowOXLl7l69SqFhYWsWbOm3Gu7uLiQmprKwYMHAcjOzqakpIS+ffvy7bffUlxcDMDx48fJzc3l7Nmz1K9fn6eeeoonnniibLbwmDFjOHDgQOVexL/16dOHr776quyxtE2oejLzthZInT4dtCo2zzyNUYsWN+2ra1yXl1u/zGNujzE/bj5Lji0h/GQ4j7k+xjiPcdQxrKOj1PeXoigE2AUQYBfAxdyLLD2+lGXHl7F983aaWjRlhMsIBjUfhLmh3LomhBD/VM+xEb2emEinEaM5sn0zMRvWsObzjzCvZ4NP7/549uwrLRWEEKKS6lsYM6FLc57q7MSR1CyWRSWzKi6VtYcvYGNuRIhPQ0L9HXG1r3hGlxBCiOrz0ksv3VR0/KcRI0ZUaiwTExNeeukl5syZw1dffcWUKVPw8vJCVVWaNm3KmjVrWLJkCb/++isGBgbY2dkxY8YMrK2tGTt2LG3atAHgySefxNfXF4AZM2bQtm1bmjVrhouLS7nXNTQ0ZMmSJTz33HPk5+djYmLC5s2befLJJ0lKSsLPzw9VVbG1tWXFihVs376dTz75BAMDA8zNzVm0aBEAhw4dwt7evlLP+YY333yTyZMn4+HhgUaj4e2332bIkCE8+eSTPPPMMwQEBNzTuOL/Kbebol2TBQQEqJGRkbqOcV+oqsqVz+aS/ttvqPn51Ansi80zEzFu1bLc45Myk/g69mvWJ63HwtCCJzyfYKTLyIeyD2xRaREbkjawOHExh9IOYapvysDmAxnpMhInKyddxxNCiBpJqy3lTEwk0RGrOXc4Fo2BAa6duuEbGEz9pvK9Uwgh7lVRiZbtxy4TFp3M1sTLFJequNpbEOrnQIivAzbmRrqOKIQQVSIhIQFXV1ddxxB3KSsriyeeeIKlS5fqOspDo7yvEUVRolRVLbfSLcXbWqLk2jXSf17AtV9/RZuXR50+fbCZNBHj2/z2JeFqAvNi5rE7ZTe2JrY84/0Mg50HY6D3cPbaik+L54/EP4g4E0Gxtph29u0Y6TKSro5d0ehpdB1PCCFqpLTzZ4ndsIYjO7dSUliIo6sHvv2CaRHQDj2NfO8UQoh7dS23iFVxqYRFJ3MoORONnkK3lraE+jvS07U+RvryPVYIUXtJ8VaIiknx9gFXmpFB+qJFpC/6BW1ODuY9e2IzaSIm7u7lHh91KYovor8g5nIMjeo0YrLPZPo164ee8nC2O76af5XlJ5az5NgSLuVdoqFZQ4a7DGdIiyFYGVvpOp4QQtRIBTk5xG/bSMyGtWRduUSderb49B2AZ48+mNSRW36FEOK/OHEpm2XRyayISeFSViGWJgYEe9sT6ueITyMrWQRGCFHrSPFWiIpJ8fYhUZqZSfovv5K+aBHarCzMu3W7XsT18rrlWFVV2ZWyi3nR8zh27Rgt67bked/n6eLY5aF9M1iiLWHb+W38kfgHBy8exEhjRP9m/RnpMhLXevKfjBBClEerLeV01EFi1q/iXPwh9A0Mce3cDd9+A7Ft3FTX8YQQolYr1ar8dTKNsOhk1sdfpLBEi5OtGaF+jgzxc8De8uFrgyaEqJ2keCtExaR4+5Apzc7m2m+/kf7zAkozMzHr3BmbSRMx/bvB9T9pVS3rz6znq9ivOJ99Ht/6vjzv+zwBdg938+gT107wR+IfrDm9hvySfHzr+zLSZSS9GvfCQPNwtpkQQog7uXIuiZj1q0nYtZ2SokIauXvh2y+Y5v5t0JN2NEII8Z9kFxSz7vAFwqJSOJCUjqJAx+Y2hPo70NfdDlNDWXdaCFFzSfFWiIpJ8fYhVZqTy7Xffyf9p58ozcjArEMHbCZPwtTf/5Zji7XFhJ8I539x/+Ny/mU6OnTkBd8XHvoZp1lFWaw4sYLFxxZzPvs8tia2DGs5jKEth2JraqvreEIIUSPlZ2dxeOtGYjeuJTvtCha29fHpG4Rn9z4Ym5vrOp4QQtR6Z6/msjw6heUxyZxPz8fMUEM/z+ttFdo2s0ZP7+G8k04IUXNJ8VaIiknx9iGnzc3l2uLFXP3xJ0rT0zFt2xabyZMwa9PmlmMLSgr4I/EPfoz/kczCTPo27cuzPs/S1LLp/Q9eg2hVLX+l/MXvib+zO2U3+nr69G7Sm0ddHsXb1vuhbTUhhBAV0ZaWcipyP9HrV5F8NB59IyPcOnfHNzAYm0ZNdB1PCCFqPa1W5WBSOmHRyaw7fJGcwhIc65owxNeBIX6ONLUx03VEIYQApHgrxJ1I8VYAoM3P59qSJVz98UdKr6RhGhBwfSZuu3a3FB+zi7JZcGQBvxz9haLSIkJahPCM9zPYmdnpKH3NcS7rHH8k/sHKkyvJLs7G1dqVkS4j6desH8b6xrqOJ4QQNdLlpNPErF9D4u7tlBQX0djDG99+A3HyC5CWCkIIUQXyi0rZcOQiYdHJ7D6ZhqpCQJO6hPo7MsDLHgtjaf0lhNCdmlC81Wg0eHp6UlJSgqurKwsXLsTU1PS2283NzcnJyalwzIiICN566y1yc3NRVZWgoCDmzJlzn56ReJBI8VbcRFtQQMafS7n6ww+UXL6MiZ8fNpMmYdaxw01F3CKtlnM5V/gp/gciToUBCp2aDqFd00fRauqQU6Ilr1RLoK0l7uYP32IJecV5rDm9hj8S/+BkxkmsjKwIaRFCF8cueNl6YaQx0nVEIYSocfKyMstaKuRcTcOyfgN8+gbh0b03xmbSUkEIIarChcx8wmNSCItK5tSVXIz09ejjbkeonwOdnW3RSFsFIcR9VhOKt/8sxo4aNQp/f3+mTp16V9vLEx8fz6BBg1i7di0uLi6UlJTw3XffMWnSpLvKU1JSgr6+9CsX10nx9iFSqqrklmrJLiklp1RLTkkp2aWl5JRob/1cVER60lmunUsmR9Ej37ouBTa25BkYkVNaSqH2//8d6JWkYZa5HKPc3aiKEfkW/civ0w9VzwRjPYU5rRox1M5ah89cd1RVJfJSJH8k/sHWc1spVUsx1DPEp74Pre1a08auDZ42nrLQmRBC/IO2tJSTB/cSHbGalMQj6BsZ4d6lJ76BwdRzbKTreEII8UBQVZW45EyWRyezKi6VjLxi6tcxYrCvA6H+jrRsUEfXEYUQD4maVrydP38+hw4d4ptvvrmr7eUZM2YM3bp1Y/z48bfsO3v2LOPHj+fKlSvY2try888/07hxY8aOHYu1tTUxMTH4+flRp04dTp06RUpKCufPn+eVV17hqaeeqp4XQNRoUrx9AM08mUJ8dv71Am1paVmxNrdUe1fnG+spmGs01NHXw1xPD+Nr6RgmncbkWgYWpibU83DH2qkpdfQ11NFoMNfXo45GQ2beWVYmfsf+lG1YGdVlpNs4NhYFsC+7lKcb2fKWU0P0H+Lf5GcXZRN9KZoDFw9w8OJBEtMTUVEx0TfBx9aHNvZtCGgQgLuNOwZ6UswVQgiAS2dOEbN+NYl/7aC0uJgmXr74Bgbj5BuAoqen63hCCPFAKCwpZVviZZZFpbD92GVKtCqeDpaE+jkw0McBazNDXUcUQjzA/lmY+vjAxySmJ1bp+C7WLrza5tUKj7lRjC0pKSE0NJTAwEAmTpx4x+234+fnx88//4y3t/ct+4KDgxk6dCiPP/44P/30E6tWrWLFihWMHTuWtLQ0Vq5ciUajYebMmYSHh7Nv3z5yc3Px9fVl//79NGzY8D+/JqJ2qWzxVuZs1wIZxddnxtY10NDYxBBzjd5NRVZzfc31bfoa6mj0bnpsrtFgUE6BVS0KIHPVKtLm/4/ib5IxcnPFZuJE6vTs+f8/PFt7EOw4j/i0eL6I/oJvYz5Do2hoadaCXzOcOXjBn+8D+uJg8nD+Fr+OYR26NupK10ZdAcgszCTyUiQHLx7kwMUDfBH9BQCm+qb4NvCljV0b2ti1wdXaFU0V9Xy8VnCNvJI8HMwdqmQ8IYSobg2aNSdw4hS6jBrHoc3ridu0jhWzZ2HVwP7vlgq9MDKVRXeEEOK/MNLXEOhhT6CHPWk5hayKTSUsOpmZq4/y/roEureqT6i/I91b1cdQX35xJoR48OTn5+Pj4wNA586deeKJJyrc/l/s3buX5cuXAzB69GheeeWVsn3Dhg1Do/n/n/8HDRqEiYkJJiYmdO/enQMHDhASEvKfM4gHmxRva4HPXRtX+ZiKoSFWQ4diOWgQmavXkPa/+aQ89zxGrVpdL+L26V1WxPWw8eD7Pt8TezmWnck7OXjxIJlpEZzPWkPg6fdoVc+DLg3b0Ma+DT62Pg/tQl6WRpb0bNyTno17ApBekE7kxciymblzo+YCYG5gjn8D/7I2C62sW6Gn3PlNc0ZBBkevHuVo+lGOpB3h6NWjpOamAuDfwJ8RLiPo2binzPIVQtQKphaWtBsynNYDQ6+3VFi3iu2LvuevP3/FvWtPfAODsG7oqOuYQghR69mYGzG+UzPGd2pG4sUswqKSCY9JZePRS9Q1NWCQjwOhfo54OFjcsrCxEEL8V3eaIVtdTExMiI2Nvevtd+Lu7k5UVFS5M2//7Z/fS83MzG67r7zHQpRH2iYIANSSErLWrSPt2/kUnTmDkXOL60Xcvn1RNLfOEs0rzmPpmb18mrCVkrwjGBQnoVVLMdAzwMvWizZ2bWht1xpvW28MNQ/mbVmlmZnomZigGN7d80vLTyublXvw4kHOZp0FwMLQgoAGAbSxv/6atbBqQXZRNkeuXi/Q3vhIyUkpG6txnca41XPDrZ4bpWopy44vIyUnBVsTW4a2HMrQlkOpb1q/Wp63EEJUl4unThCzfjXH9uyktKSEpj7++AUG09TbT1oqCCFEFSop1bLrRBrLopPZdPQSRSVaWjYwZ4ifI4N9HWhg8XBOxhBCVI2a1vP2v2y/4dChQwwZMoR169bRsmVLtFotn3/+OVOnTmXgwIEMGzaM0aNHs2DBAlauXEl4eDhjx44lKCiIoUOHAjBz5kxWrFhxU9uEffv2SduEh5D0vBX/iVpaSlbEetK+/ZaiU6cwdHLCZuIzWPTrh1LOyoiXCot5Iv4MURlXCbW8TBP1BJGXrvd/1apajDRGeNt6PzCLealaLTnbtpH+8wLy/v43qGdmhqZuXTRWVv//2coKTd3rn/XL2adnbMyl3EscuHiAv1L+Yt+FfVwtuHp9PPTQ8v/9jBvVaVRWqHWv545rPVcsDC1uylWqLeWv1L9YnLiY3Sm70VP06NG4ByNdRhLQIEB+myeEqFVyM65xaMt64jZFkHstnbr2DfHpG4x7154YmZrqOp4QQjxQMvOKWXM4lbCoZKLPZaCnQCdnW0L9HOjrboexQdW0+xJCPDxqY/FWT0/vpiLq1KlTmTp16k3HrFmzhrfffpu8vDwURWHAgAF88sknJCUlMX78eNLS0m5ZsOzfxdvU1FROnTrFuXPnblqwzMfH555mBIvaSYq3okqoWi3ZGzeS9vU3FJ44gWGTJtSb+AyWAwagGNxcfC3Uann9eDK/XUinVz0LvnFrAtpcoi5GcfDSQQ5ePMix9GO1ejEvbX4+mStWkL5gIUVnz6Lf0B6r0FAUPT1KMzIouXaN0owMSq9l/P35Gtpy/kPINYIzdgqnGxlw2tGA0/W1XDQrLttvqTXGWM+QHKWIXLUAABvDutdn5jq0p7Vda5pYNKmwGHs+6zx/Hv+T8JPhZBZm0sKqBcNbDSe4eTBmBtJHUghRe5SWFHN8/x5iIlZx4cQxDE1McO/WC9++QdS1l17fQghR1U5fySE8JoXl0SmkZORTx0ifAV72hPo7EtCkrkwIEELclZpQvK2JZs6cibm5OS+//LKuowgdk+KtqFKqVkv25s2kffMthYmJaGxtsAoZjNXQUAybNPn/41SVhalXefNEMk2MjVjg2Qxns/+/3SqzMLOs/+uBiwc4mXESuHUxLxdrF/T1ak4r5pIrV0j/7Tcy/lhMaWYmxp6e1Bs3ljp9+pQ7E/mfsnKuciQ5iviLcRy9lkBC7mlSSq+W7W9QZIJztilOVzQ4pZbS5Ew+ZpezAFCBS1ZwpIly/aOxwrU6198s18vT4JlliU9hA3z1GtO0uT91R4y45c10QUkBEWciWHxsMUevHsXMwIxgp2BGuIyguVXzKn2dhBCiul04eYyY9Ws4tmcX2tISmvkG4BcYTBMvX2mpIIQQVUyrVdl35iphUSlExF8gr6iUJvVMGeLryBA/BxpZy10QQojbk+Jt+aR4K26Q4q2oFqqqkrNjBxlL/iRnxw7QajFt0warYUOp07s3esbXC7V7M3J4Mj6JQq2Wb9ya0MfGstzx/r2Y1+nM08DNi3m1tmtNq7qt0Ojd/1u1Co4dJ33hQrJWr0YtKcG8Zw/qjRuHiZ9fuTMOcopySEhPKFtI7MjVI5zLPle2v6FZw+ttD2zccbO+3gLBytjqlnHUkhJKs7LKZu/e+FyScY2krLPElJwhVv8Ch8yvkWFUAoBDmsoTBt0IfXYeeuUUMFRVJT4tnsXHFrP+zHqKtEW0tmvNiFYj6N64e62Y+SyEEDfkZlwjblMEcZvWkZeZQd2GjvgGBuHepQeGJlJMEEKIqpZbWML6+IuERSez9/RVVBXaNrMm1N+R/p72mBvVnIkXQoiaQYq3QlRMirei2hVfukRm+AoywsIoPn8ePQsLLIOCsBo2FGNXV1IKihgXf4bD2fm80syOF5o0QO8Ot1il5afdVMxNykoCoI5hnestA/5eAM25rjN6yn+bYaWqKiVqCcWlxRRrr3+UaEsoKi0iK/IAaSvCyD4cS6mJEcZdO2PcuzvYWl8/9h/nZBdlk5CeQMLVhLK8APZm9mX9aW/0qq1rXPc/ZS7vOZzOPM2BCwf4ffdXJBlm4am157WgT/G09bztedcKrrH8xHL+PPYnqbmp1Depz9BWQxnqPBRbU9sqzSiEENWppLiYE/t2Ex2xiounTmBoYopH99749g3Cys5e1/GEEOKBlJKRT3h0MmHRKZxJy8XEQEOghx2hfo60b14PjZ60VRBCSPFWiDuR4q24b1StlrwDB8lYtozsjRtRi4owdnfHathQDPr1Y3pKBssuXWOArSVfuDTGXP/uZ9Beyr3EwUsHywq657PPA2BlZIVvfV9MDUxvKqT+u7B6y75/basqdmZ2ZTNp3W2uF2utja2rbPy7UVxSxMKPx7CgbjyZZgr9m/Vnit8U7M1vX7wo1ZayK2UXixMX81fqX+gr+vRq0ovhrYbj38Bf+pkJIWqV1OOJxKxfzfF9u9FqtTj5tcYvcCCNPb3l+5kQQlQDVVWJPpdBWHQya+JSySoowd7SmMG+DoT6O9Lc1lzXEYUQOiTFWyEqJsVboROlGRlkrl5DxtKlFB4/jmJsTJ3AQMIGDuWjQg3OZsYs9GxGUxOjexr/Yu7F6/1yLxwg7kocWlWLgZ4BBhqD65///tDX6N/0uLxjbjzWFJZQHHuIogPRaDJzMK5vh1WX7lj4t8bIyPSO5xvrG2NhaFHFr+SdqapKQm4Bm9Ky2HQ1k8tFJQyvb0nHrz4iIncrazoagp4eo91G86Tnk5gbVvzm+VzWOZYcW0L4yXCyi7JxruvMiFYjCHIKwtRAbkEWQtQeOelXidscQdymCPKzMrF2aIRfv2DcOvfAwNj4zgMIIYSotILiUjYnXCIsKpmdJ9Io1ap4N7JiqJ8Dwd4NsTI11HVEIcR9JsVbISomxVuhU6qqUhAfT8ayMLLWrEGbm0tc1568PWwsGBrwnYcTXa3r6DRjUVISVxcuJDN8BWpBAWadO2M99nHMOnSosTO08ku17L6WzaarWWy+mkVq4fXZw951TLDU17DzWg5GikLvY4fpuv4XDj3qwPq8g1gbWzPZZzJDnIfccSG4/JL86wucJS4mIT0BcwNzBjYfyHCX4ThZOt2PpymEEFWipKiIY3t3ER2xistnTmFkZoZH9z749h2AZX07XccTQogH1uXsAlbGpBIWnUzixWwMNXr0dK1PqJ8jXVvZYqCRBSaFeBhI8VaIiknxVtQY2rw8stZvIGPZMk6dS+atZ14iqaEjr+gV8XynAPT079/iBqqqkh8ZydWfF5CzbRuKvj4WA4OpN3YsRs7O9y1HZaQUFLH5ahabrmbx17Vs8rUqpho9utWtQy8bC3paW9DA6PpiYydyC/gh+Qp/XkwnX6vicyKB4BYaDhatI+pSFM0tm/NSwEt0cuh0xwK1qqrEXYlj8bHFbEzaSLG2mLb2bRnRagTdGnW7YxFYCCFqClVVr7dUiFjF8f1/oaoqzf3b4tcvmEbuXjX2F3ZCCFHbqarKkdQswqKTWRWbytXcImzMDRno7UCovwPuDctf1FgI8WCoCcVbjUaDp6cnJSUluLq6snDhQo4ePcqiRYuYN2/efclgbm5OTk7OXR37xRdfcObMGT7//HMAnn76aU6dOsXmzZsB+PLLLzlx4kSlssfGxpKamsr/sXfm8VGU9x9/75m9c5+bm4QAOQgBRC5F8QBBEKKitlZra61XtVZbrdZata3+am2ttvWqRa0HasQDRRAFEVFRwpFwH7nvO7vZe3d+f2yyyRJuAgnkeb9e+9rdmWdmntnsTmY+83k+30suueSg8zds2MDdd99NQ0MDMpmMadOm8Y9//AOd7thH4E6ZMoX169dTXl7O+vXrueaaaw7bvry8nLlz51JaWtpv3u7du7nzzjvZvXs3KpWK3Nxcnn76aWJjY4+5X0MVId4KhiTOffuoffc97gsJZ01uARdu3cgf5XbiFixAnWg+aduV3G46V6ykdfFiHKWlKMLCCL/masKvvhpl9NAq0OWVJDZ12roF2w62WR0AJGvUXBhp4sIoE5PDDITID+1YaHd7eHV/NS/uLKfBFEaSTOJ8Uxlby1+k2lLF5PjJ3D3xbkaGjzyqPrXYW1i6dylv7XqLuq46YnWxXDHyCgpHFhKljRqQ/RYIBIJTgaWlmS2fLmfrquXYLZ1EJiZTMHseo6fPQBUiIhUEAoHgZOH2+vhiVxNFxdV8tqMRl9fHqDgjl49PZH6+mWjj8cWqCQSCoctQEG/7Cqc/+MEPGD9+PHfdddeg9eFIfPfdd9x6661s2LABgEmTJuHz+fjmm29QKBRcffXVXHbZZSxatOiot7948WK+//57nnnmmX7zGhoaOOuss3jzzTeZPHkykiRRVFTE9OnTT0gkXbNmDU888QTLli07bLtDibcOh4Pc3FyefPJJLr30UgBWr15NdHQ0OTk5R9y+x+NBeQqNgseLEG8FQxqf08lf1n7H3xV6MqrKeeS5J0kfNZKwKy7HMHMmcvXAZGJ5LRba336H1ldfxVNXhzo1lYjrryN0/nzkWu2AbGMg6PR4WdNq4dOWDj5r6aTV7UUhg4kmPRdGhXJhpIlMXcgxu8PsdXX879H/460JUylJzcAg9zGR9ZTXvIHNY2VBxgJuG3fbUQuwXp+XL6q/4M2db/J13dco5UouTLmQq0ddTX50vnCvCQSC0waPy8XO9WspXv4BTeX70egN5Jx/EeMunospOmawuycQCARnNO02Fx9uqeWd4hq2VLWjkMs4d2Q0hQWJzBwdg0Z19AWOBQLB0GWoibfPPvssW7du5corrwwIiw899BCVlZXs37+fyspK7rzzTn7xi19QXl7O7NmzmTZtGuvXr8dsNvP++++j1Wp54YUXeP7553G5XGRkZPDqq6+i0+loaGjg5z//Ofv37wfg3//+N1OmTAnqw1/+8hfeeustnE4nCxYs4A9/+ENQfz0eD1FRUdTV1eFyubjsssvIyMjg1ltvJT8/n5SUFNatW4fL5eLWW2+lqakJnU7HCy+8wKhRo3j77bf5wx/+gEKhIDQ0lFWrVpGRkYHdbsdsNnPfffcFCb8PPvggAA8//HC/z27Dhg3ceeed2O12tFot//3vf8nKymLx4sUsXboUp9NJWVkZ11xzDb///e+DPu+zzz6bHTt2kJaWxnXXXceCBQu49tpr6erqAuCZZ55hypQphxRvX3rpJdasWcMrr7zSr18Oh4Obb76Z77//HqVSyZNPPsl5553H4sWL+eijj3A4HHR1dfHggw/y4IMPEhkZya5duzjnnHP417/+hfwwRrhTzbGKt0NfjhacUchDQvjNhdMoaO7gFoWcW/7wVx567QVyf3kXirAwQufPJ+zywuOOMnDX1ND6yqu0v/MOvq4udBMnEve732GYcS6yIfJD3WfrKTbWybcdVjwShCsVnB9p4sJIEzMijISpTuynqY2P57pf38m5P/ghu5JS+fhXv2WZdTremHxGuZbz3t73+bjsY27IuYHrsq9Dqzy8oK2QKzg/+XzOTz6f8o5yluxawvt732d52XKywrNYNGoRc9LmiAJnAoFgyKNUq8mZcQHZ586kZuc2Nn2yjI0fvcfGZe8xYsIkCi6ZR+LoHHFTSiAQCE4CYTo1105O5drJqexttFBUXMPS4ho+31mMSaPk0rEJFI5PZFxSmDgOCwRnCPV/+hPOHTsHdJ0ho0cR99vfHlVbj8fD8uXLmTVrVr95O3fuZPXq1VgsFrKysrj55psB2LNnD2+88QYvvPACV155JUVFRfzwhz9k4cKF3HjjjQA88MAD/Oc//+H222/nF7/4Beeeey5Lly7F6/X2c9uuXLmSPXv2sGHDBiRJYt68eaxdu5Zzzjkn0EapVJKfn893332H3W5n0qRJZGZmsn79emJiYpAkiaSkJGbOnMmzzz5LZmYm3377Lbfccguff/45Dz/8MCtWrMBsNtPe3o5arebhhx8+pPO2tLSU66677qCf2ahRo1i7di1KpZJVq1bx29/+lqKiIsAv7JaWlqLT6Zg4cSJz5sxhwoRevfGxxx4Lct7abDY+/fRTNBoNe/bs4eqrr+ZwZszS0lLGjx9/0Hn//Oc/ASgpKWHnzp1cdNFF7N69G4Cvv/6arVu3EhERwZo1a9iwYQPbt28nJSWFWbNm8e6773L55ZcfcrtDHSHeCgaFC6NCWT4xi+tLyrjr+lu5/8c/Ze7SN2l9/XVaX34Z7dixhF1xOabZs5Hr9Udcn33rVlr++18sKz8FwDR7NhHXXYc298i2+pONy+fj2/auQLGx/XYnAKP0Gm5OiuHCSBMFJj1K+cCeoKpTUkj+z4tI1/6I0fffyQP/fZn/OWJ4pfZq2pTnEG99m39u/idv736bOwruYG76XOSyIwvcqaGp/Oas33D7uNv5uOxj3tz5Jg9//TBPfPcEF6RcwJy0OZwVf5bIxhUIBEMamUxG4ugcEkfn0NncyJaVH7P1sxXs/e5ropNTGTd7HqOmnYtKLYbzCgQCwckgI8bIb2aN4u6Lsli/r5mijdUUFVfz2reVpEfpKRyfyIJxZhLChs6oOYFAcPpgt9vJz88HYPr06fzkJz9h/fr1QW3mzJlDSEgIISEhxMTE0NDQAEBaWlpg2fHjx1NeXg74hcUHHniA9vZ2rFYrF198MQCff/55wCna43zty8qVK1m5ciXjxo0DwGq1smfPniDxFmDq1KmsX78eu93O5MmTyczM5E9/+hPR0dFMmTIFq9XK+vXrueKKKwLLOJ3OwLLXX389V155JQsXLjyhz66jo4PrrruOPXv2IJPJcLvdgXkXXnghkZGRACxcuJB169YFibcH4na7ue2229i8eTMKhSIgth4P69at4/bbbwf8AnNKSkpgfRdeeCERERGBtmeddRbp6f7C61dffTXr1q0T4q1AcDxk6DR8PH4kt26v4A8tnez++S959IEHcHz4Ie3vvEPdA7+j4U9/xjTnEsIuvxxNXnBxGcnrxbp6NS3/XYx940bkBgMR111HxLU/RBUfP4h7Bk0uN591i7VrWi1YvT5C5DKmhhm4MSmaCyJNJGkGJiLicGiyskh67lkqb/gJzpt/zt2vvMwdKbEsbYznhaoU9rRsQep4nfvX3c/iba9y31m/ZmLcxKNat06l4/KRl1OYWcjmps28v/d9Vpav5IN9HxCpiWR22mzmps9lTOQY4ZwQCARDGlNUDNOvuZ6zL7+aneu+YNPyD1j53D9Y+9p/yZt5MWMvmoMpamjlpAsEAsGZgkIuY3pmNNMzo7E43Cwvqeed4mr+smIXT6zcxZQRkSwcl8js3Dh0anH5KhCcbhytQ3ag0Wq1bN68+bBtQkJ6b9IrFAo8Hs9Bp9vtdgCuv/563nvvPcaOHcvixYtZs2bNUfVFkiTuu+8+brrppsO2mzJlCs899xwOh4Nbb72V6Ohoh6jOggABAABJREFUtm/fTnR0NFOnTsXn8xEWFnbQ/Xr22Wf59ttv+eijj8jPzz/ivmdnZ7Nx40bmz5/fb97vfvc7zjvvPJYuXUp5eTkzZswIzDvw2v5I1/p/+9vfiI2NZcuWLfh8PjSaw9eayM7O5osvvjjovMPFvuoPMP0daz+HOkNjHLlg2GJSKng5N41fpsTyRl0rV1a04L7mB6Qv+5CUN17HOHsWHcs+onzRVZTNm0/ryy/jrq2l9bXX2HfJJVTfdjueujpi77uXjDWrif31PYMi3EqSRInFxt/K67lk427yvtrGnTur+L7DxmUx4bycm8b2aTm8PnYEPzZHnRLhtgfduHEkPvM0rv37qbrp56idDq6Oj+SziVm8efYljB/zVyyRP2dXZxM3rLiB61beSnlH+VGvXyaTMS5mHA9NeYjVi1bztxl/Y1zMOJbsWsJVH13FvPfm8eyWZ6nqrDp5OykQCAQDgEodQu75F3Ht/z3Nlb//M0ljcvnug3d58faf8OGTf6Z6R+lhTxoFAoFAcGIYNSqunJjEWzdN5stfn8cdMzOparXzq7e3MOHRVfzqrS2s39eMzyeOxQKB4NRjsViIj4/H7Xbz2muvBabPnDmTf//73wB4vV46OzuDlrv44ot56aWXAnEKNTU1NDY29lv/lClT+Oabb2hqaiImJgaZTEZ0dDTvv/8+U6ZMwWQykZaWxttvvw34dYgtW7YAsG/fPiZNmsTDDz9MVFQUVVVVGI1GLBbLQffltttu4+WXX+bbb78NTPvf//5HfX09HR0dmM3+wvKLFy8OWu7TTz+ltbUVu93Oe++9x9SpU4PmH7jNjo4O4uPjkcvlvPrqq3i93kN/wMA111zD+vXr+eijjwLTPvnkE0pKSjjnnHMCn/vu3buprKwkKyvroOvZsGEDZWVl+Hw+lixZwrRp0w673aGOEG8Fg45cJuM36fG8mJ3Kji4HF3+/i+JOG7px40j44x/J/HItcQ//AZlWS8OfH2Pv+TNpeORRFKFhmP/2JCNWriDiuutQGAyntN82r4+VzR3cs6uKgq+3c+H3u3m8rB5JgnvS4vh0wkg2TRnDE6OSuDgqFL1i8AowGKZOJeGvT2DfupXq227H53Ihk8mYGm7k5bwMvpj5Uy6b8BLu8Cv5vn4Dl753GTeueYgme9sxbSdEEcIFKRfwt/P+xuorV/PQ5IeI1kXzz83/5JKll/CDj3/AGzvfoNXRepL2VCAQCE4cmUxG0phc5v3qt/z06ReZMHcBlaVbWPLQvbx67x2Urv4Uj8s12N0UCASCM5qkCB13XjCSL+6Zwds/n8y8sQms3FbPNS98y/T/W81fV+6ivLlrsLspEAiGEY888giTJk3iwgsvZNSoUYHpTz31FKtXryY3N5fx48ezbdu2oOUuuugirrnmGiZPnkxubi6XX375QUXV8PBwoqOjyc7ODkybPHkyjY2NjB07FoDXXnuN//znP4wdO5bs7Gzef/99AO655x5yc3PJycnhnHPOYezYsZx33nls376d/Px8lixZErSt2NhY3nzzTe6++26ysrIYPXo0X375JSaTiV//+tfcd999TJ06tZ/YOm3aNK699lry8/MpLCzsF5mQl5eHUqlk7Nix/O1vf+OWW27h5Zdf5uyzz2b37t39HLIHotVqWbZsGU8//TSZmZmMGTOGxYsXExMTwy233ILX6yU3N5dFixaxePHiIJd0XyZPnsy9995LTk4OaWlpLFiwAICf/vSnh83cHarITkcHyYQJE6TT8cMWHJkdVjvXl5RR53Tz2MhErkmIDJrv2LUb6+rV6CZOQFtQcEqs7z5JosrhYleXg11dDnZ2P+/ucuCSJPQKOTMijFwYaWJmpIloteqk9+l4aS96l7r778d40UWYn/wrMmXw0DOLx8tLFXtZXPIs7o7PkMl1nJ32Qx6dcAOxmuMvRlbfVc/HZR+zbP8y9rTtQSlTMsU8hTlpczgv+bwjFkwTCASCwcbtdLBj3Ro2Lf+Q5qoKtEYTeRfMYuyFl2CMjBrs7gkEAsGwwO7ysnJ7PUXFNazb04RPgvEp4RQWJDInL55Q7dA9DxcIhhM7duxg9OjRg90NwQCzePHiQxZAG0qsWbMmqGjaUORgvxGZTLZRkqSDBggL8fY04KOtdYRqVUzLHB4Xh21uDz/fVsEXbRZ+bI7i4QwzqgEu5nUwJEmixunuI9Dau0VaJ3afL9AuIURFll7DaL2WGRFGzg7To5afPib21pdfpuHPjxFauJD4Rx89qADulSReK9/Mvzb9nS5LMT5lDAVpP+X+vMsYZTgxoXVX6y4+KvuIj/d/TIOtAa1SywXJFzAnfQ6T4ieJQmcCgWBII0kSVdtKKF7+Afs2fotMJiNz0lQKZl1KQtbo0z5PSyAQCE4X6jscvLe5hqKN1exptKJWyrloTCyF4xOZnhGFUnH6nJ8LBGcaQrw9MxHi7cAhxNszDJ9PYsG/vqK0tpMH5ozm+impw+LC0OOTeHR/Lc9WNXF2qJ4XclIHzNEqSRL1LnfASdsj1u7ucmD19oq0sWolWXpN90PLKL2GkXoNJuXgxR8MFE3/eJrmf/2LiOuvJ+Y3vz7sd+rNfat5auNfsdorcIeMZGTyT/lF1lTOjzAiP4Hvok/ysbFhIx/t/4iV5SuxuC2BQmdz0ueQHZk9LL7rAoHg9KWjsZ5NKz6i9POVOG1dxKSNoGD2PLImT0epPnXZ5gKBQDCckSSJkpoOijZW88GWWtpsbqKNISwYZ6awIJGsOONgd1EgGHYI8VYgODxCvD0DsTo93PnmZlbtaGDRhCQeuSwHtXJ43Ekuqm/lV7uqiFQp+W9uGnnGox+6L0kSzW5PUNRBz6PD05vbEqnyi7SjAkKt/xGuOnMdoJIk0fDHP9H2v/8RfccviLr55sO29/q8vLqziH9tfga7uw2HbjJRcT/kxrTRLIqLQH+CgrbT6+TL6i/5aP9HfFH9BW6fm1RTKpekX8LctLkkmZJOaP0CgUBwMnE7HGz/8nOKl39Ia00VWlMoY7sjFQwRkUdegUAgEAgGBJfHx+c7Gykqrmb1zkY8Pokcs4nCgkTmjU0g0nDwbESBQDCwCPFWIDg8Qrw9Q/H5JJ78dDfPrN7LxNRw/v3D8UQNk5OPrRYbPy4po8Xt4clRySyMDe/XptXtYafVwS5bj0DrjzxodfeKtGFKRcA921ekHcoZtScTyeej7r7f0vH++8Tefz8R1/7wiMt0ubt4oeQ/vLztZTyShM14MYqI+VxjTuLGxGjMmhN3mnU4O1hVsYqPyj7iu/rvAMiLzmNO2hxmpc0iQhNxwtsQCASCk4EkSVSWbKH4kw/YX/wdcrmckWdPY9ysS4nPzBKjCQQCgeAU0mJ18sGWWoqKqymt6UQpl3HeqBgKCxI5f1TMsDHDCASDgRBvBYLDI8TbM5wPt9Ry99tbiDKE8PyPxpOdEDrYXTolNLnc3FhazjcdXfwsMZpMfYjfUdst2Da5PIG2RoU8IMyO0msDr2PUSnHhfACSx0P1HXdi/ewzEh5/jND5849qufquep4qfopl+5ehVIbSYVqAwnQ+z+eM4LxI04D1r6fQ2Uf7P2J3224UMgVTEqYwN30uM5JmoFMdfxE1gUAgOJm019exeeUySj7/FJfdRtyITMbNnsfIs6ehVA3Pm4YCgUAwWOyqt1BUXM3STTU0WZyE6VTMG5tAYUEieYmh4hpBIBhghHgrEBweId4OA0qqO7jxle/psLv565VjuSQ3frC7dEpw+yQe3FvDf2uaAdAp5GTpgl20o/Qa4kNU4gTsGPA5nVTd9HNs331H4j+ewjhz5lEvu61lG0989wTfN3yPXBVNl3YSPxk1n99knYV8gIu47W7bzUf7P+Kj/R8FCp3NTJ7J3PS5otCZQCAYsrgcdrZ/8TnFn3xIW201utAwxl44m7EXXoI+rP9IEoFAIBCcPDxeH1/ubaZoYzUrtzfg8vjIiDFQWJDIgnFm4kI1g91FgeCMQIi3AsHhEeLtMKHR4uCmVzeyqbKdO2ZmcsfMTOTy4SFY7rDa0SvkJGrUJ1QwS9CL19pF5Q034Ny5k6Tnn0d/9qSjXlaSJFZXreaNnW/xTd3XgA+9NolrR17KnLTZpIamDmhfgwqdVazE4vIXOpuVNou56XNFoTOBQDAkkXw+Kko2s+mTD/2RCgolWZOnMW72pcRnZA129wQCgWDY0WF389HWOoqKq9lY0YZcBlMzorh8fCIXjYlDqz79ixQLBIPFUBBvFQoFubm5eDweRo8ezcsvv4xOd+iRm6mpqXz//fdERUUFTX/ooYcwGAzcfffdPPjgg5xzzjlccMEFR9y+z+fjzjvv5PPPP0cmk6HRaHjrrbdIS0s74X376U9/yl133cWYMWOOex3l5eWMHj2arKze89C77rqLH/3oR4dc5r333mPkyJEntN0jMWXKFNavX3/C63nyySd5/vnnUalUyOVyZs6cyeOPP45qiIyAE+LtMMLp8XL/0lLe2VjNrOw4/nrlWPQhwn0oOD687e1UXHst7ppakhf/F21e3jGvo8Xeyt0b32F99aeonbsAidERo7kk7RJmpc0iTh83oH12eV18Wf0ly/YvCxQ6M6qMpIWmkRqaSlpoGmmmNNJC00gyJqFSDI0DtUAgGN601dWwacUytq1ZhctuJz4ji3GzL2Xk2VNRKMVxSiAQCE415c1dvFtcTVFxDTXtdgwhSubkxlM4PpGJqeHCGCAQHCNDQbw1GAxYrVYAfvCDHzB+/HjuuuuuQ7Y/GvH2WHjjjTcoKirirbfeQi6XU11djV6vJzz86EZeeb1eFIqTdxOpvLycuXPnUlpaetTLXH/99cydO5fLL7/8qJfxeDwolUfWqQZyf5999lnee+893nzzTcLCwnC5XDz55JPccsstmEzBMY8n+3M+FEK8HWZIksR/1pXxp493MDLWyAs/mkBShMgBFRwf7oZGKn74Q3ydnaT871VCMjOPaz1v17dyd+lmolwbSfZ8z9627QAUxBQwK20WF6VcRKR2YCuwd7o6+aziM7a1bKO8o5yyjjIa7Y2B+QqZgkRjYkDM7SvuhmnCBrQvAoFAcDQ4bTa2ffEZm1d8SFtdLfqwcMZeeAl5F8wSkQoCgUAwCPh8Et+WtVJUXM3HJXXYXF6SIrQsHJdIYUEiyZHiOksgOBqGmnj77LPPsnXrVq688kqeeOIJli1bBsBtt93GhAkTuP7660lNTWXRokWsXr0agNdff52MjIwg8bavePndd99xxx130NXVRUhICJ999hlGozGw/SeffJKysjKefvrpfn1buXIlv//973E6nYwYMYL//ve/GAwGUlNTueGGG1i5ciVz5sxh6dKlbNiwAfCLrfPmzWPr1q3MmDGDJ554ggkTJvDJJ5/w29/+Fq/XS1RUFJ999hldXV3cfvvtlJSU4PF4eOihh5h/QH2bw4m3BoOBO+64g2XLlqHVann//ffZt28fc+fOJTQ0lNDQUIqKigC49dZbaWpqQqfT8cILLzBq1Ciuv/56IiIi2LRpEwUFBRiNRvbt20dNTQ1VVVX8+te/5sYbb2TNmjX84Q9/ID4+ns2bN7N9+/bA362uro5FixbR2dmJx+Ph3//+N9OnTz/kZ9eXpKQk1q5de0iXs8Fg4K677mLFihX89a9/ZcOGDbz00kuA39V855139vt8nnjiCaxWKw899BAzZswgPz+fDRs20NnZyUsvvcRZZ511hG9kMMcq3gqb5mmOTCbjp9PTyYgxcPsbm5j/z6949ofjOSstYrC7JjgNUcXGkPzSf6i45gdU3vATUl5/DXVS0jGv54q4CFK1k/hxSQzbpIv54zglbW3rWF62nD99+yce2/AYk+ImMTttNjNTZmJSn3iRM5PaxBx1AbP0GchjDShMJuwaGZX2OvZ37Keso4zyTr+o+1XtV7h97sCy4SHhQWJuz2uzwSyydAUCwUkjRKejYPaljLt4DuVbiin+5EPWv/0a3y5dQtaUcyiYPY/Y9IzB7qZAIBAMG+RyGZNHRDJ5RCQPz8/mk9J6ioqr+cfne3jqsz2clRpB4Xgzl+TGY9SIkRICwdHw5Vu7aa6yDug6o5IMTL9y5FG19Xg8LF++nFmzZh2xrclkYsOGDbzyyivceeedAZH3QFwuF4sWLWLJkiVMnDiRzs5OtFptUJsrr7ySadOm8eWXXzJz5kx++MMfMm7cOJqbm3n00UdZtWoVer2exx9/nCeffJIHH3wQAI1Gw7p16wBYsmQJ+/fvJz09nSVLlnDllVcGbaOpqYkbb7wxIFS2trYC8Mc//pHzzz+fl156ifb2ds466ywuuOAC9Hp90PL79u0jPz8/8P7pp59m+vTpdHV1cfbZZ/PHP/6RX//617zwwgs88MADzJs3L8h5O3PmTJ599lkyMzP59ttvueWWW/j8888B2L17N6tWrUKhUPDQQw+xdetWvvnmG7q6uhg3bhxz5swBYMOGDZSWlvYTWl9//XUuvvhi7r//frxeLzab7YifHYDFYsFqtR42nqKrq4ucnBwefvhhNm7cyH//+1++/fZbJEli0qRJnHvuuUd0SHd1dbF+/XrWrl3LDTfccEwO5uNBqBJnCDOyYnjv1qnc+PL3/ODFb3h4fg5Xn5U82N0SnIaok5L8Au4Pr/ULuK/9D1VMzDGvZ2KonuUTRnLd1v3csdfBw5kLeDf3Rva272V52XKWly3nwfUP8sg3jzDNPI3ZabM5N/FcdKpjczS4Gxro/OhjOpctw7F9e7/5Co2GUUYjY0wmFEYjclM0GNNpipBTa/JSrXdQ5bFS1dbO6pZPeddrCSyrlCtJMab0Crt9xF2j2thvWwKBQHA8yORy0sZNIG3cBFprq9n0yTK2ffEZ29d+TsLI0YybfSmZZ01BcRRDzgQCgUAwMOjUShYWJLKwIJGadjvvbaqhaGM1vykq4fcfbOPi7DgKCxKZmhGFYpjUHhEITifsdntAmJw+fTo/+clPjpilevXVVweef/nLXx6y3a5du4iPj2fixIkA/YbiAyQmJrJr1y4+//xzPv/8c2bOnMnbb7+N3W5n+/btTJ06FfALwZMnTw4st2jRosDrK6+8krfeeot7772XJUuWsGTJkqBtfPPNN5xzzjkBoTIiwm/iW7lyJR988AFPPPEEAA6Hg8rKyn5OzxEjRrB58+Z+fVer1cydOxeA8ePH8+mnn/ZrY7VaWb9+PVdccUVgmtPpDLy+4oorguII5s+fj1arRavVct5557FhwwbCwsI466yzDiq0Tpw4kRtuuAG3281ll11Gfn4+X3zxxWE/O/CPTu8bdbNixQp+85vf0N7ezuuvv86UKVNQKBQUFhYCsG7dOhYsWBAQthcuXMiXX37JvHnz+vWpLz3flXPOOYfOzk7a29sJCws77DIngrgKOIMYEW1g6a1Tuf2NTdz3bgk76zp5YO4YVAr5YHdNcJoRkplJ0gvPU3n9j6n6yU9JefUVFMdxIErSqPmwIJNbdlTwwJ4adnc5+GNmBr8o+AW3j7ud0uZSlpcvZ0XZClZXrUar1DIjcQaz02Yz1TwVtUJ90PV6OzroXLmSzmUfYduwASQJTW4uMff+BnVKCj6LBW+nBZ+1+9nS2fvc2oa3ogJjp4UMi4UMjydo3VYN1EZCbYSMmkgftdH72RlVxhrTZ3j7/JQiPBqSpDCS5VGkhCSQpk8iLTSNhPBklKYwFCYjcpMJufrg+yAQCAQHIyIhkZk3/JxpV13LtjWr2PTJMj566v8whEcw9qI55F0wC50pdLC7KRAIBMMKc5iWW8/L4JYZI9hU1U7Rxmo+3FLL+5triTNpuGycmcvHm8mIETf3BYIDOVqH7ECj1Wr7CZNKpRKfzxd473A4gub3Ff0Ol3V9oEB4KEJCQpg9ezazZ88mNjaW9957j4suuogLL7yQN95446DL9HXHLlq0iCuuuIKFCxcik8nIPCDW8FD9kCSJoqKioGJkx4JKpQqsV6FQ4Dngmhn8BdnCwsIOKv4euB/Q//PseX9gux7OOecc1q5dy0cffcS1117LPffcQ3h4+GE/O/AL6Xq9nrKyMtLS0rj44ou5+OKLmTt3Li6XC/C7m3uE5UNFyR7Ld+Vg7wcaId6eYYRqVfz3+on8+eMdvLiujD2NVv55TQHheiEgCY4NbV4eif/6J1U/u4nKm24i5aWXkB/iwHo49EoF/81J40/763imspH9Nicv5KQSrlKSG51LbnQuvxr/K4obi1letpxPKz5leflyjGojFyRfwKy0WZwVdxZypxvrmjV0LPsI69q14HajTk0l6rZbCZ0zB3Vq6jH3TZIkJLsdr8WCr7MTr8WCt7OTkd3PARG4uRPn/g5qPc1UytqoUnZSrbVTbazn84g6uhSl0AF0gGqfREIrJLT4n82dCpKcehJ9YRi0ocgDDmAjCqMp8KwwGZEf+CzEX4Fg2BKi01NwyXzGzbqUss0bKV7+AV8teZVv3n2TUVPOZdzsS4lNGzHY3RQIBIJhhUwmoyA5nILkcH43dwyf7WikqLiaF77cz7Nf7GNsYiiF4xO5NC9BXH8JBEOQlJQUtm/fjtPpxOFw8NlnnzFt2rTA/CVLlgRcrgc6OvsyatQoamtr+e6775g4cSIWiwWtVhtUmKu4uJi4uDgSEhLw+Xxs3bqVvLw8zj77bG699Vb27t1LRkYGNpuN6upqRo7sL3KPGDEChULBI488EuTI7WHy5MnceuutAaGytbWViIgILr74Yp5++mmefvppZDIZmzZtYty4cSf46YHRaMRi8Y9UNZlMpKWl8fbbb3PFFVcgSRJbt25l7NixB132/fff57777qOrq4s1a9bw2GOPsXv37kNuq6KiArPZzI033khXVxfFxcXcf//9R/XZ3Xfffdx8882BgmWSJPUTX3s455xzuP7667n33nuRJImlS5fy6quvEhsbS2NjIy0tLRgMBpYtWxYUvbFkyRLOO+881q1bF8gBPpkI8fYMRCGX8cDcMWTFGbl/aSmX/esrXvzRBDJjxZ1gwbGhP/tszH97kupf3EHVbbeR9OyzyENCjnk9cpmMB0YkMFKv4e6dVVyycTev5KaTqdcAoJArmBg3kYlxE7lv0n18U/sNn5R/wsrylSzdu5Qwj5rJpR4mb3Uxxh1NxA9+gGnuXDTZY07oDpdMJkOm0yHX6SA29ojtU4Epfd5LkoTPbqelpZr9jTspa9tHmaWcCl0NFbGNfCu145NJgBWwEuVoxGxRYW6F+Bov8bUOzI0eIixwqL2QhYT0CrxG4xHEX+MBbUzH9fcSCARDB5lcTnrBRNILJtJSXcWmFcvY/sVnbPtiFeZRYxg3ax6ZZ01GPghVcgUCgWA4o1EpmJMXz5y8eBotDj7YXMs7G6t58P1tPLJsOzNHxVI4PpEZWdFiJKRAMERISkriyiuvJC8vj8zMzH6CptPpZNKkSfh8vsO6O9VqNUuWLOH222/Hbrej1WpZtWpVUOGsxsZGbrzxxkCUwFlnncVtt92GRqNh8eLFXH311YF5jz766EHFW/C7b++55x7Kysr6zYuOjub5559n4cKF+Hw+YmJi+PTTT/nd737HnXfeSV5eHpIkkZqaetD83gMzb2+44QZ+8YtfHHK/r7rqKm688Ub+8Y9/8M477/Daa69x88038+ijj+J2u7nqqqsOKd6eddZZzJkzh8rKSn73u9+RkJBwWPF2zZo1/OUvf0GlUmEwGHjllVeIjo4+qs/u5ptvxmazMWnSJEJCQjAYDEydOvWgAnZBQQHXX399oODYT3/600C7Bx98kEmTJpGWlsaoUaOClgsPD2fKlCmBgmUnG9mhLMJDmQkTJkjff//9YHfjtGBjRRs3vboRh9vLU1flM3P0kQUqgeBAOt5/n9rf3Ivhgpkk/v3vyE4gd/G7ji6uLynDLfl4PjuVGRHB+UCSJGHfvJnOZR/RtPJjNoa389VYNcXpEi65j3h9PLNSZzE7bTajIkad9OEJJ4LL66Kys5KyzjLKO/zF0so6yijrLKPL3RVop1VoSNEkkKKMJVkWSaLHRLJDR7xVhcpiw9tpwWvpxNdp6ecSxu0+TA9Aplb3E3wP6vI1GlGYDhSIj138bXK52WF1sN1qZ0eXgx1ddppdHrL0GnINWnKNOnKNWlI06iH9txMIhjKOLmt3pMKHdDQ2YIiMIv/CS8idebGIVBAIBIJBZnttJ0XF1by/uYZmq4tIvZp5+QkUFiSSnWAS5z+CYcGOHTv65asKhi8PPfQQBoOBu+++e7C7MiDMmDGDJ554ggkTJhz3Og72G5HJZBslSTroSoV4Owyo67Dzs1c2Ulrbwa8vHsXPz00XJw2CY6b1f6/R8OijhM6fT/yf/4RMfvwOgiqHix9t3c9um4OHM8zcYI7CtXcvHcs+onPZMtw1NchCQjCcdx6hc+egP+ccbLhYXbWaT8o/YX3NejySh1RTKrPTZjMrbRbpoekDuLcnF0mSaLY3B8Tc8s5eYbe2qzbQToaMBEOCv2CaKa23aFpoGpGaSP+6nM4+EQ99oh4snXg7OgO5vwMt/jpDwymPiWVPeDR7DaHs0ejYrVDTSu/3IlqlYLRBS4xaxc4uBzu77Hi6/+WYlHJyDH4hN8+gJceoI0MXgkIcmwSCo8bn81K26XuKP/6AytItKFVqRk2bwbhZc4lJPX2OiQKBQHAm4vb6WLu7iaLialZtb8Tl9ZEVa6RwvJnL8s3EmDSD3UWB4KQhxFtBX4R42x8h3goOit3l5ddFW/lwSy3z8xN4vDAPjUoMsRQcG03/+hfN/3ia8GuvJfa3953QTQCrx8vNm3bxqdXFgq3fcctzT6FEQj9lCqa5czBecAGKPsNO+tLuaGdV5SqWly3nu/rvkJAYFTGKWamzmJ44nRGhI1DIT8/vt91j97t1+7h0yzvKKe8sx+6xB9oZVUbSQtP8wm5oGmkm/+tkYzIqheqotiVJUn/x12oNEoHdlk4q3D52KVTsUevZYzCxLzySmtAIpG4BX+N0kFpXTVpNFek1laTX+p/DrBZkKlVA/PWEhVORlMLuhCR2RcexMzSS3Tojzu71aJEYrYAcrZpck468qHBGhRkJEcPBBYIj0lxVwaZPPmT72tV4XE4Sx+RQMGseIyZMEpEKAoFAMMi021x8uLWOoo3VbK5qRy6Dc0ZGU1iQyIVjYsV1meCMQ4i3AsHhEeKt4JBIksS/1uzjLyt2kZcYyvPXTiAuVNzxFRw9kiTR+NjjtL78MlG33kr07bcd8zo8bW1YVqygY9kyrBuLeXH+Vbx58TwmOay8OG4k0XExx7S+RlsjK8tXsrxsOVubtwKgVWrJjswmNyqXnKgccqNyidPHndaOc5/ko9HWyP6O/f0cu422xkA7hUxBojGRVFNqkFM31ZRKuCb8kOuXJIkml8cfddAn8mBPlwO7z/9/Qg6kaUMYZdAwRq9ltEFDlkpBksuOZLUGOXqPygHc0YHH66UyNoE9SansSU5jd1Iae5NSsGl1ACg9HtIbaslqriero43Rtk6yvE70On1w7IPBeNA4CJlGc1r/3QWCY8VhtVKyeiWbVyyjs6kRY1Q0+RfNIXfmxWgNIvteIBAIBpu9jVbeLa5m6aYa6jocGDVK5uYlcPl4MwXJ4eK8RXBGIMRbgeDwCPFWcERWbqvnl0s2ow9R8ty14xmXfGhBRyA4EEmSqLv/ATrefZfY395HxI9+dMRlfDYbls8+p3PZMqxffQUeD+oRIwi9dC6mOXNYqtRzz64qzBoVr+alk6E7vpsKNdYaihuKKW0upbS5lB2tO3D7/LEAkZpIcqNzA4JudmQ2oSFnRjZkl7srKHqhR9it6KjA5XMF2oWFhJEWmkaiMRWdxoxXlUC7LIZKTxg7bC5a3d5A22i1ktF6DaO7RdrRBi0jdRq0A1xww+d0BkTfHsHXY+mkvMtBqcfHdlRsV2vZYTDRofZ/L+Q+HylN9WRUlpNZvpfMqnIyqsoxOOz9N6BSoThIIbdDF30T4q/gzMDn87Jv4wY2Lf+Qqm1bUapDGD19BuNmXUp0cupgd08gEAiGPV6fxNf7WigqruaT0nrsbi9pUXoWjjOzoMBMYrhusLsoEBw3QrwVCA6PEG8FR8Wuegs/feU7GjqdPLYwl4UFiYPdJcFphOTxUHPXr7CsXEn8n/5E2MIF/du43Vi/+orOZR9h+ewzJLsdZVwcpjmXEHrppYRkZQWJYhvarfy4tBy35OOF7DTOjThxh5jL62J3225KmksobS6lpLmEso7eKp2pplRyonIC7tysiCxCFMdWoGso4/J62NBSzjdNeylt3UtlZzktXZV4nLXIfR29DWVK9CHxxBpTyAxLJz9iBHmRGaSGpmJSmw69gVOIJEnUOt2UWOxstdoosdgpsdipd/Vm9qbKYbTkZozLzmhrByPbmglrb+t1+/Y4gi29DmCpu0rpITka8ddoQGEyHbTom0yrFeKvYNBpqixn0ycfsmPtajxuF0nZeYybfSkjxp+F/DSNmBEIBIIzCavTw8cl/liFb8taAZicHknh+ERm58ShDzn+YsECwWAgxFuB4PAI8VZw1LR1ubj5tY18s7+Vm85J59ezRqGQC5FBcHT4XC6qb76Frq+/xvz3v2G66CIknw97cTEdy5Zh+WQF3vZ2FKGhGGfNInTuHLTjxx+20Fml3cl1JWXstjl4JMPMDYnRA95vi8vCtpZtfjG3qYSS5hKa7E0AKOVKssKzyInKIS86j5yoHFJNqchlA+s2HWgOGnlgtbPb5sBxkMiD0XotqSFu9N4GHI5qKnpcu51lVHVW4ZE8gXVHaaMOGsGQYEgYEp9Lk8sdEHJ7RN1KR6/bOCFERa5RS65BR55RS65RS5xaFRBUfU5nQNANinro89wb9dC/6JvkcBy+g0plv2JvB7p7e0RfIf4KTjZ2Sycln69k84qPsLQ0YYqOJf/iOeSedxGaQ2SMCwQCgeDUUtVq493iGt7dVE1Fiw2dWsGsnDguL0jk7PRI5OJ6TXAaIMRbgeDwCPFWcEy4vT4e/nA7r35TwXlZ0Tx19ThMmqMrdiQQ+Gw2Km/4CY5t2wgtXIh17Vo8tXXINBqMM2dimjsHw9SpyNTqo16n1ePllu0VrGzp5LqESB7NTER1kk9SG7oaKGkuCTh0S5tLsXlsABhUBrKjgvNzY3THlss7kHR5vezqcrDT6s+k3d79fKjIg1EGDWOOIfLA7XNTY6kJKpbW87rD2evWDVGEkGJKCYi5fYVdnWpwh/m1uz2UWv2CbonVTonFxl6bk57/dpEqpV/INWjJNfpF3WSN+rhEUp/L1Vvs7WjE345OvH3ygU9Y/DUaDisCy3Q6If4K+uHzetn3/bcUf/IB1dtLUYaEMGb6eRTMnkdkYvJgd08gEAgE+G/Of1/RRtHGaj7aWofF6cEcpmXBODMLC8ykR4ubboKhy1ARb//4xz/y+uuvo1AokMvlPPfcc0yaNGmwuyUQCPFWcHz875sKHvpgGymROl68biJpUfrB7pLgNMHb0UHFddfj3LMH/bSphM6di/H885Hrj/875JUk/rS/jn9WNjI93MDz2amEq07dcDGvz0t5Z3lQ3MLu1t0BR2qMLobcqNzAY0zkGAzqgT2B9koSZXYnO7rF2Z1WB9u77FTYXQERUiuXk6XX+DNp+4i10eqTcwOmzdHWL1e3rKOMams1PskXaBeriw0Sc3tex+piB01I7PJ42d7lYKulO3LBamNXlwNP94dpUsrJMejINWrJ6xZ1R+hCUJzk/kouV5CY2ysC9xeDD+YAluwHyfnti0JxDDm/weKv3GBErhfi75lOY/l+f6TCujV43W6Sc/MZM/08opJSiDAnogoRhU0FAoFgsHG4vazYVk9RcQ3r9jThk6AgOYzC8YnMzUsgVCvMN4KhxVAQb7/++mvuuusu1qxZQ0hICM3NzbhcLhISEk76tr1eLwqFiKYSHBoh3gqOm2/2t3Dz/zbi9Un88wcFTM8c+CHrgjMTn8OB5HSiCB3YAmBv1rVwz65qkjRqXslLO+5CZgOBw+NgZ+vOgJhb2lxKpaUSABky0kPTA87cnOgcRoaNRKU48on08UQejOl+TtGqkQ8BYc3ldVFlqTqosGt1WwPttEptsEs3NJU0UxopphQ0ylP/t3V4feyyOfyRC92i7vYuO87uz10rl5Nj0JLTHbeQZ9AyUq9BfZjoj1PNKRF/DYbjKvYmN5qE+HsaYevsoOSzFWz+9GOsLc3+iTIZodExRCYmE2FOIjIxmcjEJCLNSai1opCOQCAQDAYNnQ7e21RDUXE1uxusqJVyLhwTS2GBmXMyo1EOcHFZgeB4GAri7bvvvst///tfPvzww6DpGzdu5K677sJqtRIVFcXixYuJj49nxowZjBs3jo0bN9LU1MQrr7zCn//8Z0pKSli0aBGPPvoo5eXlzJo1i0mTJrFp0yZGjhzJK6+8gk6nIzU1lRtuuIGVK1dy2223YbFYeP7553G5XGRkZPDqq6+i04nzJ4EfId4KToiqVhs3vvI9uxssPDBnDD+emiouvAWDyrftVn5cWoZXguezUwekkNlA0e5oZ1vLtiCHbqvDX2RCLVczKnJUIG4hLyqPCF0Cu23OQOTBjm437aEiD0YbNIw+hsiDoYYkSTTbm4PE3J7XtdZapG4PsQwZCYaEgJjbN183UhN5So9Bbp/EXpsjELfQE73Q5fU7i9UyGaMMmt7IBYOW0Qbtafn3AX9hwYD4e5Q5v71tLEg22+E3IJf7nbwHi344UATuJxCbkOt0h83JFgw8Pq+XtrpaWmoqaamupKW6itbqSlprq/F6evOwjZHRfiE3MYkIc3JA2NXoxTBegUAgOBVIkkRpTSdFxdW8v7mGNpubKEMIl+UnUDg+kdHxQ6PorGB40leYWr34eRor9g/o+mNS0jnv+p8dto3VamXatGnYbDYuuOACFi1axJQpUzj33HN5//33iY6OZsmSJaxYsYKXXnqJGTNmMGnSJB5//HGeeuopHn/8cTZu3EhERAQjRoxgy5YtWCwW0tLSWLduHVOnTuWGG25gzJgx3H333aSmpnLLLbfw61//GoCWlhYiIyMBeOCBB4iNjeX2228f0M9BcPpyrOKtKFspCCIpQkfRzVP45ZLNPLxsO7vqLTx8WTYhSmH5FwwOk8IMfDJ+JD8qKeOarftOWiGz4yFME8ZU81SmmqcC/pPouq46NjdtZX39ZrY0lfLmrnfw7ngNAJ9cj0edjls9ArlmBGnh2cyKig0ItaP0WqLUZ85hWSaTEa2LJloXzVnxZwXNs3vsVHZWUtbZx63bUU5xQzF2T68b1KAy9CuWlhaaRrIx+aiczceKSi5jdLcge2VcBAC+7giLvhm6Hzd18FqdX6hXyCBTp+kujOYXdXMMWoynwXFTplKhDA+H8PDjWv54xF9XeXl3Wwu+4xV/DcbDFn8LiL96vRB/jxG5QhEQZZk0NTDd5/XS0VhPS3WVX9St8T9Xf7oNj8sZaKcPjyAy4NLtduomJqM1ChFBIBAIBhKZTEZuYii5iaH89pLRrN7VSNHGahavL+fFdWWMiTdROD6R+fkJRBlCBru7AsEpx2AwsHHjRr788ktWr17NokWLeOCBBygtLeXCCy8E/PEG8fHxgWXmzZsHQG5uLtnZ2YF56enpVFVVERYWRlJSElOn+s+RfvjDH/KPf/yDu+++G4BFixYF1lVaWsoDDzxAe3s7VquViy+++JTst+DM5MxRCQQDhj5EybM/HM/fV+3mH5/vZV+TlX//cDzRRvFPXzA4JGtDWFaQyc3bK/jtnhp225w8kmE+6YXMjsRBIw+67OzuisfhiwPjLOQGL8nyJmKoQOXcj6VrNw2dH+Dr9FHfCHJ9ArKoHFRRuWiictBFjhn0gl+nAq1SS1ZEFlkRWUHTfZKPRlsj+zv2BxVL+6buGz7Y90GgnUKmwGwwHzRbN1xzfELkoZDLZIzQaRih03BZrH/dkiRR7XQHuXPXtlp4u74tsFy6NoRco5Ycg5a8bkE38gwS52EAxd+jKfbWLQK7yisCYvARxV+ZrI/4azp88Tch/h4WuUJBeLyZ8HgzGRPPDkyXfD46mxtpqa6iuaqC1m5Rt3T1p7idvQX5dKFhRJqTiAhEL/ifdaFhYoSPQCAQnCBqpZyLs+O4ODuO1i4XH2yuoai4hkeWbefPH+9gRlY0hQWJnD86RphyBKecIzlkTyYKhYIZM2YwY8YMcnNz+ec//0l2djZff/31QduHhPg1D7lcHnjd897TPQLpwPOWvu/1feq+XH/99bz33nuMHTuWxYsXs2bNmoHaLcEw5My6ihQMGHK5jLsuymJknJG7397C/GfW8fyPJpBjHthMU4HgaDEoFSzOTeOP++r4V1Uj+2wOXshOJewUFTLr8nrZ1eU4bORBjFrJaL2W68xR/uiDQ0Qe2Nw2drbupKS5JBC5sLJiJQBymZyMsIxA3EJuVC4jwkaglA+Pw7VcJidOH0ecPo4pCVOC5nW5uwLxC32F3a9rv8blcwXahYaEBsUv9Ai7icbEAfscZTIZSRo1SRo1l0SHBaY3ON2UWO2UWmyUWO0Ud9p4v7E9MN8cogoIublGv6gbq1YOW/HqhMVfj6c7yuHoxV93RSWO7mV8XV1H6OBBxN9DxUAc7NlgOOPFX5lcTmhMHKExcaQXTAxMlyQJS0tTr1O3uoqWmkp2rluD09b7uWsMxiAxt0fcNYSf2sgUgUAgOFOI0Ku5fmoa109NY3eDhaKN1SzdVMOqHY2E6VRcmuePVRibGCqOs4Izml27diGXy8nMzARg8+bNjB49mpUrV/L1118zefJk3G43u3fvJjs7+6jXW1lZGVj+jTfeYNq0aQdtZ7FYiI+Px+1289prr2E2mwdkvwTDk+GhBgiOm7l5CaRG6vnZK99z+bPruXx8IlmxRjJijIyMNRAphuAITiEKmYwHMxIYqQ/hnl3VzNm4h1fy0hgxgIXMvN1D5Hd0i7Q7u0XaCruLnoRwrVzOKL2GWVGhxxV5oFPpKIgtoCC2IDCtxd4SyM8taS5hVeUqivYUAaBRaBgTOaa3IFpUDmaDedidcOtVerIjs8mODD658vq81HXV9SuWtrZ6LUv3Lg20U8qVJBmTgoXdUL+wa1IPzJDu2BAVsSEqLojsXV+b20Opxc7W7siFUqudT5o7At+naLWS3D7u3FyjlmSNetj9fY8HmVJ5wuKvz2rFG8jzPXixt75isLuqyi/+dnYenfhrMPTL8h0O4q9MJsMUFYMpKoa0/PGB6ZIk0dXWGhBze4Td3d9+heMzS6CdWqsLRC70jWEwRkadtp+JQCAQnGpGxhq575LR3HNxFuv2NlNUXMNb31fx6jcVjIjWUzg+kQXjzMSHage7qwLBgGO1Wrn99ttpb29HqVSSkZHB888/z89+9jN+8Ytf0NHRgcfj4c477zwm8Xb06NG8/PLL3HTTTWRmZnLzzTcftN0jjzzCpEmTSElJITc3F4vFctB2AsHRIAqWCY6KJouT+94t4dv9LVicvQVLIvRqMmIMjIw1kBljJDPGQGaskSiDEB4EJ5e+hcxeyE7lnGMsZHbQyAOrnd02Bw6f/7goB9J1IYzqW0BMryVFq0Z+kr/fkiRRbakOcufuaN2B0+vPlgwPCQ+IubnRueRE5hCmCTupfTod6XR1Bly6fYumVVoq8fh6j2WRmsheMdfUK+wm6BNQyAd+eKHV42WbtSdD1y/q7rI58Hb/Sw5VKsg1aMnpdufmGrSk60JQiOPqkCIg/gaJvocXf30Wa8AJ7LNaD7+BA8Vfg+GQInCQGNwzz2BApjg9hsdKkoS9syMg5jZXVwYiGGwd7YF2qhANEeakXmG327VriolBfhJ+qwKBQHCm0elw89HWOoo2VvN9RRsyGUzLiGJhgZlZ2fFo1eJYKjhxDlaM6UygvLycuXPnUlpaOthdEZzmHGvBMiHeCo4JSZJo6HSyp9HC7gYre7ufdzdYsDh6hZAwnYqRMUYyYg1kxhgYGesXdqONIULUFQwYFXYn15WUscfm4NHMRH5sjjpouwMjD7Z3Px8s8mCUQcNovYYxBi2ZB4k8GEzcPjd72/YGCbr72vchdXs4k4xJvYJuVC6jIkahUQ6cK/lMwuPzUGOtCYi5PeLu/o79dDg7Au3UcjUpoSmkmXpdummhaaSZ0gY8m9jh9bGjyxFw52612NnRZcfZfTNBp5CTY9AGRS6M1GkGPftZcPxIXm9A/PUXfet2AB+i2FvP81GLv4DcYOgVdg/jAO4r/irj4/2O5iGCrbOjW8jtcetW0VpdibWtNdBGqVITbk7sdekmJRNpTiYsNg75aSJgCwQCwammoqWLouIa3i2uprrNjl6t4JLceArHJ3JWagRycY4hOE6EeCsQHB4h3goGBUmSaLI42d1gZU+jhT2NVvY0+IXdDrs70C5Uq+p25xoC0QuZMUZiTULUFRwfFo+Xm7dXsKqlk+vNUfzEHMXOriNHHow2+AXaHlft6VpIqsvdxfaW7QExt6S5hPquegCUMiWZ4ZlBcQvpoeknxUl6JtHmaOvn1C3rKKPaWo1P8gXaxehiAkJuj1M3PTSdWF3sgB3P3D6JPTYHW7sF3Z7iaDavvx9qmYzRBg25Bh25Rr+oO1qvHVI3HQQnj/7i78Fzfn19YyEOeH8oVMnJaPPHos3PR5efT8jIkciUQ+s46eiy9oq61ZW0dDt1Lc1NgTYKpZLwhD6ibrdjNywuHoVSNYi9FwgEgqGDzyexobyVoo3VfFxSR5fLS1KElgXjEiksMJMSqT/ySgSCPpyp4q1AMFAI8VYwpJAkiSark70NVvY0+h26PcJum61X1DVqlH5RN8ZIZqw/eiEzxkB8qEaIuoIj4pUkHt1Xy7+rei/Y+0YejDFoAwXEkjUnP/JgsGmyNQWE3NLmUkqbS7G4/SKNTqkjOyo7yKE7kGLjmYzL66LKUnVQYdfq7nVAapVaUk2p/Zy6KaaUAXFC+ySJ/XZnd9yCnRKrjRKLnXaP30mukEGmTuN353aLujkGLQZRXVpwAJLXi6+rKzjaobMDd0UFts2bsW/egre5GQCZToc2Jwdtfr7/MS5/SLlz++Ky22itqQ6IuT3CbkdjA3Sf98oVCsLiEvrl6obHm1Gq1YO8BwKBQDB42FweVmyrp2hjDV/ta0aSYGJqOIUFiVySF49JI258CY6MEG8FgsMjxFvBaUOz1cmePtELexot7Gmw0tLVWzXeEKIkI6Y3eiEj1sCoOKMI1RcclNUtnTS6PIw2aIZc5MFg4pN8VHRWBAm6O1t34vb5b6BEaaOC3LnZkdmEhoQOcq9PHyRJosXREiTmlnWWUd5RTq21NhBrIUNGgiEhKFc3LTSNVFMqUdqoExLQJUmiyuEKuHO3dou6ja7eOJt0bYjfndtTHM2oJUI1tJyUgqGFJEm4a2qwb9qMfbP/4di5E7z+GwWqlGR0PWJufj4hmZlDzp3bF7fTQWttDa19XLot1VW019chdbvqZTI5YXFxRJiTg4TdCHMiqhARQyMQCIYXte12lm6qoai4mv1NXYQo5VycHUfh+ESmZUShELEKgkMgxFuB4PAI8VZw2tNidbK30cruRit7u526uxusNFudgTb/V5jHlROTBrGXAsHpjcvrYnfb7qC4hbKOssD8VFMqOVE55ETlkBeVR1ZEFmqFcKMdKw6Pg4rOCso6+2TrdpRT3lmO3WMPtDOoDEFibs/rJGPSCX3uDU53d1E0vzt3q9VGtaN31IM5ROUviNZH1I0NEY4awaHx2e04SksDzlz75s14W1qAbndubm63mOuPXBiq7ty+eNxu2upqAmJuj7jbVleDr1uoRiYjNDqGyMTk7oJpPcXSklBrBzb/WiAQCIYakiSxuaqdouJqPtxSR4fdTawphMvGmbm8IJHM2GMrHCw48xHirUBweIR4KzhjaetysbfJyl9W7GJ7bSef3nWOcOAKBANIp6uTbc3bAmJuSXMJzXb/kGmlXMmo8FF+h26036GbakpFLhPu5uPBJ/lotDWyv2M/5R3lQW7dBltDoJ1cJifRkHhQYTdcc3yiWKvbQ2l3dm6PqLvP3ntzLFqtDAi5PaJukkYtojUEB0WSJNzV1X5nbrdD17FrV8Cdq05JCcQsBNy5p0kBMa/HQ3t9bZBLt7W6ktbaaryeXle7MTK626Wb1O3Y9Qu7Gr1hEHsvEAgEJwenx8vnOxopKq5m9a4mvD6JvMRQCgsSmTc2gXC9uNkvEOKtQHAkhpx4K5PJZgFPAQrgRUmSHjtg/g+A33S/tQI3S5K05XDrFOLt8KayxcbFf1/L5BGR/Oe6CUJQEAhOEpIk0WBr6Jefa/PYAL9bNDsqOxC3kBuVS4wuZpB7ffrT5e4KZOr2FXYrOipw+XpjZcJCwoLE3J7XicZElPJjG7pu9XjZZvULulu7Bd3dNgfe7lOEMKWCHIO/IFqPqJuuDTnj86MFx4fPZsNeWhpw5to3b8bb2gqAXKdDk5cXcOZqx449Ldy5ffF5vXQ01vcrlNZaU43H1XsjxBAeQUTAodsbw6A1mgax9wKBQDBwNFudvL+5lqKN1Wyv60SlkHH+qBgKCxKZkRWDWilu8g9XBlu8bWlpYebMmQDU19ejUCiIjo4GYMuWLYwdOzbQ9qqrruLee+9lxowZWK1WerSm77//nrvvvps1a9YE2t5xxx288847VFVVIZf7v9+LFy/mnnvuwWw243A4uOmmm/jlL38JwEMPPYTBYODuu+/mm2++4Y477sDpdOJ0Olm0aBEPPfRQUL9tNhs33ngjW7duRZIkwsLC+OSTTzAY/DeEN23aREFBAZ988gkXX3zxSfnsBKeGYxVvT2owmUwmUwD/BC4EqoHvZDLZB5Ikbe/TrAw4V5KkNplMNht4Hph0MvslOL1JjtRx98VZPLJsOx9sqWV+vnmwuyQQnJHIZDLi9HHE6eO4IOUCALw+L+Wd5X5nbpPfnbu4dDEeye9Ci9HFBAqh5UblMiZyDAa1cJ8dC3qVnuzIbLIjs4Ome31e6rrqeuMXugXetdVrWbp3aaCdUq4kyZgUnKvbXTzNpD64aGRQKpgUZmBSWO/fyu71sbPL4Xfndou6/6luxtV901evkJNj0AaJupk6DSqRfzfsket06M86C/1ZZwHd7tyqqoCQa9+8hZYXXux156amBhVCC8nIGNLuXLlCQXi8mfB4MxkTzw5Ml3w+OpoaA0XSWrtF3dLPP8XtdATa6ULD/Dm6Bwi7utAwcUNaIBCcVkQZQvjJtDR+Mi2NHXWdFG2s5r3NtazY1kCEXs28sQlcPj6R7ASTOL4JTimRkZFs3rwZCBZQAQwGQ2DegTQ2NrJ8+XJmz57db57P52Pp0qUkJSWxdu1aZsyYEZi3aNEinnnmGVpaWsjKyuLyyy8nKSk45vG6667jrbfeYuzYsXi9Xnbt2tVvG0899RSxsbGUlJQAsGvXLlSq3kizN954g2nTpvHGG28I8XaYcbKrSpwF7JUkaT+ATCZ7E5gPBMRbSZLW92n/DZB4kvskOAO4fkoqH26p5Q8fbmdaRhSRhpDB7pJAMCxQyBWMCBvBiLARXJZxGeDPdd3ZujPIoftZ5WeAv0hXemh6b0G06BxGho1EpRC5qseKQq4g0ZhIojGR6YnTg+Z1ujoDLt0eUbeso4y1NWvx+HqHd0dqIgNCbo+4mxqaSoI+AYU8WCzTKuSMM+kYZ+rN83T7JPbYHAF3bonVzhv1rfynxl/sKUQuY7ReG4hbyDXqGK3XoBHFA4c1MpkMdXIy6uRkQufNA/q7c61r19Lx3nsAyPV6NHn+7FxdtztXERY2eDtwlMjkcsJi4wiLjWPE+LMC0yWfD0trc69Tt7qKlppKdq5bg9PWFWinMRiDxNwecdcQHilED4FAMOQZHW/igbljuHf2KNbuaaJoYw2vf1vJ4vXlZMUaKRxv5rJ8MzEmUfxRMHS55557ePTRRw8q3q5evZqcnBwWLVrEG2+8ESTe9hAZGUlGRgZ1dXX9xNvGxkbi4+MBUCgUjBkzpt/ydXV1pKSkBN5nZWUFXkuSxDvvvMOnn37K9OnTcTgcaDTi9zRcONnirRmo6vO+msO7an8CLD/YDJlM9jPgZwDJyckD1T/BaYpCLuPxwjzmPv0lDy/bzlNXjRvsLgkEwxaNUkN+TD75MfmBae2Odra1bAtk535Z8yXv73sfALVczajIUYG4hbyoPJKMSUKcOAFMahN50XnkRecFTff4PNRYa/q5dT+t+JQOZ0egnVquJiU0JSiGoSeKQa/SB9qp5DLGGLSMMWi5yn/uiVeS2G9zUtoncuGDxnZerfUXsVLIIEunIbdPhm62QYtBOXSdlYKTz5HcubbNm2l5/gVaety5aWlox449bdy5fZHJ5ZiiYjBFxZCWPz4wXZIkutpaA2Juj7C7+9uvcHxmCbRTa3WByIVIcxKRSSlEJiZhjIwWx02BQDDkUCrknD8qlvNHxdJhc/Ph1lqKiqv508c7eWz5Ts4ZGc3CgkQuGhOLRnV6HMcFJ0b7h/tw1XYdueExoE7QE3bpiONa1m63k5+fH3h/3333sWjRIgAmT57M0qVLWb16NUZjcCG+N954g6uvvpr58+fz29/+FrfbHeSKBaisrMThcJCXF3xODvDLX/6SrKwsZsyYwaxZs7juuuv6ia833HADF110Ee+88w4zZ87kuuuuIzMzE4CvvvqKtLQ0RowYwYwZM/j4449ZuHDhcX0GgtOPky3eHuyM8qAhuzKZ7Dz84u20g82XJOl5/JEKTJgw4fSrsiYYcLLijNx6XgZ/X7WHeWMTmDk6drC7JBAIugnThDHVPJWp5qmAX6So7ar1O3Ob/A7dd/e8y2s7XgP84mPf7NycqBwitZGDuQtnBEq5khRTCimmFGYkzQia1+ZoC3LplneUs7ttN59Xfo5X8gbaxehi+hVLSw9NJ0YXg1wmRyGTkanXkKnXsCDWn10qSRKVDhclFntA1P2spZMl9f7cUxkwQhdCrkFLjlFHnkFLjlFLuOpkn5YIhiqHdOeWlAYEXesXX5z27ty+yGQyDBGRGCIiScnLD0yXJAlbR3sfUbeKluoK9hd/R+nqTwPtVBotkeZEIhOTiTB3i7uJyYRGxyCTC7e7QCAYfEJ1Kn54dgo/PDuFfU1W3i2uZmlxDb94YxNGjZK5efEUFiQyPiVc3IwSnDK0Wu0hYxMAHnjgAR599FEef/zxwDSXy8XHH3/M3/72N4xGI5MmTWLlypXMmTMHgCVLlrB69Wp27drFCy+8cFBH7IMPPsgPfvADVq5cyeuvv84bb7wRlKcLkJ+fz/79+1m5ciWrVq1i4sSJfP3114wePZo33niDq666CvDn9L766qtCvB1GnNSCZTKZbDLwkCRJF3e/vw9AkqQ/H9AuD1gKzJYkafeR1isKlgl6cHl8XPr0Ojrsbj696xyMGjEUWyA4XfD4POxr3xcUt7CnfQ8+yT8EP0GfECTmjokcg06lO8JaBSeKy+uiylLlj2HoLAsqnGZx97oBtUotqaZUfwxDn3zdZFMyWqW233olSaLB5WGrxUap1U6JxS/q1jjdgTZJGjV5xp4cXb+oGxMijusCP5Ik4a6sDDhz7Zu34Ny1C3z+Y4Y6La03Ozc/n5CMEaeNO/dosXV2dGfp9gq7rdWVWNtaA22U6hAiEhIDbt2I7iiGsNg45GfY5yEQCE4/fD6Jr/e3ULSxmuWl9djdXlIjdSwsSGRhgZnEcHGudyYw2AXL+nKwzFur1dqv3YwZM3jiiSeYMGECU6dO5eqrr+add95hzZo1fPDBB1x99dWBomc2m42LLrqI//3vfyxevJjvv/+eZ555hq+//po5c+awfft24uLi+m27B4/HQ3R0NHv37iUy8tCGldtuu420tDTuvPNOzGYzKpUKhUKBJEm0tLRQV1fXzyEsOD0YUgXLgO+ATJlMlgbUAFcB1xzQuWTgXeDaoxFuBYK+qJVyHr88j4X/+orHlu/kjwtyB7tLAoHgKFHKlWRFZJEVkUXhyEIAbG4bO1p3BAm6KytWAiCXyckIywhy6I4IG4FSLtyaA4laoQ7kGvdFkiRaHC0Bp25PDMPWpq18UvYJUvfAGhky4vXxQdELPa9jtVFcFBXKRVGhgfW2uDzdYq6/MFqJxc5HTb2RDrFqpT9yobswWq5RR2KISjh0hiEymQx1SgrqlBRC588HwNfVFezOXbOGjqX+An5yvR7t2LxeQXfsWBShoYfbxJBHZwpFZwolcXRO0HRHl7VX1K2upKWmiuqd29ixbk2gjUKpJDwh0R+90FMsLTGZsLh4FEpxk0QgEJwa5HIZUzOimJoRxcOXeVheUse7xTU8+elunvx0N2enR1BYkMglufHoQ8Q5nmBwuP/++/n5z39Oeno64I9MePHFF7n66qsB6OrqIi0tDZvNFrTc5MmTufbaa3nqqaf485+DPIt89NFHXHLJJchkMvbs2YNCoSDsgFFDX331FWPGjCE8PByXy8X27duZMWMGq1atYuzYsaxYsSLQ9rrrruO9997j2muvPQmfgGCocVKPhpIkeWQy2W3ACkABvCRJ0jaZTPbz7vnPAg8CkcC/ui/EPIdSmgWCg5GfFMYNU9N4cV0Zl45N4Ox0MdRaIDhd0al0jI8dz/jY3lzIFntLUH7uqspVFO0pAkCj0DAmckyQQ9dsMAth7yQgk8mI0kYRpY1iYtzEoHkOj4OKzorgGIbOcor3FGP32APt9Cp9UKG0nsJpk0OTOTei1zVg8XgptdoptdjZavXn6H7e0omve364UkGuUUuOQUee0S/qpmlDkIu/+7BDrtejP3sS+rP9JRUkScJdUYF9y5aAO7f52ed63bnp6QEh90xy52r0BhJGjiZhZLCDw2W30VpTTUtNT7G0Sur372HXN+uge/SdXKEgLC4hOFc3MZnweDNKtXowdkcgEAwTDCFKrpiQxBUTkqhus7G0uIai4mrueWcrD76/jdk5cRSOT2RyeiRyufgfLxgYDsy8nTVrFo899lhQm0suuSTIZbtixQqee+65wHy9Xs+0adP48MMP+63/N7/5DQUFBfz2t78Nmv7qq6/yy1/+Ep1Oh1Kp5LXXXkNxwDnIvn37uPnmm5EkCZ/Px5w5cygsLOTHP/4xCxYsCGpbWFjIv//9byHeDhNOamzCyULEJggOxObyMOvvX6KQy1h+x3QRfi8QnMFIkkS1pTog5pY0l7CjZQcunwuACE0EOVE5vYJuZA5hmrDB7fQwRZIkGmwNQcXSel7Xd9UH2sllcswGc0DM7Svuhof4c/BsXh87rfaAO3er1cZOqwNX93mMXiHvztDVktst6mbqNCjFxd6w50B3rn3zZrzt7QDIDQa03dm5Z4o792hwOx201tbQ2u3S7SmW1l5fh9QdXSOTyQmLiyPCnBwk7EaYE1GFiOrWAoHg5CBJEsWVbbyzsYZlW2uxODwkhGpYUGBmYUEiI6INg91FwVEwlGITBIKhyLHGJgjxVnDGsH5vM9e8+C0/P3cE984eNdjdEQgEpxC3z82etj1BcQv72vcFhvInGZMCYm5uVC6jIkahUQrxYTCxuW2Ud5b3y9Yt7yzH6XUG2oWGhAZFL6SZ/MJuojERCQW7uxwBQbenQJq922WpkcsYre+JW/CLuqP0GjQKUcxpONPjzrUFxNwtOHfv7u/Oze9x52YMmwJgHpeLtvragJjbI+621dXg83YXMpTJCI2OOaBQWhKR5iTUWpFVKRAIBg6H28un2xsoKq5m7e4mfBKMSw5jYUEi8/ISCNWJyJehihBvBYLDI8RbwbDm3qKtvL2xmvdumUpu4pnvnBEIBIemy93F9pbtfnduUwmlLaUBt6dSpiQzPDMoPzctNA2FXLj2Bxuf5KOuqy6oUFqPuNtsbw60U8qUJJmSgoXd0DSSjak0e0MosfoLopVY7JRYbXR6fN3LQZZeQ45BR65RS55BS7ZBi14p/vbDGa+1C0dpiV/M3bQZ+5YtB7hzu7Nzx+WjzcsbFu7cvng9Htrr62ipruh26vqF3dbaarweT6CdMTK626Wb1O3Y9Qu7Gr1wygkEghOjsdPBe5trKNpYw64GC2qFnAvGxFBYkMi5I6NRihuzQwoh3goEh0eIt4JhTYfdzYVPfkGkIYQPbpuKSvwTFwgEfWiyNQWcuSXNJWxr3obFbQFAp9SRHZUd5NCN1cWK/NwhhMVlCTh1A8JuRxkVlgo8vl4BKUITEVwszZRGiMZMgy+MbV2ugKjb7O5dJlatJFUbQrJWTaomhBStmlSt/zlKpRTfg2GGJEm4ysuxb94SiFpw7tnT684dMSLgzNXl56MeMWLYuHP74vN66WisDyqU1lJdSWtNNR5Xr4NeHx4RXCjNnExEYhI60/ASwQUCwYkjSRLbajt5Z2M1H2yppbXLRZRBzfx8M4UFiYxJMA12FwUI8VYgOBJCvD0DsXt9aAdZhPR6vbS2thIeHo5SObSrfq7cVs/PXt3IPRdncet5GYPdHYFAMITxST4qOiuC4hZ2tu7E7XMDEKWNCgi5OVE5ZEdlY1KLi4KhhsfnodZaG5Sp2/O6zdkWaKeWq0k2JQeE3Qh9Mk5FPC1EU+tWUuFwUmF3Uet0B61fr5CTolGT0i3mpmhDSNX4xV2zRoV6GIp2w5F+7tzNm/F2dAAHceeOHYvCNHyPFZLPR2dzY6+oG3hU4XY6Au20ptCAmBuZlOx/TkxCFxombpgIBIIj4vL4WLOrkaLiaj7f2YjbKzE63kRhgZn5+WaijSGD3cVhixBvBYLDI8TbM5Afbd2P1evjzpRYpocbTvrJrN1up6Ghgfr6+sCjqakJr9dLdHQ0ixYtIioq6qT24US59bViPt3ewMd3TCcjRgzVEwgER4/L62JX664gh255Z3lgfqopNShuISsiC7VCVGQfqrQ72oPE3B7XbpWlCq/kDbSL0cYECqUlGlPQa5KQ1PF0EEalw0253UWF3UWlw4nD13vuJAfMGjUpml6nboo2hFStf1qoamjf8BQcP8Kde+xIkoSlpamPqFtFS00lrdVVOG1dgXYag7FX1E1MIqLbsWsIjxSirkAgOChtXS4+2FJLUXE1W6s7UMhlzBgZTeH4RGaOjiFExCOdUoR4KxAcHiHenmFIksSL1c38s7KRepebApOOO1NiuTDSdMInr5Ik0d7eHiTSNjQ00N6d8Qag1+uJi4sjLi4Oo9HIF198gc/nY8GCBYwaNXSLgjVZnFzw5BdkxBh4+6bJyEW1cYFAcAJ0ujrZ1rwtIOaWNJcE8leVciWjwkeRE5VDXnQeOVE5pJhSkMuGt0gz1HF73VRZq3pF3R7HbntZIEoDQKvUkmJKIc3UnalrSiFUl4xXGUe9W0653UmFw0WF3Um53UVLnygGgHClIuDYTdWGdDt4/QJvQogKuRCizii81i4cJVuxb96MbfNmHJu39LpzjcZed25+PtqxecPandsXSZLoamsNiLkBYbe6Eoe19/eo1uq6M3WT+8QwJGOMjBr2wrhAIOhlT4OFd4qreW9TDQ2dTkK1Ki4dG09hQSL5ScLZfyoQ4q1AcHiEeHuG4vT5WFLXytOVjVQ5XIzRa7gjNZa50WEojuKfj8fjoampKUiora+vx+nszSOLjIwMCLV9Bdu+tLe389Zbb1FbW8v06dM577zzkA/Rk+WijdX86u0t/GFeNtdNSR3s7ggEgjMISZJosDUEhNzS5lK2NW/D5rEBYFQZyY7KDnLoRuuiB7nXgqNBkiRaHC2BbN2AsNtRTo21Bone86Z4fXxvsTST37Ubo0+mSxZKpcNFud1Fud1Jpd1FucNJtcOFp89pl1omI1mrJrmPa7fnOVkTgk7ktp/2SJKEq6w84MwNuHMlCWQy1CPSA85cbX4+6vR0IUL2QZIk7J0dQS7dlip/tq6toz3QThWiIcKc1Cvsdrt2TTExyEUhSoFg2OL1SXy1t5mi4mpWbKvH4faRHq2nsCCRhQVm4kO1g93FM5bBFm9bWlqYOXMmAPX19SgUCqKj/efiu3fvxmazUV5eTlpaGg888ACPPPIIAM3NzcTHx3PTTTfxzDPP8NBDD2EwGLj77rtxOBxceumlTJs2jd///vcoFApyc3MD27zqqqu49957mTFjBlarlR7N6vvvv+fuu+9mzZo12Gw2brzxRrZu3YokSYSFhfHaa68xf/78g/Z1w4YNaLXaQ26nrq4Ordb/Pc7IyOCdd94J6vOhsFqt/OpXv2LVqlVoNBoiIyP5y1/+wqRJk6iurubWW29l+/bt+Hw+5s6dy1/+8hfUajVr1qxh/vz5pKenY7fbmTt3Lk888QQAixcv5p577sFsNuNyufjlL3/JjTfeOCB/zzORYxVvxVi+04QQuZwfmaO4Oj6SpY1t/KOigZu2VZChq+f25FgWxoaj6naX2my2fiJtc3Mzvu5hfCqVitjYWHJzcwMibUxMDGr1kYf9hoWF8eMf/5jly5fz5ZdfUlNTQ2FhIXq9/qTu//GwsMDM+1tqefyTncwcHUNiuG6wuyQQCM4QZDIZcfo44vRxXJhyIQBen5eyjrKguIX/lv4Xj+R3YsbqYoPE3OyobPSqoXfsHO7IZDKitFFEaaOYEBd87uT0OqnorOgtltYt7i7dszQg3APoVfqAmJsRmsaF4f6MXbNhBE0eAmKuP4rBn7P7XUcXFq8vaHuxamVvzq7GH8UgiqidXshkMkLS0whJTyNs4QIAvFYrjq1bsW3ejH3LFqyfrqLjnSIA5CZTf3fuATfShxMymQxdaBi60DCSsvOC5tktnbTUVNHap1haZekWtq/9PNBGqVITbk4MLpaWmExYbDxyhRB1BYIzHYVcxjkjozlnZDQWh5uPS+oo2ljDX1bs4omVu5g6IorC8WYuzo5DpxbSyJlEZGQkmzdvBugnZhoMvbGK6enpLFu2LCDevv3222RnZ/dbn8vlorCwkPHjx/P73/8eAK1WG9jGgTQ2NrJ8+XJmz54dNP2pp54iNjaWkpISAHbt2kVcXNwh+3qk7bz22mtMmHBQre+w/PSnPyUtLY09e/Ygl8vZv38/O3bsQJIkFi5cyM0338z777+P1+vlZz/7Gffffz9/+ctfAJg+fTrLli3Dbrczbtw4FixYwNSpUwFYtGgRzzzzDI2NjWRnZzNv3jxiY2OPuX+C/ogj1GmGSi7jyrgICmPDWdbYxpP767hjZyWP7ijjnM5GUsp2BTkRjEYjcXFxjBw5MiDURkREnJBbVqVSMW/ePMxmMx9//DHPP/88ixYtIiEhYQD2cOCQyWT8aUEOF/1tLb9dWsrLP54oLnQFAsFJQyFXkBGeQUZ4Bgsy/SKNw+NgZ+tOSptL2dq8lZKmElZVrgJAhowRYSMCYm5OVA6Z4Zmo5KrB3A3BYQhRhDAyfCQjw0cGTZckiUZbYyBPt8et+33D9yzbvyzQTi6TYzaYSTWlkhaaxujQNC6J9gu74SHhtHt9VNh7Ihj8cQzldifr26y842yj71gpXXcRtVRtCMl9IhlStSEkiiJqQxqFwYB+yhT0U6YAB3fnNv/znwF3bkjGCDRjxwp37gFojSYSR2WTOCr4Ittp6+oTv1BFa3Ultbt3sPOrLwJtFEol4fHmQOxCQNSNi0ehFMdggeBMxKhRsWhiMosmJlPZYqOouJp3N1XzyyVb0KtLmZ3rj1WYlBYhIveGEVqtltGjR/P9998zYcIElixZwpVXXkltbW2gjcfj4aqrriIzM5PHHnvsqNZ7zz338Oijj/YTb+vq6khJSQm8z8rKGpgdOQb27dvHt99+y2uvvRbQhdLT00lPT+ezzz5Do9Hw4x//GACFQsHf/vY30tLS+MMf/hC0Hq1WS35+PjU1Nf22ERMTw4gRI6ioqBDi7QAhxNvTBLfbTWNjY7982hkuF+kRsRSnZFEUGk9oXjSXqbxcGx9Janxc0F2lgWb8+PHExcWxZMkS/vOf/zBnzhwKCgpO2vaOh8RwHb+ZNYrff7CNd4trKByfONhdEggEwwiNUkN+TD75MfmBae2OdkpbSgMO3S+qvuC9ve8BfnFwVMSoIIdukjFJ3Hga4shkMmL1scTqYzk7/uygeTa3jYrOit5M3W5hd0P9Bpze3ugik9rkL5jWLezmhaYxPz6NRGMqKrkKh9dHlcMVEHQruyMZ9tmcrG7t7FdELUGjIlXTG8XQI/CmiiJqQ44junM3b8Yi3LlHTYhOT8LIUSSMDK7N4LLbaK2ppqWmp1haJfX797Drm3V+oRyQKxSExSX0y9UNjzejPIoRagKB4PQgOVLHLy8cyR0zM/muvJWi4mo+LqnnnY3VJIZrWTjOzMKCRFKjxAipgWD58uXU19cP6Drj4uL6CaPHy1VXXcWbb75JXFwcCoWChISEIPH2//7v/7jgggv4+9//HrSc3W4nPz8/8P6+++5j0aJFAEyePJmlS5eyevXqoCjKG264gYsuuoh33nmHmTNnct1115GZmXnY/h1uOz/4wQ8CsQkXXnhhwB17OLZt20Z+fj6Kg4xA2bZtG+PHjw+aZjKZSE5OZu/evUHT29ra2LNnD+ecc06/9ezfv5/9+/eTkZFxxP4Ijg5x9n4a8Prrr7Nnzx568onVajVxcXHk5+cH3LRRUVFs6HLyt/IGXm638mGDnZ+prPw4RHNSL9LMZjM33XQT77zzDh988AE1NTXMnj0bpXLofLWuPTuFD7fU8shH2zlnZDTRxpDB7pJAIBjGhGnCmGaexjTzNMDvuqvtqvWLuU1+UbdoTxH/2/E/AEJDQgNCbm5ULtmR2URqIwdzFwTHgE6lY3TkaEZHBmda+SQf9V31QcXS9nfsZ33tet7f936gnVKmJNGY6Bd2Q1NJM6UxITSNK6LTCA0xd69LotHlCRRNK7c7uzN3naxo7qT5gCJqYUpFoGhaqkYdVFAtPkR1VFn6gpNLP3euz4ervBz7pkO7cwNibn4+6rQ04c49ALVWR1zGSOIygp3zbqeD1toaWrujF1qqK2murGDvhm+QJH+UiUwmJywujghzcpCwG2FORBWiGYzdEQgEA4BcLmNSeiST0iP5w7wcVmyrp6i4mqdX7+Ufn+9lQko4heMTmZMXj0kjXPlnKrNmzeJ3v/sdsbGxAVG0L9OmTePrr79m9+7djBzZ+z/kcHEGAA888ACPPvoojz/+eGBafn4++/fvZ+XKlaxatYqJEyfy9ddfHzYf+GTEJhwKSZIOahrpO/3LL78kLy+PXbt2ce+99xIXFxdot2TJEtatW0dISAjPPfccERERA9a34c7QUdgEhyQ5OTmoiFhYWNhBYw+mqdVMCzfyXUcXfy9v4LGyev5Z2chPEqO5MTGayJOU46PX67n22mv5/PPPWbduHXV1dSxatIjQ0NCTsr1jRS6X8VhhHpc89SUPfbiNf14ztNzBAoFgeCOTyTAbzJgNZmalzgLA4/Owr31fUH7u81ufx9ctJJgN5qC4hdERo9GpRK736YRcJifBkECCIYGp5qlB8ywuS8Ct29exu65mHW6fO9AuQhMRcOr2PKaY0rg8NgFFnyJNVo+XCocrWNy1u9hqsfFxU3u/ImpJGnW/KIYUrX+aXuSEDgoyuZyQ9HRC0tMJK1wIgNdiwb51a7eYu4XOFStpf/sdAOShod3u3LHd7tyxKE7iaKzTGVWIhti0EcSmjQia7nG5aKuvDRRL6xF3yzZ9h8/r9TeSyQiNjiEyMbm7YFpPsbQk1FpxTBYITie0agWXjTNz2TgzdR12lm6qoWhjNfe9W8JDH2zjouw4CgvMTM+MRiFiFY6JgXLInizUajXjx4/nr3/9K9u2bePDDz8Mmn/OOedw3XXXMXv2bL788sujjos8//zz+d3vfsc333wTNN1gMLBw4UIWLlyIXC7n448/PqXF3bKzs9myZQs+n6+frpSdnU1RUVHQtM7OTqqqqhgxYgQtLS2BzNvdu3czbdo0FixYEHAG92TeCgYeId6eBkybNu2Y2k8M1fPa2HRKLDaeqmjgqYoGnqtq4kcJkdycHENcyMDfNZTL5VxwwQWYzWaWLl3Kc889x+WXX056evqAb+t4yIgxcMcFmfxlxS7mja3n4uy4Iy8kEAgEg4RSriQrIousiCwuH3k54B9+v6N1R0DMLW0uZUX5CsAvBGaEZQTcuTlROYwIG4FSLv7Nn44Y1UZyonLIicoJmu7xeai11gbFL5R1lLG6ajVFe3pPtFVyFSmmlKAYhrTQNM4JTeWS6LAD1ilR43QdtIja9wcpohajVpLSJ44hpY/IG60WRdROJQqjEcPUqRi6i4Qc1J37zLo+7tyMXnfuuHzUqanCnXsYlGo10cmpRCenBk33ejy019fRUl3R7dT1u3Urtm7C6+l1uRujooOiFyITk4gwJ6HRCxFdIBjqxIdquWVGBjefO4It1R28W1zNB1tq+XBLLTHGEBaMM1M4PpGRsSKy5kzhV7/6Feeeey6RkQcf3VZYWEhTUxOzZs1i7dq1hIWFHdV677//fn7+858HdJGvvvqKMWPGEB4ejsvlYvv27cyYMWOA9uLoGDFiBBMmTOD3v/89Dz/8MDKZjD179rB9+3bmzZvHvffeyyuvvMKPfvQjvF4vv/rVr7j++uvR6YJvSo4cOZL77ruPxx9/nDfeeOOU7sNwRFzVncHkGnW8mJPG7i4H/6ho4MWaJv5b08xV8RHclhxDsnbg4wNGjx5NdHQ0S5Ys4dVXX2XmzJlMnTp1SFzM/eycdJZtreN375VydnokoVox9EUgEJw+6FQ6xseOZ3xsbw5Vs72Zbc3bAmLupxWfBkQ8rVLL6IjRfjE32u/STdAnDInjseD4UMqVJJuSSTYlc05icL5Yu6O9V9Tt9Iu6e9r28Hnl53glb6BdjDbGH7/QLej2iLtTw+OYLgu+CJUkiTaPNyhjtydz9+t2K0UNBy+i1hPJ0OPaFUXUTg1H585dQfvbbwPd7tyx/uxcXX4+mrw84c49ChRKZXd0QlLQdJ/XS3tDPS01lbRWVwUcu9XbSvC4XYF2hvAIIgIO3d4YBq3RdKp3RSAQHAGZTEZ+Uhj5SWHcP2c0q3c28s7GGv6zrozn1u4n1xxKYYGZeflmIvQiF/t0Jjs7m+zs7MO2+fnPf059fT3z5s1j5cqV/bJoZ82a1a+g2SWXXEJ0dHTg/b59+7j55puRJAmfz8ecOXMoLCw87HYPt52+mbdRUVGsWuUvjPzoo48GZfRWV1cHrfPFF1/kV7/6FRkZGeh0OiIjI/nLX/6CTCZj6dKl3HLLLTzyyCP4fD4uueQS/vSnPx3yM3niiScoKys77D4IThxZT47q6cSECROk77//frC7cdpRYXfyTGUjS+pa8SJRGBvOL1JiydANfFaX0+nk/fffZ/v27YwePZr58+ej0Qx+JlhpTQfz//kVV4xP5LHCvMHujkAgEAwokiRRZakKilvY0bIDl88vHERoIgKOztyoXHIicwjThA1upwUnFbfXTZW1yh+/0BEs7lpclkA7jUJDamhqkFM31ZRKiinlkJEcDq+PaqcrKIqhR+CttDuxH6SIWoomhNQDiqilaNSEiSJqpwTJ58NVVhZw5to3b8a5d1+vOzcz84Ds3FRxw+cE8fm8dDY1BYqktdb0CrtupyPQThca5s/RPUDY1YWGib+BQDDEaLY6+WBzLUXF1Wyr7USlkHFeVgyF4xM5LysGtVLcrNyxY8cpjQIQCE43DvYbkclkGyVJOmiIsRBvhyF1Thf/rmzi1dpmHD6JudFh3JkaS7ZBO6DbkSSJr7/+mk8//ZTIyEgWLVoUdNdpsPjz8h0898V+XvvpJKZmRA12dwQCgeCk4va62dO+h5KmkoCou79jP1K3ZzLZmByUnzsqYhQa5eDfbBOcXCRJotXRGhBzA8JuRxm1XbWBfGWAeH18vwiGVFMqMbqYQ4pKUncRtfLunN0Khz+KoSd392iLqKVoQ0gQRdROKl6LBfuWrb2C7pYt+Cx+YV8RGoomfyy6bjFXk5uHwiCqrw8Eks+HpbU5ELvQUl0VcO06bV2BdhqDMUjM7RF3DeGRQtQVCIYAO+s7KdpYzdJNtTRbnYTrVMzPN1NYkEiO2TRsf6dCvBUIDo8QbwVHTZPLzQtVTbxU04zV6+PCSBN3psQyPnRgT8rLysp45513cLvdzJ8//4jDEQ6kp4p2rcNFjdNNk8vNSL2G8SY9WsWx39V0uL3M+vtafBJ8cud0dCepkJtAIBAMVawuK9tbtgc5dBtsDQAoZUoywzMDYm5uVC5poWlBBbAEZzZOr5PKzsp+BdPKOsqweWyBdjqlrl/8QlpoGsmmZEIUh49m6uouolbena9bbndS2f2+yuESRdQGEcnnw7V/P/YtW/q7c+XyA9y5Y/3ZucNUnDgZSJJEV1trQMwNCLvVlTisvW55tVYXiFzozdVNxhgZJbKMBYJBwOP18eWeZt4prubT7Q24PD5GxhooLEjksnFmYk3D68a4EG8FgsMjxFvBMdPu9vBSTTMvVDXR5vEyPdzAnSmxTAkzDNjJeEdHB2+//TbV1dVMmTKFmTNnolAokCSJFreXWqeLWoebGqeLWqebWof/ucbpot7pDrqI60Etk1Fg0jE5zMDUcMMxibnf7G/hque/4afT0nhg7pgB2UeBQCA4nWm0NVLaXEppcylbm7eyrXkbVrcVAL1KT3ZkdpBDN1YXKwSbYYYkSTTaGvsVTCvvLKeuqy7QToYMs8HsF3V78nVNfmE3QhNxxO+NxydR63R1i7m9Am+F3Um5w0mn59BF1FIOEHhFEbWBwdvZiX1rycHduWFhaMeORZs/VrhzTyKSJGHv7Ahy6faIuraO9kA7VYiGCHNSr7Db7do1xcQgFzfhBIJTQofNzbKSWoo2VlNc2Y5cBtMyoyksMHNxdhwa1Zn/W9yxYwejRo0S/4MFgoMgSRI7d+4U4q3g+OjyeHm5toVnqxppdHmYaNJzR2osMyOMx3XQlSSJTo+3W4R1U21z8OWOnexpaccTFo43NIIGtweHL/g7qJbJiA9RkaBRYQ5RkxCiIkHjfzZr1ESoFJRa7Kxvt7K+3UqJxY6PYDF3SpiB8aF6dIcRc+9fWsIbGyopunkK45LDj3n/BAKB4EzGJ/ko7yz3O3Ob/A7dnW078fj8w92jtdFBYm52VDYmtSi4M1yxuW1UdFb0c+qWd5bj9DoD7YxqY0DM7Vs4LcmYhEp+dIVE29wefxRDj6jrcAbe1zrdQUXUtHJ5t6Cr7iPw+nN3kzRqUUTtOAm4czdvxtYt6Lr27vPPFO7cU47d0klLTVVvobTuXF1ra0ugjVKlJtycSKQ5iaikFCK6Rd2w2Djkwr0uEJw09jdZebe4hqWbaqhpt2MMUTInL57C8YlMSAk/Y4+NZWVlGI1GIiNFxItA0BdJkmhpacFisZCWlhY0T4i3gmPC4fXxRn0rz1Q0UON0k2vQckdKLJdEhyLvc+Dt8nqpdbgDDln/62AHbZc32B2jkEEEoOhoJczrZmJaKlnREX6BNkSNWaMiUqUM2s6R6PR42dDRxfo2K1+3W9lqteGVQNVPzNUFDa20ONxc9Le1GDVKlt0+XQTLCwQCwRFweV3sat0VFLdQ3lkemJ9qSg2IuXnReYwMH4laIaovD2d8ko/6rvqDRjA02ZsC7ZQyJYnGxH5O3bTQNEJDQo96e06fjyqHKxDF0FfcPbCImgxICFEFIhhStSEk94lkCBdF1I4Jb2dn/+xcq9+9H3DnjusWdHNzkeuFO/dk47R1Bbl0W7uF3c6mxkAbhVJJeEJin+gF/3NYXDwK5dHdUBEIBEfG55P4Zn8L7xRX80lpPTaXl5RIHQvHJbKwwExSxMGLg56uuN1uqqurcTgcR24sEAwzNBoNiYmJqFTB/2eFeCs4Llw+H0UNbTxd0ch+u5NMXQgp2pBApEG7x9tvmWi10u+QDVGToPELsgkhKhK7nbMxahVKuYy6ujqWLFmCxWJh9uzZjB8/fsDuyFl6xNx2v5i7xdIr5uYbdUwJ94u5E0J1fLunmRsWf8+dF2Ry5wUjB2T7AoFAMJzodHWyrXkbJc3+gmglTSW0OPxuL5VcxaiIUUEO3RRTCnKZuFkmAIvLEnDr9hV3KzorcPvcgXYRmoh+xdLSQtNIMCSglB+9wNq3iFpP3m5lt8h7sCJqoT1F1DR+p26PY1cUUTs6JJ8P1759AWeuffMWXPv6uHNHjgxELejy81GlpAh31inCZbfRWlMdcOj2uHU7Ghv82caAXKEgLC6hX65ueLwZpVrclBMIToQup4flpfUUbazm6/3+c6ZJaREUjk/kktx4DCHi5qFAMBwR4q3ghPBKEh82tvN8dRNOny8gyJq7Bdkex2xciIqQYxh+aLPZePfdd9m7dy/5+fnMmTOn352HgcDaLeZ+3R2zsLlbzFXKIN+oo6uui/JdrSy9ZgL58Ufv7hEIBAJBfyRJosHWEBBzS5tL2da8LVDoyqgykh2VHVQQLVoXPci9FgwlPD4Ptdbag2brtjpaA+1UchUpppR+wm5qaCpGtfGYt9tTRK2iW8zt69w9sIiaqruIWiCGQdObtyuKqB0ab0cH9q1bsW/qFnS3bu1154aHd2fn9rhzc4Q79xTjdjpora0JOHR78nXb6+uQJP9oOplMTlhcHBHm5D65uslEJJhRhQyvgkwCwUBQ3WZjaXEN726qoay5C61KwaycOAoLEpk8IhKFXNzUEgiGC0K8FQxZfD4fX3zxBV988QXx8fFceeWVhIef3PzZroOIuR4JZJLEOJOeqeEGJocZOCtUj0EpLr4EAoHgRPH6vJR1lAXFLexp24NH8jsd4/RxQWLumMgx6FVCtBH0p93R3ivqdnaLuh3lVFmq8Eq9I4KitdFBLt2e4mnx+vjjcn73FFHzi7lHLqIWrVaS2qeIWo/AK4qoBSN5vTj37Qs4c+2bN+Pav98/U7hzhwwet5u2upqAmNsj7rbV1eDzdv/uZDJCY2L7xC/43boR5kTU2jNrOLhAcDKQJIniynaKiqv5cEstFoeH+FANC8aZKRyfyIhow2B3USAQnGSEeHuaU1v7FgqFnpiY2cjO0KGmu3bt4t1330Uul1NYWEhGRsYp23aXx8s/NlXyzJZqzBlh1OLFI/nzeccadUwJ84u5k4SYKxAIBAOGw+NgR+uOgJhb2lxKlaUKABkyRoSNCIpbyAzPPOqCVoLhh9vrpspa1evS7SgPiLsWlyXQTqPQkGJKCYi5Pdm6KaYUdKrjE5gkSaLd4z3mImopWnUfgdcfyZCoUR/TKKYzEW97u9+dG8jO3YqvqwsQ7tyhhtfjob2+zp+pW1XZXTStktbaarye3hgSY1R0UPRCZGISEeYkNHohRgkEB8Ph9rJqRwNFG6tZu6cZr09ibFIYlxeYuXRsAmE6EV0iEJyJCPH2NEaSJDYWL6KjYyMGw2hGpN9FZOR5p9x14LV20fnhB6iSkzFMnXpSttHS0sJbb71FQ0MD559/PtOmTUN+ii5gJEnipy9/z/p9Lbz3i2k0KCTWdztzN3XacEsSChnkGfyZuT1irlGIuQKBQDBgtDvaKW0pDWTnljaX0uZsAyBEEcLoiNEBQTc3KpdEY6Jw4QkOiyRJtDpa+zl1yzrKqLHWIPWRVeP0caSZ0nqLpnUXTovRxZzQ92ygiqilatWEDcMiapLXi3Pvvl4xd/NmXGVl/plyOSFZWWjzx6LrFnRVycniuDDI+LxeOhrr/cXS+kQwtNZU43E5A+0M4RFE9BRJ6xPDoDWaBrH3AsHQotHi4P1NtRQVV7Oz3oJaIWfm6BgKCxI5NysalWJ43/ATCM4khHh7mvPlkl00VJfjdO3BRzsarYnwqLEYTUko1XKUKoX/Wa1Ape593ffZP12BUiVHdgy5OZLbTdvbb9P8z3/hbfGHqeunTCbm7rvRjBkz4Pvqcrn48MMPKSkpISsri8suuwytVjvg2zkYdR12LnxyLWOTQvnfTyYFTvxtXh8buwugrW+3Utwt5sqBTL2GsUYt+UYd+UYdYwxaNOIfqEAgEAwIkiRRY60Jcudub9mOw+uvXBwaEhok5uZE5RChiRjkXgtOF5xeJ5Wdlb25up29wm5PRjOATqnrFXT7iLspphRCFCEn1IcTLaLWI/IOtyJq3vZ27Fu2BIqhObZsxWfz/80UERH93bk6MWx/KCD5fHQ2N9JSXUVzVQWtfXJ13c7eivS60DB/5MIBwq4uNEwI84JhiyRJbKvtpKi4mg8219LS5SLKoGbeWDOF481kJ4jaLQLB6Y4Qb09zVv9vJ02VFjwuDw67FbfDjterRPKE4PdoHBsKlTxY0O0nAMtRqBVIddU4N32HrK0FTUIMoedNR9teiez1f0J7M6ZLLyX6jjtQJ5oHdH8lSWLDhg2sWLGCsLAwFi1aRGxs7IBu41D875sKHnivlP8rzOPKiUkHbWPz+iju7OKb9i42W2xs7rQFLq6UMhit15Jv8ou5Y41asvRaVCJoXiAQCAYEj8/DvvZ9gYJoJc0l7Gvfh6+7mI7ZYA7Kzx0dORqt8tTcBBScGUiSRKOtkfLOcvZ37A8IuuWd5dR11QXayZCRYEjoden2ydiN1EQOiMjUU0Stx7FbbndS2f1eFFHrxe/O3esvhLZlS7A7V6EgJGtkwJmrzc9HlZQkRMAhhCRJWFqaep261VW01FTSWl2F09YVaKcxGIPE3B5x1xA+ML83geB0we31sWZXE0Ubq/lsZwNur8SoOCOXj09kfr6ZaOOJ3VgUCASDgxBvzzC8Xic1ta9TVvYvXM5Owk0XkJhwMxp1Om6XF4/Lh8fl7X74DjrN4/LidvuC3ntcXtwuH+7OLlxtFjw+GT5lCD5Z8BA9uVxGmNqKcd+3hHXsJeXiCcTf8hOUA1xorKKigrfffhun08m8efPIzc0d0PUfDJ9P4qoXvmFHXSer7jqXWNORq+ZKkkSt081mi40tnTb/s8VOh8dfwEEjl5Ft8Ltzx3aLuhm6EOTiJFMgEAgGBJvbxvaW7UEO3dquWgAUMgUZYRlB+bkjwkaglA+/4eeCE8fmtlHRWdFbNK37UdFZEXCEAxjVxuAIhu5s3SRjEirFwGQ3eyWJGoerW8wVRdQOxNPWhmPrVuHOPY2RJImuttaAmBsQdqsrcVh7s6zVWl0gcqFvwTRjZBSyYZ4hLTjzaetysWxrLe8U17Clqh2FXMa5I6MpLEhk5ugYNKoz98adQHCmIcTbMxSPp4vq6pepqHwBj6eTmJhLSE/7JXp9+nGtz7FzJ41/fZKuL79EGR9P9C9+Qei8S5Fkcr+w6/TSXGWldk87tXvaaSzvwOcDJB8Gez3xqXrSLplIwuho9KEDc7fPYrHw9ttvU1lZyaRJk7joootQnGTnyP4mK7Of+pJzR0bz3LXjj+tiRpIkyu0utlhsbOoWdbda7di8/gspvUJOXnfcwlijjnEmHcka9Rl34SQQCASDRbO9OUjMLWkuCRSu0iq1jI4Y7Y9biPZHLsTr48UxWHDc+CQf9V31AYduX2G3yd4UaKeQKUgyJgUcun0Lp4Vpwga0T21uz0FzdodrEbUgd25Pdm55uX+mcOeeVkiShL2zI8il2yPq2jraA+1UIRoizEm9wm63a9cUE4NcLgQtwZnH3kYLRcU1LC2uob7TgUmj5NKxCRSOT2RckogdEQiGOkK8PcNxuzuprHyBqurFeL0O4uMWkJb2C7TaxKNa3lVdQ9M/nqLzw2XITSaifvYzwn/4A+QhhxdgPS4vDWWdVH6zj8r1u2n1hePrzn4Li9ESnxlGQmYYCRlhGCM1x/3Pwuv1snLlSr799luSk5O54oorMBqNx7Wuo+XZL/bx2PKd/OsHBVySGz8g6/RKEntsDrZ02gNxC9usdlzdv8FwpYKxRh35Jn/cQr5JR5xaJf7JCgQCwQAgSRKVlsogMXdny05cPhcAEZqIoLiFnKgcQkNEfpzgxLG6rEGCbs/ris4K3D53oF14SHiQmNvz2mwwD7hT3OnzUd3HsVtpd1Hu6HHuurD7el27Z3IRNU9bWyBmwb55C46tfdy5kZF93Llj0eYId+7pgN3SSUtNFa3VVTRXV9BSXUVrdSXWttZAG6VKTbg5sdelm5RMpDmZsNg45GdwvIhg+OD1Sazf10zRxmo+2VaPw+0jPUpP4fhEFowzkxAm4qQEgqGIEG+HCS5XM+UVz1FT8z8kSSIhYRFpqbcSEhJz0PaetjZann2WttffALmciB9dS+RPf4oi9PguVi1ff8vep16hsUVGpzmfdlM6Lv81MYbwEOIzusXczDDC43THLEqWlJTwwQcfEBISQnJyMiqV6pgearU66L1Seeghgh6vj8v+9RX1HQ5W3XUuYTr1cX0mR8Ll87Gzy8GWbjF3s8XGzi4H3u6fZYxaGXDn+kVdHVHqoXeR5PP5kMlkQmgWCASnFW6vm91tu9navJXS5lJKm0sp6yhD6vYkJhuTyYnKIS86j5yoHEZFjDrhAlUCQQ9en5daay1lnWVBTt3yznJaHX2EJrmSFGNKr7Dbp3CaUT3wN7MlSaLpgCJqPaJuucNJk+vwRdR6HLunYxE1yevFuWePX8ztzs/t687VZGX5xdxx3e7cxERx7nOa4OiydhdI687V7S6WZmnu44xXKglP6CPqdjt2w+LiUSgHJu5EIDjVWBxulpfU805xNRvKWpHJYMqISBaOS2R2bhy6IXhtKRAMV4R4O8xwOOooL/8ntXVvI5MpSEy8lpTkm1Cr/RW4fTYbra+8SsuLL+Kz2QhduIDo225DFRd3wtuWfD4sn3xC49/+jquqGu/ki3FdeA3NXVpq97Rj6/SruRqDioRuMTc+I5SoRANyxZGH5DU0NPDJJ59gsVhwu91Bj+PhcGKvwwvr9rVjjjQyPSv2oG3kcvkxPWQy2RHbOCXYYXdSYnWw2WJni8XGXpszMLwxUaMKilsYa9RhVPa6BHw+Hx6PJ/Bwu90HfT7cvGNt4/V60Wg0pKWlkZ6ezogRIwgPDxcXNAKB4LTD4rKwvWV7kEO30dYIgFKmZGTEyCCHblpoGnLZ6T+kXDC06HB29Aq63eJueUc51ZZqPFKveBqljQoSc3uiGOL18Sfte9nl9fqduj1F1Bz+KIYKu4sqhwt3n2uLA4uopWjUpPZx7+qVQ9/leEzu3Nxc5FrhaDudcNlttNZUB8TcHmG3o7EBur/LcoWCsLiEfrm64fFmlOqTY/AQCE4GlS023t1UzbvFNVS22tCrFczOjWdhgZmz0yKRiyLbAsGgIsTbYYrNVkFZ+T+or38fhUJPUsJ1hH0fReu/XsTT1ITh/POJ+eWdhGRmDvi2JZeLtjeX0Pzvf+Nta8M0Zw5Rd96BPSSS2j3t1O315+Z2NvuLe6g0CuJHhAbcubEpJhSqo7/okCQpICieyMPlcgW9b+qw0eVwYlLL8Hk9+Hy+I3dmAOkRez0qNc3GMBoNYTQYQmnQm+gI8Q/dk0s+kjtbyWipI6WxBpXTcYS1Hhq5XI5SqUSpVAbcyQc+H2pee/v/s/enQZdk+Xkf9jsn97vfd6u9qpfp2bpnpqcHAwpcYO7AECBAoAFatsKiIyzJsmzCoiBH+IM/KML+4DAlMCxKIYthSaYoyg4CPQS4YSEhksJGCNM9PdPdM5ieXqqr6q3l3e5+b67n+EPmzZt3eZfa663KJ+LUOXkyb96l7ntv3l8++fy7fPTRR/T7fQBarRYvvPACL7zwAs8//zzVavWBvCalSpUq9ah1Z3SHd/ffzWHue3vvMYyGAFStKi+vv5w6dDdSh+6Z6pnH/IhLPa2KVMSNwY0lp+5HvY/yTGcAx3C40rgyy9XNMnafazxHxXp4l/4nWRHXKcy9OslydrNIhmkx16k2bTMDug6XM6g7Xd56QouoLblz336b8JNP0pWlO/epURT4HNzc5qDg0t2/cZ3u7Vtonf4eEELSOnuWtQuX58Du2oWLWM7xRY9LlXpc0lrzB1c7vPHmDf7xO7cYBjEXWh4//doFXn/tIs9tlL/bSpV6HCrh7TOuwfB9rv7//i/ov/NtrDsC+flzXPg//9+o/eAffej3nQwG7P+//ysO/vbfRicJa//L/wXr/+6/i9luAzDsBDnIvflBl4ObIwAMU3Lm+UaemXvmhQa2++gv6fCjhB/7T38LP1L8xl/7YVxTzMFdpVTetNZzy/fbjttfX8NVYfGHpsvbTp09aSK15mUR80eNhB+yYMO6Owh7v8XgtNbs7+/z0Ucf8eGHH3L16lWCIADg3LlzOcydxl6UKlWq1GmU0oqrvau8s/dO7tD9Xud7xCp1RG55W6kzdzN16L68/vJDuby9VKmptNYc+AdLxdKu9q+yPdxG6dnJ5zOVMznULYLdM5UzDx0ydqN4lrNbiGS4urKImuDyNIJhoYjapSesiFrc6eTO3MnbbzN55x100Z2bOXMrr76K+8orpTv3FCuOIjq3tnOYO4W7nVvbqCQ7OSEEzc0t1i9ezgqmTYulXcL2ytzkUk+WJmHCb3znNr/05g1+54M9lIavXGnz+msX+bEvnqPplb/ZSpV6VCrh7TOs8Te+wc5f/4+ZfOtbmM9dYPIzNXaffwfb2eS55/49Lpz/nyPlw8/vi+7cYfdv/k16X//7yEqF9X/n32Ht3/xfId35s9L+MOLmBynIvfX9LrvXh2ilEVKweamWxSy02LrSoNqyH4mT4RtXD/jZ//L3+Cs/9Bz/0U+8/NDv7zj5o4jd6wN2Pxmw80mfwb6PaRtMDLijE64nMQcoIlNwrubwmVaFV9aqrFVtLNvAdGTWG1i2geWkzXSMB36pTJIk3Lx5k48++oiPPvqI69evo5TCMAyuXLmSw9yzZ88in6AfYaVKlSp1twqSgO8dfC+Hue/uvcvV/tV8/fPN5/nCxhfy9un2p7GM8gdRqYevIAm41r+2EuyOolG+XcWszLl1p2D3SuMKrvnwXYTFImq5c/eYImpXpkXUFuBuyzQeq9tVx/HMnfv224zffpvok2vpStOcuXMzh6514ULpzj3lSuKY7u1b7G9fY//6taxo2jUObt4giWdRJ/X1zcyleylz7KZg163WHuOjL1Uq1e2ezy+/vc0bb97g+ztDbFPy5z9/hte/cpE/8akNzBPEHJYqVereVcLbZ1DB97/Pzi/8DYb//J9jbm2x8Vf/D7R+6qcQpkm3+w0+/OgX6HZ/H9c5z/PP/1XOnv1p5AOuZHzs4zpzhs2f+zmaf+knEYc4PkM/5vZHPW590OPm97vc+bhPEqcH727VYuNSjY2LWbtUp3W2gvEQvlT+o3/wHn/7967yS//uD/GVK2sPfP+HKZjE7F5LIW3aD+jvTvL1jQ2X5laFJFJEQUIcJoRBQuDHRKFCJHf3922YMoe7lmNg2gaGLRGmBFOgDIGSEEuIBYRoAq3xtaZ2xuNH//hlrqwffplNEAR88sknOczd2UlzJD3P4/nnn+fFF1/khRdeoJ05s0uVKlXqNKsX9Hhv/708buGd3XfY9/cBsKTF59Y+xysbr+T5uZcbl8v83FKPTFprdie7eZ5usXDardGtfDuB4HztfJqp23h+Du6uu+uPBDrebRG1hikzoJvB3SyO4Ypnc96xMR9DrmN8cJBl565w525s5M5c79VXcV9+uXTnPiVSSUJv5/asUNrUsbt9nTgK8+2q7bU0S/fSZdYLMQxevfEYH32pZ1Vaa97Z7vHGmzf4lW/dpDuO2Kw7/NSX01iFz5wtryYqVephqIS3z5CiW7fY/Zv/Gb1f/uXU4fpv/9upw3XhAFBrzUHnd/jow/+E/uDbeN5zvPDCv8+ZrR9DPIIfjuM/+APu/PX/GP/b38Z56SW2/sOfp/rDP3zsD4A4Stj9ZMDejSF719N+/+aIJEqBrjQFa+eqGdCts3GxxvrFGm71/txNoyDmz/+N/xHXkvzjn/sTuNaDL7AR+imonULanU/69HZmoLa+5rJ1pc7mlTpblxtsXqkf+bziRNEbhby9N+Q3d3r8/sGQPT/CjjUXleRKJNj0NdJXhEFMFCiSMCGJFCpSEGtErDAUWAgsTdqyscny/9VHZsLNizY/9NXzfO2Vs3xqq3bk/+lgMMhB7kcffcRgkOb1tdvtubzcSqW8xKxUqVKnX1pr7ozv5HEL7+y+w3v77zGJ08/6mlXj0+1Pp20t7V9qvfRQM0pLlVqlcTTm2uDaDOxmhdOu9q7iJ7Ns/bpVTx2602JpGdy9VL/0SJ3l0yJqec7uEUXUTAGX3FnRtOcWAO+jKqJWunOfbSmV0N/dzYHuQSFXNyrUr6g0W2mObh69kPaVZqt8P5R6JApjxf/whzu88dYN/vkf7hArzSsXGrz+2kV+4kvnWa89/Kt4S5V6VlTC22dASa/H3t/6W3T+zn8HWtP+N/4N1v+3/06eLXuYtNbs7f0zPvzoFxiN3qdW+ywvPP/X2Nj4Mw/9gEBrzeDXf52dX/gbRNeuUfnBH2Tr//Qf4n3hC3e1H5Uouncm7G0P2Ls+ZP/GkN0bQyb92dns2pqTwtzcqVunse4i7sJ58S++t8P/+r/5A/7qn/4U/8Gf+zRJtwtxjFYKlEInClSSjotzWqGTBJQGlaBV6pI92I3Y3UnY30/Y31P0+rO/xYqnWW9r1puK9aaiXY8xREx3FNAbBfRGPr1RSH8c0A81+06NXbPKLbPKTVGhF8EkSpaeg6qaqDMeyRkX3Uir41r9iEYnYmuUsGEY1ByTmmtRd03qjknNMam76VzNMWm4JjXXpGqZuELgSoGMNd/8vZt8919sQ6D42Ez4XTfGPefxtVfO8qMvn+OVC40j31Ppe3FvLi83DNP/w/Pnz+cw99KlS2VebqlSpZ4aJSrho95HvLv3Lu/tv8f3O9/n/c77eUE0gEv1SznU/Uz7M3y6/Wku1C+ULt1Sj1xKK+6M7uQwtwh3dyY7+XaGMLhYv5jD3CLcbbmtR/qYVxVRm7p3r01CugtF1DYsM83ZXYC6j6KIWnxwMHPmTt25k/TkzpI795VXluLHSp1+aaUYHOwVnLrX2d++xsGN6wTjWcyJW6vPwdwp3K21H40bvtSzqf1hwD/41k3eeOsG7273MaXgT312i9dfu8if/uwWtlkel5QqdT8q4e1TLOX7dP7u32Xvv/xbqMGA5k/8BJs/91exLly4q/1orbhz5x/x0cf/TyaTqzQaX+LFF36edvuPPnyIG4Z0/t4vsvef/+cknQ6Nv/A1Nv/9fx/78uX72u+oF7B/Y5i6dDOnbvfOmOlb3nKNFOReSCMX1i/WWD9fxbRTx4XWmqTbJbx6lfDqJ4SfXOUPfutt9I3rvBB0EP7kiHufKZEWw9pF+vUrDOqXGNSvMKqcgexHtxN0qA+uUR9co5H1duFH+70oqNSIGm3i1hqsrSHWNjA3N7A3N3HPbFE7t8XBWpvfVJJ/vD/g28P0ubxar/Djm03+4laLK97dn0UN/Zh3/+U2b/7GJ4SjmE5D8mt6wg1DcbHt8aMvn+VrXzjLly+1j83XTZKE7e3t3JV748YNlFKYpjmXl3vmzJkyL7dUqVJPlbTW3Brd4v3O+3n73sH3uDa4lhee8kyPl9ovzZy67U/zUvslGnZ5iW2px6NhOOST/id81PtoLl/3k/4nRCrKt2s77TmYOx1fqF3AfAQRXovqRvEczL06CdLcXT/gph+hCts+6iJqOo4J3n+f8RTmvv0tomsFd+5nPztz5776KtaF8yW4e0qltWbUOchhbg52b1zDHw7y7WyvkkcurE+LpV26TH19s3xvlHqg+t7tAW+8dYO//81tdgcBrYrFT3zpPK+/dpEvXmyW77dSpe5BJbx9CqWThN4v/wq7f/NvEt++TfWH/wRbP//zuJ/5zH3tV6mY27e/zkcf/6cEwS1arT/Ciy/+PK3mVx7QIz9cyXDI/n/1X3Hw//nb6Dim/a//62z8e/+7Y93Dd6M4TNi/OUqh7vUBe9tpHwXpoblAU5MjapNbVPc+pLr3AfXhDexoAIaBcf4CbyY1Bhvn+Km/8FVM1wEhEYYEIYmRdIcmBwOTg55kv2fQ64POIgYMSyHdmNAM6OOzE425EwT0/BglJEoIlJBoBFXPYq3ustHw0lZ32WxV2Gp6bNQSavYOSXyDJBjR1J/DGEjivT2SvT3i3T3i3V3ivb207e6ifX/5BTFNzPV1krV1dusNPvBqfN+rcdBsUd/a4gvPXeSPvfgcz186j6wenmW7qNCPefd/3Obtf3qNySDCOu/xTgt+7U6HKNFs1R1+5OWzfO2Vs/zg82tz4fdaKfRkgppMUL6PGo/RkwlBf8DtT65y59o19re3GXe6mEmMKyTr1Qotr0LdtrA9D6NWQ1aryGoNOR3XqhjVarqcz9WQtn1f76lSpUqVelSaxBM+6n40D3U736MX9PJtzlfP5yB3Gr1wuX75sUCxUqUgdZffHN2cK5Q2HR/4B/l2pjS5Ur8yA7sFuFu3H0++YqgUN/xoIWt36uB9PEXU4v39NDv3m2+nfdGdu7mRO3Pz7NzSnftUS2vNuNctQN20UNr+9nXGvW6+neV6rF+4yPrFy6xNoe7FyzQ3txClCaLUfShOFL/1wR5vvHmD3/jOHcJY8dJWjZ9+7SI/9eULnG2Wn0GlSp1UJbx9iqS1Zvgv/gW7v/ALBN//APcLX2Dr53+e6r/2Rx7o/SgVsL39/+XqJ/8FYbjH+vqf5MUX/gPq9Zcf6P2sUnRnh73/7D+j+8YbaW7vv/VvsfZX/s37KtygfJ/w2rXURfvJJ4X+E+K9fXx3jUHtIsPaRUYbLzKsXmAiZlVfvarBxuUGG5fqXNcx/49/9RH/9o++xI9d2eDD73W4dbVH/+aY+CCA7E8qMOCOqbhBwm1TcdtQjLJjo3bF4mzT41zTzdvZpsf5psvZpsu5podnG4ThAaPRB4zGHzAafcB49AGj8YcEwe2l51ivf4Gtra+xtfmjVCpX5tZprVGjMcleEehmfTaXTJf39yFZjlyIXRdzYxNvaxNzYyNtmxsY2Vh6Hmo8QfsZeB1PCEc+H9zy+MPdDQJlsW7ssTl6m3DnQ0b9IVYcUlURTRFTUTFG6KOD4K7/f2PTJDYMEsNAAlYUYUTRilTeFTLNFPYWgW61kgHgwlytiqxWZ2C4sN7I1okyzqFUqVKPWFprdsY7c0D3/c77XO1dJdZpESfHcHix9eJc9MJL7Zdou2VxyFKPV72gl8PcYrbu9f71/P0LsOFtzMHcy/XLbFW22Kps0XbbjyVCRGvNXhRzdTIroHZ1EnAtg7w7hxRRu+wVcnaz5Qv3UUTtWHfu5z6Xwdw0csE8X7pznxWN+70sS3ce7A47hZMmtsPa+Yu5W3cti2JonTmLPKSgdKlSh6k3ifjH377FG2/d4M1POkgBf+xTG/zMVy7y5z9/Fs8u31OlSh2lEt4+JRp/85vs/Cf/CZNvvIl95Qqbf+2vUf+RP/9QD8CSZMz1G3+HTz75L4njHo5zFstaw7baWFYby25jWWtYVns2Z62l82Ybw7j3APPggw/Y+YW/wfB/+B8wt7bY/Lm/SvOnfgpxyIGEjiLCGzcW4Gzax7duQ+G9bmxsYD93BfvKFeznnpv1ly/nDgV/FBViF9LiaAe3Rqh4+W9mLDS3DcUdQzGsSOS6Q3vd5WzL43zL42wjg7TZuPjFpbUmDHdSSFsAtaPRB0TR7ODKMCpUKi9SrX6KauVTaV/9FKDZ3f0NdnZ+jf7g2wDUap/nzNbX2Nr6GpXK83f1umulSLpd4t097ty8xTc/vs6H17cZ7uyw1u9xcdTnwrBPvdeFXu/Y/SEEqtrg5vk/ztWtHyY0a6xH23wq/jYi2uOWr7k21gyFiXJczp9t86lL67x4aQunXkV6LtLzEJ6HzJpwPWQlGzsOCMHu7i4fffQR3W6X8XjMaDgk6PUIez2ifh8xmWBGMVYcYUVROo4irDjG1RpXK5xEYcUxVhxjhCFGECB8H3FCoCwcZ97pW1l0+lbnXcEZBJ7C33zbSuXQ93mpUqVKnURhEvJx72O+1/ke7x/MoO6+v59vs+Vt8dLafPTC883nsWR5IqrU41WkIrYH20tO3Y/7H885zSF17G56mznM3apsLS2fqZx55IX/ikXUPvGDHPJem4RcO6SI2mIUwxXP4bl7KKI25859+20m776bu3PNzc25Qmjuyy8jnbLg0LMkfzScQd3Mpbt/4xqDvd18G8M0aZ+/OIteyOBu6+w5DLP8jih1vD7eG/H1t27w9be22e5OqDkmP/aFc7z+lYt89bl2eRKpVKkVKuHtKVfw0cfs/o2/weCf/lOMjQ02//f/Hq2f+ZlH6vKL4wE3tv97xqMPiaIOYdQhig6Iog5x3D/0doZRzYBuKwO8a9lyG8teAX2tFnLhR+P4G9/gzl//6/jf+jb2p15k8+d+DlmtLkHa6Mb2nGNUNhopkJ2DtOmyUastPtQTKUkU3dtjPv6gw7946xbehsvm5ToXLtQ436pwruniWofAZa3w/ZuMRt9nNP4wB7Tj8QfE8SyryjQbS4C2Wn0JxzmLOMZZMpncYHf319nZ+VV6/W8CUKt+hs2tr7G19aPUqi/d0/MGuB1E/OPdLv9ot8u/6o7QwOcsyV+yNH9WhzwnNLJSSaGq6yIqlRyuTr+cozDhO791k7d+/RPG/ZDzL7X46o8/z8YLdX7vwwN+9d1b/NPv3KEzjnAtyZ/89BZf+8JZ/tRnt2i49/d+j6KI8Xi8so1Go5XzKrscUiiFGcc5/HWUoiYlVSHwhMDTGltpnCTGimLMKErhbxim2cjjCXo8Rg2HJ3YWC89DZKBXZE1Wq4haDVGppH1xXEm3oVaDaiXdvlYDz4PMg6zJjeHobDT9Cphfl/XZyuK3xGzdwjKzbZfXzbZZ/MqZu9/C/S0/luX74pjHvnz/xce2/NyW72dh25Xrlh87S+tm+1n1vJafw/z/zfJz0MtzK+5rcd3q1+vu3wdzz3HV/R36/z/b39Lrfsi+Dt+nXnrOx93X6vfUiud2gvu6l7+Xkz6vxXWrntth/ydH3d9UfhwwjEYMwyGDaMgoGjKKxlmWrkAIgWd62IaNLW0cw8E2Zv10bIjyBFOpx6M47hMEt7Lj0Gnbz/swPECp8dLtpPSwrPXseDNttr2+MNdGiIcfMaIBXykmiWKcKCYq6xPFWCkWfQK2EHiGpCIlniGoGAaeTHvnJI5drUmGQ1S/R9Lrk/T66GntBiGQ9TpGo4HRbCIbjTJq4RmVUgnRxCf0J2mbjIl8nygImH6bCCGwHBfL87DdrHkeluOW8QulVkoDnXHIra7PzsAnURrPMjjXSq9C9Q757VyqFMD/9aUL91SL57SqhLenWFprPv6JnyTa3mbt3/rfsP5X/spdZY8+CikVE8fdFOiGHaIC2M0hb9ghzA+wuyTJ6ND9GUYFw6hhmjUMo5ouCxfzG0Pkf/8R4tbstsJ1MK9cwL58KQO1L+A+/xL2889htFqP5YyeUjG+fz2FtKMM0o6/z2j0EUrNipxZ1noBzs5grW0/mIICvn8rA7m/Rrf3DUBTqXyKra0fZWvra9Sqn7nn+9kJIv7JXo9/tNPld7tDFGkRj8P2tzhrxpovfOjz1e9MqE0UNzZN/tUXKlw/Y4EQJEoTK02cqBRgCDClwJQS0xAI4KiHfhQ8mn3knRCkLAC7fO4eXzsjian4PhV/QnUyphL4VCYTKsGEymRC1Z/g+Wlf8SezbfPlSXbbCaZajrdYlBKCseMycT1GrsfY9Ri7LmO3wsjzmDhuYd5j7HmMHZeRVyls6zFyK4SWdfQLX6rUY5Io9NO36GxOzMZL6wr/FtbNr0/XibmtWfk5VNxm1X2JI+4r30e+Tqx8HEv7OuS5zT2elY9ldjutIVIhQRwQJD6hColVnLdl3A4CiSVNzMUm5pelME4WYVOq1AOUUhNU1CGJD1DxAUl0gIo7JNF+2scHqKgDxAu3FEijibTaGOYa0lpLe3MNw2zny8KoP9wr37Qm1JpAaUKlCFW6HCpFtPDnKEjhri2nTc4ty0P+AnUcpzFXkzF6nNYZYJrha5rpCfnpFU+ee6yBoNTTK60VcRSRhCFxFBFHYT4uyrQsDMvGtKe9jWlZ5XunVC6lNf1JRHcSMQzSz9+qbdKqWDQ8C6P8nVFqQf+vl6/wYuXZOaFYwttTLv8738E8cwZzff2R3J9SMWG4SxDcIQhu4we3CILbBMEdkmSMVhFKRygVoXWcL2sdoVSc9VGhT+ceiBJw3hNoF+ItjWqy/MuX1F1hGB5SOhiGhyE9pOHO+qU5D6O4Pr99uq00PIzpWKbbgmY8vprB2Q8zWPsB4/FVtA7zx+I4Z6lWX6I6jTyovkS1+iKW9eiyBoPgDju7v8HOzq/S7f4BoKhUnmdrMwO5tc/f84+QvTDm1/Z6fDBeURCNZdfXnCKF906Pyv90gDGMCS94jH5onehyBS1EmuU4CLi6P+Lq/pihHyMEnG26PLde4cp6lUoxgoJ5YENhmRWw5CiQMgMby8Am3+UiLNGaJI4Jw4g4ioiiiCgKsz6bCwtzYUiSu8UzR0PhBbMtE8uysW0L27KxbRvHtrAsG8eycARUkwQvivCiECcMMSZjzNEIYzLBGI8wxmOM8RgzH48wxtN1I2S2XqhiPe3V0tIgqVZQlQqqUkVVqyReBVWtpnPVKqpSRVcqheVs29p0voauVMC2F8DYwuuOOARGHf7/sgyxDodfi/c1f7uj3wdL74XC/eXbrISE03UneU+tuL9jwN0SBCw89tWPY/m+FtfN9nX4/a16rQ5bV3ytVgPSu7i/8gD/kUhrzSAasDfeY3eyy854h71JOt4d77I72WVvssfOeIdJPFm6vWM4bHqbbFY22fA28vGmtzk3bjplZepSj1ZKK7pBl53xzso2fb8Xi6pNZUubzcrmXEzDmcqZfG469sx7r9dwmO62iNo5x0qjGNw0iuE5b5a72y4UUdNRhP+997Pc3LRFN26kO7Is3M9/Du9LX8oLopnnzpV/s8+44jCkc/tmGr1QKJTWubWNmh7fCkFzc2uhUNol1i9cwvYebZRJqSdL290Jv/zNbd548wYf7Y1wLcmPvnyW179ykT/64gbGPeaAlyp1mlXC21K5lAoIgh384DaBfyuDs7dzUJu2HWAe5Ehp49hnMcwaUloIYSKFhZBW1psIYWXrrEO2sZDCREi7sM5ECjtfByb+wGK4LxnsCfp7MNhV9HZjxoMxhjXCcIZIM0AYIdIIMZ0RhtfFcHqYzgDDGWG5CtuT2K6F5aawSwhBonyUmpAkE1Tik6gJSeLPwdZ7k8BzL1GtfopKtQBpKy9gmo+nQvJhCsI9dnd/g92dX6PT/VdoneC5l3NHbr3+hUd+MB5HCd/9nVu89eufMOwEnH2hyVd//DkufW5t9qNCa9672edX373Fr757m492RwgBr11u87VXzvIjL5/l0trpOwg8Ks7hsGgHdQholVJSqVSoVqtUKpUTNcuy0kvLfR81HKaXVY7SiAc1HhXmRqhhuqxGI9Qo7ZPi3HCIGo+Xr/deIWFZC0Xiskzg6oq5I4rElYXiSpV6cjSKRjnQXeyLwHcYDZdua0mLTW+TjUoKeDe8jRyKTQHvhrfx2IpTlXp2FSZhfoKi2O6M7+Tv6TvjOytPXtTtOlteBngrKeAtjje9Tda9dUz5YKIa7raIWt2QefG0PGc3y9294Niwv5dm5779NuO338Z/9z20n56sN7e2Ztm5r76K+/Lny+zcUgAkcUz39q2sSNo19q9f42D7Ogc3b5DEs/dgfX0zy9K9xNqFyznYdav3Fm9X6nRKa803r3d5480b/MNv3aTvx5xtuPylL1/gZ75ygU9tPVm/pUuVepgq4e1pV/8WuA2wj45LiONRBmFXQFk/ddAWC2BNZRhVHOccrnMGxzmL457Fcc7iOudwsrk0A+zBAb3Qj+neGdO9M6aT9dMWhzMwZTkGrTMVWmcqtM+mfWPDI/JjRr2QUTdg1A0Ydn0GnQGjjs9koNFq8YedwnSH2FUfry6otV3qa23am+dorLeptgy8OlhejFJ+CnezPlEZ6C2MlfJROqHiXaFafZFK5QUM48G5K5JEEfkJoR8T+QlRMBuHfkIUxIR+QuhHaKWoNDwqDXuuuVULccwZyzA8YG/vn3Fn55/Q6fweWse47oXMkfujNBqvPtJLnZJI8d3fvcmbv5ZC3DPPN/jBH3+eS59fW3r/ff/OgF979za/+u5tvnMrzV1+5UKDL15ssVaxaVUs1qo27YpNu2rTrli0KjYN1zzVThGtNUEQnBj0jsdjJpPlH5RTWZZ1V7DX8zyMI4qpaaVQ40kOd9VwmALgKfwdzQPgOViczSejIWo4yourHCfhujnoldUMABfgbwp7a3NF4lJQXJ0HyGWhuFKlHokm8YS98R47k9TdOB1P3b1T4NsPlzP1TWGy7q3noHfL28qB71ZlK3f3rrlrGLL8ey71aKS1ZhgNc5A7de0utr3JHomejzySQrLhbsw5eYtu3insbdiN+z5+udsiahddm+fcmVP3imVw9vZNtt57B/nNt1J37vY2kJ6UdT7/udyZ6736Kta5c/f1eEs9XVJJQm/n9qxQ2tSxu32dOJoZaarttflCaRcus3bxEpVG8zE++lKPQn6U8Jvf3eGNt27wL9/fJVGaL11s8vpXLvIXv3iedtV+3A+xVKmHqhLennLp//pHiG/+PkFzHX9ti6DeIKh4BI7ENyICPSKID4iTwdJtLaudA9gUyJ7FmUJZN11+WM5QpTSDfX8B0o7o3h4z6s2+oIWA+rpL60yV9pkKrQzSts9UqDTtuz5Q1UozGUaMegGDgz6dnW26ezsMDvqMeiH+wCAa10mCxtJtpaHxGga1VpVa26XadKi2Cq1pU2052K65dJ8pYJ2B1cjP+mB+vAhh87EfE2bLyWKlisMkEoRQaLXsPBQS3JpBteFSaThUGjbeAuD1GjbVhoNTMYmTHrt7/4ydnV/j4OC30TrCcc6yufkjnNn6CzSbrz0ykJtEiu/+3i3e/LWrDA9SiPvVH3ueyy8vQ1yAT/ZH/Pp7t/n19+5wdW9EdxKRqNWvoSkFrYqVQt2KTbtqzQHepfmKTdOzkKf40h2lFJPJ5K6KtYXh4W50z/NODHsrlQqu697TD04dx6jxOAe+c6A3d/6ucAVPYXEBFJ+4UFylsgx1p6B3Af7mUHi6bcEVLCqVU32SoFSpJ0FBErA7nrl288iGqas3A7+doLN0Wykk6+567uDd8DZWxjU8SNdjqVLHKVEJnaCTAt7x7szBm413Jink7QW9pdu6hjsPeL2tedibrXOMe3O/JlpzK4hyx+4nk4CrfphHMnTjeei8bpk859lcFprznT3OfvIxm+++w8Yf/D5ru3cQgHnmTMGd+yXcl19G2iV8KTUvpRL6u7s50D3Yvp6D3SiYxbJ5jSYbFy+zVoC66xcvUWm2ymOup1A7A59/8PZNfunNG/zh7QGWIfgznz3D61+5yJ/8zCaWUV6FU+rpUwlvT7m+8dt/ll748fyk1tihxgkT3EDhBAqHKo61getdwKk9j9P6LEb7RWhdgeZFMB7OpcX+KErh7O3xHKjt7Y5RBQjpVM0Uzi62zQqG9eg+fLXWhOEevd4fcnDnAzo7N+nt7zPsTojGNeJJi3jSJvE3iScNkmj5dbNcA69mEYeKMEiIg+MLR2X3jmErTCtGWiHS8pHGGGGOwBggzQnS9NNm+UgzQFo+hhVhuzaO5+B4Hk61ilup47hNhDAZ9W8z6HQYdodMBiHxpEbsN4n9OrHfRIXrJH6TaFJBq2UnkpQiB7te3abSirDbb4L3O4TiD4AQ09xkY/3Pce7cX6Dd/kHEI6g0nsSKP/y9W7z5q58wOPDZeq7BV3/sOa68sn7kQZpSmoEf0xmHszaK8vHBKKI7DjkYhXTHs/koWf15KAU0PSsDvNNWXJ6N16qpw7flWZin+KAiiqIl4HsY6J22WX7vvKZxDidpUxew9YCjEHQYZkB3nILfRdA7XOUIXnALZ9sSLxa4Wfmk02IvRdA7B39ryGplJfxdjIoQjlP+KClV6ghFSbSUw7sU2TDe5cA/WCq+JhC03faca3cV5N3wNrAe0nFUqVKL8mM/P2ExdfMWx9N1QbJ8YrLltGaQdwXgPVM5w5q7dtfxI90ozjN2r2WO3auZg/emH80FrrnAhcjnwv4uZz75mLNXP+L87h3Odw94fmuD5he/gPflzJ179uz9vVilnlpprRns7xacutfZ377GwY3rBONZAWu3Vp+DuVO4W2sf/Xuh1OnRezd7vPHmNr/y9jb7o5D1qs1PvHqe11+7yMvn7/+qhFKlnhSV8PaU6+bNv0ccD/JIA9c5h22uI8f70PkEup9A91ph/An0tqF4WZaQ0LiQgtzWZWhnfetKOq6fgyMuL0wSRX93Mgdop5DWH86KkUlD0Nz05uDs1E3r1Z7sM+1KxUwmnzAc/iHD0fcYDtM2GuzkQFcFZ5DJi+joIipqIY0IaY7BGCKMAcguWnbRYg+MIYbpI60gB7LCDJDSwDRb2PYaltXOm10YW1Yby17L5wyjduIvJaViguAOvn+DiX8df7Kd9v42k/ENxsMesV8n8RvEfoMkaKGj8+hoiyRoE/t1wpFDMJJoBdL0qZ77NvWLb1I79y7SDEmCBlH3BxH+H8MxX6Na96g0HaotO3crV5o2xgOCl0ms+N6/us03fvUqg32frSt1vvpjz3PlCw/uoExrzShM6IymgLcAdkchnXHEwTjMoO8M/gbx4YW+mp6Vg921ors3W25VbNaqKfCdOnxPK/BNT4qEdwV7x+PxofuzLOtEkPekcQ4P8nnqMJyHv4ugdxH+zoHiont4NKvsfZQMA1mrZe7fu3QFz8Hiaul4KvVMK1IRB5ODPL+0WGytCH/3/X2UXv7bbDvtPKJhsQhb0d17r87HUqXuRlpr+mF/ZaG1opt31ft5Gj9SLLK2Kq6halVPdJwVKsV1fxrHcEwRNa3Z6B6kMHf3DheDMc81arxw/hyf/uxLnH3l8xhldm6pI6S1ZtQ5yGFuDnZvXMMfzq5Etb1Klql7uRDDcJn6+gZCns7j7WddUaL4H9/f5Y23bvDPvrNDmCg+e7bO669d5Ce/fJ6tuvu4H2KpUvelEt4+i0pi6G+vALvZeHALiu4TaUHzIpPqp+mYn6erL9MNztAZ1eh2Dfr7EapwGbrXsOdctNNxY8NFnlL4dJjieMho9H4Oc1Ow+4fEcR8QWFYrA64tLGttAcSuYdnzy6ZZf6Q5sotSKiQIbjOZZEB32megNwjvAKC1QIUVkmANqZ5DJJchXkfJPYT7hxiVdxFGSBLWGNz4Mv1rP8B457NA9twEeDWrEDkxHz0xnfNqx2fzTpUkKcR981ev0t/z2bxc56s/9hzPfXHjsZ1xnYTJMuwtOH0PRvPu34NRyCQ63Knd9KZZvbM4h7VqluFbWJ6ub1XsU1uNVSmF7/sngrzTFhwRf+C67pGA90HFOTwoaa3Rk8lK+LsyJzgrIrcqJ1iNRsffIVmhuEWgWwTAhxaKS9eXheJKPQuaXtpejGlYlcm7P9kn1stO/IbdWJnJW3T0bngbVKzTV2Sz1OlTrGL2J/tzsQy5g7cQ1zAIl+PXPNObB7yriq95m0e60otF1D7J3LpXRxOudnpcDSL2Fm5bHY+4MBpwRcJzzRovXjzPC2c28yJq5ik95in18KW1ZtLvzbl0p1B33Ovm21mOy9qFSzOwm7l2G1tbyDIr/dSoOw75h9++xRtv3uDt610MKfjhlzZ4/SsX+bOfO4Nrlf+XpU6fSnhbak5Joujf6tH5+Abdazt07ozo7id0ei5BPDvTbRDSNG/RNrZp2XdoNwJarZhWK8GpeeA2j29O40hH72mV1po4HmCa1UcSH/AolSQBQXCTyeTGzLFbAL1RtL9wC0l6IkADFWT0WdToq8SjC4SjKsHIIRhaTPqSYAVfklJQWQC61ZY9D3xbDrZr5KAtSRTv//4dvvGrV+nvTti4VOOrP/Y8z3/p8UHcu5EfzYBvZ5Q6eqeO384o5GAczS3vH+HwFQIa7gz4pqDXzou1TV29a1U7d/ye5gzfOI5PDHqnUPioOIdpfu9Ji7bZT6hzda5Q3EkiIXJQXIiEGI8eaKE4YykOYqFQ3HR9WSiu1CmV0oqO31mObFjI5N2d7BKpaOn2Nat2aBbv1NU7dT+WKvWwNY7G7E32Do1omLZV7+U1dy13oC9GNEwBb9ttr4xqmBZR++j2Lh9c/YSP9jpcC2JuOB631jeJzVkmtak1FwzBc40qVyouz3kOz3k2VzyHK65NzSy/S0qt1mTQz/J0b6RwN8vVHR7MfteYlk37wsX5YmkXL9M6cw5ZHqc80fpgZ8jX37rB3//mNrd6Pg3X5Me/dJ7XX7vAa5cfbOH1UqUepkp4+wxKa40/jLIiYfN5tL3dCbrgoq00bNpnCy7as1Vaa4K6vIPsX8vculfTfnwAfm/WVhRUmJdIAe5JQO+h8PfpcvKediXJhIl/A39yI+39G4zHnzAafUgY3CZRh18Kr5VB7DeyGIoWsb9G4m+S+BvEfot40iAcVUnCZUBmWJpKQ+A1TapNm1rbo9qsMtiPufrtfUbdgPULVV766hnq6y71NY/6mku1aZ/Y2fskq+jwLTp9j1o+DPhKAa3KDPYuwt12dRn61h3zVB74rIpzOK5o22Qy4bDvRtM0Twx6p+1RxDk8SOWF4oaFonCHuYILoFiNRtn8bE4fUfiuqGMLxRWg8MpCcdm2ZaG4Uk+itNb0gt7KLN7FImyrMkw908vdukvF1wp93aqX7/9SD1XT93IOeBciGqZtVb60Kc0lwLsY07BV2cod6ToMGX33u1x99zt8ePUaH+13uW453NrY4ubWWW5tnaPvenP3MS2i9pzncNlN+yvZ8hn7dB7HlHq4CsajOZfuQQZ2+7s7+TaGadI+dyGPXcih7tlzGGZ5FdKTpERpfu/Dfd546wa/9u5tJlHC8xtVfvrLF/ip1y5wsV1e8VLqyVYJb59iJbGivzfLou3cHuVZtMFodimfYUqaW16eP5vGHFRpna3gePdRZVklEAzmge5S6x6+LugfcwcC3CL8baX9mZfhwg/AxR+Aytq9P/5SD1yTyTa3br/BrVu/hO9vY5p11tf/FGvtP4ZtrxPHA+JkmPZZSwrjOBkQTHz8oSAY2MR+k2jSJJ60iSfNAvhtoZOTuCA1iNShKqVAGGk2s2EaGKbEtAykIRFCIGS2jRR5LyQIUVwWs30VtpGiuCyQAoQxHRf2Nd23WLUskEa6/7t9DMVtp/sLkoRBmDDwY3p+RD+I6E4iepOYrh/SncR0JhGdSeb2nYQEic591BR+45hSFODuAvRdgr/pes8yTuUPpWmcw3GQ917jHI7L8nUcB/mUnLSaFYpbiH9YhMLFSIjFqIgMCp+4UFyeDbzKEbzg/i3A30UoXBaKK/WopbVmEA3YG++xM0mdj6syeXcnu0ziZYe8YzjzgPeQ4mtNp1m+t0s9VEUqYn+yn4PdJcCbxTeMouVLsmpW7dCCa2u+Rf3D21Te+Zjo7W+z+9HH3Gy0uLl5hjvPf4o7n/o0N8+eY7tS56ZiroiaJwWX3KlTd+bWfc5zuOzZOE/J926pB6NwMk5dutvTYmkp1O3t3IGMn0jDoHX2/FKubvvcBcwn9EqtZ0nDIOafvJPGKvz+xwcA/NAL67z+lYt87ZWzVJ37YCClSj0klfD2lGvORXt7XHDTjujv+ce7aM9UqK+7T+Zl0ipJAe6R8HehjXZh/wOYFl9Ye2EGci/8AJz9ApjlF+bjltaKg87vcuvmL7Kz+xtoHVKvv8z5c3+ZM2f+IpbVPME+NEkymgO703EUDfCHI0bdgHE/YdxX+H1BMNFEE0EUGMSBhQptkthDRS4qdjPgW/xb0AgZI80YaSikqZAGGKZAGhLDlAhhAgbotGktQUu0Fmil0VqjlEYr5pcTjdLZ3LSdpo9cMW0iBboCFOlzUkCiNYnWKDELzlAwB3+lITAMiWEITENimhLLFJimxDYNbEtimxLHTseGlBmIpgDCF+C3WADVRYC9CMXlg4PhRy0nKiEIA3x/gu9PGE/GTPwJk0nq5B1PxkwmKQCeTCaMRqND4xyEECeCvMVly7KeahgzVyiuCH/zXOAVc0VX8HhEUpg7UaE408zg77IjeFVMxJIjOOuNahVR/ogr9YA1ikZLrt1Vjt5hNFy6rSWtPJN3VVzD1OV72GXupUo9KE3fx4sF1+aWx7tL2dICwZq7xpa3yUZSod1PaN4aUv/oDq0bPdoDTSN2ib/wR9j78g9w58VPc+vMOa5LM83d9UPGSaGIGnDOsVKo6xaiGDLXbts8nSejSz14RYHPwc3t3KE7zdft3r6Fzn6bCiFpnT3L2oXLc2B37cJFLKcsqPU4dP1gzNff2ubr37zBJ/tjKrbBj75ylp957SL/2gvrTyYnKfVMqoS3p1xf/+tvcuvDWTzBQ3PRniYFQ7j5Tdj+Btz4Bmy/mRVhAwwbzn2pAHS/Au3nUutlqceiKOpy+/avcPPWLzIcfhcpHTY3f4Tz536Wdvtfe6gF3JQKieM+UdQnjnsEfo/+/oDBwYThQciokzDuScY9C3/gEg4raDX/dyTtEVblAKuyj1XZx6ymvV3t4zVD3JqJZTWwzAam1cQ0m9m4gWWmy2a23jAamGYTKSqgRQp5C4BXzfUcDYfVIbdb3J+ebasKEHluWaWATCXF/Rdup1cvq0QTRAlBpAiihDBKCCNFGCuirMXTlmiSRKHVjAtLXRgDhhCYQmAIkKS9QCABMf260jojxacPhi8CYzF98mgQ2UWmWqHRaK1QWuW9Ugl69iKkl6RmtxUCpCkxDAPTNDDMtDctE9MysCwT0zKxLAvLNrFtK3WcH+EMT13gDwqGs+AuPwaOTx/DIsife+3u7TN9Wihu3v07K/y20v17v4XibHuhUFzl7h3B00Jx5jPyPV/qgWiaY7oU2ZC5e6eZvP1w+UooU5ise+vzUDcrwlbM5G07bYynsL5BqSdD02zpYkzDqqJrnaCzdFsrEbQHmrWBpj3QbOgqZ1oXOXfh09ReeBV1+RUG5jo3Q8FVP+DaJOTqJOBOOA+L64bMHbrPFRy7ZRG1UlPFYUjn9s0c5k7hbufWNmp6sl4ImptbrF+8nBVMmxZLu4TtlZfzPwpprfnGJx2+/tYN/tG3bjEIYi60PH7qyxf46dcu8MJm7XE/xFLPuEp4e8r13m9tEwXJk++ifdzqbcONP8iA7psp3J1eVljZSCHuxQzonn8NvNZjfbjPqvqDd7l185e4fedXiOM+rnuJ8+de59y513Hd84/74aGVZjwIGez79PfH9PZ69PeGDPYnDDsxo64iDub//qQZ49RGWNVuCncrOxjuLczKbrrsdRFy0eknMc3GPOS1mphmfQn4mmYTy2qm21tNDKOOlKcX4ISxojsOOciyedPCbSEHo4iDUZAXbDsotDBZ7ZS0pGCtYrNeyTJ6KzZtz6LlWbQ9m5Zn0XRNWq5Fw7VouAaWlI8Ohhdc1+oEMHw6N7ufwrLKIHgUk8QJcZyQJAlJrEgShZo2pVGJKji9RW6FFovjQr+UlfGEawqR56JKVizPw+IMJBejSg5bXoDYc/PT/QuNjANk5GOEE0Q4RkY+MpwgwwkiGCPCCSKYIIN0mWCM8LOxnzbhTyD0T/bEHRfhVRCVLOO3koJeUanMAG+1NgO+GSw26zVkvY6RFZMzalWkadw3DC/1dMiPffYmeznoXXL1ZsB3FSCTQrLurs+5dldFN6x765in+Lur1JOtMAlXunbvDG9xe+8qO6M77CY9AmP5eKKubDbsNc40L3KmdYE1bwvDahPLNmPRpKMb3Io9rgdpcbWw8PvZFHDRTR270ziG5zyby67NOcdm/ZRGSJV6MEriiO7tWznUnUYwdG5tkxTioOobm3PRC+sXL7F24RJutYSJD0t+lPAb37nDG2/e4Le+v4vS8NrlFq9/5SI//sXzNL0yz7jUo1cJb0s9m0pi2PnOzJ174xuw973Z+o1PZ+7cr6T9mZfBKD+kH5WSxGd39ze4eesX6XR+FxCsrf1xzp//y2xu/BmkdB73Q1wprTXBOGZw4DPY99P+wGdYGE8G85WYhQSvIag0E7xGhFufYNf72NUeZmUXw9tB6wOiOHUHR1EfrY8u9GQYtYLTd+b6TcFvvTCedwBbVuOJfW0Pk9aacZjMYO445GA4K8yWA+BxyH4GgruT6FBXbs0x84ze9Wqa1zvXKjZrtVl/Wou1ASRJcmSxtqVc3+GIOI6Z+qGFnj7v1P/suR6e5+F5FTzXw3U9XMfDdVxc18WxXRzHxbEdHMfBkCZo5mD1EtB+iM7wJRf7XQL5Zfi+CsyvWM4eA3dxiCVUgpEEGImPGftpn/gY8UKfrU/nAsxkgpEE+W2M2MfQJ8gHBmLDITFcYsMlMQvN8khMh8TyUJZHYnloyyOxXbSdzinbQzkVcDy05SCkPBkML7qpp3B8JXxf4boWi8tHOMMNseAIX3SIL8awHB+TUnSjH5mD/hTD8CiJlvJ3V0U2dPzOUsEqgaDtto/N5N3wNrDK47FSD0Faa4bRkJvXv8v1d3+fW1ff4dadD9MiaxVFpy44aBp0Kxol5t+/Ukg23A02K1s03Q0saw3MNQLZoq8b7Kk6N+MaHeXMXe3nSMFZ2+KcM212Pj7vWJx1LLZsq3TvPmNSSUL3zm32t69xcGMWv3CwfZ04mv0GqLXXWMsdurMYBq/eeIyP/unTnb7PL39zmzfeusH7d4bYpuTPff4Mr792gR9+aRPTKCOESj0alfC2VKmp/B5svzUPdMd76TrTg/Ovzhy6F34AmhfLuIVHoMnkOjdv/RK3br1BENzCstqcPfOTnD//l6nVPvO4H95dKw6THOQWAe90POqGc1nVAF7dor7mUl93qa251NomlWaMWw9w6hOkNSCOeyncjfvEcZ84ysZRL42GiNM+ScZHPj4p3dzFm4Lf1OU7Gzdzx+/cdlYTKb1TASUSpemOp4A3KkDeIHf47mfA92CYQt8gPsTda4i8KNu0rRfgbzufc9JibRX7VB/khWF4NOBdUbjtsGMJwzCW8nmPa+ZTFAsw555e5a6eg8ULcHtxOXeJHwOilUYFAXo8QU9G6HHWJmMYj9D+GCZjmIzAn2T9GHI38AThj1LHsD9G6NV/F3PPU4gZ0LXcdGxlENjySEwXZbrEZgaFDZfE9IhyeOwQGS6xdFGYaSrKfcLwx62TOsPnI0juwRm+GDdy6P2tjiBZ3v8MdM8tz93fikiThf0rEgZRn17YoxMe0Ak7dIIOB8E+B+EBB8E+e/4eB8EBCTFaKJRQaBRaaJpOk/XqGhuVzNFbiGmYAt7NyiaOcbpORpZ6MqXCkOA732H89ttMvvUtht96m4PebQ7q0GnbDD59jv7lNbqbLvtVzV7cZWe8szJuxDVcmu4GFScFvMJcI5JtRjTo0WBX1fFlC8TsBIUEzjgWZ22L824KdtPxDPSetS3cU3xsUepkUiqhv7ubO3QPCrm6UTC7QqfSbKU5ugtgt9JsnYrj9CdVWmve3e7zxls3+JW3t+mMIzZqDn/p1fO8/pWLfO5cCc1LPVyV8PaUa++//Q7xzhjpmciKiaxYae+ZyKqVzVtz64RTXqJzImkN3U9mubk3vgG3vgVJVjm+dgYufnUGdM9/GZz6433MT7G0Tjg4+B1u3vpFdnf/GVqHNOpf5Nz5n+Xsmb+IaT4dr71KFMNuwLAId3PIGzA48EmieWBiuUYOd+tr7vx43aVStxGZa2M+53fq5u1lxd56KeSNZrB3Nk63OUpCWGm0w1y27yr3b3N+O6uJYVQfar7x/UhrzSRK2B/OHLwHC+ODBadvbxIdur+Ga7Jec1KHb2Ue9q5VU0fv+nRdzaZin15gqZQiCIITQd5p8/3DIwIcx7mrgm2u6yLLKuEPRVprdBDk+b+risSp4ZBkVZG40YhkNJ8ffKKQatNMs3/nMoKnReFqyEoFUa0hqlXkND7Cq0JlOq6g3QrCq4Bh3T8MX+XKVoXbndCFfWxMyhPuDH/cUqSZ3zPAm0JehJ4Dy4YhMaSR5n8bBqZhYpkmpmEUIPWiU3oVFD8OvguEMZ/nfT8wfM4ZbhzmPF9wmq90nh/iDDcKj7t0eJ5I0Z07TL75NpO30+a/9x46Sr/3rfPn8V59Ffmllxm+fJnu2Rp7UWep+Nq0hWr5aqq63aTmbODaG0izjTLa+LJFnwYHqsFANNGynl6+lWnNMnL37tS1W3T0nncs6maZP/00SivF4GCvEL1wPXftBuNZ/r5bq8/B3CncrbXXSzZwlwpjxT//3g5vvHmDf/69HaJE8/lzDV7/ykV+8tXzbNTKk4elHrxKeHvK1f/n14huj1HjCDWO814HqyuVAyBBetYy7F2AvOm8haymvbBl+cEeh3DnnTQ3d+rQPfgwXSckbH42hbnnvgTSJPsllBVRUitacsx6BSo5en1++2R53m3B538CnvthME4vAFpUGB5w+86vcOvmLzIcfQ8pXba2fpTz536WVuuPPNXvU601k0F0qHN3eOATjOcvi5amoN6eB7pFyFttOxgncGxonRDHwwLw7eewN3f9RhkAjgeFcQqKtT7icwk5y/TNoxxWF3ab5fzWcwfwk5bzGyWKzjikM4rYHwV0io7eUQZ9F2IdomT1d65rSdarzpyzdxXkXcu2abinN8oB0jiHyWRyJOBdbFG0GpYLIfA871jIW2y2bZ/q1+80aloobq4gXBEAFwvCjUao4SCFwjksLhaQO/rqgqmEbc8B4MOgsFEsErc4l/XCePqAyEqwfCgszkDzquiShXzvQ53mc3EmLC8v3V9xXjGJfMbhmFE4ZhJOmEQ+k2iCHwUEcYAfBYRxSFoUUyC0RGqJQGJh4UgHWzrYwsESFpa0sbAwhYlB2gTiZDA80YXXj6WraZ505bEgdxEbchScfiAw/AE6wx8UDC/ujzgmfP97+O98G//b38b/1tskt28h0AjHwX3lFbxXv4T36qt4X/oS1tYWkL5f+mF/rrhacbwzSQHv/mR/KWrEEAYNZ4OKs46ZxTSEssWYNIe3SwNltNHSy29TNSTnp25dx+J8IaZhCnnLHN6nR1prRp2DHOYWs3X94cyQYXuVPHJhlqt7mfr6BqI8AX6sDkYh/+Dtbd54a5t3tnuYUvAnP7PJ669d5E9/bgunPGlS6gGphLdPqXSiUJN4Dujm40m8BHvVOEZNInR4xCWQhpjB3RWw12w5mJsVzA0P6TzkDymtIQ4gGqctHEM0gmiSzicRqAiSMB3nfTZWhXESphm4+fgubxuH6WOIg3TdCS4jPVLp0eHdN7lirn8LwgFUt+CV1+GLP5sWZHtKDsq01gwG73Dz1i9y+/Y/IEmGeN5lzp37mbTImXP2cT/Ex6JwspC7uwB5x/15l4cQUG051I4AvNZ9/k1rrUmSUeb67c25fOch8HTcu8ec38Yxrt8FIGw2MJ6AS2u11vT9eAHsBjNnbzbfGYfsZ8uTaDUML0Y5TKHuFPgWHb7TvlWxMU652+q4OIdVTanVn9WGYZwI8j6tcQ6nXVop1Hg85/SddwVnYPhIV3A61ke4wIsSnpdC3coqR/AU9s4XiTPmtsv6SqX8ofwQNQVlO+OduQzeueJr43TeT5b/7z3TW8rfzTN6K5tseVtsVDaoW/Ul+HVPMPxYOH5/MHy5cObM1b3oPE8f/+Ly7LEfGdVSANuHL9+FM/y0wXB0GjGjYoRWCK2z6JQCDDYk0pAI00CaBtIykZaZzkuBloqh0WdodhiaXQZGl4Hs0jc6DGSHvkibLyZL929rjyotKrqNrVuYqoVUTXTSJEmaSN3CoIkWJjoD5zXLoG4ZNCyDhm3QtCyatkHLNmnbJk3bxJzLDj88JmUKv1OH9wq4LpZh+FEZ5KXuX1prJv3enEt3CnXHvW6+neW4rF24NAO7mWu3sbWFlCWQXKX37wx4460b/PI3t7nTD2h6Fj/xpTRW4UsXm+WJkVL3pRLennb9tz+ZXspvummzPDCdNKPVdOaXLXe2nenOL2fbaeGgEgsdm6io0EJJ4pso30BNNMkkQU8ikgwAEy8E9zdsrHUbcx2slsBsKsyGxnBjRLwAXIvgdW5uDOEoA7ST2Xi6zf1CUgBE+vpIKy1IZthZn40PmzesbN0h85Mu7H8fdv8QRruzu2tcSIufnXklbWdfgdZzII3sKE48WLAa+fD9X4d3fhHe//UUNq+9AF/4WfjCX4aNTz24+3rMSpIJO7u/zs2bf49u9/cByfr6D3P+3M+ysfGnkdJ+3A/xiVESKQadBcduscDaQbD048itWofGMtTXXJzqw3V7Jok/5/idh8BZ5m+0mPl70pxfp+Dmbcxl/R7nADaMymM7EJuECfujIAe7c5A3h8Cz9QN/daEqIZjL7V2Eu2s1h43M6Tst2naac3shKy4YBCdy945GIyaTCZPJ8o/iqWzbvivY63leGedwCqTjeDn+YckRPO/+TUbLc2o4zC+pPk6y6AAuOn0r1XnYW8vcwkVncAEWC+90ZJA/idJaM4gG7I3T4ms54J3ssjfeY2eyk4PfSbz8ueAYzjzYPaT4WtMpf8jfqx4IDF+KFbkLGH7s/pdheBIlxLt7hLt7xJ0uahKQ+AEqCFBBhBYCTWq+0EKghQTLBttB2A5YTrps2WBaaNMEw0RLEy0lWkGgJwxkl4HRoS87DIwuQ3PaegytLiOzh5ILJ3+1wIuqVMMW1bBJJWpSDWetkvVuXEXweN+zc85w4z5iQ46JSZnPCl90oq9wiJ8oJuUY5/ldwPDVTvD7h+GTQZ/97evsX88ydbNc3eHBfr6Nadm0L1xk/cIlNi5dYS2Duq0zZ5FP4ZUo96JEaX77gz3eePMGv/7ebYJY8eJmlZ9+7SI//doFzjW943dSqtSCSnh72vWv/gvY/xBiP21T52m+7M/G+fIE1MmqTa+UkMvQ13AgCtFBCl1FMkEc45RblJYmwqqm+7QrYFWzvgJ2Neuz5Xy8uI0HhnNy2PoozhoO7qRRC7ffhdvvpG3/+zP47DRTiHv2C7O2+dkUKj9ITbrw3X8I7/w9+Pi3AA3nXoUv/mV4+aehce6B3VV6CWxM0g9J+iFaa4yajVG3kVULYTzcA7/x+BNu3folbt3+OkFwG8ta49zZn6LV+kFsew3LamNZa5hm/YnNWX2cUkoz7gUrYxmmfbzg0jcdYwHsOmmfuXkrTQf5mBwTac7vYAH49gtxD9Oc334GgQuZv/GAo8IfhTBnwHepyNsxDuBH/P4LYzXn3J2C36Lbd38hyuGww4BWxZoHvbWZu3daoG29NsvztU457IVZnMNJYO9xcQ5AHudw0qJtjuOUoOcUS4XhnLv3MPirRsc7gkmOiqDJJGUOeo1adSX8XXYFF+YK24oySuRQjaLRnGt3ydGbzQ+j4dJtLWnlrt2ik3fR1dt228jyWOWplo5j4oMDkr094r094t1d4t2s35vv9aoTiZaFub6OubmJubGRts1NzM2N2dzmJsbGBtgW3aA7n7072uHOeIedaWTDZIdO0Fm6G0NYVK01HGMNQ7ZRokWsW0xUg1A3kbSy5iA1NAzJhmmwZpismQZrhkHbMGgZBk3DoGVIHCGOhOuHwXClQCeLOeErHOKrnOdzy6ud4Mv3V3CaLy4/pTEpRaWvj0IlCUopdJKgVIKeu4pJpA5yaSANiZQGwjCe+ZPVWkMQK4I4ySPSLEPgWga2KR/z6ZDTrZ/8a19m/XztcT+MR6YS3j6rSuIM6AYpzI2DAvidrIC+kxXbLgBiw0phagG+astD45L4JsnIJBkZRH1B3Ie4K9GJg8JF4yA8D2vTw9zwMDc9zI1KurzuIayn7EM/HMPOd+H2t2dA9867qbMY0rzczc/OA90zr0Bl7cHcf/8WvPtG6si99TYg4PkfTh25n/8JcJuH3lQFCUk/IOmHqAzOJv2AZBDmsDbphxAf4owWIKtWCnLrKdBNx1ZhnPX3fal+wv7Bb3Hz5i+yt/ebaD0PUoQwMM3WHNC1rXY6zubyZWsd224jZelm0lrjjyIG+6lLd1U0gz+af62lIai1nRzw1hbjGdouxhP4d7465zd19uYQOIfCC5m/ce+YnF+R5/ZaViMDus0C5G0UnL7Nwlwjy/m1jtj3/StRmk5WiK0IfKfjxeXOOOSw3ywN12SjVsjtrdl5ju96bQZ9N2oO7YqNbT5574V7URRFJwa9x8U5SCnvCvZWKhUs6+G+R0o9euWF4oaF6IfBEDUezYPe4XABCi8XiVOj0ckKxVkWRqVyskiIRUdwvj6NihDP6HtyEk9y1+7UwbsK+PbD/tJtTWGy7q2nULdyuJN3zV3DKC9lfuqVDEcke7sFoLsC8u7tkezvr/z7lo3GHNBN+2XIq+pV9vy9ecibZfAW83lXus/NKp69gWGtoYw2oWwxoMmABspYQxktlNEEYTyVObyHOsPvKzbkCGf4nPP8aKf5kTB8AYKfRCqO8EcjgtEQfzjEH6UtnMyuehNC4FSqONUabq2GW02bU3k6M+OP0tCP+Gh3xEd7I0ZBjGkILq9VeGGzxla9PEl/t/qBr12h1nYf98N4ZCrhbanHJp1okq5PtDsh3p0Q742zfpLCv6kEGFmerpWDXQ9zs4LRsJ+e/COVwMHHM6B7J3PqDm7NtmleyuIWClC3/dz9RS3svg/v/hL6W18nOeiTyDMkZ/8UyeYfI3FeQA2TFMhmcHZVMTxhS4yGg9GwkQ0bo2Fj1NNlo2GDFKhBSDJM96GGUbq/QZjODyJWHSUIW66AvDZGfR7+yqp17PsginpMJteIog5R1CGMDojCg2zcyeYPCMMD4rh7KHST0jkE9BaWs7np8rMY2RD68QzsrnDujnrBvKFVQKVhr8zbnfa2e7pyRZdzfmcZvrnjN3MAz3J+swiIuIdaUYG6KMOozjl6Z67fFU5fqxAHYTYfSs5vojS9ScT+MJhz8u4PV0U7pHOH/TiouybrmaM3hbrzsPdpdPbCLM7hJJB32k4a53BYK8LgMs7h2ZJWKisUd1iRuCNcwcUicaPRyQvFOc486D2RIzhzD8/FRDydP/qDJFjK4C1m8U7Hq1yRUkjW3fU5N++qfN51bx3rIZ/8K/X4NXXzxru7qx29RTfvqnxvy5p38RbdvFPIu76O366wF3VzsFtsu+Nd7ozvsDfZI1k4rhZIPLuNba2B2SY22oxFi75uEBvtFPCaa2hRwZYyA7uHQ94t28J8Wn4TPgWKAp+Dm9sc3LiWRy/s37hO9/YtdHb1qRCS1tmzrF1I83Q3Ll5m7eJl1s5fwHKebiCnlOZ/unrAG2/e4J+8c4tRmHCx7fHTr13k9dcucGW9+rgfYqknUCW8LfVESgUJ8d6EeHdMvDdJAe9eCnl1OPvyF5YsOHXTJl0TYUuEZSAsibDTXlrpHKY4XWe1hrtZ7EKh7b1fiF1oLAPdrc/lsQs60STDqUs2mHPHJoOQpBegBiFqvBiloYAJpjNOIex6E6MuMCoCWRUYHhguyApImWTF3OLVBd5UkuX6Ztm+ecavAVKikWmtNz9B+Ro1UShfFfKVFck4QU0SdAAaARiABNJcMFmxkVUnbTUHWXMxag6i5mDUXYy6g/Aqaf7zKmdK4S2htSJOBkRxhyjuZn0GeOPO8nLUJU56h/4XpsW0MqhrFt28a7P5YjObCDH/GOffsmLl8LDnc7fbP4q/jyRWDDsz1+6wswB4Oz5qIUvbqZjUFqFuYezVrdP1t32M8pzf3Onbn3f/PoCc3zTuYer4bWJa9cK4mPnbfOA5v2oKexcBb9b2pnPDWX7vYbC36Vk5zF2vOqzV7DSndxrpUAC+7aegQFtRSZLg+/6xkLfYwvDwEwPTOIejIG8Z51BqUTpJ0kJxR7l/x0UwPJ6Dv2lW8PjuCsVVKqmjt7pY/K2yokhcIT94MSu44p26QnFRErHv78+KrxWyeIvA98A/QC9E/wgEbbedO3m3vOWia1PgaxvP3snnZ01aa9RoTLy7k0LeIxy9ycHBajdvs7kMeQuOXrHeZtCw2DP9PEd6laO3FywfS5vSwbXXkNY6SrbwZYshDULZJjHaKDMFvVLYbNkpyD3vWpzNxzZn7dmc+5Sc7D2tiqOIzq3tHOZO4W7n1jZqGgkkBM2tM6xfmBZKu8z6hUusXbiI7VUe7xN4CBqHMb/x3h3eeOsGv/3BHlrDV59r8/prF/kLXzxHwy1PtpVKVcLbUqdKWmvUIJyDuVPAGx/4R0VTziRS6CusZcA7N2dJ5OK8vbzNytuaEpRGxwqdaEhUYTydz5az+dlYoePpbfTydrGCaIKcfIAxfh/Tfx8z/D5G9AFSpw4sjUEsLhNzDuIYQQzECFEYGwlCJumcSNI5HYGOQUWIIy/3Pt3S2kTjoHFQ2snHOh+7hfFsnVrabjZWwiQ2E2IzIrZDYmtC4oxIrAGJPSC2hiR2Ok6sIYk1RJvBIQ9QYEQ1jLCGEdWzvoYR1rPlemE57WXiPvwiEicCxQsTdwmXpwxIa02gYKw040QzUTobwyRJxwtsFwPwDEHFEHlfHLtZgYZ5UH13j+9+YPlhm5xo/4vrDnvg02mtAY1GZS5ylTodtErnUKCTfH3qgsjGKA7/MNUgBIL05IsQMmvpCRkhDAQLy/l2xvxJibt5PpkSpYkTTawUsdLEShNNlxNNlPWxSscLjzzfpSElpiGwpMA0ZNqkwDKz3sjWZ/PFx3ei98wJn8/8utUrD7+/u7yPwvZaK5IkIU4SkmmL44W5mDhOsrmYQ48JBZiGiWEaGIaBaZqz3jQxDWOpFws/nuf/HI54ke7h9TvqdkvQ+cSfcfd3vyvv+0He1118Jp/oc+mox3WPj/eop6KVQgdj1GSM9seoYIyejFH+GB1MZnN+NudP0n4ynt0umKAmozQm7DgJgXA8pFtBuB7CrSK9dJzOVbLlSrrsVZFz21Xy7YXtzv5vj3yt7/X1vbvvC6UVo2jEIBwwjIb0wz7DcMggGjAM0+VBOGQUDUmYP+7TQMWsULdr1J0GdatG3a5Ttxtp79SpW3Xqdh3LsFY+r6PeUife8B5emyPPJz2I+zrh3+KJP9tOiXSSkAwGJL0eSa+L6vVJ+j2Sbi8d97okvT5Jr4dedZLQNDCazbQ1mhitJkajgWym47ju0akk7LsBe0mH3XBvRdslWFFXxZV1PNnGlm2ghaaJ0i0M0caUaW9Qp2mZrM01Ix+vZ32lBLyPXCpJGHYO6O/t0N/bYbC3y2B3h8H+HomafTZVGk0aG1vUNzZpbGzR2Nykvr6J7T4dBcAORgG/8+E+v/39XW72fCwp+cpzbf74pzb4woVm+jumVC77Sh3pnK4rM+9HJbwt9dRIx4q446ODBB2ptIXpWEXLc7OWoMOsj1Q6jtPtVLZ+iRI9SqWkAWEIhCnSH71mtmzI1ElsSITUSG5jJd/HjD5IgW58C0w7bZaNsGyE46SVa/NibnaasTsdG8VxdjC+/yHc+laa06sTqJ2FK380zcltXT6+MJyQqftWp8AoDV+aLqv5dSpJwdPcdsWxLmx3+P60StBBhJqE6EmE8gOIAkh8RDJJe5X1iQ/JZNYrf2G7k7mAitIIkC7acMFw0dLL+tmyNiyUNEgMSCQkUhPLmNhIiGVEbISEwicyfCI5IjRGJFKTSEFigJICnTkIBRYmTUwaWd/Eoompm9lyazZHE1M3kCw7ag792D9sxVF/GvqQhdXDE20/HWutCSPFaBIzniSMxhGjScJoEufNXyiqJgR4jkHVM7OWjd20r3gGpiGP4JZ3+RoUn8I9vX53e3969SZ3/Xw0SsVoHaFUlPUxejrW6VjNLWdzOp6/Q730ixcpTIQwkcJCSBMhrGzOWpgvbCemy+LE71GtIU4UUaIJE0WcKMI4g7yJylo6jpMUBs8eJXNjK4O9dgHqWkXIKyWWkYJg47AD66OOqQ79m7j398BJ3pfFhcNf1+l6lWXmKVRxrFSWl5fN6dncVIsnlgTFKtoy7YXMqmjLWeGU6XjxNT3x587CxFEvz0k+f+7xvpa2WvGZtvJG9/n5euT93sXtHsxr83ikkwid1WjQkZ+NJ+g4G2dzOqv3MJ3X8WThNv7siqcjJcDyEKaDMD2wXISZNkwXYXoIq7BseYV1LsJywczmpFm62kuVWpBGM5QT9q0u+2aXfbOX9lZhbPbomn2UmP8gMrSkHTdYj1usR820j7M+mo0r6hEYIkqVKnXf2vq5L2OXBcvSdSW8ffL1u7/7u3Q6y7lXpR6stNZpioBS6bG7Sh2xaFInrdLZXNbrzJ0mAJk6/cTUvbUwRha3mx+Tnfi914N3IQSu6+I4zpG9ZZ3wcvNJB77zK/DOL8HV3wY0XPgKfOEvw8s/BfUz9/Q4H6bS3NEkv0zYMFJ3mJTy5NmOSs0K90XjQ/q7XbdirA6vTH/o85NGCoENA2UYJIbIQLAiFgmxiFFS5PPKECRSoAyBNh2EXUPYDaTdRDptpNvGcNcx3A1M7yymt4VVOYttr2OaLaQ8PWc34zBZztwt5u52w6WqwF7dWsranfa1totTKX9MH6X0721ciHso5PtGWXG3bJxn/uZxED2UOsSNnskwKodm+y4Xeytk/poNDOPo/LQoUXMF2qZxDnPjwtwgWO3osw2ZxjQUohqmxdrWs6Js6XqH9aqNaz19uZ0ASikmk8ldFWs7Ks7Bdd0TxThMm+u65d/qEyp9kpMMK9fdH2w+8mfNMfeltUb7fhb9MM0HHmdF47LxNDO4mB88Kmw77ccnLBRnmnmxN1mtYVSriEp1rk9jHyp5DrCsVpGVrFWriOz2wrSOfG2Wnv8hD09pRT/oc+AfcODvczA5oON32Pf36Uw6HAQHHEwOOPAPiPXsM1JkJ/I8y2PdWafttWk7bdbdddbcNdpumzWnTdtdY81dwzOz4rD3cOJz6SYP8uTpsfd9D/f1jEvHMUl/QNLtkHS7JN0uKuuTbo+41yXppMs6Wv6OEKaJ0WphNFtp32phNJvQrtNrGBzUEg7ciD1zzF7cYTfYZSfcZS/YYyfYY5gMl/ZpChfXaGNmLt6YFlK0kKKNIdPekS02HJeNzLG7bpvpOOunbt6nKabpSZJWinGvQ29nh97ObXq7O/R379DbuUNcOJZwazWaG1s0ts7Q2DpDczNtTq12ao4RoiThzasd/sX3dnnrWodEw4sbVf7kZzb54y9t0vCe3VgF61wVaT+dx9GrVMLbU66/+3f/Ltvb24/7YZR6QjWFlsf9LUspjwW8i70b93Gu/Uvc7/9DnN1vYaEQL/5J+MLPwmd/HNzGXT1WpRRhGBJFEWEYPtDxYc9fSpnD3PttD2RfKAwdYeoQQ4UYKkAmAYYKEJF/T8BYR2OIRoX5AHEPvyISSQaBJdow0aaNNh205aYuI6sKdg1pN5BOE+G0MJw1pNNC2BWwPLAO67OxYT/SywpVohj1wqViasVxEs07rSzXOLKoWqX+FBVRfAxKkmBW2G0J+C7k/+YF4KY5v6Mj9y2lneX8NrOc30ahmNsM8k4zgIsQ2DCqSwf5QZzkoHcvh7xTwFuEven6IF7t2qvaxnwu77QoW83JC7VNYfBaxU7d4U+p4jg+Mqt3FfBNksOKS0o8zzsW8hZhsGU9uz+ASj06aaVQ48mJi8Sl+cHLReKS0Qh9N4Xiitm/R+UBFzKE5wrF1VJQfJJCcVpr+mGf3fHuyizevckeO+N03k+Wr27yTC/P3V0svlYswtawG6cGwJS6P2mtUcNhIYt3d5bRu5DPmxxibDKaTYzNaSZvmssbbbborlkcNCQdL2HfCthV/TxPeprLG60wWFhmE2Gm2bsT0SKSrSyDN53DaLHhrnHOdRaKrVmcywqunXUsvKf4e/1RS2vNYH+X/RuzImn729c4uHGdYDw7TnRrddYvXmI9K5a2djHta+31J/ozZW8Y8Ctv3+SNN2/wnVt9LEPwpz6zxetfucif+swWtlm+l55mlfC2VKmnXFprwjDE932CIMD3/bnxcf10fJykAIcAV09wiHArNZz2Ody1i0jTOha0xvEJcukKMk0Ty7KwbRvbto8dT93FSTHj8QRNKXXibe/2OdyNHhholhJLKiwiLBIs4mwcYeq0GWqMofrIpI9IBsh4iEhGiGiESMaIeIKMfUQSIOIQmUTIRGMkGkNppNIYJ7m6dEFayAwEHwN5j507Yp3ppdEgJ3k8WjMZRIeC3eGBT7BQ6E+agnp72bE7Xa61HYzywOqhSKm4AH4XIO+0mFvUI44Hmeu3R5Q5g+N4wFHWKCHM1Mk75/RtYOWO3/oS8J2uM806IBiHSQpyR8ES3N3P5vayuYNRSHJIdbZ2xcpdu1MX70YB/m7UZkXa6s7T7RSffr+dBPIW22GyLOtEkHc69jwP4wQgq1Sph6W8UNywAIGnALgAf1cVkEtGBVg8HKJPcKwHICqVzPVbgLpF0DtXQG51kTijVkVU0sJDw2g4A7sZ3J0WYSvOjePlv13HcFLAuwB3N7yNueJrLaf1VH8WlpqXjiLigwPinRTy5gXXFmHv7u7KbF5hWXOQ19hcZ7xZp9u2OWhK9r2EAztkjyG7wX4OeFcWCBQmptlGm20C2SIQM8A7bU13g7NuPQe65xyLc67FOTvtzzs2dUOW7+H7kNaaUecgh7k52L1xDX84yLezvUoKdbMiadOCafX1jSeusOV3b/V5480b/PLbN9kbBqxVbX7iS+d5/bWLvHKhPLH1NKqEt6VKlTpWU1fsiUBv5yb+3jWCwT6+kgR4KNPBNgSWaWBbJrZlYdkOtuNiuxUsr4rt1bG9GlYGXY+CsLZtnzzy4BHrbmDv42pKqQcMmjWGEWNaPpYZYDshrhXi2WM8w8c1JjiGjyMmWGKCTYBJgKEUhiIFvlPwm2iMRCKVgZEYGEpiKJDZdoZSGEmCVDFGEiJOlEG48GgNOwe64j7hcKg8BiObwdBiMJAM+jDoJgw6KfQd9xd+FAioNp3V0QzZ2HJKGPSopbUijodHO36LEHgu7qGP1kf9PQlMszZz9+ZO3wamlbl/M8g7Bb6G0WCSeHR9l4ORyuMa9gqgtwiCe5PVkSu2Kdmo2nPO3o3MxZsC3xkEXqvaz4RjQymF7/sngrzTdtQJzMU4h+OiHco4h1JPqnQUFUDvyVzB86B4Bo+JThADJcQs6qFWyxzBGfwtzKVguEbkmAyshJ4Z0jF8dsWIXTHkNj1uxwfs+nvsjfcYRIOlu7KkNQd5p+Otytacu7fttpHi6f8cLJUqLYQ9SB27O5lzN4O9KeidOXoPdfO2WpibGxgbG7C5Tn+rRmfdptOQHFQS9u2QfTFiJ+qwO9nlzmiHcbx8pZCUHsJcIzbaBKKJyhy9U8Dr2uucqWxw3vUywJuC3vOZe/ecY7FumWVBq7uU1ppJvzfn0p1C3XGvm29nOS5rFy7NwG7m2m1sbSHl4z1ujxPFb31/j1966wb/9Dt3CGPFp8/UeP21i/ylL1/gTOPo2LBSp0clvD3l+oN/+HV6d27nlxrPPq+nyyKvvJIHr89tuzhXrNS6sG7ldrN9CSnTwiPSQBpGOp72h85JRNZLefRtpJxum40XbpPOGenzXHiOxcq/8+sf/RecLhR30SpJc9SmRV+KrTiv59epY7fRs30XGjotJjMbF9Yphc4eX/FxLm+r8uV8ftVtVQz7H6PvvIsc3sFUY8x4iEWAKRIsqTCFwpIJplRYIkkL/1QamNUGstIGb6G5reU5rw1u88RuylIzPV7QHKH1CBgCQ4QYIeUYIccYcoQ0JpjGBMP0MU0fy/IxzeUfgyJz+urQRAd22ocmRCZEBiIyEIlAxBIZC2RCCoi1xiLGJsYWCbaYdyKbxFg6wiTE0nefRQyQGA6hqDHUZxnocwzUFsNkk0G8zihuMQybjMIaWs//UHScmFotoVaHelNSb1s01l0a6x71jSpus5ZFUVTSooDlgfpjVTHnN44HeX5vlC3PXL8FIFwAv+qYgojTnN9i1u+c+9dsgGzgxxUGoUs/9OhMHPZHDrtj5mMdMgAcJqtPejRck426w0YhqmEKfKewt12xqLkmVcekaj8beX7HxTmscv4eFucghDgR5C02214uLlmq1JMsFYZzQHfZETwqREIMj4TCqBOcpDWM3OkrKhUSzyHyTAJbMHZgaCX0zZiO4dORE3bliD05xs/W+zaMHYgck0Z9fc61mzt6C+M1dw3jMQObUo9WOgxTN28htmHO0bszi21Y6ea1bcyN1M0bnGnRO1Ols+7QbUj2Kyp18soxu3GXHX+P3fEOiV78HhFIs4k22gSySWKsZXC3RWKsYZhtNipbnPfanHftpYiGc47FGdvCfAa+tx+EJoM++9vX2b9+jYPt6+zduMbBjWsMOwf5NqZl075wcebSvXSZ9QuXaZ05i3wMV+b0xhH/6J00VuGta12kgD/+0iavv3aBH3n57FNbZ+FZUQlvT7m+/n//j7j9wftA4YLP6f+b1rNLNwoV2qcTs6Gezsx2Upyb7mt2B/P70tPbnr73Sy4hCnB7CnULAHhuvVgBgdMbFiHxDKLOw9VSJ5MhwZQ6hboiwRRxOpYZ8BUqA8DZnGViOg6W42G6HpZXxfRqWF4Ds9rEqrUw3SqG42BaDobtYjoOpu0iTDuFYNJM29LYAmnMxoYFQpbQ7BFKKUUUTQiCA4JgjyA4IAwPCKMDorBDFHeI4y5x3CFJenmDwwogCaCG1jXQVZSuoFWVRFVQiUeceCSxRxy7RKGDCg2IYkQSIGMfmfjIJM0klirASII0p1gHhSiKeGG8PGfomFjV8ZM242SdQbLJINnK+k0GapNYz58xN8WEutyjbuxSM3apmgd4RgfP7OFZfSxzgjIslHRIDAeVNxdluGhz2jy06WZxEhWwp67iCsKetirSrmBY9l3lP5fOwpPruJzfPOZhyQHcJ1lRaKWoNOe36PRNga8WNSJVY5JUGIYVBqGTunzHDjsjmzsDi9sDyd4wpDM++uRF1TaouSY1x6TmWtQcIx07FvV8PoW9dWe2XHPMfH3VMXHMp+d9c1icw1E5vpPJ5NB8dtM0TwR5i62Mcyj1NCgvFDcsZP8Oh1nhuBPkBBcB8ujoXPSpEkMQugYTRzCyFEMrYeIIJjZMHJjY4DsSUa1g1Ro4jRZec51aa5N66wzt9jnWNi6wvnaJjcYZLFlmaT9LOt7Nm8U2HOPmlZsbjM+36J6t0llz6DQMDqqK/Qzy7iU97gR79ILu0u2FsMBsE8kWce7ebaGMNbTRpuVucLZ6hoterczhvQf5oyEH29dnubrbaT/Y2823MUyT9vkC1M0cu62z5zDMR/OZ8NHukK+/tc3X37rBzZ5P3TH5sS+e4/WvXOQHrrSfmmOuZ0klvC31wDTnAk0SlEpm4+xSbZ3NqSTJtpk6SRNUovI5pZJ0PtvPdLw8l+0zme4jmYPIU3cozOD0MsAubKOn80UATmG9Xtpvvp+F+5k6kYUQuWtYSIEQMluWK7aRCFFcJ3J3sRAicySv2EYU9p9va2R9ep+pCzsFzNOWLsuswFK2LbPbpHx61s/fbvVtye9vdluVKOIwIA4CoqyPw5AoCIjDYL4P/Hyb+W194smIyB8T++PZbcKIOIqJDikGdBJJFGbmBDbE4lin/cp1AsMA0xDp2BSYhsAwJKYhMc0UZpmWxDTNbGxgmhaGbaVzppnC4yVYbKZu4ikslkZhvACT72vbFcD6KfoyT5IJUdSZQd4oA75RJ21hp7Cc9nrJ6ZBKShvLWsOy2lhWG9taw7Lb+ZxttTHNNqbZRMoWhtFAa+PkmcmhD5GPDkdpoblwjA4nxOOAYJAQjCAYGwQTk8B38AOXIKwSJfNwV5DgGV2q5j41Y4+a3KVh3KEp79AybtEwdjHE3cVmxBhEmNN05EK/ei4WNol0SOSsnwFkZwVE9hCmg5H9nTy0ooBPGWie5fwWYxymmb+HAeGZ+/fonF8jd/wi6yhS4BsqiyjRxIkmShSR0sSJyubS5ShRs/WHuHyX709gGQLLkJhSYhnp56llSCwpZ2NDpOvN6bbT+XSdIeWp/AhLHdxpdnoSx8RxQpzExHG8PBdlc2r1ZxWQft+YZtoMM/0+mi6vmDMM41T/LZQqdayUBj+GSdbGxXEEfpL2xflJjB5HJOMQnc1LP8EMTva5FprgOxA4ksSVJJ6B9kykZ2FUbayKjVNzcGsusmJBxQQvaxVrNnZNMMq/z6dOiUKFQXqCwvdX9EHaBz56xXepMCSx6zBwHXquRdcy6JqSroSu0HR0wn4S04kDolXfF9JDGW3izMFbjGnwzCpt22XLNtgyAjaMMZtywoYxZkOO2TQmVEV0Kr9vH5ZUHBOMRwTjEf5oRDAaEoxHhL6fcwIhBLZXwalWcas1nEoVp1rF8aqIhwTMlYZv327xmx+e4Xc+2cCPDc7VJ/yZF+/wZ168w5nayfLOn0S98Pz/Edc9/7gfxiNTCW9PuXrjiLprIsvLH0o949Jak0RRCnyn8DfI+lGXqL9HEoyJA58kDImjFAqn45AkComjiDiKSKJo9uM4mv54TkjiJO0TNeuT+/+cNIROIXERDOfAeOo8Vvl6U6zYVs7Gs+0W5oVegtQSvXzgJc1l0Ls0tpahbz62jr9dEVQb5sLtDoPLq7Y96X5PFi+gtc4ufZ8B3jA8yJfDKfSNDrL5DnHcO/z/1qjlYHcKeu0CAF6eayLE3TnmQj9meBAsFVSb9qNesMToKnWTesuk1hRUa4paNaLiBVTdMRV7gMkog8cjdDSBaAxZLyIfEU+y5iMSHxkHMzeySl3IdyuNSP3IYh4Ih9okwjgWGC/PrV6nmD84ftAw+EED5ocFmrVWJMloBnwzl+8M+C47feO4R7KiMvyx90XmRspOoGpNPlbZ1Tvz6wr93G1Pdn8yuzBGCJGNs56FZSEQAqRIr62RxeVTclg1jTRShaijYls1f5im77Fik6JwUrg4/4Tmzpcq9UiUaESgEb5GTNJeTzT+SOGPFdFYEU00apzO4ysMHwxfYwcaLwA3hEoI9gnPpSoHtCvAE2g3a958r1w5m1tc76Q9Dk/VSfpnRlpDZmSa9amJicwshVIrY0a0Bl9Kuhj0haSrJX0kXQU9JegoQSeBYZKsOKUr0EaD2FjP3LvtHPSaRo2GIVmzYENOWBd91kWHddFljS7rokudEVKcPqb0QKV1aj5LEpIkTsdxjFJqdmCTfa9K00zjII30pKo0jAf69+rHFv/Trc/y29df4Tv7zwHw2fVP+BMX3+EHz38Pz7z74/fHqVdf/W+oVV963A/jkamEt6dc//rf+j3e3e7z+XMNPn++wSsXmrx8vsGntmpY5eUOpUo9dGmtSeI4hb9hmAPkJIqy5SkUzkBxGJLEEXEYzUHj6bp4ulzYX9oH+fqkAJmTB1B4zDRTp7BhSEwzcxFnrjdTZhEWRhEya8wMBM9AczIDzSQYxJgiTnsdY4oIQ0eYOsIgxNQhJiGP9LyTMB4AQF6O01CGQSw1oZEQyZhIxoQiIhIBkQiJCInwCfWEiAmRGpMcEedgyRqWWccym9hmC8tszbt9nXUsewPb2cRyNjGsoyvKJrFi1A1mUHcR8HZ8VDz/fe9UTGprqwuq1ddcvLp1NEhUCuJJDnxX98fMhSOIfYgmuRN58TbiEJf0UVLCRBlOwRmcuoNjYZFIm1hYREz7efgbapNQG3kfKEmgZr2fCAIliTHRPPg398MCww8aWD8sR3OUKEZBzMCPGQZZ82MGWT8MooXltOXbF+ZOoopt5DEP9ULcw2IkxDQCIp2zFpZNzCfoeOywOIejircdF+dwXJvGPXieh2mW+fSlnm0lKqETdNgd77I72WW3f5tO5yb9g9v0u3cY9/bx+weE/T5OkOCF4AXghRovhEZk0oxtqpFBJQQ3UFh+gjkJEfEJvhOlRFYq8wXh5orE1ZDVCkatMJevz4rKZdsJxykd+0+YdBgS7+/nebzzGb2FCIfdPfRCYUEloN+26V/I4ho2XTpNg4Mq7DkRd4wx+6rPOFkRQSIcEqNFksUzTKMapLlGy9vkTGWLi9UznPcqZQ5vpjiK6NzazoulHWQRDJ1b2+nVxABC0NzcYv3i5axg2rRY2iVsr3Jf93+jM+bvv7XN17+5zcd7IzzL4EdfOcvrr13kh15cfyZqGpw2lfD2lOtX3t7mG1c7vHezx3dvDZhE6R+6bUo+c6bOy+cbvHy+wefPN/ncuToVuzxoPu3SWtMdR+wNA3YHAbvTfhCw2xuy2xuxO/DZG8WMY2hYipataVqKppXQshJadkLTTGhaMU0zpmVGtKyYphHRNCPqRojUCWg1ayqB6ZxKFubV0euEBMsFM2uWB6YDppfNZ8uWV9jGLawv3i4bl4WaAFAqmcHccB785uMoJMlgcT4Og8L6edCcLEHk2X7y/WawWev7y3GWhoFhWZiWhWFamFZ2Ce+0Nw3MrBl5FIVIgXN2KbVhUIiwIHMmT4FzFnVBBpulSuFyBpqFikHFkERpPzeOIIkXxtER20/Hxxc4SyREpiSyBKGV9pEliSxJaIl8Xb5sSfQhB1FCaaxYY0dgxWAlAiuR2InEUgZWYmFpC1ubWMrGEg6GcPI4DS0sxnGNQdRiEDQZBHUGfo2hX2XgVxiMPcJ4/rvDNFK3br2WUK8n1OuaegPqTag1BLWmiTSPc2SfIGf6uL/xJDohFD4hMM57f37uiHiBw6RNDyxvLl9Ym24hOiKNjyhGSyTSIZY2sUjhcSxmCcmRsIi0OYPIGMRKrIzguJtihA9Lj9qxfDf7EEISJJpJrBlFmmGQFOButAR752DwdM6PGAYx6gRvDdeS1F1rDgBPQW+9uDwHgq0MFD9eCKyUIgiCE0He0WjEZDLB9w93ZzuOcyzkLTbXdUuXb6lnUkorukF3BnnHu+xN9tgZ77A32cvndie7RCoCrbGSzNEbQFt5nKPJlq6zriusJS6t2KEeG1RDiReCPYmRkyAvIJcUsoNPXChuCnurU/BbXQDAxbkMANcW52rIsjDjI5XWGtXvFyDvLIs3HafAN9ndI+nNX2EWmnBQg965Ot1zdbobDp2WyX5Vs+PG7MoJXd0j1ssnSpWszbl3ldFGG23q7gYb3hYXqltcrG5w3nU4n+fx2s9UDm8Sx3Rv32J/+9oc2D24eWPOtFNf38yydC+xduFyDnbdau2u7k9rzVvXurzx1g3+4bduMvBjzjVdfurLF3j9Kxd5cfPu9lfq4amEt0+REqX5eG/Eezd7vHezn/fdrNiIFPDCZi0Hui+fT126rUr5Zfm4pbVmFCY5hM3BbH/CbrfPXm+UQtpRzN5EEOlloGETsUmXDdFjU3TZFH0q+PSp0NNVurpGnypdXaVLDR/n0McjUTQY0xIjmmJMU45piTFNOaElJzTlhKb0aUmfpuHTkgEtw6dhRrhSZQ5HmRX1MlKwGwcpCInTXE9iH5L7yNgRchn6LkHhBRBsOikYMuyFls0trZ+Oi/OHbPuUZcWeVCpJcqibFB3G+TgqrJ8C4HkYPHMSz+8ndxqvciln29xvoUTDNDEsG9O2M4hspyDZtjGtbM52MC1rbpt0vZXe1rIx7enYSrcxzQw6SwyZwWZDZFBZYEiBIRRCx+lJjin0VfEMEhegsI5DEjUiSoaESZ8oGRDpEaEaE+kRkUpdvSE+EUHq+iXiMPOnoQRWYmAlEisR2HEGfiONFSnsSGGFCVYYYwcxiW8xCtsMko1ZMbVki4FKxxPVmtu/IKEq96kbuwttJ+v3MMUJLs2ac0Abh7ih79I5fTfxHoaVfoYhgCT9v1LZySqVzKB9EdwnESRh+pmXhNnYT5enn3+rgPG9fB5KMysy52WtstAfPadND2VmMFnOu5FjaZNkEDlR+kQg+G6g8d3uI34AVxkc+jIWwO/dgmSNQCFJECRaEGuIFYRKECkIEwiUJkimcZsaP9ZMIs04UgwjxShUJFqiECQI1LRlc9N5x7LSwm+uNQd7pxC46P6drm9M3cDTdfbDj9pKkuRExdqKMPiw/18hBJ7nHQt5i8227dINWOqZkdaafthnZ7zD7mQB8C6AX39F7I1nemx6m2x4G2xWNtn0Ntn0NtiSLTapsZ54NBMHL9Do0SgrBjdcKBI3hb9D1GiczuXzJysUJyxrwf07dfoeB3/TsZG5iGW1irDKInEPUioM02JrRcg7hb57e3Ogd+rm1cDIhYM6dNZsumdr9DZcDlomO3XBjhtzIMcM9ZDFE+QaoxDR0Mohr2evs+ZtcqZyhku1M1yqNDnnWpyzLc65KeStG6e7lsFRUklCb+f2UqG0g+0bxOHsGLLaXisUSpsVS/PqjWPvw48S/tl37/DGmzf4l+/vojS8eqnF61+5yF/84rmSGz1mlfD2tOsb/zV0r8+cjtPiW9myVoqbvsV7w1rW6rw3qnMr9PJdXLDHvFzp8nKlw8teh5e9A86aI8TCvpba4nrTAbuWNqe2YlwFp14Y18Cup2PLeyrBlx8lMxA7dcl2h+x1e+z2xuncOGHPF0yS5bOJEsUGvQKQ7aWAVg7ZdDWbFclm3WazWaPRaCJqm1Ddguom1DbBbWZQ0Uhhp8x6IfETQT9I6E4UvUDR9RN6k5juJKKXte44mi2Pw3z+KKeRa0mankXLs2lWrGxs0a7atCoW7YpNu2LRqti0XZO2o2jZCbYOZ3A3B7yTGejNLp9OAcji/Em2nUCcgZQTOCPvSUugtwh7V8DiVQD5gWx7GIS2U6j+lEhrjUriBRicuopXguTFKIu58SzqYrVjeRkuJ9H9v49SEJwB4Qz+mraTz+WAuAiX7Rk0NjKobOawebbeMCXCCNHGBMQQxQjFEKUHxEmfOOmmWb7hLMs3SYaHP1azmUU3tLCMJpbZSGMdjDpS1QmHDcJBDb/vMulbjHqSQS9h0FOMBsuc3fMU9VpMvRZTq4TUqwH1SkDdm1CvjHGkn8Htu3RALzmnF6D4qm3vIX7hviSKRQSzsTAzQG1kn9ki/7xOvx+z70ghshdzVlhz/vu5CJaT+dciCVn8kXQiGfbspJjlZeMMBtseWNXsu3wRFB8FkRfWmc6xxwEnhcMPEyLfze0fhjSAkGgKYFencDdWkBTmlZ6C38IcaSFUw0ivaLBME8s0sU0D2zZxTBPHtnAdC8+28BwLzzGpOjZV16bmWtQ8m4pjn8gNfVLX7GFxDkc5fg/7nWIYxolB77SVcQ6lnnZprRlEA/bGqWt3lYN3Cn4n8WTp9o7hpIDX25xB3koKfbe8LTYq6bqW05qDZ1op1Hg8D3qHBdA7GKDGBSg8GqVguLjtOJ3Tk+XHtUrCdVfD38VIiGrtcChcqyErFcRTdNz8sKW1RvV6BaC7Nw96V7h5EwHdGnRqcNAQdLaq9DZddts2O3XBnhPRkyNClk9wK+HmLl5ltFFmG8Ns03bT9+a56hmeq53lguflEQ3nHIt1y0Q+RdxBK0Vvdydz6V7jIIO6+zeuEwWzEzaVZov1C5dYy6MX0r7SbK0E3jsDn1/55k3eeOsGf3h7gG1I/uznt3j9tYv88Kc3y4jOx6AS3p52/ddfgxt/MPtxl//QW1hmft2BrvFefJH34gu8F5/nveg8Hyfr6KyQy5oc8bJ9J23OHV52dnnO6qUH4avuC1JQFg7TFmR9csLQa2EUQG/1EABcTWGvUyM2q4xEjaGsMcRjqF2G2mWkbCKls0JS6Y+nOFHpslIkSmUOosVlnS1rYqXTucI4Vhqlp8vkfaKzZZ06nxMNiYIggb1AMIhX/xhoM8hh7AYZmLX8DMgabNQdNptV2q0WRm0zhbHTVtsEt/XYYLdSmkEQ08/hbpiD3hn0nZ/rjiM645AgPvzHbNU2UqBbnQLeAuStTOFvNq6kILjmmPd2dlXrmTturkXz49w5t2rbhfl41T5WbBsfcX/F7eOAe4Isx0maR0Dh4ryVuYsXtz0GJh95u8X5QyD0KXExa6XSCvDFondFl3ARKq+MtVh2GieHgOakAKany3ke1j1KCJlC4cxFbFo2hmNgV3XK5rwY00swnBjDjpBWhLQCMH2EOQE5QYsRiMMeh8SUTUyziSHb6Og8iX+OZLJJNGkTDKr4fYdxTzLqKpJo/v1uu0aau7sic7e+7lKp24gH5SBUagY5l9zPUcEdfbcwuXjbxdtl6xZc1itvt/SY7uJ2p0kig9dTt3TREb105YOTfm5Mr7YoxutM2/Tk8BQu29VZ7M6JHdkZYL9Laa0fKAw+CSyO44QwjgmjiDBKiOKYaFpws7CdVmmxG61S4J8i3YckkcJiUXA0mwVwfK/RGFLKvCBbWlQ0bVEUEYbhXPN9nyAICMPDj0kty6JSqVCr1U4Eez3PK+McSj21GkWjOdfukqM3mx9Gyyd8LWnNQd7peKuyNefubbttpLi7vyEdxykIzsDunAN4tGKuCIBH83M6ONnVLrJSuS9H8HReeN5T6wi9F+Vu3kMh716e00sU4VuZi7cm0r5lcbBV4faGw34NOnbIUI5RzB+TagRa1nP3rjLbkMU0rHtbnK1scal2hivV9bmohjO2hXXKM1+1UgwO9mZO3RvX2d++xsGN6wTjmSPerdXnYO4U7tba6wgh0Frz3s0+b7x1g3/w9k32RyEbNZuffPUCP/3aBV4+33yMz/LZUglvS+UaBTHfvdXPIxfe3e7z/Z0BUZK+D6q2wefOFSIXLjR4aauObR7xxRuHOdBN/CGj4YDRaMhwNGI48RmO/bTPioyMwoRBqBlGmlEkGMYGw8RgmFiMlMVAuwzxjrzk/25lEWOQFlmS6KzYUoKJwhAJBgoDlc8b6Hx7g6xQ08I2FgkbYsCmE7HhwmbVYLPusNmssdZuYtcXgGx1M3U0PeWahAmdcUhnHOZAtzOO6I5CDhbnxiGdUUjfPxw+WIag6c0D3XbFplVdcPhmY9cy8grkxcriYlUVcgQIluam2y9WJ38oB2QqWQGHV0HfRci8CiqfBEIfB6xXwO2n3sV8xPaP+Ye7SpIZ+J2Ll4iYL26XweKlXONDQPOKKItFF3Mchrn7U5oa040x3ATTSzDdZLY8bV6M6SbpnJOw+HtNa0iCOuFgg3Bwlmi4STzeIBqvE/ttYr+Biuc/94XQ2BWFWwGvJvAaBpWGQa1pU2071NccLNdZdivbFqZpPRtuGq1PDnqXoPB9gOcknl1JkfgQBenn1FyURFiImSjsY+qEnstTn7qLC47jRy0hZ1eyyKlLOgO9hp2OTQtk9rll2icAxCeMBZFFp3YRaB93u8VtV2RMZz/MlFI5YA7CiMEkpD8O6E9Chn7IKG8RIz9iEoZMggg/jPHDiCCKCMKYME6IohQaa6WQQmNkPuHUL6zn5ixJ1jSmyDLLsya1RqARBWe5Vuq+s9aP/G8uOgaP+R0kpUyz2Q0DK4vLsSwL27bz5jgOruviui62befb32/W8924mkuVeliaxJOZk3eyk48XgW8/7C/d1hQma97avJO3MN6opI7eNXcN4x5OoB0nHYYZ0B2n4HcR9A7nIyFWguFsW04S6yNlHuuw2hG8UBCuAH/TWIjZds9SobjczXtYNm+x7/UYeinkPagLDmqw3xDcOVtnd82hU1X07QBfLDu4NWYa1WCukRgttNGmYq/TdNMTDxeqZ3i+fpZLlXrm4E1zeCun0H2qtWbUOchhbg52b1zDHw7y7WyvkkcuTGMYGucu8ua+5utv3eQ3//AOUaL57Nk6P/OVi/zkqxfYrD84RlNqWSW8PeXq/+Y14v2TXUJyL1JK0/djuuOQbu6kDImz6+alEDTc9NJ4QwpipYgSTZwoYpX2UeZqjU9S1SPbp2VITCkwDYkls6r307HUWCKtdm9lVe7NDJiaxEgyQzAiA2szuJZCuMJc7kiG9B8xuzx1+qUoVs1PxywsF3rDfiLcg8KSCCP9dSQMkS8LSyJMCaZEmGI2l/X5vCkLTYAhH5zb7QSKE0VvEs2AbgZ4u3OQN5oDwt1xRJg8vB93h0lkb4ki0C0uGxrWhcQgXaeFRgiByt9CAp2vS3sF2VtqNjd9m60CyNO35KFz2fY5mEak8cQsPuYZtCYH2yu2B2Se+pj+uJbZj22h0zmhs8RGrZBaIXSCJAUzQidIna0jQegEobI+Xzedj7O5rM8uCZc6ym8ndZTdPutVjFRhCgCyJhfGAFKo7Lmo7K952s+2T7ctLEuJkEahmUgj66UJhoGUJsI0s3Vmup1hIqSVLhvpPNJEGhbSMJACpBQYAqSQSAmGFEhEOi9FOi/SeUOSutqEwJBp1lcKJqefb6JwBUbxc2px3aplVq7XGpSGJE7Sz/s4SceFPk6ycRTP5uKYOI6IkxGxGpIwJNFDEjFGizFaTkD6YEzADJBWgLQjpBWTRC7xeI1otE40Xs/6NaLhBtF4jSRoLfxFKoQcgOiB7qOSPioakgQDtBog5RjDknnsRB5bsTLK4gR5x1l0xXJm8vw4jbS4x6sGSs2kEgjH2dU+/dkVP/nVPyOIRlk/mfXxtEjdNFqnkMEeh4U+ApX196K5yItpn68kj55ajKB61HB6CpCPhMKLALkwPgQga2mSCJNQSQItCZWBr9LIpomSTGLJJBFMEsEoFukJ+0QwimAQCoYR2cl8QYxBlJ1ij7IjvRgDrVMkjDTwbBPXtvEci4ptUrUNKpagYkkqlsAzBa4pcExwDYFtgDM9ppRgoNMCoCuylosu3iiKiKKIOI6XnM9KqWOB7wP9r8vg76Mu+Hcv+5Dy6c2hLHW8giRYmcG76OTtBJ2l20ohWXPXluIa8pzebHndW8eSjz7rVmuNDsM5+LvKFTwXCVGAv2o8SgvFZetPVCjONFOgu1j0bSUYLsDfBVhsVKuIp6hQnApDkkWgu7OYzbuHf7BLx4np1OGgJtivw522ze0Nl4O2Ra+SMDR9ErH8/a9EBWW280xe21qn7myw7qUxDZdqZ3mxtskFz8uKrVk0TONUfP5prRn3ugWomxZK29++zrjXzbezHJf1i5dwzj3Hd+zL/E63wvc6MYYU/M8+vcnrr13kz3xuC9d68CddnnWV8PaUa/+/+w7h9uEZhQ9LcaIJE0WUKMI47TUzYCQLgGfOuTjXiznIJAuQqdQDkgYdq6xlVVQehAwxB3RnEHj1nHQNjIaD0bAxGjYyG8vKwwEYWmvGmcu36OYNoiTFb1qnv5UBNR1rnS6rrNfF7XQOq6ZjrXW2TbYPwIwSXF9R8WMqE0XFT6gEiqqfUA0UlUDxIM7PTr1nWhTGhWW1sG5xuTinissL42KvyF4XkT3nufU6HyfFOZ1ur/T8dkqn26np65pto0ijSFTx9hS2PfSxrV6/vK0+Zn36/6uOXD9/X4fdz+rHuPp+Dnvc9yOZXQ0gsj4d63w8dcEZKKQojDl8nM8JVXDSrdhfPpduY4jCeMVjSR+jXtj/dD9ZsqdQIDXaAG1otKFRhiYxBNrUKAOUEGhdRyQ1RFxDBA1EUEP4dYTfgKCO0AsHkuYYYfUQVh9h9BCiD/TRaoiOhqjAJw6N1GSqQSuBymJ0BKQnIwonA+7m08yUGlOmBm4zA/SmAYYEwwBTilmfncQ0smZmzZDTZYlhyKyfrpMYpkyL5uXr0iJ60sheh0MBfuFE5OK6/GTl4rZHnAyY299xJwwy2Jlvz/Hbrzw5cZL7onBfhzwfROGqg8w9nEFeEReXs1z1yM/mCxnsecHOAJEX7iz0kY+4h4J1Wsj5CInp1QHSQhtFmGoUoGqhmGjhOetVly/ncFktuKyTeXf2oXEimTtbRRmYfnRKEMSYxBjEWhJhEGOSaJnB32wdMjv1b6BEevJNSwthWAjDSE+qmRbCtDANC8Oc5ZGbpo1tO9i2lfU2QpoESjJOJH4sGUWKUQSjIC1QNwoTJkHMJErw/YhJmEZdHCZpGNiWhW1bWJadFcM0lxy8QkikTM0JSaJWgugUMq+G1NPbPKys5ulzMQ4BvGkO82oYXVw3N3/E/oSQK29z5P6y+dLV/PgUJREHwQG74z32/T32x/vs+rvsT/bZm+zlreN3siOtmQSClttiw91gvbLOhrvBhjdr69PeXcc2nsyCZlpr9GSSuYEz0DseZy7gUZoNPFyYz+MgRnO30+Pxie5TWFYOeEW1kmf9ylrm+p2OC65hWa3MuYLTVkGckuxwrRRJv0+8t4fa3yfe388Ab9on2XK/v8c+Qw5qgk4VdloWt9oOe02DTkMycBJ8Y4IWiwXXBFo20EYLZbQwrDY1e422u8FWZZPzlU2ea5zluUqLs67NWdtk7QnP4Z0M+nRu3mD/5jYH29c5uLlN5+Z1Rt30hEvHbPH95mf5fvVTDIVLxdD88EWXn3ztIn/0lecwHtJ7wzA8hHh2IHEJb0uVeoaktYZEzwFdHSvIl+dB7+Lc/Lb///buPVaSrL4P+Pd3qqq772vmzsw+Zj3LsmDAGJM4vLEUosQJyCKRMEKWHCUGYikYKdhYliMbJ1ECVhI7sZLYQjFBhsSWYkWR1zjE4ODY8sYhAgK7G8ALIixk2Z19zWvnce/t7nqcX/4459Srq+/te6f7Tt+538+op06dqjp1uvrc6u5fnT6ljeXILLRo5fn17DCD3e74chKJD+hWgd2QNmH+ZB+md+tPymoVxY0UxdUxiqsjFFfHyK+OUTw/LtPaHuLBCKKTPUSbfcSbA0SbfUQn+y6w7aPHqopaJLn6VXBjOUKU2C8PeS7dzFOo1UYZE+Uo/DraKgOTebX1dLf9+vXa9dPG8rBdva5T9ls/LkfvrWguFACkOVXfE1o78qsgvjaD+q3lIXg8LXA9NcCsQCHaCN7Xg+whXYRlChQTAfsqXajbJm8E6acHzesXBqYF8t163ctVgZ4CKypYsYK+AqtWsKqCFevSsbtVZ3n8Myi2RHHDVNMbfnrdKLZF3cWHcj8umKtQQKx/+FqIQsTCih9jVCxUFMb43uqiLpAurgyX1lrabRN+dh7S4pfV89y6fjuEZdV8tS/fa15q5exSl+Z8q56Nfc9QjmgZrK/q1qx7qFtVfnfdTeuL05GkisgCplBEVhEVCmMVUQE3LfNQW9bKt1rbHo11wnYH+WpYCGAjQWEENgIKIygigTXT8lCly6lbJ+TVt7NR+AXK8n5xJSI6UiwgY0BG7gdNMhLIGDBDl3Z5rfRY/HLA+PVlCJhstnOzTRS6AmgfsAOFDgAdVGk7AHSXtPXrax+YS2+XQ2AV2LLAtUJwrTB+2nxcLwTbdvIYJqI4GSlORG66WUvXHwnfGqd6/et+Hxsb33urq3FodgveHo1LJ0Q0MxEBQq/YQ6a5dcHP6ymK62MU11IUN1LY6ymKa2Nkz25j9I3noenkzY+kH5WB3Gij5/h3uCcAACTXSURBVAKiGz6wG4K8Gz03PMQB2XHRDMpeDUFZl1dcS907dL1eKzHizT6iU330XnTCpX2QNt7sw8zzhkrHWDtoPK+g9kTwOeyrEWhultsMRnfUJZQ7JVi9e5DeRzE79tv1fMrtrE7Wb0rdJo/VZBB+1+Ntp5RbL6fzOXS9HpPPZ6FCp1EAOIzrQeEYziAEpBWo9aCvBaHrvepbwekCVaA9vES2tq4LgaoLjmtVTvMh5T5373XeXMe26hGWFZ37mNzuIMuKjroUtaNo/ZHU8kipv6ChgNSOqrhl1geBUa7j1oMPPrttAGPckCmRWP9rITduq/jgcVQG2v14rVIb3zXMt9JhPvLDtkSiiIz7hUbkA9RRa70yz1hExgW1oxD0VuuW1XrUl2mxMOrG6E80Q2wzP82RoEBUZIi1QKw5jM0Ra47IFojUPYwtEFk3lI2xFr3CwuQWYi2MVT90jYVYN1btfrm2L+5hfE/62rz6IYZUwnrtPPew/nWs1gllufRNB4iNgYqBSgQV9/sBFffbgwIGVgUFBAUMChV3I1sV5CruRretvvru9BcuGoWhk4wfEkfKIXTCcDmht77AHxt15eRq/H4iZCpIC4NUDVJr3LyNMC10L7DoSY4EOXrI0EOKRDP0kCEJ836Zm8/KIYfmyoQe4ZF7nYxP13uLN3qOR+VrYcvXIoIVU3tdBFbqvxUJAz1Jmfa/70D4HYVVqS5S+tcmnFfDW274dZZL136R5X+ZUaXdOM02fAZZEGPccEkm9MCeSEvVO7trme9t3Jmuret+OTmtnOlpMVIOnXGYPx9XtdjJh9hOt7CVbWM789N0C1v5NrazbWylW9jJtlFgstd5P+pjPVnHerKGtTDthfk1rCcbWEvWkCxpT9550cICOyl0mALbKXRnDAwzN91JoTtpczr06e2xm16qliGb8Wa7Kwlkte+ma31gtQdZ6bnpWg9Y6UFW/fxqbfmay3fr9oHBIQ1TpQo7HPnxk2s9onfcuMij7Ru4Mt7ClWyIy5Lh4koPl1ZiXOlHuJoA34ostk2OouPcGpkeetEKkmiAtXgVG8kqTvXWcaa/jrsGa7hnZQP39NewmSTYiKOluNFakWW4euUKHj1/Fd+4kuJCGgOq2Myv4a7xRZxJLyM2wMrGCaye3MTa5iZWT2xibfMUVjZOwsSzfVDv9+9c8DM5Otjz9jakqv4O6Zm72U2ew+a5TzfziqKALXI3H6Z5M8/mRZk2UeTHDuz7sf36fqy/erpXrhPGEDwKY8DQ4bHj3AV2r7vgbnFt7AK818c+8OvyUbTOTwKYtWSiJ6+pzWtuXSD2+VpQ9urY7WOn3WsWbrtTtV6z/hH7qenzGhfRPDWD8gAwGeSdGhSeEjSGoiNw39zP1GB0I0gPFFmB4fUUo60MwxtuOtrKMN7KMN7OkO5kCBHiECvuDSL012IMVhP0V2IMVmL0VmL0V2L0BxFMrSd+c7+t+oYv/ns9n5mD9JPLQ498LY9Jdfyq49xKt3v61+Z9fPRAvT2XUWNYF1QB8qJMN5eFQHN3MNvnS/eyeQW791rWGOpmIq/Zk73+fOoBdIQwuQ+OilgkyJFIir7k6EuKHlL0JfNpN+3L2E0xdo/G/Ah9HdXSw3K9no7Rs2PEmOEmQe3XUGJk0kdu+shNz02lh8L0kEuCwvRQSOIeJoaV8HABQhew9bdek2qUdKAK4Lnx3XNEmsHYFMZmiOwYxmYwNoMUY0RFCmPHiGyKWHM3fIzMMAxNSM/Q27wcK1gSFBLDmsQHN2MffI5hQ/ATpgwyZ1aQFYq0gAtCI6pNXRomQZT0ESXV5/sk6SHp9fwwDz30kxiDXoxBEqGfmNpPgsO5xbciq3A3KZzxZoidw3S0161Ny3X9eosIPO8mDFkiCYqoh8L0XTszCQrpu6lvd9a416pA4vLhxo4upLpVcpmWCIUa/9oYFBqh8EFpd+Gg/nAfmwuLZtqqe6iiKKyftygWeN+IMCzFMo3TbCKDrWwLV7OruJJewZXxFVwau7F4L48uN27GlnXcqHctWSvH3r1jxd1orUyv3lWOzbuWrB37773VjeJaY/+GcYK3d1rjAdfGCm7dVG5fN4pbX4dZW3XjAa/vMibw2nrnTeLM+jqk15vL62dHI+SXLqO4dBHZxYso/Hi82cWLuPr8s7iw/RwujC/jyXiEp0/38dxmjCsbBtdXC+z0x8jMyF+Arh1XGD8O7yai6DRWeqexuXIX7ly9G/es3YX718/iJSfO4v61TZwb9A59HN4nLu/gdx85jwceOo8nnx9iJQJee3KE78+fxKkLX8e1Z59BuBmpiMHm2bM4fe6+xg3TTp+7F0n/9r/B+244bMIR90cf+3Vc/M7/qwVSawHYohaUrQVZl00I6Ea9XivA2wwEJ/Wbykys2y9vEgN1d01W/5hMF4387nWLct3dy+ouE6plvaOu4HVY1uta1vE8/cMs4G6rR5Fahd3JqmDu9RDgrfXsvZ7Cbk2/0YwM4jIIWwZlT1U9ZyP2miWifSoKi+3nx7hxeYQbV/zjcm36/Ag2b3626q/GWD89wEb9caaarmwc/Yuc3cFyn64P4WKbQfOJALqtr1cPFjeD/Fp2jYNf1pFul2GbFwImesM3ygBgLWxhXb6fhs8HWoR0CHDX01qWV+aV8819abn/6rmVD1RpAQAVP23OC6rp7aAdQK96ojd7WoeccAAFoY95mBZ+KI7QT9bC+BFwXXgyh5ECEfKyn2YV8q7Kg4RlLqwd0rmfy2CQq/hxdg0yCDJE5TSFG483VYMUEcaIkPmpe8RINcIIMcaIMfKPMWJkfrzmMFQO4Hueh97HWh0DCwtRhW2F76XxqJ6rQe57hIeQbe7SUnSPeS6zjpteHwu9Pra5uhtv+h7GLqAmiE1UBfuMC7K5sWmjWp4f/9bfJNSl3c1ATRQjit0NQSM/hnEYL9f1anY9RI2JEIm7X4ebmiotAmMUEcKNXm1zzOcynVdB4nq6K7BcDyhPbNcOPufd+2gHunXGHo0zsqEHeS1o30z7oHO44GESFFJPx7ASgtGRD0LHtTLi1sUBUwWjteq9bms92CeC0D74vMBOzZPjKbtGAGvc31Xu/2WaIdUUYzvGyI6QIYP1wyNZuCGTTGSwkqxgpbeCtd4a1vprWO+vY2OwgRODE9gcbGJzZRPr/fUDBaKP01jNjRvFNYK/YfzfjhvH1dfdbgaKMUvcK46n3yRufR1mtSOvY/1ZbxSn1qK4ds3daM0/ikuXML54ARevPo0LW8/iyeIanuileHoNuHQywtU1xdYgwzgewZrJsfRV+iiiU5BoE/34FDZ6Z3Bm7SzOrp/Fvet348UbZ/GyE2dx3+oazixgHF5VxRcffx4PPHQen/rqM9ga5zi3uYK3f/9Z/OC9EVZvPNe4UdrzzzwFW/hzmwhO3nkXztx7H06fc0HdF7/6dVg9cXKudVxmDN4ecX/88V/HlaeedB9Q4th/WIncB5U4fGBp5fl1y7wohokjRHHSyIuiCCZO/LJmXhRHtQ9EbntbFMjTFEWWIk/dI0vHKNIMeTYu86rHGHmWuanPq7b1ebWyGul07IKkCyBiyp8MiWmm3Z3k28ujiXUBQZFnteeYovB115u4aUfo3Ry1gtbdQV8XFE76fST9gZsOBj4d5ld8nl/HLy9vZrNkVBV5liIbjfxjiNSn0/GwlTdENhxDt3Ngx0JGQKE5UjNGGo2hkQXgf74l7nWHv2ke/M+6xN/Ixd0vJ9zUxg8/AYEY/7U45Inxv8hsbR/y/IeqrnJFqv026lXbrlrutuuqa7OsZn2q5+m/yHc8TzTqXZUXtnPrtbf19SxvEFQ/LqaqD+p1qB+XZpmN5ymtfU0p1wXaZ3ue1fGrXjtp1Xu343fUA2l066hV7NxIG0HdrVagNx01v4BHifFB3f5EYHf99ADrm32Ymxgyho6HzqFPQvoAAXQt/AXswkLzArYoYLPcXVwtCre8sI20Fv4id2GhReEC1mGZD3A30p3Bb9sI+mstIN75fOrPqR0AVwAQ/6Xdj02i/vzul4Wgt1H/XoFwizsp3/c607W1yi26bgp3xIQbtFa9zauhS6r89jq15Z09zZtlNHuGT/b8rm/X7CUe9tV1E9Xdl3fVu6uO4bJA9eyrxlQNu+K+P0s5FIu/oCIKFRcAhoEflkV82n/eMXCfiURcj0EDNySYGEjkg8ohgN1Om8gHv/1wG8bdJHqy93ZRBc21qPLU+lCqmxc/ZEo7bTR3Q7CouyQR2byWl/l0jshmiDSHlOkMYjNENkekqe+J7tNFCqMZIpv5Humul7opxq7X+h69zd3r1t1LPKTtHsvLAHLZW90Hnstp7I5MPQAtUZVu9IIWd4HG92bPFX44DvdY1MU0EZlyo75434HgRfeMDsNoLINwo7hGoHe71su33SM4BH/rQeEwnfVGcb1eK6jb0St4bbXZ+3etIzC8tgaJY9+b1/XgDdOtS8/gwtXzeHr7Ar6t23giGeO5QY4ra4rrqwWGvRSZ2QZk8sKPNRuw0Skk5iRW41PY7N+Bu9bvxnedPIf7N+7By07eg5ds3Il7+v0DD9MwTAv84deexe88dB6ffewSVIHXvPAU3vHqe/HX//w9OLmSoMhzXH32GVx+6glcPv9EGdi98vR5FHmOd/3LD+OO++4/0P6PIgZv6chyweLJIK/4MZqqAOtkcHVqIHbBgRlVhS1y5KkL7BZZ5gLc9SC2fy5FmiJrBcPLZVkIjreWdwTAs/EIxSw/K6mJ4hhJf4B4UAv0lsHdfhUAnmE+7vchImXANQRZ09GwyhvV8sZjF3htrFMFafcT/I77ffTKAPUAxkTug7SGL6W+55V/bcqeVtDGvFvFf0msbw+UFxG0VqZbFr4g2/JLo8J/+cQu5dLRMRE4Rhn0bQaOJ4PJzYB0M4A8c/A71KEzAG+aFxpmDcCbECCffqFgWmB/agB+1u2lue9916v9WkxcRKm2C8c8HLP2RZTJiwpolT8ZzJ98DSfLbV4k6L4AkqUWwxsphjcyDLcy7FzPMLyRYed6ip3rGdJh+JAd9msw2EiwdqKP1ZN9rJ3sY23TTVc3+1g7OUDSixrHqbttNeszeQymHb+OvwG4CMVufwPL8qWN6KDCL66sLaBFAVu4tPXDjrngdpVf5HkZ6HZTW6XzFJqOgHQEZEMgG0GyMZCPIXmYppAiheQZpHCBMClyiHXjFIvN3RjEmsOohfgxigUKoy5YFwLJCgOoAXxIL+Q35/3wEOqDU9aF9ay6QJVVl1ZEsGHerx/63KrWp6E8n4cqz0ctITC1QLipzjEwteB4OJdU67p3Axe4LOck5JZr3jbnnSoA3Qxgt4c/6RrCpSuwfjNDscwjgD7rviCu37t/YctrLeEaiSK8BbtyxN+s062nZUDd+DF9RMqfNkD8zTKbPdJDD30L1RCaDT3SQ9DbB8BDABvu788NnZK7HubWDWISaeH+XjWH+J7SGYBtIxgawbYx2BFTpkciGIrBKHK99yX8tai7PBQDWLWKVatYUWBFFStWMVCgb4E+gMQKEvcM3d+d+P7wIoDUx4GO0Bj3GQaFAorQkWH+wtjekTEu6FxOI0SRKXvUNwLQvnNaFCV+GuYXG4ietVezFgXscDi9R7AfDmLXoLDP09Fopn3KykrZo7caDqIr0LsOWV2BiECzHHY8hh3u4Nr2ZTw3vIhv2Rt4XLfxVDzEhV6Kq4Mc24MM43gIKzuofvbjnysiN0yDOYm+2cRGfAqnB2dwdu0sXnj6Xnz36Rfg5SfP4UVrJ7G6RyeDZ6+N8IlHnsIDD5/HYxe20I8N3vyKu/GO19yLN73kDsSt7W1R4NqFZ3HizrsRxcdnGMNbGrwVkR8C8Ktwtw75DVX9pdZy8cvfCmAHwLtV9eHdyjxuwdv86hiaL25cIro92KJAlo6QjcfI0zGy8QhZOkaWjpGH9HiMLB01luc+LyzPfRlu2xHy8Rh5lt50/YyJaj2C3aNXDwj3+s1lg5XO9ePadnGvN9mDuPPDR0fmbFmzZc76gcevNxn8rYLJLl/Kea0FkV0w2Pr31bANGnmh55X7KWVrf+p6i5SB5jKwXQWaQ+C8EXxu1bVchtDDSasAtq+DAK28ap9h2+p5owqo1wPfqD23MpBeO1b1Y1bbd/P41oL39SB8+7i0n2PruLi62drr0L4QMHlMtXZsXNHarH9XnbsuNITjZWvlQjvqP71uZR06jvO0urltust1ebZa90Db6y71qtpdZ7l0dDQuSkwGzdvB+3qgG1N+fTD1AkbXLyUOuP1k0LoVEJ8Ihjcvtux1AaSxLdDYZvcAfCirecGhcRFiygWHm7oA0no+mOXCwJRyw3Ga/QLIlAsDrbZ1oF9XzNo2uo57/bmV7XjyuLVfu/29nvuMqKi6n9dnOz5AHKbDjrzdlrm0lnnN5ZLPFnBoC+MP5+JujZYiQaoJxhpjZMMjwqiIMLIG49wgV+Nv1mZQWH/DOHVTaw2sws1bQaYGquI6x6I2FYGB8UMkGES+DURiYAD4mCEkvM/4YVNC9LEMKof20AhAh2X+1z4+bVC99vXl1Xah3U9fJ+zL+HqXNySDv0mYwE3L5xj22aqf7xEuvrzyb6/Zx7yZrpVTPmepr2NaaZT1uh3UB2XZK+BdD06HYPtBguQ3G0C/mWC91v4JLKpvEWHAmioIXv1rb6kd6+jEsC/tNet93C20vIFreC9xqps++ndIlLeFlJBuT7vyAJHuZQaKyLgbi8YiPg3Exj0iMYgjQWwEUSSII4PYhGmEOI5cOo4QRxHiOEYSR4jjBEkcI0kSxEmCJE6QJAmSXh+xMTBpimg8hhmNYEZjyGgIGY8hwyEwHEKGI2C4Ax0Oge0d6M62C/62xhTWbPpQgnWmHgBeWXHDO8QxFIqRpriKFBdMhktJjou9HJdWClxZLXBtJceNlRF2+ilGPWCcAP6NC1YGELOJRE5g1ZzEZnwKdw7O4Nz6Wdx/+gV4+d3fjVecugene24826+cv4YHHj6PT375aVzdyXDnRh9vf9U5vOPV9+J7zm7M9DxuV7cseCsiEYD/C+DNAM4D+CKAv6mqX6ut81YAPwkXvH0DgF9V1TfsVu5xC95+68Ofw/Cpa7e6GnTECfb5BaBOFbnmsJojtzkKzfwjR2Fz5JpBoUikh9gkiCRGLAki03NpE8NghkHTZzgd3dTzKMuYh91Lmc8+ZqnFze1ptq2X45jP47Xfcx+z7GJiJdl98cT2u2fMsn11LGRi2az7nuV47l2X3Y/FbGXssn0ZX5msbfVVIAS83RykdvHBr+GW+4sXYStVQKTcvroogGZeSLeWtbdr7Kv8StLebqLWqD6GhTqF+lf7rz83wI35nhbAqLAY5xbjwj/yalrWx29rDNCLgF5k0DNALxL0Y0EvApJIEPtO22U9wz6BWs2r8nxNJp+jui9enfWfWn4taN84bpOv4Z6vl0457u39aW0bv36ow+Q+6vtv1meiHtPW6dzHZD2qC0f1tl19Ga5v271OfT+1umh3/egoqAK7QC0AjBA0bs9Xgb9p8whBY9TmQ8AuBNob862gNUIopQqcQG2Vh9oYxOpCMuW4wjqZdtMC4qdQl0bZT7Csfm3f4f0lBF9cGiK1AQSML8FPpT4PdzO32nrW91Z0PRRjqIkBSQCTQEwCifqIoh7iuId+nKCXxOjFMZIodr32Ji5QO42LumFZ6yJzdfHWlts3L9La8hykIR0ukoZxtWv55dTasiw3r7Dqjrm1zfWsWqCwbugMLcptD9hqUe9NXQWqmz2vJbTpcp12kNuXJGGICD8VccF4qF/m1ivHMIb77BDWNT64LeW6KLdpT8MFHheE97/ilMjn19MRRCK4C4VuCon8wwDwad/r3E39PELQ27VBXyOEsGT5CEMwVG9F7nxeH9Nd1V+oAEQF0aF9C1ms7mFOdgtK31yQfB5DuBwkgK5luvqk2A5oV8ej/i+sq4AoxOZI8hR9O3bTfIxeMXZTP9/PR+jlY/SzFIPcLeunI/TzFIN0hH42wiBNEdkce31OsAKMkgg7PYNhTzDsATt9YDiwGPYKDPvAqAfs9AXDPjBMgJ1egmGvh1HSx7jXR5oMMIxXsKMDZFkP1vYwSHo4s97D6dUYcSz4xb/yE3jZmRfuq+0cZbsFbxfd//j1AB5T1W/7ivwnAG8D8LXaOm8D8Fvq3hk+LyKbInKPqj6z4LodGb/z/Gcx7G/f6moQEdFxs9d3tqMS/5lDPQ/rQkdnXaWVDL94TvauR1dx0w7HfL/uzXBxYObXZcrFijnVY/El3LrSd9vbbk2tvqz+OikOUuNFnChCTXYp+0C7vdm6zrh952oH3bd2pPZYf1+72s/Ks6yrncn9lbP7ma17a911dvY6KGDHQDoGbvqHaTMcr11X8QG+hXd2ncPf8CF9XpB97ah+xtvH3+7EqlU5B+9o0L3d/kurrnI03mPLiy71UptzIa9+sSicattrTj5P6V4qXWt31aWVK9OXzbT/ZgWm/j9Z3ynPA1W4PYKUH78aF9Ya/x/8vf1Ar3nQuEda4h/rE1sogKF/7FVq8yJwldNaivp7Sx9Av7VeeS18rMC4uvjcnEz+/6kv/Vu87Jd+eZeaHh+LDt6eA/Bkbf48XO/avdY5B6ARvBWR9wB4DwDcd999c6/oMrNmE8nWqSqj/Ptsv3Ps8qGlPP92bLPHGUI7/kC7yt5ljd3N9O1tcp1GTr0Mqde5dYqR9paKcDGznqe1Ze29NpbVCu56+2tWtvlm0Kj+ZCVRe9GmbdHYc8cOD9dN73Iedd7ji9wubX2/X30OaqYvFMHU+s7hi1RH2fN55oup235Lnk8J+31dDrbHmYvrLGza1jrDOrPrLGHqkzvsEOAU+zhes+xjrmeGORy7mz7KKhA1EBUYNS5t3fxhBxQP7qhcPZiHQ7sCsX86deZw6zF3uz+Xw2t9c97Two7/Ufl77K6n1JfVPpg38n26eXms+Z2jubxab6ID67Tvc+2/p6mf13YJLu9qf9+79vgGNlv5PgDYXqf5Xa6dsdt+Zm1rs9T+YN9DD7aOW0/3+r7SWHfKbmb4YNY8nPWy7C5l1DeU1vwBHNZp4abPa4fxxlSLFnT+LK07yN1cfXK77lhAK7djf9NiFwKZ/JOtlVEP6k7sO1w46CqjHFapXUZ3PULpJ4dH5b1l8RYdvJ0lqjRT5ElVPwrgo4AbNuHmq3Z0fOAf/N1bXQUiIiIiIiIiIqKFs1ZhzJG54rtwi/6RxXkAL6jN3wvg6QOsQ0RERERERERERLc5Bm6bFh28/SKAl4rIi0SkB+BHAXyytc4nAbxTnDcCuMbxbomIiIiIiIiIiOi4W+iwCaqai8j7AHwGQATg46r6qIi81y//CIBPA3grgMcA7AD4O4usExEREREREREREdFRsOgxb6Gqn4YL0NbzPlJLK4C/t+h6EBERERERERERER0lix42gYiIiIiIiIiIiIgOgMFbIiIiIiIiIiIioiXE4C0RERERERERERHREmLwloiIiIiIiIiIiGgJMXhLREREREREREREtIQYvCUiIiIiIiIiIiJaQgzeEhERERERERERES0hBm+JiIiIiIiIiIiIlhCDt0RERERERERERERLiMFbIiIiIiIiIiIioiXE4C0RERERERERERHREmLwloiIiIiIiIiIiGgJMXhLREREREREREREtIQYvCUiIiIiIiIiIiJaQgzeEhERERERERERES0hBm+JiIiIiIiIiIiIlhCDt0RERERERERERERLiMFbIiIiIiIiIiIioiXE4C0RERERERERERHREhJVvdV12DcRuQjgO7e6HsfUHQAu3epKEO2CbZSWHdsoLTu2UVp2bKO07NhGadmxjdKyO45t9IWqemfXgiMZvKVbR0S+pKqvvdX1IJqGbZSWHdsoLTu2UVp2bKO07NhGadmxjdKyYxtt4rAJREREREREREREREuIwVsiIiIiIiIiIiKiJcTgLe3XR291BYj2wDZKy45tlJYd2ygtO7ZRWnZso7Ts2EZp2bGN1nDMWyIiIiIiIiIiIqIlxJ63REREREREREREREuIwVsiIiIiIiIiIiKiJcTg7TEnIi8QkT8Rka+LyKMi8n6ff1pE/ruIfNNPT/n8M379LRH5cKusB0XkGyLyf/zjrlvxnOj2coA2+mYReUhEvuqnP1gr6zU+/zER+TURkVv1vOj2Mec2yvMozd0B2ujra23wyyLy9lpZPI/S3M25jfI8SnO33zZa2+4+/73pZ2t5PI/S3M25jfI8SnN3gPf6+0VkWGuHH6mVdezOoxzz9pgTkXsA3KOqD4vIBoCHAPwwgHcDuKKqvyQiPw/glKr+nIisAXgVgFcCeKWqvq9W1oMAflZVv3TIT4NuYwdoo68C8JyqPi0irwTwGVU958v63wDeD+DzAD4N4NdU9Q8O/1nR7WTObfRB8DxKc3aANroKIFXV3G/7ZQDf5ed5HqW5m3MbfRA8j9Kc7beN1rZ7AIAF8AVV/RWfx/Mozd2c2+iD4HmU5uwA7/X3A/h9VX1lR1nH7jzKnrfHnKo+o6oP+/QNAF8HcA7A2wD8pl/tN+H+qKCq26r6WQCjw68tHUcHaKOPqOrTPv9RAAMR6fs3ixOq+jl1V61+K2xDdDPm1UYPtdJ0rBygje6oau7zBwAUKD908zxKczevNkq0KPttowAgIj8M4Ntw7/Uhj+dRWoh5tVGiRTlIG+1yXM+jDN5SyV/ZeBWALwC4W1WfAdwfGYBZfyrx732X9n90HLqu0+E6QBt9B4BHVHUM98ZwvrbsvM8jmpubbKMBz6O0MLO2URF5g4g8CuCrAN7rA2U8j9LC3WQbDXgepYWZpY36Xyv+HIAPtjbneZQW7ibbaMDzKC3MPr4zvUhEHhGR/yEib/J5x/I8yuAtAQBEZB3AAwB+WlWvH7CYv6Wqfw7Am/zjx+ZVP6L9tlER+T4AvwzgJ0JWx2rsqUNzM4c2CvA8Sgu0nzaqql9Q1e8D8DoAHxCRAXgepQWbQxsFeB6lBdpHG/0ggH+tqlvtIjrW5XmU5mYObRTgeZQWaB9t9BkA96nqqwD8DIDfFpETOKbnUQZvCSKSwP3x/EdV/V2f/Zzvjh66pV/YqxxVfcpPbwD4bQCvX0yN6bjZbxsVkXsBfALAO1X1Wz77PIB7a8XeC+BpEM3BnNooz6O0MAd9r1fVrwPYhhvrnudRWpg5tVGeR2lh9tlG3wDgX4jI4wB+GsAviMj7wPMoLdCc2ijPo7Qw+2mjqjpW1cs+/RCAbwF4GY7peZTB22PO/wTiYwC+rqr/qrbokwDe5dPvAvBf9ignFpE7fDoB8DcA/Nn8a0zHzX7bqIhsAvgUgA+o6v8KK/ufYNwQkTf6Mt+JPdo10Szm1UZ5HqVFOUAbfZGIxD79QgDfA+BxnkdpUebVRnkepUXZbxtV1Tep6v2qej+AfwPgn6nqh3kepUWZVxvleZQW5QDv9XeKSOTTLwbwUgDfPq7nUXHj+9JxJSJ/EcD/hBsvzPrsX4Abe+Q/A7gPwBMAfkRVr/htHgdwAkAPwFUAbwHwHQB/CiABEAH4IwA/o6rFIT0Vuk3tt42KyD8E8AEA36wV8xZVvSAirwXwHwCsAPgDAD+pPAnSTZpXG4XrOcbzKM3dAdrojwH4eQCZX/9Dqvp7viyeR2nu5tVG/RiOPI/S3B3kO1Nt238CYEtVf8XP8zxKczevNsrzKC3KAd7r3wHgQwByAAWAf6yq/9WXdezOowzeEhERERERERERES0hDptAREREREREREREtIQYvCUiIiIiIiIiIiJaQgzeEhERERERERERES0hBm+JiIiIiIiIiIiIlhCDt0RERERERERERERLiMFbIiIiIiIiIiIioiXE4C0RERER0U0SkehW14GIiIiIbj8M3hIRERHRsSIivygi76/N/1MR+SkR+fsi8kUR+YqIfLC2/PdE5CEReVRE3lPL3xKRD4nIFwD8wCE/DSIiIiI6Bhi8JSIiIqLj5mMA3gUAImIA/CiA5wC8FMDrAfwFAK8Rkb/k1/9xVX0NgNcC+CkROePz1wD8maq+QVU/e4j1JyIiIqJjIr7VFSAiIiIiOkyq+riIXBaRVwG4G8AjAF4H4C0+DQDrcMHcP4UL2L7d57/A518GUAB44DDrTkRERETHC4O3RERERHQc/QaAdwM4C+DjAP4qgH+uqv+uvpKI/GUAfw3AD6jqjog8CGDgF49UtTik+hIRERHRMcRhE4iIiIjoOPoEgB+C63H7Gf/4cRFZBwAROScidwE4CeB5H7h9OYA33qoKExEREdHxw563RERERHTsqGoqIn8C4KrvPfuHIvK9AD4nIgCwBeBvA/hvAN4rIl8B8A0An79VdSYiIiKi40dU9VbXgYiIiIjoUPkblT0M4EdU9Zu3uj5ERERERF04bAIRERERHSsi8goAjwH4YwZuiYiIiGiZsectERERERERERER0RJiz1siIiIiIiIiIiKiJcTgLREREREREREREdESYvCWiIiIiIiIiIiIaAkxeEtERERERERERES0hBi8JSIiIiIiIiIiIlpC/x8yvuV+2HdCgAAAAABJRU5ErkJggg==\n", "text/plain": [ "
    " ] @@ -342,10 +667,10 @@ } ], "source": [ - "plottable_df = df.pivot(index='year', columns='company_name', values='co2_target_by_year').reset_index()\n", + "plottable_df = df.pivot(index='year', columns='company_name', values='co2_s1_by_year').reset_index()\n", "\n", "# Must plot the first few columns, but then plot 1/3rd of the companies so as not to over-clutter the graph\n", - "plottable_df.iloc[:, [x for x in list(range(0,3)) + list(range(3,57,2))]].plot(x='year', kind='line', figsize=(24,10))" + "plottable_df.iloc[:, [x for x in list(range(0,3)) + list(range(3,55,2))]].plot(x='year', kind='line', figsize=(24,10))" ] }, { diff --git a/examples/vault_demo_n1.ipynb b/examples/vault_demo_n1.ipynb index a8e6dc4d..66de6f0c 100644 --- a/examples/vault_demo_n1.ipynb +++ b/examples/vault_demo_n1.ipynb @@ -65,7 +65,16 @@ "execution_count": 2, "id": "969b6d53-49d8-47d9-b218-6bdd790a7de4", "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/Users/michael/opt/miniconda3/envs/jupyter/lib/python3.10/site-packages/sqlalchemy_trino/dialect.py:259: SAWarning: Dialect trino:rest will not make use of SQL compilation caching as it does not set the 'supports_statement_cache' attribute to ``True``. This can have significant performance implications including some performance degradations in comparison to prior SQLAlchemy versions. Dialect maintainers should seek to set this attribute to True after appropriate development and testing for SQLAlchemy 1.4 caching support. Alternatively, this attribute may be set to False which will disable this warning. (Background on this error at: https://sqlalche.me/e/14/cprf)\n", + " res = connection.execute(sql.text(query)).scalar()\n" + ] + } + ], "source": [ "import json\n", "import pandas as pd\n", @@ -78,9 +87,9 @@ "# from ITR.data.data_warehouse import DataWarehouse\n", "from ITR.data.vault_providers import VaultCompanyDataProvider, VaultProviderProductionBenchmark, \\\n", " VaultProviderIntensityBenchmark, DataVaultWarehouse\n", - "# from ITR.interfaces import ICompanyData, EScope, ETimeFrames, PortfolioCompany, IEmissionIntensityBenchmarkScopes, \\\n", + "# from ITR.interfaces import ICompanyData, EScope, ETimeFrames, PortfolioCompany, IEIBenchmarkScopes, \\\n", "# IProductionBenchmarkScopes\n", - "from ITR.interfaces import EScope, IProductionBenchmarkScopes, IEmissionIntensityBenchmarkScopes" + "from ITR.interfaces import EScope, IProductionBenchmarkScopes, IEIBenchmarkScopes" ] }, { @@ -103,7 +112,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "connecting with engine Engine(trino://os-climate-user2@trino-secure-odh-trino.apps.odh-cl1.apps.os-climate.org:443/)\n" + "connecting with engine Engine(trino://os-climate-user2@trino-secure-odh-trino.apps.odh-cl2.apps.os-climate.org:443/)\n" ] } ], @@ -117,11 +126,11 @@ " 'auth': trino.auth.JWTAuthentication(os.environ['TRINO_PASSWD_USER2']),\n", " 'http_scheme': 'https',\n", " 'catalog': 'osc_datacommons_dev',\n", - " 'schema': 'demo',\n", + " 'schema': 'demo_dv',\n", "}\n", "\n", "ingest_catalog = 'osc_datacommons_dev'\n", - "ingest_schema = 'demo'\n", + "ingest_schema = 'demo_dv'\n", "\n", "engine_quant = create_engine(sqlstring, connect_args = sqlargs)\n", "print(\"connecting with engine \" + str(engine_quant))\n", @@ -147,7 +156,7 @@ " company_table='company_data',\n", " target_table=None,\n", " trajectory_table=None,\n", - " company_schema='demo',\n", + " company_schema='demo_dv',\n", " column_config=None,\n", " tempscore_config=None)" ] @@ -162,854 +171,128 @@ "vault_warehouse = DataVaultWarehouse(engine_quant,\n", " company_data=None,\n", " benchmark_projected_production=None,\n", - " benchmarks_projected_emissions_intensity=None,\n", - " ingest_schema = 'demo',\n", + " benchmarks_projected_ei=None,\n", + " ingest_schema = 'demo_dv',\n", " column_config=None,\n", " tempscore_config=None)\n", "\n", - "vault_warehouse.quant_init(engine_quant, company_data=vault_company_data, ingest_schema='demo')" + "vault_warehouse.quant_init(engine_quant, company_data=vault_company_data, ingest_schema='demo_dv')" ] }, { - "cell_type": "markdown", - "id": "236c94f8-1709-4d7a-9beb-85419e65be5c", + "cell_type": "code", + "execution_count": 6, + "id": "be2d45e2-4a19-4e6a-932d-bc7ea8e0eea0", "metadata": {}, + "outputs": [], "source": [ - "Show that we *can* access both cumulative emissions (input) and temperature scores (output)" + "from ITR.data.osc_units import *\n", + "ureg.setup_matplotlib()" ] }, { "cell_type": "code", - "execution_count": 6, - "id": "2483f3de-ca17-4dcd-b140-deebcdb5639b", + "execution_count": 7, + "id": "2058f979-3486-4e77-93ce-927aff6ff988", "metadata": {}, "outputs": [], "source": [ - "temp_score_df = pd.read_sql_table(f\"temperature_scores\", engine_quant)" + "# Because this DF comes from reading a Trino table, and because columns must be unqiue, we don't have to enumerate to ensure we properly handle columns with duplicated names\n", + "\n", + "def requantify_df(df: pd.DataFrame) -> pd.DataFrame:\n", + " units_col = None\n", + " columns_reversed = reversed(df.columns)\n", + " for col in columns_reversed:\n", + " if col.endswith(\"_units\"):\n", + " if units_col:\n", + " # We expect _units column to follow a non-units column\n", + " raise ValueError\n", + " units_col = col\n", + " continue\n", + " if units_col:\n", + " if col + '_units' != units_col:\n", + " raise ValueError\n", + " if (df[units_col]==df[units_col][0]).all():\n", + " # Make a PintArray\n", + " new_col = PintArray(df[col], dtype=f\"pint[{ureg(df[units_col][0]).u}]\")\n", + " else:\n", + " # Make a pd.Series of Quantity in a way that does not throw UnitStrippedWarning\n", + " new_col = pd.Series(data=df[col], name=col) * pd.Series(data=df[units_col].map(lambda x: ureg(x).u), name=col)\n", + " df = df.drop(columns=units_col)\n", + " df[col] = new_col\n", + " units_col = None\n", + " return df" + ] + }, + { + "cell_type": "markdown", + "id": "236c94f8-1709-4d7a-9beb-85419e65be5c", + "metadata": {}, + "source": [ + "Show that we *can* access both cumulative emissions (input) and temperature scores (output)" ] }, { "cell_type": "code", - "execution_count": 7, - "id": "1ae21697-98f1-4901-bd32-b4856555b809", + "execution_count": 8, + "id": "2483f3de-ca17-4dcd-b140-deebcdb5639b", "metadata": {}, "outputs": [ { - "data": { - "text/html": [ - "
    \n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
    company_namecompany_idsourcescopebenchmarktrajectory_temperature_scoretarget_temperature_score
    0PNM Resources, Inc.US69349H1077demoS1+S2benchmark_12.1687891.624339
    1OG&E Energy Corp.US6708371033demoS1+S2benchmark_12.4805012.720746
    2Alcoa Corp.US0138721065demoS1+S2benchmark_11.2622271.262227
    3SempraUS8168511090demoS1+S2benchmark_11.3848001.344634
    4Public Service Enterprise GroupUS7445731067demoS1+S2benchmark_11.2622271.262227
    5CMS Energy Corp.US1258961002demoS1+S2benchmark_12.2895161.751847
    6Ameren Corp.US0236081024demoS1+S2benchmark_12.6426902.201277
    7Black Hills Corp.US0921131092demoS1+S2benchmark_12.2058301.884104
    8PPL Corp.US69351T1060demoS1+S2benchmark_13.2559602.863050
    9Dominion EnergyUS25746U1097demoS1+S2benchmark_11.8504021.636624
    10Algonquin Power & Utilities Corp.US0158577090demoS1+S2benchmark_11.2622271.262227
    11TIMKENSTEEL CORPUS8873991033demoS1+S2benchmark_11.3082651.281435
    12Hawaiian Electric Industries, Inc.US4198701009demoS1+S2benchmark_12.3350981.763241
    13Eversource EnergyUS30040W1080demoS1+S2benchmark_11.2622271.262227
    14DTE EnergyUS2333311072demoS1+S2benchmark_12.9069392.242253
    15ALLETE, Inc.US0185223007demoS1+S2benchmark_12.1905751.935872
    16Avista Corp.US05379B1070demoS1+S2benchmark_11.2622271.262227
    17WORTHINGTON INDUSTRIES INCUS9818111026demoS1+S2benchmark_11.2679061.267906
    18GERDAU S.A.US3737371050demoS1+S2benchmark_11.4329991.346019
    19NUCOR CORPUS6703461052demoS1+S2benchmark_11.3184071.301686
    20PG&E Corp.US69331C1080demoS1+S2benchmark_11.3578831.308873
    21Verso Corp.US92531L2079demoS1+S2benchmark_11.2622271.262227
    22COMMERCIAL METALS COUS2017231034demoS1+S2benchmark_11.3332921.295746
    23Fortis, Inc.CA3495531079demoS1+S2benchmark_12.4429521.810396
    24Otter Tail Corp.US6896481032demoS1+S2benchmark_12.5837442.835409
    25Cleco Partners LPUS18551QAA58demoS1+S2benchmark_11.2622271.262227
    26WEC Energy GroupUS92939U1060demoS1+S2benchmark_12.4289142.495716
    27Pinnacle West Capital Corp.US7234841010demoS1+S2benchmark_12.0662921.616243
    28Xcel Energy, Inc.US98389B1008demoS1+S2benchmark_12.1461731.587192
    29Brookfield Asset ManagementCA1125851040demoS1+S2benchmark_11.2622271.262227
    30Northwestern Corp.US6680743050demoS1+S2benchmark_11.8579691.662417
    31UNITED STATES STEEL CORPUS9129091081demoS1+S2benchmark_11.6235041.445919
    32TC Energy Corp.CA87807B1076demoS1+S2benchmark_11.2622271.262227
    33AES Corp.US00130H1059demoS1+S2benchmark_12.3518061.860013
    34TENARIS SAUS88031M1099demoS1+S2benchmark_11.3176651.317665
    35Avangrid, Inc.US05351W1036demoS1+S2benchmark_11.3278951.271416
    36CARPENTER TECHNOLOGY CORPUS1442851036demoS1+S2benchmark_11.5849221.408775
    37American Electric Power Co., Inc.US0255371017demoS1+S2benchmark_12.4825522.053782
    38Duke Energy Corp.US26441C2044demoS1+S2benchmark_12.0704751.851114
    39Evergy, Inc.US30034W1062demoS1+S2benchmark_12.6768492.362005
    40Vistra Corp.US92840M1027demoS1+S2benchmark_11.2622271.262227
    41Consolidated Edison, Inc.US2091151041demoS1+S2benchmark_11.5762691.427115
    42Southern Co.US8425871071demoS1+S2benchmark_12.3285992.170918
    43POSCOKR7005490008demoS1+S2benchmark_11.6552971.460259
    44FirstEnergy Corp.US3379321074demoS1+S2benchmark_13.3739772.076536
    45Alliant EnergyUS0188021085demoS1+S2benchmark_12.1700231.804351
    46Entergy Corp.US29364G1031demoS1+S2benchmark_11.2622271.262227
    47National Grid PLCUS6362744095demoS1+S2benchmark_12.1453141.799658
    48Portland General Electric Co.US7365088472demoS1+S2benchmark_12.1849971.524214
    49STEEL DYNAMICS INCUS8581191009demoS1+S2benchmark_11.3293451.299339
    \n", - "
    " - ], - "text/plain": [ - " company_name company_id source scope \\\n", - "0 PNM Resources, Inc. US69349H1077 demo S1+S2 \n", - "1 OG&E Energy Corp. US6708371033 demo S1+S2 \n", - "2 Alcoa Corp. US0138721065 demo S1+S2 \n", - "3 Sempra US8168511090 demo S1+S2 \n", - "4 Public Service Enterprise Group US7445731067 demo S1+S2 \n", - "5 CMS Energy Corp. US1258961002 demo S1+S2 \n", - "6 Ameren Corp. US0236081024 demo S1+S2 \n", - "7 Black Hills Corp. US0921131092 demo S1+S2 \n", - "8 PPL Corp. US69351T1060 demo S1+S2 \n", - "9 Dominion Energy US25746U1097 demo S1+S2 \n", - "10 Algonquin Power & Utilities Corp. US0158577090 demo S1+S2 \n", - "11 TIMKENSTEEL CORP US8873991033 demo S1+S2 \n", - "12 Hawaiian Electric Industries, Inc. US4198701009 demo S1+S2 \n", - "13 Eversource Energy US30040W1080 demo S1+S2 \n", - "14 DTE Energy US2333311072 demo S1+S2 \n", - "15 ALLETE, Inc. US0185223007 demo S1+S2 \n", - "16 Avista Corp. US05379B1070 demo S1+S2 \n", - "17 WORTHINGTON INDUSTRIES INC US9818111026 demo S1+S2 \n", - "18 GERDAU S.A. US3737371050 demo S1+S2 \n", - "19 NUCOR CORP US6703461052 demo S1+S2 \n", - "20 PG&E Corp. US69331C1080 demo S1+S2 \n", - "21 Verso Corp. US92531L2079 demo S1+S2 \n", - "22 COMMERCIAL METALS CO US2017231034 demo S1+S2 \n", - "23 Fortis, Inc. CA3495531079 demo S1+S2 \n", - "24 Otter Tail Corp. US6896481032 demo S1+S2 \n", - "25 Cleco Partners LP US18551QAA58 demo S1+S2 \n", - "26 WEC Energy Group US92939U1060 demo S1+S2 \n", - "27 Pinnacle West Capital Corp. US7234841010 demo S1+S2 \n", - "28 Xcel Energy, Inc. US98389B1008 demo S1+S2 \n", - "29 Brookfield Asset Management CA1125851040 demo S1+S2 \n", - "30 Northwestern Corp. US6680743050 demo S1+S2 \n", - "31 UNITED STATES STEEL CORP US9129091081 demo S1+S2 \n", - "32 TC Energy Corp. CA87807B1076 demo S1+S2 \n", - "33 AES Corp. US00130H1059 demo S1+S2 \n", - "34 TENARIS SA US88031M1099 demo S1+S2 \n", - "35 Avangrid, Inc. US05351W1036 demo S1+S2 \n", - "36 CARPENTER TECHNOLOGY CORP US1442851036 demo S1+S2 \n", - "37 American Electric Power Co., Inc. US0255371017 demo S1+S2 \n", - "38 Duke Energy Corp. US26441C2044 demo S1+S2 \n", - "39 Evergy, Inc. US30034W1062 demo S1+S2 \n", - "40 Vistra Corp. US92840M1027 demo S1+S2 \n", - "41 Consolidated Edison, Inc. US2091151041 demo S1+S2 \n", - "42 Southern Co. US8425871071 demo S1+S2 \n", - "43 POSCO KR7005490008 demo S1+S2 \n", - "44 FirstEnergy Corp. US3379321074 demo S1+S2 \n", - "45 Alliant Energy US0188021085 demo S1+S2 \n", - "46 Entergy Corp. US29364G1031 demo S1+S2 \n", - "47 National Grid PLC US6362744095 demo S1+S2 \n", - "48 Portland General Electric Co. US7365088472 demo S1+S2 \n", - "49 STEEL DYNAMICS INC US8581191009 demo S1+S2 \n", - "\n", - " benchmark trajectory_temperature_score target_temperature_score \n", - "0 benchmark_1 2.168789 1.624339 \n", - "1 benchmark_1 2.480501 2.720746 \n", - "2 benchmark_1 1.262227 1.262227 \n", - "3 benchmark_1 1.384800 1.344634 \n", - "4 benchmark_1 1.262227 1.262227 \n", - "5 benchmark_1 2.289516 1.751847 \n", - "6 benchmark_1 2.642690 2.201277 \n", - "7 benchmark_1 2.205830 1.884104 \n", - "8 benchmark_1 3.255960 2.863050 \n", - "9 benchmark_1 1.850402 1.636624 \n", - "10 benchmark_1 1.262227 1.262227 \n", - "11 benchmark_1 1.308265 1.281435 \n", - "12 benchmark_1 2.335098 1.763241 \n", - "13 benchmark_1 1.262227 1.262227 \n", - "14 benchmark_1 2.906939 2.242253 \n", - "15 benchmark_1 2.190575 1.935872 \n", - "16 benchmark_1 1.262227 1.262227 \n", - "17 benchmark_1 1.267906 1.267906 \n", - "18 benchmark_1 1.432999 1.346019 \n", - "19 benchmark_1 1.318407 1.301686 \n", - "20 benchmark_1 1.357883 1.308873 \n", - "21 benchmark_1 1.262227 1.262227 \n", - "22 benchmark_1 1.333292 1.295746 \n", - "23 benchmark_1 2.442952 1.810396 \n", - "24 benchmark_1 2.583744 2.835409 \n", - "25 benchmark_1 1.262227 1.262227 \n", - "26 benchmark_1 2.428914 2.495716 \n", - "27 benchmark_1 2.066292 1.616243 \n", - "28 benchmark_1 2.146173 1.587192 \n", - "29 benchmark_1 1.262227 1.262227 \n", - "30 benchmark_1 1.857969 1.662417 \n", - "31 benchmark_1 1.623504 1.445919 \n", - "32 benchmark_1 1.262227 1.262227 \n", - "33 benchmark_1 2.351806 1.860013 \n", - "34 benchmark_1 1.317665 1.317665 \n", - "35 benchmark_1 1.327895 1.271416 \n", - "36 benchmark_1 1.584922 1.408775 \n", - "37 benchmark_1 2.482552 2.053782 \n", - "38 benchmark_1 2.070475 1.851114 \n", - "39 benchmark_1 2.676849 2.362005 \n", - "40 benchmark_1 1.262227 1.262227 \n", - "41 benchmark_1 1.576269 1.427115 \n", - "42 benchmark_1 2.328599 2.170918 \n", - "43 benchmark_1 1.655297 1.460259 \n", - "44 benchmark_1 3.373977 2.076536 \n", - "45 benchmark_1 2.170023 1.804351 \n", - "46 benchmark_1 1.262227 1.262227 \n", - "47 benchmark_1 2.145314 1.799658 \n", - "48 benchmark_1 2.184997 1.524214 \n", - "49 benchmark_1 1.329345 1.299339 " - ] - }, - "execution_count": 7, - "metadata": {}, - "output_type": "execute_result" + "name": "stderr", + "output_type": "stream", + "text": [ + "/Users/michael/opt/miniconda3/envs/jupyter/lib/python3.10/site-packages/pandas/io/sql.py:1773: SAWarning: index key 'partition' was not located in columns for table 'temperature_scores'\n", + " tbl = Table(\n", + "/Users/michael/opt/miniconda3/envs/jupyter/lib/python3.10/site-packages/pandas/io/sql.py:1773: SAWarning: index key 'record_count' was not located in columns for table 'temperature_scores'\n", + " tbl = Table(\n", + "/Users/michael/opt/miniconda3/envs/jupyter/lib/python3.10/site-packages/pandas/io/sql.py:1773: SAWarning: index key 'file_count' was not located in columns for table 'temperature_scores'\n", + " tbl = Table(\n", + "/Users/michael/opt/miniconda3/envs/jupyter/lib/python3.10/site-packages/pandas/io/sql.py:1773: SAWarning: index key 'total_size' was not located in columns for table 'temperature_scores'\n", + " tbl = Table(\n", + "/Users/michael/opt/miniconda3/envs/jupyter/lib/python3.10/site-packages/pandas/io/sql.py:1773: SAWarning: index key 'data' was not located in columns for table 'temperature_scores'\n", + " tbl = Table(\n" + ] } ], "source": [ - "temp_score_df" + "sql_temp_score_df = pd.read_sql_table(f\"temperature_scores\", engine_quant)" ] }, { "cell_type": "code", - "execution_count": 8, - "id": "c1270d41-5a03-43dd-b90b-f305299dbe99", + "execution_count": 9, + "id": "1ae21697-98f1-4901-bd32-b4856555b809", "metadata": {}, "outputs": [], "source": [ - "plottable_df = temp_score_df[['company_name', 'trajectory_temperature_score', 'target_temperature_score']].sort_values('company_name').set_index('company_name').T" + "temp_score_df = requantify_df(sql_temp_score_df)\n", + "temp_score_df.trajectory_temperature_score = temp_score_df.trajectory_temperature_score.astype('pint[delta_degC]')\n", + "temp_score_df.target_temperature_score = temp_score_df.target_temperature_score.astype('pint[delta_degC]')" ] }, { "cell_type": "code", - "execution_count": 9, - "id": "01fa19a8-4705-46aa-8a39-49e4a0cd0a33", + "execution_count": 10, + "id": "c1270d41-5a03-43dd-b90b-f305299dbe99", "metadata": {}, "outputs": [ { - "data": { - "text/html": [ - "
    \n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
    company_nameAES Corp.ALLETE, Inc.Alcoa Corp.Algonquin Power & Utilities Corp.Alliant EnergyAmeren Corp.American Electric Power Co., Inc.Avangrid, Inc.Avista Corp.Black Hills Corp....Southern Co.TC Energy Corp.TENARIS SATIMKENSTEEL CORPUNITED STATES STEEL CORPVerso Corp.Vistra Corp.WEC Energy GroupWORTHINGTON INDUSTRIES INCXcel Energy, Inc.
    trajectory_temperature_score2.3518062.1905751.2622271.2622272.1700232.6426902.4825521.3278951.2622272.205830...2.3285991.2622271.3176651.3082651.6235041.2622271.2622272.4289141.2679062.146173
    target_temperature_score1.8600131.9358721.2622271.2622271.8043512.2012772.0537821.2714161.2622271.884104...2.1709181.2622271.3176651.2814351.4459191.2622271.2622272.4957161.2679061.587192
    \n", - "

    2 rows × 50 columns

    \n", - "
    " - ], - "text/plain": [ - "company_name AES Corp. ALLETE, Inc. Alcoa Corp. \\\n", - "trajectory_temperature_score 2.351806 2.190575 1.262227 \n", - "target_temperature_score 1.860013 1.935872 1.262227 \n", - "\n", - "company_name Algonquin Power & Utilities Corp. \\\n", - "trajectory_temperature_score 1.262227 \n", - "target_temperature_score 1.262227 \n", - "\n", - "company_name Alliant Energy Ameren Corp. \\\n", - "trajectory_temperature_score 2.170023 2.642690 \n", - "target_temperature_score 1.804351 2.201277 \n", - "\n", - "company_name American Electric Power Co., Inc. \\\n", - "trajectory_temperature_score 2.482552 \n", - "target_temperature_score 2.053782 \n", - "\n", - "company_name Avangrid, Inc. Avista Corp. Black Hills Corp. \\\n", - "trajectory_temperature_score 1.327895 1.262227 2.205830 \n", - "target_temperature_score 1.271416 1.262227 1.884104 \n", - "\n", - "company_name ... Southern Co. TC Energy Corp. TENARIS SA \\\n", - "trajectory_temperature_score ... 2.328599 1.262227 1.317665 \n", - "target_temperature_score ... 2.170918 1.262227 1.317665 \n", - "\n", - "company_name TIMKENSTEEL CORP UNITED STATES STEEL CORP \\\n", - "trajectory_temperature_score 1.308265 1.623504 \n", - "target_temperature_score 1.281435 1.445919 \n", - "\n", - "company_name Verso Corp. Vistra Corp. WEC Energy Group \\\n", - "trajectory_temperature_score 1.262227 1.262227 2.428914 \n", - "target_temperature_score 1.262227 1.262227 2.495716 \n", - "\n", - "company_name WORTHINGTON INDUSTRIES INC Xcel Energy, Inc. \n", - "trajectory_temperature_score 1.267906 2.146173 \n", - "target_temperature_score 1.267906 1.587192 \n", - "\n", - "[2 rows x 50 columns]" - ] - }, - "execution_count": 9, - "metadata": {}, - "output_type": "execute_result" + "name": "stderr", + "output_type": "stream", + "text": [ + "/Users/michael/opt/miniconda3/envs/jupyter/lib/python3.10/site-packages/pint_pandas/pint_array.py:648: UnitStrippedWarning: The unit of the quantity is stripped when downcasting to ndarray.\n", + " return np.array(qtys, dtype=\"object\", copy=copy)\n" + ] } ], "source": [ - "plottable_df" + "plottable_df = temp_score_df[['company_name', 'trajectory_temperature_score', 'target_temperature_score']].sort_values('company_name').set_index('company_name').T" ] }, { "cell_type": "code", - "execution_count": 10, + "execution_count": 11, "id": "9ee65e40-cda2-4a9b-ac80-b0e96c8c152e", "metadata": {}, "outputs": [ @@ -1019,13 +302,13 @@ "" ] }, - "execution_count": 10, + "execution_count": 11, "metadata": {}, "output_type": "execute_result" }, { "data": { - "image/png": "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\n", + "image/png": "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REREREREZ3keWA44z/ZwSZfZfhtA0trA1JTezkB6NseYlR7OERERERERERERHUTSuMCdwH3AJsAI25Z0FvCy7e83GmD0tCScIyIiIiIiIiIiOoSkIbaHSRoP+D3wNDAlMBR4zfb6db8MCIxGJOEcERERERERERExAEkabHv4KLaPY/vdOkBwTmA6yoDAG+rrGRAYjUnCOSIiIiIiIiIiYoBpJZslDQIOAB4E3rN9dn19lEnlVDZH0wY1HUBERERERERERER8UFuy+XLgXWBiYG9Js9TXR1nBnGRzNC0J54iIiIiIiIiIiAGiJplbFgKus70nsAbwK9tPSJqymegiPlwSzhEREREREREREQOApOlblcuSpqMMAlxW0k3A2baPrgnpTSRN3WSsEf9NEs4RERERERERERENkzQpsJmkzSTdCGxo+07gOWBs28fWXc8HZrb9QlOxRvwvGRoYERERERERERExAEhaHLgAuN32MnXbLMBPgbkoyefnbW9WX8uAwBhwknCOiIiIiIiIiIhoiKTBtofXxxMDmwLLAmcCF9h+rb72BWCQ7Yfq80H/bXBgRJPSUiMiIiIiIiIiIqIBrWSzpEGS1gamtn0IsBuwMbCqpMkkHQr8sy3ZrCSbY6BKhXNERERERERERERD6hDAq4EngMmBB4FfArNSWmkMBt61vUpjQUZ8DEk4R0REREREREREjEHtvZclHQY8bftgSX8BHgD+BuxL6U4wk+0/9X1fxECVhHNERERERERERMQYImlq2y/Ux+NRhgE+CpwPXAbcApwD/AHYx/azdd8km6MjpIdzRERERERERETEGCBpCmArSatJugXY2PY9wCSUthmH1+d/Bm5qJZsBkmyOTpEK54iIiIiIiIiIiNFM0jy276nDAU8Crra9Wtvr9wBP16dP2d62bk9lc3SUVDhHRERERERERESMRpJOAbaWNBNwH3A0ML6k5SVNUndbELgWuDHJ5uhkqXCOiIiIiIiIiIgYTSSdDEwErGV7RNv2lYAfAAcC1wPbAYfafq++Pqh9/4hOkYRzRERERERERETEaCBpeuAI26vX53MBswAzApcAswO7AmMB79heqalYI/pLEs4RERERERERERGjgaTxgRuAs4DXgJWAaYC/A18BlqYkm6e0fUd9T9poREdLwjkiIiIiIiIiIqKftRLHkhYGdgdmAA4A7rX9sKRDgWttX9r3PQ2FHNEvhjQdQERERERERERERLdpJY5t31T7NY9n+422Xb4M3Duq90R0skFNBxAREREREREREdENJK0haYL6WJIGA9geZvuNum0aSb8B/mb7jEYDjhgNknCOiIiIiIiIiIj4lCTNAWD7TUmTuBheX/u+pKWAaYHdgDdsb15fS34uukp6OEdERERERERERPQTSWtShgHuaftFSccDMwLL157OU9t+oe47yPaIJuON6G+5gxIREREREREREfEJSTpd0iKSBkvaHRgXeAXYqbbXuAxYrSabB7Ulm5Vkc3SjJJwjIiIiIiIiIiI+AUnHAMNt3wj8FHiv9mW+FBgM7ALcanuopLHaE8wZEBjdKgnniIiIiIiIiIiIj6m2ylgZOF7SZsB8wD0Atm8GLgLGBvaRNKHt9xsLNmIMGtJ0ABEREREREREREZ1E0qnAlMAJwDcpwwBfBuaV9Jjtp23fLGkcYArbbzQYbsQYlYRzRERERERERETERyRpDgDby0uaDtiKkmx+F5gNWFLSNTXp/Ie29yltNKIXKJ/ziIiIiIiIiIiIT0bS54F1gbeASYApgD8CZ9n+V4OhRTQiPZwjIiIiIiIiIiI+JkkCsP0X4CxgPOBVYBjwTpLN0atS4RwREREREREREfEp1UrnLYA/2L6s6XgimpKEc0RERERERERERD+QNI3t5+vj9GyOnpSEc0RERERERERERD9Ksjl6WRLOEREREREREREREdEvMjQwIiIiIiIiIiIiIvpFEs4RERERERERERER0S+ScI6IiIiIiIiIiIiIfpGEc0RERERERERERET0iyScIyIiIiIiIiIiIqJfJOEcEREREREREREREf0iCeeIiIiIiIiIiIiI6BdJOEdEREREREREREREv/h/OUnr+NrcqWgAAAAASUVORK5CYII=\n", "text/plain": [ "
    " ] @@ -1038,7 +321,7 @@ ], "source": [ "# Must plot the first few columns, but then plot 1/3rd of the companies so as not to over-clutter the graph\n", - "plottable_df.iloc[:, [x for x in list(range(0,2)) + list(range(4,35,3))]].boxplot(figsize=(24,10))" + "plottable_df.applymap(lambda x: x.m).iloc[:, [x for x in list(range(0,2)) + list(range(4,52,3))]].boxplot(figsize=(24,10), rot=45)" ] }, { @@ -1070,7 +353,7 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": 12, "id": "76d2ad90-ce27-484f-8de9-359153d32979", "metadata": {}, "outputs": [ @@ -1111,31 +394,31 @@ " US00130H1059\n", " AES Corp.\n", " 2NUNNB7D43COUIRE5295\n", - " 50000\n", - " \n", - " \n", - " US0138721065\n", - " Alcoa Corp.\n", - " 549300T12EZ1F6PWWU29\n", - " 50000\n", + " 4351252\n", " \n", " \n", " US0158577090\n", " Algonquin Power & Utilities Corp.\n", " 549300K5VIUTJXQL7X75\n", - " 50000\n", + " 2228185\n", " \n", " \n", " US0185223007\n", " ALLETE, Inc.\n", " 549300NNLSIMY6Z8OT86\n", - " 50000\n", + " 3829481\n", " \n", " \n", " US0188021085\n", " Alliant Energy\n", " 5493009ML300G373MZ12\n", - " 50000\n", + " 3829481\n", + " \n", + " \n", + " US0236081024\n", + " Ameren Corp.\n", + " XRZQ5S7HYJFPHJ78L959\n", + " 15917812\n", " \n", " \n", " ...\n", @@ -1144,80 +427,79 @@ " ...\n", " \n", " \n", - " NaN\n", - " Wells Rural Electric Co.\n", - " NaN\n", - " 50000\n", + " US8873991033\n", + " TIMKENSTEEL CORP\n", + " 549300QZTZWHDE9HJL14\n", + " 10000000\n", " \n", " \n", - " NaN\n", - " Wellsboro Electric Co.\n", - " NaN\n", - " 50000\n", + " US88830M1027\n", + " TITAN INTERNATIONAL INC\n", + " 254900CXRGBE7C4B5A06\n", + " 10000000\n", " \n", " \n", - " NaN\n", - " White River Electric Association, Inc.\n", - " NaN\n", - " 50000\n", + " US9129091081\n", + " UNITED STATES STEEL CORP\n", + " JNLUVFYJT1OZSIQ24U47\n", + " 10000000\n", " \n", " \n", - " NaN\n", - " Wilderness Line Holdings, LLC\n", - " NaN\n", - " 50000\n", + " US9138371003\n", + " UNIVERSAL STAINLESS & ALLOY PRODUCTS INC\n", + " 5493001OEIZDUGXZDE09\n", + " 10000000\n", " \n", " \n", - " NaN\n", - " Yankee Atomic Electric Co.\n", - " NaN\n", - " 50000\n", + " US9818111026\n", + " WORTHINGTON INDUSTRIES INC\n", + " 1WRCIANKYOIK6KYE5E82\n", + " 10000000\n", " \n", " \n", "\n", - "

    190 rows × 3 columns

    \n", + "

    61 rows × 3 columns

    \n", "" ], "text/plain": [ - " company_name company_lei \\\n", - "company_id \n", - "US00130H1059 AES Corp. 2NUNNB7D43COUIRE5295 \n", - "US0138721065 Alcoa Corp. 549300T12EZ1F6PWWU29 \n", - "US0158577090 Algonquin Power & Utilities Corp. 549300K5VIUTJXQL7X75 \n", - "US0185223007 ALLETE, Inc. 549300NNLSIMY6Z8OT86 \n", - "US0188021085 Alliant Energy 5493009ML300G373MZ12 \n", - "... ... ... \n", - "NaN Wells Rural Electric Co. NaN \n", - "NaN Wellsboro Electric Co. NaN \n", - "NaN White River Electric Association, Inc. NaN \n", - "NaN Wilderness Line Holdings, LLC NaN \n", - "NaN Yankee Atomic Electric Co. NaN \n", + " company_name company_lei \\\n", + "company_id \n", + "US00130H1059 AES Corp. 2NUNNB7D43COUIRE5295 \n", + "US0158577090 Algonquin Power & Utilities Corp. 549300K5VIUTJXQL7X75 \n", + "US0185223007 ALLETE, Inc. 549300NNLSIMY6Z8OT86 \n", + "US0188021085 Alliant Energy 5493009ML300G373MZ12 \n", + "US0236081024 Ameren Corp. XRZQ5S7HYJFPHJ78L959 \n", + "... ... ... \n", + "US8873991033 TIMKENSTEEL CORP 549300QZTZWHDE9HJL14 \n", + "US88830M1027 TITAN INTERNATIONAL INC 254900CXRGBE7C4B5A06 \n", + "US9129091081 UNITED STATES STEEL CORP JNLUVFYJT1OZSIQ24U47 \n", + "US9138371003 UNIVERSAL STAINLESS & ALLOY PRODUCTS INC 5493001OEIZDUGXZDE09 \n", + "US9818111026 WORTHINGTON INDUSTRIES INC 1WRCIANKYOIK6KYE5E82 \n", "\n", " investment_value \n", "company_id \n", - "US00130H1059 50000 \n", - "US0138721065 50000 \n", - "US0158577090 50000 \n", - "US0185223007 50000 \n", - "US0188021085 50000 \n", + "US00130H1059 4351252 \n", + "US0158577090 2228185 \n", + "US0185223007 3829481 \n", + "US0188021085 3829481 \n", + "US0236081024 15917812 \n", "... ... \n", - "NaN 50000 \n", - "NaN 50000 \n", - "NaN 50000 \n", - "NaN 50000 \n", - "NaN 50000 \n", + "US8873991033 10000000 \n", + "US88830M1027 10000000 \n", + "US9129091081 10000000 \n", + "US9138371003 10000000 \n", + "US9818111026 10000000 \n", "\n", - "[190 rows x 3 columns]" + "[61 rows x 3 columns]" ] }, - "execution_count": 11, + "execution_count": 12, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "# portfolio_df = pd.read_csv(\"data/mdt-20220116-portfolio.csv\", encoding=\"iso-8859-1\", sep=';', index_col='company_id')\n", - "portfolio_df = pd.read_csv(\"data/rmi_all.csv\", encoding=\"iso-8859-1\", sep=',', index_col='company_id')\n", + "portfolio_df = pd.read_csv(\"data/mdt-20220116-portfolio.csv\", encoding=\"iso-8859-1\", sep=';', index_col='company_id')\n", "portfolio_df" ] }, @@ -1235,21 +517,40 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": 13, "id": "3840f2c6-a938-43b0-b24e-37f0b284d2c6", "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/Users/michael/opt/miniconda3/envs/jupyter/lib/python3.10/site-packages/pint_pandas/pint_array.py:648: UnitStrippedWarning: The unit of the quantity is stripped when downcasting to ndarray.\n", + " return np.array(qtys, dtype=\"object\", copy=copy)\n" + ] + } + ], "source": [ "# PA_SCORE means \"Probability-Adjusted\" Temperature Score\n", - "portfolio_df['pa_score'] = vault_warehouse.get_pa_temp_scores(probability=0.5, company_ids=portfolio_df.index.values)" + "portfolio_df['pa_score'] = vault_warehouse.get_pa_temp_scores(probability=0.5, company_ids=portfolio_df.index.values).astype('pint[delta_degC]')" ] }, { "cell_type": "code", - "execution_count": 13, + "execution_count": 14, "id": "8031e3a0-3d22-4f16-8a9a-e85f855f1b02", "metadata": {}, "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/Users/michael/opt/miniconda3/envs/jupyter/lib/python3.10/site-packages/pint_pandas/pint_array.py:648: UnitStrippedWarning: The unit of the quantity is stripped when downcasting to ndarray.\n", + " return np.array(qtys, dtype=\"object\", copy=copy)\n", + "/Users/michael/opt/miniconda3/envs/jupyter/lib/python3.10/site-packages/pint_pandas/pint_array.py:648: UnitStrippedWarning: The unit of the quantity is stripped when downcasting to ndarray.\n", + " return np.array(qtys, dtype=\"object\", copy=copy)\n" + ] + }, { "data": { "text/html": [ @@ -1289,366 +590,411 @@ " US00130H1059\n", " AES Corp.\n", " 2NUNNB7D43COUIRE5295\n", - " 50000\n", - " 2.105909\n", + " 4351252\n", + " 2.106926870694208\n", " \n", " \n", " US0185223007\n", " ALLETE, Inc.\n", " 549300NNLSIMY6Z8OT86\n", - " 50000\n", - " 2.063224\n", - " \n", - " \n", - " US0138721065\n", - " Alcoa Corp.\n", - " 549300T12EZ1F6PWWU29\n", - " 50000\n", - " 1.262227\n", + " 3829481\n", + " 2.043793289146705\n", " \n", " \n", " US0158577090\n", " Algonquin Power & Utilities Corp.\n", " 549300K5VIUTJXQL7X75\n", - " 50000\n", - " 1.262227\n", + " 2228185\n", + " 1.2623320662937099\n", " \n", " \n", " US0188021085\n", " Alliant Energy\n", " 5493009ML300G373MZ12\n", - " 50000\n", - " 1.987187\n", + " 3829481\n", + " 1.867044766546712\n", " \n", " \n", " US0236081024\n", " Ameren Corp.\n", " XRZQ5S7HYJFPHJ78L959\n", - " 50000\n", - " 2.421983\n", + " 15917812\n", + " 2.404261301598871\n", " \n", " \n", " US0255371017\n", " American Electric Power Co., Inc.\n", " 1B4S6S7G0TW5EE83BO58\n", - " 50000\n", - " 2.268167\n", + " 45520637\n", + " 2.1814181749376793\n", " \n", " \n", " US05351W1036\n", " Avangrid, Inc.\n", " 549300OX0Q38NLSKPB49\n", - " 50000\n", - " 1.299655\n", + " 10049068\n", + " 1.624145450892199\n", " \n", " \n", " US05379B1070\n", " Avista Corp.\n", " Q0IK63NITJD6RJ47SW96\n", - " 50000\n", - " 1.262227\n", + " 2804211\n", + " 1.7099274356102043\n", " \n", " \n", - " US0921131092\n", - " Black Hills Corp.\n", - " 3MGELCRSTNSAMJ962671\n", - " 50000\n", - " 2.044967\n", - " \n", - " \n", - " CA1125851040\n", - " Brookfield Asset Management\n", - " C6J3FGIWG6MBDGTE8F80\n", - " 50000\n", - " 1.262227\n", + " US1442851036\n", + " CARPENTER TECHNOLOGY CORP\n", + " DX6I6ZD3X5WNNCDJKP85\n", + " 10000000\n", + " 1.9900906690954119\n", " \n", " \n", " US1258961002\n", - " CMS Energy Corp.\n", + " CMS Energy\n", " 549300IA9XFBAGNIBW29\n", - " 50000\n", - " 2.020682\n", + " 9153135\n", + " 2.1320023723934343\n", + " \n", + " \n", + " US2017231034\n", + " COMMERCIAL METALS CO\n", + " 549300OQS2LO07ZJ7N73\n", + " 10000000\n", + " 1.2990617896624888\n", " \n", " \n", " US18551QAA58\n", " Cleco Partners LP\n", " 5493002H80P81B3HXL31\n", - " 50000\n", - " 1.262227\n", + " 3086052\n", + " 2.280309768660802\n", " \n", " \n", " US2091151041\n", " Consolidated Edison, Inc.\n", " 54930033SBW53OO8T749\n", - " 50000\n", - " 1.501692\n", + " 20394113\n", + " 1.7197135175610079\n", " \n", " \n", " US2333311072\n", " DTE Energy\n", " 549300IX8SD6XXD71I78\n", - " 50000\n", - " 2.574596\n", + " 14329945\n", + " 2.494203358852266\n", " \n", " \n", " US25746U1097\n", " Dominion Energy\n", " ILUL7B6Z54MRYCF6H308\n", - " 50000\n", - " 1.743513\n", + " 33528082\n", + " 1.6421622410252814\n", " \n", " \n", " US26441C2044\n", " Duke Energy Corp.\n", " I1BZKREC126H0VB1BL91\n", - " 50000\n", - " 1.960795\n", + " 73069652\n", + " 1.8259317788445726\n", + " \n", + " \n", + " US283677AZ52\n", + " El Paso Electric Co\n", + " OZ8GM8L4AHPKSWZMW205\n", + " 2646941\n", + " 1.864862725462496\n", " \n", " \n", " US29364G1031\n", " Entergy Corp.\n", " 4XM3TW50JULSLG8BNC79\n", - " 50000\n", - " 1.262227\n", + " 29844269\n", + " 1.727230341297715\n", " \n", " \n", " US30034W1062\n", " Evergy, Inc.\n", " 549300PGTHDQY6PSUI61\n", - " 50000\n", - " 2.519427\n", + " 18254954\n", + " 2.1869485449964037\n", " \n", " \n", " US30040W1080\n", " Eversource Energy\n", " SJ7XXD41SQU3ZNWUJ746\n", - " 50000\n", - " 1.262227\n", + " 18962480\n", + " 1.2636355763883802\n", " \n", " \n", " US3379321074\n", " FirstEnergy Corp.\n", " 549300SVYJS666PQJH88\n", - " 50000\n", - " 2.725257\n", + " 27277340\n", + " 3.4408564514595774\n", " \n", " \n", " CA3495531079\n", - " Fortis, Inc.\n", + " Fortis, Inc\n", " 549300MQYQ9Y065XPR71\n", - " 50000\n", - " 2.126674\n", + " 12428756\n", + " 2.8403172973777053\n", + " \n", + " \n", + " US3737371050\n", + " GERDAU S.A.\n", + " 254900YDV6SEQQPZVG24\n", + " 10000000\n", + " 1.375590655258247\n", " \n", " \n", - " US4198701009\n", - " Hawaiian Electric Industries, Inc.\n", - " JJ8FWOCWCV22X7GUPJ23\n", - " 50000\n", - " 2.049170\n", + " US6703461052\n", + " NUCOR CORP\n", + " 549300GGJCRSI2TIEJ46\n", + " 10000000\n", + " 1.315430185746877\n", " \n", " \n", " US6362744095\n", - " National Grid PLC\n", + " National Grid plc\n", " 8R95QZMKZLJX5Q2XR704\n", - " 50000\n", - " 1.972486\n", + " 12281584\n", + " 2.5302066248940553\n", " \n", " \n", " US6680743050\n", - " Northwestern Corp.\n", + " NorthWestern Corp.\n", " 3BPWMBHR1R9SHUN7J795\n", - " 50000\n", - " 1.760193\n", + " 2703150\n", + " 2.235303301117127\n", " \n", " \n", " US6708371033\n", - " OG&E Energy Corp.\n", + " OG&E Energy\n", " CE5OG6JPOZMDSA0LAQ19\n", - " 50000\n", - " 2.600624\n", + " 7251242\n", + " 2.572462385836689\n", " \n", " \n", " US6896481032\n", " Otter Tail Corp.\n", " 549300HHVBQRQUVKKD91\n", - " 50000\n", - " 2.709576\n", - " \n", - " \n", - " US69331C1080\n", - " PG&E Corp.\n", - " 1HNPXZSMMB7HMBMVBS46\n", - " 50000\n", - " 1.333378\n", + " 1264277\n", + " 2.9694066480437593\n", " \n", " \n", " US69349H1077\n", " PNM Resources, Inc.\n", " 5493003JOBJGLZSDDQ28\n", - " 50000\n", - " 1.896564\n", + " 3326899\n", + " 2.013668347320406\n", + " \n", + " \n", + " KR7005490008\n", + " POSCO\n", + " 988400E5HRVX81AYLM04\n", + " 10000000\n", + " 1.5593142658365693\n", " \n", " \n", " US69351T1060\n", - " PPL Corp.\n", + " PPL\n", " 9N3UAJSNOUXFKQLF3V18\n", - " 50000\n", - " 3.059505\n", + " 18146577\n", + " 2.6346104815070195\n", " \n", " \n", " US7234841010\n", " Pinnacle West Capital Corp.\n", " TWSEY0NEDUDCKS27AH81\n", - " 50000\n", - " 1.841268\n", + " 12058547\n", + " 2.086103530593631\n", " \n", " \n", " US7365088472\n", " Portland General Electric Co.\n", " GJOUP9M7C39GLSK9R870\n", - " 50000\n", - " 1.854606\n", + " 5770964\n", + " 1.8706266553608955\n", " \n", " \n", " US7445731067\n", " Public Service Enterprise Group\n", " PUSS41EMO3E6XXNV3U28\n", - " 50000\n", - " 1.262227\n", + " 16912134\n", + " 1.4434071117060308\n", + " \n", + " \n", + " US8581191009\n", + " STEEL DYNAMICS INC\n", + " 549300HGGKEL4FYTTQ83\n", + " 10000000\n", + " 1.3158777300113855\n", " \n", " \n", " US8168511090\n", - " Sempra\n", + " Sempra Energy\n", " PBBKGKLRK5S5C0Y4T545\n", - " 50000\n", - " 1.364717\n", + " 29579515\n", + " 1.8683533328964472\n", " \n", " \n", " US8425871071\n", " Southern Co.\n", " 549300FC3G3YU2FBZD92\n", - " 50000\n", - " 2.249758\n", + " 50294245\n", + " 1.9963792988066478\n", + " \n", + " \n", + " US88031M1099\n", + " TENARIS SA\n", + " 549300Y7C05BKC4HZB40\n", + " 10000000\n", + " 1.3632817562247952\n", + " \n", + " \n", + " US8808901081\n", + " TERNIUM S.A.\n", + " 529900QG4KU23TEI2E46\n", + " 10000000\n", + " 1.5265556596582406\n", " \n", " \n", - " CA87807B1076\n", - " TC Energy Corp.\n", - " 549300UGKOFV2IWJJG27\n", - " 50000\n", - " 1.262227\n", + " US8873991033\n", + " TIMKENSTEEL CORP\n", + " 549300QZTZWHDE9HJL14\n", + " 10000000\n", + " 1.2939425547566503\n", " \n", " \n", - " US92840M1027\n", - " Vistra Corp.\n", - " 549300KP43CPCUJOOG15\n", - " 50000\n", - " 1.262227\n", + " US9129091081\n", + " UNITED STATES STEEL CORP\n", + " JNLUVFYJT1OZSIQ24U47\n", + " 10000000\n", + " 1.5154085205221834\n", " \n", " \n", " US92939U1060\n", " WEC Energy Group\n", " 549300IGLYTZUK3PVP70\n", - " 50000\n", - " 2.462315\n", + " 11046675\n", + " 2.11253492554515\n", + " \n", + " \n", + " US9818111026\n", + " WORTHINGTON INDUSTRIES INC\n", + " 1WRCIANKYOIK6KYE5E82\n", + " 10000000\n", + " 1.26782307131814\n", " \n", " \n", " US98389B1008\n", " Xcel Energy, Inc.\n", " LGJNMI9GH8XIDG5RCM61\n", - " 50000\n", - " 1.866682\n", + " 27475073\n", + " 1.8665476973515542\n", " \n", " \n", "\n", "" ], "text/plain": [ - " company_name company_lei \\\n", - "company_id \n", - "US00130H1059 AES Corp. 2NUNNB7D43COUIRE5295 \n", - "US0185223007 ALLETE, Inc. 549300NNLSIMY6Z8OT86 \n", - "US0138721065 Alcoa Corp. 549300T12EZ1F6PWWU29 \n", - "US0158577090 Algonquin Power & Utilities Corp. 549300K5VIUTJXQL7X75 \n", - "US0188021085 Alliant Energy 5493009ML300G373MZ12 \n", - "US0236081024 Ameren Corp. XRZQ5S7HYJFPHJ78L959 \n", - "US0255371017 American Electric Power Co., Inc. 1B4S6S7G0TW5EE83BO58 \n", - "US05351W1036 Avangrid, Inc. 549300OX0Q38NLSKPB49 \n", - "US05379B1070 Avista Corp. Q0IK63NITJD6RJ47SW96 \n", - "US0921131092 Black Hills Corp. 3MGELCRSTNSAMJ962671 \n", - "CA1125851040 Brookfield Asset Management C6J3FGIWG6MBDGTE8F80 \n", - "US1258961002 CMS Energy Corp. 549300IA9XFBAGNIBW29 \n", - "US18551QAA58 Cleco Partners LP 5493002H80P81B3HXL31 \n", - "US2091151041 Consolidated Edison, Inc. 54930033SBW53OO8T749 \n", - "US2333311072 DTE Energy 549300IX8SD6XXD71I78 \n", - "US25746U1097 Dominion Energy ILUL7B6Z54MRYCF6H308 \n", - "US26441C2044 Duke Energy Corp. I1BZKREC126H0VB1BL91 \n", - "US29364G1031 Entergy Corp. 4XM3TW50JULSLG8BNC79 \n", - "US30034W1062 Evergy, Inc. 549300PGTHDQY6PSUI61 \n", - "US30040W1080 Eversource Energy SJ7XXD41SQU3ZNWUJ746 \n", - "US3379321074 FirstEnergy Corp. 549300SVYJS666PQJH88 \n", - "CA3495531079 Fortis, Inc. 549300MQYQ9Y065XPR71 \n", - "US4198701009 Hawaiian Electric Industries, Inc. JJ8FWOCWCV22X7GUPJ23 \n", - "US6362744095 National Grid PLC 8R95QZMKZLJX5Q2XR704 \n", - "US6680743050 Northwestern Corp. 3BPWMBHR1R9SHUN7J795 \n", - "US6708371033 OG&E Energy Corp. CE5OG6JPOZMDSA0LAQ19 \n", - "US6896481032 Otter Tail Corp. 549300HHVBQRQUVKKD91 \n", - "US69331C1080 PG&E Corp. 1HNPXZSMMB7HMBMVBS46 \n", - "US69349H1077 PNM Resources, Inc. 5493003JOBJGLZSDDQ28 \n", - "US69351T1060 PPL Corp. 9N3UAJSNOUXFKQLF3V18 \n", - "US7234841010 Pinnacle West Capital Corp. TWSEY0NEDUDCKS27AH81 \n", - "US7365088472 Portland General Electric Co. GJOUP9M7C39GLSK9R870 \n", - "US7445731067 Public Service Enterprise Group PUSS41EMO3E6XXNV3U28 \n", - "US8168511090 Sempra PBBKGKLRK5S5C0Y4T545 \n", - "US8425871071 Southern Co. 549300FC3G3YU2FBZD92 \n", - "CA87807B1076 TC Energy Corp. 549300UGKOFV2IWJJG27 \n", - "US92840M1027 Vistra Corp. 549300KP43CPCUJOOG15 \n", - "US92939U1060 WEC Energy Group 549300IGLYTZUK3PVP70 \n", - "US98389B1008 Xcel Energy, Inc. LGJNMI9GH8XIDG5RCM61 \n", + " company_name company_lei \\\n", + "company_id \n", + "US00130H1059 AES Corp. 2NUNNB7D43COUIRE5295 \n", + "US0185223007 ALLETE, Inc. 549300NNLSIMY6Z8OT86 \n", + "US0158577090 Algonquin Power & Utilities Corp. 549300K5VIUTJXQL7X75 \n", + "US0188021085 Alliant Energy 5493009ML300G373MZ12 \n", + "US0236081024 Ameren Corp. XRZQ5S7HYJFPHJ78L959 \n", + "US0255371017 American Electric Power Co., Inc. 1B4S6S7G0TW5EE83BO58 \n", + "US05351W1036 Avangrid, Inc. 549300OX0Q38NLSKPB49 \n", + "US05379B1070 Avista Corp. Q0IK63NITJD6RJ47SW96 \n", + "US1442851036 CARPENTER TECHNOLOGY CORP DX6I6ZD3X5WNNCDJKP85 \n", + "US1258961002 CMS Energy 549300IA9XFBAGNIBW29 \n", + "US2017231034 COMMERCIAL METALS CO 549300OQS2LO07ZJ7N73 \n", + "US18551QAA58 Cleco Partners LP 5493002H80P81B3HXL31 \n", + "US2091151041 Consolidated Edison, Inc. 54930033SBW53OO8T749 \n", + "US2333311072 DTE Energy 549300IX8SD6XXD71I78 \n", + "US25746U1097 Dominion Energy ILUL7B6Z54MRYCF6H308 \n", + "US26441C2044 Duke Energy Corp. I1BZKREC126H0VB1BL91 \n", + "US283677AZ52 El Paso Electric Co OZ8GM8L4AHPKSWZMW205 \n", + "US29364G1031 Entergy Corp. 4XM3TW50JULSLG8BNC79 \n", + "US30034W1062 Evergy, Inc. 549300PGTHDQY6PSUI61 \n", + "US30040W1080 Eversource Energy SJ7XXD41SQU3ZNWUJ746 \n", + "US3379321074 FirstEnergy Corp. 549300SVYJS666PQJH88 \n", + "CA3495531079 Fortis, Inc 549300MQYQ9Y065XPR71 \n", + "US3737371050 GERDAU S.A. 254900YDV6SEQQPZVG24 \n", + "US6703461052 NUCOR CORP 549300GGJCRSI2TIEJ46 \n", + "US6362744095 National Grid plc 8R95QZMKZLJX5Q2XR704 \n", + "US6680743050 NorthWestern Corp. 3BPWMBHR1R9SHUN7J795 \n", + "US6708371033 OG&E Energy CE5OG6JPOZMDSA0LAQ19 \n", + "US6896481032 Otter Tail Corp. 549300HHVBQRQUVKKD91 \n", + "US69349H1077 PNM Resources, Inc. 5493003JOBJGLZSDDQ28 \n", + "KR7005490008 POSCO 988400E5HRVX81AYLM04 \n", + "US69351T1060 PPL 9N3UAJSNOUXFKQLF3V18 \n", + "US7234841010 Pinnacle West Capital Corp. TWSEY0NEDUDCKS27AH81 \n", + "US7365088472 Portland General Electric Co. GJOUP9M7C39GLSK9R870 \n", + "US7445731067 Public Service Enterprise Group PUSS41EMO3E6XXNV3U28 \n", + "US8581191009 STEEL DYNAMICS INC 549300HGGKEL4FYTTQ83 \n", + "US8168511090 Sempra Energy PBBKGKLRK5S5C0Y4T545 \n", + "US8425871071 Southern Co. 549300FC3G3YU2FBZD92 \n", + "US88031M1099 TENARIS SA 549300Y7C05BKC4HZB40 \n", + "US8808901081 TERNIUM S.A. 529900QG4KU23TEI2E46 \n", + "US8873991033 TIMKENSTEEL CORP 549300QZTZWHDE9HJL14 \n", + "US9129091081 UNITED STATES STEEL CORP JNLUVFYJT1OZSIQ24U47 \n", + "US92939U1060 WEC Energy Group 549300IGLYTZUK3PVP70 \n", + "US9818111026 WORTHINGTON INDUSTRIES INC 1WRCIANKYOIK6KYE5E82 \n", + "US98389B1008 Xcel Energy, Inc. LGJNMI9GH8XIDG5RCM61 \n", "\n", - " investment_value pa_score \n", - "company_id \n", - "US00130H1059 50000 2.105909 \n", - "US0185223007 50000 2.063224 \n", - "US0138721065 50000 1.262227 \n", - "US0158577090 50000 1.262227 \n", - "US0188021085 50000 1.987187 \n", - "US0236081024 50000 2.421983 \n", - "US0255371017 50000 2.268167 \n", - "US05351W1036 50000 1.299655 \n", - "US05379B1070 50000 1.262227 \n", - "US0921131092 50000 2.044967 \n", - "CA1125851040 50000 1.262227 \n", - "US1258961002 50000 2.020682 \n", - "US18551QAA58 50000 1.262227 \n", - "US2091151041 50000 1.501692 \n", - "US2333311072 50000 2.574596 \n", - "US25746U1097 50000 1.743513 \n", - "US26441C2044 50000 1.960795 \n", - "US29364G1031 50000 1.262227 \n", - "US30034W1062 50000 2.519427 \n", - "US30040W1080 50000 1.262227 \n", - "US3379321074 50000 2.725257 \n", - "CA3495531079 50000 2.126674 \n", - "US4198701009 50000 2.049170 \n", - "US6362744095 50000 1.972486 \n", - "US6680743050 50000 1.760193 \n", - "US6708371033 50000 2.600624 \n", - "US6896481032 50000 2.709576 \n", - "US69331C1080 50000 1.333378 \n", - "US69349H1077 50000 1.896564 \n", - "US69351T1060 50000 3.059505 \n", - "US7234841010 50000 1.841268 \n", - "US7365088472 50000 1.854606 \n", - "US7445731067 50000 1.262227 \n", - "US8168511090 50000 1.364717 \n", - "US8425871071 50000 2.249758 \n", - "CA87807B1076 50000 1.262227 \n", - "US92840M1027 50000 1.262227 \n", - "US92939U1060 50000 2.462315 \n", - "US98389B1008 50000 1.866682 " + " investment_value pa_score \n", + "company_id \n", + "US00130H1059 4351252 2.106926870694208 \n", + "US0185223007 3829481 2.043793289146705 \n", + "US0158577090 2228185 1.2623320662937099 \n", + "US0188021085 3829481 1.867044766546712 \n", + "US0236081024 15917812 2.404261301598871 \n", + "US0255371017 45520637 2.1814181749376793 \n", + "US05351W1036 10049068 1.624145450892199 \n", + "US05379B1070 2804211 1.7099274356102043 \n", + "US1442851036 10000000 1.9900906690954119 \n", + "US1258961002 9153135 2.1320023723934343 \n", + "US2017231034 10000000 1.2990617896624888 \n", + "US18551QAA58 3086052 2.280309768660802 \n", + "US2091151041 20394113 1.7197135175610079 \n", + "US2333311072 14329945 2.494203358852266 \n", + "US25746U1097 33528082 1.6421622410252814 \n", + "US26441C2044 73069652 1.8259317788445726 \n", + "US283677AZ52 2646941 1.864862725462496 \n", + "US29364G1031 29844269 1.727230341297715 \n", + "US30034W1062 18254954 2.1869485449964037 \n", + "US30040W1080 18962480 1.2636355763883802 \n", + "US3379321074 27277340 3.4408564514595774 \n", + "CA3495531079 12428756 2.8403172973777053 \n", + "US3737371050 10000000 1.375590655258247 \n", + "US6703461052 10000000 1.315430185746877 \n", + "US6362744095 12281584 2.5302066248940553 \n", + "US6680743050 2703150 2.235303301117127 \n", + "US6708371033 7251242 2.572462385836689 \n", + "US6896481032 1264277 2.9694066480437593 \n", + "US69349H1077 3326899 2.013668347320406 \n", + "KR7005490008 10000000 1.5593142658365693 \n", + "US69351T1060 18146577 2.6346104815070195 \n", + "US7234841010 12058547 2.086103530593631 \n", + "US7365088472 5770964 1.8706266553608955 \n", + "US7445731067 16912134 1.4434071117060308 \n", + "US8581191009 10000000 1.3158777300113855 \n", + "US8168511090 29579515 1.8683533328964472 \n", + "US8425871071 50294245 1.9963792988066478 \n", + "US88031M1099 10000000 1.3632817562247952 \n", + "US8808901081 10000000 1.5265556596582406 \n", + "US8873991033 10000000 1.2939425547566503 \n", + "US9129091081 10000000 1.5154085205221834 \n", + "US92939U1060 11046675 2.11253492554515 \n", + "US9818111026 10000000 1.26782307131814 \n", + "US98389B1008 27475073 1.8665476973515542 " ] }, - "execution_count": 13, + "execution_count": 14, "metadata": {}, "output_type": "execute_result" } @@ -1661,17 +1007,17 @@ }, { "cell_type": "code", - "execution_count": 14, + "execution_count": 15, "id": "0e9f1e29-ccb8-4b59-a1ba-95fdf792bf76", "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "1950000" + "659616728" ] }, - "execution_count": 14, + "execution_count": 15, "metadata": {}, "output_type": "execute_result" } @@ -1683,10 +1029,20 @@ }, { "cell_type": "code", - "execution_count": 15, + "execution_count": 16, "id": "f3193208-3029-40d4-a7a2-e820a32eea56", "metadata": {}, "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/Users/michael/opt/miniconda3/envs/jupyter/lib/python3.10/site-packages/pint_pandas/pint_array.py:648: UnitStrippedWarning: The unit of the quantity is stripped when downcasting to ndarray.\n", + " return np.array(qtys, dtype=\"object\", copy=copy)\n", + "/Users/michael/opt/miniconda3/envs/jupyter/lib/python3.10/site-packages/pint_pandas/pint_array.py:648: UnitStrippedWarning: The unit of the quantity is stripped when downcasting to ndarray.\n", + " return np.array(qtys, dtype=\"object\", copy=copy)\n" + ] + }, { "data": { "text/html": [ @@ -1728,41 +1084,41 @@ " US00130H1059\n", " AES Corp.\n", " 2NUNNB7D43COUIRE5295\n", - " 50000\n", - " 2.105909\n", - " 0.053998\n", - " \n", - " \n", - " US0138721065\n", - " Alcoa Corp.\n", - " 549300T12EZ1F6PWWU29\n", - " 50000\n", - " 1.262227\n", - " 0.032365\n", + " 4351252\n", + " 2.106926870694208\n", + " 0.013898631388198987\n", " \n", " \n", " US0158577090\n", " Algonquin Power & Utilities Corp.\n", " 549300K5VIUTJXQL7X75\n", - " 50000\n", - " 1.262227\n", - " 0.032365\n", + " 2228185\n", + " 1.2623320662937099\n", + " 0.004264157132071172\n", " \n", " \n", " US0185223007\n", " ALLETE, Inc.\n", " 549300NNLSIMY6Z8OT86\n", - " 50000\n", - " 2.063224\n", - " 0.052903\n", + " 3829481\n", + " 2.043793289146705\n", + " 0.011865477687998862\n", " \n", " \n", " US0188021085\n", " Alliant Energy\n", " 5493009ML300G373MZ12\n", - " 50000\n", - " 1.987187\n", - " 0.050954\n", + " 3829481\n", + " 1.867044766546712\n", + " 0.010839343752422344\n", + " \n", + " \n", + " US0236081024\n", + " Ameren Corp.\n", + " XRZQ5S7HYJFPHJ78L959\n", + " 15917812\n", + " 2.404261301598871\n", + " 0.058019419115953846\n", " \n", " \n", "\n", @@ -1772,21 +1128,21 @@ " company_name company_lei \\\n", "company_id \n", "US00130H1059 AES Corp. 2NUNNB7D43COUIRE5295 \n", - "US0138721065 Alcoa Corp. 549300T12EZ1F6PWWU29 \n", "US0158577090 Algonquin Power & Utilities Corp. 549300K5VIUTJXQL7X75 \n", "US0185223007 ALLETE, Inc. 549300NNLSIMY6Z8OT86 \n", "US0188021085 Alliant Energy 5493009ML300G373MZ12 \n", + "US0236081024 Ameren Corp. XRZQ5S7HYJFPHJ78L959 \n", "\n", - " investment_value pa_score WATS_weight \n", - "company_id \n", - "US00130H1059 50000 2.105909 0.053998 \n", - "US0138721065 50000 1.262227 0.032365 \n", - "US0158577090 50000 1.262227 0.032365 \n", - "US0185223007 50000 2.063224 0.052903 \n", - "US0188021085 50000 1.987187 0.050954 " + " investment_value pa_score WATS_weight \n", + "company_id \n", + "US00130H1059 4351252 2.106926870694208 0.013898631388198987 \n", + "US0158577090 2228185 1.2623320662937099 0.004264157132071172 \n", + "US0185223007 3829481 2.043793289146705 0.011865477687998862 \n", + "US0188021085 3829481 1.867044766546712 0.010839343752422344 \n", + "US0236081024 15917812 2.404261301598871 0.058019419115953846 " ] }, - "execution_count": 15, + "execution_count": 16, "metadata": {}, "output_type": "execute_result" } @@ -1798,7 +1154,7 @@ }, { "cell_type": "code", - "execution_count": 16, + "execution_count": 17, "id": "24fdeb51-94f1-40a4-ace9-5fdce4f5de8f", "metadata": {}, "outputs": [ @@ -1806,7 +1162,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "Portfolio temperature score based on WATS = 1.8719702807465801\n" + "Portfolio temperature score based on WATS = 1.946471711490046 delta_degree_Celsius\n" ] } ], @@ -1826,10 +1182,20 @@ }, { "cell_type": "code", - "execution_count": 17, + "execution_count": 18, "id": "fddd23f0-7ca4-4ea8-8a54-ea71fee0f40b", "metadata": {}, "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/Users/michael/opt/miniconda3/envs/jupyter/lib/python3.10/site-packages/pint_pandas/pint_array.py:648: UnitStrippedWarning: The unit of the quantity is stripped when downcasting to ndarray.\n", + " return np.array(qtys, dtype=\"object\", copy=copy)\n", + "/Users/michael/opt/miniconda3/envs/jupyter/lib/python3.10/site-packages/pint_pandas/pint_array.py:648: UnitStrippedWarning: The unit of the quantity is stripped when downcasting to ndarray.\n", + " return np.array(qtys, dtype=\"object\", copy=copy)\n" + ] + }, { "data": { "text/html": [ @@ -1873,46 +1239,46 @@ " US00130H1059\n", " AES Corp.\n", " 2NUNNB7D43COUIRE5295\n", - " 50000\n", - " 2.105909\n", - " 0.053998\n", - " 0.043264\n", - " \n", - " \n", - " US0138721065\n", - " Alcoa Corp.\n", - " 549300T12EZ1F6PWWU29\n", - " 50000\n", - " 1.262227\n", - " 0.032365\n", - " 0.000000\n", + " 4351252\n", + " 2.106926870694208\n", + " 0.013898631388198987\n", + " 1.4900271821443577e-07\n", " \n", " \n", " US0158577090\n", " Algonquin Power & Utilities Corp.\n", " 549300K5VIUTJXQL7X75\n", - " 50000\n", - " 1.262227\n", - " 0.032365\n", - " 0.007193\n", + " 2228185\n", + " 1.2623320662937099\n", + " 0.004264157132071172\n", + " 4.162829462365117e-12\n", " \n", " \n", " US0185223007\n", " ALLETE, Inc.\n", " 549300NNLSIMY6Z8OT86\n", - " 50000\n", - " 2.063224\n", - " 0.052903\n", - " 0.015489\n", + " 3829481\n", + " 2.043793289146705\n", + " 0.011865477687998862\n", + " 5.2549678751293906e-08\n", " \n", " \n", " US0188021085\n", " Alliant Energy\n", " 5493009ML300G373MZ12\n", - " 50000\n", - " 1.987187\n", - " 0.050954\n", - " 0.037716\n", + " 3829481\n", + " 1.867044766546712\n", + " 0.010839343752422344\n", + " 1.261547907437679e-07\n", + " \n", + " \n", + " US0236081024\n", + " Ameren Corp.\n", + " XRZQ5S7HYJFPHJ78L959\n", + " 15917812\n", + " 2.404261301598871\n", + " 0.058019419115953846\n", + " 3.4265102068870053e-07\n", " \n", " \n", "\n", @@ -1922,33 +1288,41 @@ " company_name company_lei \\\n", "company_id \n", "US00130H1059 AES Corp. 2NUNNB7D43COUIRE5295 \n", - "US0138721065 Alcoa Corp. 549300T12EZ1F6PWWU29 \n", "US0158577090 Algonquin Power & Utilities Corp. 549300K5VIUTJXQL7X75 \n", "US0185223007 ALLETE, Inc. 549300NNLSIMY6Z8OT86 \n", "US0188021085 Alliant Energy 5493009ML300G373MZ12 \n", + "US0236081024 Ameren Corp. XRZQ5S7HYJFPHJ78L959 \n", + "\n", + " investment_value pa_score WATS_weight \\\n", + "company_id \n", + "US00130H1059 4351252 2.106926870694208 0.013898631388198987 \n", + "US0158577090 2228185 1.2623320662937099 0.004264157132071172 \n", + "US0185223007 3829481 2.043793289146705 0.011865477687998862 \n", + "US0188021085 3829481 1.867044766546712 0.010839343752422344 \n", + "US0236081024 15917812 2.404261301598871 0.058019419115953846 \n", "\n", - " investment_value pa_score WATS_weight TETS_weight \n", - "company_id \n", - "US00130H1059 50000 2.105909 0.053998 0.043264 \n", - "US0138721065 50000 1.262227 0.032365 0.000000 \n", - "US0158577090 50000 1.262227 0.032365 0.007193 \n", - "US0185223007 50000 2.063224 0.052903 0.015489 \n", - "US0188021085 50000 1.987187 0.050954 0.037716 " + " TETS_weight \n", + "company_id \n", + "US00130H1059 1.4900271821443577e-07 \n", + "US0158577090 4.162829462365117e-12 \n", + "US0185223007 5.2549678751293906e-08 \n", + "US0188021085 1.261547907437679e-07 \n", + "US0236081024 3.4265102068870053e-07 " ] }, - "execution_count": 17, + "execution_count": 18, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "portfolio_df['TETS_weight'] = vault_company_data.compute_portfolio_weights(portfolio_df['pa_score'], 2019, 'emissions', EScope.S1S2)\n", + "portfolio_df['TETS_weight'] = vault_company_data.compute_portfolio_weights(portfolio_df['pa_score'], 2019, 'emissions', EScope.S1S2).astype('pint[delta_degC]')\n", "portfolio_df.head()" ] }, { "cell_type": "code", - "execution_count": 18, + "execution_count": 19, "id": "68f22808-4ec2-4167-95ee-5b50f550dc59", "metadata": {}, "outputs": [ @@ -1956,7 +1330,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "Portfolio temperature score based on TETS = 2.0995755688941156\n" + "Portfolio temperature score based on TETS = 1.5060118497978 delta_degree_Celsius\n" ] } ], @@ -1980,7 +1354,34 @@ }, { "cell_type": "code", - "execution_count": 19, + "execution_count": 20, + "id": "9c2d630c-10dd-486f-b6c1-4d579e88a597", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "company_name object\n", + "company_lei object\n", + "investment_value int64\n", + "pa_score pint[delta_degree_Celsius]\n", + "WATS_weight pint[delta_degree_Celsius]\n", + "TETS_weight pint[delta_degree_Celsius]\n", + "dtype: object" + ] + }, + "execution_count": 20, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "portfolio_df.dtypes" + ] + }, + { + "cell_type": "code", + "execution_count": 21, "id": "0df8c5fc-2939-4ac1-9448-499803583eb1", "metadata": {}, "outputs": [ @@ -1988,11 +1389,21 @@ "name": "stdout", "output_type": "stream", "text": [ - "Portfolio temperature score based on MOTS = 1.9553783519299202\n", - "Portfolio temperature score based on EOTS = 1.9642265800595662\n", - "Portfolio temperature score based on ECOTS = 1.9535230492185478\n", - "Portfolio temperature score based on AOTS = 1.7668105855433356\n", - "Portfolio temperature score based on ROTS = 1.7662923761353264\n" + "Portfolio temperature score based on MOTS = 1.998539728638169 delta_degree_Celsius\n", + "Portfolio temperature score based on EOTS = 1.9715101533914599 delta_degree_Celsius\n", + "Portfolio temperature score based on ECOTS = 1.9914244268264996 delta_degree_Celsius\n", + "Portfolio temperature score based on AOTS = 1.9769581669116627 delta_degree_Celsius\n", + "Portfolio temperature score based on ROTS = 1.8572293378229632 delta_degree_Celsius\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/Users/michael/opt/miniconda3/envs/jupyter/lib/python3.10/site-packages/pint_pandas/pint_array.py:648: UnitStrippedWarning: The unit of the quantity is stripped when downcasting to ndarray.\n", + " return np.array(qtys, dtype=\"object\", copy=copy)\n", + "/Users/michael/opt/miniconda3/envs/jupyter/lib/python3.10/site-packages/pint_pandas/pint_array.py:648: UnitStrippedWarning: The unit of the quantity is stripped when downcasting to ndarray.\n", + " return np.array(qtys, dtype=\"object\", copy=copy)\n" ] }, { @@ -2048,681 +1459,860 @@ " US00130H1059\n", " AES Corp.\n", " 2NUNNB7D43COUIRE5295\n", - " 50000\n", - " 2.105909\n", - " 0.053998\n", - " 4.326361e-02\n", - " 0.030532\n", - " 0.019073\n", - " 0.035616\n", - " 0.038141\n", - " 0.055800\n", - " \n", - " \n", - " US0138721065\n", - " Alcoa Corp.\n", - " 549300T12EZ1F6PWWU29\n", - " 50000\n", - " 1.262227\n", - " 0.032365\n", - " 0.000000e+00\n", - " 0.004080\n", - " 0.003992\n", - " 0.006086\n", - " 0.009940\n", - " 0.034246\n", + " 4351252\n", + " 2.106926870694208\n", + " 0.013898631388198987\n", + " 1.4900271821443577e-07\n", + " 0.03357412161990311\n", + " 0.020337868906115608\n", + " 0.03667288993043838\n", + " 0.04816939688533329\n", + " 0.05276197099873813\n", " \n", " \n", " US0158577090\n", " Algonquin Power & Utilities Corp.\n", " 549300K5VIUTJXQL7X75\n", - " 50000\n", - " 1.262227\n", - " 0.032365\n", - " 7.193075e-03\n", - " NaN\n", - " NaN\n", - " NaN\n", - " 0.007420\n", - " 0.005339\n", + " 2228185\n", + " 1.2623320662937099\n", + " 0.004264157132071172\n", + " 4.162829462365117e-12\n", + " nan\n", + " nan\n", + " nan\n", + " 0.009358782813005341\n", + " 0.0050413384247108275\n", " \n", " \n", " US0185223007\n", " ALLETE, Inc.\n", " 549300NNLSIMY6Z8OT86\n", - " 50000\n", - " 2.063224\n", - " 0.052903\n", - " 1.548850e-02\n", - " 0.008971\n", - " 0.009437\n", - " 0.009666\n", - " 0.006089\n", - " 0.006656\n", + " 3829481\n", + " 2.043793289146705\n", + " 0.011865477687998862\n", + " 5.2549678751293906e-08\n", + " 0.012839373901951686\n", + " 0.011385162596862225\n", + " 0.013018784526381704\n", + " 0.007613807008198652\n", + " 0.006231229172975224\n", " \n", " \n", " US0188021085\n", " Alliant Energy\n", " 5493009ML300G373MZ12\n", - " 50000\n", - " 1.987187\n", - " 0.050954\n", - " 3.771644e-02\n", - " 0.036396\n", - " 0.039115\n", - " 0.038327\n", - " 0.017864\n", - " 0.018852\n", + " 3829481\n", + " 1.867044766546712\n", + " 0.010839343752422344\n", + " 1.261547907437679e-07\n", + " 0.03174960844912046\n", + " 0.0330110683879106\n", + " 0.03172544768591218\n", + " 0.021186142904952205\n", + " 0.016738395724396053\n", " \n", " \n", " US0236081024\n", " Ameren Corp.\n", " XRZQ5S7HYJFPHJ78L959\n", - " 50000\n", - " 2.421983\n", - " 0.062102\n", - " 9.710672e-02\n", - " 0.064485\n", - " 0.066420\n", - " 0.067878\n", - " 0.037719\n", - " 0.037224\n", + " 15917812\n", + " 2.404261301598871\n", + " 0.058019419115953846\n", + " 3.4265102068870053e-07\n", + " 0.06477745482537144\n", + " 0.06387775855844924\n", + " 0.06469360527719219\n", + " 0.04726477824338227\n", + " 0.034922806188620925\n", " \n", " \n", " US0255371017\n", " American Electric Power Co., Inc.\n", " 1B4S6S7G0TW5EE83BO58\n", - " 50000\n", - " 2.268167\n", - " 0.058158\n", - " 2.332623e-01\n", - " 0.138065\n", - " 0.164953\n", - " 0.146101\n", - " 0.092655\n", - " 0.091788\n", + " 45520637\n", + " 2.1814181749376793\n", + " 0.15054127748946447\n", + " 7.719971932013753e-07\n", + " 0.139082507959553\n", + " 0.15303279317063806\n", + " 0.13956919099354945\n", + " 0.11248617091168711\n", + " 0.08343102518455157\n", " \n", " \n", " US05351W1036\n", " Avangrid, Inc.\n", " 549300OX0Q38NLSKPB49\n", - " 50000\n", - " 1.299655\n", - " 0.033324\n", - " 5.779251e-05\n", - " 0.004749\n", - " 0.014100\n", - " 0.005368\n", - " 0.024061\n", - " 0.021414\n", + " 10049068\n", + " 1.624145450892199\n", + " 0.024743381095553976\n", + " 2.5939403676600244e-10\n", + " 0.00675237883315782\n", + " 0.016801248692288422\n", + " 0.007160665331019981\n", + " 0.0379793742030801\n", + " 0.02529980312047131\n", " \n", " \n", " US05379B1070\n", " Avista Corp.\n", " Q0IK63NITJD6RJ47SW96\n", - " 50000\n", - " 1.262227\n", - " 0.032365\n", - " 5.288110e-03\n", - " 0.004801\n", - " 0.005867\n", - " 0.005069\n", - " 0.004132\n", - " 0.004417\n", - " \n", - " \n", - " US0921131092\n", - " Black Hills Corp.\n", - " 3MGELCRSTNSAMJ962671\n", - " 50000\n", - " 2.044967\n", - " 0.052435\n", - " 1.002040e-02\n", - " 0.011106\n", - " 0.014255\n", - " 0.011712\n", - " 0.008320\n", - " 0.009226\n", - " \n", - " \n", - " CA1125851040\n", - " Brookfield Asset Management\n", - " C6J3FGIWG6MBDGTE8F80\n", - " 50000\n", - " 1.262227\n", - " 0.032365\n", - " 0.000000e+00\n", - " NaN\n", - " NaN\n", - " NaN\n", - " 0.220109\n", - " 0.222636\n", + " 2804211\n", + " 1.7099274356102043\n", + " 0.0072693688934764664\n", + " 2.5464088060658733e-08\n", + " 0.007391183784912206\n", + " 0.008035321000941292\n", + " 0.007399948532530545\n", + " 0.007066740568098292\n", + " 0.005655105952879468\n", " \n", " \n", " US18551QAA58\n", " Cleco Partners LP\n", " 5493002H80P81B3HXL31\n", - " 50000\n", - " 1.262227\n", - " 0.032365\n", - " 1.826329e-02\n", - " NaN\n", - " NaN\n", - " NaN\n", - " 0.005079\n", - " 0.005382\n", + " 3086052\n", + " 2.280309768660802\n", + " 0.01066855072571053\n", + " 1.1727968749659209e-07\n", + " nan\n", + " nan\n", + " nan\n", + " 0.011583583746330367\n", + " 0.009189101919284608\n", " \n", " \n", " US1258961002\n", - " CMS Energy Corp.\n", + " CMS Energy\n", " 549300IA9XFBAGNIBW29\n", - " 50000\n", - " 2.020682\n", - " 0.051812\n", - " 4.330570e-02\n", - " 0.051773\n", - " 0.060195\n", - " 0.054904\n", - " 0.029190\n", - " 0.035969\n", + " 9153135\n", + " 2.1320023723934343\n", + " 0.02958461286148185\n", + " 1.624135308468388e-07\n", + " 0.05110745034256367\n", + " 0.05737401152284647\n", + " 0.05143351653370429\n", + " 0.038876229852125306\n", + " 0.035867501304020305\n", " \n", " \n", " US2091151041\n", " Consolidated Edison, Inc.\n", " 54930033SBW53OO8T749\n", - " 50000\n", - " 1.501692\n", - " 0.038505\n", - " 3.093297e-03\n", - " 0.055470\n", - " 0.067581\n", - " 0.060719\n", - " 0.046946\n", - " 0.049104\n", + " 20394113\n", + " 1.7197135175610079\n", + " 0.0531703189382527\n", + " 1.2591698410405677e-08\n", + " 0.0733626055289818\n", + " 0.07902737580492676\n", + " 0.07567171610839929\n", + " 0.06786373005464445\n", + " 0.05314587328152441\n", " \n", " \n", " US25746U1097\n", " Dominion Energy\n", " ILUL7B6Z54MRYCF6H308\n", - " 50000\n", - " 1.743513\n", - " 0.044705\n", - " 9.386318e-02\n", - " 0.182473\n", - " 0.176783\n", - " 0.192278\n", - " 0.097435\n", - " 0.065295\n", + " 33528082\n", + " 1.6421622410252814\n", + " 0.08347051846507961\n", + " 3.14248738011264e-07\n", + " 0.14925655201730625\n", + " 0.15010182616211487\n", + " 0.1493324514553829\n", + " 0.11584362182232663\n", + " 0.06688534526952991\n", " \n", " \n", " US2333311072\n", " DTE Energy\n", " 549300IX8SD6XXD71I78\n", - " 50000\n", - " 2.574596\n", - " 0.066015\n", - " 1.190595e-01\n", - " 0.081232\n", - " 0.097943\n", - " 0.085815\n", - " 0.058576\n", - " 0.084823\n", + " 14329945\n", + " 2.494203358852266\n", + " 0.054185704264262134\n", + " 4.099910696471906e-07\n", + " 0.0844635815144744\n", + " 0.09476515956854094\n", + " 0.08462019002077521\n", + " 0.07097767408945654\n", + " 0.07766300356121279\n", " \n", " \n", " US26441C2044\n", " Duke Energy Corp.\n", " I1BZKREC126H0VB1BL91\n", - " 50000\n", - " 1.960795\n", - " 0.050277\n", - " 2.807392e-01\n", - " 0.177112\n", - " 0.249258\n", - " 0.187246\n", - " 0.167642\n", - " 0.127880\n", + " 73069652\n", + " 1.8259317788445726\n", + " 0.20226927849518375\n", + " 9.29026546418335e-07\n", + " 0.17193009401045845\n", + " 0.22155105310535217\n", + " 0.17238886319907545\n", + " 0.1970613477213826\n", + " 0.11254721411236115\n", + " \n", + " \n", + " US283677AZ52\n", + " El Paso Electric Co\n", + " OZ8GM8L4AHPKSWZMW205\n", + " 2646941\n", + " 1.864862725462496\n", + " 0.007483408770370701\n", + " 3.429901756307964e-08\n", + " 0.007206687865731673\n", + " 0.007350616245331298\n", + " 0.007220609667618246\n", + " 0.0048316886860380335\n", + " 0.003950855064002835\n", " \n", " \n", " US29364G1031\n", " Entergy Corp.\n", " 4XM3TW50JULSLG8BNC79\n", - " 50000\n", - " 1.262227\n", - " 0.032365\n", - " 7.187317e-02\n", - " 0.036523\n", - " 0.049461\n", - " 0.039278\n", - " 0.035142\n", - " 0.035709\n", + " 29844269\n", + " 1.727230341297715\n", + " 0.07814830149463829\n", + " 3.4959645003586115e-07\n", + " 0.05190745937361752\n", + " 0.06458856665766571\n", + " 0.05287080443504319\n", + " 0.06070215564531642\n", + " 0.046181301440845035\n", " \n", " \n", " US30034W1062\n", " Evergy, Inc.\n", " 549300PGTHDQY6PSUI61\n", - " 50000\n", - " 2.519427\n", - " 0.064601\n", - " 1.154258e-01\n", - " 0.052000\n", - " 0.058373\n", - " 0.054780\n", - " 0.035226\n", - " 0.033728\n", + " 18254954\n", + " 2.1869485449964037\n", + " 0.06052400340167886\n", + " 3.5614524723693755e-07\n", + " 0.045326633364450857\n", + " 0.04777411915987389\n", + " 0.045302805246517155\n", + " 0.03859860953695048\n", + " 0.02766943029282214\n", " \n", " \n", " US30040W1080\n", " Eversource Energy\n", " SJ7XXD41SQU3ZNWUJ746\n", - " 50000\n", - " 1.262227\n", - " 0.032365\n", - " 4.783859e-07\n", - " 0.055359\n", - " 0.055826\n", - " 0.058250\n", - " 0.027940\n", - " 0.027988\n", + " 18962480\n", + " 1.2636355763883802\n", + " 0.03632664747179234\n", + " 1.7023588038521205e-12\n", + " 0.045360009814775525\n", + " 0.046175243275212934\n", + " 0.045290416308094134\n", + " 0.03530846103939446\n", + " 0.026480799897099\n", " \n", " \n", " US3379321074\n", " FirstEnergy Corp.\n", " 549300SVYJS666PQJH88\n", - " 50000\n", - " 2.725257\n", - " 0.069878\n", - " 8.684604e-02\n", - " 0.087946\n", - " 0.113992\n", - " 0.095254\n", - " 0.062052\n", - " 0.078206\n", + " 27277340\n", + " 3.4408564514595774\n", + " 0.14229082940670418\n", + " 3.897594054855418e-07\n", + " 0.11462889184363255\n", + " 0.13715660868982169\n", + " 0.1175368082535572\n", + " 0.0988962172735531\n", + " 0.09332089148551007\n", " \n", " \n", " CA3495531079\n", - " Fortis, Inc.\n", + " Fortis, Inc\n", " 549300MQYQ9Y065XPR71\n", - " 50000\n", - " 2.126674\n", - " 0.054530\n", - " 3.330246e-02\n", - " NaN\n", - " NaN\n", - " NaN\n", - " 0.046888\n", - " 0.037256\n", - " \n", - " \n", - " US4198701009\n", - " Hawaiian Electric Industries, Inc.\n", - " JJ8FWOCWCV22X7GUPJ23\n", - " 50000\n", - " 2.049170\n", - " 0.052543\n", - " 1.396500e-02\n", - " 0.012417\n", - " 0.012237\n", - " 0.013711\n", - " 0.015161\n", - " 0.015315\n", + " 12428756\n", + " 2.8403172973777053\n", + " 0.05351836779325424\n", + " 1.519730021856325e-07\n", + " nan\n", + " nan\n", + " nan\n", + " 0.07911656908686812\n", + " 0.0470667310963962\n", " \n", " \n", " US6362744095\n", - " National Grid PLC\n", + " National Grid plc\n", " 8R95QZMKZLJX5Q2XR704\n", - " 50000\n", - " 1.972486\n", - " 0.050577\n", - " 8.201740e-03\n", - " 0.134077\n", - " NaN\n", - " 0.142046\n", - " 0.086817\n", - " 0.099479\n", + " 12281584\n", + " 2.5302066248940553\n", + " 0.047110608148483515\n", + " 3.640382115837752e-08\n", + " 0.15127568349562315\n", + " nan\n", + " 0.15215975540910204\n", + " 0.14057664279423704\n", + " 0.12060139050049665\n", " \n", " \n", " US6680743050\n", - " Northwestern Corp.\n", + " NorthWestern Corp.\n", " 3BPWMBHR1R9SHUN7J795\n", - " 50000\n", - " 1.760193\n", - " 0.045133\n", - " 7.643218e-03\n", - " 0.007470\n", - " 0.009524\n", - " 0.007870\n", - " 0.005764\n", - " 0.005758\n", + " 2703150\n", + " 2.235303301117127\n", + " 0.009160410677781903\n", + " 3.6548819631302805e-08\n", + " 0.011926077613739264\n", + " 0.012924704639595212\n", + " 0.011917103321524023\n", + " 0.008977140347481906\n", + " 0.006910763261421611\n", " \n", " \n", " US6708371033\n", - " OG&E Energy Corp.\n", + " OG&E Energy\n", " CE5OG6JPOZMDSA0LAQ19\n", - " 50000\n", - " 2.600624\n", - " 0.066683\n", - " 4.494730e-02\n", - " 0.024324\n", - " NaN\n", - " NaN\n", - " 0.015432\n", - " 0.015092\n", + " 7251242\n", + " 2.572462385836689\n", + " 0.028279372708084515\n", + " 1.5803838520201566e-07\n", + " 0.03212831171274878\n", + " nan\n", + " nan\n", + " 0.019269149564939952\n", + " 0.014109296911343806\n", " \n", " \n", " US6896481032\n", " Otter Tail Corp.\n", " 549300HHVBQRQUVKKD91\n", - " 50000\n", - " 2.709576\n", - " 0.069476\n", - " 1.208879e-02\n", - " 0.006449\n", - " 0.006300\n", - " 0.006875\n", - " 0.003316\n", - " 0.006479\n", - " \n", - " \n", - " US69331C1080\n", - " PG&E Corp.\n", - " 1HNPXZSMMB7HMBMVBS46\n", - " 50000\n", - " 1.333378\n", - " 0.034189\n", - " 5.576292e-03\n", - " 0.024893\n", - " 0.017154\n", - " 0.029567\n", - " 0.061146\n", - " 0.059395\n", + " 1264277\n", + " 2.9694066480437593\n", + " 0.0056914149829881515\n", + " 4.7091070069869694e-08\n", + " 0.008880331745854566\n", + " 0.007702315685602822\n", + " 0.008953203650381842\n", + " 0.004587174627040453\n", + " 0.0067106225780971685\n", " \n", " \n", " US7234841010\n", " Pinnacle West Capital Corp.\n", " TWSEY0NEDUDCKS27AH81\n", - " 50000\n", - " 1.841268\n", - " 0.047212\n", - " 3.326892e-02\n", - " 0.023328\n", - " 0.027785\n", - " 0.024563\n", - " 0.018315\n", - " 0.016621\n", + " 12058547\n", + " 2.086103530593631\n", + " 0.0381363546476481\n", + " 1.3398156342413038e-07\n", + " 0.0322213776799511\n", + " 0.03332942990290081\n", + " 0.03218305838813145\n", + " 0.02619284180162325\n", + " 0.017797401906124867\n", " \n", " \n", " US69349H1077\n", " PNM Resources, Inc.\n", " 5493003JOBJGLZSDDQ28\n", - " 50000\n", - " 1.896564\n", - " 0.048630\n", - " 1.743624e-02\n", - " 0.008938\n", - " 0.011069\n", - " 0.009411\n", - " 0.007451\n", - " 0.007189\n", + " 3326899\n", + " 2.013668347320406\n", + " 0.010156308848237565\n", + " 6.580530342148538e-08\n", + " 0.01197077404907257\n", + " 0.012639253078697257\n", + " 0.01195617040266632\n", + " 0.009986202103731528\n", + " 0.00721385126240408\n", " \n", " \n", " US7365088472\n", " Portland General Electric Co.\n", " GJOUP9M7C39GLSK9R870\n", - " 50000\n", - " 1.854606\n", - " 0.047554\n", - " 2.421048e-02\n", - " 0.010635\n", - " NaN\n", - " NaN\n", - " 0.008379\n", - " 0.010239\n", + " 5770964\n", + " 1.8706266553608955\n", + " 0.01636604808107313\n", + " 8.680131385312401e-08\n", + " 0.013227637419492053\n", + " 0.014000404723625308\n", + " 0.013281115197873679\n", + " 0.010668873721131752\n", + " 0.009760613126775643\n", " \n", " \n", " US69351T1060\n", - " PPL Corp.\n", + " PPL\n", " 9N3UAJSNOUXFKQLF3V18\n", - " 50000\n", - " 3.059505\n", - " 0.078449\n", - " 1.508039e-01\n", - " 0.093543\n", - " 0.131127\n", - " 0.102410\n", - " 0.075227\n", - " 0.061813\n", + " 18146577\n", + " 2.6346104815070195\n", + " 0.07248021455222131\n", + " 4.615993605738829e-07\n", + " 0.08645396244422032\n", + " 0.10941513137405769\n", + " 0.08940788996261194\n", + " 0.08177207191530365\n", + " 0.05030620119633238\n", " \n", " \n", " US7445731067\n", " Public Service Enterprise Group\n", " PUSS41EMO3E6XXNV3U28\n", - " 50000\n", - " 1.262227\n", - " 0.032365\n", - " 2.501795e-02\n", - " 0.047884\n", - " 0.054469\n", - " 0.050657\n", - " 0.032428\n", - " 0.033074\n", + " 16912134\n", + " 1.4434071117060308\n", + " 0.03700799790772644\n", + " 1.0168628604665428e-07\n", + " 0.06245019087418841\n", + " 0.0635679978881717\n", + " 0.0626254824927157\n", + " 0.04681044465151272\n", + " 0.03574513867355394\n", " \n", " \n", " US8168511090\n", - " Sempra\n", + " Sempra Energy\n", " PBBKGKLRK5S5C0Y4T545\n", - " 50000\n", - " 1.364717\n", - " 0.034993\n", - " 1.157839e-03\n", - " 0.072045\n", - " 0.078538\n", - " 0.076004\n", - " 0.048236\n", - " 0.038432\n", + " 29579515\n", + " 1.8683533328964472\n", + " 0.08378348075446392\n", + " 5.634458021974756e-09\n", + " 0.10325854818136664\n", + " 0.10421959985473984\n", + " 0.10333035558010317\n", + " 0.08335956719180115\n", + " 0.04972643805524998\n", " \n", " \n", " US8425871071\n", " Southern Co.\n", " 549300FC3G3YU2FBZD92\n", - " 50000\n", - " 2.249758\n", - " 0.057686\n", - " 2.444344e-01\n", - " 0.189750\n", - " 0.222838\n", - " 0.206741\n", - " 0.143742\n", - " 0.132199\n", - " \n", - " \n", - " CA87807B1076\n", - " TC Energy Corp.\n", - " 549300UGKOFV2IWJJG27\n", - " 50000\n", - " 1.262227\n", - " 0.032365\n", - " 1.261891e-03\n", - " NaN\n", - " NaN\n", - " NaN\n", - " 0.051735\n", - " 0.033371\n", - " \n", - " \n", - " US92840M1027\n", - " Vistra Corp.\n", - " 549300KP43CPCUJOOG15\n", - " 50000\n", - " 1.262227\n", - " 0.032365\n", - " 1.478947e-02\n", - " 0.017648\n", - " 0.024954\n", - " 0.019173\n", - " 0.018083\n", - " 0.038762\n", + " 50294245\n", + " 1.9963792988066478\n", + " 0.1522192893311671\n", + " 7.710068482171507e-07\n", + " 0.16915956105446733\n", + " 0.18622750506679941\n", + " 0.1745612532143091\n", + " 0.16101126726344764\n", + " 0.10509504376408856\n", " \n", " \n", " US92939U1060\n", " WEC Energy Group\n", " 549300IGLYTZUK3PVP70\n", - " 50000\n", - " 2.462315\n", - " 0.063136\n", - " 4.164368e-02\n", - " 0.104597\n", - " 0.101608\n", - " 0.110148\n", - " 0.046324\n", - " 0.048173\n", + " 11046675\n", + " 2.11253492554515\n", + " 0.03537885829457992\n", + " 1.2699795919947189e-07\n", + " 0.08144891426414327\n", + " 0.07695104488519561\n", + " 0.08138861437944513\n", + " 0.050169056739773205\n", + " 0.03906076269591012\n", " \n", " \n", " US98389B1008\n", " Xcel Energy, Inc.\n", " LGJNMI9GH8XIDG5RCM61\n", - " 50000\n", - " 1.866682\n", - " 0.047864\n", - " 1.379593e-01\n", - " 0.094307\n", - " NaN\n", - " NaN\n", - " 0.050689\n", - " 0.055966\n", + " 27475073\n", + " 1.8665476973515542\n", + " 0.07774747374617197\n", + " 4.710003986931088e-07\n", + " 0.08381128240682202\n", + " 0.0902630207506063\n", + " 0.08430712540675832\n", + " 0.06398019170908303\n", + " 0.05288965305341673\n", + " \n", + " \n", + " US1442851036\n", + " CARPENTER TECHNOLOGY CORP\n", + " DX6I6ZD3X5WNNCDJKP85\n", + " 10000000\n", + " 1.9900906690954119\n", + " 0.030170409339518933\n", + " 0.011607472600352978\n", + " 0.004922291988089818\n", + " 0.004204096572007335\n", + " 0.004990244394801827\n", + " 0.004310487808706214\n", + " 0.011641965312984528\n", + " \n", + " \n", + " US2017231034\n", + " COMMERCIAL METALS CO\n", + " 549300OQS2LO07ZJ7N73\n", + " 10000000\n", + " 1.2990617896624888\n", + " 0.019694191103996513\n", + " 0.020154780490691044\n", + " 0.003618337414588834\n", + " nan\n", + " nan\n", + " 0.0033177080579832835\n", + " 0.018610755334314076\n", + " \n", + " \n", + " US3737371050\n", + " GERDAU S.A.\n", + " 254900YDV6SEQQPZVG24\n", + " 10000000\n", + " 1.375590655258247\n", + " 0.020854393117486963\n", + " 0.10005546157880678\n", + " nan\n", + " nan\n", + " nan\n", + " 0.01252243765842747\n", + " 0.03325265337048597\n", + " \n", + " \n", + " US6703461052\n", + " NUCOR CORP\n", + " 549300GGJCRSI2TIEJ46\n", + " 10000000\n", + " 1.315430185746877\n", + " 0.019942341209801415\n", + " 0.07848167099244932\n", + " 0.03197260211182495\n", + " 0.024305171544838817\n", + " 0.03485634781003422\n", + " 0.016396082842808767\n", + " 0.07303012863213186\n", + " \n", + " \n", + " KR7005490008\n", + " POSCO\n", + " 988400E5HRVX81AYLM04\n", + " 10000000\n", + " 1.5593142658365693\n", + " 0.023639701657726442\n", + " 0.7619530611957582\n", + " nan\n", + " nan\n", + " nan\n", + " 0.07263123014493186\n", + " 0.21444667139178533\n", + " \n", + " \n", + " US8581191009\n", + " STEEL DYNAMICS INC\n", + " 549300HGGKEL4FYTTQ83\n", + " 10000000\n", + " 1.3158777300113855\n", + " 0.019949126123608336\n", + " 0.039172201098130216\n", + " 0.009645199046956762\n", + " 0.007987945257169369\n", + " 0.012283462287977612\n", + " 0.007399224052972695\n", + " 0.033844989431466715\n", + " \n", + " \n", + " US88031M1099\n", + " TENARIS SA\n", + " 549300Y7C05BKC4HZB40\n", + " 10000000\n", + " 1.3632817562247952\n", + " 0.020667786281866326\n", + " 0.021579100261655475\n", + " nan\n", + " nan\n", + " nan\n", + " 0.013748950184392398\n", + " 0.024439630936756346\n", + " \n", + " \n", + " US8808901081\n", + " TERNIUM S.A.\n", + " 529900QG4KU23TEI2E46\n", + " 10000000\n", + " 1.5265556596582406\n", + " 0.02314307073877363\n", + " 0.1656445290791045\n", + " nan\n", + " nan\n", + " nan\n", + " 0.013417124921380242\n", + " 0.03824255500688262\n", + " \n", + " \n", + " US8873991033\n", + " TIMKENSTEEL CORP\n", + " 549300QZTZWHDE9HJL14\n", + " 10000000\n", + " 1.2939425547566503\n", + " 0.019616581869898397\n", + " 0.003395288672058109\n", + " 0.0006402471902290573\n", + " 0.0004950917770041775\n", + " 0.0006901566101955718\n", + " 0.0009540854493255154\n", + " 0.0038442306237322942\n", + " \n", + " \n", + " US9129091081\n", + " UNITED STATES STEEL CORP\n", + " JNLUVFYJT1OZSIQ24U47\n", + " 10000000\n", + " 1.5154085205221834\n", + " 0.022974076553773867\n", + " 0.3016836955421658\n", + " 0.005776020500960534\n", + " 0.008152423592683745\n", + " 0.007423865256675461\n", + " 0.011952248543683201\n", + " 0.04818404875572425\n", + " \n", + " \n", + " US9818111026\n", + " WORTHINGTON INDUSTRIES INC\n", + " 1WRCIANKYOIK6KYE5E82\n", + " 10000000\n", + " 1.26782307131814\n", + " 0.0192206021694183\n", + " 0.0022773902818980568\n", + " 0.0030357823938668522\n", + " 0.002779215292872067\n", + " 0.003200509556000493\n", + " 0.0021628807238201053\n", + " 0.011714808549532102\n", " \n", " \n", "\n", "" ], "text/plain": [ - " company_name company_lei \\\n", - "company_id \n", - "US00130H1059 AES Corp. 2NUNNB7D43COUIRE5295 \n", - "US0138721065 Alcoa Corp. 549300T12EZ1F6PWWU29 \n", - "US0158577090 Algonquin Power & Utilities Corp. 549300K5VIUTJXQL7X75 \n", - "US0185223007 ALLETE, Inc. 549300NNLSIMY6Z8OT86 \n", - "US0188021085 Alliant Energy 5493009ML300G373MZ12 \n", - "US0236081024 Ameren Corp. XRZQ5S7HYJFPHJ78L959 \n", - "US0255371017 American Electric Power Co., Inc. 1B4S6S7G0TW5EE83BO58 \n", - "US05351W1036 Avangrid, Inc. 549300OX0Q38NLSKPB49 \n", - "US05379B1070 Avista Corp. Q0IK63NITJD6RJ47SW96 \n", - "US0921131092 Black Hills Corp. 3MGELCRSTNSAMJ962671 \n", - "CA1125851040 Brookfield Asset Management C6J3FGIWG6MBDGTE8F80 \n", - "US18551QAA58 Cleco Partners LP 5493002H80P81B3HXL31 \n", - "US1258961002 CMS Energy Corp. 549300IA9XFBAGNIBW29 \n", - "US2091151041 Consolidated Edison, Inc. 54930033SBW53OO8T749 \n", - "US25746U1097 Dominion Energy ILUL7B6Z54MRYCF6H308 \n", - "US2333311072 DTE Energy 549300IX8SD6XXD71I78 \n", - "US26441C2044 Duke Energy Corp. I1BZKREC126H0VB1BL91 \n", - "US29364G1031 Entergy Corp. 4XM3TW50JULSLG8BNC79 \n", - "US30034W1062 Evergy, Inc. 549300PGTHDQY6PSUI61 \n", - "US30040W1080 Eversource Energy SJ7XXD41SQU3ZNWUJ746 \n", - "US3379321074 FirstEnergy Corp. 549300SVYJS666PQJH88 \n", - "CA3495531079 Fortis, Inc. 549300MQYQ9Y065XPR71 \n", - "US4198701009 Hawaiian Electric Industries, Inc. JJ8FWOCWCV22X7GUPJ23 \n", - "US6362744095 National Grid PLC 8R95QZMKZLJX5Q2XR704 \n", - "US6680743050 Northwestern Corp. 3BPWMBHR1R9SHUN7J795 \n", - "US6708371033 OG&E Energy Corp. CE5OG6JPOZMDSA0LAQ19 \n", - "US6896481032 Otter Tail Corp. 549300HHVBQRQUVKKD91 \n", - "US69331C1080 PG&E Corp. 1HNPXZSMMB7HMBMVBS46 \n", - "US7234841010 Pinnacle West Capital Corp. TWSEY0NEDUDCKS27AH81 \n", - "US69349H1077 PNM Resources, Inc. 5493003JOBJGLZSDDQ28 \n", - "US7365088472 Portland General Electric Co. GJOUP9M7C39GLSK9R870 \n", - "US69351T1060 PPL Corp. 9N3UAJSNOUXFKQLF3V18 \n", - "US7445731067 Public Service Enterprise Group PUSS41EMO3E6XXNV3U28 \n", - "US8168511090 Sempra PBBKGKLRK5S5C0Y4T545 \n", - "US8425871071 Southern Co. 549300FC3G3YU2FBZD92 \n", - "CA87807B1076 TC Energy Corp. 549300UGKOFV2IWJJG27 \n", - "US92840M1027 Vistra Corp. 549300KP43CPCUJOOG15 \n", - "US92939U1060 WEC Energy Group 549300IGLYTZUK3PVP70 \n", - "US98389B1008 Xcel Energy, Inc. LGJNMI9GH8XIDG5RCM61 \n", + " company_name company_lei \\\n", + "company_id \n", + "US00130H1059 AES Corp. 2NUNNB7D43COUIRE5295 \n", + "US0158577090 Algonquin Power & Utilities Corp. 549300K5VIUTJXQL7X75 \n", + "US0185223007 ALLETE, Inc. 549300NNLSIMY6Z8OT86 \n", + "US0188021085 Alliant Energy 5493009ML300G373MZ12 \n", + "US0236081024 Ameren Corp. XRZQ5S7HYJFPHJ78L959 \n", + "US0255371017 American Electric Power Co., Inc. 1B4S6S7G0TW5EE83BO58 \n", + "US05351W1036 Avangrid, Inc. 549300OX0Q38NLSKPB49 \n", + "US05379B1070 Avista Corp. Q0IK63NITJD6RJ47SW96 \n", + "US18551QAA58 Cleco Partners LP 5493002H80P81B3HXL31 \n", + "US1258961002 CMS Energy 549300IA9XFBAGNIBW29 \n", + "US2091151041 Consolidated Edison, Inc. 54930033SBW53OO8T749 \n", + "US25746U1097 Dominion Energy ILUL7B6Z54MRYCF6H308 \n", + "US2333311072 DTE Energy 549300IX8SD6XXD71I78 \n", + "US26441C2044 Duke Energy Corp. I1BZKREC126H0VB1BL91 \n", + "US283677AZ52 El Paso Electric Co OZ8GM8L4AHPKSWZMW205 \n", + "US29364G1031 Entergy Corp. 4XM3TW50JULSLG8BNC79 \n", + "US30034W1062 Evergy, Inc. 549300PGTHDQY6PSUI61 \n", + "US30040W1080 Eversource Energy SJ7XXD41SQU3ZNWUJ746 \n", + "US3379321074 FirstEnergy Corp. 549300SVYJS666PQJH88 \n", + "CA3495531079 Fortis, Inc 549300MQYQ9Y065XPR71 \n", + "US6362744095 National Grid plc 8R95QZMKZLJX5Q2XR704 \n", + "US6680743050 NorthWestern Corp. 3BPWMBHR1R9SHUN7J795 \n", + "US6708371033 OG&E Energy CE5OG6JPOZMDSA0LAQ19 \n", + "US6896481032 Otter Tail Corp. 549300HHVBQRQUVKKD91 \n", + "US7234841010 Pinnacle West Capital Corp. TWSEY0NEDUDCKS27AH81 \n", + "US69349H1077 PNM Resources, Inc. 5493003JOBJGLZSDDQ28 \n", + "US7365088472 Portland General Electric Co. GJOUP9M7C39GLSK9R870 \n", + "US69351T1060 PPL 9N3UAJSNOUXFKQLF3V18 \n", + "US7445731067 Public Service Enterprise Group PUSS41EMO3E6XXNV3U28 \n", + "US8168511090 Sempra Energy PBBKGKLRK5S5C0Y4T545 \n", + "US8425871071 Southern Co. 549300FC3G3YU2FBZD92 \n", + "US92939U1060 WEC Energy Group 549300IGLYTZUK3PVP70 \n", + "US98389B1008 Xcel Energy, Inc. LGJNMI9GH8XIDG5RCM61 \n", + "US1442851036 CARPENTER TECHNOLOGY CORP DX6I6ZD3X5WNNCDJKP85 \n", + "US2017231034 COMMERCIAL METALS CO 549300OQS2LO07ZJ7N73 \n", + "US3737371050 GERDAU S.A. 254900YDV6SEQQPZVG24 \n", + "US6703461052 NUCOR CORP 549300GGJCRSI2TIEJ46 \n", + "KR7005490008 POSCO 988400E5HRVX81AYLM04 \n", + "US8581191009 STEEL DYNAMICS INC 549300HGGKEL4FYTTQ83 \n", + "US88031M1099 TENARIS SA 549300Y7C05BKC4HZB40 \n", + "US8808901081 TERNIUM S.A. 529900QG4KU23TEI2E46 \n", + "US8873991033 TIMKENSTEEL CORP 549300QZTZWHDE9HJL14 \n", + "US9129091081 UNITED STATES STEEL CORP JNLUVFYJT1OZSIQ24U47 \n", + "US9818111026 WORTHINGTON INDUSTRIES INC 1WRCIANKYOIK6KYE5E82 \n", + "\n", + " investment_value pa_score WATS_weight \\\n", + "company_id \n", + "US00130H1059 4351252 2.106926870694208 0.013898631388198987 \n", + "US0158577090 2228185 1.2623320662937099 0.004264157132071172 \n", + "US0185223007 3829481 2.043793289146705 0.011865477687998862 \n", + "US0188021085 3829481 1.867044766546712 0.010839343752422344 \n", + "US0236081024 15917812 2.404261301598871 0.058019419115953846 \n", + "US0255371017 45520637 2.1814181749376793 0.15054127748946447 \n", + "US05351W1036 10049068 1.624145450892199 0.024743381095553976 \n", + "US05379B1070 2804211 1.7099274356102043 0.0072693688934764664 \n", + "US18551QAA58 3086052 2.280309768660802 0.01066855072571053 \n", + "US1258961002 9153135 2.1320023723934343 0.02958461286148185 \n", + "US2091151041 20394113 1.7197135175610079 0.0531703189382527 \n", + "US25746U1097 33528082 1.6421622410252814 0.08347051846507961 \n", + "US2333311072 14329945 2.494203358852266 0.054185704264262134 \n", + "US26441C2044 73069652 1.8259317788445726 0.20226927849518375 \n", + "US283677AZ52 2646941 1.864862725462496 0.007483408770370701 \n", + "US29364G1031 29844269 1.727230341297715 0.07814830149463829 \n", + "US30034W1062 18254954 2.1869485449964037 0.06052400340167886 \n", + "US30040W1080 18962480 1.2636355763883802 0.03632664747179234 \n", + "US3379321074 27277340 3.4408564514595774 0.14229082940670418 \n", + "CA3495531079 12428756 2.8403172973777053 0.05351836779325424 \n", + "US6362744095 12281584 2.5302066248940553 0.047110608148483515 \n", + "US6680743050 2703150 2.235303301117127 0.009160410677781903 \n", + "US6708371033 7251242 2.572462385836689 0.028279372708084515 \n", + "US6896481032 1264277 2.9694066480437593 0.0056914149829881515 \n", + "US7234841010 12058547 2.086103530593631 0.0381363546476481 \n", + "US69349H1077 3326899 2.013668347320406 0.010156308848237565 \n", + "US7365088472 5770964 1.8706266553608955 0.01636604808107313 \n", + "US69351T1060 18146577 2.6346104815070195 0.07248021455222131 \n", + "US7445731067 16912134 1.4434071117060308 0.03700799790772644 \n", + "US8168511090 29579515 1.8683533328964472 0.08378348075446392 \n", + "US8425871071 50294245 1.9963792988066478 0.1522192893311671 \n", + "US92939U1060 11046675 2.11253492554515 0.03537885829457992 \n", + "US98389B1008 27475073 1.8665476973515542 0.07774747374617197 \n", + "US1442851036 10000000 1.9900906690954119 0.030170409339518933 \n", + "US2017231034 10000000 1.2990617896624888 0.019694191103996513 \n", + "US3737371050 10000000 1.375590655258247 0.020854393117486963 \n", + "US6703461052 10000000 1.315430185746877 0.019942341209801415 \n", + "KR7005490008 10000000 1.5593142658365693 0.023639701657726442 \n", + "US8581191009 10000000 1.3158777300113855 0.019949126123608336 \n", + "US88031M1099 10000000 1.3632817562247952 0.020667786281866326 \n", + "US8808901081 10000000 1.5265556596582406 0.02314307073877363 \n", + "US8873991033 10000000 1.2939425547566503 0.019616581869898397 \n", + "US9129091081 10000000 1.5154085205221834 0.022974076553773867 \n", + "US9818111026 10000000 1.26782307131814 0.0192206021694183 \n", "\n", - " investment_value pa_score WATS_weight TETS_weight \\\n", - "company_id \n", - "US00130H1059 50000 2.105909 0.053998 4.326361e-02 \n", - "US0138721065 50000 1.262227 0.032365 0.000000e+00 \n", - "US0158577090 50000 1.262227 0.032365 7.193075e-03 \n", - "US0185223007 50000 2.063224 0.052903 1.548850e-02 \n", - "US0188021085 50000 1.987187 0.050954 3.771644e-02 \n", - "US0236081024 50000 2.421983 0.062102 9.710672e-02 \n", - "US0255371017 50000 2.268167 0.058158 2.332623e-01 \n", - "US05351W1036 50000 1.299655 0.033324 5.779251e-05 \n", - "US05379B1070 50000 1.262227 0.032365 5.288110e-03 \n", - "US0921131092 50000 2.044967 0.052435 1.002040e-02 \n", - "CA1125851040 50000 1.262227 0.032365 0.000000e+00 \n", - "US18551QAA58 50000 1.262227 0.032365 1.826329e-02 \n", - "US1258961002 50000 2.020682 0.051812 4.330570e-02 \n", - "US2091151041 50000 1.501692 0.038505 3.093297e-03 \n", - "US25746U1097 50000 1.743513 0.044705 9.386318e-02 \n", - "US2333311072 50000 2.574596 0.066015 1.190595e-01 \n", - "US26441C2044 50000 1.960795 0.050277 2.807392e-01 \n", - "US29364G1031 50000 1.262227 0.032365 7.187317e-02 \n", - "US30034W1062 50000 2.519427 0.064601 1.154258e-01 \n", - "US30040W1080 50000 1.262227 0.032365 4.783859e-07 \n", - "US3379321074 50000 2.725257 0.069878 8.684604e-02 \n", - "CA3495531079 50000 2.126674 0.054530 3.330246e-02 \n", - "US4198701009 50000 2.049170 0.052543 1.396500e-02 \n", - "US6362744095 50000 1.972486 0.050577 8.201740e-03 \n", - "US6680743050 50000 1.760193 0.045133 7.643218e-03 \n", - "US6708371033 50000 2.600624 0.066683 4.494730e-02 \n", - "US6896481032 50000 2.709576 0.069476 1.208879e-02 \n", - "US69331C1080 50000 1.333378 0.034189 5.576292e-03 \n", - "US7234841010 50000 1.841268 0.047212 3.326892e-02 \n", - "US69349H1077 50000 1.896564 0.048630 1.743624e-02 \n", - "US7365088472 50000 1.854606 0.047554 2.421048e-02 \n", - "US69351T1060 50000 3.059505 0.078449 1.508039e-01 \n", - "US7445731067 50000 1.262227 0.032365 2.501795e-02 \n", - "US8168511090 50000 1.364717 0.034993 1.157839e-03 \n", - "US8425871071 50000 2.249758 0.057686 2.444344e-01 \n", - "CA87807B1076 50000 1.262227 0.032365 1.261891e-03 \n", - "US92840M1027 50000 1.262227 0.032365 1.478947e-02 \n", - "US92939U1060 50000 2.462315 0.063136 4.164368e-02 \n", - "US98389B1008 50000 1.866682 0.047864 1.379593e-01 \n", + " TETS_weight MOTS_weight \\\n", + "company_id \n", + "US00130H1059 1.4900271821443577e-07 0.03357412161990311 \n", + "US0158577090 4.162829462365117e-12 nan \n", + "US0185223007 5.2549678751293906e-08 0.012839373901951686 \n", + "US0188021085 1.261547907437679e-07 0.03174960844912046 \n", + "US0236081024 3.4265102068870053e-07 0.06477745482537144 \n", + "US0255371017 7.719971932013753e-07 0.139082507959553 \n", + "US05351W1036 2.5939403676600244e-10 0.00675237883315782 \n", + "US05379B1070 2.5464088060658733e-08 0.007391183784912206 \n", + "US18551QAA58 1.1727968749659209e-07 nan \n", + "US1258961002 1.624135308468388e-07 0.05110745034256367 \n", + "US2091151041 1.2591698410405677e-08 0.0733626055289818 \n", + "US25746U1097 3.14248738011264e-07 0.14925655201730625 \n", + "US2333311072 4.099910696471906e-07 0.0844635815144744 \n", + "US26441C2044 9.29026546418335e-07 0.17193009401045845 \n", + "US283677AZ52 3.429901756307964e-08 0.007206687865731673 \n", + "US29364G1031 3.4959645003586115e-07 0.05190745937361752 \n", + "US30034W1062 3.5614524723693755e-07 0.045326633364450857 \n", + "US30040W1080 1.7023588038521205e-12 0.045360009814775525 \n", + "US3379321074 3.897594054855418e-07 0.11462889184363255 \n", + "CA3495531079 1.519730021856325e-07 nan \n", + "US6362744095 3.640382115837752e-08 0.15127568349562315 \n", + "US6680743050 3.6548819631302805e-08 0.011926077613739264 \n", + "US6708371033 1.5803838520201566e-07 0.03212831171274878 \n", + "US6896481032 4.7091070069869694e-08 0.008880331745854566 \n", + "US7234841010 1.3398156342413038e-07 0.0322213776799511 \n", + "US69349H1077 6.580530342148538e-08 0.01197077404907257 \n", + "US7365088472 8.680131385312401e-08 0.013227637419492053 \n", + "US69351T1060 4.615993605738829e-07 0.08645396244422032 \n", + "US7445731067 1.0168628604665428e-07 0.06245019087418841 \n", + "US8168511090 5.634458021974756e-09 0.10325854818136664 \n", + "US8425871071 7.710068482171507e-07 0.16915956105446733 \n", + "US92939U1060 1.2699795919947189e-07 0.08144891426414327 \n", + "US98389B1008 4.710003986931088e-07 0.08381128240682202 \n", + "US1442851036 0.011607472600352978 0.004922291988089818 \n", + "US2017231034 0.020154780490691044 0.003618337414588834 \n", + "US3737371050 0.10005546157880678 nan \n", + "US6703461052 0.07848167099244932 0.03197260211182495 \n", + "KR7005490008 0.7619530611957582 nan \n", + "US8581191009 0.039172201098130216 0.009645199046956762 \n", + "US88031M1099 0.021579100261655475 nan \n", + "US8808901081 0.1656445290791045 nan \n", + "US8873991033 0.003395288672058109 0.0006402471902290573 \n", + "US9129091081 0.3016836955421658 0.005776020500960534 \n", + "US9818111026 0.0022773902818980568 0.0030357823938668522 \n", "\n", - " MOTS_weight EOTS_weight ECOTS_weight AOTS_weight ROTS_weight \n", - "company_id \n", - "US00130H1059 0.030532 0.019073 0.035616 0.038141 0.055800 \n", - "US0138721065 0.004080 0.003992 0.006086 0.009940 0.034246 \n", - "US0158577090 NaN NaN NaN 0.007420 0.005339 \n", - "US0185223007 0.008971 0.009437 0.009666 0.006089 0.006656 \n", - "US0188021085 0.036396 0.039115 0.038327 0.017864 0.018852 \n", - "US0236081024 0.064485 0.066420 0.067878 0.037719 0.037224 \n", - "US0255371017 0.138065 0.164953 0.146101 0.092655 0.091788 \n", - "US05351W1036 0.004749 0.014100 0.005368 0.024061 0.021414 \n", - "US05379B1070 0.004801 0.005867 0.005069 0.004132 0.004417 \n", - "US0921131092 0.011106 0.014255 0.011712 0.008320 0.009226 \n", - "CA1125851040 NaN NaN NaN 0.220109 0.222636 \n", - "US18551QAA58 NaN NaN NaN 0.005079 0.005382 \n", - "US1258961002 0.051773 0.060195 0.054904 0.029190 0.035969 \n", - "US2091151041 0.055470 0.067581 0.060719 0.046946 0.049104 \n", - "US25746U1097 0.182473 0.176783 0.192278 0.097435 0.065295 \n", - "US2333311072 0.081232 0.097943 0.085815 0.058576 0.084823 \n", - "US26441C2044 0.177112 0.249258 0.187246 0.167642 0.127880 \n", - "US29364G1031 0.036523 0.049461 0.039278 0.035142 0.035709 \n", - "US30034W1062 0.052000 0.058373 0.054780 0.035226 0.033728 \n", - "US30040W1080 0.055359 0.055826 0.058250 0.027940 0.027988 \n", - "US3379321074 0.087946 0.113992 0.095254 0.062052 0.078206 \n", - "CA3495531079 NaN NaN NaN 0.046888 0.037256 \n", - "US4198701009 0.012417 0.012237 0.013711 0.015161 0.015315 \n", - "US6362744095 0.134077 NaN 0.142046 0.086817 0.099479 \n", - "US6680743050 0.007470 0.009524 0.007870 0.005764 0.005758 \n", - "US6708371033 0.024324 NaN NaN 0.015432 0.015092 \n", - "US6896481032 0.006449 0.006300 0.006875 0.003316 0.006479 \n", - "US69331C1080 0.024893 0.017154 0.029567 0.061146 0.059395 \n", - "US7234841010 0.023328 0.027785 0.024563 0.018315 0.016621 \n", - "US69349H1077 0.008938 0.011069 0.009411 0.007451 0.007189 \n", - "US7365088472 0.010635 NaN NaN 0.008379 0.010239 \n", - "US69351T1060 0.093543 0.131127 0.102410 0.075227 0.061813 \n", - "US7445731067 0.047884 0.054469 0.050657 0.032428 0.033074 \n", - "US8168511090 0.072045 0.078538 0.076004 0.048236 0.038432 \n", - "US8425871071 0.189750 0.222838 0.206741 0.143742 0.132199 \n", - "CA87807B1076 NaN NaN NaN 0.051735 0.033371 \n", - "US92840M1027 0.017648 0.024954 0.019173 0.018083 0.038762 \n", - "US92939U1060 0.104597 0.101608 0.110148 0.046324 0.048173 \n", - "US98389B1008 0.094307 NaN NaN 0.050689 0.055966 " + " EOTS_weight ECOTS_weight \\\n", + "company_id \n", + "US00130H1059 0.020337868906115608 0.03667288993043838 \n", + "US0158577090 nan nan \n", + "US0185223007 0.011385162596862225 0.013018784526381704 \n", + "US0188021085 0.0330110683879106 0.03172544768591218 \n", + "US0236081024 0.06387775855844924 0.06469360527719219 \n", + "US0255371017 0.15303279317063806 0.13956919099354945 \n", + "US05351W1036 0.016801248692288422 0.007160665331019981 \n", + "US05379B1070 0.008035321000941292 0.007399948532530545 \n", + "US18551QAA58 nan nan \n", + "US1258961002 0.05737401152284647 0.05143351653370429 \n", + "US2091151041 0.07902737580492676 0.07567171610839929 \n", + "US25746U1097 0.15010182616211487 0.1493324514553829 \n", + "US2333311072 0.09476515956854094 0.08462019002077521 \n", + "US26441C2044 0.22155105310535217 0.17238886319907545 \n", + "US283677AZ52 0.007350616245331298 0.007220609667618246 \n", + "US29364G1031 0.06458856665766571 0.05287080443504319 \n", + "US30034W1062 0.04777411915987389 0.045302805246517155 \n", + "US30040W1080 0.046175243275212934 0.045290416308094134 \n", + "US3379321074 0.13715660868982169 0.1175368082535572 \n", + "CA3495531079 nan nan \n", + "US6362744095 nan 0.15215975540910204 \n", + "US6680743050 0.012924704639595212 0.011917103321524023 \n", + "US6708371033 nan nan \n", + "US6896481032 0.007702315685602822 0.008953203650381842 \n", + "US7234841010 0.03332942990290081 0.03218305838813145 \n", + "US69349H1077 0.012639253078697257 0.01195617040266632 \n", + "US7365088472 0.014000404723625308 0.013281115197873679 \n", + "US69351T1060 0.10941513137405769 0.08940788996261194 \n", + "US7445731067 0.0635679978881717 0.0626254824927157 \n", + "US8168511090 0.10421959985473984 0.10333035558010317 \n", + "US8425871071 0.18622750506679941 0.1745612532143091 \n", + "US92939U1060 0.07695104488519561 0.08138861437944513 \n", + "US98389B1008 0.0902630207506063 0.08430712540675832 \n", + "US1442851036 0.004204096572007335 0.004990244394801827 \n", + "US2017231034 nan nan \n", + "US3737371050 nan nan \n", + "US6703461052 0.024305171544838817 0.03485634781003422 \n", + "KR7005490008 nan nan \n", + "US8581191009 0.007987945257169369 0.012283462287977612 \n", + "US88031M1099 nan nan \n", + "US8808901081 nan nan \n", + "US8873991033 0.0004950917770041775 0.0006901566101955718 \n", + "US9129091081 0.008152423592683745 0.007423865256675461 \n", + "US9818111026 0.002779215292872067 0.003200509556000493 \n", + "\n", + " AOTS_weight ROTS_weight \n", + "company_id \n", + "US00130H1059 0.04816939688533329 0.05276197099873813 \n", + "US0158577090 0.009358782813005341 0.0050413384247108275 \n", + "US0185223007 0.007613807008198652 0.006231229172975224 \n", + "US0188021085 0.021186142904952205 0.016738395724396053 \n", + "US0236081024 0.04726477824338227 0.034922806188620925 \n", + "US0255371017 0.11248617091168711 0.08343102518455157 \n", + "US05351W1036 0.0379793742030801 0.02529980312047131 \n", + "US05379B1070 0.007066740568098292 0.005655105952879468 \n", + "US18551QAA58 0.011583583746330367 0.009189101919284608 \n", + "US1258961002 0.038876229852125306 0.035867501304020305 \n", + "US2091151041 0.06786373005464445 0.05314587328152441 \n", + "US25746U1097 0.11584362182232663 0.06688534526952991 \n", + "US2333311072 0.07097767408945654 0.07766300356121279 \n", + "US26441C2044 0.1970613477213826 0.11254721411236115 \n", + "US283677AZ52 0.0048316886860380335 0.003950855064002835 \n", + "US29364G1031 0.06070215564531642 0.046181301440845035 \n", + "US30034W1062 0.03859860953695048 0.02766943029282214 \n", + "US30040W1080 0.03530846103939446 0.026480799897099 \n", + "US3379321074 0.0988962172735531 0.09332089148551007 \n", + "CA3495531079 0.07911656908686812 0.0470667310963962 \n", + "US6362744095 0.14057664279423704 0.12060139050049665 \n", + "US6680743050 0.008977140347481906 0.006910763261421611 \n", + "US6708371033 0.019269149564939952 0.014109296911343806 \n", + "US6896481032 0.004587174627040453 0.0067106225780971685 \n", + "US7234841010 0.02619284180162325 0.017797401906124867 \n", + "US69349H1077 0.009986202103731528 0.00721385126240408 \n", + "US7365088472 0.010668873721131752 0.009760613126775643 \n", + "US69351T1060 0.08177207191530365 0.05030620119633238 \n", + "US7445731067 0.04681044465151272 0.03574513867355394 \n", + "US8168511090 0.08335956719180115 0.04972643805524998 \n", + "US8425871071 0.16101126726344764 0.10509504376408856 \n", + "US92939U1060 0.050169056739773205 0.03906076269591012 \n", + "US98389B1008 0.06398019170908303 0.05288965305341673 \n", + "US1442851036 0.004310487808706214 0.011641965312984528 \n", + "US2017231034 0.0033177080579832835 0.018610755334314076 \n", + "US3737371050 0.01252243765842747 0.03325265337048597 \n", + "US6703461052 0.016396082842808767 0.07303012863213186 \n", + "KR7005490008 0.07263123014493186 0.21444667139178533 \n", + "US8581191009 0.007399224052972695 0.033844989431466715 \n", + "US88031M1099 0.013748950184392398 0.024439630936756346 \n", + "US8808901081 0.013417124921380242 0.03824255500688262 \n", + "US8873991033 0.0009540854493255154 0.0038442306237322942 \n", + "US9129091081 0.011952248543683201 0.04818404875572425 \n", + "US9818111026 0.0021628807238201053 0.011714808549532102 " ] }, - "execution_count": 19, + "execution_count": 21, "metadata": {}, "output_type": "execute_result" } @@ -2730,7 +2320,7 @@ "source": [ "weighting_dict = {\n", " 'MOTS': 'company_market_cap',\n", - " 'EOTS': 'company_enterprise_value',\n", + " 'EOTS': 'company_ev',\n", " 'ECOTS': 'company_evic',\n", " 'AOTS': 'company_total_assets',\n", " 'ROTS': 'company_revenue',\n", @@ -2754,7 +2344,7 @@ }, { "cell_type": "code", - "execution_count": 20, + "execution_count": 22, "id": "d1e39a38-9d3f-4ff7-aa46-965f6cbf4a76", "metadata": {}, "outputs": [ @@ -2817,7 +2407,7 @@ "Index: []" ] }, - "execution_count": 20, + "execution_count": 22, "metadata": {}, "output_type": "execute_result" } @@ -2828,75 +2418,77 @@ }, { "cell_type": "code", - "execution_count": 21, + "execution_count": 23, "id": "027bf69a-9c4a-48bc-979c-662a7409263d", "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "[('AES Corp.', '2NUNNB7D43COUIRE5295', 'US00130H1059', 4010, 2019, 'US', 'North America', 10189000000.0, 9420000000.0, 8652000000, 33648000000.0, 1029000000.0),\n", - " ('ALLETE, Inc.', '549300NNLSIMY6Z8OT86', 'US0185223007', 4010, 2019, 'US', 'North America', 1240500000.0, 2825208722.0, 4369708722, 5482800000.0, 69300000.0),\n", - " ('Alcoa Corp.', '549300T12EZ1F6PWWU29', 'US0138721065', 4010, 2019, 'US', 'North America', 10433000000.0, 2100000000.0, 3021000000, 14631000000.0, 879000000.0),\n", - " ('Algonquin Power & Utilities Corp.', '549300K5VIUTJXQL7X75', 'US0158577090', 4010, 2019, 'CA', 'North America', 1626392000.0, None, None, 10920786000.0, 62485000.0),\n", - " ('Alliant Energy', '5493009ML300G373MZ12', 'US0188021085', 4010, 2019, 'US', 'North America', 3648000000.0, 11900000000.0, 18804000000, 16701000000.0, 16000000.0),\n", - " ('Ameren Corp.', 'XRZQ5S7HYJFPHJ78L959', 'US0236081024', 4010, 2019, 'US', 'North America', 5910000000.0, 17299078950.0, 26198078950, 28933000000.0, 16000000.0),\n", - " ('American Electric Power Co., Inc.', '1B4S6S7G0TW5EE83BO58', 'US0255371017', 4010, 2019, 'US', 'North America', 15561400000.0, 39549558010.0, 69474758010, 75892300000.0, 246800000.0),\n", - " ('Northwestern Corp.', '3BPWMBHR1R9SHUN7J795', 'US6680743050', 4010, 2019, 'US', 'North America', 1257910000.0, 2757293172.0, 5168962172, 6083486000.0, 5145000.0),\n", - " ('OG&E Energy Corp.', 'CE5OG6JPOZMDSA0LAQ19', 'US6708371033', 4010, 2019, 'US', 'North America', 2231600000.0, 6077156282.0, None, 11024300000.0, None),\n", - " ('Otter Tail Corp.', '549300HHVBQRQUVKKD91', 'US6896481032', 4010, 2019, 'US', 'North America', 919503000.0, 1546518975.0, 2221083975, 2273595000.0, 21199000.0),\n", - " ('PG&E Corp.', '8YQ2GSDWYZXO2EDN3511', 'US69331C1080', 4010, 2019, 'US', 'North America', 17129000000.0, 12130000000.0, 12290000000, 85196000000.0, 1570000000.0),\n", - " ('PNM Resources, Inc.', '5493003JOBJGLZSDDQ28', 'US69349H1077', 4010, 2019, 'US', 'North America', 1457603000.0, 3061885307.0, 5575501307, 7298774000.0, 3833000.0),\n", - " ('POSCO', '988400E5HRVX81AYLM04', 'KR7005490008', 2410, 2019, 'KR', 'Global', 55955872344.10088, None, None, 68553124892.03662, 3035819657.972016),\n", - " ('PPL Corp.', '9N3UAJSNOUXFKQLF3V18', 'US69351T1060', 4010, 2019, 'US', 'North America', 7769000000.0, 19865342074.0, 40943342074, 45680000000.0, 815000000.0),\n", - " ('Pinnacle West Capital Corp.', 'TWSEY0NEDUDCKS27AH81', 'US7234841010', 4010, 2019, 'US', 'North America', 3471209000.0, 8231813171.0, 14415922171, 18479247000.0, 10283000.0),\n", - " ('Portland General Electric Co.', 'GJOUP9M7C39GLSK9R870', 'US7365088472', 4010, 2019, 'US', 'North America', 2123000000.0, 3725882304.0, None, 8394000000.0, None),\n", - " ('Public Service Enterprise Group', 'PUSS41EMO3E6XXNV3U28', 'US7445731067', 4010, 2019, 'US', 'North America', 10076000000.0, 24648067675.0, 41224067675, 47730000000.0, 147000000.0),\n", - " ('STEEL DYNAMICS INC', '549300HGGKEL4FYTTQ83', 'US8581191009', 2410, 2019, 'US', 'North America', 10464991000.0, 4100000000.0, 5452884000, 8275765000.0, 1381460000.0),\n", - " ('Sempra', 'PBBKGKLRK5S5C0Y4T545', 'US8168511090', 4010, 2019, 'US', 'North America', 10829000000.0, 34300000000.0, 54977000000, 65665000000.0, 108000000.0),\n", - " ('Southern Co.', '549300FC3G3YU2FBZD92', 'US8425871071', 4010, 2019, 'US', 'North America', 22596000000.0, 54800000000.0, 94623000000, 118700000000.0, 1975000000.0),\n", - " ('TC Energy Corp.', '549300UGKOFV2IWJJG27', 'CA87807B1076', 4010, 2019, 'CA', 'North America', 10166444011.05982, None, None, 76145937002.94287, 1030066714.9644163),\n", - " ('TENARIS SA', '549300Y7C05BKC4HZB40', 'US88031M1099', 2410, 2019, 'LU', 'Europe', 7294055000.0, None, None, 14842991000.0, 1554299000.0),\n", - " ('TIMKENSTEEL CORP', '549300QZTZWHDE9HJL14', 'US8873991033', 2410, 2019, 'US', 'North America', 1208800000.0, 160935221.0, 302435221, 1085200000.0, 27100000.0),\n", - " ('UNITED STATES STEEL CORP', 'JNLUVFYJT1OZSIQ24U47', 'US9129091081', 2410, 2019, 'US', 'North America', 12937000000.0, 1600000000.0, 4630000000, 11608000000.0, 749000000.0),\n", - " ('Verso Corp.', '549300FODXCTQ8DGT594', 'US92531L2079', 4010, 2019, 'US', 'North America', 2444000000.0, 400452075.0, 364452075, 1695000000.0, 42000000.0),\n", - " ('Vistra Corp.', '549300KP43CPCUJOOG15', 'US92840M1027', 4010, 2019, 'US', 'North America', 11809000000.0, 9084469142.0, 18886469142, 26616000000.0, 300000000.0),\n", - " ('WEC Energy Group', '549300IGLYTZUK3PVP70', 'US92939U1060', 4010, 2019, 'US', 'North America', 7523100000.0, 27600000000.0, 39420800000, 34951800000.0, 37500000.0),\n", - " ('WORTHINGTON INDUSTRIES INC', '1WRCIANKYOIK6KYE5E82', 'US9818111026', 2410, 2019, 'US', 'North America', 3759556000.0, 1633376617.0, 2294113617, 2510796000.0, 92363000.0),\n", - " ('Xcel Energy, Inc.', 'LGJNMI9GH8XIDG5RCM61', 'US98389B1008', 4010, 2019, 'US', 'North America', 11529000000.0, 32825311125.0, None, 50448000000.0, None),\n", - " ('American States Water Co.', '529900L26LIS2V8PWM23', 'US0298991011', 4010, 2019, 'US', 'North America', 473869000.0, 2900179000.0, 3183544000, 1641331000.0, 1334000.0),\n", - " ('Avangrid, Inc.', '549300OX0Q38NLSKPB49', 'US05351W1036', 4010, 2019, 'US', 'North America', 6336000000.0, 2374000000.0, 10364000000, 34394000000.0, 178000000.0),\n", - " ('Avista Corp.', 'Q0IK63NITJD6RJ47SW96', 'US05379B1070', 4010, 2019, 'US', 'North America', 1345622000.0, 2471363713.0, 4440667713, 6082456000.0, 9896000.0),\n", - " ('Black Hills Corp.', '3MGELCRSTNSAMJ962671', 'US0921131092', 4010, 2019, 'US', 'North America', 1734900000.0, 3528768075.0, 6659087075, 7558457000.0, 9777000.0),\n", - " ('Brookfield Asset Management', 'C6J3FGIWG6MBDGTE8F80', 'CA1125851040', 4010, 2019, 'CA', 'North America', 67826000000.0, None, None, 323969000000.0, 6778000000.0),\n", - " ('CARPENTER TECHNOLOGY CORP', 'DX6I6ZD3X5WNNCDJKP85', 'US1442851036', 2410, 2019, 'US', 'North America', 2380200000.0, 1687208892.0, 2210808892, 3187800000.0, 27000000.0),\n", - " ('CMS Energy Corp.', '549300IA9XFBAGNIBW29', 'US1258961002', 4010, 2019, 'US', 'North America', 6845000000.0, 16647000000.0, 28458000000, 26837000000.0, 140000000.0),\n", - " ('COMMERCIAL METALS CO', '549300OQS2LO07ZJ7N73', 'US2017231034', 2410, 2019, 'US', 'North America', 5829002000.0, 2200000000.0, None, 3758771000.0, None),\n", - " ('Cleco Partners LP', '5493002H80P81B3HXL31', 'US18551QAA58', 4010, 2019, 'US', 'North America', 1639605000.0, None, None, 7476298000.0, 116292000.0),\n", - " ('Consolidated Edison, Inc.', '54930033SBW53OO8T749', 'US2091151041', 4010, 2019, 'US', 'North America', 12574000000.0, 24000000000.0, 42992000000, 58079000000.0, 981000000.0),\n", - " ('DTE Energy', '549300IX8SD6XXD71I78', 'US2333311072', 4010, 2019, 'US', 'North America', 12669000000.0, 20500000000.0, 36342000000, 42268000000.0, 93000000.0),\n", - " ('Dominion Energy', 'ILUL7B6Z54MRYCF6H308', 'US25746U1097', 4010, 2019, 'US', 'North America', 14401000000.0, 68000000000.0, 96863000000, 103823000000.0, 135000000.0),\n", - " ('Duke Energy Corp.', 'I1BZKREC126H0VB1BL91', 'US26441C2044', 4010, 2019, 'US', 'North America', 25079000000.0, 58688204289.0, 121439204289, 158838000000.0, 311000000.0),\n", - " ('Entergy Corp.', '4XM3TW50JULSLG8BNC79', 'US29364G1031', 4010, 2019, 'US', 'North America', 10878673000.0, 18800000000.0, 37434228000, 51723912000.0, 425722000.0),\n", - " ('Evergy, Inc.', '549300PGTHDQY6PSUI61', 'US30034W1062', 4010, 2019, 'US', 'North America', 5147800000.0, 13410149293.0, 22133649293, 25975900000.0, 23200000.0),\n", - " ('Eversource Energy', 'SJ7XXD41SQU3ZNWUJ746', 'US30040W1080', 4010, 2019, 'US', 'North America', 8526470000.0, 28496151703.0, 42251547703, 41123915000.0, 15432000.0),\n", - " ('Exelon Corp.', '3SOUA6IRML7435B56G12', 'US30161N1019', 4010, 2019, 'US', 'North America', 34438000000.0, 35402501369.0, 66144501369, 124977000000.0, 587000000.0),\n", - " ('FirstEnergy Corp.', '549300SVYJS666PQJH88', 'US3379321074', 4010, 2019, 'US', 'North America', 11035000000.0, 20967401361.0, 39958401361, 42301000000.0, 627000000.0),\n", - " ('Fortis, Inc.', '549300MQYQ9Y065XPR71', 'CA3495531079', 4010, 2019, 'CA', 'North America', 6736467578.207348, None, None, 40960299959.7615, 283786064.4354684),\n", - " ('GERDAU S.A.', '254900YDV6SEQQPZVG24', 'US3737371050', 2410, 2019, 'BR', 'Global', 9835514922.966234, None, None, 13397913513.781725, 655382935.9664574),\n", - " ('Hawaiian Electric Industries, Inc.', 'JJ8FWOCWCV22X7GUPJ23', 'US4198701009', 4010, 2019, 'US', 'North America', 2873948000.0, 3937071331.0, 5704623331, 13745251000.0, 196813000.0),\n", - " ('MDU Resources Group', '0T6SBMK3JTBI1JR36794', 'US5526901096', 1410, 2019, 'US', 'North America', 5336776000.0, 4447584104.0, 6624232104, 7683059000.0, 66459000.0),\n", - " ('NUCOR CORP', '549300GGJCRSI2TIEJ46', 'US6703461052', 2410, 2019, 'US', 'North America', 22588858000.0, 12430000000.0, 15186696000, 18344666000.0, 1534605000.0),\n", - " ('National Grid PLC', '8R95QZMKZLJX5Q2XR704', 'US6362744095', 4010, 2019, 'GB', 'Europe', 19393506493.506493, 44164533765.359474, None, 81770129870.12987, 327272727.27272725)]" + "[('AES Corp.', '2NUNNB7D43COUIRE5295', 'US00130H1059', 'Electricity Utilities', 'US', 'North America', 'equity', 'USD', 2019, 10870000000.0, 10189000000.0, 10102000000, 11131000000.0, 33648000000.0, 1029000000.0, 261000000.0),\n", + " ('ALLETE, Inc.', '549300NNLSIMY6Z8OT86', 'US0185223007', 'Electricity Utilities', 'US', 'North America', 'equity', 'USD', 2019, 4285299935.0, 1240500000.0, 5829799935, 5899099935.0, 5482800000.0, 69300000.0, 1613800000.0),\n", + " ('Algonquin Power & Utilities Corp.', '549300K5VIUTJXQL7X75', 'US0158577090', 'Electricity Utilities', 'CA', 'North America', 'equity', 'USD', 2019, None, 1624921000.0, None, None, 10911470000.0, 62485000.0, 6500799000.0),\n", + " ('Alliant Energy', '5493009ML300G373MZ12', 'US0188021085', 'Electricity Utilities', 'US', 'North America', 'equity', 'USD', 2019, 11600000000.0, 3647700000.0, 18503600000, 18519900000.0, 16700700000.0, 16300000.0, 6919900000.0),\n", + " ('Ameren Corp.', 'XRZQ5S7HYJFPHJ78L959', 'US0236081024', 'Electricity Utilities', 'US', 'North America', 'equity', 'USD', 2019, 18378774986.0, 5910000000.0, 27804774986, 27820774986.0, 28933000000.0, 16000000.0, 9442000000.0),\n", + " ('American Electric Power Co., Inc.', '1B4S6S7G0TW5EE83BO58', 'US0255371017', 'Electricity Utilities', 'US', 'North America', 'equity', 'USD', 2019, 43491855142.0, 15561400000.0, 73417055142, 73663855142.0, 75892300000.0, 246800000.0, 30172000000.0),\n", + " ('Avangrid, Inc.', '549300OX0Q38NLSKPB49', 'US05351W1036', 'Electricity Utilities', 'US', 'North America', 'equity', 'USD', 2019, 2836000000.0, 6338000000.0, 10826000000, 11004000000.0, 34416000000.0, 178000000.0, 8168000000.0),\n", + " ('Avista Corp.', 'Q0IK63NITJD6RJ47SW96', 'US05379B1070', 'Electricity Utilities', 'US', 'North America', 'equity', 'USD', 2019, 2948564738.0, 1345622000.0, 4917868738, 4927764738.0, 6082456000.0, 9896000.0, 1979200000.0),\n", + " ('Berkshire Hathaway, Inc.', '5493000C01ZX7D35SD85', 'US0846707026', 'Electricity Utilities', 'US', 'North America', 'equity', 'USD', 2019, 417300000000.0, 254616000000.0, None, 421014902807.7754, 817729000000.0, None, 3714902807.775378),\n", + " ('Black Hills Corp.', '3MGELCRSTNSAMJ962671', 'US0921131092', 'Electricity Utilities', 'US', 'North America', 'equity', 'USD', 2019, 4727278183.0, 1734900000.0, 7857597183, 7867374183.0, 7558457000.0, 9777000.0, 3140096000.0),\n", + " ('CARPENTER TECHNOLOGY CORP', 'DX6I6ZD3X5WNNCDJKP85', 'US1442851036', 'Steel', 'US', 'North America', 'equity', 'USD', 2019, 1687208892.0, 2380200000.0, 2210808892, 2237808892.0, 3187800000.0, 27000000.0, 550600000.0),\n", + " ('CLEVELAND-CLIFFS INC', '549300TM2WLI2BJMDD86', 'US1858991011', 'Steel', 'US', 'North America', 'equity', 'USD', 2019, 2839987963.0, 1989900000.0, 4601187963, 4953787963.0, 3503800000.0, 352600000.0, 2113800000.0),\n", + " ('CMS Energy Corp.', '549300IA9XFBAGNIBW29', 'US1258961002', 'Electricity Utilities', 'US', 'North America', 'equity', 'USD', 2019, 16352000000.0, 6845000000.0, 28163000000, 28303000000.0, 26837000000.0, 140000000.0, 11951000000.0),\n", + " ('COMMERCIAL METALS CO', '549300OQS2LO07ZJ7N73', 'US2017231034', 'Steel', 'US', 'North America', 'equity', 'USD', 2019, 1900000000.0, 5829002000.0, None, 3154921000.0, 3758771000.0, None, 1254921000.0),\n", + " ('Cleco Partners LP', '5493002H80P81B3HXL31', 'US18551QAA58', 'Electricity Utilities', 'US', 'North America', 'equity', 'USD', 2019, None, 1639605000.0, None, None, 7476298000.0, 116292000.0, 400000000.0),\n", + " ('Consolidated Edison, Inc.', '54930033SBW53OO8T749', 'US2091151041', 'Electricity Utilities', 'US', 'North America', 'equity', 'USD', 2019, 29100000000.0, 12574000000.0, 48092000000, 49073000000.0, 58079000000.0, 981000000.0, 19973000000.0),\n", + " ('DTE Energy', '549300IX8SD6XXD71I78', 'US2333311072', 'Electricity Utilities', 'US', 'North America', 'equity', 'USD', 2019, 23100000000.0, 12669000000.0, 39762000000, 39855000000.0, 41882000000.0, 93000000.0, 16755000000.0),\n", + " ('Dominion Energy', 'ILUL7B6Z54MRYCF6H308', 'US25746U1097', 'Electricity Utilities', 'US', 'North America', 'equity', 'USD', 2019, 62000000000.0, 16572000000.0, 95658000000, 95824000000.0, 103823000000.0, 166000000.0, 33824000000.0),\n", + " ('Duke Energy Corp.', 'I1BZKREC126H0VB1BL91', 'US26441C2044', 'Electricity Utilities', 'US', 'North America', 'equity', 'USD', 2019, 64230558771.0, 25079000000.0, 126981558771, 127292558771.0, 158838000000.0, 311000000.0, 63062000000.0),\n", + " ('Edison International', '549300I7ROF15MAEVP56', 'US2810201077', 'Electricity Utilities', 'US', 'North America', 'equity', 'USD', 2019, 22000000000.0, 12347000000.0, 42069000000, 42137000000.0, 64382000000.0, 68000000.0, 20137000000.0),\n", + " ('El Paso Electric Co', 'OZ8GM8L4AHPKSWZMW205', 'US283677AZ52', 'Electricity Utilities', 'US', 'North America', 'equity', 'USD', 2019, 2636107949.0, 861994000.0, 4125040949, 4135858949.0, 3813200000.0, 10818000.0, 1499751000.0),\n", + " ('Entergy Corp.', '4XM3TW50JULSLG8BNC79', 'US29364G1031', 'Electricity Utilities', 'US', 'North America', 'equity', 'USD', 2019, 20500000000.0, 10878673000.0, 39134228000, 39559950000.0, 51723912000.0, 425722000.0, 19059950000.0),\n", + " ('Evergy, Inc.', '549300PGTHDQY6PSUI61', 'US30034W1062', 'Electricity Utilities', 'US', 'North America', 'equity', 'USD', 2019, 14138041261.0, 5147800000.0, 22861541261, 22884741261.0, 25975900000.0, 23200000.0, 8746700000.0),\n", + " ('Eversource Energy', 'SJ7XXD41SQU3ZNWUJ746', 'US30040W1080', 'Electricity Utilities', 'US', 'North America', 'equity', 'USD', 2019, 24486439602.0, 8526470000.0, 38241835602, 38257267602.0, 41123915000.0, 15432000.0, 13770828000.0),\n", + " ('Exelon Corp.', '3SOUA6IRML7435B56G12', 'US30161N1019', 'Electricity Utilities', 'US', 'North America', 'equity', 'USD', 2019, 46542193363.0, 34438000000.0, 81905193363, 82492193363.0, 124977000000.0, 587000000.0, 35950000000.0),\n", + " ('FirstEnergy Corp.', '549300SVYJS666PQJH88', 'US3379321074', 'Electricity Utilities', 'US', 'North America', 'equity', 'USD', 2019, 22724895037.0, 11035000000.0, 41715895037, 42342895037.0, 42301000000.0, 627000000.0, 19618000000.0),\n", + " ('Fortis, Inc.', '549300MQYQ9Y065XPR71', 'CA3495531079', 'Electricity Utilities', 'CA', 'North America', 'equity', 'USD', 2019, None, 6742286315.707347, None, None, 40995680109.76149, 284031189.4354683, 16505282713.654066),\n", + " ('GERDAU S.A.', '254900YDV6SEQQPZVG24', 'US3737371050', 'Steel', 'BR', 'Global', 'equity', 'USD', 2019, None, 9835514922.966234, None, None, 13397913513.781725, 655382935.9664575, None),\n", + " ('Hawaiian Electric Industries, Inc.', 'JJ8FWOCWCV22X7GUPJ23', 'US4198701009', 'Electricity Utilities', 'US', 'North America', 'equity', 'USD', 2019, 4745752027.0, 2874601000.0, 6513304027, 6710117027.0, 13745251000.0, 196813000.0, 1964365000.0),\n", + " ('Idacorp, Inc.', 'N134NUJDWN8UEFA8B673', 'US4511071064', 'Electricity Utilities', 'US', 'North America', 'equity', 'USD', 2019, 5017481695.0, 1346383000.0, 6636886695, 6854140695.0, 6641201000.0, 217254000.0, 1836659000.0),\n", + " ('NUCOR CORP', '549300GGJCRSI2TIEJ46', 'US6703461052', 'Steel', 'US', 'North America', 'equity', 'USD', 2019, 16580000000.0, 22588858000.0, 19336696000, 20871301000.0, 18344666000.0, 1534605000.0, 4291301000.0),\n", + " ('National Grid PLC', '8R95QZMKZLJX5Q2XR704', 'US6362744095', 'Electricity Utilities', 'GB', 'Europe', 'equity', 'USD', 2019, 40783780623.596985, 19393506493.506493, None, None, 81770129870.12987, 327272727.27272725, None),\n", + " ('Nisource Inc.', '549300D8GOWWH0SJB189', 'US65473P1057', 'Electricity Utilities', 'US', 'North America', 'equity', 'USD', 2019, 10713311150.0, 5053400000.0, 19338411150, 19477711150.0, 22659800000.0, 139300000.0, 8764400000.0),\n", + " ('Northwestern Corp.', '3BPWMBHR1R9SHUN7J795', 'US6680743050', 'Electricity Utilities', 'US', 'North America', 'equity', 'USD', 2019, 3639448000.0, 1257910000.0, 6051117000, 6056262000.0, 5910702000.0, 5145000.0, 2416814000.0),\n", + " ('OG&E Energy Corp.', 'CE5OG6JPOZMDSA0LAQ19', 'US6708371033', 'Electricity Utilities', 'US', 'North America', 'equity', 'USD', 2019, 8519482559.0, 2231600000.0, None, 11714682559.0, 11024300000.0, None, 3195200000.0),\n", + " ('Old Dominion Electric Coop.', 'SW4VC32Z0ZKLJKPONQ50', 'ZZ00000000141', 'Electricity Utilities', 'US', 'North America', 'equity', 'USD', 2019, None, 932682000.0, None, None, 2169244000.0, 3469000.0, 1300100000.0),\n", + " ('Otter Tail Corp.', '549300HHVBQRQUVKKD91', 'US6896481032', 'Electricity Utilities', 'US', 'North America', 'equity', 'USD', 2019, 2040017347.0, 919503000.0, 2714582347, 2735781347.0, 2273595000.0, 21199000.0, 695764000.0),\n", + " ('PG&E Corp.', '8YQ2GSDWYZXO2EDN3511', 'US69331C1080', 'Electricity Utilities', 'US', 'North America', 'equity', 'USD', 2019, 12130000000.0, 17129000000.0, 32736000000, 34306000000.0, 85196000000.0, 1570000000.0, 22176000000.0),\n", + " ('PNM Resources, Inc.', '5493003JOBJGLZSDDQ28', 'US69349H1077', 'Electricity Utilities', 'US', 'North America', 'equity', 'USD', 2019, 4055165998.0, 1457603000.0, 6568781998, 6572614998.0, 7298774000.0, 3833000.0, 2517449000.0),\n", + " ('POSCO', '988400E5HRVX81AYLM04', 'KR7005490008', 'Steel', 'KR', 'Global', 'equity', 'USD', 2019, None, 55955872344.10088, None, None, 68553124892.03662, 3035819657.972016, None),\n", + " ('PPL Corp.', '9N3UAJSNOUXFKQLF3V18', 'US69351T1060', 'Electricity Utilities', 'US', 'North America', 'equity', 'USD', 2019, 22384264788.0, 7769000000.0, 43462264788, 44277264788.0, 45680000000.0, 815000000.0, 21893000000.0),\n", + " ('Pinnacle West Capital Corp.', 'TWSEY0NEDUDCKS27AH81', 'US7234841010', 'Electricity Utilities', 'US', 'North America', 'equity', 'USD', 2019, 10536165750.0, 3471209000.0, 16720274750, 16730557750.0, 18479247000.0, 10283000.0, 6194392000.0),\n", + " ('Portland General Electric Co.', 'GJOUP9M7C39GLSK9R870', 'US7365088472', 'Electricity Utilities', 'US', 'North America', 'equity', 'USD', 2019, 4823580272.0, 2123000000.0, 7832580272, 7862580272.0, 8394000000.0, 30000000.0, 3039000000.0),\n", + " ('Public Service Enterprise Group', 'PUSS41EMO3E6XXNV3U28', 'US7445731067', 'Electricity Utilities', 'US', 'North America', 'equity', 'USD', 2019, 29513402185.0, 10076000000.0, 46089402185, 46236402185.0, 47730000000.0, 147000000.0, 16723000000.0),\n", + " ('STEEL DYNAMICS INC', '549300HGGKEL4FYTTQ83', 'US8581191009', 'Steel', 'US', 'North America', 'equity', 'USD', 2019, 5000000000.0, 10464991000.0, 6352884000, 7734344000.0, 8275765000.0, 1381460000.0, 2734344000.0),\n", + " ('Sempra', 'PBBKGKLRK5S5C0Y4T545', 'US8168511090', 'Electricity Utilities', 'US', 'North America', 'equity', 'USD', 2019, 37700000000.0, 10829000000.0, 58377000000, 58485000000.0, 65665000000.0, 108000000.0, 20785000000.0),\n", + " ('Southern Co.', '549300FC3G3YU2FBZD92', 'US8425871071', 'Electricity Utilities', 'US', 'North America', 'equity', 'USD', 2019, 57800000000.0, 21419000000.0, 97623000000, 99598000000.0, 118700000000.0, 1975000000.0, 41798000000.0),\n", + " ('TENARIS SA', '549300Y7C05BKC4HZB40', 'US88031M1099', 'Steel', 'LU', 'Europe', 'equity', 'USD', 2019, None, 7294055000.0, None, None, 14842991000.0, 1554299000.0, None),\n", + " ('TERNIUM S.A.', '529900QG4KU23TEI2E46', 'US8808901081', 'Steel', 'LU', 'Europe', 'equity', 'USD', 2019, None, 10192818000.0, None, None, 12935533000.0, 519965000.0, None),\n", + " ('TIMKENSTEEL CORP', '549300QZTZWHDE9HJL14', 'US8873991033', 'Steel', 'US', 'North America', 'equity', 'USD', 2019, 337525844.0, 1208800000.0, 400425844, 427525844.0, 1085200000.0, 27100000.0, 90000000.0),\n", + " ('Tri-State Generation & Transmission Association, Inc.', '549300VDHNFNPADSSV98', 'ZZ00000000180', 'Electricity Utilities', 'US', 'North America', 'equity', 'USD', 2019, None, 1385472000.0, None, None, 5085818000.0, 83070000.0, 3144906000.0),\n", + " ('UNITED STATES STEEL CORP', 'JNLUVFYJT1OZSIQ24U47', 'US9129091081', 'Steel', 'US', 'North America', 'equity', 'USD', 2019, 2600000000.0, 12937000000.0, 5630000000, 6379000000.0, 11608000000.0, 749000000.0, 3779000000.0),\n", + " ('WEC Energy Group', '549300IGLYTZUK3PVP70', 'US92939U1060', 'Electricity Utilities', 'US', 'North America', 'equity', 'USD', 2019, 26300000000.0, 7523100000.0, 38120800000, 38158300000.0, 34951800000.0, 37500000.0, 11858300000.0),\n", + " ('WORTHINGTON INDUSTRIES INC', '1WRCIANKYOIK6KYE5E82', 'US9818111026', 'Steel', 'US', 'North America', 'equity', 'USD', 2019, 1633376617.0, 3759556000.0, 2294113617, 2386476617.0, 2510796000.0, 92363000.0, 753100000.0),\n", + " ('Xcel Energy, Inc.', 'LGJNMI9GH8XIDG5RCM61', 'US98389B1008', 'Electricity Utilities', 'US', 'North America', 'equity', 'USD', 2019, 30629347167.0, 11529000000.0, 50608347167, 50856347167.0, 50448000000.0, 248000000.0, 20227000000.0)]" ] }, - "execution_count": 21, + "execution_count": 23, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "engine_quant.execute(\"select * from demo.company_data\").fetchall()" + "engine_quant.execute(\"select * from demo_dv.company_data\").fetchall()" ] }, { @@ -2910,7 +2502,7 @@ ], "metadata": { "kernelspec": { - "display_name": "Python 3", + "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, @@ -2924,7 +2516,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.8.3" + "version": "3.10.2" } }, "nbformat": 4, diff --git a/examples/vault_demo_n2.ipynb b/examples/vault_demo_n2.ipynb index 5fe1d7d4..ac1b8255 100644 --- a/examples/vault_demo_n2.ipynb +++ b/examples/vault_demo_n2.ipynb @@ -65,7 +65,16 @@ "execution_count": 2, "id": "969b6d53-49d8-47d9-b218-6bdd790a7de4", "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/Users/michael/opt/miniconda3/envs/jupyter/lib/python3.10/site-packages/sqlalchemy_trino/dialect.py:259: SAWarning: Dialect trino:rest will not make use of SQL compilation caching as it does not set the 'supports_statement_cache' attribute to ``True``. This can have significant performance implications including some performance degradations in comparison to prior SQLAlchemy versions. Dialect maintainers should seek to set this attribute to True after appropriate development and testing for SQLAlchemy 1.4 caching support. Alternatively, this attribute may be set to False which will disable this warning. (Background on this error at: https://sqlalche.me/e/14/cprf)\n", + " res = connection.execute(sql.text(query)).scalar()\n" + ] + } + ], "source": [ "import json\n", "import pandas as pd\n", @@ -77,9 +86,9 @@ "# from ITR.configs import ColumnsConfig, TemperatureScoreConfig\n", "# from ITR.data.data_warehouse import DataWarehouse\n", "from ITR.data.vault_providers import DataVaultWarehouse, VaultCompanyDataProvider\n", - "# from ITR.interfaces import ICompanyData, EScope, ETimeFrames, PortfolioCompany, IEmissionIntensityBenchmarkScopes, \\\n", + "# from ITR.interfaces import ICompanyData, EScope, ETimeFrames, PortfolioCompany, IEIBenchmarkScopes, \\\n", "# IProductionBenchmarkScopes\n", - "from ITR.interfaces import EScope # , IProductionBenchmarkScopes, IEmissionIntensityBenchmarkScopes" + "from ITR.interfaces import EScope # , IProductionBenchmarkScopes, IEIBenchmarkScopes" ] }, { @@ -111,7 +120,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "connecting with engine Engine(trino://os-climate-user3@trino-secure-odh-trino.apps.odh-cl1.apps.os-climate.org:443/)\n" + "connecting with engine Engine(trino://os-climate-user3@trino-secure-odh-trino.apps.odh-cl2.apps.os-climate.org:443/)\n" ] } ], @@ -125,11 +134,11 @@ " 'auth': trino.auth.JWTAuthentication(os.environ['TRINO_PASSWD_USER3']),\n", " 'http_scheme': 'https',\n", " 'catalog': 'osc_datacommons_dev',\n", - " 'schema': 'demo',\n", + " 'schema': 'demo_dv',\n", "}\n", "\n", "ingest_catalog = 'osc_datacommons_dev'\n", - "ingest_schema = 'demo'\n", + "ingest_schema = 'demo_dv'\n", "\n", "engine_user = create_engine(sqlstring, connect_args = sqlargs)\n", "print(\"connecting with engine \" + str(engine_user))\n", @@ -154,8 +163,8 @@ "vault_warehouse = DataVaultWarehouse(engine_user,\n", " company_data=None,\n", " benchmark_projected_production=None,\n", - " benchmarks_projected_emissions_intensity=None,\n", - " ingest_schema = 'demo',\n", + " benchmarks_projected_ei=None,\n", + " ingest_schema = 'demo_dv',\n", " column_config=None,\n", " tempscore_config=None)" ] @@ -211,31 +220,31 @@ " US00130H1059\n", " AES Corp.\n", " 2NUNNB7D43COUIRE5295\n", - " 50000\n", - " \n", - " \n", - " US0138721065\n", - " Alcoa Corp.\n", - " 549300T12EZ1F6PWWU29\n", - " 50000\n", + " 4351252\n", " \n", " \n", " US0158577090\n", " Algonquin Power & Utilities Corp.\n", " 549300K5VIUTJXQL7X75\n", - " 50000\n", + " 2228185\n", " \n", " \n", " US0185223007\n", " ALLETE, Inc.\n", " 549300NNLSIMY6Z8OT86\n", - " 50000\n", + " 3829481\n", " \n", " \n", " US0188021085\n", " Alliant Energy\n", " 5493009ML300G373MZ12\n", - " 50000\n", + " 3829481\n", + " \n", + " \n", + " US0236081024\n", + " Ameren Corp.\n", + " XRZQ5S7HYJFPHJ78L959\n", + " 15917812\n", " \n", " \n", " ...\n", @@ -244,70 +253,70 @@ " ...\n", " \n", " \n", - " NaN\n", - " Wells Rural Electric Co.\n", - " NaN\n", - " 50000\n", + " US8873991033\n", + " TIMKENSTEEL CORP\n", + " 549300QZTZWHDE9HJL14\n", + " 10000000\n", " \n", " \n", - " NaN\n", - " Wellsboro Electric Co.\n", - " NaN\n", - " 50000\n", + " US88830M1027\n", + " TITAN INTERNATIONAL INC\n", + " 254900CXRGBE7C4B5A06\n", + " 10000000\n", " \n", " \n", - " NaN\n", - " White River Electric Association, Inc.\n", - " NaN\n", - " 50000\n", + " US9129091081\n", + " UNITED STATES STEEL CORP\n", + " JNLUVFYJT1OZSIQ24U47\n", + " 10000000\n", " \n", " \n", - " NaN\n", - " Wilderness Line Holdings, LLC\n", - " NaN\n", - " 50000\n", + " US9138371003\n", + " UNIVERSAL STAINLESS & ALLOY PRODUCTS INC\n", + " 5493001OEIZDUGXZDE09\n", + " 10000000\n", " \n", " \n", - " NaN\n", - " Yankee Atomic Electric Co.\n", - " NaN\n", - " 50000\n", + " US9818111026\n", + " WORTHINGTON INDUSTRIES INC\n", + " 1WRCIANKYOIK6KYE5E82\n", + " 10000000\n", " \n", " \n", "\n", - "

    190 rows × 3 columns

    \n", + "

    61 rows × 3 columns

    \n", "" ], "text/plain": [ - " company_name company_lei \\\n", - "company_id \n", - "US00130H1059 AES Corp. 2NUNNB7D43COUIRE5295 \n", - "US0138721065 Alcoa Corp. 549300T12EZ1F6PWWU29 \n", - "US0158577090 Algonquin Power & Utilities Corp. 549300K5VIUTJXQL7X75 \n", - "US0185223007 ALLETE, Inc. 549300NNLSIMY6Z8OT86 \n", - "US0188021085 Alliant Energy 5493009ML300G373MZ12 \n", - "... ... ... \n", - "NaN Wells Rural Electric Co. NaN \n", - "NaN Wellsboro Electric Co. NaN \n", - "NaN White River Electric Association, Inc. NaN \n", - "NaN Wilderness Line Holdings, LLC NaN \n", - "NaN Yankee Atomic Electric Co. NaN \n", + " company_name company_lei \\\n", + "company_id \n", + "US00130H1059 AES Corp. 2NUNNB7D43COUIRE5295 \n", + "US0158577090 Algonquin Power & Utilities Corp. 549300K5VIUTJXQL7X75 \n", + "US0185223007 ALLETE, Inc. 549300NNLSIMY6Z8OT86 \n", + "US0188021085 Alliant Energy 5493009ML300G373MZ12 \n", + "US0236081024 Ameren Corp. XRZQ5S7HYJFPHJ78L959 \n", + "... ... ... \n", + "US8873991033 TIMKENSTEEL CORP 549300QZTZWHDE9HJL14 \n", + "US88830M1027 TITAN INTERNATIONAL INC 254900CXRGBE7C4B5A06 \n", + "US9129091081 UNITED STATES STEEL CORP JNLUVFYJT1OZSIQ24U47 \n", + "US9138371003 UNIVERSAL STAINLESS & ALLOY PRODUCTS INC 5493001OEIZDUGXZDE09 \n", + "US9818111026 WORTHINGTON INDUSTRIES INC 1WRCIANKYOIK6KYE5E82 \n", "\n", " investment_value \n", "company_id \n", - "US00130H1059 50000 \n", - "US0138721065 50000 \n", - "US0158577090 50000 \n", - "US0185223007 50000 \n", - "US0188021085 50000 \n", + "US00130H1059 4351252 \n", + "US0158577090 2228185 \n", + "US0185223007 3829481 \n", + "US0188021085 3829481 \n", + "US0236081024 15917812 \n", "... ... \n", - "NaN 50000 \n", - "NaN 50000 \n", - "NaN 50000 \n", - "NaN 50000 \n", - "NaN 50000 \n", + "US8873991033 10000000 \n", + "US88830M1027 10000000 \n", + "US9129091081 10000000 \n", + "US9138371003 10000000 \n", + "US9818111026 10000000 \n", "\n", - "[190 rows x 3 columns]" + "[61 rows x 3 columns]" ] }, "execution_count": 5, @@ -316,8 +325,8 @@ } ], "source": [ - "# portfolio_df = pd.read_csv(\"data/mdt-20220116-portfolio.csv\", encoding=\"iso-8859-1\", sep=';', index_col='company_id')\n", - "portfolio_df = pd.read_csv(\"data/rmi_all.csv\", encoding=\"iso-8859-1\", sep=',', index_col='company_id')\n", + "portfolio_df = pd.read_csv(\"data/mdt-20220116-portfolio.csv\", encoding=\"iso-8859-1\", sep=';', index_col='company_id')\n", + "# portfolio_df = pd.read_csv(\"data/rmi_all.csv\", encoding=\"iso-8859-1\", sep=',', index_col='company_id')\n", "portfolio_df" ] }, @@ -332,7 +341,7 @@ " company_table='company_data',\n", " target_table=None,\n", " trajectory_table=None,\n", - " company_schema='demo',\n", + " company_schema='demo_dv',\n", " column_config=None,\n", " tempscore_config=None)" ] @@ -354,10 +363,19 @@ "execution_count": 7, "id": "3840f2c6-a938-43b0-b24e-37f0b284d2c6", "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/Users/michael/opt/miniconda3/envs/jupyter/lib/python3.10/site-packages/pint_pandas/pint_array.py:648: UnitStrippedWarning: The unit of the quantity is stripped when downcasting to ndarray.\n", + " return np.array(qtys, dtype=\"object\", copy=copy)\n" + ] + } + ], "source": [ "# PA_SCORE means \"Probability-Adjusted\" Temperature Score\n", - "portfolio_df['pa_score'] = vault_warehouse.get_pa_temp_scores(probability=0.5, company_ids=portfolio_df.index.values)" + "portfolio_df['pa_score'] = vault_warehouse.get_pa_temp_scores(probability=0.5, company_ids=portfolio_df.index.values).astype('pint[delta_degC]')" ] }, { @@ -366,6 +384,16 @@ "id": "8031e3a0-3d22-4f16-8a9a-e85f855f1b02", "metadata": {}, "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/Users/michael/opt/miniconda3/envs/jupyter/lib/python3.10/site-packages/pint_pandas/pint_array.py:648: UnitStrippedWarning: The unit of the quantity is stripped when downcasting to ndarray.\n", + " return np.array(qtys, dtype=\"object\", copy=copy)\n", + "/Users/michael/opt/miniconda3/envs/jupyter/lib/python3.10/site-packages/pint_pandas/pint_array.py:648: UnitStrippedWarning: The unit of the quantity is stripped when downcasting to ndarray.\n", + " return np.array(qtys, dtype=\"object\", copy=copy)\n" + ] + }, { "data": { "text/html": [ @@ -405,363 +433,408 @@ " US00130H1059\n", " AES Corp.\n", " 2NUNNB7D43COUIRE5295\n", - " 50000\n", - " 2.105909\n", + " 4351252\n", + " 2.106926870694208\n", " \n", " \n", " US0185223007\n", " ALLETE, Inc.\n", " 549300NNLSIMY6Z8OT86\n", - " 50000\n", - " 2.063224\n", - " \n", - " \n", - " US0138721065\n", - " Alcoa Corp.\n", - " 549300T12EZ1F6PWWU29\n", - " 50000\n", - " 1.262227\n", + " 3829481\n", + " 2.043793289146705\n", " \n", " \n", " US0158577090\n", " Algonquin Power & Utilities Corp.\n", " 549300K5VIUTJXQL7X75\n", - " 50000\n", - " 1.262227\n", + " 2228185\n", + " 1.2623320662937099\n", " \n", " \n", " US0188021085\n", " Alliant Energy\n", " 5493009ML300G373MZ12\n", - " 50000\n", - " 1.987187\n", + " 3829481\n", + " 1.867044766546712\n", " \n", " \n", " US0236081024\n", " Ameren Corp.\n", " XRZQ5S7HYJFPHJ78L959\n", - " 50000\n", - " 2.421983\n", + " 15917812\n", + " 2.404261301598871\n", " \n", " \n", " US0255371017\n", " American Electric Power Co., Inc.\n", " 1B4S6S7G0TW5EE83BO58\n", - " 50000\n", - " 2.268167\n", + " 45520637\n", + " 2.1814181749376793\n", " \n", " \n", " US05351W1036\n", " Avangrid, Inc.\n", " 549300OX0Q38NLSKPB49\n", - " 50000\n", - " 1.299655\n", + " 10049068\n", + " 1.624145450892199\n", " \n", " \n", " US05379B1070\n", " Avista Corp.\n", " Q0IK63NITJD6RJ47SW96\n", - " 50000\n", - " 1.262227\n", + " 2804211\n", + " 1.7099274356102043\n", " \n", " \n", - " US0921131092\n", - " Black Hills Corp.\n", - " 3MGELCRSTNSAMJ962671\n", - " 50000\n", - " 2.044967\n", - " \n", - " \n", - " CA1125851040\n", - " Brookfield Asset Management\n", - " C6J3FGIWG6MBDGTE8F80\n", - " 50000\n", - " 1.262227\n", + " US1442851036\n", + " CARPENTER TECHNOLOGY CORP\n", + " DX6I6ZD3X5WNNCDJKP85\n", + " 10000000\n", + " 1.9900906690954119\n", " \n", " \n", " US1258961002\n", - " CMS Energy Corp.\n", + " CMS Energy\n", " 549300IA9XFBAGNIBW29\n", - " 50000\n", - " 2.020682\n", + " 9153135\n", + " 2.1320023723934343\n", + " \n", + " \n", + " US2017231034\n", + " COMMERCIAL METALS CO\n", + " 549300OQS2LO07ZJ7N73\n", + " 10000000\n", + " 1.2990617896624888\n", " \n", " \n", " US18551QAA58\n", " Cleco Partners LP\n", " 5493002H80P81B3HXL31\n", - " 50000\n", - " 1.262227\n", + " 3086052\n", + " 2.280309768660802\n", " \n", " \n", " US2091151041\n", " Consolidated Edison, Inc.\n", " 54930033SBW53OO8T749\n", - " 50000\n", - " 1.501692\n", + " 20394113\n", + " 1.7197135175610079\n", " \n", " \n", " US2333311072\n", " DTE Energy\n", " 549300IX8SD6XXD71I78\n", - " 50000\n", - " 2.574596\n", + " 14329945\n", + " 2.494203358852266\n", " \n", " \n", " US25746U1097\n", " Dominion Energy\n", " ILUL7B6Z54MRYCF6H308\n", - " 50000\n", - " 1.743513\n", + " 33528082\n", + " 1.6421622410252814\n", " \n", " \n", " US26441C2044\n", " Duke Energy Corp.\n", " I1BZKREC126H0VB1BL91\n", - " 50000\n", - " 1.960795\n", + " 73069652\n", + " 1.8259317788445726\n", + " \n", + " \n", + " US283677AZ52\n", + " El Paso Electric Co\n", + " OZ8GM8L4AHPKSWZMW205\n", + " 2646941\n", + " 1.864862725462496\n", " \n", " \n", " US29364G1031\n", " Entergy Corp.\n", " 4XM3TW50JULSLG8BNC79\n", - " 50000\n", - " 1.262227\n", + " 29844269\n", + " 1.727230341297715\n", " \n", " \n", " US30034W1062\n", " Evergy, Inc.\n", " 549300PGTHDQY6PSUI61\n", - " 50000\n", - " 2.519427\n", + " 18254954\n", + " 2.1869485449964037\n", " \n", " \n", " US30040W1080\n", " Eversource Energy\n", " SJ7XXD41SQU3ZNWUJ746\n", - " 50000\n", - " 1.262227\n", + " 18962480\n", + " 1.2636355763883802\n", " \n", " \n", " US3379321074\n", " FirstEnergy Corp.\n", " 549300SVYJS666PQJH88\n", - " 50000\n", - " 2.725257\n", + " 27277340\n", + " 3.4408564514595774\n", " \n", " \n", " CA3495531079\n", - " Fortis, Inc.\n", + " Fortis, Inc\n", " 549300MQYQ9Y065XPR71\n", - " 50000\n", - " 2.126674\n", + " 12428756\n", + " 2.8403172973777053\n", " \n", " \n", - " US4198701009\n", - " Hawaiian Electric Industries, Inc.\n", - " JJ8FWOCWCV22X7GUPJ23\n", - " 50000\n", - " 2.049170\n", + " US3737371050\n", + " GERDAU S.A.\n", + " 254900YDV6SEQQPZVG24\n", + " 10000000\n", + " 1.375590655258247\n", + " \n", + " \n", + " US6703461052\n", + " NUCOR CORP\n", + " 549300GGJCRSI2TIEJ46\n", + " 10000000\n", + " 1.315430185746877\n", " \n", " \n", " US6362744095\n", - " National Grid PLC\n", + " National Grid plc\n", " 8R95QZMKZLJX5Q2XR704\n", - " 50000\n", - " 1.972486\n", + " 12281584\n", + " 2.5302066248940553\n", " \n", " \n", " US6680743050\n", - " Northwestern Corp.\n", + " NorthWestern Corp.\n", " 3BPWMBHR1R9SHUN7J795\n", - " 50000\n", - " 1.760193\n", + " 2703150\n", + " 2.235303301117127\n", " \n", " \n", " US6708371033\n", - " OG&E Energy Corp.\n", + " OG&E Energy\n", " CE5OG6JPOZMDSA0LAQ19\n", - " 50000\n", - " 2.600624\n", + " 7251242\n", + " 2.572462385836689\n", " \n", " \n", " US6896481032\n", " Otter Tail Corp.\n", " 549300HHVBQRQUVKKD91\n", - " 50000\n", - " 2.709576\n", - " \n", - " \n", - " US69331C1080\n", - " PG&E Corp.\n", - " 1HNPXZSMMB7HMBMVBS46\n", - " 50000\n", - " 1.333378\n", + " 1264277\n", + " 2.9694066480437593\n", " \n", " \n", " US69349H1077\n", " PNM Resources, Inc.\n", " 5493003JOBJGLZSDDQ28\n", - " 50000\n", - " 1.896564\n", + " 3326899\n", + " 2.013668347320406\n", + " \n", + " \n", + " KR7005490008\n", + " POSCO\n", + " 988400E5HRVX81AYLM04\n", + " 10000000\n", + " 1.5593142658365693\n", " \n", " \n", " US69351T1060\n", - " PPL Corp.\n", + " PPL\n", " 9N3UAJSNOUXFKQLF3V18\n", - " 50000\n", - " 3.059505\n", + " 18146577\n", + " 2.6346104815070195\n", " \n", " \n", " US7234841010\n", " Pinnacle West Capital Corp.\n", " TWSEY0NEDUDCKS27AH81\n", - " 50000\n", - " 1.841268\n", + " 12058547\n", + " 2.086103530593631\n", " \n", " \n", " US7365088472\n", " Portland General Electric Co.\n", " GJOUP9M7C39GLSK9R870\n", - " 50000\n", - " 1.854606\n", + " 5770964\n", + " 1.8706266553608955\n", " \n", " \n", " US7445731067\n", " Public Service Enterprise Group\n", " PUSS41EMO3E6XXNV3U28\n", - " 50000\n", - " 1.262227\n", + " 16912134\n", + " 1.4434071117060308\n", + " \n", + " \n", + " US8581191009\n", + " STEEL DYNAMICS INC\n", + " 549300HGGKEL4FYTTQ83\n", + " 10000000\n", + " 1.3158777300113855\n", " \n", " \n", " US8168511090\n", - " Sempra\n", + " Sempra Energy\n", " PBBKGKLRK5S5C0Y4T545\n", - " 50000\n", - " 1.364717\n", + " 29579515\n", + " 1.8683533328964472\n", " \n", " \n", " US8425871071\n", " Southern Co.\n", " 549300FC3G3YU2FBZD92\n", - " 50000\n", - " 2.249758\n", + " 50294245\n", + " 1.9963792988066478\n", + " \n", + " \n", + " US88031M1099\n", + " TENARIS SA\n", + " 549300Y7C05BKC4HZB40\n", + " 10000000\n", + " 1.3632817562247952\n", + " \n", + " \n", + " US8808901081\n", + " TERNIUM S.A.\n", + " 529900QG4KU23TEI2E46\n", + " 10000000\n", + " 1.5265556596582406\n", " \n", " \n", - " CA87807B1076\n", - " TC Energy Corp.\n", - " 549300UGKOFV2IWJJG27\n", - " 50000\n", - " 1.262227\n", + " US8873991033\n", + " TIMKENSTEEL CORP\n", + " 549300QZTZWHDE9HJL14\n", + " 10000000\n", + " 1.2939425547566503\n", " \n", " \n", - " US92840M1027\n", - " Vistra Corp.\n", - " 549300KP43CPCUJOOG15\n", - " 50000\n", - " 1.262227\n", + " US9129091081\n", + " UNITED STATES STEEL CORP\n", + " JNLUVFYJT1OZSIQ24U47\n", + " 10000000\n", + " 1.5154085205221834\n", " \n", " \n", " US92939U1060\n", " WEC Energy Group\n", " 549300IGLYTZUK3PVP70\n", - " 50000\n", - " 2.462315\n", + " 11046675\n", + " 2.11253492554515\n", + " \n", + " \n", + " US9818111026\n", + " WORTHINGTON INDUSTRIES INC\n", + " 1WRCIANKYOIK6KYE5E82\n", + " 10000000\n", + " 1.26782307131814\n", " \n", " \n", " US98389B1008\n", " Xcel Energy, Inc.\n", " LGJNMI9GH8XIDG5RCM61\n", - " 50000\n", - " 1.866682\n", + " 27475073\n", + " 1.8665476973515542\n", " \n", " \n", "\n", "" ], "text/plain": [ - " company_name company_lei \\\n", - "company_id \n", - "US00130H1059 AES Corp. 2NUNNB7D43COUIRE5295 \n", - "US0185223007 ALLETE, Inc. 549300NNLSIMY6Z8OT86 \n", - "US0138721065 Alcoa Corp. 549300T12EZ1F6PWWU29 \n", - "US0158577090 Algonquin Power & Utilities Corp. 549300K5VIUTJXQL7X75 \n", - "US0188021085 Alliant Energy 5493009ML300G373MZ12 \n", - "US0236081024 Ameren Corp. XRZQ5S7HYJFPHJ78L959 \n", - "US0255371017 American Electric Power Co., Inc. 1B4S6S7G0TW5EE83BO58 \n", - "US05351W1036 Avangrid, Inc. 549300OX0Q38NLSKPB49 \n", - "US05379B1070 Avista Corp. Q0IK63NITJD6RJ47SW96 \n", - "US0921131092 Black Hills Corp. 3MGELCRSTNSAMJ962671 \n", - "CA1125851040 Brookfield Asset Management C6J3FGIWG6MBDGTE8F80 \n", - "US1258961002 CMS Energy Corp. 549300IA9XFBAGNIBW29 \n", - "US18551QAA58 Cleco Partners LP 5493002H80P81B3HXL31 \n", - "US2091151041 Consolidated Edison, Inc. 54930033SBW53OO8T749 \n", - "US2333311072 DTE Energy 549300IX8SD6XXD71I78 \n", - "US25746U1097 Dominion Energy ILUL7B6Z54MRYCF6H308 \n", - "US26441C2044 Duke Energy Corp. I1BZKREC126H0VB1BL91 \n", - "US29364G1031 Entergy Corp. 4XM3TW50JULSLG8BNC79 \n", - "US30034W1062 Evergy, Inc. 549300PGTHDQY6PSUI61 \n", - "US30040W1080 Eversource Energy SJ7XXD41SQU3ZNWUJ746 \n", - "US3379321074 FirstEnergy Corp. 549300SVYJS666PQJH88 \n", - "CA3495531079 Fortis, Inc. 549300MQYQ9Y065XPR71 \n", - "US4198701009 Hawaiian Electric Industries, Inc. JJ8FWOCWCV22X7GUPJ23 \n", - "US6362744095 National Grid PLC 8R95QZMKZLJX5Q2XR704 \n", - "US6680743050 Northwestern Corp. 3BPWMBHR1R9SHUN7J795 \n", - "US6708371033 OG&E Energy Corp. CE5OG6JPOZMDSA0LAQ19 \n", - "US6896481032 Otter Tail Corp. 549300HHVBQRQUVKKD91 \n", - "US69331C1080 PG&E Corp. 1HNPXZSMMB7HMBMVBS46 \n", - "US69349H1077 PNM Resources, Inc. 5493003JOBJGLZSDDQ28 \n", - "US69351T1060 PPL Corp. 9N3UAJSNOUXFKQLF3V18 \n", - "US7234841010 Pinnacle West Capital Corp. TWSEY0NEDUDCKS27AH81 \n", - "US7365088472 Portland General Electric Co. GJOUP9M7C39GLSK9R870 \n", - "US7445731067 Public Service Enterprise Group PUSS41EMO3E6XXNV3U28 \n", - "US8168511090 Sempra PBBKGKLRK5S5C0Y4T545 \n", - "US8425871071 Southern Co. 549300FC3G3YU2FBZD92 \n", - "CA87807B1076 TC Energy Corp. 549300UGKOFV2IWJJG27 \n", - "US92840M1027 Vistra Corp. 549300KP43CPCUJOOG15 \n", - "US92939U1060 WEC Energy Group 549300IGLYTZUK3PVP70 \n", - "US98389B1008 Xcel Energy, Inc. LGJNMI9GH8XIDG5RCM61 \n", + " company_name company_lei \\\n", + "company_id \n", + "US00130H1059 AES Corp. 2NUNNB7D43COUIRE5295 \n", + "US0185223007 ALLETE, Inc. 549300NNLSIMY6Z8OT86 \n", + "US0158577090 Algonquin Power & Utilities Corp. 549300K5VIUTJXQL7X75 \n", + "US0188021085 Alliant Energy 5493009ML300G373MZ12 \n", + "US0236081024 Ameren Corp. XRZQ5S7HYJFPHJ78L959 \n", + "US0255371017 American Electric Power Co., Inc. 1B4S6S7G0TW5EE83BO58 \n", + "US05351W1036 Avangrid, Inc. 549300OX0Q38NLSKPB49 \n", + "US05379B1070 Avista Corp. Q0IK63NITJD6RJ47SW96 \n", + "US1442851036 CARPENTER TECHNOLOGY CORP DX6I6ZD3X5WNNCDJKP85 \n", + "US1258961002 CMS Energy 549300IA9XFBAGNIBW29 \n", + "US2017231034 COMMERCIAL METALS CO 549300OQS2LO07ZJ7N73 \n", + "US18551QAA58 Cleco Partners LP 5493002H80P81B3HXL31 \n", + "US2091151041 Consolidated Edison, Inc. 54930033SBW53OO8T749 \n", + "US2333311072 DTE Energy 549300IX8SD6XXD71I78 \n", + "US25746U1097 Dominion Energy ILUL7B6Z54MRYCF6H308 \n", + "US26441C2044 Duke Energy Corp. I1BZKREC126H0VB1BL91 \n", + "US283677AZ52 El Paso Electric Co OZ8GM8L4AHPKSWZMW205 \n", + "US29364G1031 Entergy Corp. 4XM3TW50JULSLG8BNC79 \n", + "US30034W1062 Evergy, Inc. 549300PGTHDQY6PSUI61 \n", + "US30040W1080 Eversource Energy SJ7XXD41SQU3ZNWUJ746 \n", + "US3379321074 FirstEnergy Corp. 549300SVYJS666PQJH88 \n", + "CA3495531079 Fortis, Inc 549300MQYQ9Y065XPR71 \n", + "US3737371050 GERDAU S.A. 254900YDV6SEQQPZVG24 \n", + "US6703461052 NUCOR CORP 549300GGJCRSI2TIEJ46 \n", + "US6362744095 National Grid plc 8R95QZMKZLJX5Q2XR704 \n", + "US6680743050 NorthWestern Corp. 3BPWMBHR1R9SHUN7J795 \n", + "US6708371033 OG&E Energy CE5OG6JPOZMDSA0LAQ19 \n", + "US6896481032 Otter Tail Corp. 549300HHVBQRQUVKKD91 \n", + "US69349H1077 PNM Resources, Inc. 5493003JOBJGLZSDDQ28 \n", + "KR7005490008 POSCO 988400E5HRVX81AYLM04 \n", + "US69351T1060 PPL 9N3UAJSNOUXFKQLF3V18 \n", + "US7234841010 Pinnacle West Capital Corp. TWSEY0NEDUDCKS27AH81 \n", + "US7365088472 Portland General Electric Co. GJOUP9M7C39GLSK9R870 \n", + "US7445731067 Public Service Enterprise Group PUSS41EMO3E6XXNV3U28 \n", + "US8581191009 STEEL DYNAMICS INC 549300HGGKEL4FYTTQ83 \n", + "US8168511090 Sempra Energy PBBKGKLRK5S5C0Y4T545 \n", + "US8425871071 Southern Co. 549300FC3G3YU2FBZD92 \n", + "US88031M1099 TENARIS SA 549300Y7C05BKC4HZB40 \n", + "US8808901081 TERNIUM S.A. 529900QG4KU23TEI2E46 \n", + "US8873991033 TIMKENSTEEL CORP 549300QZTZWHDE9HJL14 \n", + "US9129091081 UNITED STATES STEEL CORP JNLUVFYJT1OZSIQ24U47 \n", + "US92939U1060 WEC Energy Group 549300IGLYTZUK3PVP70 \n", + "US9818111026 WORTHINGTON INDUSTRIES INC 1WRCIANKYOIK6KYE5E82 \n", + "US98389B1008 Xcel Energy, Inc. LGJNMI9GH8XIDG5RCM61 \n", "\n", - " investment_value pa_score \n", - "company_id \n", - "US00130H1059 50000 2.105909 \n", - "US0185223007 50000 2.063224 \n", - "US0138721065 50000 1.262227 \n", - "US0158577090 50000 1.262227 \n", - "US0188021085 50000 1.987187 \n", - "US0236081024 50000 2.421983 \n", - "US0255371017 50000 2.268167 \n", - "US05351W1036 50000 1.299655 \n", - "US05379B1070 50000 1.262227 \n", - "US0921131092 50000 2.044967 \n", - "CA1125851040 50000 1.262227 \n", - "US1258961002 50000 2.020682 \n", - "US18551QAA58 50000 1.262227 \n", - "US2091151041 50000 1.501692 \n", - "US2333311072 50000 2.574596 \n", - "US25746U1097 50000 1.743513 \n", - "US26441C2044 50000 1.960795 \n", - "US29364G1031 50000 1.262227 \n", - "US30034W1062 50000 2.519427 \n", - "US30040W1080 50000 1.262227 \n", - "US3379321074 50000 2.725257 \n", - "CA3495531079 50000 2.126674 \n", - "US4198701009 50000 2.049170 \n", - "US6362744095 50000 1.972486 \n", - "US6680743050 50000 1.760193 \n", - "US6708371033 50000 2.600624 \n", - "US6896481032 50000 2.709576 \n", - "US69331C1080 50000 1.333378 \n", - "US69349H1077 50000 1.896564 \n", - "US69351T1060 50000 3.059505 \n", - "US7234841010 50000 1.841268 \n", - "US7365088472 50000 1.854606 \n", - "US7445731067 50000 1.262227 \n", - "US8168511090 50000 1.364717 \n", - "US8425871071 50000 2.249758 \n", - "CA87807B1076 50000 1.262227 \n", - "US92840M1027 50000 1.262227 \n", - "US92939U1060 50000 2.462315 \n", - "US98389B1008 50000 1.866682 " + " investment_value pa_score \n", + "company_id \n", + "US00130H1059 4351252 2.106926870694208 \n", + "US0185223007 3829481 2.043793289146705 \n", + "US0158577090 2228185 1.2623320662937099 \n", + "US0188021085 3829481 1.867044766546712 \n", + "US0236081024 15917812 2.404261301598871 \n", + "US0255371017 45520637 2.1814181749376793 \n", + "US05351W1036 10049068 1.624145450892199 \n", + "US05379B1070 2804211 1.7099274356102043 \n", + "US1442851036 10000000 1.9900906690954119 \n", + "US1258961002 9153135 2.1320023723934343 \n", + "US2017231034 10000000 1.2990617896624888 \n", + "US18551QAA58 3086052 2.280309768660802 \n", + "US2091151041 20394113 1.7197135175610079 \n", + "US2333311072 14329945 2.494203358852266 \n", + "US25746U1097 33528082 1.6421622410252814 \n", + "US26441C2044 73069652 1.8259317788445726 \n", + "US283677AZ52 2646941 1.864862725462496 \n", + "US29364G1031 29844269 1.727230341297715 \n", + "US30034W1062 18254954 2.1869485449964037 \n", + "US30040W1080 18962480 1.2636355763883802 \n", + "US3379321074 27277340 3.4408564514595774 \n", + "CA3495531079 12428756 2.8403172973777053 \n", + "US3737371050 10000000 1.375590655258247 \n", + "US6703461052 10000000 1.315430185746877 \n", + "US6362744095 12281584 2.5302066248940553 \n", + "US6680743050 2703150 2.235303301117127 \n", + "US6708371033 7251242 2.572462385836689 \n", + "US6896481032 1264277 2.9694066480437593 \n", + "US69349H1077 3326899 2.013668347320406 \n", + "KR7005490008 10000000 1.5593142658365693 \n", + "US69351T1060 18146577 2.6346104815070195 \n", + "US7234841010 12058547 2.086103530593631 \n", + "US7365088472 5770964 1.8706266553608955 \n", + "US7445731067 16912134 1.4434071117060308 \n", + "US8581191009 10000000 1.3158777300113855 \n", + "US8168511090 29579515 1.8683533328964472 \n", + "US8425871071 50294245 1.9963792988066478 \n", + "US88031M1099 10000000 1.3632817562247952 \n", + "US8808901081 10000000 1.5265556596582406 \n", + "US8873991033 10000000 1.2939425547566503 \n", + "US9129091081 10000000 1.5154085205221834 \n", + "US92939U1060 11046675 2.11253492554515 \n", + "US9818111026 10000000 1.26782307131814 \n", + "US98389B1008 27475073 1.8665476973515542 " ] }, "execution_count": 8, @@ -784,7 +857,7 @@ { "data": { "text/plain": [ - "1950000" + "659616728" ] }, "execution_count": 9, @@ -803,6 +876,16 @@ "id": "f3193208-3029-40d4-a7a2-e820a32eea56", "metadata": {}, "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/Users/michael/opt/miniconda3/envs/jupyter/lib/python3.10/site-packages/pint_pandas/pint_array.py:648: UnitStrippedWarning: The unit of the quantity is stripped when downcasting to ndarray.\n", + " return np.array(qtys, dtype=\"object\", copy=copy)\n", + "/Users/michael/opt/miniconda3/envs/jupyter/lib/python3.10/site-packages/pint_pandas/pint_array.py:648: UnitStrippedWarning: The unit of the quantity is stripped when downcasting to ndarray.\n", + " return np.array(qtys, dtype=\"object\", copy=copy)\n" + ] + }, { "data": { "text/html": [ @@ -844,41 +927,41 @@ " US00130H1059\n", " AES Corp.\n", " 2NUNNB7D43COUIRE5295\n", - " 50000\n", - " 2.105909\n", - " 0.053998\n", - " \n", - " \n", - " US0138721065\n", - " Alcoa Corp.\n", - " 549300T12EZ1F6PWWU29\n", - " 50000\n", - " 1.262227\n", - " 0.032365\n", + " 4351252\n", + " 2.106926870694208\n", + " 0.013898631388198987\n", " \n", " \n", " US0158577090\n", " Algonquin Power & Utilities Corp.\n", " 549300K5VIUTJXQL7X75\n", - " 50000\n", - " 1.262227\n", - " 0.032365\n", + " 2228185\n", + " 1.2623320662937099\n", + " 0.004264157132071172\n", " \n", " \n", " US0185223007\n", " ALLETE, Inc.\n", " 549300NNLSIMY6Z8OT86\n", - " 50000\n", - " 2.063224\n", - " 0.052903\n", + " 3829481\n", + " 2.043793289146705\n", + " 0.011865477687998862\n", " \n", " \n", " US0188021085\n", " Alliant Energy\n", " 5493009ML300G373MZ12\n", - " 50000\n", - " 1.987187\n", - " 0.050954\n", + " 3829481\n", + " 1.867044766546712\n", + " 0.010839343752422344\n", + " \n", + " \n", + " US0236081024\n", + " Ameren Corp.\n", + " XRZQ5S7HYJFPHJ78L959\n", + " 15917812\n", + " 2.404261301598871\n", + " 0.058019419115953846\n", " \n", " \n", "\n", @@ -888,18 +971,18 @@ " company_name company_lei \\\n", "company_id \n", "US00130H1059 AES Corp. 2NUNNB7D43COUIRE5295 \n", - "US0138721065 Alcoa Corp. 549300T12EZ1F6PWWU29 \n", "US0158577090 Algonquin Power & Utilities Corp. 549300K5VIUTJXQL7X75 \n", "US0185223007 ALLETE, Inc. 549300NNLSIMY6Z8OT86 \n", "US0188021085 Alliant Energy 5493009ML300G373MZ12 \n", + "US0236081024 Ameren Corp. XRZQ5S7HYJFPHJ78L959 \n", "\n", - " investment_value pa_score WATS_weight \n", - "company_id \n", - "US00130H1059 50000 2.105909 0.053998 \n", - "US0138721065 50000 1.262227 0.032365 \n", - "US0158577090 50000 1.262227 0.032365 \n", - "US0185223007 50000 2.063224 0.052903 \n", - "US0188021085 50000 1.987187 0.050954 " + " investment_value pa_score WATS_weight \n", + "company_id \n", + "US00130H1059 4351252 2.106926870694208 0.013898631388198987 \n", + "US0158577090 2228185 1.2623320662937099 0.004264157132071172 \n", + "US0185223007 3829481 2.043793289146705 0.011865477687998862 \n", + "US0188021085 3829481 1.867044766546712 0.010839343752422344 \n", + "US0236081024 15917812 2.404261301598871 0.058019419115953846 " ] }, "execution_count": 10, @@ -922,7 +1005,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "Portfolio temperature score based on WATS = 1.8719702807465801\n" + "Portfolio temperature score based on WATS = 1.946471711490046 delta_degree_Celsius\n" ] } ], @@ -946,6 +1029,16 @@ "id": "fddd23f0-7ca4-4ea8-8a54-ea71fee0f40b", "metadata": {}, "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/Users/michael/opt/miniconda3/envs/jupyter/lib/python3.10/site-packages/pint_pandas/pint_array.py:648: UnitStrippedWarning: The unit of the quantity is stripped when downcasting to ndarray.\n", + " return np.array(qtys, dtype=\"object\", copy=copy)\n", + "/Users/michael/opt/miniconda3/envs/jupyter/lib/python3.10/site-packages/pint_pandas/pint_array.py:648: UnitStrippedWarning: The unit of the quantity is stripped when downcasting to ndarray.\n", + " return np.array(qtys, dtype=\"object\", copy=copy)\n" + ] + }, { "data": { "text/html": [ @@ -989,46 +1082,46 @@ " US00130H1059\n", " AES Corp.\n", " 2NUNNB7D43COUIRE5295\n", - " 50000\n", - " 2.105909\n", - " 0.053998\n", - " 0.043264\n", - " \n", - " \n", - " US0138721065\n", - " Alcoa Corp.\n", - " 549300T12EZ1F6PWWU29\n", - " 50000\n", - " 1.262227\n", - " 0.032365\n", - " 0.000000\n", + " 4351252\n", + " 2.106926870694208\n", + " 0.013898631388198987\n", + " 1.4900271821443577e-07\n", " \n", " \n", " US0158577090\n", " Algonquin Power & Utilities Corp.\n", " 549300K5VIUTJXQL7X75\n", - " 50000\n", - " 1.262227\n", - " 0.032365\n", - " 0.007193\n", + " 2228185\n", + " 1.2623320662937099\n", + " 0.004264157132071172\n", + " 4.162829462365117e-12\n", " \n", " \n", " US0185223007\n", " ALLETE, Inc.\n", " 549300NNLSIMY6Z8OT86\n", - " 50000\n", - " 2.063224\n", - " 0.052903\n", - " 0.015489\n", + " 3829481\n", + " 2.043793289146705\n", + " 0.011865477687998862\n", + " 5.2549678751293906e-08\n", " \n", " \n", " US0188021085\n", " Alliant Energy\n", " 5493009ML300G373MZ12\n", - " 50000\n", - " 1.987187\n", - " 0.050954\n", - " 0.037716\n", + " 3829481\n", + " 1.867044766546712\n", + " 0.010839343752422344\n", + " 1.261547907437679e-07\n", + " \n", + " \n", + " US0236081024\n", + " Ameren Corp.\n", + " XRZQ5S7HYJFPHJ78L959\n", + " 15917812\n", + " 2.404261301598871\n", + " 0.058019419115953846\n", + " 3.4265102068870053e-07\n", " \n", " \n", "\n", @@ -1038,18 +1131,26 @@ " company_name company_lei \\\n", "company_id \n", "US00130H1059 AES Corp. 2NUNNB7D43COUIRE5295 \n", - "US0138721065 Alcoa Corp. 549300T12EZ1F6PWWU29 \n", "US0158577090 Algonquin Power & Utilities Corp. 549300K5VIUTJXQL7X75 \n", "US0185223007 ALLETE, Inc. 549300NNLSIMY6Z8OT86 \n", "US0188021085 Alliant Energy 5493009ML300G373MZ12 \n", + "US0236081024 Ameren Corp. XRZQ5S7HYJFPHJ78L959 \n", "\n", - " investment_value pa_score WATS_weight TETS_weight \n", - "company_id \n", - "US00130H1059 50000 2.105909 0.053998 0.043264 \n", - "US0138721065 50000 1.262227 0.032365 0.000000 \n", - "US0158577090 50000 1.262227 0.032365 0.007193 \n", - "US0185223007 50000 2.063224 0.052903 0.015489 \n", - "US0188021085 50000 1.987187 0.050954 0.037716 " + " investment_value pa_score WATS_weight \\\n", + "company_id \n", + "US00130H1059 4351252 2.106926870694208 0.013898631388198987 \n", + "US0158577090 2228185 1.2623320662937099 0.004264157132071172 \n", + "US0185223007 3829481 2.043793289146705 0.011865477687998862 \n", + "US0188021085 3829481 1.867044766546712 0.010839343752422344 \n", + "US0236081024 15917812 2.404261301598871 0.058019419115953846 \n", + "\n", + " TETS_weight \n", + "company_id \n", + "US00130H1059 1.4900271821443577e-07 \n", + "US0158577090 4.162829462365117e-12 \n", + "US0185223007 5.2549678751293906e-08 \n", + "US0188021085 1.261547907437679e-07 \n", + "US0236081024 3.4265102068870053e-07 " ] }, "execution_count": 12, @@ -1072,7 +1173,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "Portfolio temperature score based on TETS = 2.0995755688941156\n" + "Portfolio temperature score based on TETS = 1.5060118497978 delta_degree_Celsius\n" ] } ], @@ -1104,11 +1205,21 @@ "name": "stdout", "output_type": "stream", "text": [ - "Portfolio temperature score based on MOTS = 1.9553783519299202\n", - "Portfolio temperature score based on EOTS = 1.9642265800595662\n", - "Portfolio temperature score based on ECOTS = 1.9535230492185478\n", - "Portfolio temperature score based on AOTS = 1.7668105855433356\n", - "Portfolio temperature score based on ROTS = 1.7662923761353264\n" + "Portfolio temperature score based on MOTS = 1.998539728638169 delta_degree_Celsius\n", + "Portfolio temperature score based on EOTS = 1.9715101533914599 delta_degree_Celsius\n", + "Portfolio temperature score based on ECOTS = 1.9914244268264996 delta_degree_Celsius\n", + "Portfolio temperature score based on AOTS = 1.9769581669116627 delta_degree_Celsius\n", + "Portfolio temperature score based on ROTS = 1.8572293378229632 delta_degree_Celsius\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/Users/michael/opt/miniconda3/envs/jupyter/lib/python3.10/site-packages/pint_pandas/pint_array.py:648: UnitStrippedWarning: The unit of the quantity is stripped when downcasting to ndarray.\n", + " return np.array(qtys, dtype=\"object\", copy=copy)\n", + "/Users/michael/opt/miniconda3/envs/jupyter/lib/python3.10/site-packages/pint_pandas/pint_array.py:648: UnitStrippedWarning: The unit of the quantity is stripped when downcasting to ndarray.\n", + " return np.array(qtys, dtype=\"object\", copy=copy)\n" ] }, { @@ -1164,678 +1275,857 @@ " US00130H1059\n", " AES Corp.\n", " 2NUNNB7D43COUIRE5295\n", - " 50000\n", - " 2.105909\n", - " 0.053998\n", - " 4.326361e-02\n", - " 0.030532\n", - " 0.019073\n", - " 0.035616\n", - " 0.038141\n", - " 0.055800\n", - " \n", - " \n", - " US0138721065\n", - " Alcoa Corp.\n", - " 549300T12EZ1F6PWWU29\n", - " 50000\n", - " 1.262227\n", - " 0.032365\n", - " 0.000000e+00\n", - " 0.004080\n", - " 0.003992\n", - " 0.006086\n", - " 0.009940\n", - " 0.034246\n", + " 4351252\n", + " 2.106926870694208\n", + " 0.013898631388198987\n", + " 1.4900271821443577e-07\n", + " 0.03357412161990311\n", + " 0.020337868906115608\n", + " 0.03667288993043838\n", + " 0.04816939688533329\n", + " 0.05276197099873813\n", " \n", " \n", " US0158577090\n", " Algonquin Power & Utilities Corp.\n", " 549300K5VIUTJXQL7X75\n", - " 50000\n", - " 1.262227\n", - " 0.032365\n", - " 7.193075e-03\n", - " NaN\n", - " NaN\n", - " NaN\n", - " 0.007420\n", - " 0.005339\n", + " 2228185\n", + " 1.2623320662937099\n", + " 0.004264157132071172\n", + " 4.162829462365117e-12\n", + " nan\n", + " nan\n", + " nan\n", + " 0.009358782813005341\n", + " 0.0050413384247108275\n", " \n", " \n", " US0185223007\n", " ALLETE, Inc.\n", " 549300NNLSIMY6Z8OT86\n", - " 50000\n", - " 2.063224\n", - " 0.052903\n", - " 1.548850e-02\n", - " 0.008971\n", - " 0.009437\n", - " 0.009666\n", - " 0.006089\n", - " 0.006656\n", + " 3829481\n", + " 2.043793289146705\n", + " 0.011865477687998862\n", + " 5.2549678751293906e-08\n", + " 0.012839373901951686\n", + " 0.011385162596862225\n", + " 0.013018784526381704\n", + " 0.007613807008198652\n", + " 0.006231229172975224\n", " \n", " \n", " US0188021085\n", " Alliant Energy\n", " 5493009ML300G373MZ12\n", - " 50000\n", - " 1.987187\n", - " 0.050954\n", - " 3.771644e-02\n", - " 0.036396\n", - " 0.039115\n", - " 0.038327\n", - " 0.017864\n", - " 0.018852\n", + " 3829481\n", + " 1.867044766546712\n", + " 0.010839343752422344\n", + " 1.261547907437679e-07\n", + " 0.03174960844912046\n", + " 0.0330110683879106\n", + " 0.03172544768591218\n", + " 0.021186142904952205\n", + " 0.016738395724396053\n", " \n", " \n", " US0236081024\n", " Ameren Corp.\n", " XRZQ5S7HYJFPHJ78L959\n", - " 50000\n", - " 2.421983\n", - " 0.062102\n", - " 9.710672e-02\n", - " 0.064485\n", - " 0.066420\n", - " 0.067878\n", - " 0.037719\n", - " 0.037224\n", + " 15917812\n", + " 2.404261301598871\n", + " 0.058019419115953846\n", + " 3.4265102068870053e-07\n", + " 0.06477745482537144\n", + " 0.06387775855844924\n", + " 0.06469360527719219\n", + " 0.04726477824338227\n", + " 0.034922806188620925\n", " \n", " \n", " US0255371017\n", " American Electric Power Co., Inc.\n", " 1B4S6S7G0TW5EE83BO58\n", - " 50000\n", - " 2.268167\n", - " 0.058158\n", - " 2.332623e-01\n", - " 0.138065\n", - " 0.164953\n", - " 0.146101\n", - " 0.092655\n", - " 0.091788\n", + " 45520637\n", + " 2.1814181749376793\n", + " 0.15054127748946447\n", + " 7.719971932013753e-07\n", + " 0.139082507959553\n", + " 0.15303279317063806\n", + " 0.13956919099354945\n", + " 0.11248617091168711\n", + " 0.08343102518455157\n", " \n", " \n", " US05351W1036\n", " Avangrid, Inc.\n", " 549300OX0Q38NLSKPB49\n", - " 50000\n", - " 1.299655\n", - " 0.033324\n", - " 5.779251e-05\n", - " 0.004749\n", - " 0.014100\n", - " 0.005368\n", - " 0.024061\n", - " 0.021414\n", + " 10049068\n", + " 1.624145450892199\n", + " 0.024743381095553976\n", + " 2.5939403676600244e-10\n", + " 0.00675237883315782\n", + " 0.016801248692288422\n", + " 0.007160665331019981\n", + " 0.0379793742030801\n", + " 0.02529980312047131\n", " \n", " \n", " US05379B1070\n", " Avista Corp.\n", " Q0IK63NITJD6RJ47SW96\n", - " 50000\n", - " 1.262227\n", - " 0.032365\n", - " 5.288110e-03\n", - " 0.004801\n", - " 0.005867\n", - " 0.005069\n", - " 0.004132\n", - " 0.004417\n", - " \n", - " \n", - " US0921131092\n", - " Black Hills Corp.\n", - " 3MGELCRSTNSAMJ962671\n", - " 50000\n", - " 2.044967\n", - " 0.052435\n", - " 1.002040e-02\n", - " 0.011106\n", - " 0.014255\n", - " 0.011712\n", - " 0.008320\n", - " 0.009226\n", - " \n", - " \n", - " CA1125851040\n", - " Brookfield Asset Management\n", - " C6J3FGIWG6MBDGTE8F80\n", - " 50000\n", - " 1.262227\n", - " 0.032365\n", - " 0.000000e+00\n", - " NaN\n", - " NaN\n", - " NaN\n", - " 0.220109\n", - " 0.222636\n", + " 2804211\n", + " 1.7099274356102043\n", + " 0.0072693688934764664\n", + " 2.5464088060658733e-08\n", + " 0.007391183784912206\n", + " 0.008035321000941292\n", + " 0.007399948532530545\n", + " 0.007066740568098292\n", + " 0.005655105952879468\n", " \n", " \n", " US18551QAA58\n", " Cleco Partners LP\n", " 5493002H80P81B3HXL31\n", - " 50000\n", - " 1.262227\n", - " 0.032365\n", - " 1.826329e-02\n", - " NaN\n", - " NaN\n", - " NaN\n", - " 0.005079\n", - " 0.005382\n", + " 3086052\n", + " 2.280309768660802\n", + " 0.01066855072571053\n", + " 1.1727968749659209e-07\n", + " nan\n", + " nan\n", + " nan\n", + " 0.011583583746330367\n", + " 0.009189101919284608\n", " \n", " \n", " US1258961002\n", - " CMS Energy Corp.\n", + " CMS Energy\n", " 549300IA9XFBAGNIBW29\n", - " 50000\n", - " 2.020682\n", - " 0.051812\n", - " 4.330570e-02\n", - " 0.051773\n", - " 0.060195\n", - " 0.054904\n", - " 0.029190\n", - " 0.035969\n", + " 9153135\n", + " 2.1320023723934343\n", + " 0.02958461286148185\n", + " 1.624135308468388e-07\n", + " 0.05110745034256367\n", + " 0.05737401152284647\n", + " 0.05143351653370429\n", + " 0.038876229852125306\n", + " 0.035867501304020305\n", " \n", " \n", " US2091151041\n", " Consolidated Edison, Inc.\n", " 54930033SBW53OO8T749\n", - " 50000\n", - " 1.501692\n", - " 0.038505\n", - " 3.093297e-03\n", - " 0.055470\n", - " 0.067581\n", - " 0.060719\n", - " 0.046946\n", - " 0.049104\n", + " 20394113\n", + " 1.7197135175610079\n", + " 0.0531703189382527\n", + " 1.2591698410405677e-08\n", + " 0.0733626055289818\n", + " 0.07902737580492676\n", + " 0.07567171610839929\n", + " 0.06786373005464445\n", + " 0.05314587328152441\n", " \n", " \n", " US25746U1097\n", " Dominion Energy\n", " ILUL7B6Z54MRYCF6H308\n", - " 50000\n", - " 1.743513\n", - " 0.044705\n", - " 9.386318e-02\n", - " 0.182473\n", - " 0.176783\n", - " 0.192278\n", - " 0.097435\n", - " 0.065295\n", + " 33528082\n", + " 1.6421622410252814\n", + " 0.08347051846507961\n", + " 3.14248738011264e-07\n", + " 0.14925655201730625\n", + " 0.15010182616211487\n", + " 0.1493324514553829\n", + " 0.11584362182232663\n", + " 0.06688534526952991\n", " \n", " \n", " US2333311072\n", " DTE Energy\n", " 549300IX8SD6XXD71I78\n", - " 50000\n", - " 2.574596\n", - " 0.066015\n", - " 1.190595e-01\n", - " 0.081232\n", - " 0.097943\n", - " 0.085815\n", - " 0.058576\n", - " 0.084823\n", + " 14329945\n", + " 2.494203358852266\n", + " 0.054185704264262134\n", + " 4.099910696471906e-07\n", + " 0.0844635815144744\n", + " 0.09476515956854094\n", + " 0.08462019002077521\n", + " 0.07097767408945654\n", + " 0.07766300356121279\n", " \n", " \n", " US26441C2044\n", " Duke Energy Corp.\n", " I1BZKREC126H0VB1BL91\n", - " 50000\n", - " 1.960795\n", - " 0.050277\n", - " 2.807392e-01\n", - " 0.177112\n", - " 0.249258\n", - " 0.187246\n", - " 0.167642\n", - " 0.127880\n", + " 73069652\n", + " 1.8259317788445726\n", + " 0.20226927849518375\n", + " 9.29026546418335e-07\n", + " 0.17193009401045845\n", + " 0.22155105310535217\n", + " 0.17238886319907545\n", + " 0.1970613477213826\n", + " 0.11254721411236115\n", + " \n", + " \n", + " US283677AZ52\n", + " El Paso Electric Co\n", + " OZ8GM8L4AHPKSWZMW205\n", + " 2646941\n", + " 1.864862725462496\n", + " 0.007483408770370701\n", + " 3.429901756307964e-08\n", + " 0.007206687865731673\n", + " 0.007350616245331298\n", + " 0.007220609667618246\n", + " 0.0048316886860380335\n", + " 0.003950855064002835\n", " \n", " \n", " US29364G1031\n", " Entergy Corp.\n", " 4XM3TW50JULSLG8BNC79\n", - " 50000\n", - " 1.262227\n", - " 0.032365\n", - " 7.187317e-02\n", - " 0.036523\n", - " 0.049461\n", - " 0.039278\n", - " 0.035142\n", - " 0.035709\n", + " 29844269\n", + " 1.727230341297715\n", + " 0.07814830149463829\n", + " 3.4959645003586115e-07\n", + " 0.05190745937361752\n", + " 0.06458856665766571\n", + " 0.05287080443504319\n", + " 0.06070215564531642\n", + " 0.046181301440845035\n", " \n", " \n", " US30034W1062\n", " Evergy, Inc.\n", " 549300PGTHDQY6PSUI61\n", - " 50000\n", - " 2.519427\n", - " 0.064601\n", - " 1.154258e-01\n", - " 0.052000\n", - " 0.058373\n", - " 0.054780\n", - " 0.035226\n", - " 0.033728\n", + " 18254954\n", + " 2.1869485449964037\n", + " 0.06052400340167886\n", + " 3.5614524723693755e-07\n", + " 0.045326633364450857\n", + " 0.04777411915987389\n", + " 0.045302805246517155\n", + " 0.03859860953695048\n", + " 0.02766943029282214\n", " \n", " \n", " US30040W1080\n", " Eversource Energy\n", " SJ7XXD41SQU3ZNWUJ746\n", - " 50000\n", - " 1.262227\n", - " 0.032365\n", - " 4.783859e-07\n", - " 0.055359\n", - " 0.055826\n", - " 0.058250\n", - " 0.027940\n", - " 0.027988\n", + " 18962480\n", + " 1.2636355763883802\n", + " 0.03632664747179234\n", + " 1.7023588038521205e-12\n", + " 0.045360009814775525\n", + " 0.046175243275212934\n", + " 0.045290416308094134\n", + " 0.03530846103939446\n", + " 0.026480799897099\n", " \n", " \n", " US3379321074\n", " FirstEnergy Corp.\n", " 549300SVYJS666PQJH88\n", - " 50000\n", - " 2.725257\n", - " 0.069878\n", - " 8.684604e-02\n", - " 0.087946\n", - " 0.113992\n", - " 0.095254\n", - " 0.062052\n", - " 0.078206\n", + " 27277340\n", + " 3.4408564514595774\n", + " 0.14229082940670418\n", + " 3.897594054855418e-07\n", + " 0.11462889184363255\n", + " 0.13715660868982169\n", + " 0.1175368082535572\n", + " 0.0988962172735531\n", + " 0.09332089148551007\n", " \n", " \n", " CA3495531079\n", - " Fortis, Inc.\n", + " Fortis, Inc\n", " 549300MQYQ9Y065XPR71\n", - " 50000\n", - " 2.126674\n", - " 0.054530\n", - " 3.330246e-02\n", - " NaN\n", - " NaN\n", - " NaN\n", - " 0.046888\n", - " 0.037256\n", - " \n", - " \n", - " US4198701009\n", - " Hawaiian Electric Industries, Inc.\n", - " JJ8FWOCWCV22X7GUPJ23\n", - " 50000\n", - " 2.049170\n", - " 0.052543\n", - " 1.396500e-02\n", - " 0.012417\n", - " 0.012237\n", - " 0.013711\n", - " 0.015161\n", - " 0.015315\n", + " 12428756\n", + " 2.8403172973777053\n", + " 0.05351836779325424\n", + " 1.519730021856325e-07\n", + " nan\n", + " nan\n", + " nan\n", + " 0.07911656908686812\n", + " 0.0470667310963962\n", " \n", " \n", " US6362744095\n", - " National Grid PLC\n", + " National Grid plc\n", " 8R95QZMKZLJX5Q2XR704\n", - " 50000\n", - " 1.972486\n", - " 0.050577\n", - " 8.201740e-03\n", - " 0.134077\n", - " NaN\n", - " 0.142046\n", - " 0.086817\n", - " 0.099479\n", + " 12281584\n", + " 2.5302066248940553\n", + " 0.047110608148483515\n", + " 3.640382115837752e-08\n", + " 0.15127568349562315\n", + " nan\n", + " 0.15215975540910204\n", + " 0.14057664279423704\n", + " 0.12060139050049665\n", " \n", " \n", " US6680743050\n", - " Northwestern Corp.\n", + " NorthWestern Corp.\n", " 3BPWMBHR1R9SHUN7J795\n", - " 50000\n", - " 1.760193\n", - " 0.045133\n", - " 7.643218e-03\n", - " 0.007470\n", - " 0.009524\n", - " 0.007870\n", - " 0.005764\n", - " 0.005758\n", + " 2703150\n", + " 2.235303301117127\n", + " 0.009160410677781903\n", + " 3.6548819631302805e-08\n", + " 0.011926077613739264\n", + " 0.012924704639595212\n", + " 0.011917103321524023\n", + " 0.008977140347481906\n", + " 0.006910763261421611\n", " \n", " \n", " US6708371033\n", - " OG&E Energy Corp.\n", + " OG&E Energy\n", " CE5OG6JPOZMDSA0LAQ19\n", - " 50000\n", - " 2.600624\n", - " 0.066683\n", - " 4.494730e-02\n", - " 0.024324\n", - " NaN\n", - " NaN\n", - " 0.015432\n", - " 0.015092\n", + " 7251242\n", + " 2.572462385836689\n", + " 0.028279372708084515\n", + " 1.5803838520201566e-07\n", + " 0.03212831171274878\n", + " nan\n", + " nan\n", + " 0.019269149564939952\n", + " 0.014109296911343806\n", " \n", " \n", " US6896481032\n", " Otter Tail Corp.\n", " 549300HHVBQRQUVKKD91\n", - " 50000\n", - " 2.709576\n", - " 0.069476\n", - " 1.208879e-02\n", - " 0.006449\n", - " 0.006300\n", - " 0.006875\n", - " 0.003316\n", - " 0.006479\n", - " \n", - " \n", - " US69331C1080\n", - " PG&E Corp.\n", - " 1HNPXZSMMB7HMBMVBS46\n", - " 50000\n", - " 1.333378\n", - " 0.034189\n", - " 5.576292e-03\n", - " 0.024893\n", - " 0.017154\n", - " 0.029567\n", - " 0.061146\n", - " 0.059395\n", + " 1264277\n", + " 2.9694066480437593\n", + " 0.0056914149829881515\n", + " 4.7091070069869694e-08\n", + " 0.008880331745854566\n", + " 0.007702315685602822\n", + " 0.008953203650381842\n", + " 0.004587174627040453\n", + " 0.0067106225780971685\n", " \n", " \n", " US7234841010\n", " Pinnacle West Capital Corp.\n", " TWSEY0NEDUDCKS27AH81\n", - " 50000\n", - " 1.841268\n", - " 0.047212\n", - " 3.326892e-02\n", - " 0.023328\n", - " 0.027785\n", - " 0.024563\n", - " 0.018315\n", - " 0.016621\n", + " 12058547\n", + " 2.086103530593631\n", + " 0.0381363546476481\n", + " 1.3398156342413038e-07\n", + " 0.0322213776799511\n", + " 0.03332942990290081\n", + " 0.03218305838813145\n", + " 0.02619284180162325\n", + " 0.017797401906124867\n", " \n", " \n", " US69349H1077\n", " PNM Resources, Inc.\n", " 5493003JOBJGLZSDDQ28\n", - " 50000\n", - " 1.896564\n", - " 0.048630\n", - " 1.743624e-02\n", - " 0.008938\n", - " 0.011069\n", - " 0.009411\n", - " 0.007451\n", - " 0.007189\n", + " 3326899\n", + " 2.013668347320406\n", + " 0.010156308848237565\n", + " 6.580530342148538e-08\n", + " 0.01197077404907257\n", + " 0.012639253078697257\n", + " 0.01195617040266632\n", + " 0.009986202103731528\n", + " 0.00721385126240408\n", " \n", " \n", " US7365088472\n", " Portland General Electric Co.\n", " GJOUP9M7C39GLSK9R870\n", - " 50000\n", - " 1.854606\n", - " 0.047554\n", - " 2.421048e-02\n", - " 0.010635\n", - " NaN\n", - " NaN\n", - " 0.008379\n", - " 0.010239\n", + " 5770964\n", + " 1.8706266553608955\n", + " 0.01636604808107313\n", + " 8.680131385312401e-08\n", + " 0.013227637419492053\n", + " 0.014000404723625308\n", + " 0.013281115197873679\n", + " 0.010668873721131752\n", + " 0.009760613126775643\n", " \n", " \n", " US69351T1060\n", - " PPL Corp.\n", + " PPL\n", " 9N3UAJSNOUXFKQLF3V18\n", - " 50000\n", - " 3.059505\n", - " 0.078449\n", - " 1.508039e-01\n", - " 0.093543\n", - " 0.131127\n", - " 0.102410\n", - " 0.075227\n", - " 0.061813\n", + " 18146577\n", + " 2.6346104815070195\n", + " 0.07248021455222131\n", + " 4.615993605738829e-07\n", + " 0.08645396244422032\n", + " 0.10941513137405769\n", + " 0.08940788996261194\n", + " 0.08177207191530365\n", + " 0.05030620119633238\n", " \n", " \n", " US7445731067\n", " Public Service Enterprise Group\n", " PUSS41EMO3E6XXNV3U28\n", - " 50000\n", - " 1.262227\n", - " 0.032365\n", - " 2.501795e-02\n", - " 0.047884\n", - " 0.054469\n", - " 0.050657\n", - " 0.032428\n", - " 0.033074\n", + " 16912134\n", + " 1.4434071117060308\n", + " 0.03700799790772644\n", + " 1.0168628604665428e-07\n", + " 0.06245019087418841\n", + " 0.0635679978881717\n", + " 0.0626254824927157\n", + " 0.04681044465151272\n", + " 0.03574513867355394\n", " \n", " \n", " US8168511090\n", - " Sempra\n", + " Sempra Energy\n", " PBBKGKLRK5S5C0Y4T545\n", - " 50000\n", - " 1.364717\n", - " 0.034993\n", - " 1.157839e-03\n", - " 0.072045\n", - " 0.078538\n", - " 0.076004\n", - " 0.048236\n", - " 0.038432\n", + " 29579515\n", + " 1.8683533328964472\n", + " 0.08378348075446392\n", + " 5.634458021974756e-09\n", + " 0.10325854818136664\n", + " 0.10421959985473984\n", + " 0.10333035558010317\n", + " 0.08335956719180115\n", + " 0.04972643805524998\n", " \n", " \n", " US8425871071\n", " Southern Co.\n", " 549300FC3G3YU2FBZD92\n", - " 50000\n", - " 2.249758\n", - " 0.057686\n", - " 2.444344e-01\n", - " 0.189750\n", - " 0.222838\n", - " 0.206741\n", - " 0.143742\n", - " 0.132199\n", - " \n", - " \n", - " CA87807B1076\n", - " TC Energy Corp.\n", - " 549300UGKOFV2IWJJG27\n", - " 50000\n", - " 1.262227\n", - " 0.032365\n", - " 1.261891e-03\n", - " NaN\n", - " NaN\n", - " NaN\n", - " 0.051735\n", - " 0.033371\n", - " \n", - " \n", - " US92840M1027\n", - " Vistra Corp.\n", - " 549300KP43CPCUJOOG15\n", - " 50000\n", - " 1.262227\n", - " 0.032365\n", - " 1.478947e-02\n", - " 0.017648\n", - " 0.024954\n", - " 0.019173\n", - " 0.018083\n", - " 0.038762\n", + " 50294245\n", + " 1.9963792988066478\n", + " 0.1522192893311671\n", + " 7.710068482171507e-07\n", + " 0.16915956105446733\n", + " 0.18622750506679941\n", + " 0.1745612532143091\n", + " 0.16101126726344764\n", + " 0.10509504376408856\n", " \n", " \n", " US92939U1060\n", " WEC Energy Group\n", " 549300IGLYTZUK3PVP70\n", - " 50000\n", - " 2.462315\n", - " 0.063136\n", - " 4.164368e-02\n", - " 0.104597\n", - " 0.101608\n", - " 0.110148\n", - " 0.046324\n", - " 0.048173\n", + " 11046675\n", + " 2.11253492554515\n", + " 0.03537885829457992\n", + " 1.2699795919947189e-07\n", + " 0.08144891426414327\n", + " 0.07695104488519561\n", + " 0.08138861437944513\n", + " 0.050169056739773205\n", + " 0.03906076269591012\n", " \n", " \n", " US98389B1008\n", " Xcel Energy, Inc.\n", " LGJNMI9GH8XIDG5RCM61\n", - " 50000\n", - " 1.866682\n", - " 0.047864\n", - " 1.379593e-01\n", - " 0.094307\n", - " NaN\n", - " NaN\n", - " 0.050689\n", - " 0.055966\n", + " 27475073\n", + " 1.8665476973515542\n", + " 0.07774747374617197\n", + " 4.710003986931088e-07\n", + " 0.08381128240682202\n", + " 0.0902630207506063\n", + " 0.08430712540675832\n", + " 0.06398019170908303\n", + " 0.05288965305341673\n", + " \n", + " \n", + " US1442851036\n", + " CARPENTER TECHNOLOGY CORP\n", + " DX6I6ZD3X5WNNCDJKP85\n", + " 10000000\n", + " 1.9900906690954119\n", + " 0.030170409339518933\n", + " 0.011607472600352978\n", + " 0.004922291988089818\n", + " 0.004204096572007335\n", + " 0.004990244394801827\n", + " 0.004310487808706214\n", + " 0.011641965312984528\n", + " \n", + " \n", + " US2017231034\n", + " COMMERCIAL METALS CO\n", + " 549300OQS2LO07ZJ7N73\n", + " 10000000\n", + " 1.2990617896624888\n", + " 0.019694191103996513\n", + " 0.020154780490691044\n", + " 0.003618337414588834\n", + " nan\n", + " nan\n", + " 0.0033177080579832835\n", + " 0.018610755334314076\n", + " \n", + " \n", + " US3737371050\n", + " GERDAU S.A.\n", + " 254900YDV6SEQQPZVG24\n", + " 10000000\n", + " 1.375590655258247\n", + " 0.020854393117486963\n", + " 0.10005546157880678\n", + " nan\n", + " nan\n", + " nan\n", + " 0.01252243765842747\n", + " 0.03325265337048597\n", + " \n", + " \n", + " US6703461052\n", + " NUCOR CORP\n", + " 549300GGJCRSI2TIEJ46\n", + " 10000000\n", + " 1.315430185746877\n", + " 0.019942341209801415\n", + " 0.07848167099244932\n", + " 0.03197260211182495\n", + " 0.024305171544838817\n", + " 0.03485634781003422\n", + " 0.016396082842808767\n", + " 0.07303012863213186\n", + " \n", + " \n", + " KR7005490008\n", + " POSCO\n", + " 988400E5HRVX81AYLM04\n", + " 10000000\n", + " 1.5593142658365693\n", + " 0.023639701657726442\n", + " 0.7619530611957582\n", + " nan\n", + " nan\n", + " nan\n", + " 0.07263123014493186\n", + " 0.21444667139178533\n", + " \n", + " \n", + " US8581191009\n", + " STEEL DYNAMICS INC\n", + " 549300HGGKEL4FYTTQ83\n", + " 10000000\n", + " 1.3158777300113855\n", + " 0.019949126123608336\n", + " 0.039172201098130216\n", + " 0.009645199046956762\n", + " 0.007987945257169369\n", + " 0.012283462287977612\n", + " 0.007399224052972695\n", + " 0.033844989431466715\n", + " \n", + " \n", + " US88031M1099\n", + " TENARIS SA\n", + " 549300Y7C05BKC4HZB40\n", + " 10000000\n", + " 1.3632817562247952\n", + " 0.020667786281866326\n", + " 0.021579100261655475\n", + " nan\n", + " nan\n", + " nan\n", + " 0.013748950184392398\n", + " 0.024439630936756346\n", + " \n", + " \n", + " US8808901081\n", + " TERNIUM S.A.\n", + " 529900QG4KU23TEI2E46\n", + " 10000000\n", + " 1.5265556596582406\n", + " 0.02314307073877363\n", + " 0.1656445290791045\n", + " nan\n", + " nan\n", + " nan\n", + " 0.013417124921380242\n", + " 0.03824255500688262\n", + " \n", + " \n", + " US8873991033\n", + " TIMKENSTEEL CORP\n", + " 549300QZTZWHDE9HJL14\n", + " 10000000\n", + " 1.2939425547566503\n", + " 0.019616581869898397\n", + " 0.003395288672058109\n", + " 0.0006402471902290573\n", + " 0.0004950917770041775\n", + " 0.0006901566101955718\n", + " 0.0009540854493255154\n", + " 0.0038442306237322942\n", + " \n", + " \n", + " US9129091081\n", + " UNITED STATES STEEL CORP\n", + " JNLUVFYJT1OZSIQ24U47\n", + " 10000000\n", + " 1.5154085205221834\n", + " 0.022974076553773867\n", + " 0.3016836955421658\n", + " 0.005776020500960534\n", + " 0.008152423592683745\n", + " 0.007423865256675461\n", + " 0.011952248543683201\n", + " 0.04818404875572425\n", + " \n", + " \n", + " US9818111026\n", + " WORTHINGTON INDUSTRIES INC\n", + " 1WRCIANKYOIK6KYE5E82\n", + " 10000000\n", + " 1.26782307131814\n", + " 0.0192206021694183\n", + " 0.0022773902818980568\n", + " 0.0030357823938668522\n", + " 0.002779215292872067\n", + " 0.003200509556000493\n", + " 0.0021628807238201053\n", + " 0.011714808549532102\n", " \n", " \n", "\n", "" ], "text/plain": [ - " company_name company_lei \\\n", - "company_id \n", - "US00130H1059 AES Corp. 2NUNNB7D43COUIRE5295 \n", - "US0138721065 Alcoa Corp. 549300T12EZ1F6PWWU29 \n", - "US0158577090 Algonquin Power & Utilities Corp. 549300K5VIUTJXQL7X75 \n", - "US0185223007 ALLETE, Inc. 549300NNLSIMY6Z8OT86 \n", - "US0188021085 Alliant Energy 5493009ML300G373MZ12 \n", - "US0236081024 Ameren Corp. XRZQ5S7HYJFPHJ78L959 \n", - "US0255371017 American Electric Power Co., Inc. 1B4S6S7G0TW5EE83BO58 \n", - "US05351W1036 Avangrid, Inc. 549300OX0Q38NLSKPB49 \n", - "US05379B1070 Avista Corp. Q0IK63NITJD6RJ47SW96 \n", - "US0921131092 Black Hills Corp. 3MGELCRSTNSAMJ962671 \n", - "CA1125851040 Brookfield Asset Management C6J3FGIWG6MBDGTE8F80 \n", - "US18551QAA58 Cleco Partners LP 5493002H80P81B3HXL31 \n", - "US1258961002 CMS Energy Corp. 549300IA9XFBAGNIBW29 \n", - "US2091151041 Consolidated Edison, Inc. 54930033SBW53OO8T749 \n", - "US25746U1097 Dominion Energy ILUL7B6Z54MRYCF6H308 \n", - "US2333311072 DTE Energy 549300IX8SD6XXD71I78 \n", - "US26441C2044 Duke Energy Corp. I1BZKREC126H0VB1BL91 \n", - "US29364G1031 Entergy Corp. 4XM3TW50JULSLG8BNC79 \n", - "US30034W1062 Evergy, Inc. 549300PGTHDQY6PSUI61 \n", - "US30040W1080 Eversource Energy SJ7XXD41SQU3ZNWUJ746 \n", - "US3379321074 FirstEnergy Corp. 549300SVYJS666PQJH88 \n", - "CA3495531079 Fortis, Inc. 549300MQYQ9Y065XPR71 \n", - "US4198701009 Hawaiian Electric Industries, Inc. JJ8FWOCWCV22X7GUPJ23 \n", - "US6362744095 National Grid PLC 8R95QZMKZLJX5Q2XR704 \n", - "US6680743050 Northwestern Corp. 3BPWMBHR1R9SHUN7J795 \n", - "US6708371033 OG&E Energy Corp. CE5OG6JPOZMDSA0LAQ19 \n", - "US6896481032 Otter Tail Corp. 549300HHVBQRQUVKKD91 \n", - "US69331C1080 PG&E Corp. 1HNPXZSMMB7HMBMVBS46 \n", - "US7234841010 Pinnacle West Capital Corp. TWSEY0NEDUDCKS27AH81 \n", - "US69349H1077 PNM Resources, Inc. 5493003JOBJGLZSDDQ28 \n", - "US7365088472 Portland General Electric Co. GJOUP9M7C39GLSK9R870 \n", - "US69351T1060 PPL Corp. 9N3UAJSNOUXFKQLF3V18 \n", - "US7445731067 Public Service Enterprise Group PUSS41EMO3E6XXNV3U28 \n", - "US8168511090 Sempra PBBKGKLRK5S5C0Y4T545 \n", - "US8425871071 Southern Co. 549300FC3G3YU2FBZD92 \n", - "CA87807B1076 TC Energy Corp. 549300UGKOFV2IWJJG27 \n", - "US92840M1027 Vistra Corp. 549300KP43CPCUJOOG15 \n", - "US92939U1060 WEC Energy Group 549300IGLYTZUK3PVP70 \n", - "US98389B1008 Xcel Energy, Inc. LGJNMI9GH8XIDG5RCM61 \n", + " company_name company_lei \\\n", + "company_id \n", + "US00130H1059 AES Corp. 2NUNNB7D43COUIRE5295 \n", + "US0158577090 Algonquin Power & Utilities Corp. 549300K5VIUTJXQL7X75 \n", + "US0185223007 ALLETE, Inc. 549300NNLSIMY6Z8OT86 \n", + "US0188021085 Alliant Energy 5493009ML300G373MZ12 \n", + "US0236081024 Ameren Corp. XRZQ5S7HYJFPHJ78L959 \n", + "US0255371017 American Electric Power Co., Inc. 1B4S6S7G0TW5EE83BO58 \n", + "US05351W1036 Avangrid, Inc. 549300OX0Q38NLSKPB49 \n", + "US05379B1070 Avista Corp. Q0IK63NITJD6RJ47SW96 \n", + "US18551QAA58 Cleco Partners LP 5493002H80P81B3HXL31 \n", + "US1258961002 CMS Energy 549300IA9XFBAGNIBW29 \n", + "US2091151041 Consolidated Edison, Inc. 54930033SBW53OO8T749 \n", + "US25746U1097 Dominion Energy ILUL7B6Z54MRYCF6H308 \n", + "US2333311072 DTE Energy 549300IX8SD6XXD71I78 \n", + "US26441C2044 Duke Energy Corp. I1BZKREC126H0VB1BL91 \n", + "US283677AZ52 El Paso Electric Co OZ8GM8L4AHPKSWZMW205 \n", + "US29364G1031 Entergy Corp. 4XM3TW50JULSLG8BNC79 \n", + "US30034W1062 Evergy, Inc. 549300PGTHDQY6PSUI61 \n", + "US30040W1080 Eversource Energy SJ7XXD41SQU3ZNWUJ746 \n", + "US3379321074 FirstEnergy Corp. 549300SVYJS666PQJH88 \n", + "CA3495531079 Fortis, Inc 549300MQYQ9Y065XPR71 \n", + "US6362744095 National Grid plc 8R95QZMKZLJX5Q2XR704 \n", + "US6680743050 NorthWestern Corp. 3BPWMBHR1R9SHUN7J795 \n", + "US6708371033 OG&E Energy CE5OG6JPOZMDSA0LAQ19 \n", + "US6896481032 Otter Tail Corp. 549300HHVBQRQUVKKD91 \n", + "US7234841010 Pinnacle West Capital Corp. TWSEY0NEDUDCKS27AH81 \n", + "US69349H1077 PNM Resources, Inc. 5493003JOBJGLZSDDQ28 \n", + "US7365088472 Portland General Electric Co. GJOUP9M7C39GLSK9R870 \n", + "US69351T1060 PPL 9N3UAJSNOUXFKQLF3V18 \n", + "US7445731067 Public Service Enterprise Group PUSS41EMO3E6XXNV3U28 \n", + "US8168511090 Sempra Energy PBBKGKLRK5S5C0Y4T545 \n", + "US8425871071 Southern Co. 549300FC3G3YU2FBZD92 \n", + "US92939U1060 WEC Energy Group 549300IGLYTZUK3PVP70 \n", + "US98389B1008 Xcel Energy, Inc. LGJNMI9GH8XIDG5RCM61 \n", + "US1442851036 CARPENTER TECHNOLOGY CORP DX6I6ZD3X5WNNCDJKP85 \n", + "US2017231034 COMMERCIAL METALS CO 549300OQS2LO07ZJ7N73 \n", + "US3737371050 GERDAU S.A. 254900YDV6SEQQPZVG24 \n", + "US6703461052 NUCOR CORP 549300GGJCRSI2TIEJ46 \n", + "KR7005490008 POSCO 988400E5HRVX81AYLM04 \n", + "US8581191009 STEEL DYNAMICS INC 549300HGGKEL4FYTTQ83 \n", + "US88031M1099 TENARIS SA 549300Y7C05BKC4HZB40 \n", + "US8808901081 TERNIUM S.A. 529900QG4KU23TEI2E46 \n", + "US8873991033 TIMKENSTEEL CORP 549300QZTZWHDE9HJL14 \n", + "US9129091081 UNITED STATES STEEL CORP JNLUVFYJT1OZSIQ24U47 \n", + "US9818111026 WORTHINGTON INDUSTRIES INC 1WRCIANKYOIK6KYE5E82 \n", + "\n", + " investment_value pa_score WATS_weight \\\n", + "company_id \n", + "US00130H1059 4351252 2.106926870694208 0.013898631388198987 \n", + "US0158577090 2228185 1.2623320662937099 0.004264157132071172 \n", + "US0185223007 3829481 2.043793289146705 0.011865477687998862 \n", + "US0188021085 3829481 1.867044766546712 0.010839343752422344 \n", + "US0236081024 15917812 2.404261301598871 0.058019419115953846 \n", + "US0255371017 45520637 2.1814181749376793 0.15054127748946447 \n", + "US05351W1036 10049068 1.624145450892199 0.024743381095553976 \n", + "US05379B1070 2804211 1.7099274356102043 0.0072693688934764664 \n", + "US18551QAA58 3086052 2.280309768660802 0.01066855072571053 \n", + "US1258961002 9153135 2.1320023723934343 0.02958461286148185 \n", + "US2091151041 20394113 1.7197135175610079 0.0531703189382527 \n", + "US25746U1097 33528082 1.6421622410252814 0.08347051846507961 \n", + "US2333311072 14329945 2.494203358852266 0.054185704264262134 \n", + "US26441C2044 73069652 1.8259317788445726 0.20226927849518375 \n", + "US283677AZ52 2646941 1.864862725462496 0.007483408770370701 \n", + "US29364G1031 29844269 1.727230341297715 0.07814830149463829 \n", + "US30034W1062 18254954 2.1869485449964037 0.06052400340167886 \n", + "US30040W1080 18962480 1.2636355763883802 0.03632664747179234 \n", + "US3379321074 27277340 3.4408564514595774 0.14229082940670418 \n", + "CA3495531079 12428756 2.8403172973777053 0.05351836779325424 \n", + "US6362744095 12281584 2.5302066248940553 0.047110608148483515 \n", + "US6680743050 2703150 2.235303301117127 0.009160410677781903 \n", + "US6708371033 7251242 2.572462385836689 0.028279372708084515 \n", + "US6896481032 1264277 2.9694066480437593 0.0056914149829881515 \n", + "US7234841010 12058547 2.086103530593631 0.0381363546476481 \n", + "US69349H1077 3326899 2.013668347320406 0.010156308848237565 \n", + "US7365088472 5770964 1.8706266553608955 0.01636604808107313 \n", + "US69351T1060 18146577 2.6346104815070195 0.07248021455222131 \n", + "US7445731067 16912134 1.4434071117060308 0.03700799790772644 \n", + "US8168511090 29579515 1.8683533328964472 0.08378348075446392 \n", + "US8425871071 50294245 1.9963792988066478 0.1522192893311671 \n", + "US92939U1060 11046675 2.11253492554515 0.03537885829457992 \n", + "US98389B1008 27475073 1.8665476973515542 0.07774747374617197 \n", + "US1442851036 10000000 1.9900906690954119 0.030170409339518933 \n", + "US2017231034 10000000 1.2990617896624888 0.019694191103996513 \n", + "US3737371050 10000000 1.375590655258247 0.020854393117486963 \n", + "US6703461052 10000000 1.315430185746877 0.019942341209801415 \n", + "KR7005490008 10000000 1.5593142658365693 0.023639701657726442 \n", + "US8581191009 10000000 1.3158777300113855 0.019949126123608336 \n", + "US88031M1099 10000000 1.3632817562247952 0.020667786281866326 \n", + "US8808901081 10000000 1.5265556596582406 0.02314307073877363 \n", + "US8873991033 10000000 1.2939425547566503 0.019616581869898397 \n", + "US9129091081 10000000 1.5154085205221834 0.022974076553773867 \n", + "US9818111026 10000000 1.26782307131814 0.0192206021694183 \n", + "\n", + " TETS_weight MOTS_weight \\\n", + "company_id \n", + "US00130H1059 1.4900271821443577e-07 0.03357412161990311 \n", + "US0158577090 4.162829462365117e-12 nan \n", + "US0185223007 5.2549678751293906e-08 0.012839373901951686 \n", + "US0188021085 1.261547907437679e-07 0.03174960844912046 \n", + "US0236081024 3.4265102068870053e-07 0.06477745482537144 \n", + "US0255371017 7.719971932013753e-07 0.139082507959553 \n", + "US05351W1036 2.5939403676600244e-10 0.00675237883315782 \n", + "US05379B1070 2.5464088060658733e-08 0.007391183784912206 \n", + "US18551QAA58 1.1727968749659209e-07 nan \n", + "US1258961002 1.624135308468388e-07 0.05110745034256367 \n", + "US2091151041 1.2591698410405677e-08 0.0733626055289818 \n", + "US25746U1097 3.14248738011264e-07 0.14925655201730625 \n", + "US2333311072 4.099910696471906e-07 0.0844635815144744 \n", + "US26441C2044 9.29026546418335e-07 0.17193009401045845 \n", + "US283677AZ52 3.429901756307964e-08 0.007206687865731673 \n", + "US29364G1031 3.4959645003586115e-07 0.05190745937361752 \n", + "US30034W1062 3.5614524723693755e-07 0.045326633364450857 \n", + "US30040W1080 1.7023588038521205e-12 0.045360009814775525 \n", + "US3379321074 3.897594054855418e-07 0.11462889184363255 \n", + "CA3495531079 1.519730021856325e-07 nan \n", + "US6362744095 3.640382115837752e-08 0.15127568349562315 \n", + "US6680743050 3.6548819631302805e-08 0.011926077613739264 \n", + "US6708371033 1.5803838520201566e-07 0.03212831171274878 \n", + "US6896481032 4.7091070069869694e-08 0.008880331745854566 \n", + "US7234841010 1.3398156342413038e-07 0.0322213776799511 \n", + "US69349H1077 6.580530342148538e-08 0.01197077404907257 \n", + "US7365088472 8.680131385312401e-08 0.013227637419492053 \n", + "US69351T1060 4.615993605738829e-07 0.08645396244422032 \n", + "US7445731067 1.0168628604665428e-07 0.06245019087418841 \n", + "US8168511090 5.634458021974756e-09 0.10325854818136664 \n", + "US8425871071 7.710068482171507e-07 0.16915956105446733 \n", + "US92939U1060 1.2699795919947189e-07 0.08144891426414327 \n", + "US98389B1008 4.710003986931088e-07 0.08381128240682202 \n", + "US1442851036 0.011607472600352978 0.004922291988089818 \n", + "US2017231034 0.020154780490691044 0.003618337414588834 \n", + "US3737371050 0.10005546157880678 nan \n", + "US6703461052 0.07848167099244932 0.03197260211182495 \n", + "KR7005490008 0.7619530611957582 nan \n", + "US8581191009 0.039172201098130216 0.009645199046956762 \n", + "US88031M1099 0.021579100261655475 nan \n", + "US8808901081 0.1656445290791045 nan \n", + "US8873991033 0.003395288672058109 0.0006402471902290573 \n", + "US9129091081 0.3016836955421658 0.005776020500960534 \n", + "US9818111026 0.0022773902818980568 0.0030357823938668522 \n", "\n", - " investment_value pa_score WATS_weight TETS_weight \\\n", - "company_id \n", - "US00130H1059 50000 2.105909 0.053998 4.326361e-02 \n", - "US0138721065 50000 1.262227 0.032365 0.000000e+00 \n", - "US0158577090 50000 1.262227 0.032365 7.193075e-03 \n", - "US0185223007 50000 2.063224 0.052903 1.548850e-02 \n", - "US0188021085 50000 1.987187 0.050954 3.771644e-02 \n", - "US0236081024 50000 2.421983 0.062102 9.710672e-02 \n", - "US0255371017 50000 2.268167 0.058158 2.332623e-01 \n", - "US05351W1036 50000 1.299655 0.033324 5.779251e-05 \n", - "US05379B1070 50000 1.262227 0.032365 5.288110e-03 \n", - "US0921131092 50000 2.044967 0.052435 1.002040e-02 \n", - "CA1125851040 50000 1.262227 0.032365 0.000000e+00 \n", - "US18551QAA58 50000 1.262227 0.032365 1.826329e-02 \n", - "US1258961002 50000 2.020682 0.051812 4.330570e-02 \n", - "US2091151041 50000 1.501692 0.038505 3.093297e-03 \n", - "US25746U1097 50000 1.743513 0.044705 9.386318e-02 \n", - "US2333311072 50000 2.574596 0.066015 1.190595e-01 \n", - "US26441C2044 50000 1.960795 0.050277 2.807392e-01 \n", - "US29364G1031 50000 1.262227 0.032365 7.187317e-02 \n", - "US30034W1062 50000 2.519427 0.064601 1.154258e-01 \n", - "US30040W1080 50000 1.262227 0.032365 4.783859e-07 \n", - "US3379321074 50000 2.725257 0.069878 8.684604e-02 \n", - "CA3495531079 50000 2.126674 0.054530 3.330246e-02 \n", - "US4198701009 50000 2.049170 0.052543 1.396500e-02 \n", - "US6362744095 50000 1.972486 0.050577 8.201740e-03 \n", - "US6680743050 50000 1.760193 0.045133 7.643218e-03 \n", - "US6708371033 50000 2.600624 0.066683 4.494730e-02 \n", - "US6896481032 50000 2.709576 0.069476 1.208879e-02 \n", - "US69331C1080 50000 1.333378 0.034189 5.576292e-03 \n", - "US7234841010 50000 1.841268 0.047212 3.326892e-02 \n", - "US69349H1077 50000 1.896564 0.048630 1.743624e-02 \n", - "US7365088472 50000 1.854606 0.047554 2.421048e-02 \n", - "US69351T1060 50000 3.059505 0.078449 1.508039e-01 \n", - "US7445731067 50000 1.262227 0.032365 2.501795e-02 \n", - "US8168511090 50000 1.364717 0.034993 1.157839e-03 \n", - "US8425871071 50000 2.249758 0.057686 2.444344e-01 \n", - "CA87807B1076 50000 1.262227 0.032365 1.261891e-03 \n", - "US92840M1027 50000 1.262227 0.032365 1.478947e-02 \n", - "US92939U1060 50000 2.462315 0.063136 4.164368e-02 \n", - "US98389B1008 50000 1.866682 0.047864 1.379593e-01 \n", + " EOTS_weight ECOTS_weight \\\n", + "company_id \n", + "US00130H1059 0.020337868906115608 0.03667288993043838 \n", + "US0158577090 nan nan \n", + "US0185223007 0.011385162596862225 0.013018784526381704 \n", + "US0188021085 0.0330110683879106 0.03172544768591218 \n", + "US0236081024 0.06387775855844924 0.06469360527719219 \n", + "US0255371017 0.15303279317063806 0.13956919099354945 \n", + "US05351W1036 0.016801248692288422 0.007160665331019981 \n", + "US05379B1070 0.008035321000941292 0.007399948532530545 \n", + "US18551QAA58 nan nan \n", + "US1258961002 0.05737401152284647 0.05143351653370429 \n", + "US2091151041 0.07902737580492676 0.07567171610839929 \n", + "US25746U1097 0.15010182616211487 0.1493324514553829 \n", + "US2333311072 0.09476515956854094 0.08462019002077521 \n", + "US26441C2044 0.22155105310535217 0.17238886319907545 \n", + "US283677AZ52 0.007350616245331298 0.007220609667618246 \n", + "US29364G1031 0.06458856665766571 0.05287080443504319 \n", + "US30034W1062 0.04777411915987389 0.045302805246517155 \n", + "US30040W1080 0.046175243275212934 0.045290416308094134 \n", + "US3379321074 0.13715660868982169 0.1175368082535572 \n", + "CA3495531079 nan nan \n", + "US6362744095 nan 0.15215975540910204 \n", + "US6680743050 0.012924704639595212 0.011917103321524023 \n", + "US6708371033 nan nan \n", + "US6896481032 0.007702315685602822 0.008953203650381842 \n", + "US7234841010 0.03332942990290081 0.03218305838813145 \n", + "US69349H1077 0.012639253078697257 0.01195617040266632 \n", + "US7365088472 0.014000404723625308 0.013281115197873679 \n", + "US69351T1060 0.10941513137405769 0.08940788996261194 \n", + "US7445731067 0.0635679978881717 0.0626254824927157 \n", + "US8168511090 0.10421959985473984 0.10333035558010317 \n", + "US8425871071 0.18622750506679941 0.1745612532143091 \n", + "US92939U1060 0.07695104488519561 0.08138861437944513 \n", + "US98389B1008 0.0902630207506063 0.08430712540675832 \n", + "US1442851036 0.004204096572007335 0.004990244394801827 \n", + "US2017231034 nan nan \n", + "US3737371050 nan nan \n", + "US6703461052 0.024305171544838817 0.03485634781003422 \n", + "KR7005490008 nan nan \n", + "US8581191009 0.007987945257169369 0.012283462287977612 \n", + "US88031M1099 nan nan \n", + "US8808901081 nan nan \n", + "US8873991033 0.0004950917770041775 0.0006901566101955718 \n", + "US9129091081 0.008152423592683745 0.007423865256675461 \n", + "US9818111026 0.002779215292872067 0.003200509556000493 \n", "\n", - " MOTS_weight EOTS_weight ECOTS_weight AOTS_weight ROTS_weight \n", - "company_id \n", - "US00130H1059 0.030532 0.019073 0.035616 0.038141 0.055800 \n", - "US0138721065 0.004080 0.003992 0.006086 0.009940 0.034246 \n", - "US0158577090 NaN NaN NaN 0.007420 0.005339 \n", - "US0185223007 0.008971 0.009437 0.009666 0.006089 0.006656 \n", - "US0188021085 0.036396 0.039115 0.038327 0.017864 0.018852 \n", - "US0236081024 0.064485 0.066420 0.067878 0.037719 0.037224 \n", - "US0255371017 0.138065 0.164953 0.146101 0.092655 0.091788 \n", - "US05351W1036 0.004749 0.014100 0.005368 0.024061 0.021414 \n", - "US05379B1070 0.004801 0.005867 0.005069 0.004132 0.004417 \n", - "US0921131092 0.011106 0.014255 0.011712 0.008320 0.009226 \n", - "CA1125851040 NaN NaN NaN 0.220109 0.222636 \n", - "US18551QAA58 NaN NaN NaN 0.005079 0.005382 \n", - "US1258961002 0.051773 0.060195 0.054904 0.029190 0.035969 \n", - "US2091151041 0.055470 0.067581 0.060719 0.046946 0.049104 \n", - "US25746U1097 0.182473 0.176783 0.192278 0.097435 0.065295 \n", - "US2333311072 0.081232 0.097943 0.085815 0.058576 0.084823 \n", - "US26441C2044 0.177112 0.249258 0.187246 0.167642 0.127880 \n", - "US29364G1031 0.036523 0.049461 0.039278 0.035142 0.035709 \n", - "US30034W1062 0.052000 0.058373 0.054780 0.035226 0.033728 \n", - "US30040W1080 0.055359 0.055826 0.058250 0.027940 0.027988 \n", - "US3379321074 0.087946 0.113992 0.095254 0.062052 0.078206 \n", - "CA3495531079 NaN NaN NaN 0.046888 0.037256 \n", - "US4198701009 0.012417 0.012237 0.013711 0.015161 0.015315 \n", - "US6362744095 0.134077 NaN 0.142046 0.086817 0.099479 \n", - "US6680743050 0.007470 0.009524 0.007870 0.005764 0.005758 \n", - "US6708371033 0.024324 NaN NaN 0.015432 0.015092 \n", - "US6896481032 0.006449 0.006300 0.006875 0.003316 0.006479 \n", - "US69331C1080 0.024893 0.017154 0.029567 0.061146 0.059395 \n", - "US7234841010 0.023328 0.027785 0.024563 0.018315 0.016621 \n", - "US69349H1077 0.008938 0.011069 0.009411 0.007451 0.007189 \n", - "US7365088472 0.010635 NaN NaN 0.008379 0.010239 \n", - "US69351T1060 0.093543 0.131127 0.102410 0.075227 0.061813 \n", - "US7445731067 0.047884 0.054469 0.050657 0.032428 0.033074 \n", - "US8168511090 0.072045 0.078538 0.076004 0.048236 0.038432 \n", - "US8425871071 0.189750 0.222838 0.206741 0.143742 0.132199 \n", - "CA87807B1076 NaN NaN NaN 0.051735 0.033371 \n", - "US92840M1027 0.017648 0.024954 0.019173 0.018083 0.038762 \n", - "US92939U1060 0.104597 0.101608 0.110148 0.046324 0.048173 \n", - "US98389B1008 0.094307 NaN NaN 0.050689 0.055966 " + " AOTS_weight ROTS_weight \n", + "company_id \n", + "US00130H1059 0.04816939688533329 0.05276197099873813 \n", + "US0158577090 0.009358782813005341 0.0050413384247108275 \n", + "US0185223007 0.007613807008198652 0.006231229172975224 \n", + "US0188021085 0.021186142904952205 0.016738395724396053 \n", + "US0236081024 0.04726477824338227 0.034922806188620925 \n", + "US0255371017 0.11248617091168711 0.08343102518455157 \n", + "US05351W1036 0.0379793742030801 0.02529980312047131 \n", + "US05379B1070 0.007066740568098292 0.005655105952879468 \n", + "US18551QAA58 0.011583583746330367 0.009189101919284608 \n", + "US1258961002 0.038876229852125306 0.035867501304020305 \n", + "US2091151041 0.06786373005464445 0.05314587328152441 \n", + "US25746U1097 0.11584362182232663 0.06688534526952991 \n", + "US2333311072 0.07097767408945654 0.07766300356121279 \n", + "US26441C2044 0.1970613477213826 0.11254721411236115 \n", + "US283677AZ52 0.0048316886860380335 0.003950855064002835 \n", + "US29364G1031 0.06070215564531642 0.046181301440845035 \n", + "US30034W1062 0.03859860953695048 0.02766943029282214 \n", + "US30040W1080 0.03530846103939446 0.026480799897099 \n", + "US3379321074 0.0988962172735531 0.09332089148551007 \n", + "CA3495531079 0.07911656908686812 0.0470667310963962 \n", + "US6362744095 0.14057664279423704 0.12060139050049665 \n", + "US6680743050 0.008977140347481906 0.006910763261421611 \n", + "US6708371033 0.019269149564939952 0.014109296911343806 \n", + "US6896481032 0.004587174627040453 0.0067106225780971685 \n", + "US7234841010 0.02619284180162325 0.017797401906124867 \n", + "US69349H1077 0.009986202103731528 0.00721385126240408 \n", + "US7365088472 0.010668873721131752 0.009760613126775643 \n", + "US69351T1060 0.08177207191530365 0.05030620119633238 \n", + "US7445731067 0.04681044465151272 0.03574513867355394 \n", + "US8168511090 0.08335956719180115 0.04972643805524998 \n", + "US8425871071 0.16101126726344764 0.10509504376408856 \n", + "US92939U1060 0.050169056739773205 0.03906076269591012 \n", + "US98389B1008 0.06398019170908303 0.05288965305341673 \n", + "US1442851036 0.004310487808706214 0.011641965312984528 \n", + "US2017231034 0.0033177080579832835 0.018610755334314076 \n", + "US3737371050 0.01252243765842747 0.03325265337048597 \n", + "US6703461052 0.016396082842808767 0.07303012863213186 \n", + "KR7005490008 0.07263123014493186 0.21444667139178533 \n", + "US8581191009 0.007399224052972695 0.033844989431466715 \n", + "US88031M1099 0.013748950184392398 0.024439630936756346 \n", + "US8808901081 0.013417124921380242 0.03824255500688262 \n", + "US8873991033 0.0009540854493255154 0.0038442306237322942 \n", + "US9129091081 0.011952248543683201 0.04818404875572425 \n", + "US9818111026 0.0021628807238201053 0.011714808549532102 " ] }, "execution_count": 14, @@ -1846,7 +2136,7 @@ "source": [ "weighting_dict = {\n", " 'MOTS': 'company_market_cap',\n", - " 'EOTS': 'company_enterprise_value',\n", + " 'EOTS': 'company_ev',\n", " 'ECOTS': 'company_evic',\n", " 'AOTS': 'company_total_assets',\n", " 'ROTS': 'company_revenue',\n", @@ -1951,59 +2241,61 @@ { "data": { "text/plain": [ - "[('AES Corp.', '2NUNNB7D43COUIRE5295', 'US00130H1059', 4010, 2019, 'US', 'North America', 10189000000.0, 9420000000.0, 8652000000, 33648000000.0, 1029000000.0),\n", - " ('ALLETE, Inc.', '549300NNLSIMY6Z8OT86', 'US0185223007', 4010, 2019, 'US', 'North America', 1240500000.0, 2825208722.0, 4369708722, 5482800000.0, 69300000.0),\n", - " ('Alcoa Corp.', '549300T12EZ1F6PWWU29', 'US0138721065', 4010, 2019, 'US', 'North America', 10433000000.0, 2100000000.0, 3021000000, 14631000000.0, 879000000.0),\n", - " ('Algonquin Power & Utilities Corp.', '549300K5VIUTJXQL7X75', 'US0158577090', 4010, 2019, 'CA', 'North America', 1626392000.0, None, None, 10920786000.0, 62485000.0),\n", - " ('Alliant Energy', '5493009ML300G373MZ12', 'US0188021085', 4010, 2019, 'US', 'North America', 3648000000.0, 11900000000.0, 18804000000, 16701000000.0, 16000000.0),\n", - " ('Ameren Corp.', 'XRZQ5S7HYJFPHJ78L959', 'US0236081024', 4010, 2019, 'US', 'North America', 5910000000.0, 17299078950.0, 26198078950, 28933000000.0, 16000000.0),\n", - " ('American Electric Power Co., Inc.', '1B4S6S7G0TW5EE83BO58', 'US0255371017', 4010, 2019, 'US', 'North America', 15561400000.0, 39549558010.0, 69474758010, 75892300000.0, 246800000.0),\n", - " ('American States Water Co.', '529900L26LIS2V8PWM23', 'US0298991011', 4010, 2019, 'US', 'North America', 473869000.0, 2900179000.0, 3183544000, 1641331000.0, 1334000.0),\n", - " ('Avangrid, Inc.', '549300OX0Q38NLSKPB49', 'US05351W1036', 4010, 2019, 'US', 'North America', 6336000000.0, 2374000000.0, 10364000000, 34394000000.0, 178000000.0),\n", - " ('Avista Corp.', 'Q0IK63NITJD6RJ47SW96', 'US05379B1070', 4010, 2019, 'US', 'North America', 1345622000.0, 2471363713.0, 4440667713, 6082456000.0, 9896000.0),\n", - " ('Black Hills Corp.', '3MGELCRSTNSAMJ962671', 'US0921131092', 4010, 2019, 'US', 'North America', 1734900000.0, 3528768075.0, 6659087075, 7558457000.0, 9777000.0),\n", - " ('Brookfield Asset Management', 'C6J3FGIWG6MBDGTE8F80', 'CA1125851040', 4010, 2019, 'CA', 'North America', 67826000000.0, None, None, 323969000000.0, 6778000000.0),\n", - " ('CARPENTER TECHNOLOGY CORP', 'DX6I6ZD3X5WNNCDJKP85', 'US1442851036', 2410, 2019, 'US', 'North America', 2380200000.0, 1687208892.0, 2210808892, 3187800000.0, 27000000.0),\n", - " ('CMS Energy Corp.', '549300IA9XFBAGNIBW29', 'US1258961002', 4010, 2019, 'US', 'North America', 6845000000.0, 16647000000.0, 28458000000, 26837000000.0, 140000000.0),\n", - " ('COMMERCIAL METALS CO', '549300OQS2LO07ZJ7N73', 'US2017231034', 2410, 2019, 'US', 'North America', 5829002000.0, 2200000000.0, None, 3758771000.0, None),\n", - " ('Cleco Partners LP', '5493002H80P81B3HXL31', 'US18551QAA58', 4010, 2019, 'US', 'North America', 1639605000.0, None, None, 7476298000.0, 116292000.0),\n", - " ('Consolidated Edison, Inc.', '54930033SBW53OO8T749', 'US2091151041', 4010, 2019, 'US', 'North America', 12574000000.0, 24000000000.0, 42992000000, 58079000000.0, 981000000.0),\n", - " ('DTE Energy', '549300IX8SD6XXD71I78', 'US2333311072', 4010, 2019, 'US', 'North America', 12669000000.0, 20500000000.0, 36342000000, 42268000000.0, 93000000.0),\n", - " ('Dominion Energy', 'ILUL7B6Z54MRYCF6H308', 'US25746U1097', 4010, 2019, 'US', 'North America', 14401000000.0, 68000000000.0, 96863000000, 103823000000.0, 135000000.0),\n", - " ('Duke Energy Corp.', 'I1BZKREC126H0VB1BL91', 'US26441C2044', 4010, 2019, 'US', 'North America', 25079000000.0, 58688204289.0, 121439204289, 158838000000.0, 311000000.0),\n", - " ('Entergy Corp.', '4XM3TW50JULSLG8BNC79', 'US29364G1031', 4010, 2019, 'US', 'North America', 10878673000.0, 18800000000.0, 37434228000, 51723912000.0, 425722000.0),\n", - " ('Evergy, Inc.', '549300PGTHDQY6PSUI61', 'US30034W1062', 4010, 2019, 'US', 'North America', 5147800000.0, 13410149293.0, 22133649293, 25975900000.0, 23200000.0),\n", - " ('Eversource Energy', 'SJ7XXD41SQU3ZNWUJ746', 'US30040W1080', 4010, 2019, 'US', 'North America', 8526470000.0, 28496151703.0, 42251547703, 41123915000.0, 15432000.0),\n", - " ('Exelon Corp.', '3SOUA6IRML7435B56G12', 'US30161N1019', 4010, 2019, 'US', 'North America', 34438000000.0, 35402501369.0, 66144501369, 124977000000.0, 587000000.0),\n", - " ('FirstEnergy Corp.', '549300SVYJS666PQJH88', 'US3379321074', 4010, 2019, 'US', 'North America', 11035000000.0, 20967401361.0, 39958401361, 42301000000.0, 627000000.0),\n", - " ('Fortis, Inc.', '549300MQYQ9Y065XPR71', 'CA3495531079', 4010, 2019, 'CA', 'North America', 6736467578.207348, None, None, 40960299959.7615, 283786064.4354684),\n", - " ('GERDAU S.A.', '254900YDV6SEQQPZVG24', 'US3737371050', 2410, 2019, 'BR', 'Global', 9835514922.966234, None, None, 13397913513.781725, 655382935.9664574),\n", - " ('Hawaiian Electric Industries, Inc.', 'JJ8FWOCWCV22X7GUPJ23', 'US4198701009', 4010, 2019, 'US', 'North America', 2873948000.0, 3937071331.0, 5704623331, 13745251000.0, 196813000.0),\n", - " ('MDU Resources Group', '0T6SBMK3JTBI1JR36794', 'US5526901096', 1410, 2019, 'US', 'North America', 5336776000.0, 4447584104.0, 6624232104, 7683059000.0, 66459000.0),\n", - " ('NUCOR CORP', '549300GGJCRSI2TIEJ46', 'US6703461052', 2410, 2019, 'US', 'North America', 22588858000.0, 12430000000.0, 15186696000, 18344666000.0, 1534605000.0),\n", - " ('National Grid PLC', '8R95QZMKZLJX5Q2XR704', 'US6362744095', 4010, 2019, 'GB', 'Europe', 19393506493.506493, 44164533765.359474, None, 81770129870.12987, 327272727.27272725),\n", - " ('Northwestern Corp.', '3BPWMBHR1R9SHUN7J795', 'US6680743050', 4010, 2019, 'US', 'North America', 1257910000.0, 2757293172.0, 5168962172, 6083486000.0, 5145000.0),\n", - " ('OG&E Energy Corp.', 'CE5OG6JPOZMDSA0LAQ19', 'US6708371033', 4010, 2019, 'US', 'North America', 2231600000.0, 6077156282.0, None, 11024300000.0, None),\n", - " ('Otter Tail Corp.', '549300HHVBQRQUVKKD91', 'US6896481032', 4010, 2019, 'US', 'North America', 919503000.0, 1546518975.0, 2221083975, 2273595000.0, 21199000.0),\n", - " ('PG&E Corp.', '8YQ2GSDWYZXO2EDN3511', 'US69331C1080', 4010, 2019, 'US', 'North America', 17129000000.0, 12130000000.0, 12290000000, 85196000000.0, 1570000000.0),\n", - " ('PNM Resources, Inc.', '5493003JOBJGLZSDDQ28', 'US69349H1077', 4010, 2019, 'US', 'North America', 1457603000.0, 3061885307.0, 5575501307, 7298774000.0, 3833000.0),\n", - " ('POSCO', '988400E5HRVX81AYLM04', 'KR7005490008', 2410, 2019, 'KR', 'Global', 55955872344.10088, None, None, 68553124892.03662, 3035819657.972016),\n", - " ('PPL Corp.', '9N3UAJSNOUXFKQLF3V18', 'US69351T1060', 4010, 2019, 'US', 'North America', 7769000000.0, 19865342074.0, 40943342074, 45680000000.0, 815000000.0),\n", - " ('Pinnacle West Capital Corp.', 'TWSEY0NEDUDCKS27AH81', 'US7234841010', 4010, 2019, 'US', 'North America', 3471209000.0, 8231813171.0, 14415922171, 18479247000.0, 10283000.0),\n", - " ('Portland General Electric Co.', 'GJOUP9M7C39GLSK9R870', 'US7365088472', 4010, 2019, 'US', 'North America', 2123000000.0, 3725882304.0, None, 8394000000.0, None),\n", - " ('Public Service Enterprise Group', 'PUSS41EMO3E6XXNV3U28', 'US7445731067', 4010, 2019, 'US', 'North America', 10076000000.0, 24648067675.0, 41224067675, 47730000000.0, 147000000.0),\n", - " ('STEEL DYNAMICS INC', '549300HGGKEL4FYTTQ83', 'US8581191009', 2410, 2019, 'US', 'North America', 10464991000.0, 4100000000.0, 5452884000, 8275765000.0, 1381460000.0),\n", - " ('Sempra', 'PBBKGKLRK5S5C0Y4T545', 'US8168511090', 4010, 2019, 'US', 'North America', 10829000000.0, 34300000000.0, 54977000000, 65665000000.0, 108000000.0),\n", - " ('Southern Co.', '549300FC3G3YU2FBZD92', 'US8425871071', 4010, 2019, 'US', 'North America', 22596000000.0, 54800000000.0, 94623000000, 118700000000.0, 1975000000.0),\n", - " ('TC Energy Corp.', '549300UGKOFV2IWJJG27', 'CA87807B1076', 4010, 2019, 'CA', 'North America', 10166444011.05982, None, None, 76145937002.94287, 1030066714.9644163),\n", - " ('TENARIS SA', '549300Y7C05BKC4HZB40', 'US88031M1099', 2410, 2019, 'LU', 'Europe', 7294055000.0, None, None, 14842991000.0, 1554299000.0),\n", - " ('TIMKENSTEEL CORP', '549300QZTZWHDE9HJL14', 'US8873991033', 2410, 2019, 'US', 'North America', 1208800000.0, 160935221.0, 302435221, 1085200000.0, 27100000.0),\n", - " ('UNITED STATES STEEL CORP', 'JNLUVFYJT1OZSIQ24U47', 'US9129091081', 2410, 2019, 'US', 'North America', 12937000000.0, 1600000000.0, 4630000000, 11608000000.0, 749000000.0),\n", - " ('Verso Corp.', '549300FODXCTQ8DGT594', 'US92531L2079', 4010, 2019, 'US', 'North America', 2444000000.0, 400452075.0, 364452075, 1695000000.0, 42000000.0),\n", - " ('Vistra Corp.', '549300KP43CPCUJOOG15', 'US92840M1027', 4010, 2019, 'US', 'North America', 11809000000.0, 9084469142.0, 18886469142, 26616000000.0, 300000000.0),\n", - " ('WEC Energy Group', '549300IGLYTZUK3PVP70', 'US92939U1060', 4010, 2019, 'US', 'North America', 7523100000.0, 27600000000.0, 39420800000, 34951800000.0, 37500000.0),\n", - " ('WORTHINGTON INDUSTRIES INC', '1WRCIANKYOIK6KYE5E82', 'US9818111026', 2410, 2019, 'US', 'North America', 3759556000.0, 1633376617.0, 2294113617, 2510796000.0, 92363000.0),\n", - " ('Xcel Energy, Inc.', 'LGJNMI9GH8XIDG5RCM61', 'US98389B1008', 4010, 2019, 'US', 'North America', 11529000000.0, 32825311125.0, None, 50448000000.0, None)]" + "[('AES Corp.', '2NUNNB7D43COUIRE5295', 'US00130H1059', 'Electricity Utilities', 'US', 'North America', 'equity', 'USD', 2019, 10870000000.0, 10189000000.0, 10102000000, 11131000000.0, 33648000000.0, 1029000000.0, 261000000.0),\n", + " ('Alliant Energy', '5493009ML300G373MZ12', 'US0188021085', 'Electricity Utilities', 'US', 'North America', 'equity', 'USD', 2019, 11600000000.0, 3647700000.0, 18503600000, 18519900000.0, 16700700000.0, 16300000.0, 6919900000.0),\n", + " ('Ameren Corp.', 'XRZQ5S7HYJFPHJ78L959', 'US0236081024', 'Electricity Utilities', 'US', 'North America', 'equity', 'USD', 2019, 18378774986.0, 5910000000.0, 27804774986, 27820774986.0, 28933000000.0, 16000000.0, 9442000000.0),\n", + " ('American Electric Power Co., Inc.', '1B4S6S7G0TW5EE83BO58', 'US0255371017', 'Electricity Utilities', 'US', 'North America', 'equity', 'USD', 2019, 43491855142.0, 15561400000.0, 73417055142, 73663855142.0, 75892300000.0, 246800000.0, 30172000000.0),\n", + " ('Avangrid, Inc.', '549300OX0Q38NLSKPB49', 'US05351W1036', 'Electricity Utilities', 'US', 'North America', 'equity', 'USD', 2019, 2836000000.0, 6338000000.0, 10826000000, 11004000000.0, 34416000000.0, 178000000.0, 8168000000.0),\n", + " ('ALLETE, Inc.', '549300NNLSIMY6Z8OT86', 'US0185223007', 'Electricity Utilities', 'US', 'North America', 'equity', 'USD', 2019, 4285299935.0, 1240500000.0, 5829799935, 5899099935.0, 5482800000.0, 69300000.0, 1613800000.0),\n", + " ('Algonquin Power & Utilities Corp.', '549300K5VIUTJXQL7X75', 'US0158577090', 'Electricity Utilities', 'CA', 'North America', 'equity', 'USD', 2019, None, 1624921000.0, None, None, 10911470000.0, 62485000.0, 6500799000.0),\n", + " ('Avista Corp.', 'Q0IK63NITJD6RJ47SW96', 'US05379B1070', 'Electricity Utilities', 'US', 'North America', 'equity', 'USD', 2019, 2948564738.0, 1345622000.0, 4917868738, 4927764738.0, 6082456000.0, 9896000.0, 1979200000.0),\n", + " ('Berkshire Hathaway, Inc.', '5493000C01ZX7D35SD85', 'US0846707026', 'Electricity Utilities', 'US', 'North America', 'equity', 'USD', 2019, 417300000000.0, 254616000000.0, None, 421014902807.7754, 817729000000.0, None, 3714902807.775378),\n", + " ('Black Hills Corp.', '3MGELCRSTNSAMJ962671', 'US0921131092', 'Electricity Utilities', 'US', 'North America', 'equity', 'USD', 2019, 4727278183.0, 1734900000.0, 7857597183, 7867374183.0, 7558457000.0, 9777000.0, 3140096000.0),\n", + " ('CARPENTER TECHNOLOGY CORP', 'DX6I6ZD3X5WNNCDJKP85', 'US1442851036', 'Steel', 'US', 'North America', 'equity', 'USD', 2019, 1687208892.0, 2380200000.0, 2210808892, 2237808892.0, 3187800000.0, 27000000.0, 550600000.0),\n", + " ('CLEVELAND-CLIFFS INC', '549300TM2WLI2BJMDD86', 'US1858991011', 'Steel', 'US', 'North America', 'equity', 'USD', 2019, 2839987963.0, 1989900000.0, 4601187963, 4953787963.0, 3503800000.0, 352600000.0, 2113800000.0),\n", + " ('CMS Energy Corp.', '549300IA9XFBAGNIBW29', 'US1258961002', 'Electricity Utilities', 'US', 'North America', 'equity', 'USD', 2019, 16352000000.0, 6845000000.0, 28163000000, 28303000000.0, 26837000000.0, 140000000.0, 11951000000.0),\n", + " ('COMMERCIAL METALS CO', '549300OQS2LO07ZJ7N73', 'US2017231034', 'Steel', 'US', 'North America', 'equity', 'USD', 2019, 1900000000.0, 5829002000.0, None, 3154921000.0, 3758771000.0, None, 1254921000.0),\n", + " ('Cleco Partners LP', '5493002H80P81B3HXL31', 'US18551QAA58', 'Electricity Utilities', 'US', 'North America', 'equity', 'USD', 2019, None, 1639605000.0, None, None, 7476298000.0, 116292000.0, 400000000.0),\n", + " ('Consolidated Edison, Inc.', '54930033SBW53OO8T749', 'US2091151041', 'Electricity Utilities', 'US', 'North America', 'equity', 'USD', 2019, 29100000000.0, 12574000000.0, 48092000000, 49073000000.0, 58079000000.0, 981000000.0, 19973000000.0),\n", + " ('DTE Energy', '549300IX8SD6XXD71I78', 'US2333311072', 'Electricity Utilities', 'US', 'North America', 'equity', 'USD', 2019, 23100000000.0, 12669000000.0, 39762000000, 39855000000.0, 41882000000.0, 93000000.0, 16755000000.0),\n", + " ('Dominion Energy', 'ILUL7B6Z54MRYCF6H308', 'US25746U1097', 'Electricity Utilities', 'US', 'North America', 'equity', 'USD', 2019, 62000000000.0, 16572000000.0, 95658000000, 95824000000.0, 103823000000.0, 166000000.0, 33824000000.0),\n", + " ('Duke Energy Corp.', 'I1BZKREC126H0VB1BL91', 'US26441C2044', 'Electricity Utilities', 'US', 'North America', 'equity', 'USD', 2019, 64230558771.0, 25079000000.0, 126981558771, 127292558771.0, 158838000000.0, 311000000.0, 63062000000.0),\n", + " ('Edison International', '549300I7ROF15MAEVP56', 'US2810201077', 'Electricity Utilities', 'US', 'North America', 'equity', 'USD', 2019, 22000000000.0, 12347000000.0, 42069000000, 42137000000.0, 64382000000.0, 68000000.0, 20137000000.0),\n", + " ('El Paso Electric Co', 'OZ8GM8L4AHPKSWZMW205', 'US283677AZ52', 'Electricity Utilities', 'US', 'North America', 'equity', 'USD', 2019, 2636107949.0, 861994000.0, 4125040949, 4135858949.0, 3813200000.0, 10818000.0, 1499751000.0),\n", + " ('Entergy Corp.', '4XM3TW50JULSLG8BNC79', 'US29364G1031', 'Electricity Utilities', 'US', 'North America', 'equity', 'USD', 2019, 20500000000.0, 10878673000.0, 39134228000, 39559950000.0, 51723912000.0, 425722000.0, 19059950000.0),\n", + " ('Evergy, Inc.', '549300PGTHDQY6PSUI61', 'US30034W1062', 'Electricity Utilities', 'US', 'North America', 'equity', 'USD', 2019, 14138041261.0, 5147800000.0, 22861541261, 22884741261.0, 25975900000.0, 23200000.0, 8746700000.0),\n", + " ('Eversource Energy', 'SJ7XXD41SQU3ZNWUJ746', 'US30040W1080', 'Electricity Utilities', 'US', 'North America', 'equity', 'USD', 2019, 24486439602.0, 8526470000.0, 38241835602, 38257267602.0, 41123915000.0, 15432000.0, 13770828000.0),\n", + " ('Exelon Corp.', '3SOUA6IRML7435B56G12', 'US30161N1019', 'Electricity Utilities', 'US', 'North America', 'equity', 'USD', 2019, 46542193363.0, 34438000000.0, 81905193363, 82492193363.0, 124977000000.0, 587000000.0, 35950000000.0),\n", + " ('FirstEnergy Corp.', '549300SVYJS666PQJH88', 'US3379321074', 'Electricity Utilities', 'US', 'North America', 'equity', 'USD', 2019, 22724895037.0, 11035000000.0, 41715895037, 42342895037.0, 42301000000.0, 627000000.0, 19618000000.0),\n", + " ('Fortis, Inc.', '549300MQYQ9Y065XPR71', 'CA3495531079', 'Electricity Utilities', 'CA', 'North America', 'equity', 'USD', 2019, None, 6742286315.707347, None, None, 40995680109.76149, 284031189.4354683, 16505282713.654066),\n", + " ('GERDAU S.A.', '254900YDV6SEQQPZVG24', 'US3737371050', 'Steel', 'BR', 'Global', 'equity', 'USD', 2019, None, 9835514922.966234, None, None, 13397913513.781725, 655382935.9664575, None),\n", + " ('Hawaiian Electric Industries, Inc.', 'JJ8FWOCWCV22X7GUPJ23', 'US4198701009', 'Electricity Utilities', 'US', 'North America', 'equity', 'USD', 2019, 4745752027.0, 2874601000.0, 6513304027, 6710117027.0, 13745251000.0, 196813000.0, 1964365000.0),\n", + " ('Idacorp, Inc.', 'N134NUJDWN8UEFA8B673', 'US4511071064', 'Electricity Utilities', 'US', 'North America', 'equity', 'USD', 2019, 5017481695.0, 1346383000.0, 6636886695, 6854140695.0, 6641201000.0, 217254000.0, 1836659000.0),\n", + " ('NUCOR CORP', '549300GGJCRSI2TIEJ46', 'US6703461052', 'Steel', 'US', 'North America', 'equity', 'USD', 2019, 16580000000.0, 22588858000.0, 19336696000, 20871301000.0, 18344666000.0, 1534605000.0, 4291301000.0),\n", + " ('National Grid PLC', '8R95QZMKZLJX5Q2XR704', 'US6362744095', 'Electricity Utilities', 'GB', 'Europe', 'equity', 'USD', 2019, 40783780623.596985, 19393506493.506493, None, None, 81770129870.12987, 327272727.27272725, None),\n", + " ('Nisource Inc.', '549300D8GOWWH0SJB189', 'US65473P1057', 'Electricity Utilities', 'US', 'North America', 'equity', 'USD', 2019, 10713311150.0, 5053400000.0, 19338411150, 19477711150.0, 22659800000.0, 139300000.0, 8764400000.0),\n", + " ('Northwestern Corp.', '3BPWMBHR1R9SHUN7J795', 'US6680743050', 'Electricity Utilities', 'US', 'North America', 'equity', 'USD', 2019, 3639448000.0, 1257910000.0, 6051117000, 6056262000.0, 5910702000.0, 5145000.0, 2416814000.0),\n", + " ('OG&E Energy Corp.', 'CE5OG6JPOZMDSA0LAQ19', 'US6708371033', 'Electricity Utilities', 'US', 'North America', 'equity', 'USD', 2019, 8519482559.0, 2231600000.0, None, 11714682559.0, 11024300000.0, None, 3195200000.0),\n", + " ('Old Dominion Electric Coop.', 'SW4VC32Z0ZKLJKPONQ50', 'ZZ00000000141', 'Electricity Utilities', 'US', 'North America', 'equity', 'USD', 2019, None, 932682000.0, None, None, 2169244000.0, 3469000.0, 1300100000.0),\n", + " ('Otter Tail Corp.', '549300HHVBQRQUVKKD91', 'US6896481032', 'Electricity Utilities', 'US', 'North America', 'equity', 'USD', 2019, 2040017347.0, 919503000.0, 2714582347, 2735781347.0, 2273595000.0, 21199000.0, 695764000.0),\n", + " ('PG&E Corp.', '8YQ2GSDWYZXO2EDN3511', 'US69331C1080', 'Electricity Utilities', 'US', 'North America', 'equity', 'USD', 2019, 12130000000.0, 17129000000.0, 32736000000, 34306000000.0, 85196000000.0, 1570000000.0, 22176000000.0),\n", + " ('PNM Resources, Inc.', '5493003JOBJGLZSDDQ28', 'US69349H1077', 'Electricity Utilities', 'US', 'North America', 'equity', 'USD', 2019, 4055165998.0, 1457603000.0, 6568781998, 6572614998.0, 7298774000.0, 3833000.0, 2517449000.0),\n", + " ('POSCO', '988400E5HRVX81AYLM04', 'KR7005490008', 'Steel', 'KR', 'Global', 'equity', 'USD', 2019, None, 55955872344.10088, None, None, 68553124892.03662, 3035819657.972016, None),\n", + " ('PPL Corp.', '9N3UAJSNOUXFKQLF3V18', 'US69351T1060', 'Electricity Utilities', 'US', 'North America', 'equity', 'USD', 2019, 22384264788.0, 7769000000.0, 43462264788, 44277264788.0, 45680000000.0, 815000000.0, 21893000000.0),\n", + " ('Pinnacle West Capital Corp.', 'TWSEY0NEDUDCKS27AH81', 'US7234841010', 'Electricity Utilities', 'US', 'North America', 'equity', 'USD', 2019, 10536165750.0, 3471209000.0, 16720274750, 16730557750.0, 18479247000.0, 10283000.0, 6194392000.0),\n", + " ('Portland General Electric Co.', 'GJOUP9M7C39GLSK9R870', 'US7365088472', 'Electricity Utilities', 'US', 'North America', 'equity', 'USD', 2019, 4823580272.0, 2123000000.0, 7832580272, 7862580272.0, 8394000000.0, 30000000.0, 3039000000.0),\n", + " ('Public Service Enterprise Group', 'PUSS41EMO3E6XXNV3U28', 'US7445731067', 'Electricity Utilities', 'US', 'North America', 'equity', 'USD', 2019, 29513402185.0, 10076000000.0, 46089402185, 46236402185.0, 47730000000.0, 147000000.0, 16723000000.0),\n", + " ('STEEL DYNAMICS INC', '549300HGGKEL4FYTTQ83', 'US8581191009', 'Steel', 'US', 'North America', 'equity', 'USD', 2019, 5000000000.0, 10464991000.0, 6352884000, 7734344000.0, 8275765000.0, 1381460000.0, 2734344000.0),\n", + " ('Sempra', 'PBBKGKLRK5S5C0Y4T545', 'US8168511090', 'Electricity Utilities', 'US', 'North America', 'equity', 'USD', 2019, 37700000000.0, 10829000000.0, 58377000000, 58485000000.0, 65665000000.0, 108000000.0, 20785000000.0),\n", + " ('Southern Co.', '549300FC3G3YU2FBZD92', 'US8425871071', 'Electricity Utilities', 'US', 'North America', 'equity', 'USD', 2019, 57800000000.0, 21419000000.0, 97623000000, 99598000000.0, 118700000000.0, 1975000000.0, 41798000000.0),\n", + " ('TENARIS SA', '549300Y7C05BKC4HZB40', 'US88031M1099', 'Steel', 'LU', 'Europe', 'equity', 'USD', 2019, None, 7294055000.0, None, None, 14842991000.0, 1554299000.0, None),\n", + " ('TERNIUM S.A.', '529900QG4KU23TEI2E46', 'US8808901081', 'Steel', 'LU', 'Europe', 'equity', 'USD', 2019, None, 10192818000.0, None, None, 12935533000.0, 519965000.0, None),\n", + " ('TIMKENSTEEL CORP', '549300QZTZWHDE9HJL14', 'US8873991033', 'Steel', 'US', 'North America', 'equity', 'USD', 2019, 337525844.0, 1208800000.0, 400425844, 427525844.0, 1085200000.0, 27100000.0, 90000000.0),\n", + " ('Tri-State Generation & Transmission Association, Inc.', '549300VDHNFNPADSSV98', 'ZZ00000000180', 'Electricity Utilities', 'US', 'North America', 'equity', 'USD', 2019, None, 1385472000.0, None, None, 5085818000.0, 83070000.0, 3144906000.0),\n", + " ('UNITED STATES STEEL CORP', 'JNLUVFYJT1OZSIQ24U47', 'US9129091081', 'Steel', 'US', 'North America', 'equity', 'USD', 2019, 2600000000.0, 12937000000.0, 5630000000, 6379000000.0, 11608000000.0, 749000000.0, 3779000000.0),\n", + " ('WEC Energy Group', '549300IGLYTZUK3PVP70', 'US92939U1060', 'Electricity Utilities', 'US', 'North America', 'equity', 'USD', 2019, 26300000000.0, 7523100000.0, 38120800000, 38158300000.0, 34951800000.0, 37500000.0, 11858300000.0),\n", + " ('WORTHINGTON INDUSTRIES INC', '1WRCIANKYOIK6KYE5E82', 'US9818111026', 'Steel', 'US', 'North America', 'equity', 'USD', 2019, 1633376617.0, 3759556000.0, 2294113617, 2386476617.0, 2510796000.0, 92363000.0, 753100000.0),\n", + " ('Xcel Energy, Inc.', 'LGJNMI9GH8XIDG5RCM61', 'US98389B1008', 'Electricity Utilities', 'US', 'North America', 'equity', 'USD', 2019, 30629347167.0, 11529000000.0, 50608347167, 50856347167.0, 50448000000.0, 248000000.0, 20227000000.0)]" ] }, "execution_count": 16, @@ -2012,7 +2304,7 @@ } ], "source": [ - "engine_user.execute(\"select * from demo.company_data\").fetchall()" + "engine_user.execute(\"select * from demo_dv.company_data\").fetchall()" ] }, { @@ -2026,7 +2318,7 @@ ], "metadata": { "kernelspec": { - "display_name": "Python 3", + "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, @@ -2040,7 +2332,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.8.3" + "version": "3.10.2" } }, "nbformat": 4, From 6c67f0a1d5e73e830086c9b22bd6a2dc985b8989 Mon Sep 17 00:00:00 2001 From: MichaelTiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> Date: Thu, 5 May 2022 16:55:02 -0400 Subject: [PATCH 205/345] Add typemap parameter to requantify_df Add a typemap parameter to requantify_df. When tables are read that have a variety of compatible types (grams, kg, t, Mt, etc) the column can be normalized to the pint type specified in the typemap (such as 'pint[t CO2]') Signed-off-by: MichaelTiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- examples/vault_demo_n0.ipynb | 235 ++++++++++- examples/vault_demo_n1.ipynb | 733 ++++++++++++++++++++++++++++++++++- 2 files changed, 947 insertions(+), 21 deletions(-) diff --git a/examples/vault_demo_n0.ipynb b/examples/vault_demo_n0.ipynb index 52e36ef8..852baf7f 100644 --- a/examples/vault_demo_n0.ipynb +++ b/examples/vault_demo_n0.ipynb @@ -299,32 +299,42 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 14, "id": "3d18b584-de49-4344-932b-2302d3976794", - "metadata": {}, + "metadata": { + "tags": [] + }, "outputs": [], "source": [ "# Because this DF comes from reading a Trino table, and because columns must be unqiue, we don't have to enumerate to ensure we properly handle columns with duplicated names\n", "\n", - "def requantify_df(df: pd.DataFrame) -> pd.DataFrame:\n", + "def requantify_df(df: pd.DataFrame, typemap: dict) -> pd.DataFrame:\n", " units_col = None\n", + " columns_not_found = [k for k in typemap.keys() if k not in df.columns]\n", + " if columns_not_found:\n", + " print(f\"columns {columns_not_found} not found in DataFrame\")\n", + " raise ValueError\n", " columns_reversed = reversed(df.columns)\n", " for col in columns_reversed:\n", " if col.endswith(\"_units\"):\n", " if units_col:\n", + " print(f\"Column {units_col} follows {col} without intervening value column\")\n", " # We expect _units column to follow a non-units column\n", " raise ValueError\n", " units_col = col\n", " continue\n", " if units_col:\n", " if col + '_units' != units_col:\n", + " print(f\"Excpecting column name {col}_units but saw {units_col} instead\")\n", " raise ValueError\n", " if (df[units_col]==df[units_col][0]).all():\n", - " # Make a PintArray\n", + " # We can make a PintArray since column is of homogeneous type\n", " new_col = PintArray(df[col], dtype=f\"pint[{ureg(df[units_col][0]).u}]\")\n", " else:\n", " # Make a pd.Series of Quantity in a way that does not throw UnitStrippedWarning\n", " new_col = pd.Series(data=df[col], name=col) * pd.Series(data=df[units_col].map(lambda x: ureg(x).u), name=col)\n", + " if col in typemap.keys():\n", + " new_col = new_col.astype(typemap[col])\n", " df = df.drop(columns=units_col)\n", " df[col] = new_col\n", " units_col = None\n", @@ -581,19 +591,222 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 15, "id": "463b78e4-ca3a-4af1-bc4d-f301d4e6b402", "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/Users/michael/opt/miniconda3/envs/jupyter/lib/python3.10/site-packages/pint_pandas/pint_array.py:648: UnitStrippedWarning: The unit of the quantity is stripped when downcasting to ndarray.\n", + " return np.array(qtys, dtype=\"object\", copy=copy)\n", + "/Users/michael/opt/miniconda3/envs/jupyter/lib/python3.10/site-packages/pint_pandas/pint_array.py:648: UnitStrippedWarning: The unit of the quantity is stripped when downcasting to ndarray.\n", + " return np.array(qtys, dtype=\"object\", copy=copy)\n" + ] + }, + { + "data": { + "text/html": [ + "
    \n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
    company_namecompany_leicompany_idsectoryearco2_s1_by_yearco2_s2_by_year
    0Tri-State Generation & Transmission Associatio...549300VDHNFNPADSSV98ZZ00000000180Electricity Utilities20304047107.4507537760.0
    1UNITED STATES STEEL CORPJNLUVFYJT1OZSIQ24U47US9129091081Steel203026000000.02640000.0
    2Valtec PowerRMI00000000000000015ZZ00000000015Electricity Utilities20300.00.0
    3WEC Energy Group549300IGLYTZUK3PVP70US92939U1060Electricity Utilities20307166046.9569736830.0
    4WORTHINGTON INDUSTRIES INC1WRCIANKYOIK6KYE5E82US9818111026Steel2030125957.7123170.6
    ........................
    2216SempraPBBKGKLRK5S5C0Y4T545US8168511090Electricity Utilities2016933256.31030505520.0
    2217Southern Co.549300FC3G3YU2FBZD92US8425871071Electricity Utilities201673158060.139100460.0
    2218TENARIS SA549300Y7C05BKC4HZB40US88031M1099Steel20162000000.01000000.0
    2219TERNIUM S.A.529900QG4KU23TEI2E46US8808901081Steel201617744560.0858941.0
    2220TIMKENSTEEL CORP549300QZTZWHDE9HJL14US8873991033Steel201699660.0371530.0
    \n", + "

    2147 rows × 7 columns

    \n", + "
    " + ], + "text/plain": [ + " company_name company_lei \\\n", + "0 Tri-State Generation & Transmission Associatio... 549300VDHNFNPADSSV98 \n", + "1 UNITED STATES STEEL CORP JNLUVFYJT1OZSIQ24U47 \n", + "2 Valtec Power RMI00000000000000015 \n", + "3 WEC Energy Group 549300IGLYTZUK3PVP70 \n", + "4 WORTHINGTON INDUSTRIES INC 1WRCIANKYOIK6KYE5E82 \n", + "... ... ... \n", + "2216 Sempra PBBKGKLRK5S5C0Y4T545 \n", + "2217 Southern Co. 549300FC3G3YU2FBZD92 \n", + "2218 TENARIS SA 549300Y7C05BKC4HZB40 \n", + "2219 TERNIUM S.A. 529900QG4KU23TEI2E46 \n", + "2220 TIMKENSTEEL CORP 549300QZTZWHDE9HJL14 \n", + "\n", + " company_id sector year co2_s1_by_year \\\n", + "0 ZZ00000000180 Electricity Utilities 2030 4047107.450753776 \n", + "1 US9129091081 Steel 2030 26000000.0 \n", + "2 ZZ00000000015 Electricity Utilities 2030 0.0 \n", + "3 US92939U1060 Electricity Utilities 2030 7166046.956973683 \n", + "4 US9818111026 Steel 2030 125957.7 \n", + "... ... ... ... ... \n", + "2216 US8168511090 Electricity Utilities 2016 933256.3103050552 \n", + "2217 US8425871071 Electricity Utilities 2016 73158060.13910046 \n", + "2218 US88031M1099 Steel 2016 2000000.0 \n", + "2219 US8808901081 Steel 2016 17744560.0 \n", + "2220 US8873991033 Steel 2016 99660.0 \n", + "\n", + " co2_s2_by_year \n", + "0 0.0 \n", + "1 2640000.0 \n", + "2 0.0 \n", + "3 0.0 \n", + "4 123170.6 \n", + "... ... \n", + "2216 0.0 \n", + "2217 0.0 \n", + "2218 1000000.0 \n", + "2219 858941.0 \n", + "2220 371530.0 \n", + "\n", + "[2147 rows x 7 columns]" + ] + }, + "execution_count": 15, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ - "df = requantify_df(sql_df.dropna())\n", - "df.co2_s1_by_year = df.co2_s1_by_year.astype('pint[t CO2]')\n", - "df.co2_s2_by_year = df.co2_s2_by_year.astype('pint[t CO2]')" + "df = requantify_df(sql_df.dropna(), typemap={'co2_s1_by_year':'pint[t CO2]', 'co2_s2_by_year':'pint[t CO2]'})\n", + "df" ] }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 13, "id": "c515b6a5-bfb8-4dc5-81bd-9fe6389be42e", "metadata": {}, "outputs": [ @@ -610,7 +823,7 @@ "dtype: object" ] }, - "execution_count": 8, + "execution_count": 13, "metadata": {}, "output_type": "execute_result" } diff --git a/examples/vault_demo_n1.ipynb b/examples/vault_demo_n1.ipynb index 66de6f0c..da08fc30 100644 --- a/examples/vault_demo_n1.ipynb +++ b/examples/vault_demo_n1.ipynb @@ -192,32 +192,42 @@ }, { "cell_type": "code", - "execution_count": 7, - "id": "2058f979-3486-4e77-93ce-927aff6ff988", - "metadata": {}, + "execution_count": 24, + "id": "3d18b584-de49-4344-932b-2302d3976794", + "metadata": { + "tags": [] + }, "outputs": [], "source": [ "# Because this DF comes from reading a Trino table, and because columns must be unqiue, we don't have to enumerate to ensure we properly handle columns with duplicated names\n", "\n", - "def requantify_df(df: pd.DataFrame) -> pd.DataFrame:\n", + "def requantify_df(df: pd.DataFrame, typemap: dict) -> pd.DataFrame:\n", " units_col = None\n", + " columns_not_found = [k for k in typemap.keys() if k not in df.columns]\n", + " if columns_not_found:\n", + " print(f\"columns {columns_not_found} not found in DataFrame\")\n", + " raise ValueError\n", " columns_reversed = reversed(df.columns)\n", " for col in columns_reversed:\n", " if col.endswith(\"_units\"):\n", " if units_col:\n", + " print(f\"Column {units_col} follows {col} without intervening value column\")\n", " # We expect _units column to follow a non-units column\n", " raise ValueError\n", " units_col = col\n", " continue\n", " if units_col:\n", " if col + '_units' != units_col:\n", + " print(f\"Excpecting column name {col}_units but saw {units_col} instead\")\n", " raise ValueError\n", " if (df[units_col]==df[units_col][0]).all():\n", - " # Make a PintArray\n", + " # We can make a PintArray since column is of homogeneous type\n", " new_col = PintArray(df[col], dtype=f\"pint[{ureg(df[units_col][0]).u}]\")\n", " else:\n", " # Make a pd.Series of Quantity in a way that does not throw UnitStrippedWarning\n", " new_col = pd.Series(data=df[col], name=col) * pd.Series(data=df[units_col].map(lambda x: ureg(x).u), name=col)\n", + " if col in typemap.keys():\n", + " new_col = new_col.astype(typemap[col])\n", " df = df.drop(columns=units_col)\n", " df[col] = new_col\n", " units_col = None\n", @@ -261,14 +271,717 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 25, "id": "1ae21697-98f1-4901-bd32-b4856555b809", "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/Users/michael/opt/miniconda3/envs/jupyter/lib/python3.10/site-packages/pint_pandas/pint_array.py:648: UnitStrippedWarning: The unit of the quantity is stripped when downcasting to ndarray.\n", + " return np.array(qtys, dtype=\"object\", copy=copy)\n", + "/Users/michael/opt/miniconda3/envs/jupyter/lib/python3.10/site-packages/pint_pandas/pint_array.py:648: UnitStrippedWarning: The unit of the quantity is stripped when downcasting to ndarray.\n", + " return np.array(qtys, dtype=\"object\", copy=copy)\n" + ] + }, + { + "data": { + "text/html": [ + "
    \n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
    company_namecompany_idsourcescopebenchmarktrajectory_temperature_scoretarget_temperature_score
    0ALLETE, Inc.US0185223007demo_dvS1+S2benchmark_11.9974170499097892.0901695283836217
    1Algonquin Power & Utilities Corp.US0158577090demo_dvS1+S2benchmark_11.26224890750537751.2624152250820424
    2Idacorp, Inc.US4511071064demo_dvS1+S2benchmark_11.86760228997261772.277606917005736
    3Northwestern Corp.US6680743050demo_dvS1+S2benchmark_12.3913040930528352.0793025091814186
    4DTE EnergyUS2333311072demo_dvS1+S2benchmark_12.60919022592878142.379216491775751
    5Eversource EnergyUS30040W1080demo_dvS1+S2benchmark_11.26284098258398461.2644301701927758
    6PPL Corp.US69351T1060demo_dvS1+S2benchmark_12.9200602768317592.34916068618228
    7SempraUS8168511090demo_dvS1+S2benchmark_11.81111341054044851.925593255252446
    8Xcel Energy, Inc.US98389B1008demo_dvS1+S2benchmark_12.0151571858859311.7179382088171775
    9Black Hills Corp.US0921131092demo_dvS1+S2benchmark_13.041844616663863.1354352983921223
    10CMS Energy Corp.US1258961002demo_dvS1+S2benchmark_12.34845204779826271.9155526969886063
    11Dominion EnergyUS25746U1097demo_dvS1+S2benchmark_11.62275126012345151.661573221927111
    12Old Dominion Electric Coop.ZZ00000000141demo_dvS1+S2benchmark_11.62936485358963751.7470015858435108
    13Public Service Enterprise GroupUS7445731067demo_dvS1+S2benchmark_11.5447213978634451.3420928255486166
    14Alliant EnergyUS0188021085demo_dvS1+S2benchmark_11.74836065684164431.9857288762517797
    15Entergy Corp.US29364G1031demo_dvS1+S2benchmark_11.86066875783641121.5937919247590187
    16PNM Resources, Inc.US69349H1077demo_dvS1+S2benchmark_12.2693945128543961.7579421817864154
    17Portland General Electric Co.US7365088472demo_dvS1+S2benchmark_12.19669098328140061.5445623274403906
    18Avista Corp.US05379B1070demo_dvS1+S2benchmark_12.058666759391791.3611881118286184
    19TIMKENSTEEL CORPUS8873991033demo_dvS1+S2benchmark_11.30707272371755411.2808123857957467
    20Hawaiian Electric Industries, Inc.US4198701009demo_dvS1+S2benchmark_13.77058175942916661.966103744166816
    21Ameren Corp.US0236081024demo_dvS1+S2benchmark_12.5513775118169432.257145091380799
    22Avangrid, Inc.US05351W1036demo_dvS1+S2benchmark_11.72685289308707721.5214380086973212
    23Cleco Partners LPUS18551QAA58demo_dvS1+S2benchmark_12.30541733715660732.2552022001649967
    24GERDAU S.A.US3737371050demo_dvS1+S2benchmark_11.41091723472412341.340264075792371
    25WEC Energy GroupUS92939U1060demo_dvS1+S2benchmark_11.91004257616844162.3150272749218583
    26COMMERCIAL METALS COUS2017231034demo_dvS1+S2benchmark_11.30397987520991321.2941437041150645
    27Edison InternationalUS2810201077demo_dvS1+S2benchmark_11.3121162765249541.4129397560495331
    28NUCOR CORPUS6703461052demo_dvS1+S2benchmark_11.33800464170366041.2928557297900936
    29Otter Tail Corp.US6896481032demo_dvS1+S2benchmark_13.44009689915164252.498716396935876
    30AES Corp.US00130H1059demo_dvS1+S2benchmark_12.3551369706210651.858716770767351
    31Berkshire Hathaway, Inc.US0846707026demo_dvS1+S2benchmark_12.17692020168092351.8058852318287109
    32Fortis, Inc.CA3495531079demo_dvS1+S2benchmark_12.8141850673960112.8664495273593995
    33TENARIS SAUS88031M1099demo_dvS1+S2benchmark_11.38013628734843351.3464272251011569
    34UNITED STATES STEEL CORPUS9129091081demo_dvS1+S2benchmark_11.61676646740158431.4140505736427826
    35WORTHINGTON INDUSTRIES INCUS9818111026demo_dvS1+S2benchmark_11.26830573783031931.2673404048059607
    36PG&E Corp.US69331C1080demo_dvS1+S2benchmark_11.4119350865327291.3715781594384326
    37TERNIUM S.A.US8808901081demo_dvS1+S2benchmark_11.62886952112437731.4242417981921036
    38American Electric Power Co., Inc.US0255371017demo_dvS1+S2benchmark_12.48974545068038561.8730908991949726
    39FirstEnergy Corp.US3379321074demo_dvS1+S2benchmark_14.1791074570308452.70260544588831
    40OG&E Energy Corp.US6708371033demo_dvS1+S2benchmark_12.2152189120577452.929705859615633
    41CLEVELAND-CLIFFS INCUS1858991011demo_dvS1+S2benchmark_11.3052000794682131.2951308142680467
    42Duke Energy Corp.US26441C2044demo_dvS1+S2benchmark_11.89556553432109021.756298023368055
    43Evergy, Inc.US30034W1062demo_dvS1+S2benchmark_12.47970026387815651.8941968261146505
    44Pinnacle West Capital Corp.US7234841010demo_dvS1+S2benchmark_12.44519774338676751.7270093178004937
    45Nisource Inc.US65473P1057demo_dvS1+S2benchmark_12.77451470452262242.090636528579651
    46Southern Co.US8425871071demo_dvS1+S2benchmark_11.8910323254141892.1017262721991066
    47Tri-State Generation & Transmission Associatio...ZZ00000000180demo_dvS1+S2benchmark_14.0749855073000262.8541497409559127
    48Consolidated Edison, Inc.US2091151041demo_dvS1+S2benchmark_11.78334723032888581.6560798047931302
    49National Grid PLCUS6362744095demo_dvS1+S2benchmark_12.9193050299214712.1411082198666396
    50El Paso Electric CoUS283677AZ52demo_dvS1+S2benchmark_12.1594789391635221.5702465117614701
    51POSCOKR7005490008demo_dvS1+S2benchmark_11.6734256158444141.4452029158287243
    52STEEL DYNAMICS INCUS8581191009demo_dvS1+S2benchmark_11.33539392841006091.2963615316127104
    53CARPENTER TECHNOLOGY CORPUS1442851036demo_dvS1+S2benchmark_12.29576985171710121.6844114864737225
    \n", + "
    " + ], + "text/plain": [ + " company_name company_id source \\\n", + "0 ALLETE, Inc. US0185223007 demo_dv \n", + "1 Algonquin Power & Utilities Corp. US0158577090 demo_dv \n", + "2 Idacorp, Inc. US4511071064 demo_dv \n", + "3 Northwestern Corp. US6680743050 demo_dv \n", + "4 DTE Energy US2333311072 demo_dv \n", + "5 Eversource Energy US30040W1080 demo_dv \n", + "6 PPL Corp. US69351T1060 demo_dv \n", + "7 Sempra US8168511090 demo_dv \n", + "8 Xcel Energy, Inc. US98389B1008 demo_dv \n", + "9 Black Hills Corp. US0921131092 demo_dv \n", + "10 CMS Energy Corp. US1258961002 demo_dv \n", + "11 Dominion Energy US25746U1097 demo_dv \n", + "12 Old Dominion Electric Coop. ZZ00000000141 demo_dv \n", + "13 Public Service Enterprise Group US7445731067 demo_dv \n", + "14 Alliant Energy US0188021085 demo_dv \n", + "15 Entergy Corp. US29364G1031 demo_dv \n", + "16 PNM Resources, Inc. US69349H1077 demo_dv \n", + "17 Portland General Electric Co. US7365088472 demo_dv \n", + "18 Avista Corp. US05379B1070 demo_dv \n", + "19 TIMKENSTEEL CORP US8873991033 demo_dv \n", + "20 Hawaiian Electric Industries, Inc. US4198701009 demo_dv \n", + "21 Ameren Corp. US0236081024 demo_dv \n", + "22 Avangrid, Inc. US05351W1036 demo_dv \n", + "23 Cleco Partners LP US18551QAA58 demo_dv \n", + "24 GERDAU S.A. US3737371050 demo_dv \n", + "25 WEC Energy Group US92939U1060 demo_dv \n", + "26 COMMERCIAL METALS CO US2017231034 demo_dv \n", + "27 Edison International US2810201077 demo_dv \n", + "28 NUCOR CORP US6703461052 demo_dv \n", + "29 Otter Tail Corp. US6896481032 demo_dv \n", + "30 AES Corp. US00130H1059 demo_dv \n", + "31 Berkshire Hathaway, Inc. US0846707026 demo_dv \n", + "32 Fortis, Inc. CA3495531079 demo_dv \n", + "33 TENARIS SA US88031M1099 demo_dv \n", + "34 UNITED STATES STEEL CORP US9129091081 demo_dv \n", + "35 WORTHINGTON INDUSTRIES INC US9818111026 demo_dv \n", + "36 PG&E Corp. US69331C1080 demo_dv \n", + "37 TERNIUM S.A. US8808901081 demo_dv \n", + "38 American Electric Power Co., Inc. US0255371017 demo_dv \n", + "39 FirstEnergy Corp. US3379321074 demo_dv \n", + "40 OG&E Energy Corp. US6708371033 demo_dv \n", + "41 CLEVELAND-CLIFFS INC US1858991011 demo_dv \n", + "42 Duke Energy Corp. US26441C2044 demo_dv \n", + "43 Evergy, Inc. US30034W1062 demo_dv \n", + "44 Pinnacle West Capital Corp. US7234841010 demo_dv \n", + "45 Nisource Inc. US65473P1057 demo_dv \n", + "46 Southern Co. US8425871071 demo_dv \n", + "47 Tri-State Generation & Transmission Associatio... ZZ00000000180 demo_dv \n", + "48 Consolidated Edison, Inc. US2091151041 demo_dv \n", + "49 National Grid PLC US6362744095 demo_dv \n", + "50 El Paso Electric Co US283677AZ52 demo_dv \n", + "51 POSCO KR7005490008 demo_dv \n", + "52 STEEL DYNAMICS INC US8581191009 demo_dv \n", + "53 CARPENTER TECHNOLOGY CORP US1442851036 demo_dv \n", + "\n", + " scope benchmark trajectory_temperature_score target_temperature_score \n", + "0 S1+S2 benchmark_1 1.997417049909789 2.0901695283836217 \n", + "1 S1+S2 benchmark_1 1.2622489075053775 1.2624152250820424 \n", + "2 S1+S2 benchmark_1 1.8676022899726177 2.277606917005736 \n", + "3 S1+S2 benchmark_1 2.391304093052835 2.0793025091814186 \n", + "4 S1+S2 benchmark_1 2.6091902259287814 2.379216491775751 \n", + "5 S1+S2 benchmark_1 1.2628409825839846 1.2644301701927758 \n", + "6 S1+S2 benchmark_1 2.920060276831759 2.34916068618228 \n", + "7 S1+S2 benchmark_1 1.8111134105404485 1.925593255252446 \n", + "8 S1+S2 benchmark_1 2.015157185885931 1.7179382088171775 \n", + "9 S1+S2 benchmark_1 3.04184461666386 3.1354352983921223 \n", + "10 S1+S2 benchmark_1 2.3484520477982627 1.9155526969886063 \n", + "11 S1+S2 benchmark_1 1.6227512601234515 1.661573221927111 \n", + "12 S1+S2 benchmark_1 1.6293648535896375 1.7470015858435108 \n", + "13 S1+S2 benchmark_1 1.544721397863445 1.3420928255486166 \n", + "14 S1+S2 benchmark_1 1.7483606568416443 1.9857288762517797 \n", + "15 S1+S2 benchmark_1 1.8606687578364112 1.5937919247590187 \n", + "16 S1+S2 benchmark_1 2.269394512854396 1.7579421817864154 \n", + "17 S1+S2 benchmark_1 2.1966909832814006 1.5445623274403906 \n", + "18 S1+S2 benchmark_1 2.05866675939179 1.3611881118286184 \n", + "19 S1+S2 benchmark_1 1.3070727237175541 1.2808123857957467 \n", + "20 S1+S2 benchmark_1 3.7705817594291666 1.966103744166816 \n", + "21 S1+S2 benchmark_1 2.551377511816943 2.257145091380799 \n", + "22 S1+S2 benchmark_1 1.7268528930870772 1.5214380086973212 \n", + "23 S1+S2 benchmark_1 2.3054173371566073 2.2552022001649967 \n", + "24 S1+S2 benchmark_1 1.4109172347241234 1.340264075792371 \n", + "25 S1+S2 benchmark_1 1.9100425761684416 2.3150272749218583 \n", + "26 S1+S2 benchmark_1 1.3039798752099132 1.2941437041150645 \n", + "27 S1+S2 benchmark_1 1.312116276524954 1.4129397560495331 \n", + "28 S1+S2 benchmark_1 1.3380046417036604 1.2928557297900936 \n", + "29 S1+S2 benchmark_1 3.4400968991516425 2.498716396935876 \n", + "30 S1+S2 benchmark_1 2.355136970621065 1.858716770767351 \n", + "31 S1+S2 benchmark_1 2.1769202016809235 1.8058852318287109 \n", + "32 S1+S2 benchmark_1 2.814185067396011 2.8664495273593995 \n", + "33 S1+S2 benchmark_1 1.3801362873484335 1.3464272251011569 \n", + "34 S1+S2 benchmark_1 1.6167664674015843 1.4140505736427826 \n", + "35 S1+S2 benchmark_1 1.2683057378303193 1.2673404048059607 \n", + "36 S1+S2 benchmark_1 1.411935086532729 1.3715781594384326 \n", + "37 S1+S2 benchmark_1 1.6288695211243773 1.4242417981921036 \n", + "38 S1+S2 benchmark_1 2.4897454506803856 1.8730908991949726 \n", + "39 S1+S2 benchmark_1 4.179107457030845 2.70260544588831 \n", + "40 S1+S2 benchmark_1 2.215218912057745 2.929705859615633 \n", + "41 S1+S2 benchmark_1 1.305200079468213 1.2951308142680467 \n", + "42 S1+S2 benchmark_1 1.8955655343210902 1.756298023368055 \n", + "43 S1+S2 benchmark_1 2.4797002638781565 1.8941968261146505 \n", + "44 S1+S2 benchmark_1 2.4451977433867675 1.7270093178004937 \n", + "45 S1+S2 benchmark_1 2.7745147045226224 2.090636528579651 \n", + "46 S1+S2 benchmark_1 1.891032325414189 2.1017262721991066 \n", + "47 S1+S2 benchmark_1 4.074985507300026 2.8541497409559127 \n", + "48 S1+S2 benchmark_1 1.7833472303288858 1.6560798047931302 \n", + "49 S1+S2 benchmark_1 2.919305029921471 2.1411082198666396 \n", + "50 S1+S2 benchmark_1 2.159478939163522 1.5702465117614701 \n", + "51 S1+S2 benchmark_1 1.673425615844414 1.4452029158287243 \n", + "52 S1+S2 benchmark_1 1.3353939284100609 1.2963615316127104 \n", + "53 S1+S2 benchmark_1 2.2957698517171012 1.6844114864737225 " + ] + }, + "execution_count": 25, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ - "temp_score_df = requantify_df(sql_temp_score_df)\n", - "temp_score_df.trajectory_temperature_score = temp_score_df.trajectory_temperature_score.astype('pint[delta_degC]')\n", - "temp_score_df.target_temperature_score = temp_score_df.target_temperature_score.astype('pint[delta_degC]')" + "temp_score_df = requantify_df(sql_temp_score_df, typemap={'trajectory_temperature_score':'pint[delta_degC]', 'target_temperature_score':'pint[delta_degC]'})\n", + "temp_score_df" ] }, { From 9b3ac7572eb2e2aa0a385c3bd49afd5ac1d02740 Mon Sep 17 00:00:00 2001 From: MichaelTiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> Date: Thu, 5 May 2022 16:58:18 -0400 Subject: [PATCH 206/345] Fresh run to put cell output numbers in order No code changes. Just re-running notebooks from clean start before pushing. Signed-off-by: MichaelTiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- examples/vault_demo_n0.ipynb | 378 +++++++------- examples/vault_demo_n1.ipynb | 970 +++++++++++++++++------------------ 2 files changed, 674 insertions(+), 674 deletions(-) diff --git a/examples/vault_demo_n0.ipynb b/examples/vault_demo_n0.ipynb index 852baf7f..fcd98fa9 100644 --- a/examples/vault_demo_n0.ipynb +++ b/examples/vault_demo_n0.ipynb @@ -299,7 +299,7 @@ }, { "cell_type": "code", - "execution_count": 14, + "execution_count": 5, "id": "3d18b584-de49-4344-932b-2302d3976794", "metadata": { "tags": [] @@ -402,61 +402,61 @@ " 549300VDHNFNPADSSV98\n", " ZZ00000000180\n", " Electricity Utilities\n", - " 2030\n", + " 2044\n", " 4.047107e+00\n", " CO2 * megametric_ton\n", - " 0.0\n", + " 0.00\n", " CO2 * megametric_ton\n", " \n", " \n", " 1\n", + " Tri-State Generation & Transmission Associatio...\n", + " 549300VDHNFNPADSSV98\n", + " ZZ00000000180\n", + " Electricity Utilities\n", + " 2045\n", + " 4.047107e+00\n", + " CO2 * megametric_ton\n", + " 0.00\n", + " CO2 * megametric_ton\n", + " \n", + " \n", + " 2\n", + " AES Corp.\n", + " 2NUNNB7D43COUIRE5295\n", + " US00130H1059\n", + " Electricity Utilities\n", + " 2044\n", + " 0.000000e+00\n", + " CO2 * megametric_ton\n", + " 0.00\n", + " CO2 * megametric_ton\n", + " \n", + " \n", + " 3\n", " UNITED STATES STEEL CORP\n", " JNLUVFYJT1OZSIQ24U47\n", " US9129091081\n", " Steel\n", - " 2030\n", - " 2.600000e+07\n", + " 2044\n", + " 7.800000e+06\n", " CO2 * metric_ton\n", - " 2640000.0\n", + " 792000.00\n", " CO2 * metric_ton\n", " \n", " \n", - " 2\n", + " 4\n", " Valtec Power\n", " RMI00000000000000015\n", " ZZ00000000015\n", " Electricity Utilities\n", - " 2030\n", + " 2044\n", " 0.000000e+00\n", " CO2 * megametric_ton\n", - " 0.0\n", - " CO2 * megametric_ton\n", - " \n", - " \n", - " 3\n", - " WEC Energy Group\n", - " 549300IGLYTZUK3PVP70\n", - " US92939U1060\n", - " Electricity Utilities\n", - " 2030\n", - " 7.166047e+00\n", - " CO2 * megametric_ton\n", - " 0.0\n", + " 0.00\n", " CO2 * megametric_ton\n", " \n", " \n", - " 4\n", - " WORTHINGTON INDUSTRIES INC\n", - " 1WRCIANKYOIK6KYE5E82\n", - " US9818111026\n", - " Steel\n", - " 2030\n", - " 1.259577e+05\n", - " CO2 * metric_ton\n", - " 123170.6\n", - " CO2 * metric_ton\n", - " \n", - " \n", " ...\n", " ...\n", " ...\n", @@ -470,63 +470,63 @@ " \n", " \n", " 2216\n", - " Sempra\n", - " PBBKGKLRK5S5C0Y4T545\n", - " US8168511090\n", - " Electricity Utilities\n", - " 2016\n", - " 9.332563e-01\n", - " CO2 * megametric_ton\n", - " 0.0\n", - " CO2 * megametric_ton\n", + " UNITED STATES STEEL CORP\n", + " JNLUVFYJT1OZSIQ24U47\n", + " US9129091081\n", + " Steel\n", + " 2026\n", + " 2.540000e+07\n", + " CO2 * metric_ton\n", + " 2384000.00\n", + " CO2 * metric_ton\n", " \n", " \n", " 2217\n", - " Southern Co.\n", - " 549300FC3G3YU2FBZD92\n", - " US8425871071\n", + " Valtec Power\n", + " RMI00000000000000015\n", + " ZZ00000000015\n", " Electricity Utilities\n", - " 2016\n", - " 7.315806e+01\n", + " 2026\n", + " 0.000000e+00\n", " CO2 * megametric_ton\n", - " 0.0\n", + " 0.00\n", " CO2 * megametric_ton\n", " \n", " \n", " 2218\n", - " TENARIS SA\n", - " 549300Y7C05BKC4HZB40\n", - " US88031M1099\n", - " Steel\n", - " 2016\n", - " 2.000000e+06\n", - " CO2 * metric_ton\n", - " 1000000.0\n", - " CO2 * metric_ton\n", + " WEC Energy Group\n", + " 549300IGLYTZUK3PVP70\n", + " US92939U1060\n", + " Electricity Utilities\n", + " 2026\n", + " 1.276413e+01\n", + " CO2 * megametric_ton\n", + " 0.00\n", + " CO2 * megametric_ton\n", " \n", " \n", " 2219\n", - " TERNIUM S.A.\n", - " 529900QG4KU23TEI2E46\n", - " US8808901081\n", + " WORTHINGTON INDUSTRIES INC\n", + " 1WRCIANKYOIK6KYE5E82\n", + " US9818111026\n", " Steel\n", - " 2016\n", - " 1.774456e+07\n", + " 2026\n", + " 1.277770e+05\n", " CO2 * metric_ton\n", - " 858941.0\n", + " 129582.76\n", " CO2 * metric_ton\n", " \n", " \n", " 2220\n", - " TIMKENSTEEL CORP\n", - " 549300QZTZWHDE9HJL14\n", - " US8873991033\n", - " Steel\n", - " 2016\n", - " 9.966000e+04\n", - " CO2 * metric_ton\n", - " 371530.0\n", - " CO2 * metric_ton\n", + " Xcel Energy, Inc.\n", + " LGJNMI9GH8XIDG5RCM61\n", + " US98389B1008\n", + " Electricity Utilities\n", + " 2026\n", + " 2.123984e+01\n", + " CO2 * megametric_ton\n", + " 0.00\n", + " CO2 * megametric_ton\n", " \n", " \n", "\n", @@ -536,42 +536,42 @@ "text/plain": [ " company_name company_lei \\\n", "0 Tri-State Generation & Transmission Associatio... 549300VDHNFNPADSSV98 \n", - "1 UNITED STATES STEEL CORP JNLUVFYJT1OZSIQ24U47 \n", - "2 Valtec Power RMI00000000000000015 \n", - "3 WEC Energy Group 549300IGLYTZUK3PVP70 \n", - "4 WORTHINGTON INDUSTRIES INC 1WRCIANKYOIK6KYE5E82 \n", + "1 Tri-State Generation & Transmission Associatio... 549300VDHNFNPADSSV98 \n", + "2 AES Corp. 2NUNNB7D43COUIRE5295 \n", + "3 UNITED STATES STEEL CORP JNLUVFYJT1OZSIQ24U47 \n", + "4 Valtec Power RMI00000000000000015 \n", "... ... ... \n", - "2216 Sempra PBBKGKLRK5S5C0Y4T545 \n", - "2217 Southern Co. 549300FC3G3YU2FBZD92 \n", - "2218 TENARIS SA 549300Y7C05BKC4HZB40 \n", - "2219 TERNIUM S.A. 529900QG4KU23TEI2E46 \n", - "2220 TIMKENSTEEL CORP 549300QZTZWHDE9HJL14 \n", + "2216 UNITED STATES STEEL CORP JNLUVFYJT1OZSIQ24U47 \n", + "2217 Valtec Power RMI00000000000000015 \n", + "2218 WEC Energy Group 549300IGLYTZUK3PVP70 \n", + "2219 WORTHINGTON INDUSTRIES INC 1WRCIANKYOIK6KYE5E82 \n", + "2220 Xcel Energy, Inc. LGJNMI9GH8XIDG5RCM61 \n", "\n", " company_id sector year co2_s1_by_year \\\n", - "0 ZZ00000000180 Electricity Utilities 2030 4.047107e+00 \n", - "1 US9129091081 Steel 2030 2.600000e+07 \n", - "2 ZZ00000000015 Electricity Utilities 2030 0.000000e+00 \n", - "3 US92939U1060 Electricity Utilities 2030 7.166047e+00 \n", - "4 US9818111026 Steel 2030 1.259577e+05 \n", + "0 ZZ00000000180 Electricity Utilities 2044 4.047107e+00 \n", + "1 ZZ00000000180 Electricity Utilities 2045 4.047107e+00 \n", + "2 US00130H1059 Electricity Utilities 2044 0.000000e+00 \n", + "3 US9129091081 Steel 2044 7.800000e+06 \n", + "4 ZZ00000000015 Electricity Utilities 2044 0.000000e+00 \n", "... ... ... ... ... \n", - "2216 US8168511090 Electricity Utilities 2016 9.332563e-01 \n", - "2217 US8425871071 Electricity Utilities 2016 7.315806e+01 \n", - "2218 US88031M1099 Steel 2016 2.000000e+06 \n", - "2219 US8808901081 Steel 2016 1.774456e+07 \n", - "2220 US8873991033 Steel 2016 9.966000e+04 \n", + "2216 US9129091081 Steel 2026 2.540000e+07 \n", + "2217 ZZ00000000015 Electricity Utilities 2026 0.000000e+00 \n", + "2218 US92939U1060 Electricity Utilities 2026 1.276413e+01 \n", + "2219 US9818111026 Steel 2026 1.277770e+05 \n", + "2220 US98389B1008 Electricity Utilities 2026 2.123984e+01 \n", "\n", " co2_s1_by_year_units co2_s2_by_year co2_s2_by_year_units \n", - "0 CO2 * megametric_ton 0.0 CO2 * megametric_ton \n", - "1 CO2 * metric_ton 2640000.0 CO2 * metric_ton \n", - "2 CO2 * megametric_ton 0.0 CO2 * megametric_ton \n", - "3 CO2 * megametric_ton 0.0 CO2 * megametric_ton \n", - "4 CO2 * metric_ton 123170.6 CO2 * metric_ton \n", + "0 CO2 * megametric_ton 0.00 CO2 * megametric_ton \n", + "1 CO2 * megametric_ton 0.00 CO2 * megametric_ton \n", + "2 CO2 * megametric_ton 0.00 CO2 * megametric_ton \n", + "3 CO2 * metric_ton 792000.00 CO2 * metric_ton \n", + "4 CO2 * megametric_ton 0.00 CO2 * megametric_ton \n", "... ... ... ... \n", - "2216 CO2 * megametric_ton 0.0 CO2 * megametric_ton \n", - "2217 CO2 * megametric_ton 0.0 CO2 * megametric_ton \n", - "2218 CO2 * metric_ton 1000000.0 CO2 * metric_ton \n", - "2219 CO2 * metric_ton 858941.0 CO2 * metric_ton \n", - "2220 CO2 * metric_ton 371530.0 CO2 * metric_ton \n", + "2216 CO2 * metric_ton 2384000.00 CO2 * metric_ton \n", + "2217 CO2 * megametric_ton 0.00 CO2 * megametric_ton \n", + "2218 CO2 * megametric_ton 0.00 CO2 * megametric_ton \n", + "2219 CO2 * metric_ton 129582.76 CO2 * metric_ton \n", + "2220 CO2 * megametric_ton 0.00 CO2 * megametric_ton \n", "\n", "[2221 rows x 9 columns]" ] @@ -591,7 +591,7 @@ }, { "cell_type": "code", - "execution_count": 15, + "execution_count": 7, "id": "463b78e4-ca3a-4af1-bc4d-f301d4e6b402", "metadata": {}, "outputs": [ @@ -642,49 +642,49 @@ " 549300VDHNFNPADSSV98\n", " ZZ00000000180\n", " Electricity Utilities\n", - " 2030\n", + " 2044\n", " 4047107.450753776\n", " 0.0\n", " \n", " \n", " 1\n", - " UNITED STATES STEEL CORP\n", - " JNLUVFYJT1OZSIQ24U47\n", - " US9129091081\n", - " Steel\n", - " 2030\n", - " 26000000.0\n", - " 2640000.0\n", + " Tri-State Generation & Transmission Associatio...\n", + " 549300VDHNFNPADSSV98\n", + " ZZ00000000180\n", + " Electricity Utilities\n", + " 2045\n", + " 4047107.450753776\n", + " 0.0\n", " \n", " \n", " 2\n", - " Valtec Power\n", - " RMI00000000000000015\n", - " ZZ00000000015\n", + " AES Corp.\n", + " 2NUNNB7D43COUIRE5295\n", + " US00130H1059\n", " Electricity Utilities\n", - " 2030\n", + " 2044\n", " 0.0\n", " 0.0\n", " \n", " \n", " 3\n", - " WEC Energy Group\n", - " 549300IGLYTZUK3PVP70\n", - " US92939U1060\n", - " Electricity Utilities\n", - " 2030\n", - " 7166046.956973683\n", - " 0.0\n", + " UNITED STATES STEEL CORP\n", + " JNLUVFYJT1OZSIQ24U47\n", + " US9129091081\n", + " Steel\n", + " 2044\n", + " 7800000.0\n", + " 792000.0\n", " \n", " \n", " 4\n", - " WORTHINGTON INDUSTRIES INC\n", - " 1WRCIANKYOIK6KYE5E82\n", - " US9818111026\n", - " Steel\n", - " 2030\n", - " 125957.7\n", - " 123170.6\n", + " Valtec Power\n", + " RMI00000000000000015\n", + " ZZ00000000015\n", + " Electricity Utilities\n", + " 2044\n", + " 0.0\n", + " 0.0\n", " \n", " \n", " ...\n", @@ -698,53 +698,53 @@ " \n", " \n", " 2216\n", - " Sempra\n", - " PBBKGKLRK5S5C0Y4T545\n", - " US8168511090\n", - " Electricity Utilities\n", - " 2016\n", - " 933256.3103050552\n", - " 0.0\n", + " UNITED STATES STEEL CORP\n", + " JNLUVFYJT1OZSIQ24U47\n", + " US9129091081\n", + " Steel\n", + " 2026\n", + " 25400000.0\n", + " 2384000.0\n", " \n", " \n", " 2217\n", - " Southern Co.\n", - " 549300FC3G3YU2FBZD92\n", - " US8425871071\n", + " Valtec Power\n", + " RMI00000000000000015\n", + " ZZ00000000015\n", " Electricity Utilities\n", - " 2016\n", - " 73158060.13910046\n", + " 2026\n", + " 0.0\n", " 0.0\n", " \n", " \n", " 2218\n", - " TENARIS SA\n", - " 549300Y7C05BKC4HZB40\n", - " US88031M1099\n", - " Steel\n", - " 2016\n", - " 2000000.0\n", - " 1000000.0\n", + " WEC Energy Group\n", + " 549300IGLYTZUK3PVP70\n", + " US92939U1060\n", + " Electricity Utilities\n", + " 2026\n", + " 12764133.75445884\n", + " 0.0\n", " \n", " \n", " 2219\n", - " TERNIUM S.A.\n", - " 529900QG4KU23TEI2E46\n", - " US8808901081\n", + " WORTHINGTON INDUSTRIES INC\n", + " 1WRCIANKYOIK6KYE5E82\n", + " US9818111026\n", " Steel\n", - " 2016\n", - " 17744560.0\n", - " 858941.0\n", + " 2026\n", + " 127777.02\n", + " 129582.76\n", " \n", " \n", " 2220\n", - " TIMKENSTEEL CORP\n", - " 549300QZTZWHDE9HJL14\n", - " US8873991033\n", - " Steel\n", - " 2016\n", - " 99660.0\n", - " 371530.0\n", + " Xcel Energy, Inc.\n", + " LGJNMI9GH8XIDG5RCM61\n", + " US98389B1008\n", + " Electricity Utilities\n", + " 2026\n", + " 21239836.47235034\n", + " 0.0\n", " \n", " \n", "\n", @@ -754,47 +754,47 @@ "text/plain": [ " company_name company_lei \\\n", "0 Tri-State Generation & Transmission Associatio... 549300VDHNFNPADSSV98 \n", - "1 UNITED STATES STEEL CORP JNLUVFYJT1OZSIQ24U47 \n", - "2 Valtec Power RMI00000000000000015 \n", - "3 WEC Energy Group 549300IGLYTZUK3PVP70 \n", - "4 WORTHINGTON INDUSTRIES INC 1WRCIANKYOIK6KYE5E82 \n", + "1 Tri-State Generation & Transmission Associatio... 549300VDHNFNPADSSV98 \n", + "2 AES Corp. 2NUNNB7D43COUIRE5295 \n", + "3 UNITED STATES STEEL CORP JNLUVFYJT1OZSIQ24U47 \n", + "4 Valtec Power RMI00000000000000015 \n", "... ... ... \n", - "2216 Sempra PBBKGKLRK5S5C0Y4T545 \n", - "2217 Southern Co. 549300FC3G3YU2FBZD92 \n", - "2218 TENARIS SA 549300Y7C05BKC4HZB40 \n", - "2219 TERNIUM S.A. 529900QG4KU23TEI2E46 \n", - "2220 TIMKENSTEEL CORP 549300QZTZWHDE9HJL14 \n", + "2216 UNITED STATES STEEL CORP JNLUVFYJT1OZSIQ24U47 \n", + "2217 Valtec Power RMI00000000000000015 \n", + "2218 WEC Energy Group 549300IGLYTZUK3PVP70 \n", + "2219 WORTHINGTON INDUSTRIES INC 1WRCIANKYOIK6KYE5E82 \n", + "2220 Xcel Energy, Inc. LGJNMI9GH8XIDG5RCM61 \n", "\n", " company_id sector year co2_s1_by_year \\\n", - "0 ZZ00000000180 Electricity Utilities 2030 4047107.450753776 \n", - "1 US9129091081 Steel 2030 26000000.0 \n", - "2 ZZ00000000015 Electricity Utilities 2030 0.0 \n", - "3 US92939U1060 Electricity Utilities 2030 7166046.956973683 \n", - "4 US9818111026 Steel 2030 125957.7 \n", + "0 ZZ00000000180 Electricity Utilities 2044 4047107.450753776 \n", + "1 ZZ00000000180 Electricity Utilities 2045 4047107.450753776 \n", + "2 US00130H1059 Electricity Utilities 2044 0.0 \n", + "3 US9129091081 Steel 2044 7800000.0 \n", + "4 ZZ00000000015 Electricity Utilities 2044 0.0 \n", "... ... ... ... ... \n", - "2216 US8168511090 Electricity Utilities 2016 933256.3103050552 \n", - "2217 US8425871071 Electricity Utilities 2016 73158060.13910046 \n", - "2218 US88031M1099 Steel 2016 2000000.0 \n", - "2219 US8808901081 Steel 2016 17744560.0 \n", - "2220 US8873991033 Steel 2016 99660.0 \n", + "2216 US9129091081 Steel 2026 25400000.0 \n", + "2217 ZZ00000000015 Electricity Utilities 2026 0.0 \n", + "2218 US92939U1060 Electricity Utilities 2026 12764133.75445884 \n", + "2219 US9818111026 Steel 2026 127777.02 \n", + "2220 US98389B1008 Electricity Utilities 2026 21239836.47235034 \n", "\n", " co2_s2_by_year \n", "0 0.0 \n", - "1 2640000.0 \n", + "1 0.0 \n", "2 0.0 \n", - "3 0.0 \n", - "4 123170.6 \n", + "3 792000.0 \n", + "4 0.0 \n", "... ... \n", - "2216 0.0 \n", + "2216 2384000.0 \n", "2217 0.0 \n", - "2218 1000000.0 \n", - "2219 858941.0 \n", - "2220 371530.0 \n", + "2218 0.0 \n", + "2219 129582.76 \n", + "2220 0.0 \n", "\n", "[2147 rows x 7 columns]" ] }, - "execution_count": 15, + "execution_count": 7, "metadata": {}, "output_type": "execute_result" } @@ -806,7 +806,7 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": 8, "id": "c515b6a5-bfb8-4dc5-81bd-9fe6389be42e", "metadata": {}, "outputs": [ @@ -823,7 +823,7 @@ "dtype: object" ] }, - "execution_count": 13, + "execution_count": 8, "metadata": {}, "output_type": "execute_result" } diff --git a/examples/vault_demo_n1.ipynb b/examples/vault_demo_n1.ipynb index da08fc30..d51679cf 100644 --- a/examples/vault_demo_n1.ipynb +++ b/examples/vault_demo_n1.ipynb @@ -192,7 +192,7 @@ }, { "cell_type": "code", - "execution_count": 24, + "execution_count": 7, "id": "3d18b584-de49-4344-932b-2302d3976794", "metadata": { "tags": [] @@ -271,7 +271,7 @@ }, { "cell_type": "code", - "execution_count": 25, + "execution_count": 9, "id": "1ae21697-98f1-4901-bd32-b4856555b809", "metadata": {}, "outputs": [ @@ -318,226 +318,216 @@ " \n", " \n", " 0\n", - " ALLETE, Inc.\n", - " US0185223007\n", + " DTE Energy\n", + " US2333311072\n", " demo_dv\n", " S1+S2\n", " benchmark_1\n", - " 1.997417049909789\n", - " 2.0901695283836217\n", + " 2.6091902259287814\n", + " 2.379216491775751\n", " \n", " \n", " 1\n", - " Algonquin Power & Utilities Corp.\n", - " US0158577090\n", + " Eversource Energy\n", + " US30040W1080\n", " demo_dv\n", " S1+S2\n", " benchmark_1\n", - " 1.2622489075053775\n", - " 1.2624152250820424\n", + " 1.2628409825839846\n", + " 1.2644301701927758\n", " \n", " \n", " 2\n", - " Idacorp, Inc.\n", - " US4511071064\n", + " PPL Corp.\n", + " US69351T1060\n", " demo_dv\n", " S1+S2\n", " benchmark_1\n", - " 1.8676022899726177\n", - " 2.277606917005736\n", + " 2.9200602768317596\n", + " 2.3491606861822802\n", " \n", " \n", " 3\n", - " Northwestern Corp.\n", - " US6680743050\n", + " CMS Energy Corp.\n", + " US1258961002\n", " demo_dv\n", " S1+S2\n", " benchmark_1\n", - " 2.391304093052835\n", - " 2.0793025091814186\n", + " 2.348452047798262\n", + " 1.9155526969886063\n", " \n", " \n", " 4\n", - " DTE Energy\n", - " US2333311072\n", + " Dominion Energy\n", + " US25746U1097\n", " demo_dv\n", " S1+S2\n", " benchmark_1\n", - " 2.6091902259287814\n", - " 2.379216491775751\n", + " 1.6227512601234515\n", + " 1.661573221927111\n", " \n", " \n", " 5\n", - " Eversource Energy\n", - " US30040W1080\n", + " Old Dominion Electric Coop.\n", + " ZZ00000000141\n", " demo_dv\n", " S1+S2\n", " benchmark_1\n", - " 1.2628409825839846\n", - " 1.2644301701927758\n", + " 1.6293648535896375\n", + " 1.747001585843511\n", " \n", " \n", " 6\n", - " PPL Corp.\n", - " US69351T1060\n", + " Public Service Enterprise Group\n", + " US7445731067\n", " demo_dv\n", " S1+S2\n", " benchmark_1\n", - " 2.920060276831759\n", - " 2.34916068618228\n", + " 1.544721397863445\n", + " 1.3420928255486166\n", " \n", " \n", " 7\n", - " Sempra\n", - " US8168511090\n", + " ALLETE, Inc.\n", + " US0185223007\n", " demo_dv\n", " S1+S2\n", " benchmark_1\n", - " 1.8111134105404485\n", - " 1.925593255252446\n", + " 1.997417049909789\n", + " 2.0901695283836217\n", " \n", " \n", " 8\n", - " Xcel Energy, Inc.\n", - " US98389B1008\n", + " Algonquin Power & Utilities Corp.\n", + " US0158577090\n", " demo_dv\n", " S1+S2\n", " benchmark_1\n", - " 2.015157185885931\n", - " 1.7179382088171775\n", + " 1.2622489075053775\n", + " 1.2624152250820424\n", " \n", " \n", " 9\n", - " Black Hills Corp.\n", - " US0921131092\n", + " Idacorp, Inc.\n", + " US4511071064\n", " demo_dv\n", " S1+S2\n", " benchmark_1\n", - " 3.04184461666386\n", - " 3.1354352983921223\n", + " 1.8676022899726177\n", + " 2.277606917005736\n", " \n", " \n", " 10\n", - " CMS Energy Corp.\n", - " US1258961002\n", + " Northwestern Corp.\n", + " US6680743050\n", " demo_dv\n", " S1+S2\n", " benchmark_1\n", - " 2.3484520477982627\n", - " 1.9155526969886063\n", + " 2.3913040930528355\n", + " 2.079302509181419\n", " \n", " \n", " 11\n", - " Dominion Energy\n", - " US25746U1097\n", + " Sempra\n", + " US8168511090\n", " demo_dv\n", " S1+S2\n", " benchmark_1\n", - " 1.6227512601234515\n", - " 1.661573221927111\n", + " 1.8111134105404487\n", + " 1.925593255252446\n", " \n", " \n", " 12\n", - " Old Dominion Electric Coop.\n", - " ZZ00000000141\n", + " Hawaiian Electric Industries, Inc.\n", + " US4198701009\n", " demo_dv\n", " S1+S2\n", " benchmark_1\n", - " 1.6293648535896375\n", - " 1.7470015858435108\n", + " 3.770581759429166\n", + " 1.9661037441668163\n", " \n", " \n", " 13\n", - " Public Service Enterprise Group\n", - " US7445731067\n", + " Xcel Energy, Inc.\n", + " US98389B1008\n", " demo_dv\n", " S1+S2\n", " benchmark_1\n", - " 1.544721397863445\n", - " 1.3420928255486166\n", + " 2.015157185885931\n", + " 1.7179382088171773\n", " \n", " \n", " 14\n", - " Alliant Energy\n", - " US0188021085\n", + " Black Hills Corp.\n", + " US0921131092\n", " demo_dv\n", " S1+S2\n", " benchmark_1\n", - " 1.7483606568416443\n", - " 1.9857288762517797\n", + " 3.0418446166638597\n", + " 3.1354352983921228\n", " \n", " \n", " 15\n", - " Entergy Corp.\n", - " US29364G1031\n", + " WEC Energy Group\n", + " US92939U1060\n", " demo_dv\n", " S1+S2\n", " benchmark_1\n", - " 1.8606687578364112\n", - " 1.5937919247590187\n", + " 1.9100425761684416\n", + " 2.315027274921859\n", " \n", " \n", " 16\n", - " PNM Resources, Inc.\n", - " US69349H1077\n", + " COMMERCIAL METALS CO\n", + " US2017231034\n", " demo_dv\n", " S1+S2\n", " benchmark_1\n", - " 2.269394512854396\n", - " 1.7579421817864154\n", + " 1.3039798752099132\n", + " 1.2941437041150645\n", " \n", " \n", " 17\n", - " Portland General Electric Co.\n", - " US7365088472\n", + " Edison International\n", + " US2810201077\n", " demo_dv\n", " S1+S2\n", " benchmark_1\n", - " 2.1966909832814006\n", - " 1.5445623274403906\n", + " 1.312116276524954\n", + " 1.4129397560495331\n", " \n", " \n", " 18\n", - " Avista Corp.\n", - " US05379B1070\n", + " NUCOR CORP\n", + " US6703461052\n", " demo_dv\n", " S1+S2\n", " benchmark_1\n", - " 2.05866675939179\n", - " 1.3611881118286184\n", + " 1.3380046417036604\n", + " 1.2928557297900936\n", " \n", " \n", " 19\n", - " TIMKENSTEEL CORP\n", - " US8873991033\n", + " Otter Tail Corp.\n", + " US6896481032\n", " demo_dv\n", " S1+S2\n", " benchmark_1\n", - " 1.3070727237175541\n", - " 1.2808123857957467\n", + " 3.440096899151643\n", + " 2.498716396935876\n", " \n", " \n", " 20\n", - " Hawaiian Electric Industries, Inc.\n", - " US4198701009\n", + " TENARIS SA\n", + " US88031M1099\n", " demo_dv\n", " S1+S2\n", " benchmark_1\n", - " 3.7705817594291666\n", - " 1.966103744166816\n", + " 1.3801362873484335\n", + " 1.3464272251011569\n", " \n", " \n", " 21\n", - " Ameren Corp.\n", - " US0236081024\n", - " demo_dv\n", - " S1+S2\n", - " benchmark_1\n", - " 2.551377511816943\n", - " 2.257145091380799\n", - " \n", - " \n", - " 22\n", " Avangrid, Inc.\n", " US05351W1036\n", " demo_dv\n", @@ -547,17 +537,17 @@ " 1.5214380086973212\n", " \n", " \n", - " 23\n", + " 22\n", " Cleco Partners LP\n", " US18551QAA58\n", " demo_dv\n", " S1+S2\n", " benchmark_1\n", " 2.3054173371566073\n", - " 2.2552022001649967\n", + " 2.2552022001649963\n", " \n", " \n", - " 24\n", + " 23\n", " GERDAU S.A.\n", " US3737371050\n", " demo_dv\n", @@ -567,294 +557,304 @@ " 1.340264075792371\n", " \n", " \n", + " 24\n", + " Ameren Corp.\n", + " US0236081024\n", + " demo_dv\n", + " S1+S2\n", + " benchmark_1\n", + " 2.5513775118169426\n", + " 2.2571450913807984\n", + " \n", + " \n", " 25\n", - " WEC Energy Group\n", - " US92939U1060\n", + " Avista Corp.\n", + " US05379B1070\n", " demo_dv\n", " S1+S2\n", " benchmark_1\n", - " 1.9100425761684416\n", - " 2.3150272749218583\n", + " 2.05866675939179\n", + " 1.3611881118286184\n", " \n", " \n", " 26\n", - " COMMERCIAL METALS CO\n", - " US2017231034\n", + " TIMKENSTEEL CORP\n", + " US8873991033\n", " demo_dv\n", " S1+S2\n", " benchmark_1\n", - " 1.3039798752099132\n", - " 1.2941437041150645\n", + " 1.3070727237175541\n", + " 1.2808123857957467\n", " \n", " \n", " 27\n", - " Edison International\n", - " US2810201077\n", + " CARPENTER TECHNOLOGY CORP\n", + " US1442851036\n", " demo_dv\n", " S1+S2\n", " benchmark_1\n", - " 1.312116276524954\n", - " 1.4129397560495331\n", + " 2.295769851717101\n", + " 1.6844114864737225\n", " \n", " \n", " 28\n", - " NUCOR CORP\n", - " US6703461052\n", + " Entergy Corp.\n", + " US29364G1031\n", " demo_dv\n", " S1+S2\n", " benchmark_1\n", - " 1.3380046417036604\n", - " 1.2928557297900936\n", + " 1.860668757836411\n", + " 1.5937919247590187\n", " \n", " \n", " 29\n", - " Otter Tail Corp.\n", - " US6896481032\n", + " PNM Resources, Inc.\n", + " US69349H1077\n", " demo_dv\n", " S1+S2\n", " benchmark_1\n", - " 3.4400968991516425\n", - " 2.498716396935876\n", + " 2.2693945128543964\n", + " 1.7579421817864156\n", " \n", " \n", " 30\n", - " AES Corp.\n", - " US00130H1059\n", + " Portland General Electric Co.\n", + " US7365088472\n", " demo_dv\n", " S1+S2\n", " benchmark_1\n", - " 2.355136970621065\n", - " 1.858716770767351\n", + " 2.1966909832814\n", + " 1.5445623274403906\n", " \n", " \n", " 31\n", - " Berkshire Hathaway, Inc.\n", - " US0846707026\n", + " Tri-State Generation & Transmission Associatio...\n", + " ZZ00000000180\n", " demo_dv\n", " S1+S2\n", " benchmark_1\n", - " 2.1769202016809235\n", - " 1.8058852318287109\n", + " 4.074985507300026\n", + " 2.8541497409559122\n", " \n", " \n", " 32\n", - " Fortis, Inc.\n", - " CA3495531079\n", + " Consolidated Edison, Inc.\n", + " US2091151041\n", " demo_dv\n", " S1+S2\n", " benchmark_1\n", - " 2.814185067396011\n", - " 2.8664495273593995\n", + " 1.7833472303288853\n", + " 1.6560798047931302\n", " \n", " \n", " 33\n", - " TENARIS SA\n", - " US88031M1099\n", + " National Grid PLC\n", + " US6362744095\n", " demo_dv\n", " S1+S2\n", " benchmark_1\n", - " 1.3801362873484335\n", - " 1.3464272251011569\n", + " 2.919305029921471\n", + " 2.1411082198666396\n", " \n", " \n", " 34\n", - " UNITED STATES STEEL CORP\n", - " US9129091081\n", + " CLEVELAND-CLIFFS INC\n", + " US1858991011\n", " demo_dv\n", " S1+S2\n", " benchmark_1\n", - " 1.6167664674015843\n", - " 1.4140505736427826\n", + " 1.305200079468213\n", + " 1.2951308142680467\n", " \n", " \n", " 35\n", - " WORTHINGTON INDUSTRIES INC\n", - " US9818111026\n", + " Duke Energy Corp.\n", + " US26441C2044\n", " demo_dv\n", " S1+S2\n", " benchmark_1\n", - " 1.2683057378303193\n", - " 1.2673404048059607\n", + " 1.89556553432109\n", + " 1.756298023368055\n", " \n", " \n", " 36\n", - " PG&E Corp.\n", - " US69331C1080\n", + " Evergy, Inc.\n", + " US30034W1062\n", " demo_dv\n", " S1+S2\n", " benchmark_1\n", - " 1.411935086532729\n", - " 1.3715781594384326\n", + " 2.479700263878156\n", + " 1.89419682611465\n", " \n", " \n", " 37\n", - " TERNIUM S.A.\n", - " US8808901081\n", + " Pinnacle West Capital Corp.\n", + " US7234841010\n", " demo_dv\n", " S1+S2\n", " benchmark_1\n", - " 1.6288695211243773\n", - " 1.4242417981921036\n", + " 2.4451977433867675\n", + " 1.7270093178004937\n", " \n", " \n", " 38\n", - " American Electric Power Co., Inc.\n", - " US0255371017\n", + " El Paso Electric Co\n", + " US283677AZ52\n", " demo_dv\n", " S1+S2\n", " benchmark_1\n", - " 2.4897454506803856\n", - " 1.8730908991949726\n", + " 2.1594789391635216\n", + " 1.5702465117614701\n", " \n", " \n", " 39\n", - " FirstEnergy Corp.\n", - " US3379321074\n", + " POSCO\n", + " KR7005490008\n", " demo_dv\n", " S1+S2\n", " benchmark_1\n", - " 4.179107457030845\n", - " 2.70260544588831\n", + " 1.673425615844414\n", + " 1.4452029158287243\n", " \n", " \n", " 40\n", - " OG&E Energy Corp.\n", - " US6708371033\n", + " STEEL DYNAMICS INC\n", + " US8581191009\n", " demo_dv\n", " S1+S2\n", " benchmark_1\n", - " 2.215218912057745\n", - " 2.929705859615633\n", + " 1.3353939284100609\n", + " 1.2963615316127104\n", " \n", " \n", " 41\n", - " CLEVELAND-CLIFFS INC\n", - " US1858991011\n", + " Nisource Inc.\n", + " US65473P1057\n", " demo_dv\n", " S1+S2\n", " benchmark_1\n", - " 1.305200079468213\n", - " 1.2951308142680467\n", + " 2.7745147045226224\n", + " 2.090636528579651\n", " \n", " \n", " 42\n", - " Duke Energy Corp.\n", - " US26441C2044\n", + " Southern Co.\n", + " US8425871071\n", " demo_dv\n", " S1+S2\n", " benchmark_1\n", - " 1.8955655343210902\n", - " 1.756298023368055\n", + " 1.8910323254141892\n", + " 2.101726272199106\n", " \n", " \n", " 43\n", - " Evergy, Inc.\n", - " US30034W1062\n", + " Alliant Energy\n", + " US0188021085\n", " demo_dv\n", " S1+S2\n", " benchmark_1\n", - " 2.4797002638781565\n", - " 1.8941968261146505\n", + " 1.7483606568416443\n", + " 1.98572887625178\n", " \n", " \n", " 44\n", - " Pinnacle West Capital Corp.\n", - " US7234841010\n", + " American Electric Power Co., Inc.\n", + " US0255371017\n", " demo_dv\n", " S1+S2\n", " benchmark_1\n", - " 2.4451977433867675\n", - " 1.7270093178004937\n", + " 2.4897454506803856\n", + " 1.8730908991949726\n", " \n", " \n", " 45\n", - " Nisource Inc.\n", - " US65473P1057\n", + " FirstEnergy Corp.\n", + " US3379321074\n", " demo_dv\n", " S1+S2\n", " benchmark_1\n", - " 2.7745147045226224\n", - " 2.090636528579651\n", + " 4.179107457030844\n", + " 2.7026054458883104\n", " \n", " \n", " 46\n", - " Southern Co.\n", - " US8425871071\n", + " OG&E Energy Corp.\n", + " US6708371033\n", " demo_dv\n", " S1+S2\n", " benchmark_1\n", - " 1.891032325414189\n", - " 2.1017262721991066\n", + " 2.215218912057745\n", + " 2.929705859615634\n", " \n", " \n", " 47\n", - " Tri-State Generation & Transmission Associatio...\n", - " ZZ00000000180\n", + " UNITED STATES STEEL CORP\n", + " US9129091081\n", " demo_dv\n", " S1+S2\n", " benchmark_1\n", - " 4.074985507300026\n", - " 2.8541497409559127\n", + " 1.616766467401584\n", + " 1.4140505736427826\n", " \n", " \n", " 48\n", - " Consolidated Edison, Inc.\n", - " US2091151041\n", + " WORTHINGTON INDUSTRIES INC\n", + " US9818111026\n", " demo_dv\n", " S1+S2\n", " benchmark_1\n", - " 1.7833472303288858\n", - " 1.6560798047931302\n", + " 1.2683057378303193\n", + " 1.2673404048059607\n", " \n", " \n", " 49\n", - " National Grid PLC\n", - " US6362744095\n", + " PG&E Corp.\n", + " US69331C1080\n", " demo_dv\n", " S1+S2\n", " benchmark_1\n", - " 2.919305029921471\n", - " 2.1411082198666396\n", + " 1.4119350865327291\n", + " 1.3715781594384326\n", " \n", " \n", " 50\n", - " El Paso Electric Co\n", - " US283677AZ52\n", + " TERNIUM S.A.\n", + " US8808901081\n", " demo_dv\n", " S1+S2\n", " benchmark_1\n", - " 2.159478939163522\n", - " 1.5702465117614701\n", + " 1.6288695211243776\n", + " 1.4242417981921036\n", " \n", " \n", " 51\n", - " POSCO\n", - " KR7005490008\n", + " AES Corp.\n", + " US00130H1059\n", " demo_dv\n", " S1+S2\n", " benchmark_1\n", - " 1.673425615844414\n", - " 1.4452029158287243\n", + " 2.355136970621065\n", + " 1.858716770767351\n", " \n", " \n", " 52\n", - " STEEL DYNAMICS INC\n", - " US8581191009\n", + " Berkshire Hathaway, Inc.\n", + " US0846707026\n", " demo_dv\n", " S1+S2\n", " benchmark_1\n", - " 1.3353939284100609\n", - " 1.2963615316127104\n", + " 2.176920201680923\n", + " 1.8058852318287109\n", " \n", " \n", " 53\n", - " CARPENTER TECHNOLOGY CORP\n", - " US1442851036\n", + " Fortis, Inc.\n", + " CA3495531079\n", " demo_dv\n", " S1+S2\n", " benchmark_1\n", - " 2.2957698517171012\n", - " 1.6844114864737225\n", + " 2.8141850673960107\n", + " 2.8664495273593995\n", " \n", " \n", "\n", @@ -862,119 +862,119 @@ ], "text/plain": [ " company_name company_id source \\\n", - "0 ALLETE, Inc. US0185223007 demo_dv \n", - "1 Algonquin Power & Utilities Corp. US0158577090 demo_dv \n", - "2 Idacorp, Inc. US4511071064 demo_dv \n", - "3 Northwestern Corp. US6680743050 demo_dv \n", - "4 DTE Energy US2333311072 demo_dv \n", - "5 Eversource Energy US30040W1080 demo_dv \n", - "6 PPL Corp. US69351T1060 demo_dv \n", - "7 Sempra US8168511090 demo_dv \n", - "8 Xcel Energy, Inc. US98389B1008 demo_dv \n", - "9 Black Hills Corp. US0921131092 demo_dv \n", - "10 CMS Energy Corp. US1258961002 demo_dv \n", - "11 Dominion Energy US25746U1097 demo_dv \n", - "12 Old Dominion Electric Coop. ZZ00000000141 demo_dv \n", - "13 Public Service Enterprise Group US7445731067 demo_dv \n", - "14 Alliant Energy US0188021085 demo_dv \n", - "15 Entergy Corp. US29364G1031 demo_dv \n", - "16 PNM Resources, Inc. US69349H1077 demo_dv \n", - "17 Portland General Electric Co. US7365088472 demo_dv \n", - "18 Avista Corp. US05379B1070 demo_dv \n", - "19 TIMKENSTEEL CORP US8873991033 demo_dv \n", - "20 Hawaiian Electric Industries, Inc. US4198701009 demo_dv \n", - "21 Ameren Corp. US0236081024 demo_dv \n", - "22 Avangrid, Inc. US05351W1036 demo_dv \n", - "23 Cleco Partners LP US18551QAA58 demo_dv \n", - "24 GERDAU S.A. US3737371050 demo_dv \n", - "25 WEC Energy Group US92939U1060 demo_dv \n", - "26 COMMERCIAL METALS CO US2017231034 demo_dv \n", - "27 Edison International US2810201077 demo_dv \n", - "28 NUCOR CORP US6703461052 demo_dv \n", - "29 Otter Tail Corp. US6896481032 demo_dv \n", - "30 AES Corp. US00130H1059 demo_dv \n", - "31 Berkshire Hathaway, Inc. US0846707026 demo_dv \n", - "32 Fortis, Inc. CA3495531079 demo_dv \n", - "33 TENARIS SA US88031M1099 demo_dv \n", - "34 UNITED STATES STEEL CORP US9129091081 demo_dv \n", - "35 WORTHINGTON INDUSTRIES INC US9818111026 demo_dv \n", - "36 PG&E Corp. US69331C1080 demo_dv \n", - "37 TERNIUM S.A. US8808901081 demo_dv \n", - "38 American Electric Power Co., Inc. US0255371017 demo_dv \n", - "39 FirstEnergy Corp. US3379321074 demo_dv \n", - "40 OG&E Energy Corp. US6708371033 demo_dv \n", - "41 CLEVELAND-CLIFFS INC US1858991011 demo_dv \n", - "42 Duke Energy Corp. US26441C2044 demo_dv \n", - "43 Evergy, Inc. US30034W1062 demo_dv \n", - "44 Pinnacle West Capital Corp. US7234841010 demo_dv \n", - "45 Nisource Inc. US65473P1057 demo_dv \n", - "46 Southern Co. US8425871071 demo_dv \n", - "47 Tri-State Generation & Transmission Associatio... ZZ00000000180 demo_dv \n", - "48 Consolidated Edison, Inc. US2091151041 demo_dv \n", - "49 National Grid PLC US6362744095 demo_dv \n", - "50 El Paso Electric Co US283677AZ52 demo_dv \n", - "51 POSCO KR7005490008 demo_dv \n", - "52 STEEL DYNAMICS INC US8581191009 demo_dv \n", - "53 CARPENTER TECHNOLOGY CORP US1442851036 demo_dv \n", + "0 DTE Energy US2333311072 demo_dv \n", + "1 Eversource Energy US30040W1080 demo_dv \n", + "2 PPL Corp. US69351T1060 demo_dv \n", + "3 CMS Energy Corp. US1258961002 demo_dv \n", + "4 Dominion Energy US25746U1097 demo_dv \n", + "5 Old Dominion Electric Coop. ZZ00000000141 demo_dv \n", + "6 Public Service Enterprise Group US7445731067 demo_dv \n", + "7 ALLETE, Inc. US0185223007 demo_dv \n", + "8 Algonquin Power & Utilities Corp. US0158577090 demo_dv \n", + "9 Idacorp, Inc. US4511071064 demo_dv \n", + "10 Northwestern Corp. US6680743050 demo_dv \n", + "11 Sempra US8168511090 demo_dv \n", + "12 Hawaiian Electric Industries, Inc. US4198701009 demo_dv \n", + "13 Xcel Energy, Inc. US98389B1008 demo_dv \n", + "14 Black Hills Corp. US0921131092 demo_dv \n", + "15 WEC Energy Group US92939U1060 demo_dv \n", + "16 COMMERCIAL METALS CO US2017231034 demo_dv \n", + "17 Edison International US2810201077 demo_dv \n", + "18 NUCOR CORP US6703461052 demo_dv \n", + "19 Otter Tail Corp. US6896481032 demo_dv \n", + "20 TENARIS SA US88031M1099 demo_dv \n", + "21 Avangrid, Inc. US05351W1036 demo_dv \n", + "22 Cleco Partners LP US18551QAA58 demo_dv \n", + "23 GERDAU S.A. US3737371050 demo_dv \n", + "24 Ameren Corp. US0236081024 demo_dv \n", + "25 Avista Corp. US05379B1070 demo_dv \n", + "26 TIMKENSTEEL CORP US8873991033 demo_dv \n", + "27 CARPENTER TECHNOLOGY CORP US1442851036 demo_dv \n", + "28 Entergy Corp. US29364G1031 demo_dv \n", + "29 PNM Resources, Inc. US69349H1077 demo_dv \n", + "30 Portland General Electric Co. US7365088472 demo_dv \n", + "31 Tri-State Generation & Transmission Associatio... ZZ00000000180 demo_dv \n", + "32 Consolidated Edison, Inc. US2091151041 demo_dv \n", + "33 National Grid PLC US6362744095 demo_dv \n", + "34 CLEVELAND-CLIFFS INC US1858991011 demo_dv \n", + "35 Duke Energy Corp. US26441C2044 demo_dv \n", + "36 Evergy, Inc. US30034W1062 demo_dv \n", + "37 Pinnacle West Capital Corp. US7234841010 demo_dv \n", + "38 El Paso Electric Co US283677AZ52 demo_dv \n", + "39 POSCO KR7005490008 demo_dv \n", + "40 STEEL DYNAMICS INC US8581191009 demo_dv \n", + "41 Nisource Inc. US65473P1057 demo_dv \n", + "42 Southern Co. US8425871071 demo_dv \n", + "43 Alliant Energy US0188021085 demo_dv \n", + "44 American Electric Power Co., Inc. US0255371017 demo_dv \n", + "45 FirstEnergy Corp. US3379321074 demo_dv \n", + "46 OG&E Energy Corp. US6708371033 demo_dv \n", + "47 UNITED STATES STEEL CORP US9129091081 demo_dv \n", + "48 WORTHINGTON INDUSTRIES INC US9818111026 demo_dv \n", + "49 PG&E Corp. US69331C1080 demo_dv \n", + "50 TERNIUM S.A. US8808901081 demo_dv \n", + "51 AES Corp. US00130H1059 demo_dv \n", + "52 Berkshire Hathaway, Inc. US0846707026 demo_dv \n", + "53 Fortis, Inc. CA3495531079 demo_dv \n", "\n", " scope benchmark trajectory_temperature_score target_temperature_score \n", - "0 S1+S2 benchmark_1 1.997417049909789 2.0901695283836217 \n", - "1 S1+S2 benchmark_1 1.2622489075053775 1.2624152250820424 \n", - "2 S1+S2 benchmark_1 1.8676022899726177 2.277606917005736 \n", - "3 S1+S2 benchmark_1 2.391304093052835 2.0793025091814186 \n", - "4 S1+S2 benchmark_1 2.6091902259287814 2.379216491775751 \n", - "5 S1+S2 benchmark_1 1.2628409825839846 1.2644301701927758 \n", - "6 S1+S2 benchmark_1 2.920060276831759 2.34916068618228 \n", - "7 S1+S2 benchmark_1 1.8111134105404485 1.925593255252446 \n", - "8 S1+S2 benchmark_1 2.015157185885931 1.7179382088171775 \n", - "9 S1+S2 benchmark_1 3.04184461666386 3.1354352983921223 \n", - "10 S1+S2 benchmark_1 2.3484520477982627 1.9155526969886063 \n", - "11 S1+S2 benchmark_1 1.6227512601234515 1.661573221927111 \n", - "12 S1+S2 benchmark_1 1.6293648535896375 1.7470015858435108 \n", - "13 S1+S2 benchmark_1 1.544721397863445 1.3420928255486166 \n", - "14 S1+S2 benchmark_1 1.7483606568416443 1.9857288762517797 \n", - "15 S1+S2 benchmark_1 1.8606687578364112 1.5937919247590187 \n", - "16 S1+S2 benchmark_1 2.269394512854396 1.7579421817864154 \n", - "17 S1+S2 benchmark_1 2.1966909832814006 1.5445623274403906 \n", - "18 S1+S2 benchmark_1 2.05866675939179 1.3611881118286184 \n", - "19 S1+S2 benchmark_1 1.3070727237175541 1.2808123857957467 \n", - "20 S1+S2 benchmark_1 3.7705817594291666 1.966103744166816 \n", - "21 S1+S2 benchmark_1 2.551377511816943 2.257145091380799 \n", - "22 S1+S2 benchmark_1 1.7268528930870772 1.5214380086973212 \n", - "23 S1+S2 benchmark_1 2.3054173371566073 2.2552022001649967 \n", - "24 S1+S2 benchmark_1 1.4109172347241234 1.340264075792371 \n", - "25 S1+S2 benchmark_1 1.9100425761684416 2.3150272749218583 \n", - "26 S1+S2 benchmark_1 1.3039798752099132 1.2941437041150645 \n", - "27 S1+S2 benchmark_1 1.312116276524954 1.4129397560495331 \n", - "28 S1+S2 benchmark_1 1.3380046417036604 1.2928557297900936 \n", - "29 S1+S2 benchmark_1 3.4400968991516425 2.498716396935876 \n", - "30 S1+S2 benchmark_1 2.355136970621065 1.858716770767351 \n", - "31 S1+S2 benchmark_1 2.1769202016809235 1.8058852318287109 \n", - "32 S1+S2 benchmark_1 2.814185067396011 2.8664495273593995 \n", - "33 S1+S2 benchmark_1 1.3801362873484335 1.3464272251011569 \n", - "34 S1+S2 benchmark_1 1.6167664674015843 1.4140505736427826 \n", - "35 S1+S2 benchmark_1 1.2683057378303193 1.2673404048059607 \n", - "36 S1+S2 benchmark_1 1.411935086532729 1.3715781594384326 \n", - "37 S1+S2 benchmark_1 1.6288695211243773 1.4242417981921036 \n", - "38 S1+S2 benchmark_1 2.4897454506803856 1.8730908991949726 \n", - "39 S1+S2 benchmark_1 4.179107457030845 2.70260544588831 \n", - "40 S1+S2 benchmark_1 2.215218912057745 2.929705859615633 \n", - "41 S1+S2 benchmark_1 1.305200079468213 1.2951308142680467 \n", - "42 S1+S2 benchmark_1 1.8955655343210902 1.756298023368055 \n", - "43 S1+S2 benchmark_1 2.4797002638781565 1.8941968261146505 \n", - "44 S1+S2 benchmark_1 2.4451977433867675 1.7270093178004937 \n", - "45 S1+S2 benchmark_1 2.7745147045226224 2.090636528579651 \n", - "46 S1+S2 benchmark_1 1.891032325414189 2.1017262721991066 \n", - "47 S1+S2 benchmark_1 4.074985507300026 2.8541497409559127 \n", - "48 S1+S2 benchmark_1 1.7833472303288858 1.6560798047931302 \n", - "49 S1+S2 benchmark_1 2.919305029921471 2.1411082198666396 \n", - "50 S1+S2 benchmark_1 2.159478939163522 1.5702465117614701 \n", - "51 S1+S2 benchmark_1 1.673425615844414 1.4452029158287243 \n", - "52 S1+S2 benchmark_1 1.3353939284100609 1.2963615316127104 \n", - "53 S1+S2 benchmark_1 2.2957698517171012 1.6844114864737225 " + "0 S1+S2 benchmark_1 2.6091902259287814 2.379216491775751 \n", + "1 S1+S2 benchmark_1 1.2628409825839846 1.2644301701927758 \n", + "2 S1+S2 benchmark_1 2.9200602768317596 2.3491606861822802 \n", + "3 S1+S2 benchmark_1 2.348452047798262 1.9155526969886063 \n", + "4 S1+S2 benchmark_1 1.6227512601234515 1.661573221927111 \n", + "5 S1+S2 benchmark_1 1.6293648535896375 1.747001585843511 \n", + "6 S1+S2 benchmark_1 1.544721397863445 1.3420928255486166 \n", + "7 S1+S2 benchmark_1 1.997417049909789 2.0901695283836217 \n", + "8 S1+S2 benchmark_1 1.2622489075053775 1.2624152250820424 \n", + "9 S1+S2 benchmark_1 1.8676022899726177 2.277606917005736 \n", + "10 S1+S2 benchmark_1 2.3913040930528355 2.079302509181419 \n", + "11 S1+S2 benchmark_1 1.8111134105404487 1.925593255252446 \n", + "12 S1+S2 benchmark_1 3.770581759429166 1.9661037441668163 \n", + "13 S1+S2 benchmark_1 2.015157185885931 1.7179382088171773 \n", + "14 S1+S2 benchmark_1 3.0418446166638597 3.1354352983921228 \n", + "15 S1+S2 benchmark_1 1.9100425761684416 2.315027274921859 \n", + "16 S1+S2 benchmark_1 1.3039798752099132 1.2941437041150645 \n", + "17 S1+S2 benchmark_1 1.312116276524954 1.4129397560495331 \n", + "18 S1+S2 benchmark_1 1.3380046417036604 1.2928557297900936 \n", + "19 S1+S2 benchmark_1 3.440096899151643 2.498716396935876 \n", + "20 S1+S2 benchmark_1 1.3801362873484335 1.3464272251011569 \n", + "21 S1+S2 benchmark_1 1.7268528930870772 1.5214380086973212 \n", + "22 S1+S2 benchmark_1 2.3054173371566073 2.2552022001649963 \n", + "23 S1+S2 benchmark_1 1.4109172347241234 1.340264075792371 \n", + "24 S1+S2 benchmark_1 2.5513775118169426 2.2571450913807984 \n", + "25 S1+S2 benchmark_1 2.05866675939179 1.3611881118286184 \n", + "26 S1+S2 benchmark_1 1.3070727237175541 1.2808123857957467 \n", + "27 S1+S2 benchmark_1 2.295769851717101 1.6844114864737225 \n", + "28 S1+S2 benchmark_1 1.860668757836411 1.5937919247590187 \n", + "29 S1+S2 benchmark_1 2.2693945128543964 1.7579421817864156 \n", + "30 S1+S2 benchmark_1 2.1966909832814 1.5445623274403906 \n", + "31 S1+S2 benchmark_1 4.074985507300026 2.8541497409559122 \n", + "32 S1+S2 benchmark_1 1.7833472303288853 1.6560798047931302 \n", + "33 S1+S2 benchmark_1 2.919305029921471 2.1411082198666396 \n", + "34 S1+S2 benchmark_1 1.305200079468213 1.2951308142680467 \n", + "35 S1+S2 benchmark_1 1.89556553432109 1.756298023368055 \n", + "36 S1+S2 benchmark_1 2.479700263878156 1.89419682611465 \n", + "37 S1+S2 benchmark_1 2.4451977433867675 1.7270093178004937 \n", + "38 S1+S2 benchmark_1 2.1594789391635216 1.5702465117614701 \n", + "39 S1+S2 benchmark_1 1.673425615844414 1.4452029158287243 \n", + "40 S1+S2 benchmark_1 1.3353939284100609 1.2963615316127104 \n", + "41 S1+S2 benchmark_1 2.7745147045226224 2.090636528579651 \n", + "42 S1+S2 benchmark_1 1.8910323254141892 2.101726272199106 \n", + "43 S1+S2 benchmark_1 1.7483606568416443 1.98572887625178 \n", + "44 S1+S2 benchmark_1 2.4897454506803856 1.8730908991949726 \n", + "45 S1+S2 benchmark_1 4.179107457030844 2.7026054458883104 \n", + "46 S1+S2 benchmark_1 2.215218912057745 2.929705859615634 \n", + "47 S1+S2 benchmark_1 1.616766467401584 1.4140505736427826 \n", + "48 S1+S2 benchmark_1 1.2683057378303193 1.2673404048059607 \n", + "49 S1+S2 benchmark_1 1.4119350865327291 1.3715781594384326 \n", + "50 S1+S2 benchmark_1 1.6288695211243776 1.4242417981921036 \n", + "51 S1+S2 benchmark_1 2.355136970621065 1.858716770767351 \n", + "52 S1+S2 benchmark_1 2.176920201680923 1.8058852318287109 \n", + "53 S1+S2 benchmark_1 2.8141850673960107 2.8664495273593995 " ] }, - "execution_count": 25, + "execution_count": 9, "metadata": {}, "output_type": "execute_result" } @@ -1325,14 +1325,14 @@ " Alliant Energy\n", " 5493009ML300G373MZ12\n", " 3829481\n", - " 1.867044766546712\n", + " 1.8670447665467123\n", " \n", " \n", " US0236081024\n", " Ameren Corp.\n", " XRZQ5S7HYJFPHJ78L959\n", " 15917812\n", - " 2.404261301598871\n", + " 2.4042613015988703\n", " \n", " \n", " US0255371017\n", @@ -1360,7 +1360,7 @@ " CARPENTER TECHNOLOGY CORP\n", " DX6I6ZD3X5WNNCDJKP85\n", " 10000000\n", - " 1.9900906690954119\n", + " 1.9900906690954117\n", " \n", " \n", " US1258961002\n", @@ -1381,7 +1381,7 @@ " Cleco Partners LP\n", " 5493002H80P81B3HXL31\n", " 3086052\n", - " 2.280309768660802\n", + " 2.2803097686608016\n", " \n", " \n", " US2091151041\n", @@ -1416,21 +1416,21 @@ " El Paso Electric Co\n", " OZ8GM8L4AHPKSWZMW205\n", " 2646941\n", - " 1.864862725462496\n", + " 1.8648627254624959\n", " \n", " \n", " US29364G1031\n", " Entergy Corp.\n", " 4XM3TW50JULSLG8BNC79\n", " 29844269\n", - " 1.727230341297715\n", + " 1.7272303412977148\n", " \n", " \n", " US30034W1062\n", " Evergy, Inc.\n", " 549300PGTHDQY6PSUI61\n", " 18254954\n", - " 2.1869485449964037\n", + " 2.186948544996403\n", " \n", " \n", " US30040W1080\n", @@ -1479,14 +1479,14 @@ " NorthWestern Corp.\n", " 3BPWMBHR1R9SHUN7J795\n", " 2703150\n", - " 2.235303301117127\n", + " 2.2353033011171273\n", " \n", " \n", " US6708371033\n", " OG&E Energy\n", " CE5OG6JPOZMDSA0LAQ19\n", " 7251242\n", - " 2.572462385836689\n", + " 2.5724623858366895\n", " \n", " \n", " US6896481032\n", @@ -1500,7 +1500,7 @@ " PNM Resources, Inc.\n", " 5493003JOBJGLZSDDQ28\n", " 3326899\n", - " 2.013668347320406\n", + " 2.0136683473204062\n", " \n", " \n", " KR7005490008\n", @@ -1514,7 +1514,7 @@ " PPL\n", " 9N3UAJSNOUXFKQLF3V18\n", " 18146577\n", - " 2.6346104815070195\n", + " 2.63461048150702\n", " \n", " \n", " US7234841010\n", @@ -1556,7 +1556,7 @@ " Southern Co.\n", " 549300FC3G3YU2FBZD92\n", " 50294245\n", - " 1.9963792988066478\n", + " 1.9963792988066476\n", " \n", " \n", " US88031M1099\n", @@ -1605,7 +1605,7 @@ " Xcel Energy, Inc.\n", " LGJNMI9GH8XIDG5RCM61\n", " 27475073\n", - " 1.8665476973515542\n", + " 1.866547697351554\n", " \n", " \n", "\n", @@ -1664,47 +1664,47 @@ "US00130H1059 4351252 2.106926870694208 \n", "US0185223007 3829481 2.043793289146705 \n", "US0158577090 2228185 1.2623320662937099 \n", - "US0188021085 3829481 1.867044766546712 \n", - "US0236081024 15917812 2.404261301598871 \n", + "US0188021085 3829481 1.8670447665467123 \n", + "US0236081024 15917812 2.4042613015988703 \n", "US0255371017 45520637 2.1814181749376793 \n", "US05351W1036 10049068 1.624145450892199 \n", "US05379B1070 2804211 1.7099274356102043 \n", - "US1442851036 10000000 1.9900906690954119 \n", + "US1442851036 10000000 1.9900906690954117 \n", "US1258961002 9153135 2.1320023723934343 \n", "US2017231034 10000000 1.2990617896624888 \n", - "US18551QAA58 3086052 2.280309768660802 \n", + "US18551QAA58 3086052 2.2803097686608016 \n", "US2091151041 20394113 1.7197135175610079 \n", "US2333311072 14329945 2.494203358852266 \n", "US25746U1097 33528082 1.6421622410252814 \n", "US26441C2044 73069652 1.8259317788445726 \n", - "US283677AZ52 2646941 1.864862725462496 \n", - "US29364G1031 29844269 1.727230341297715 \n", - "US30034W1062 18254954 2.1869485449964037 \n", + "US283677AZ52 2646941 1.8648627254624959 \n", + "US29364G1031 29844269 1.7272303412977148 \n", + "US30034W1062 18254954 2.186948544996403 \n", "US30040W1080 18962480 1.2636355763883802 \n", "US3379321074 27277340 3.4408564514595774 \n", "CA3495531079 12428756 2.8403172973777053 \n", "US3737371050 10000000 1.375590655258247 \n", "US6703461052 10000000 1.315430185746877 \n", "US6362744095 12281584 2.5302066248940553 \n", - "US6680743050 2703150 2.235303301117127 \n", - "US6708371033 7251242 2.572462385836689 \n", + "US6680743050 2703150 2.2353033011171273 \n", + "US6708371033 7251242 2.5724623858366895 \n", "US6896481032 1264277 2.9694066480437593 \n", - "US69349H1077 3326899 2.013668347320406 \n", + "US69349H1077 3326899 2.0136683473204062 \n", "KR7005490008 10000000 1.5593142658365693 \n", - "US69351T1060 18146577 2.6346104815070195 \n", + "US69351T1060 18146577 2.63461048150702 \n", "US7234841010 12058547 2.086103530593631 \n", "US7365088472 5770964 1.8706266553608955 \n", "US7445731067 16912134 1.4434071117060308 \n", "US8581191009 10000000 1.3158777300113855 \n", "US8168511090 29579515 1.8683533328964472 \n", - "US8425871071 50294245 1.9963792988066478 \n", + "US8425871071 50294245 1.9963792988066476 \n", "US88031M1099 10000000 1.3632817562247952 \n", "US8808901081 10000000 1.5265556596582406 \n", "US8873991033 10000000 1.2939425547566503 \n", "US9129091081 10000000 1.5154085205221834 \n", "US92939U1060 11046675 2.11253492554515 \n", "US9818111026 10000000 1.26782307131814 \n", - "US98389B1008 27475073 1.8665476973515542 " + "US98389B1008 27475073 1.866547697351554 " ] }, "execution_count": 14, @@ -1822,16 +1822,16 @@ " Alliant Energy\n", " 5493009ML300G373MZ12\n", " 3829481\n", - " 1.867044766546712\n", - " 0.010839343752422344\n", + " 1.8670447665467123\n", + " 0.010839343752422346\n", " \n", " \n", " US0236081024\n", " Ameren Corp.\n", " XRZQ5S7HYJFPHJ78L959\n", " 15917812\n", - " 2.404261301598871\n", - " 0.058019419115953846\n", + " 2.4042613015988703\n", + " 0.058019419115953826\n", " \n", " \n", "\n", @@ -1851,8 +1851,8 @@ "US00130H1059 4351252 2.106926870694208 0.013898631388198987 \n", "US0158577090 2228185 1.2623320662937099 0.004264157132071172 \n", "US0185223007 3829481 2.043793289146705 0.011865477687998862 \n", - "US0188021085 3829481 1.867044766546712 0.010839343752422344 \n", - "US0236081024 15917812 2.404261301598871 0.058019419115953846 " + "US0188021085 3829481 1.8670447665467123 0.010839343752422346 \n", + "US0236081024 15917812 2.4042613015988703 0.058019419115953826 " ] }, "execution_count": 16, @@ -1980,8 +1980,8 @@ " Alliant Energy\n", " 5493009ML300G373MZ12\n", " 3829481\n", - " 1.867044766546712\n", - " 0.010839343752422344\n", + " 1.8670447665467123\n", + " 0.010839343752422346\n", " 1.261547907437679e-07\n", " \n", " \n", @@ -1989,9 +1989,9 @@ " Ameren Corp.\n", " XRZQ5S7HYJFPHJ78L959\n", " 15917812\n", - " 2.404261301598871\n", - " 0.058019419115953846\n", - " 3.4265102068870053e-07\n", + " 2.4042613015988703\n", + " 0.058019419115953826\n", + " 3.426510206887004e-07\n", " \n", " \n", "\n", @@ -2011,8 +2011,8 @@ "US00130H1059 4351252 2.106926870694208 0.013898631388198987 \n", "US0158577090 2228185 1.2623320662937099 0.004264157132071172 \n", "US0185223007 3829481 2.043793289146705 0.011865477687998862 \n", - "US0188021085 3829481 1.867044766546712 0.010839343752422344 \n", - "US0236081024 15917812 2.404261301598871 0.058019419115953846 \n", + "US0188021085 3829481 1.8670447665467123 0.010839343752422346 \n", + "US0236081024 15917812 2.4042613015988703 0.058019419115953826 \n", "\n", " TETS_weight \n", "company_id \n", @@ -2020,7 +2020,7 @@ "US0158577090 4.162829462365117e-12 \n", "US0185223007 5.2549678751293906e-08 \n", "US0188021085 1.261547907437679e-07 \n", - "US0236081024 3.4265102068870053e-07 " + "US0236081024 3.426510206887004e-07 " ] }, "execution_count": 18, @@ -2106,7 +2106,7 @@ "Portfolio temperature score based on EOTS = 1.9715101533914599 delta_degree_Celsius\n", "Portfolio temperature score based on ECOTS = 1.9914244268264996 delta_degree_Celsius\n", "Portfolio temperature score based on AOTS = 1.9769581669116627 delta_degree_Celsius\n", - "Portfolio temperature score based on ROTS = 1.8572293378229632 delta_degree_Celsius\n" + "Portfolio temperature score based on ROTS = 1.857229337822963 delta_degree_Celsius\n" ] }, { @@ -2215,13 +2215,13 @@ " Alliant Energy\n", " 5493009ML300G373MZ12\n", " 3829481\n", - " 1.867044766546712\n", - " 0.010839343752422344\n", + " 1.8670447665467123\n", + " 0.010839343752422346\n", " 1.261547907437679e-07\n", " 0.03174960844912046\n", " 0.0330110683879106\n", - " 0.03172544768591218\n", - " 0.021186142904952205\n", + " 0.031725447685912185\n", + " 0.02118614290495221\n", " 0.016738395724396053\n", " \n", " \n", @@ -2229,14 +2229,14 @@ " Ameren Corp.\n", " XRZQ5S7HYJFPHJ78L959\n", " 15917812\n", - " 2.404261301598871\n", - " 0.058019419115953846\n", - " 3.4265102068870053e-07\n", - " 0.06477745482537144\n", - " 0.06387775855844924\n", - " 0.06469360527719219\n", - " 0.04726477824338227\n", - " 0.034922806188620925\n", + " 2.4042613015988703\n", + " 0.058019419115953826\n", + " 3.426510206887004e-07\n", + " 0.06477745482537141\n", + " 0.06387775855844922\n", + " 0.06469360527719217\n", + " 0.04726477824338225\n", + " 0.03492280618862091\n", " \n", " \n", " US0255371017\n", @@ -2285,13 +2285,13 @@ " Cleco Partners LP\n", " 5493002H80P81B3HXL31\n", " 3086052\n", - " 2.280309768660802\n", - " 0.01066855072571053\n", - " 1.1727968749659209e-07\n", + " 2.2803097686608016\n", + " 0.010668550725710529\n", + " 1.1727968749659208e-07\n", " nan\n", " nan\n", " nan\n", - " 0.011583583746330367\n", + " 0.011583583746330365\n", " 0.009189101919284608\n", " \n", " \n", @@ -2369,42 +2369,42 @@ " El Paso Electric Co\n", " OZ8GM8L4AHPKSWZMW205\n", " 2646941\n", - " 1.864862725462496\n", - " 0.007483408770370701\n", + " 1.8648627254624959\n", + " 0.007483408770370699\n", " 3.429901756307964e-08\n", " 0.007206687865731673\n", - " 0.007350616245331298\n", + " 0.007350616245331297\n", " 0.007220609667618246\n", - " 0.0048316886860380335\n", - " 0.003950855064002835\n", + " 0.004831688686038033\n", + " 0.003950855064002834\n", " \n", " \n", " US29364G1031\n", " Entergy Corp.\n", " 4XM3TW50JULSLG8BNC79\n", " 29844269\n", - " 1.727230341297715\n", - " 0.07814830149463829\n", + " 1.7272303412977148\n", + " 0.07814830149463828\n", " 3.4959645003586115e-07\n", " 0.05190745937361752\n", " 0.06458856665766571\n", - " 0.05287080443504319\n", + " 0.05287080443504318\n", " 0.06070215564531642\n", - " 0.046181301440845035\n", + " 0.04618130144084502\n", " \n", " \n", " US30034W1062\n", " Evergy, Inc.\n", " 549300PGTHDQY6PSUI61\n", " 18254954\n", - " 2.1869485449964037\n", - " 0.06052400340167886\n", - " 3.5614524723693755e-07\n", - " 0.045326633364450857\n", - " 0.04777411915987389\n", - " 0.045302805246517155\n", - " 0.03859860953695048\n", - " 0.02766943029282214\n", + " 2.186948544996403\n", + " 0.060524003401678836\n", + " 3.5614524723693734e-07\n", + " 0.04532663336445084\n", + " 0.047774119159873875\n", + " 0.045302805246517135\n", + " 0.03859860953695047\n", + " 0.027669430292822126\n", " \n", " \n", " US30040W1080\n", @@ -2467,28 +2467,28 @@ " NorthWestern Corp.\n", " 3BPWMBHR1R9SHUN7J795\n", " 2703150\n", - " 2.235303301117127\n", - " 0.009160410677781903\n", - " 3.6548819631302805e-08\n", - " 0.011926077613739264\n", - " 0.012924704639595212\n", - " 0.011917103321524023\n", - " 0.008977140347481906\n", - " 0.006910763261421611\n", + " 2.2353033011171273\n", + " 0.009160410677781906\n", + " 3.654881963130282e-08\n", + " 0.011926077613739266\n", + " 0.012924704639595214\n", + " 0.011917103321524026\n", + " 0.008977140347481908\n", + " 0.006910763261421613\n", " \n", " \n", " US6708371033\n", " OG&E Energy\n", " CE5OG6JPOZMDSA0LAQ19\n", " 7251242\n", - " 2.572462385836689\n", - " 0.028279372708084515\n", - " 1.5803838520201566e-07\n", - " 0.03212831171274878\n", + " 2.5724623858366895\n", + " 0.02827937270808452\n", + " 1.5803838520201569e-07\n", + " 0.03212831171274879\n", " nan\n", " nan\n", " 0.019269149564939952\n", - " 0.014109296911343806\n", + " 0.01410929691134381\n", " \n", " \n", " US6896481032\n", @@ -2523,14 +2523,14 @@ " PNM Resources, Inc.\n", " 5493003JOBJGLZSDDQ28\n", " 3326899\n", - " 2.013668347320406\n", - " 0.010156308848237565\n", - " 6.580530342148538e-08\n", - " 0.01197077404907257\n", - " 0.012639253078697257\n", - " 0.01195617040266632\n", - " 0.009986202103731528\n", - " 0.00721385126240408\n", + " 2.0136683473204062\n", + " 0.010156308848237566\n", + " 6.58053034214854e-08\n", + " 0.011970774049072574\n", + " 0.012639253078697258\n", + " 0.011956170402666324\n", + " 0.00998620210373153\n", + " 0.0072138512624040805\n", " \n", " \n", " US7365088472\n", @@ -2551,14 +2551,14 @@ " PPL\n", " 9N3UAJSNOUXFKQLF3V18\n", " 18146577\n", - " 2.6346104815070195\n", - " 0.07248021455222131\n", - " 4.615993605738829e-07\n", - " 0.08645396244422032\n", - " 0.10941513137405769\n", - " 0.08940788996261194\n", - " 0.08177207191530365\n", - " 0.05030620119633238\n", + " 2.63461048150702\n", + " 0.07248021455222133\n", + " 4.61599360573883e-07\n", + " 0.08645396244422034\n", + " 0.1094151313740577\n", + " 0.08940788996261195\n", + " 0.08177207191530367\n", + " 0.05030620119633239\n", " \n", " \n", " US7445731067\n", @@ -2593,12 +2593,12 @@ " Southern Co.\n", " 549300FC3G3YU2FBZD92\n", " 50294245\n", - " 1.9963792988066478\n", - " 0.1522192893311671\n", - " 7.710068482171507e-07\n", - " 0.16915956105446733\n", + " 1.9963792988066476\n", + " 0.15221928933116707\n", + " 7.710068482171506e-07\n", + " 0.1691595610544673\n", " 0.18622750506679941\n", - " 0.1745612532143091\n", + " 0.17456125321430907\n", " 0.16101126726344764\n", " 0.10509504376408856\n", " \n", @@ -2621,13 +2621,13 @@ " Xcel Energy, Inc.\n", " LGJNMI9GH8XIDG5RCM61\n", " 27475073\n", - " 1.8665476973515542\n", - " 0.07774747374617197\n", + " 1.866547697351554\n", + " 0.07774747374617196\n", " 4.710003986931088e-07\n", " 0.08381128240682202\n", - " 0.0902630207506063\n", - " 0.08430712540675832\n", - " 0.06398019170908303\n", + " 0.09026302075060627\n", + " 0.0843071254067583\n", + " 0.06398019170908302\n", " 0.05288965305341673\n", " \n", " \n", @@ -2635,12 +2635,12 @@ " CARPENTER TECHNOLOGY CORP\n", " DX6I6ZD3X5WNNCDJKP85\n", " 10000000\n", - " 1.9900906690954119\n", - " 0.030170409339518933\n", - " 0.011607472600352978\n", + " 1.9900906690954117\n", + " 0.03017040933951893\n", + " 0.011607472600352976\n", " 0.004922291988089818\n", " 0.004204096572007335\n", - " 0.004990244394801827\n", + " 0.004990244394801826\n", " 0.004310487808706214\n", " 0.011641965312984528\n", " \n", @@ -2841,37 +2841,37 @@ "US00130H1059 4351252 2.106926870694208 0.013898631388198987 \n", "US0158577090 2228185 1.2623320662937099 0.004264157132071172 \n", "US0185223007 3829481 2.043793289146705 0.011865477687998862 \n", - "US0188021085 3829481 1.867044766546712 0.010839343752422344 \n", - "US0236081024 15917812 2.404261301598871 0.058019419115953846 \n", + "US0188021085 3829481 1.8670447665467123 0.010839343752422346 \n", + "US0236081024 15917812 2.4042613015988703 0.058019419115953826 \n", "US0255371017 45520637 2.1814181749376793 0.15054127748946447 \n", "US05351W1036 10049068 1.624145450892199 0.024743381095553976 \n", "US05379B1070 2804211 1.7099274356102043 0.0072693688934764664 \n", - "US18551QAA58 3086052 2.280309768660802 0.01066855072571053 \n", + "US18551QAA58 3086052 2.2803097686608016 0.010668550725710529 \n", "US1258961002 9153135 2.1320023723934343 0.02958461286148185 \n", "US2091151041 20394113 1.7197135175610079 0.0531703189382527 \n", "US25746U1097 33528082 1.6421622410252814 0.08347051846507961 \n", "US2333311072 14329945 2.494203358852266 0.054185704264262134 \n", "US26441C2044 73069652 1.8259317788445726 0.20226927849518375 \n", - "US283677AZ52 2646941 1.864862725462496 0.007483408770370701 \n", - "US29364G1031 29844269 1.727230341297715 0.07814830149463829 \n", - "US30034W1062 18254954 2.1869485449964037 0.06052400340167886 \n", + "US283677AZ52 2646941 1.8648627254624959 0.007483408770370699 \n", + "US29364G1031 29844269 1.7272303412977148 0.07814830149463828 \n", + "US30034W1062 18254954 2.186948544996403 0.060524003401678836 \n", "US30040W1080 18962480 1.2636355763883802 0.03632664747179234 \n", "US3379321074 27277340 3.4408564514595774 0.14229082940670418 \n", "CA3495531079 12428756 2.8403172973777053 0.05351836779325424 \n", "US6362744095 12281584 2.5302066248940553 0.047110608148483515 \n", - "US6680743050 2703150 2.235303301117127 0.009160410677781903 \n", - "US6708371033 7251242 2.572462385836689 0.028279372708084515 \n", + "US6680743050 2703150 2.2353033011171273 0.009160410677781906 \n", + "US6708371033 7251242 2.5724623858366895 0.02827937270808452 \n", "US6896481032 1264277 2.9694066480437593 0.0056914149829881515 \n", "US7234841010 12058547 2.086103530593631 0.0381363546476481 \n", - "US69349H1077 3326899 2.013668347320406 0.010156308848237565 \n", + "US69349H1077 3326899 2.0136683473204062 0.010156308848237566 \n", "US7365088472 5770964 1.8706266553608955 0.01636604808107313 \n", - "US69351T1060 18146577 2.6346104815070195 0.07248021455222131 \n", + "US69351T1060 18146577 2.63461048150702 0.07248021455222133 \n", "US7445731067 16912134 1.4434071117060308 0.03700799790772644 \n", "US8168511090 29579515 1.8683533328964472 0.08378348075446392 \n", - "US8425871071 50294245 1.9963792988066478 0.1522192893311671 \n", + "US8425871071 50294245 1.9963792988066476 0.15221928933116707 \n", "US92939U1060 11046675 2.11253492554515 0.03537885829457992 \n", - "US98389B1008 27475073 1.8665476973515542 0.07774747374617197 \n", - "US1442851036 10000000 1.9900906690954119 0.030170409339518933 \n", + "US98389B1008 27475073 1.866547697351554 0.07774747374617196 \n", + "US1442851036 10000000 1.9900906690954117 0.03017040933951893 \n", "US2017231034 10000000 1.2990617896624888 0.019694191103996513 \n", "US3737371050 10000000 1.375590655258247 0.020854393117486963 \n", "US6703461052 10000000 1.315430185746877 0.019942341209801415 \n", @@ -2889,11 +2889,11 @@ "US0158577090 4.162829462365117e-12 nan \n", "US0185223007 5.2549678751293906e-08 0.012839373901951686 \n", "US0188021085 1.261547907437679e-07 0.03174960844912046 \n", - "US0236081024 3.4265102068870053e-07 0.06477745482537144 \n", + "US0236081024 3.426510206887004e-07 0.06477745482537141 \n", "US0255371017 7.719971932013753e-07 0.139082507959553 \n", "US05351W1036 2.5939403676600244e-10 0.00675237883315782 \n", "US05379B1070 2.5464088060658733e-08 0.007391183784912206 \n", - "US18551QAA58 1.1727968749659209e-07 nan \n", + "US18551QAA58 1.1727968749659208e-07 nan \n", "US1258961002 1.624135308468388e-07 0.05110745034256367 \n", "US2091151041 1.2591698410405677e-08 0.0733626055289818 \n", "US25746U1097 3.14248738011264e-07 0.14925655201730625 \n", @@ -2901,24 +2901,24 @@ "US26441C2044 9.29026546418335e-07 0.17193009401045845 \n", "US283677AZ52 3.429901756307964e-08 0.007206687865731673 \n", "US29364G1031 3.4959645003586115e-07 0.05190745937361752 \n", - "US30034W1062 3.5614524723693755e-07 0.045326633364450857 \n", + "US30034W1062 3.5614524723693734e-07 0.04532663336445084 \n", "US30040W1080 1.7023588038521205e-12 0.045360009814775525 \n", "US3379321074 3.897594054855418e-07 0.11462889184363255 \n", "CA3495531079 1.519730021856325e-07 nan \n", "US6362744095 3.640382115837752e-08 0.15127568349562315 \n", - "US6680743050 3.6548819631302805e-08 0.011926077613739264 \n", - "US6708371033 1.5803838520201566e-07 0.03212831171274878 \n", + "US6680743050 3.654881963130282e-08 0.011926077613739266 \n", + "US6708371033 1.5803838520201569e-07 0.03212831171274879 \n", "US6896481032 4.7091070069869694e-08 0.008880331745854566 \n", "US7234841010 1.3398156342413038e-07 0.0322213776799511 \n", - "US69349H1077 6.580530342148538e-08 0.01197077404907257 \n", + "US69349H1077 6.58053034214854e-08 0.011970774049072574 \n", "US7365088472 8.680131385312401e-08 0.013227637419492053 \n", - "US69351T1060 4.615993605738829e-07 0.08645396244422032 \n", + "US69351T1060 4.61599360573883e-07 0.08645396244422034 \n", "US7445731067 1.0168628604665428e-07 0.06245019087418841 \n", "US8168511090 5.634458021974756e-09 0.10325854818136664 \n", - "US8425871071 7.710068482171507e-07 0.16915956105446733 \n", + "US8425871071 7.710068482171506e-07 0.1691595610544673 \n", "US92939U1060 1.2699795919947189e-07 0.08144891426414327 \n", "US98389B1008 4.710003986931088e-07 0.08381128240682202 \n", - "US1442851036 0.011607472600352978 0.004922291988089818 \n", + "US1442851036 0.011607472600352976 0.004922291988089818 \n", "US2017231034 0.020154780490691044 0.003618337414588834 \n", "US3737371050 0.10005546157880678 nan \n", "US6703461052 0.07848167099244932 0.03197260211182495 \n", @@ -2935,8 +2935,8 @@ "US00130H1059 0.020337868906115608 0.03667288993043838 \n", "US0158577090 nan nan \n", "US0185223007 0.011385162596862225 0.013018784526381704 \n", - "US0188021085 0.0330110683879106 0.03172544768591218 \n", - "US0236081024 0.06387775855844924 0.06469360527719219 \n", + "US0188021085 0.0330110683879106 0.031725447685912185 \n", + "US0236081024 0.06387775855844922 0.06469360527719217 \n", "US0255371017 0.15303279317063806 0.13956919099354945 \n", "US05351W1036 0.016801248692288422 0.007160665331019981 \n", "US05379B1070 0.008035321000941292 0.007399948532530545 \n", @@ -2946,26 +2946,26 @@ "US25746U1097 0.15010182616211487 0.1493324514553829 \n", "US2333311072 0.09476515956854094 0.08462019002077521 \n", "US26441C2044 0.22155105310535217 0.17238886319907545 \n", - "US283677AZ52 0.007350616245331298 0.007220609667618246 \n", - "US29364G1031 0.06458856665766571 0.05287080443504319 \n", - "US30034W1062 0.04777411915987389 0.045302805246517155 \n", + "US283677AZ52 0.007350616245331297 0.007220609667618246 \n", + "US29364G1031 0.06458856665766571 0.05287080443504318 \n", + "US30034W1062 0.047774119159873875 0.045302805246517135 \n", "US30040W1080 0.046175243275212934 0.045290416308094134 \n", "US3379321074 0.13715660868982169 0.1175368082535572 \n", "CA3495531079 nan nan \n", "US6362744095 nan 0.15215975540910204 \n", - "US6680743050 0.012924704639595212 0.011917103321524023 \n", + "US6680743050 0.012924704639595214 0.011917103321524026 \n", "US6708371033 nan nan \n", "US6896481032 0.007702315685602822 0.008953203650381842 \n", "US7234841010 0.03332942990290081 0.03218305838813145 \n", - "US69349H1077 0.012639253078697257 0.01195617040266632 \n", + "US69349H1077 0.012639253078697258 0.011956170402666324 \n", "US7365088472 0.014000404723625308 0.013281115197873679 \n", - "US69351T1060 0.10941513137405769 0.08940788996261194 \n", + "US69351T1060 0.1094151313740577 0.08940788996261195 \n", "US7445731067 0.0635679978881717 0.0626254824927157 \n", "US8168511090 0.10421959985473984 0.10333035558010317 \n", - "US8425871071 0.18622750506679941 0.1745612532143091 \n", + "US8425871071 0.18622750506679941 0.17456125321430907 \n", "US92939U1060 0.07695104488519561 0.08138861437944513 \n", - "US98389B1008 0.0902630207506063 0.08430712540675832 \n", - "US1442851036 0.004204096572007335 0.004990244394801827 \n", + "US98389B1008 0.09026302075060627 0.0843071254067583 \n", + "US1442851036 0.004204096572007335 0.004990244394801826 \n", "US2017231034 nan nan \n", "US3737371050 nan nan \n", "US6703461052 0.024305171544838817 0.03485634781003422 \n", @@ -2982,36 +2982,36 @@ "US00130H1059 0.04816939688533329 0.05276197099873813 \n", "US0158577090 0.009358782813005341 0.0050413384247108275 \n", "US0185223007 0.007613807008198652 0.006231229172975224 \n", - "US0188021085 0.021186142904952205 0.016738395724396053 \n", - "US0236081024 0.04726477824338227 0.034922806188620925 \n", + "US0188021085 0.02118614290495221 0.016738395724396053 \n", + "US0236081024 0.04726477824338225 0.03492280618862091 \n", "US0255371017 0.11248617091168711 0.08343102518455157 \n", "US05351W1036 0.0379793742030801 0.02529980312047131 \n", "US05379B1070 0.007066740568098292 0.005655105952879468 \n", - "US18551QAA58 0.011583583746330367 0.009189101919284608 \n", + "US18551QAA58 0.011583583746330365 0.009189101919284608 \n", "US1258961002 0.038876229852125306 0.035867501304020305 \n", "US2091151041 0.06786373005464445 0.05314587328152441 \n", "US25746U1097 0.11584362182232663 0.06688534526952991 \n", "US2333311072 0.07097767408945654 0.07766300356121279 \n", "US26441C2044 0.1970613477213826 0.11254721411236115 \n", - "US283677AZ52 0.0048316886860380335 0.003950855064002835 \n", - "US29364G1031 0.06070215564531642 0.046181301440845035 \n", - "US30034W1062 0.03859860953695048 0.02766943029282214 \n", + "US283677AZ52 0.004831688686038033 0.003950855064002834 \n", + "US29364G1031 0.06070215564531642 0.04618130144084502 \n", + "US30034W1062 0.03859860953695047 0.027669430292822126 \n", "US30040W1080 0.03530846103939446 0.026480799897099 \n", "US3379321074 0.0988962172735531 0.09332089148551007 \n", "CA3495531079 0.07911656908686812 0.0470667310963962 \n", "US6362744095 0.14057664279423704 0.12060139050049665 \n", - "US6680743050 0.008977140347481906 0.006910763261421611 \n", - "US6708371033 0.019269149564939952 0.014109296911343806 \n", + "US6680743050 0.008977140347481908 0.006910763261421613 \n", + "US6708371033 0.019269149564939952 0.01410929691134381 \n", "US6896481032 0.004587174627040453 0.0067106225780971685 \n", "US7234841010 0.02619284180162325 0.017797401906124867 \n", - "US69349H1077 0.009986202103731528 0.00721385126240408 \n", + "US69349H1077 0.00998620210373153 0.0072138512624040805 \n", "US7365088472 0.010668873721131752 0.009760613126775643 \n", - "US69351T1060 0.08177207191530365 0.05030620119633238 \n", + "US69351T1060 0.08177207191530367 0.05030620119633239 \n", "US7445731067 0.04681044465151272 0.03574513867355394 \n", "US8168511090 0.08335956719180115 0.04972643805524998 \n", "US8425871071 0.16101126726344764 0.10509504376408856 \n", "US92939U1060 0.050169056739773205 0.03906076269591012 \n", - "US98389B1008 0.06398019170908303 0.05288965305341673 \n", + "US98389B1008 0.06398019170908302 0.05288965305341673 \n", "US1442851036 0.004310487808706214 0.011641965312984528 \n", "US2017231034 0.0033177080579832835 0.018610755334314076 \n", "US3737371050 0.01252243765842747 0.03325265337048597 \n", From 7f55864afedaf034eec3e5bc5506bd45b485b8f1 Mon Sep 17 00:00:00 2001 From: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> Date: Tue, 3 May 2022 06:36:57 -0400 Subject: [PATCH 207/345] Update DataTemplateRequirements.rst Clarify that because repo is private, the GitHub token must include repo permissions. Also clarify the pip install -e . syntax. Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- docs/DataTemplateRequirements.rst | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/DataTemplateRequirements.rst b/docs/DataTemplateRequirements.rst index 08e53a70..4d2dbb6f 100644 --- a/docs/DataTemplateRequirements.rst +++ b/docs/DataTemplateRequirements.rst @@ -170,7 +170,7 @@ initial amount as rounding down to zero. Installation Notes ------------------ -The first step is to request an invitation to join the OS-Climate GitHub team. This is required to access repositories that are not yet public. (They will be published soon, but not yet.) You will need a Personal Access Token, which you can get by `following these instructions ` . +The first step is to request an invitation to join the OS-Climate GitHub team. This is required to access repositories that are not yet public. (They will be published soon, but not yet.) You will need a Personal Access Token, which you can get by `following these instructions ` . Because the ITR repository is currently Private, you will need to select `repo` privileges (the first option box) when requesting the token. GitHub will magically select all the boxes indented under the `repo` option. **Getting Started with conda** @@ -199,7 +199,7 @@ With your conda shell and environment running, with git installed, and starting 4. Switch to the correct branch: `git checkout develop-pint-steel-projections` 5. create the `conda` itr_env: `conda env create -f environment.yml` 6. Activate that environment: `conda activate itr_env` -7. Install the ITR libraries to your local environment: `pip install -e .` (you may need `--no-cache-dir` on windows to avoid permissions errors) +7. Install the ITR libraries to your local environment: `pip install -e .` (you may need `--no-cache-dir` on windows to avoid permissions errors; please also note that the `.` character is part of the `pip install -e .` command) 8. Change to the `examples` directory 9. Start your notebook: `jupyter-lab`. This should cause your default browser to pop to the front and open a page with a Jupyter Notebook. 10. Make the file browser to the left of the notebook wide enough to expose the full names of the files in the `examples` directory. You should see a file named `quick_template_score_calc.ipynb`. Double click on that file to open it. From f73de1201fc6450526e632a95b61c73af50475d9 Mon Sep 17 00:00:00 2001 From: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> Date: Thu, 5 May 2022 16:31:20 -0400 Subject: [PATCH 208/345] Update DataTemplateRequirements.rst Highlight math and code blocks with :math: and :code: for RST (makes backticks work as in markdown). Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- docs/DataTemplateRequirements.rst | 108 +++++++++++++++--------------- 1 file changed, 54 insertions(+), 54 deletions(-) diff --git a/docs/DataTemplateRequirements.rst b/docs/DataTemplateRequirements.rst index 4d2dbb6f..b700223c 100644 --- a/docs/DataTemplateRequirements.rst +++ b/docs/DataTemplateRequirements.rst @@ -18,7 +18,7 @@ means in the following sections. At the end we will reiterate how to set up you ITR Input Data -------------- -The `ITR Input Data` sheet is effectively the Universe of all +The :code:`ITR Input Data` sheet is effectively the Universe of all instruments the tool can analyze. We are currently limiting our analysis to stock issues, but expect to support bonds in the near future. We also presently make the assumption that there is a 1:1 @@ -76,10 +76,10 @@ tons (or megatons) of steel produced. We have created the unit Fe_ton As previously mentioned, the tool accepts any imperial or SI unit for these metrics, and there is no trouble if one row of data reports -`3.6 tCO2/MWh` and the next row reports `1 t CO2/GJ` (which happen to +:code:`3.6 tCO2/MWh` and the next row reports :code:`1 t CO2/GJ` (which happen to be the same intensity value). All of it will be converted as necessary--and can be converted to some final standard for output if -desired. It is quite OK to see 't CO2/MWh' and 'Mt CO2/TWh' in +desired. It is quite OK to see :code:`t CO2/MWh` and :code:`Mt CO2/TWh` in different rows, but whatever are the metrics for a given row, that's how the numbers will be interpreted for that row. @@ -99,24 +99,24 @@ disclosures. The tool deals with three types of missing data: - If the data is missing to the right, it will extrapolate the data until it has filled in all cells up to the latest reported data. If all but a few companies report 2020 data and none report 2021 data, tool will extrapolation 2019 data for those companies missing 2020 data. If there are also some companies with 2021 data, the tool will extrapolate missing data for 2021 and, if needed, also 2020 data. The tool handles data reports for all scopes defined by the GHG -Protocol: Scope 1 (own emissions), Scope 2 (emissinos caused by -utilities supplying electric power), Scope 3 (upstream and +Protocol: :math:`Scope 1` (own emissions), :math:`Scope 2`(emissinos caused by +utilities supplying electric power), :math:`Scope 3` (upstream and downstream emissions caused by transportation, use, and disposal of -products). The tool also handles S1+S2 as a combined emission and -S1+S2+S3 as a combined emission. *HOWEVER*, at the present time the -tool does not do anything with S3 emissions. Also, it interprets -the benchmark data as applying to S1+S2 emissions, upon which all -temperature scoring depeneds. If data is given as separate S1 and -S2 data, the tool will combine them to create S1+S2 data. If S1, -S2, and S1+S2 data is given, the tool will collect them all, but -will not check the math that S1 + S2 == S1+S2. +products). The tool also handles :math:`S1+S2` as a combined emission and +:math:`S1+S2+S3` as a combined emission. *HOWEVER*, at the present time the +tool does not do anything with :math:`S3` emissions. Also, it interprets +the benchmark data as applying to :math:`S1+S2` emissions, upon which all +temperature scoring depeneds. If data is given as separate :math:`S1` and +:math:`S2` data, the tool will combine them to create :math:`S1+S2` data. If :math:`S1`, +:math:`S2`, and :math:`S1+S2` data is given, the tool will collect them all, but +will not check the math that :math:`S1 + S2 == S1+S2`. Over time we expect the tool will be more useful with the more granular reporting of S1 and S2 data, more accurate in its interpretation of how these should combine or remain separated according to sectors and benchmarks, but for the present time we -strongly encourage that all data either have both S1 and S2 data or -combined S1+S2 data. +strongly encourage that all data either have both :math:`S1` and :math:`S2`data or +combined :math:`S1+S2` data. Finally, columns of the form YYYY_production are for production metrics. As with the _ghg_ columns, the numbers in the production @@ -127,19 +127,19 @@ same way as missing emissions data. ITR target input data --------------------- -The same identifiers--company_name, company_lei, and company_id--are -used to connect a row of `ITR input data` to rows of `ITR target input +The same identifiers--*company_name*, *ompany_lei*, and *company_id*--are +used to connect a row of :code:`ITR input data` to rows of :code:`ITR target input data`. Most companies have set a short-term reduction ambition target (such as reduce absolute emissions by 50% compared with a base year by 2030) and a long-term net-zero target (the tool does not presently distinguish between true zero-emissions and positive emissions with some kind of offset), a single row of data suffices: -- netzero_year is the year at which the netzero ambition should be realized. If multiple netzero_year values are given for the same company, the tool chooses the most recently communicated (latest target_start_year). If there are multiple such, it chooses the earliest netzero attainment date (target_end_year). -- target_type defines whether the short-term ambition is based on absolute emissions or intensity. Note that when it comes to a long-term netzero ambition, zero is zero, whether emissions or intensity. -- target_scope defines the scope(s) of the target. While it is possible to define S1, S2, S1+S2, S3, S1+S2+S3, at present the most reliable choice is S1+S2 (because we don't have a complete theory yet for interpreting the benchmarks upon which the tools is based for other than S1+S2). -- target_start_year is the year the target was set. target_end_year is the year the target is to be attained. In the event that multiple targets aim for a reduction ambition to be attained at the target_end_year, the latest start_year will be the one the tool uses and all other targets for that year will be dropped. If there are both intensity and absolute targets with the same target_start_year, the tool will silently choose the intensity target over the absolute target. If there are multiple targets with that prioritization, the tool will warn that it is going to pick just one. -- target_base_year and target_base_year_qty define the "when" and the "from how much" that the target_ambition_reduction applies to (and hopefully is achieved by the target_year). Because all computations require units, the target_base_year_unit is needed so that target quantities can be compared with other emissions, production, and intensity data. +- *netzero_year* is the year at which the netzero ambition should be realized. If multiple netzero_year values are given for the same company, the tool chooses the most recently communicated (latest target_start_year). If there are multiple such, it chooses the earliest netzero attainment date (target_end_year). +- *target_type* defines whether the short-term ambition is based on absolute emissions or intensity. Note that when it comes to a long-term netzero ambition, zero is zero, whether emissions or intensity. +- *target_scope* defines the scope(s) of the target. While it is possible to define :math:`S1, S2, S1+S2, S3, S1+S2+S3`, at present the most reliable choice is :math:`S1+S2` (because we don't have a complete theory yet for interpreting the benchmarks upon which the tools is based for other than :math:`S1+S2`). +- *target_start_year* is the year the target was set. *target_end_year* is the year the target is to be attained. In the event that multiple targets aim for a reduction ambition to be attained at the *target_end_year*, the latest *target_start_year* will be the one the tool uses and all other targets for that year will be dropped. If there are both intensity and absolute targets with the same *target_start_year*, the tool will silently choose the intensity target over the absolute target. If there are multiple targets with that prioritization, the tool will warn that it is going to pick just one. +- *target_base_year* and *target_base_year_qty* define the "when" and the "from how much" that the target_ambition_reduction applies to (and hopefully is achieved by the *target_year*). Because all computations require units, the *target_base_year_unit* is needed so that target quantities can be compared with other emissions, production, and intensity data. Some companies have set more than just one short-term target. In that case, additional rows of target data can be set, one for each @@ -170,7 +170,7 @@ initial amount as rounding down to zero. Installation Notes ------------------ -The first step is to request an invitation to join the OS-Climate GitHub team. This is required to access repositories that are not yet public. (They will be published soon, but not yet.) You will need a Personal Access Token, which you can get by `following these instructions ` . Because the ITR repository is currently Private, you will need to select `repo` privileges (the first option box) when requesting the token. GitHub will magically select all the boxes indented under the `repo` option. +The first step is to request an invitation to join the OS-Climate GitHub team. This is required to access repositories that are not yet public. (They will be published soon, but not yet.) You will need a Personal Access Token, which you can get by following these instructions: . Because the ITR repository is currently Private, you will need to select :code:`repo` privileges (the first option box) when requesting the token. GitHub will magically select all the boxes indented under the `repo` option. **Getting Started with conda** @@ -179,59 +179,59 @@ If you don't already have a conda environment, you'll need to download one from If you are installing conda on a Windows system, follow these instructions: https://conda.io/projects/conda/en/latest/user-guide/install/windows.html You will want to open the Anaconda PowerShell after installation, which you can do from the Start menu. -If you are on OSX, you will need to install parts of the (utterly massive) Xcode system. The subset you'll need can be installed by typing `xcode-select --install` into a Terminal window (which you can open from Applications>Utilities>Terminal). Thought it is tempting to install the `.pkg ` version of miniconda, there's nothing user-friendly about how OSX tries to manage its own concepts of system security. It is easier to start from the `bash` version and follow those instructions. For other installation instructions, please read https://conda.io/projects/conda/en/latest/user-guide/install/macos.html +If you are on OSX, you will need to install parts of the (utterly massive) Xcode system. The subset you'll need can be installed by typing :code:`xcode-select --install` into a Terminal window (which you can open from Applications>Utilities>Terminal). Thought it is tempting to install the :code:`.pkg ` version of miniconda, there's nothing user-friendly about how OSX tries to manage its own concepts of system security. It is easier to start from the :code:`bash` version and follow those instructions. For other installation instructions, please read https://conda.io/projects/conda/en/latest/user-guide/install/macos.html For Linux: https://conda.io/projects/conda/en/latest/user-guide/install/linux.html. And note that you don't have to use the fish shell. You can use bash, csh, sh, zsh, or whatever is your favorite shell. -You will know you have succeeded in the installation and initialization of conda when you can type `conda info -e` and see an environent listed as base. If your shell cannot find a conda to run, it likely means you have not yet run `conda init --all` +You will know you have succeeded in the installation and initialization of conda when you can type :code:`conda info -e` and see an environent listed as base. If your shell cannot find a conda to run, it likely means you have not yet run :code:`conda init --all` **Getting Started with Git** -You will use `git` to access the ITR source code. You can install git from conda thusly: `conda install -c conda-forge git`. But you can also get it other ways: https://github.com/git-guides/install-git +You will use :code:`git` to access the ITR source code. You can install git from conda thusly: :code:`conda install -c conda-forge git`. But you can also get it other ways: https://github.com/git-guides/install-git **Installing the ITR environment and running the Notebook** With your conda shell and environment running, with git installed, and starting from the directory in which you want to do the testing: -1. Set GITHUB_TOKEN to your GitHub access token (windows `$Env:GITHUB_TOKEN = "your_github_token"`) (OSX/Linux: `export GITHUB_TOKEN=your_github_token`) -2. Clone the ITR repository: `git clone https://github.com/os-climate/ITR.git` -3. Change your directory to the top-level ITR directory: `cd ITR` -4. Switch to the correct branch: `git checkout develop-pint-steel-projections` -5. create the `conda` itr_env: `conda env create -f environment.yml` -6. Activate that environment: `conda activate itr_env` -7. Install the ITR libraries to your local environment: `pip install -e .` (you may need `--no-cache-dir` on windows to avoid permissions errors; please also note that the `.` character is part of the `pip install -e .` command) -8. Change to the `examples` directory -9. Start your notebook: `jupyter-lab`. This should cause your default browser to pop to the front and open a page with a Jupyter Notebook. -10. Make the file browser to the left of the notebook wide enough to expose the full names of the files in the `examples` directory. You should see a file named `quick_template_score_calc.ipynb`. Double click on that file to open it. -11. Run the notebook with a fresh kernel by pressing the `>>` button. Accept the option to Restart Kernel and clear all previous variables. +1. Set GITHUB_TOKEN to your GitHub access token (windows :code`$Env:GITHUB_TOKEN = "your_github_token"`) (OSX/Linux: :code:`export GITHUB_TOKEN=your_github_token`) +2. Clone the ITR repository: :code:`git clone https://github.com/os-climate/ITR.git` +3. Change your directory to the top-level ITR directory: :code:`cd ITR` +4. Switch to the correct branch: :code:`git checkout develop-pint-steel-projections` +5. create the conda itr_env: :code:`conda env create -f environment.yml` +6. Activate that environment: :code:`conda activate itr_env` +7. Install the ITR libraries to your local environment: :code:`pip install -e .` (you may need :code:--no-cache-dir` on windows to avoid permissions errors; please also note that the `.` character is part of the :code:`pip install -e .` command) +8. Change to the *examples* directory: :code:`cd ITR/examples` +9. Start your notebook: code:`jupyter-lab`. This should cause your default browser to pop to the front and open a page with a Jupyter Notebook. +10. Make the file browser to the left of the notebook wide enough to expose the full names of the files in the *examples* directory. You should see a file named :code:`quick_template_score_calc.ipynb`. Double click on that file to open it. +11. Run the notebook with a fresh kernel by pressing the :code:`>>` button. Accept the option to Restart Kernel and clear all previous variables. -The brackets listed near the top left corner of each executable cell will change from `[ ]` (before running the notebook) to `[*]` while the cell's computation is pending, to a number (such as `[5]` for the 5th cell) when computation is complete. If everything is working, you will see text output, graphical output, and a newly created `data_dump.xlsx` file representing the input porfolio, enhanced with temperature score data. +The brackets listed near the top left corner of each executable cell will change from :code:`[ ]` (before running the notebook) to :code:`[*]` while the cell's computation is pending, to a number (such as :code:`[5]` for the 5th cell) when computation is complete. If everything is working, you will see text output, graphical output, and a newly created `data_dump.xlsx` file representing the input porfolio, enhanced with temperature score data. **Loading your own data** -1. Place your portfolio data file under the subdirectory named 'data' (found under the 'examples' directory). -2. Start your notebook: `jupyter-lab` -3. Open the file `quick_template_score_calc.ipynb` +1. Place your portfolio data file under the subdirectory named *data* (found under the *examples* directory). +2. Start your notebook: :code:`jupyter-lab` +3. Open the file :code:`quick_template_score_calc.ipynb` 4. Scroll down to the section 'Download/load the sample template data' -5. Change the filename of the .xlsx in the line: for filename in ['data/', -6. Change the filename of the .xlsx in the line: template_data_path = "data/" -7. Run the notebook with a fresh kernel by pressing the `>>` button. Accept the option to Restart Kernel and clear all previous variables. +5. Change the filename of the .xlsx in the line: :code:`for filename in ['data/',` +6. Change the filename of the .xlsx in the line: :code:`template_data_path = "data/"` +7. Run the notebook with a fresh kernel by pressing the :code:`>>` button. Accept the option to Restart Kernel and clear all previous variables. **Running the ITR Notebook Post Install** 1. Open GitHub Desktop 2. Open the Anaconda PowerShell -3. Set GITHUB_TOKEN to your GitHub access token (windows `$Env:GITHUB_TOKEN = "your_github_token"`) (OSX/Linux: `export GITHUB_TOKEN=your_github_token`) -4. Activate the ITR environment by typing the following command: `conda activate itr_env` -5. Navigate to the 'examples' subdirectory under your GitHub ITR directory -6. Start your notebook: `jupyter-lab` -7. Open the file `quick_template_score_calc.ipynb` -8. Run the notebook with a fresh kernel by pressing the `>>` button. Accept the option to Restart Kernel and clear all previous variables. +3. Set GITHUB_TOKEN to your GitHub access token (windows :code:`$Env:GITHUB_TOKEN = "your_github_token"`) (OSX/Linux: :code:`export GITHUB_TOKEN=your_github_token`) +4. Activate the ITR environment by typing the following command: :code:`conda activate itr_env` +5. Navigate to the *examples* subdirectory under your GitHub ITR directory +6. Start your notebook: :code:`jupyter-lab` +7. Open the file :code:`quick_template_score_calc.ipynb` +8. Run the notebook with a fresh kernel by pressing the :code:`>>` button. Accept the option to Restart Kernel and clear all previous variables. Filing Issues and Updating the ITR Repository --------------------------------------------- -Once you are able to run the `quick_template_score_calc.ipynb` sample notebook with the provided sample data (`examples/data/20220306 ITR Tool Sample Data.xlsx`), you are ready to start trying things with your own data. The notebook explains how to do this at the heading labeled `Download/load the sample template data` before Cell 6. As you try loading your own data, you will inevitably find errors--sometimes with the data you receive, sometimes with the data you present to the tool, sometimes with the way the tool loads or does not load your data, sometimes with the way the tool interprets or presents your data. It is the goal of the Data Commons to streamline and simplify access to data so as to reduce the first to cases of errors, and it is the goal of the ITR project team to continuously improve the ITR tool to reduce the other cases of errors. In all cases, the correction of errors begins with an error reporting process and ends with an effective update process. +Once you are able to run the `quick_template_score_calc.ipynb` sample notebook with the provided sample data (:code:`examples/data/20220306 ITR Tool Sample Data.xlsx`), you are ready to start trying things with your own data. The notebook explains how to do this at the heading labeled :code:`Download/load the sample template data` before Cell 6. As you try loading your own data, you will inevitably find errors--sometimes with the data you receive, sometimes with the data you present to the tool, sometimes with the way the tool loads or does not load your data, sometimes with the way the tool interprets or presents your data. It is the goal of the Data Commons to streamline and simplify access to data so as to reduce the first to cases of errors, and it is the goal of the ITR project team to continuously improve the ITR tool to reduce the other cases of errors. In all cases, the correction of errors begins with an error reporting process and ends with an effective update process. To report errors, please use the GitHub Issues interface for the ITR tool: https://github.com/os-climate/ITR/issues @@ -242,11 +242,11 @@ The collective actions of many people reporting issues and many people working c At some point you will receive notice that your issue has been addressed with a new release. There are two ways you can update to the new release. The first (and least efficient) way is to run the installation process from top to bottom, using a new directory for the installation. For most of us, this takes about 10 minutes, but it can take longer for various reasons. The second way takes less than a minute: 1. Close your jupyter-lab browser tab and shut down the jupyter-lab server (typing Ctrl-C or some such in the shell) -2. Change your directory to the top of your ITR tree: cd ~/os-climate/ITR (or some such) +2. Change your directory to the top of your ITR tree: :code:`cd ~/os-climate/ITR` (or some such) 3. Pull changes from upstream: git pull 4. If git complains that you have modified some files (such as your notebook, which is "modified" every time you run it), you can - 1. remove the notebook file: rm examples/data/20220306\ ITR\ Tool\ Sample\ Data.xlsx - 2. restore it from the updated repository: git restore examples/data/20220306\ ITR\ Tool\ Sample\ Data.xlsx + 1. remove the notebook file: :code:`rm examples/data/20220306\ ITR\ Tool\ Sample\ Data.xlsx` + 2. restore it from the updated repository: :code:`git restore examples/data/20220306\ ITR\ Tool\ Sample\ Data.xlsx` 5. Restart your jupyter-lab server Over time you may do other things to your local repository that makes it difficult to sync with git. You can file an issue for help, you can do your own research (many of us find answers on github community forums or StackOverflow), or you can go with Option #1: run the installation process from top to bottom in a new directory. From bf0131c14db834f0df3d17b12c7c3e1c44f8c19b Mon Sep 17 00:00:00 2001 From: MichaelTiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> Date: Fri, 6 May 2022 08:00:40 -0400 Subject: [PATCH 209/345] Support flexible projection controls Allows user to set UPPER/LOWER PERCENTILES, UPPER/LOWER DELTAs, and select MEAN vs. MEDIAN. Signed-off-by: MichaelTiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- ITR/configs.py | 11 --- ITR/data/base_providers.py | 31 +++++---- ITR/data/data_providers.py | 2 +- ITR/data/template.py | 7 +- ITR/interfaces.py | 47 +++---------- test/test_projection.py | 133 +++++++++++++++++++++++++++++++++++-- 6 files changed, 161 insertions(+), 70 deletions(-) diff --git a/ITR/configs.py b/ITR/configs.py index dd6a5e5d..f0e23985 100644 --- a/ITR/configs.py +++ b/ITR/configs.py @@ -135,14 +135,3 @@ class TemperatureScoreConfig(PortfolioAggregationConfig): carbon_conversion=Q_(3664.0, ureg('Gt CO2')), scenario_target_temperature=Q_(1.5, ureg.delta_degC) ) - - -class ProjectionConfig: - LOWER_PERCENTILE: float = 0.1 - UPPER_PERCENTILE: float = 0.9 - - LOWER_DELTA: float = -0.10 - UPPER_DELTA: float = +0.03 - - TARGET_YEAR: int = 2050 - diff --git a/ITR/data/base_providers.py b/ITR/data/base_providers.py index 5a24eed7..32fbab62 100644 --- a/ITR/data/base_providers.py +++ b/ITR/data/base_providers.py @@ -6,13 +6,13 @@ from typing import List, Type, Dict from ITR.data.osc_units import Q_, PA_ -from ITR.configs import ColumnsConfig, TemperatureScoreConfig, ProjectionConfig, VariablesConfig +from ITR.configs import ColumnsConfig, TemperatureScoreConfig, VariablesConfig from ITR.data.data_providers import CompanyDataProvider, ProductionBenchmarkDataProvider, \ IntensityBenchmarkDataProvider from ITR.interfaces import ICompanyData, EScope, IProductionBenchmarkScopes, IEIBenchmarkScopes, \ IBenchmark, IProjection, ICompanyEIProjections, ICompanyEIProjectionsScopes, IHistoricEIScopes, \ IHistoricEmissionsScopes, IProductionRealization, ITargetData, IHistoricData, ICompanyEIProjection, \ - IEmissionRealization, IntensityMetric + IEmissionRealization, IntensityMetric, ProjectionControls # TODO handling of scopes in benchmarks @@ -203,11 +203,13 @@ class BaseCompanyDataProvider(CompanyDataProvider): def __init__(self, companies: List[ICompanyData], column_config: Type[ColumnsConfig] = ColumnsConfig, - tempscore_config: Type[TemperatureScoreConfig] = TemperatureScoreConfig): + tempscore_config: Type[TemperatureScoreConfig] = TemperatureScoreConfig, + projection_controls: Type[ProjectionControls] = ProjectionControls): super().__init__() - self._companies = self._validate_projected_trajectories(companies) self.column_config = column_config self.temp_config = tempscore_config + self.projection_controls = projection_controls + self._companies = self._validate_projected_trajectories(companies) def _validate_projected_trajectories(self, companies: List[ICompanyData]) -> List[ICompanyData]: companies_without_data = [c.company_id for c in companies if not c.historic_data and not c.projected_intensities] @@ -216,7 +218,7 @@ def _validate_projected_trajectories(self, companies: List[ICompanyData]) -> Lis companies_without_projections = [c for c in companies if not c.projected_intensities] if companies_without_projections: companies_with_projections = [c for c in companies if c.projected_intensities] - return companies_with_projections + EITrajectoryProjector().project_ei_trajectories(companies_without_projections) + return companies_with_projections + EITrajectoryProjector(self.projection_controls).project_ei_trajectories(companies_without_projections) else: return companies @@ -386,18 +388,19 @@ class EITrajectoryProjector(object): - A company's production history (units depend on industry, e.g. TWh for electricity) """ - def __init__(self): - pass + def __init__(self, + projection_controls: Type[ProjectionControls]=ProjectionControls): + self.projection_controls = projection_controls def project_ei_trajectories(self, companies: List[ICompanyData]) -> List[ICompanyData]: historic_data = self._extract_historic_data(companies) self._compute_missing_historic_ei(companies, historic_data) historic_years = [column for column in historic_data.columns if type(column) == int] - projection_years = range(max(historic_years), ProjectionConfig.TARGET_YEAR) + projection_years = range(max(historic_years), self.projection_controls.TARGET_YEAR) # historic_intensities.loc[historic_intensities.index.get_level_values('company_id')=='US6293775085'] - historic_intensities = historic_data[historic_years].query('variable=="Emissions Intensities"') + historic_intensities = historic_data[historic_years].query(f"variable=='{VariablesConfig.EMISSIONS_INTENSITIES}'") standardized_intensities = self._standardize(historic_intensities) intensity_trends = self._get_trends(standardized_intensities) extrapolated = self._extrapolate(intensity_trends, projection_years, historic_data) @@ -545,8 +548,8 @@ def _winsorize(self, historic_intensities: pd.DataFrame) -> pd.DataFrame: # See https://github.com/hgrecco/pint-pandas/issues/114 winsorized: pd.DataFrame = historic_intensities.clip( # Must set numeric_only to false to process Quantities - lower=historic_intensities.quantile(q=ProjectionConfig.LOWER_PERCENTILE, axis='index', numeric_only=False), - upper=historic_intensities.quantile(q=ProjectionConfig.UPPER_PERCENTILE, axis='index', numeric_only=False), + lower=historic_intensities.quantile(q=self.projection_controls.LOWER_PERCENTILE, axis='index', numeric_only=False), + upper=historic_intensities.quantile(q=self.projection_controls.UPPER_PERCENTILE, axis='index', numeric_only=False), axis='columns' ) return winsorized @@ -575,9 +578,9 @@ def _get_trends(self, intensities: pd.DataFrame): ratios: pd.DataFrame = intensities.rolling(window=2, axis='index', closed='right') \ .apply(func=self._year_on_year_ratio, raw=True) # .dropna(how='all',axis=0) # .fillna(0) - trends: pd.DataFrame = ratios.median(axis='index', skipna=True).clip( - lower=ProjectionConfig.LOWER_DELTA, - upper=ProjectionConfig.UPPER_DELTA, + trends: pd.DataFrame = self.projection_controls.TREND_CALC_METHOD(ratios, axis='index', skipna=True).clip( + lower=self.projection_controls.LOWER_DELTA, + upper=self.projection_controls.UPPER_DELTA, ) return trends.T diff --git a/ITR/data/data_providers.py b/ITR/data/data_providers.py index edda8f8e..e532f90f 100644 --- a/ITR/data/data_providers.py +++ b/ITR/data/data_providers.py @@ -4,7 +4,7 @@ import numpy as np -from ITR.configs import ProjectionConfig, TabsConfig, ColumnsConfig, VariablesConfig, TemperatureScoreConfig +from ITR.configs import TabsConfig, ColumnsConfig, VariablesConfig, TemperatureScoreConfig from ITR.interfaces import ICompanyData, EScope, IHistoricData, IProductionRealization, IHistoricEmissionsScopes, \ IHistoricEIScopes, ICompanyEIProjection, ICompanyEIProjectionsScopes, ICompanyEIProjections diff --git a/ITR/data/template.py b/ITR/data/template.py index 399ee615..157f65e9 100644 --- a/ITR/data/template.py +++ b/ITR/data/template.py @@ -11,7 +11,7 @@ from ITR.interfaces import ICompanyData, EScope, \ IHistoricEmissionsScopes, \ IProductionRealization, IHistoricEIScopes, IHistoricData, ITargetData, IEmissionRealization, IEIRealization, \ - IProjection + IProjection, ProjectionControls ureg = pint.get_application_registry() Q_ = ureg.Quantity @@ -51,9 +51,10 @@ class TemplateProviderCompany(BaseCompanyDataProvider): def __init__(self, excel_path: str, column_config: Type[ColumnsConfig] = ColumnsConfig, - tempscore_config: Type[TemperatureScoreConfig] = TemperatureScoreConfig): + tempscore_config: Type[TemperatureScoreConfig] = TemperatureScoreConfig, + projection_controls: Type[ProjectionControls] = ProjectionControls): self._companies = self._convert_from_template_company_data(excel_path) - super().__init__(self._companies, column_config, tempscore_config) + super().__init__(self._companies, column_config, tempscore_config, projection_controls) def _calculate_target_projections(self, production_bm: BaseProviderProductionBenchmark, diff --git a/ITR/interfaces.py b/ITR/interfaces.py index be7fadc1..81b1b514 100644 --- a/ITR/interfaces.py +++ b/ITR/interfaces.py @@ -1,4 +1,5 @@ import numpy as np +import pandas as pd from enum import Enum from typing import Optional, Dict, List, Literal, Union from typing_extensions import Annotated @@ -650,42 +651,16 @@ def __getitem__(self, item): def tcre_multiplier(self) -> Quantity['delta_degC/CO2']: return self.tcre / self.carbon_conversion +from dataclasses import dataclass +from typing import Callable -class EScope(SortableEnum): - S1 = "S1" - S2 = "S2" - S3 = "S3" - S1S2 = "S1+S2" - S1S2S3 = "S1+S2+S3" - - @classmethod - def get_scopes(cls) -> List[str]: - """ - Get a list of all scopes. - :return: A list of EScope string values - """ - return ['S1', 'S2', 'S3', 'S1S2', 'S1S2S3'] - - @classmethod - def get_result_scopes(cls) -> List['EScope']: - """ - Get a list of scopes that should be calculated if the user leaves it open. - - :return: A list of EScope objects - """ - return [cls.S1S2, cls.S3, cls.S1S2S3] - - -class ETimeFrames(SortableEnum): - """ - TODO: add support for multiple timeframes. Long currently corresponds to 2050. - """ - SHORT = "short" - MID = "mid" - LONG = "long" +@dataclass +class ProjectionControls: + LOWER_PERCENTILE: float = 0.1 + UPPER_PERCENTILE: float = 0.9 + LOWER_DELTA: float = -0.10 + UPPER_DELTA: float = +0.03 -class ECarbonBudgetScenario(Enum): - P25 = "25 percentile" - P75 = "75 percentile" - MEAN = "Average" + TARGET_YEAR: int = 2050 + TREND_CALC_METHOD: Callable[[pd.DataFrame], pd.DataFrame] = staticmethod(pd.DataFrame.median) diff --git a/test/test_projection.py b/test/test_projection.py index 7002077b..0c01f5a4 100644 --- a/test/test_projection.py +++ b/test/test_projection.py @@ -6,7 +6,7 @@ from utils import QuantityEncoder from ITR.data.base_providers import EITrajectoryProjector -from ITR.interfaces import ICompanyData +from ITR.interfaces import ICompanyData, ProjectionControls class TestProjector(unittest.TestCase): @@ -32,7 +32,130 @@ def test_project(self): with open(self.json_reference_path, 'r') as file: reference_projections = json.load(file) - # Column names from read_csv are read as strings - projections.columns = [str(col) for col in projections.columns] - reference = pd.read_csv(self.reference_path) - pd.testing.assert_frame_equal(projections, reference) + projections_dict = [projection.dict() for projection in projections] + + for i in range(len(projections_dict)): + if json.dumps(projections_dict[i], cls=QuantityEncoder) != json.dumps(reference_projections[i], cls=QuantityEncoder): + print(f"Differences in projections_dict[{i}]: company_name = {projections_dict[i]['company_name']}; company_id = {projections_dict[i]['company_id']}") + for k, v in projections_dict[i].items(): + if k == 'ghg_s1s2' and not reference_projections[i].get(k): + print("ghg_s1s2") + continue + if k == 'projected_intensities': + for scope in projections_dict[i][k]: + if reference_projections[i][k].get(scope): + vref = reference_projections[i][k] + if not v.get(scope): + print(f"projection has no scope {scope} for projection_intensities") + test_failed = True + elif json.dumps(v[scope]['projections'], cls=QuantityEncoder) != json.dumps(vref[scope]['projections'], cls=QuantityEncoder): + print(f"projected_intensities differ for scope {scope}") + print(f"computed {k}:\n{json.dumps(v[scope]['projections'], cls=QuantityEncoder)}\n\nreference {k}:\n{json.dumps(vref[scope]['projections'], cls=QuantityEncoder)}\n\n") + test_failed = True + elif v.get(scope): + print(f"reference has no scope {scope} for projection_intensities") + # ???? test_failed = True + continue + try: + vref = reference_projections[i][k] + if json.dumps(v, cls=QuantityEncoder) != json.dumps(vref, cls=QuantityEncoder): + print(f"computed {k}:\n{json.dumps(v, cls=QuantityEncoder)}\n\nreference {k}:\n{json.dumps(vref, cls=QuantityEncoder)}\n\n") + test_failed = True + except KeyError as e: + print(f"missing in reference: {k}: {json.dumps(v)}\n\n") + test_failed = True + + self.assertEqual(test_failed, False) + + + # Need test data in order to test mean + def test_median(self): + test_failed = False + projections = EITrajectoryProjector(ProjectionControls(TREND_CALC_METHOD=pd.DataFrame.median)).project_ei_trajectories(self.companies) + with open(self.json_reference_path, 'r') as file: + reference_projections = json.load(file) + + projections_dict = [projection.dict() for projection in projections] + + for i in range(len(projections_dict)): + if json.dumps(projections_dict[i], cls=QuantityEncoder) != json.dumps(reference_projections[i], cls=QuantityEncoder): + print(f"Differences in projections_dict[{i}]: company_name = {projections_dict[i]['company_name']}; company_id = {projections_dict[i]['company_id']}") + for k, v in projections_dict[i].items(): + if k == 'ghg_s1s2' and not reference_projections[i].get(k): + print("ghg_s1s2") + continue + if k == 'projected_intensities': + for scope in projections_dict[i][k]: + if reference_projections[i][k].get(scope): + vref = reference_projections[i][k] + if not v.get(scope): + print(f"projection has no scope {scope} for projection_intensities") + test_failed = True + elif json.dumps(v[scope]['projections'], cls=QuantityEncoder) != json.dumps(vref[scope]['projections'], cls=QuantityEncoder): + print(f"projected_intensities differ for scope {scope}") + print(f"computed {k}:\n{json.dumps(v[scope]['projections'], cls=QuantityEncoder)}\n\nreference {k}:\n{json.dumps(vref[scope]['projections'], cls=QuantityEncoder)}\n\n") + test_failed = True + elif v.get(scope): + print(f"reference has no scope {scope} for projection_intensities") + # ???? test_failed = True + continue + try: + vref = reference_projections[i][k] + if json.dumps(v, cls=QuantityEncoder) != json.dumps(vref, cls=QuantityEncoder): + print(f"computed {k}:\n{json.dumps(v, cls=QuantityEncoder)}\n\nreference {k}:\n{json.dumps(vref, cls=QuantityEncoder)}\n\n") + test_failed = True + except KeyError as e: + print(f"missing in reference: {k}: {json.dumps(v)}\n\n") + test_failed = True + + self.assertEqual(test_failed, False) + + + def test_upper_lower(self): + test_failed = False + projections = EITrajectoryProjector(ProjectionControls(UPPER_PERCENTILE=0.9, LOWER_PERCENTILE=0.1)).project_ei_trajectories(self.companies) + with open(self.json_reference_path, 'r') as file: + reference_projections = json.load(file) + + projections_dict = [projection.dict() for projection in projections] + + for i in range(len(projections_dict)): + if json.dumps(projections_dict[i], cls=QuantityEncoder) != json.dumps(reference_projections[i], cls=QuantityEncoder): + print(f"Differences in projections_dict[{i}]: company_name = {projections_dict[i]['company_name']}; company_id = {projections_dict[i]['company_id']}") + for k, v in projections_dict[i].items(): + if k == 'ghg_s1s2' and not reference_projections[i].get(k): + print("ghg_s1s2") + continue + if k == 'projected_intensities': + for scope in projections_dict[i][k]: + if reference_projections[i][k].get(scope): + vref = reference_projections[i][k] + if not v.get(scope): + print(f"projection has no scope {scope} for projection_intensities") + test_failed = True + elif json.dumps(v[scope]['projections'], cls=QuantityEncoder) != json.dumps(vref[scope]['projections'], cls=QuantityEncoder): + print(f"projected_intensities differ for scope {scope}") + print(f"computed {k}:\n{json.dumps(v[scope]['projections'], cls=QuantityEncoder)}\n\nreference {k}:\n{json.dumps(vref[scope]['projections'], cls=QuantityEncoder)}\n\n") + test_failed = True + elif v.get(scope): + print(f"reference has no scope {scope} for projection_intensities") + # ???? test_failed = True + continue + try: + vref = reference_projections[i][k] + if json.dumps(v, cls=QuantityEncoder) != json.dumps(vref, cls=QuantityEncoder): + print(f"computed {k}:\n{json.dumps(v, cls=QuantityEncoder)}\n\nreference {k}:\n{json.dumps(vref, cls=QuantityEncoder)}\n\n") + test_failed = True + except KeyError as e: + print(f"missing in reference: {k}: {json.dumps(v)}\n\n") + test_failed = True + + self.assertEqual(test_failed, False) + + +if __name__ == "__main__": + s = pd.Series([1, None, 3], dtype=float) + s.interpolate(method="linear") + test = TestProjector() + test.setUp() + test.test_project() From 65a5250de39cad9caddd249f682f5b08ba60da9a Mon Sep 17 00:00:00 2001 From: David Kroon <35101727+dp90@users.noreply.github.com> Date: Thu, 19 May 2022 17:31:12 +0200 Subject: [PATCH 210/345] Move json comparison to function Signed-off-by: David Kroon <35101727+dp90@users.noreply.github.com> Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- test/test_projection.py | 145 ++++++++++++---------------------------- 1 file changed, 43 insertions(+), 102 deletions(-) diff --git a/test/test_projection.py b/test/test_projection.py index 0c01f5a4..237033f6 100644 --- a/test/test_projection.py +++ b/test/test_projection.py @@ -2,6 +2,7 @@ import unittest import os import datetime +from typing import List import pandas as pd from utils import QuantityEncoder @@ -9,6 +10,42 @@ from ITR.interfaces import ICompanyData, ProjectionControls +def is_pint_dict_equal(result: List[dict], reference: List[dict]) -> bool: + is_equal = True + for i in range(len(result)): + if json.dumps(result[i], cls=QuantityEncoder) != json.dumps(reference[i], cls=QuantityEncoder): + print(f"Differences in projections_dict[{i}]: company_name = {result[i]['company_name']}; company_id = {result[i]['company_id']}") + for k, v in result[i].items(): + if k == 'ghg_s1s2' and not reference[i].get(k): + print("ghg_s1s2") + continue + if k == 'projected_intensities': + for scope in result[i][k]: + if reference[i][k].get(scope): + vref = reference[i][k] + if not v.get(scope): + print(f"projection has no scope {scope} for projection_intensities") + is_equal = False + elif json.dumps(v[scope]['projections'], cls=QuantityEncoder) != json.dumps(vref[scope]['projections'], cls=QuantityEncoder): + print(f"projected_intensities differ for scope {scope}") + print(f"computed {k}:\n{json.dumps(v[scope]['projections'], cls=QuantityEncoder)}\n\nreference {k}:\n{json.dumps(vref[scope]['projections'], cls=QuantityEncoder)}\n\n") + is_equal = False + elif v.get(scope): + print(f"reference has no scope {scope} for projection_intensities") + # ???? is_equal = False + continue + try: + vref = reference[i][k] + if json.dumps(v, cls=QuantityEncoder) != json.dumps(vref, cls=QuantityEncoder): + print(f"computed {k}:\n{json.dumps(v, cls=QuantityEncoder)}\n\nreference {k}:\n{json.dumps(vref, cls=QuantityEncoder)}\n\n") + is_equal = False + except KeyError as e: + print(f"missing in reference: {k}: {json.dumps(v)}\n\n") + is_equal = False + + return is_equal + + class TestProjector(unittest.TestCase): """ Test the projector that converts historic data into emission intensity projections @@ -27,130 +64,34 @@ def setUp(self) -> None: self.projector = EITrajectoryProjector() def test_project(self): - test_failed = False projections = self.projector.project_ei_trajectories(self.companies) with open(self.json_reference_path, 'r') as file: reference_projections = json.load(file) projections_dict = [projection.dict() for projection in projections] + test_successful = is_pint_dict_equal(projections_dict, reference_projections) - for i in range(len(projections_dict)): - if json.dumps(projections_dict[i], cls=QuantityEncoder) != json.dumps(reference_projections[i], cls=QuantityEncoder): - print(f"Differences in projections_dict[{i}]: company_name = {projections_dict[i]['company_name']}; company_id = {projections_dict[i]['company_id']}") - for k, v in projections_dict[i].items(): - if k == 'ghg_s1s2' and not reference_projections[i].get(k): - print("ghg_s1s2") - continue - if k == 'projected_intensities': - for scope in projections_dict[i][k]: - if reference_projections[i][k].get(scope): - vref = reference_projections[i][k] - if not v.get(scope): - print(f"projection has no scope {scope} for projection_intensities") - test_failed = True - elif json.dumps(v[scope]['projections'], cls=QuantityEncoder) != json.dumps(vref[scope]['projections'], cls=QuantityEncoder): - print(f"projected_intensities differ for scope {scope}") - print(f"computed {k}:\n{json.dumps(v[scope]['projections'], cls=QuantityEncoder)}\n\nreference {k}:\n{json.dumps(vref[scope]['projections'], cls=QuantityEncoder)}\n\n") - test_failed = True - elif v.get(scope): - print(f"reference has no scope {scope} for projection_intensities") - # ???? test_failed = True - continue - try: - vref = reference_projections[i][k] - if json.dumps(v, cls=QuantityEncoder) != json.dumps(vref, cls=QuantityEncoder): - print(f"computed {k}:\n{json.dumps(v, cls=QuantityEncoder)}\n\nreference {k}:\n{json.dumps(vref, cls=QuantityEncoder)}\n\n") - test_failed = True - except KeyError as e: - print(f"missing in reference: {k}: {json.dumps(v)}\n\n") - test_failed = True - - self.assertEqual(test_failed, False) - + self.assertEqual(test_successful, True) # Need test data in order to test mean def test_median(self): - test_failed = False projections = EITrajectoryProjector(ProjectionControls(TREND_CALC_METHOD=pd.DataFrame.median)).project_ei_trajectories(self.companies) with open(self.json_reference_path, 'r') as file: reference_projections = json.load(file) projections_dict = [projection.dict() for projection in projections] - for i in range(len(projections_dict)): - if json.dumps(projections_dict[i], cls=QuantityEncoder) != json.dumps(reference_projections[i], cls=QuantityEncoder): - print(f"Differences in projections_dict[{i}]: company_name = {projections_dict[i]['company_name']}; company_id = {projections_dict[i]['company_id']}") - for k, v in projections_dict[i].items(): - if k == 'ghg_s1s2' and not reference_projections[i].get(k): - print("ghg_s1s2") - continue - if k == 'projected_intensities': - for scope in projections_dict[i][k]: - if reference_projections[i][k].get(scope): - vref = reference_projections[i][k] - if not v.get(scope): - print(f"projection has no scope {scope} for projection_intensities") - test_failed = True - elif json.dumps(v[scope]['projections'], cls=QuantityEncoder) != json.dumps(vref[scope]['projections'], cls=QuantityEncoder): - print(f"projected_intensities differ for scope {scope}") - print(f"computed {k}:\n{json.dumps(v[scope]['projections'], cls=QuantityEncoder)}\n\nreference {k}:\n{json.dumps(vref[scope]['projections'], cls=QuantityEncoder)}\n\n") - test_failed = True - elif v.get(scope): - print(f"reference has no scope {scope} for projection_intensities") - # ???? test_failed = True - continue - try: - vref = reference_projections[i][k] - if json.dumps(v, cls=QuantityEncoder) != json.dumps(vref, cls=QuantityEncoder): - print(f"computed {k}:\n{json.dumps(v, cls=QuantityEncoder)}\n\nreference {k}:\n{json.dumps(vref, cls=QuantityEncoder)}\n\n") - test_failed = True - except KeyError as e: - print(f"missing in reference: {k}: {json.dumps(v)}\n\n") - test_failed = True - - self.assertEqual(test_failed, False) - + test_successful = is_pint_dict_equal(projections_dict, reference_projections) + self.assertEqual(test_successful, True) def test_upper_lower(self): - test_failed = False projections = EITrajectoryProjector(ProjectionControls(UPPER_PERCENTILE=0.9, LOWER_PERCENTILE=0.1)).project_ei_trajectories(self.companies) with open(self.json_reference_path, 'r') as file: reference_projections = json.load(file) projections_dict = [projection.dict() for projection in projections] - - for i in range(len(projections_dict)): - if json.dumps(projections_dict[i], cls=QuantityEncoder) != json.dumps(reference_projections[i], cls=QuantityEncoder): - print(f"Differences in projections_dict[{i}]: company_name = {projections_dict[i]['company_name']}; company_id = {projections_dict[i]['company_id']}") - for k, v in projections_dict[i].items(): - if k == 'ghg_s1s2' and not reference_projections[i].get(k): - print("ghg_s1s2") - continue - if k == 'projected_intensities': - for scope in projections_dict[i][k]: - if reference_projections[i][k].get(scope): - vref = reference_projections[i][k] - if not v.get(scope): - print(f"projection has no scope {scope} for projection_intensities") - test_failed = True - elif json.dumps(v[scope]['projections'], cls=QuantityEncoder) != json.dumps(vref[scope]['projections'], cls=QuantityEncoder): - print(f"projected_intensities differ for scope {scope}") - print(f"computed {k}:\n{json.dumps(v[scope]['projections'], cls=QuantityEncoder)}\n\nreference {k}:\n{json.dumps(vref[scope]['projections'], cls=QuantityEncoder)}\n\n") - test_failed = True - elif v.get(scope): - print(f"reference has no scope {scope} for projection_intensities") - # ???? test_failed = True - continue - try: - vref = reference_projections[i][k] - if json.dumps(v, cls=QuantityEncoder) != json.dumps(vref, cls=QuantityEncoder): - print(f"computed {k}:\n{json.dumps(v, cls=QuantityEncoder)}\n\nreference {k}:\n{json.dumps(vref, cls=QuantityEncoder)}\n\n") - test_failed = True - except KeyError as e: - print(f"missing in reference: {k}: {json.dumps(v)}\n\n") - test_failed = True - - self.assertEqual(test_failed, False) + test_successful = is_pint_dict_equal(projections_dict, reference_projections) + self.assertEqual(test_successful, True) if __name__ == "__main__": From 76c9effe9a8c2722f80f1ece9926a869f754d0c6 Mon Sep 17 00:00:00 2001 From: David Kroon <35101727+dp90@users.noreply.github.com> Date: Thu, 19 May 2022 17:33:56 +0200 Subject: [PATCH 211/345] Change argument type of projection control in BaseCompanyDataProvider to instance rather than class to match how it's called in test - seems the appropriate way to call Signed-off-by: David Kroon <35101727+dp90@users.noreply.github.com> Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- ITR/data/base_providers.py | 8 +++----- ITR/interfaces.py | 7 +++---- 2 files changed, 6 insertions(+), 9 deletions(-) diff --git a/ITR/data/base_providers.py b/ITR/data/base_providers.py index 32fbab62..b584235e 100644 --- a/ITR/data/base_providers.py +++ b/ITR/data/base_providers.py @@ -204,7 +204,7 @@ def __init__(self, companies: List[ICompanyData], column_config: Type[ColumnsConfig] = ColumnsConfig, tempscore_config: Type[TemperatureScoreConfig] = TemperatureScoreConfig, - projection_controls: Type[ProjectionControls] = ProjectionControls): + projection_controls: ProjectionControls = ProjectionControls()): super().__init__() self.column_config = column_config self.temp_config = tempscore_config @@ -388,8 +388,7 @@ class EITrajectoryProjector(object): - A company's production history (units depend on industry, e.g. TWh for electricity) """ - def __init__(self, - projection_controls: Type[ProjectionControls]=ProjectionControls): + def __init__(self, projection_controls: ProjectionControls = ProjectionControls()): self.projection_controls = projection_controls def project_ei_trajectories(self, companies: List[ICompanyData]) -> List[ICompanyData]: @@ -398,8 +397,7 @@ def project_ei_trajectories(self, companies: List[ICompanyData]) -> List[ICompan historic_years = [column for column in historic_data.columns if type(column) == int] projection_years = range(max(historic_years), self.projection_controls.TARGET_YEAR) - # historic_intensities.loc[historic_intensities.index.get_level_values('company_id')=='US6293775085'] - + historic_intensities = historic_data[historic_years].query(f"variable=='{VariablesConfig.EMISSIONS_INTENSITIES}'") standardized_intensities = self._standardize(historic_intensities) intensity_trends = self._get_trends(standardized_intensities) diff --git a/ITR/interfaces.py b/ITR/interfaces.py index 81b1b514..a90fdc5c 100644 --- a/ITR/interfaces.py +++ b/ITR/interfaces.py @@ -2,9 +2,10 @@ import pandas as pd from enum import Enum from typing import Optional, Dict, List, Literal, Union -from typing_extensions import Annotated -from pydantic import BaseModel, Field, parse_obj_as, validator +from pydantic import BaseModel, parse_obj_as, validator from pint import Quantity +from dataclasses import dataclass +from typing import Callable from ITR.data.osc_units import ureg, Q_ @@ -651,8 +652,6 @@ def __getitem__(self, item): def tcre_multiplier(self) -> Quantity['delta_degC/CO2']: return self.tcre / self.carbon_conversion -from dataclasses import dataclass -from typing import Callable @dataclass class ProjectionControls: From fcd4f1a8e4721dbb5f8eee2dd35d838baecc3cce Mon Sep 17 00:00:00 2001 From: oleksandr-anufriyev1 Date: Mon, 16 May 2022 13:37:50 +0200 Subject: [PATCH 212/345] Adding check for sectors in scope while reading xlsx with input data Signed-off-by: oleksandr-anufriyev1 Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- ITR/data/template.py | 13 ++++++- environment.yml | 2 +- .../data/20220215 ITR Tool Sample Data.xlsx | Bin 82365 -> 85555 bytes .../data/20220415 ITR Tool Sample Data.xlsx | Bin 69847 -> 72124 bytes examples/quick_template_score_calc.ipynb | 36 +++++++++++++----- 5 files changed, 39 insertions(+), 12 deletions(-) diff --git a/ITR/data/template.py b/ITR/data/template.py index 157f65e9..c52478dd 100644 --- a/ITR/data/template.py +++ b/ITR/data/template.py @@ -7,7 +7,7 @@ from pydantic import ValidationError from ITR.data.base_providers import BaseCompanyDataProvider -from ITR.configs import ColumnsConfig, TemperatureScoreConfig, VariablesConfig, TabsConfig +from ITR.configs import ColumnsConfig, TemperatureScoreConfig, VariablesConfig, TabsConfig, SectorsConfig from ITR.interfaces import ICompanyData, EScope, \ IHistoricEmissionsScopes, \ IProductionRealization, IHistoricEIScopes, IHistoricData, ITargetData, IEmissionRealization, IEIRealization, \ @@ -103,6 +103,8 @@ def _check_company_data(self, df: pd.DataFrame) -> None: missing_tabs = [tab for tab in required_tabs if tab not in df] assert not any(tab in missing_tabs for tab in required_tabs), f"Tabs {required_tabs} are required." + + def _convert_from_template_company_data(self, excel_path: str) -> List[ICompanyData]: """ Converts the Excel template to list of ICompanyData objects. All dataprovider features will be inhereted from @@ -126,6 +128,8 @@ def _fixup_name(x): input_data_sheet = "Test input data" df = df_company_data[input_data_sheet] + + df['exposure'].fillna('presumed_equity', inplace=True) # TODO: Fix market_cap column naming inconsistency df.rename( @@ -139,6 +143,13 @@ def _fixup_name(x): df_fundamentals.company_id = df_fundamentals.company_id.astype('object') company_ids = df_fundamentals[ColumnsConfig.COMPANY_ID].unique() + + # testing if only valid sectors are provided + sectors_from_df = df_fundamentals[ColumnsConfig.SECTOR].unique() + required_sectors = [SectorsConfig.STEEL, SectorsConfig.ELECTRICITY] + out_of_scope_sec = [sec for sec in sectors_from_df if sec not in required_sectors] + assert len(out_of_scope_sec) == 0, f"Sector {out_of_scope_sec} are not covered by the ITR tool currently. Delete it from excel template." + # The nightmare of naming columns 20xx_metric instead of metric_20xx...and potentially dealing with data from 1990s... historic_columns = [col for col in df_fundamentals.columns if col[:1].isdigit()] historic_scopes = ['S1', 'S2', 'S3', 'S1S2', 'S1S2S3', 'production'] diff --git a/environment.yml b/environment.yml index 61e2e9e0..5a6146c0 100644 --- a/environment.yml +++ b/environment.yml @@ -1,4 +1,4 @@ -name: itr_env +name: itr_env_develop channels: - conda-forge - defaults diff --git a/examples/data/20220215 ITR Tool Sample Data.xlsx b/examples/data/20220215 ITR Tool Sample Data.xlsx index 5d03398a33d0ee91ed924c93fe007dcac611a21f..4ceeb2c073b88d5e40db5591d268cff441b2e224 100644 GIT binary patch delta 51345 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 delta 48348 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℞uhj1e z`8{6HVYQ#=R=Q0?Sj`yVU%T~^!Y9wf!}w8{P=zrhkd+kL-90^d+ki|cM^Mh-`Pm+N z?}fT-ZO?T5rKsl?Q_A;mzozOk$25gR1%`~ZK{m{Bo7Q>4l#S)o#LCX99eaQx?>sIs5 z|yK@9&FbIB(kU{U?&qr>cBHgw=bGzI+v}k;w$6@4`wVBx?)ePs7&&oie*PXe^U6t*=PX&LM8;r3neE2z=i({121C% z1pYu=z-khJNRS>1I+#)tfC_Dk0A`m2u#y&pqqOBiR<5~7P*50q1_Z#u1LsKr@JRm+Ir-mM zs&;>|4*p>M8?xuWvDn=IVnKrV;F10hPxt>-B1gaq4N;K4sQ5JLA%JoC@7MD z3xHgS9Hwvq2*Ijy06f?~`rvzl@=Ull|DmN{$j;QLa_d`uEqUtEXyYd7BP4Z^4#EE6-Y&zp~3zt z06K7hDu5U!9|n-h1t0>?sX)MHf511eU}#kcI2&>UgN*(Mj0-MP1#mz!V1ifwKp;{N z`u`dRl30JSAfpaT7J$q0A6W>}x>*0KbtQ2CP}VM1nr<#1+&QdV+-&|5ko;#NhlPT| z{9gpC;2m0xuiYWIO$k5`rutKJT2io>3V<3sq71oNqX1Vb0BFI! z$^g7S41yTClk%UGkBX3#&wo<3sKLd`08wZ^`hOrye;^Q^fr85Gok8KPhZr3N?T-^eo4pe|)fu5TvVP)Bw!T%Uu7Yj6%@< k$!d$|FEt4tyQRZ>O%*tZP67&w9r9g=6yDDZ5o@6SAEHSW4FCWD diff --git a/examples/data/20220415 ITR Tool Sample Data.xlsx b/examples/data/20220415 ITR Tool Sample Data.xlsx index 6218aaa585e0f042cb73740db21071f039d9e297..e5a395db1a92d570ecac94dc6288e1ebcb3da799 100644 GIT binary patch delta 41311 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 D#0^@% delta 39670 zcmb5VRahNO&^5Yo$;RCwxVvkx;O_438YFDo3GPk^?(PJ4cXxMp_{sa7@BFvt+|0%F zOik5VtGer{?rE!qT*!s2N`a|W{Za=Gce;l-|e3nru3k1ch4Eob(4A*O_$4%vrV=IfkyXwIoGWb-GoE!(2mPQ*>Z!D+{DhCJ1~OiUhSZgKANIn!h*aKZ{iX2umup z!3PdfbRk@eZP9~2%ez)^qUT%RCT|MvC8WWbJNCne;%GRq{(uvnzdq}a*Dv14 z0D7kAUzR`)LpfEx`kS@my3QSh~`KWV1loG^VZ29KT3#H^UYodFLxRI`?pXO`&1gS zR_e>>i_$4Ht6Yxsn-|4UllJ&*1(n@ZEv5}!fb zGDBYch&3{+#)ePon$Aa)ZfB20=e6%flRBr{PF>=rV!AM8@jjsJKpaN zsUiEw7A-Lxm#e3@+LONp*{-^+YE~!H`dzYzzPsT~*SarazuDPeHQ75sqL$V|fW}>n zHTHWJZp3~`dAWwi%+E>ZKPJKzf`@KAA_`?}Go*af~s_W1=B7u&dZ_iJAdpCPWTW@C@ ztq%jT%d0w(Fzpqrbj;%FLye7ZxpWm!JEC^=1c$t2%OgEh{^f&kHc2TD%)pIdBP2Wg;&+^^bAU^}3zT?2Tsas;bpi_nU0p#p zPXJdfuyNT=?Xr@m2FB|4vPvgBpef{=y~pL6qKuexLjR;Y8uXd_Kxm;mw0W;gBH&p@ku`u~hLO4= zQoIAAXTf`N9F4*uOUU~-QVAdfu3P=BX#2#7#Cjyl+)0P=ckIbuhlTI$Q*dZaa>VD) z-wNIRVHZ@Zn>7a0PPl($Wa^2NF2Kdl^u%qrAA89K!s)<-+Pmt`z-^zoMrhpd?ZI!B zc@q2rd3X9d$!c1aYgM8N`8}wkyXz-bure7PMHNun@!N5kCHf^bX*YO(_1GQ3_3gcm zE}_W=gk$^S8v{@0vIKhKF6GW@rN7kX*~L|!96Mk`kQI}JiIGP)Ou9&h7gv1^}IM~@>Y30^fk2H*TgM7ZCK%g0x3pIZV zD)4X{CUQckb6FapIa!17aLQ{=T;MGXdlCaV#{z58TW20$2FS*iIRx?6!stb7^^JSL z>|O8U>CyYe(ZlQGN=d%u?y;4~XUTko?fzxq0yN8dqp8n94;DLL0XE)et}x;e3J{k|`? zAnYLW0)zEfUv4h1W^FNINEl!{0W?#libW^3;wv-uRi)wi7EGI!F@poqKnl8BD%$nZ zE6SBC9}GURa>Kyl@R-v`!0xDsxBTy;-z1|zi1; zsGtF#ItrMD%kc%vF_E3kg!Nq|1{4%hBmvwR42~Tnz(DyVAD5bi!W!XJ#L6WUX}sTa zR?|Y^4l2?#el_Wl-5&N>k-DEh2F9;{0f@1&-R9bjcE=IHzS#~qA8Ynaq`}DbDBch!9BI={C`j0MQsQ ztZ)hr`l%HBhYI==7GKq$Nq#=2T+hQ*|MCO}9{N@iC+RD68A~1We^D(kP@!7s;{3|5 z^45inS%j(;poaK|hoO-_w7mjPK1snzNf?6V;CR?xyJ`k3F#`8qE#^QKx}s2liLA`C zCAiJgK`(7lCB^fz!|7BAKsMt(a|je-LY2TZ=U;R#uC3?2v!}hyxya z!z%m*C~PO>;{f_qp%6xwaSX3{Kf^WwTr2eYj)zozexEnwdymlf1LRuQKHo}UA)zU3 zOsHS`cnClYs9|b>b9jhv)WGnMsyi1%usC3fyN52;Jk#EVKcXotuPzAqIP7q&7z~hv zz9oUnp@Oy$aFm<9@R?xRqXcJ}RYofeW;0>0{wK!in2E*(c9f*A@Pi2@Vb44$4X1&PSMa`Bx1J%WoDiyyeG&T#JsNLYgU$p{ zwgUoo`h_5BpAFX3gIPuOE0{*?m0c(xCE6LMijhG@nch5kkh@qpqKYP1el7}-q0SB} zGrG7bs))GDF&KR~Sp5Pp$T3ey_oRfGKtr1Czu`S>htjGk+hUJJ8_9r~dNkbQ7=F|A zDb!nT;z>Fz`9hJDa4ui^bN%IG5pbKtR)4&c?{6HXP+G0pS$L?iGrrcw+0cg)DDXp* zzULsrDgsp2r(e&{d-EJ7sEjsWxt2JQ0r2%&MP*0yy`w*aXs zEZ-Is|<< z01TuO{^34~j2M0ly@$mtmNipf?RGxsX!>uN)8u4Wn}9HQIP19Dhp#I|0f%`h#z{YI7s0nj!! zMt!cG2ZTHg$QIqTik;R*yT@`VETPvCeNRJiDu>k2#?J7t1T|97qCv6E@q6f29M9m! zd|thIno;8>I{S$%uYp#*uLeBzYHmQDQ1#VJ$y6`{`D{BSwQ1M-U&>&6r-q~P%8Ud9 zac$jZz`=ZC6AnMpM^FI5k-OQ@Ckf#%tohYg= zw`u(mTQ*lIh{2X}(6w~rKCYahwOds3gmH8o>2Kd=B&l}lhg=dhFlpW$osbtIv3bgnetgOJ zi?FDl32M|2U_Q@eTsWY^T+0Wscg1N5EL;~-=^`}5NDtAr#GY@*1Zsj_WiJGrt4lH` zre2un!QeanP~ZOqYUaN%oc|hSgAb9!Cntl3U(qO>TRO`Zq{;P{gS*O)++muSq56nM zex8FP$qFQE9%JFBCV7{(TuDa(NFf;c3jnB{DJRx4%#OQs(F69*>thE7{os?e>fpj1$ot z9q%t&D>Jfd0&Q=f74OP>XZG6J)772D>yJ8tH43kn%Xb&AmGn+Q-jB!2x2G%67CXxq zWAUM~Kt)CP6%xu~-%n=7kec)0&~+n``2&bi`+G+05M(A_?4O@{ zPDWyV4>kneTj;kQ1ce{(V0MBHA0>%C5CsJUyajwb+3{Ha6vEaAm+)(SE3bjx)l*amYhhpC2>(kITXBmk;tP(Y0!D``S1Ek1hF=qm{|n&wrL@zU0ZsE zCJ|kJ9bWCDEm91hI?QgvM_mR9_>lFgX`xAi2285e+$<@g+Z2SHya;&}(Bo8iw_Znhyk*1*UgK9f<*5I8|UXr^c;8GIE>e#x$4EF28kT)c5)q@tn-BPJbBvL?W88+ zmk#9Qn4Q_TfmqbkM1@?0@CQv4G-M@|FT*k%?THB!2$@EN)^yJT)h@1&+((raYfyv^_ScvZ@VjWXI6#d-e9gdG}#atRjjp^ePgSbEF`b^;u{iy9ab<12mwzbiU}qz*>A_ za9TtZHt1d`UpRb@WFx9z|B3Cv+nja$nbpK5EI|e7=4n`@3sC)^6Il}zsaUb;s;f7a z`%h-r6-g43PfP-3eCR-A?SD9%dwf?-y>m6K{biF&&2}^LWP0?7;rYZaJbkr8Rr8+- z-3>hT_zC`OiY)n^oCZ-Tx*rZQ+8!XPx;9xA36<=fjk^ubRFf;`iNY|bk@6n)v+q*F z-$zD7a`$XMX=uU!U^44TO86fGNERNXp6BtlqR9 zkq}eq&^{o7(I>A{pe7WAUOI4nOr0)ddfj|5(_3U2G}101c_(%@15yw>`yZwj-1QLZ zEB@KXlqt=-A35XCJfq3j=@}NmsFx>#RgtJ}*>7Jmx6?Jt_7ae#OPT-YLrvw>^|gY9 zNBSof6&00Z3e|1F=^eGr4zGRHbM*vN1RzH{v3sDbTBLcD&8y#J?5Ch=Dif*`-*kIq zH)DS3Q!sV*VBdh0)| zLY|jamMJQW@fTS}3a2i!^@I8CqJjlKu{Ikhs=hsf*h&UctH~c-h^U!~enz~Rt{DX5?@3_k2QPVj=#EAiBM!aN0v)xz`ZCnsA6 zxs$hSpPUd}e=qg6o&KM9r!Kxr6*Ye1{l9Q0Kj)@-oj(FW&fY)1n19MG+9x}NMk-t2 zQ`AOxK=0wmR5TR+4W|Kjj-9{e)wiE?8z0>$XgvP|Kz<^-ESt98zIlf?T~R=fRqHGH z?#^0PVu*0(#=ppL)~8a3l{TD4+&QqWuY5_BlmxT{2;u4V|4H>T8;srJ7$QDd9HG+y zHE27HJ;$P6Uv-Q~iEKqBm;Z|^*1oK?{J!kg`(tD8$J@c#+exy1htJD(jXuj-<+uLU zLP|Xqs0wgW@=|bhKR)!V=YI<47mTYrPh zh6f?TUl*Mif3R&_;9E!2=G*YMn`}>GrVEsZMjBkf~5}w&%IGTBL8cpsg?3kIaqGh&v^_*Z#)5p<$=N0p??~7Dv zq@TNA1GdPq*yjXQm;=Mxs`bq|#Qb5O4EutNeqbPFv-)t5MSLnCwXg@oD@^j)kJt2s z#5=1gb<4{mcyRfCqkGwb0NFS`VLt@CSTMT8tcmpFpy)@&;b?jzLY-reMsh1!#2(OH zoyvggPd$Fcgzry`0eYvr-G0otqTtXrdB90#x)xyBK0%m9v?2C1>651ZO58iO8 z;3uC9G&DrLKia>dBffp%+%^HW)iv~Cv-C*(lj-6)7J?(vKFQl>KL6LZ`tMRhEg>U+ zCrc+aF-og8C@D)@t;#aVs;)#eEHmL-Eq(pvZ(e~E6};pVIr&pFlb*Phk(3omsCij_ zOj5Q!_|DesSic;H6-?XcR}Oj)us$ zl2z3IE%AwuBg=J>K}W;A2n4NW8K<;h;_nAnVpw#F&`IozyjP%?<6?Z)o)35^R9**9ms#B?kaaIxDOzX*Bvk1GbbaB zB+8$8o-o=@(0D{%10yWn1yT3?4oJkW-V&_70z2_Z9$Uzxxx^wEw^U3Tp9xJ`(sf~% zi$83@H$`brOB~|L>@($i>7S7#?}l?%CHdm&XKyT15Z~dU2W7LG&3x?XXgFG;{R5WS zV)0xE{GtWC`9Yt!6K@)k1ZM9dK0cfT>Xgb?5D?!IPAvQXiOT;!Ou}_xA$Q2Z008~* z84+6`ghVNjS8<#C7IUmHLL}9OdPy~TZuL%2jc{ntq0%`4$?~;f7Bes5w%7Cn6)LKa z#S{740aha;=9C(R=pMADh+WPHOS6oDx5kw7^--7AG%;*|me(JBh$5YVyOTGq&W7ni zFbg*S#Da!Jo|8no7()bw=egWg^$XPz%=Jl-zHV(ZK}mGbLXHZkDwqh^vMKhZ@*A~) zPESatS)uvKLJqpVcF%(JnVv%9t+j%vq*GHcLr}eyd-F1eN%!F|v~^&>xAr*d3B?$M z(o-d68I7-;ds>m_ECK*ua3wOy?V&!P{3L8mQv? zQo!%MfHb^;i6uW#*C0#-PwD=LQSXpU!z*ph949ej7Qff~<#77U}i6qaBrLt%As4)`N$x+o;LAuw`POjX$JIdWw{=nOeX#L0kM ziJ?x!D0HOTlsIttdTiacvZu&;j^Epa)bP_0CZEvaz5Wpk2E|h)Zc%1-f{qB2T^1)$ z*LR8vMlw;)aO#_9W4b`;eV&jz+;5%mz#YUFLfu}DIBBQD>E;M*)>wYG#V7?n=Vh6= z!CoHbA(#b|Nen z|EdVnWxj^R`mr!pUY?uc#N}3OWtYf)Y_CQEXN^fi){%qeDfO=gi3F!oWwe9is&^R% zV5V^;*7MX($*{Dh4_67cRp$1N{y#9O!caEypKwLjq;$FVGE_V>e<6ZoH`&4Wh;}1p zs289Pnc`YIB~PMYHO-SfG0(kq9cX>*YX=PU*ZI#nAaT5{aER|4@5hi8t^N57gJI!; zSZn^F81FiwnWb7b=LzYH=^RK9=;CVaXz{yIeG_3dl&|i?gzjL@&`{CZS1$=X=~Si% zqJFh-4@7j+s?K_Ij~_23W;1#Mm8Rp?sW)2vclUSStWw*&{e~$n zt`D>1+p70iNfORSp!!;c-G4&1O+~^m6|E??P&QkEjemViV^5)5O(3P;aikEWWLb`$ z1Zs(xuKmpjm$_5I@(hRntj2WJyE4HFOqAs>YOy#+1Twa;}!R;~qSd zEe6Jqz57kE_PvmA%in^{@DmPj*j*{q+?4zYU{en2;q&T3=jDL1*{NM_kRx*I0pVAX_(Ch+LQ%MC*_$EJ8C z^wR6ogAx(grttG@Y1Ms^1+;e3glLJ<9g$sl2Y;}1ky-|W*02?`%Q{37Lv zP;kpjG0Ey?533lRlBXrYmS0Ni$~|G=ODTc4Zo3gO*F zD7_Y$t)ck?vU`)GcdD>vXhuYx^N?!Wn*A98(ZxicJ<1}h*(TQ$UR$fUQpZXM3zVPb zc(ipD=iD+d-B&Ug0c$AVBIB4qSOvFf*;w>xx}yd5u4h%;a6hjTP--K>Jl>iMZ4 z+vR>wp3d_G>6L3=Ab74-P2uxhwv!?tF3;I1oN&U|J2h&EQ z0L1=3C_2c8?!Uzuy^P(J|G>6e19WJH#M+ZP;M(T@z-vxI+X?ZOS2A6S@%{p31i#hQ zsOkHtcDrE5TO|UrCbtOUOTdSv11Vmfg+!+lN0ueRcPK`6oCI;KJi$T|oo9kYFQ2Z{DhTePu8zG+|ACTF38?RB- zqZ>0SdiO(8qVws{HxfY>U8$Ha7!i}&y93etW`1}_sFdyP?8X?fv z4*9A3y$T3D*dsf!0vyt&6rk5S*vy^@EaB!|BF5`dvKbFJ^%4Rs4yW8)dqi{Gush~E z@Sj#D_JayRrVnQJ8iu7YNmTSHncP$TX?*i8bHoBMSlONSG|yp(^s8dg8G^y6sQf3t zwR(~yK2-- zNpzQ>ICPjv(`M19<&(Hv@Oo2XR;f9ZcXi+*(N`0XF+M6`)0y8+HH+AbKFvT1(fQ}6 zL>2;JBj6MHb(?WP88(-05bX`M3PuB#<<^BBKne>e5oPlFl_&lGhcl$Y+N;f{y zgo=}WiuWlG?ModAmxyz|j0=X&wnY5*iGU8(cMWVlGgJBTYfwa;Z^%n|Z~yjj*gyzX zBRnZgiH#7Ivy8OYxUwZ(rD zkP+5#l9P#KFrlz7o0N9<=;YDV4GfdaSi z4Z`c*t1%2ryh}(Y`w4wEG9L2mCdmPdOI0?X#hUVE8+5@`2i@G2_1)iQHM!wi3BxJU z?bjhRe)gK(&KA9TmOZ+eVJdopFmT&DjI_k=is=vkEao18g<9ZuGpsvoY9#S3h=68K z`n?##>_3!)F%%DwI8we@#1JF$FR?lPqojuIa-92S zKB&tP3jfsTCqL`R>&a5gV*JQrs&jZ(nVv)bTVwL7#lWcwQ_lKqv_Bo!*2pBhK@8Q6 z!^AKx#s}rH64})Cp)=W2-c~}luk~AnDtB!ON*`p+~i8hq6RFIZSm89hq(eyytn{fS{hNe>RY?-JA+qHI*+Sy%l&U2kc-xTjP=B4(I zgg{-*QNgOYy0TiM&nGnv^Eu7nC)E(Y>(;9*6tVPZV+9u8J{VBE>}?#@?}}Jq#%+}c zd9S0C+}=tju8xb$-HJxKDTbmr7O3d$rF^9x9PE}6Ptp_JPiD}?^ydt$C48EbZOWI% z8qUH=y>;If+K7jU!20Y>xfqes?M8R(0Q zwL4xq1}#;h-C3;LPx)`l6Tx#rsVgcDnq8v@26AR=gjF)16;2 zV-|GFebWz5t+W~%!FTC)&CT!!_!umbzfFaC{Jn&2KZ%Di(@{R0S~$>(;}g75^L=g7 z+?3gOky^eYC6Q|4SOl}<$VA2pXdH(>n^;7c|14InJ0aK*B$f`3>lgx{RpJSf4Z8EA z@74^Hi|Rv>bXksl&DTMlKB7mv`S{l)s6|U}L9T5Zf&fd#MFvBzt!o(hk}Qn^h8&MM zfKwYj$O4A=3;(8!<+FvLfdl~H0g}g%!3aR7$=deIOy~m}lxMse=Map<+d4U}X!#Y& z8x4{x`TR1<7^otvJZ=doY_~HHT!@XoX)4Q0C_v;H~@iJPKUj18EB6Oqu03XsuPL& zXSi-Vny#Axhg+`mtryk_{nBIyVnz6K^BDHvr{US3JB<5M!?pcQ$rhCd;2JdpZ994l z`$1Zwn>lQQ5o)dnPGN@RT2je5Y1tSE0*#zpx^BrlP#U}Zc!|b9cg&4EQ63+L6z@la za@Lw?r2@u+jwG%;EjebIZd%@TQ-(7)vQ0s;AYp4z$7xa>jRjx^ChIs7bs)sC|B-LT z#RYL^04$l>n#%HKwryLPp-FE#vXDBSpKV8&Osa^bTW5SWgsV9_*@{G2nd%l4e5CV7 z!K`i4YK;#K5(ZrH+}`kPDh*nALg~(6?JHfP$>9O_6O>1xY7G?*zQaP3YioA>e6J0n zD1@Q%Tuz0u#~)~F&b1IX1f$&IC8G)7Acd4`&pnInzvBmSY0&o+TgYYQ`dnp}$@AlQ zp7f(0AV|5XGH-*JX`4Th1rtykYZT#h9ZqWNp>(2Tp-4>R(tb|%6qK(=9eZbj}3(*`+#Z@3xDMp zD18ioYrTuhM=ioHq^CJQQ8XUU2%zX3!9}()tFkzkh37Y0ku)CyPgjIMNq|yl%>~<3 za>(GSUEH{KP{_Qk@q>cb75pUhfQZ)>aM>3hQ10%3kMP-lD?72xVc$&q@_=pehE=h= z;OlmKJPEx{GWkqtv4L4f==%k9Ci`X56KmkxNz^-O-HvfCxp=KzaX@uzIienFT^HDB z*4Snr?4TTsNula%=KLDVpdx7mqDl+zlN`@O^XuAFvoAd}_`_i^oc#PR#V`k?!D>O>_+W@tb%}i~-~hn4&uzW`ZP3vn!h-Bq zh|z;DD9;3m&k2~^+7`o=T~qT^OA1QX2H3l}#KC?+Q7??)s=MQj3L=)|MIcRT4;wX@5 z=IThIiZQitU{w(TyL~2xC2hT`~PD)zR8U;15z%&0-!kJ;RtFLQ& zbiD#+2a6Mj9RG(!4_Vxh;*IGOIW-&><+SOWy5V#N*Hc+Abe7`j&$#KMus+au)oEtc zHY8rwh$`>g>?7w3+n>m_0?C%=49X{#k@)Kdx;X!77G2E9Db*_&#{H;p0>Tnuxd!$Q z^Eyux^!Pq+mq~f@hxbl)PbemNf26VS`R;?a#xDP7eV3{;Tm#E`J< zjfok$b;7wAHZ?~Ru6`9HW`0~_=8XlBk`sDTzNpB`M7ZqAVGi2>G9^sQq0ZXDD*6q! ziMz&c29fj`I4gha207Hy2M5Q+boFO##o9|XSh>04X?Dp;H^@F$E_#F6NLsa7R#GMm z{Lr!pu01-C`m%}#4i3D0${?S4Sht6`IM{a>FD>X*jhTjgm(f)7n3kOt(wk$+3|rG7 zjAZVpga zh0>dfrTrO};+EuQ5G-3D!wla>pNOFo-lyIm!Zi{sIylMLhR>qkS1y`6+n?dL4K4?% z-wJPnpgu5!$g`6+3~nc$Sw0w4A&^qlZ#kRIL5}s!2EqyTT^g^Hn@>VlFMLabd0E(3 z6JdMZ`x$79Ta2{6l{hx{-da;`#@N^Vi?=9hURTVR0zY>Ty0&L1}*X3 zglZy@+ViK}xftXHfFoU9VgU)eU{4u9=T2P0uieDK<}FE=o`&+FZy(J5D7VoD8UxkF z1O1SL@lS}(E_8Z9#$Yxp$lbn~h=za_j$o!b=gT&o(4XDN;uiN~L4ocLh%N#bk{PYL z7wZ+9J#>RLsVSx>N$tGHZ2RZu1-HMP-2YPV^C|eoDvqvo9N8!Dt}$1=K@5_Pq&%M|h0JsFtLWxn8QM8b3y80JhE{%P^xB4I z=q+;ko;Kgt8gwMjdTpMCq3mZrC_#05jW`9|3@OZmqAObXg4`Q11^?U2kzo0DfUODu zghzt??^2P>hzJG+%1~ReTNXn8Svd=;x+jRN)Cmj&mz-5m4HBM~`l)@&US{OAwni>g z^6q86faO4f7@pAE!{WT3!CI@k7ZxpQh&}IdCl7nxO(ZCGZC!1+L`NtxbS%zcxylMhBWLiGvxcZ z^#~X_Kc3#B;<#zN!V7*yL0S zSe^B|Aj{nQ&YHY1BSm&b_)5dSrX+#p&+Ll?jjtuA)Y7Ut(ce;)qIMTAc;DRokLat3 zS(9G#V|4;l0cf$<_NX2%hwkmqkAAkD$fnUw`gd@e;39#Y;!;~;@Tf{{GZVIcmR=<~ zgY9X*BO)D0|8AEU!YQJQWHAJrYuX&Gn^vE3fNEY$Irt__Ipaf2S@eCfp0GFTBp2Oe&@6Q1lnM-l2gVhE4V*RB_Qp0jK zsS;Y8V+wehW#yW@CvpXf>EnGkQT3jldLRK9aEZsb*wm0XSBx+sLchg#2PF6C?Dv~W z(EH89P3On^gS_C|{l&*a;ReX(UBUZt2J}9$@$mq9JTq3lPRmW_;}k$ z{&+w8e8nsJDfw07=i}{+;O-x}^=+agqW9j;j}XxNj&kku(SV@9+wG1Z>ONa{8T&rn zUvyk2LLnJREQov?vwCJIU1%k#fG7OWVj0^G(fVSSs7lmeBITXgKcIeZgk2T9sODcx z<^8LWDW1j5jZ=;3HRoTs_g5}pMoY4Osw<{;Jd%SiCA}v}rMqhwLh_4Z&lpFe^w&)) z2Quq_;2TKIgfoH_RJclaBBogJXJZy%Y(UElk)?}&w`AHNjl}tOfzlt@%P^*_n^NqO zOi=>O{yfscri@XeQE|E-OlPhEv>ar85 zO3W(W;y6qbgG08)Wqy#;&+#p-t|rb-U3`Upr!2E^W?0QTqXFK8R$yEkss=+Itx@6R zclnRBCR~$#Q!Lrl`m;?o=Q%o!6$z-dRszd_2F{f4u5{ zDsM#)WE${O(dV>6J1O|%^YqJQAZ-^{p7UL{`IaWq;ojheh*I2 z=lM!K75Ze)Q}sz6|KRMG5um2O>y|o z*}e{>zF|=Gz;z%|@nSH^)MF)qdNP6ji>VqN0gv?@r7j)mZ~MLX17(k|g33d#wZ;B% zGimiF0hMOt3njbe%GZ`Onmz)`EP?}Zr8Tfpgz6&D(WgQ_AM}I<`sVBgrkOuqB8s~- zOZ;BFbD>}Ht^QtS)wQ4Vl*@aCw`XBQ@Nm=K&!L07vceOyE73UV7nD+T%Hw4{4lx$qidn7kuPobYpXdu9ZKE$l^OW;i+LY$bLhhOGq;C=ZI#NoLmX z(f}H5i06V~YpjtPUHkBYGIiBzt;Tucyvb6rTCHkgjMBLlt9dco<;STUb(^s823=73 ziE1m2HY-n-OEleZ+}LsWQAcsgp9147j3%wJ^t~1uTr1^dm)PRLbm4Tc2mXgk{)eiQ z8u^)9=`W#ku8h;IcG^s*4H|^+k9C#2Eso+r!thHkZ&#N3jINgbPqzNE`S?M*yp=C; zFBv{q&jW=#8-;7Ca^n0dCi?2`JH4js%`h>QR-T5Q7fcu(#v@-Z%3r-aW3WcVRMDZx zsHJ^hnK|hAhdCom=c2D6^|YG^56+Bq)m`J!x!jtQ1oTHEOEry?N@HtJZO-)&yqoPx zTgv)}ZK&m#F}$6C%5ba9iS=KB@t(LuAc|4M0;P!v;oEWFzzPf?J810!T{hFcuBt&( zEr8EhtBNUDL18~LxSWca=2pN;c0dhmur`sQN+;pYb4ks%+HNT^4eTbTYc6kz$<-nS zVWt~-<#+%5mzdGO28$A>nY5pC@kgvj>AS>J|i?Xr6jSE0A z^N1>FtvYMhJeRoEA_InaK&FFfKt@q>e4k*jdK6uCfMq6dsY~YAV@mDBt-XTNE#0x) zK-Rt=A%RMFG3|~M)y>*)kHvq@GUX5%#d7_7`B4frz{89MiXj|?D5meYj^7#9UakiE>+!$X^4RW-rDZ3?P$c`@L79nU=XwE6(}l zzWgp&eHr&f!5D)&r~xw3>oLn~(RHcN67gIqf4Y_1pJv4y|h zU-;0%_<1LPm>-n6th*OTmPPY$>-yk|>O>|_aIM#??3p4WC~Y=rl3feU$v=LwXEdWS z;x-$VVU-W#scXcdVH`vd1-ch~5K}MEob9u!LK(ty+d9{yZ==_Q4H;wlGJz;-<%+Kl zw|bSRxgZY{vrk)Fksahe`sI`eeH3uRTQ_@x_l zjc#FEw(B|SX>07P1_)QGrEKDz+AJ=Ycm{zfEL>0JaWm;BB1kDk_;nF>3R1iDDCrso z(UpQzfdWlAv?mJCuw?pG!`M6fwKT`fv@XaV3nr7QoRBu0ky;sE*krqP0~6QBQ06<{ zKXoZAKC+QzcPwxa7?~t^8>DmLs_!I>YIt@sdrm`1hN7ms_tNsh1IHa#h3LWfm5v=Y z+^Joo(!o@NbMdxpN&Xw>od26fAFyP(!EELfH0p!7J`2UF;bw+6{=7PrhE0E_btbU{E1|E&W(k34?d)O@VmtOQf%DT@eEkLFLpE$m2pbqhQWec7}g^hE&{mMD->rcC#S;gsyiSL`% zB5jSBUDo_UfT&jC(K@o49wwTnb|G+}2f{CRJkbKmnw>qxc{!`t!+W;W&li`jrvE;( zjncCDF7)8)c_X36wcGBCHLW70tF~$Jx2w=Hge`jdZ(klcDR_0Bq-qE304_Wxn&8p8tXqV-ghIa!l!TT@N8-DKN5*|u%l zwwr9*_Efj;-upaf{WyE?Uu)}K@51)iCr8{+o6i&+{Uy5p?uOq~a1euJ$aTB+?Nl|x zyZiIc=Z@WT@Bq^TGHkk2Jm97fV-7Z8t~4$3mDiH`+C>dTH4z6!!ko(;`NJeHRrC>Q zApzn=ID9;>mJes+w>ggYz@?KWKB&`>m)nR(e_QqD8&9XnKVcI*Q270DF016XFWuSu z9ALf`xZP1b8Eae`eNM!gZ2of}Q589&4(`Ax1(_4eT<@5T(f^(K0Z_u{&SYAS>QO=r zlD6M}MA!363wnsI>dz%e*Y;o;KO5{+n;F7WL*TeI-2MzEN#Bc*0d;|`cVfX2aMxp_ zaX^Qui!ufop`GYrFmZ$#XA%jU_Qkbu3@bB8K83FDKQ72J5FT)jCNl|oYfS3PUE98` z4t|UjNgS+$H{8HR1%{bGPGxda+HyL`?6c)+-X8yzH%U5uud5Z_a;*FtkJG-k74Eto z?z$T8$_Di~ci<-^R?(PopZwS(lzZds(6;*28S?d2ts!zQAf+srOKt@Eh1C07?OxjR zlT3y;$OS5NohREH5wr+bHcx7;(3V`Pd**63hc9X42s&;7K`|K0)kwExgc*Sg4|!JC z;Cd03!xgIw5~#O~qSL&aH02a7?rqs*^Pbv95$1o@X~wW+h!Ql_{cqQ2v7!4wlvGb0 zNJibl|^j*|>-DW~{(isQLDxT?VpBNv+XD$b6k(cDDmF&Hfu^n1t9B zXT8`sY^9oj;a(8C&|x|yGU6vZ#1r_U%LV}=gxYS8WDP=*z*=%NL}+ekKCRu;_V-l} z4nC}woWZ%SLmqV=_K6-(wy)gu4%2JcG(}Hw6=z;HT3M)H{@1Kk-A?1!24ur7u%eDv z58b;A`u)8f)(I}K!|#P==nLlcyOvp`J(owcT_jCFh5FwlTnWpPl-_6*uFA><7>B^{ z)=mca5O{DekNOfhooA8uyLOiAM9U&oR|K1YxeN1O9d#8-@d_a(P8++y#NH*1&nVA- zjUtCLL6FyJOd}s)qH)8!nciC|m!5N)+F$G2XP!a9erg=#<^FLjf~7ifw^YP7P{^;i553UF+ReI)vA#i1_pg+-rNH$!{QCy;&ZXE@{|hL zL2l0sZ@S}lU=n8tix2FmMpnH?KgJv~=%*b3EhPt&Q}Mw`i%Uyhy+qt$>A{O#4sZ$; zOi!YYA-lCIV{dPd^ju}oN_Hz?5Q|{86wzL@d3a)Vo0LbQ(4bfw zXQPZUvlN3PqbS*&a>`$gj{&A{vir$^)z3Pxn14hsTyWE+VB?)(3~Y%pKVtPG4lp3t zHQab*9DyPL(!AZ;e3>+3F9R9s#WYO3I)@Ym$)NUr6 zM`TL+sRyfsgKGPBa)qmeV#KUaEgQjJ^`dDWOXP(oweYG@(?qgtnW9@Vu3(_Zf`pH# zCvSM&7{P4OBq6^+2I~=%7umPdoJxm&f55A!O!f0IfuL>A%VxqejIUrLWgDJQ2R*^m zN;f>@5qyyjrJuHu$V>AWbX1B{IB1H!dY_w*tz!OW#L-P zzXyal)4@JnxVKKuNi6z8O`+eVwss4(5*7{Wm@{$wrLKl@Ftl$l@683IBMJ3`lj{s) zxXeQ{^CXTWD;^Xt3s*@OW2V$WQ%M)ysYEHd2M`(+R?{YBke&mK9BnCd85!Z ziNUUZEPQ;&cPO8s{=&gz=uEV|jMR^4?8wQ8$%(XWxeCpcN{#vvUiF>jzL0V~55bUR zOd=;qK245M0z+mYCWcuowah!|{LIZH$)DF*UdgPi*)9a1&-$J~hoVh6pEE|{@|2-R z88es{HC2A+&6AGD9y#L7W|_Rz=o8J@T9xf5;T!5Sf86$;ir^{4ffl)kXF8x5?_Cxz zuTT16nc4L3_AT1Zi)b841lkOiKc;;dk)!tP-t(x?eT%yP{xGq-Ru>u1r&v*7Ety8G zF^dIhm>v_A!@oYjK>pCUG7kTO!r^7?`X4bR&d``CT6(KKYnxK4qFbNA%&~Fe=oBex zTPd9fD%a_~Q(3%9tFC2cPI9jAtF9}J#)cYs{=!ccK590~xuILhN~`YG+v(xkx39i3 zZM81-WfGOPfmRqRi9EPaQ}#82`nn%+Qinu#EGFfu`jmjf$D#XZPezbRa4s%6nmV$T zesWZk!k9)Y!F?tg?nlq7ap9d2g!CVbuy5h6gdow12aU$$ggwKi&Wa<~o@+Z%N{|VQ z=j*ZN6k|V2At<^pt`FQM>8Pe`xIx9O*M2CErlynsrJIxiEAr9q*ISCaclJmKIADD= z?w;X*NH7GD?v8SrA%(r?_fQ0My%{veH0QIu4CyIxjK1D6;`lr zjcxETyF-TLm+CviC86*CL=bW_a~0@y2f)W)RO~Yxp;L7l@R;wqA8l&Pmtfq64>pTA0ZI+k zOz}$HE~w#))KZ`Ws4?Ft6-Qvt+gK~C8H)ugjs|G*%1T~jdgWAlRhR)Y>3FUBC8cGO z7thp$Het`+nmQZx(><(b5>@O0^R9x!J9ws1Aqm%48?k2+TKsdw*#0X9*SLf@;3(3R ztJU3a9G{TCavsBOz&3}{r5(d<=C5e-D+F}ZS^EQq*RQPU>9U%myq_1hXN?@mg?qb^GNNSGcDwTt;+_brV{BPH;W?_5;Y@>f3iKoOPb(6>>-T64*k$N+<^ zWz-J+PVLy_=o_6Igw(?OV*XRvvb4a0xvx4d^Y}HznLDx&GS3J_Mu1qD9Od$&N8jm~ zm<%uKuc?U}Go78ZQtG>+LT+otKHTPmtUjxi;o_HJjJ-XY=8H4z7FuPZajUmBIQ#K1 z@%^T1YQpA<6k+RUT9bB6=dY%75dn#&v)pF!iJ5!nk#xq+(qHm4o>@PxY#X1Z{sQZl73B3a|!Q6anu(I>s`7eNao-s|FP~4QO za(Bzq_?z`<9$n1-OK#_l^G3C;A1{I*yemlbN#n#lIqz|iT`TQey@!H&a3bT+Coq>l zeVfrkBBjpHtM<9$V`&KK5Zl5EGI~+IT`gb})2h!_D30X&hQFb8ZA(!F#4`=NbdtA?cvw;eIIb6v~=BoDc~T}TPp7Vwaq2#LODQVOc-?2zQhVZ(UP;m zuh{{2`@m*wpPHV(E3g6&TfrSNA6YT84Rc~ zSQJ~tO-N7{CJH=sn|rE7TuAyHr&lwn&QY18s%U7yLCi4Qsog76IQj)|({ZEW{Hith zswj;vG~~tn%$j3rim(x>>ekqe)5Yn4Yko&_k6HlWxIU&w?xiGHbGz11nQ-h#x>9zf zr8aI5rGuHNa;W9?-6SqlT3|TYT-70y7pNplI2QUKyYK$Z{+5UN(+pP z?ojoK%mA7AT(-LlPa6KmC|y`gJo?P3xUB8H8B^w!%!yI2;&xIJQIoR zop(h9)yx?OgOVp2--emFtlex;is|w$p6PP=$xdTTG5a(GvjiB2ReUid#;C5>sh zQ#(FqznYjSK zJ~_dEPeY4`QmTk(rSli4*B41Y%Bm7(oCw3R%JOK#9Ax;K4Y$h^cM3;j2bMs*TjL7M zvR}Sb8|ZO{s2)67S{VsAOm4IOreMmk%E`Y2u~tOEa5}I)a1hLEn~{biFyPX%xIsN< zZar{lURXImOb*c>&4(`+`d3c2sfU2ZIW3Z=J>lpej<9w2j!7irJIze81SXGF;R=&l zihhzW<0n>AE{nLih64beV}1)_$PLF z=23NWKix^=g)RGDCqdXd8p;!@6Rz~KZQMA^`9w>y@8B77)5S`4&oWMERe_T7tG#e&&2#ErN$ zc?5j^YRpA`jmLiygxuXI0n*r6YuUt-SDHfFYKY1KJ)Fto?hfjp6!pRfj!n-lYZX*H zYSoX;)_tw1MLQmm2_3Lzfg>i2pRK&ODQ6Va zd~QW~8_zmMt?rX}gJA#A`p=Bhe%6Z0C9%ftN*~#;xbhRuThlHtLao3}fgJCZ;@HmT z^v38k9j%1@Um}$I`bTwb&*@m0(<*$!0m649&<5Et1rc}|`@RFw zZ%WPdjFMXl@(I1aY=)GIQNodo1cE#u*qD7$EL^mn49U~9V5dVtgAb3@cN6p*Io?6B z_C_SX@h4#b^|VcI81UM(E!DUf;W@BS2Ro z$vxlW<(M&mlx9PTX8grD#buBenLZef3rnO1?t>2%2^*^YG!a~x8i*8;RyK|yL8gi` zJ%@Zd`#D~V;^Z$o-G183r+u!)57uWE{;v!_H^uuXMO6Kn`k_fWz@HmbPew<6L$(+?XTEckH#!yB&+dk;9 zK!U`K)17He$CQ7sghp^GJB##N#>Y-~I@CXp>$rn%z77+ra(iL=wBIeVk33oE{>S-w zi%Q6_{%#@h5eK-1!Ir%Jk-fWB{y32DC$b-WLb8k(;er%wzY^~eJDkrqLpIrpSTUw> z;H3dbO2p3dJj0{%-DuBltFt*24o|uMkYjee`3EMv!k=-zv3`EA%o?eTzTs+$RcHT+ z6F)-ke$=!p(!@`+SbZ?UwIk7wf3l-Fi5JMK*sogd>bU2#X7CPjtTvcKsBa^nx4KGZ zK+7)`+wBH3iDw$a(4U5qK{1#4Js^CF$Q2I!#wz2BmdgqY(s(G|>O9<#^mFHW zimL&Q3JZcUED;-=8+YQlXXO3!PTXAh5S(sk9fjg&j{C^Et`Fwcj2$eFGu`ve#l*Ho z5T>m@sqg-0n!$wXKPHK_eqsNL6=jB#&YM#VIGDUAHCi)QT3^Gu5QhQ?UNiCY#bqR* zjanZrWWXctZJCO*jKlt$B)U0s(pDqM5LcA`rB01Zeu%&z#cABX$ar$EY^`!i=-!|8 z=aM$D3cW3X_G#Ga^j@ z^w?xm{gN_Y@~JHAj27vC1gyT0p-j(?!$bZ%(q5B&ANZNQatUulN!Ll$cl+9oRg zoheEoBh7NEPi0%~_Z(Mwmp`w}v)1I_B2(c-&!SPWY+OaIHbu6deKjs>SCfVt@U zZnv~XcC3BM$iPU*X-d-h?MBi$vu(zf*~_|K_Uc|yTxYr!GQ%&OMj|S6QM(S!uMltqFKv8&G4Fa(f-5Kn=(rb2K<}D^RBco+ z_7OT9{CIlV_gRBKFo&4+1B$`K5+40~lN~%&1`B=v&C-OTjJ*32VO-}A6Y9Yqj-!xs-cyJ_|rE;9E}8svKkFNn~9U zN;kfb+Y%-Mirtz9%C5Or2N!$*Q|so?%Qg-Y-C%{a%-L8`8>XVh1H@QQRfzmIPu>&%)R|t8 z<9dNCWbQ=B<_dWqy>r!$l^6u|9AdTeV2uB25!u5y5rE`+U@%rMSNdEv%)Hhx7i^ZOr!`+sPKQ7oqtHIR* zSL+65{x&~Sn{~G0a^p49xgLq)Q0%dlfJD@?<_7n^y2RSTXE+#f>9wyq>V&1C zt}?Oz5_2VC>95Y1f5Zji-%1x$R;N$a9qhT3UoWj6wYc)N`W9E_b4o_PEgro~TZ37& z>wV#`keG@joI3X{Znr_wYWF5reWKA5Zg*0kC18LaVH%l5yW+^^7trWBJ8RG+HNduY zWD%Y(tbs3NrD*sl6;72wYA;}B?vOMhmrySZK_P3^#UpFwo8$Apz#xyRm6-BpA0CAU z%r}f5r4ggUo}W&odZt?MUU9~Q?K2Fm4Jf+oUpnjCKa@KMEBea~7T^BcecEZ<5|EE~ zHx7SYVNQRQX`M=7pePebqG$jYwM3_dpue#nh8Tg4C1%^eg3YjPHJ6!nM=?`a+qo~` z$A2P8T{fiZxrWtE9dd6vZrW#~KnONddAy5SR8q#RJjm)gi|aTNzBDqWefuKkI>@zc zn{@v)Dve}$_F6S{|7om9q0Hgj0-|fa>kpS+=)!0Mmd9sPq!v;~|A)hX`-uJ`B zWZw?9W}nN^efK@Y;CYhgB_sLwD@@>Rkl;h*du<%6H1Dx{V9GEUgDeEIVQK@qpmsLl zQRq;I8E1x@K13D9J`xfz?98La^6$;=`e|?5)S_(YJydiX(e>N0enJB|2AX8Vt4=-5 ze;74L_~v0W^d$p>Iji^r<&Kn|%uWlK*w?tA`n(*m9K{%A>0i1S7e&!HrSU$0WQu^A ztbi&Q9&*sK=i3wQ){51hnV+eE^SCh%Tn^7x3F|FI3`BVC{|8Vv#!0AiU(>tO6tD41 z6;3MQ|C7|-N*(P2d#He2_jPA1*{q#Sd^VT&UvMnzT%;yN_=kxch0LB{9PXikK=Hee zZDvy))C{>P=;jX7XdR!v4|MX?1uGPWMN-!V2*7CYV^1qXdK)n<`-b~1mac}>-ao-V zU`KO&;GyX?)CgEHq78M2oI*^m-W}?B*zTO<>ztG2%s1d3`|<2PYL~opd)XiK@M^^3 z*x_A@9e6D&)osc120PhG_IL3285>C~3Y(m#bLy}4k1jT$ZFvB5c##%J=c3>pp6O#=uJ!xCLpA-TD8NHp7yqtuGEfH{=vn|#yqjyM}TUTu1cyrCj z=B6!H)Ci3@aMWGOF)$t^`KWwy#NskmnK+hgEvBAf{4&9+$9T0P;!@G#OI&rA@{MHl zqsR_~HX|CPSSi?GXM-^!_h~LaTP!1GojDw~NIuH)3+tHrTbcW_xv6eAjK>gw_5D72 z#f4y=VXC?bsU(&3P=smEK>BMtf^^PO?Ah#}=Ei`@#t*oqJ>Vm!o_m$$1Ny7rj2a&a zE$nKpk-1NXSPlvUiIiD?p`X|CW{*XRYA|CF&Z)?FKf>4Kl3Xu>+R?-Ly2O|A;Q=py zwhi-<0OTUNSh!^_Cmdcb7P@%c+FNBWo)r1WY%Ogy1P%cbrc7d07pKR1-}qU-pDgOc zq|iS#kVrs<<_dSPZg#oZ~RQaudA; zWz_w6K8zn7;A2|$;@foO$FhrOjEiL>tyfV+-G8Zc>8CNKQ zi??FC!Vq=lrq1CI_YHN=jYblgv-VO53)gGU=KP+I_N<9&;N_<#KvUH{8fwU1;N8#D z|GquM(*NdlIkjK#PkEqsrv>1^GN#o(3q`@QwA_lvm8``H||InbqNJ9u$yvf_1DcTUNLz$AcFH4HrJvObia z*$(owK6dbjFp~Da!5lHqA30T0R|3SpE^JuB?4~1)E^!vV6BUq%l$wD^*vq-8*Msm^ zi2sciorLi0&Lu--J|<+AI_SgXZ{cE=amkqwNQ8w2Q>Sn1G_R6^ldH!5&3=09X4F|B zMHb^|b~hDn>E5w$an1{{K^Hi2*K1{v#>{;Evi%r4bN-cwxQFM71r6ia4yF(kplsi! zEkVzaG7dI(pd!IPpmsbeOhKsZzR|kK;aRlu_gSW!arbMD$_HV5S!4U(l9W!GmboK| zDH@;=RWAFDAKW+Qv6*$LOj_oR?28Lpnk33}^XN$)e63RKDQ@jw+IKqV}bfPwPl)0wU5p9u)==LEM!xk+>F( z6J6md$sVoTll)zn_}rD3&A`X&U2xP9{!6qg;s=K0w-drDI-td!r}N~p3V2re-|*2Z zo7*Qu{Et=ObAKoFU!1eUTO0bI?bwvwd9jeR>&K73YAE_#CZx;^O441$Y4`kYu0-8Z ztfSG`3FDss-yb(VVcwUb$m%A`dIH>D3wvYbM50 zm^=p#lfT>SS#xu*%iG;4fBCNj43tCEvl@ZX`brpo`x1#SPpYh8M%3i&d8!n}*c);y zoDjsiXpcdmN|^$ElS0j$T-tD;pHdla7FuI&kNXhJ^U?*eblc1VLZ z_c=IkYrA9%SPnUT(2$E2t?FKfDJHcx??5CRR+sdX(0yS-*zS1V$9G!$b#n=BzHcqFOr06S)D$|M<|N3%VN-(u1J z1soJ@CZ;@drYt;E@_1pV4XiRpWHb$mUi-Ft>Fle!)}gMdf!N+6dNvd(5UyFBm56eMJP_T%2%hi+nEj~v~&;V{luL~!catx-Fu}h6_ly82<9ajIXj-$a<)iq z`|hk+a>EX#*QOk*Xpt7ToY-Lj%q&N&G?ArkAK%S)`VN3J)I3FT{ZT?^O4`e>`{xj~ z1X1g+Y;HpeackyYlns`Bj&cQYB}kW`*8m&}%DeBfp!P^rYbXf(KPKic4&uN}h>a>` zT0kOjt#4;0mYk)Kg5n|9-V!ewFdmd6elMa@MRwyyxsj&~*qRiWMm5M_BQzmVpLnQv zQb2D}hV=kxX?csT*P(k7pX&C7#+vL|!pgexNbFUXGGe-8@CYopf@~Mi;_fnXP$cqy zu_ZO@IeS;dnT7s&$--2R|5BxbMn7b*g?z_L^)3#Zy_%qt#HRBSqxe1kIQvqsmLM&G zoy$Xu*qD}l^e~ol2qF&|m!ab(cANPX1@ZH}43!?JgLqQ0N;VLMC0c-A!VY+}A&oAS zynS$mzgHQL7aK-$DYk=K^2Rt-T6in*2R&fIX4h#|+VZhMvioh%Osbf=VimmNZ)Sii zu|E;cz{Z0&&@Wz%6^%YMON{k2GCsL(gf)9j4rxL!14Y~Z4Lg~E3?6W{MZi*b5tEBB z#aIAdi*{sMmEd<0#@7`S#?SZW{_Ta|*d@(=5$j_{bg`2qT47JBRpWAW_4>$@$@*jC zj-+EoU#^Zoo6HOS5`Jo9DU_)Nl-4TI){Ft%PH2wfNn4aZNszS_f2hSRq9oldM1VkI z9OBe)-5`Ft-+ovhT8AO6#vT4iYklW<_k#e95Jf)jXW{uTrLkSz$$N7QDMzj14px

    A_X6h`q}MO#LD!4aCv8&7k)?NNF3kgI}O#^=3wjc)}F2HbRxR_vrIHIn4rb`Cqam zqzn;x?5JA29J4`$gO;vp%z?1Xbs2XTjB|oJx^9_Xx?~Q0JUnz&u%Urjb-4R#3?!X$ z!}k}+E(&LB-SC~J`>f;RPbc3y0A|!>@@sh z6LDM>=|%$zmhHwKWRq5uj0R{OHzZC2Rc0G!nvz!FGKi6?E(kc`yy+v`i4LVzhZxh5 z4^wELP>sj=@Qw~->doA_$1UI50J5KLm-aS4Q>_|{$7e%NWEewN9-WN1uGT5Z7}vV! zWK0sd2T6?c*;cA#i^JbMoo{CDT_hs3)1Ox0Q>EcypihuIz!0G5R-WSV_yssUb_o2K z1o}%MY1H z<80xwrPa|6J&o^vDuGGdrB1rU2n0=AcKIV2Rcd4W@-_W*UulgH2JdR?y4UYw0Q?fam6Sxt>0 z%(~;6Z{f_}_oSwwD75eJ6FANbO)@lZF@(e>5rvQYy;x>cwj*B)MOQ;vmlZ+M`t=4? z87UPlv=F>^ukr9h5vg*@Fek9!*Ojhvq?X9Q9_i+S2~$rtHPwXtXqpVa5P`u{a`A)5 zS>?fKx#AUWe29!KosmhfcFj&PffNW4ZI08jkeKj`eHcs#QI@9I0&=RfAc-edE4jG` zTAMk=jI4s)BbbEn)--Fh&x>NS=(cy7f_f;QG1da(#{Y6|@tG^pN<@mLf>60Afm=6D zJ7354kBz%CQXDE1oGs*FLmy-<=-dSv>Tv|I`{6QLHGB9!*ekrL0uE+90?*dy( zXZoCue#s#M?GPq+Nf{>hc*DWyLM3=|k*QNft5em8dla5bO>uCricPQjvFXuzd#Aau zd$1Z+75;_aw5fDavi1(R76Q(;6OzlTMqOZ%zMvZxt843&Mchx;8vU=xpy6?+3g}qp z)p6yeecpuv;B(YxVBASF{@h16dwj|Nh@(~J;V<3@oXG+^lZ*(ts`pOqSCjGz^SV6D zozo7dPL-l|1LAFcC9J>wz5M|OUU>3Z6P*VcO4)%@>Q9lmnejvkuS}}KjaXgF!av1d zzhB`&I#mXR5xUcQ2fC8^TCxWg^!uusd>!lwTc1Fm!Hqrqc=MUYWLwY_$)YacLwby3>?RUZ zM?SKOuKyr7sT1cU&p&aOESF?DZDJkahtD;O?h%;1mPDvCRKO&zG&A1WP!G3BBEo3N|M_ON!W}DEm{X7RHya>}RePkmR%p*I=n;A|RQMuCZHV_b6v{5*VVu}Rp z1jlwx>21alFa0*($8T15F5#jk2ul3DlRdi!tssSKY(igGuQV+$k^D5p_Q$2+GWNM` z<{%Y+|Dzx+W*&azAdgX>zR+xN++Oyu7-a&Y^L=5bYL$0r0-z-YwfyudH$N@S1v9`y ziE8-o5H^3Ie-!OlZ{>wKza_0Jj*x#rxD@Uu+LMcAAMV1M{9NYuz9M33W>ZLv;Hk-SpagGbkT$@G6VmZA|;#Fnp~M%`T3ic6C3TMV4^LYB3!7 zTbUgF=Qbwu3ry@`(ZD9qHvIEtnsJ!^6FwRH~3E7f)i+(wTm;T769t?@CPxi z{AF0zXEpxw!kR68MRVNQV^l`kn3!38aV%uxX?1r{^fPH8Uj!?cwakQ=#akOP8Y?x~ z4;(wp6*`gji7@erraqE{Gxz&m@rl|A=jHSt^(Vi6Z6+BFQu3va;AY8@(Gd~I0uUYbwZm}q5HhE~^SU_;2OiOXJ798r@Gk?YEz5amT63$h ztpTT$j1yAY^<2GXf|MHdIR0PAM!kFLEA*u?S4G_=T})2E!k0wU;uj7F^WB#Rwt-Eu zmNzAFEpRiN9h>}UIVSc$pCPF#`6nuVcLawtLSz3o^UoMgLiMRKYPyYBEw z!fnY^_?e&ms}$I~^=zIaLffRAe0HN2*aNM`v?zn^yD7!jgLF@=xP;y;l?pXHT(AC8 z*__{k$^b^MLs&mhB1CYm`Lf)Gj{U#U6C$msxMvNwhWt4ycqXF157D$tCVzODo7sp4 z9_l>Ku8+h>)od|7;<8j<&f@;_bN#s(_qeM@NGq@IV%FtI6gdJjATO;zi|5lKc~@AU zN5b6qI8y_)?0eQGefLwskp}@PgzMT{D5>0}+7ozwgkNJ(Ra-7vsLGoxOKz`rP)bj1 zFJEgYt)kT9QhXdPrK4tKGZ=Ini%>Ky(^eNW6bYvsJJ-((mvkIAW&E8yN#52qkS}%c zyCAEv$^tqYlb=8Q`@?qp+Q<{n9@LOzgv;{?=Ev7-3)z<7075e7IclvB2J?hTiT=n$8 z&*WOl=Sou`-I0wRYNsTilrXMYgF{=;)GTjvmo&$lBaTZGeMm|`ZMNVwod7-g##@;+ zVJI8?WTUQYH=w^31wxEBTzg*=F<5d_7!2sCunYyut&a7JITKGai0D*vtMUFK`W@I$ z@J>7#HbS{qHl>wbm=c-fKO@Ymr`cOmNK`4_mE2EO|z2vd;?w<;8WRc~Boh(!qCU#mrsn}^kE%M$8BQK3J1!)>@j96Ix- zC%5L-a`2r2Kqz83i-w5mI;9hXe2@OvT0RbRHA17_BPjU&^Ed^=5H)us9n8xET$) z$%ycc;fPqP9WD7_SDWYR+?@`p>pYt?sd=JP(8c`bpFf>eS!cYHB2!v6uIDkyk6OAX zb`dY4E2&s;k0(_VVFb~l9?oYuE}+CYR2RQq6zcG8PcLoCr6S0hW}jENF$NMXLuOM9 zmlw3mAq0C+fRN$HW7w!5=*JF3-?Mw|J?NLR&GDpsXXdQj(}PQ)uwrtwtcyeEIK)3* zwxf{st+ISIpUwMVZ%=4-q;K-B(c4>Uj9k%uwHr%)4y4RfJe|&^gT?RTgZPj6 z)q?{udi{#kzdbfq`T!wI`S5%B%bQ9emp_ z!JYxzk}eA`IbqU;|3)bJck%HpY>$ZYKSV#85qNm9tX3LgEhEy!14c3YX?DzTbHjY0 zzQ|j^%barbgsurW658JC*<^N|YYs|K;U4KAbZ$AG#*jaa9VCj>69#)&Sa+YvmhlGr z(|zJ~F4YkBbtam)$X)L0vpf2WG6UO-aSJ7ZdMrh*b5tB&%Q#+%+su=?{HV$elyyo) zK?_OhZV+XmZBGd;z#3vca-Jj`Y{I%SAxE|2FToa;_3=xUsIi>-6Dt46AY*XyxUFCM z9Cp0^H1zHxHPA==DR9P+A|1+mv~&@Z{i3J4~8r8fS<%zc3YITM2zm1BZl<>-^|3XW_Kw~bw9s%NIa9Zj#ZE< z^cXB>bBvH2=pMBBWSB^ygxkQ3SbT@y>5!HmTXan3WiSs2_(3`YC2Cu4m>7nw7p7Tg zG3E@Xe{Qh?FnDS5{mfEsDp}TBemsuxM$ahwu8O5DQ?aj;Uyxb|#u%ExmmqT2oWMS8%SE%N1RL#K* zf>4*^YPk3l!`wJS`@lUa!1Z@7?p1!%JDDbu!Al}h=ii)dpU(IG;wVW!a9Z)_02cW3 zYnnE{xa$qxz^xM;*@Vw3*C-O-EUZHYJ|0Yh20o8ylLP}h!mi>{UUR1jEF;e8trdfN z&RMWXATQ|pOg-El`#@o+M;gQ}GOwud>om=jzj2#6PMznOAr}|#Jx)zPeF&8#o7Sf# z;r^*fwtje9QQUvV{<=@jLozDyw$iU=8JCCyqX`3pq3EYEN(^l=ndEYYz?Q2$rYU2| zp{2Pk7*b{gQ+u-@Gqwx^iWmhqnn^%#h&m7qh+?uPBOe1YLS03KB`8?g*uYU?!kv1H${dne2yx`XX^9u6X8JBJNInT$Rf zZiGL(%$#edlWIHkPkD*-zdyQu&HD7S16#PQICjJY>;1K)O?bjh8lbDtB^mR_YxhF< z$*A{~DHF~&PTwIacQh#3iygOg<#9^A5IYG;3)!+fDwWKgUT8}m;jA+s@b5#dY)zH} zMuKCpOA4Z=jrr40gIPQ9hmqn3Vg)c$MSo~ywu5%bZZ2yB#4|t;q_@TvjDWrZKr8(svtA zRA|J~QF0PN7vSpzYL$lmFNZs-0J-JIWT?^b+xM!I$OLIP)E%f4A#XkQxsKyXNX;G= zT5A%-0HK-dH22e;WD+x52=tR`+#sW1L#ouOU<)aShf~#uQ+@gFbuV)R#>tHh1JvL< zMGAzYq;p^DR4Et?BL@Bld5FhPbfZ6?v-SMvqAsQn!qaq@@h`s64OPDrCc@j;GebkQT);E;p_uiQz^N*Q*$@U!@*uOG_(eD9AWMgg!0BAAcP*Qt8;*$+>wt78c6V{bMi^_ZkWce=WpuggX!K=JL(% z(O@gmu4t)-l3IHkE&88E(R-;na< z{Q!zJx|2J%m7MLW79@t1>%;A=2ha6WO>CW6O**oFi1u;OUM~FW0I!TE-KY^EehZ4p z$(iTDU8F#OGhqy#9vF6P-U+?B#S*kOoj3oU$6kBU^ViiB3LP>L{SO~^7AB`)6fvA%72_vb52D9G$a6$FmV zzbdm2hsr08P0V`PXg}kJAN+Z4jrSEcw%&&B#)!yFFN@!_p(W4dbd9<3@6?SvH-(;t za_Ak?Svr}`bOqI)I2Gh_T*Rd=%IeFUe^otP_rQp`fEF}-(UCM)3GfPjZe5rS>#o;3 zo{NFZwf9$K#_6=>wUOsT7YrJZ1_55+`{~V+zOH=orRNS)D9Qh6>pP&DTB5ZRs`LN} zB?Jfp(mT=xk=~>UB1jXE-UR6o0qIf%AvCGdM2hqpsx+x0T{=SOAXVxM_rCvL?_2+5 ztz^zVd%nGA&diyzvi4_};Xo4~-yVvY;+$xFh9_4x0NmjO-XexE{EZUnpV2E-@?oKN z@xBY#i&ZHGb2_dq<*!-m5|?_EojirFzM5FmzcXmBaHaGl-Z8eO_L>wcpxvZ&eYOR( zT=G89OCMlz5XzTA0z^dwnjt`;5zI&KwXyBS++J`gzm-@ylehSta+yjj{$X% z=jJ3?BWW){xJJXM-OR{9pKo=7F1IQ)w)(2o{KG#r_p0&5N#XTiY1-zXbs%ccdZ}Ug znr?#r`UUyK>?gNJ8ZWtwVtiPqHy>ejv`8kabMD(-JL4xzwGdM^d4#Ec$NUH3Jkf`K zdQ%@i6T6R{GS=8Aj4#2BJa)F6bd0ITslX)SxIwR7Qm0mjfDZgqO7OhR%58#vLqMQL z`}L6zW}mVmm`^dTTamZaI9>}UZ4QhlLX-IG4 zc&i28)y~dlz}^-(_=Gyl`+J!hcfD6R@9*XL?U)1)M^Yo3nBTVYqS^@+mUIa1We*#Z zeI8{I*$R?)<2deyndD2_ImajuQBtef61gegPwUTiEm7F4Lyfzw(jDc+Z39x_PPu5_ z$emm?QzSz!nj>Uq%n$p)9Hww#?{xe zZ1;X|-F?RR-NgiROE@pvw)^g>p%$iyY=^X7ugH&TB8oHNDu_Q6 zQx%jZv(xU*k-uGFQ%e38wjWsn*b|6;8AdK?Zm1gF+ha6XX2WL%?)+8@@JjU9{@$=S(4ORGmRZe|&ugo3O!7S3>=X)ryU7hcagR5#V= z{+12B;*qGPkVNZl8Fv2KM-n#^0YI6n@r%c}qbwiLFW+B{>(6|WtO|2_B-6A%#k+j{c%)!9%xw##?&UE0w(^s?tVK*^XkoQiL zDuBq&2UG|bKk$gfJ!EK#tCdMsr1Ipx>y`v;8@uKG8hX{g10>JQ6IP7GM;X$2`jTwr zsiMk%6j{<@TgN&7w!nFmXy2>t`atTko7F2sv#k%VFHhfuGngd<0jV1$UN1FkPmp?t zos)c@esz=sn!XfiKRX;$KK+6&O6O_vZ> zH+i4rIQN7#umv0zQr(5O-Lp$A{BgK^9KF|J{FzzjnCcA~+pDx*KrZiGw-WY5rFpa= zPQc7O<-NVxz+i#SWsQGeW<>$R`Afy@%khC@#8%PAKttA8=0uxfFh%22IC9nvD zL0Av1F(iVSm7kYcfQVpznvh-mbFz3}jqjyZvOMQm{02|VW1?q6Rvbx2*;Pa)5G{|2 z-5AT&{D-{7*5WLWv=iqfZJ6y7bNJys*kA0K#-tTue@~mjhYa#@xa@H`BwooDZ(VRN zlKiX=Eh(iN)(_f;snGVNfg$4}V2ci-!eoN<2ldOP+zo3zc+5E!S$LspTW@#U}WP?`Ak=P z{4l6a!ji6+2+t%BsV17PLvY1I`_zah5%;YEOQavg??rAh3n=fp!k3j#q^~{^U0$kK zW!{APB{=qJrR>18cu%F-DjbN=HMXDO2m3Q_$=qrdebGR!7^kOLInvhmVA*4+_SZ{p zPBp~_f!=`2m1K#BGXm(DOR;oc_npM1Y0;#YG&%dcYX?udXeGAQmTSaY_)w;Pi`*1- z6rVhk53m&j@}vXeHW!SDE%__t7oQE<=Xh|)f4?gNvM$=zDfpEQRJEN%5Sr>KF86I3 z2gh_;CGp_w5Ew`NRFI_j73exO;;W)o=Ig(oEmoyc9v{M19%8FyrISwayV|j2JZ(^PGcFB)_j-TIA;Kq#2EFmyUgfehg^~0M)Hr^~3OL^b+sjAlu(WDPh3akz zi)4;1-BNB7FK459{h_PAvpw$1X|bVPmMEAnKQb1I*BqSQcxX5dPveADU$O5byKcuA z5a3+D2EFF_b{)s{>5b4O;m{UMSc!jDpV9JsdgZ!*ddsinwQumgV~jDv(uRZx9rEGMl86X5RR6 zgB$S`(pf!?)UpkG)(@-RbvMpgjZMGI7nMMx;%!R?-DhKuiUjIL_Zv@p`&8c-P@X^D zQgYq0U>vCr2eq-tw?lyKFbn868>Z(6k7w)#qlz5$Dul;#8@}P4bDzaQ$ATFk1D{8? z!7XOFfvz+aHV;2%MZqJj=WeHa2f4N5q#<0%hxRAycW5Q4KVGl6@%g2(i3Nnok#?g$ z5Y{olRxEd4{94{Hum63Al3hgJ>iZf@D^x%+BaMJXXb{AdvVs!~a;iyrEXc7?6WTD_ z0e=@@+6O@!Y|KdLsB^S~$q^cp;it^E14thXoax8}&5hOO8Q1(~;xi*!hZoA4es^L! z_~g`ZC^R4xj!XH%+4;g$(mQc8*1Q!Uv}Y5UoF)AW>xF1)*x5uOD`MHb zG;{J$^sn(vnGV@r#qbB*Pk1{`iL`0EtP_X8x!5ONa^?qxsv z9gYB=`d!C;9eKuKPWIIe?sO&o^C53Qw8tOmgYJcS&#Rk%<2rv{`vvY_?APefI6fb+ z0Len7v>1?eeYC=loST&F5t6ajZf~Dim*$M;%=i|rX6JAaqYCy8yCp-?wgls zh(~He3Ty+tyWIM9OqL!g5|n=E*$o#^LU zf2(!aDYxd#CBR~>k*a4`OcRHd72QvyC5pGNlH!_fsnezNyn-YAUCa5!i*mR(XmzD%)ztu58~Sn5X_w^UsZ+m5!b zz?XZGZ$>Iq#aFr21T4}QrBu20Mw2PqqS&L*BllYGWx}B*_M%E<=%KQlA`z>E2hu#= z(1h1!89l_0Uw4Z|Sw>ojaapF1a#ARz1%zo3ja9471aN%0mw|A)8vYpkT5LKsuzuvl z+S}1NIVoo6V|Sct2+69?v9{BhYPgUzN9RFK9BZ&3Ydm=3*(XEol!e>m^$U+IwLOUU zKcoHa!>=cP1j>=^9ffA)K$vlJ#kj=2Jaw@lQGMX@BWg^cTg72$BepaTfq&QY#Sawe{m5@8B*7L1bJ{Cu?=w(v;gP7`+d$2p7 zN*g`AD5V)=0flS=DzuEIC6i?8t87D{iwbl8Mspk=Q_dNOR=YRbG7G5iZy7Sec;K~e z*$a;4;9P-=Hky|0bo|CL&*}Q^Xczp{-8D|n$2(h$m>1tkCH-Us5TWh@;&Z};W#=aX z06-Y#YcB^r3ui}1D<^k10bVahhb?_$=Or;PhR@*IC2=iPEE7ak$PThq6e{*Mt1>J( zZo>)l+MImrNZ4<4b#8);9jP*m2-`Md20L`upLDHFuD#hgDS6H2^l8`*CVvkKc${cL zR85O-ie#n5F{9T-*x#vMT3%>%bdjlVrqye3tbakp|Egj+%e9m)G`j>kCpa@o|M>L7 zc)k^B<8#XCL6@2ulC{!A4DT94je6k%jrpYh1deTr_YV)8O3(g?#JG0)3=7<0{SGp^ zJQ5=nZg=Owz>`(I1^q{gM#hZ{c!V#Fqas^A@~O&oWWF{{L6`|XGn%lm7>e$-*1r2j z&4BR2Bu{bCwf$#(ao2n*=FFk(~1OBKLtW{tv>`3f>okNF2fZgtZ3zy5OZ++IKg2`booJ&wg(N>o5jGwh? zi+a6E{nzb>0Sk!7;;3$7JcQ|94IvxzIY~ycJm)aLH!*4Y)zqgh*(c9NyndVO+Wm|< zNcuFwa}a#jK12$pWFZ5R#(&9&v=bu~utq0j{JOdpzgG}iV*wEa+FI9pF9jBC&lF@_ zjJV*Il8^I!Nx~L!`1+vGd76tHr{OS5`QMcHJ0@CN7Y;>ZS} z+5*Iw`zN&MX0hf)z2e2$2`P-DUwDx8T?(c`qQqGVqE#u@)&bgsf`V!l0pjcxL4!-4 z@8A!vJ)vVfTtq=JW81D;FjkecE)yR=D9Xix9fPp?j(w& zX0%kuhi`b=#XukmZjU>c>Vj{-O5;Gh3H4=N7$vs4D9Bg3&R&099}$(`*lYT=i;kCj z=K~lqKlfwqqNsM&;q?AQ`Q&5tGp&p!F#RD_x?%yMZCnXgF5--}(|H(8uhim&uTKA} z3|Hd5AGT)M`#1`bIzVXc89`;_*^_BIrp&v;k`H7)Y7K+u_b2oY7bvaqsCDS1ah%zC zB>JLvF6|~Z-h(#;noc~0C4;4TmcApPJ7Uf%VYQ;KCWyICW`+coiyK-Gy@4%mC((2y zbOS4-3w2bRhvkks2gG zeB@gaARBD!Cuy%YX5xndClHk7Zy+EU2IwDJbokA>`p=|#Cm}lu zf>a^{g4q7yrp0(g@~0A@m*=ndkDI%n9`__)es;EnNE%o z1S=*u_s}6nG5H&sJSbME5>f;N|GrZbGCarUcUL1~2HzUj~qvJnX-$V1Ghn82(*(OavAP>|Yux0EU+D&lF>vFwjSj zyhDNU=fAu$e`;|&`x^|yA_IZ__ps|vHP6}`HBMv^7~|&M!G!*KPUJ2atLt|D_F zKxWuKTW3r+y_sD8O@(OWA_RCF_TR18zxM%v>`f#i6_6G7&+;78sQ<;7*+GVZfwz%V zH_q)IAm0Kp&g+9Q-MW<$BN;hF{-6X(!2a(H_pcGdV`K&;27u>A{rLCa0FIOxfJq9B zWcuuH3C)e<%}o\n['Electricity Utilities', 'Steel', 'Auto']\nLength: 3, dtype: string. Sectors ['Auto'] are not covered by the tool currently. Delete it from excel template.", + "output_type": "error", + "traceback": [ + "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[1;31mAssertionError\u001b[0m Traceback (most recent call last)", + "Input \u001b[1;32mIn [8]\u001b[0m, in \u001b[0;36m\u001b[1;34m()\u001b[0m\n\u001b[0;32m 1\u001b[0m \u001b[38;5;66;03m# Remove the # and space on the next line to point the template_data_path variable at your own data\u001b[39;00m\n\u001b[0;32m 2\u001b[0m \u001b[38;5;66;03m# template_data_path = \"data/your_template_here.xlsx\"\u001b[39;00m\n\u001b[1;32m----> 4\u001b[0m template_company_data \u001b[38;5;241m=\u001b[39m \u001b[43mTemplateProviderCompany\u001b[49m\u001b[43m(\u001b[49m\u001b[43mexcel_path\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mtemplate_data_path\u001b[49m\u001b[43m)\u001b[49m\n", + "File \u001b[1;32m\\\\wwg00m.rootdom.net\\afs-team\\1200000089\\fc\\dsi\\team\\sasha\\sasha_code\\itr_develop\\ITR\\data\\template.py:55\u001b[0m, in \u001b[0;36mTemplateProviderCompany.__init__\u001b[1;34m(self, excel_path, column_config, tempscore_config)\u001b[0m\n\u001b[0;32m 52\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21m__init__\u001b[39m(\u001b[38;5;28mself\u001b[39m, excel_path: \u001b[38;5;28mstr\u001b[39m,\n\u001b[0;32m 53\u001b[0m column_config: Type[ColumnsConfig] \u001b[38;5;241m=\u001b[39m ColumnsConfig,\n\u001b[0;32m 54\u001b[0m tempscore_config: Type[TemperatureScoreConfig] \u001b[38;5;241m=\u001b[39m TemperatureScoreConfig):\n\u001b[1;32m---> 55\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_companies \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_convert_from_template_company_data\u001b[49m\u001b[43m(\u001b[49m\u001b[43mexcel_path\u001b[49m\u001b[43m)\u001b[49m\n\u001b[0;32m 56\u001b[0m \u001b[38;5;28msuper\u001b[39m()\u001b[38;5;241m.\u001b[39m\u001b[38;5;21m__init__\u001b[39m(\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_companies, column_config, tempscore_config)\n", + "File \u001b[1;32m\\\\wwg00m.rootdom.net\\afs-team\\1200000089\\fc\\dsi\\team\\sasha\\sasha_code\\itr_develop\\ITR\\data\\template.py:113\u001b[0m, in \u001b[0;36mTemplateProviderCompany._convert_from_template_company_data\u001b[1;34m(self, excel_path)\u001b[0m\n\u001b[0;32m 111\u001b[0m required_sectors \u001b[38;5;241m=\u001b[39m [SectorsConfig\u001b[38;5;241m.\u001b[39mSTEEL, SectorsConfig\u001b[38;5;241m.\u001b[39mELECTRICITY]\n\u001b[0;32m 112\u001b[0m out_of_scope_sec \u001b[38;5;241m=\u001b[39m [sec \u001b[38;5;28;01mfor\u001b[39;00m sec \u001b[38;5;129;01min\u001b[39;00m sectors_from_df \u001b[38;5;28;01mif\u001b[39;00m sec \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;129;01min\u001b[39;00m required_sectors]\n\u001b[1;32m--> 113\u001b[0m \u001b[38;5;28;01massert\u001b[39;00m \u001b[38;5;28mlen\u001b[39m(out_of_scope_sec) \u001b[38;5;241m==\u001b[39m \u001b[38;5;241m0\u001b[39m, \u001b[38;5;124mf\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;132;01m{\u001b[39;00msectors_from_df\u001b[38;5;132;01m}\u001b[39;00m\u001b[38;5;124m. Sectors \u001b[39m\u001b[38;5;132;01m{\u001b[39;00mout_of_scope_sec\u001b[38;5;132;01m}\u001b[39;00m\u001b[38;5;124m are not covered by the tool currently. Delete it from excel template.\u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[0;32m 115\u001b[0m \u001b[38;5;66;03m# The nightmare of naming columns 20xx_metric instead of metric_20xx...and potentially dealing with data from 1990s...\u001b[39;00m\n\u001b[0;32m 116\u001b[0m historic_columns \u001b[38;5;241m=\u001b[39m [col \u001b[38;5;28;01mfor\u001b[39;00m col \u001b[38;5;129;01min\u001b[39;00m df_fundamentals\u001b[38;5;241m.\u001b[39mcolumns \u001b[38;5;28;01mif\u001b[39;00m col[:\u001b[38;5;241m1\u001b[39m]\u001b[38;5;241m.\u001b[39misdigit()]\n", + "\u001b[1;31mAssertionError\u001b[0m: \n['Electricity Utilities', 'Steel', 'Auto']\nLength: 3, dtype: string. Sectors ['Auto'] are not covered by the tool currently. Delete it from excel template." + ] + } + ], "source": [ "# Remove the # and space on the next line to point the template_data_path variable at your own data\n", "# template_data_path = \"data/your_template_here.xlsx\"\n", @@ -1461,7 +1477,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.8.8" + "version": "3.9.0" } }, "nbformat": 4, From 400eda18a37412849c7260321baee3d65c724565 Mon Sep 17 00:00:00 2001 From: oleksandr-anufriyev1 Date: Tue, 17 May 2022 11:14:20 +0200 Subject: [PATCH 213/345] Adding check for missing market capitalization and calculating dummy capitalization for missing values Signed-off-by: oleksandr-anufriyev1 Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- ITR/data/template.py | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/ITR/data/template.py b/ITR/data/template.py index c52478dd..33bd542f 100644 --- a/ITR/data/template.py +++ b/ITR/data/template.py @@ -155,6 +155,20 @@ def _fixup_name(x): historic_scopes = ['S1', 'S2', 'S3', 'S1S2', 'S1S2S3', 'production'] df_historic = df_fundamentals[['company_id'] + historic_columns].dropna(axis=1, how='all') df_fundamentals = df_fundamentals[df_fundamentals.columns.difference(historic_columns, sort=False)] + + + # Checking if there are not many missing market cap + missing_cap = df_fundamentals['market_cap'].isnull().sum() * 100 / len(df_fundamentals) + assert missing_cap < 20, f"Too many companies with missing market capitalization. Cannot proceed." + # For the missing Market Cap we should use the ratio below to get dummy market cap: + # (Avg for the Sector (Market Cap / Revenues) + Avg for the Sector (Market Cap / Assets)) 2 + df_fundamentals['MCap_to_Reven']=df_fundamentals[ColumnsConfig.COMPANY_MARKET_CAP]/df_fundamentals[ColumnsConfig.COMPANY_REVENUE] # new temp column with ratio + df_fundamentals['MCap_to_Assets']=df_fundamentals[ColumnsConfig.COMPANY_MARKET_CAP]/df_fundamentals[ColumnsConfig.COMPANY_TOTAL_ASSETS] # new temp column with ratio + df_fundamentals['AVG_MCap_to_Reven'] = df_fundamentals.groupby(ColumnsConfig.SECTOR)['MCap_to_Reven'].transform('mean') + df_fundamentals['AVG_MCap_to_Assets'] = df_fundamentals.groupby(ColumnsConfig.SECTOR)['MCap_to_Assets'].transform('mean') + df_fundamentals[ColumnsConfig.COMPANY_MARKET_CAP] = df_fundamentals[ColumnsConfig.COMPANY_MARKET_CAP].fillna(0.5*(df_fundamentals[ColumnsConfig.COMPANY_REVENUE] * df_fundamentals['AVG_MCap_to_Reven']+df_fundamentals[ColumnsConfig.COMPANY_TOTAL_ASSETS] * df_fundamentals['AVG_MCap_to_Assets'])) + df_fundamentals.drop(['MCap_to_Reven','MCap_to_Assets','AVG_MCap_to_Reven','AVG_MCap_to_Assets'], axis=1, inplace=True) # deleting temporary columns + # df_fundamentals now ready for conversion to list of models df_historic = df_historic.rename(columns={col: _fixup_name(col) for col in historic_columns}) @@ -262,7 +276,7 @@ def _company_df_to_model(self, df_fundamentals: pd.DataFrame, company_data[ColumnsConfig.EMISSIONS_METRIC] = { 'units': company_data[ColumnsConfig.EMISSIONS_METRIC]} - # TODO: need better handling of missing market cap data + # handling of missing market cap data is mainly done in _convert_from_template_company_data() if company_data[ColumnsConfig.COMPANY_MARKET_CAP] is pd.NA: company_data[ColumnsConfig.COMPANY_MARKET_CAP] = np.nan From f2666ebf56d9452f6750acf12880969437048e86 Mon Sep 17 00:00:00 2001 From: oleksandr-anufriyev1 Date: Tue, 17 May 2022 12:23:46 +0200 Subject: [PATCH 214/345] Adding check for the case of several currencies used in the excel template Signed-off-by: oleksandr-anufriyev1 Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- ITR/data/template.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/ITR/data/template.py b/ITR/data/template.py index 33bd542f..da0d1abb 100644 --- a/ITR/data/template.py +++ b/ITR/data/template.py @@ -145,11 +145,15 @@ def _fixup_name(x): company_ids = df_fundamentals[ColumnsConfig.COMPANY_ID].unique() # testing if only valid sectors are provided + assert len(df_fundamentals[ColumnsConfig.TEMPLATE_CURRENCY].unique()) == 1, f"All data should be in the same currency. Please adjust excel template input." + + # testing if all data is in the same currency sectors_from_df = df_fundamentals[ColumnsConfig.SECTOR].unique() required_sectors = [SectorsConfig.STEEL, SectorsConfig.ELECTRICITY] out_of_scope_sec = [sec for sec in sectors_from_df if sec not in required_sectors] assert len(out_of_scope_sec) == 0, f"Sector {out_of_scope_sec} are not covered by the ITR tool currently. Delete it from excel template." + # The nightmare of naming columns 20xx_metric instead of metric_20xx...and potentially dealing with data from 1990s... historic_columns = [col for col in df_fundamentals.columns if col[:1].isdigit()] historic_scopes = ['S1', 'S2', 'S3', 'S1S2', 'S1S2S3', 'production'] From 255d1d492fe145673c91cf2596ecd56f2e62ce85 Mon Sep 17 00:00:00 2001 From: oleksandr-anufriyev1 Date: Tue, 17 May 2022 12:42:49 +0200 Subject: [PATCH 215/345] Adding check for emty cells in portfolio input file Signed-off-by: oleksandr-anufriyev1 Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- ITR/utils.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/ITR/utils.py b/ITR/utils.py index 578cc372..917a9a23 100644 --- a/ITR/utils.py +++ b/ITR/utils.py @@ -51,6 +51,11 @@ def dataframe_to_portfolio(df_portfolio: pd.DataFrame) -> List[PortfolioCompany] PortfolioCompany model. :return: A list of portfolio companies """ + # Adding some non-empty checks for portfolio upload + assert df_portfolio[ColumnsConfig.INVESTMENT_VALUE].isnull().sum() == 0, f"There is empty data for investment value for some companies in the input file. Please correct the file and try again." + assert df_portfolio[ColumnsConfig.COMPANY_ISIN].isnull().sum() == 0, f"There is empty data for company ISIN for some companies in the input file. Please correct the file and try again." + assert df_portfolio[ColumnsConfig.COMPANY_ID].isnull().sum() == 0, f"There is empty data for company ID for some companies in the input file. Please correct the file and try again." + return [PortfolioCompany.parse_obj(company) for company in df_portfolio.to_dict(orient="records")] From f24601a7a635aeb3182662ccce173b66e0322123 Mon Sep 17 00:00:00 2001 From: oleksandr-anufriyev1 Date: Fri, 20 May 2022 12:14:39 +0200 Subject: [PATCH 216/345] Adjusting the code based on the feedback from David Signed-off-by: oleksandr-anufriyev1 Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- ITR/configs.py | 11 + ITR/data/template.py | 26 +- ITR/interfaces.py | 11 + environment.yml | 2 +- examples/quick_temp_score_calculation.ipynb | 649 +------------ examples/quick_template_score_calc.ipynb | 963 +------------------- requirements.txt | 2 + 7 files changed, 108 insertions(+), 1556 deletions(-) diff --git a/ITR/configs.py b/ITR/configs.py index f0e23985..711a3883 100644 --- a/ITR/configs.py +++ b/ITR/configs.py @@ -7,6 +7,8 @@ import pint import pint_pandas from ITR.data.osc_units import ureg, Q_ +from typing import List + class ColumnsConfig: # Define a constant for each column used in the @@ -86,6 +88,15 @@ class SectorsConfig: INDUSTRIALS = "Industrials" FINANCIALS = "Financials" HEALTH_CARE = "Health Care" + AUTOMOBILE = "Autos" + + @classmethod + def get_configured_sectors(cls) -> List[str]: + """ + Get a list of sectors configured in the tool. + :return: A list of sectors string values + """ + return [SectorsConfig.STEEL, SectorsConfig.ELECTRICITY, SectorsConfig.AUTOMOBILE] class VariablesConfig: diff --git a/ITR/data/template.py b/ITR/data/template.py index da0d1abb..01581b7f 100644 --- a/ITR/data/template.py +++ b/ITR/data/template.py @@ -144,15 +144,18 @@ def _fixup_name(x): company_ids = df_fundamentals[ColumnsConfig.COMPANY_ID].unique() - # testing if only valid sectors are provided - assert len(df_fundamentals[ColumnsConfig.TEMPLATE_CURRENCY].unique()) == 1, f"All data should be in the same currency. Please adjust excel template input." # testing if all data is in the same currency - sectors_from_df = df_fundamentals[ColumnsConfig.SECTOR].unique() - required_sectors = [SectorsConfig.STEEL, SectorsConfig.ELECTRICITY] - out_of_scope_sec = [sec for sec in sectors_from_df if sec not in required_sectors] - assert len(out_of_scope_sec) == 0, f"Sector {out_of_scope_sec} are not covered by the ITR tool currently. Delete it from excel template." + assert len(df_fundamentals[ColumnsConfig.TEMPLATE_CURRENCY].unique()) == 1, f"All data should be in the same currency. Please adjust excel template input." + # are there empty sectors? + comp_with_missing_sectors = df_fundamentals[ColumnsConfig.COMPANY_ID][df_fundamentals[ColumnsConfig.SECTOR].isnull()].to_list() + assert len(comp_with_missing_sectors) == 0, f"For {comp_with_missing_sectors} companies the sector column is empty. Correct it in excel template and try one more time." + # testing if only valid sectors are provided + sectors_from_df = df_fundamentals[ColumnsConfig.SECTOR].unique() + configured_sectors = SectorsConfig.get_configured_sectors() + not_configured_sectors = [sec for sec in sectors_from_df if sec not in configured_sectors] + assert len(not_configured_sectors) == 0, f"Sector {not_configured_sectors} is not covered by the ITR tool currently. Delete it from excel template." # The nightmare of naming columns 20xx_metric instead of metric_20xx...and potentially dealing with data from 1990s... historic_columns = [col for col in df_fundamentals.columns if col[:1].isdigit()] @@ -160,10 +163,9 @@ def _fixup_name(x): df_historic = df_fundamentals[['company_id'] + historic_columns].dropna(axis=1, how='all') df_fundamentals = df_fundamentals[df_fundamentals.columns.difference(historic_columns, sort=False)] - # Checking if there are not many missing market cap - missing_cap = df_fundamentals['market_cap'].isnull().sum() * 100 / len(df_fundamentals) - assert missing_cap < 20, f"Too many companies with missing market capitalization. Cannot proceed." + missing_cap_ids = df_fundamentals[ColumnsConfig.COMPANY_ID][df_fundamentals[ColumnsConfig.COMPANY_MARKET_CAP].isnull()].to_list() + assert (len(missing_cap_ids)/len(df_fundamentals)) < 0.2, f"Too many companies with missing market capitalization. Cannot proceed." # For the missing Market Cap we should use the ratio below to get dummy market cap: # (Avg for the Sector (Market Cap / Revenues) + Avg for the Sector (Market Cap / Assets)) 2 df_fundamentals['MCap_to_Reven']=df_fundamentals[ColumnsConfig.COMPANY_MARKET_CAP]/df_fundamentals[ColumnsConfig.COMPANY_REVENUE] # new temp column with ratio @@ -172,6 +174,12 @@ def _fixup_name(x): df_fundamentals['AVG_MCap_to_Assets'] = df_fundamentals.groupby(ColumnsConfig.SECTOR)['MCap_to_Assets'].transform('mean') df_fundamentals[ColumnsConfig.COMPANY_MARKET_CAP] = df_fundamentals[ColumnsConfig.COMPANY_MARKET_CAP].fillna(0.5*(df_fundamentals[ColumnsConfig.COMPANY_REVENUE] * df_fundamentals['AVG_MCap_to_Reven']+df_fundamentals[ColumnsConfig.COMPANY_TOTAL_ASSETS] * df_fundamentals['AVG_MCap_to_Assets'])) df_fundamentals.drop(['MCap_to_Reven','MCap_to_Assets','AVG_MCap_to_Reven','AVG_MCap_to_Assets'], axis=1, inplace=True) # deleting temporary columns + + if missing_cap_ids is not None: + def custom_formatwarning(msg, *args, **kwargs): + return str(msg) + '\n' # ignore everything except the message + warnings.formatwarning = custom_formatwarning + warnings.warn(f"Market capitalisation was missing for {missing_cap_ids}.\nSo the values were calculated using the average MCap/Rev and MCap/Assets from available companies.\nScript is still running") # df_fundamentals now ready for conversion to list of models diff --git a/ITR/interfaces.py b/ITR/interfaces.py index a90fdc5c..62a3ba19 100644 --- a/ITR/interfaces.py +++ b/ITR/interfaces.py @@ -65,6 +65,15 @@ def units_must_be_EI(cls, v): return v raise ValueError(f"cannot convert {v} to t CO2/energy") +class EmissionsIntensity_ManufactureAuto(BaseModel): + units: str + @validator('units') + def units_must_be_EI(cls, v): + qty = Q_(1, v) + if qty.is_compatible_with("g CO2/km"): + return v + raise ValueError(f"cannot convert {v} to g CO2/km") + class EmissionsIntensity_ManufactureSteel(BaseModel): units: str @validator('units') @@ -83,6 +92,8 @@ def units_must_be_EI(cls, v): return v if qty.is_compatible_with("t CO2/Fe_ton"): return v + if qty.is_compatible_with("g CO2/km"): + return v raise ValueError(f"cannot convert {v} to t CO2/Fe_ton") diff --git a/environment.yml b/environment.yml index 5a6146c0..61e2e9e0 100644 --- a/environment.yml +++ b/environment.yml @@ -1,4 +1,4 @@ -name: itr_env_develop +name: itr_env channels: - conda-forge - defaults diff --git a/examples/quick_temp_score_calculation.ipynb b/examples/quick_temp_score_calculation.ipynb index 0743c5dd..6ba879e1 100644 --- a/examples/quick_temp_score_calculation.ipynb +++ b/examples/quick_temp_score_calculation.ipynb @@ -18,7 +18,7 @@ }, { "cell_type": "code", - "execution_count": 1, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -69,7 +69,7 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": null, "metadata": { "tags": [] }, @@ -88,18 +88,9 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "1 CO2e\n", - "1 CO2e * gigametric_ton\n" - ] - } - ], + "outputs": [], "source": [ "one_co2 = ureg(\"CO2e\")\n", "print(one_co2)\n", @@ -121,7 +112,7 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -156,7 +147,7 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -175,7 +166,7 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": null, "metadata": { "tags": [] }, @@ -186,7 +177,7 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -195,7 +186,7 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -205,7 +196,7 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -224,7 +215,7 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -233,90 +224,9 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "

    \n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
    company_namecompany_idcompany_isininvestment_value
    0Company AGUS0079031078US007903107835000000
    1Company AHUS00724F1012US00724F101210000000
    2Company AIFR0000125338FR000012533810000000
    3Company AJUS17275R1023US17275R102310000000
    4Company AKCH0198251305CH019825130510000000
    \n", - "
    " - ], - "text/plain": [ - " company_name company_id company_isin investment_value\n", - "0 Company AG US0079031078 US0079031078 35000000\n", - "1 Company AH US00724F1012 US00724F1012 10000000\n", - "2 Company AI FR0000125338 FR0000125338 10000000\n", - "3 Company AJ US17275R1023 US17275R1023 10000000\n", - "4 Company AK CH0198251305 CH0198251305 10000000" - ] - }, - "execution_count": 11, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "df_portfolio.head(5)" ] @@ -330,7 +240,7 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -347,7 +257,7 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -368,132 +278,9 @@ }, { "cell_type": "code", - "execution_count": 14, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/Users/michael/opt/miniconda3/envs/jupyter/lib/python3.10/site-packages/pint_pandas/pint_array.py:648: UnitStrippedWarning: The unit of the quantity is stripped when downcasting to ndarray.\n", - " return np.array(qtys, dtype=\"object\", copy=copy)\n", - "/Users/michael/opt/miniconda3/envs/jupyter/lib/python3.10/site-packages/pint_pandas/pint_array.py:648: UnitStrippedWarning: The unit of the quantity is stripped when downcasting to ndarray.\n", - " return np.array(qtys, dtype=\"object\", copy=copy)\n" - ] - }, - { - "data": { - "text/html": [ - "
    \n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
    company_nametime_framescopetemperature_score
    0Company AGLONGS1S22.05
    1Company AHLONGS1S22.22
    2Company AILONGS1S22.06
    3Company AJLONGS1S22.01
    4Company AKLONGS1S21.93
    5Company ALLONGS1S21.78
    6Company AMLONGS1S21.71
    7Company ANLONGS1S21.34
    8Company AOLONGS1S22.21
    \n", - "
    " - ], - "text/plain": [ - " company_name time_frame scope temperature_score\n", - "0 Company AG LONG S1S2 2.05\n", - "1 Company AH LONG S1S2 2.22\n", - "2 Company AI LONG S1S2 2.06\n", - "3 Company AJ LONG S1S2 2.01\n", - "4 Company AK LONG S1S2 1.93\n", - "5 Company AL LONG S1S2 1.78\n", - "6 Company AM LONG S1S2 1.71\n", - "7 Company AN LONG S1S2 1.34\n", - "8 Company AO LONG S1S2 2.21" - ] - }, - "execution_count": 14, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "amended_portfolio[['company_name', 'time_frame', 'scope', 'temperature_score']].head(9)" ] @@ -508,7 +295,7 @@ }, { "cell_type": "code", - "execution_count": 15, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -517,26 +304,9 @@ }, { "cell_type": "code", - "execution_count": 16, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "1.8100000000000003 delta_degree_Celsius" - ], - "text/latex": [ - "$1.8100000000000003\\ \\mathrm{delta\\_degree\\_Celsius}$" - ], - "text/plain": [ - "1.8100000000000003 " - ] - }, - "execution_count": 16, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "aggregated_scores.long.S1S2.all.score" ] @@ -557,7 +327,7 @@ }, { "cell_type": "code", - "execution_count": 17, + "execution_count": null, "metadata": { "scrolled": true }, @@ -585,22 +355,9 @@ }, { "cell_type": "code", - "execution_count": 18, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
    " - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "analysis_parameters = ([ETimeFrames.LONG], [EScope.S1S2], grouping)\n", "plot_grouped_heatmap(grouped_aggregations, analysis_parameters)" @@ -608,163 +365,9 @@ }, { "cell_type": "code", - "execution_count": 19, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
    \n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
    groupcompany_namecompany_idtemperature_scorecontribution_relative
    0Steel-AsiaCompany LBR00000000121.88 delta_degree_Celsius11.230585424133812 percent
    1Steel-AsiaCompany HCN00000000081.84 delta_degree_Celsius10.991636798088411 percent
    2Steel-AsiaCompany ESE00000000051.81 delta_degree_Celsius10.812425328554362 percent
    3Steel-AsiaCompany GCN00000000071.78 delta_degree_Celsius10.63321385902031 percent
    4Steel-AsiaCompany DSE00000000041.76 delta_degree_Celsius10.51373954599761 percent
    5Steel-AsiaCompany CIT00000000031.72 delta_degree_Celsius10.274790919952212 percent
    6Steel-AsiaCompany AWUS71344810811.19 delta_degree_Celsius7.1087216248506575 percent
    7Steel-AsiaCompany AJP00000000011.19 delta_degree_Celsius7.1087216248506575 percent
    8Steel-AsiaCompany FNL00000000061.19 delta_degree_Celsius7.1087216248506575 percent
    9Steel-AsiaCompany ICN00000000091.19 delta_degree_Celsius7.1087216248506575 percent
    10Steel-AsiaCompany JBR00000000101.19 delta_degree_Celsius7.1087216248506575 percent
    \n", - "
    " - ], - "text/plain": [ - " group company_name company_id temperature_score \\\n", - "0 Steel-Asia Company L BR0000000012 1.88 delta_degree_Celsius \n", - "1 Steel-Asia Company H CN0000000008 1.84 delta_degree_Celsius \n", - "2 Steel-Asia Company E SE0000000005 1.81 delta_degree_Celsius \n", - "3 Steel-Asia Company G CN0000000007 1.78 delta_degree_Celsius \n", - "4 Steel-Asia Company D SE0000000004 1.76 delta_degree_Celsius \n", - "5 Steel-Asia Company C IT0000000003 1.72 delta_degree_Celsius \n", - "6 Steel-Asia Company AW US7134481081 1.19 delta_degree_Celsius \n", - "7 Steel-Asia Company A JP0000000001 1.19 delta_degree_Celsius \n", - "8 Steel-Asia Company F NL0000000006 1.19 delta_degree_Celsius \n", - "9 Steel-Asia Company I CN0000000009 1.19 delta_degree_Celsius \n", - "10 Steel-Asia Company J BR0000000010 1.19 delta_degree_Celsius \n", - "\n", - " contribution_relative \n", - "0 11.230585424133812 percent \n", - "1 10.991636798088411 percent \n", - "2 10.812425328554362 percent \n", - "3 10.63321385902031 percent \n", - "4 10.51373954599761 percent \n", - "5 10.274790919952212 percent \n", - "6 7.1087216248506575 percent \n", - "7 7.1087216248506575 percent \n", - "8 7.1087216248506575 percent \n", - "9 7.1087216248506575 percent \n", - "10 7.1087216248506575 percent " - ] - }, - "execution_count": 19, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "region = 'Asia'\n", "sector = 'Steel'\n", @@ -794,18 +397,9 @@ }, { "cell_type": "code", - "execution_count": 20, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/Users/michael/opt/miniconda3/envs/jupyter/lib/python3.10/site-packages/pandas/core/dtypes/cast.py:1981: UnitStrippedWarning: The unit of the quantity is stripped when downcasting to ndarray.\n", - " result[:] = values\n" - ] - } - ], + "outputs": [], "source": [ "time_frames = [ETimeFrames.LONG]\n", "scopes = [EScope.S1S2]\n", @@ -822,22 +416,9 @@ }, { "cell_type": "code", - "execution_count": 21, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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vXv3/rpq+phjjll6ww03fDF8+PA9brrppnkHHnjgmrq2r+7NN99sNW/evOYnnnji8pqWT5o0qfV9993Xefz48fNq28fIkSN3f+yxx/4LcM8993QqKytbnOzxn3nmmXY333xz0auvvjqnat6xxx4bO+KII5afccYZy6699tquF1988ZJ27dptTjxWly5dNrVu3XrvNWvW/KeioqLZueee2/P555+fW/31PPjggx1mzJjR6oYbbvgi2UyZRsWZiIhIhFq0aLF55syZyfSvTMqUKVNaT5kypU1NxdmGDRs48MAD19RX8E2cOHEOwKxZs5rfe++9XRtSnNXnrrvuKjrrrLOWVhVnVcdKFIvFNjz//PNzYevXc8oppywHaiw8s0Xanm8VERGRwOOPP95+8ODBffv3799vzJgxuy5fvjwPYOLEia333nvvvnvssUf/vfbaq9+XX36Zf+ONN+709NNP79C3b9/+f/7zn3e45JJLdjr55JN3PuCAA3ofc8wxuzzzzDPtDjrooN0Bli9fnnfcccfF+vTp079Pnz79x48f3xGge/fuey1cuLBg3LhxPebNm9eib9++/c8555weRx999C4PPPBAx6pcRx555C4PPvhgh2Rfx/XXX9910aJFzUaOHNln33337ZN4rMT1Zs2a1bx37957rl271qq/nltuuaXz97///V4ACxYsKPjOd76z24ABA/oNGDCg34svvtgGIB6Pt+3bt2//vn379u/Xr1//ZcuWZVS9k1FhRUREss26devyqgqJqgIkcfnChQsLbrjhhm6TJk2a/eGHH340ZMiQNdddd13R2rVr7ZRTTtntD3/4w2ezZs36cOLEibPat2+/6fLLL18wduzYZTNnzvzwrLPOWgbw/vvvt37hhRfmPP300/9N3HdZWVm39u3bb5o9e/aHs2fP/rCkpGRl4vKbb755fs+ePdfNnDnzw7vuumv+WWedtXj8+PGdAb788sv8qVOntj3hhBOSbsW66qqrFnXt2nXDxIkTZ7/11luz61u/ZcuWXtPrqXLOOef0vOSSSyqnT5/+0YQJEz4599xzY2HuHW+55ZZPZ86c+eHkyZNntm3bdnOyGdOBTmuKiIhEqL7Tmq+99lqbTz75pOXw4cP7AmzYsMGGDh266v3332/ZtWvXDSNHjlwD0KlTp1oLkNGjR3/Vtm3bra5KnTRpUvtHHnlkbtV0YWHhprqylpSUrLrooot2/vzzzwsefPDBHUpKSpY1a9Zsi3XMrMarX2ubvz3eeOON9h9//HGrqulVq1blL1u2LK+4uHjVpZde2vOEE05YevLJJy/bbbfdVJyJiIhI43B3RowYsaJ6q9dbb73VKtmCp02bNjUWJ+5e031r63TCCSd8ec8993R67LHHOt13330V1Zd37dp14/Lly7eoL5YtW1ZQWFi4sUEHSoK7M2XKlI+qF5433HDDF0cfffTyJ598ssP+++/f7/nnn5+99957r23s46eKirMcFiuLtwA6E/weJD7yw6/rgEpgaUV5icYBkpwQK4sXAl3DyU21PNZUlJdkdYdkSR+jRo1aPW7cuF7Tp09vMWDAgHUrV67M++9//9ts0KBBaysrK5tPnDix9ciRI9csW7Ysr23btpvbt2+/adWqVUl1Wxo1atSK3/3ud13vu+++eQCLFy/OT2w969Chw6bVq1dvsa9zzz13yb777tuvS5cuG4YNG7ZVwTNgwIB1lZWVzd59992WQ4YMWTt79uzmM2fObFVcXPw1QJs2bTYtX748r1u3bkm9/rpez4gRI1b8+te/7nrddddVQnCl6v777//1jBkzWgwfPvzr4cOHf/3WW2+1mT59eksVZ5I2wg+aYUBvYHdgN6AnsBNBYZaMDbGy+GLgC4JirRL4GHgXmFpRXtJoV/GIpFqsLN4FKCa40XqPhEf38NEiyf2sIrjl1DygApiV8Pikorwko06jSCCZoS8aW1Wfs6rpgw8+ePntt9/+edX0TjvttPGuu+6qOOmkk3Zdv369AVx99dWfDxw4cN2DDz74yYUXXthr7dq1eS1bttw8adKk2WPGjFl50003devbt2//cePGLazr2DfeeOPCM844o1fv3r33zMvL8yuuuGLBaaed9lXV8h133HHT0KFDV/Xu3XvPgw8+ePldd901v2fPnht32223tWPHjv2qpn22atXK/+///m/uGWecEVu3bl1eQUGB33bbbZ927tx5E8Bpp522ZMyYMb27du26IZl+Z3W9nrvvvnvemWee2atPnz79N23aZPvuu+/K/fff/7Pf/OY3Xd988832eXl53qdPn6+PO+64jPpnSjc+zyKxsrgBewAHhI8RBEVZqs0DpiY8Xq8oL1nVBMcVqVesLF79PdGnCQ67HJgE/DN8fKDW5/T0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\n", - "text/plain": [ - "
    " - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "plot_grouped_statistics(aggregated_portfolio, company_contributions, analysis_parameters)" ] @@ -853,175 +434,9 @@ }, { "cell_type": "code", - "execution_count": 22, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
    \n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
    company_namecompany_idsectorcontributiontemperature_scoreownership_percentageportfolio_percentage
    11Company LBR0000000012Steel3.1959201019974492 percent1.88 delta_degree_Celsius0.153.08
    12Company HCN0000000008Steel3.1279218019549506 percent1.84 delta_degree_Celsius0.183.08
    13Company ESE0000000005Steel3.076923076923076 percent1.81 delta_degree_Celsius3.393.08
    15Company GCN0000000007Steel3.0259243518912022 percent1.78 delta_degree_Celsius0.053.08
    16Company DSE0000000004Steel2.991925201869953 percent1.76 delta_degree_Celsius0.483.08
    17Company AVUS6293775085Steel2.991925201869953 percent1.76 delta_degree_Celsius0.143.08
    18Company KBR0000000011Steel2.9579260518487036 percent1.74 delta_degree_Celsius1.013.08
    19Company CIT0000000003Steel2.923926901827454 percent1.72 delta_degree_Celsius0.343.08
    21Company BNL0000000002Steel2.4989375265618357 percent1.47 delta_degree_Celsius1.513.08
    23Company AJP0000000001Steel2.022949426264343 percent1.19 delta_degree_Celsius1.073.08
    \n", - "
    " - ], - "text/plain": [ - " company_name company_id sector contribution \\\n", - "11 Company L BR0000000012 Steel 3.1959201019974492 percent \n", - "12 Company H CN0000000008 Steel 3.1279218019549506 percent \n", - "13 Company E SE0000000005 Steel 3.076923076923076 percent \n", - "15 Company G CN0000000007 Steel 3.0259243518912022 percent \n", - "16 Company D SE0000000004 Steel 2.991925201869953 percent \n", - "17 Company AV US6293775085 Steel 2.991925201869953 percent \n", - "18 Company K BR0000000011 Steel 2.9579260518487036 percent \n", - "19 Company C IT0000000003 Steel 2.923926901827454 percent \n", - "21 Company B NL0000000002 Steel 2.4989375265618357 percent \n", - "23 Company A JP0000000001 Steel 2.022949426264343 percent \n", - "\n", - " temperature_score ownership_percentage portfolio_percentage \n", - "11 1.88 delta_degree_Celsius 0.15 3.08 \n", - "12 1.84 delta_degree_Celsius 0.18 3.08 \n", - "13 1.81 delta_degree_Celsius 3.39 3.08 \n", - "15 1.78 delta_degree_Celsius 0.05 3.08 \n", - "16 1.76 delta_degree_Celsius 0.48 3.08 \n", - "17 1.76 delta_degree_Celsius 0.14 3.08 \n", - "18 1.74 delta_degree_Celsius 1.01 3.08 \n", - "19 1.72 delta_degree_Celsius 0.34 3.08 \n", - "21 1.47 delta_degree_Celsius 1.51 3.08 \n", - "23 1.19 delta_degree_Celsius 1.07 3.08 " - ] - }, - "execution_count": 22, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "sector_contributions = company_contributions[['company_name', 'company_id', 'sector', 'contribution', 'temperature_score', 'ownership_percentage', 'portfolio_percentage']]\n", "sector_contributions.loc[sector_contributions['sector'] == 'Steel'][:10].round(2)" @@ -1041,7 +456,7 @@ }, { "cell_type": "code", - "execution_count": 23, + "execution_count": null, "metadata": { "pycharm": { "name": "#%%\n" diff --git a/examples/quick_template_score_calc.ipynb b/examples/quick_template_score_calc.ipynb index d925cc52..58f3ef64 100644 --- a/examples/quick_template_score_calc.ipynb +++ b/examples/quick_template_score_calc.ipynb @@ -40,7 +40,7 @@ }, { "cell_type": "code", - "execution_count": 1, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -60,38 +60,18 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": null, "metadata": { "tags": [] }, - "outputs": [ - { - "data": { - "text/plain": [ - "['T:\\\\FC\\\\DSI\\\\Team\\\\Sasha\\\\sasha_code\\\\ITR_develop\\\\examples',\n", - " 'C:\\\\Users\\\\oxazevz\\\\Anaconda3\\\\envs\\\\itr_env_develop\\\\python39.zip',\n", - " 'C:\\\\Users\\\\oxazevz\\\\Anaconda3\\\\envs\\\\itr_env_develop\\\\DLLs',\n", - " 'C:\\\\Users\\\\oxazevz\\\\Anaconda3\\\\envs\\\\itr_env_develop\\\\lib',\n", - " 'C:\\\\Users\\\\oxazevz\\\\Anaconda3\\\\envs\\\\itr_env_develop',\n", - " '',\n", - " 'C:\\\\Users\\\\oxazevz\\\\Anaconda3\\\\envs\\\\itr_env_develop\\\\lib\\\\site-packages',\n", - " '\\\\\\\\wwg00m.rootdom.net\\\\afs-team\\\\1200000089\\\\fc\\\\dsi\\\\team\\\\sasha\\\\sasha_code\\\\itr_develop',\n", - " 'C:\\\\Users\\\\oxazevz\\\\Anaconda3\\\\envs\\\\itr_env_develop\\\\lib\\\\site-packages\\\\win32',\n", - " 'C:\\\\Users\\\\oxazevz\\\\Anaconda3\\\\envs\\\\itr_env_develop\\\\lib\\\\site-packages\\\\win32\\\\lib',\n", - " 'C:\\\\Users\\\\oxazevz\\\\Anaconda3\\\\envs\\\\itr_env_develop\\\\lib\\\\site-packages\\\\Pythonwin']" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "display(sys.path)" ] }, { "cell_type": "code", - "execution_count": 3, + "execution_count": null, "metadata": { "tags": [] }, @@ -114,20 +94,9 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Testing unit registry\n", - "=====================\n", - "The gas species CO2e, which was a gwp of 1: 1 CO2e\n", - "A gigaton of CO2e: 1 CO2e * gigametric_ton\n" - ] - } - ], + "outputs": [], "source": [ "print(\"Testing unit registry\\n=====================\")\n", "one_co2 = ureg(\"CO2e\")\n", @@ -148,7 +117,7 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -204,7 +173,7 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -251,7 +220,7 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -270,23 +239,9 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "ename": "AssertionError", - "evalue": "\n['Electricity Utilities', 'Steel', 'Auto']\nLength: 3, dtype: string. Sectors ['Auto'] are not covered by the tool currently. Delete it from excel template.", - "output_type": "error", - "traceback": [ - "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[1;31mAssertionError\u001b[0m Traceback (most recent call last)", - "Input \u001b[1;32mIn [8]\u001b[0m, in \u001b[0;36m\u001b[1;34m()\u001b[0m\n\u001b[0;32m 1\u001b[0m \u001b[38;5;66;03m# Remove the # and space on the next line to point the template_data_path variable at your own data\u001b[39;00m\n\u001b[0;32m 2\u001b[0m \u001b[38;5;66;03m# template_data_path = \"data/your_template_here.xlsx\"\u001b[39;00m\n\u001b[1;32m----> 4\u001b[0m template_company_data \u001b[38;5;241m=\u001b[39m \u001b[43mTemplateProviderCompany\u001b[49m\u001b[43m(\u001b[49m\u001b[43mexcel_path\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mtemplate_data_path\u001b[49m\u001b[43m)\u001b[49m\n", - "File \u001b[1;32m\\\\wwg00m.rootdom.net\\afs-team\\1200000089\\fc\\dsi\\team\\sasha\\sasha_code\\itr_develop\\ITR\\data\\template.py:55\u001b[0m, in \u001b[0;36mTemplateProviderCompany.__init__\u001b[1;34m(self, excel_path, column_config, tempscore_config)\u001b[0m\n\u001b[0;32m 52\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21m__init__\u001b[39m(\u001b[38;5;28mself\u001b[39m, excel_path: \u001b[38;5;28mstr\u001b[39m,\n\u001b[0;32m 53\u001b[0m column_config: Type[ColumnsConfig] \u001b[38;5;241m=\u001b[39m ColumnsConfig,\n\u001b[0;32m 54\u001b[0m tempscore_config: Type[TemperatureScoreConfig] \u001b[38;5;241m=\u001b[39m TemperatureScoreConfig):\n\u001b[1;32m---> 55\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_companies \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_convert_from_template_company_data\u001b[49m\u001b[43m(\u001b[49m\u001b[43mexcel_path\u001b[49m\u001b[43m)\u001b[49m\n\u001b[0;32m 56\u001b[0m \u001b[38;5;28msuper\u001b[39m()\u001b[38;5;241m.\u001b[39m\u001b[38;5;21m__init__\u001b[39m(\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_companies, column_config, tempscore_config)\n", - "File \u001b[1;32m\\\\wwg00m.rootdom.net\\afs-team\\1200000089\\fc\\dsi\\team\\sasha\\sasha_code\\itr_develop\\ITR\\data\\template.py:113\u001b[0m, in \u001b[0;36mTemplateProviderCompany._convert_from_template_company_data\u001b[1;34m(self, excel_path)\u001b[0m\n\u001b[0;32m 111\u001b[0m required_sectors \u001b[38;5;241m=\u001b[39m [SectorsConfig\u001b[38;5;241m.\u001b[39mSTEEL, SectorsConfig\u001b[38;5;241m.\u001b[39mELECTRICITY]\n\u001b[0;32m 112\u001b[0m out_of_scope_sec \u001b[38;5;241m=\u001b[39m [sec \u001b[38;5;28;01mfor\u001b[39;00m sec \u001b[38;5;129;01min\u001b[39;00m sectors_from_df \u001b[38;5;28;01mif\u001b[39;00m sec \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;129;01min\u001b[39;00m required_sectors]\n\u001b[1;32m--> 113\u001b[0m \u001b[38;5;28;01massert\u001b[39;00m \u001b[38;5;28mlen\u001b[39m(out_of_scope_sec) \u001b[38;5;241m==\u001b[39m \u001b[38;5;241m0\u001b[39m, \u001b[38;5;124mf\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;132;01m{\u001b[39;00msectors_from_df\u001b[38;5;132;01m}\u001b[39;00m\u001b[38;5;124m. Sectors \u001b[39m\u001b[38;5;132;01m{\u001b[39;00mout_of_scope_sec\u001b[38;5;132;01m}\u001b[39;00m\u001b[38;5;124m are not covered by the tool currently. Delete it from excel template.\u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[0;32m 115\u001b[0m \u001b[38;5;66;03m# The nightmare of naming columns 20xx_metric instead of metric_20xx...and potentially dealing with data from 1990s...\u001b[39;00m\n\u001b[0;32m 116\u001b[0m historic_columns \u001b[38;5;241m=\u001b[39m [col \u001b[38;5;28;01mfor\u001b[39;00m col \u001b[38;5;129;01min\u001b[39;00m df_fundamentals\u001b[38;5;241m.\u001b[39mcolumns \u001b[38;5;28;01mif\u001b[39;00m col[:\u001b[38;5;241m1\u001b[39m]\u001b[38;5;241m.\u001b[39misdigit()]\n", - "\u001b[1;31mAssertionError\u001b[0m: \n['Electricity Utilities', 'Steel', 'Auto']\nLength: 3, dtype: string. Sectors ['Auto'] are not covered by the tool currently. Delete it from excel template." - ] - } - ], + "outputs": [], "source": [ "# Remove the # and space on the next line to point the template_data_path variable at your own data\n", "# template_data_path = \"data/your_template_here.xlsx\"\n", @@ -320,19 +275,9 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Benchmark Temperature = 1.5 delta_degree_Celsius\n", - "Benchmark Global Budget = 521.0526315789474 CO2 * gigametric_ton\n", - "AFOLU included = False\n" - ] - } - ], + "outputs": [], "source": [ "template_provider = DataWarehouse(template_company_data, base_production_bm, base_intensity_bm)\n", "\n", @@ -356,102 +301,9 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
    \n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
    company_namecompany_leicompany_idcompany_isininvestment_value
    48Versant PowerNQZVQT2P5IUF2PGA1Q48CA2908761018CA2908761018111916
    49Vistra Corp.549300KP43CPCUJOOG15US92840M1027US92840M102753489
    50WEC Energy Group549300IGLYTZUK3PVP70US92939U1060US92939U106045957
    51WORTHINGTON INDUSTRIES INC1WRCIANKYOIK6KYE5E82US9818111026US9818111026236587
    52Xcel Energy, Inc.LGJNMI9GH8XIDG5RCM61US98389B1008US98389B100846170
    \n", - "
    " - ], - "text/plain": [ - " company_name company_lei company_id \\\n", - "48 Versant Power NQZVQT2P5IUF2PGA1Q48 CA2908761018 \n", - "49 Vistra Corp. 549300KP43CPCUJOOG15 US92840M1027 \n", - "50 WEC Energy Group 549300IGLYTZUK3PVP70 US92939U1060 \n", - "51 WORTHINGTON INDUSTRIES INC 1WRCIANKYOIK6KYE5E82 US9818111026 \n", - "52 Xcel Energy, Inc. LGJNMI9GH8XIDG5RCM61 US98389B1008 \n", - "\n", - " company_isin investment_value \n", - "48 CA2908761018 111916 \n", - "49 US92840M1027 53489 \n", - "50 US92939U1060 45957 \n", - "51 US9818111026 236587 \n", - "52 US98389B1008 46170 " - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "df_portfolio = pd.read_excel(template_data_path, sheet_name=\"Portfolio\")\n", "display(df_portfolio.tail())" @@ -466,7 +318,7 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -483,7 +335,7 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -504,473 +356,9 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
    \n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
    company_nametime_framescopetemperature_score
    0AES Corp.LONGS1S21.79
    1ALLETE, Inc.LONGS1S21.7
    2Alliant EnergyLONGS1S21.67
    3Ameren Corp.LONGS1S22.28
    4American Electric Power Co., Inc.LONGS1S21.96
    5Avangrid, Inc.LONGS1S22.1
    6Black Hills Corp.LONGS1S21.98
    7CARPENTER TECHNOLOGY CORPLONGS1S21.63
    8CLEVELAND-CLIFFS INCLONGS1S21.43
    9CMS Energy Corp.LONGS1S22.01
    10COMMERCIAL METALS COLONGS1S21.45
    11Cleco Partners LPLONGS1S22.38
    12Consolidated Edison, Inc.LONGS1S22.05
    13DTE EnergyLONGS1S22.77
    14Dominion EnergyLONGS1S21.81
    15Duke Energy Corp.LONGS1S21.87
    16Edison InternationalLONGS1S22.91
    17Entergy Corp.LONGS1S21.84
    18Evergy, Inc.LONGS1S21.81
    19Eversource EnergyLONGS1S21.23
    20Exelon Corp.LONGS1S22.6
    21FirstEnergy Corp.LONGS1S21.73
    22Fortis, Inc.LONGS1S21.65
    23GERDAU S.A.LONGS1S21.53
    24Hawaiian Electric Industries, Inc.LONGS1S22.38
    25MDU Resources GroupLONGS1S22.27
    26NUCOR CORPLONGS1S21.54
    27National Grid PLCLONGS1S22.25
    28NextEra Energy, Inc.LONGS1S21.77
    29NIPPON STEEL CORPLONGS1S21.81
    30Nisource Inc.LONGS1S21.91
    31Northwestern Corp.LONGS1S21.78
    32OG&E Energy Corp.LONGS1S22.28
    33PG&E Corp.LONGS1S22.58
    34PNM Resources, Inc.LONGS1S21.93
    35POSCOLONGS1S21.83
    36PPL Corp.LONGS1S22.26
    37Pinnacle West Capital Corp.LONGS1S22.17
    38Portland General Electric Co.LONGS1S21.77
    39Public Service Enterprise GroupLONGS1S21.49
    40SempraLONGS1S22.33
    41Southern Co.LONGS1S21.89
    42STEEL DYNAMICS INCLONGS1S21.59
    43TC Energy Corp.LONGS1S22.56
    44TENARIS SALONGS1S21.58
    45TERNIUM S.A.LONGS1S21.71
    46TIMKENSTEEL CORPLONGS1S21.45
    47UNITED STATES STEEL CORPLONGS1S21.54
    48Versant PowerLONGS1S21.55
    49Vistra Corp.LONGS1S22.22
    50WEC Energy GroupLONGS1S21.84
    51WORTHINGTON INDUSTRIES INCLONGS1S21.28
    52Xcel Energy, Inc.LONGS1S21.71
    \n", - "
    " - ], - "text/plain": [ - " company_name time_frame scope temperature_score\n", - "0 AES Corp. LONG S1S2 1.79\n", - "1 ALLETE, Inc. LONG S1S2 1.7\n", - "2 Alliant Energy LONG S1S2 1.67\n", - "3 Ameren Corp. LONG S1S2 2.28\n", - "4 American Electric Power Co., Inc. LONG S1S2 1.96\n", - "5 Avangrid, Inc. LONG S1S2 2.1\n", - "6 Black Hills Corp. LONG S1S2 1.98\n", - "7 CARPENTER TECHNOLOGY CORP LONG S1S2 1.63\n", - "8 CLEVELAND-CLIFFS INC LONG S1S2 1.43\n", - "9 CMS Energy Corp. LONG S1S2 2.01\n", - "10 COMMERCIAL METALS CO LONG S1S2 1.45\n", - "11 Cleco Partners LP LONG S1S2 2.38\n", - "12 Consolidated Edison, Inc. LONG S1S2 2.05\n", - "13 DTE Energy LONG S1S2 2.77\n", - "14 Dominion Energy LONG S1S2 1.81\n", - "15 Duke Energy Corp. LONG S1S2 1.87\n", - "16 Edison International LONG S1S2 2.91\n", - "17 Entergy Corp. LONG S1S2 1.84\n", - "18 Evergy, Inc. LONG S1S2 1.81\n", - "19 Eversource Energy LONG S1S2 1.23\n", - "20 Exelon Corp. LONG S1S2 2.6\n", - "21 FirstEnergy Corp. LONG S1S2 1.73\n", - "22 Fortis, Inc. LONG S1S2 1.65\n", - "23 GERDAU S.A. LONG S1S2 1.53\n", - "24 Hawaiian Electric Industries, Inc. LONG S1S2 2.38\n", - "25 MDU Resources Group LONG S1S2 2.27\n", - "26 NUCOR CORP LONG S1S2 1.54\n", - "27 National Grid PLC LONG S1S2 2.25\n", - "28 NextEra Energy, Inc. LONG S1S2 1.77\n", - "29 NIPPON STEEL CORP LONG S1S2 1.81\n", - "30 Nisource Inc. LONG S1S2 1.91\n", - "31 Northwestern Corp. LONG S1S2 1.78\n", - "32 OG&E Energy Corp. LONG S1S2 2.28\n", - "33 PG&E Corp. LONG S1S2 2.58\n", - "34 PNM Resources, Inc. LONG S1S2 1.93\n", - "35 POSCO LONG S1S2 1.83\n", - "36 PPL Corp. LONG S1S2 2.26\n", - "37 Pinnacle West Capital Corp. LONG S1S2 2.17\n", - "38 Portland General Electric Co. LONG S1S2 1.77\n", - "39 Public Service Enterprise Group LONG S1S2 1.49\n", - "40 Sempra LONG S1S2 2.33\n", - "41 Southern Co. LONG S1S2 1.89\n", - "42 STEEL DYNAMICS INC LONG S1S2 1.59\n", - "43 TC Energy Corp. LONG S1S2 2.56\n", - "44 TENARIS SA LONG S1S2 1.58\n", - "45 TERNIUM S.A. LONG S1S2 1.71\n", - "46 TIMKENSTEEL CORP LONG S1S2 1.45\n", - "47 UNITED STATES STEEL CORP LONG S1S2 1.54\n", - "48 Versant Power LONG S1S2 1.55\n", - "49 Vistra Corp. LONG S1S2 2.22\n", - "50 WEC Energy Group LONG S1S2 1.84\n", - "51 WORTHINGTON INDUSTRIES INC LONG S1S2 1.28\n", - "52 Xcel Energy, Inc. LONG S1S2 1.71" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "with warnings.catch_warnings():\n", " warnings.simplefilter(\"ignore\")\n", @@ -987,17 +375,9 @@ }, { "cell_type": "code", - "execution_count": 14, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Temperature Score aggregation method = PortfolioAggregationMethod.WATS\n" - ] - } - ], + "outputs": [], "source": [ "aggregated_scores = temperature_score.aggregate_scores(enhanced_portfolio)\n", "print(f\"Temperature Score aggregation method = {temperature_score.aggregation_method}\")" @@ -1005,26 +385,9 @@ }, { "cell_type": "code", - "execution_count": 15, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "1.8575639857922674 delta_degree_Celsius" - ], - "text/latex": [ - "$1.8575639857922674\\ \\mathrm{delta\\_degree\\_Celsius}$" - ], - "text/plain": [ - "1.8575639857922674 " - ] - }, - "execution_count": 15, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "aggregated_scores.long.S1S2.all.score" ] @@ -1052,7 +415,7 @@ }, { "cell_type": "code", - "execution_count": 16, + "execution_count": null, "metadata": { "scrolled": true }, @@ -1080,22 +443,9 @@ }, { "cell_type": "code", - "execution_count": 17, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
    " - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "analysis_parameters = ([ETimeFrames.LONG], [EScope.S1S2], grouping)\n", "plot_grouped_heatmap(grouped_aggregations, analysis_parameters)" @@ -1103,63 +453,9 @@ }, { "cell_type": "code", - "execution_count": 18, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
    \n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
    groupcompany_namecompany_idtemperature_scorecontribution_relative
    0Steel-AsiaNIPPON STEEL CORPJP33810000031.81 delta_degree_Celsius100.0 percent
    \n", - "
    " - ], - "text/plain": [ - " group company_name company_id temperature_score \\\n", - "0 Steel-Asia NIPPON STEEL CORP JP3381000003 1.81 delta_degree_Celsius \n", - "\n", - " contribution_relative \n", - "0 100.0 percent " - ] - }, - "execution_count": 18, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "region = 'Asia'\n", "sector = 'Steel'\n", @@ -1189,7 +485,7 @@ }, { "cell_type": "code", - "execution_count": 19, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -1210,22 +506,9 @@ }, { "cell_type": "code", - "execution_count": 20, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAmcAAAICCAYAAACKi2r4AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/YYfK9AAAACXBIWXMAAAsTAAALEwEAmpwYAABaMElEQVR4nO3dd5hU5fnG8e+z9I60FQEdC4jYUBDXEsESRde2aiwxRk1sicYYNcloTEzU6MYSo4nG/sOo0RgrOnajYDQWMIiogCWLNOlSBZbd5/fHOavDsmUWdvacmbk/1zXXzpz6bJu9933f8x5zd0REREQkHoqiLkBEREREvqFwJiIiIhIjCmciIiIiMaJwJiIiIhIjCmciIiIiMaJwJiIiIhIjCmciIoCZfWBmo8LnvzWz+5vx2Jea2V3NdTwRyW8KZxEzswozO6gAz32amf07inNLfJnZd81sgpmtMLO5Zvasme27icccY2ZXNbadu+/o7q9uyrnC840ys1m1jn21u5+xqccWkcKgcCYisWBmFwJ/Aq4GioEtgVuBo7J83tbZPL6ISFMpnMVETUuSmV1vZkvM7H9mdmi47gQzm1Br+5+Z2djwebtwv8/NbJ6Z3WZmHcJ1vczsaTP70swWm9lrZlZkZvcR/PF7Kmyl+IWZJczMzex0M5sZ1nGOme1hZpPDY/ylVh0/MLOPwm2fN7Ot0tZ5uP/H4b63WGAH4DZgr/DcX4bbH2ZmH5rZcjObbWYXZ/FLLjFiZt2AK4Bz3f0xd1/p7pXu/pS7/zz8Gf+Tmc0JH38ys3bhvqPMbJaZXWRm88MWt9PDdWcBJwO/CH/WngqXV5jZL81sMrDSzFrX0ZLc3sz+Ef48vmtmu6bV62a2XdrrMWZ2lZl1Ap4FtgjPt8LMtqjdTWpmR4bdqF+a2avh70TNugozuzj8nVsa1tA+XFfn73Pzf0dEJEr6pY6XPYFpQC/gWuBuMzPgKWB7MxuYtu13gb+Hz8uBQcBQYDugH/CbcN1FwCygN0FrxKWAu/spwOfAEe7e2d2vrVXHQOAEgpaMXwEHATsCx5vZSAAzOyo83jHh8V8DHqz1OR0O7AHsAhwPHOLuHwHnAP8Jz9093PZu4Gx37wLsBPwrw6+b5L69gPbA4/Ws/xVQQvAzviswArgsbf3mQDeCn/0fAreY2WbufgfwAHBt+LN2RNo+JwGlQHd3X1fHOY8C/gn0IPhde8LM2jT0Sbj7SuBQYE54vs7uPid9GzMbRPB7cgHB780zBP8ktU3b7HhgNLA1we/OaeHyOn+fG6pJRHKPwlm8zHD3O929CrgX6AsUu/sq4EmCPyaEIW0wMDYMb2cBP3P3xe6+nKBb6MTwmJXhcbYKWyJe88ZvqHqlu6929xeAlcCD7j7f3WcTBLDdwu3OAa5x94/CP25XA0PTW8+Acnf/0t0/B14h+ONan0pgiJl1dfcl7v5uI3VK/ugJLKwnJEHQ+nVF+HO4APgdcEra+spwfaW7PwOsALZv5Jw3u/tMd/+qnvUT3f0Rd68E/kgQHksy/YQacAKQcvcXw2NfD3QA9q5V2xx3X0zwz9nQcPnG/D6LSI5ROIuXL2qehIEMoHP48e+E4Yyg1eyJcJveQEdgYtjV8SXwXLgc4DrgE+AFM/vMzJIZ1DEv7flXdbyuqWkr4Ka08y4GjKD1YoPPCViVtm9djgUOA2aY2Tgz2yuDWiU/LAJ6Wf3jv7YAZqS9nhEu+3r/WsGusZ81gJmZrnf3aoIWqy3q3zxj630u4bFnktnvzcb8PotIjlE4yx0vAr3NbChBSKvp0lxIEJh2dPfu4aObu3cGcPfl7n6Ru28DHAlcaGYHhvtu6n/cMwm6IbunPTq4+xsZ7LvBud39HXc/CugDPAE8vIn1Se74D7AGOLqe9XMI/hmosWW4LBP1/Zw39vM/oOZJOK6rf9o5VxH8U1Rj8yYcd73PJWz9HgDMbmS/xn6fRSRPKJzliLD7458E/zn3IAhrNf913wncaGZ9AMysn5kdEj4/3My2C/8ALAWqgOrwsPOAbTahrNuAS8xsx/Bc3czsOxnuOw/oXzPOxszamtnJZtYt/FyXpdUpec7dlxKMk7zFzI42s45m1sbMDjWzawnGaF1mZr3NrFe4babzkG3sz/kwMzsmbM27gCA8vhmumwR818xamdloYGSt8/UML3Koy8NAqZkdGI5huyg8dqP/1DTy+ywieULhLLf8nWBg/j9rdeH8kqCr400zWwa8xDfjbQaGr1cQtE7c6u6vhOuuIfiD9+XGXBnp7o8DfwAeCs87hWAwdCb+BXwAfGFmC8NlpwAV4bHOIRhnJAXC3W8ALiQY6L+AoGX2PIJW1KuACcBk4H3g3XBZJu4mGMv4pZk90YSSniQYH7aE4GfzmPAfB4CfAkcAXxL8nH59XHefShAmPwvPuV5XqLtPA74H/Jmg5fsIggtz1mZQU0O/zyKSJ0xjSUVERETiQy1nIiIiIjGicCYiIiISIwpnIiIiIjGicCYiIiISIwpnIiIiIjGicCYiIiISIwpnIiIiIjGicCYiIiISIwpnIiIiIjGicCYiIiISIwpnIiIiIjGicCYiIiISIwpnIiIiIjGicCYiIiISIwpnIiIiIjGicCYiIiISIwpnIiIiIjGicCYiIiISI62jLkBERCQqEydO7NO6deu7gJ1Qg0WhqAamrFu37oxhw4bNj7qYuiiciYhIwWrduvVdm2+++Q69e/deUlRU5FHXI9lXXV1tCxYsGPLFF1/cBRwZdT110X8JIiJSyHbq3bv3MgWzwlFUVOS9e/deStBaGksKZyIiUsiKFMwKT/g9j20Gim1hIiIiIoVIY85ERERCiWRqWHMer6K8dGJj27Rq1WrYwIEDv6p5fcwxxyy++uqrvxgxYsT2119//cz99ttvVVPO+cYbb3SYOXNm2xNOOGFpXevHjx/f8Z577uk5ZsyYmfUdY+TIkds9+uij/wO46667eiSTyQWZnv/pp5/ucsMNNxS/8sorn9QsO/bYYxOHH3740tNPP33JFVdc0ednP/vZwi5dulSnn6tXr15VHTt23G3VqlX/raioaHPOOecMeO655z6r/fk88MAD3T744IMOV1999ReZ1pRrFM5EREQi1K5du+qpU6d+2FzHmzBhQscJEyZ0qiucVVZWst9++61qLPCNGzfuE4Bp06a1vfvuu/s0JZw15vbbby8+88wzF9eEs5pzpUskEpXPPffcZ7Dh53PyyScvBeoMnvlC3ZoiIiIx99hjj3UdOnTo4CFDhuxw6KGHbrN06dIigHHjxnXcbbfdBm+//fZDdt555x0WLVrU6pprrtniqaee2mzw4MFD7rzzzs0uvPDCLY4++uitd99998HHHHPM1k8//XSX/ffffzuApUuXFh133HGJQYMGDRk0aNCQMWPGdAfo16/fznPnzm190UUX9Z85c2a7wYMHDzn77LP7l5WVJe67777uNXUdeeSRW99///3d6yi5TldddVWf+fPntxk5cuSgPffcc1D6udK3mzZtWtuBAwfuuHr1aqv9+dx88809v//9728JMGfOnNaHHHLItjvttNMOO+200w4vvPBCJ4BUKtV58ODBQwYPHjxkhx12GLJkyZKcyjs5VWwUzGx7M5uU9lhmZheY2XfM7AMzqzaz4Wnb72Nmk81sgpkNDJd1N7MXzExfbxERWc+aNWuKaoJETQBJXz937tzWV199dd/x48dP//DDDz/afffdV1155ZXFq1evtpNPPnnbP/3pT59Pmzbtw3Hjxk3r2rVr1SWXXDLniCOOWDJ16tQPzzzzzCUAH3/8cfvx48dPe+qpp/6XfuxkMtm3a9euVdOnT/9w+vTpH5aWli5PX3/DDTfMGjBgwJqpU6d+ePvtt88644wzFt577709ARYtWtRq4sSJnU844YQvM/1cL7vssvl9+vSpHDdu3PS33npremPbt2/f3uv6fGqcffbZAy688MJ5U6ZM+ejxxx//9JxzzkmEdW9+8803z5g6deqHb7755tTOnTtXZ1pjHKhbsxHuPg0YCmBmrYDZwONAR+AY4PZau1wEHAYkgHPC15cBV7t7Tv1wiIhI9jXWrfnqq692+vTTT9uPGDFiMEBlZaUNGzZsxeTJk9v36dOncuTIkasAevToUe/fmNGjR3/ZuXPnDa5KHT9+fNeHHnros5rXvXv3rmqo1tLS0hU//elPt5ozZ07r+++/f7PS0tIlbdq0WW8bM6vz6tf6lm+K119/vevHH3/coeb1ihUrWi1durSopKRkxcUXXzzg+OOPX3zSSSct2XbbbXPq76/CWdMcCHzq7jNqFphZ7W0qCYJbR6DSzLYFBrj7qy1VpIiI5A93Z999911Wu9Xr7bff7lDfPrV16tSp2cLJCSecsOjOO+/s8eijj/b4v//7v4ra6/v06bNu6dKl6+WLJUuWtO7du/e65qqhhrvz7rvvftSxY8f1gt/VV1/9xdFHH730ySef7Patb31rcCqV+ni33XZb3dznzxaFs6Y5EXiwkW2uAf4GfAWcAlxP0HIWO4lkqgjoAfQGuhEEy1UEtX/9saK8tMH/pETyTSKZak/wO1Hz6AysBL4ElgBLKspLm/0PjUhdRo0atfKiiy7acsqUKe122mmnNcuWLSuqqKhos8suu6yeP39+m3HjxnUcOXLkqiVLlhR17ty5umvXrlUrVqzIaBjNyJEjl91444197rnnnpkACxYsaJXeetatW7eqlStXrnesc845Z+Gee+65Q69evSqHDRu2QeDZaaed1sybN6/Nu+++23733XdfPX369LZTp07tUFJS8hVAp06dqpYuXVrUt2/fjD7/hj6ffffdd9k111zT58orr5wHwZWqe++991cffPBBuxEjRnw1YsSIryZOnNhxypQp7RXO8pCZtSW4zcMlDW3n7pOAknCf/YC5wVP7B0H4ucjd52W32m8kkqk+YT3bEnS1bh1+3ALYjAzGHSaSqUqCoLYcmA68D0wOHx9UlJc26TJvkSglkqlewK5pj34EAaw734SxthkcZzkwC5gJfB5+nAa8VlFeOicbtUv2ZTL1RXOrGXNW8/qAAw5Yeuutt86ueb3FFlusu/322ytOPPHEbdauXWsAl19++exddtllzQMPPPDp+eefv+Xq1auL2rdvXz1+/Pjphx566PLrr7++7+DBg4dcdNFFcxs69zXXXDP39NNP33LgwIE7FhUV+aWXXjrn1FNP/bJm/eabb141bNiwFQMHDtzxgAMOWHr77bfPGjBgwLptt9129RFHHPFlXcfs0KGD/9///d9np59+emLNmjVFrVu39ltuuWVGz549qwBOPfXUhaNHjx5UXFy8NpNxZw19PnfcccfMM844Y8tBgwYNqaqqsj333HP53nvv/fm1117b54033uhqZr799tt/ddxxx+XU1Z3mromRM2FmRwHnuvvBtZa/Clzs7hNqLTfgeYLWtj8DlxKEooPd/VfZqjORTG0OjAJGhh8HZ+tcoWrgU74JbJOAlyrKS1dm+bwijUokU62B3YBvAfsCIwjCWLZ9BoyveVSUl37aAueUjfDee+9V7LrrrgujriOXLF++vGjIkCFDJk2a9FFN4MpF7733Xq9dd901EXUddVHLWeZOovEuzXTfB55x98Vm1pEgxFQTjEVrNolkqi+wP98EskHNefwMFAEDw8cx4bKvEsnU88CjwNiK8tJlLVyTFLBEMtUV+A5wArA30CmCMrYJH6eFNc0GXiMIa69WlJd+FEFNIpvsiSee6PLjH/84cc4558zL5WAWd2o5y4CZdSLottjG3ZeGy8oIWsR6E4xDmeTuh4TrOgIpglaySjP7FnArsBb4bngF6EZLJFOtgCOAs4BDiPeUKGuBl4BHgCcryksXR1yP5KFw/ORBwKlAGZDxQOmITAbGAPdXlJc22+Se0nRqOStccW45UzjLIYlkakvgDOCHBGPGcs064BXgfuDBivLSyojrkVrMbHvgH2mL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swuB37l7FzMbStDd+RVwCnA98Gt3/7il6pTohFPU7AeMBEYRzKHWrqnHuXDUDq8N6N7pWxls+hXB7dneCB//KSspbrY5DEUk/ymcFYDH35xXTNCaVvuxFdABaAO0DT+mT17rBDOSzwO+qPVxJjAZmBpVt0wdczYNJpgTqydBy9357t6z1j6as6nAJZIpIxivuBWwZfgx/bElaUMFapz/rcHjt+7Z+VvAKmA5wb0tK9Ie/ws/flxWUlyZ1U9CRPKawpms5/E357Xmm7C2Kq5/ZDKYs2kQcL+7j0hbpjmbJCOJZKoTwbCPmjdIHz14i3WHDN5idVlJsd40RSSrNOZM1hO2gq0j6JqJpQbmbOrj7vPNrIjgVjO31dr16zmbwmkCNGeT1KmivHRl1DWISOFSy5nknAbmbBoInBu+fgy4xMMfcM3ZJCIiuULhTERERCRGdPsmERERkRhROBMRERGJEYUzERERkRhROBMRERGJEYUzERERkRhROBMRERGJEYUzERERkRhROBMRERGJEYUzERERkRhROBMRERGJEYUzERERkRhROBMRERGJEYUzERERkRhROBMRERGJEYUzERERkRhROBMRERGJEYUzERERkRhROBMRERGJEYUzERERkRhROBMRERGJEYUzERERkRhROBMRERGJEYUzERERkRhROBMRERGJEYUzERERkRhROBMRERGJEYUzERERkRhROBMRERGJEYUzERERkRhROBMRERGJEYUzERERkRhROBMRERGJEYUzERERkRhROBMRERGJEYUzERERkRhROBMRERGJEYUzERERkRhROBMRERGJEYUzERERkRhROBMRERGJEYUzERERkRhROBMRERGJEYUzERERkRhROBMRERGJEYUzERERkRhROBMRERGJEYUzkRxkZivSHtVm9lXa65Ojrm9jmFmFmR0UdR2y6fS9FNk0raMuQESazt071zw3swrgDHd/KbqKGmZmrd19Xa6foyniVg/Es6bacqFGkWxTy5lIHjGzIjNLmtmnZrbIzB42sx7huoSZuZmdbmYzzWyJmZ1jZnuY2WQz+9LM/pJ2rNPM7HUz+4uZLTWzqWZ2YNr6bmZ2t5nNNbPZZnaVmbWqte+NZrYI+K2ZbWtm/wrrWmhmD5hZ93D7+4AtgafC1r9fmNkoM5tV6/P7ukXGzH5rZo+Y2f1mtgw4raGa6vhajTCzCWa2zMzmmdkf09bta2ZvhF+TmWZ2Wtrn/DczW2BmM8zsMjMrauBzbmdm15vZ5+E5bjOzDuH2vczs6fAci83stZpj1VGrm9n5ZvZZ+LW7Ln1bM/uBmX0Ufk+fN7Otau17rpl9DHxcx7Hbh1/DRWEt75hZcWPf43D9meF5l5vZh2a2e13fy3DbI83sg/Acr5rZDrW+r780s8nASjNTw4EUNnfXQw89cvgBVAAHhc9/CrwJ9AfaAbcDD4brEoADtwHtgYOB1cATQB+gHzAfGBlufxqwDvgZ0AY4AVgK9AjXPx4ev1O4/9vA2bX2/QlBC30HYDvg22FdvYHxwJ/q+jzC16OAWQ18rr8FKoGjCf7R7NBQTXV83f4DnBI+7wyUhM+3ApYDJ4Wfd09gaLjub8CTQJfw6zkd+GEDn/ONwFigR7jPU8A14fbXhN+LNuHjW4DVU6sDr4TH2TI87xnhuqOAT4AdwvNeBrxRa98Xw3071HHss8O6OgKtgGFA1wy+x98BZgN7ABZ+f7eq53s5CFgZfv/bAL8Ia26btv0kYEBdNeqhR6E9Ii9ADz302LRHrcDyEXBg2rq+YYBpzTfhrF/a+kXACWmvHwUuCJ+fBsxJDwzhH+dTgGJgTfof0jDMvJK27+eN1H008N+6Po/w9SgaD2fj09Y1WFMd5x8P/A7oVWv5JcDjdWzfClgLDElbdjbwal2fcxhYVgLbpi3bC/hf+PwKgqC3XQbfYwdGp73+MfBy+PxZwoAYvi4CVqUFJQcOaODYPwDeAHaptbyx7/HzwE8b+5kMX/8aeLhWjbOBUWnb/yDq3yU99IjLQ03HIvllK+BxM6tOW1ZF8Ie2xry051/V8bpz2uvZ7u5pr2cAW4TnaQPMNbOadUXAzLRt058TdpXdRNBC1CXcfklGn1X90s+RSU3pfkgQkKaa2f+A37n70wStN5/WsX2v8Pgz0pbNIGhxrKue3gStURPT6jGCkAdwHUHAfCFcf4e7l9dTa+1j13wfIPi8bzKzG9LWW1jXjDr2re0+gs/5obCb+X7gVzT+9azv61SXLdJqwd2rzWwm9X/tRAqaxpyJ5JeZwKHu3j3t0d7dZ2/k8fpZ2l9mgi61OeF51hC0OtWcp6u775i2bXqoA7g6XLazu3cFvkcQIurbfiVBuAEgHOvUu9Y26ftkUtM3O7p/7O4nEXTX/QF4xMw6hcfZto5dFhK0Qm6VtmxLghaguupZSBB2d0yrp5uHF3O4+3J3v8jdtwGOBC5MH9NXhwG1zjsn7fM+u9b3vIO7v1FPXetx90p3/527DwH2Bg4Hvk/jX8/6vk51nW8OaV+38GdqAPV/7UQKmsKZSH65Dfh9zYBwM+ttZkdtwvH6AOebWRsz+w7BuKZn3H0u8AJwg5l1teBChG3NbGQDx+oCrACWmlk/4Oe11s8Dtkl7PR1ob2alZtaGYCxVu/oO3tSazOx7Ztbb3auBL8PF1cADwEFmdryZtTaznmY21N2rgIcJvr5dwq/xhQQtTXXVUw3cCdxoZn3Cc/Yzs0PC54eb2XZhUFlK0MJZXdexQj83s83MbADB2MJ/hMtvAy4xsx3D43YLv1cZMbP9zWznMPwuIwig1Rl8Pe8CLjazYRbYLu1ChNrfy4eBUjM7MPxeXkQQ/NIDpIiEFM5E8stNBAPQXzCz5QQXB+y5Ccd7CxhI0Ar0e+A4d18Urvs+0Bb4kKB78hGCMW71+R2wO0EQSQGP1Vp/DXBZeDXfxe6+lGBs1V0ELSwrgVk0rCk1jQY+MLMVBF+3E939K3f/HDiMIEAsJhiovmu4z0/COj4D/g38HbingXp+STDw/U0Lrih9Cdg+XDcwfL2C4OKEW939lQaO9SQwMawnBdwN4O6PE7T8PRSeYwpwaAPHqW1zgq/TMoIxi+MIujqhga+nu/+T4Gfi7wQXUDxBcNEBbPi9nEbQUvpngp+lI4Aj3H1tE+oUKRi2/nASEZGABdNHnOHu+0ZdS6EzMwcGuvsnUdciItmnljMRERGRGFE4ExEREYkRdWuKiIiIxIhazkRERERiJK8moe3Vq5cnEomoyxARERFp1MSJExe6e+35G/MrnCUSCSZMmBB1GSIiIiKNMrMZdS1Xt6aIiIhIjGQtnJnZADN7xcw+NLMPzOyndWxjZnazmX1iZpPNbPe0daea2cfh49Rs1SkiIiISJ9ns1lwHXOTu75pZF4Kb/77o7h+mbXMowSzZAwlmMf8rsKeZ9QAuB4YT3G9topmNdfdNvUmyiIiISKxlreXM3ee6+7vh8+UEtwXpV2uzo4C/eeBNoLuZ9QUOAV5098VhIHuR4FYrIiIiInmtRcacmVkC2I3gPn3p+gEz017PCpfVt1xEREQkr2U9nJlZZ+BR4AJ3X5aF459lZhPMbMKCBQua+/AiIiIiLSqr4czM2hAEswfc/bE6NpkNDEh73T9cVt/yDbj7He4+3N2H9+69wVQhIiIiIjklaxcEmJkBdwMfufsf69lsLHCemT1EcEHAUnefa2bPA1eb2WbhdgcDl2Sr1qZIJFNRlyBS0CrKS6MuQUQkq7J5teY+wCnA+2Y2KVx2KbAlgLvfBjwDHAZ8AqwCTg/XLTazK4F3wv2ucPfFWaxVREREJBayFs7c/d+ANbKNA+fWs+4e4J4slCYiIiISW7pDgIiIiEiMKJyJiIiIxIjCmYiIiEiMKJyJiIiIxIjCmYiIiEiMKJyJiIiIxIjCmYiIiEiMKJyJiIiIxIjCmYiIiEiMKJyJiIiIxIjCmYiIiEiMKJyJiIiIxIjCmYiIiEiMKJyJiIiIxEjrbB3YzO4BDgfmu/tOdaz/OXByWh07AL3dfbGZVQDLgSpgnbsPz1adIiIiInGSzZazMcDo+la6+3XuPtTdhwKXAOPcfXHaJvuH6xXMREREpGBkLZy5+3hgcaMbBk4CHsxWLSIiIiK5IvIxZ2bWkaCF7dG0xQ68YGYTzeysRvY/y8wmmNmEBQsWZLNUERERkayLPJwBRwCv1+rS3NfddwcOBc41s/3q29nd73D34e4+vHfv3tmuVURERCSr4hDOTqRWl6a7zw4/zgceB0ZEUJeIiIhIi4s0nJlZN2Ak8GTask5m1qXmOXAwMCWaCkVERERaVjan0ngQGAX0MrNZwOVAGwB3vy3crAx4wd1Xpu1aDDxuZjX1/d3dn8tWnSIiIiJxkrVw5u4nZbDNGIIpN9KXfQbsmp2qREREROItDmPORERERCSkcCYiIiISIwpnIiIiIjGicCYiIiISIwpnIiIiIjGicCYiIiISIwpnIiIiIjGicCYiIiISIwpnIiIiIjGicCYiIiISI1m7fZOIiGycRDIVdQkiBa2ivDTS86vlTERERCRGFM5EREREYiSjcGZmHcxs+6Yc2MzuMbP5ZjalnvWjzGypmU0KH79JWzfazKaZ2SdmlmzKeUVERERyWaPhzMyOACYBz4Wvh5rZ2AyOPQYY3cg2r7n70PBxRXj8VsAtwKHAEOAkMxuSwflEREREcl4mFwT8FhgBvArg7pPMbOvGdnL38WaW2IiaRgCfuPtnAGb2EHAU8GFjO06bNo1Ro0att+z444/nxz/+MatWreKwww7bYJ/TTjuN0047jYULF3LcccdtsP5HP/oRJ5xwAjNnzuSUU07hi88Wrbe+64gyOm63J5WLZrHo+b9ssH+3vU+kQ2Ioa+d9xuKX79hgfff9TqV9/x1YPesjvhx/7wbrexx4Fm2Lt+GrikksfeOhDdb3POQ82vTsz6pP3mLZ249vsL7X4RfRumtvVn40nuX/fWaD9b2PvoRWHbux4v2XWPH+Sxus7/Od31LUpj3L302xcuprG6zf/LvlACx96zG++vTt9dZZ63YUH/87AL58/UFWz3hvvfWtOnSld9mlACwZN4Y1s6eut751l170OuJiABa/dAdr53+23vo2PfrRc/RPAFj03J+pXDx7vfVt+2xDj4POAmDhU9ezbvnC9da36zeYzUaeBsCCx6+m6qtl661vv9WudN/nJADmPXw5vm7Neus7bDuCbnseA8AXf9+wgbfT4G/RZfdSqitXM/+fv91gfeedD6LzzgdRtWopC564ZoP1XXY7jE477Me6ZQtY+PQNG6wv1J+9UW9eB8Crr74KwPXXX8/TTz+93r4dOnTg2WefBeDKK6/k5ZdfXr/2nj159NFHAbjkkkv4z3/+s976/v37c//99wNwwQUXMGnSpPXWDxo0iDvuCL6mZ511FtOnT19v/dChQ/nTn/4EwPe+9z1mzZq13vq99tqLa64JvufHHnssixat/77yZVV//ezF8Gevht738v9n76WXXuKqq67aYP3tt9/O9ttvz1NPPcUNN2xY33333ceAAQP4xz/+wV//+tcN1j/yyCP06tWLMWPGMGbMmA3W18ikW7PS3ZfWWuYZ7JeJvczsPTN71sx2DJf1A2ambTMrXFYnMzvLzCaY2YTKyspmKktEREQkGubecM4ys7uBl4EkcCxwPtDG3c9p9OBBy9nT7r5THeu6AtXuvsLMDgNucveBZnYcMNrdzwi3OwXY093Pa+x8w4cP9wkTJjS22SbRJe4i0Yr6EveWoPcZkWi11PuMmU109+G1l2fScvYTYEdgDfB3YClwwaYW5O7L3H1F+PwZoI2Z9QJmAwPSNu0fLhMRERHJew2OOQsH56fcfX/gV815YjPbHJjn7m5mIwiC4iLgS2BgOK5tNnAi8N3mPLeIiIhIXDUYzty9ysyqzaxbHePOGmRmDwKjgF5mNgu4HGgTHvc24DjgR2a2DvgKONGDPtZ1ZnYe8DzQCrjH3T9o4uclIiIikpMyuVpzBfC+mb0IrKxZ6O7nN7STu5/UyPq/ABteasHX3ZwbXmIjIiIikucyCWePhQ8RERERybJGw5m732tmbYFB4aJp7q45K0RERESyoNFwZmajgHuBCsCAAWZ2qruPz2plIiIiIgUok27NG4CD3X0agJkNAh4EhmWzMBEREZFClMk8Z21qghmAu08nvOpSRERERJpXJi1nE8zsLuD+8PXJQHan4RcREREpUJmEsx8B5xLctgngNeDWrFUkIiIiUsAyCWetCe57+Uf4+q4B7bJalYiIiEiBymTM2ctAh7TXHYCXslOOiIiISGHLJJy1r7lBOUD4vGP2ShIREREpXJmEs5VmtnvNCzMbRnAvTBERERFpZpmMObsA+KeZzSGYhHZz4IRsFiUiIiJSqDK5fdM7ZjYY2D5cpNs3iYiIiGRJo92aZvYdgnFnU4CjgX+kd3M2sN89ZjbfzKbUs/5kM5tsZu+b2Rtmtmvauopw+SQz05xqIiIiUjAyGXP2a3dfbmb7AgcCdwN/zWC/McDoBtb/Dxjp7jsDVwJ31Fq/v7sPdffhGZxLREREJC9kEs6qwo+lwJ3ungLaNrZTeGP0xQ2sf8Pdl4Qv3wT6Z1CLiIiISF7LJJzNNrPbCS4CeMbM2mW4X1P8EHg27bUDL5jZRDM7q5nPJSIiIhJbmVyteTxB9+T17v6lmfUFft5cBZjZ/gThbN+0xfu6+2wz6wO8aGZTw5a4uvY/CzgLYMstt2yuskREREQi0WgLmLuvcvfH3P3j8PVcd3+hOU5uZrsAdwFHufuitHPODj/OBx4HRjRQ3x3uPtzdh/fu3bs5yhIRERGJTHN3T2bMzLYEHgNOcffpacs7mVmXmufAwUCdV3yKiIiI5JtMujU3ipk9CIwCepnZLOByoA2Au98G/AboCdxqZgDrwiszi4HHw2Wtgb+7+3PZqlNEREQkTjIKZ2a2FTDQ3V8ysw5Aa3df3tA+7n5SI+vPAM6oY/lnwK4b7iEiIiKS/zKZhPZM4BHg9nBRf+CJLNYkIiIiUrAyGXN2LrAPsAwgvDCgTzaLEhERESlUmYSzNe6+tuaFmbUmmIdMRERERJpZJuFsnJldCnQws28D/wSeym5ZIiIiIoUpk3D2S2AB8D5wNvAMcFk2ixIREREpVA1erWlmrYAP3H0wcGfLlCQiIiJSuBpsOXP3KmBaOGGsiIiIiGRZJvOcbQZ8YGZvAytrFrr7kVmrSkRERKRAZRLOfp31KkREREQEyCCcufu4lihERERERDIIZ2a2nG/mNWtLcH/Mle7eNZuFiYiIiBSiTFrOutQ8t+Bu5EcBJdksSkRERKRQZTLP2dc88ARwSHbKERERESlsmXRrHpP2sggYDqzOWkUiIiIiBSyTlrMj0h6HAMsJujYbZWb3mNl8M5tSz3ozs5vN7BMzm2xmu6etO9XMPg4fp2ZyPhEREZFcl8lUGne5++vpC8xsH2B+BvuOAf4C/K2e9YcCA8PHnsBfgT3NrAdwOUErnQMTzWysuy/J4JwiIiIiOSuTlrM/Z7hsA+4+HljcwCZHAX8Lx7K9CXQ3s74ELXQvuvviMJC9CIzO5JwiIiIiuazeljMz2wvYG+htZhemreoKtGqm8/cDZqa9nhUuq295XXWeBZwFsOWWusuUiIiI5LaGWs7aAp0JAlyXtMcy4Ljsl5YZd7/D3Ye7+/DevXtHXY6IiIjIJqm35Sy8M8A4Mxvj7jOydP7ZwIC01/3DZbOBUbWWv5qlGkRERERiI5MxZ6vM7Doze8bM/lXzaKbzjwW+H161WQIsdfe5wPPAwWa2mZltBhwcLhMRERHJa5lcrfkA8A/gcOAc4FRgQSYHN7MHCVrAepnZLIIrMNsAuPttwDPAYcAnwCrg9HDdYjO7EngnPNQV7t7QhQUiIiIieSGTcNbT3e82s5+mdXW+0+hegLuf1Mh6B86tZ909wD2ZnEdEREQkX2QSzirDj3PNrBSYA/TIXkkiIiIihSuTcHaVmXUDLiKY36wr8LOsViUiIiJSoBoMZ2bWChjo7k8DS4H9W6QqERERkQLV4NWa7l4FNDhuTERERESaTybdmq+b2V8IrthcWbPQ3d/NWlUiIiIiBSqTcDY0/HhF2jIHDmj2akREREQKXKPhzN01zkxERESkhTR6hwAzKzazu83s2fD1EDP7YfZLExERESk8mdy+aQzBrZO2CF9PBy7IUj0iIiIiBS2TcNbL3R8GqgHcfR1QldWqRERERApUJuFspZn1JLgIgJoblGe1KhEREZEClcnVmhcCY4Ftzex1oDdwXFarEhERESlQmVyt+a6ZjQS2BwyY5u6VjewmIiIiIhuh0XBmZu2BHwP7EnRtvmZmt7n76gz2HQ3cBLQC7nL38lrrb+SbW0J1BPq4e/dwXRXwfrjuc3c/MqPPSERERCSHZdKt+TdgOcFNzwG+C9wHfKehncL7ct4CfBuYBbxjZmPd/cOabdz9Z2nb/wTYLe0QX7n70AzqExEREckbmYSzndx9SNrrV8zsw3q3/sYI4BN3/wzAzB4CjgLq2/ck4PIMjisiIiKStzK5WvPd8ApNAMxsT2BCBvv1A2amvZ4VLtuAmW0FbA38K21xezObYGZvmtnR9Z3EzM4Kt5uwYMGCDMoSERERia9MWs6GAW+Y2efh6y2BaWb2PuDuvksz1HEi8Ii7p8+ftpW7zzazbYB/mdn77v5p7R3d/Q7gDoDhw4d7M9QiIiIiEplMwtnojTz2bGBA2uv+4bK6nAicm77A3WeHHz8zs1cJxqNtEM5ERERE8kmj3ZruPgNYBnQDetY83H1GuK4+7wADzWxrM2tLEMDG1t7IzAYDmwH/SVu2mZm1C5/3Avah/rFqIiIiInkjk6k0rgROI2i1quk2dOCAhvZz93Vmdh7BfTlbAfe4+wdmdgUwwd1rgtqJwEPunt4luQNwu5lVEwTI8vSrPEVERETyVSbdmscD27r72qYe3N2fAZ6ptew3tV7/to793gB2bur5RERERHJdJldrTgG6Z7kOERERESGzlrNrgP+a2RRgTc1CzdgvIiIi0vwyCWf3An8guJVSdXbLERERESlsmYSzVe5+c9YrEREREZGMwtlrZnYNwTQY6d2a72atKhEREZEClUk4q7kZeUnaskan0hARERGRpms0nLn7/i1RiIiIiIhkMJWGmRWb2d1m9mz4eoiZ/TD7pYmIiIgUnkzmORtDMMv/FuHr6cAFWapHREREpKDVG87MrKbLs5e7P0w4jYa7rwOqWqA2ERERkYLTUMvZ2+HHlWbWk/C+mmZWAizNdmEiIiIihaihCwIs/HghwTQa25rZ60Bv4LhsFyYiIiJSiBoKZ73N7MLw+eMENzA3grnODgImZ7k2ERERkYLTUDhrBXTmmxa0Gh2zV46IiIhIYWsonM119ys25eBmNhq4iSDo3eXu5bXWnwZcB8wOF/3F3e8K150KXBYuv8rd792UWkRERERyQSZjzjaKmbUCbgG+DcwC3jGzse7+Ya1N/+Hu59XatwdwOTCc4EKEieG+SzalJhEREZG4a+hqzQM38dgjgE/c/TN3Xws8BByV4b6HAC+6++IwkL0IjN7EekRERERir95w5u6LN/HY/YCZaa9nhctqO9bMJpvZI2Y2oIn7YmZnmdkEM5uwYMGCTSxZREREJFqZ3CEgm54CEu6+C0HrWJPHlbn7He4+3N2H9+7du9kLFBEREWlJ2Qxns4EBaa/7883AfwDcfZG7rwlf3gUMy3RfERERkXyUzXD2DjDQzLY2s7bAiQST2X7NzPqmvTwS+Ch8/jxwsJltZmabAQeHy0RERETyWkNXa24Sd19nZucRhKpWwD3u/oGZXQFMcPexwPlmdiSwDlgMnBbuu9jMriQIeABXNMMYOBEREZHYy1o4A3D3ZwjuLJC+7Ddpzy8BLqln33uAe7JZn4iIiEjcRH1BgIiIiIikUTgTERERiRGFMxEREZEYUTgTERERiRGFMxEREZEYUTgTERERiRGFMxEREZEYUTgTERERiRGFMxEREZEYUTgTERERiRGFMxEREZEYUTgTERERiRGFMxEREZEYyWo4M7PRZjbNzD4xs2Qd6y80sw/NbLKZvWxmW6WtqzKzSeFjbDbrFBEREYmL1tk6sJm1Am4Bvg3MAt4xs7Hu/mHaZv8Fhrv7KjP7EXAtcEK47it3H5qt+kRERETiKJstZyOAT9z9M3dfCzwEHJW+gbu/4u6rwpdvAv2zWI+IiIhI7GUznPUDZqa9nhUuq88PgWfTXrc3swlm9qaZHV3fTmZ2VrjdhAULFmxSwSIiIiJRy1q3ZlOY2feA4cDItMVbuftsM9sG+JeZve/un9be193vAO4AGD58uLdIwSIiIiJZks2Ws9nAgLTX/cNl6zGzg4BfAUe6+5qa5e4+O/z4GfAqsFsWaxURERGJhWyGs3eAgWa2tZm1BU4E1rvq0sx2A24nCGbz05ZvZmbtwue9gH2A9AsJRERERPJS1ro13X2dmZ0HPA+0Au5x9w/M7ApggruPBa4DOgP/NDOAz939SGAH4HYzqyYIkOW1rvIUERERyUtZHXPm7s8Az9Ra9pu05wfVs98bwM7ZrE1EREQkjnSHABEREZEYUTgTERERiRGFMxEREZEYUTgTERERiRGFMxEREZEYUTgTERERiRGFMxEREZEYUTgTERERiRGFMxEREZEYUTgTERERiRGFMxEREZEYUTgTERERiRGFMxEREZEYyWo4M7PRZjbNzD4xs2Qd69uZ2T/C9W+ZWSJt3SXh8mlmdkg26xQRERGJi6yFMzNrBdwCHAoMAU4ysyG1NvshsMTdtwNuBP4Q7jsEOBHYERgN3BoeT0RERCSvZbPlbATwibt/5u5rgYeAo2ptcxRwb/j8EeBAM7Nw+UPuvsbd/wd8Eh5PREREJK+1zuKx+wEz017PAvasbxt3X2dmS4Ge4fI3a+3br66TmNlZwFnhyxVmNm3TS5c81wtYGHURsnHsD1FXINIovcfkuBZ8n9mqroXZDGctwt3vAO6Iug7JHWY2wd2HR12HiOQnvcfIpspmt+ZsYEDa6/7hsjq3MbPWQDdgUYb7ioiIiOSdbIazd4CBZra1mbUlGOA/ttY2Y4FTw+fHAf9ydw+Xnxhezbk1MBB4O4u1ioiIiMRC1ro1wzFk5wHPA62Ae9z9AzO7Apjg7mOBu4H7zOwTYDFBgCPc7mHgQ2AdcK67V2WrVik46gYXkWzSe4xsEgsaqkREREQkDnSHABEREZEYUTgTERERiRGFMxEREZEYUTgTERFpgnAGApGsUTiTvBHe+gsz08+1iGSFme0M/NDM6rxrjUhz0B8xyQtmZu7uZnYk8Ff9ZysiWbIFcBBwmJltEXUxkp9y/vZNIgBhMDsM+B3wc3dfWxPYoq5NRHJfzfuJuz9vZg58H2hlZmPdfU7U9Ul+UcuZ5IWwS3N/4FJgStiCdr+ZHRzeacKirVBEclXtf/Tc/QXgZmA/4Ei1oElz0yS0krNqv2Ga2SXACKAnwZ0ptiJoHT7H3ddGU6WI5AszOwcYAqwC7gR6AecBrwHPuPusCMuTPKJuTclJaWPMRhO8WTpwLbAvMMfdPzaz7YExQF9gRmTFikjOM7NzgTLgEuBGoJW7/9zMOgEXAOvM7F7dalCag8KZ5KQwmB0MXAOcDTwL9HT3ywDCbs1rgEvcXcFMRDZVT+BI4AxgOfArM2vn7v8ys6+AGQpm0lwUziRnmFkx0MHdK8IxZEcBpwGbA9OA29M27wf81N1f0oUBItIU9bxnbA5MAD5y90PD7c4xs1Xu/rcWL1LymsKZ5AQza0fwX+s4M2vv7qvNbBFBq9n2wGnuPtPMvgesdve/1uyrYCYimUoPZmZWBqwBFgDlwM4EAQ0zOx34KcE/iSLNShcESM4Ix3Z0IJgu4w8Eoewp4Ah3f9HMhgP3Aue5+yvRVSoiuc7MLgSOIHiPOR64CpgP3AL8DxgA/NDdP4ysSMlbCmcSa2bWARjg7tPNbCuCwf/7EYS0ywla034OvAvsCFzp7mOjqldEclPaRUZGMNHsze5+rJldAQwFjgrXtyJ4/2nt7l9GV7HkM4UzibXwVimHA5sBuwMnEVx9eSzQA7gM6EzwZtnG3T/SGDMRaQoz6+Luy8PnfYGFwEPAHIIpeY4Ph1KcBLzl7p9FV60UAk1CK7FkZtuY2f4EA/0HAOcC/3b3Be4+GXiS4A30eqC7u3/i7h+BxpiJSObMrBtwupmdbmZnAfe4eyXwGTAa+EkYzH4A/JJgjjORrNIFARJXWwFfAeuA24CVQA8zO9HdH3L3d8Muz1EEc5yJiDSJmZUCJcBjwEvAaoIWeoAHgLXAk2b2AnAocKK7fxFFrVJY1HImsWJm25nZzuGA/unAB8A27v5zYArwbTMbbWaDgYHAnRqQKyJNZWaHA1cDk4H3gT8DywiGTuDuk9z9V8AvgBcJxpx9EFG5UmDUciZxcwBwm5nt7u6TzOxy4HIzq3L3O8ysGjgL+BbwXXefH2m1IpJzzGxz4CLgDHd/J1z8WzN7Gng4fL/5s5kdB0x19ymRFSsFSeFMYsHMEsDyMIC1Bv5lZge6+8Nmtha42syq3f0uM0sBfdz9vUiLFpFctQaoBFaHwyN+CewPzANmEcz+vzPBmLNvR1alFCyFM4mL44FXzWypu99qZm2Al8OA9oSZOfAXM+vm7n8H5kZbrojksC+B5wkuKNqRYLzZfcBHBFeHPwDMBq5294poSpRCpnAmseDu15pZL+AdMyt195uC6YZ42cwOcPcnzayI4ApNEZGNFs5XdjvwBsHV4E+6+xoAMzsTeNfdn46yRilsmudMImNmnYG+7v6xme0FvAXcCuwEHOfuX5jZecCNwJ7u/m64n+YxE5FmZ2bfAZIE85p9GnU9UrjUciaRCGfh7gbcamYTCe5Pd6y7n2Nmfya4fP0od/9L2MXZs2ZfBTMRaU7hxLMnAGcCJyiYSdTUciYtLrxSan93f9DMzgZuJrjt0lVp29wMHAgc5O5zw2VqMRORZhdeFHAAMM3dP4m6HhGFM2lx4fxCZwMPA4uA3gS3YbrU3f+Ztt3vgWfd/d+RFCoiIhIBdWtKi3P3p8OuyqOAV9z9XjP7AvirmS0juCvAdwnmINJ/DyIiUlAUzqRFmFk/YCt3fwPA3R8Pr748xswIA9oFwCUEP5c3KZiJiEghUjiTrAsH/x8InGlmv3L38QDu/mg44/93zWy6u481s3fCdXM1xkxERAqRxpxJizCznkAZcDRwnbuPS1t3KbAncIy7V0VToYiISDyo5UxahLsvMrPHgCLg4rArsyagvQFsDlRHVqCIiEhMKJxJi3H3xWb2CEEIu9zM7gbmADcAv1EXpoiIiLo1JcvMbAtgGbCyJnyZWVvgEOAnBPevezS8glNjzEREpOApnEnWhLNuXw/83N3nmFmRu1enrW8DVLl7tYKZiIhIoCjqAiR/hTP7rwWuDF9X11pfWbNMwUxERCSgcCbNJpy3DDPb3MwGhouTwAozKw7XWVT1iYiI5AJdECCbzMw6Auvcfa2ZDSMYS1ZtZp8DtwI7AAcD96mFTEREpGEacyabzMwOAL4DvEgQwv4P+AK4BXgNOAlYDZzg7jOiqlNERCQXqFtTNpqZ9QsH+f8L2Aq4H3jC3d8KQ9iRwD+Bu4FVQP/oqhUREckNCmeyKX4B7BSONXsTeBY4z8y6QXABgLt/5u5/Bh4CLjQzdaWLiIg0QOFMNpq7/5RgDrN7gXJ3PxaYSdBahpltY2YnhJsvALoCraKoVUREJFconEmT1VxxaWad3b2CoLvy/rAF7VzgczObDIwlCGUQjDn7qbuviaBkERGRnKELAqRJaiaLNbNS4FDgF+6+ysyeBr4Cjg/XHwvMdPe30/eLsHQREZGcoHAmTWZm+wJ3AGe6++tpy58A2gOHpt2qSaFMRESkCdStKY0yswFmtnfaolHAg+7+upm1Cm/DhLsfDVQCu9dsqGAmIiLSNLpyThoUjiPbFZhpZl3dfRmwENi6ZhN3rzSzEmCeux8RVa0iIiL5QC1n0qBwOoyngU+Av5vZt4EXgEPM7BhgczPbnWDi2R4RlioiIpIXNOZM6pU2+P9AYABBmC8DfgW0BS4nmFy2H3Ctu4+NrFgREZE8oW5NqVcYzHYHrgDOAT4GHPgD8Ct3P8LMNgO6uXuFBv+LiIhsOoUzWU96wDKzbQhC2Qx3fz9c9iRQDfzRzK5z9xSwBDT4X0REpDlozJl8zczaA3uFz7cDhgJzgd5mdhiAuy8Gnia4K8C8aCoVERHJXxpzJl8zs37AEcC3gZ2BvYEq4MdAN+BFd38x3La1u6+LqlYREZF8pZYz+Zq7zyaYp6wMeMvdF7r7EuA+YDFwRFoLmoKZiIhIFiicSfq9MncguGn5KcA0Mys3s83d/XPgGWAR8Gl0lYqIiOQ/dWsKAGY2muCWTEe6+yQzGwkcTnDD8ncJZv2/LWxdExERkSxRy5lgZlsC5cDJ7j4JwN3HAU+Fm1wHvKNgJiIikn1qOStgaZPMbgXc4O7Hhcvbu/tqM2sT3pppc3f/QvOYiYiIZJ9azgpQzRgzoFP4cQ6whZldBBAGs28DN4b31pwXLlcwExERyTJNQltg0lrLDgF+bGbvALOA84HfhRPPvgJcBlzu7tURlisiIlJw1K1ZgMzsW8CtwBnAeUA74HSgN3Ap8AXwH3d/Vl2ZIiIiLUvhrACEk8v2Bia7e7WZfYfglksrgT8Dx7r7DDPr7e4L0vZTMBMREWlhGnNWGI4GbgZ2C1+vAsYAfwUODoPZIcBPzKxmHJrGmImIiERA4SyPmdk2Znaiu98CvAD81syGA+OAR4D3wu2+BdwAvO3uKyMrWERERBTO8pWZbQ88VvPa3a8CXgcuBwYT3Li8AniOYPD/pe7+dNqVnCIiIhIBjTnLQ2Y2hGDA/33ufreZtQF2dvd3zexyYFfg9+4+0cw6A7j7Co0xExERiZ5azvJMGMTGAsvDYNaKoHVsJIC7/47gdkzXmdke7r7C3VeE6xTMREREIqZ5zvJMOKP/SUDKzM4F9gYmufuNadtcZWarIytSRERE6qVuzTwVDvx/EZjq7nulLS8Bhrr7bZEVJyIiIvVSt2aecvcJwChgsJmdCWBmewN3Ap9EWJqIiIg0QC1neS5sQXsG+CewM/AHd09FW5WIiIjUR+GsAJjZHsC/gFPc/YmIyxEREZEGKJwVCDPrrOkyRERE4k9jzgqHZv4XERHJAWo5ExEREYkRtZyJiIiIxIjCmYiIiEiMKJyJiIiIxIjCmYiIiEiMKJyJiIiIxMj/Aw811XK7V28zAAAAAElFTkSuQmCC\n", - "text/plain": [ - "
    " - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "plot_grouped_statistics(aggregated_portfolio, company_contributions, analysis_parameters)" ] @@ -1241,187 +524,9 @@ }, { "cell_type": "code", - "execution_count": 21, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
    \n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
    company_namecompany_idsectorcontributiontemperature_scoreownership_percentageportfolio_percentage
    4NIPPON STEEL CORPJP3381000003Steel3.3870401057008093 percent1.81 delta_degree_Celsius26.743.48
    8UNITED STATES STEEL CORPUS9129091081Steel2.973857467344226 percent1.54 delta_degree_Celsius0.013.59
    10POSCOKR7005490008Steel2.7351925482594566 percent1.83 delta_degree_Celsius0.002.78
    11TERNIUM S.A.US8808901081Steel2.6825715373130827 percent1.71 delta_degree_CelsiusNaN2.91
    16WORTHINGTON INDUSTRIES INCUS9818111026Steel2.4097283052012206 percent1.28 delta_degree_Celsius0.013.50
    19TIMKENSTEEL CORPUS8873991033Steel2.155217880316027 percent1.45 delta_degree_Celsius0.062.76
    27COMMERCIAL METALS COUS2017231034Steel1.7124423388973957 percent1.45 delta_degree_Celsius0.012.19
    30NUCOR CORPUS6703461052Steel1.572935428254485 percent1.54 delta_degree_Celsius0.001.90
    31CARPENTER TECHNOLOGY CORPUS1442851036Steel1.517749452365582 percent1.63 delta_degree_Celsius0.011.73
    36TENARIS SAUS88031M1099Steel1.087150770482239 percent1.58 delta_degree_CelsiusNaN1.28
    \n", - "
    " - ], - "text/plain": [ - " company_name company_id sector \\\n", - "4 NIPPON STEEL CORP JP3381000003 Steel \n", - "8 UNITED STATES STEEL CORP US9129091081 Steel \n", - "10 POSCO KR7005490008 Steel \n", - "11 TERNIUM S.A. US8808901081 Steel \n", - "16 WORTHINGTON INDUSTRIES INC US9818111026 Steel \n", - "19 TIMKENSTEEL CORP US8873991033 Steel \n", - "27 COMMERCIAL METALS CO US2017231034 Steel \n", - "30 NUCOR CORP US6703461052 Steel \n", - "31 CARPENTER TECHNOLOGY CORP US1442851036 Steel \n", - "36 TENARIS SA US88031M1099 Steel \n", - "\n", - " contribution temperature_score \\\n", - "4 3.3870401057008093 percent 1.81 delta_degree_Celsius \n", - "8 2.973857467344226 percent 1.54 delta_degree_Celsius \n", - "10 2.7351925482594566 percent 1.83 delta_degree_Celsius \n", - "11 2.6825715373130827 percent 1.71 delta_degree_Celsius \n", - "16 2.4097283052012206 percent 1.28 delta_degree_Celsius \n", - "19 2.155217880316027 percent 1.45 delta_degree_Celsius \n", - "27 1.7124423388973957 percent 1.45 delta_degree_Celsius \n", - "30 1.572935428254485 percent 1.54 delta_degree_Celsius \n", - "31 1.517749452365582 percent 1.63 delta_degree_Celsius \n", - "36 1.087150770482239 percent 1.58 delta_degree_Celsius \n", - "\n", - " ownership_percentage portfolio_percentage \n", - "4 26.74 3.48 \n", - "8 0.01 3.59 \n", - "10 0.00 2.78 \n", - "11 NaN 2.91 \n", - "16 0.01 3.50 \n", - "19 0.06 2.76 \n", - "27 0.01 2.19 \n", - "30 0.00 1.90 \n", - "31 0.01 1.73 \n", - "36 NaN 1.28 " - ] - }, - "execution_count": 21, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "sector_contributions = company_contributions[['company_name', 'company_id', 'sector', 'contribution', 'temperature_score', 'ownership_percentage', 'portfolio_percentage']]\n", "sector_contributions.loc[sector_contributions['sector'] == 'Steel'][:10].round(2)" @@ -1441,7 +546,7 @@ }, { "cell_type": "code", - "execution_count": 22, + "execution_count": null, "metadata": { "pycharm": { "name": "#%%\n" diff --git a/requirements.txt b/requirements.txt index 3d153934..0d77ba2f 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,4 +1,6 @@ chardet==4.0.0 +dash==2.4.1 +dash_bootstrap_components==1.1.0 iam-units==2021.11.12 jupyter==1.0.0 matplotlib==3.5.1 From 3118d7994452d2f7a1e038c254726fc64ceebc8e Mon Sep 17 00:00:00 2001 From: David Kroon <35101727+dp90@users.noreply.github.com> Date: Mon, 23 May 2022 18:04:27 +0200 Subject: [PATCH 217/345] Add logger and remove assertions + some cleanup Signed-off-by: David Kroon <35101727+dp90@users.noreply.github.com> Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- ITR/configs.py | 7 +- ITR/data/base_providers.py | 180 ++++++++++++++++++++---------------- ITR/data/data_warehouse.py | 30 +++--- ITR/data/template.py | 125 +++++++------------------ test/test_base_providers.py | 7 +- test/test_excel_provider.py | 3 +- 6 files changed, 158 insertions(+), 194 deletions(-) diff --git a/ITR/configs.py b/ITR/configs.py index 711a3883..37673e90 100644 --- a/ITR/configs.py +++ b/ITR/configs.py @@ -119,7 +119,8 @@ class TargetConfig: TARGET_BASE_UNITS = 'target_base_year_unit' TARGET_YEAR = 'target_year' TARGET_REDUCTION_VS_BASE = 'target_reduction_ambition' - + + class TabsConfig: FUNDAMENTAL = "fundamental_data" PROJECTED_EI = "projected_ei_in_Wh" @@ -146,3 +147,7 @@ class TemperatureScoreConfig(PortfolioAggregationConfig): carbon_conversion=Q_(3664.0, ureg('Gt CO2')), scenario_target_temperature=Q_(1.5, ureg.delta_degC) ) + + +class LoggingConfig: + FORMAT = '%(asctime)s - %(name)s - %(levelname)s - %(message)s' diff --git a/ITR/data/base_providers.py b/ITR/data/base_providers.py index b584235e..b0624d25 100644 --- a/ITR/data/base_providers.py +++ b/ITR/data/base_providers.py @@ -1,12 +1,12 @@ -import warnings # needed until quantile behaves better with Pint quantities in arrays +import warnings # needed until quantile behaves better with Pint quantities in arrays import numpy as np import pandas as pd from functools import reduce, partial -from pandas._libs.missing import NAType from typing import List, Type, Dict +import logging from ITR.data.osc_units import Q_, PA_ -from ITR.configs import ColumnsConfig, TemperatureScoreConfig, VariablesConfig +from ITR.configs import ColumnsConfig, TemperatureScoreConfig, VariablesConfig, LoggingConfig from ITR.data.data_providers import CompanyDataProvider, ProductionBenchmarkDataProvider, \ IntensityBenchmarkDataProvider from ITR.interfaces import ICompanyData, EScope, IProductionBenchmarkScopes, IEIBenchmarkScopes, \ @@ -14,11 +14,16 @@ IHistoricEmissionsScopes, IProductionRealization, ITargetData, IHistoricData, ICompanyEIProjection, \ IEmissionRealization, IntensityMetric, ProjectionControls - # TODO handling of scopes in benchmarks -# This is actual output production (whatever the output production units may be). -# Not to be confused with the term "projected production" as it relates to energy intensity. +logger = logging.getLogger(__name__) +logger.setLevel(logging.INFO) + +formatter = logging.Formatter(LoggingConfig.FORMAT) +stream_handler = logging.StreamHandler() +stream_handler.setFormatter(formatter) +logger.addHandler(stream_handler) + class BaseProviderProductionBenchmark(ProductionBenchmarkDataProvider): @@ -43,9 +48,8 @@ def _convert_benchmark_to_series(self, benchmark: IBenchmark) -> pd.Series: :param scope: a scope :return: pd.Series """ - with warnings.catch_warnings(): - warnings.simplefilter("ignore") - return pd.Series({r.year: r.value for r in benchmark.projections}, name=(benchmark.region, benchmark.sector)) + return pd.Series({r.year: r.value for r in benchmark.projections}, name=(benchmark.region, benchmark.sector), + dtype=f'pint[{benchmark.benchmark_metric.units}]') # Production benchmarks are dimensionless. S1S2 has nothing to do with any company data. # It's a label in the top-level of benchmark data. Currently S1S2 is the only label with any data. @@ -73,7 +77,7 @@ def get_company_projected_production(self, company_sector_region_info: pd.DataFr benchmark_production_projections = self.get_benchmark_projections(company_sector_region_info) company_production = company_sector_region_info[self.column_config.BASE_YEAR_PRODUCTION] return benchmark_production_projections.add(1).cumprod(axis=1).mul( - company_production, axis=0) + company_production, axis=0) def get_benchmark_projections(self, company_sector_region_info: pd.DataFrame, scope: EScope = EScope.S1S2) -> pd.DataFrame: @@ -150,7 +154,8 @@ def _convert_benchmark_to_series(self, benchmark: IBenchmark) -> pd.Series: :param scope: a scope :return: pd.Series """ - return pd.Series({p.year: p.value for p in benchmark.projections}, name=(benchmark.region, benchmark.sector), dtype=f'pint[{benchmark.benchmark_metric.units}]') + return pd.Series({p.year: p.value for p in benchmark.projections}, name=(benchmark.region, benchmark.sector), + dtype=f'pint[{benchmark.benchmark_metric.units}]') def _get_projected_intensities(self, scope: EScope = EScope.S1S2) -> pd.DataFrame: """ @@ -158,13 +163,13 @@ def _get_projected_intensities(self, scope: EScope = EScope.S1S2) -> pd.DataFram :param scope: a scope :return: pd.DataFrame """ - result = [] - for bm in self._EI_benchmarks.dict()[str(scope)]['benchmarks']: - result.append(self._convert_benchmark_to_series(IBenchmark.parse_obj(bm))) - with warnings.catch_warnings(): - # pd.DataFrame.__init__ (in pandas/core/frame.py) ignores the beautiful dtype information adorning the pd.Series list elements we are providing. Sad! - warnings.simplefilter("ignore") - df_bm = pd.DataFrame(result) + results = [] + for bm in self._EI_benchmarks.__getattribute__(str(scope)).benchmarks: + results.append(self._convert_benchmark_to_series(bm)) + with warnings.catch_warnings(): + # pd.DataFrame.__init__ (in pandas/core/frame.py) ignores the beautiful dtype information adorning the pd.Series list elements we are providing. Sad! + warnings.simplefilter("ignore") + df_bm = pd.DataFrame(results) df_bm.index.names = [self.column_config.REGION, self.column_config.SECTOR] return df_bm @@ -212,13 +217,15 @@ def __init__(self, self._companies = self._validate_projected_trajectories(companies) def _validate_projected_trajectories(self, companies: List[ICompanyData]) -> List[ICompanyData]: - companies_without_data = [c.company_id for c in companies if not c.historic_data and not c.projected_intensities] + companies_without_data = [c.company_id for c in companies if + not c.historic_data and not c.projected_intensities] assert not companies_without_data, \ f"Provide either historic emission data or projections for companies with IDs {companies_without_data}" companies_without_projections = [c for c in companies if not c.projected_intensities] if companies_without_projections: companies_with_projections = [c for c in companies if c.projected_intensities] - return companies_with_projections + EITrajectoryProjector(self.projection_controls).project_ei_trajectories(companies_without_projections) + return companies_with_projections + EITrajectoryProjector(self.projection_controls).project_ei_trajectories( + companies_without_projections) else: return companies @@ -238,17 +245,17 @@ def _convert_projections_to_series(self, company: ICompanyData, feature: str, projections = company_dict[feature][scope.name]['projections'] else: scopes = scope.value.split('+') - projection_scopes = {s:company_dict[feature][s]['projections'] for s in scopes if company_dict[feature][s]} - if len(projection_scopes)>1: + projection_scopes = {s: company_dict[feature][s]['projections'] for s in scopes if company_dict[feature][s]} + if len(projection_scopes) > 1: projection_series = {} for s in scopes: projection_series[s] = pd.Series( - {p['year']: p['value'] for p in company_dict[feature][s]['projections'] }, - name=company.company_id, dtype=f'pint[{emissions_units}/{production_units}]') + {p['year']: p['value'] for p in company_dict[feature][s]['projections']}, + name=company.company_id, dtype=f'pint[{emissions_units}/{production_units}]') series_adder = partial(pd.Series.add, fill_value=0) res = reduce(series_adder, projection_series.values()) return res - elif len(projection_scopes)==0: + elif len(projection_scopes) == 0: raise ValueError(f"missing target scope data for {company.company_name} :: {scope}") else: # This clause is only accessed if the scope is S1S2 or S1S2S3 of which only one scope is provided. @@ -273,24 +280,25 @@ def _calculate_target_projections(self, continue elif c.target_data is None: raise ValueError(f"no target data for {c.company_name}") - continue else: - base_year_production = next((p.value for p in c.historic_data.productions if p.year == self.temp_config.CONTROLS_CONFIG.base_year), None) + base_year_production = next((p.value for p in c.historic_data.productions if + p.year == self.temp_config.CONTROLS_CONFIG.base_year), None) with warnings.catch_warnings(): warnings.simplefilter("ignore") company_sector_region_info = pd.DataFrame({ - self.column_config.COMPANY_ID: [ c.company_id ], - self.column_config.BASE_YEAR_PRODUCTION: [ base_year_production.to(c.production_metric.units) ], - self.column_config.GHG_SCOPE12: [ c.ghg_s1s2 ], - self.column_config.SECTOR: [ c.sector ], - self.column_config.REGION: [ c.region ], + self.column_config.COMPANY_ID: [c.company_id], + self.column_config.BASE_YEAR_PRODUCTION: [base_year_production.to(c.production_metric.units)], + self.column_config.GHG_SCOPE12: [c.ghg_s1s2], + self.column_config.SECTOR: [c.sector], + self.column_config.REGION: [c.region], }, index=[0]) bm_production_data = (production_bm.get_company_projected_production(company_sector_region_info) # We transpose the data so that we get a pd.Series that will accept the pint units as a whole (not element-by-element) .iloc[0].T .astype(f'pint[{str(base_year_production.units)}]')) - c.projected_targets = EITargetProjector().project_ei_targets(c.target_data, c.historic_data, bm_production_data) - + c.projected_targets = EITargetProjector().project_ei_targets(c.target_data, c.historic_data, + bm_production_data) + # ??? Why prefer TRAJECTORY over TARGET? def _get_company_intensity_at_year(self, year: int, company_ids: List[str]) -> pd.Series: """ @@ -312,8 +320,9 @@ def get_company_data(self, company_ids: List[str]) -> List[ICompanyData]: company_data = [company for company in self._companies if company.company_id in company_ids] if len(company_data) is not len(company_ids): - missing_ids = [company.company_id for company in self._companies if company.company_id not in company_ids] - assert not missing_ids, f"Company IDs not found in fundamental data: {missing_ids}" + missing_ids = [c_id for c_id in company_ids if c_id not in [c.company_id for c in company_data]] + logger.warning(f"Companies not found in fundamental data and excluded from further computations: " + f"{missing_ids}") return company_data @@ -350,7 +359,8 @@ def get_company_fundamentals(self, company_ids: List[str]) -> pd.DataFrame: """ return pd.DataFrame.from_records( [ICompanyData.parse_obj(c.dict()).dict() for c in self.get_company_data(company_ids)], - exclude=['projected_targets', 'projected_intensities', 'historic_data']).set_index(self.column_config.COMPANY_ID) + exclude=['projected_targets', 'projected_intensities', 'historic_data']).set_index( + self.column_config.COMPANY_ID) def get_company_projected_trajectories(self, company_ids: List[str]) -> pd.DataFrame: """ @@ -358,7 +368,7 @@ def get_company_projected_trajectories(self, company_ids: List[str]) -> pd.DataF :return: A pandas DataFrame with projected intensity trajectories per company, indexed by company_id """ trajectory_list = [self._convert_projections_to_series(c, self.column_config.PROJECTED_EI) for c in - self.get_company_data(company_ids)] + self.get_company_data(company_ids)] if trajectory_list: with warnings.catch_warnings(): # pd.DataFrame.__init__ (in pandas/core/frame.py) ignores the beautiful dtype information adorning the pd.Series list elements we are providing. Sad! @@ -398,7 +408,8 @@ def project_ei_trajectories(self, companies: List[ICompanyData]) -> List[ICompan historic_years = [column for column in historic_data.columns if type(column) == int] projection_years = range(max(historic_years), self.projection_controls.TARGET_YEAR) - historic_intensities = historic_data[historic_years].query(f"variable=='{VariablesConfig.EMISSIONS_INTENSITIES}'") + historic_intensities = historic_data[historic_years].query( + f"variable=='{VariablesConfig.EMISSIONS_INTENSITIES}'") standardized_intensities = self._standardize(historic_intensities) intensity_trends = self._get_trends(standardized_intensities) extrapolated = self._extrapolate(intensity_trends, projection_years, historic_data) @@ -419,7 +430,7 @@ def _extract_historic_data(self, companies: List[ICompanyData]) -> pd.DataFrame: data.extend(self._historic_ei_to_dicts(company.company_id, company.historic_data.emissions_intensities)) if not data: - print(companies) + logger.error(f"No historic data for companies: {[c.company_id for c in companies]}") raise ValueError("No historic data anywhere") return pd.DataFrame.from_records(data).set_index( [ColumnsConfig.COMPANY_ID, ColumnsConfig.VARIABLE, ColumnsConfig.SCOPE]) @@ -444,8 +455,9 @@ def _historic_ei_to_dicts(self, id: str, intensities_scopes: IHistoricEIScopes) for scope, intensities in intensities_scopes.dict().items(): if intensities: intsties = {intsty['year']: intsty['value'] for intsty in intensities} - data.append({ColumnsConfig.COMPANY_ID: id, ColumnsConfig.VARIABLE: VariablesConfig.EMISSIONS_INTENSITIES, - ColumnsConfig.SCOPE: scope, **intsties}) + data.append( + {ColumnsConfig.COMPANY_ID: id, ColumnsConfig.VARIABLE: VariablesConfig.EMISSIONS_INTENSITIES, + ColumnsConfig.SCOPE: scope, **intsties}) return data def _compute_missing_historic_ei(self, companies, historic_data): @@ -496,7 +508,8 @@ def _add_projections_to_companies(self, companies: List[ICompanyData], extrapola scope_projections = {} scope_dfs = {} for scope in ICompanyEIProjectionsScopes.__fields__: - if not company.historic_data.emissions_intensities or not company.historic_data.emissions_intensities.__getattribute__(scope): + if not company.historic_data.emissions_intensities or not company.historic_data.emissions_intensities.__getattribute__( + scope): scope_projections[scope] = None continue results = extrapolations.loc[(company.company_id, VariablesConfig.EMISSIONS_INTENSITIES, scope)] @@ -504,31 +517,28 @@ def _add_projections_to_companies(self, companies: List[ICompanyData], extrapola scope_dfs[scope] = results.astype(f"pint[{units}]") projections = [IProjection(year=year, value=value) for year, value in results.items() if year >= TemperatureScoreConfig.CONTROLS_CONFIG.base_year] - scope_projections[scope] = ICompanyEIProjections(ei_metric={'units':units}, projections=projections) + scope_projections[scope] = ICompanyEIProjections(ei_metric={'units': units}, projections=projections) if scope_projections.get('S1') and scope_projections.get('S2') and not scope_projections.get('S1S2'): results = scope_dfs['S1'] + scope_dfs['S2'] units = f"{results.values[0].u:~P}" projections = [IProjection(year=year, value=value) for year, value in results.items() if year >= TemperatureScoreConfig.CONTROLS_CONFIG.base_year] - scope_projections['S1S2'] = ICompanyEIProjections(ei_metric={'units':units}, projections=projections) + scope_projections['S1S2'] = ICompanyEIProjections(ei_metric={'units': units}, projections=projections) company.projected_intensities = ICompanyEIProjectionsScopes(**scope_projections) - def _standardize(self, intensities: pd.DataFrame) -> pd.DataFrame: # When columns are years and rows are all different intensity types, we cannot winsorize # Transpose the dataframe, winsorize the columns (which are all coherent because they belong to a single variable/company), then transpose again - intensities = intensities.T#.loc[2016:2020] + intensities = intensities.T for col in intensities.columns: s = intensities[col] ei_units = f"{s.loc[s.first_valid_index()].u:~P}" if s.notnull().any(): with warnings.catch_warnings(): warnings.simplefilter("ignore") - try: - intensities[col] = s.map(lambda x: Q_(np.nan, ei_units) - if x.m is np.nan or x.m is pd.NA else x).astype(f"pint[{ei_units}]") - except TypeError as e: - print(e) + intensities[col] = s.map(lambda x: Q_(np.nan, ei_units) + if x.m is np.nan or x.m is pd.NA else x).astype(f"pint[{ei_units}]") + winsorized_intensities: pd.DataFrame = self._winsorize(intensities) for col in winsorized_intensities.columns: winsorized_intensities[col] = winsorized_intensities[col].astype(intensities[col].dtype) @@ -546,8 +556,10 @@ def _winsorize(self, historic_intensities: pd.DataFrame) -> pd.DataFrame: # See https://github.com/hgrecco/pint-pandas/issues/114 winsorized: pd.DataFrame = historic_intensities.clip( # Must set numeric_only to false to process Quantities - lower=historic_intensities.quantile(q=self.projection_controls.LOWER_PERCENTILE, axis='index', numeric_only=False), - upper=historic_intensities.quantile(q=self.projection_controls.UPPER_PERCENTILE, axis='index', numeric_only=False), + lower=historic_intensities.quantile(q=self.projection_controls.LOWER_PERCENTILE, axis='index', + numeric_only=False), + upper=historic_intensities.quantile(q=self.projection_controls.UPPER_PERCENTILE, axis='index', + numeric_only=False), axis='columns' ) return winsorized @@ -560,21 +572,20 @@ def _interpolate(self, historic_intensities: pd.DataFrame) -> pd.DataFrame: continue qty = interpolated[col].values.quantity s = pd.Series(data=qty.m, index=interpolated.index) - interpolated[col] = pd.Series(PA_(s.interpolate(method='linear', inplace=False, limit_direction='forward'), f"{qty.u:~P}"), index=interpolated.index) + interpolated[col] = pd.Series(PA_(s.interpolate(method='linear', inplace=False, limit_direction='forward'), + dtype=f"{qty.u:~P}"), index=interpolated.index) return interpolated def _get_trends(self, intensities: pd.DataFrame): # Compute year-on-year growth ratios of emissions intensities - # Transpose so we can work with homogeneous units in columns. This means rows are years. - # pd.Series(intensities.iloc[:,0].values.quantity.m).rolling(window=2, axis='index', closed='right').apply(func=self._year_on_year_ratio, raw=True) intensities = intensities.T for col in intensities.columns: # ratios are dimensionless, so get rid of units, which confuse rolling/apply. Some columns are NaN-only intensities[col] = intensities[col].map(lambda x: x if isinstance(x, float) else x.m) # TODO: do we want to fillna(0) or dropna()? ratios: pd.DataFrame = intensities.rolling(window=2, axis='index', closed='right') \ - .apply(func=self._year_on_year_ratio, raw=True) # .dropna(how='all',axis=0) # .fillna(0) + .apply(func=self._year_on_year_ratio, raw=True) # .dropna(how='all',axis=0) # .fillna(0) trends: pd.DataFrame = self.projection_controls.TREND_CALC_METHOD(ratios, axis='index', skipna=True).clip( lower=self.projection_controls.LOWER_DELTA, @@ -586,8 +597,8 @@ def _extrapolate(self, trends: pd.DataFrame, projection_years: range, historic_d projected_intensities = historic_data.loc[historic_data.index.intersection(trends.index)].copy() # We need to do a mini-extrapolation if we don't have complete historic data for year in historic_data.columns.tolist()[:-1]: - m = projected_intensities[year+1].apply(lambda x: np.isnan(x.m)) - projected_intensities.loc[m,year+1] = projected_intensities.loc[m,year] * (1 + trends.loc[m]) + m = projected_intensities[year + 1].apply(lambda x: np.isnan(x.m)) + projected_intensities.loc[m, year + 1] = projected_intensities.loc[m, year] * (1 + trends.loc[m]) # Now the big extrapolation for year in projection_years: @@ -609,6 +620,7 @@ class EITargetProjector(object): for a specific company, in a specific sector. If we want to project targets for multiple sectors, we have to call it multiple times. This function doesn't need to know what sector it's computing for...only tha there is only one such, for however many scopes. """ + def __init__(self): pass @@ -621,11 +633,13 @@ def _normalize_scope_targets(self, scope_targets): # This sorts targets into ascending target years and descending start years unique_target_years.sort(key=lambda t: (t[0], -t[1])) # Pick the first target year most recently articulated, preserving ascending order of target yeares - unique_target_years = [(uk,next(v for k,v in unique_target_years if k == uk)) for uk in dict(unique_target_years).keys()] + unique_target_years = [(uk, next(v for k, v in unique_target_years if k == uk)) for uk in + dict(unique_target_years).keys()] # Now use those pairs to select just the targets we want unique_scope_targets = [unique_targets[0] for unique_targets in \ - [ [target for target in scope_targets if (target.target_end_year, target.target_start_year)==u] \ - for u in unique_target_years ]] + [[target for target in scope_targets if + (target.target_end_year, target.target_start_year) == u] \ + for u in unique_target_years]] unique_scope_targets.sort(key=lambda target: (target.target_end_year)) # We only trust the most recently communicated netzero target, but prioritize the most recently communicated, most aggressive target @@ -637,7 +651,8 @@ def _normalize_scope_targets(self, scope_targets): target.netzero_year = netzero_year return unique_scope_targets - def project_ei_targets(self, targets: List[ITargetData], historic_data: IHistoricData, production_bm: pd.Series) -> ICompanyEIProjectionsScopes: + def project_ei_targets(self, targets: List[ITargetData], historic_data: IHistoricData, + production_bm: pd.Series) -> ICompanyEIProjectionsScopes: """Input: @targets: a list of a company's targets @historic_data: a company's historic production, emissions, and emission intensities realizations per scope @@ -651,15 +666,18 @@ def project_ei_targets(self, targets: List[ITargetData], historic_data: IHistori if not scope_targets: continue netzero_year = max([t.netzero_year for t in scope_targets if t.netzero_year] + [0]) - scope_targets_intensity = self._normalize_scope_targets([target for target in scope_targets if target.target_type=="intensity"]) - scope_targets_absolute = self._normalize_scope_targets([target for target in scope_targets if target.target_type=="absolute"]) + scope_targets_intensity = self._normalize_scope_targets( + [target for target in scope_targets if target.target_type == "intensity"]) + scope_targets_absolute = self._normalize_scope_targets( + [target for target in scope_targets if target.target_type == "absolute"]) while scope_targets_intensity or scope_targets_absolute: if scope_targets_intensity and scope_targets_absolute: target_i = scope_targets_intensity[0] target_a = scope_targets_absolute[0] - if target_i.target_end_year==target_a.target_end_year: - if target_i.target_start_year==target_a.target_start_year: - warnings.warn(f"intensity target overrides absolute target for target_start_year={target_i.target_start_year} and target_end_year={target_i.target_end_year}") + if target_i.target_end_year == target_a.target_end_year: + if target_i.target_start_year == target_a.target_start_year: + warnings.warn( + f"intensity target overrides absolute target for target_start_year={target_i.target_start_year} and target_end_year={target_i.target_end_year}") scope_targets_absolute.pop(0) scope_targets = scope_targets_intensity elif target_i.target_start_year > target_a.target_start_year: @@ -674,7 +692,7 @@ def project_ei_targets(self, targets: List[ITargetData], historic_data: IHistori scope_targets = scope_targets_absolute elif not scope_targets_intensity: scope_targets = scope_targets_absolute - else: # not scope_targets_absolute + else: # not scope_targets_absolute scope_targets = scope_targets_intensity target = scope_targets.pop(0) @@ -709,7 +727,8 @@ def project_ei_targets(self, targets: List[ITargetData], historic_data: IHistori ei_projection_scopes[scope].projections.extend(ei_projections) else: ei_projection_scopes[scope] = ICompanyEIProjections(projections=ei_projections, - ei_metric=IntensityMetric.parse_obj({'units':target.target_base_year_unit})) + ei_metric=IntensityMetric.parse_obj({ + 'units': target.target_base_year_unit})) elif target.target_type == "absolute": # Complicated case, the target must be switched from absolute value to intensity. # We use the benchmark production data @@ -721,7 +740,8 @@ def project_ei_targets(self, targets: List[ITargetData], historic_data: IHistori last_year_ei_data = ei_projection_scopes[scope].projections[-1] last_year = last_year_ei_data.year last_year_prod = production_bm.loc[last_year] - last_year_data = IEmissionRealization(year=last_year, value=last_year_ei_data.value*last_year_prod) + last_year_data = IEmissionRealization(year=last_year, + value=last_year_ei_data.value * last_year_prod) else: last_year_data = next((e for e in reversed(emissions_data) if np.isfinite(e.value.magnitude)), None) @@ -739,7 +759,8 @@ def project_ei_targets(self, targets: List[ITargetData], historic_data: IHistori emissions_projections = [value_last_year * (1 + CAGR) ** (y + 1) for y, year in enumerate(range(last_year + 1, target_year + 1))] - emissions_projections = pd.Series(emissions_projections, index=range(last_year + 1, target_year + 1), + emissions_projections = pd.Series(emissions_projections, + index=range(last_year + 1, target_year + 1), dtype=f'pint[{target.target_base_year_unit}]') production_projections = production_bm.loc[last_year + 1: target_year] ei_projections = emissions_projections / production_projections @@ -753,7 +774,8 @@ def project_ei_targets(self, targets: List[ITargetData], historic_data: IHistori ei_projection_scopes[scope].projections.extend(ei_projections) else: ei_projection_scopes[scope] = ICompanyEIProjections(projections=ei_projections, - ei_metric=IntensityMetric.parse_obj({'units':f"{target_value.u:~P}"})) + ei_metric=IntensityMetric.parse_obj( + {'units': f"{target_value.u:~P}"})) else: # No target (type) specified ei_projection_scopes[scope] = None @@ -766,7 +788,7 @@ def project_ei_targets(self, targets: List[ITargetData], historic_data: IHistori # Let a later target set the netzero year continue # TODO What if target is a 100% reduction. Does it work whether or not netzero_year is set? - if netzero_year > target_year: # add in netzero target at the end + if netzero_year > target_year: # add in netzero target at the end netzero_qty = Q_(0, target_value.u) CAGR = self._compute_CAGR(target_value, netzero_qty, (netzero_year - target_year)) ei_projections = [ICompanyEIProjection(year=year, value=target_value * (1 + CAGR) ** (y + 1)) @@ -779,7 +801,7 @@ def project_ei_targets(self, targets: List[ITargetData], historic_data: IHistori ei_projection_scopes[scope].projections.extend( [ICompanyEIProjection(year=year, value=target_value) for y, year in enumerate(range(1 + target_year, 1 + 2050))] - ) + ) return ICompanyEIProjectionsScopes(**ei_projection_scopes) @@ -795,7 +817,7 @@ def _compute_CAGR(self, first, last, period): # TODO: Replace ugly fix => pint unit error in below expression # CAGR doesn't work well with 100% reduction, so set it to small if last == 0: - last = first/201.0 + last = first / 201.0 elif last > first: # If we have a slack target, i.e., target goal is actually above current data, clamp so CAGR computes as zero last = first @@ -803,9 +825,9 @@ def _compute_CAGR(self, first, last, period): res = (last / first).to_base_units().magnitude ** (1 / period) - 1 except ZeroDivisionError as e: if last > 0: - print("last > 0 and first==0 in CAGR...setting CAGR to 0-.5") + logger.warning("last > 0 and first==0 in CAGR...setting CAGR to 0-.5") res = -0.5 else: # It's all zero from here on out...clamp down on any emissions that poke up res = -1 - return res \ No newline at end of file + return res diff --git a/ITR/data/data_warehouse.py b/ITR/data/data_warehouse.py index 18e0fcae..b592021e 100644 --- a/ITR/data/data_warehouse.py +++ b/ITR/data/data_warehouse.py @@ -1,20 +1,23 @@ -import warnings # needed until apply behaves better with Pint quantities in arrays - -from abc import ABC -from typing import List +import warnings # needed until apply behaves better with Pint quantities in arrays +import logging import pandas as pd -from pydantic import ValidationError import numpy as np - -import pint -import pint_pandas -from ITR.data.osc_units import ureg, Q_, PA_ +from abc import ABC +from typing import List, Type +from pydantic import ValidationError from ITR.interfaces import ICompanyAggregates from ITR.data.data_providers import CompanyDataProvider, ProductionBenchmarkDataProvider, IntensityBenchmarkDataProvider from ITR.configs import ColumnsConfig, TemperatureScoreConfig -from typing import Type -import logging + + +logger = logging.getLogger(__name__) +logger.setLevel(logging.INFO) + +formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s') +stream_handler = logging.StreamHandler() +stream_handler.setFormatter(formatter) +logger.addHandler(stream_handler) class DataWarehouse(ABC): @@ -52,8 +55,6 @@ def get_preprocessed_company_data(self, company_ids: List[str]) -> List[ICompany """ company_data = self.company_data.get_company_data(company_ids) df_company_data = pd.DataFrame.from_records([c.dict() for c in company_data]).set_index(self.column_config.COMPANY_ID, drop=False) - assert pd.Series(company_ids).isin(df_company_data.index).all(), \ - "some of the company ids are not included in the fundamental data" company_info_at_base_year = self.company_data.get_company_intensity_and_production_at_base_year(company_ids) projected_production = self.benchmark_projected_production.get_company_projected_production( @@ -101,7 +102,6 @@ def _convert_df_to_model(self, df_company_data: pd.DataFrame) -> List[ICompanyAg :param df_company_data: pandas Dataframe with targets :return: A list containing the targets """ - logger = logging.getLogger(__name__) df_company_data = df_company_data.where(pd.notnull(df_company_data), None).replace( {np.nan: None}) # set NaN to None since NaN is float instance companies_data_dict = df_company_data.to_dict(orient="records") @@ -109,7 +109,7 @@ def _convert_df_to_model(self, df_company_data: pd.DataFrame) -> List[ICompanyAg for company_data in companies_data_dict: try: model_companies.append(ICompanyAggregates.parse_obj(company_data)) - except ValidationError as e: + except ValidationError: logger.warning( "(one of) the input(s) of company %s is invalid and will be skipped" % company_data[ self.column_config.COMPANY_NAME]) diff --git a/ITR/data/template.py b/ITR/data/template.py index 01581b7f..ab6380a5 100644 --- a/ITR/data/template.py +++ b/ITR/data/template.py @@ -7,19 +7,28 @@ from pydantic import ValidationError from ITR.data.base_providers import BaseCompanyDataProvider -from ITR.configs import ColumnsConfig, TemperatureScoreConfig, VariablesConfig, TabsConfig, SectorsConfig +from ITR.configs import ColumnsConfig, TemperatureScoreConfig, VariablesConfig, TabsConfig, SectorsConfig, LoggingConfig from ITR.interfaces import ICompanyData, EScope, \ IHistoricEmissionsScopes, \ IProductionRealization, IHistoricEIScopes, IHistoricData, ITargetData, IEmissionRealization, IEIRealization, \ IProjection, ProjectionControls +from ITR.utils import get_project_root ureg = pint.get_application_registry() Q_ = ureg.Quantity -from ITR.utils import get_project_root pkg_root = get_project_root() df_country_regions = pd.read_csv(f"{pkg_root}/data/country_region_info.csv") +logger = logging.getLogger(__name__) +logger.setLevel(logging.INFO) + +formatter = logging.Formatter(LoggingConfig.FORMAT) +stream_handler = logging.StreamHandler() +stream_handler.setFormatter(formatter) +logger.addHandler(stream_handler) + + def ITR_country_to_region(country): if len(country)==2: regions = df_country_regions[df_country_regions.alpha_2==country].region_ar6_10 @@ -56,55 +65,6 @@ def __init__(self, excel_path: str, self._companies = self._convert_from_template_company_data(excel_path) super().__init__(self._companies, column_config, tempscore_config, projection_controls) - def _calculate_target_projections(self, - production_bm: BaseProviderProductionBenchmark, - EI_bm: BaseProviderIntensityBenchmark): - """ - We cannot calculate target projections until after we have loaded benchmark data. - We do so when companies are associated with benchmarks, in the DataWarehouse construction - - :param Production_bm: A Production Benchmark (multi-sector, single-scope, 2020-2050) - :param EI_bm: An Emissions Intensity Benchmark (multi-sector, single-scope, 2020-2050) - """ - for c in self._companies: - if c.projected_targets is not None: - continue - elif c.target_data is None: - print(f"no target data for {c.company_name}") - continue - else: - base_year_production = next((p.value for p in c.historic_data.productions if p.year == self.temp_config.CONTROLS_CONFIG.base_year), None) - with warnings.catch_warnings(): - warnings.simplefilter("ignore") - company_sector_region_info = pd.DataFrame({ - self.column_config.COMPANY_ID: [ c.company_id ], - self.column_config.BASE_YEAR_PRODUCTION: [ base_year_production.to(c.production_metric.units) ], - self.column_config.GHG_SCOPE12: [ c.ghg_s1s2 ], - self.column_config.SECTOR: [ c.sector ], - self.column_config.REGION: [ c.region ], - }, index=[0]) - bm_production_data = (production_bm.get_company_projected_production(company_sector_region_info) - # We transpose the data so that we get a pd.Series that will accept the pint units as a whole (not element-by-element) - .iloc[0].T - .astype(f'pint[{str(base_year_production.units)}]')) - try: - c.projected_targets = project_targets(c.target_data, c.historic_data, bm_production_data) - except TypeError as e: - print(e) - print(c.target_data) - - def _check_company_data(self, df: pd.DataFrame) -> None: - """ - Checks if the company data excel contains the data in the right format - - :return: None - """ - required_tabs = [TabsConfig.TEMPLATE_INPUT_DATA, TabsConfig.TEMPLATE_TARGET_DATA] - missing_tabs = [tab for tab in required_tabs if tab not in df] - assert not any(tab in missing_tabs for tab in required_tabs), f"Tabs {required_tabs} are required." - - - def _convert_from_template_company_data(self, excel_path: str) -> List[ICompanyData]: """ Converts the Excel template to list of ICompanyData objects. All dataprovider features will be inhereted from @@ -121,14 +81,14 @@ def _fixup_name(x): return f"{suffix}-{prefix}" df_company_data = pd.read_excel(excel_path, sheet_name=None, skiprows=0) - self._check_company_data(df_company_data) input_data_sheet = TabsConfig.TEMPLATE_INPUT_DATA - if "Test input data" in df_company_data: - input_data_sheet = "Test input data" - - df = df_company_data[input_data_sheet] - + try: + df = df_company_data[input_data_sheet] + except KeyError as e: + f"Tabs {required_tabs} are required." + logger.error(f"Tab {input_data_sheet} is required in input Excel file.") + raise df['exposure'].fillna('presumed_equity', inplace=True) # TODO: Fix market_cap column naming inconsistency @@ -214,9 +174,11 @@ def custom_formatwarning(msg, *args, **kwargs): self.historic_years = [column for column in df_historic_data.columns if type(column) == int] test_target_sheet = TabsConfig.TEMPLATE_TARGET_DATA - if "Test target data" in df_company_data: - test_target_sheet = "Test target data" - df_target_data = df_company_data[test_target_sheet].set_index('company_id').convert_dtypes() + try: + df_target_data = df_company_data[test_target_sheet].set_index('company_id').convert_dtypes() + except KeyError as e: + logger.error(f"Tab {test_target_sheet} is required in input Excel file.") + raise # TODO: need to fix Pydantic definition or data to allow optional int. In the mean time... df_target_data.loc[df_target_data.target_start_year.isna(), 'target_start_year'] = 2020 @@ -332,18 +294,6 @@ def _get_projection(self, company_ids: List[str], projections: pd.DataFrame, return projected_ei_s1s2 - # class ITargetData(PintModel): - # netzero_year: int - # target_type: Union[Literal['intensity'],Literal['absolute'],Literal['other']] - # target_scope: EScope - # target_start_year: Optional[int] - # target_base_year: int - # target_end_year: int - - # target_base_year_qty: float - # target_base_year_unit: str - # target_reduction_pct: float - def _convert_target_data(self, target_data: pd.DataFrame) -> List[ITargetData]: """ :param historic: historic production, emission and emission intensity data for a company @@ -392,8 +342,7 @@ def _convert_historic_data(self, historic: pd.DataFrame) -> IHistoricData: # Note that for the three following functions, we pd.Series.squeeze() the results because it's just one year / one company def _convert_to_historic_emissions(self, emissions: pd.DataFrame) -> Optional[IHistoricEmissionsScopes]: """ - :param historic: historic production, emission and emission intensity data for a company - :param convert_unit: whether or not to convert the units of measure + :param emissions: historic emissions data for a company :return: List of historic emissions per scope, or None if no data are provided """ if emissions.empty: @@ -407,26 +356,19 @@ def _convert_to_historic_emissions(self, emissions: pd.DataFrame) -> Optional[IH else [IEmissionRealization(year=year, value=results[year].squeeze()) for year in self.historic_years] return IHistoricEmissionsScopes(**emissions_scopes) - def _convert_to_historic_productions(self, productions: pd.DataFrame) \ - -> Optional[List[IProductionRealization]]: + def _convert_to_historic_productions(self, productions: pd.DataFrame) -> Optional[List[IProductionRealization]]: """ - :param historic: historic production, emission and emission intensity data for a company + :param productions: historic production data for a company :return: A list containing historic productions, or None if no data are provided """ if productions.empty: return None - try: - production_realizations = \ - [IProductionRealization(year=year, value=productions[year].squeeze()) for year in self.historic_years] - except TypeError as e: - print(e) - return production_realizations - - def _convert_to_historic_ei(self, intensities: pd.DataFrame) \ - -> Optional[IHistoricEIScopes]: + return [IProductionRealization(year=year, value=productions[year].squeeze()) for year in self.historic_years] + + def _convert_to_historic_ei(self, intensities: pd.DataFrame) -> Optional[IHistoricEIScopes]: """ - :param historic: historic production, emission and emission intensity data for a company + :param intensities: historic emission intensity data for a company :return: A list of historic emission intensities per scope, or None if no data are provided """ if intensities.empty: @@ -437,10 +379,7 @@ def _convert_to_historic_ei(self, intensities: pd.DataFrame) \ for scope in EScope.get_scopes(): results = intensities.loc[intensities[ColumnsConfig.SCOPE] == scope] - try: - intensity_scopes[scope] = [] \ - if results.empty \ - else [IEIRealization(year=year, value=results[year].squeeze()) for year in self.historic_years] - except TypeError as e: - print(e) + intensity_scopes[scope] = [] \ + if results.empty \ + else [IEIRealization(year=year, value=results[year].squeeze()) for year in self.historic_years] return IHistoricEIScopes(**intensity_scopes) diff --git a/test/test_base_providers.py b/test/test_base_providers.py index d7e77db0..b5e14f6e 100644 --- a/test/test_base_providers.py +++ b/test/test_base_providers.py @@ -1,7 +1,6 @@ import json import unittest import os - import pandas as pd import ITR @@ -32,11 +31,11 @@ def setUp(self) -> None: with open(self.company_json) as json_file: parsed_json = json.load(json_file) for company_data in parsed_json: - company_data['emissions_metric'] = {'units':'t CO2'} + company_data['emissions_metric'] = {'units': 't CO2'} if company_data['sector'] == 'Electricity Utilities': - company_data['production_metric'] = {'units':'MWh'} + company_data['production_metric'] = {'units': 'MWh'} elif company_data['sector'] == 'Steel': - company_data['production_metric'] = {'units':'Fe_ton'} + company_data['production_metric'] = {'units': 'Fe_ton'} self.companies = [ICompanyData.parse_obj(company_data) for company_data in parsed_json] self.base_company_data = BaseCompanyDataProvider(self.companies) diff --git a/test/test_excel_provider.py b/test/test_excel_provider.py index 0a56c47f..625f7daa 100644 --- a/test/test_excel_provider.py +++ b/test/test_excel_provider.py @@ -1,10 +1,9 @@ import os import unittest - import pandas as pd - from numpy.testing import assert_array_equal import ITR + from ITR.data.excel import ExcelProviderCompany, ExcelProviderProductionBenchmark, ExcelProviderIntensityBenchmark from ITR.data.data_warehouse import DataWarehouse from ITR.configs import ColumnsConfig, TemperatureScoreConfig From 7bedbff68923e929483237b0ba2ed93a451ebade Mon Sep 17 00:00:00 2001 From: David Kroon <35101727+dp90@users.noreply.github.com> Date: Thu, 2 Jun 2022 17:24:32 +0200 Subject: [PATCH 218/345] Add try except to converter and remove unnecessary functions Signed-off-by: David Kroon <35101727+dp90@users.noreply.github.com> Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- ITR/data/excel.py | 69 +++++++++++++++++++++-------------------------- 1 file changed, 31 insertions(+), 38 deletions(-) diff --git a/ITR/data/excel.py b/ITR/data/excel.py index aba378bf..1808257c 100644 --- a/ITR/data/excel.py +++ b/ITR/data/excel.py @@ -1,48 +1,60 @@ import warnings # needed until apply behaves better with Pint quantities in arrays -from typing import Type, List, Union, Optional +from typing import Type, List, Optional import pandas as pd import numpy as np - from pint import Quantity -# from pint_pandas import PintArray - -import pint -import pint_pandas -ureg = pint.get_application_registry() -Q_ = ureg.Quantity -# PA_ = pint_pandas.PintArray +import logging from pydantic import ValidationError from ITR.data.base_providers import BaseCompanyDataProvider, BaseProviderProductionBenchmark, \ BaseProviderIntensityBenchmark -from ITR.configs import ColumnsConfig, TemperatureScoreConfig, SectorsConfig, VariablesConfig, TabsConfig +from ITR.configs import ColumnsConfig, TemperatureScoreConfig, VariablesConfig, TabsConfig, LoggingConfig from ITR.interfaces import BaseModel, ICompanyData, ICompanyEIProjection, EScope, IEIBenchmarkScopes, \ IProductionBenchmarkScopes, IBenchmark, IBenchmarks, IHistoricEmissionsScopes, \ IProductionRealization, IHistoricEIScopes, IHistoricData, IEmissionRealization, IEIRealization, IProjection -import logging -import inspect +logger = logging.getLogger(__name__) +logger.setLevel(logging.INFO) + +formatter = logging.Formatter(LoggingConfig.FORMAT) +stream_handler = logging.StreamHandler() +stream_handler.setFormatter(formatter) +logger.addHandler(stream_handler) + +ureg = pint.get_application_registry() +Q_ = ureg.Quantity + # Excel spreadsheets don't have units elaborated, so we translate sectors to units -sector_to_production_metric = { 'Electricity Utilities':'GJ', 'Steel':'Fe_ton' } -sector_to_intensity_metric = { 'Electricity Utilities':'t CO2/MWh', 'Steel':'t CO2/Fe_ton' } +sector_to_production_metric = {'Electricity Utilities': 'GJ', 'Steel': 'Fe_ton'} +sector_to_intensity_metric = {'Electricity Utilities': 't CO2/MWh', 'Steel': 't CO2/Fe_ton'} # TODO: Force validation for excel benchmarks # Utils functions: -def convert_dimensionless_benchmark_excel_to_model(df_excel: pd.DataFrame, sheetname: str, column_name_region: str, +def convert_dimensionless_benchmark_excel_to_model(df_excel: dict, sheetname: str, column_name_region: str, column_name_sector: str) -> IBenchmarks: """ Converts excel into IBenchmarks - :param excal_path: file path to excel + :param df_excel: dictionary with a pd.DataFrame for each key representing a sheet of an Excel file + :param sheetname: name of Excel file sheet to convert + :param column_name_region: name of region + :param column_name_sector: name of sector :return: IBenchmarks instance (list of IBenchmark) """ - df_ei_bms = df_excel[sheetname].reset_index().drop(columns=['index']).set_index( + try: + df_sheet = df_excel[sheetname] + except KeyError: + logger.error(f"Sheet {sheetname} not in benchmark Excel file.") + raise + + df_ei_bms = df_sheet.reset_index().drop(columns=['index']).set_index( [column_name_region, column_name_sector]) + result = [] for index, row in df_ei_bms.iterrows(): - bm = IBenchmark(region=index[0], sector=index[1], benchmark_metric={'units':'dimensionless'}, + bm = IBenchmark(region=index[0], sector=index[1], benchmark_metric={'units': 'dimensionless'}, projections=[IProjection(year=int(k), value=Q_(v, ureg('dimensionless'))) for k, v in row.items()]) result.append(bm) return IBenchmarks(benchmarks=result) @@ -76,23 +88,13 @@ def __init__(self, excel_path: str, column_config: Type[ColumnsConfig] = Columns :param tempscore_config: An optional TemperatureScoreConfig object containing temperature scoring settings """ self.benchmark_excel = pd.read_excel(excel_path, sheet_name=None, skiprows=0) - self._check_sector_data() self._convert_excel_to_model = convert_dimensionless_benchmark_excel_to_model production_bms = self._convert_excel_to_model(self.benchmark_excel, TabsConfig.PROJECTED_PRODUCTION, column_config.REGION, column_config.SECTOR) super().__init__( - IProductionBenchmarkScopes(benchmark_metric={'units':'dimensionless'}, S1S2=production_bms), column_config, + IProductionBenchmarkScopes(benchmark_metric={'units': 'dimensionless'}, S1S2=production_bms), column_config, tempscore_config) - def _check_sector_data(self) -> None: - """ - Checks if the sector data excel contains the data in the right format - - :return: None - """ - assert pd.Series([TabsConfig.PROJECTED_PRODUCTION, TabsConfig.PROJECTED_EI]).isin( - self.benchmark_excel.keys()).all(), "some tabs are missing in the sector data excel" - def _get_projected_production(self, scope: EScope = EScope.S1S2) -> pd.DataFrame: """ interface from excel file and internally used DataFrame @@ -109,7 +111,6 @@ def __init__(self, excel_path: str, benchmark_temperature: Quantity['delta_degC' column_config: Type[ColumnsConfig] = ColumnsConfig, tempscore_config: Type[TemperatureScoreConfig] = TemperatureScoreConfig): self.benchmark_excel = pd.read_excel(excel_path, sheet_name=None, skiprows=0) - self._check_sector_data() self._convert_excel_to_model = convert_intensity_benchmark_excel_to_model EI_benchmarks = self._convert_excel_to_model(self.benchmark_excel, TabsConfig.PROJECTED_EI, column_config.REGION, column_config.SECTOR) @@ -122,14 +123,6 @@ def __init__(self, excel_path: str, benchmark_temperature: Quantity['delta_degC' column_config, tempscore_config) - def _check_sector_data(self) -> None: - """ - Checks if the sector data excel contains the data in the right format - :return: None - """ - assert pd.Series([TabsConfig.PROJECTED_PRODUCTION, TabsConfig.PROJECTED_EI]).isin( - self.benchmark_excel.keys()).all(), "some tabs are missing in the sector data excel" - class ExcelProviderCompany(BaseCompanyDataProvider): """ From 39e0c4ab6c008b3ca37ef9e76f077462260f8ec8 Mon Sep 17 00:00:00 2001 From: David Kroon <35101727+dp90@users.noreply.github.com> Date: Thu, 2 Jun 2022 18:24:42 +0200 Subject: [PATCH 219/345] Replace assertions with errors Signed-off-by: David Kroon <35101727+dp90@users.noreply.github.com> Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- ITR/data/base_providers.py | 14 ++++++--- ITR/data/excel.py | 61 +++++++++++++++++++++----------------- ITR/data/template.py | 16 +++++----- 3 files changed, 52 insertions(+), 39 deletions(-) diff --git a/ITR/data/base_providers.py b/ITR/data/base_providers.py index b0624d25..c50c3643 100644 --- a/ITR/data/base_providers.py +++ b/ITR/data/base_providers.py @@ -219,8 +219,11 @@ def __init__(self, def _validate_projected_trajectories(self, companies: List[ICompanyData]) -> List[ICompanyData]: companies_without_data = [c.company_id for c in companies if not c.historic_data and not c.projected_intensities] - assert not companies_without_data, \ - f"Provide either historic emission data or projections for companies with IDs {companies_without_data}" + if companies_without_data: + error_message = f"Provide either historic emission data or projections for companies with " \ + f"IDs {companies_without_data}" + logger.error(error_message) + raise ValueError(error_message) companies_without_projections = [c for c in companies if not c.projected_intensities] if companies_without_projections: companies_with_projections = [c for c in companies if c.projected_intensities] @@ -500,8 +503,11 @@ def _compute_missing_historic_ei(self, companies, historic_data): this_missing_data.append(f"{company.company_id} - {scope}") if this_missing_data and append_this_missing_data: missing_data.extend(this_missing_data) - assert not missing_data, f"Provide either historic emissions intensity data, or historic emission and " \ - f"production data for these company - scope combinations: {missing_data}" + if missing_data: + error_message = f"Provide either historic emissions intensity data, or historic emission and " \ + f"production data for these company - scope combinations: {missing_data}" + logger.error(error_message) + raise ValueError(error_message) def _add_projections_to_companies(self, companies: List[ICompanyData], extrapolations: pd.DataFrame): for company in companies: diff --git a/ITR/data/excel.py b/ITR/data/excel.py index 1808257c..40dd5457 100644 --- a/ITR/data/excel.py +++ b/ITR/data/excel.py @@ -3,6 +3,7 @@ import pandas as pd import numpy as np from pint import Quantity +import pint import logging from pydantic import ValidationError @@ -139,17 +140,21 @@ def __init__(self, excel_path: str, column_config: Type[ColumnsConfig] = Columns self.historic_years = None super().__init__(self._companies, column_config, tempscore_config) - def _check_company_data(self, df: pd.DataFrame) -> None: + def _check_company_data(self, company_tabs: dict) -> None: """ Checks if the company data excel contains the data in the right format :return: None """ - required_tabs = [TabsConfig.FUNDAMENTAL, TabsConfig.PROJECTED_TARGET] - optional_tabs = [TabsConfig.PROJECTED_EI, TabsConfig.HISTORIC_DATA] - missing_tabs = [tab for tab in required_tabs + optional_tabs if tab not in df] - assert not any(tab in missing_tabs for tab in required_tabs), f"Tabs {required_tabs} are required." - assert not all(tab in missing_tabs for tab in optional_tabs), f"Either of the tabs {optional_tabs} is required." + required_tabs = {TabsConfig.FUNDAMENTAL, TabsConfig.PROJECTED_TARGET} + optional_tabs = {TabsConfig.PROJECTED_EI, TabsConfig.HISTORIC_DATA} + missing_tabs = (required_tabs | optional_tabs).difference(set(company_tabs)) + if missing_tabs.intersection(required_tabs): + logger.error(f"Tabs {required_tabs} are required.") + raise ValueError(f"Tabs {required_tabs} are required.") + if optional_tabs.issubset(missing_tabs): + logger.error(f"Either of the tabs {optional_tabs} is required.") + raise ValueError(f"Either of the tabs {optional_tabs} is required.") def _convert_from_excel_data(self, excel_path: str) -> List[ICompanyData]: """ @@ -158,22 +163,22 @@ def _convert_from_excel_data(self, excel_path: str) -> List[ICompanyData]: :param excel_path: file path to excel file :return: List of ICompanyData objects """ - df_company_data = pd.read_excel(excel_path, sheet_name=None, skiprows=0) - self._check_company_data(df_company_data) + company_data = pd.read_excel(excel_path, sheet_name=None, skiprows=0) + self._check_company_data(company_data) - df_fundamentals = df_company_data[TabsConfig.FUNDAMENTAL].set_index(ColumnsConfig.COMPANY_ID, drop=False) + df_fundamentals = company_data[TabsConfig.FUNDAMENTAL].set_index(ColumnsConfig.COMPANY_ID, drop=False) df_fundamentals[ColumnsConfig.PRODUCTION_METRIC] = df_fundamentals[ColumnsConfig.SECTOR].map(sector_to_production_metric) - company_ids = df_fundamentals[ColumnsConfig.COMPANY_ID].unique() - df_targets = self._get_projection(company_ids, df_company_data[TabsConfig.PROJECTED_TARGET], df_fundamentals[ColumnsConfig.PRODUCTION_METRIC]) - if TabsConfig.PROJECTED_EI in df_company_data: - df_ei = self._get_projection(company_ids, df_company_data[TabsConfig.PROJECTED_EI], df_fundamentals[ColumnsConfig.PRODUCTION_METRIC]) + company_ids = list(df_fundamentals[ColumnsConfig.COMPANY_ID].unique()) + df_targets = self._get_projection(company_ids, company_data[TabsConfig.PROJECTED_TARGET], df_fundamentals[ColumnsConfig.PRODUCTION_METRIC]) + if TabsConfig.PROJECTED_EI in company_data: + df_ei = self._get_projection(company_ids, company_data[TabsConfig.PROJECTED_EI], df_fundamentals[ColumnsConfig.PRODUCTION_METRIC]) else: df_ei = None - if TabsConfig.HISTORIC_DATA in df_company_data: - df_historic = df_company_data[TabsConfig.HISTORIC_DATA].set_index(ColumnsConfig.COMPANY_ID, drop=False) + if TabsConfig.HISTORIC_DATA in company_data: + df_historic = company_data[TabsConfig.HISTORIC_DATA].set_index(ColumnsConfig.COMPANY_ID, drop=False) df_historic = df_historic.merge(df_fundamentals[ColumnsConfig.PRODUCTION_METRIC].rename('units'), left_index=True, right_index=True) - df_historic.loc[df_historic.variable=='Emissions', 'units'] = 't CO2' - df_historic.loc[df_historic.variable=='Emission Intensities', 'units'] = 't CO2/' + df_historic.loc[df_historic.variable=='Emission Intensities', 'units'] + df_historic.loc[df_historic.variable == 'Emissions', 'units'] = 't CO2' + df_historic.loc[df_historic.variable == 'Emission Intensities', 'units'] = 't CO2/' + df_historic.loc[df_historic.variable == 'Emission Intensities', 'units'] df_historic = self._get_historic_data(company_ids, df_historic) else: df_historic = None @@ -198,7 +203,6 @@ def _company_df_to_model(self, df_fundamentals: pd.DataFrame, df_targets: pd.Dat :param df_ei: pandas Dataframe with emission intensities :return: A list containing the ICompanyData objects """ - logger = logging.getLogger(__name__) # set NaN to None since NaN is float instance df_fundamentals = df_fundamentals.where(pd.notnull(df_fundamentals), None).replace({np.nan: None}) @@ -248,15 +252,14 @@ def _company_df_to_model(self, df_fundamentals: pd.DataFrame, df_targets: pd.Dat logger.warning( f"EX {e}: (one of) the input(s) of company %s is invalid and will be skipped" % company_data[ ColumnsConfig.COMPANY_NAME]) - break - pass return model_companies # Workaround for bug (https://github.com/pandas-dev/pandas/issues/20824) in Pandas where NaN are treated as zero def _np_sum(g): return np.sum(g.values) - def _get_projection(self, company_ids: List[str], projections: pd.DataFrame, production_metric: pd.DataFrame) -> pd.DataFrame: + def _get_projection(self, company_ids: List[str], projections: pd.DataFrame, production_metric: pd.DataFrame) \ + -> pd.DataFrame: """ get the projected emission intensities for list of companies :param company_ids: list of company ids @@ -264,11 +267,13 @@ def _get_projection(self, company_ids: List[str], projections: pd.DataFrame, pro :param production_metric: Dataframe with production_metric per company :return: series of projected emission intensities """ - projections = projections.reset_index().set_index(ColumnsConfig.COMPANY_ID) - assert all(company_id in projections.index for company_id in company_ids), \ - f"company ids missing in provided projections" + missing_companies = [company_id for company_id in company_ids if company_id not in projections.index] + if missing_companies: + error_message = f"Missing target or trajectory projections for companies: {missing_companies}" + logger.error(error_message) + raise ValueError(error_message) projections = projections.loc[company_ids, range(TemperatureScoreConfig.CONTROLS_CONFIG.base_year, TemperatureScoreConfig.CONTROLS_CONFIG.target_end_year + 1)] @@ -288,12 +293,12 @@ def _get_historic_data(self, company_ids: List[str], historic_data: pd.DataFrame :param historic_data: Dataframe Productions, Emissions, and Emission Intensities mixed together :return: historic data with unit attributes added to yearly data on a per-element basis """ - # We don't need this reset/set index dance because we set the index to COMPANY_ID to get units sorted - # historic_data = historic_data.reset_index().drop(columns=['index']).set_index(ColumnsConfig.COMPANY_ID) - self.historic_years = [column for column in historic_data.columns if type(column) == int] missing_ids = [company_id for company_id in company_ids if company_id not in historic_data.index] - assert not missing_ids, f"Company ids missing in provided historic data: {missing_ids}" + if missing_ids: + error_message = f"Company ids missing in provided historic data: {missing_ids}" + logger.error(error_message) + raise ValueError(error_message) # There has got to be a better way to do this... historic_data = ( diff --git a/ITR/data/template.py b/ITR/data/template.py index ab6380a5..15812cdb 100644 --- a/ITR/data/template.py +++ b/ITR/data/template.py @@ -275,11 +275,13 @@ def _get_projection(self, company_ids: List[str], projections: pd.DataFrame, :param production_metric: Dataframe with production_metric per company :return: series of projected emission intensities """ - projections = projections.reset_index().set_index(ColumnsConfig.COMPANY_ID) - assert all(company_id in projections.index for company_id in company_ids), \ - f"company ids missing in provided projections" + missing_companies = [company_id for company_id in company_ids if company_id not in projections.index] + if missing_companies: + error_message = f"Missing target or trajectory projections for companies: {missing_companies}" + logger.error(error_message) + raise ValueError(error_message) projections = projections.loc[company_ids, range(TemperatureScoreConfig.CONTROLS_CONFIG.base_year, TemperatureScoreConfig.CONTROLS_CONFIG.target_end_year + 1)] @@ -309,11 +311,11 @@ def _get_historic_data(self, company_ids: List[str], historic_data: pd.DataFrame :param historic_data: Dataframe Productions, Emissions, and Emission Intensities mixed together :return: historic data with unit attributes added on a per-element basis """ - # We don't need this reset/set index dance because we set the index to COMPANY_ID to get units sorted - # historic_data = historic_data.reset_index().drop(columns=['index']).set_index(ColumnsConfig.COMPANY_ID) - missing_ids = [company_id for company_id in company_ids if company_id not in historic_data.index] - assert not missing_ids, f"Company ids missing in provided historic data: {missing_ids}" + if missing_ids: + error_message = f"Company ids missing in provided historic data: {missing_ids}" + logger.error(error_message) + raise ValueError(error_message) # There has got to be a better way to do this... historic_data = ( From a4670cbf25b89786d55c80f0387ae7e26e4b2138 Mon Sep 17 00:00:00 2001 From: David Kroon <35101727+dp90@users.noreply.github.com> Date: Thu, 2 Jun 2022 18:47:35 +0200 Subject: [PATCH 220/345] Replace assertions with errors and add logging Signed-off-by: David Kroon <35101727+dp90@users.noreply.github.com> Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- ITR/data/template.py | 20 +++++++++++++------- ITR/utils.py | 26 ++++++++++++++++++++++---- 2 files changed, 35 insertions(+), 11 deletions(-) diff --git a/ITR/data/template.py b/ITR/data/template.py index 15812cdb..3aaade11 100644 --- a/ITR/data/template.py +++ b/ITR/data/template.py @@ -102,20 +102,27 @@ def _fixup_name(x): # GH https://github.com/pandas-dev/pandas/issues/46044 df_fundamentals.company_id = df_fundamentals.company_id.astype('object') - company_ids = df_fundamentals[ColumnsConfig.COMPANY_ID].unique() - - # testing if all data is in the same currency - assert len(df_fundamentals[ColumnsConfig.TEMPLATE_CURRENCY].unique()) == 1, f"All data should be in the same currency. Please adjust excel template input." + if len(df_fundamentals[ColumnsConfig.TEMPLATE_CURRENCY].unique()) != 1: + error_message = f"All data should be in the same currency." + logger.error(error_message) + raise ValueError(error_message) # are there empty sectors? comp_with_missing_sectors = df_fundamentals[ColumnsConfig.COMPANY_ID][df_fundamentals[ColumnsConfig.SECTOR].isnull()].to_list() - assert len(comp_with_missing_sectors) == 0, f"For {comp_with_missing_sectors} companies the sector column is empty. Correct it in excel template and try one more time." + if comp_with_missing_sectors: + error_message = f"For {comp_with_missing_sectors} companies the sector column is empty." + logger.error(error_message) + raise ValueError(error_message) + # testing if only valid sectors are provided sectors_from_df = df_fundamentals[ColumnsConfig.SECTOR].unique() configured_sectors = SectorsConfig.get_configured_sectors() not_configured_sectors = [sec for sec in sectors_from_df if sec not in configured_sectors] - assert len(not_configured_sectors) == 0, f"Sector {not_configured_sectors} is not covered by the ITR tool currently. Delete it from excel template." + if not_configured_sectors: + error_message = f"Sector {not_configured_sectors} is not covered by the ITR tool currently." + logger.error(error_message) + raise ValueError(error_message) # The nightmare of naming columns 20xx_metric instead of metric_20xx...and potentially dealing with data from 1990s... historic_columns = [col for col in df_fundamentals.columns if col[:1].isdigit()] @@ -125,7 +132,6 @@ def _fixup_name(x): # Checking if there are not many missing market cap missing_cap_ids = df_fundamentals[ColumnsConfig.COMPANY_ID][df_fundamentals[ColumnsConfig.COMPANY_MARKET_CAP].isnull()].to_list() - assert (len(missing_cap_ids)/len(df_fundamentals)) < 0.2, f"Too many companies with missing market capitalization. Cannot proceed." # For the missing Market Cap we should use the ratio below to get dummy market cap: # (Avg for the Sector (Market Cap / Revenues) + Avg for the Sector (Market Cap / Assets)) 2 df_fundamentals['MCap_to_Reven']=df_fundamentals[ColumnsConfig.COMPANY_MARKET_CAP]/df_fundamentals[ColumnsConfig.COMPANY_REVENUE] # new temp column with ratio diff --git a/ITR/utils.py b/ITR/utils.py index 917a9a23..54e2baee 100644 --- a/ITR/utils.py +++ b/ITR/utils.py @@ -2,12 +2,21 @@ from pathlib import Path from typing import List, Optional, Tuple from pint import Quantity +import logging -from .configs import ColumnsConfig, TemperatureScoreConfig +from .configs import ColumnsConfig, TemperatureScoreConfig, LoggingConfig from .interfaces import PortfolioCompany, EScope, ETimeFrames, ScoreAggregations, TemperatureScoreControls from .data.data_warehouse import DataWarehouse from .portfolio_aggregation import PortfolioAggregationMethod +logger = logging.getLogger(__name__) +logger.setLevel(logging.INFO) + +formatter = logging.Formatter(LoggingConfig.FORMAT) +stream_handler = logging.StreamHandler() +stream_handler.setFormatter(formatter) +logger.addHandler(stream_handler) + # If this file is moved, the computation of get_project_root may also need to change def get_project_root() -> Path: @@ -52,9 +61,18 @@ def dataframe_to_portfolio(df_portfolio: pd.DataFrame) -> List[PortfolioCompany] :return: A list of portfolio companies """ # Adding some non-empty checks for portfolio upload - assert df_portfolio[ColumnsConfig.INVESTMENT_VALUE].isnull().sum() == 0, f"There is empty data for investment value for some companies in the input file. Please correct the file and try again." - assert df_portfolio[ColumnsConfig.COMPANY_ISIN].isnull().sum() == 0, f"There is empty data for company ISIN for some companies in the input file. Please correct the file and try again." - assert df_portfolio[ColumnsConfig.COMPANY_ID].isnull().sum() == 0, f"There is empty data for company ID for some companies in the input file. Please correct the file and try again." + if df_portfolio[ColumnsConfig.INVESTMENT_VALUE].isnull().any(): + error_message = f"Investment values are missing for one or more companies in the input file." + logger.error(error_message) + raise ValueError(error_message) + if df_portfolio[ColumnsConfig.COMPANY_ISIN].isnull().any(): + error_message = f"Company ISINs are missing for one or more companies in the input file." + logger.error(error_message) + raise ValueError(error_message) + if df_portfolio[ColumnsConfig.COMPANY_ID].isnull().any(): + error_message = f"Company IDs are missing for one or more companies in the input file." + logger.error(error_message) + raise ValueError(error_message) return [PortfolioCompany.parse_obj(company) for company in df_portfolio.to_dict(orient="records")] From 4a6ab149509c273c22c2ca75262d410c5339f104 Mon Sep 17 00:00:00 2001 From: David Kroon <35101727+dp90@users.noreply.github.com> Date: Fri, 3 Jun 2022 13:31:42 +0200 Subject: [PATCH 221/345] Add checks to target input data Signed-off-by: David Kroon <35101727+dp90@users.noreply.github.com> Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- ITR/data/base_providers.py | 4 +-- ITR/data/excel.py | 13 +------- ITR/data/template.py | 63 +++++++++++++++++++++++--------------- ITR/interfaces.py | 8 ++++- test/test_interfaces.py | 30 +++++++++++++++++- 5 files changed, 78 insertions(+), 40 deletions(-) diff --git a/ITR/data/base_providers.py b/ITR/data/base_providers.py index c50c3643..6cb1236d 100644 --- a/ITR/data/base_providers.py +++ b/ITR/data/base_providers.py @@ -733,8 +733,7 @@ def project_ei_targets(self, targets: List[ITargetData], historic_data: IHistori ei_projection_scopes[scope].projections.extend(ei_projections) else: ei_projection_scopes[scope] = ICompanyEIProjections(projections=ei_projections, - ei_metric=IntensityMetric.parse_obj({ - 'units': target.target_base_year_unit})) + ei_metric=IntensityMetric.parse_obj({'units': target.target_base_year_unit})) elif target.target_type == "absolute": # Complicated case, the target must be switched from absolute value to intensity. # We use the benchmark production data @@ -755,6 +754,7 @@ def project_ei_targets(self, targets: List[ITargetData], historic_data: IHistori if last_year_data is None or base_year > last_year_data.year: ei_projection_scopes[scope] = None continue + # Removed condition base year > first_year. Do we care as long as base_year_qty is known? last_year, value_last_year = last_year_data.year, last_year_data.value target_year = target.target_end_year diff --git a/ITR/data/excel.py b/ITR/data/excel.py index 40dd5457..513707ed 100644 --- a/ITR/data/excel.py +++ b/ITR/data/excel.py @@ -209,18 +209,7 @@ def _company_df_to_model(self, df_fundamentals: pd.DataFrame, df_targets: pd.Dat companies_data_dict = df_fundamentals.to_dict(orient="records") model_companies: List[ICompanyData] = [] for company_data in companies_data_dict: - # company_data is a dict, not a dataframe try: - # convert_unit_of_measure = company_data[ColumnsConfig.SECTOR] in self.CORRECTION_SECTORS - # company_targets = self._convert_series_to_projections( - # df_targets.loc[company_data[ColumnsConfig.COMPANY_ID], :], convert_unit_of_measure) - # company_ei = self._convert_series_to_projections( - # df_ei.loc[company_data[ColumnsConfig.COMPANY_ID], :], - # convert_unit_of_measure) - - # company_data.update({ColumnsConfig.PROJECTED_TARGETS: {'S1S2': {'projections': df_targets}}}) - # company_data.update({ColumnsConfig.PROJECTED_EI: {'S1S2': {'projections': df_ei}}}) - company_id = company_data[ColumnsConfig.COMPANY_ID] production_metric = sector_to_production_metric[company_data[ColumnsConfig.SECTOR]] intensity_metric = sector_to_intensity_metric[company_data[ColumnsConfig.SECTOR]] @@ -271,7 +260,7 @@ def _get_projection(self, company_ids: List[str], projections: pd.DataFrame, pro missing_companies = [company_id for company_id in company_ids if company_id not in projections.index] if missing_companies: - error_message = f"Missing target or trajectory projections for companies: {missing_companies}" + error_message = f"Missing target or trajectory projections for companies with ID: {missing_companies}" logger.error(error_message) raise ValueError(error_message) diff --git a/ITR/data/template.py b/ITR/data/template.py index 3aaade11..93d150a6 100644 --- a/ITR/data/template.py +++ b/ITR/data/template.py @@ -47,7 +47,8 @@ def ITR_country_to_region(country): if 'Asia' in region: return 'Asia' return 'Global' - + + class TemplateProviderCompany(BaseCompanyDataProvider): """ Data provider skeleton for CSV files. This class serves primarily for testing purposes only! @@ -86,7 +87,6 @@ def _fixup_name(x): try: df = df_company_data[input_data_sheet] except KeyError as e: - f"Tabs {required_tabs} are required." logger.error(f"Tab {input_data_sheet} is required in input Excel file.") raise @@ -141,11 +141,9 @@ def _fixup_name(x): df_fundamentals[ColumnsConfig.COMPANY_MARKET_CAP] = df_fundamentals[ColumnsConfig.COMPANY_MARKET_CAP].fillna(0.5*(df_fundamentals[ColumnsConfig.COMPANY_REVENUE] * df_fundamentals['AVG_MCap_to_Reven']+df_fundamentals[ColumnsConfig.COMPANY_TOTAL_ASSETS] * df_fundamentals['AVG_MCap_to_Assets'])) df_fundamentals.drop(['MCap_to_Reven','MCap_to_Assets','AVG_MCap_to_Reven','AVG_MCap_to_Assets'], axis=1, inplace=True) # deleting temporary columns - if missing_cap_ids is not None: - def custom_formatwarning(msg, *args, **kwargs): - return str(msg) + '\n' # ignore everything except the message - warnings.formatwarning = custom_formatwarning - warnings.warn(f"Market capitalisation was missing for {missing_cap_ids}.\nSo the values were calculated using the average MCap/Rev and MCap/Assets from available companies.\nScript is still running") + if missing_cap_ids: + logger.warning(f"Missing market capitalisation values are estimated for companies with ID: " + f"{missing_cap_ids}.") # df_fundamentals now ready for conversion to list of models @@ -182,18 +180,45 @@ def custom_formatwarning(msg, *args, **kwargs): test_target_sheet = TabsConfig.TEMPLATE_TARGET_DATA try: df_target_data = df_company_data[test_target_sheet].set_index('company_id').convert_dtypes() - except KeyError as e: + except KeyError: logger.error(f"Tab {test_target_sheet} is required in input Excel file.") raise - # TODO: need to fix Pydantic definition or data to allow optional int. In the mean time... - df_target_data.loc[df_target_data.target_start_year.isna(), 'target_start_year'] = 2020 - df_target_data.loc[df_target_data.netzero_year.isna(), 'netzero_year'] = 2050 + df_target_data = self._validate_target_data(df_target_data) # company_id, netzero_year, target_type, target_scope, target_start_year, target_base_year, target_base_year_qty, target_base_year_unit, target_year, target_reduction_ambition # df_target_data now ready for conversion to model for each company return self._company_df_to_model(df_fundamentals, df_target_data, df_historic_data) + def _validate_target_data(self, target_data: pd.DataFrame) -> pd.DataFrame: + """ + Performs checks on the supplied target data. Some values are put in to make the tool function. + :param target_data: + :return: + """ + # TODO: need to fix Pydantic definition or data to allow optional int. In the mean time... + c_ids_without_start_year = list(target_data[target_data['target_start_year'].isna()].index) + if c_ids_without_start_year: + target_data.loc[target_data.target_start_year.isna(), 'target_start_year'] = 2021 + logger.warning(f"Missing target start year set to 2021 for companies with ID: {c_ids_without_start_year}") + + c_ids_invalid_netzero_year = list(target_data[target_data['netzero_year'] > 2050].index) + if c_ids_invalid_netzero_year: + error_message = f"Invalid net-zero target years (>2050) are entered for companies with ID: " \ + f"{c_ids_without_netzero_year}" + logger.error(error_message) + raise ValueError(error_message) + target_data.loc[target_data.netzero_year.isna(), 'netzero_year'] = 2050 + + c_ids_with_increase_target = list(target_data[target_data['target_reduction_ambition'] < 0].index) + if c_ids_with_increase_target: + error_message = f"Negative target reduction ambition is invalid and entered for companies with ID: " \ + f"{c_ids_with_increase_target}" + logger.error(error_message) + raise ValueError(error_message) + + return target_data + def _convert_series_to_IProjections(self, projections: pd.Series) -> [IProjection]: """ Converts a Pandas Series to a list of IProjection @@ -215,10 +240,6 @@ def _company_df_to_model(self, df_fundamentals: pd.DataFrame, :param df_historic_data: pandas Dataframe with historic emissions, intensity, and production information :return: A list containing the ICompanyData objects """ - logger = logging.getLogger(__name__) - # set NaN to None since NaN is float instance - df_fundamentals = df_fundamentals.where(pd.notnull(df_fundamentals), None).replace(to_replace=np.nan, value=None) - companies_data_dict = df_fundamentals.to_dict(orient="records") model_companies: List[ICompanyData] = [] for company_data in companies_data_dict: @@ -231,12 +252,6 @@ def _company_df_to_model(self, df_fundamentals: pd.DataFrame, # the ghg_s1s2 and ghg_s3 variables are values "as of" the financial data # TODO pull ghg_s1s2 and ghg_s3 from historic data as appropriate - # v = df_fundamentals[df_fundamentals[ColumnsConfig.COMPANY_ID]==company_id][ColumnsConfig.GHG_SCOPE12].squeeze() - # company_data[ColumnsConfig.GHG_SCOPE12] = Q_(v or np.nan, ureg(units)) - # v = df_fundamentals[df_fundamentals[ColumnsConfig.COMPANY_ID]==company_id][ColumnsConfig.GHG_SCOPE3].squeeze() - # company_data[ColumnsConfig.GHG_SCOPE3] = Q_(v or np.nan, ureg(units)) - - # df.loc[[index]] is like df.loc[index, :] except it always returns a DataFrame and not a Series when there's only one row if df_historic_data is not None: company_data[ColumnsConfig.HISTORIC_DATA] = self._convert_historic_data( df_historic_data.loc[[company_data[ColumnsConfig.COMPANY_ID]]].reset_index()).dict() @@ -261,9 +276,9 @@ def _company_df_to_model(self, df_fundamentals: pd.DataFrame, company_data[ColumnsConfig.COMPANY_MARKET_CAP] = np.nan model_companies.append(ICompanyData.parse_obj(company_data)) - except ValidationError as e: + except ValidationError: logger.warning( - f"EX {e}: (one of) the input(s) of company %s is invalid and will be skipped" % company_data[ + f"(One of) the input(s) of company %s is invalid and will be skipped" % company_data[ ColumnsConfig.COMPANY_NAME]) continue return model_companies @@ -285,7 +300,7 @@ def _get_projection(self, company_ids: List[str], projections: pd.DataFrame, missing_companies = [company_id for company_id in company_ids if company_id not in projections.index] if missing_companies: - error_message = f"Missing target or trajectory projections for companies: {missing_companies}" + error_message = f"Missing target or trajectory projections for companies with ID: {missing_companies}" logger.error(error_message) raise ValueError(error_message) diff --git a/ITR/interfaces.py b/ITR/interfaces.py index 62a3ba19..b1a15271 100644 --- a/ITR/interfaces.py +++ b/ITR/interfaces.py @@ -406,7 +406,7 @@ class IHistoricData(PintModel): class ITargetData(PintModel): netzero_year: Optional[int] - target_type: Union[Literal['intensity'], Literal['absolute'], Literal['other']] + target_type: Union[Literal['intensity'], Literal['absolute'], Literal['Intensity'], Literal['Absolute']] target_scope: EScope target_start_year: Optional[int] target_base_year: int @@ -416,6 +416,12 @@ class ITargetData(PintModel): target_base_year_unit: str target_reduction_pct: float + @validator('target_end_year') + def must_be_greater_than_2022(cls, v): + if v < 2023: + raise ValueError("Target end year must be greater than 2022") + return v + class ICompanyData(PintModel): company_name: str diff --git a/test/test_interfaces.py b/test/test_interfaces.py index a6a02ac2..915015f2 100644 --- a/test/test_interfaces.py +++ b/test/test_interfaces.py @@ -5,7 +5,8 @@ from ITR.data.osc_units import ureg, Q_, PA_ -from ITR.interfaces import EScope, PowerGeneration, IntensityMetric, IProjection, IBenchmark, ICompanyData, ICompanyEIProjectionsScopes, ICompanyEIProjections +from ITR.interfaces import EScope, PowerGeneration, IntensityMetric, IProjection, IBenchmark, ICompanyData, \ + ICompanyEIProjectionsScopes, ICompanyEIProjections, ITargetData class TestInterfaces(unittest.TestCase): @@ -58,3 +59,30 @@ def test_ICompanyData(self): base_year_production=71500001.3960884, company_revenue=7370536918 ) + + def test_ITargetData(self): + target_data = ITargetData( + netzero_year=2022, + target_type='Absolute', + target_scope=EScope.S1S2, + target_start_year=2020, + target_base_year=2018, + target_end_year=2040, + target_base_year_qty=2.0, + target_base_year_unit='t CO2', + target_reduction_pct=0.2 + ) + + def test_fail_ITargetData(self): + with self.assertRaises(ValueError): + target_data = ITargetData( + netzero_year=2022, + target_type='absolute', + target_scope=EScope.S1S2, + target_start_year=2020, + target_base_year=2018, + target_end_year=2020, # This value should be larger than 2022 + target_base_year_qty=2.0, + target_base_year_unit='t CO2', + target_reduction_pct=0.2 + ) From 42696a5871312efb9b163b5fda781e68c9ae5fc9 Mon Sep 17 00:00:00 2001 From: David Kroon <35101727+dp90@users.noreply.github.com> Date: Fri, 17 Jun 2022 09:52:44 +0200 Subject: [PATCH 222/345] Refactor logging formatting Signed-off-by: David Kroon <35101727+dp90@users.noreply.github.com> Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- ITR/data/data_warehouse.py | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/ITR/data/data_warehouse.py b/ITR/data/data_warehouse.py index b592021e..23a11c41 100644 --- a/ITR/data/data_warehouse.py +++ b/ITR/data/data_warehouse.py @@ -8,13 +8,12 @@ from ITR.interfaces import ICompanyAggregates from ITR.data.data_providers import CompanyDataProvider, ProductionBenchmarkDataProvider, IntensityBenchmarkDataProvider -from ITR.configs import ColumnsConfig, TemperatureScoreConfig - +from ITR.configs import ColumnsConfig, TemperatureScoreConfig, LoggingConfig logger = logging.getLogger(__name__) logger.setLevel(logging.INFO) -formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s') +formatter = logging.Formatter(LoggingConfig.FORMAT) stream_handler = logging.StreamHandler() stream_handler.setFormatter(formatter) logger.addHandler(stream_handler) From 880161916dd393cac2e6213c55df669a16dbc5bf Mon Sep 17 00:00:00 2001 From: David Kroon <35101727+dp90@users.noreply.github.com> Date: Fri, 17 Jun 2022 11:38:25 +0200 Subject: [PATCH 223/345] Add logger config with function Signed-off-by: David Kroon <35101727+dp90@users.noreply.github.com> Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- ITR/configs.py | 10 ++++++++++ ITR/data/base_providers.py | 7 +------ ITR/data/data_warehouse.py | 7 +------ ITR/data/excel.py | 7 +------ ITR/data/template.py | 7 +------ ITR/utils.py | 7 +------ 6 files changed, 15 insertions(+), 30 deletions(-) diff --git a/ITR/configs.py b/ITR/configs.py index 37673e90..1d59c16e 100644 --- a/ITR/configs.py +++ b/ITR/configs.py @@ -2,6 +2,8 @@ This file defines the constants used throughout the different classes. In order to redefine these settings whilst using the module, extend the respective config class and pass it to the class as the "constants" parameter. """ +import logging + from .interfaces import TemperatureScoreControls import pint @@ -151,3 +153,11 @@ class TemperatureScoreConfig(PortfolioAggregationConfig): class LoggingConfig: FORMAT = '%(asctime)s - %(name)s - %(levelname)s - %(message)s' + + @classmethod + def add_config_to_logger(cls, logger: logging.Logger): + logger.setLevel(logging.INFO) + formatter = logging.Formatter(cls.FORMAT) + stream_handler = logging.StreamHandler() + stream_handler.setFormatter(formatter) + logger.addHandler(stream_handler) diff --git a/ITR/data/base_providers.py b/ITR/data/base_providers.py index 6cb1236d..a4bf73d7 100644 --- a/ITR/data/base_providers.py +++ b/ITR/data/base_providers.py @@ -17,12 +17,7 @@ # TODO handling of scopes in benchmarks logger = logging.getLogger(__name__) -logger.setLevel(logging.INFO) - -formatter = logging.Formatter(LoggingConfig.FORMAT) -stream_handler = logging.StreamHandler() -stream_handler.setFormatter(formatter) -logger.addHandler(stream_handler) +LoggingConfig.add_config_to_logger(logger) class BaseProviderProductionBenchmark(ProductionBenchmarkDataProvider): diff --git a/ITR/data/data_warehouse.py b/ITR/data/data_warehouse.py index 23a11c41..8a418579 100644 --- a/ITR/data/data_warehouse.py +++ b/ITR/data/data_warehouse.py @@ -11,12 +11,7 @@ from ITR.configs import ColumnsConfig, TemperatureScoreConfig, LoggingConfig logger = logging.getLogger(__name__) -logger.setLevel(logging.INFO) - -formatter = logging.Formatter(LoggingConfig.FORMAT) -stream_handler = logging.StreamHandler() -stream_handler.setFormatter(formatter) -logger.addHandler(stream_handler) +LoggingConfig.add_config_to_logger(logger) class DataWarehouse(ABC): diff --git a/ITR/data/excel.py b/ITR/data/excel.py index 513707ed..93988d9c 100644 --- a/ITR/data/excel.py +++ b/ITR/data/excel.py @@ -15,12 +15,7 @@ IProductionRealization, IHistoricEIScopes, IHistoricData, IEmissionRealization, IEIRealization, IProjection logger = logging.getLogger(__name__) -logger.setLevel(logging.INFO) - -formatter = logging.Formatter(LoggingConfig.FORMAT) -stream_handler = logging.StreamHandler() -stream_handler.setFormatter(formatter) -logger.addHandler(stream_handler) +LoggingConfig.add_config_to_logger(logger) ureg = pint.get_application_registry() Q_ = ureg.Quantity diff --git a/ITR/data/template.py b/ITR/data/template.py index 93d150a6..b418be2d 100644 --- a/ITR/data/template.py +++ b/ITR/data/template.py @@ -21,12 +21,7 @@ df_country_regions = pd.read_csv(f"{pkg_root}/data/country_region_info.csv") logger = logging.getLogger(__name__) -logger.setLevel(logging.INFO) - -formatter = logging.Formatter(LoggingConfig.FORMAT) -stream_handler = logging.StreamHandler() -stream_handler.setFormatter(formatter) -logger.addHandler(stream_handler) +LoggingConfig.add_config_to_logger(logger) def ITR_country_to_region(country): diff --git a/ITR/utils.py b/ITR/utils.py index 54e2baee..c05f90db 100644 --- a/ITR/utils.py +++ b/ITR/utils.py @@ -10,12 +10,7 @@ from .portfolio_aggregation import PortfolioAggregationMethod logger = logging.getLogger(__name__) -logger.setLevel(logging.INFO) - -formatter = logging.Formatter(LoggingConfig.FORMAT) -stream_handler = logging.StreamHandler() -stream_handler.setFormatter(formatter) -logger.addHandler(stream_handler) +LoggingConfig.add_config_to_logger(logger) # If this file is moved, the computation of get_project_root may also need to change From caaa92f023fa81a26a3dd9ed4abd81fb8e5e218d Mon Sep 17 00:00:00 2001 From: David Kroon <35101727+dp90@users.noreply.github.com> Date: Fri, 17 Jun 2022 13:04:32 +0200 Subject: [PATCH 224/345] Set warning to error and fix failing test - target year in template test data > 2022 Signed-off-by: David Kroon <35101727+dp90@users.noreply.github.com> Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- ITR/data/template.py | 6 ++---- ITR/interfaces.py | 6 +++--- .../inputs/20220215 ITR Tool Sample Data.xlsx | Bin 82389 -> 82405 bytes 3 files changed, 5 insertions(+), 7 deletions(-) diff --git a/ITR/data/template.py b/ITR/data/template.py index b418be2d..aab0d878 100644 --- a/ITR/data/template.py +++ b/ITR/data/template.py @@ -272,10 +272,8 @@ def _company_df_to_model(self, df_fundamentals: pd.DataFrame, model_companies.append(ICompanyData.parse_obj(company_data)) except ValidationError: - logger.warning( - f"(One of) the input(s) of company %s is invalid and will be skipped" % company_data[ - ColumnsConfig.COMPANY_NAME]) - continue + logger.error(f"(One of) the input(s) of company {company_data['company_name']} is invalid") + raise return model_companies # Workaround for bug (https://github.com/pandas-dev/pandas/issues/20824) in Pandas where NaN are treated as zero diff --git a/ITR/interfaces.py b/ITR/interfaces.py index b1a15271..f1d90554 100644 --- a/ITR/interfaces.py +++ b/ITR/interfaces.py @@ -2,7 +2,7 @@ import pandas as pd from enum import Enum from typing import Optional, Dict, List, Literal, Union -from pydantic import BaseModel, parse_obj_as, validator +from pydantic import BaseModel, parse_obj_as, validator, root_validator from pint import Quantity from dataclasses import dataclass from typing import Callable @@ -416,9 +416,9 @@ class ITargetData(PintModel): target_base_year_unit: str target_reduction_pct: float - @validator('target_end_year') + @root_validator def must_be_greater_than_2022(cls, v): - if v < 2023: + if v['target_end_year'] < 2023: raise ValueError("Target end year must be greater than 2022") return v diff --git a/test/inputs/20220215 ITR Tool Sample Data.xlsx b/test/inputs/20220215 ITR Tool Sample Data.xlsx index d74db21d81737e0e9801dcf16eb4881d1dd4e7b1..5d17a13bbd2f44bc65390d0f92075a8aa03d568e 100644 GIT binary patch delta 8997 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 delta 9015 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�gI|MFA{(a! zoRxFJNg!WYho_dw@KD(0jf`VPDVRX*>L;{E;^Kmo=cq(Hf=(LpqqKG8DHw`A(CXR6 zRLKZYzfBi%LRmP4_IwgvlYMH%*SYi} zFU0Y}xXZ@tjtNS7?B=d;>X0uG6pK6C#%=#drv|H<1}dW%P;6xyMnYkCOfMb9vG`Fh zoQ*rIwQ!NefL|oG1Ov{T1|y3liXK+NDW2V$q6Uu#)0sh{=rD|G%XB1t48?3fE>Zm* z?UosW3M~F@)=RHq2FRcgj9LoWXL(T$Zi?9>Cn@_olRTeO>gXZVua=tWO^7Hdis)Sh zHT-{gYl0*67Tz7l{ehha=h#f$7g9SEPUTZoH+@!9N{hgb&E~hnmbN)Idcr+9j~9Dc zUrF`g82J^A2~ROjBIKupr$hqD>@EB5V`$2Z@ zu56dChMK{`nA$mFBVg%LZ;hQs6nFnT6}v3wdLJ*yv8%caQld}BuK_l4?n`C%Yc!)> zobkXsNK*;$`?i_gpiz|7ZfK6(<#J-rdvMh>zy9#%jT42kvW8+c(~y5;V}q3{g{o8& zYgw2wM9!*}Q>qEdS{AR|q@D?M-~{Pfe6t`>cY-K-2-#iKy^AR3z`NsbEH4OO5mz6| z`jhhNuvykG{}uubjNw#Zp-(icf*%b>W7(raj;iAV%N6t_S$LD;&It7;Bk3U2K1#+} zVYY9(!T4`W0%tw)?Gzq!?zja4-L4;=Mi&{gcl&Gv(i3p-x3u z406e{@c>a%q<-_lJV-Sdg*k{7#fghu2~hL$P~n|gC)(ht;E$rt`v|A#-CN}s2%T%u z!z1I0@pfz&a}q8t%H5MD%@reu^br49>eMs5q`^l%lEm68lsP0DRn*8L zy`ThSxZ*XPG$BrW3-{I%_AO59+(1o_s;U=A`$2~OsdtSO9$ZxF$53jDbXrzd7AXFHG1T)bEJRFmHKV=V7i zlv9;oA(;{3I7dDKaM{Xo%;I1CE)!-wFL@H`AypJ7Y!4bBJ48>MOEjEV>4n?=ahLVm za4g`zDMK%D5O(69S}@TMr9XY3UH^>I0Dp)D!7>>EdYCH+;DK#20zI%iX#fNE9v9$f znPLI}03*F7B-pOS6(0};pp7(kkEKW!9zmr@M+IM@50tVO zk{X=QJIlDupr8-x$>R@8e!wHS-8#2+y>QIeAN$aBhD9op^E0;r!?S<2E1+KV$iJh< zWBxn#9qDa*V4zFsfB~InKR}+jo@!xjwe&-xaz(E3Rp-db!Z8AeYx|bj^5tXsW!f0( zB@N;giz=f?=*UxB=Muf&j4`Rj&RSDq)M;N6*-Tyth3@<2a0)p`w)n{@*?`=m0)|IU z{Ef%-$5~R6E%lQP1aLYTt`LnBrgO6i*PbE2wPXypY?IZe!_WMh7Q2s-AhydiY|Mh7Ug$m`rFV9E+Z~>wKAK(OgA_{QP z{^x@b%Ku^3bo+-n9?6U<==Tpj{g*DTMADC7^kM)Qz=ElZ0dhbjEJh5F0BT|VVt_pA z^BGv4I6#w+5X|LK60NC1y$|8r*Xe`QGQA!Sg(P9>0m_|LZJ|N2II_}3rgMhOEZ zBME@f5>WtHzBup*79j};p;ZF^(>ewK5NsXEfVzqbvylQ=Vf<3a(5=F(r2q&3hc!t7 z(y014{|-?}1LS`ZMu7j{P6@))qyaYAf-LX|jTRSxB{2bHe}P9%`w!Xx6qIaK6cpnB zo`T|z2b+)vq><4jkU`$?U|KSO9I6WWzk2FrkV$Z&gdt=ADb$BYFeX{R5OsqF<}V8{ z!+4~DN2nhdV2!fCW0(iBf!4(Mk5XzFp&ZhWCgy*IAd8F-$b==xA+uKvn~(!EQ5$(- llX3tBOi&&WLha!Hw*f^q(BK09WB0H;K#sX4gftrE{{d+rxR3w< From e7a89858df50049a519a22915d173f9d9e5cf8c9 Mon Sep 17 00:00:00 2001 From: David Kroon <35101727+dp90@users.noreply.github.com> Date: Wed, 25 May 2022 17:19:03 +0200 Subject: [PATCH 225/345] Update vulnerability scan Signed-off-by: David Kroon <35101727+dp90@users.noreply.github.com> Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- .github/workflows/{ossaudit.yml => pip-audit.yml} | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) rename .github/workflows/{ossaudit.yml => pip-audit.yml} (76%) diff --git a/.github/workflows/ossaudit.yml b/.github/workflows/pip-audit.yml similarity index 76% rename from .github/workflows/ossaudit.yml rename to .github/workflows/pip-audit.yml index 292560c4..cec12edd 100644 --- a/.github/workflows/ossaudit.yml +++ b/.github/workflows/pip-audit.yml @@ -5,7 +5,7 @@ name: OSS Audit on: push: - branches: [ main, develop ] + branches: [ main, develop, update_vulnerability_scan ] pull_request: branches: [ main, develop ] @@ -25,16 +25,14 @@ jobs: python-version: ${{ matrix.python-version }} - name: Install dependencies run: | - pip install ossaudit + pip install pip-audit - name: Run OSS Audit id: run_oss_audit run: | - echo ::set-output name=audit::$(ossaudit -f requirements.txt) + echo ::set-output name=audit::$(pip-audit -r requirements.txt) - name: Check vulnerabilities - if: ${{!startsWith(steps.run_oss_audit.outputs.audit, 'Found 0 vulnerabilities')}} + if: ${{!startsWith(steps.run_oss_audit.outputs.audit, 'No known vulnerabilities found')}} run: | echo ${{steps.run_oss_audit.outputs.audit}} echo "::warning::Vulnerabilities found in the dependencies" - exit 1 - - + exit 1 \ No newline at end of file From 5a45093c97615578c3ef3435bcf84d600ed14e97 Mon Sep 17 00:00:00 2001 From: David Kroon <35101727+dp90@users.noreply.github.com> Date: Wed, 25 May 2022 17:34:29 +0200 Subject: [PATCH 226/345] Edit github action commands Signed-off-by: David Kroon <35101727+dp90@users.noreply.github.com> Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- .github/workflows/pip-audit.yml | 16 +++++----------- requirements.txt | 1 + 2 files changed, 6 insertions(+), 11 deletions(-) diff --git a/.github/workflows/pip-audit.yml b/.github/workflows/pip-audit.yml index cec12edd..774c3419 100644 --- a/.github/workflows/pip-audit.yml +++ b/.github/workflows/pip-audit.yml @@ -1,7 +1,7 @@ # This workflow will install Python dependencies, run tests and lint with a variety of Python versions # For more information see: https://help.github.com/actions/language-and-framework-guides/using-python-with-github-actions -name: OSS Audit +name: Dependency Vulnerability Audit on: push: @@ -25,14 +25,8 @@ jobs: python-version: ${{ matrix.python-version }} - name: Install dependencies run: | - pip install pip-audit - - name: Run OSS Audit - id: run_oss_audit + pip install --upgrade pip pip-audit + - name: Run pip-audit + id: run_pip_audit run: | - echo ::set-output name=audit::$(pip-audit -r requirements.txt) - - name: Check vulnerabilities - if: ${{!startsWith(steps.run_oss_audit.outputs.audit, 'No known vulnerabilities found')}} - run: | - echo ${{steps.run_oss_audit.outputs.audit}} - echo "::warning::Vulnerabilities found in the dependencies" - exit 1 \ No newline at end of file + pip-audit -r requirements.txt \ No newline at end of file diff --git a/requirements.txt b/requirements.txt index 0d77ba2f..9663d16c 100644 --- a/requirements.txt +++ b/requirements.txt @@ -17,3 +17,4 @@ sphinx-autoapi==1.8.4 sphinx-autodoc-typehints==1.10.3 sphinx-rtd-theme==0.4.3 xlrd==2.0.1 +ipython==7.25.0 \ No newline at end of file From 042af5f060f8b4e15baaca0f6b6240524ae9ad20 Mon Sep 17 00:00:00 2001 From: David Kroon <35101727+dp90@users.noreply.github.com> Date: Wed, 25 May 2022 17:37:32 +0200 Subject: [PATCH 227/345] Fix vulnerability Signed-off-by: David Kroon <35101727+dp90@users.noreply.github.com> Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- requirements.txt | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/requirements.txt b/requirements.txt index 9663d16c..fe79fede 100644 --- a/requirements.txt +++ b/requirements.txt @@ -16,5 +16,4 @@ Sphinx==3.0.3 sphinx-autoapi==1.8.4 sphinx-autodoc-typehints==1.10.3 sphinx-rtd-theme==0.4.3 -xlrd==2.0.1 -ipython==7.25.0 \ No newline at end of file +xlrd==2.0.1 \ No newline at end of file From 8c6bce8ce8410156039fcd4d65686913bfac15de Mon Sep 17 00:00:00 2001 From: David Kroon <35101727+dp90@users.noreply.github.com> Date: Wed, 25 May 2022 17:48:32 +0200 Subject: [PATCH 228/345] Remove temporary test branch from github action Signed-off-by: David Kroon <35101727+dp90@users.noreply.github.com> Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- .github/workflows/pip-audit.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/pip-audit.yml b/.github/workflows/pip-audit.yml index 774c3419..c166a87a 100644 --- a/.github/workflows/pip-audit.yml +++ b/.github/workflows/pip-audit.yml @@ -5,7 +5,7 @@ name: Dependency Vulnerability Audit on: push: - branches: [ main, develop, update_vulnerability_scan ] + branches: [ main, develop ] pull_request: branches: [ main, develop ] From 4f16d00b1761e4f9153b48143f010b4f0d70196e Mon Sep 17 00:00:00 2001 From: Joris Cramwinckel <8858036+joriscram@users.noreply.github.com> Date: Mon, 25 Apr 2022 11:48:49 +0200 Subject: [PATCH 229/345] fall back if trajectory score is known and target score is nan -> temp score = trajectory score Signed-off-by: Joris Cramwinckel <8858036+joriscram@users.noreply.github.com> Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- ITR/temperature_score.py | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/ITR/temperature_score.py b/ITR/temperature_score.py index 86162717..061391e1 100644 --- a/ITR/temperature_score.py +++ b/ITR/temperature_score.py @@ -73,11 +73,17 @@ def get_score(self, scorable_row: pd.Series) -> Tuple[ score = target_temperature_score * scorable_row[self.c.COLS.TARGET_PROBABILITY] + \ trajectory_temperature_score * (1 - scorable_row[self.c.COLS.TARGET_PROBABILITY]) + # Safeguard: If score is NaN due to missing data assign default score. if np.isnan(score): - default_score = self.get_default_score(scorable_row) - return default_score, trajectory_temperature_score, trajectory_overshoot_ratio, target_temperature_score, target_overshoot_ratio, Q_( - 1.0, ureg.delta_degC) + if trajectory_temperature_score: + # trajectory only + return trajectory_temperature_score, trajectory_temperature_score, trajectory_overshoot_ratio, target_temperature_score, target_overshoot_ratio, Q_( + 0.0, ureg.delta_degC) + else: + default_score = self.get_default_score(scorable_row) + return default_score, trajectory_temperature_score, trajectory_overshoot_ratio, target_temperature_score, target_overshoot_ratio, Q_( + 1.0, ureg.delta_degC) return score, trajectory_temperature_score, trajectory_overshoot_ratio, target_temperature_score, target_overshoot_ratio, Q_( 0.0, ureg.delta_degC) From a02a2e4cff03e3a03fb852e2fb9fd4c29d312b1b Mon Sep 17 00:00:00 2001 From: Joris Cramwinckel <8858036+joriscram@users.noreply.github.com> Date: Mon, 25 Apr 2022 12:17:55 +0200 Subject: [PATCH 230/345] introduced score result types Signed-off-by: Joris Cramwinckel <8858036+joriscram@users.noreply.github.com> Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- ITR/configs.py | 2 +- ITR/interfaces.py | 6 ++++++ ITR/temperature_score.py | 39 ++++++++++++++++----------------------- 3 files changed, 23 insertions(+), 24 deletions(-) diff --git a/ITR/configs.py b/ITR/configs.py index 1d59c16e..119afb90 100644 --- a/ITR/configs.py +++ b/ITR/configs.py @@ -138,7 +138,7 @@ class PortfolioAggregationConfig: class TemperatureScoreConfig(PortfolioAggregationConfig): - TEMPERATURE_RESULTS = 'temperature_results' + SCORE_RESULT_TYPE = 'score_result_type' # Unfortunately we need to cross over to interfaces.py CONTROLS_CONFIG = TemperatureScoreControls( base_year=2019, diff --git a/ITR/interfaces.py b/ITR/interfaces.py index f1d90554..232aa219 100644 --- a/ITR/interfaces.py +++ b/ITR/interfaces.py @@ -191,6 +191,12 @@ class ECarbonBudgetScenario(Enum): MEAN = "Average" +class EScoreResultType(Enum): + DEFAULT = "Default" + TRAJECTORY_ONLY = "Trajectory only" + COMPLETE = "Complete" + + class AggregationContribution(PintModel): company_name: str company_id: str diff --git a/ITR/temperature_score.py b/ITR/temperature_score.py index 061391e1..46c61ad8 100644 --- a/ITR/temperature_score.py +++ b/ITR/temperature_score.py @@ -8,7 +8,8 @@ from pint import Quantity from .data.osc_units import ureg, Q_, PA_ -from ITR.interfaces import EScope, ETimeFrames, Aggregation, AggregationContribution, ScoreAggregation, \ +from ITR.interfaces import EScope, ETimeFrames, EScoreResultType, Aggregation, AggregationContribution, \ + ScoreAggregation, \ ScoreAggregationScopes, ScoreAggregations, PortfolioCompany from ITR.portfolio_aggregation import PortfolioAggregation, PortfolioAggregationMethod from ITR.configs import TemperatureScoreConfig @@ -43,18 +44,13 @@ def __init__(self, time_frames: List[ETimeFrames], scopes: List[EScope], self.grouping = grouping def get_score(self, scorable_row: pd.Series) -> Tuple[ - Quantity['delta_degC'], Quantity['delta_degC'], float, Quantity['delta_degC'], float, Quantity['delta_degC']]: + Quantity['delta_degC'], Quantity['delta_degC'], float, Quantity['delta_degC'], float, EScoreResultType]: """ Get the temperature score for a certain target based on the annual reduction rate and the regression parameters. :param scorable_row: The target as a row of a data frame :return: The temperature score, which is a tuple of (TEMPERATURE_SCORE,TRAJECTORY_SCORE,TRAJECTORY_OVERSHOOT,TARGET_SCORE,TARGET_OVERSHOOT,TEMPERATURE_RESULTS]) """ - # if either cum target or trajectory is zero return default. - if np.isnan(scorable_row[self.c.COLS.CUMULATIVE_TARGET].m) or \ - np.isnan(scorable_row[self.c.COLS.CUMULATIVE_TRAJECTORY].m): - return self.get_default_score(scorable_row), np.nan, np.nan, np.nan, np.nan, Q_(1, ureg.delta_degC) - if scorable_row[self.c.COLS.CUMULATIVE_BUDGET].m > 0: target_overshoot_ratio = scorable_row[self.c.COLS.CUMULATIVE_TARGET] / scorable_row[ self.c.COLS.CUMULATIVE_BUDGET] @@ -79,16 +75,15 @@ def get_score(self, scorable_row: pd.Series) -> Tuple[ if trajectory_temperature_score: # trajectory only return trajectory_temperature_score, trajectory_temperature_score, trajectory_overshoot_ratio, target_temperature_score, target_overshoot_ratio, Q_( - 0.0, ureg.delta_degC) + 0.0, EScoreResultType.TRAJECTORY_ONLY) else: default_score = self.get_default_score(scorable_row) return default_score, trajectory_temperature_score, trajectory_overshoot_ratio, target_temperature_score, target_overshoot_ratio, Q_( - 1.0, ureg.delta_degC) + 1.0, EScoreResultType.DEFAULT) return score, trajectory_temperature_score, trajectory_overshoot_ratio, target_temperature_score, target_overshoot_ratio, Q_( - 0.0, ureg.delta_degC) + 0.0, EScoreResultType.COMPLETE) - def get_ghc_temperature_score(self, row: pd.Series, company_data: pd.DataFrame) -> Tuple[ - Quantity['delta_degC'], Quantity['delta_degC']]: + def get_ghc_temperature_score(self, row: pd.Series, company_data: pd.DataFrame) -> Quantity['delta_degC']: """ Get the aggregated temperature score and a temperature result, which indicates how much of the score is based on the default score for a certain company based on the emissions of company. @@ -97,20 +92,18 @@ def get_ghc_temperature_score(self, row: pd.Series, company_data: pd.DataFrame) :return: The aggregated temperature score for a company """ if row[self.c.COLS.SCOPE] != EScope.S1S2S3: - return row[self.c.COLS.TEMPERATURE_SCORE], row[self.c.TEMPERATURE_RESULTS] + return row[self.c.COLS.TEMPERATURE_SCORE] s1s2 = company_data.loc[(row[self.c.COLS.COMPANY_ID], row[self.c.COLS.TIME_FRAME], EScope.S1S2)] s3 = company_data.loc[(row[self.c.COLS.COMPANY_ID], row[self.c.COLS.TIME_FRAME], EScope.S3)] try: # If the s3 emissions are less than 40 percent, we'll ignore them altogether, if not, we'll weigh them if s3[self.c.COLS.GHG_SCOPE3] / (s1s2[self.c.COLS.GHG_SCOPE12] + s3[self.c.COLS.GHG_SCOPE3]) < 0.4: - return s1s2[self.c.COLS.TEMPERATURE_SCORE], s1s2[self.c.TEMPERATURE_RESULTS] + return s1s2[self.c.COLS.TEMPERATURE_SCORE] else: company_emissions = s1s2[self.c.COLS.GHG_SCOPE12] + s3[self.c.COLS.GHG_SCOPE3] return ((s1s2[self.c.COLS.TEMPERATURE_SCORE] * s1s2[self.c.COLS.GHG_SCOPE12] + - s3[self.c.COLS.TEMPERATURE_SCORE] * s3[self.c.COLS.GHG_SCOPE3]) / company_emissions, - (s1s2[self.c.TEMPERATURE_RESULTS] * s1s2[self.c.COLS.GHG_SCOPE12] + - s3[self.c.TEMPERATURE_RESULTS] * s3[self.c.COLS.GHG_SCOPE3]) / company_emissions) + s3[self.c.COLS.TEMPERATURE_SCORE] * s3[self.c.COLS.GHG_SCOPE3]) / company_emissions) except ZeroDivisionError: raise ValueError("The mean of the S1+S2 plus the S3 emissions is zero") @@ -147,12 +140,12 @@ def _prepare_data(self, data: pd.DataFrame): # See https://github.com/hgrecco/pint-pandas/issues/114 scoring_data[self.c.COLS.TEMPERATURE_SCORE], scoring_data[self.c.COLS.TRAJECTORY_SCORE], scoring_data[ self.c.COLS.TRAJECTORY_OVERSHOOT], scoring_data[self.c.COLS.TARGET_SCORE], scoring_data[ - self.c.COLS.TARGET_OVERSHOOT], scoring_data[self.c.TEMPERATURE_RESULTS] = zip(*scoring_data.apply( + self.c.COLS.TARGET_OVERSHOOT], scoring_data[self.c.SCORE_RESULT_TYPE] = zip(*scoring_data.apply( lambda row: self.get_score(row), axis=1)) # Fix up dtypes for the new columns we just added for c in [self.c.COLS.TEMPERATURE_SCORE, self.c.COLS.TRAJECTORY_SCORE, self.c.COLS.TRAJECTORY_SCORE, - self.c.COLS.TARGET_SCORE, self.c.TEMPERATURE_RESULTS]: + self.c.COLS.TARGET_SCORE]: scoring_data[c] = scoring_data[c].astype('pint[delta_degC]') scoring_data = self.cap_scores(scoring_data) @@ -168,12 +161,12 @@ def _calculate_company_score(self, data): # Calculate the GHC company_data = data[ [self.c.COLS.COMPANY_ID, self.c.COLS.TIME_FRAME, self.c.COLS.SCOPE, self.c.COLS.GHG_SCOPE12, - self.c.COLS.GHG_SCOPE3, self.c.COLS.TEMPERATURE_SCORE, self.c.TEMPERATURE_RESULTS] + self.c.COLS.GHG_SCOPE3, self.c.COLS.TEMPERATURE_SCORE, self.c.SCORE_RESULT_TYPE] ].groupby([self.c.COLS.COMPANY_ID, self.c.COLS.TIME_FRAME, self.c.COLS.SCOPE]).mean() with warnings.catch_warnings(): warnings.simplefilter("ignore") - data[self.c.COLS.TEMPERATURE_SCORE], data[self.c.TEMPERATURE_RESULTS] = zip(*data.apply( + data[self.c.COLS.TEMPERATURE_SCORE] = zip(*data.apply( lambda row: self.get_ghc_temperature_score(row, company_data), axis=1 )) return data @@ -263,8 +256,8 @@ def _get_score_aggregation(self, data: pd.DataFrame, time_frame: ETimeFrames, sc score_aggregation = ScoreAggregation( grouped={}, all=score_aggregation_all, - influence_percentage=self._calculate_aggregate_score( - filtered_data, self.c.TEMPERATURE_RESULTS, self.aggregation_method).sum().m * 100) + influence_percentage=self._calculate_aggregate_score( # TODO fix default percentage + filtered_data, self.c.SCORE_RESULT_TYPE, self.aggregation_method).sum().m * 100) # If there are grouping column(s) we'll group in pandas and pass the results to the aggregation if len(self.grouping) > 0: From 591d91049ddac70c103b17041bac47b403f43ba3 Mon Sep 17 00:00:00 2001 From: David Kroon <35101727+dp90@users.noreply.github.com> Date: Mon, 25 Apr 2022 14:45:18 +0200 Subject: [PATCH 231/345] Numeric binary default temp score input in aggregation Signed-off-by: David Kroon <35101727+dp90@users.noreply.github.com> Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- ITR/temperature_score.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/ITR/temperature_score.py b/ITR/temperature_score.py index 46c61ad8..01048d68 100644 --- a/ITR/temperature_score.py +++ b/ITR/temperature_score.py @@ -253,11 +253,12 @@ def _get_score_aggregation(self, data: pd.DataFrame, time_frame: ETimeFrames, sc score_aggregation_all, \ filtered_data[self.c.COLS.CONTRIBUTION_RELATIVE], \ filtered_data[self.c.COLS.CONTRIBUTION] = self._get_aggregations(filtered_data, total_companies) + filtered_data['DEFAULT'] = 1.0 * filtered_data[self.c.COLS.SCORE_RESULT_TYPE] == EScoreResultType.DEFAULT score_aggregation = ScoreAggregation( grouped={}, all=score_aggregation_all, - influence_percentage=self._calculate_aggregate_score( # TODO fix default percentage - filtered_data, self.c.SCORE_RESULT_TYPE, self.aggregation_method).sum().m * 100) + influence_percentage=self._calculate_aggregate_score( + filtered_data, 'DEFAULT', self.aggregation_method).sum().m * 100) # If there are grouping column(s) we'll group in pandas and pass the results to the aggregation if len(self.grouping) > 0: From fe3936e00dc8e4230ed1ace5aea49bace09a41b7 Mon Sep 17 00:00:00 2001 From: Joris Cramwinckel <8858036+joriscram@users.noreply.github.com> Date: Mon, 25 Apr 2022 16:02:57 +0200 Subject: [PATCH 232/345] fix quantity from scoretype Signed-off-by: Joris Cramwinckel <8858036+joriscram@users.noreply.github.com> Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- ITR/temperature_score.py | 451 ++++++++++++++++++++------------------- 1 file changed, 229 insertions(+), 222 deletions(-) diff --git a/ITR/temperature_score.py b/ITR/temperature_score.py index 01048d68..d5f88d04 100644 --- a/ITR/temperature_score.py +++ b/ITR/temperature_score.py @@ -69,246 +69,253 @@ def get_score(self, scorable_row: pd.Series) -> Tuple[ score = target_temperature_score * scorable_row[self.c.COLS.TARGET_PROBABILITY] + \ trajectory_temperature_score * (1 - scorable_row[self.c.COLS.TARGET_PROBABILITY]) - # Safeguard: If score is NaN due to missing data assign default score. if np.isnan(score): if trajectory_temperature_score: # trajectory only - return trajectory_temperature_score, trajectory_temperature_score, trajectory_overshoot_ratio, target_temperature_score, target_overshoot_ratio, Q_( - 0.0, EScoreResultType.TRAJECTORY_ONLY) - else: - default_score = self.get_default_score(scorable_row) - return default_score, trajectory_temperature_score, trajectory_overshoot_ratio, target_temperature_score, target_overshoot_ratio, Q_( - 1.0, EScoreResultType.DEFAULT) - return score, trajectory_temperature_score, trajectory_overshoot_ratio, target_temperature_score, target_overshoot_ratio, Q_( - 0.0, EScoreResultType.COMPLETE) - - def get_ghc_temperature_score(self, row: pd.Series, company_data: pd.DataFrame) -> Quantity['delta_degC']: - """ - Get the aggregated temperature score and a temperature result, which indicates how much of the score is based on the default score for a certain company based on the emissions of company. + return trajectory_temperature_score, trajectory_temperature_score, trajectory_overshoot_ratio, target_temperature_score, target_overshoot_ratio, EScoreResultType.TRAJECTORY_ONLY + else: + default_score = self.get_default_score(scorable_row) + return default_score, trajectory_temperature_score, trajectory_overshoot_ratio, target_temperature_score, target_overshoot_ratio, EScoreResultType.DEFAULT - :param company_data: The original data, grouped by company, time frame and scope category - :param row: The row to calculate the temperature score for (if the scope of the row isn't s1s2s3, it will return the original score) - :return: The aggregated temperature score for a company - """ - if row[self.c.COLS.SCOPE] != EScope.S1S2S3: - return row[self.c.COLS.TEMPERATURE_SCORE] - s1s2 = company_data.loc[(row[self.c.COLS.COMPANY_ID], row[self.c.COLS.TIME_FRAME], EScope.S1S2)] - s3 = company_data.loc[(row[self.c.COLS.COMPANY_ID], row[self.c.COLS.TIME_FRAME], EScope.S3)] - - try: - # If the s3 emissions are less than 40 percent, we'll ignore them altogether, if not, we'll weigh them - if s3[self.c.COLS.GHG_SCOPE3] / (s1s2[self.c.COLS.GHG_SCOPE12] + s3[self.c.COLS.GHG_SCOPE3]) < 0.4: - return s1s2[self.c.COLS.TEMPERATURE_SCORE] - else: - company_emissions = s1s2[self.c.COLS.GHG_SCOPE12] + s3[self.c.COLS.GHG_SCOPE3] - return ((s1s2[self.c.COLS.TEMPERATURE_SCORE] * s1s2[self.c.COLS.GHG_SCOPE12] + - s3[self.c.COLS.TEMPERATURE_SCORE] * s3[self.c.COLS.GHG_SCOPE3]) / company_emissions) - - except ZeroDivisionError: - raise ValueError("The mean of the S1+S2 plus the S3 emissions is zero") - - def get_default_score(self, target: pd.Series) -> Quantity['delta_degC']: - """ - :param target: The target as a row of a dataframe - :return: The temperature score - """ - return self.fallback_score + return score, trajectory_temperature_score, trajectory_overshoot_ratio, target_temperature_score, target_overshoot_ratio, EScoreResultType.COMPLETE - def _prepare_data(self, data: pd.DataFrame): - """ - Prepare the data such that it can be used to calculate the temperature score. - :param data: The original data set as a pandas data frame - :return: The extended data frame - """ - companies = data[self.c.COLS.COMPANY_ID].unique() - - # If scope S1S2S3 is in the list of scopes to calculate, we need to calculate the other two as well - scopes = self.scopes.copy() - if EScope.S1S2S3 in self.scopes and EScope.S1S2 not in self.scopes: - scopes.append(EScope.S1S2) - if EScope.S1S2S3 in scopes and EScope.S3 not in scopes: - scopes.append(EScope.S3) - - score_combinations = pd.DataFrame(list(itertools.product(*[companies, scopes, self.time_frames])), - columns=[self.c.COLS.COMPANY_ID, self.c.COLS.SCOPE, self.c.COLS.TIME_FRAME]) - scoring_data = pd.merge(left=data, right=score_combinations, how='outer', on=[self.c.COLS.COMPANY_ID]) - - with warnings.catch_warnings(): - warnings.simplefilter("ignore") - # See https://github.com/hgrecco/pint-pandas/issues/114 - scoring_data[self.c.COLS.TEMPERATURE_SCORE], scoring_data[self.c.COLS.TRAJECTORY_SCORE], scoring_data[ - self.c.COLS.TRAJECTORY_OVERSHOOT], scoring_data[self.c.COLS.TARGET_SCORE], scoring_data[ - self.c.COLS.TARGET_OVERSHOOT], scoring_data[self.c.SCORE_RESULT_TYPE] = zip(*scoring_data.apply( - lambda row: self.get_score(row), axis=1)) - - # Fix up dtypes for the new columns we just added - for c in [self.c.COLS.TEMPERATURE_SCORE, self.c.COLS.TRAJECTORY_SCORE, self.c.COLS.TRAJECTORY_SCORE, - self.c.COLS.TARGET_SCORE]: - scoring_data[c] = scoring_data[c].astype('pint[delta_degC]') - - scoring_data = self.cap_scores(scoring_data) - return scoring_data - - def _calculate_company_score(self, data): - """ - Calculate the combined s1s2s3 scores for all companies. +def get_ghc_temperature_score(self, row: pd.Series, company_data: pd.DataFrame) -> Quantity['delta_degC']: + """ + Get the aggregated temperature score and a temperature result, which indicates how much of the score is based on the default score for a certain company based on the emissions of company. - :param data: The original data set as a pandas data frame - :return: The data frame, with an updated s1s2s3 temperature score - """ - # Calculate the GHC - company_data = data[ - [self.c.COLS.COMPANY_ID, self.c.COLS.TIME_FRAME, self.c.COLS.SCOPE, self.c.COLS.GHG_SCOPE12, - self.c.COLS.GHG_SCOPE3, self.c.COLS.TEMPERATURE_SCORE, self.c.SCORE_RESULT_TYPE] - ].groupby([self.c.COLS.COMPANY_ID, self.c.COLS.TIME_FRAME, self.c.COLS.SCOPE]).mean() - - with warnings.catch_warnings(): - warnings.simplefilter("ignore") - data[self.c.COLS.TEMPERATURE_SCORE] = zip(*data.apply( - lambda row: self.get_ghc_temperature_score(row, company_data), axis=1 - )) - return data - - def calculate(self, data: Optional[pd.DataFrame] = None, - data_warehouse: Optional[DataWarehouse] = None, - portfolio: Optional[List[PortfolioCompany]] = None): - """ - Calculate the temperature for a dataframe of company data. The columns in the data frame should be a combination - of IDataProviderTarget and IDataProviderCompany. + :param company_data: The original data, grouped by company, time frame and scope category + :param row: The row to calculate the temperature score for (if the scope of the row isn't s1s2s3, it will return the original score) + :return: The aggregated temperature score for a company + """ + if row[self.c.COLS.SCOPE] != EScope.S1S2S3: + return row[self.c.COLS.TEMPERATURE_SCORE] + s1s2 = company_data.loc[(row[self.c.COLS.COMPANY_ID], row[self.c.COLS.TIME_FRAME], EScope.S1S2)] + s3 = company_data.loc[(row[self.c.COLS.COMPANY_ID], row[self.c.COLS.TIME_FRAME], EScope.S3)] + + try: + # If the s3 emissions are less than 40 percent, we'll ignore them altogether, if not, we'll weigh them + if s3[self.c.COLS.GHG_SCOPE3] / (s1s2[self.c.COLS.GHG_SCOPE12] + s3[self.c.COLS.GHG_SCOPE3]) < 0.4: + return s1s2[self.c.COLS.TEMPERATURE_SCORE] + else: + company_emissions = s1s2[self.c.COLS.GHG_SCOPE12] + s3[self.c.COLS.GHG_SCOPE3] + return ((s1s2[self.c.COLS.TEMPERATURE_SCORE] * s1s2[self.c.COLS.GHG_SCOPE12] + + s3[self.c.COLS.TEMPERATURE_SCORE] * s3[self.c.COLS.GHG_SCOPE3]) / company_emissions) - :param data: The data set (or None if the data should be retrieved) - :param data_warehouse: A list of DataProvider instances. Optional, only required if data is empty. - :param portfolio: A list of PortfolioCompany models. Optional, only required if data is empty. - :return: A data frame containing all relevant information for the targets and companies - """ - if data is None: - if data_warehouse is not None and portfolio is not None: - data = utils.get_data(data_warehouse, portfolio) - else: - raise ValueError("You need to pass and either a data set or a datawarehouse and companies") - - data = self._prepare_data(data) - - if EScope.S1S2S3 in self.scopes: - self._check_column(data, self.c.COLS.GHG_SCOPE12) - self._check_column(data, self.c.COLS.GHG_SCOPE3) - data = self._calculate_company_score(data) - - # We need to filter the scopes again, because we might have had to add a scope in the preparation step - data = data[data[self.c.COLS.SCOPE].isin(self.scopes)] - with warnings.catch_warnings(): - warnings.simplefilter("ignore") - # See https://github.com/hgrecco/pint-pandas/issues/114 - data[self.c.COLS.TEMPERATURE_SCORE] = data[self.c.COLS.TEMPERATURE_SCORE].map( - lambda x: Q_(round(x.m, 2), x.u)).astype('pint[delta_degC]') - return data - - def _get_aggregations(self, data: pd.DataFrame, total_companies: int) -> Tuple[Aggregation, pd.Series, pd.Series]: - """ - Get the aggregated score over a certain data set. Also calculate the (relative) contribution of each company + except ZeroDivisionError: + raise ValueError("The mean of the S1+S2 plus the S3 emissions is zero") - :param data: A data set, containing one row per company - :return: An aggregated score and the relative and absolute contribution of each company - """ - data = data.copy() - weighted_scores = self._calculate_aggregate_score(data, self.c.COLS.TEMPERATURE_SCORE, - self.aggregation_method) - data[self.c.COLS.CONTRIBUTION_RELATIVE] = pd.Series(weighted_scores / weighted_scores.sum(), - dtype='pint[percent]') - data[self.c.COLS.CONTRIBUTION] = weighted_scores - with warnings.catch_warnings(): - warnings.simplefilter("ignore") - contributions = data \ - .sort_values(self.c.COLS.CONTRIBUTION_RELATIVE, ascending=False) \ - .where(pd.notnull(data), 0) \ - .to_dict(orient="records") - aggregations = Aggregation( - score=weighted_scores.sum(), - proportion=len(weighted_scores) / (total_companies / 100.0), - contributions=[AggregationContribution.parse_obj(contribution) for contribution in contributions] - ), \ - data[self.c.COLS.CONTRIBUTION_RELATIVE], \ - data[self.c.COLS.CONTRIBUTION] - - return aggregations - - def _get_score_aggregation(self, data: pd.DataFrame, time_frame: ETimeFrames, scope: EScope) -> \ - Optional[ScoreAggregation]: - """ - Get a score aggregation for a certain time frame and scope, for the data set as a whole and for the different - groupings. - :param data: The whole data set - :param time_frame: A time frame - :param scope: A scope - :return: A score aggregation, containing the aggregations for the whole data set and each individual group - """ - filtered_data = data[(data[self.c.COLS.TIME_FRAME] == time_frame) & - (data[self.c.COLS.SCOPE] == scope)].copy() - filtered_data[self.grouping] = filtered_data[self.grouping].fillna("unknown") - total_companies = len(filtered_data) - if not filtered_data.empty: - score_aggregation_all, \ - filtered_data[self.c.COLS.CONTRIBUTION_RELATIVE], \ - filtered_data[self.c.COLS.CONTRIBUTION] = self._get_aggregations(filtered_data, total_companies) - filtered_data['DEFAULT'] = 1.0 * filtered_data[self.c.COLS.SCORE_RESULT_TYPE] == EScoreResultType.DEFAULT - score_aggregation = ScoreAggregation( - grouped={}, - all=score_aggregation_all, - influence_percentage=self._calculate_aggregate_score( - filtered_data, 'DEFAULT', self.aggregation_method).sum().m * 100) - - # If there are grouping column(s) we'll group in pandas and pass the results to the aggregation - if len(self.grouping) > 0: - grouped_data = filtered_data.groupby(self.grouping) - for group_names, group in grouped_data: - group_name_joined = group_names if type(group_names) == str else "-".join( - [str(group_name) for group_name in group_names]) - score_aggregation.grouped[group_name_joined], _, _ = self._get_aggregations(group.copy(), - total_companies) - return score_aggregation +def get_default_score(self, target: pd.Series) -> Quantity['delta_degC']: + """ + :param target: The target as a row of a dataframe + :return: The temperature score + """ + return self.fallback_score + + +def _prepare_data(self, data: pd.DataFrame): + """ + Prepare the data such that it can be used to calculate the temperature score. + + :param data: The original data set as a pandas data frame + :return: The extended data frame + """ + companies = data[self.c.COLS.COMPANY_ID].unique() + + # If scope S1S2S3 is in the list of scopes to calculate, we need to calculate the other two as well + scopes = self.scopes.copy() + if EScope.S1S2S3 in self.scopes and EScope.S1S2 not in self.scopes: + scopes.append(EScope.S1S2) + if EScope.S1S2S3 in scopes and EScope.S3 not in scopes: + scopes.append(EScope.S3) + + score_combinations = pd.DataFrame(list(itertools.product(*[companies, scopes, self.time_frames])), + columns=[self.c.COLS.COMPANY_ID, self.c.COLS.SCOPE, self.c.COLS.TIME_FRAME]) + scoring_data = pd.merge(left=data, right=score_combinations, how='outer', on=[self.c.COLS.COMPANY_ID]) + + with warnings.catch_warnings(): + warnings.simplefilter("ignore") + # See https://github.com/hgrecco/pint-pandas/issues/114 + scoring_data[self.c.COLS.TEMPERATURE_SCORE], scoring_data[self.c.COLS.TRAJECTORY_SCORE], scoring_data[ + self.c.COLS.TRAJECTORY_OVERSHOOT], scoring_data[self.c.COLS.TARGET_SCORE], scoring_data[ + self.c.COLS.TARGET_OVERSHOOT], scoring_data[self.c.SCORE_RESULT_TYPE] = zip(*scoring_data.apply( + lambda row: self.get_score(row), axis=1)) + + # Fix up dtypes for the new columns we just added + for c in [self.c.COLS.TEMPERATURE_SCORE, self.c.COLS.TRAJECTORY_SCORE, self.c.COLS.TRAJECTORY_SCORE, + self.c.COLS.TARGET_SCORE]: + scoring_data[c] = scoring_data[c].astype('pint[delta_degC]') + + scoring_data = self.cap_scores(scoring_data) + return scoring_data + + +def _calculate_company_score(self, data): + """ + Calculate the combined s1s2s3 scores for all companies. + + :param data: The original data set as a pandas data frame + :return: The data frame, with an updated s1s2s3 temperature score + """ + # Calculate the GHC + company_data = data[ + [self.c.COLS.COMPANY_ID, self.c.COLS.TIME_FRAME, self.c.COLS.SCOPE, self.c.COLS.GHG_SCOPE12, + self.c.COLS.GHG_SCOPE3, self.c.COLS.TEMPERATURE_SCORE, self.c.SCORE_RESULT_TYPE] + ].groupby([self.c.COLS.COMPANY_ID, self.c.COLS.TIME_FRAME, self.c.COLS.SCOPE]).mean() + + with warnings.catch_warnings(): + warnings.simplefilter("ignore") + data[self.c.COLS.TEMPERATURE_SCORE] = zip(*data.apply( + lambda row: self.get_ghc_temperature_score(row, company_data), axis=1 + )) + return data + + +def calculate(self, data: Optional[pd.DataFrame] = None, + data_warehouse: Optional[DataWarehouse] = None, + portfolio: Optional[List[PortfolioCompany]] = None): + """ + Calculate the temperature for a dataframe of company data. The columns in the data frame should be a combination + of IDataProviderTarget and IDataProviderCompany. + + :param data: The data set (or None if the data should be retrieved) + :param data_warehouse: A list of DataProvider instances. Optional, only required if data is empty. + :param portfolio: A list of PortfolioCompany models. Optional, only required if data is empty. + :return: A data frame containing all relevant information for the targets and companies + """ + if data is None: + if data_warehouse is not None and portfolio is not None: + data = utils.get_data(data_warehouse, portfolio) else: - return None + raise ValueError("You need to pass and either a data set or a datawarehouse and companies") - def aggregate_scores(self, data: pd.DataFrame) -> ScoreAggregations: - """ - Aggregate scores to create a portfolio score per time_frame (short, mid, long). + data = self._prepare_data(data) - :param data: The results of the calculate method - :return: A weighted temperature score for the portfolio - """ + if EScope.S1S2S3 in self.scopes: + self._check_column(data, self.c.COLS.GHG_SCOPE12) + self._check_column(data, self.c.COLS.GHG_SCOPE3) + data = self._calculate_company_score(data) - score_aggregations = ScoreAggregations() - for time_frame in self.time_frames: - score_aggregation_scopes = ScoreAggregationScopes() - for scope in self.scopes: - score_aggregation_scopes.__setattr__(scope.name, self._get_score_aggregation(data, time_frame, scope)) - score_aggregations.__setattr__(time_frame.value, score_aggregation_scopes) + # We need to filter the scopes again, because we might have had to add a scope in the preparation step + data = data[data[self.c.COLS.SCOPE].isin(self.scopes)] + with warnings.catch_warnings(): + warnings.simplefilter("ignore") + # See https://github.com/hgrecco/pint-pandas/issues/114 + data[self.c.COLS.TEMPERATURE_SCORE] = data[self.c.COLS.TEMPERATURE_SCORE].map( + lambda x: Q_(round(x.m, 2), x.u)).astype('pint[delta_degC]') + return data - return score_aggregations - def cap_scores(self, scores: pd.DataFrame) -> pd.DataFrame: - """ - Cap the temperature scores in the input data frame to a certain value, based on the scenario that's being used. - This can either be for the whole data set, or only for the top X contributors. +def _get_aggregations(self, data: pd.DataFrame, total_companies: int) -> Tuple[Aggregation, pd.Series, pd.Series]: + """ + Get the aggregated score over a certain data set. Also calculate the (relative) contribution of each company - :param scores: The data set with the temperature scores - :return: The input data frame, with capped scores - """ + :param data: A data set, containing one row per company + :return: An aggregated score and the relative and absolute contribution of each company + """ + data = data.copy() + weighted_scores = self._calculate_aggregate_score(data, self.c.COLS.TEMPERATURE_SCORE, + self.aggregation_method) + data[self.c.COLS.CONTRIBUTION_RELATIVE] = pd.Series(weighted_scores / weighted_scores.sum(), + dtype='pint[percent]') + data[self.c.COLS.CONTRIBUTION] = weighted_scores + with warnings.catch_warnings(): + warnings.simplefilter("ignore") + contributions = data \ + .sort_values(self.c.COLS.CONTRIBUTION_RELATIVE, ascending=False) \ + .where(pd.notnull(data), 0) \ + .to_dict(orient="records") + aggregations = Aggregation( + score=weighted_scores.sum(), + proportion=len(weighted_scores) / (total_companies / 100.0), + contributions=[AggregationContribution.parse_obj(contribution) for contribution in contributions] + ), \ + data[self.c.COLS.CONTRIBUTION_RELATIVE], \ + data[self.c.COLS.CONTRIBUTION] + + return aggregations + + +def _get_score_aggregation(self, data: pd.DataFrame, time_frame: ETimeFrames, scope: EScope) -> \ + Optional[ScoreAggregation]: + """ + Get a score aggregation for a certain time frame and scope, for the data set as a whole and for the different + groupings. - return scores + :param data: The whole data set + :param time_frame: A time frame + :param scope: A scope + :return: A score aggregation, containing the aggregations for the whole data set and each individual group + """ + filtered_data = data[(data[self.c.COLS.TIME_FRAME] == time_frame) & + (data[self.c.COLS.SCOPE] == scope)].copy() + filtered_data[self.grouping] = filtered_data[self.grouping].fillna("unknown") + total_companies = len(filtered_data) + if not filtered_data.empty: + score_aggregation_all, \ + filtered_data[self.c.COLS.CONTRIBUTION_RELATIVE], \ + filtered_data[self.c.COLS.CONTRIBUTION] = self._get_aggregations(filtered_data, total_companies) + filtered_data['DEFAULT'] = 1.0 * filtered_data[self.c.COLS.SCORE_RESULT_TYPE] == EScoreResultType.DEFAULT + score_aggregation = ScoreAggregation( + grouped={}, + all=score_aggregation_all, + influence_percentage=self._calculate_aggregate_score( + filtered_data, 'DEFAULT', self.aggregation_method).sum().m * 100) + + # If there are grouping column(s) we'll group in pandas and pass the results to the aggregation + if len(self.grouping) > 0: + grouped_data = filtered_data.groupby(self.grouping) + for group_names, group in grouped_data: + group_name_joined = group_names if type(group_names) == str else "-".join( + [str(group_name) for group_name in group_names]) + score_aggregation.grouped[group_name_joined], _, _ = self._get_aggregations(group.copy(), + total_companies) + return score_aggregation + else: + return None + + +def aggregate_scores(self, data: pd.DataFrame) -> ScoreAggregations: + """ + Aggregate scores to create a portfolio score per time_frame (short, mid, long). - def anonymize_data_dump(self, scores: pd.DataFrame) -> pd.DataFrame: - """ - Anonymize the scores by deleting the company IDs, ISIN and renaming the companies. + :param data: The results of the calculate method + :return: A weighted temperature score for the portfolio + """ - :param scores: The data set with the temperature scores - :return: The input data frame, anonymized - """ - scores.drop(columns=[self.c.COLS.COMPANY_ID, self.c.COLS.COMPANY_ISIN], inplace=True) - for index, company_name in enumerate(scores[self.c.COLS.COMPANY_NAME].unique()): - scores.loc[scores[self.c.COLS.COMPANY_NAME] == company_name, self.c.COLS.COMPANY_NAME] = 'Company' + str( - index + 1) - return scores + score_aggregations = ScoreAggregations() + for time_frame in self.time_frames: + score_aggregation_scopes = ScoreAggregationScopes() + for scope in self.scopes: + score_aggregation_scopes.__setattr__(scope.name, self._get_score_aggregation(data, time_frame, scope)) + score_aggregations.__setattr__(time_frame.value, score_aggregation_scopes) + + return score_aggregations + + +def cap_scores(self, scores: pd.DataFrame) -> pd.DataFrame: + """ + Cap the temperature scores in the input data frame to a certain value, based on the scenario that's being used. + This can either be for the whole data set, or only for the top X contributors. + + :param scores: The data set with the temperature scores + :return: The input data frame, with capped scores + """ + + return scores + + +def anonymize_data_dump(self, scores: pd.DataFrame) -> pd.DataFrame: + """ + Anonymize the scores by deleting the company IDs, ISIN and renaming the companies. + + :param scores: The data set with the temperature scores + :return: The input data frame, anonymized + """ + scores.drop(columns=[self.c.COLS.COMPANY_ID, self.c.COLS.COMPANY_ISIN], inplace=True) + for index, company_name in enumerate(scores[self.c.COLS.COMPANY_NAME].unique()): + scores.loc[scores[self.c.COLS.COMPANY_NAME] == company_name, self.c.COLS.COMPANY_NAME] = 'Company' + str( + index + 1) + return scores From 6fae6f26d0a0120eae375162931711b198119696 Mon Sep 17 00:00:00 2001 From: David Kroon <35101727+dp90@users.noreply.github.com> Date: Mon, 25 Apr 2022 16:08:55 +0200 Subject: [PATCH 233/345] Fix score type reference Signed-off-by: David Kroon <35101727+dp90@users.noreply.github.com> Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- ITR/temperature_score.py | 443 +++++++++++++++++++-------------------- 1 file changed, 217 insertions(+), 226 deletions(-) diff --git a/ITR/temperature_score.py b/ITR/temperature_score.py index d5f88d04..bcfaba7d 100644 --- a/ITR/temperature_score.py +++ b/ITR/temperature_score.py @@ -69,253 +69,244 @@ def get_score(self, scorable_row: pd.Series) -> Tuple[ score = target_temperature_score * scorable_row[self.c.COLS.TARGET_PROBABILITY] + \ trajectory_temperature_score * (1 - scorable_row[self.c.COLS.TARGET_PROBABILITY]) + # Safeguard: If score is NaN due to missing data assign default score. if np.isnan(score): if trajectory_temperature_score: # trajectory only return trajectory_temperature_score, trajectory_temperature_score, trajectory_overshoot_ratio, target_temperature_score, target_overshoot_ratio, EScoreResultType.TRAJECTORY_ONLY - else: - default_score = self.get_default_score(scorable_row) - return default_score, trajectory_temperature_score, trajectory_overshoot_ratio, target_temperature_score, target_overshoot_ratio, EScoreResultType.DEFAULT - + else: + default_score = self.get_default_score(scorable_row) + return default_score, trajectory_temperature_score, trajectory_overshoot_ratio, target_temperature_score, target_overshoot_ratio, Q_( + 1.0, EScoreResultType.DEFAULT) return score, trajectory_temperature_score, trajectory_overshoot_ratio, target_temperature_score, target_overshoot_ratio, EScoreResultType.COMPLETE + def get_ghc_temperature_score(self, row: pd.Series, company_data: pd.DataFrame) -> Quantity['delta_degC']: + """ + Get the aggregated temperature score and a temperature result, which indicates how much of the score is based on the default score for a certain company based on the emissions of company. -def get_ghc_temperature_score(self, row: pd.Series, company_data: pd.DataFrame) -> Quantity['delta_degC']: - """ - Get the aggregated temperature score and a temperature result, which indicates how much of the score is based on the default score for a certain company based on the emissions of company. - - :param company_data: The original data, grouped by company, time frame and scope category - :param row: The row to calculate the temperature score for (if the scope of the row isn't s1s2s3, it will return the original score) - :return: The aggregated temperature score for a company - """ - if row[self.c.COLS.SCOPE] != EScope.S1S2S3: - return row[self.c.COLS.TEMPERATURE_SCORE] - s1s2 = company_data.loc[(row[self.c.COLS.COMPANY_ID], row[self.c.COLS.TIME_FRAME], EScope.S1S2)] - s3 = company_data.loc[(row[self.c.COLS.COMPANY_ID], row[self.c.COLS.TIME_FRAME], EScope.S3)] - - try: - # If the s3 emissions are less than 40 percent, we'll ignore them altogether, if not, we'll weigh them - if s3[self.c.COLS.GHG_SCOPE3] / (s1s2[self.c.COLS.GHG_SCOPE12] + s3[self.c.COLS.GHG_SCOPE3]) < 0.4: - return s1s2[self.c.COLS.TEMPERATURE_SCORE] - else: - company_emissions = s1s2[self.c.COLS.GHG_SCOPE12] + s3[self.c.COLS.GHG_SCOPE3] - return ((s1s2[self.c.COLS.TEMPERATURE_SCORE] * s1s2[self.c.COLS.GHG_SCOPE12] + - s3[self.c.COLS.TEMPERATURE_SCORE] * s3[self.c.COLS.GHG_SCOPE3]) / company_emissions) - - except ZeroDivisionError: - raise ValueError("The mean of the S1+S2 plus the S3 emissions is zero") - - -def get_default_score(self, target: pd.Series) -> Quantity['delta_degC']: - """ - :param target: The target as a row of a dataframe - :return: The temperature score - """ - return self.fallback_score - - -def _prepare_data(self, data: pd.DataFrame): - """ - Prepare the data such that it can be used to calculate the temperature score. - - :param data: The original data set as a pandas data frame - :return: The extended data frame - """ - companies = data[self.c.COLS.COMPANY_ID].unique() - - # If scope S1S2S3 is in the list of scopes to calculate, we need to calculate the other two as well - scopes = self.scopes.copy() - if EScope.S1S2S3 in self.scopes and EScope.S1S2 not in self.scopes: - scopes.append(EScope.S1S2) - if EScope.S1S2S3 in scopes and EScope.S3 not in scopes: - scopes.append(EScope.S3) - - score_combinations = pd.DataFrame(list(itertools.product(*[companies, scopes, self.time_frames])), - columns=[self.c.COLS.COMPANY_ID, self.c.COLS.SCOPE, self.c.COLS.TIME_FRAME]) - scoring_data = pd.merge(left=data, right=score_combinations, how='outer', on=[self.c.COLS.COMPANY_ID]) - - with warnings.catch_warnings(): - warnings.simplefilter("ignore") - # See https://github.com/hgrecco/pint-pandas/issues/114 - scoring_data[self.c.COLS.TEMPERATURE_SCORE], scoring_data[self.c.COLS.TRAJECTORY_SCORE], scoring_data[ - self.c.COLS.TRAJECTORY_OVERSHOOT], scoring_data[self.c.COLS.TARGET_SCORE], scoring_data[ - self.c.COLS.TARGET_OVERSHOOT], scoring_data[self.c.SCORE_RESULT_TYPE] = zip(*scoring_data.apply( - lambda row: self.get_score(row), axis=1)) + :param company_data: The original data, grouped by company, time frame and scope category + :param row: The row to calculate the temperature score for (if the scope of the row isn't s1s2s3, it will return the original score) + :return: The aggregated temperature score for a company + """ + if row[self.c.COLS.SCOPE] != EScope.S1S2S3: + return row[self.c.COLS.TEMPERATURE_SCORE] + s1s2 = company_data.loc[(row[self.c.COLS.COMPANY_ID], row[self.c.COLS.TIME_FRAME], EScope.S1S2)] + s3 = company_data.loc[(row[self.c.COLS.COMPANY_ID], row[self.c.COLS.TIME_FRAME], EScope.S3)] + + try: + # If the s3 emissions are less than 40 percent, we'll ignore them altogether, if not, we'll weigh them + if s3[self.c.COLS.GHG_SCOPE3] / (s1s2[self.c.COLS.GHG_SCOPE12] + s3[self.c.COLS.GHG_SCOPE3]) < 0.4: + return s1s2[self.c.COLS.TEMPERATURE_SCORE] + else: + company_emissions = s1s2[self.c.COLS.GHG_SCOPE12] + s3[self.c.COLS.GHG_SCOPE3] + return ((s1s2[self.c.COLS.TEMPERATURE_SCORE] * s1s2[self.c.COLS.GHG_SCOPE12] + + s3[self.c.COLS.TEMPERATURE_SCORE] * s3[self.c.COLS.GHG_SCOPE3]) / company_emissions) + + except ZeroDivisionError: + raise ValueError("The mean of the S1+S2 plus the S3 emissions is zero") + + def get_default_score(self, target: pd.Series) -> Quantity['delta_degC']: + """ + :param target: The target as a row of a dataframe + :return: The temperature score + """ + return self.fallback_score - # Fix up dtypes for the new columns we just added - for c in [self.c.COLS.TEMPERATURE_SCORE, self.c.COLS.TRAJECTORY_SCORE, self.c.COLS.TRAJECTORY_SCORE, - self.c.COLS.TARGET_SCORE]: - scoring_data[c] = scoring_data[c].astype('pint[delta_degC]') + def _prepare_data(self, data: pd.DataFrame): + """ + Prepare the data such that it can be used to calculate the temperature score. - scoring_data = self.cap_scores(scoring_data) - return scoring_data + :param data: The original data set as a pandas data frame + :return: The extended data frame + """ + companies = data[self.c.COLS.COMPANY_ID].unique() + + # If scope S1S2S3 is in the list of scopes to calculate, we need to calculate the other two as well + scopes = self.scopes.copy() + if EScope.S1S2S3 in self.scopes and EScope.S1S2 not in self.scopes: + scopes.append(EScope.S1S2) + if EScope.S1S2S3 in scopes and EScope.S3 not in scopes: + scopes.append(EScope.S3) + + score_combinations = pd.DataFrame(list(itertools.product(*[companies, scopes, self.time_frames])), + columns=[self.c.COLS.COMPANY_ID, self.c.COLS.SCOPE, self.c.COLS.TIME_FRAME]) + scoring_data = pd.merge(left=data, right=score_combinations, how='outer', on=[self.c.COLS.COMPANY_ID]) + + with warnings.catch_warnings(): + warnings.simplefilter("ignore") + # See https://github.com/hgrecco/pint-pandas/issues/114 + scoring_data[self.c.COLS.TEMPERATURE_SCORE], scoring_data[self.c.COLS.TRAJECTORY_SCORE], scoring_data[ + self.c.COLS.TRAJECTORY_OVERSHOOT], scoring_data[self.c.COLS.TARGET_SCORE], scoring_data[ + self.c.COLS.TARGET_OVERSHOOT], scoring_data[self.c.SCORE_RESULT_TYPE] = zip(*scoring_data.apply( + lambda row: self.get_score(row), axis=1)) + + # Fix up dtypes for the new columns we just added + for c in [self.c.COLS.TEMPERATURE_SCORE, self.c.COLS.TRAJECTORY_SCORE, self.c.COLS.TRAJECTORY_SCORE, + self.c.COLS.TARGET_SCORE]: + scoring_data[c] = scoring_data[c].astype('pint[delta_degC]') + + scoring_data = self.cap_scores(scoring_data) + return scoring_data + + def _calculate_company_score(self, data): + """ + Calculate the combined s1s2s3 scores for all companies. + :param data: The original data set as a pandas data frame + :return: The data frame, with an updated s1s2s3 temperature score + """ + # Calculate the GHC + company_data = data[ + [self.c.COLS.COMPANY_ID, self.c.COLS.TIME_FRAME, self.c.COLS.SCOPE, self.c.COLS.GHG_SCOPE12, + self.c.COLS.GHG_SCOPE3, self.c.COLS.TEMPERATURE_SCORE, self.c.SCORE_RESULT_TYPE] + ].groupby([self.c.COLS.COMPANY_ID, self.c.COLS.TIME_FRAME, self.c.COLS.SCOPE]).mean() + + with warnings.catch_warnings(): + warnings.simplefilter("ignore") + data[self.c.COLS.TEMPERATURE_SCORE] = zip(*data.apply( + lambda row: self.get_ghc_temperature_score(row, company_data), axis=1 + )) + return data + + def calculate(self, data: Optional[pd.DataFrame] = None, + data_warehouse: Optional[DataWarehouse] = None, + portfolio: Optional[List[PortfolioCompany]] = None): + """ + Calculate the temperature for a dataframe of company data. The columns in the data frame should be a combination + of IDataProviderTarget and IDataProviderCompany. -def _calculate_company_score(self, data): - """ - Calculate the combined s1s2s3 scores for all companies. + :param data: The data set (or None if the data should be retrieved) + :param data_warehouse: A list of DataProvider instances. Optional, only required if data is empty. + :param portfolio: A list of PortfolioCompany models. Optional, only required if data is empty. + :return: A data frame containing all relevant information for the targets and companies + """ + if data is None: + if data_warehouse is not None and portfolio is not None: + data = utils.get_data(data_warehouse, portfolio) + else: + raise ValueError("You need to pass and either a data set or a datawarehouse and companies") + + data = self._prepare_data(data) + + if EScope.S1S2S3 in self.scopes: + self._check_column(data, self.c.COLS.GHG_SCOPE12) + self._check_column(data, self.c.COLS.GHG_SCOPE3) + data = self._calculate_company_score(data) + + # We need to filter the scopes again, because we might have had to add a scope in the preparation step + data = data[data[self.c.COLS.SCOPE].isin(self.scopes)] + with warnings.catch_warnings(): + warnings.simplefilter("ignore") + # See https://github.com/hgrecco/pint-pandas/issues/114 + data[self.c.COLS.TEMPERATURE_SCORE] = data[self.c.COLS.TEMPERATURE_SCORE].map( + lambda x: Q_(round(x.m, 2), x.u)).astype('pint[delta_degC]') + return data + + def _get_aggregations(self, data: pd.DataFrame, total_companies: int) -> Tuple[Aggregation, pd.Series, pd.Series]: + """ + Get the aggregated score over a certain data set. Also calculate the (relative) contribution of each company - :param data: The original data set as a pandas data frame - :return: The data frame, with an updated s1s2s3 temperature score - """ - # Calculate the GHC - company_data = data[ - [self.c.COLS.COMPANY_ID, self.c.COLS.TIME_FRAME, self.c.COLS.SCOPE, self.c.COLS.GHG_SCOPE12, - self.c.COLS.GHG_SCOPE3, self.c.COLS.TEMPERATURE_SCORE, self.c.SCORE_RESULT_TYPE] - ].groupby([self.c.COLS.COMPANY_ID, self.c.COLS.TIME_FRAME, self.c.COLS.SCOPE]).mean() - - with warnings.catch_warnings(): - warnings.simplefilter("ignore") - data[self.c.COLS.TEMPERATURE_SCORE] = zip(*data.apply( - lambda row: self.get_ghc_temperature_score(row, company_data), axis=1 - )) - return data - - -def calculate(self, data: Optional[pd.DataFrame] = None, - data_warehouse: Optional[DataWarehouse] = None, - portfolio: Optional[List[PortfolioCompany]] = None): - """ - Calculate the temperature for a dataframe of company data. The columns in the data frame should be a combination - of IDataProviderTarget and IDataProviderCompany. + :param data: A data set, containing one row per company + :return: An aggregated score and the relative and absolute contribution of each company + """ + data = data.copy() + weighted_scores = self._calculate_aggregate_score(data, self.c.COLS.TEMPERATURE_SCORE, + self.aggregation_method) + data[self.c.COLS.CONTRIBUTION_RELATIVE] = pd.Series(weighted_scores / weighted_scores.sum(), + dtype='pint[percent]') + data[self.c.COLS.CONTRIBUTION] = weighted_scores + with warnings.catch_warnings(): + warnings.simplefilter("ignore") + contributions = data \ + .sort_values(self.c.COLS.CONTRIBUTION_RELATIVE, ascending=False) \ + .where(pd.notnull(data), 0) \ + .to_dict(orient="records") + aggregations = Aggregation( + score=weighted_scores.sum(), + proportion=len(weighted_scores) / (total_companies / 100.0), + contributions=[AggregationContribution.parse_obj(contribution) for contribution in contributions] + ), \ + data[self.c.COLS.CONTRIBUTION_RELATIVE], \ + data[self.c.COLS.CONTRIBUTION] + + return aggregations + + def _get_score_aggregation(self, data: pd.DataFrame, time_frame: ETimeFrames, scope: EScope) -> \ + Optional[ScoreAggregation]: + """ + Get a score aggregation for a certain time frame and scope, for the data set as a whole and for the different + groupings. - :param data: The data set (or None if the data should be retrieved) - :param data_warehouse: A list of DataProvider instances. Optional, only required if data is empty. - :param portfolio: A list of PortfolioCompany models. Optional, only required if data is empty. - :return: A data frame containing all relevant information for the targets and companies - """ - if data is None: - if data_warehouse is not None and portfolio is not None: - data = utils.get_data(data_warehouse, portfolio) + :param data: The whole data set + :param time_frame: A time frame + :param scope: A scope + :return: A score aggregation, containing the aggregations for the whole data set and each individual group + """ + filtered_data = data[(data[self.c.COLS.TIME_FRAME] == time_frame) & + (data[self.c.COLS.SCOPE] == scope)].copy() + filtered_data[self.grouping] = filtered_data[self.grouping].fillna("unknown") + total_companies = len(filtered_data) + if not filtered_data.empty: + score_aggregation_all, \ + filtered_data[self.c.COLS.CONTRIBUTION_RELATIVE], \ + filtered_data[self.c.COLS.CONTRIBUTION] = self._get_aggregations(filtered_data, total_companies) + filtered_data['DEFAULT'] = 1.0 * (filtered_data[self.c.SCORE_RESULT_TYPE] == EScoreResultType.DEFAULT) + score_aggregation = ScoreAggregation( + grouped={}, + all=score_aggregation_all, + influence_percentage=self._calculate_aggregate_score( + filtered_data, 'DEFAULT', self.aggregation_method).sum().m * 100) + + # If there are grouping column(s) we'll group in pandas and pass the results to the aggregation + if len(self.grouping) > 0: + grouped_data = filtered_data.groupby(self.grouping) + for group_names, group in grouped_data: + group_name_joined = group_names if type(group_names) == str else "-".join( + [str(group_name) for group_name in group_names]) + score_aggregation.grouped[group_name_joined], _, _ = self._get_aggregations(group.copy(), + total_companies) + return score_aggregation else: - raise ValueError("You need to pass and either a data set or a datawarehouse and companies") - - data = self._prepare_data(data) - - if EScope.S1S2S3 in self.scopes: - self._check_column(data, self.c.COLS.GHG_SCOPE12) - self._check_column(data, self.c.COLS.GHG_SCOPE3) - data = self._calculate_company_score(data) - - # We need to filter the scopes again, because we might have had to add a scope in the preparation step - data = data[data[self.c.COLS.SCOPE].isin(self.scopes)] - with warnings.catch_warnings(): - warnings.simplefilter("ignore") - # See https://github.com/hgrecco/pint-pandas/issues/114 - data[self.c.COLS.TEMPERATURE_SCORE] = data[self.c.COLS.TEMPERATURE_SCORE].map( - lambda x: Q_(round(x.m, 2), x.u)).astype('pint[delta_degC]') - return data - - -def _get_aggregations(self, data: pd.DataFrame, total_companies: int) -> Tuple[Aggregation, pd.Series, pd.Series]: - """ - Get the aggregated score over a certain data set. Also calculate the (relative) contribution of each company - - :param data: A data set, containing one row per company - :return: An aggregated score and the relative and absolute contribution of each company - """ - data = data.copy() - weighted_scores = self._calculate_aggregate_score(data, self.c.COLS.TEMPERATURE_SCORE, - self.aggregation_method) - data[self.c.COLS.CONTRIBUTION_RELATIVE] = pd.Series(weighted_scores / weighted_scores.sum(), - dtype='pint[percent]') - data[self.c.COLS.CONTRIBUTION] = weighted_scores - with warnings.catch_warnings(): - warnings.simplefilter("ignore") - contributions = data \ - .sort_values(self.c.COLS.CONTRIBUTION_RELATIVE, ascending=False) \ - .where(pd.notnull(data), 0) \ - .to_dict(orient="records") - aggregations = Aggregation( - score=weighted_scores.sum(), - proportion=len(weighted_scores) / (total_companies / 100.0), - contributions=[AggregationContribution.parse_obj(contribution) for contribution in contributions] - ), \ - data[self.c.COLS.CONTRIBUTION_RELATIVE], \ - data[self.c.COLS.CONTRIBUTION] - - return aggregations - - -def _get_score_aggregation(self, data: pd.DataFrame, time_frame: ETimeFrames, scope: EScope) -> \ - Optional[ScoreAggregation]: - """ - Get a score aggregation for a certain time frame and scope, for the data set as a whole and for the different - groupings. + return None - :param data: The whole data set - :param time_frame: A time frame - :param scope: A scope - :return: A score aggregation, containing the aggregations for the whole data set and each individual group - """ - filtered_data = data[(data[self.c.COLS.TIME_FRAME] == time_frame) & - (data[self.c.COLS.SCOPE] == scope)].copy() - filtered_data[self.grouping] = filtered_data[self.grouping].fillna("unknown") - total_companies = len(filtered_data) - if not filtered_data.empty: - score_aggregation_all, \ - filtered_data[self.c.COLS.CONTRIBUTION_RELATIVE], \ - filtered_data[self.c.COLS.CONTRIBUTION] = self._get_aggregations(filtered_data, total_companies) - filtered_data['DEFAULT'] = 1.0 * filtered_data[self.c.COLS.SCORE_RESULT_TYPE] == EScoreResultType.DEFAULT - score_aggregation = ScoreAggregation( - grouped={}, - all=score_aggregation_all, - influence_percentage=self._calculate_aggregate_score( - filtered_data, 'DEFAULT', self.aggregation_method).sum().m * 100) - - # If there are grouping column(s) we'll group in pandas and pass the results to the aggregation - if len(self.grouping) > 0: - grouped_data = filtered_data.groupby(self.grouping) - for group_names, group in grouped_data: - group_name_joined = group_names if type(group_names) == str else "-".join( - [str(group_name) for group_name in group_names]) - score_aggregation.grouped[group_name_joined], _, _ = self._get_aggregations(group.copy(), - total_companies) - return score_aggregation - else: - return None - - -def aggregate_scores(self, data: pd.DataFrame) -> ScoreAggregations: - """ - Aggregate scores to create a portfolio score per time_frame (short, mid, long). - - :param data: The results of the calculate method - :return: A weighted temperature score for the portfolio - """ - - score_aggregations = ScoreAggregations() - for time_frame in self.time_frames: - score_aggregation_scopes = ScoreAggregationScopes() - for scope in self.scopes: - score_aggregation_scopes.__setattr__(scope.name, self._get_score_aggregation(data, time_frame, scope)) - score_aggregations.__setattr__(time_frame.value, score_aggregation_scopes) + def aggregate_scores(self, data: pd.DataFrame) -> ScoreAggregations: + """ + Aggregate scores to create a portfolio score per time_frame (short, mid, long). - return score_aggregations + :param data: The results of the calculate method + :return: A weighted temperature score for the portfolio + """ + score_aggregations = ScoreAggregations() + for time_frame in self.time_frames: + score_aggregation_scopes = ScoreAggregationScopes() + for scope in self.scopes: + score_aggregation_scopes.__setattr__(scope.name, self._get_score_aggregation(data, time_frame, scope)) + score_aggregations.__setattr__(time_frame.value, score_aggregation_scopes) -def cap_scores(self, scores: pd.DataFrame) -> pd.DataFrame: - """ - Cap the temperature scores in the input data frame to a certain value, based on the scenario that's being used. - This can either be for the whole data set, or only for the top X contributors. + return score_aggregations - :param scores: The data set with the temperature scores - :return: The input data frame, with capped scores - """ + def cap_scores(self, scores: pd.DataFrame) -> pd.DataFrame: + """ + Cap the temperature scores in the input data frame to a certain value, based on the scenario that's being used. + This can either be for the whole data set, or only for the top X contributors. - return scores + :param scores: The data set with the temperature scores + :return: The input data frame, with capped scores + """ + return scores -def anonymize_data_dump(self, scores: pd.DataFrame) -> pd.DataFrame: - """ - Anonymize the scores by deleting the company IDs, ISIN and renaming the companies. + def anonymize_data_dump(self, scores: pd.DataFrame) -> pd.DataFrame: + """ + Anonymize the scores by deleting the company IDs, ISIN and renaming the companies. - :param scores: The data set with the temperature scores - :return: The input data frame, anonymized - """ - scores.drop(columns=[self.c.COLS.COMPANY_ID, self.c.COLS.COMPANY_ISIN], inplace=True) - for index, company_name in enumerate(scores[self.c.COLS.COMPANY_NAME].unique()): - scores.loc[scores[self.c.COLS.COMPANY_NAME] == company_name, self.c.COLS.COMPANY_NAME] = 'Company' + str( - index + 1) - return scores + :param scores: The data set with the temperature scores + :return: The input data frame, anonymized + """ + scores.drop(columns=[self.c.COLS.COMPANY_ID, self.c.COLS.COMPANY_ISIN], inplace=True) + for index, company_name in enumerate(scores[self.c.COLS.COMPANY_NAME].unique()): + scores.loc[scores[self.c.COLS.COMPANY_NAME] == company_name, self.c.COLS.COMPANY_NAME] = 'Company' + str( + index + 1) + return scores From 3d5bb21759a87ca92f3ce23867462123981f3ce0 Mon Sep 17 00:00:00 2001 From: David Kroon <35101727+dp90@users.noreply.github.com> Date: Mon, 25 Apr 2022 16:40:09 +0200 Subject: [PATCH 234/345] Remove unnecessary zip Signed-off-by: David Kroon <35101727+dp90@users.noreply.github.com> Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- ITR/temperature_score.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ITR/temperature_score.py b/ITR/temperature_score.py index bcfaba7d..3aa88443 100644 --- a/ITR/temperature_score.py +++ b/ITR/temperature_score.py @@ -164,9 +164,9 @@ def _calculate_company_score(self, data): with warnings.catch_warnings(): warnings.simplefilter("ignore") - data[self.c.COLS.TEMPERATURE_SCORE] = zip(*data.apply( + data[self.c.COLS.TEMPERATURE_SCORE] = data.apply( lambda row: self.get_ghc_temperature_score(row, company_data), axis=1 - )) + ) return data def calculate(self, data: Optional[pd.DataFrame] = None, From 76300c8eb9542af05e45a41375240b2bae06171d Mon Sep 17 00:00:00 2001 From: David Kroon <35101727+dp90@users.noreply.github.com> Date: Mon, 25 Apr 2022 16:55:12 +0200 Subject: [PATCH 235/345] Move deg c type casting to appropriate place Signed-off-by: David Kroon <35101727+dp90@users.noreply.github.com> Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- ITR/portfolio_aggregation.py | 6 +++--- ITR/temperature_score.py | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/ITR/portfolio_aggregation.py b/ITR/portfolio_aggregation.py index 6bb0a853..0a1b7f6d 100644 --- a/ITR/portfolio_aggregation.py +++ b/ITR/portfolio_aggregation.py @@ -101,7 +101,7 @@ def _calculate_aggregate_score(self, data: pd.DataFrame, input_column: str, # See https://github.com/hgrecco/pint-pandas/issues/114 return pd.Series(data.apply( lambda row: row[self.c.COLS.INVESTMENT_VALUE] * row[input_column] / total_investment_weight, - axis=1), dtype='pint[delta_degC]') + axis=1)) except ZeroDivisionError: raise ValueError("The portfolio weight is not allowed to be zero") @@ -117,7 +117,7 @@ def _calculate_aggregate_score(self, data: pd.DataFrame, input_column: str, emissions = data.loc[use_S1S2, self.c.COLS.GHG_SCOPE12].sum() + data.loc[use_S3, self.c.COLS.GHG_SCOPE3].sum() try: return pd.Series((data[self.c.COLS.GHG_SCOPE12].where(use_S1S2,0) + data[self.c.COLS.GHG_SCOPE3].where(use_S3, 0)) \ - / emissions * data[input_column], dtype='pint[delta_degC]') + / emissions * data[input_column]) except ZeroDivisionError: raise ValueError("The total emissions should be higher than zero") @@ -148,7 +148,7 @@ def _calculate_aggregate_score(self, data: pd.DataFrame, input_column: str, result = data.apply( lambda row: (row[self.c.COLS.OWNED_EMISSIONS] / owned_emissions) * row[input_column], axis=1) - return result.astype('pint[delta_degC]') + return result except ZeroDivisionError: raise ValueError("The total owned emissions can not be zero") else: diff --git a/ITR/temperature_score.py b/ITR/temperature_score.py index 3aa88443..029cd045 100644 --- a/ITR/temperature_score.py +++ b/ITR/temperature_score.py @@ -212,7 +212,7 @@ def _get_aggregations(self, data: pd.DataFrame, total_companies: int) -> Tuple[A """ data = data.copy() weighted_scores = self._calculate_aggregate_score(data, self.c.COLS.TEMPERATURE_SCORE, - self.aggregation_method) + self.aggregation_method).astype('pint[delta_degC]') data[self.c.COLS.CONTRIBUTION_RELATIVE] = pd.Series(weighted_scores / weighted_scores.sum(), dtype='pint[percent]') data[self.c.COLS.CONTRIBUTION] = weighted_scores @@ -256,7 +256,7 @@ def _get_score_aggregation(self, data: pd.DataFrame, time_frame: ETimeFrames, sc grouped={}, all=score_aggregation_all, influence_percentage=self._calculate_aggregate_score( - filtered_data, 'DEFAULT', self.aggregation_method).sum().m * 100) + filtered_data, 'DEFAULT', self.aggregation_method).sum() * 100) # If there are grouping column(s) we'll group in pandas and pass the results to the aggregation if len(self.grouping) > 0: From 9e147085d809eeefe9a7e4cdf07c68771308f333 Mon Sep 17 00:00:00 2001 From: Cas Jiskoot Date: Tue, 10 May 2022 16:35:55 +0200 Subject: [PATCH 236/345] Tests on different scenarios: - target and trajectory data missing - only target data missing Signed-off-by: Cas Jiskoot Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- ITR/temperature_score.py | 25 ++++++++++++++++++++++--- test/inputs/test_data_company.xlsx | Bin 92539 -> 92235 bytes test/test_excel_provider.py | 2 +- 3 files changed, 23 insertions(+), 4 deletions(-) diff --git a/ITR/temperature_score.py b/ITR/temperature_score.py index 029cd045..e3a0a6c3 100644 --- a/ITR/temperature_score.py +++ b/ITR/temperature_score.py @@ -51,14 +51,33 @@ def get_score(self, scorable_row: pd.Series) -> Tuple[ :param scorable_row: The target as a row of a data frame :return: The temperature score, which is a tuple of (TEMPERATURE_SCORE,TRAJECTORY_SCORE,TRAJECTORY_OVERSHOOT,TARGET_SCORE,TARGET_OVERSHOOT,TEMPERATURE_RESULTS]) """ - if scorable_row[self.c.COLS.CUMULATIVE_BUDGET].m > 0: + + # If both trajectory and target data missing assign default value + if np.isnan(scorable_row[self.c.COLS.CUMULATIVE_TARGET]) and np.isnan( + scorable_row[self.c.COLS.CUMULATIVE_TRAJECTORY]): + return self.get_default_score(scorable_row), np.nan, np.nan, np.nan, np.nan, Q_(1, ureg.delta_degC) + + # If only target data missing assign only trajectory_score to final score + elif np.isnan(scorable_row[self.c.COLS.CUMULATIVE_TARGET]) or scorable_row[self.c.COLS.CUMULATIVE_TARGET] == 0 \ + or scorable_row[self.c.COLS.CUMULATIVE_TARGET] == scorable_row[self.c.COLS.CUMULATIVE_TRAJECTORY]: + target_overshoot_ratio = 0.0 + target_temperature_score = 0.0 + trajectory_overshoot_ratio = scorable_row[self.c.COLS.CUMULATIVE_TRAJECTORY] / scorable_row[ + self.c.COLS.CUMULATIVE_BUDGET] + trajectory_temperature_score = scorable_row[self.c.COLS.BENCHMARK_TEMP] + \ + (scorable_row[self.c.COLS.BENCHMARK_GLOBAL_BUDGET] * ( + trajectory_overshoot_ratio - 1.0) * self.c.CONTROLS_CONFIG.tcre_multiplier) + score = trajectory_temperature_score + return score, trajectory_temperature_score, trajectory_overshoot_ratio, target_temperature_score, target_overshoot_ratio, EScoreResultType.COMPLETE + + elif scorable_row[self.c.COLS.CUMULATIVE_BUDGET].m > 0: target_overshoot_ratio = scorable_row[self.c.COLS.CUMULATIVE_TARGET] / scorable_row[ self.c.COLS.CUMULATIVE_BUDGET] trajectory_overshoot_ratio = scorable_row[self.c.COLS.CUMULATIVE_TRAJECTORY] / scorable_row[ self.c.COLS.CUMULATIVE_BUDGET] else: - target_overshoot_ratio = 0 - trajectory_overshoot_ratio = 0 + target_overshoot_ratio = 0.0 + trajectory_overshoot_ratio = 0.0 target_temperature_score = scorable_row[self.c.COLS.BENCHMARK_TEMP] + \ (scorable_row[self.c.COLS.BENCHMARK_GLOBAL_BUDGET] * ( diff --git a/test/inputs/test_data_company.xlsx b/test/inputs/test_data_company.xlsx index a70aa97a6b2006288fed5a6624c7d37e783f388a..a7ee188313d0e5d6c4a3adfc13e04d8d9c0f20d3 100644 GIT binary patch delta 81914 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 diff --git a/test/test_excel_provider.py b/test/test_excel_provider.py index 625f7daa..270a96e8 100644 --- a/test/test_excel_provider.py +++ b/test/test_excel_provider.py @@ -78,7 +78,7 @@ def test_temp_score_from_excel_data(self): expected = pd.Series( [2.05, 2.22, 2.06, 2.01, 1.93, 1.78, 1.71, 1.34, 2.21, 2.69, 2.65, temp_score.fallback_score, 2.89, 1.91, 2.16, 1.76, temp_score.fallback_score, temp_score.fallback_score, 1.47, 1.72, 1.76, 1.81, - temp_score.fallback_score, 1.78, 1.84, temp_score.fallback_score, temp_score.fallback_score, 1.74, + temp_score.fallback_score, 1.78, 1.84, temp_score.fallback_score, temp_score.fallback_score, 1.79, 1.88, temp_score.fallback_score], dtype='pint[delta_degC]') assert_array_equal(scores.temperature_score.values, expected) # verify that results exist From 5f6c6d31ff84d83aabcd409728a904b024fe45d4 Mon Sep 17 00:00:00 2001 From: David Kroon <35101727+dp90@users.noreply.github.com> Date: Mon, 16 May 2022 17:48:36 +0200 Subject: [PATCH 237/345] Move ragged edges fix to target projection Signed-off-by: David Kroon <35101727+dp90@users.noreply.github.com> Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- ITR/data/base_providers.py | 48 ++++++++++++++++++++++---------------- ITR/data/data_warehouse.py | 8 ++----- 2 files changed, 30 insertions(+), 26 deletions(-) diff --git a/ITR/data/base_providers.py b/ITR/data/base_providers.py index a4bf73d7..dc851efd 100644 --- a/ITR/data/base_providers.py +++ b/ITR/data/base_providers.py @@ -263,15 +263,12 @@ def _convert_projections_to_series(self, company: ICompanyData, feature: str, {p['year']: p['value'] for p in projections}, name=company.company_id, dtype=f'pint[{emissions_units}/{production_units}]') - def _calculate_target_projections(self, - production_bm: BaseProviderProductionBenchmark, - EI_bm: BaseProviderIntensityBenchmark): + def _calculate_target_projections(self, production_bm: BaseProviderProductionBenchmark): """ We cannot calculate target projections until after we have loaded benchmark data. We do so when companies are associated with benchmarks, in the DataWarehouse construction - :param Production_bm: A Production Benchmark (multi-sector, single-scope, 2020-2050) - :param EI_bm: An Emissions Intensity Benchmark (multi-sector, single-scope, 2020-2050) + :param production_bm: A Production Benchmark (multi-sector, single-scope, 2020-2050) """ for c in self._companies: if c.projected_targets is not None: @@ -294,9 +291,9 @@ def _calculate_target_projections(self, # We transpose the data so that we get a pd.Series that will accept the pint units as a whole (not element-by-element) .iloc[0].T .astype(f'pint[{str(base_year_production.units)}]')) - c.projected_targets = EITargetProjector().project_ei_targets(c.target_data, c.historic_data, - bm_production_data) - + c.projected_targets = EITargetProjector()\ + .project_ei_targets(c.target_data, c.historic_data, bm_production_data, c.projected_intensities) + # ??? Why prefer TRAJECTORY over TARGET? def _get_company_intensity_at_year(self, year: int, company_ids: List[str]) -> pd.Series: """ @@ -652,8 +649,8 @@ def _normalize_scope_targets(self, scope_targets): target.netzero_year = netzero_year return unique_scope_targets - def project_ei_targets(self, targets: List[ITargetData], historic_data: IHistoricData, - production_bm: pd.Series) -> ICompanyEIProjectionsScopes: + def project_ei_targets(self, targets: List[ITargetData], historic_data: IHistoricData, production_bm: pd.Series, + projected_intensities: ICompanyEIProjectionsScopes) -> ICompanyEIProjectionsScopes: """Input: @targets: a list of a company's targets @historic_data: a company's historic production, emissions, and emission intensities realizations per scope @@ -702,19 +699,24 @@ def project_ei_targets(self, targets: List[ITargetData], historic_data: IHistori # Solve for intensity and absolute if target.target_type == "intensity": # Simple case: the target is in intensity - # Get the intensity data - intensity_data = historic_data.emissions_intensities.__getattribute__(scope) - # Get last year data with non-null value + # If target is not the first one for this scope, we continue from last year of the previous target if ei_projection_scopes[scope] is not None: last_year_data = ei_projection_scopes[scope].projections[-1] else: + # Get the intensity data + intensity_data = historic_data.emissions_intensities.__getattribute__(scope) last_year_data = next((i for i in reversed(intensity_data) if np.isfinite(i.value.magnitude)), None) - if last_year_data is None or base_year > last_year_data.year: + if last_year_data is None: # No historic data, so no trajectory projections to use either ei_projection_scopes[scope] = None continue + + if base_year > last_year_data.year: + trajectory_ei = projected_intensities.__getattribute__(scope).projections + last_year_data = next((ei for ei in trajectory_ei if ei.year == base_year), None) + # Removed condition base year > first_year. Do we care as long as base_year_qty is known? last_year, value_last_year = last_year_data.year, last_year_data.value target_year = target.target_end_year @@ -737,20 +739,26 @@ def project_ei_targets(self, targets: List[ITargetData], historic_data: IHistori # Get last year data with non-null value if ei_projection_scopes[scope] is not None: - last_year_ei_data = ei_projection_scopes[scope].projections[-1] - last_year = last_year_ei_data.year + last_year_ei = ei_projection_scopes[scope].projections[-1] + last_year = last_year_ei.year last_year_prod = production_bm.loc[last_year] - last_year_data = IEmissionRealization(year=last_year, - value=last_year_ei_data.value * last_year_prod) + last_year_data = IEmissionRealization(year=last_year, value=last_year_ei.value*last_year_prod) else: last_year_data = next((e for e in reversed(emissions_data) if np.isfinite(e.value.magnitude)), None) - if last_year_data is None or base_year > last_year_data.year: + if last_year_data is None: # No trajectory available either ei_projection_scopes[scope] = None continue - # Removed condition base year > first_year. Do we care as long as base_year_qty is known? + # Use trajectory info for data at base_year + if base_year > last_year_data.year: + trajectory_ei = projected_intensities.__getattribute__(scope).projections + last_year_ei = next((ei for ei in trajectory_ei if ei.year == base_year), None) + last_year = last_year_ei.year + last_year_prod = production_bm.loc[last_year] + last_year_data = IEmissionRealization(year=last_year, value=last_year_ei.value*last_year_prod) + last_year, value_last_year = last_year_data.year, last_year_data.value target_year = target.target_end_year # Attribute target_reduction_pct of ITargetData is currently a fraction, not a percentage. diff --git a/ITR/data/data_warehouse.py b/ITR/data/data_warehouse.py index 8a418579..c35514ef 100644 --- a/ITR/data/data_warehouse.py +++ b/ITR/data/data_warehouse.py @@ -36,8 +36,7 @@ def __init__(self, company_data: CompanyDataProvider, self.temp_config = tempscore_config self.column_config = column_config self.company_data = company_data - if company_data: - self.company_data._calculate_target_projections(benchmark_projected_production, benchmarks_projected_ei) + self.company_data._calculate_target_projections(benchmark_projected_production) def get_preprocessed_company_data(self, company_ids: List[str]) -> List[ICompanyAggregates]: """ @@ -59,11 +58,8 @@ def get_preprocessed_company_data(self, company_ids: List[str]) -> List[ICompany df_trajectory = self._get_cumulative_emissions( projected_ei=projected_trajectories, projected_production=projected_production).rename(self.column_config.CUMULATIVE_TRAJECTORY) - # target projections may have a ragged left edge if historic data has a ragged right edge - # we can use trajectory info to fill in--it will likely be historic data in that case (the first ragged year) + projected_targets = self.company_data.get_company_projected_targets(company_ids) - keep_target_data = projected_targets.applymap(lambda x: np.isfinite(x.m)) - projected_targets = projected_targets.where(keep_target_data, projected_trajectories) df_target = self._get_cumulative_emissions( projected_ei=projected_targets, projected_production=projected_production).rename(self.column_config.CUMULATIVE_TARGET) From 649bb6fc55d99e68b865ea86ff7e5fa54771448b Mon Sep 17 00:00:00 2001 From: David Kroon <35101727+dp90@users.noreply.github.com> Date: Mon, 16 May 2022 18:34:24 +0200 Subject: [PATCH 238/345] Refactor checks for default score assignment Signed-off-by: David Kroon <35101727+dp90@users.noreply.github.com> Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- ITR/data/data_warehouse.py | 6 ++-- ITR/temperature_score.py | 58 ++++++++++++++-------------------- test/test_template_provider.py | 4 ++- 3 files changed, 29 insertions(+), 39 deletions(-) diff --git a/ITR/data/data_warehouse.py b/ITR/data/data_warehouse.py index c35514ef..90c91afa 100644 --- a/ITR/data/data_warehouse.py +++ b/ITR/data/data_warehouse.py @@ -64,8 +64,7 @@ def get_preprocessed_company_data(self, company_ids: List[str]) -> List[ICompany projected_ei=projected_targets, projected_production=projected_production).rename(self.column_config.CUMULATIVE_TARGET) df_budget = self._get_cumulative_emissions( - projected_ei=self.benchmarks_projected_ei.get_SDA_intensity_benchmarks( - company_info_at_base_year), + projected_ei=self.benchmarks_projected_ei.get_SDA_intensity_benchmarks(company_info_at_base_year), projected_production=projected_production).rename(self.column_config.CUMULATIVE_BUDGET) df_company_data = pd.concat([df_company_data, df_trajectory, df_target, df_budget], axis=1) df_company_data[self.column_config.BENCHMARK_GLOBAL_BUDGET] = \ @@ -106,8 +105,7 @@ def _convert_df_to_model(self, df_company_data: pd.DataFrame) -> List[ICompanyAg pass return model_companies - def _get_cumulative_emissions(self, projected_ei: pd.DataFrame, projected_production: pd.DataFrame - ) -> pd.Series: + def _get_cumulative_emissions(self, projected_ei: pd.DataFrame, projected_production: pd.DataFrame) -> pd.Series: """ get the weighted sum of the projected emission :param projected_ei: series of projected emissions intensities diff --git a/ITR/temperature_score.py b/ITR/temperature_score.py index e3a0a6c3..359120be 100644 --- a/ITR/temperature_score.py +++ b/ITR/temperature_score.py @@ -49,56 +49,46 @@ def get_score(self, scorable_row: pd.Series) -> Tuple[ Get the temperature score for a certain target based on the annual reduction rate and the regression parameters. :param scorable_row: The target as a row of a data frame - :return: The temperature score, which is a tuple of (TEMPERATURE_SCORE,TRAJECTORY_SCORE,TRAJECTORY_OVERSHOOT,TARGET_SCORE,TARGET_OVERSHOOT,TEMPERATURE_RESULTS]) + :return: The temperature score, which is a tuple of (TEMPERATURE_SCORE, TRAJECTORY_SCORE, TRAJECTORY_OVERSHOOT, + TARGET_SCORE, TARGET_OVERSHOOT, TEMPERATURE_RESULTS]) """ # If both trajectory and target data missing assign default value - if np.isnan(scorable_row[self.c.COLS.CUMULATIVE_TARGET]) and np.isnan( - scorable_row[self.c.COLS.CUMULATIVE_TRAJECTORY]): - return self.get_default_score(scorable_row), np.nan, np.nan, np.nan, np.nan, Q_(1, ureg.delta_degC) + if (np.isnan(scorable_row[self.c.COLS.CUMULATIVE_TARGET]) and + np.isnan(scorable_row[self.c.COLS.CUMULATIVE_TRAJECTORY])) or \ + scorable_row[self.c.COLS.CUMULATIVE_BUDGET].m <= 0: + return self.get_default_score(scorable_row), np.nan, np.nan, np.nan, np.nan, EScoreResultType.DEFAULT # If only target data missing assign only trajectory_score to final score - elif np.isnan(scorable_row[self.c.COLS.CUMULATIVE_TARGET]) or scorable_row[self.c.COLS.CUMULATIVE_TARGET] == 0 \ - or scorable_row[self.c.COLS.CUMULATIVE_TARGET] == scorable_row[self.c.COLS.CUMULATIVE_TRAJECTORY]: - target_overshoot_ratio = 0.0 - target_temperature_score = 0.0 + elif np.isnan(scorable_row[self.c.COLS.CUMULATIVE_TARGET]) or scorable_row[self.c.COLS.CUMULATIVE_TARGET] == 0: + target_overshoot_ratio = np.nan + target_temperature_score = np.nan trajectory_overshoot_ratio = scorable_row[self.c.COLS.CUMULATIVE_TRAJECTORY] / scorable_row[ self.c.COLS.CUMULATIVE_BUDGET] trajectory_temperature_score = scorable_row[self.c.COLS.BENCHMARK_TEMP] + \ - (scorable_row[self.c.COLS.BENCHMARK_GLOBAL_BUDGET] * ( - trajectory_overshoot_ratio - 1.0) * self.c.CONTROLS_CONFIG.tcre_multiplier) + (scorable_row[self.c.COLS.BENCHMARK_GLOBAL_BUDGET] * (trajectory_overshoot_ratio - 1.0) * + self.c.CONTROLS_CONFIG.tcre_multiplier) score = trajectory_temperature_score - return score, trajectory_temperature_score, trajectory_overshoot_ratio, target_temperature_score, target_overshoot_ratio, EScoreResultType.COMPLETE + return score, trajectory_temperature_score, trajectory_overshoot_ratio, \ + target_temperature_score, target_overshoot_ratio, EScoreResultType.TRAJECTORY_ONLY - elif scorable_row[self.c.COLS.CUMULATIVE_BUDGET].m > 0: + else: target_overshoot_ratio = scorable_row[self.c.COLS.CUMULATIVE_TARGET] / scorable_row[ self.c.COLS.CUMULATIVE_BUDGET] trajectory_overshoot_ratio = scorable_row[self.c.COLS.CUMULATIVE_TRAJECTORY] / scorable_row[ self.c.COLS.CUMULATIVE_BUDGET] - else: - target_overshoot_ratio = 0.0 - trajectory_overshoot_ratio = 0.0 - - target_temperature_score = scorable_row[self.c.COLS.BENCHMARK_TEMP] + \ - (scorable_row[self.c.COLS.BENCHMARK_GLOBAL_BUDGET] * ( - target_overshoot_ratio - 1.0) * self.c.CONTROLS_CONFIG.tcre_multiplier) - trajectory_temperature_score = scorable_row[self.c.COLS.BENCHMARK_TEMP] + \ - (scorable_row[self.c.COLS.BENCHMARK_GLOBAL_BUDGET] * ( - trajectory_overshoot_ratio - 1.0) * self.c.CONTROLS_CONFIG.tcre_multiplier) - score = target_temperature_score * scorable_row[self.c.COLS.TARGET_PROBABILITY] + \ - trajectory_temperature_score * (1 - scorable_row[self.c.COLS.TARGET_PROBABILITY]) + target_temperature_score = scorable_row[self.c.COLS.BENCHMARK_TEMP] + \ + (scorable_row[self.c.COLS.BENCHMARK_GLOBAL_BUDGET] * (target_overshoot_ratio - 1.0) * + self.c.CONTROLS_CONFIG.tcre_multiplier) + trajectory_temperature_score = scorable_row[self.c.COLS.BENCHMARK_TEMP] + \ + (scorable_row[self.c.COLS.BENCHMARK_GLOBAL_BUDGET] * (trajectory_overshoot_ratio - 1.0) * + self.c.CONTROLS_CONFIG.tcre_multiplier) + score = target_temperature_score * scorable_row[self.c.COLS.TARGET_PROBABILITY] + \ + trajectory_temperature_score * (1 - scorable_row[self.c.COLS.TARGET_PROBABILITY]) - # Safeguard: If score is NaN due to missing data assign default score. - if np.isnan(score): - if trajectory_temperature_score: - # trajectory only - return trajectory_temperature_score, trajectory_temperature_score, trajectory_overshoot_ratio, target_temperature_score, target_overshoot_ratio, EScoreResultType.TRAJECTORY_ONLY - else: - default_score = self.get_default_score(scorable_row) - return default_score, trajectory_temperature_score, trajectory_overshoot_ratio, target_temperature_score, target_overshoot_ratio, Q_( - 1.0, EScoreResultType.DEFAULT) - return score, trajectory_temperature_score, trajectory_overshoot_ratio, target_temperature_score, target_overshoot_ratio, EScoreResultType.COMPLETE + return score, trajectory_temperature_score, trajectory_overshoot_ratio, target_temperature_score, \ + target_overshoot_ratio, EScoreResultType.COMPLETE def get_ghc_temperature_score(self, row: pd.Series, company_data: pd.DataFrame) -> Quantity['delta_degC']: """ diff --git a/test/test_template_provider.py b/test/test_template_provider.py index af0a1198..b1a77558 100644 --- a/test/test_template_provider.py +++ b/test/test_template_provider.py @@ -72,7 +72,9 @@ def test_target_projections(self): # We transpose the data so that we get a pd.Series that will accept the pint units as a whole (not element-by-element) .iloc[0].T .astype(f'pint[{str(c.base_year_production.units)}]')) - print(f"{c.company_name}: {EITargetProjector().project_ei_targets(c.target_data, c.historic_data, bm_production_data).S1S2}") + projected_targets = EITargetProjector().project_ei_targets(c.target_data, c.historic_data, + bm_production_data, c.projected_intensities).S1S2 + print(f"{c.company_name}: {projected_targets}") def test_temp_score(self): From c0dc7297e68b94444e01ba2c695bc2664b303600 Mon Sep 17 00:00:00 2001 From: David Kroon <35101727+dp90@users.noreply.github.com> Date: Wed, 18 May 2022 15:55:07 +0200 Subject: [PATCH 239/345] Log warning if target base year data is estimated from trajectory Signed-off-by: David Kroon <35101727+dp90@users.noreply.github.com> Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- ITR/data/base_providers.py | 11 +++++++---- test/test_template_provider.py | 3 +-- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/ITR/data/base_providers.py b/ITR/data/base_providers.py index dc851efd..21c668b7 100644 --- a/ITR/data/base_providers.py +++ b/ITR/data/base_providers.py @@ -291,8 +291,7 @@ def _calculate_target_projections(self, production_bm: BaseProviderProductionBen # We transpose the data so that we get a pd.Series that will accept the pint units as a whole (not element-by-element) .iloc[0].T .astype(f'pint[{str(base_year_production.units)}]')) - c.projected_targets = EITargetProjector()\ - .project_ei_targets(c.target_data, c.historic_data, bm_production_data, c.projected_intensities) + c.projected_targets = EITargetProjector().project_ei_targets(c, bm_production_data) # ??? Why prefer TRAJECTORY over TARGET? def _get_company_intensity_at_year(self, year: int, company_ids: List[str]) -> pd.Series: @@ -649,8 +648,7 @@ def _normalize_scope_targets(self, scope_targets): target.netzero_year = netzero_year return unique_scope_targets - def project_ei_targets(self, targets: List[ITargetData], historic_data: IHistoricData, production_bm: pd.Series, - projected_intensities: ICompanyEIProjectionsScopes) -> ICompanyEIProjectionsScopes: + def project_ei_targets(self, company: ICompanyData, production_bm: pd.Series) -> ICompanyEIProjectionsScopes: """Input: @targets: a list of a company's targets @historic_data: a company's historic production, emissions, and emission intensities realizations per scope @@ -658,6 +656,7 @@ def project_ei_targets(self, targets: List[ITargetData], historic_data: IHistori If the company has no target or the target can't be processed, then the output the emission database, unprocessed """ + targets, historic_data, projected_intensities = company.target_data, company.historic_data, company.projected_intensities ei_projection_scopes = {"S1": None, "S2": None, "S1S2": None, "S3": None, "S1S2S3": None} for scope in ei_projection_scopes: scope_targets = [target for target in targets if target.target_scope.name == scope] @@ -716,6 +715,8 @@ def project_ei_targets(self, targets: List[ITargetData], historic_data: IHistori if base_year > last_year_data.year: trajectory_ei = projected_intensities.__getattribute__(scope).projections last_year_data = next((ei for ei in trajectory_ei if ei.year == base_year), None) + warnings.warn(f"Emission intensity at base year for scope {scope} target for company " + f"{company.company_name} is estimated with trajectory projection.") # Removed condition base year > first_year. Do we care as long as base_year_qty is known? last_year, value_last_year = last_year_data.year, last_year_data.value @@ -758,6 +759,8 @@ def project_ei_targets(self, targets: List[ITargetData], historic_data: IHistori last_year = last_year_ei.year last_year_prod = production_bm.loc[last_year] last_year_data = IEmissionRealization(year=last_year, value=last_year_ei.value*last_year_prod) + warnings.warn(f"Emissions at base year for scope {scope} target for company " + f"{company.company_name} are estimated with trajectory projection.") last_year, value_last_year = last_year_data.year, last_year_data.value target_year = target.target_end_year diff --git a/test/test_template_provider.py b/test/test_template_provider.py index b1a77558..7d1cbdd8 100644 --- a/test/test_template_provider.py +++ b/test/test_template_provider.py @@ -72,8 +72,7 @@ def test_target_projections(self): # We transpose the data so that we get a pd.Series that will accept the pint units as a whole (not element-by-element) .iloc[0].T .astype(f'pint[{str(c.base_year_production.units)}]')) - projected_targets = EITargetProjector().project_ei_targets(c.target_data, c.historic_data, - bm_production_data, c.projected_intensities).S1S2 + projected_targets = EITargetProjector().project_ei_targets(c, bm_production_data).S1S2 print(f"{c.company_name}: {projected_targets}") From a0964d2755912e4971bef1fb5e4e2ce893ff1ac0 Mon Sep 17 00:00:00 2001 From: David Kroon <35101727+dp90@users.noreply.github.com> Date: Wed, 25 May 2022 13:59:24 +0200 Subject: [PATCH 240/345] Update docstring to reflect argument changes Signed-off-by: David Kroon <35101727+dp90@users.noreply.github.com> Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- ITR/temperature_score.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/ITR/temperature_score.py b/ITR/temperature_score.py index 359120be..116229fe 100644 --- a/ITR/temperature_score.py +++ b/ITR/temperature_score.py @@ -92,12 +92,14 @@ def get_score(self, scorable_row: pd.Series) -> Tuple[ def get_ghc_temperature_score(self, row: pd.Series, company_data: pd.DataFrame) -> Quantity['delta_degC']: """ - Get the aggregated temperature score and a temperature result, which indicates how much of the score is based on the default score for a certain company based on the emissions of company. + Get the aggregated temperature score. S1+S2+S3 is an emissions weighted sum of S1+S2 and S3. :param company_data: The original data, grouped by company, time frame and scope category :param row: The row to calculate the temperature score for (if the scope of the row isn't s1s2s3, it will return the original score) :return: The aggregated temperature score for a company """ + # TODO: Notify user when S1+S2+S3 is built up from S1+S2 and S3 score of different ScoreResultTypes + if row[self.c.COLS.SCOPE] != EScope.S1S2S3: return row[self.c.COLS.TEMPERATURE_SCORE] s1s2 = company_data.loc[(row[self.c.COLS.COMPANY_ID], row[self.c.COLS.TIME_FRAME], EScope.S1S2)] From 5c23314ce5f73135a444d1d7c3b9a817cc94a9eb Mon Sep 17 00:00:00 2001 From: David Kroon <35101727+dp90@users.noreply.github.com> Date: Wed, 25 May 2022 16:23:57 +0200 Subject: [PATCH 241/345] Update dependencies with vulnerabilities Signed-off-by: David Kroon <35101727+dp90@users.noreply.github.com> Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- requirements.txt | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/requirements.txt b/requirements.txt index fe79fede..22deaaaf 100644 --- a/requirements.txt +++ b/requirements.txt @@ -7,13 +7,13 @@ matplotlib==3.5.1 numpy==1.22.2 openpyxl==3.0.9 openscm-units==0.5.0 -pandas==1.4.1 +pandas==1.4.2 Pint-Pandas==0.2 Pint==0.18 pydantic==1.8.2 pygithub==1.55 -Sphinx==3.0.3 +Sphinx==4.5.0 sphinx-autoapi==1.8.4 -sphinx-autodoc-typehints==1.10.3 -sphinx-rtd-theme==0.4.3 -xlrd==2.0.1 \ No newline at end of file +sphinx-autodoc-typehints==1.18.1 +sphinx-rtd-theme==1.0.0 +xlrd==2.0.1 From 4e350390bd0299eeb47bf5ab9af76c3206471c8c Mon Sep 17 00:00:00 2001 From: Michael Tiemann Date: Fri, 3 Jun 2022 07:13:56 -0400 Subject: [PATCH 242/345] GHG_SCOPE12 and GHG_SCOPE3 are emissions, not production Per other changes we have implemented, GHG_SCOPE12 and GHG_SCOPE3 are emissions (t CO2) rather than production (such as MWh or Fe_ton). Signed-off-by: MichaelTiemannOSC Signed-off-by: Michael Tiemann Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- test/test_portfolio_aggregation.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/test/test_portfolio_aggregation.py b/test/test_portfolio_aggregation.py index 282d5c39..65613cb5 100644 --- a/test/test_portfolio_aggregation.py +++ b/test/test_portfolio_aggregation.py @@ -21,8 +21,8 @@ def setUp(self) -> None: self.data.loc[:, ColumnsConfig.COMPANY_MARKET_CAP] = [1.0, 2.0, 3.0] self.data.loc[:, ColumnsConfig.INVESTMENT_VALUE] = [1.0, 2.0, 3.0] self.data.loc[:, ColumnsConfig.SCOPE] = [EScope.S1S2, EScope.S1S2, EScope.S1S2S3] - self.data.loc[:, ColumnsConfig.GHG_SCOPE12] = pd.Series([1.0, 2.0, 3.0], dtype='pint[MWh]') - self.data.loc[:, ColumnsConfig.GHG_SCOPE3] = pd.Series([1.0, 2.0, 3.0], dtype='pint[MWh]') + self.data.loc[:, ColumnsConfig.GHG_SCOPE12] = pd.Series([1.0, 2.0, 3.0], dtype='pint[t CO2]') + self.data.loc[:, ColumnsConfig.GHG_SCOPE3] = pd.Series([1.0, 2.0, 3.0], dtype='pint[t CO2]') self.data.loc[:, ColumnsConfig.COMPANY_ENTERPRISE_VALUE] = [1.0, 2.0, 3.0] self.data.loc[:, ColumnsConfig.CASH_EQUIVALENTS] = [1.0, 2.0, 3.0] self.data.loc[:, ColumnsConfig.COMPANY_EV_PLUS_CASH] = [1.0, 2.0, 3.0] From 3275006414a71f7b95bedaa30285c88044b0c17b Mon Sep 17 00:00:00 2001 From: David Kroon <35101727+dp90@users.noreply.github.com> Date: Wed, 18 May 2022 13:41:27 +0200 Subject: [PATCH 243/345] Update TPI benchmarks Signed-off-by: David Kroon <35101727+dp90@users.noreply.github.com> Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- examples/data/convert_tpi_to_json.py | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 examples/data/convert_tpi_to_json.py diff --git a/examples/data/convert_tpi_to_json.py b/examples/data/convert_tpi_to_json.py new file mode 100644 index 00000000..e69de29b From dc8c9d570c3793c10a4828567c9cfaaa5f2eaf86 Mon Sep 17 00:00:00 2001 From: David Kroon <35101727+dp90@users.noreply.github.com> Date: Wed, 18 May 2022 13:42:13 +0200 Subject: [PATCH 244/345] Update TPI benchmarks Signed-off-by: David Kroon <35101727+dp90@users.noreply.github.com> Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- .../json/benchmark_EI_TPI_1_5_degrees.json | 970 ++++++++++++++++++ .../data/json/benchmark_EI_TPI_2_degrees.json | 525 +++++++++- .../benchmark_EI_TPI_below_2_degrees.json | 821 +++++++++++++-- 3 files changed, 2197 insertions(+), 119 deletions(-) create mode 100644 examples/data/json/benchmark_EI_TPI_1_5_degrees.json diff --git a/examples/data/json/benchmark_EI_TPI_1_5_degrees.json b/examples/data/json/benchmark_EI_TPI_1_5_degrees.json new file mode 100644 index 00000000..9f443168 --- /dev/null +++ b/examples/data/json/benchmark_EI_TPI_1_5_degrees.json @@ -0,0 +1,970 @@ +{ + "benchmark_temperature": 1.5, + "benchmark_global_budget": 500, + "is_AFOLU_included": false, + "S1S2": { + "benchmarks": [ + { + "sector": "Electricity Utilities", + "region": "Europe", + "projections": [ + { + "year": 2019, + "value": 0.259 + }, + { + "year": 2020, + "value": 0.239 + }, + { + "year": 2021, + "value": 0.219 + }, + { + "year": 2022, + "value": 0.2 + }, + { + "year": 2023, + "value": 0.181 + }, + { + "year": 2024, + "value": 0.162 + }, + { + "year": 2025, + "value": 0.142 + }, + { + "year": 2026, + "value": 0.123 + }, + { + "year": 2027, + "value": 0.104 + }, + { + "year": 2028, + "value": 0.085 + }, + { + "year": 2029, + "value": 0.065 + }, + { + "year": 2030, + "value": 0.046 + }, + { + "year": 2031, + "value": 0.037 + }, + { + "year": 2032, + "value": 0.028 + }, + { + "year": 2033, + "value": 0.018 + }, + { + "year": 2034, + "value": 0.009 + }, + { + "year": 2035, + "value": 0.0 + }, + { + "year": 2036, + "value": 0.0 + }, + { + "year": 2037, + "value": 0.0 + }, + { + "year": 2038, + "value": 0.0 + }, + { + "year": 2039, + "value": 0.0 + }, + { + "year": 2040, + "value": 0.0 + }, + { + "year": 2041, + "value": 0.0 + }, + { + "year": 2042, + "value": 0.0 + }, + { + "year": 2043, + "value": 0.0 + }, + { + "year": 2044, + "value": 0.0 + }, + { + "year": 2045, + "value": 0.0 + }, + { + "year": 2046, + "value": 0.0 + }, + { + "year": 2047, + "value": 0.0 + }, + { + "year": 2048, + "value": 0.0 + }, + { + "year": 2049, + "value": 0.0 + }, + { + "year": 2050, + "value": 0.0 + } + ], + "scenario name": "1.5 Degrees", + "release date": "1-4-2022", + "unit": "Carbon intensity (metric tonnes of CO2 per MWh electricity generation)" + }, + { + "sector": "Electricity Utilities", + "region": "North-America", + "projections": [ + { + "year": 2019, + "value": 0.328 + }, + { + "year": 2020, + "value": 0.301 + }, + { + "year": 2021, + "value": 0.278 + }, + { + "year": 2022, + "value": 0.254 + }, + { + "year": 2023, + "value": 0.231 + }, + { + "year": 2024, + "value": 0.208 + }, + { + "year": 2025, + "value": 0.185 + }, + { + "year": 2026, + "value": 0.161 + }, + { + "year": 2027, + "value": 0.138 + }, + { + "year": 2028, + "value": 0.115 + }, + { + "year": 2029, + "value": 0.091 + }, + { + "year": 2030, + "value": 0.068 + }, + { + "year": 2031, + "value": 0.054 + }, + { + "year": 2032, + "value": 0.041 + }, + { + "year": 2033, + "value": 0.027 + }, + { + "year": 2034, + "value": 0.014 + }, + { + "year": 2035, + "value": 0.0 + }, + { + "year": 2036, + "value": 0.0 + }, + { + "year": 2037, + "value": 0.0 + }, + { + "year": 2038, + "value": 0.0 + }, + { + "year": 2039, + "value": 0.0 + }, + { + "year": 2040, + "value": 0.0 + }, + { + "year": 2041, + "value": 0.0 + }, + { + "year": 2042, + "value": 0.0 + }, + { + "year": 2043, + "value": 0.0 + }, + { + "year": 2044, + "value": 0.0 + }, + { + "year": 2045, + "value": 0.0 + }, + { + "year": 2046, + "value": 0.0 + }, + { + "year": 2047, + "value": 0.0 + }, + { + "year": 2048, + "value": 0.0 + }, + { + "year": 2049, + "value": 0.0 + }, + { + "year": 2050, + "value": 0.0 + } + ], + "scenario name": "1.5 Degrees", + "release date": "1-4-2022", + "unit": "Carbon intensity (metric tonnes of CO2 per MWh electricity generation)" + }, + { + "sector": "Electricity Utilities", + "region": "non-OECD", + "projections": [ + { + "year": 2019, + "value": 0.564 + }, + { + "year": 2020, + "value": 0.529 + }, + { + "year": 2021, + "value": 0.494 + }, + { + "year": 2022, + "value": 0.459 + }, + { + "year": 2023, + "value": 0.424 + }, + { + "year": 2024, + "value": 0.389 + }, + { + "year": 2025, + "value": 0.354 + }, + { + "year": 2026, + "value": 0.319 + }, + { + "year": 2027, + "value": 0.284 + }, + { + "year": 2028, + "value": 0.249 + }, + { + "year": 2029, + "value": 0.214 + }, + { + "year": 2030, + "value": 0.179 + }, + { + "year": 2031, + "value": 0.161 + }, + { + "year": 2032, + "value": 0.143 + }, + { + "year": 2033, + "value": 0.126 + }, + { + "year": 2034, + "value": 0.108 + }, + { + "year": 2035, + "value": 0.09 + }, + { + "year": 2036, + "value": 0.072 + }, + { + "year": 2037, + "value": 0.054 + }, + { + "year": 2038, + "value": 0.036 + }, + { + "year": 2039, + "value": 0.018 + }, + { + "year": 2040, + "value": 0.0 + }, + { + "year": 2041, + "value": 0.0 + }, + { + "year": 2042, + "value": 0.0 + }, + { + "year": 2043, + "value": 0.0 + }, + { + "year": 2044, + "value": 0.0 + }, + { + "year": 2045, + "value": 0.0 + }, + { + "year": 2046, + "value": 0.0 + }, + { + "year": 2047, + "value": 0.0 + }, + { + "year": 2048, + "value": 0.0 + }, + { + "year": 2049, + "value": 0.0 + }, + { + "year": 2050, + "value": 0.0 + } + ], + "scenario name": "1.5 Degrees", + "release date": "1-4-2022", + "unit": "Carbon intensity (metric tonnes of CO2 per MWh electricity generation)" + }, + { + "sector": "Electricity Utilities", + "region": "OECD", + "projections": [ + { + "year": 2019, + "value": 0.329 + }, + { + "year": 2020, + "value": 0.305 + }, + { + "year": 2021, + "value": 0.281 + }, + { + "year": 2022, + "value": 0.257 + }, + { + "year": 2023, + "value": 0.233 + }, + { + "year": 2024, + "value": 0.209 + }, + { + "year": 2025, + "value": 0.185 + }, + { + "year": 2026, + "value": 0.161 + }, + { + "year": 2027, + "value": 0.137 + }, + { + "year": 2028, + "value": 0.113 + }, + { + "year": 2029, + "value": 0.088 + }, + { + "year": 2030, + "value": 0.064 + }, + { + "year": 2031, + "value": 0.051 + }, + { + "year": 2032, + "value": 0.039 + }, + { + "year": 2033, + "value": 0.026 + }, + { + "year": 2034, + "value": 0.013 + }, + { + "year": 2035, + "value": 0.0 + }, + { + "year": 2036, + "value": 0.0 + }, + { + "year": 2037, + "value": 0.0 + }, + { + "year": 2038, + "value": 0.0 + }, + { + "year": 2039, + "value": 0.0 + }, + { + "year": 2040, + "value": 0.0 + }, + { + "year": 2041, + "value": 0.0 + }, + { + "year": 2042, + "value": 0.0 + }, + { + "year": 2043, + "value": 0.0 + }, + { + "year": 2044, + "value": 0.0 + }, + { + "year": 2045, + "value": 0.0 + }, + { + "year": 2046, + "value": 0.0 + }, + { + "year": 2047, + "value": 0.0 + }, + { + "year": 2048, + "value": 0.0 + }, + { + "year": 2049, + "value": 0.0 + }, + { + "year": 2050, + "value": 0.0 + } + ], + "scenario name": "1.5 Degrees", + "release date": "1-4-2022", + "unit": "Carbon intensity (metric tonnes of CO2 per MWh electricity generation)" + }, + { + "sector": "Electricity Utilities", + "region": "Global", + "projections": [ + { + "year": 2019, + "value": 0.468 + }, + { + "year": 2020, + "value": 0.438 + }, + { + "year": 2021, + "value": 0.408 + }, + { + "year": 2022, + "value": 0.378 + }, + { + "year": 2023, + "value": 0.348 + }, + { + "year": 2024, + "value": 0.318 + }, + { + "year": 2025, + "value": 0.288 + }, + { + "year": 2026, + "value": 0.258 + }, + { + "year": 2027, + "value": 0.228 + }, + { + "year": 2028, + "value": 0.198 + }, + { + "year": 2029, + "value": 0.168 + }, + { + "year": 2030, + "value": 0.138 + }, + { + "year": 2031, + "value": 0.124 + }, + { + "year": 2032, + "value": 0.11 + }, + { + "year": 2033, + "value": 0.096 + }, + { + "year": 2034, + "value": 0.082 + }, + { + "year": 2035, + "value": 0.069 + }, + { + "year": 2036, + "value": 0.055 + }, + { + "year": 2037, + "value": 0.041 + }, + { + "year": 2038, + "value": 0.027 + }, + { + "year": 2039, + "value": 0.013 + }, + { + "year": 2040, + "value": 0.0 + }, + { + "year": 2041, + "value": 0.0 + }, + { + "year": 2042, + "value": 0.0 + }, + { + "year": 2043, + "value": 0.0 + }, + { + "year": 2044, + "value": 0.0 + }, + { + "year": 2045, + "value": 0.0 + }, + { + "year": 2046, + "value": 0.0 + }, + { + "year": 2047, + "value": 0.0 + }, + { + "year": 2048, + "value": 0.0 + }, + { + "year": 2049, + "value": 0.0 + }, + { + "year": 2050, + "value": 0.0 + } + ], + "scenario name": "1.5 Degrees", + "release date": "1-11-2021", + "unit": "Carbon intensity (metric tonnes of CO2 per MWh electricity generation)" + }, + { + "sector": "Oil & Gas", + "region": "Global", + "projections": [ + { + "year": 2019, + "value": 62.88 + }, + { + "year": 2020, + "value": 62.09 + }, + { + "year": 2021, + "value": 59.98 + }, + { + "year": 2022, + "value": 57.86 + }, + { + "year": 2023, + "value": 55.75 + }, + { + "year": 2024, + "value": 53.64 + }, + { + "year": 2025, + "value": 51.52 + }, + { + "year": 2026, + "value": 49.41 + }, + { + "year": 2027, + "value": 47.29 + }, + { + "year": 2028, + "value": 45.18 + }, + { + "year": 2029, + "value": 43.07 + }, + { + "year": 2030, + "value": 40.95 + }, + { + "year": 2031, + "value": 38.54 + }, + { + "year": 2032, + "value": 36.14 + }, + { + "year": 2033, + "value": 33.73 + }, + { + "year": 2034, + "value": 31.32 + }, + { + "year": 2035, + "value": 28.91 + }, + { + "year": 2036, + "value": 26.5 + }, + { + "year": 2037, + "value": 24.09 + }, + { + "year": 2038, + "value": 21.68 + }, + { + "year": 2039, + "value": 19.28 + }, + { + "year": 2040, + "value": 16.87 + }, + { + "year": 2041, + "value": 15.77 + }, + { + "year": 2042, + "value": 14.67 + }, + { + "year": 2043, + "value": 13.56 + }, + { + "year": 2044, + "value": 12.46 + }, + { + "year": 2045, + "value": 11.36 + }, + { + "year": 2046, + "value": 10.26 + }, + { + "year": 2047, + "value": 9.16 + }, + { + "year": 2048, + "value": 8.06 + }, + { + "year": 2049, + "value": 6.96 + }, + { + "year": 2050, + "value": 5.85 + } + ], + "scenario name": "1.5 Degrees", + "release date": "1-11-2021", + "unit": "Emissions intensity (gCO2e / MJ)" + }, + { + "sector": "Steel", + "region": "Global", + "projections": [ + { + "year": 2019, + "value": 1.662 + }, + { + "year": 2020, + "value": 1.613 + }, + { + "year": 2021, + "value": 1.565 + }, + { + "year": 2022, + "value": 1.517 + }, + { + "year": 2023, + "value": 1.468 + }, + { + "year": 2024, + "value": 1.42 + }, + { + "year": 2025, + "value": 1.371 + }, + { + "year": 2026, + "value": 1.323 + }, + { + "year": 2027, + "value": 1.274 + }, + { + "year": 2028, + "value": 1.226 + }, + { + "year": 2029, + "value": 1.177 + }, + { + "year": 2030, + "value": 1.129 + }, + { + "year": 2031, + "value": 1.062 + }, + { + "year": 2032, + "value": 0.996 + }, + { + "year": 2033, + "value": 0.929 + }, + { + "year": 2034, + "value": 0.863 + }, + { + "year": 2035, + "value": 0.796 + }, + { + "year": 2036, + "value": 0.729 + }, + { + "year": 2037, + "value": 0.663 + }, + { + "year": 2038, + "value": 0.596 + }, + { + "year": 2039, + "value": 0.529 + }, + { + "year": 2040, + "value": 0.463 + }, + { + "year": 2041, + "value": 0.422 + }, + { + "year": 2042, + "value": 0.381 + }, + { + "year": 2043, + "value": 0.339 + }, + { + "year": 2044, + "value": 0.298 + }, + { + "year": 2045, + "value": 0.257 + }, + { + "year": 2046, + "value": 0.216 + }, + { + "year": 2047, + "value": 0.175 + }, + { + "year": 2048, + "value": 0.134 + }, + { + "year": 2049, + "value": 0.093 + }, + { + "year": 2050, + "value": 0.052 + } + ], + "scenario name": "1.5 Degrees", + "release date": "1-4-2022", + "unit": "Carbon intensity (tonnes of CO2 per tonne of steel)" + } + ] + }, + "S3": null, + "S1S2S3": null +} \ No newline at end of file diff --git a/examples/data/json/benchmark_EI_TPI_2_degrees.json b/examples/data/json/benchmark_EI_TPI_2_degrees.json index d4079775..f47ad5eb 100644 --- a/examples/data/json/benchmark_EI_TPI_2_degrees.json +++ b/examples/data/json/benchmark_EI_TPI_2_degrees.json @@ -10,7 +10,7 @@ "projections": [ { "year": 2019, - "value": 0.6075603731304943 + "value": 0.476 }, { "year": 2020, @@ -18,39 +18,39 @@ }, { "year": 2021, - "value": 0.4376 + "value": 0.438 }, { "year": 2022, - "value": 0.41819999999999996 + "value": 0.418 }, { "year": 2023, - "value": 0.39879999999999993 + "value": 0.399 }, { "year": 2024, - "value": 0.3793999999999999 + "value": 0.38 }, { "year": 2025, - "value": 0.36 + "value": 0.361 }, { "year": 2026, - "value": 0.33699999999999997 + "value": 0.338 }, { "year": 2027, - "value": 0.31399999999999995 + "value": 0.315 }, { "year": 2028, - "value": 0.2909999999999999 + "value": 0.291 }, { "year": 2029, - "value": 0.2679999999999999 + "value": 0.268 }, { "year": 2030, @@ -58,19 +58,19 @@ }, { "year": 2031, - "value": 0.22619999999999998 + "value": 0.226 }, { "year": 2032, - "value": 0.20739999999999997 + "value": 0.207 }, { "year": 2033, - "value": 0.18859999999999996 + "value": 0.189 }, { "year": 2034, - "value": 0.16979999999999995 + "value": 0.17 }, { "year": 2035, @@ -78,19 +78,19 @@ }, { "year": 2036, - "value": 0.1402 + "value": 0.14 }, { "year": 2037, - "value": 0.1294 + "value": 0.129 }, { "year": 2038, - "value": 0.11859999999999998 + "value": 0.119 }, { "year": 2039, - "value": 0.10779999999999998 + "value": 0.108 }, { "year": 2040, @@ -98,19 +98,19 @@ }, { "year": 2041, - "value": 0.0888 + "value": 0.089 }, { "year": 2042, - "value": 0.0806 + "value": 0.081 }, { "year": 2043, - "value": 0.0724 + "value": 0.072 }, { "year": 2044, - "value": 0.06420000000000001 + "value": 0.064 }, { "year": 2045, @@ -118,25 +118,165 @@ }, { "year": 2046, - "value": 0.0528 + "value": 0.052 }, { "year": 2047, - "value": 0.0496 + "value": 0.048 }, { "year": 2048, - "value": 0.0464 + "value": 0.044 }, { "year": 2049, - "value": 0.043199999999999995 + "value": 0.04 }, { "year": 2050, - "value": 0.04 + "value": 0.036 } - ] + ], + "scenario name": "2 Degrees", + "release date": "1-10-2020", + "unit": "Carbon intensity (metric tonnes of CO2 per MWh electricity generation)" + }, + { + "sector": "Oil & Gas", + "region": "Global", + "projections": [ + { + "year": 2019, + "value": 61.17 + }, + { + "year": 2020, + "value": 60.29 + }, + { + "year": 2021, + "value": 59.41 + }, + { + "year": 2022, + "value": 58.53 + }, + { + "year": 2023, + "value": 57.65 + }, + { + "year": 2024, + "value": 56.77 + }, + { + "year": 2025, + "value": 55.9 + }, + { + "year": 2026, + "value": 54.36 + }, + { + "year": 2027, + "value": 52.82 + }, + { + "year": 2028, + "value": 51.28 + }, + { + "year": 2029, + "value": 49.74 + }, + { + "year": 2030, + "value": 48.21 + }, + { + "year": 2031, + "value": 46.58 + }, + { + "year": 2032, + "value": 44.95 + }, + { + "year": 2033, + "value": 43.33 + }, + { + "year": 2034, + "value": 41.7 + }, + { + "year": 2035, + "value": 40.08 + }, + { + "year": 2036, + "value": 38.75 + }, + { + "year": 2037, + "value": 37.42 + }, + { + "year": 2038, + "value": 36.09 + }, + { + "year": 2039, + "value": 34.76 + }, + { + "year": 2040, + "value": 33.43 + }, + { + "year": 2041, + "value": 32.2 + }, + { + "year": 2042, + "value": 30.97 + }, + { + "year": 2043, + "value": 29.74 + }, + { + "year": 2044, + "value": 28.51 + }, + { + "year": 2045, + "value": 27.27 + }, + { + "year": 2046, + "value": 26.16 + }, + { + "year": 2047, + "value": 25.05 + }, + { + "year": 2048, + "value": 23.93 + }, + { + "year": 2049, + "value": 22.82 + }, + { + "year": 2050, + "value": 21.7 + } + ], + "scenario name": "2 Degrees", + "release date": "1-10-2020", + "unit": "Emissions intensity (gCO2e / MJ)" }, { "sector": "Steel", @@ -144,7 +284,7 @@ "projections": [ { "year": 2019, - "value": 1.669 + "value": 1.525 }, { "year": 2020, @@ -152,19 +292,19 @@ }, { "year": 2021, - "value": 1.4718 + "value": 1.471 }, { "year": 2022, - "value": 1.4456 + "value": 1.445 }, { "year": 2023, - "value": 1.4194 + "value": 1.418 }, { "year": 2024, - "value": 1.3932 + "value": 1.393 }, { "year": 2025, @@ -172,19 +312,19 @@ }, { "year": 2026, - "value": 1.3195999999999999 + "value": 1.317 }, { "year": 2027, - "value": 1.2721999999999998 + "value": 1.269 }, { "year": 2028, - "value": 1.2247999999999997 + "value": 1.221 }, { "year": 2029, - "value": 1.1773999999999996 + "value": 1.175 }, { "year": 2030, @@ -192,19 +332,19 @@ }, { "year": 2031, - "value": 1.0948 + "value": 1.093 }, { "year": 2032, - "value": 1.0596 + "value": 1.057 }, { "year": 2033, - "value": 1.0244000000000002 + "value": 1.022 }, { "year": 2034, - "value": 0.9892000000000002 + "value": 0.988 }, { "year": 2035, @@ -212,19 +352,19 @@ }, { "year": 2036, - "value": 0.9258 + "value": 0.925 }, { "year": 2037, - "value": 0.8976 + "value": 0.897 }, { "year": 2038, - "value": 0.8694 + "value": 0.869 }, { "year": 2039, - "value": 0.8412 + "value": 0.841 }, { "year": 2040, @@ -232,19 +372,19 @@ }, { "year": 2041, - "value": 0.7857999999999999 + "value": 0.785 }, { "year": 2042, - "value": 0.7585999999999999 + "value": 0.758 }, { "year": 2043, - "value": 0.7313999999999999 + "value": 0.731 }, { "year": 2044, - "value": 0.7041999999999999 + "value": 0.704 }, { "year": 2045, @@ -252,25 +392,302 @@ }, { "year": 2046, - "value": 0.6658000000000001 + "value": 0.667 }, { "year": 2047, - "value": 0.6546000000000001 + "value": 0.655 }, { "year": 2048, - "value": 0.6434000000000001 + "value": 0.644 }, { "year": 2049, - "value": 0.6322000000000001 + "value": 0.632 }, { "year": 2050, "value": 0.621 } - ] + ], + "scenario name": "2 Degrees", + "release date": "1-2-2021", + "unit": "Carbon intensity (tonnes of CO2 per tonne of steel)" + }, + { + "sector": "Autos", + "region": "Global", + "projections": [ + { + "year": 2019, + "value": 119.0 + }, + { + "year": 2020, + "value": 113.0 + }, + { + "year": 2021, + "value": 104.0 + }, + { + "year": 2022, + "value": 95.0 + }, + { + "year": 2023, + "value": 86.0 + }, + { + "year": 2024, + "value": 77.0 + }, + { + "year": 2025, + "value": 68.0 + }, + { + "year": 2026, + "value": 62.0 + }, + { + "year": 2027, + "value": 57.0 + }, + { + "year": 2028, + "value": 51.0 + }, + { + "year": 2029, + "value": 46.0 + }, + { + "year": 2030, + "value": 40.0 + }, + { + "year": 2031, + "value": 37.0 + }, + { + "year": 2032, + "value": 34.0 + }, + { + "year": 2033, + "value": 31.0 + }, + { + "year": 2034, + "value": 27.0 + }, + { + "year": 2035, + "value": 24.0 + }, + { + "year": 2036, + "value": 22.0 + }, + { + "year": 2037, + "value": 21.0 + }, + { + "year": 2038, + "value": 19.0 + }, + { + "year": 2039, + "value": 17.0 + }, + { + "year": 2040, + "value": 15.0 + }, + { + "year": 2041, + "value": 14.0 + }, + { + "year": 2042, + "value": 13.0 + }, + { + "year": 2043, + "value": 12.0 + }, + { + "year": 2044, + "value": 11.0 + }, + { + "year": 2045, + "value": 10.0 + }, + { + "year": 2046, + "value": 9.0 + }, + { + "year": 2047, + "value": 8.0 + }, + { + "year": 2048, + "value": 8.0 + }, + { + "year": 2049, + "value": 7.0 + }, + { + "year": 2050, + "value": 6.0 + } + ], + "scenario name": "2 Degrees (High Efficiency)", + "release date": "1-12-2020", + "unit": "Average new vehicle emissions (grams of CO2 per kilometre [NEDC])" + }, + { + "sector": "Autos", + "region": "Global", + "projections": [ + { + "year": 2019, + "value": 119.0 + }, + { + "year": 2020, + "value": 113.0 + }, + { + "year": 2021, + "value": 109.0 + }, + { + "year": 2022, + "value": 105.0 + }, + { + "year": 2023, + "value": 102.0 + }, + { + "year": 2024, + "value": 98.0 + }, + { + "year": 2025, + "value": 94.0 + }, + { + "year": 2026, + "value": 91.0 + }, + { + "year": 2027, + "value": 88.0 + }, + { + "year": 2028, + "value": 84.0 + }, + { + "year": 2029, + "value": 81.0 + }, + { + "year": 2030, + "value": 77.0 + }, + { + "year": 2031, + "value": 74.0 + }, + { + "year": 2032, + "value": 72.0 + }, + { + "year": 2033, + "value": 69.0 + }, + { + "year": 2034, + "value": 67.0 + }, + { + "year": 2035, + "value": 64.0 + }, + { + "year": 2036, + "value": 63.0 + }, + { + "year": 2037, + "value": 61.0 + }, + { + "year": 2038, + "value": 59.0 + }, + { + "year": 2039, + "value": 58.0 + }, + { + "year": 2040, + "value": 56.0 + }, + { + "year": 2041, + "value": 55.0 + }, + { + "year": 2042, + "value": 54.0 + }, + { + "year": 2043, + "value": 52.0 + }, + { + "year": 2044, + "value": 51.0 + }, + { + "year": 2045, + "value": 50.0 + }, + { + "year": 2046, + "value": 49.0 + }, + { + "year": 2047, + "value": 47.0 + }, + { + "year": 2048, + "value": 46.0 + }, + { + "year": 2049, + "value": 45.0 + }, + { + "year": 2050, + "value": 43.0 + } + ], + "scenario name": "2 Degrees (Shift-Improve)", + "release date": "1-12-2020", + "unit": "Average new vehicle emissions (grams of CO2 per kilometre [NEDC])" } ] }, diff --git a/examples/data/json/benchmark_EI_TPI_below_2_degrees.json b/examples/data/json/benchmark_EI_TPI_below_2_degrees.json index e674f691..852997f4 100644 --- a/examples/data/json/benchmark_EI_TPI_below_2_degrees.json +++ b/examples/data/json/benchmark_EI_TPI_below_2_degrees.json @@ -6,137 +6,825 @@ "benchmarks": [ { "sector": "Electricity Utilities", - "region": "Global", + "region": "Europe", + "projections": [ + { + "year": 2019, + "value": 0.259 + }, + { + "year": 2020, + "value": 0.239 + }, + { + "year": 2021, + "value": 0.221 + }, + { + "year": 2022, + "value": 0.203 + }, + { + "year": 2023, + "value": 0.185 + }, + { + "year": 2024, + "value": 0.167 + }, + { + "year": 2025, + "value": 0.149 + }, + { + "year": 2026, + "value": 0.132 + }, + { + "year": 2027, + "value": 0.115 + }, + { + "year": 2028, + "value": 0.098 + }, + { + "year": 2029, + "value": 0.081 + }, + { + "year": 2030, + "value": 0.063 + }, + { + "year": 2031, + "value": 0.06 + }, + { + "year": 2032, + "value": 0.057 + }, + { + "year": 2033, + "value": 0.053 + }, + { + "year": 2034, + "value": 0.05 + }, + { + "year": 2035, + "value": 0.046 + }, + { + "year": 2036, + "value": 0.043 + }, + { + "year": 2037, + "value": 0.039 + }, + { + "year": 2038, + "value": 0.036 + }, + { + "year": 2039, + "value": 0.032 + }, + { + "year": 2040, + "value": 0.029 + }, + { + "year": 2041, + "value": 0.023 + }, + { + "year": 2042, + "value": 0.017 + }, + { + "year": 2043, + "value": 0.012 + }, + { + "year": 2044, + "value": 0.006 + }, + { + "year": 2045, + "value": 0.0 + }, + { + "year": 2046, + "value": 0.0 + }, + { + "year": 2047, + "value": 0.0 + }, + { + "year": 2048, + "value": 0.0 + }, + { + "year": 2049, + "value": 0.0 + }, + { + "year": 2050, + "value": 0.0 + } + ], + "scenario name": "Below 2 Degrees", + "release date": "1-4-2022", + "unit": "Carbon intensity (metric tonnes of CO2 per MWh electricity generation)" + }, + { + "sector": "Electricity Utilities", + "region": "North-America", + "projections": [ + { + "year": 2019, + "value": 0.328 + }, + { + "year": 2020, + "value": 0.301 + }, + { + "year": 2021, + "value": 0.28 + }, + { + "year": 2022, + "value": 0.259 + }, + { + "year": 2023, + "value": 0.237 + }, + { + "year": 2024, + "value": 0.216 + }, + { + "year": 2025, + "value": 0.195 + }, + { + "year": 2026, + "value": 0.175 + }, + { + "year": 2027, + "value": 0.154 + }, + { + "year": 2028, + "value": 0.134 + }, + { + "year": 2029, + "value": 0.114 + }, + { + "year": 2030, + "value": 0.094 + }, + { + "year": 2031, + "value": 0.085 + }, + { + "year": 2032, + "value": 0.077 + }, + { + "year": 2033, + "value": 0.069 + }, + { + "year": 2034, + "value": 0.061 + }, + { + "year": 2035, + "value": 0.053 + }, + { + "year": 2036, + "value": 0.045 + }, + { + "year": 2037, + "value": 0.037 + }, + { + "year": 2038, + "value": 0.029 + }, + { + "year": 2039, + "value": 0.021 + }, + { + "year": 2040, + "value": 0.012 + }, + { + "year": 2041, + "value": 0.01 + }, + { + "year": 2042, + "value": 0.007 + }, + { + "year": 2043, + "value": 0.005 + }, + { + "year": 2044, + "value": 0.002 + }, + { + "year": 2045, + "value": 0.0 + }, + { + "year": 2046, + "value": 0.0 + }, + { + "year": 2047, + "value": 0.0 + }, + { + "year": 2048, + "value": 0.0 + }, + { + "year": 2049, + "value": 0.0 + }, + { + "year": 2050, + "value": 0.0 + } + ], + "scenario name": "Below 2 Degrees", + "release date": "1-4-2022", + "unit": "Carbon intensity (metric tonnes of CO2 per MWh electricity generation)" + }, + { + "sector": "Electricity Utilities", + "region": "non-OECD", "projections": [ { "year": 2019, - "value": 0.6075603731304943 + "value": 0.564 }, { "year": 2020, - "value": 0.44 + "value": 0.542 }, { "year": 2021, - "value": 0.418 + "value": 0.519 }, { "year": 2022, - "value": 0.39599999999999996 + "value": 0.496 }, { "year": 2023, - "value": 0.37399999999999994 + "value": 0.473 }, { "year": 2024, - "value": 0.3519999999999999 + "value": 0.45 }, { "year": 2025, - "value": 0.33 + "value": 0.426 }, { "year": 2026, - "value": 0.3098 + "value": 0.398 }, { "year": 2027, - "value": 0.2896 + "value": 0.37 }, { "year": 2028, - "value": 0.26940000000000003 + "value": 0.342 }, { "year": 2029, - "value": 0.24920000000000003 + "value": 0.314 }, { "year": 2030, - "value": 0.229 + "value": 0.286 }, { "year": 2031, - "value": 0.2114 + "value": 0.266 }, { "year": 2032, - "value": 0.1938 + "value": 0.246 }, { "year": 2033, - "value": 0.1762 + "value": 0.226 }, { "year": 2034, - "value": 0.1586 + "value": 0.206 }, { "year": 2035, - "value": 0.141 + "value": 0.187 }, { "year": 2036, - "value": 0.12719999999999998 + "value": 0.167 }, { "year": 2037, - "value": 0.11339999999999999 + "value": 0.147 }, { "year": 2038, - "value": 0.0996 + "value": 0.127 }, { "year": 2039, - "value": 0.0858 + "value": 0.107 }, { "year": 2040, + "value": 0.087 + }, + { + "year": 2041, + "value": 0.079 + }, + { + "year": 2042, + "value": 0.07 + }, + { + "year": 2043, + "value": 0.061 + }, + { + "year": 2044, + "value": 0.052 + }, + { + "year": 2045, + "value": 0.044 + }, + { + "year": 2046, + "value": 0.035 + }, + { + "year": 2047, + "value": 0.026 + }, + { + "year": 2048, + "value": 0.017 + }, + { + "year": 2049, + "value": 0.009 + }, + { + "year": 2050, + "value": 0.0 + } + ], + "scenario name": "Below 2 Degrees", + "release date": "1-4-2022", + "unit": "Carbon intensity (metric tonnes of CO2 per MWh electricity generation)" + }, + { + "sector": "Electricity Utilities", + "region": "OECD", + "projections": [ + { + "year": 2019, + "value": 0.329 + }, + { + "year": 2020, + "value": 0.305 + }, + { + "year": 2021, + "value": 0.28 + }, + { + "year": 2022, + "value": 0.255 + }, + { + "year": 2023, + "value": 0.23 + }, + { + "year": 2024, + "value": 0.205 + }, + { + "year": 2025, + "value": 0.18 + }, + { + "year": 2026, + "value": 0.165 + }, + { + "year": 2027, + "value": 0.149 + }, + { + "year": 2028, + "value": 0.134 + }, + { + "year": 2029, + "value": 0.118 + }, + { + "year": 2030, + "value": 0.103 + }, + { + "year": 2031, + "value": 0.095 + }, + { + "year": 2032, + "value": 0.087 + }, + { + "year": 2033, + "value": 0.08 + }, + { + "year": 2034, "value": 0.072 }, + { + "year": 2035, + "value": 0.065 + }, + { + "year": 2036, + "value": 0.057 + }, + { + "year": 2037, + "value": 0.049 + }, + { + "year": 2038, + "value": 0.042 + }, + { + "year": 2039, + "value": 0.034 + }, + { + "year": 2040, + "value": 0.027 + }, + { + "year": 2041, + "value": 0.021 + }, + { + "year": 2042, + "value": 0.016 + }, + { + "year": 2043, + "value": 0.011 + }, + { + "year": 2044, + "value": 0.005 + }, + { + "year": 2045, + "value": 0.0 + }, + { + "year": 2046, + "value": 0.0 + }, + { + "year": 2047, + "value": 0.0 + }, + { + "year": 2048, + "value": 0.0 + }, + { + "year": 2049, + "value": 0.0 + }, + { + "year": 2050, + "value": 0.0 + } + ], + "scenario name": "Below 2 Degrees", + "release date": "1-4-2022", + "unit": "Carbon intensity (metric tonnes of CO2 per MWh electricity generation)" + }, + { + "sector": "Electricity Utilities", + "region": "Global", + "projections": [ + { + "year": 2019, + "value": 0.468 + }, + { + "year": 2020, + "value": 0.438 + }, + { + "year": 2021, + "value": 0.417 + }, + { + "year": 2022, + "value": 0.396 + }, + { + "year": 2023, + "value": 0.375 + }, + { + "year": 2024, + "value": 0.354 + }, + { + "year": 2025, + "value": 0.333 + }, + { + "year": 2026, + "value": 0.31 + }, + { + "year": 2027, + "value": 0.288 + }, + { + "year": 2028, + "value": 0.265 + }, + { + "year": 2029, + "value": 0.242 + }, + { + "year": 2030, + "value": 0.22 + }, + { + "year": 2031, + "value": 0.205 + }, + { + "year": 2032, + "value": 0.189 + }, + { + "year": 2033, + "value": 0.174 + }, + { + "year": 2034, + "value": 0.159 + }, + { + "year": 2035, + "value": 0.143 + }, + { + "year": 2036, + "value": 0.128 + }, + { + "year": 2037, + "value": 0.113 + }, + { + "year": 2038, + "value": 0.098 + }, + { + "year": 2039, + "value": 0.082 + }, + { + "year": 2040, + "value": 0.067 + }, { "year": 2041, - "value": 0.061599999999999995 + "value": 0.06 }, { "year": 2042, - "value": 0.051199999999999996 + "value": 0.054 }, { "year": 2043, - "value": 0.040799999999999996 + "value": 0.047 }, { "year": 2044, - "value": 0.030399999999999996 + "value": 0.04 }, { "year": 2045, + "value": 0.033 + }, + { + "year": 2046, + "value": 0.027 + }, + { + "year": 2047, "value": 0.02 }, + { + "year": 2048, + "value": 0.013 + }, + { + "year": 2049, + "value": 0.007 + }, + { + "year": 2050, + "value": 0.0 + } + ], + "scenario name": "Below 2 Degrees", + "release date": "1-11-2021", + "unit": "Carbon intensity (metric tonnes of CO2 per MWh electricity generation)" + }, + { + "sector": "Oil & Gas", + "region": "Global", + "projections": [ + { + "year": 2019, + "value": 62.88 + }, + { + "year": 2020, + "value": 62.09 + }, + { + "year": 2021, + "value": 60.85 + }, + { + "year": 2022, + "value": 59.62 + }, + { + "year": 2023, + "value": 58.38 + }, + { + "year": 2024, + "value": 57.15 + }, + { + "year": 2025, + "value": 55.91 + }, + { + "year": 2026, + "value": 54.67 + }, + { + "year": 2027, + "value": 53.44 + }, + { + "year": 2028, + "value": 52.2 + }, + { + "year": 2029, + "value": 50.97 + }, + { + "year": 2030, + "value": 49.73 + }, + { + "year": 2031, + "value": 47.96 + }, + { + "year": 2032, + "value": 46.18 + }, + { + "year": 2033, + "value": 44.41 + }, + { + "year": 2034, + "value": 42.64 + }, + { + "year": 2035, + "value": 40.86 + }, + { + "year": 2036, + "value": 39.09 + }, + { + "year": 2037, + "value": 37.32 + }, + { + "year": 2038, + "value": 35.54 + }, + { + "year": 2039, + "value": 33.77 + }, + { + "year": 2040, + "value": 32.0 + }, + { + "year": 2041, + "value": 30.82 + }, + { + "year": 2042, + "value": 29.65 + }, + { + "year": 2043, + "value": 28.47 + }, + { + "year": 2044, + "value": 27.3 + }, + { + "year": 2045, + "value": 26.13 + }, { "year": 2046, - "value": 0.0144 + "value": 24.95 }, { "year": 2047, - "value": 0.008799999999999999 + "value": 23.78 }, { "year": 2048, - "value": 0.003199999999999999 + "value": 22.6 }, { "year": 2049, - "value": -0.002400000000000001 + "value": 21.43 }, { "year": 2050, - "value": -0.008 + "value": 20.25 } - ] + ], + "scenario name": "Below 2 Degrees", + "release date": "1-11-2021", + "unit": "Emissions intensity (gCO2e / MJ)" }, { "sector": "Steel", @@ -144,133 +832,136 @@ "projections": [ { "year": 2019, - "value": 1.669 + "value": 1.662 }, { "year": 2020, - "value": 1.325 + "value": 1.646 }, { "year": 2021, - "value": 1.2691999999999999 + "value": 1.63 }, { "year": 2022, - "value": 1.2133999999999998 + "value": 1.614 }, { "year": 2023, - "value": 1.1575999999999997 + "value": 1.599 }, { "year": 2024, - "value": 1.1017999999999997 + "value": 1.583 }, { "year": 2025, - "value": 1.046 + "value": 1.567 }, { "year": 2026, - "value": 0.9998 + "value": 1.551 }, { "year": 2027, - "value": 0.9536 + "value": 1.535 }, { "year": 2028, - "value": 0.9074 + "value": 1.519 }, { "year": 2029, - "value": 0.8612 + "value": 1.503 }, { "year": 2030, - "value": 0.815 + "value": 1.488 }, { "year": 2031, - "value": 0.7714 + "value": 1.432 }, { "year": 2032, - "value": 0.7278 + "value": 1.377 }, { "year": 2033, - "value": 0.6842 + "value": 1.322 }, { "year": 2034, - "value": 0.6406000000000001 + "value": 1.266 }, { "year": 2035, - "value": 0.597 + "value": 1.211 }, { "year": 2036, - "value": 0.573 + "value": 1.156 }, { "year": 2037, - "value": 0.5489999999999999 + "value": 1.101 }, { "year": 2038, - "value": 0.5249999999999999 + "value": 1.045 }, { "year": 2039, - "value": 0.5009999999999999 + "value": 0.99 }, { "year": 2040, - "value": 0.477 + "value": 0.935 }, { "year": 2041, - "value": 0.4566 + "value": 0.893 }, { "year": 2042, - "value": 0.43620000000000003 + "value": 0.851 }, { "year": 2043, - "value": 0.41580000000000006 + "value": 0.809 }, { "year": 2044, - "value": 0.3954000000000001 + "value": 0.767 }, { "year": 2045, - "value": 0.375 + "value": 0.725 }, { "year": 2046, - "value": 0.3526 + "value": 0.683 }, { "year": 2047, - "value": 0.33020000000000005 + "value": 0.641 }, { "year": 2048, - "value": 0.3078000000000001 + "value": 0.6 }, { "year": 2049, - "value": 0.2854000000000001 + "value": 0.558 }, { "year": 2050, - "value": 0.263 + "value": 0.516 } - ] + ], + "scenario name": "Below 2 Degrees", + "release date": "1-4-2022", + "unit": "Carbon intensity (tonnes of CO2 per tonne of steel)" } ] }, From 6764dedf04f2b1d700d834f299d4f5db7c80cb3b Mon Sep 17 00:00:00 2001 From: David Kroon <35101727+dp90@users.noreply.github.com> Date: Wed, 18 May 2022 13:43:53 +0200 Subject: [PATCH 245/345] Remove unused script Signed-off-by: David Kroon <35101727+dp90@users.noreply.github.com> Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- examples/data/convert_tpi_to_json.py | 0 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 examples/data/convert_tpi_to_json.py diff --git a/examples/data/convert_tpi_to_json.py b/examples/data/convert_tpi_to_json.py deleted file mode 100644 index e69de29b..00000000 From 8b979776e4d56f574d81df89b2f18cf25a792032 Mon Sep 17 00:00:00 2001 From: David Kroon <35101727+dp90@users.noreply.github.com> Date: Wed, 18 May 2022 14:12:45 +0200 Subject: [PATCH 246/345] Update TPI benchmarks in unitized jsons Signed-off-by: David Kroon <35101727+dp90@users.noreply.github.com> Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- .../benchmark_EI_TPI_1_5_degrees.json | 977 ++++++++++++++++++ .../benchmark_EI_TPI_2_degrees.json | 534 +++++++++- .../benchmark_EI_TPI_below_2_degrees.json | 832 +++++++++++++-- 3 files changed, 2218 insertions(+), 125 deletions(-) create mode 100644 examples/data/json-units/benchmark_EI_TPI_1_5_degrees.json diff --git a/examples/data/json-units/benchmark_EI_TPI_1_5_degrees.json b/examples/data/json-units/benchmark_EI_TPI_1_5_degrees.json new file mode 100644 index 00000000..29533c75 --- /dev/null +++ b/examples/data/json-units/benchmark_EI_TPI_1_5_degrees.json @@ -0,0 +1,977 @@ +{ + "benchmark_temperature": 1.5, + "benchmark_global_budget": 500, + "is_AFOLU_included": false, + "S1S2": { + "benchmarks": [ + { + "sector": "Electricity Utilities", + "region": "Europe", + "benchmark_metric": { "units": "t CO2/MWh" }, + "projections": [ + { + "year": 2019, + "value": 0.259 + }, + { + "year": 2020, + "value": 0.239 + }, + { + "year": 2021, + "value": 0.219 + }, + { + "year": 2022, + "value": 0.2 + }, + { + "year": 2023, + "value": 0.181 + }, + { + "year": 2024, + "value": 0.162 + }, + { + "year": 2025, + "value": 0.142 + }, + { + "year": 2026, + "value": 0.123 + }, + { + "year": 2027, + "value": 0.104 + }, + { + "year": 2028, + "value": 0.085 + }, + { + "year": 2029, + "value": 0.065 + }, + { + "year": 2030, + "value": 0.046 + }, + { + "year": 2031, + "value": 0.037 + }, + { + "year": 2032, + "value": 0.028 + }, + { + "year": 2033, + "value": 0.018 + }, + { + "year": 2034, + "value": 0.009 + }, + { + "year": 2035, + "value": 0.0 + }, + { + "year": 2036, + "value": 0.0 + }, + { + "year": 2037, + "value": 0.0 + }, + { + "year": 2038, + "value": 0.0 + }, + { + "year": 2039, + "value": 0.0 + }, + { + "year": 2040, + "value": 0.0 + }, + { + "year": 2041, + "value": 0.0 + }, + { + "year": 2042, + "value": 0.0 + }, + { + "year": 2043, + "value": 0.0 + }, + { + "year": 2044, + "value": 0.0 + }, + { + "year": 2045, + "value": 0.0 + }, + { + "year": 2046, + "value": 0.0 + }, + { + "year": 2047, + "value": 0.0 + }, + { + "year": 2048, + "value": 0.0 + }, + { + "year": 2049, + "value": 0.0 + }, + { + "year": 2050, + "value": 0.0 + } + ], + "scenario name": "1.5 Degrees", + "release date": "1-4-2022", + "unit": "Carbon intensity (metric tonnes of CO2 per MWh electricity generation)" + }, + { + "sector": "Electricity Utilities", + "region": "North-America", + "benchmark_metric": { "units": "t CO2/MWh" }, + "projections": [ + { + "year": 2019, + "value": 0.328 + }, + { + "year": 2020, + "value": 0.301 + }, + { + "year": 2021, + "value": 0.278 + }, + { + "year": 2022, + "value": 0.254 + }, + { + "year": 2023, + "value": 0.231 + }, + { + "year": 2024, + "value": 0.208 + }, + { + "year": 2025, + "value": 0.185 + }, + { + "year": 2026, + "value": 0.161 + }, + { + "year": 2027, + "value": 0.138 + }, + { + "year": 2028, + "value": 0.115 + }, + { + "year": 2029, + "value": 0.091 + }, + { + "year": 2030, + "value": 0.068 + }, + { + "year": 2031, + "value": 0.054 + }, + { + "year": 2032, + "value": 0.041 + }, + { + "year": 2033, + "value": 0.027 + }, + { + "year": 2034, + "value": 0.014 + }, + { + "year": 2035, + "value": 0.0 + }, + { + "year": 2036, + "value": 0.0 + }, + { + "year": 2037, + "value": 0.0 + }, + { + "year": 2038, + "value": 0.0 + }, + { + "year": 2039, + "value": 0.0 + }, + { + "year": 2040, + "value": 0.0 + }, + { + "year": 2041, + "value": 0.0 + }, + { + "year": 2042, + "value": 0.0 + }, + { + "year": 2043, + "value": 0.0 + }, + { + "year": 2044, + "value": 0.0 + }, + { + "year": 2045, + "value": 0.0 + }, + { + "year": 2046, + "value": 0.0 + }, + { + "year": 2047, + "value": 0.0 + }, + { + "year": 2048, + "value": 0.0 + }, + { + "year": 2049, + "value": 0.0 + }, + { + "year": 2050, + "value": 0.0 + } + ], + "scenario name": "1.5 Degrees", + "release date": "1-4-2022", + "unit": "Carbon intensity (metric tonnes of CO2 per MWh electricity generation)" + }, + { + "sector": "Electricity Utilities", + "region": "non-OECD", + "benchmark_metric": { "units": "t CO2/MWh" }, + "projections": [ + { + "year": 2019, + "value": 0.564 + }, + { + "year": 2020, + "value": 0.529 + }, + { + "year": 2021, + "value": 0.494 + }, + { + "year": 2022, + "value": 0.459 + }, + { + "year": 2023, + "value": 0.424 + }, + { + "year": 2024, + "value": 0.389 + }, + { + "year": 2025, + "value": 0.354 + }, + { + "year": 2026, + "value": 0.319 + }, + { + "year": 2027, + "value": 0.284 + }, + { + "year": 2028, + "value": 0.249 + }, + { + "year": 2029, + "value": 0.214 + }, + { + "year": 2030, + "value": 0.179 + }, + { + "year": 2031, + "value": 0.161 + }, + { + "year": 2032, + "value": 0.143 + }, + { + "year": 2033, + "value": 0.126 + }, + { + "year": 2034, + "value": 0.108 + }, + { + "year": 2035, + "value": 0.09 + }, + { + "year": 2036, + "value": 0.072 + }, + { + "year": 2037, + "value": 0.054 + }, + { + "year": 2038, + "value": 0.036 + }, + { + "year": 2039, + "value": 0.018 + }, + { + "year": 2040, + "value": 0.0 + }, + { + "year": 2041, + "value": 0.0 + }, + { + "year": 2042, + "value": 0.0 + }, + { + "year": 2043, + "value": 0.0 + }, + { + "year": 2044, + "value": 0.0 + }, + { + "year": 2045, + "value": 0.0 + }, + { + "year": 2046, + "value": 0.0 + }, + { + "year": 2047, + "value": 0.0 + }, + { + "year": 2048, + "value": 0.0 + }, + { + "year": 2049, + "value": 0.0 + }, + { + "year": 2050, + "value": 0.0 + } + ], + "scenario name": "1.5 Degrees", + "release date": "1-4-2022", + "unit": "Carbon intensity (metric tonnes of CO2 per MWh electricity generation)" + }, + { + "sector": "Electricity Utilities", + "region": "OECD", + "benchmark_metric": { "units": "t CO2/MWh" }, + "projections": [ + { + "year": 2019, + "value": 0.329 + }, + { + "year": 2020, + "value": 0.305 + }, + { + "year": 2021, + "value": 0.281 + }, + { + "year": 2022, + "value": 0.257 + }, + { + "year": 2023, + "value": 0.233 + }, + { + "year": 2024, + "value": 0.209 + }, + { + "year": 2025, + "value": 0.185 + }, + { + "year": 2026, + "value": 0.161 + }, + { + "year": 2027, + "value": 0.137 + }, + { + "year": 2028, + "value": 0.113 + }, + { + "year": 2029, + "value": 0.088 + }, + { + "year": 2030, + "value": 0.064 + }, + { + "year": 2031, + "value": 0.051 + }, + { + "year": 2032, + "value": 0.039 + }, + { + "year": 2033, + "value": 0.026 + }, + { + "year": 2034, + "value": 0.013 + }, + { + "year": 2035, + "value": 0.0 + }, + { + "year": 2036, + "value": 0.0 + }, + { + "year": 2037, + "value": 0.0 + }, + { + "year": 2038, + "value": 0.0 + }, + { + "year": 2039, + "value": 0.0 + }, + { + "year": 2040, + "value": 0.0 + }, + { + "year": 2041, + "value": 0.0 + }, + { + "year": 2042, + "value": 0.0 + }, + { + "year": 2043, + "value": 0.0 + }, + { + "year": 2044, + "value": 0.0 + }, + { + "year": 2045, + "value": 0.0 + }, + { + "year": 2046, + "value": 0.0 + }, + { + "year": 2047, + "value": 0.0 + }, + { + "year": 2048, + "value": 0.0 + }, + { + "year": 2049, + "value": 0.0 + }, + { + "year": 2050, + "value": 0.0 + } + ], + "scenario name": "1.5 Degrees", + "release date": "1-4-2022", + "unit": "Carbon intensity (metric tonnes of CO2 per MWh electricity generation)" + }, + { + "sector": "Electricity Utilities", + "region": "Global", + "benchmark_metric": { "units": "t CO2/MWh" }, + "projections": [ + { + "year": 2019, + "value": 0.468 + }, + { + "year": 2020, + "value": 0.438 + }, + { + "year": 2021, + "value": 0.408 + }, + { + "year": 2022, + "value": 0.378 + }, + { + "year": 2023, + "value": 0.348 + }, + { + "year": 2024, + "value": 0.318 + }, + { + "year": 2025, + "value": 0.288 + }, + { + "year": 2026, + "value": 0.258 + }, + { + "year": 2027, + "value": 0.228 + }, + { + "year": 2028, + "value": 0.198 + }, + { + "year": 2029, + "value": 0.168 + }, + { + "year": 2030, + "value": 0.138 + }, + { + "year": 2031, + "value": 0.124 + }, + { + "year": 2032, + "value": 0.11 + }, + { + "year": 2033, + "value": 0.096 + }, + { + "year": 2034, + "value": 0.082 + }, + { + "year": 2035, + "value": 0.069 + }, + { + "year": 2036, + "value": 0.055 + }, + { + "year": 2037, + "value": 0.041 + }, + { + "year": 2038, + "value": 0.027 + }, + { + "year": 2039, + "value": 0.013 + }, + { + "year": 2040, + "value": 0.0 + }, + { + "year": 2041, + "value": 0.0 + }, + { + "year": 2042, + "value": 0.0 + }, + { + "year": 2043, + "value": 0.0 + }, + { + "year": 2044, + "value": 0.0 + }, + { + "year": 2045, + "value": 0.0 + }, + { + "year": 2046, + "value": 0.0 + }, + { + "year": 2047, + "value": 0.0 + }, + { + "year": 2048, + "value": 0.0 + }, + { + "year": 2049, + "value": 0.0 + }, + { + "year": 2050, + "value": 0.0 + } + ], + "scenario name": "1.5 Degrees", + "release date": "1-11-2021", + "unit": "Carbon intensity (metric tonnes of CO2 per MWh electricity generation)" + }, + { + "sector": "Oil & Gas", + "region": "Global", + "benchmark_metric": { "units": "g CO2/MJ" }, + "projections": [ + { + "year": 2019, + "value": 62.88 + }, + { + "year": 2020, + "value": 62.09 + }, + { + "year": 2021, + "value": 59.98 + }, + { + "year": 2022, + "value": 57.86 + }, + { + "year": 2023, + "value": 55.75 + }, + { + "year": 2024, + "value": 53.64 + }, + { + "year": 2025, + "value": 51.52 + }, + { + "year": 2026, + "value": 49.41 + }, + { + "year": 2027, + "value": 47.29 + }, + { + "year": 2028, + "value": 45.18 + }, + { + "year": 2029, + "value": 43.07 + }, + { + "year": 2030, + "value": 40.95 + }, + { + "year": 2031, + "value": 38.54 + }, + { + "year": 2032, + "value": 36.14 + }, + { + "year": 2033, + "value": 33.73 + }, + { + "year": 2034, + "value": 31.32 + }, + { + "year": 2035, + "value": 28.91 + }, + { + "year": 2036, + "value": 26.5 + }, + { + "year": 2037, + "value": 24.09 + }, + { + "year": 2038, + "value": 21.68 + }, + { + "year": 2039, + "value": 19.28 + }, + { + "year": 2040, + "value": 16.87 + }, + { + "year": 2041, + "value": 15.77 + }, + { + "year": 2042, + "value": 14.67 + }, + { + "year": 2043, + "value": 13.56 + }, + { + "year": 2044, + "value": 12.46 + }, + { + "year": 2045, + "value": 11.36 + }, + { + "year": 2046, + "value": 10.26 + }, + { + "year": 2047, + "value": 9.16 + }, + { + "year": 2048, + "value": 8.06 + }, + { + "year": 2049, + "value": 6.96 + }, + { + "year": 2050, + "value": 5.85 + } + ], + "scenario name": "1.5 Degrees", + "release date": "1-11-2021", + "unit": "Emissions intensity (gCO2e / MJ)" + }, + { + "sector": "Steel", + "region": "Global", + "benchmark_metric": { "units": "t CO2/Fe_ton" }, + "projections": [ + { + "year": 2019, + "value": 1.662 + }, + { + "year": 2020, + "value": 1.613 + }, + { + "year": 2021, + "value": 1.565 + }, + { + "year": 2022, + "value": 1.517 + }, + { + "year": 2023, + "value": 1.468 + }, + { + "year": 2024, + "value": 1.42 + }, + { + "year": 2025, + "value": 1.371 + }, + { + "year": 2026, + "value": 1.323 + }, + { + "year": 2027, + "value": 1.274 + }, + { + "year": 2028, + "value": 1.226 + }, + { + "year": 2029, + "value": 1.177 + }, + { + "year": 2030, + "value": 1.129 + }, + { + "year": 2031, + "value": 1.062 + }, + { + "year": 2032, + "value": 0.996 + }, + { + "year": 2033, + "value": 0.929 + }, + { + "year": 2034, + "value": 0.863 + }, + { + "year": 2035, + "value": 0.796 + }, + { + "year": 2036, + "value": 0.729 + }, + { + "year": 2037, + "value": 0.663 + }, + { + "year": 2038, + "value": 0.596 + }, + { + "year": 2039, + "value": 0.529 + }, + { + "year": 2040, + "value": 0.463 + }, + { + "year": 2041, + "value": 0.422 + }, + { + "year": 2042, + "value": 0.381 + }, + { + "year": 2043, + "value": 0.339 + }, + { + "year": 2044, + "value": 0.298 + }, + { + "year": 2045, + "value": 0.257 + }, + { + "year": 2046, + "value": 0.216 + }, + { + "year": 2047, + "value": 0.175 + }, + { + "year": 2048, + "value": 0.134 + }, + { + "year": 2049, + "value": 0.093 + }, + { + "year": 2050, + "value": 0.052 + } + ], + "scenario name": "1.5 Degrees", + "release date": "1-4-2022", + "unit": "Carbon intensity (tonnes of CO2 per tonne of steel)" + } + ] + }, + "S3": null, + "S1S2S3": null +} \ No newline at end of file diff --git a/examples/data/json-units/benchmark_EI_TPI_2_degrees.json b/examples/data/json-units/benchmark_EI_TPI_2_degrees.json index dd9bf38a..2511dc6d 100644 --- a/examples/data/json-units/benchmark_EI_TPI_2_degrees.json +++ b/examples/data/json-units/benchmark_EI_TPI_2_degrees.json @@ -1,6 +1,6 @@ { - "benchmark_temperature": "2.0 delta_degC", - "benchmark_global_budget": "500 Gt CO2", + "benchmark_temperature": 2.0, + "benchmark_global_budget": 500, "is_AFOLU_included": false, "S1S2": { "benchmarks": [ @@ -11,7 +11,7 @@ "projections": [ { "year": 2019, - "value": 0.6075603731304943 + "value": 0.476 }, { "year": 2020, @@ -19,39 +19,39 @@ }, { "year": 2021, - "value": 0.4376 + "value": 0.438 }, { "year": 2022, - "value": 0.41819999999999996 + "value": 0.418 }, { "year": 2023, - "value": 0.39879999999999993 + "value": 0.399 }, { "year": 2024, - "value": 0.3793999999999999 + "value": 0.38 }, { "year": 2025, - "value": 0.36 + "value": 0.361 }, { "year": 2026, - "value": 0.33699999999999997 + "value": 0.338 }, { "year": 2027, - "value": 0.31399999999999995 + "value": 0.315 }, { "year": 2028, - "value": 0.2909999999999999 + "value": 0.291 }, { "year": 2029, - "value": 0.2679999999999999 + "value": 0.268 }, { "year": 2030, @@ -59,19 +59,19 @@ }, { "year": 2031, - "value": 0.22619999999999998 + "value": 0.226 }, { "year": 2032, - "value": 0.20739999999999997 + "value": 0.207 }, { "year": 2033, - "value": 0.18859999999999996 + "value": 0.189 }, { "year": 2034, - "value": 0.16979999999999995 + "value": 0.17 }, { "year": 2035, @@ -79,19 +79,19 @@ }, { "year": 2036, - "value": 0.1402 + "value": 0.14 }, { "year": 2037, - "value": 0.1294 + "value": 0.129 }, { "year": 2038, - "value": 0.11859999999999998 + "value": 0.119 }, { "year": 2039, - "value": 0.10779999999999998 + "value": 0.108 }, { "year": 2040, @@ -99,19 +99,19 @@ }, { "year": 2041, - "value": 0.0888 + "value": 0.089 }, { "year": 2042, - "value": 0.0806 + "value": 0.081 }, { "year": 2043, - "value": 0.0724 + "value": 0.072 }, { "year": 2044, - "value": 0.06420000000000001 + "value": 0.064 }, { "year": 2045, @@ -119,25 +119,166 @@ }, { "year": 2046, - "value": 0.0528 + "value": 0.052 }, { "year": 2047, - "value": 0.0496 + "value": 0.048 }, { "year": 2048, - "value": 0.0464 + "value": 0.044 }, { "year": 2049, - "value": 0.043199999999999995 + "value": 0.04 }, { "year": 2050, - "value": 0.04 + "value": 0.036 } - ] + ], + "scenario name": "2 Degrees", + "release date": "1-10-2020", + "unit": "Carbon intensity (metric tonnes of CO2 per MWh electricity generation)" + }, + { + "sector": "Oil & Gas", + "region": "Global", + "benchmark_metric": { "units": "g CO2/MJ" }, + "projections": [ + { + "year": 2019, + "value": 61.17 + }, + { + "year": 2020, + "value": 60.29 + }, + { + "year": 2021, + "value": 59.41 + }, + { + "year": 2022, + "value": 58.53 + }, + { + "year": 2023, + "value": 57.65 + }, + { + "year": 2024, + "value": 56.77 + }, + { + "year": 2025, + "value": 55.9 + }, + { + "year": 2026, + "value": 54.36 + }, + { + "year": 2027, + "value": 52.82 + }, + { + "year": 2028, + "value": 51.28 + }, + { + "year": 2029, + "value": 49.74 + }, + { + "year": 2030, + "value": 48.21 + }, + { + "year": 2031, + "value": 46.58 + }, + { + "year": 2032, + "value": 44.95 + }, + { + "year": 2033, + "value": 43.33 + }, + { + "year": 2034, + "value": 41.7 + }, + { + "year": 2035, + "value": 40.08 + }, + { + "year": 2036, + "value": 38.75 + }, + { + "year": 2037, + "value": 37.42 + }, + { + "year": 2038, + "value": 36.09 + }, + { + "year": 2039, + "value": 34.76 + }, + { + "year": 2040, + "value": 33.43 + }, + { + "year": 2041, + "value": 32.2 + }, + { + "year": 2042, + "value": 30.97 + }, + { + "year": 2043, + "value": 29.74 + }, + { + "year": 2044, + "value": 28.51 + }, + { + "year": 2045, + "value": 27.27 + }, + { + "year": 2046, + "value": 26.16 + }, + { + "year": 2047, + "value": 25.05 + }, + { + "year": 2048, + "value": 23.93 + }, + { + "year": 2049, + "value": 22.82 + }, + { + "year": 2050, + "value": 21.7 + } + ], + "scenario name": "2 Degrees", + "release date": "1-10-2020", + "unit": "Emissions intensity (gCO2e / MJ)" }, { "sector": "Steel", @@ -146,7 +287,7 @@ "projections": [ { "year": 2019, - "value": 1.669 + "value": 1.525 }, { "year": 2020, @@ -154,19 +295,19 @@ }, { "year": 2021, - "value": 1.4718 + "value": 1.471 }, { "year": 2022, - "value": 1.4456 + "value": 1.445 }, { "year": 2023, - "value": 1.4194 + "value": 1.418 }, { "year": 2024, - "value": 1.3932 + "value": 1.393 }, { "year": 2025, @@ -174,19 +315,19 @@ }, { "year": 2026, - "value": 1.3195999999999999 + "value": 1.317 }, { "year": 2027, - "value": 1.2721999999999998 + "value": 1.269 }, { "year": 2028, - "value": 1.2247999999999997 + "value": 1.221 }, { "year": 2029, - "value": 1.1773999999999996 + "value": 1.175 }, { "year": 2030, @@ -194,19 +335,19 @@ }, { "year": 2031, - "value": 1.0948 + "value": 1.093 }, { "year": 2032, - "value": 1.0596 + "value": 1.057 }, { "year": 2033, - "value": 1.0244000000000002 + "value": 1.022 }, { "year": 2034, - "value": 0.9892000000000002 + "value": 0.988 }, { "year": 2035, @@ -214,19 +355,19 @@ }, { "year": 2036, - "value": 0.9258 + "value": 0.925 }, { "year": 2037, - "value": 0.8976 + "value": 0.897 }, { "year": 2038, - "value": 0.8694 + "value": 0.869 }, { "year": 2039, - "value": 0.8412 + "value": 0.841 }, { "year": 2040, @@ -234,19 +375,19 @@ }, { "year": 2041, - "value": 0.7857999999999999 + "value": 0.785 }, { "year": 2042, - "value": 0.7585999999999999 + "value": 0.758 }, { "year": 2043, - "value": 0.7313999999999999 + "value": 0.731 }, { "year": 2044, - "value": 0.7041999999999999 + "value": 0.704 }, { "year": 2045, @@ -254,28 +395,307 @@ }, { "year": 2046, - "value": 0.6658000000000001 + "value": 0.667 }, { "year": 2047, - "value": 0.6546000000000001 + "value": 0.655 }, { "year": 2048, - "value": 0.6434000000000001 + "value": 0.644 }, { "year": 2049, - "value": 0.6322000000000001 + "value": 0.632 }, { "year": 2050, "value": 0.621 } - ] + ], + "scenario name": "2 Degrees", + "release date": "1-2-2021", + "unit": "Carbon intensity (tonnes of CO2 per tonne of steel)" + }, + { + "sector": "Autos", + "region": "Global", + "benchmark_metric": { "units": "g CO2/km" }, + "projections": [ + { + "year": 2019, + "value": 119.0 + }, + { + "year": 2020, + "value": 113.0 + }, + { + "year": 2021, + "value": 104.0 + }, + { + "year": 2022, + "value": 95.0 + }, + { + "year": 2023, + "value": 86.0 + }, + { + "year": 2024, + "value": 77.0 + }, + { + "year": 2025, + "value": 68.0 + }, + { + "year": 2026, + "value": 62.0 + }, + { + "year": 2027, + "value": 57.0 + }, + { + "year": 2028, + "value": 51.0 + }, + { + "year": 2029, + "value": 46.0 + }, + { + "year": 2030, + "value": 40.0 + }, + { + "year": 2031, + "value": 37.0 + }, + { + "year": 2032, + "value": 34.0 + }, + { + "year": 2033, + "value": 31.0 + }, + { + "year": 2034, + "value": 27.0 + }, + { + "year": 2035, + "value": 24.0 + }, + { + "year": 2036, + "value": 22.0 + }, + { + "year": 2037, + "value": 21.0 + }, + { + "year": 2038, + "value": 19.0 + }, + { + "year": 2039, + "value": 17.0 + }, + { + "year": 2040, + "value": 15.0 + }, + { + "year": 2041, + "value": 14.0 + }, + { + "year": 2042, + "value": 13.0 + }, + { + "year": 2043, + "value": 12.0 + }, + { + "year": 2044, + "value": 11.0 + }, + { + "year": 2045, + "value": 10.0 + }, + { + "year": 2046, + "value": 9.0 + }, + { + "year": 2047, + "value": 8.0 + }, + { + "year": 2048, + "value": 8.0 + }, + { + "year": 2049, + "value": 7.0 + }, + { + "year": 2050, + "value": 6.0 + } + ], + "scenario name": "2 Degrees (High Efficiency)", + "release date": "1-12-2020", + "unit": "Average new vehicle emissions (grams of CO2 per kilometre [NEDC])" + }, + { + "sector": "Autos", + "region": "Global", + "benchmark_metric": { "units": "g CO2/km" }, + "projections": [ + { + "year": 2019, + "value": 119.0 + }, + { + "year": 2020, + "value": 113.0 + }, + { + "year": 2021, + "value": 109.0 + }, + { + "year": 2022, + "value": 105.0 + }, + { + "year": 2023, + "value": 102.0 + }, + { + "year": 2024, + "value": 98.0 + }, + { + "year": 2025, + "value": 94.0 + }, + { + "year": 2026, + "value": 91.0 + }, + { + "year": 2027, + "value": 88.0 + }, + { + "year": 2028, + "value": 84.0 + }, + { + "year": 2029, + "value": 81.0 + }, + { + "year": 2030, + "value": 77.0 + }, + { + "year": 2031, + "value": 74.0 + }, + { + "year": 2032, + "value": 72.0 + }, + { + "year": 2033, + "value": 69.0 + }, + { + "year": 2034, + "value": 67.0 + }, + { + "year": 2035, + "value": 64.0 + }, + { + "year": 2036, + "value": 63.0 + }, + { + "year": 2037, + "value": 61.0 + }, + { + "year": 2038, + "value": 59.0 + }, + { + "year": 2039, + "value": 58.0 + }, + { + "year": 2040, + "value": 56.0 + }, + { + "year": 2041, + "value": 55.0 + }, + { + "year": 2042, + "value": 54.0 + }, + { + "year": 2043, + "value": 52.0 + }, + { + "year": 2044, + "value": 51.0 + }, + { + "year": 2045, + "value": 50.0 + }, + { + "year": 2046, + "value": 49.0 + }, + { + "year": 2047, + "value": 47.0 + }, + { + "year": 2048, + "value": 46.0 + }, + { + "year": 2049, + "value": 45.0 + }, + { + "year": 2050, + "value": 43.0 + } + ], + "scenario name": "2 Degrees (Shift-Improve)", + "release date": "1-12-2020", + "unit": "Average new vehicle emissions (grams of CO2 per kilometre [NEDC])" } ] }, "S3": null, "S1S2S3": null -} +} \ No newline at end of file diff --git a/examples/data/json-units/benchmark_EI_TPI_below_2_degrees.json b/examples/data/json-units/benchmark_EI_TPI_below_2_degrees.json index 9d6c01e3..89ff23a6 100644 --- a/examples/data/json-units/benchmark_EI_TPI_below_2_degrees.json +++ b/examples/data/json-units/benchmark_EI_TPI_below_2_degrees.json @@ -1,143 +1,836 @@ { - "benchmark_temperature": "1.75 delta_degC", - "benchmark_global_budget": "500 Gt CO2", + "benchmark_temperature": 1.75, + "benchmark_global_budget": 500, "is_AFOLU_included": false, "S1S2": { "benchmarks": [ { "sector": "Electricity Utilities", - "region": "Global", + "region": "Europe", + "benchmark_metric": { "units": "t CO2/MWh" }, + "projections": [ + { + "year": 2019, + "value": 0.259 + }, + { + "year": 2020, + "value": 0.239 + }, + { + "year": 2021, + "value": 0.221 + }, + { + "year": 2022, + "value": 0.203 + }, + { + "year": 2023, + "value": 0.185 + }, + { + "year": 2024, + "value": 0.167 + }, + { + "year": 2025, + "value": 0.149 + }, + { + "year": 2026, + "value": 0.132 + }, + { + "year": 2027, + "value": 0.115 + }, + { + "year": 2028, + "value": 0.098 + }, + { + "year": 2029, + "value": 0.081 + }, + { + "year": 2030, + "value": 0.063 + }, + { + "year": 2031, + "value": 0.06 + }, + { + "year": 2032, + "value": 0.057 + }, + { + "year": 2033, + "value": 0.053 + }, + { + "year": 2034, + "value": 0.05 + }, + { + "year": 2035, + "value": 0.046 + }, + { + "year": 2036, + "value": 0.043 + }, + { + "year": 2037, + "value": 0.039 + }, + { + "year": 2038, + "value": 0.036 + }, + { + "year": 2039, + "value": 0.032 + }, + { + "year": 2040, + "value": 0.029 + }, + { + "year": 2041, + "value": 0.023 + }, + { + "year": 2042, + "value": 0.017 + }, + { + "year": 2043, + "value": 0.012 + }, + { + "year": 2044, + "value": 0.006 + }, + { + "year": 2045, + "value": 0.0 + }, + { + "year": 2046, + "value": 0.0 + }, + { + "year": 2047, + "value": 0.0 + }, + { + "year": 2048, + "value": 0.0 + }, + { + "year": 2049, + "value": 0.0 + }, + { + "year": 2050, + "value": 0.0 + } + ], + "scenario name": "Below 2 Degrees", + "release date": "1-4-2022", + "unit": "Carbon intensity (metric tonnes of CO2 per MWh electricity generation)" + }, + { + "sector": "Electricity Utilities", + "region": "North-America", + "benchmark_metric": { "units": "t CO2/MWh" }, + "projections": [ + { + "year": 2019, + "value": 0.328 + }, + { + "year": 2020, + "value": 0.301 + }, + { + "year": 2021, + "value": 0.28 + }, + { + "year": 2022, + "value": 0.259 + }, + { + "year": 2023, + "value": 0.237 + }, + { + "year": 2024, + "value": 0.216 + }, + { + "year": 2025, + "value": 0.195 + }, + { + "year": 2026, + "value": 0.175 + }, + { + "year": 2027, + "value": 0.154 + }, + { + "year": 2028, + "value": 0.134 + }, + { + "year": 2029, + "value": 0.114 + }, + { + "year": 2030, + "value": 0.094 + }, + { + "year": 2031, + "value": 0.085 + }, + { + "year": 2032, + "value": 0.077 + }, + { + "year": 2033, + "value": 0.069 + }, + { + "year": 2034, + "value": 0.061 + }, + { + "year": 2035, + "value": 0.053 + }, + { + "year": 2036, + "value": 0.045 + }, + { + "year": 2037, + "value": 0.037 + }, + { + "year": 2038, + "value": 0.029 + }, + { + "year": 2039, + "value": 0.021 + }, + { + "year": 2040, + "value": 0.012 + }, + { + "year": 2041, + "value": 0.01 + }, + { + "year": 2042, + "value": 0.007 + }, + { + "year": 2043, + "value": 0.005 + }, + { + "year": 2044, + "value": 0.002 + }, + { + "year": 2045, + "value": 0.0 + }, + { + "year": 2046, + "value": 0.0 + }, + { + "year": 2047, + "value": 0.0 + }, + { + "year": 2048, + "value": 0.0 + }, + { + "year": 2049, + "value": 0.0 + }, + { + "year": 2050, + "value": 0.0 + } + ], + "scenario name": "Below 2 Degrees", + "release date": "1-4-2022", + "unit": "Carbon intensity (metric tonnes of CO2 per MWh electricity generation)" + }, + { + "sector": "Electricity Utilities", + "region": "non-OECD", "benchmark_metric": { "units": "t CO2/MWh" }, "projections": [ { "year": 2019, - "value": 0.6075603731304943 + "value": 0.564 }, { "year": 2020, - "value": 0.44 + "value": 0.542 }, { "year": 2021, - "value": 0.418 + "value": 0.519 }, { "year": 2022, - "value": 0.39599999999999996 + "value": 0.496 }, { "year": 2023, - "value": 0.37399999999999994 + "value": 0.473 }, { "year": 2024, - "value": 0.3519999999999999 + "value": 0.45 }, { "year": 2025, - "value": 0.33 + "value": 0.426 }, { "year": 2026, - "value": 0.3098 + "value": 0.398 }, { "year": 2027, - "value": 0.2896 + "value": 0.37 }, { "year": 2028, - "value": 0.26940000000000003 + "value": 0.342 }, { "year": 2029, - "value": 0.24920000000000003 + "value": 0.314 }, { "year": 2030, - "value": 0.229 + "value": 0.286 }, { "year": 2031, - "value": 0.2114 + "value": 0.266 }, { "year": 2032, - "value": 0.1938 + "value": 0.246 }, { "year": 2033, - "value": 0.1762 + "value": 0.226 }, { "year": 2034, - "value": 0.1586 + "value": 0.206 }, { "year": 2035, - "value": 0.141 + "value": 0.187 }, { "year": 2036, - "value": 0.12719999999999998 + "value": 0.167 }, { "year": 2037, - "value": 0.11339999999999999 + "value": 0.147 }, { "year": 2038, - "value": 0.0996 + "value": 0.127 }, { "year": 2039, - "value": 0.0858 + "value": 0.107 }, { "year": 2040, + "value": 0.087 + }, + { + "year": 2041, + "value": 0.079 + }, + { + "year": 2042, + "value": 0.07 + }, + { + "year": 2043, + "value": 0.061 + }, + { + "year": 2044, + "value": 0.052 + }, + { + "year": 2045, + "value": 0.044 + }, + { + "year": 2046, + "value": 0.035 + }, + { + "year": 2047, + "value": 0.026 + }, + { + "year": 2048, + "value": 0.017 + }, + { + "year": 2049, + "value": 0.009 + }, + { + "year": 2050, + "value": 0.0 + } + ], + "scenario name": "Below 2 Degrees", + "release date": "1-4-2022", + "unit": "Carbon intensity (metric tonnes of CO2 per MWh electricity generation)" + }, + { + "sector": "Electricity Utilities", + "region": "OECD", + "benchmark_metric": { "units": "t CO2/MWh" }, + "projections": [ + { + "year": 2019, + "value": 0.329 + }, + { + "year": 2020, + "value": 0.305 + }, + { + "year": 2021, + "value": 0.28 + }, + { + "year": 2022, + "value": 0.255 + }, + { + "year": 2023, + "value": 0.23 + }, + { + "year": 2024, + "value": 0.205 + }, + { + "year": 2025, + "value": 0.18 + }, + { + "year": 2026, + "value": 0.165 + }, + { + "year": 2027, + "value": 0.149 + }, + { + "year": 2028, + "value": 0.134 + }, + { + "year": 2029, + "value": 0.118 + }, + { + "year": 2030, + "value": 0.103 + }, + { + "year": 2031, + "value": 0.095 + }, + { + "year": 2032, + "value": 0.087 + }, + { + "year": 2033, + "value": 0.08 + }, + { + "year": 2034, "value": 0.072 }, + { + "year": 2035, + "value": 0.065 + }, + { + "year": 2036, + "value": 0.057 + }, + { + "year": 2037, + "value": 0.049 + }, + { + "year": 2038, + "value": 0.042 + }, + { + "year": 2039, + "value": 0.034 + }, + { + "year": 2040, + "value": 0.027 + }, + { + "year": 2041, + "value": 0.021 + }, + { + "year": 2042, + "value": 0.016 + }, + { + "year": 2043, + "value": 0.011 + }, + { + "year": 2044, + "value": 0.005 + }, + { + "year": 2045, + "value": 0.0 + }, + { + "year": 2046, + "value": 0.0 + }, + { + "year": 2047, + "value": 0.0 + }, + { + "year": 2048, + "value": 0.0 + }, + { + "year": 2049, + "value": 0.0 + }, + { + "year": 2050, + "value": 0.0 + } + ], + "scenario name": "Below 2 Degrees", + "release date": "1-4-2022", + "unit": "Carbon intensity (metric tonnes of CO2 per MWh electricity generation)" + }, + { + "sector": "Electricity Utilities", + "region": "Global", + "benchmark_metric": { "units": "t CO2/MWh" }, + "projections": [ + { + "year": 2019, + "value": 0.468 + }, + { + "year": 2020, + "value": 0.438 + }, + { + "year": 2021, + "value": 0.417 + }, + { + "year": 2022, + "value": 0.396 + }, + { + "year": 2023, + "value": 0.375 + }, + { + "year": 2024, + "value": 0.354 + }, + { + "year": 2025, + "value": 0.333 + }, + { + "year": 2026, + "value": 0.31 + }, + { + "year": 2027, + "value": 0.288 + }, + { + "year": 2028, + "value": 0.265 + }, + { + "year": 2029, + "value": 0.242 + }, + { + "year": 2030, + "value": 0.22 + }, + { + "year": 2031, + "value": 0.205 + }, + { + "year": 2032, + "value": 0.189 + }, + { + "year": 2033, + "value": 0.174 + }, + { + "year": 2034, + "value": 0.159 + }, + { + "year": 2035, + "value": 0.143 + }, + { + "year": 2036, + "value": 0.128 + }, + { + "year": 2037, + "value": 0.113 + }, + { + "year": 2038, + "value": 0.098 + }, + { + "year": 2039, + "value": 0.082 + }, + { + "year": 2040, + "value": 0.067 + }, { "year": 2041, - "value": 0.061599999999999995 + "value": 0.06 }, { "year": 2042, - "value": 0.051199999999999996 + "value": 0.054 }, { "year": 2043, - "value": 0.040799999999999996 + "value": 0.047 }, { "year": 2044, - "value": 0.030399999999999996 + "value": 0.04 }, { "year": 2045, + "value": 0.033 + }, + { + "year": 2046, + "value": 0.027 + }, + { + "year": 2047, "value": 0.02 }, + { + "year": 2048, + "value": 0.013 + }, + { + "year": 2049, + "value": 0.007 + }, + { + "year": 2050, + "value": 0.0 + } + ], + "scenario name": "Below 2 Degrees", + "release date": "1-11-2021", + "unit": "Carbon intensity (metric tonnes of CO2 per MWh electricity generation)" + }, + { + "sector": "Oil & Gas", + "region": "Global", + "benchmark_metric": { "units": "g CO2/MJ" }, + "projections": [ + { + "year": 2019, + "value": 62.88 + }, + { + "year": 2020, + "value": 62.09 + }, + { + "year": 2021, + "value": 60.85 + }, + { + "year": 2022, + "value": 59.62 + }, + { + "year": 2023, + "value": 58.38 + }, + { + "year": 2024, + "value": 57.15 + }, + { + "year": 2025, + "value": 55.91 + }, + { + "year": 2026, + "value": 54.67 + }, + { + "year": 2027, + "value": 53.44 + }, + { + "year": 2028, + "value": 52.2 + }, + { + "year": 2029, + "value": 50.97 + }, + { + "year": 2030, + "value": 49.73 + }, + { + "year": 2031, + "value": 47.96 + }, + { + "year": 2032, + "value": 46.18 + }, + { + "year": 2033, + "value": 44.41 + }, + { + "year": 2034, + "value": 42.64 + }, + { + "year": 2035, + "value": 40.86 + }, + { + "year": 2036, + "value": 39.09 + }, + { + "year": 2037, + "value": 37.32 + }, + { + "year": 2038, + "value": 35.54 + }, + { + "year": 2039, + "value": 33.77 + }, + { + "year": 2040, + "value": 32.0 + }, + { + "year": 2041, + "value": 30.82 + }, + { + "year": 2042, + "value": 29.65 + }, + { + "year": 2043, + "value": 28.47 + }, + { + "year": 2044, + "value": 27.3 + }, + { + "year": 2045, + "value": 26.13 + }, { "year": 2046, - "value": 0.0144 + "value": 24.95 }, { "year": 2047, - "value": 0.008799999999999999 + "value": 23.78 }, { "year": 2048, - "value": 0.003199999999999999 + "value": 22.6 }, { "year": 2049, - "value": -0.002400000000000001 + "value": 21.43 }, { "year": 2050, - "value": -0.008 + "value": 20.25 } - ] + ], + "scenario name": "Below 2 Degrees", + "release date": "1-11-2021", + "unit": "Emissions intensity (gCO2e / MJ)" }, { "sector": "Steel", @@ -146,136 +839,139 @@ "projections": [ { "year": 2019, - "value": 1.669 + "value": 1.662 }, { "year": 2020, - "value": 1.325 + "value": 1.646 }, { "year": 2021, - "value": 1.2691999999999999 + "value": 1.63 }, { "year": 2022, - "value": 1.2133999999999998 + "value": 1.614 }, { "year": 2023, - "value": 1.1575999999999997 + "value": 1.599 }, { "year": 2024, - "value": 1.1017999999999997 + "value": 1.583 }, { "year": 2025, - "value": 1.046 + "value": 1.567 }, { "year": 2026, - "value": 0.9998 + "value": 1.551 }, { "year": 2027, - "value": 0.9536 + "value": 1.535 }, { "year": 2028, - "value": 0.9074 + "value": 1.519 }, { "year": 2029, - "value": 0.8612 + "value": 1.503 }, { "year": 2030, - "value": 0.815 + "value": 1.488 }, { "year": 2031, - "value": 0.7714 + "value": 1.432 }, { "year": 2032, - "value": 0.7278 + "value": 1.377 }, { "year": 2033, - "value": 0.6842 + "value": 1.322 }, { "year": 2034, - "value": 0.6406000000000001 + "value": 1.266 }, { "year": 2035, - "value": 0.597 + "value": 1.211 }, { "year": 2036, - "value": 0.573 + "value": 1.156 }, { "year": 2037, - "value": 0.5489999999999999 + "value": 1.101 }, { "year": 2038, - "value": 0.5249999999999999 + "value": 1.045 }, { "year": 2039, - "value": 0.5009999999999999 + "value": 0.99 }, { "year": 2040, - "value": 0.477 + "value": 0.935 }, { "year": 2041, - "value": 0.4566 + "value": 0.893 }, { "year": 2042, - "value": 0.43620000000000003 + "value": 0.851 }, { "year": 2043, - "value": 0.41580000000000006 + "value": 0.809 }, { "year": 2044, - "value": 0.3954000000000001 + "value": 0.767 }, { "year": 2045, - "value": 0.375 + "value": 0.725 }, { "year": 2046, - "value": 0.3526 + "value": 0.683 }, { "year": 2047, - "value": 0.33020000000000005 + "value": 0.641 }, { "year": 2048, - "value": 0.3078000000000001 + "value": 0.6 }, { "year": 2049, - "value": 0.2854000000000001 + "value": 0.558 }, { "year": 2050, - "value": 0.263 + "value": 0.516 } - ] + ], + "scenario name": "Below 2 Degrees", + "release date": "1-4-2022", + "unit": "Carbon intensity (tonnes of CO2 per tonne of steel)" } ] }, "S3": null, "S1S2S3": null -} +} \ No newline at end of file From 899ecd41a3ca157c37cb8b9f92d3cb03e9e30cd0 Mon Sep 17 00:00:00 2001 From: David Kroon <35101727+dp90@users.noreply.github.com> Date: Thu, 19 May 2022 15:44:04 +0200 Subject: [PATCH 247/345] Add auto sector units to EmissionMetric Signed-off-by: David Kroon <35101727+dp90@users.noreply.github.com> Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- ITR/interfaces.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ITR/interfaces.py b/ITR/interfaces.py index 232aa219..4eb83aa4 100644 --- a/ITR/interfaces.py +++ b/ITR/interfaces.py @@ -47,7 +47,7 @@ def unit_must_be_production(cls, v): # Right now we have only one kind of Emissions: Co2 class EmissionsMetric(BaseModel): - units: str + units: str @validator('units') def units_must_be_tCO2(cls, v): qty = Q_(1, v) From 094fc81437546609cb507fe158c77292767645f1 Mon Sep 17 00:00:00 2001 From: David Kroon <35101727+dp90@users.noreply.github.com> Date: Thu, 2 Jun 2022 13:12:46 +0200 Subject: [PATCH 248/345] Fix missing unit in tpi jsons Signed-off-by: David Kroon <35101727+dp90@users.noreply.github.com> Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- examples/data/json/benchmark_EI_TPI_1_5_degrees.json | 4 ++-- examples/data/json/benchmark_EI_TPI_2_degrees.json | 4 ++-- examples/data/json/benchmark_EI_TPI_below_2_degrees.json | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/examples/data/json/benchmark_EI_TPI_1_5_degrees.json b/examples/data/json/benchmark_EI_TPI_1_5_degrees.json index 9f443168..2774c4fb 100644 --- a/examples/data/json/benchmark_EI_TPI_1_5_degrees.json +++ b/examples/data/json/benchmark_EI_TPI_1_5_degrees.json @@ -1,6 +1,6 @@ { - "benchmark_temperature": 1.5, - "benchmark_global_budget": 500, + "benchmark_temperature": "1.5 delta_degC", + "benchmark_global_budget": "500 Gt CO2", "is_AFOLU_included": false, "S1S2": { "benchmarks": [ diff --git a/examples/data/json/benchmark_EI_TPI_2_degrees.json b/examples/data/json/benchmark_EI_TPI_2_degrees.json index f47ad5eb..421190ea 100644 --- a/examples/data/json/benchmark_EI_TPI_2_degrees.json +++ b/examples/data/json/benchmark_EI_TPI_2_degrees.json @@ -1,6 +1,6 @@ { - "benchmark_temperature": 2.0, - "benchmark_global_budget": 500, + "benchmark_temperature": "2.0 delta_degC", + "benchmark_global_budget": "500 Gt CO2", "is_AFOLU_included": false, "S1S2": { "benchmarks": [ diff --git a/examples/data/json/benchmark_EI_TPI_below_2_degrees.json b/examples/data/json/benchmark_EI_TPI_below_2_degrees.json index 852997f4..c723812a 100644 --- a/examples/data/json/benchmark_EI_TPI_below_2_degrees.json +++ b/examples/data/json/benchmark_EI_TPI_below_2_degrees.json @@ -1,6 +1,6 @@ { - "benchmark_temperature": 1.75, - "benchmark_global_budget": 500, + "benchmark_temperature": "1.75 delta_degC", + "benchmark_global_budget": "500 Gt CO2", "is_AFOLU_included": false, "S1S2": { "benchmarks": [ From d2c93e18d2031b4e12342f06276f5327a57d716d Mon Sep 17 00:00:00 2001 From: David Kroon <35101727+dp90@users.noreply.github.com> Date: Thu, 2 Jun 2022 13:16:06 +0200 Subject: [PATCH 249/345] Spell North America without dash Signed-off-by: David Kroon <35101727+dp90@users.noreply.github.com> Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- examples/data/json-units/benchmark_EI_TPI_1_5_degrees.json | 2 +- examples/data/json-units/benchmark_EI_TPI_below_2_degrees.json | 2 +- examples/data/json/benchmark_EI_TPI_1_5_degrees.json | 2 +- examples/data/json/benchmark_EI_TPI_below_2_degrees.json | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/examples/data/json-units/benchmark_EI_TPI_1_5_degrees.json b/examples/data/json-units/benchmark_EI_TPI_1_5_degrees.json index 29533c75..9c821962 100644 --- a/examples/data/json-units/benchmark_EI_TPI_1_5_degrees.json +++ b/examples/data/json-units/benchmark_EI_TPI_1_5_degrees.json @@ -144,7 +144,7 @@ }, { "sector": "Electricity Utilities", - "region": "North-America", + "region": "North America", "benchmark_metric": { "units": "t CO2/MWh" }, "projections": [ { diff --git a/examples/data/json-units/benchmark_EI_TPI_below_2_degrees.json b/examples/data/json-units/benchmark_EI_TPI_below_2_degrees.json index 89ff23a6..d7631fbe 100644 --- a/examples/data/json-units/benchmark_EI_TPI_below_2_degrees.json +++ b/examples/data/json-units/benchmark_EI_TPI_below_2_degrees.json @@ -144,7 +144,7 @@ }, { "sector": "Electricity Utilities", - "region": "North-America", + "region": "North America", "benchmark_metric": { "units": "t CO2/MWh" }, "projections": [ { diff --git a/examples/data/json/benchmark_EI_TPI_1_5_degrees.json b/examples/data/json/benchmark_EI_TPI_1_5_degrees.json index 2774c4fb..f3623dae 100644 --- a/examples/data/json/benchmark_EI_TPI_1_5_degrees.json +++ b/examples/data/json/benchmark_EI_TPI_1_5_degrees.json @@ -143,7 +143,7 @@ }, { "sector": "Electricity Utilities", - "region": "North-America", + "region": "North America", "projections": [ { "year": 2019, diff --git a/examples/data/json/benchmark_EI_TPI_below_2_degrees.json b/examples/data/json/benchmark_EI_TPI_below_2_degrees.json index c723812a..d430cc70 100644 --- a/examples/data/json/benchmark_EI_TPI_below_2_degrees.json +++ b/examples/data/json/benchmark_EI_TPI_below_2_degrees.json @@ -143,7 +143,7 @@ }, { "sector": "Electricity Utilities", - "region": "North-America", + "region": "North America", "projections": [ { "year": 2019, From f58fe928e86ee05d1de49bf88f6aaba1e2197ef1 Mon Sep 17 00:00:00 2001 From: oleksandr-anufriyev1 Date: Fri, 3 Jun 2022 13:43:51 +0200 Subject: [PATCH 250/345] Update for UI. UI could be used for release. Signed-off-by: oleksandr-anufriyev1 Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- examples/ITR_UI.py | 778 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 778 insertions(+) create mode 100644 examples/ITR_UI.py diff --git a/examples/ITR_UI.py b/examples/ITR_UI.py new file mode 100644 index 00000000..dc16570c --- /dev/null +++ b/examples/ITR_UI.py @@ -0,0 +1,778 @@ +# Go to folder "examples" and run this app with `python ITR_UI.py` and +# visit http://127.0.0.1:8050/ in your web browser + + +import pandas as pd +import numpy as np +import json +import os +import base64 +import io + +import dash +from dash import html +from dash import dcc + +import dash_bootstrap_components as dbc # should be installed separately + +from dash.dependencies import Input, Output, State +from dash.exceptions import PreventUpdate +import plotly.express as px +import plotly.graph_objects as go +# from sqlalchemy import true + +import ITR + +from ITR.data.data_warehouse import DataWarehouse +from ITR.portfolio_aggregation import PortfolioAggregationMethod +from ITR.temperature_score import TemperatureScore + +from ITR.data.base_providers import BaseProviderProductionBenchmark, BaseProviderIntensityBenchmark +from ITR.data.template import TemplateProviderCompany +from ITR.interfaces import ICompanyData, EScope, ETimeFrames, PortfolioCompany, IEIBenchmarkScopes, IProductionBenchmarkScopes, ProjectionControls + +from ITR.data.osc_units import ureg, Q_, PA_ +from pint import Quantity +from pint_pandas import PintType + +from ITR.utils import get_project_root +pkg_root = get_project_root() + + + +# Initial calculations +print('Start!') + + +directory1 ='' #'examples' +directory2="data" +directory3="json-units" +root = os.path.abspath('') + +# load company data +company_data="20220415 ITR Tool Sample Data.xlsx" # this file is provided initially +template_company_data = TemplateProviderCompany(excel_path=os.path.join(root, directory1, directory2, company_data)) + +# load production benchmarks +benchmark_prod_json_file = "benchmark_production_OECM.json" +benchmark_prod_json = os.path.join(root, directory1, directory2, directory3, benchmark_prod_json_file) +with open(benchmark_prod_json) as json_file: + parsed_json = json.load(json_file) +prod_bms = IProductionBenchmarkScopes.parse_obj(parsed_json) +base_production_bm = BaseProviderProductionBenchmark(production_benchmarks=prod_bms) +print('Load production benchmark from {}'.format(benchmark_prod_json_file)) + + +# Emission intensities +benchmark_EI_OECM_file = "benchmark_EI_OECM.json" +benchmark_EI_TPI_15_file = "benchmark_EI_TPI_1_5_degrees.json" +benchmark_EI_TPI_file = "benchmark_EI_TPI_2_degrees.json" +benchmark_EI_TPI_below_2_file = "benchmark_EI_TPI_below_2_degrees.json" + +# loading dummy portfolio +df_portfolio = pd.read_excel(os.path.join(root, directory1, directory2, company_data), sheet_name="Portfolio") +companies = ITR.utils.dataframe_to_portfolio(df_portfolio) +print('Load dummy portfolio from {}. You could upload your own portfolio using the template.'.format(company_data)) + +temperature_score = TemperatureScore( + time_frames = [ETimeFrames.LONG], + scopes=[EScope.S1S2], + aggregation_method=PortfolioAggregationMethod.WATS # Options for the aggregation method are WATS, TETS, AOTS, MOTS, EOTS, ECOTS, and ROTS +) + +# load default intensity benchmarks +def recalculate_individual_itr(scenario): + if scenario == 'OECM': + benchmark_file = benchmark_EI_OECM_file + elif scenario == 'TPI_2_degrees': + benchmark_file = benchmark_EI_TPI_file + elif scenario == 'TPI_15_degrees': + benchmark_file = benchmark_EI_TPI_15_file + else: + benchmark_file = benchmark_EI_TPI_below_2_file + # load intensity benchmarks + benchmark_EI = os.path.join(root, directory1, directory2, directory3, benchmark_file) + with open(benchmark_EI) as json_file: + parsed_json = json.load(json_file) + EI_bm = BaseProviderIntensityBenchmark(EI_benchmarks=IEIBenchmarkScopes.parse_obj(parsed_json)) + Warehouse = DataWarehouse(template_company_data, base_production_bm, EI_bm) + df = temperature_score.calculate(data_warehouse=Warehouse, portfolio=companies) + # print('Temperature score for portfolio components is {:.2f}'.format(temperature_score.aggregate_scores(df).long.S1S2.all.score.m)) + return df + + +initial_portfolio = recalculate_individual_itr('OECM') +amended_portfolio_global = initial_portfolio.copy() +filt_df = initial_portfolio.copy() + +# matplotlib is integrated with Pint's units system: https://pint.readthedocs.io/en/0.18/plotting.html +# But not so plotly. This function attempts to dequantify all units and return the magnitudes in their natural base units. + +def dequantify_plotly(px_func, df, **kwargs): + new_df = df.copy() + for col in ['x', 'y']: + s = df[kwargs[col]] + if isinstance(s.dtype, PintType): + new_df[kwargs[col]] = s.values.quantity.to_base_units().m + elif s.map(lambda x: isinstance(x, Quantity)).any(): + item0 = s.values[0] + s = s.astype(f"pint[{item0.u}]") + new_df[kwargs[col]] = s.values.quantity.m + if 'hover_data' in kwargs: + for col in kwargs['hover_data']: + s = df[col] + if isinstance(s.dtype, PintType): + new_df[col] = s.values.quantity.to_base_units().m + elif s.map(lambda x: isinstance(x, Quantity)).any(): + item0 = s.values[0] + s = s.astype(f"pint[{item0.u}]") + new_df[col] = s.values.quantity.m + + return px_func (new_df, **kwargs) + + +# nice cheatsheet for managing layout via className attribute: https://hackerthemes.com/bootstrap-cheatsheet/ + +# Define app +app = dash.Dash(__name__, external_stylesheets=[dbc.themes.BOOTSTRAP], # theme should be written in CAPITAL letters; list of themes https://www.bootstrapcdn.com/bootswatch/ + meta_tags=[{'name': 'viewport', # this thing makes layout responsible to mobile view + 'content': 'width=device-width, initial-scale=1.0'}] + ) +app.title = "ITR Tool" # this puts text to the browser tab +server = app.server + +controls = dbc.Row( # always do in rows ... + [ + dbc.Col( # ... and then split to columns + children=[ + dbc.Row( + [ + dbc.Col( + dbc.Label("\N{thermometer} Individual temperature score"), + width=9, + ), + dbc.Col( + [ + dbc.Button("\N{books}",id="hover-target2", color="link", n_clicks=0), + dbc.Popover(dbc.PopoverBody("Focus on companies from portfolio with specific temperature score"),id="hover2",target="hover-target2",trigger="hover"), + ], width=2, align="center", + ), + ], + align="center", + ), + dcc.RangeSlider( + id="temp-score", + min = 0, max = 4, value=[0,4], + step=0.5, + marks={i / 10: str(i / 10) for i in range(0, 40, 5)}, + ), + dbc.Row( + [ + dbc.Col( + dbc.Label("\N{factory} Focus on a specific sector "), + width=9, + ), + dbc.Col( + [ + dbc.Button("\N{books}",id="hover-target3", color="link", n_clicks=0), + dbc.Popover(dbc.PopoverBody("Scope of sectors could be different for different emission scenario.\nScope of sectors covered by the tool is constantly growing."),id="hover3",target="hover-target3",trigger="hover"), + ], width=2, + ), + ], + align="center", + ), + dcc.Dropdown(id="sector-dropdown", + options=[{"label": i, "value": i} for i in initial_portfolio["sector"].unique()] + [{'label': 'All Sectors', 'value': 'all_values'}], + value = 'all_values', + clearable =False, + placeholder="Select a sector"), + dbc.Row( + [ + dbc.Col( + dbc.Label("\N{globe with meridians} Focus on a specific region "), + width=9, + ), + dbc.Col( + [ + dbc.Button("\N{books}",id="hover-target4", color="link", n_clicks=0), + dbc.Popover(dbc.PopoverBody("Scope of countries could be different for different emission scenario"),id="hover4",target="hover-target4",trigger="hover"), + ], width=2, + ), + ], + align="center", + ), + dcc.Dropdown(id="region-dropdown", + options=[{"label": i if i != "Global" else "Other", "value": i} for i in initial_portfolio["region"].unique()] + [{'label': 'All Regions', 'value': 'all_values'}], + value = 'all_values', + clearable =False, + placeholder="Select a region"), + + ], + ), + ], +) + +macro = dbc.Row( + [ + dbc.Col( + children=[ + dbc.Row( # Select Benchmark + [ + dbc.Col( + dbc.Label("\N{bar chart} Select climate scenario "), + width=9, + ), + dbc.Col( + [ + dbc.Button("\N{books}",id="hover-target5", color="link", n_clicks=0), + dbc.Popover(dbc.PopoverBody("Climate scenario describes emission intensities projection for different regions and sectors"),id="hover5",target="hover-target5",trigger="hover"), + ], width=2, + ), + ], + align="center", + ), + dcc.Dropdown(id="scenario-dropdown", + options=[ # 16.05.2022: make this dynamic + {'label': 'OECM 1.5 degrees', 'value': 'OECM'}, + {'label': 'TPI 1.5 degrees', 'value': 'TPI_15_degrees'}, + {'label': 'TPI 2 degrees', 'value': 'TPI_2_degrees'}, + {'label': 'TPI below 2 degrees', 'value': 'TPI_below_2_degrees'} + ], + value='OECM', + clearable =False, + placeholder="Select emission scenario"), + html.Div(id='hidden-div', style={'display':'none'}), + html.Hr(), # small space from the top + dbc.Row( # Mean / Median projection + [ + dbc.Col( + dbc.Label("\N{level slider} Select method for projection"), + width=9, + ), + dbc.Col( + [ + dbc.Button("\N{books}",id="hover-target6", color="link", n_clicks=0), + dbc.Popover(dbc.PopoverBody("Select method of averaging trend of emission intensities projections"),id="hover6",target="hover-target6",trigger="hover"), + ], width=2, + ), + ], + align="center", + ), + dcc.RadioItems( + id="projection-method", + options=[ + {'label': 'Median', 'value': 'median'}, + {'label': 'Mean', 'value': 'mean'}, + ], + value='median', + inputStyle={"margin-right": "10px","margin-left": "30px"}, + inline=True, + ), + html.Hr(), # small space from the top + dbc.Row( # Winzorization of scenarios + [ + dbc.Col( + dbc.Label("\N{wrench} Select winsorization value cap range"), + width=9, + ), + dbc.Col( + [ + dbc.Button("\N{books}",id="hover-target8", color="link", n_clicks=0), + dbc.Popover(dbc.PopoverBody("Select which extreme datapoints of historical emission intensities you would like to exclude from calculations of projections"),id="hover8",target="hover-target8",trigger="hover"), + ], width=2, + ), + ], + align="center", + ), + dcc.RangeSlider( + id="scenarios-cutting", + min = 0, max = 100, value=[ProjectionControls.LOWER_PERCENTILE*100,ProjectionControls.UPPER_PERCENTILE*100], + step=10, + marks={i: str(i) for i in range(0, 100, 10)}, + allowCross=False + ), + ], + ), + ], +) + + +# Define Layout +app.layout = dbc.Container( # always start with container + children=[ + # dcc.Store(id='memory-output'), # not used, but the idea is to use as clipboard to store dataframe + html.Hr(), # small space from the top + dbc.Row( # upload portfolio + [ + dbc.Col( # upload OS-C logo + dbc.CardImg( + src="https://os-climate.org/wp-content/uploads/sites/138/2021/10/OSC-Logo.png", + className='align-self-center',# 'h-60 w-60 float-middle align-middle', # reducing size and alligning + bottom=False), + width = 2, + align="center", + ), + dbc.Col( + [ + html.H1(id="banner-title",children=[html.A("OS-Climate Portfolio Alignment Tool",href="https://github.com/plotly/dash-svm",style={"text-decoration": "none","color": "inherit"})]), + html.Div(children='Prototype tool for calculating the Implied Temperature Rise of investor portfolio in the steel and electric utilities sectors \N{deciduous tree}'), + ], + width = 8, + ), + dbc.Col([ + dbc.Spinner([html.H1(id="dummy-output-info",style={'color': 'white'})],color="primary",spinner_style={"width": "3rem", "height": "3rem"}), # Spinner implementations + # Upload button commented out for future release + # dcc.Upload( + # id='upload-data', + # children=html.Div( + # dbc.Button('Upload portfolio', size="lg", color="primary",className='align-bottom',), + # ), + # multiple=False # Allow multiple files to be uploaded + # ), + ], + width=1, + ), + # Upload template is commented out for this release + # dbc.Col( # 16.05.2022: update template link + # html.Div(dbc.Button('Get template (needs implementation)', size="lg", color="secondary", + # href="https://docs.faculty.ai/user-guide/apps/examples/dash_file_upload_download.html", + # download="dash_file_upload_download.html", + # external_link=True, + # ), + # ), + # width=2, + # className='align-middle', + # ) + ], + justify='between', # for this to work you need some space left (in total there 12 columns) + align = 'center', + ), + html.Hr(), + dbc.Row( + [ + dbc.Col( + [ # filters pane + dbc.Card( + dbc.CardBody( + [ + dbc.Row( + [ # Row with key figures + dbc.Col(html.H5("Filters", className="pf-filter")), # PF score + dbc.Col( + html.Div( + dbc.Button("Reset filters", + id="reset-filters-but", + outline=True, color="dark",size="sm",className="me-md-2" + ), + className="d-grid gap-2 d-md-flex justify-content-md-end" + ) + ), + ] + ), + html.P("Select part of your portfolio", className="text-black-50"), + controls, + ] + ) + ), + html.Br(), + dbc.Card( + dbc.CardBody( + [ + html.H5("Scenario assumptions", className="macro-filters"), + html.P("Here you could adjust basic assumptions of calculations", className="text-black-50"), + macro, + ] + ) + ), + ], + width=3, + ), + dbc.Col( + [ # main pane + dbc.Card( + dbc.CardBody([ + + dbc.Row(# Row with key figures + [ + dbc.Col( # PF score + dbc.Card(dbc.CardBody( + [ + html.H1(id="output-info"), + html.Div('Portfolio-level temperature rating of selected companies', style={'color': 'black', 'fontSize': 16}), + html.Div('in delta degree Celcius', style={'color': 'grey', 'fontSize': 10}), + ] + ) + ), + ), + dbc.Col( # Portfolio EVIC + dbc.Card(dbc.CardBody( + [ + html.H1(id="evic-info"), + html.Div('Enterprise Value incl. Cash of selected portfolio', style={'color': 'black', 'fontSize': 16}), + html.Div('in billions of template curr', style={'color': 'grey', 'fontSize': 10}), + ] + ) + ), + ), + dbc.Col( # Portfolio notional + dbc.Card(dbc.CardBody( + [ + html.H1(id="pf-info"), + html.Div('Total Notional of a selected portfolio', style={'color': 'black', 'fontSize': 16}), + html.Div('in millions of template curr', style={'color': 'grey', 'fontSize': 10}), + ] + ) + ), + ), + dbc.Col( # Number of companies + dbc.Card(dbc.CardBody( + [ + html.H1(id="comp-info"), + html.Div('Number of companies in the selected portfolio', style={'color': 'black', 'fontSize': 16}), + html.Div('# of companies', style={'color': 'grey', 'fontSize': 10}), + ] + ) + ), + ), + ], + ), + dbc.Row(# row with 2 graphs + [ + dbc.Col(dcc.Graph(id="graph-2"),width=8), # big bubble graph + dbc.Col(dcc.Graph(id="graph-6"),), # covered graph + ], + ), + dbc.Row(# row with 2 graphs + [ + dbc.Col(dcc.Graph(id="graph-3", + # style={"height": "70vh", "max-height": "90vw",'title': 'Dash Data Visualization'}, + ), + ), + dbc.Col(dcc.Graph(id="graph-4", + # style={"height": "70vh", "max-height": "90vw",'title': 'Dash Data Visualization'}, + ), + ), + ] + ), + dbc.Row(# row with 1 bar graph + [ + dbc.Col(dcc.Graph(id="graph-5", + # style={"height": "70vh", "max-height": "90vw",'title': 'Dash Data Visualization'}, + ), + ), + ] + ), + ]) + ), + html.Br(), + ], + width=9, + ), + ] + ), + dbc.Row( # Table + dbc.Col( + dbc.Card( + dbc.CardBody( + [ + dbc.Row( + [ + dbc.Col( + html.H5("Table below contains details about the members of the selected portfolio"), + width=10, + ), + dbc.Col( + html.Div( + [ + dbc.Button("Export table to spreadsheet", + id="export-to-excel", + size="sm",className="me-md-2" + ), + dcc.Download(id="download-dataframe-xlsx"), + ], + className="d-grid gap-2 d-md-flex justify-content-md-end" + ), + width=2, + ), + ], + align="center", + ), + html.Br(), + html.Div(id='container-button-basic'), + ] + ), + ), + ) + ) + ], + style={"max-width": "1500px", + # "margin": "auto" + }, + ) + + +def parse_contents(contents, filename): # function for read the uploaded portfolio + content_type, content_string = contents.split(',') + decoded = base64.b64decode(content_string) + try: + if 'csv' in filename: # Assume that the user uploaded a CSV file + df = pd.read_csv(io.StringIO(decoded.decode('iso-8859-1')),sep=';') + elif 'xlsx' in filename: # Assume that the user uploaded an excel file + df = pd.read_excel(io.BytesIO(decoded)) + print(df) + return df + except Exception as e: + print(e) + + + +@app.callback( + [ + Output("graph-2", "figure"), + Output("graph-6", "figure"), + Output("graph-3", "figure"), + Output("graph-4", "figure"), + Output("graph-5", "figure"), + Output('dummy-output-info','children'), # fake for spinner + Output('output-info','children'), # portfolio score + Output('output-info','style'), # conditional color + Output('evic-info','children'), # portfolio evic + Output('pf-info','children'), # portfolio notional + Output('comp-info','children'), # num of companies + Output('container-button-basic', 'children'), # Table + ], + [ + #Input('memory-output', 'data'), # here is our imported csv in memory + Input("temp-score", "value"), + # Input("run-url", "n_clicks"), + # Input("input-url", "n_submit"), + Input("sector-dropdown", "value"), + Input("region-dropdown", "value"), + Input("scenario-dropdown", "value"), + Input('projection-method','value'), + Input("scenarios-cutting", "value"), # winzorization slide + # Input('upload-data', 'contents'), # upload button commented out for now + ], + [ + # State("input-url", "value"), # url functionality + # State('upload-data', 'filename'), # upload functionality # upload button commented out for now + ], +) + +def update_graph( + # df_store, + te_sc, + sec, reg, + scenario, + proj_meth, + winz, + # list_of_contents, list_of_names, # related to upload + # url, + ): + + global amended_portfolio_global, initial_portfolio, filt_df, temperature_score, companies, company_data, template_company_data, base_production_bm + + changed_id = [p['prop_id'] for p in dash.callback_context.triggered][0] # to catch which widgets were pressed + + if 'upload-data' in changed_id: # if "upload new pf" button was clicked + df_portfolio = parse_contents(list_of_contents, list_of_names) + # df_portfolio = pd.read_csv(url, encoding="iso-8859-1", sep=';') + companies = ITR.utils.dataframe_to_portfolio(df_portfolio) + initial_portfolio = recalculate_individual_itr(scenario) + filt_df = initial_portfolio + amended_portfolio_global = filt_df + aggregated_scores = temperature_score.aggregate_scores(filt_df) + + else: # no new portfolio + if 'scenarios-cutting' or 'projection-method' in changed_id: # if winzorization params were changed + if proj_meth == 'median': + template_company_data.projection_controls.TREND_CALC_METHOD = staticmethod(pd.DataFrame.median) + else: + template_company_data.projection_controls.TREND_CALC_METHOD = staticmethod(pd.DataFrame.mean) + template_company_data.projection_controls.LOWER_PERCENTILE = winz[0]/100 + template_company_data.projection_controls.UPPER_PERCENTILE = winz[1]/100 + template_company_data = TemplateProviderCompany(excel_path=os.path.join(root, directory1, directory2, company_data)) + + amended_portfolio_global = recalculate_individual_itr(scenario) # we need to recalculate temperature score as we changed th + + temp_score_mask = (amended_portfolio_global.temperature_score >= Q_(te_sc[0],'delta_degC')) & (amended_portfolio_global.temperature_score <= Q_(te_sc[1],'delta_degC')) + # Dropdown filters + if sec == 'all_values': + sec_mask = (amended_portfolio_global.sector != 'dummy') # select all + else: + sec_mask = amended_portfolio_global.sector == sec + if reg == 'all_values': + reg_mask = (amended_portfolio_global.region != 'dummy') # select all + else: + reg_mask = (amended_portfolio_global.region == reg) + filt_df = amended_portfolio_global.loc[temp_score_mask & sec_mask & reg_mask] # filtering + if len(filt_df) == 0: # if after filtering the dataframe is empty + raise PreventUpdate + aggregated_scores = temperature_score.aggregate_scores(filt_df) # calc temp score for companies left in pf + print("Length of filtered dataframe is {}, the portfolio score is {:.2f}".format(len(filt_df),temperature_score.aggregate_scores(filt_df).long.S1S2.all.score.m)) # portfolio score + + + # Scatter plot + fig1 = dequantify_plotly (px.scatter, filt_df, x="cumulative_target", y="cumulative_budget", + size="investment_value", + color = "sector", labels={"color": "Sector"}, + hover_data=["company_name", "investment_value", "temperature_score"], + title="Overview of portfolio") + fig1.update_layout({'legend_title_text': '','transition_duration':500}) + fig1.update_layout(legend=dict(orientation = "h",yanchor="bottom",y=1,xanchor="center",x=0.5)) + + + # Covered companies analysis + coverage=filt_df[['company_id','ghg_s1s2','cumulative_target']].copy() + zeroE = Q_(0, 't CO2') + coverage['coverage_category'] = np.where(coverage['ghg_s1s2'].isnull(), + np.where(coverage['cumulative_target']==zeroE, "Not Covered", "Covered only
    by target"), + np.where((coverage['ghg_s1s2'] >zeroE) & (coverage['cumulative_target']==zeroE), + "Covered only
    by emissions", + "Covered by
    emissions and targets")) + dfg=coverage.groupby('coverage_category').count().reset_index() + dfg['portfolio']='Portfolio' # 1 column to have just 1 bar. I didn't figure out how to do it more ellegant + fig5 = dequantify_plotly (px.bar, dfg, x='portfolio',y="company_id", color="coverage_category",text='company_id',title="Coverage of companies in portfolio") + fig5.update_xaxes(visible=False) # hide axis + fig5.update_yaxes(visible=False) # hide axis + fig5.update_layout({'legend_title_text': '','transition_duration':500, 'plot_bgcolor':'white'}) + fig5.update_layout(legend=dict(yanchor="middle",y=0.5,xanchor="left",x=1)) # location of legend + + # Heatmap + trace = go.Heatmap( + x = filt_df.sector, + y = filt_df.region, + z = filt_df.temperature_score.map(lambda x: x.m), + type = 'heatmap', + colorscale = 'Temps', + ) + data = [trace] + heatmap_fig = go.Figure(data = data) + heatmap_fig.update_layout(title = "Industry vs Region ratings") + + # visualizing worst performers + df_high_score = filt_df.sort_values('temperature_score',ascending = False).groupby('sector').head(4) # keeping only companies with highest score for the chart + df_high_score['company_name'] = df_high_score['company_name'].str.split(' ').str[0] # taking just 1st word for the bar chart + high_score_fig = dequantify_plotly (px.bar, df_high_score, + x="company_name", + y="temperature_score", text ="temperature_score", + color="sector", title="Highest temperature scores by company") + high_score_fig.update_traces(textposition='inside', textangle=0) + high_score_fig.update_yaxes(title_text='Temperature score', range = [1,4]) + high_score_fig.update_layout({'legend_title_text': '','transition_duration':500}) + high_score_fig.update_layout(xaxis_title = None,legend=dict(orientation = "h",yanchor="bottom",y=1,xanchor="center",x=0.5)) + + + # Calculate different weighting methods + def agg_score(agg_method): + temperature_score = TemperatureScore(time_frames = [ETimeFrames.LONG], + scopes=[EScope.S1S2], + aggregation_method=agg_method) # Options for the aggregation method are WATS, TETS, AOTS, MOTS, EOTS, ECOTS, and ROTS + aggregated_scores = temperature_score.aggregate_scores(filt_df) + return [agg_method.value,aggregated_scores.long.S1S2.all.score] + + agg_temp_scores = [agg_score(i) for i in PortfolioAggregationMethod] + methods, scores = list(map(list, zip(*agg_temp_scores))) + df_temp_score = pd.DataFrame(data={0:pd.Series(methods,dtype='string'), 1:pd.Series(scores, dtype='pint[delta_degC]')}) + df_temp_score[1]=pd.to_numeric(df_temp_score[1].astype('pint[delta_degC]').values.quantity.m).round(2) # rounding score + # Separate column for names on Bar chart + # Highlight WATS and TETS + Weight_Dict = {'WATS': 'Investment
    weighted', #
    is needed to wrap x-axis label + 'TETS': 'Total emissions
    weighted', + 'EOTS': "Enterprise Value
    weighted", + 'ECOTS': "Enterprise Value
    + Cash weighted", + 'AOTS': "Total Assets
    weighted", + 'ROTS': "Revenues
    weigted", + 'MOTS': 'Market Cap
    weighted'} + df_temp_score['Weight_method'] = df_temp_score[0].map(Weight_Dict) # Mapping code to text + # Creating barchart, plotting values of column `1` + port_score_diff_methods_fig = dequantify_plotly (px.bar, df_temp_score, x='Weight_method', y=1, text=1,title = "Score by weighting scheme
    Assess the influence of weighting schemes on scores") + port_score_diff_methods_fig.update_traces(textposition='inside', textangle=0) + port_score_diff_methods_fig.update_yaxes(title_text='Temperature score', range = [0.5,3]) + port_score_diff_methods_fig.update_xaxes(title_text=None, tickangle=0) + port_score_diff_methods_fig.add_annotation(x=0.5, y=2.6,text="Main methodologies",showarrow=False) + port_score_diff_methods_fig.add_shape( + dict(type="rect", x0=-0.45, x1=1.5, y0=0, y1=2.7, line_dash="dot",line_color="LightSeaGreen"), + row="all", + col="all", + ) + port_score_diff_methods_fig.add_hline(y=2, line_dash="dot",line_color="red",annotation_text="Critical value") # horizontal line + port_score_diff_methods_fig.update_layout(transition_duration=500) + + # input for the dash table + df_for_output_table=filt_df[['company_name', 'company_id','region','sector','cumulative_budget','investment_value','trajectory_score', 'target_score','temperature_score']].copy() + df_for_output_table['temperature_score']=df_for_output_table['temperature_score'].astype('pint[delta_degC]').values.quantity.m # f"{q:.2f~#P}" + df_for_output_table['trajectory_score']=pd.to_numeric(df_for_output_table['trajectory_score'].astype('pint[delta_degC]').values.quantity.m).round(2) + df_for_output_table['target_score']=pd.to_numeric(df_for_output_table['target_score'].astype('pint[delta_degC]').values.quantity.m).round(2) + df_for_output_table['cumulative_budget'] = pd.to_numeric(df_for_output_table['cumulative_budget'].astype('pint[Mt CO2]').values.quantity.m).round(2) + df_for_output_table['investment_value'] = df_for_output_table['investment_value'].apply(lambda x: "${:,.1f} Mn".format((x/1000000))) # formating column + df_for_output_table.rename(columns={'company_name':'Name', 'company_id':'ISIN','region':'Region','sector':'Industry','cumulative_budget':'Emissions budget','investment_value':'Notional','trajectory_score':'Historical emissions score', 'target_score':'Target score','temperature_score':'Weighted temperature score'}, inplace=True) + + return ( + fig1, fig5, + heatmap_fig, high_score_fig, + port_score_diff_methods_fig, + "{:.2f}".format(aggregated_scores.long.S1S2.all.score.m), # fake for spinner + "{:.2f}".format(aggregated_scores.long.S1S2.all.score.m), # portfolio score + {'color': 'ForestGreen'} if aggregated_scores.long.S1S2.all.score.m < 2 else {'color': 'Red'}, # conditional color + str(round((filt_df.company_ev_plus_cash.sum())/10**9,0)), # sum of total EVIC for companies in portfolio + str(round((filt_df.investment_value.sum())/10**6,1)), # portfolio notional + str(len(filt_df)), # num of companies + dbc.Table.from_dataframe(df_for_output_table, + striped=True, + bordered=True, + hover=True, + responsive=True, + ), + ) + + +@app.callback( # export table to spreadsheet + Output("download-dataframe-xlsx", "data"), + Input('export-to-excel', 'n_clicks'), + prevent_initial_call=True, +) + +def download_xlsx(n_clicks): + return dcc.send_data_frame(filt_df.to_excel, "ITR_calculations.xlsx", sheet_name="ITR_calculations") + +@app.callback( # reseting dropdowns + [ + Output("temp-score", "value"), + Output("sector-dropdown", "value"), + Output("sector-dropdown", "options"), # update sector dropdown options as it could be different depending on the selected scenario + Output("region-dropdown", "value"), + Output("region-dropdown", "options"), # update region dropdown options as it could be different depending on the selected scenario + Output("projection-method", "value"), + Output("scenarios-cutting", "value"), + ], + [ + Input('reset-filters-but', 'n_clicks'), + Input("scenario-dropdown", "value") + ] +) + +def reset_filters(n_clicks_reset, scenario): + changed_id = [p['prop_id'] for p in dash.callback_context.triggered][0] # to catch which widgets were pressed + if n_clicks_reset is None and 'scenario-dropdown' not in changed_id: + raise PreventUpdate + + ProjectionControls.TREND_CALC_METHOD=staticmethod(pd.DataFrame.median) + ProjectionControls.LOWER_PERCENTILE = 0.1 + ProjectionControls.UPPER_PERCENTILE = 0.9 + template_company_data = TemplateProviderCompany(excel_path=os.path.join(root, directory1, directory2, company_data)) + amended_portfolio_global = recalculate_individual_itr(scenario) + initial_portfolio = amended_portfolio_global + + return ( # if button is clicked, reset filters + [0,4], + 'all_values', + [{"label": i, "value": i} for i in amended_portfolio_global["sector"].unique()] + [{'label': 'All Sectors', 'value': 'all_values'}], + 'all_values', + [{"label": i if i != "Global" else "Other", "value": i} for i in amended_portfolio_global["region"].unique()] + [{'label': 'All Regions', 'value': 'all_values'}], + 'median', + [ProjectionControls.LOWER_PERCENTILE*100,ProjectionControls.UPPER_PERCENTILE*100], + ) + +if __name__ == "__main__": + app.run_server(debug=True) From 2f46b0bee525e7ad0cd341e79ff779b69a4ce70b Mon Sep 17 00:00:00 2001 From: oleksandr-anufriyev1 Date: Fri, 3 Jun 2022 13:53:30 +0200 Subject: [PATCH 251/345] Adding gif, delete old UI Signed-off-by: oleksandr-anufriyev1 Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- ITR/portfolio_aggregation.py | 7 +- ITR_demo.gif | Bin 0 -> 3588988 bytes README.md | 5 +- examples/ITR_dash_app.py | 692 ----------------------------- examples/ITR_dash_app_develop.py | 726 ------------------------------- 5 files changed, 9 insertions(+), 1421 deletions(-) create mode 100644 ITR_demo.gif delete mode 100644 examples/ITR_dash_app.py delete mode 100644 examples/ITR_dash_app_develop.py diff --git a/ITR/portfolio_aggregation.py b/ITR/portfolio_aggregation.py index 0a1b7f6d..c657e6bc 100644 --- a/ITR/portfolio_aggregation.py +++ b/ITR/portfolio_aggregation.py @@ -99,9 +99,10 @@ def _calculate_aggregate_score(self, data: pd.DataFrame, input_column: str, with warnings.catch_warnings(): warnings.simplefilter("ignore") # See https://github.com/hgrecco/pint-pandas/issues/114 - return pd.Series(data.apply( + weights_series = pd.Series(data.apply( lambda row: row[self.c.COLS.INVESTMENT_VALUE] * row[input_column] / total_investment_weight, axis=1)) + return weights_series except ZeroDivisionError: raise ValueError("The portfolio weight is not allowed to be zero") @@ -116,8 +117,10 @@ def _calculate_aggregate_score(self, data: pd.DataFrame, input_column: str, # Calculate the total emissions of all companies emissions = data.loc[use_S1S2, self.c.COLS.GHG_SCOPE12].sum() + data.loc[use_S3, self.c.COLS.GHG_SCOPE3].sum() try: - return pd.Series((data[self.c.COLS.GHG_SCOPE12].where(use_S1S2,0) + data[self.c.COLS.GHG_SCOPE3].where(use_S3, 0)) \ + weights_series = pd.Series((data[self.c.COLS.GHG_SCOPE12].where(use_S1S2,0) + data[self.c.COLS.GHG_SCOPE3].where(use_S3, 0)) \ / emissions * data[input_column]) + return weights_series + except ZeroDivisionError: raise ValueError("The total emissions should be higher than zero") diff --git a/ITR_demo.gif b/ITR_demo.gif new file mode 100644 index 0000000000000000000000000000000000000000..f85192dbb7bfec3042484df9e186aba7d468049c GIT binary patch literal 3588988 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
    h}YEe6@Qz{|C>GNz$eG6|ri=pc4Cm|C) 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

    b-TA?dRG7UfMhBn=G&v%hmS&)lba=A&*u~yjF}W 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�TXZ1e{uKKq;tEQ%=W@cvQ=H_}9Ug~e66s*$3 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

    Q)PK|*qI8}(~Mt&Hc+D4TozWWE11-Q) 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

    g|&Jm~IYK9VTV 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

    I?Hf<8 z8i(AJmBxR(<;QQ(7!nl8&>xr1&mEk}Zk69c+*4CTyJ7^sZ8hH0d9crXVgwS>H6hIW z;?E+O8KS1>OZMEmMFMhd$__p2`>ckqKd1yFd3S)I;P3lE9-~ zmUgWUTm04sm`Cs#ZCPfpUz9XKZCNYJt;{fM(dKU$+fW4QQ%otm8EyFcEgAqHnIMT1 z8VyP*gQPdOTb5z9a^a>(np#FJ57XJDroL5bY4oXVh$8TOuK*wT8~PF!FF!kp0@uG(p*qFobzqiYo@ecK(cmk!=Y2N9mfIUT_r za?}NqL|)#YHvnAR8+5JEJ|-FjT+O=W0q!#b)qTNUUWyUozb$eHpP^cNhznd}Y57

    ;(h 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

    1%vZE&@1 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

    Yjmpmpdv z!k`XfKZA!MGr64Mk|sNeCeZ+UslaIK{d|Ais1A+R+W}x zx)GUQ?mf-A*W04OslRJ1JjwksUC<+~KS*Gn{9sK~pJm_JBU(FIInDTXK4~&hWiaSc znsAEOqajb+K~1=OQpcrok@*&HgQYru!2)uA4NfHv>kHB&@_Jh6+ zJEtl_9BmzDV64vS^>DqgZbNNv7(T<5VCHJB5NC!HB)U9xcS-_X-}3PGviz&hd3dd& z+P_`w{4XD`{m)UYWN!|EdTugc{c(?R(#L%=B88?uz1_A)v%f=gzDHjM^5rK~E4M3} z#|_Qrj^;nfmt(0`uT!cOE$NGv^2OeG01J561*lel>bnC2v_90`AfRyIP&xQeCHN3< zTGarmHS~mP4f{#88k|zCX$bo)EY<2!bl_8r@GnIGR4cZ8paM&^22~(~0jd>nTC4t= zY6ZrqqED#S*#C=EYwN&l>)=A`&~nSrYV+`V^YCWN$X5H$~u_mADanf>8eV7v-B zbwahyZyYTFRO=4b+B*$QVlVFhF4cOng9F$1z$Ol?KZdMM@9s~tlo-t4(OUn!zavh% zZS-zAf~T$9?)1=C01`Kbt=KOr^{(G;y;t!0K=!+#QhEmGbK)Aqk2lRJ1X@%X1Pn2A zlv*k6QBX@fuhw&*7jKF2)oz7a>HBye08JMXxz2M!^DHNuXQwdP5T-MxMUfuxJ z$~E!o*t-1TE{DV^)#`7tT{OZ#TF;igyf-^@17nW9a7kllqa1~$TImmGr*5S6AQz(c z4sNa((xW$&zoHN(cmZ6(v3gA+XR|q)X+>Nt)LlFE_&lU6OmUgrK`yt(C4fYLhbF)S2TQAOsc~$_R^#c}YC8vMTb$i(P9wA2%b5N7K1OGiQuAmMtGOd|Fl_?ur{j+V6-vBmi`cIqnLmu!-dgO{FS&vS0JphG=wOR8JziigU z|M@m+*B>_P@El;XwvBAGoK&Fwv{?raf7z_q&dT3yRv`WZ*sS$qCpPQM(cs(>V6#r2 z+N_%=HtYUB!)8S-oY<^0tH_U48C@FZ(2Na z(3Qc39#gcEL5;uLtZAK*MaGAA!8G@K)m>iS{b{q_AJGZ>X|qOQZPxPq6PtB`mrgY3 zjpmbuH4?htY}WQCe`~Woktk>y$J(rn#~w}5n;Yk_HfyZdh%1J<76O$EvPHbGx1nVS zqIs_J)>J$QBFBu^hcp$8JjMb^nbFd9$vHz0YK+<6gxxp!0&6T^4@*<{R+-fcI( za1Y@N3fluf!mU_edJ$o+%@8D&qQY!Q&=2>cUc!B>N{@#7G2t{Mf}YDh4C#D!44wBE zLIKrcBI;p#j~F*Ly=)Dm~jKbx2G0$5f`fMw;b0$5fDv`o``n@3ili#XGH zy78pnSYV6_E9IzG{QmGe))PXbmvYm9QG2N zlt7ibY%rU^^rJ{`{A=dh7`fi5QLbJ&o zruExPnRl-x3Uu3aowHsmqOQeVmV7YES$+~@2A)orO z?UP4Q#rq;Y{h{wOZM7MLlx(7-AKc>CuEAlu9mD)`YflvrSy{cFE*QJ}3k4mio7QZ` z;u5;zx}c2i{tVYj?0%gF0*r7 zX88}V8!Vi>ES&tTS0q?(DzflCWP$3i$e6IGS+G2{Wi@%vYUaplY0Y9|$l{>I@W4rW@{fZUG^*00t<%IbZMEMoO1@B5i?@Ea% z-V#-k5mT0xP`NFsE+_dwUh2tRNqt3$S89^xs-m`P!j9@tmwQ4VHH5q$2nJ{h25Aa} zKNgJB5&U8xm~JeTYYHuVBV1xGQeh=pV=GqYAl~#|vej9--BqU3UAFtv?OxA2{k{rg zp{i3c8nek-i|J2S^YypNP4?=|4qB~|UG~Vn_lNy1r~!A>peJ(BcYnZtt3Pn5H*B!u zb4gQSTwR?{b*Fv#(A(ni7lq?Gx#Q|-Ln_JRiiu-)W5(`=k17WaDtQelyAP{7k88f0 z*R|X=Fh@K$Lq31|r)6k{d|{3>wnUm(Ax&+NZ|r`qxAsV2nK@vWg(K4H1JcfI-|^F) zlh=W}AJPMc^a@7$ha&@{kRh?i$V6mJ@?m1yVN%9nO4ea&&S6^aVMg9zX2D^0(P3Wk zVPV-}aphr26{@@jRq-8FS%<2wN7XcT@SLp7x}#(Sv!EN7)Dl) z9ajB7RZkyP!;h+Gk1CdqN;lBeD@P5BM=c9S9rH&$b4UI2*xh@0{%CX_H8zKuoJ0MX zKb&4XgfAY>E&&TU2drgaA?8;Q^Q(x3Rm9@j$y!G&ts|Bb+SdzQJ zhlcOv-$7ZIx_?MIaT`=wwdDUT%F5LgAs@^s&{~+*_nX8+b!DP8^u^!_%BuJ+bELpH z$L47{f7V#B8N4-Cu{ir_wCT>3%C_R1AJxvd#7vnQIn&?VDX!|Ym*l~lboZ**7w_@T zwwE1yU_4d*UY z36<_F04VFT5l8su(s046ADt6Zdr3daF+LYntHf3}2Q#9dbyZcOY8U(1KB!h#p;4`Y z{=Na#Sc!)^B~A|aobi+k0Vh}d2iBI^P*?CBu4#ANEx8kkXIh5(&Em8NvkLT?CwrLj zXD7xuti+?Qsq4et$i-%Uv(p&v2aS7ZfJIs1`l1-FS(t2VsD7Y4XBzuMwi`>c!D@om z&qMA%H2HE@S|@ET?8yxRjd0yhmpR{P`vVfsQx&iIDAQYMFQUyFk??4XK@%h2wh2Ju z5$tVQhd`neKEz7qAk~!3oNGeYaco!t320`Ab>5y@15C+joMp-q(D+H=t#dwKw<# zEAi-_pseAq_eYGe5|3%|+WweX)Aa)^%6c$iw{Rly9IPGua6W$nF$JKkh-uGD*@zje z!~=)P-9Q2;>l@@;gi$tf9*}sD3ke=rlr{X#;Zo|??8D_uti+RxMOh1n-k{b>7P3+6 z6o2@L+IrFWyo>s{2JFh$KplBsT+{drTKd&Ai~D)p@3LJ?YIvIgI2Y{9 zly)tz7zR)iap}H~*-Pk=JwtS4AbrkD%T2;np(D>#s%z}op{@m)IKlMA!8%IAZ{(6& z=5HmqdnTnRyIqXfy{=j$#G_(*QXI6T&k*FDVZ|dzNWMmPj*BEA7Wqt#1OGrw%CTo>zGaqu63pms?7~9e{sBi_idBC2;+G0( zd@ifWy%5S^2Qz6mZudA6Vv7JVS-mqt_0yiqEbjY;HDsYCQwWhW0j%E|NaHBw4Gg z;UStK6T4D_vjV}#SJFM>z@Hqt&i(z##I*Ajv{+*#v`*(1zY z{FsJuIU0-=1SdCfT%aknB(Cy0+h)i zB3u?=8ye2@rHcUuS9Ea~Fpp=>4GlLE+3Cg_N2Dkb%(N3F_lg?P#Gj8zRwbL&i*d4$ zLHD<)P(M6-j@9gr7`?r8gjKC0e~%GIlUBebcKui!!c@BGkw#+QUQuJU#h_(reEjE9 zN#MC)**>p(n1=drF3NgI!MpALp!>|MhAG0tpL-eTl9?VD$EztUk(phY!o7P4w9D}H z$E=%>?)4eE25q0a{UO0$Huh4`d~iP}ZE~6-J_r7ae55NArNY~Ui;U%EsuDfBA}t>(lRo=z)~exa>|%K3aW@{F zjd1Z)ctmlvF4;9bZx4=%yS1JmO~zh#@khb*xnR5j4V9vdyg~}`UFUPm&jslfvp!3% zyPUfN(l6xpT9EWEd&pQ87Ioe{)0AR{jF5cx6GJX@P=wDNvTmvph3CO{`|MPqoSLO? zxUUMpSf5fowDlc&aBW}TyY8dbK2fgkXLc$*KlaF=&wN(bV+P;JkT^~SY%~M_|2?jT zT-;fZDu}=iy`IyiZ6aamd3t_%7gDLSL{d^o%FjgDN3TeQP(^L>!jnI-4BHXdD_!z| zgfu%vFc;z1a+_!tPSYCLx?BXA)9J{cC8LCL+C_Xv=w4&*e59Mc8=DuadoMr$uhzp> z0CqlFh~TJIqgp~g0~6TeJFCK3-*As4)G*SvD{ecr*!)A5ukGWnOL+lZXSbP2Fk9nK z2<@9M-P?H+zyMESeg1w8USof`P8;8>NN%uRk1_P~6m;zi(>>#7tRVLDltk=4sVaL3 zdfWs{+O{#i=R%XnW|Z(5a9G;D6uhuxSKlA(8d}BYiKp2m7u9q6pc1-lmdd!x0S07vz9cX`O_)4#1p7y)!sPte$kwT=J z6x?`hZRK0>Tdq|eD*17n8!R?t?|%>%(7%^=5t5#Ae6`A$*LjOh{j10O=b`JPQsk1B zpHTc6Mwf)9-=tWlVp!H0Um93DhsD@!`;#p13ygmq94JvgzijRr)^Q5Gjeqj=MlYp4DMOI0q<1~RY$x@>AO@MfBbuA&&PLVH4|5DdZ-@F&>th3RjancyN>2XkCEL0Rl8qR z(aVpI4~M&|_KPuH==FEUs422)M3X9JJNo!&QMLMTs0*`SevIA>s6JXyJw6;e#vrdwK;w)9b;i?jK4<3)7(7HJ&LqRmAcQlR#)TZ}LaF6KZRY|QJai>448tx= z2p47=S5~MiyOt}bohw&_>y;AMYs0QL5U$)bZoE)8el0gaJ2z;An@EY9*sz-f!cB_C z{T9?+R?Gd4ox6O5``r?ErD1m!gu5Ee$9vF^_q9I$|ADgpXC$6fx)E-Y-zA>)2vRL5 z2oNt;yFshDAh?--E)QrC2HNB%t%ngeaFcGrK=V@psXUuLMAfkH;1-&tDbPd>X&*Ca zyar^0jP%t5E#`t2q{7l^qw|HM3$>%a*+-W|MwgXFSBykgA){+(W4;T=)N98y+Q&3U z#)o=kRX%nZxB5?yF zbEk+mxZ`G*DCc3M*;5gOi9~&{s4Z>EC1#TS7I5KIFp7|JraJ=CLv$#dAmIYS2t#sV z2}J1>a9z@4T1drIAY_zc%`BMeEZIms6EaN232*@R?85%Lu^ zQs@;(5iD85n|u*Qs!0ba%T0PrL~axbaTZSDss-i3AY05|jETsXHi>D@63kKGoBwg?< zEVTu+jDHc(+VzNj+`%p%)+uk>e*{VkcBfjAamlKD9CmcST!<-8j?y;n~kA^ zY)ggWwt?q!L47TtZV^bF0;DcCM~g68hmdjrNj3l`sZ=8!*#r$X)w?v7;;7w zlEs{BIYO!u1)es8AmmAMa*0x5M1gln*EYdh&gsM~p!cm{ZWD;GXt-fpjvg^&mH8{7 zUMPt)NM;N?;hcHgO?n}($e|R}2+mfljNYq1YGzPXC1NY^Y z;JSd!SHQuo#ne0{7(@^l5(3TxeMEx&9)qosUkC!@Iau=3(?}JNkb*O%5AK$oHz!W@ zDZ^(;cc3jJ?a3hvECjJ6tbs|$d&(l{AvLIIUJ>#JGqCa%NUl^W_-rZRSrX5-uyZId z52g(qlaVvP49Ta5z&CRl2tnzkS!8Fc2oxbBqToHE@^f3nC1YT?E~o)joJUwmU|vb0 zS49?Bg}VjH07FO=A&XL=*~j2na82G)DM+t8M6{IbY@#_4Bv-eZ43c@A3-j`-PFJYK zl_p^@1s95fGaiGNriw@cN$J{?KF~u1TOkX&pj8xE<7RC;A=!6l@UU(PiFq1WI-6*k zbmmNXA9n#N60~up%;Z%igr^eU1vKGI3?(8Sk*ez^3|$9*CseN?ksyL~Cp6Fn2G%?Z-^j>>n}I@wN&9MuYn@3)ra)_(pn=C=%oqFI$qZON z09e-&m4L}KO-O~VfnRww;G!xEYrxgOzM59$x>`BASxwqQJQLkQu~iwf`hVDa@1Q34 zKwTFR(#uDcA{dHvF%;=&KtMo5KtT|c(3GY|RHRra(p%_7z=U2kfYL+=y{e(8*h3W% zH3$L;3ODFl>#Vc)o^xj3d;Yj{=Q8hPK4xSlFhM5I?|I)3c!KR9wRF#8`*~atI(kJT zW_f0d9TqJ>6{+pMQ}#PyM7tGo96-<01_V@4^Nb8$0|d2-^qG!o$H248v!5!#skl5b z71WudJPta=8Vgk3e%MP~H!2j>0_Q0YA?ul=o&cR&A+X2z0fBbZ#7`hjr)AI#bx$O< z0r%|s#zT{s4)s_R3&H*`<|%CHu|O#73$bG(2KBbG>;;Af+0huQle%vK^#;LHMQ!7= zejrc-TWq=anbyZGhUjeprs$|-9iAqR&HlcARF@MEe+0 zmtapYsBc8%7XW?DVN|iE9@dV`+Lx$%lSlhZtLzuxJur5t2GxHT_)2^IQYht!`QxH9 z0#|c^0JGH3*fxQQckuQ!{>_O|Sr?SRFZ2`a;Eer9lRnR`GrVu;Z!}y`U$F)IpQJ|b z<2nBZ`0C3e^_2H52bw}E-J-x+NF(p%hFWku+Dz&$iD3g56oZQT%0SuNOzwz>zYC^= z$nO&sKkyD@pqf6S$#B3D=+Lha_Cmf-0IIBz_AMQx8%YE2M!0z3R66S0F<|=Uz)p#w zbT8y6fS_WLFG+prx;z|~JU70StqN7ab<6Xf(q;ADW>+W8(@<@TxtB~m7<2%Y2@T~GFU5VM9muWpvwAih_W&n0p z8QAe4+Xr@m*JB5u$s>DR zra5aSJDIO_hw33qsIm9JsaDz+Va8;$A4y(llYfs&p8Sew<8nb>OPheSqwYBZ;~~$% z2Gcut%sie)JLCaB^Z-FKUIvK{QK=Vlfp^X?Ad_F^RV)e&Pk~(K+G9}Mv%tk*UXdq2 zl6Y-rc5=!spe*F0rUZ#Al-lw79dZIbcaTT%{ycaXc1{25%O`+wCGRBRUGYZyH06sJ zVv*`FvT_qBr!LAZeL#sfvG4a7(=^>bkB-+aXvHqblD`To3@zf2R06yWi#+AT_woKF zFmbSWO)GEA>$CgOFN0q{2jv4T_dl!b=T&oF4*Jr~xdTBp|EBf45&doX(4iG0=M|IN zD>9)uUjekZJZh0JVY(mSY-#`*AeZicx}FCZZY^ux2F9u1H${3sXFqdKLSmhlb*l0c z%d>ao_OA=2IqJUs7{@5V!tT+b0ZD5GR;FF0N* z>&hX5+uKSR=-4fE5q>Sk8D2;D(Vz1|Djrr$Tr0uAo3Mx`4n!vnUJbzViLikW>ux$P zjV{0fFTo#?V0ZD*=1b5*Dy)+RE46B|x?S4;9%!J$w-|7$Vy25WaD8(>Y`$eu z2Jg(T`o6##r@$*o?0*d_r@@T-QF?IrZ7~+@(65CD8|C?(Q$>9ReI&HdMBDe& ziG`CDw$*35b8J7`-9Pi>7PqLKl950EmGXuDWxhw&oNCZtY5gZlEQ)Ugx;8%?leKOW zOyu5e&%k#?AorN$+Aq0M88VxOcl~7#gk=V7*13D1lrw96GrK7u6g&3p?ETGTx7^b| zykAzIX^RwdtfzbNITm{h!0i-mxAb=G3(y`tbRt9AwuAdLUjAdg-D{TSh4;P-FRGn; z^UrMff8C#8oSUAIrFg26umv}7g@*9!|WKb|kZy$?Snk4PSr#+5%&7JHXNm z1^i~rC5(logGV~va_K24{~%MA&rEq`?*kjgR5^d!yQXp+&k^YwBfjHC)(1wd0WCld+*Ljf$goOuJX{U z)-#4?mNDEZR{1O=(y=>l%1y-fITRl}isk9%hlomc^IO|kZ_4${ed|&?uD>?TSL4m^ z&7GBJ`q~I{#$wop*VZYNE9H28$584qJ)UlPZOwM+RNJfa-Dx(KJRapojcU3xTv&YNy)Fl#Cj1uIGZh)9tX^xK&$~X`bUyaOrkO{njiJ}|;bd;hx?wBB zba#(cRWoiuGgzyYN5qyxG1<3dxyk228%XrUwUk^9fda!CBZ(72VoXCPf8PdPGoiEI z9%n6^xKi!xhHG6;Ud`q{9}zvF&GIXPLd3RbnHN65Z!ZpZLEOc9XpuleOG3V7(eSea}SHJLj&L z=%eWr^ZGo|T_<#;xrOk4p0w>$6-se5mvEX9H(DR_FI>pbmIgB9uZASfGxt?_V)33a{NJqm1{5}r7(0w{`qa_5mBV<_Pil;2KkrIi6zL!< zT;#ly(#WmkJ4|w5Vxy7EyU!_KhC0R#>ox za)RZgI62c$jWBm9(Sz^J5|wJm`O_WoXqBFpfM(nK{*M%E?;7uu-r4tI_Yg0c7LUX3 zh&$zLax<&ONP(~v$AkKOXL{01`Lw~N^@G(H4{leRcU!$`%O7`jII?VW7&F{d!Na|4 z3(_5DH4$eY!Y`m})~$?he|0;ahjNemg6Hutn1WfPP;>`<_zk4YrE7A}6|s^l0c5~& zopVsS*?EZjy|I7Yo*W9^}%nk|=tZD=7gph+tkE zM_y?R7u$W!RAWfOX)5DYOQ#q}ktza<+GcsnT=Bc zy@%G*1?_N0jxxl~%6J-#=Ti)K@sP>4_v*O}ryLgS-%APQ`Q&oY|rP*`Ya>5#U@=izZLBVdUq*rBXtESCMt3I3C z2>B?YX7BOH?`pSyPH|tU>^^-ufA7i5akp0@jSDaXhX_H^fkv-~&Rg!)`5+;DVwzL! z)U$iINEIBHytEG^0IdCH*ie1#^>Y`lOQ%nhT^v1L^ENgr5Vl%8P0%S%?p!P+Us`$_ z1t}cP>`~|Z7#e%h>QOPmy@=J72E%88B)e!PCALo%zU~lekkIRvw;;ptA#S@KH5%`W zWx!mS;dGtJC>fEJ8k4sDLmwvckT64d+?zSD~zw_sW zpM9|Jae4b}|GeK{$NN6ln7-GU7Xtn|*uNaiymFIy?KbmzC^Ime863g98OgjIvmTzX z9+9*jnY^7Sc2c$z%}(li%s)w4kNG>XDeG~m%(ygWd^$6Mos4ZSASsJU%-*&GQtmQS zbD8OR%#3@?ED|%jfSFUkyj!@P+#+UPF*Cn}d9Rd7E@Ku}u!<{L>|?<{?m%@N>%pUq z+QyBC%^Qy%Z#1-Qu=RoFwrzcY+QaJXXLS#lIU z7q2&7z1w*6apT>@#)m1^$7$BYEOT;heR6(nik*ekX?8wuXXc+QuFm|O*~K+>KK;uS znE%F>1=hDs0S5ES66-5l7WlrwSl(Fv!Ol0KBZjvd>+j>-X1RC z^I@o|?$dMOscXvzDz47ouFYarz7tfN`z->TY1o4uZG>LbeRW#l%SUQBe9yDGd&=)h zkbZZ;f>+K>vPFPBwsPg3KWJZS()Cv496cN`u}{{2y*v7&K{KW2UNEmeTLj>p zp(igXKa+N{=S7l|1^W&T`Ut!EnM}N^2U^WS!(oc(Qc^yfV&PVHI-)@iOYqHO9$nh=U1s-t)yfhYO!;4ALbB z73w*z9MfCHdoPs7j-)2(Zw!qpWNw!AD12s%0N$Ug8)w-fK+Ea^TLb_pE>gM#|Idm5 zCqs=H?RBS1Bs&nNDzH(=BR4*E-ZJ-9xyvtlW2wja+&jTu%r3L%XDh#cx?CVp`i`u> zwo-RY<2kM{LF3musZae1pAatkEF(1w|E)5c_yer5E8lZ=?a`EZ@479HgKqo#wz7z~&OWbh*z{#- zz4teyuEeZW!OvowKSC_H9I>E?jG5L&yKRpO7YN` zPS8t;yRUPGzqQ{=Gv2YDwdgmq9RC@9frjCMS8WxX-ize&Pu=rCQf-(`}>r{}cYqHpBX(`cFVif#(bXw5EMbXXojV2l` z!wEOX!^QP1Ty3T&I)ld!N14YL@Ryo)E1X`6wI3=FZ0PG&4qA%CBMOCjJu73Am*U~c zVj{2XiT-`z?%L{7qR&0i!SutTv;Y&0$x!sqr%UlmeLczun>g>Tox$)8DWQZyqCI^| zOzuRHAaV@2fw4(B6W@DTq!t!n#G883_x<4ys|T$j{Zdg55s?;w#)0&m2FTDek`CJ4 z)9on|Pwi=3UfEqA-}_1Q1H1Q^XQ9vkw2|ng&0u{T$ZnEd!UIm{_-B?9R@Awo9;cPS z*IeK}%0}2XX_ERC6Ho8R?X;UnbJe3vTZ9Fu=AB53I!FvBTC1b;Pj21-A3SYPa4CN0 zy(g(t#?zPEZAnLj8D(JHc`(0UZYTLuv}d`xANmHNQ@CF%Qmxjy&R6*%;YZmN-&3B% zl*q%orwLOg3(4pkiyj4g62|-1{fy#UYW9rxfz(Jf375t@#bow*nY)QJ$F7Epz9E>X z*Bhwakh?0m8hu2?ZX%}Q^bf(I@hH78bJP{!#pSB7NGxp%=7ulaV|v3hG?pBD-2O*3 zyPTy?Z?{dl^~gK4iaRyBCZSYyT8y3*VK8BCe;n5-dhLnNi&oVnj~1w4VIxROWF*O< z%upa=pOX6AX`9RAwlzFHgZha)dVPsuB32gB`Xid-L%epPU$C3=RtAGA)GjySExBs1 zT9u?bz(e&)LZ#0HD=x5ab@#*fLU=hNqH1=%`ceqkaM2*%I^a@c#Cy>B&ZXDWoI|P` zWf2CZEAOm@!fn9w;6v4MXF8NS8~5fFUx%K{4#pMcgB8BX)hEBPII!IO<)+WRE*F~* zL%UpHol#ic6z6H&C}wSa|GAyMFYFdOi@xhK+Qel9BiN^n=an!|O?r_<` zO_e9&c0&^9OZ(oLe#TAjNaRg2>}})l);g!?aobv31li=b=}#rkgwm(9s4r^N=Xeq? z8#PH2`U%+)#x;7y!rI0!qpreLld2rn2KiS(W=YeSPPo->J#`1+CY0EBy+P`7%*mf`DojA&!VA3UTjE86`A(XT zkIksu;F9VI=}A!g+D>%CO7XG2YDk~1i9M^kQ@l(RroYKvq`VCYqQf89_9%Rrh`uW` ziX1jp&l-+1HVv@sm5!K}Ao=ehN3^*|(5C+HKl7&^(daokZA~p)^o{}V zyEPA&dm{Fg|LzgJ5`E&vQ2M+V^TI{H!K9$Ayi-TQ!3XOn5NF+Gg+@4zM9sS<2F%%h zXr1eI-*afbuwQBqYrI##aR=(;l+>QY2S?xhAR{lXxQW-u>Q5)Fre5z07he%tap7G! z^?qmETF-gU4=E3B98mojz$l1=4=I*r2uuRi6uttQ?*gDd1` zI{^z+mw3N};R3lF5v;@KlU#5b5{ZyEKli-Su~#zUt)$#eEWEz=6u|!D!KtO`^~#cK z0#Qp02^y8+wg-A?=;s`veurIA6YNuFN1-x}SM=NLqm;XAq0Y+}`AmT}hNTQdBW(;A zreO9#G=AVtBQK+yG{eny+RLw_@0AdA#<435q+~QOWF>5nr7=N3KM4VzQbo+lG}iIR zUJCp^9^M8Z*Q}(h~NO9u*=K9i|n1$38kTAbK-8D_V>ny@vCPZQP$20@b*RW?>NZG*~ht zdTkOyAt7E75#0pDYXb5O9o}mN%aPm9JcsDPLAP+wOe<&_$HnJ#WCj6J4%wd+g1o^#B zOx4NW7fXR8&>(Rn2-OtcNKB3jfrfL$y~s+wO-$Mffwov7th4vUU=twOkT?pYl9VEB z2F>7r3I}GQ`XS9!WCk(gm0zY)AheH=nU00t#zR5^iIEI+3FR(l>aByvyQic`sO$egR ziu4?dcv22@lE~=GP!+$T))6>OJMMs2LJ9%VMgr~wNk9$aKx}cd4Wgc&&qYqEjIlW1 z3}oSCJew8YQA$2)!?kjNS40?60y=P_w7C|({-qy?qaapd04jj2!jy(8lr?=vC=US1 zID~i!;u(+!x(pq}l@enW)2PTKI*>s@T4e*RRKzRxxfKT9Lp{Jgz>;Q`XMTr0WdN~Q z1YFRq4ujZ$qD;6>JPcB7Cf!Am;VsyzXJPQtH$Wp$GBBW&2jS_&7Y#QnrD2QEJjk6v z)qR}M9srJ#fVwYK4-~-GUI2ZR%Gn&HL=56-EKp5B>=?g4FbV0Ulzvx0{P2D-;FmlM zWOMUCd+~@|`h%yO(5z30CnR_?2jV#%@qh${u-9sFh^GvAD;@q24^1Rc1mOF|@Q5Pf zZHY>ye{Wr&+5F=(=ePf_^N*tzwwA~7RyIB-PTjI|Bsw@3pK)(?_I&2z^WN>kyxYZZ z?w3}!fyAYCHh$P<4}ar_KLmmeAFPt%L3QLEvBc(?IxB zLSQ!#*sOwGLijhXxE;d`i`&K(?A%FQk6m(P7=P$RS}rpqpP5D8<`!&X!NwJAR#8;N1{KV53bV47RaMKXe#rb&a%gO2 zJ#J^UcCpxqqN9)1HL%e$#OizYZ$z>2d~Aa@wlVT@V{DxD;_cdtcdP8Ye7E-MJv+>C zc0Mp)e_+1($b3J=ocOfPCKi9Oiof~9KcM2jyqH~F{R1%m!Wh465A5c{r$y!*J73t@ zu0XK+4}Yiz8*KazbGr`lcO&8t>R{83MFxuvJlOdIJeF2AzW>-*S^c@X{&SuAi^=-6 z@pC)>J^qnW*p~V?|H#T2X|e3-{!vo6SvsrA5uFMOX9YR5JaiZXDl3QXA(}gdTy!` z2hTmrJRB$fi&*P5QYKbE*~{9qEA*lLvf8T7qc3k$j(zTV8cd>uc6&k*npS5kKlG)3 zd-23E@S9yX!tlD~6V~b3r`1W~Crr*(g*nG>R*zV=wwzjg{q!iP^uf4Ln3L0&6UW;& zPp*`HIhxUZlD_LCYmWReglplBvj?}xxgOlTbtx<1>giPa9sZ1~bXNhC3|eIOX5HYS z(?V{DsNF9!CSv3)uaaHmzdky85PNH#-B){=l_ax|%|8qkIqRpAaBRgrDHO`)AEwR5 z(r#uN>>>o72g>FjcFbh$CEDTRI)Xnu+597No~Fy>FFdOFXs#ehZ^r5>Ig8LEU!uLx z($Oy+FzXPj^Q|!^KQ{!#npT-`O8G<%?D31gHxFeOA+&S&Pz7m|+HpDpGvN7>T)Tkh zGNed$5u)uHn}3{WT{bVSx@Cy2*rfC*xF5V;d%9f3X@Jc?1aeNqS6AKdKs{jd4`;o{ z9FAV{--Xykh!?}7v9)Pos!9*X&-pm&)mz2Q$vyB^{MwjOTo~67m1DTOX|diX>)_mM z`BA;EFMS@IolN8XCf$d>!Y)EI*rIfoI{YqBA+i=3IyC{GD>{H9KVPWS%56Zkc+Xd< z*wLpap_P<7kC*zS5B)&t_mtVdk2Ew+K=HLh1gO z)xz;7`x>$?J-eWpcJ>3i2$6jB>zB2pqpHj`x-jUh^h7k;bKN;c^Ww+JC|%{iYecn! z%$aAl;@Y#hZ%dl!c~O>cKHZJGsN-G~ev7q`SbP!rnbMFSwD?eTHt0(u+&}nh%kkB~ zZ`3K{AV$~5kKm=gw&iFhESoD)n@~!xV#DJD5h1tWs2UU&4 zi~1&&J3jRqic5=A`dr%(<(2gZpnLK-3fhH)D@~yDVhxQhd$UaYPyB+K&17Xjl3fxl zgLn^_aYiB6_Qv~Wjhs|8Pth|ptv1JWrazeG=S-4Lyde)4T#)lnCQn0caybP`Fx;|& zBMs8&hsApXjO8>!OU@@x%1n0ZfNhk#cP~&PSP)5=TiR5rz!!|n9dcAcGe3#kcSK*=6R_!%x+q_akquiK z$zL@P%EpZum{_A{r_;ikJiU&ec>~j)ugtgv!WFY zP3>(fGti>U^-{Y7ESUb#4%Aghg*~z$_O5GR)n+hQ5maLr`ZZMG7E&=ED2OTeAn@RO zWv{GqXjCibRlZ7w0&bb(MZ0*H_}8n_uH~l^HP41UNEG0fS3mvQ4AUhvOItiw3O3er z;C$#~yUDGf?j19dQ;(sOyyxwXwy-7)`Esatr0^Ryx}IVDl{7gCUmu51%1+UYsSDq0 zRZ#9};Q~1vwz68u(1wc-QMU+P(i&uV!gm8o6=#Htt?U`Phm>d!2M8O#Bks`nbs(G3 z#V(3M4$irtZ&JJV(muluLLLG``eO=XOU``rx+2J;0XkZ-`%Sb{?byka*XpmTEREn_MP zq+6ss6>>R##s_hHY`is_Bt!As0nxI0X-BcoB+mGgBt^5cl}i{YpDJTz-|lK0XpY#F zc{ZqU$}@2A;$vcF+mO_*B<&tLc6kqI>9Avyp?C%Laz3sm_6C>mGcU*C+<9MOGj;8m zfU=3=O8hxIG+g{U3A{>`NDL~I>W(&XOcH!L7y8p!*h>Ai9BU8|4IG&$+aT$n&T1ay#Ujqp1)F4Rlt zmRtM`ZFiLvcvyDi{)Z=DJlsshdT5#U2V7vAa<4y1Dnw!vL*v}~3dO$#?CIPT{Ys$5 zAKnwnziU7c#La5Xat;F_<(5tS%>J#q$uFu?KKkWXrvrgJjL*>X@p{FIR*wl+i&CQ+mJBN*AR1xq8r8>g; zudBz8W-K@N74n}y@)*|`JX^LUBCNL~KJ(M2TJ0qs`@J#{S#=eN0i^TWbrX|ukAf_1 zzWj4$$9tpfe@qz6kx^W)I|&XGtG7FE%EmdY%y?w11k6c(i>|%1XAWZ(Hs*q^!1Z*8 zsvz71j^G)5!6cbFc2Mm+4n)-!zD`8ep{r_^J*w^ogkNm$0zQElc{`*nA=r0@Fm8sqMi_Gsq_As*RmOQHzU9g z8u(^8P*hczzwxdLaF~Rtd;AjWlPWZe4o>6-7m;9kJm`lcB^Et&QZ{@#N*tvMtYBcN z1ZW`L{;HLN?vgQ;6Gh_=_d9=wr_+_w8Z}9~BhzSCjfLqiq3Sr4vWOwqR02-VslnIL zPfwT+;1St$`zjplU?@__Q?Zm};4mJk9*$g~px<=DnyK(jCKdG_Kpk&9d6fnWSm%4? zp{UIjZKj5rB*Lby$>q@5sz3V)!OV-T1F*0TT%_d=6mOJV2mWe?z4`!PY$Fr;lL9Ft zSQcSncd@Wy47`~hZoLEb2n!1cgO(5w_t#?&tD(9Ga&-Z66go7Mfxbt8RZ?J8A+TMh z0!z3{bO1Gp@f*-mA7?~7vzM>Jvfn-na%m+VDn#W3BsLfWl@##jxx|(_bXqMGntX9N zI;qA@Ijt5L{E@`bq%*5|3QC4Y`VngiZzz-k%|!Uq8Dhy)P}B&}XN7L2CJ6@W%o3Gg z*??UZ>f}mt$rUN7K%j_BhUrF^J#t7I?_jBa&DD^PnDp9ojE zgA-0m4M!{xWFb5-lfX1ndF|)?@B%BKh@sjnn4XoocOnGQ9D=|uqa4c9v)quIc+@-| zb!t7*-AgB9EaPIJJwZG3szauKU}iveW>8aRcrt1+E&j&5);R7Gn=DWW@HL!asC;^b zk$j;QBBUuR*e#@f#5_e?E68-;V~j;+xh7lSA1gSU*Q9y$$i7}`b|F(^9+&)~7ABdR zbMY|x{M^0@$}vi|#tKE@gCFdY|6Q+ev$04L#+@HY$@=iJ^S0vo1NE~>qkxC z(F4Nwq{E>FI61wTdtN(F<>6puB)LL7lt91dy%U^Cf;CfM3&0deH6O^w!AZT`S}ah?0kDe| z#5sh!3I|bJI1mKD?_mI~oB{e;Qv%{yqTMi6Ta)3P<=nMipm_ww8rCx&rUm=1ASZI5ovNi~`#UWAqqv$P5J)aI861mT* z0&)x~T-E^y#ES0>Xawc{@xxV&3c$$<_OlFLLrD1fMxBg@Z^Z&mR4DjG9LF_^>gfGE z5>&Ps$S1(6NcX|kAUqXX)_ARhah&(DN^2In$O@K=g9(5)VX$E+84D@nfE*VAIWdZ+ zyup#?z+D=wfk4`;sFF*ALF_yr!xqya&Wr|o zVm()Aod*ERCII)bVDt{S&1%z*I=C|de2LP;r2;xl1XmG&2ps$d4Y*JAtA%4TaWF?3 zxX}?fP2&C$01Qtw!-iobLPPiFpmM$y>=NZ6!W#5|0|H5gQGi?2GYVgg)=zc0L7y)XoZu7O2ho=E&uBVgIDc_4@glg;hG?F8r0 z_P|s?O$^X2JX95-eieY%a6AMjgPXA6t07YQKh>@RuyWj!cZ$FbBCHhO6%^8Cwy36f zqid2Y<~|ixNr(7wSluRc8(e{wh7=M=>>n}vR|&M^K&ks~_6r17z~VknDY>kto{j5u z!-IT9tPp`t>Qz*5!0tYEKH#?y1m@V{P(rbR*dizAj#3T|jvYI8aB_0)+_{sBi;J6^ z8w3J@!C(jk0);|hFc=&TM<5VLBoc)}q0wjn0C;$KczJpG`1ttw`2_?71O)|m?b;EFvNzDk{2r_iiyUF>!J6J$v?GFc=952}wywDJdywY3aRt_sYn~$jZvf$;rvf z%PS}-C@Lx{DJkvSw@+DFdH??XSS(gWMMYIrRZUGzU0waafdd*E8k(A#T3TA#+S)og zI=Z^L2M?JVnc&SWZyrCHZtGNg+I8T}xp&T9b1ps%SKlA57uH-ath-)d{*!-uH~-=K zKM!sE+1mI^$?;=)U156vMq%4xjz9Cl-yG~87%xh_3$yPetYSI z+0@2tZf8F3V77EJpLDIW)5=cwdRq@WOlmK)qmS7&!0aAm_6#w5p8nS(^w zu2_%3o%`KNehWb)FYga}BIa}KWsu6VXNd7Rue>a_beB&b^L^QP<@1LNjW1e0cF-Uz zKY~9{R9jLNouBRYeQ-M?Tz^Z}0+Z%box@%RdGh%9U|rZI&%<}-Eo;kjqm|G5N)jI1 zW|NB~?7W}++E`z@i}K$$F7nwb*X5`NQ-Hk;GU%lNSD_h@d*r(x)(D63+j&ZOTymO? z(WgDCA)VV5DK{A%8F-~Prepj&TBw`<%4AGm^7b8QUfRZCwO&dBqFSqRLzn{~dG<2M zwh+W#2649=Qhz<2Vr3#fbHvhaemc$mTzRpfoj-Fr10N||oar9RUIsawQZAF@TQBTt zd$C7e_Llcc?N50Dey2+F0$1l{F9v^SZ&ut15}eD4U@wEXMP)S26%s{WmSrZ}d6zq< z`UkRs*qd~(^t?y~1^atvwHM0EOl%d@%Ig;vY&P$;vW1|7$IRJ6(1)v@Y$53MNPa6w zQ7JtQ_5VN!8ZoxiTkcY`eDV`zmZ&#UJ_%R(&^7w4UHV+%pj4FlJM7-pfN(~az&W>= zP9e>o{RjB3=ibxYbw0O7mN(c}HE4QH^7{bw;g#=$@A^9#1HwL&s3EQWM=Y`G4}9ab zw87PmdQVoAzGLSg)hpi1MXpzSS{hqc#>m}MgQG%H$9}xbPf$a=M4ewozH&b?i`u?RJ-Ybtbcjo(*>(dz3)P=jw-Z54j*s55xCqxT6(8&ZIbiR;pa;E zRX?H1E7H}k4kVA>fQ83@7PH)+u9pzAU-R<}5}V^b)Q^q5p1-Ej5b~a~zkBgTqHZ^$ za}fL5-L2`fZxr9-#k$PSOs%MTX_r3v$VZ0E3f;Eqhf}Xw z+^W!L$wyA1VQr7}vQuyO$$cO4sAL)5R!iCtx{f|oz5-5o_G;ZnNOg54!?vd4Hdg91 zhp0^aa$t9evmvQJr=EIvyd(5XD4uJtX-&Y-g0PPDGoS;F1}JfaSVtLM1)^ohD^9xu zxdPHxut(c8QSM-?Ug@Et4%u{lQ{2?-azT9(Ks#|!b_tD{0})zAfx|obzAks^`3iN( zgFhKkgpqQIbtaf9+Xh1S@VrC?(sl}WWU-HNt$oM+P#q{J! za>`#$8zS~9^nF5JZd}eQ+;s2JvJuih8W4VaUEL#fc1P?SvmlQHIVYK?j>_*x@x8{9 z3=cRI6Bv9xKSJn6%ys1DfRnqQks=QVm&C+-UoAX#wMTPOCEkTYN~l}QM0?f%ZR-nmQO>}R3VZGz&96W1 z`j4xnpP0cMAcVfC0+CC3#fjxWf)ykxRK&49U48cx~qg0Z(8;V1eUYVQRY83;j6H_+VLYEN+g*i=+hjgb;+ zdt@w+QUY7ct?v=;6ty1+J^STL2cF+QJ*Ue$9&tUav&gDzpkP+;a$o1oRGM?_@kg@f zcT07OW?T}7HLLOjcQ>uqamQZYU2(Ym(L?To3~4QcIv4eE#UCNcOGYZjGMd^}AJ@At zU2_35y(NQ%-x_UZwyC1iG2`|t+Dyb7tbEac1)vD9y{U*Uv;zB=A#2Yk$5(p~Z{c-i!Og8$V6(#uv39H%_z z&ADM>U$c(r-?vT*iJDzJl7y!h2vUXKrD%>M#x)-wtCqQ% zCn6tz0w3lQN99roxEyzyQVQ8`%m$Hw8KKpq9B!7YgOXOa`6R!dufq#&>)DT)Cy3#VP5kg zc(A{2nc;1)IcAi!`eTUq9wACMv1Y`Vxbs8biF}e5laYVyoeS-yskT*U+Zm^ksdHhy z?LNVA_<(S6cj-~SWM)#+OqV%}duia}2g(tugVYa#v+PU6RrQEM@p4>Ur+Pa)cyaLP ze7yMas_9Rm7W!_DbL++(!?5qa3>(fIIiV4-^w7eoQ{;>d>CJW5z1Ka%Fp`Bqog(em z;u|}?x|SoJEQ^;sal0_t!SS6qjdQG-JoIh{vM*3_hJluU~ zEy~__?!YE5I%wRGU)a$|-aqu@G+6(~@j@NmyJ-o=MqBfvuXw%%?^iwPds}L~IZ{tX zJ85?F-B0^4{o2FV4t60_S8hp!qRw<%>}>a^Qt+>2RqJU1;u5GSEQ$dNaj88Xg@=-@ z*pvvyBYRn>@YL7tt5Opv+iUQ88vGUJI&w~Wl5nkHSEw)_Lb52ddIZHTJF=^dMHpBa z1=fa#ef@+5O`s+@f@)9je#LkRjl$MsfzeFpMa>|gI>>>d@CRY2A9%bc5b4?n$^;OF z1PH{yYlw8igpcp56-=EE#%~&NOfo=yD!7hu*eOflHGoJXfL(>6UFGgTY7B=sR5v~Q zj$VYoO{82p#-yXmAn_CkTX{(ffW($UlIo*MQ;-+yA;FmF0xj4N7hoBGd>MOOCmCsf z1-a`wKq`dWnv5MW20t{Azxs%LQym~^@F`Y2L)8n z2uj4b#S)Nxw74=G^vMPYO)frk4xWYsN-${4NfbSbZyBp+q6WWW52Rz^g(Of|87Kh@ zkBvwuwLw|2pOqE(gHUu53C2Z^JSNG$Jr>_G9zOpf5o8T(v4R)Splm2t2_O(LNg3bq z!kv)s>q#ziQJmHxwv)&`SNWcYA82IU2G>A~LttfAFmlLda+xHm7o!@Bg@_ABmV`KL z;ce^;5j1zcA!_XLsaVx=rRE0Ja4J}P9?I#3_=uBXgz$a0y8hEMCUYEHN{TuXs5JIU zEtHnf5ddwqLR-hkX&Ru(BuEhZ9XbviON7LdpeM%D+j+h8PsCiOg2J*u7jdweA`49e zL^dYc#|n1ME3;h^5k8g`HVt9BKj9=u0v(cM1vePxtH8qzgkXhuID?$k-w}#0gp`y+ zI78u^m@I7`DEn=037eH-at0+sK`AHu$>Ml zmMS1Zmg%(TXX{|s$b6|}ks$2uH{_q+$r$tfk~#&;s$?0Fg5}f#afM?_vE=TR0@2tE zRdbb2heEBK!m#$hC>*Q;!_LC;aM;O-YJFzPsNpZR4C^Y;4xP4APSJjfLvsi%#LuM zA%UoL2yzLUM=IT%>nP2qWco5h9%TV}9MX5pm2a4Xt0|z1uR#rS8Sk@7c21Ng!OG8& z;29WD1`p`Q8*X<7=u!wM!yLpp%$*Yg%~RNyM}?P?*cHzr=rFfOneZtq(8YyJPZHRb z&V3^Y%qd*?ToV0?1Sb=rm^t{}5FiiFt`v)a$RIx&=mM_lESCom{}3I%!mLU1NJQkog#3<-ahEFLEi;T<3dvL*s4BtcW%46j0SB18t%E#E}ZI_7V0V)||pqJgE1# zXt1fs$o^nOD*MG2#0|SF>=pvLc9;E1<32-g&80w#L_orCxm^j|7ct<9;MTdjt#y;o zVyg<|4(=(@95M+E`P^FZ7JA*P7OV>@u!8s8RRLKjuDsSwH114>6_Y@&IKYbrD#3Mn(&4VBsH#5|@(5612Z(G2 zWYbQLc|-F!;3AQbiy@#Y(nT{1MNbl3V|Q5^V^8)qSOpPQLb60oL7Z>2o>}a^No__h zLCT3`kmU11;gBE(d}FoeY&>Z5UO$iuoIOi#h1RGh;1S^Y-df&BXLH!~5WocwYu`S$ zNJS*8loFET^%N3YG8x&>OZ1kD6!20x#1#X+NCPLn>3 zf?n?4S5E=ahN`=UN;`O-4fDcg-aP|VJ{z;C_`cZ2@ZGoU^n5+{IjiOQ&v(x^e?I3B zqjBofxX#c(H))VO8te%T@t%hIMFYf!dG&|+&kPG5(`Y4uMV<`rem^Y!YZxOoA}*G; zt6F-4Fd~i+A$LH-)WGP9#R;rft{y{%ZF9uJt8nZ_oW^-rJVp*xfxg3M7^NPhpe6e}_#8 zi>sMs+nyYgEy+>pnRU%fHXnRUWwmrL*`8c`&o%_?8Cqwj_vw1yv+eXh|F1JZTmL76 z!|Uuk9c4ZrV-3GzjgGT%A#3~{>&-{jTRQ9g#P3Y9K1^=6|L8MJHagrE>Ha~7|MdRY z7k_(of6Td0U;b48{_^C0t8&cwugnE@ej9SXJAlkD-I5FGhm0m0)b{{;|4ew8wRv@mef`hOU5%D#4$+f%{YhMdL)wVJ=Cg5NiG+?f4m zD)?+;=J|>CKS1#E(@q@;-F%Ct+L^()y=v+m*~`>t`Lf(n?? zH?N(SNf^4i$OeMW&rb#$*l%gc>dFvL-H;k_%{%{mdn#C>DGJy(xPI=AQvV{D9){4E zqZ@GET752^K}>~R$|b8jlYt%Fo(gu|B@tO8R5v8GCT!iKGH?ep94*nq27-z0kkg9O z?>0Jd7RLo(g`+EhV$Fnl}lTF(eshY#_MZ5H#eTioEMP8LzPAL{8LkIOio! zu+3lt!PD*0FeTptNurQ%4>V4M*EnW2FJN{)IWKr&p4||P?K*!X9OOMmzAYFlS`e?X zP-YP8%|Bn5X2+T+5_0io1Htd5@@Z@!xInyTcXFYutVH2$xmZPWxz^^FmgPj<&y54( zmDk?9Dc7yhI5DKyFMT*k=hK`*!Py?WAe3H@Z*5;4%`(hfcSYJ!?7sWyw{x1)?wns5 zJ~mG#)_1#XNH#^^8bvfN9`uQk*DeUY+k_hsoztFv`1bzZxZIA!Cy$0d6R8}P;G_mt z*x)zG-grlXHJiH;ax%WhXOT{z8o!!#&rXoOGYL{`}GrCpSgu%Zi964l2Es zd8Ye+QTN_KP4$i1E(#=BX)HjbDTbm{H3&#mgD6E10$4x=X(ClADghBg?+|(wLy-=K zCLp~?FF{cO5u>1>QbJJ>5WfY_^S=B2b~$H%XU@zyd*=5?jEsN4!pXYVeP7ohX>^Iy zzD{rcKFYUiH&pwEy^mEU%Y1dep~f4(GL+X~96_gN>2<5=89!SgT)rGRs``{LH($Nz z&~NhQ59RRj8}nk5KSU(1iVTigi=tK|zUR*=^rQrwSlzO)No!EFUeR+?tfXyjD1LA| zfX!0LM{haFRY?h%e2DcY>8nO%Tai9LG#sc6{z}{ZqqTp}hUdM|#}ic5TtxrEv9I}2 zUIsqBSU%;vVJARtY-A#7x>0UqKsG@v0;y02f5^-1VV#Lm?aB884m#c3tt*$Nc-!XN z*q=^EwPlK^fy(TeiQhjfA3xpt+V^x}YhteHXw#d;!P`v(KR%oqRoq;D+VpySupc_~5X**U73WiLA<+E1Q>ZZ6ky*(y(Mk+DjaJ(*Hy_Ue6O9`?{5ysY9X&~qEGFvK}mY2Ln2*N%GLo~gSoT%h8PjO|T z=S{PAW!5B!uMY(K#(YxD@8XdzoDcLf72&O$QJ)Jn^gF&!l>gQ0$-}msfezP1QSb9! zNUpO7x#}77KQ+-(orocO&W7=FywxJWxX$};UKQT(&^|N27#?n8Bib9^ReRPbHZI5L z;NU$SJzJx5X?w1UpZKL?bYjUpd&OGPe$Tm*CvM?IVn)(MKYL7img3Wko*WL8*Uf#x zB}sGZEPk^q%1j@dR6CnvXmd8omamPc%OXfE<7VGzf7$))l~C0$yHMvVd-v2+FDfJj z_t_kIDL%zGyNFK&ZY1AMKPGeY^N~?*$M#moo-GPYZTh9|<-O(NQ#I3L@tM^R{GL4C zx+7{Z-V$D=?#RC&pU?d{^ql0njnMZy`I46o4TY8)`e?|8$;ha`j7?q1k+`9$#c|G1 z`%{_t0y9@5vkDnidLjBi!vXGS5$xT*m8%Kl&hzY}FI}Hmo1F@LquMSzEVZ{Pb+4{e zWj^Ont_pi*oVS*A&bo}vh1Z31o`tgSebJ>y{0c21k(VC8qf8nmi^NQ|=rx7d+}t0M zjtP%cyDTG2`abbZb(!ll3v-n2oh!Y>_5D{(#}Sh~@nXes4$@9xCQqh*xG!{>)tLy7 z#NaO!_K_WLM7oXkRJHN&aceGFeZmGPU*L(~zjfH?T#=H?6v{e**s1p>GvcvPc5*q! zQGfqPRCo$Ht8Q*?j4p8Pqq&^l0w~cDA0wBd-FEAAc925qyFFt<^ZP6EM~@XsbGyl8 z-{muAcdxD6v#{m7zcb(Tt5Z3)yi_E6u=R{|@<%MAyt*OGIm1BqQfB(_<>X-kOktRl z!*#2=Zr3Gq)tq;wR_)IYeKH9Snps*?X*{yO0#!|}k zq23lM^15r7A?a6dAtg}l%>B<_Zqy!~4|%bb^tSJdReW~eg6gtaYbNseyI;Nav=04` z`_z=*zSw`av4ZNU9woA5de0|AS7lgcMzfAPJowACtjU+JG_R`g%-3Y1R`=Qe&=WW^ zMGAa!c<$o)SL_jw^at}^a77=9zCwR$5?o*~(stp1V@;KE=P~p5cE%BtPh89LOP+qV zZZFQ}ufHX))-3y-HtaewY^q=~CLCddN)`CTa@=GKaQ>vdAw5S3s#>^q+4=s#*!MyM z)eYrX`-pb~ix&4PJVWO13>J-O@6vj3Gted~#9Cm%TuuttI65RT|5ljbf>4!$KDi#4_I-qWk3)lwbX zAN^QqO0^(OPZow+x^zZ}?{=Vy()?`dyK!r!!BF{l=}P0`agomwn$1sQ<~#+{Gqki+ zN=N(eJRg| zM4N2t?8l=xNwedbuk%S7RxRNd#@`Q=P=ZEF1~@V6kK%bv>ljxPS5j*<_>A_y2YI}u^j)1|y!&7}?V)=4DZd!c6vG1}jIg8lz>|-WcY}$I|!U=AyZ(a2YY;L6@6t}Ocb)gWRQ$q5_SH8akOhbq7{7LFgmpr4D6Jc)dR#ZN89zg(QN^^5=d+Xtqu7c^?X zd@5GU4y1s9?uf4?0Z@|g6HR_lr5SjthPz6Ra~h8^%?C@Gu^2nBoi}Lz3|z5>n@9>0 zDD!Y2?UUf+hWpE+)h}+{H38$OFcOLE#Rzby_J4IVCMGt|^z@d-qJ|^G;lhEWD;paCw8H&ccEzv2t{$Wb+{A8a8wBTaCz<5$< znMAlhANMzcrMWwxv5I-F4N?d|!w9<-AxJPr6Db=JYZ9>~8@_i4n_6{zo_Kdq8-zv! z4IwZIu890Z@OK4vfsXCZvm8K#kI&#H>^P_JNcvLfp=ES=$EnXsAcX;Mu#21>iGsJB zB1|H4$v`d*+0DSRdPc92BII^)6w#pcOg4!i&2}aXnp3&ZLuNf9Z{~mvtA{fP97{hv z_SSCUevvr85iuF`m{}v>$fdi#MPu1N!VlI4JZO%Q&^d#S!6(u#;Q8ZNj>Yk`ocd0{ ziX|aAYJvP_-avJ9+iccoW?oKk|(|N1q69erhyFllI(qXF{{`Scvzhq8V zop6Bb#6gY+XHi`Qj+51t1qtbSoO`=niickcn3I%L#C)e>dx)q~ z2$f8bd0LQqu{D(=Gex8fJ4lutc?Oo_ygwX6_K`8IDH42=+?O)BL^H7xTY*NJ+2A{S z;FZp!RBd-~gfqfe?kU|Awkz!8S8)h6Jk7=x@LA>dtBlO046I>>py4&5|Fxgpl53;j zdI9GUyF%uV$1GPK9cyvMEn+KK6o&9A2&oJLg7*X;1oXXhx(%&!JTsb$%1lWVRp&VE zZX$F=5+{&_l;oPjS@CJ0oISH5VzZSTB;gnVw|upi!vjZav~9S zex_u0cgem*ERCgNHoidqo#cmm=rl5{GY@7BvJ+Wg?D^#%tdO!^oc7k09jpa9b&?-C zU^E7sjWoLz3*4H(o;Si?x-Jv?mb0t7%3r18x~}B+XTSr(GcQ4yLvx538OC3SD6+^A zfxRHa+g9z1RWGay>gMqXsJ~MQI&1eIYgc=dqoYRvgPm2lx8;(UP zx|Ddcn2zjjMlvM1Zn_{lw(!V&7a*VMRZ6bhZ-|);lPx1)I>YPRs<1!lGFJ9v8yBFP zispzZOJIQkpFkrbkWB%Sad+z!Foo2k$pqqO$HqY(><|S=#MjE%!Lq3bP`*9`{D3_H z)(ygl^gW*#*kKn`J_AT`Nq9xYmZ~;;?N<9pLpxam^&`GFa0qui(jXT6x>^)Y0IYEs zD}0&0tlVU?^ejGCtiHx+_}07?;FIQK*$lf!XScZu=YzDH2j5KorN*HLU!JLXi<eHwC3oZa4n46}qkW%ilm z@*b({ji$ovUCNt_t2N0;s3hBhu1%pu1zm%EQH#BnHSn-!fJW;*qXS-MusxDxub|iI zQwH_%Fs3YMOzG=U11~U;5bJO0l_C$HLU9ZK1L*0D1x%B{mOHz}mO&6_Yw7%Y88l{c z+-e<~f2COeL+1J@sA&NtyFiz*pu}&s6+_U08Zc8m#460LiAP-~y!x)8ykY?@%;6lC zP@E0Bz#=F<2UAq;)!YxW$AeB5KKT?tzvN^*)IUaY-l73FK>>XNkY@pYj_^65dgu?G z{gw-?7(aZow#Qy!fh~&k5>>V^gGYhy8iru@ez4?((7fVz7`6%laHHN339uOw*@-gn@$ke~?)ZjH zST_+>Y=LYi97 z6%M;h1`-Ic4g#tZDtb}?7aXY1^2vxrXt!*YEfJPMcp{_Ui;H%bCoLf`2c1`(tD3*`)Fe9G1<1d+7rC z7U(~;&wq$8tIf|_?6R<%EO4Vs0KBHcjvC-Y`{ER37wYfR39?h}1I0K@U=+-S2s6U7 zUm$}oiNz%#N*YZgHp6_-DE*9?MpiX5CZdGcXJr9&(vX(45j!#rQwGojka;dZF0mlX z_8U=%pREi?W*M+a13D;xQ}Z;|63Aou*yjN>ma5HJ1E5)-p$mZBH)k5*7^OdJQ#5xV z{!}}5Ui89~sf?n>_vas5&wqw_X%@D6#Lu;)T>jT=e{L zRh1=!!%K%2<|Q64Et)UMaEwU*Sy~lZKK69s$o1t$Ycz?rtoC8~QlK`Mr(v475|lR{|V9itFHUk zW*y4$w+VXxDC+(l<5-jVK=t`}}g_clr@ zHcBfuXwSCUc@Q|SreTMg*Rn0$YkslO+PTfn`>S{hb#MPVPy-j@==BY)L)-MBH`@d~ zC{G_A*?c{^`DSeUjJ(@~s<_+1I+UkRu7BLg)3+n_nVot1KU4L8BpGB?)z2V5`g$CcrKKQ2Gq=fV8cXgvL_^sg?h zZcfKTP>6N6C!1HGf&O9LWF)do%=l5TfK3FcWo-~_~3^o=3Bzee#C`7!YJ7G!50y9 z*5JnK>mZC3peX^~?!914-}gdE^kdMzi509o=1_GnX}{1&kM!*DY5Klo8nHwgm^z zF!9+__RlCapIypV-sr0R>09hM*36>#CCx=Zt3N6CYpiv8ZHa$x##{Q5fmrZdt++R7 zuS1T?GTn1j&Pt#sRi^%oR5&5#jDzIS0F^??2xec_jKnOx>T7;ZV$X=`sKl6Vb}rPV zE!wg#oBWzI5rW)?>#fJ1EG_;7!S!|*JuZdDbX80|FCb{vKKq7FNc2lMpqHk z+_vl)O<`3>X5DmUp3N+wRhc7WbI)gcJO=8R$JyVi&NZ_pJ)iqhbkvpk^W8!t3*4!= ziLI$9c6(gz(89jq9tDld(c*2GCTYmB*Q@RNV((4JvIoDVM{8U3gDiUkp=wJ_5|Cxj zQEEfit^4R(CpjD0-r0qIwbgW!f!_n;WrJsU`}fkB$ltUfJ;n2TU&0n`BjFzV>q>W&Qg`tFeLVD59fJ;cXXd^mp2-&|$R| zgte~o(={%GXN}_5ostqt+z#Lun5CO5r9H;IHwHf3M5?_fE;JM@HCtWziFqdadv&G_ z82m9QU2tWc*))34c}md^wX`^GFy*)MumH2Qj=}{)N!Qr$Q}uEdDhqE2j?~pkzLN@X z)yR^9mxx^GA5Am>Wi%p zxcTz%9=kT7pfCHk-iBmGUi#c7Qr@v&y)QF1phZelB}T5>C@V5+wO#5SOsJ7!=` zM%qhOc79F&PkejJ(NtI2PJZhUbKf+%=bRC_N|CTQ4UACZVw96BTy4rO`(`>vG}%U1 zacrm&c0yFpS1;!*GLhSZZcWNgp1fhM9(hV?DHh3Tsy~s5G1cbU+fNDJFRRnz%YqSK zY1NYR$wZlsXYsa@b$NAlbbSeP63h@S)l1cNSJq$RE?*rx8ax_rfsIV=noX6BPU*89 zuu18=lPhobDca%6a_UH*twLV+`6Pnet@mhg?M6V~HPu~oN@iO5t!d01&A3O*;xyGs zox#u=hniJpU7Tm3*r>R|#`X-Mz>7 z>ap@XFZW=Xf|(}8_ zIM#fUZ*kcwva8<9dvEv_exz%^nq6{?hlyy_eP_`NDbsl+h{XNAL!blIv^7x|5T)E1fgX*p4sU^EgCq=D(oz_ zJAza%C(>o2DYK<^+04R!AjD@s(m*c8Y&K;Oquei3+#Y^OhL7*=uv@MUTti>iX74QC z;dHYc%A!(3=pCt3?c0-Y7b{d=BxZ&@vT67P`)$3yVMSqc!WVN{*CwF-NJwma$tf`v zRgpHbRwewjxWn|(u%yhcTh+g#4Lk*XOyv8|SbfAM9&R6>)_m+Se3;YT?*2R8D3A4* ze6t~7V(yEe>c)mu>;WyYUKYi!KrLD3!dKaGjslxj_N+)_lkv{?w`x|07o&U>0|Z8J zBkEhTJRIjuM7YxkXRC5cTo;tNc+uCjWxx!keOaqOWS8f_Vc9SvTK(q__q7ylV<;xt zqC#_fJ=N(BDV7&bPb(j-9@Jo4S+P$P>SyUVVw)L$-A3>T%Rz0`R8{2luHD}vLG8gv zv%71LG>!#fCu`bHf+YDi`LY@Iu~+&)#ANNi4RPiJQi zjy5B5B1&B6ragbag?h*~jwHF=$;Thv1jk)a3}5s(G1!t@?-t3QRb6#S0lAfn3%Y{{ zIjX@iV-z6S#p!IfZvj%;v0!F#9ADZ(EUb~G4Ad}9HE!)Vj|un%UJLY4I4w^G+{NWR8mYdgc^^?W+mhsvR^=cc)3z|1L^o)4`e0{2q7VJ z8JLbW|D5EA&YB2IV<3inFU|s}W7yF`I1Ssv$MO}5@u*rVs+x)1ZRx2Zjv2C!oT>@` zLW)8z`z#TyILc5h40JsOMae?-y4-^xc!|xC#A?*xHyBTo=n`sCu`M7fmX64$Y@JH_eDb*hNM&PKWoM^7` zNMNA$cY`ZTWE#ueg8-CSA-tK1^)5&))7T;$nq3}gWEHq4CgDj%!Pf7xTI08DcETk?k;scN|%dJyHM#3`PH$3BeOu>8$6uCJ$k^xU6 z0I?R2Z<_+oai9;GqRfjvU0}Fdg*s@&F> zF2SQ3Y3SWU$eQMy2!0@ufKa{yG`l?UdgZ{`0xx3RtzaO_sOWw?DvgTr!6D>R5y4cz z7ksicTnjv76peo#3Rbd)OHocX^`XS64=lTuXhE=7N9p7-A+d(eT4^uh29_{ zm7bSLHhtGq!o=gSzCaZd=FWnMwCoyQc*uhA1v6i%6jl>3z7*Q{`n|m`!6Nz=^0o^ij^!Y$aPc1oJdq0h z(2%WkXt56H)B<@FR0|ymVI?G_6`3!w(sf`a3o4ihw8(K$Q`k*KB4*_K_U1RGmPy(V~6405= zz@0jPhJ&CE$T$WndV?dMAs$BocJD%X)3={XJ)l)<@k907r_|o#xgU|`AnGjzxDJeh(QO2Xdyg`v;G1+^(iVj3F;h{`yA`4<3S>(+ud$s{fC!kcr zQDZ=b{V_yrLA5`vG+GBWhHrLyg-Ai6dzi=rsA~IT@CSHs^V_qQ=jcskc=WGC9}tnO zTJrrHT1uqVZW-P{2cU;TzmfZH>w=q72tNucUlr~jR_g~AKKRzM`nk=y4PK8!>3)Nk zIf5^HfL4nXKNf^PrFP?c)4{JuVW$@ftmsk-;)Yt%ZDmC2)!0^iv6G(iG6;MZD4gh} zLiK=5Pd()Z7fhmOiZ>Lu3!)Q zG1AhxexB%Vd^yO(EYZv=$MR;Gjbr`ITkZC){f>8ro$rm^CVg`8`s#Xr!OeTw_5M%S z`)e*<(AiGH{$o7$-+5=71ql%$|I4!m{gpFm4N_V_nH)rugy!^i?%To(D75>FLHVyE z{J(O(?P~50o)Y>R=!^eu=R#5pD6aGV1x@b%&4m&2iyXEc*FmjX2rl_w)oA}I!uZ$r z>|d|9nUXt6-uBr3U(U8EW2aC1w<+TvtVzg}5&vjC;n8~15*{zHL~f`0FR{>ynaBb|v4Cf@B%XAN!~p z;REUVf}dZl2Su5`j~Of5k!5UGVMm8ezEAY0+0}e#=1t7@@>-zXYuMh#*Vo!H=$WGE z;HOGA%zmctY~xp-47F|jIhh=l@}q%P_-JFGv0-DCc`)qpZ7`#J+0oKWnt!_r%W_2V z1DXAW9NNdBB@6Ag3#!8Ug98eT0JhO!#zmS<+x394#gCc6tPc<(!D5Ms*8vjP3lo8t zTC5@+4jswsl9E5!8cc|w*MvpN{+!9aEy1NkJSlVOMX%Z^shbhU^o*862>tj1^zjHW z`_Bn7>^hl*`I#41*G=XR^$~hyM2WJj=iT*^ot}lpBwpRp&{va5{S=+{+%q{sj(yQJ zB83E#nmO%)lq4#*U(4^i;U9Dlb@UzcG&zK$PrS z$Q2ojMsKAEwLi=<)UnnOrMc=uLW28GPc>T`D7=-3>sMG_V?Sash7dif@O-l^Ky9f@ zdO>92Cn~e1Me>fm%3Ka>cGJDlPra?r5Mmvz;6^N>b8aAU44t4xL~!o zoBp9to+pu3Y2PDLJ$vkoOCtn}lt=Bc=~tRgKbEJm`u`Lb`4h_X=6=3&>4fsUJ8zv= zp*#R-|3fMBTv5eIF(<_{={GJ=Vea+sMVQZ{-{%~&*fBpUHoWd zu)eZ^*tc<&3uwAHuXp{=9}Yk4)}eT;{p_Gr7a7jNJ3^g7yAb9`6T40sqOZ#`{T6{i z)@knO#q%zFbg$U{VP|(1pK!%l zrT5l*H`=r&JGwfW;th2<13t*gjC82Hfl#igoxar0@L!{g(OiC3ncqGh+*>7bfUIY8 zjfoJiq}lO~8|R4iwrVTYvhtTSN6X$(?A8xEOObYjpA7Rw^$c6_tr0WCFMs7Bb~xd_ z#A+Rjkd3g|qru2 z5Slt777n|f(tpeEh40&yT&1R8f=6IZ=`*wElqcf{?iF%-&qw5`P3sJLjV))aZT01y zT z@FTwiEL81u4bN7o%6l;qWYlRNoqO^};R~e?7wSxhi@Xx}rQUy&d;jru`Pip0tMk`C z?G09mqq6edIP7?=Qu0yd@sj-u&7Jb;mJ!x!ll;F(S|-YV(T_TQ6t=i%nUHMXX8X?b z1=jaSkTWB^DiuTrl!`B37B2BP_N+`px>N3!YlfMUMgpI`mc0D;i*DuIl?3-Kt&&nV zu!v8C#2*?gYjXdhllQ@N+V2$AfXux?-mQFL{fCc{Hiq}EFWI*I;Lo!APMO3eip)`A z?vDg?N?qihE4d5Z6&8u?)o&Mgr|?b22X&44rdTMar02|fGUr-uQeKZNAH#opRa2VTa2f;|$vOzc2~3%^SjG$G7d#F-IMBxk?e&FtvUD$ZhLv;w}zp zgDJkQnn0=gbrhfA6ZwmV_9 zdpiv*a(ecEJu5qI$>B7WAh{R0e1%@d(3vjoOl<5@82D%#!5ER8me9(0TYkcrqRAl3SuQc84Zdd>jCt#L&6>ZD_UpuWOw@BOq|yvw(%eSB;R6~iBxdi~>Ao*E zX4v|ftoZs8`UQBWK3ky0NK+v<6WOEP5IUm`>jA7H%*dWI*E>I+&<+O=h3uZQKai;s z5(geie^Bq*WHFLZ3~EMX)p&L?RIjyo1a|Fa`d+u-INJbv^0n>dHt_x}lXEkWFFSWe z36?6>)NIxKY5DPGge;=%7rW8PCHC6-R^6v>rqxx1yXiNII$wBA^k?%lAFm;NE4x$p zcEa7f@As7;PM4*S05Rrf!*mbl^{X+SIOP}X_;^lCORDLwXjHITz}9shW4r9`&%_|< z&G%u}0m(l{7Oph~UynMJogM%DPp9-Vb?i#s2Uq3KMfivqw3SfKJ|^$OKMds8XI`rw zN>pRxw+F#*E(hLdLUv5slOE*WZ0zJJnN9s6x3+J61u6eBXi??6Pg|8qLz6tf7tQx! zN`8gh9K>p{h3a>t(=V9Y;eZk-S>q=^qx|WvAG=;z6&uIlj@*!I#io zAcsJ1P~R)8!bOfby3L&(Sw{P-JK@>4eP)zBU!x(l!In=TW|eNn<;s)G0{Ckyu3K<4 zSp-}fx*P3+ddWm_4tYPu0Z};iEWS_|jSH0H(DD+IB@tFnKy#E~E@vVmX<^Y!RH=3t zL?*0cdM;Ln8Bw7i0Q|}lelZi7DG}BJqG?pvU2?d+HAnw$6sj!jIpsQX7uOd(LCr|R(fmsN2i5s{Ia?H)3o>?Fx=#g!>sGlPdQxeCgsn}@}7|KM# zZNaBR^sRi)HUgyv$KLG{{WCe*iq(?K5MGCiWZQ*qp&){YV3@^~%4Q1YE9JUBM-iU$ zE(lnkJ`{?Nf)7D*2$)boEUtS?LHac3U5m&+G_*f13TcQAW5&vkDlkC`w=bffj`+iZ zmMn-v8b%BKio3?mk){~m*(}!X5{(i@)zjnk3lt>I#8H~jbuMTq9y|iX0fuP5X3Et9 zg+c|+!E#hP6E#RfgbPGX~r7+v4-$=77>3c!V8CNVhTg7gF7rhG=uGq1vp)cH)=*G0~wD-v4#a8 zg`C>K5C20!yk8Oyp&~+Y@HGj=Hb&6arWU%D1yzSf-I4-bTrhqF zxTqD_3IauT@lS{HE-!mF;-G&5ia{a5%ac14L>mQww;bAe!>(U+>E$OO!_UwUPvg}byYzh2hc!N3@!!Xis&Lf4YPo?1V(UPRcK~Hnh#Vh4I=)sm===3R&s_5OIC$F;x-tyJo2=IC0ATk0V;upGE3No z5N$Ll-bJ;6aB6;7mPuk%Gusdn_4`+afi?6bBjpdF@(&LFuo+$h{aVVRtH_Aog;Yr3 zGIS1o(y_{*4dvg>7PhU!NeLi4seg`2w*!ZpBOBLJ@6r(tbz$vv=UW@{kwmID0j`I8 zbcX4eF)Xfs4SX+xiAsu2{oneH3rM55S)mR8zRaDaqM}OHw{tg02W%H zo4}GF3Xp}!50ZX<-W}0l@qD(MErN;&CsV^2mQ_6H$`xb^6+vS`>l&f^v+DFkk@bu^ zk+(~5e;nM33JV}y0~Ub>96GfcGehKXOTO^(oqQz~^+s9**;90fi7KOlmxfS_Ec?8Y z8?}s4D`Sm9ehm-l+0FPSjBv>Mefbm`>c?2)u1(l(834Yipyz`Av0fsQ1%GIf;>w8a z16wSXQ5uddJbKB|-`NbP$V1;-%-Rrb#1@|P7K$T6kBY9QwqCD*K)bDcGEpuTh!z&~ zarAK-8Ff@9$`8lhLUvW(R2XbUsLDiTQP70?cFPI`lwnUI(U9il{ka!5?uf@Aiuc(0IKd-sb-J}*4UZ#@0Jko=f;AO3K?zk1tq&DmpZJN?=jnnSr7 zlw(1j6t93^4|Y0dJ8;PVEx!7XN!7o52THA=@%LXRJmD8~pvWpB5lXGrB9qplc20Ei z+TWH}Nc5Vr9+SEryK~}F*W=PQpaYfF;?uWJ!lR8u=w$4~T06;BO6E?um9?I}lW%3@ zZdchd^VhQqwhL`JMcaio2rQZZbVmleEm(ork~a=akR-p8& zxpTc`=d|}gV%UwY{*CUzjb8e85(X98pf=l^cRMgi#s)ME-x-Dff=1yVzpQIpZM#vngRZ}2DC>~@^)C|&6mdZZ@}aD*{f5qeFWk!R z^j(~Joz1)OpM+cIqrWp6CaVv>D|ddk_QKtx;-4ni?XsG5=~do^Yj|yw3OA{HgV+D1 ztac->N7WWD{l?)deJ9-7E~|}QaFnsUWc+&K>;AvNkK&Jz(Iuygb8+XT3u>U9ce0%0 zp}w_i8rm_!i|_v0c^hY^r^+R_(R(F|c6Q$H5>2ChB6*TdjBlG@^}Qv(limph1<6O* zElzKnV2{KoG&q43iT+v*b*l>u*R6`uY8llx&gE^;&bzU}{CoES+Y{m=+u+A##S=mw zEZ=-tXP01**-CQ-#h27S^{TPkLfm$6FPpF*=91mV^TjR3=-U*6#$X^WNJ7N7xYnKH zcEOa~jtN%C@q&6AXh)$=e~MK4g4h@Fl~@7VjSc5bLg2>~{)h$b$;(m`2>TqfzD+q@ z^>H=(CsFv0w!vdHU=B`R$~-j5dbin^NjXp=e5d&57SO!6w@lLObt!-@fMUm{4*OArne| zZsE7W;+?V@WJ39W#RRJ=t+q5Q$E7xxFMYdkvAM!P@%=T?{^K8~L=C)_VdIi&KWwZc z#Bbf;(Uado&eC!h$jiE|do$JTM)8wwHc zN$`{JNrNkquaD{@OV`}rT(md5)WOoYHq~;2FX|&j##sDw`hwC$RZ+!A9>t|Qx7MBU z1CwLpb&uwsJDBP(D~YwNY_88eX$cvW%+hefj@H1N_+!UHZlRg2;?exEZP%QElRa8Z zY7wg=S#n~F#iGA|CX^|2;FnBA43x){9`mIwo>9)0U9-ErwGmY2seiIFB$kM8YJ2){ z6aQ>d|Ky~0hiuRy%38)>aDzIywYQ6(!09BkOo19O!W^qmxV5lr4;A0l(qc#V+mFsf zXlb`{r7{B~Ai4VGuGYQJnSuC-O!Q6dHi0o_kWybJ)}yOUXq_3nMSwme25YyA2rPzZ z>t%5zb+sQ-Sqvrq*Ctr)j$^5d5tbKXChLVM&oW~IW{-79;MF@-#!mD9A&&|2lcKGM z7o*AX?}e1L_Yefiqv*^&94{$LLxqd`kM_7oZ*YXx$#PPh6TjM-r6UPlZL!gt@Reh~ zXzIVR1;=Tc3N=HRhwa&S4#~nK4s|Un~+z%_Q@|wy&6~g6TkUs zDc^|qjSn1?Q|s| zJ$O&2axXi_Ev|n4ms{}&H4M<}8H5rVHxVDIi5UzgSwAMPOxMh3qQXZ$De|k^?Z2K$ zcj<1kj;_#D-*1HqJ^eD0=kpu25MNF!ZGDmP#hFvBrrer=l^3=^yOAp%oS~`15=^M=?0{VL-hv>?sGT}I)3tOAcDauw;W+#clYG$>3r9qf^;vJDV$ZU|9uXbIKg zniMn(>{gW#e&x&NpNE^0&Mkbt$HH!sAHE@a_K&MkO0)Go(m{meQrYEhb7a1NaG@5J zlfyfNHSveVmgM;v^+-Bb&OXD)VtdId>{FY71J6(N-E~r>+^-a^se3f6ExV-HS1&4L zD%&M9FPkuBD<$MprLC}T&riZvl>H%TUMNW`xI3P$%TvaFS8ft}fAa>eJs((FY1=6I#y)@bk#@t1ih#-yheAWqr2iB7IMcb+dJ2vhtMx z{dk&I zI&bUEGj-@XOsJ;CWht(Ms$S+y!tK+9T~(L;LkCHYe<62AJB6Ii z&7gLuMmaj%X|WctJghBG{bI&Mp4s!6dbecoAjd5tEB~o`N$L|VdVwUX7j62y{ogV> zNj7b7*>yT1vwzb__0NUBg2$^_VbOIeVuC9YKWf?(#yQ?;y#Ky+=|sG*v;Us#=ZlG# z>mag+$MjY6pCumZ`7!ekd%p`I9J`1NXQp$vwZLv(?J2$qrgQD&JEX9dmGqI)d-0+l z5dhp^OZmvtdwrt(3cq9hF8DG0Ns1{;w&079wbvzgIc$=xgzHE_ zBb`SMlSZuOo)J36M(2ya_5VIlW6|;cYeq4t>x4*~1T2u_*ttgW@B5cW>Iewg=>EM^ zvtuqDr{cvhdIIJq7me!)E|5}ZPdi_ySQpOA^+WHf)PZZk+QP9PJ$*MV1^rAyz0AMEj`-Veg=oUHoltFP@my;dJ2BD0z6V zOQvsY--D}9Uavi%bsROfjD&U`0!`54wW*Jh;~%W}UozQcpUWaXpPJ(Pa`{xr#E?&@ zL^jU@JmLWvL0aPI?*z-~#C0v{H9YEm9y*Z8@eqgjI_(9A2G-P*C<*CBvKxmlssso6 z(%?-VC{|8HeIDq~geTF21(l>X@E#AyT7T&90HQA|CmCaiE?V|0QXcI6qE+l)G^4L)stpil#5 zGX%6|0?UqZj1W;bgTY)X+LP?RTb4v3fdiC>wJf%`)})34&<&J_P$gt58;9;E`yhlx z?eoDdJd#Zq;}3?=tk7dr%rL?I4GrCiNBL1vWn|DBkA*heY`$nHH+oGmOPqnqc8Fp; zf=u@BBtUpNbT1BtXaNRsq3o`R6Ki2Le&|}VzZ~De=Va4rJTjOC)k4N}5kp~yh*7PG znpk8v3%Z4XZY86&P5gsEbO$8*YzEGSM7D?^LR^5aYhVzI<+mA`bgJ+2h*Vy3bUul* z4S#c$B-P@Ae#%4!QKKI)qdJ*UNLh^WQgpr%qKAQ@)1YJn^@auABTmkjK>1HY-;NNh zy;PG6+Lv&Dw=ANI1uaGj;~zqk`C@bYwotjvv2q=NHx2Gfh~&vcvm@fNV=)DUI0Pr; z`b1RKME}eK00VNTeC*>v>f?s#e}CJ+}7l%YoO=pG9CH5u&0 zVPfojo)FNlC>T03_8K7N$H4foB<74@!iWgzWT=-D>F@))>Yr=_*&yvG`Im?9b~6OJsrC-~d&sp7 zTiZGQI}kR=#{jt*yn|Nn2mZVtxN<*W(JNr?zWdbiAhOG$;rtnDJiL`scC6x>FMc@ z9zDv)$awttF_lWq%*@Qn%F52p&dJGn^5jWwZf;&)UVeUlK|w)bVPR2GQE_o`Nl8g* zX(^3XSytXyUfEIkZ0K3-yPCSG=Z&+q4NEl*KdS3jtLxXQ>wncWtUqsBuZNgy&}mt3 zXkGue`|1}EqHTS9G}g7a!jtbhKt{^k4n^z8cA`E_V9w%sscZr4k;Z@gDF zmVf?z*Zr4;bcen6e=Z_55>dJJ4-sjS%uvF=iAZ&p-=Ff_?Yp$^T&11XEyq|Xv!2TB z+wU|txpRMS#Uc?48A>kot&y*IZx@YLD8^_)BGS2+1$H~#l3U{*vu^yu+2Q7=>d35$ z7rsBEeXRD|*^0TI_Ikco%5l1;{90?UTy>yhZN>B;_4dnGy?E1^S7&7%&40(secSGq z99cV3-e%3T{l2##wd(ehQV;0%JN-yq$a&H#CM*9drY zle3+11}P%(F`%NGb>K|AVg9uMRR81wb)nPwA49}?p8YTK-a0DExa}IHhM6IUZWy{- zqFyL%kd*F_=DWcs-}5}@d(X4JbN+bGz4l^_ zx9A@%xBI$&zw6q&8v#n-VMIZC=L~{zsv+zMfgGo~$j6pEv9i@Ow09yQ&&B5yRWM6) zv6@{UEfH&nujZYVm@`m{zD7qsYj=KE-^-++nC1N(oit#x_7p*i@ENCYy8C2>*U&heq-7}{1+?FYW;sM(24+-i zApH#=eQai8=r;%1j%$dhxU_Ge6=M+Zf@98k5r&{&lwjGNB&WEqJSR8GTQn43hbAlBr)wp*OI_AcZm+00N@|0V`%{?%=ePT%?^U|jt6ZCc`Ku?jM@AG4 zlrbB%TWy5KY5f%^xpjxXayLICL~A$ev2a&6jj(B4i|TM6zuIafl6+v(z&(He>uul9665x-nO=@h zCgmS|qgCw%W=mv|70Qp>A5?Zcp?LNCeA4e$U8R!$Z^6UHK(NB$%msDS;jBG>-{G8@ zEXmQlo{s*}g7TfHqhHeZ`;Hccd`XU%ylVB1mp^_Am8tgWDLqz8tAC#>w9_e6pdb4E zy_HB!ch8ND&yRjvZF#)WKixiTi#pvI;_E-%t(GA@+e_6pINL{=N1q)$aOpq$P0B!e zemEI!aDFtC8+CrX{JZ=7g#8Wa#VNawfnrGe^G6qFkd-0!-zRg{0ed2HXPpKC>|$RJ zanMTREps}=gUuHW?G5-}xR~qQfX>Zb2#a|jsMTEqn_?(q|0WE{gY1Rg=ujERD+&?G z>mj_W*{u7#C{&7QnD}vrYI{!+(0=Q_J`U1Euxu2eHS2oF;yPOLPm96~TRJJyHCr66%cX@SSLnR5sb(}(=tZvJx!q;EkvWNs9eX%7U zM*7NeQATFReB*uW-Gk`(_`b8w$#^(8xQ>e^Kf8C;z4XoS376Cd?ml-F@uXk#w$hKv z@;#58-m&{=$c_{fx$z9V(>xF24jD0uvLi+^GqrGs?eV5Qdxgt-1mlTI`j1Z6_wTWWM2KWi%w`2}XvZ9;m}G3+HB$oFMLhj- zO^J^xMjZN*@ayC&6=~uD*`3&MyX8h&g)?VuevFWB&m8l9QMR#c+er3#NscKMmuaba zPre6L68qVTz-Kt(oZ*^r{gmsNvaya`ddK^r_-Qk`So`~KZVMk&cLFpTDUi&1F-%cIcAHk zj03}>#QFrpjp5<~F=If)7y%SYLP!WBCZ-@Ir6MDvB`2q+q-3O`Vy32sQ&Y3j(6C*B zordOLfR>j1{~mO7>~wS-^z@ftVBlb4;$&v#VrAuKXXoMMh(Yb=IvdZ6~qN1y!`Y)i0&;@`{(^XT~ zQ`gYb(A3w`*4NQ7)YCIGFfcMSx?z0d(kbEAty^YhX18zOHa9oFbLWnQg@vW1rInSH zwY9a4jg76Xt(~3S-T(H@le@dShlj`G$B#WdJ)b;z^7QG`XV0Di4Y0Sjw~vpHudlD4 zpWpN6&tJTF;qUJs5D*X;7#I{36dW9kL?S~%LPA4BQ79A|jSdS7!(cG~UzNT<*iclUiA|291{x3sjfwY9Uqe{gtsbaH8B@HY#C|F=F|TwMJ5tAP)f zH&01ezt>MRic*w=allWVo^DMm1u{j5xN5ph*FR@E*UIoJwm}6lFqohICYwhfnT3-* z6OBK%#W6u0OsY%lbdtwaqTb#%N-2+&Wg^LQz%w;W#(^5=+LFyR-^Yv8lxQ+pX!rk0 z&~aSJVcLk)FTL)&9Zf&+o}hIj{N<`OWg$3{(&>89?Qs8L8#g?Ld*AA58Hr8rv#QfK z2K=3^_pnuPD6lyH^%4Y-4+w+<5)lxP5D@|7B_kyzhruYx$f(H4sVOPxsHhmIshMbL zS?K8Cbabrr^lXfb?2L?mAs`D2H!CYIJ3BuIhaeZ1FgLdd03IGu9v(4XUU2|?eAfW* z^Gg5_5V$TNASoyaKuSmmfV8kM02vVx8BtMLF)=xDaRBlFu3h^JBqZb|BowY+SCEuc zkdji8kx`bFRgsee7>!U=R98~cP*&DdQPEUY)j}Y&)zoz~G*xr>3TV{sb^HJ^cr>Gc&WZvvYHE^K)|x^YgzJ7Je-+udJ_cY;A4t z?(Q8N{03-#e0+Rz0&xA(x8%~g4cE9gVRkY z8h(e2tZjIEC>=%U9@@~hC6?Am0dM)yo0d2s9qPAPB3zxXXl3~r4~sLj(DH)Dcsa&w z{TOC$9{w&j9P)dbr22=yuemg4o7mnyL+x9`vW#kvb1^0YH;c%6-{)sNWtzwoCrtC@ zmw2fB*t77PAcO>J5wrqfqmw%~_I6!6CsC{;%u?(mw%e1ENe!KtM`FL`FaKPalY;2tD>|C6j++19j8KD0`{O3O$L;Z0qQdLnwsH&=|BGeEFbu~2&z_aN8 zyk*hcPb?yMv z`49f6a8G9!fZnd|UO;>=(bL~^h2Fk_zAL5=4h|0ujSLTuj*N_r0d)Th-@i}(VLL$e zt7qnlb}?R|k~fpTGPeePd%&Q*(23OG|5OYg_wY^}Fjzzq|kF zcUN~$cTaCmZ(mb&;Nakuh7XU7T*>&@*!VagpCMnrIZaI~BIOW~X#TanL2jEwTN9hMM}{ zQ2Z*u8wl?vB_;;QO#z7bm4Y+;t-q$B`LF%;zw4%fKAN7Moq++U;n|s(H~<}IWxW(} zAjlg~@V{nw0}PA-Fcuj}`8Kh+w`9NcBm^WVa+Jbd z&f4SY!u`kkFnYHSKEzo)Z2oncIL%c`d683%_8QPC_ZL4TsY_5HDo6gKufPrLARKBe zx_`r0pzyw;ER=wN0H7@q5fL#lF`&$(q@*wyjGUZ;ii(FS z!_Lmf$tl3aCCJTv*-QhSG%xREC;g|5=Ht6;qxt!-{{tlX`6Yp_`d{Lz)xK=Fg@gb| z2@6Y!h)9WwN{fj}i;K%#yCx$cAuA~i>Pua|Qsv7!9B8f^FID-EEMMtzTU&d3dq+n{XJ=)2 zdnL&I|5}nSi|v1<%Kt@@fr@)+X$jEdt*tFUj1LbF|1%~28-FkPT5>7Lntvpj?NXAP zFD2OzkmQy>l3Z+~9!U98`ZQ~s9mLKiYS*JV!=fEeC|Kc{R5I5UEbdIr=q&O{KafNI z_%x}QP1RrZ31BlOmMZf~m-C_S@g}25wyv^_z;EHC!I$Ptq2jYfcgOvg@aS*Xj-~4c zE>VvhKSNTt`wPx-1#b&8T1Qdto!@11Et(8hr_RtlnE4>V_>4@f_@Ge3K4@M6?cOH( z50$krb`y5}KimBRRW&{Y3?_tJHqJ0YB61>PN@5af5>gsc7#%5$9!AChBV!~ZXCfnK zCZ}Mz1SOo}5-gNdZ~#=maW^2xz=1X$2OT{pJtH>*6AvRZFB1zNGn}7=l^@Q=&&n>q z!6nSaBg)4wAtWpAtvcBh)p_t33%wfJ&J#Kl<@v2;lp2jHqwsX zX6${)+)B;bNXuT&$lb`y-^wZ8FDN@Mt~@TSJ}$34uBbby`f|B@P}g|!rRAit?WDEq zq@(AgyZ@wrczx*W!RW-^*!SJ9KX%3^HzuamCVsAdpWd9D*`1pEJ-u)+^Xp({aesDc zZ+2;ScKHu>=9YKoR`wQF_W@jG&mH{j>*D3^!6kqtgulJ~`)0!0<;z9Dn&U4xT3kC? z1coK9u(Wpk7pxyI1BSbQuyN_Udl_T5dAZDR1>nOKwhmV>acSrQWZPY0`)GapaDD6d z#@7DE*6!xk&gRzk-vDUwKVo|u=$LnRcJ?l@yT7x0u)FtrZ~t(A{}5=Se*=ePhkuG} z;GFEw18DfaI4-+7KfC;LN#pY?8eg7_K`8hvI*L-8Q80Gxx0=Oit>LudEpox)Qo7i_N-1e?vR=A8oOL7D;aDIJq4e?ApQJqWD7lvFjmWWe zppGEi)Qucyc~TI1We@VhHi*l(bfFGN${T<7E1~1pyUn%f=JRltXtHGXFdyV|ZeWAr z&y1)WeB>3I1^LA9>mNcdm+K%>GHyBn^4|giT0OCc}|(xzz9dhGGO=H z#=H2|bIf@WNXpAzeD8N~nUn|EgQOs-fuuY%SI*L9Qr`cA4T^Z}3CydaF?tTce3Q~1 znJqV*ewlWY^pyOTD0HrN)Shy?(&M#8w8#k2owYLJAr)eYLEd?=@QC5+dO(@U!2o>K z@BYT~GDzIIs*k|qjoP`8S|Nl_7VhTfuY)BK4=JH+f?u#mU$3gY;i1}UtPhdxQ1i_Q z-fAwd9$Hs(ahoM?q5Wh^jG`WWz1{xdCSh_9|RrPLJ*Rr=H z0iuhpiGpvPGTJyURs^nDl{J*AcaKiX?F~K6cGc*%78R7RTt0{;V*=~vKe1qNL~2Ig zLCKFbP~Nu#{OrST>iJVIV?X`orqdeHNtGSjIpMy@6n`$%X0!(u_5lk~N%-p`G^&HR z&nbmXRT1E6jK-9S#B=csbvRn5z}ui{3#Y>m*F8Q==*{aX3h~jcCN#5a*32>eGoB{F zsm!lY6f47ZrTSc}b*g$g72x_;{Otm~r`sLeg{M0`lAEWy%;iIv?SWf`MnxOv>76o7 zy10@1(>GqNa)6;YTEAvK)x)kOi{NP;th8GX@DxaJK<0P4e`=qRetze_-!uJFmG8IW zmYyz~CNKODZWNoxyXCzn(t^v4hV5y!kO2d+8CmQx;lx}{pqMRx!=nx++@DF~rIwh^S)Jy&WXyg;Y$Z)onf1g;;o$ z)S@!i5llMahLbB&6YFPE#gjx2c+xpM6ON5d#xt~gx6jq~+GsY+MX2T7h2MBsY~2F)^dk zP^>1VdHXdMxm*(^`|D+CUFQf=mLYtrh*=+Rn{|WX^xNa+E_9`l9T+i{$dZ-onFZ_l zkF>IkP)jp3UH8y6QT#Xj)t*(yY@kD-o z63?-jnIl>fj%cc-JW_)<@k91IBySXqFCg$5`@+iX=x5%kyWCHEB=R+FW+VyYO6d&M`!UvH!55`| zT{_lTca6!?0@sSh*7j`~KC5}lc7kVPe}qz6E9KMY!&4BSiVG8uBy6t&BO?_sL*30=adrautd;D~LIZ%0qPB8gEo4ST4izAvqH} z#j?64)62;iJw*=k?kVW&)yXvd={HsoJqQ>|!Vml?D-#%yWuPv%Td5@Ej}6P|2UZ>( z?9|Q{kdML6af?w>`h@%MKcG z&5G;pp|U}S#!=Uu^PR;0(*;o4QJ?SmZVKt=C1+6#0|kO6sbOF78y1w`pe0V4wN42c zFXy+F&K6y%xuF^qJasY!)*<`6CEI^A!*Frf@%xl#O#!AFOh;xdqKY7ITwfTwyG=Rq z{DAvB&TpQk{$!f;VkuI}ca+Ay&l;-^?!DvTIa~R3f8g`npcwv7ofmM$rL!~8OMk{S z>(i#+&#|Ne@HD;Wxrwb_!GMK|`zbG;utG*ZNpGWkcO}Wwr+sNV$Qrm|3WnCP?f!S+ zFqT77MOe^FM5e<~~{Cg2M z8V-vt3Pd;|89IWJKLzO?BGViZ14W)tY*MHfYy}obT};&EW`&dLh|TQ)W(_6h@t4;G z49Ae1+qmqH10{cjKIDP9Lqgs>3-a_rr8pv1VvI>rp%1BafyldspkQhv;&?UKd6JC} zq}ZdFLr%8Ci;9O_0q(^<1D1lLq_#qnXi*mpVH0Hjt3@It*m}{leV9h3vI;EUBplkhR9t~%$>;3jBH&J7P<8z za~K073m?`bj}8d@!X5rv6Q*@Ys?ibXav1q^DZGIv;)@evv3H$gqC(Y=SHK_Wznbcu4bboS6>udGDxYC^LoL}OSgK7%kn zrAHulBJvE_TP5^%ToOTXQh!)zaCM|??3)@bRNWD*>Ad0k#%{7^CagF+xB?m`HW)d& zob=T>hJs88*ZwuNQ4;0+TPXIsU18Y>F}I)UfK? zSbP9+QlOk^xZ5N@w}_(+NpQA_FJPoU-Fy!q-gaRyxs`O%Mp7vPvZO_5ydgopAr#Lm zF+U|kcg5Q{CkKehrvwE<4gm-)W-xbp42GJID;b(t=YOr z}&oByz{ZPUh)>HR%$^kV=ho3GGa4^BjEToDb$C?~~I%n)@#(W&doz;i}4x zKPF8!PrsL(E#Z@aKa;&Vo%`M;Cr1XhUCp;G-8RU#> zQmGMrnP6>+@JZ>%X(-8KXleud`>oPONFjkTVZF@@5H_?j#r`m-@RUBQm=CrIlL&Rm z=3MXpC8{|_3Cv+m(0gEuu|pR5`FsWSBuqXowED}q74}Ig&Wud zhVM}X4ueArcq5Eu%gMRoVh7xR6Og^AEyN|uvRX~I%`MX4%Z)ayAX?3qAn<)2p7V$> zr;Wc@!3V;?lUswyMdYLdQ_|(g)!YXzx$ST2ekx_s-me;TDOjz6_W0zBelLi(DSh?q zOZ*n`rd#!BPW8uz>Y?;6*Td`8yQ>()!P%?$7yMw4X?#BsZKKtfETNDfLkPOTX=?eV z7+*<3O>Ls~XB+;C0EVmtr8?Pf#gOgK-L-WUX3$DW0!bLtgFB7mcQSe3X8V0_qOGk1 zVK+(feM$YEfmwyVdgHw+TOHZ$oe)sHcfUUVYcpCWUw;Mq3J$?xY_P>@z|E^k+G44N za*FK`@-%+*QM<=V6LE=0){k%vr^V!MAZJmOh`(=8^rEeOllkWiIWmRf<)k*>_zwg(}oR-L( zc4!j8pBv)iSm3`ut$!>6c2BACh=H~nwkm6oSz&ThS3cRgHa?4JtUD%lT+7LHsROZo zcK(rDAoF?repVhq{b!xV`nATXlg~}xa_Z`8mwh^vzGp1nY1zp65|33r;@5_HTOIFO zHnx`kv#w+)1(MBx|4X33bGp+L4!#cqGSa}&ab4rpU3qfvi^h|Vq-%I=iEj(Y57-c| zq>zl-5ch9+uMV{6o%Y?|0^JD!k*p6`+2Ds5YVGRwlMi-L_=Ud2ez_Mz(k=px41h$z zp{s_(n?N>g!#N~m0213kxWLx``ZWVY5b!0!x853%iX4s;AqJfxi|-GD0tfx+!(zxH z1{z2^#fCjaz+N$ss1&gHXK?5=iPmH9Eqr2MlbUj+zzWM{R+{1sgJKy)VKBJOl7aKjQZU+ps=Dz9Omy&W1xC@YB7`FiHxRPEJqB@h=Wt6P6fYqoPk&) zfA|bQBCw!>pCM6(kT7B>uEMnW0QjdMINWd)BsJym&a2)slHm;5KLCaFPNe^sB6)ys zB?1bM8Fn)K>W~5=IRiat!1s?CdMq-Fa}KgjY4CujKntcJGqb|y>Gyk)V=>>!^}&?y zhaHMQ#rY7|t*@8?P_Z6Jr2xpd!#528VQj$KUnU(IK-5AF!$se*I%Y*ak)9t9RQmb8 zp`@MD)ijlO4<4JGvKIR8y#*!_1fxr3bt50IZDzC34ntwTE81x z!Tj_W$V4;f9=yrgsDR3n=aP^Wp2I@#KqFoK_8C6P`wrMnch(Al?^?}RrGP9O=DC=k zhr*{x^FcRYp!-{RT3C<=Da+Oy13qpL4-qI!&1|~ z;?Y1DEg#@R;vv+x__MEFhBt%yC*{IJz@F&EioW+aR_n%l@Ok9)NaJ$@xiGVQ2u8S;}U$jK!*Fi`y5iYge+$?K2koJ;Nv zcP;BS@B3weZy|)|BMc&w$1_a%&1a1t1czYYl*URR!y-Ht*mu2@-zsp>V?hw!BYf;H zlXq{m8GMocxNUeS9ehD~o!HsN^=RWJ`R)D{JqR zSgq!g5LR5Q6z4|glJcK0bf45=Dv;XVKl1W0c_j%0RiWp()vuLW-ft~?i0oKmfk*`L z9JcTR3U>katewMsw;>O!6=A=#1wzUvlcbMR-=HV2WArp_;;?QljHIhZ+y@hv6Jh^q-noH@@P>Ef=RCQ_UKKPr=R418z#+>JZ!|ssW>2Y(&mR#bRwEJ|J`u{J z60Q;ovqSK`bV3l4ecVz(OY~sjV(9a|R4_uwR9r&w%%WoT>*TQr4dz?-mNai!he(*- zc9b{%z`UsZRb6%VRD-eKz6PqR#QUFkk7+O7B+ zU!Q&b-rY#M3E4!>79le5<&Yrz8Eg7Bz6LEws2hn zHA91-NbZ+rwI+gjJoBD>_@Z~ixbp%I!&LSXRg3gIYu{EjkZLG+FT5r_O8u2!@5kPu zoUFjvCGO+cJ%_pYp6o&?s!Jl67Q=?&*tmY;IVL{BULyR(Y4&u=F@4rVyrVshY^3|O zYOL}SEP~Oa`ST=Wv^N-GgL6)yiO1%Z5lA1{sbfn1Im)D;om#GQUtlL{RR9$r7o;vR z%?j1D#~}}!ZVt;*`XT{gBabp;S)pzeCRYpf`ZM_!K|?XrB6xi$Hd>c?kNOrV z-wQNXKedoG!9m@U=I_ss50FZF-^t<_cc{$ zwno8{G5utEA7foBZ18<^u8Eq9tO(XCf#sD{XwMiO^hawM9uYzb zIj22@ld&vsg3@)~;-K&pxhFCt&N)!ZFqMzy0}M>?8PxR@TjCpsO)QM5sGX81LhC9V z8aX1sCw%{*L&JvPdJM#HY$i`oKR05u?iaio>z(jn2mAafTH9&!6FXgzrVr6emN)is ztMF2VN;iAWrPSxK)gBC8k|0GGn?(4T3XN+O17?gv@bM2cOImKg>4n9}3q2{{*I z3U1u}01fc;4B24REZNfp&0-lR=vvArIfWT*>4G^5odJa7#k380Gx*)Xq4~I6Z~`Le ztaLR+iKC6Whu4~L3DV+D(i3jZ%wYi=?)uYU(RX3E%>*W zjt! zy@+-Y7A9eZ%w1Q3HM9mXQ*Y~N3Ivh5OsBHo6rDG1{S)c@yO?(QjzWUMKFusKoE6= za^J&9&2j!T>Z0`QjVcFe&8_c0D+;S%m~Z>5x?axq@OI%@!gmzUz)Nmjre&C-C) zco^tp%yHihPtgglkQ}K{6||(oBo4#li{Xh+3sx`Ul7`{kR2F%120Y*lfr+MRwjob3EB;916xa!f48)G~xSQcn%GX;e*P|^Qvb%js9@# zz#Cu#%|Nyu#jm~)^I^I-N#qU`^!(Z6Zvx95-!$QIV9Y6`*T%_HX6P(#(5;Ekmk%RQ zhVm#cJQk&7J@Qb zG_0d^o({xF3qqN-IZ$#rO(S6@ylQU56s|$sTR56#H559c4n8OqiW#X#BazSmi5l1ro6n}CY>ING}yVe&#%*<+}%>gOKXM~VWJW4)s52Zia`o#HYpL$ zHz0>_J9LO-c<`Ruy>s={QudN*R4QoZfS+5M^o)A4DQN~8xGa#F$~=15D|jQidSmu|cj<#^Vl=}8z$7WXQFUnhx9vkN#r`5h zGETVCPPp=kc}g+CPm_aHo$!XRKPsT{oDKUHT>B1tGDhNZRr1iCb$v|YT-Wa6KY@$; z%`(bhA=L)(G@X!29k`NSHLN-K)V}@QMtVoD2Aa3A6|2ySO06ey2;DTDbwsI47CvGe zw@;c)S(8fB4Nq-}U-J+Qdp;(B7^0qF4c_q^oDDl4r29A&MHft6)e$z1E0wGN-9nqRRT));zscIo6Q9YO zKXmO~Jd0sqR32D#AV9I9-ga+j5N9|$SXeWXb5Xe%b&pc`9Ro8phXXIMM$n*3OiGA zBPy~`b2uYUPRf2#4og|7je5LC!GI(|It z<2WXM+^>8*Vst!mVLWQz%#i1nFV#de1oHP?D|ReP9Bmw@|7h%!jEoGJ{G_0uqNJpz zqN1gyrlX;ur=?|}rDde2XJTLg20<^kFMzcwU?Q81jSJXp=HTE3mYX>_`FMFng@onA zuc=E)8_3F=DXHF5(|W9Hh%_{fzGazc=bU-pqu9fz%G0mv>5EFQfC}%RG9P5IUueD` zD(5*m^Eo>Gd05&DOsao)T3}>GP}C=6bWUhYK03BA>}64STv=p%S#&~aY+_+ta{j9~ zx$$qZ9?%Hg^b+owCuw)z;*TtsaYp!0J2Yj zoTW?ToMhyje9S$`yvkh4DmeLr?81|rqLaMhlY-Kd!t#^i%9GNnld|fQ@|u&1+RHd5 zU`z}^O+9ePcv9bT@}(K@)Y-3ZUTAI`Yi;ju>*(w3?(gXx>>C&!7#tZIofsaQ93KBU zJU%@HVphy`MAN)3fW- zvrDsci@G>&uvrGJM=f!A_PhW2y6pOI>(_45xR z)2*$Oz4v}^%{_iEbZobjIk|cLTO>z(gUR>(-#?$OrGB&ugfuO@_anN#1UK2UyvbxD zfB2hcVdSbjO#f30;;>)aia%$faZ%!S`L zTdXXn;Eoab(*2??ZSMR^>iYtSYN4{+l7wXEai>OtaL(d()BE|#oqT0^6>aML58izZ z<=;@A;3~_np6sGqtz3Q};Fbjd!ka(8fXT z*1HRO%A#i9Bg~`tROYwlO@xjD_RS#qAKO;<^j+;*sVhHicSd{Y#{LXzm8yT z98gt6>h{|t-P5A@;-JYoPBd!tmz8t*~tHyLn&G)2Hd-s1^}=!Y>&f&PQl{ppJb zt@EaDZQlQSbrDzH=Rlg_GY)y803H5#M_Fd2M$)!U^0u7({*P`3|MHQxJLF^RZQKf` z`}f!j>u3kK6(slDeQ_0b?e5w7QQJAYYww54kQ|*PpM59Tx-ffRyRN&+So1Ru!T}w2 z8MeIWNhtHz6?%|3_hB913B+Qk@&v~_h!9V#;mDT6%kc!~VhL4^EfeHyZ37o0ft2Ct zlX@=^67K#wC@Zp`A>)&4J#J!?FR2p|P*DZ)KDZP%w0arN#rHz@g3Ow$?=_-g#)ITG zVncYORGICzX3C~DT9-PaUmSE#4{(VpHQ(HD#m1xGViZ*h)D?18W=DfSvk;n$*(W%u z2m+#)%0mlL$V7fP^GrpXf6R6SuGXB{OK$34^1|K;nyHd4Tj+iHM*?A#gmkgb$~78b zXx_KU?5!o8Dmd;gD^(i20SzdX78_DDmKsk*O4RL}+ws1^5aw0Mm{RB1AWM7twL~oS z`aylid)LyJk0E7!%S8C3jOOg7@Sf2LA!kK)E=F9aoC5tY!CA27gn(4XVyuBcgo)L@ zP1P5!5krAlSDfp-(w}wSv&Gr+Iub8rtFSsKGk-i6LGtz%^{Y@e5lMQf^XJYhn9)<- zB!k*6xOi7P&JIP$>)bu_NxDvQ5aqhZo*7qyMSE{a3DRnxr7FxlD3>$%n5^7MP_(8% zz)L)Ip%lTO)xXDlf6z)^0-`}1RMJ)aw;coYgV{V&=AK3qg7v%a4p3S!>N-VN)R zKfPX2GBK2KG0lc(<%v-@9C2(kVP6(=tiV1XeS@c^M&N0a2=six{Orcl2c7ZFz-an@C&joNCemg@{ z*Oaq$p75DyFl2|VML}QGu4tCKD8W{Ga?2^tnOEI3VB-&jD(VQWEQl*>-`eiKXuOgA z;KWH6_i2=ysT7MW?tT3Os+Z3fT!SbJ9qT>_etjvM@90@wX-SpCP8s4A=%sugePd;p zNPFG&hK`BhP|a^PzB@c0FjN9hs#KW|pP{wdaM%ZStS>dL5=ID=4|9?Fb{kAj*#^D7hW7aAV{wMH)}5_!8N4Nfj<7o)D51 zuNVdTKHgUBr4jyhcnW$l&PtWJ;P)tm^T}Z_B^q6KG~S`S>~6-4mZ{61nC~GLs51uif=dAY|&U-t64XRaN7L$aeKj;O~O9l$(8+h^`lKQ5o z@;oF$8^LEup<|VBylodFO1Am44P2InwdH%8!a~dZz@|hg9hY6CpyVT(K73R69{Ft*ldW;QFe5Y&@BaXu za-V)FPXUjOGU9=AKkJe=Iv9SK0!DDCY~=ph$&8b8`@H*Z^Tlh((1`B4IO?LrPySs? z>?Oy|tcB3fkRI8P4ppClX^@)80%45EQ`_IRq~7DWEQf{<6r`$t5?Y-w;*f!_!&P93 z;F_Rx3$z)GQNr-zlwb9nWm$xL9X|D1?~t1-~f5{)!X3HbEEd>lecc=1;OUP3^cTo zGB@d$xv5{e;U(R~dwl@Da{%6K$LB!@p+uZM6oEN-9z2`&$4UghFa-0UA?}NhUKlzN z{sOBndWPc%@^S}Kq^i|@1UrnZQZxKfleSaIY`b?KypxX z1i|wxW9^{uC@fsyI8B8qymb0`8jwFNZ$b4v$kO$I+87uXh$~wE) zk%G1EN^9m}Oq#+JdPud_wl(HYbe`5-aG_Q&rn5RdHL&gueLo13Mw2`hBo)-o6MPMm zKm+^Y5VtW{I1ajB3{yvujL*XG7#PapC1FUp-J#-yl&rKo)i+VDo2ltmP;XR86gEGc0MkU1d{~FY9KfoZV3k1dIszWR zNL~X_f;9J=96t>Mvhkt-k6g8c zT*dpUJ5t40)z#9ZOrMh=G_Mz@p!3cU8(^*c`QZl$l>>DB@ECO7 zss+ps4U0ISOvb@t(J*a+)5x0EaMp*fO2bJC&v2E2673vZ%5o(vh7i);))tP_mi|L3 zx27}l2sT*yBG>6EZjI^~r?TsDm*=FcE~*!&@2IYwz?ZS`2jTGO*RWOwm@2cM_Xb}{*zV(`Iq(qlLYBGm~>2ozx8dukOa(@I-;jSBnALNs2x2A8vx*`%%@$r*i zpxwHytNg9;AY{xzey9XeNE;T2fonyyCUq7l_qTrFwx>CS(2WOFrt@OJZRA{v5#wG5 z1giQf$D~wvnKdk+Gs@;o`}6ep>M>Zr3M>d8Z_74XXmAKY)Ib^;?DnAsNx(TZS!D$zv@`~{2l_+l%Z1+(Y850ue zUKx#p-@(=C2*Z!|j7k@}#rA!EdGfyLW`B?Fkqq%L?uRAev4e^*Mq8wcNTYOFJe5de zOR~Q~i=XVHc=CRjc?P^Uxz9QSXZt-mE`@a&g_BH%C)*;KGFp5$p+4AzXbdu5qAT@) zqUi_`2ZBeg!0;f~kVvO5%*cii*m(;xNMBR5m#er}a9kv7qOBPRKe85tyhFflm&PB4 zcVUwgk~8Y6$DlqE@cYMZ@=T=@g|IT)O7eBs>^F+Y#ewTe4o&;5*W=l17@YQr$3V&z z%pVIoSb<>sp-Xc$7wa~<} zH((#Kz~YkO+Dcu1o$b$cVTwgCK`U4^A^e0OzlrnEe! zFc@x$ORr1iguTg#XH*ITWT}C911&9@@uh`u2~BJzeiG9>sq|wYE-{Cr zhu)r4^qZ|&4eCaC70h!HYQx+|t^^a!oS;yK$Be;BY>|-!7yDPYh=VL}Wp^iS2B-SR z=dhXQiJfyq32Nn~KG&tPR;@VZ>RXyAJ`8S7JaX{lO=oK;JZRHXTk~31Gi=*Bv|Sb% z>+N(>f|m<%*X6fKE0-i-76}s64rsXF{YMJrPC|dGc$(M!tgjfKEyVE^O;+Z$+XjC}n@yL-@l#RSGj#>Fu zV8bwvY=>!*QJBfMJS}th9fsgLrdH`=M|VC^ln(~pfgMh&lev~!bS%B?kHBFAIAO*O zK}~y5*0a+WQ|d}BVDZ?nXf)D1!)Hr$`Q?vuSwE-*o)WnM_wuezRG19Pgj1C~NF{); zdT=GZ(LLk3sd0T+=B?LStaWQrKg;NvtEV1hNZ-!k>t&kVqR`<-&Urau`}@7CUuiREy0+n3egYm*SDSe-LLHEyoftszY$P_cCK$)BY7(kSG9 zHp~=61SOi|dbCusa_EF|H7holh4f=Cqvj4N)%lPU{8MI6moD#8U_#>tZ(twr8FugHwaC|~dzu)KHWcU+D zBHA=({+zzuY|m;_@GT}5H^f_248XP;dJ*3i2&7n#Q3hy>g%j$Z{9s3z55Iy zY4B@|)FH{@#B?pl{L*M!)uBNWzQR(6P5b=vix3SJO}0$&izbl;4-!lS_iI>=Fg~RW z$doD=Rd&4J7_1h(MP8^|5i-Z{sgi@8mq-9-cdm2$E+fXDb^g>?mbM!$Zisa%>(`hc z>3e>gS2=;Lp=Y|m6{u^z+h#*z zUhW7QydZISLGK=yPa&E8f(t{#J$Kkgh<0*>wNUxqjl_6NSj=(!sN<`Bozc#1OQgzX zf7AW!(beNec-zgT+&9J_dG)HPx-jrE=C`R>cr1E0?_F11)%FR)+wc`w7tW&yiac1M z>ZW#XYu|ZY0Tz7snqat3%C$S-tMsdUKfLBm=`*^@vA4$?@lg^F+0McmU44mzu%Yjs z%jkCl4(~SJ@3pqQgHZ32ZoLC069ucS_T8^YRY#7hJZi@BNtt@tzC(jip|3U?6uncJY-T*DsCieGvn1UCrrnAIl8VY%L*QqxCvx-M2g^wRX(z(CLL8i)A)inF2~k4B<@L5T&2*1X-FGuFuL>_YjGq=W1QDZdJOfxBL8Kt zNF00_auMwCkG&!i62MsiFb4TIvrS4$TELF))Qb;r;bUZHWa4CI;XcdC$IcpSzY0RhTm(>0{Xf-VW6%Ac=Edy;m69bGD#>~#l@`|;c<7KQ1*2(RPv)5%8 zKWmpz6W0V|_cSBVtHwTs=C~5;z!Jx>BJZgDV0>RYPUX_3FB&y6Y_sjjfF>oo$`{UA@D-1EYgC#&3*H-yEMGnOOY8=)}V4)29)A3J z`03}zPsC40e>wV01o(VRJO=ne`~qJx6jTOfr_-1EsG zbp~*9T`ite4cIHn1L7f+-{9&OPrU{5g?5+9ln{Woz}Ktx74ijPETnwW0(Wb)16d|Y zdWBX4F}1pYw?Om#CP;_p(}lj4jgI)$UWdKjx3`r1m)K>#`-$0B1ie`3`_$h)-VxU4 zdV6u8<9VCMvj+y>_}#4sQeYzXc1Io0N3wbJppnUvMzY@2O832o0#(!k=C5Ume4~65 zmv^XYc>6}MndG%VM+@5`sh5EPf#MA!E7?48dSuTeNz30H+;4B=Hd_86Ui<*zCJ^HV zM1;O3VUz5e)Zr9(_GE+N+&tN=)iZMgKl(O`hNDyP-{@t?rbc_1@lit zGOL1!PiOAgo8G4{*u;idov-8xI+(4DreOfQ1&SO_?!@Vc&E=&8D@>dXDt!BeDoJ2B zg*yqNNrugkpmFC)(T;1(%kuWmEwjs1vBHG?irOfPQoRO$nE|ZdoZ_T~PuN37RYFtT zrx99DE{#_NyX0!~zj>bfNk)h+8w+kV-ksvBikoS4sFvGfew?i=8?jQGgH-fzE%X!?t^+SW z^zceh)oL=X&VD3#op`;!*weeE@L{t{@yw2}O6LsAX6v>4>6jWa>O}^^aPD4Z)2J@g z+iik7LL?-Ef6?1>Lw5hk^@{?|V$tdb#9D>q z4A%)K>ddcvl}T0^&*FMRA|&%3>$h(@_n8Ey{Ff1J)AOB^wgwa(W*^UKil0Fwm}oNp zI@rI4c9FQt+`to(j5D!QSz;Mtj4kMLd~@ER8|{^rxrydWv0Yz4UfDU{|6)e@;ZlNz z((Emgotqu#izj*s^I!HvgW;gZk-(WtKOe%n;&;sFQQL&w$yI3#uKu3>FWS!|TvWWW zvv6}Cjfu-^V=}}C0hOCy6fR0obS)-)H#nS(xeBJIkD(GXf5}O5?t~_l>fQO5v6Tr5 zTgG2E2dFA$@5)zbKc@F#4jYgm%yEAw9E?~$_fA4P@jj8d*OTJiiPp=b=zHt?$}oYs zFjb5|gTAL1Fwx#Yj2vltc@9OpM1D!@!%yO<{AQJ!#^54_+71c*vso@hvvebwi)Oz9 zK15HJni3Cy%#YfzpKpfWCj2lzL0`RiF-%2qyNmRz4pQy9Ud7srUD*U{u28gB>6~xM zjW`Le(3@Viw}RHiZ%S4p%H_+@&u}COz1d#=lkE3GzEIJ(x5lsaOss~y64xd>C!DBc zx9Q1Pz=u%@BBtaasj351#*8zO+qGA|a6+dVrKwYn5{i}I-c4icb)Z(%R^t%`!#L)6 zbn06&R^M&>^3FQm;0927GS)`8VnY~q? zT>pv}eSSI>^}N?w#&I8XnI;E3C$UmlLsR{Cnf z#wE#Yi7zs`UsxDN;m6NIKXOoQSB!c-V30j`RUm?7n-ykK!w!1O>hfS5TJdW3`r*ey z-kwM2YPAU1J-wVv(JQZJB&M1%CaF({@1!xz>tJF&`WHkMzu=sa(5VV2uy(GeWS~wb zu@}6oM;tDhMbF%@-R(|Vql42&4T;OI=6D&CTfcWL(uv2tfV!kEo`t0ANu6JVbq`z1 z1a2rNvD10}xL3C;tFw?Ye-){x&;4yRbaIwYQe^v{oxr7egG2wk`hDdT|;r?Jm1v?oApM;0@#Ju4%Y1tURG4OByvH(sjH>3sDwt+3o%LeDl{y* z8D9`{FTT#n#<&AXp05)x5E+q%Kt6o&>nR2K$bzx>5b8{MQV)YgyR}i8!eCFIlyx%O zJ7e1H#Fa#z>@q7&D@WQad0!r32ddY)N$iiKUvW{~wYzt2qql&N7+yj?Fb&j;o>GI`b~_Ojp_wJ0tBU8BceZgN+(++_-$K&5upR=EJ#~?z_?61DwOpzrx{6 zz*FU9_Cx zL68C-O+Fr7Z<~V}8k({D>ip6wb`{B1^Yv$@a=eyySmYqI#prsz-Nn*x-8-Y-=syw( zYl+twcofF;TmuSajMFf7HPrKLq&%$EwznI2Zf0U}oT7JuDQ7Wtb=Y;o*w(E#xUk#a z7q2Qm`RckoS~MRwr_NXWBvl_9Pg|i4r5>pUV$BE~XWlIL zK0FJ|k<0azQqe!QXl}D5hA@}!sIkW1anKB|CZSF}IX6Kq5|UL?5pY4~YU}!Xf%Mhq zOR0LW$eGB_DJ~Z8H1x^|Rm0Co&J`borr_{m{4%NVe3Z0R&&u7iGyN_rd6e4QEO&-o zJB!$iA8DAyFNR~^v*(k;wWVJ?mDX%a`*~q(TmL)u3xn?Xs{Ve~nsLH|LwOUT`m^HY z3UqzcVcpM7t*dO_Af#2)*Fi}G8&{a){l*JnMJ3-;lv(3v2q#~M)6S$GuI4?<85+bi z`!G&DS=NDve~YPqpWle7ZjUw|GHV9itArGf@KH`hlw7vabXTRV#(i1tAtbJTQ>KbM zN#IW=+H1~5-d(k)S}U_hHJ=sciYfBmq;IgCb-y5Nj{nMC1tJ5{KJ87w`W4+$woeOW zMtP_F;Be1$Gy76Hlt7U45zDR^DVomoqGNtAXd#nWNbeSv@pzB9cwof8uQXih!DE}y zjvm8;X5Sv$eUD3WH!I#9YkstQ0h+Zab6sv1_*F+`G8T7c6W@9EK|JSq;@D5oDhrtP z=EW?zgE%T&HEr$+m_@oOj$(xg`Q#3o0pyUXJa(Zk2|C4jES|dazL;9OC}_nY;yO%5 z8chc*@>w+WzC$EtK2ae~ptN)rMjMLj2^R#V&F_-R%m^rT@Lag@Qg+NV?oNW<63=-A zoH=RWQpVbac2oNOKuSHFp&5$o;{C9!DiRFFhM543B#yu_!q6CNz#f!UBTF z5lFQ=VZ|FEHw$sNPz0_BrXdesFc19B2+zbJ3Q+j$>L3LbyrF}pI#`-+Tcw9b74(^k zW=@rqUJf6mB4s8woQFXK0|%W|f0(3L9OxroD+_OH`7)^xEd+G3)eOb>=s(x0^O=*G z;u5kt$rK4LItQeeipivB$Q02|2?SEp1DFC1T9*W^WJ=O!f@4#X%2DnqRY|++F5xTQ z1!D-uK{1kIf1S8wzX#$zX4+?hQ@=rw?voJ-uk|P7m1f;lN&QuB^XkV8swB~+-c^fV zeT|1Er0(1^D5Epo+*X&?Cd(frJ3AKr?s{7NAS}Cz>~JH-8A*fIy}q2rnx_;5)O!@lXXUJfVtA zXUwI{GUH9B^L~SO3I8F0OBm zxjcliVzzKd)068V2p6l1GF^H>t1iD?_|ht0^dVea4sK_W9@!6L29fo^5%Hbbkz;u; z3(1VEoQ?-z;aEh$COjS#+Gv3Qp2fT1uPV6&7Dn4JHz#!2%7o_L$=Iv4e!Yd&g&Ee7bV<}d9Ri3wuzJGFJ}gf5zxhI z^r10Au`*D2_!vC*04AB7lsoT|OGE`_a1t6F{qD)|uQ-@P=dWn+JK~|f7Y4$!$Kc^r zMd>>3GW0e{rx1K9FKD4Dbw2_@--YJkGO`0hx=bv0L{jn(>ar zcwVosF$yVp{?L6Rq%qZ#aT`n#FYK6&chVBdj|2=PID^VqklFZ}E+%-q1RMix9zXWN zTH>lc>n3_Ox0}~CePdY4p=^z?%f;81U=h_An(xlN$k5J3m3C}cjqR+w;RLp=yxd@iJ{$T~C@9w^L#rvaxX?Z8 z06R$5<7CzN!lO#&Fnw z%iYKC2ri3G#3(uP8|T0Y!`Vw;Ru!sv4I};IE6m6wN4MD6O?WOoNrU(x z_VVr-(M9Kez=$J+OsfFwh7^sTzOeZq8=%Uto3WwA#kWo(xv&MTUC>d=` zF6C*`7Nf%V{YtRy2L(-yGwGvHtQ`Z~mKPysi4d?sBG^LYrRv?6Gc4gM@nMCYZ}E0&v+6&F%D|m==d9==Li9b9k1ef!PxB*wSlU8P)DjLk#iwmjo= zQ42pO3Y7CCj#bM#CXF}d3T%cHUB6DE*s|)qsE8N_SUfPyFRj8`c=X-AwIS(aCqvE>RieIp>B6k~&&ZC4kzMnp?DJZ3B)l2{ zeYs-@KK}7|3V&V^H)_$f8)rpi-ceCvp$0i?Jt3%Bkp^=SI+1P;x&1Srm+W4+R-+i< zTr^jO8rFdBgk+U$ly6)@4EjYn+p>(=|3=s$IUvPz6v$#Ja z$AVlDZ?L1CNv?A5KtzcLNh9+fKKQ+i2bpcOeqx4&TU51PHuP_s#KdlZ3ax7C;mbGM zN^z7`moL|_J@|!rlvu&lXwY;0(IbS){g>1oM;ON*qDc4H69jv?RaO<%F_tPqZ>7$Z zp;invBSz=m_M~L-30!5>c7pX|7293No73y z@RpzJVQbbwSfAMQN7m1)`Vh~=*1x?2kxD*OJbWIm+6Q?rxa~ld`8gbquBh$vW_r?G zzIo;(njSBTRV zh~8yx~}S^UbX0w&Kk*wpv!$7_R&5uvx8DxIfOYUFr)6QHzVGf$8cwj!3qKZQbrn@%y>-Cy&Kv5j zX|ZRrK5GFOa0KziuGr0(nBCZb*XitihLVr2os|IwrGZ;O@Bn#q7Od-_@n@y-ngq zg2S5p3iMYMcz^VrbNl`W`%MTpu(xqG-55r{Nm7u5N*ezV_3T{?@!h9q^znoP#&`w_ zKauEXZ%5bO5AUeKbsP$^Fj-j7P}qwXA9P%}8)6(GNh^2U;Jk3*TMKha2jl8*f( zU-?P?60PzF8nL^d&>Tmq9W*ljw7*cO-w#-vIrYK+GcJlCK5VzE(GWYwh{oJ@9?tCh)|-*YTO7>4i6ocXn3Rw%68oA3S>X z`038m=ewI*z-0OL*3R3Pd!M%VkGJ=~yxjY;bNb@*|0RHL^_M?(wEt&s0q@#RJ9{5@ z_6~RU4tCyr_&4@GoPO}%06y&xz?b|6`0`VL?{jK{`=5W8|N8O%`E&kx@!u?Qci(;i zICaH+_g}nz_vJ6|Pu~1y@6-nO>;5T!qlJNV;Xk|sVulaD0WrfLKA!S7Z20qc;8_IV zDFk3b4Gfxr5%d3luD?-L|6<5X_09ITAurJcU9N4+4H)uD7QzXDA#ZlN>Zu_wFf`|7 ztg)N#J{_8C@B^93ySI{M&os;_1Pa`#loEl1bm`oeY6Zx+flTE$3pE(nxy(JOy<5!| z9?%C1!S3rFWEJPkh5K8ri?MNrN$CYXj|Onz*EGKSwLcx^dHLwbtqYXCw{*J|1x`Pf!Ws)%tnedw^Ql01lRBD$|A!1_KWjrZ9>Xq zdS0z`!9wIOt6~w)Mn^{ZA4UxN=MT{zPnRpBKWzU(|9Y&f$r-%2PGWY6y<7gvho{v< z+VY=8;l5zbs!%v#)&r~w@=SI7I;f2xf(~_+)x!yvG*k}RyOCPASfR}cz~|eD6+|D}y)VWuT03*#yXm=HyQ=%3; zo)__*(|Mkh%pUQiJnh=ftC;NcP?x&=b!NBvYus;kD?a;7y}2G;gWR(#$}ScPA~pov zc-0)*7x7$`1~J8`*8XUN+u$a#x6m$ib+5Rsz}nR~p^lQ=vczg;r`4c`#p_Lt=WPr6 z+6y|<@0z-!&sub?KT2v0n$Ue)K_v&ruFUZ^XW}#QK$$zDn=h~(u;nn>vMuZGKCw|%HCN6gSEo!zqF({B&i4%a((V%)hdy^@EXJz~KNz>qxPi!YUUUn(FT*~4jP-bU|OB9)Q z;=%>B@#JjzMVq8T&^g4uPdr^CdKx4(PNUfvAAENaPs(|KM_NcgXih-FN3ZIM4hylz zDi{&N>NMI^5Gl7roUrbAIxPWB%Aw6gVbX=zFG!^2v|{_ojU8t{J|HDlSUt%EJj{r3 z809Aq6Gha=z-+Eq5>8GPTB_MNs@4~-dTF?O)HN!~X+5LSc14!tr2?glSPu<)^7;ny>(Z-OlVH^Z7acONHoS8I4P@K${`Gqs(V>k(vV_RyY z9xmBbq63ixqhMT$Z0L!nk>`?Bs9K^a-lXQ@9ES;NLt;LD0@Ll-zz4%cdFLs);uW=Z zsXX)V6F%XJGoJyr7IAQCPST6zF0j|yYu~0#N$(vs%8bL~lR`N2`EK9QG5#i8I5F+= zkaQQyTDpwrK2O@v>ICN=TYy@1f|(CI;j*0fs#Q5558tX2RSQ@bqgN6P$uhjyO z@$pl=o|lv`vs7kz;0tzmQmz#+Wqv`ymDVb_*%x?Rw{VCa-=milES=#(GTntfP0l8V zI{K~!c{0%;C=c3L;@kbw3*I1-^PM1)xsRQ+twb!nBn~13^njC#MudUsX>!`KdQ#sJ_b?e%k&3P&;uAq(7hvWsh)>TKwnqK9kGq>r>K3ODRUbNvjfx6~A z>(h(=9AK3w;NAIYyv+|~(OJixkiP6&HS*aJsbL68OYZVIMeIa_Oac%7 z_!A9dt+Jz1$AbluK_Vk_k6^v>q^)*nA_+I<7UJBOLFyGW{36=qgRb5zMC~A_grP5! z&uVU;rqcFHzguR~GB#?x?7;OUi`>M$3dVf2B|Yj2l{4ok4Hgeqk8*53mKb8L;v`|g z#8c@>kl6L{7aLnc9zQ!C4s#8->bD`6FB29SmN1uCK35w4#Rm-Nhb>n(|#~ zmjVGF5T!fkC{`8(-}V9_S`}7lNNfAK4#0A-`?dV)o+d(0*pGW9QNzOz`a=p{KQYW$ znH*+%lV0R?T`XcU2cco+l&&J#vkFFpjls6Pd`MC^!5_(bu;Z!EV{H{66-*6%Nu^*^ zF`n+Jw^yr{tk=btu(?ZyN1ensPn};<`?;scemzM3l=^0xE)%e1huma%E+fJTW+#C9 zq}cYN?G?Zj#Zs{IV)x8KHmR968}l$uG@pC#e_8b%Ioz zi}d>-ESsPW-!V`-t3NE{+#6_AKKSebngk6LW%;V<^&`BfBq6=;QOT38Yod1J@vp{c zlX9>43C5hQ+9eG_liW27gE!u`A(41iN*;zMx#9D*{4Dx5h5HVy{I(3!VCk5yj5}|= zd49m+efc`3X)AE}&U$hTiBi36tODu^1^*bxaz@!oh2Sxk&bifcCJvVTcyDg1NDyij zv1w_8+Iz*@UEosdB}=46S`=523QBs;j1#{MnSkbO*wHM`$ZrQPL;OL z;nhX1&;yXIiwbtzXhAOMxJNOX5%1m`al;%Bea%!xz_%pm%uTt{_JYtbSH8}e!+MYq z@Mr4-S%nyIOE~2;fH<*<{>k$Fb@5l#@uIKet*M#C@!rXk;3RX%dOt`GIL^ce=EcU{ zn*j@rfi;rsW_Q4i&WYS%rqlEnlJg)>Wqb!olf(p*Izkzvrxe+%^r=%J^y(fTU0goM zY2y-;h_!OzPy(1u!j1OC;hly{e4-&r=7PXVqM=oa@dJ^tVur9ola!ZWL97Q=Cx}u4 zseV0DHOvFGDZ@JENP&i&9ZarGnGg^nYBIm-)T?8pgm z+-OMQYyu6hqs#`VFxkU(28TqOPSJsXO@Y}_5J6twTPKMVbGADt^r6*=upo%{YY@&E zWHSRkx}IJF)pQX^B(DOaAAn@|R7z)ca|CS<1LZkzNY=Wv@h}Db`XDW5#ykuWnM`74 zUl;QlMk2TkW(8%DxrNX2Ibr8qIXzVDm^{m;)LWb)gqW2QQV4@CVJ`|&Tvd<{x54wT zfukefF0)Gxd|(RsAQyovX~7ou)`{hG5x>k;GLE#g2lD4tAUGX}U=@-ijNq{qF+$H6 z5{Fbs1PkIVFPH)5nvsW}?ZwtXY@6WPepfjw0||+^sXCCRQ2d=BdB*F??$S_RbkY2I zdW;sZ#uguNbx@=gHPZ^VwRE7(DW%PeCUs!MB!eyHbsqJF+;h!f83fIlnK~AN>>5Fs zUaN>%9ZHE3X$|?7mta!nY!P{=AV~DlN2h{ML35_g`V9f27Uy+|{gR0m?sR#m5EV-% zw0yalnX*-J^*X4SHx-Gt(a^Brs4{q3Xv#2!k8;;6_8|O1LsptZ_SY-wNW@paiW#g| zvxUf=q zzH^kWqTuwczSvaxA`fo` z4Q(B#2K6Jgq$C`DDUOCSbgJ(1oj@~gNd)`|UW!8!0~_nV&DU?!S9qp-^;=XZq*w5# z1bpguCfsn7$YlxHLTAnCIB8^sK1!f2Fl1X$1osKY#5cZ%NLz=Bqxc(G7%uV^UF=K` zmf8!-r4=Q7q+&Ml);@%@gX$cmRVrDopyjSxF}tLYkdPD#TErDCokuka^NR?#AxdbW z=Q%^E6J{Ri&`7tAGK2Xrb_|L6^WPvdtF2*a9CyDNq}kA}zlz^bcGb?eNz!V$f{7qMH$|)zRP;7#^a3OO=K$y)QYas z+t1%l?U&(Vrj*u_VhDX&3OXB^Wxc4#hp&t*V~qYz^|pG*yVQ+zyi@F9erg7POB~Wv zLK8oNZ$jH1+7>-t9O;lmR1=UAD{%2dh+rqOdJF-}N7s!ZVg^R-%ZA>c9ck%= z*nvUU^ls^k-1suwucnSpY912@j}XV$Ic}oB1SCp%eAxDuVAS}_8fDfebXPShb= zXv>V3KGuigtU9>A2OQ$@6mO0i@)mq~)b$6l7!-WaSj(A=qvE4u z5@KT$@o`D<@yUsaDapxcsj2B18JSsG*#rV1CnqO2H#aXYFFzk>TM7yb3yX@1ii?X& zN=iygOUuj4E3Q>mR#sP4)mB&6RoB$l)Hc-CUatl0VCov{>l^DEni{S*UBBMk*x20I z)Y8=4(%jP8+S+!SVA;{p+1Uw1%meZAK(;&(K|MGGq~F~Hg5_`Cyfrd1Haa?f>(<1r zvB|OVsqyjY@rmh)iJ6H>fZ0iasoANixvA;7>FN3DnfV!j+0#sFAj@)oeraI=h@$=z zRJ(HLcTVl^L&Ep}hEM-{9v+Z{2PD%1W-WkE3*gcMWZ(h8(|=-Vfh;W`4DU0Lb_oQ` z|06sL$j$m6Gqe8pW60CPu3vy4ExOkoRkz~cwETba@SsjAcjNb~Cz3HycUK+#tI-ti zAH-odsJYc+>5zp#HVAyW;t~!v-U_JXOkvCRxd`n~9Ap*^&JjD&GGvL|A-Zg``qsFG z_JAbmZ4KSNsys(X^uv|mqD>KoEmFgg_3a_hxpSH0vyi3_}eHNfo<+P~SDKph|@gTvr}{%I-BFj1n|P}E%1G(6O_ywtRO{|XHq-+zFghK`?> z{uDX}0eVIO1|~s9WRv9JoAWfx}S5M|>O zR8|Ct$NZClDJ~~2Auj<0U`i>;$X=3@S5;6{2U7QxE@&%X)VXj;?-E-7l8OOZ)lfyv zNKM^XL(@b{+e};6TvyLh-@w|y&<4N|z{vIwMn<+qn7?3*?Tk$TE}NMC!QRyD6f<*x zD*)yeSaS;p3rj};ODiWUYiBEK7i$|ATU!@|Lx8Ik$ySs;nho_g9x38~XKtMo9NLYA8WMouybaV`G#m3_C__(;Z`1tsQgoMPz zq@?8Jl$6x;w6x6h^z4j`tC^XEtgM`@?A&aCt9e%mc?3d!PELMKZhmfVL2h0_enC-T zQAu%eX=zzS#kJ~6K>sxjwWpeIZfIz^-q_aI)ZWzG(cIG6(%RM9*4^IT+tJb237qop z>hJ0v=Sh%yexN`gU-8*-H#{+=0c_5Ga>C>m1&!4||@d7Yq z0^FDYD<(kX2Y{*4Z-oQ${_9*46h~u~S7n z8sR1{oM3gXx1}3cZy2y-vMDj}O_h99pZ8v~5oJ@n+jOagpQ^AN?&z4+%y%YU#66&N z%nOp1Lc)})uH5B9lmVjEm2B=B3`^4d+?C8r6b#aCsU+vq%GKX0?6z9*aYQsH z-3#%6XY)rFb5ZF~_MIlU1Cajzx(tB9kO%}N#Tj}^Di$hgb`%X4HSK@Z02@&%oXzsmqx)j&nfP*vSXT?3=3 zWvs1Zs-tVFr)RFGZ?3Ozp>JSmU}$A%WDTg_*x1g*)E>ap3{W{108shA3jI{;f939M zZR2cX>uhW1Vt3i)vc1cdD=rQWE{={aPEIaP&MyCx?g7mMig$N&^K^IjcK7h{@bLBY z^z-z>d3pPL`vmy<1>yXI1B1dtLL$S$q9P(=0QLWO>7R-pQ2(j?Q`6GZ(=#(NvNJQU zW@eohfb8s??5nv~3Au!vyqw&;+`N2X9q`X(!08&GtQ?U4HDCcyT?gFy>*^aDfO~yY zYg2Q3OG`&3=9AOHQ?r-0`O1u4-b#s9GSRvYifMrRQGdpw-*-g0E%C}vkHj*?%n%qYa8q9 zj~+e*Lg=3Z4+L#*zXEcrfgAh5!N*UZfT(%kUj9eqzoq?G-hjgYL}C6X-Tq(r_^I>{ z|5f_GmjSUvjLaeT+v*7m!PKpE2g&MN6wkVY<=6bV$WrN^40_x@sJ@jaZh782?SOBA zCxjs6tzmjg;#}2jM=3+cQ@=vXq6BkdgQt=l?RV*=##rJ^<88+QtTb7d!XW|Alm)Y(lc2)?&{@q zgCJg8o!E!+6mM%&8tyc}M}j`yT&ZjnglB}~c1s*`un4K2RSf-`{1+(6wyb2=&T^l* z%^vb`W!6f{u^|3!$@*QE2A&J0C&tMVoWBKR?hBh>D1cpA(l9myni_lsRn!q!gs26{Td9 zq-B(4WG~3bU6cioza*!iBCn{bpro#(tf6#4>%v9ti0}DeVD`OK|;O1^+)Y=6ZK>)_$&+0s`=I-zA5#a6-=;0Xz z;OQ0on-EX05HIh466)n0>h1G~FmInze0%}I|KRHv@drO#BmmGP;QUWJ1pfe_Lx>4D zZ3be4g7JR|!3X~(E;uwUG%P+mA~7N=DJnW8IyN;HpN5Z5k59-*NX$%3%1TPkPENTB zkdjJBP0ImDOV3Tu0LaV8%*zDG%FoKq&%Ro4l~4#k$SKUpDay$$%FQdz%P+| z?9-&|#U+4$y@1^8e@18DxpU|4-MfDtCIoWs?*pB}@7!!)=>U`v;ITrWLwNb}<)4)7 zH$W}f+XI>eVD$hr20$VC=knnHutNOf$u~N8T^(905?W!pM&6=kesUh-8t4uiJd}oB z7d0s9Gy!Bp1Z)fLEcW?4IUmoc1U{eEU=SxD->)>QT6-y$ zErDptlKavarRC4+B8;lNUHdA#`_mUchFMcRG^+dChu6kgdahmHdmO4BCeh@AXp1wF z(LH_&g^oFf*yr70hrU5Uq&yqlp@%oVa~>G6O%bR#ZY$sn1m{Dg@^a7P9;f0;cz%gE zihdH{e5+nWW-icqNmZg>C~?4jQf`B&nst&uVb^Y``mK>fw8U%JNGn1R!K-v=J;yw> z`}yRD!sp3fjULaJN4}#&HYe#aI4W^BRQG-F($3nm4}3e0qy5_`{H_x`pkl}cuo&n% z85ubgb_OUC2qXfS=PUK+#H<3T-?GuydwMpB0|EVVq#+F z&Ycq%7nhKbkd%}>fBw9bl$5lzw2X|5tgNh@oSeM8yaF&XQ2ak18ffbPV}svw13i5M zeFH<_GBPs4U@*qU#wI2vrlzK5W@hH*<`xzfmX?-QR#w2&zy>(rYHMp}XLlJG9@yJo zxpD=VAUHTUI668yIXO8yJG=bu1%M{tZwufFGyz`T-rhbwKE6ON;OB?K;r#vmfu0~R zFfb@6C^$GcBqSs>G&C$MJUl!i0_YMVqoPh5h0{*qKd%;mumu44|{JJ73JG5e8U7YLk^wd5K>Ba$pYM69i^p}xKjo0 zNKsi;S6$P9J4xWq5Z7A;+zz3oy`}a2UmJt2_Kxn3_qe#hb;JO-R9wdguGfaYSA}6* zd|+@0w_(7A2u6p8ar#%>&S7k1bbJ&CZvQYgF*b(VLQGCf;C2zyQ&TfDxZdKqdE7!U zKaV>`{2eV=#+@WqR&aLLwav|KoV@k#O$BZx`0K3j_deqPaxM5jz3rdt1e4nTJbjze zS$?jT=wH*fUkzeV!C$|4|5fZ`HXGzj8yH_0ti#zYTes$d;yM-)ytN)fB5HVi=#_Ds0rDn>;nAbNeJp9_2%CGPI<&5^$ zJgRY3!?$BD8dwVkoQGt05?b5&J;~~J7K9+vn@wk zWR$%4S4sTe!&Vfq);D#r`OH$l_KVweO>MaTSrM4Q`={1-gn#|EOEUUlc5()05lnar zlH!EHe@q&`M5g8&FNXKPSQSNn@B5Il-Y@_zMRhsrhcWkZFj0m%YB>ZsF}sX$;RX&St1*`kCn<>y8a`3szzso^mvVM6 z5LPL-mshabaL^ORQr=3lcM{}EE5rsF}diE`eS;T2L6lF$^BMad`{DQZ|~-E-8l^fs^!GJ6nV@0s+_ zFV)qr#3kU}1OHKbzd0NKC7UPf_9442;lF*OkDtVyqT|oP63)XD&LR@eA`{P|G3Rm5 z&*M_gNSaJXGt&4lQYgzvQAU8Pg8SF({fJJbI)GnoxON@o|%81Rd|+D zbe>my{<7pezZ6%9c~*#{{FoC6(u|Yfr1{k82u#*R^c7y#LnTGxol3v>WGe z9vc5RIx&j-uN|MjJ;28&CdbBShewzD29J9O&iV!~`iCwChA%#TIv<}ro18hCoZX+E zTc7!|Jo9C7c7Abo;m6$f)h~-1^GjRvOFQ#R+w(s*7k+Fk{#eB+1gIj3RajmZP~vJX4_CL2*0zpum5%E>XB)d`8^3Uz{#Q;me*J&X z=HAI)oNn%&Ztb0IUvphC`7d_&&vp-Roc{U;C%^WOf9)UPB+`5P2fz0A|HbaFeH^%# zdpP$0XZHWPaGM_7_4|Lm4si?NHHSEk4z4*qI6T3ze|UOu&Dp`xHNXGj@c8WL_zZU# z!v$ad2d<+re_v;Roz||;YX6T*>%T3TBb4DNmEa%@^r$zo_-_dsb3#qrc2-vb*cDk$<)XtG(=3j zHmSQ_GLvp(Yxa=loao%qd;4d!u+Oxha-PU_nPElaq++TSC!p>-H>?_ee7C29db_E{ zrXc9(oAz+Cm$68+kCmddzw^(545DMt?8k_x#$52zD)<+{uYD!=Ui)To{ML3&UADSA z{IT+3k0;p5niXEY&fG3-hllm>F`Dd8;WS#7VsWdh&E8t&wM3+h(hfk`Q=~7B7lz8Q ztYo@*w|{SfUs760&wGM*)&=*fMl=ym&W~?T^5684`Sa&qZuB?grYTMCV_KO|W=iT6 zPD|M$dJ+)){bC#zBVrWAawWs!K|{2e554^rnH5M^vMlq>Ct4+=)~UZxF9^zX;;>6 zAfWWi=#FrC$ebf!L|VON@Gh$T;u96CEt0QnLV5+QDd+P`F7m%|gJ4E9mw5P`RE3UCXa^Y0U63A-hV)J@lPl!>2>jlE6}PRqN8~1X>$DVyfcZ&?_pc` z9sVhSPX!`fV&8Yp`|$tVdpx4ily|&+&ty+&20$+uimXe*wr;dg>b6eQHObe|wY`5N z-O<9>ak8p?m3YvlElaL)?DzPa!4fLqduqqbgCx(NNw?kNPD`jr<<7X|#-Gv~MzDRN zM7`?Prrx=2`0=rATMrYgMP{lRS2^FK1au_x!$b_!r?Fg=-JGqa;$6#^(%Om|>z(t9dKf6)GT|-NvET z^~OQKMK@ak{IrRmLoGkiO4Gb^_eh0odixFjRF#-;1>;^KeSz zgbJo)8|1K48#PDXASNnTa)9cT55bA$$wK^Z(I)DPWH=|-m13m}0Nf_k01f#U$F^() z)s6M>Bcndy>`;0HGPKd4;3X*j#ogq&*6d7o-*TdLq^c8YDGJjMY zo2~f!!9i`Sx}X^uXG!g@MEVRw8h>*+cPtXb-26MY(tk=OZK5Hd>(0x-h0>io&gzh? zsu%ao8Rh$@>q~9#R5YwSm?y|I6tLZ?ASiGlSay0>`qj-!Yj#0ZUR~$Y;MgM!ak&B9 zuUgZHG$%h{Yxyv%-Pp|r$^hNgjYamc65~U5?*PcLo^gNBI(#&2F?EDOra67L?p4Qt zCB#0G7>N9&UYNZj(Y&NlkrT$Wp~XoaHx|y=xd^U_#8whNMn`%|(4;d8y>KY*;Rr^rr#A++1(B1ap-|ZjdAFu_mLhG1^+N$}7Oc{m zraQh!-auv9Ry1fUeFEAe8|IUQ2K%FDxEGx~q(VD^yZs1=_#z)}jv1jGMzzhA#bfw! z(6`|-E*dL|FmnBOU+{VwAy#T(KKBN}?np3oNd6wF?L6>~g%^<}%ALY?4{%Dl^vzEayuqEKZ9mmGLLyBzaR;5a7e*;@29iK3L_NVQvoy2z zD<07`x+LWNX#EUH~^gp--NYLHIHjEY;KIOvK+xVA-jVnKTwDTEs%_+7F0tN4V(q;K72K z0kl{*Cd25THx4{~-0zQ=AGC#$m4Ef(rX?}IF@OiQSmYyX#YEg_oBn)vJ+%1DVjJ}x zO#o!>#>^SAY&d9sndH+7P|1AA1}`93=$9wXX^Uj;O^29cLR0ki%;@s1A-DazXcETU zWqu(Dgx3{#iss!2=PtgPkBYy+4yF*2umz6BcbujqVnDN`_(cA9#ff#sfDF9|m}*&b z%AX56l2X9b2Zpf^iGZ4eC>fUq#dCC=&g1%>H$hrl+*Ts=?~f9fK@9#~RH6dF@E2zU zLg-LpM**PyX9Psx!y~sFI=?9~2$<|x3#rK^;GDGU-HqzeF?sA;=bI~`76id2ITTTN zn~|Hkg5f%kTJ5SIiO0!ggc94rfo%R=M1lGK!-_Sbw8KnLcUAni^SQvC?sO=FoX@xH zI=>DgE8NuHs{jX&S{5OKeI1){V$UzOY>xxq3C@OgsUw4bFtSXTWOT*+x&({{F%w84 z@%L|8Y`1tALl_{@4~((PZn^bV+zm3z!;QY8t+@h8UNz<)20k@bPxB^$T4p{U7mH1{ z?4Wnwn=cH1YPfiLzrrtBGNMjAD_rskCH1pNNd{JxOrBjH*l zX=hvW0B2*9IBTS= zuBW1al9C}@#~!7jh-WU{h>yTCXFviuYw#IS!QD*&!F>GNjra_BK;ce&Mo+-VOh8@} z5bYmkzGsi+$`2M*4fxZb@gW*K-2ddwi^rOJn(_t0Wc3PF%komoj}`ol;3DulE3x~u z0$@XwgEAb}t4b~c`LLpp@1&sK7we(upOh+bGg4m{UrxE#$iW)iwiXn|1!U>O_ksd? zqd||<08%yhnrMKV8c?7U5CR3}aQX^&0`K?&3Lk*FOM!Cvo&^LRCW~O<0lFU!s+7nZ z;x^&RxbA%A2u~_;b?PK9l$tfje~3yoB2{!u2~J^<^u&PXf=>L?tE2*d@q5ku#P;z8 z5o*2-+UoXE*6;+WMKptT0*x9#4GE+x2eEfXu_J*jFrWYuz#`x*i2+J?J{LrTrSPyo z!A>AGt%Z_`hXxD2b|v_laxW&q`)xS$*8n+9++;CeCp=Pg2^Ard>>wX+d^IJNi%K3Q{ooeLG&T+lM!BV+ z_>@rEriOnI;*@D()XJKGzRap{%qw*nft0lP@yKI4iJj#%?kU+N5v6jZV|yw7u>S)Z zCy*Kvz%Yg{W(Y7r16kDpf;IT^a3EqY+TRGkSpzmfgCtO1CY|2pSWJdWG9F+lS8hK= zLNHU;@M*wGmg7%DQ=q85vLTHF|AQjT{#wY6s*zr?6sj-pa3jmYL_g+{VtuAk3}t%8 zp{0w24e3ClTLwr42|&!E@4Uzn+6(2RGePXxYdeBW(15uBz-@sHzbLReLU|cs`Miv3 z5tg?^pZV19arBb%FB29#Zx<;sn@5eF3nl;tUw{-Um|YPX&!x1+N5R1cc$vYf!kPF*a)OXwrVsygkt_&!MTtJrIWFSt^p;#K z8uSPCiUUQg0WJ(KTw_49eBi<PX={f-A|X2I~{AQmg`^W2R^0+PKlHaqwmBU2Sl?`V1EvOU5eG}vjt+cF>W!uXj* z4OkrmG_L`cX#o1qfZ~h3E-nCF6~OIIun^pw*9jDe%vJLQ$|B0j4GJaZa=&xKiS}}5 z5D?-$hIA>;p-t-{J?pwCCucEWw5aC_p@Y>}C20l3WUd@F>g zR`+x`GNXEbPIk6QMzlzV%`b#_y%C|o)`Y)cLgzym#XzbUkUqf+PHVs|6hKh}Ah8IR zMOUciL)7xYCIZevXrPRM_28PF{~-8^+I%KWr?NMf^){Rk0VmxfUyGc;GWqJjbPmr@ zt7XZiOoHWkBj8P)4O)v0*v&$X&^LBL@O~S6C!)8=G5gzlgp!y#_f315{G85MP(Ej% zhh~a2XK*|LFmTNKtq)Mi6J%vw7@H0EeT7GhAiIAX9y`?VUK4)jUGa-}ntpszju#p& z1m;e0wrZG?qSvMFfngR{IIuSwuoMXR;{y;u0^|D~SE4|oM8(NY4dN{LTAoC-`FK5y zZQRl=W@7I@#J5#+krbzE1i~Bg`~W6+pcgZBWt%{ev5L8m1@g#Xi7|Uo3{Z;@7_xQW zTIIgEfCY2OZ8>s$Z3J9<3=e|;9)_;vB5F*XFFbO6U%o{6@ik;)v+Xv*h8YIWj0M!+@Q;D|fjC@qA|>&HI}{gg8K z%0mgiVRS4z-{;W+Nf>)ZeQ-rbj|dkkxU7M9^MN7=+@BR#2oEHU*D<{|S~a zdEb`hqTq#(CEv@qc?X_2*npDh{)1|}$3#mUK~vvEbMo4YztnXe3}kZ&P+!C?mB26A zAWKh>IHsqM7WdqWR^J+=Wi;o^0P-@KtLzz<8-nHo%oPOjX*~y`@4#^_5vZ|`9Sa|s za-?)JNI8a!-}v=u><@5l(=FqD3`BnzWwi0s2p04N%6W!yVH_7SVgS((f;+*r=7aLY zBR-8bPM%$=cc^IKASij8%wR(&>0QHhi&?x(J)^0{Smfmo_J;+82? z8gS#5oyr)PpzX`8&VoPlVGC2h!6--L2!aqi zOZRE8eInSj27-OW4y6ILxyosK;$zGpu!7HbM;0!^h~st?JnkWfUd8=Fel_b$1zAQ+ zebt&E(e6-6`6&ZTntIiWpRgUQV0bXFTO#!4t=gNfMj(70mf)EpFTPwMjGaTj)pRigT_g1M z!GL7wz{e-$oTS|Kd{m9@ThXBwik&g3AMzvU)?RI`Dx=dA{DDq2cG4x_DkPa`zY8#Q zfM|D91GrVuJXTJzBPF=Q9!B3CwIeO#E7Vb=$>EsH2?RPeSuH}=M;$gv+qSV?yLn=J zR^5m0@GMg1Oh(eX(_oRBov*DmH9XZ(KA_)7(iIHhT~e$F=JnlY=7Ivb8QpwfOF@qatDLnmqwW& zfKs}_w>p2bewhd-Je2>#8Ws9c?@k}@%ftA#!=^%}(gw3{97m#Sl`+fA zm!M=Wd#S6LB-*)Z%AQ}`eZQ{0%keB%)Bb!(xhD7PO~~2i1orVhR)YLb$8+pv^^e%4 zKX^78i^woA3A0iLYDwXq3syFQPVa|O95ts|3RgdCp9G_~qOviD9L?!TEucQI#cG zNehpVWqXcZq&`XZam7rk`CNzL7f9ll#NXf2z6PZ4erxcgY&~K;ExsWge0wNJ_4wsz zvXi!y7*pn}#c(wDeU;hh8vD546P7}C)4gAuCW^Jqi@eQ_Tqep*-$&grKX&_4Gqup4 zYkuPXt=%W-_=d%)=a0VlQu%wQ_mTfmi}J682_7CEK0f|+P5NI7W)e~=ata12YGxWb z7J7zTj5oM$+~m25;6W%8H6#7nfC+zo~yy-BexMR@=~3*W6p*`k|q9u<6~0*0%0<9X;*1DvO?x zuD*{wA4dBI$NE2h{xCfG4@Rawj7$xTOb(1p4USF?eVQ5>pBlp@L?@>vr>19S=f2D@ z%rD@wp}6bY*KgN+`@Z;narxW#m9O7c=f7^ue%YR!+50qcG%|LI%e@SZTnyqEzWke^ zk;`jFFNepjaEy#yjgDV^nz$PK{1=m#kp6YwLUK8#@~tTYs^=vH5Fb^I&remohus+P>JriJt#*Jzwjd ze_j6CyV%=5KR7r&_Cy4|(aGQ7q!ZWPiT_(pFOUEC zoSa^soL&8Qa8iqZaDH`q&E@}&zsGN$U0nSe|E`(7yt=sNKjw4(hng9Ct!BpYZwV8! zWAmw~#4KFGL?eRBp|CHWO3-CtAbAjcZDC$f_@{;W?4K6qGiBl&&A%+n)i+DEYyBA> z|HHzZj-OKRJmK))EzEhty~yZL^z?ujNW_y(Q=MQmZJ%-gJ0V-sycbxL42~7D$Py;eSf-EzXY~C z`e5P6`KI!?@$h?BHPK_X)*5X)0kDH>SqS2I%A(J9kZNaHy3IjrM@}R1O>XJR=zj9hAl-5TczV6y z;l48@2REWmY|Qfy;sKMF=G~cFDVvgW-x67cxNbbD+gP=GQf4~0iWGhdD+#c5Q7u79 zZ>DmZle(X#K35-=w9B3OT3(b{=U`j>Qo4`6ET5l(C$~U)ClgcbaCXX81eGM*$bYI| z!C9D-PRN=6a)@igt&l;vq8wWsnB|gEpy0gamemh-m9HITSggov2;6wBKi%{?r-o(g zwS6Zp@~)7R?FAS^stzRz3K)h1uiU!u(54n0S^8+5sIjcEJ+pDcAGcI>=p^UOULP%-4A{t z#edy~lVL|u2kjCkLHsc1xgd`LrfUnc;cw)%g}Fa`Lf8OfF{$|nc+}1+_r#-{K<@_l ztHC3ZV=Pi8XYoWxLV(!o9~Ndm{3(j3L^umG3(mp}k0JVsvoP~tTbP#?#YuCU#w9XT z$48A<1EZ~6)7@fcu{2R&{XM7-Q}xy z2jz0P@5o`l5tkh8Cl?n#(BY)iOT5Cw)TElh-=o%1+;^$ZP*?L;CnT;qXFVVD-zWSy ze*ImD^tW(wxa4tX7h!%^BFnI@q0lnycSfUBX$y(9-oV#S8BulfNAd0|1G&glM}ZJ> z`_MlE3M4vSVxbvJ0G}X+8Kw00(w(YE9-s|@qy(Hy|m~HO?2P92uTOv85sN zOp-z$JT5qxbP~;O(R(niI6#a{Zo?g=BSwBRWwOsY&lvdZ-|8`7*32s@#6kSW1G)MOdk!SSCCDRHM42$ONC( zOI46~Sv8nv>BYtKWk?Hw=(C^hzA@|r+}C2`@2wKuClbL66oZ*cx?vO9%fC6a=30m!^)3=r5d%=hFqqop=d{{aX?L?( z#e%1Z^U+jX{9k>m!>img?86!5$2b~Z``&r p=lr#FK5?z|>g;(`7ekgnKwBY3%N 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%0AgXeM<0t&$z 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
    my3+0Sbo%Dz^EmJprQ#b%# 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 z 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

    j^VHd*^;!R9R#n8gS7QiCvw``% zidy^!VK5vSN?ZSA&x2S7wjo?eQz-JRRJdE$$d%m5HH#3vhuthu7R`y#D1_p9aeN5dP=s^Y4dswnPB2KY_$F781a*Z5 zL~W`N7y@a%2(Rkcs@)3B9l1f^*p)F}X$4M|rB+95Ss~g6tu2obXo|7>hd+QWhuYry zS{XupRrj*auGj|XjVMCBiMcdSs@2q-P*s-6%{C%coNM3cJyUjI-}?M6tbmWWoYj)b z!-E)v@r~N1VB2QBIk&xD@O?$~D&P0T(?|i(?Hh){ecLunN!|=qmYLq17+&)&k0LnS zbEVuCcHtM^id}Hmy+q!yFwwtUjVAkC_O*?HizP^qQIgOxA7(7jWeb753fH~SoQU1o z1^zs12nGE)gzec4%{qihFxahd9^j4KagBn6`VtjL0(RIaoCpRq7@-kZii=VLRAt|+ z*oI(8gQ*SUHZJ3yg43I0JM4{H^#TMb*bosY0uMpgkwz9>lk#I~i*W>AAv zevu*&SrEQnga`&TcxD-j0W7HDn^=Z9E};;Zfnm;x4Ta%%hG)qwhZ)9)xlol9{=A75 z6ouC~r%NDWFMJG6sDy#O1WsTjESsIvxP(v;g-~!p)wqPtrNPL;33^;dCWcI|K;oQm z-7IEe*_DkO4F?vKVs4oZFnHaIu!d@2>6UKki;#p?0fXRWi@vbwo5ty!*6E$*>7MrK zo(?5d$=shN>Y_I4qekkaR_di@>ZW#TrY@bQmg=eIiwdFYtH$cA)@q>c%dPh6uLkR| z7Hh4J>ajNKvqtN*cIsA02UKANoi0&J2;ze{Ct$!qxsGVTv{8hphE4cEEyw~b&;mqg z1cUah7nQslECk|N7H~|K7`+K=-~>u|gh*Jzn-B%y$Y`zDXq+HekH!i9A63|j%`r{D z9x*^2SGlH#xP(b??bmkgae4@3!q}R=;cM#)p(YFGeY4w+=g7_N-S%w|d%NGBl;D1` z;WqAcMecJ`?&TiFwBnp{5SZuwntvSy7yCxbaO~3<1-`ZfAyW)2K!jBy32Bh%$Rh)Q zzKCkL1j?KZNmw{*c+qv!Xx8NlDno=Y;|hd)J+G(+On~oKxd<|&jxX2*duuH(SOgMH zZr<*&=C)zoZe9q7Zo9PZB(d46kqyms}ACz6~dFzS{-8^oJE5ITRl` z$*_cdeLT@iGS#&PRMH(Ss01{W*T{qHhnPoJnU2|@1k$R~CbRwo(!Pn#z6nM^oiMlr z2geCcP*N{2GqA9|GAnTEsE!0jh{2ML*IEl0k1aFLt=)d(6kk^~e=}^$&#z+hy`b

    xT#jPIxBdAoGLh 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 z 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 z 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 InBFUDcX(F^Q~g(y@J3pk3R_ zWm$`~(!0GAS>q%uwcEFyBEM~x{j?gWbWS0H z0HOREXti8v<*Q)=3^TLR`jT4^^IROg+6?kk_8b?jgUPQk-PP%wUVx0$jh>*=C8R8j zEI8KN(1O6&&83_It>x9E6hf78+{v}h-VNH{C5+5PS}WsLZv9-wtJ|Dp-~1hpxT)TK znw=@2f-n#RGAM&FAOkA60^JP^Q0iXVsNH2ffeLZ}#6A8TARt@veVu7k-|Ey~Ds|s4 zO+C^R1O$-JA7Q;i&vzWO3RhhGN86v#^q#D<}g!sNpQmVl$wE!pQ>I3WC@Qw83cI zm6>4gNz$3PJRw$Kuui_#~lHC*9>?2w*a{1Xk2;X#+iaoe&-sN=Rf#^K%ijTu!OTc3}(a)P55VO4rtqu+qTR+UdAxs$o~dh~7l~K%Cx{eF|LEp@JFSXd2!FkA`Xt4%V2y*^ssk zOhDDV5rnO-^MibsEIcu1a?mO;o zLHX{rK5JIV66Go#EFc5X_5;%P=s`H`S$SZDXwbsZm-U5&QU%72?`nA;xZ}3ejS@?oF`n0>Nv&{8e$*}vzz$3ws zCDEp9ySXF0!64f5Hn8zF3>f!r7bg@MPYoMym2*OG$5C(5c5jasg!mTdi3(4b=FO#~ zYG@Yg0B3TlnO`tFa4VB?3kO{T2i^sba1ws-El*m_rSancLHIgAunW*rUBK@9aI-s9 zLq)COV>UvtIXsoQJ}v52W56qiGaLPKu)H{`DIVc1htJETYCS*yz#zaTsu&bOE0hTjVBH zQr5s;M?XSK$M$cE?8ds=J}==eqgy`5a$G%L3+HmR7We6($6CF=lv~Wt988at5;c#* zxuZTpj4-KnNN>bGag@0}w6)rqXcK5)b#bvWKAeVX4Nzhy6Hu{g%=VbaBx^PBxD8M$Vs(m)LoG?g$Dnt~B7_CYKYVvSeecHksycB5On{eP zO;7L#cU%3+*8b*}a-8>i2FEYv&UBk+`xl>hgYWuMpEH4%HsKxmY0Bthj%SevX|4H( z+{LX(79!|m4K1KxhY(hnm-)qq7g8VY=jQH+=dw`u^=h?WZ8dmMNA+*VsZ^J^eq6t# z|3~$Rfn4Ke%q(EVFZZ39PzF1pUD@Mk_CSWUKwLho#E*c4fmD80X}=cl)rH zc#98uIV&)SpIYu77r+(f)Oi5CM|Ag2fkdVahZw5c5`6C=B5FVUiEw1aXZ-O;r@IG| zFmKdAcy~pdR6@P?KtQce3^VFu(1wI_$$~)7lnh)i$A#4W0|$r%{{|)~IPl=Vf(ivH zJlJrd{y~BU8#;`LkYd7!5E){eXc6JXjU7i;Y!;kZxO7GM6)s+}N%!*Y>-R63y&Ho5dBIr4Dj)JE_D;o0e%;p3hGB3gr2#CNlnSo3Ylv*Gm+BpuA zHV9kE?9WP2j^qgQxkQ`InXlAH5o5`cGMhWc4)VJ7>K?O$PwDX_b@b<7me>9reaw&k zlo`vPZ=W!gG*6#KtxDCzT5BCNMP6ZHF+~uWWTHtXm|${NfLfgZR$Mt17#2ua(3RCp zC=hrdT=$7MB8erMcp{1^s<)OBqLW0@RGxV= z$y6hh^~o6Jr$2@&RH)mnmt>YZnq=x^DjE6Fr{SGyDX6qs*Ah&rvgBQ@Gfw{c&m_G( zHc2tX7JE=G#pZ%gvc)VL*%Z-Efkj_boIz$&RRv;#nrqfoNuOgm0K`B*0AZ({nRE*h z7Ze71(4p^60U(DUc^I#szv{a$zy13AFTeo{oKvOdZQ7%+HAaVU!Z&^?l5^?FC(^>K zN=)&>H8~9N!9yO&F{|QPoGX#s;aG8#5a0B0eUqwSEX;{b@+?A+Je$iS1KB(f&W=st zfCDC=fWiq`M9bF|`RT#mRDq;`mA9AVIZ#`8aZ$-ZmjrPxx^y!*f&U-Zr5I0au63>TsY9!fnqV}B_IJ| z`k{LJ{yXr&3qL&ZCfdF4@xUivJYU7A@TFnI7E3r7#egwT^}KGHAyFJpfmbSblE_12NUFz*v#&S#`3m3S53~nHXBPQYu zGldgug^_FV5F{@Igsh+-h?d0UCCw0srkMeom+S){gqQ+TvgsgIYbCxAg3htxN|;ju8yD#k$nsVrvA6fpK{NrEkOVHC{*=gzG+Q$tA70}U;``I!PfGa zZJR<}7b#Y*w56)t5 zvKB@h>*L!H8&+>MmM5*8LK)n8R5X|&t(N}XM_e(A71f=xw4N19DI14^w6(Um&V4R) zqbuFN1oN=WG^n@8x|3EyKo4a&Y8o#0+snr9OyeYOR(99BRwkA!>;u$v<163!(zm{Z ztuEWZGTSw^%eD!`0vY(=-9GqMA80s38az4PeMqIeRS`rG5VDnf!S^3#ZSPp!k{A1O zxWgW%W!`KQ;vIc>r5o|*SIL>v#<|76wL5E5Bx*U!>8Fzm2JRmK;ozwV0tFz^3TP`# zyS-j0k>09=7D}w-B{NxqBgV-F_1I)wcC{D@ftzf#vf>HzR43@10#lxHM5i$2#`?&y zjpJJsEHKgwCE(+UI{^!IWFhiX(f1&MRCC zTTN-JnbExCtIWg_roG)k&q)>xKeNSw{xqmVov1;R7|Ns;buAxZ<%7U9Zdq`EmKU29 z0x9~oVRp2Q7kp+NPkPM=F)lk_xmmS*Xdse|T5VCS>}4~XFuU5AcI>FDkllzn(U#Sz zn;oz&A!G*0bla;px8Tpr>t;N%-f$c@edq1!H z-9NWrZofIgQN{LD#pg`@NZYo;|Slx5}l2GVdH$r^-(c9^{eRVAh55u(L{}Q4Tu(K zfoQQ0X(0;yEg%D?)U&mU$6(vSbxgHYU<6iM1IC}v-BRg|f&KZNMd@D>ahd~#&9BX# zS~!4Q?3FBKpbNer48|a2$e#zXU;=@`xjEWorGZdM9UnvmDXmFI8P`or!I~6}T$q*& zE+G>(p%eN94e|xcz>1Uwh64Ho78KnH9N-B!Ko&lh6)cTY=s|duK^dF@8At#cxD`14 z;15ca7NDS7{KHdSA-oinTAVI(?v$tPTd?Uw7Dmf~)S8ESnu)+r*f(@KN7!;>* z0;XUR=0U8%GAyQK4y9v4rcX>}UsR@Z{#6FV!yz6bG!((_Frs4ok$7%kUl<4%{@?^! zCl8<1!>MCL)9=!Y&r zP+BKZGJ_$s=!kX$hz^8@c7tW^WKaHNj@~Fp7$#2&uc&!!&g1H1q;5gsGVF!ZdWJ1LDefHsfKKWA$aFeR|Cae2&q< znwHVY6p27iD;cCUXFzo@F$t*fozV&&zt}d#G>P*B2 z9tvK|s-)(g}m8($JVd5SRs>Y>g&-g1z4BCICSYY(gdI zD^I}%ZV4)xgaHB(2s`qX9YU(YE^MPn>Vh`t8T5f4Sn7l-r-f=mH)v};XsdMwB|dB@ zhw>wJ`l@t-#IG(VtXgKT;)7)xE0C_J%C_vsqO4IyD?Df`$!7lP%vLKuO6x%2!^{3` zsXFOU0&R#2?a}@V2XJebl7a%<#64I;Dtsr#w2jf!rfp(E*D%N?aKa~`005*wTfe)a z<`g9e3e@Ypo~^xZLMaUjS&c=02<(2C!4>pXVI(ZW-YwoHg~L)R8}tJ|P%NfeY^Q1i zh+Zj)`eab@D2WQ>8w736&IEH_XUGC%%r2(UBJIx}?oalr;tpxe5~YqVX5` z>Er?{&K9ZTp6qfqXQ!s@=E^LP8tr4=XsovE#`eUBA};+R#Qz5A&8Du4YQu(J?y&M~ zKNfJc4luyjgEY*+9K1mUNPq@!um;D$E%YvV@{7^T#3c-G^J;=<4GL;%0xDI4^P+7g zTo*KrMblMpQ=|b&wi03VVfXg15C6mWQtJ5f!!}kd`rZWUHn4>jt>ccY{NiZI(rk?0 zujS@1i1up#R&mnmgs498I!ku_RCwR^aKX^~nqNYrS?wr>{S^5xd3jQVfr zO0?%1Fo{N{M&Ig_vT7LPGO&Iq8A~zAmbAdg{zENPvk%}z2dqOZFpuvliX^4$n_>bA z!~n0QS&sdIAf!MhbOI-20zK1nC)o1~KegI!jue=VYdXb02<-Lha8D5^?W9vdmo=mw zbV7G>rrzQ-SMxPzvo>?HH**m5u+1_xmAs`33LJHL`9YfL7*iK=RC@v^1OXoy=h&!5$GhFHD>pwJ=j7aEa(leKq1HjKfC}8&;TybLL|V$CqLmD zs6#u@!zJ-UKI8*F)OKy>gFW!BsA0i%$s6&q>k07nRD_(Qp#bp?wjpam5PSkBFo-6g z=7MAb(p>_hV!;@Iguv#oD^)i3{b^kOW;S?VCO%vPd6&0&pZ7Je?-SaCHei#V&O{u{ zwcb!6+|a3SvuhBfGp{w6U-Pw&8TWHPckvc>6mh~J6SCKSLM1Q|!iq(HAcUZvfp!n{ zc16`?hc||2IQhxLI$+WtJnc=yH`NM-+h74E)~9@?z)_>wRQUH)z(6G!cp%>i3s*u^ zJM|z3a-vp(6wujqLpFa-I9X#HWqWreYdDf8`Cd{3HjP2Th&Wx7c-v@5dS-&w=y!P` zwQ!>uAa}xGFLn?ZGCb#af+#lvEd`K+B^k`^cDv&&UAU6Rxt#yoE4;!^tAjk`xjf9a zJ@mPs*8}gq!hFNWPb@(b=eyDq!TjOS{(v~ff)?M zYnB0KtT|hlx1A3!(El@4OeH9n1(jN0M5RAbf01+Vccb5P4QMZ64 z%(GM`!K84wZtIJ%C}z@AFFA)|non}s0{GT8F*DY;33T!90Sff*ne5vAf} zmwLaKIu8%L%fCF#H~vc5uuck;fj900Kjb_=tW_C+;vP(v8TfY#T!J9iGZ4`8V$(Ax z0CFH>!X%;Pflz@xHn?Yv`oBw6cgMWeZ#~zm$P`S|31|Wr3<5Uoyw2l%&J&f+{}5ld zfIK_3fxmN92LTJyJtx@dRxqkv)*BzT{8;mS*9X4f558k?oz_%B&12Hp=RDfyygu0c z*=rN8p#Wj$cqzpv3YQWgvupbN-`=a_%KJUxk3Q*_equ-xxGR{>Gydx9{AB4vPKNJ){1F#mXRl*nqg3UMn*{grf_d&<4z8(w$T_v~Y43MP{ zvf_VnvG=F=o`bkz+@XA3=r` zIg(^alP6K8RJoF6K?hKt#FROcW=)$napu&ylV?w#KY<1nI+SQpqep#0anO=!)00?C zTna+wPnmuD_+{0KRjXEgXY}alN@fg@AVE-A(sYSa+fHwTWcu`p(r!y ze*q8t7nrbMiGZCZR=k*TW5}IEA!{kr&qt8eS7!s;m4OhpMHJ&_wnb~zn}m6P(xyZf`RV{d}xXw zD*3_>K&+B2E84a)ZULu2s8cw#0&}@gfOeH_UYq{tLAJ02u(ahE|Y)o%mj!{3eu#+ zyim|0IztglQMy~f4OiT8$t~Ah0>yKM3I`Z4z}8;n^d-2Uz-+lS**WZ5u z4p`uU39gp`2dHo*z;iRorI=!J5eX_3()i<#u+kKkA2jsg$3kSwsA1aU<_a#jOi=LC z&uj6@HX&}IL-bIFX|CDkn{m!r=YwQ&7f5Xy8daVmwwvl zgq9v!>Z`4GnrW=J)_QA$x;DCMuZh0;X|u^j`)eADUdU;V7JDA>(Md1e zbjf;tz<{Dze>>^7zivDBvJY~-Als`}durUF4jb&XUFZFGt8ZVM>)m^w+HAJlrrP+7 z43Jx<(+}!Jg@RP*MPe?_0K{SoGwy01H2E?1Dl_&FB<06H8S$)3ED3^(`BC7)gekBP z=;h95rr!Vm0T@654)7tVTV3l|*AN6IaDmDzo&z8FIgk&5CnUK3+B#i5J_O|z6d+o zfskux{9=r-Xglahk8b{h;R{=c!8n$X0b{V?RlcH!!SN6chtoYnNNK>CYEt@o-vDe zynwb5nPbx>F^4%pF_zJd0&Sicd6~6iE_8&+lx0VlSx5g_4}01h2?StJ&2J)0AAZ<_ zA4VFdIAL=^)C7bU^x^;~KCvJ(_1r#jnp2(bl&2r*Cl+y;McENkjbuxsL=~#LUJ?(f zUMwn6A!^Xx36qsG0%k*(NkN@#;+LF>Sz-(rWOEBv1er*;4JosGf;uDavLvRNd7A|-R6+%RAgf~2Ac$(l zRu2%6D-*qC)9J34z3p{xWDLj<4Y*?z2g!$W|51T>;8(f_S%WDGGG72Yq`&V)Np)ZM z*Jkn-3)@A38NORqJ(NMbji&m8n860rw6Gua@Bj^?m&2W-@spt(Wf7BD zAttsje*aNXVKr|3ire-4lX%N5f1?CH_hazFL1$pkmm}w#by>RmPd=p zrr{X7z0E>{gCM97l!4G@U>r38=LbIU!3pE@cg^u2N1Z#Z-x*8S4X?Ix1r(uT-753C3*N0?3X1}?z(5eO zHR&GqkOnh2;0llK)@`3-X=zWJ+C9azm+5=u<<583pLVV?j=*I+H+Q~u_Vl?65^7l+ zq#gtQha14XhF^p`ziRGuwF|-m{zUAX-}`34LNdD5U;jmk>~eq>AYg?tlz|Lk2!j=- z;OzcEd*b-E_{A~)ziS^v(*+r`aNWJ-0J{Uva(4H*;f&l_=(o)3R&%;tja+co8o6k8 zF*&?VZGHC}5&s5wj&)m@p#AyJO2k5KCI0LtDm~*(cly(DwsC`W{2yJGbIuC_+>;}u z-B(}nyb;23gSdRaVn>J@NP;S+E6NaDh@CyGg24yg} zYLE#%Fbcsi3_t#G3V#p_&F~D-FqO1W;An6Oy^zVoFb?JL{>Tsl)9?=QFc0Hs4Ff2P zKB5cXaIWTX5DD@5RHqQLBYFtPcS6Dq-w+WYF%t6*3JSt!B=I`rrXVQse;5%Y9PtJ( zF%(6y+H55hd|*IE@iG{|2STABY=wGu=?@Fg1`jY5ZIP!?U_^9r7kRN4eeoB8(HBtw z3~hx+e4qgeCK;7+8JV#eo$(o=F&g!y0eqlKT#*wIDkSd74{xy>d8z`zFg#?CJo=*? z&G8)3F&))$9oexR>El0CNIh9|mu{DlBOXCY`XV5(6kN5iR?$o$lr; zA0aD=a1x4=Xx=h!;xYl=G6D2PE(1^n9!4sKW-q@=FYB@|4HGW?(w+db7z8tD=rU^v zb8r5ktMF39%#sJI3V}*#pd?5wJ+m9xG9lZ^dV(f<7SjbIlW0uyA5b#^OfvyqGc~pH z{xM-w1x{0YZZkK7CN^i2Hsfh4g=RIO#y35Rqg>OYKrAzNa5RI*oz5n~z{qXhXcR|t z9@Pnkf<`-m(*nEFF}JgYj0T3dlRLY!o`f?2%Cm*m6Aaq(JmD!l6W}|g5}L$QJ=yb_ z?r1qF5DcADgnUUYDe`yl@jCsdo!%2ZFEAI1QakO_J@3;z6*N8{vpp>|Lho}z)k!{^ zGGZWF!2)%#xp;4G)HZe zLWSl-!xKV#R6>8$lsHsq0P{hIbU#DX!$vd*OBAbU374!?sV-=2dTF4B3Pzv)PDW4X zos9EHZ?qVC6E~CdOnH+`*-1W)vuVb3H)Yc{*;JI0^fbRxPP3;VkaJH%EJ{UiN&zZ5 zsq?5NYI&w=OFi?Uu4>vAs89zKJJo42>(rhevlsI6E)kPbD^-=`b26KTQ#rL$L&;5r z22(@zFe%eAzv@r>a~~U3m=cOWkEWnZbRw%OOO+{7C(Xucl^X{Lp0JWs-$}5FAuq2o zESpkUiPe-E^I;}oDU}s0A!b>twOKvsS&JcB`7$Zvl3K+wZ^#leU-cqmHJGN8P_e33 z(P%o0N~t91SG`oqt`kg6=OkAWTj?oZ_4OqC6#!kbSIadf&lQa1C`JCg^h9lGc9JSI z(KTN24Ol-DG{Y3066#;~6=VI6Up3Yq?bW~lH3S9qVb#@PuXL9vs$tazgFc94r42Mc zmUQs7WA%??X*QK?_GV8hVCi*W&$3{j^QeLfSaVgVy3|EqlxO)aW`pvbE>>qf7Ha)f zYAu#&+bd*2&}tonSDUk7CDk5tmTEyMY{k}-$hK@XNok=BYd=tET;OftHg4s1Zt1pe z?e=c*HgENIZ~3-w{q}DGH*f`aa0$0?{g!Jh)@jccZS{i+BMO1r96n(olC7jn>px1mySAKVuer4%>GYfYU5P#dZBKUV) z;@5sTQ-J-6fajNcvo`|$lYRTwB>q=i0@#4dMuIztf@hb3-%Ed2*Md3tvl{q=K{$jR zrGrV>S4H@QQ8zc|wAS55h8C{<9dahaJgH12KaIk?ig=+VG?@bVP@c2V<;CSxgfggjvP5D3*tME6^4+qdOA6jpJ^dT zd2dwtE4}IwLfM5#Su9nVmc5cPGlF4f6`v3{iifF!7*&W7xtNVvMq;t9QuYz*6Aa># zlP8%^^JoSf)2r|XnmyS=^XL&a8E>@sj*4Lhum_eclbRjki@DjF$5Na}8I~*4oAJh+ z-j{wnTCu0kq4XS`5!77k7CG@y{ePvnTVq@n+*b# zy?Jj!v=`WUA^13=FVi5xIhrq8ocY)yc-fa3nV5k&!Hf!^{kf%GdOOxwnc)~u!^WU3 zGokIXi#gh+wK;|^S(Fd@LASUdxOj`b@}n6djDPxJVtJxhxvR7llY@FA{1}j}I*Cgs zpJ#fjU%IQk8arZoifJ`$aI~Nu`ldUXg>>4Zcv`5BwIJmAo1Y1z{d7qs;)~zXC8*{%^{r2Ti0ubQjz*+j?Mu(A598N0EY_m_VdjhRNRt%k4B8jsexsU;eQ06VV5 zazE)(mNEOT#j>+unXmt$s5e`+vpD`-#dt-7*hLSUsU#bTQQEO_JGVtI7d*m zn3B_4wK*EN0kfyony6t}o`u>zS=*5fViLM|A(%V4Q~R`aIdAZWg}m9FrCYDvS+~V| zyvf^ijJ1n@T5p7VwDnp!)BBV2=sTHPu()}Zc{{MZ@*(K^w;vh15#pyY)t2*nEc3d& z4ZJ!8APsim7Z|+3A)yHlJi@0)v?aX4xnlz4;TaZT!#R8r+~FC9z`{j*QCR4xf!ZQw zV7RAy#990_+@KkRKn!GD22w!ALBJkrp~ZDPXQ(+TSA55ToV4sg7R-PKXdnjOAqQlD z24>*JmB5qgffg<>$~TG1i~hy};Gr9&yq*qk391|!yu4Y1e9Xyw(uO<)N}vQjAjv@> z&7E8!)<7G&Va`#(@Mu9YqC6w=-1_d^DY{(G!Mw}`eb9?}$U(pbS^xx+oCRD!1>PJX z-XI)$VE632BJd&5KjPAtfVukoBKG_su)NNzL(>Vp)J@%u4P6FyVbxbX5*)o5l)(B# zJ-RwwB1k>cG5ymmLe~o-)UD&zwIc)Kp&E$2*o~dop`i#)ec74a(#{+NSOCc>fdy2c z1Rh<^FrDk>T+%t+An;+%yP?cB03Eiy2eN$5vwg+N;Sl7U8I0f!=G@&4BF^Xh&aoWa z!92>py&L4cAjZAi{te>awVc=Kea`Dk;JN)DLOsg?FVy$F-=n-9xm9`D;e(D8xjonj5t!R2{iA@0HEbAIwEf4zoW#>HUGa{%+NUEBM84VEGA^}f#Y zeB39!+j;%|AEG|%wBG0w-sJPX9%dc(RX^7;o%VG-&w)Ml)js#_{puAW?EM`b>g&(d z{q&FD#qQkni$3+ee))+%;G_TOhd=w6f&&`AfAy2UyT_rsU|%B^#G`Bze>4NrWC3dt6hl z$H0P{4N|U5lVsml%(mXkW9NJN2&C-(-LdHpvwLr@?BkO$FQy@^GcI`=< zGv`eN3Cx=_k8?|}^y$>ATfdGyyY}teyLK}V zdmaJe6N3L7L=%&<)x+68cxbj#NLTVy<$e=#=~HlTbd%8R2e}kdYW293;7To-bgO<6&KF{_ zE>#(9LkWiHYd2jsi^_kpS;&&JP3lP}Jil@%?XE4IrYo-sH4Ch^45b$5OBz+_XkGHu zBB>8Vb+Aq>soslkzWVOVZ@>Qj3vhX|ltIG`F$g9D4M{e`VZdTNxYbUh{z57#rI%Wo z>81{E%yGvae++WSB9Cm{O|P;l0<0gKf4+IHWKcivW2KnNm!`z^@{3h2#sRdFghsyyq6{m0-#nXPx^ddE#v z-DFvA7Uq&~&Uxpae}1n$)QG*$7;Sq5Iq0f)$~Mw-zukK5u%G^q>$X!ad+ZR+PI=|J z>kjwtz}Mb7@x`x>eDcaK&%9o*yh5)!@=Pz!&h}i7eLYjX(tP*+;>}LHLcALveEH?a z4Sx8+x1E0aZqu&*_~yrdy8GVWkAMF9@9)tC^I2R{hH5Q=bwB&-VNUN^z@nGc2JGhPHcxWU{R1%k&z zVFf8Dyb|hghdk_|4}aLS6W(xz4LlzVUpPVgQKfE0Y+($CVnHBEaf(!|q7| z>N;u4RH~9jq8#2TUkS@nwX%{}kzXutiOcWIGL5?CME9}3ZkTJxV2;pHOz zXv0>Xah9CCBuCd5Nmo+xi(+J=3^$3=FlO|lBL(R~pV`oaN_3_)t?4i+y3tIIaeQ|) zVm&|FQ$5~Jh2+EJPl*aifb!IaE~Fm?g$h-n;{MQy;uI+-ZHm>bYW0>lt*B8|I8-Al zb*xeiV_Ay|$fr&+sy=O|AJ2+bC&F-}Z3U|>t7=uMZgsDG?JFF+I#yA}P@`Tws#G;P z&z5#Ht${V^D6eW)$i{V-WDRRwU#gav%G9r%?W|`<2w0`Y%?Ua{1uS5J3LQ8>i)n0a z9oe=TcuXX*!E_};sd_Xjyub#DNQ4buKn2N4P`Djr?QI8pMz|KUp`UH8bDxXA&=!_$ zL5Rg^uM3M<1VM-&DoF3*G>WelHMX-wq8h{MT7xD)1-)%=dsRTxqV6golv@cc9;jC} zB2}$u9phaz3*7(8f>3qmJijX5EX+ zI9h{`ri1LRHl#o)2SZx-24lQK!y*=mQTKS|l^)lHROsyrdbfh!QbDk_tA{wgbTpvs zBE}ePGfCSFSblGlzLqLIQfid-hii-WMo$tdCdlLL9K*jSVX5G3vb0h6fyWV z)U@zTo<=e31XxDdKY_MQw2_dNa0c0o{vNDp4exl%+eZez%4r*n-FqA0w80*QxAB1r zlz6)%sflg1^VIAF@rEqDCG=1X&|7ZDWDN`%Hc%KXt&Wfz;W0Ytf#(hKkc*r=EVYWh z^9>7p!=m32dC0|4GA3HpiZllQ5Ux1B8%>9$;Y5LWBDmce$Lyrk322tMM0E2C70x>z z_v*->4)v(>2-mvCZm)lRaEjQ6;*4<+Wf}t^q0}6_9DmTl$8zm#`}Qa#IYU{q1yWhXl=Rfay(1nJ@p^M_7dXNGhni2SyCX*nbG&|r6s(H>E zw&_j}<e5P=8F=3P`tXZ? z{Afw=f*btc2p`2mF=@ZHTs;t%EdKaF`4*)klzg#}*u*GSaU$T`dB~@53F0ksVso|f z8r_$5VELw9sX}7zwPFv5ff=ZQoI_fsg<7hGFS^BBz6D$xXo4q*f+?ti zE69Q^=z=c@gZ?ongEL5jHE4r3h=Vz(gFDEBJ?Mi!2!uf>ghNP#MQDUah=fU~giFYT zP3VMA2!&B7g;Pj{RcM7*h=p0GggxcWx0>_q0u6h=ytCS0!gjh80cx z^kn zoal;9)l_|mio3{*8{-1M2#mofjKfHb#b}Jjh>XdojLXQ3&FGBJ2#wJwjnhbt)#!}9 zh>h9E{)qKvNrR<|!xL1G#8hSRiJdf5#dT8R=wI5%j_sH?s+eDNB|NJbQvGF*@ii9Z zxLF>BUvwCbrRa_UDUbjIkI-~w_efkM^z;t5<`C3gC zkv(;b_}Gv?wU1)dNMbdS00~NxPz>01k*lMUED1}x@Cz;YhuwHqnj}NtC|4-SicKd_ zeB@G^s8$qNMZZuCN4b((@seH90>w}R(@_IRiIgze6;UY(cCnNSVU$uBl}`x~S-F)| zk(FT~lSfeujX)k{c`s_of^0}CZn;-Yd6io+mRix2Ua1#dsSvv0lwV<$SecYsSqxnM z*_U4#m|=Mob@>%+Nfc+9mNU7QkV%t1X)0srS8~Y}iis6>36+H@5XGPiGoqPW;G3TroDd-f&8eHgIh;qCn+l#zE zX`S6!m?|liPsx^NS)Jm!mq^K%cxjYJDVZ^toeGhaj0vBh*_to8pMfb5(TS8T01@eV zl-Q=6Q|S>>SqzftpwD@i5z3$k3X=vZq1Y*v5K)#>d7u?~pHhi!%?X_6Sp)v?DW2VF z6bgEj_W2LpX`c~Fqa*sDzloG{DG&~dpcEmKGWwjq(4YUnmqlTtC)%86IiOeRpm=GU z=J^jmil834qyJ!}Lh7BeiAA(Ip6?l$(P^Kz*_$-FqW_?h3|gg0$(aCplx*6j9U7zx zahu$klxzBC!oY`5I^Vynjs-=>t zl3ux;|L~_W_@9o-l59Ds<0+o-8LE=`mo-|LN&1_R8JiFxort-mVJfJP+NN+Cn5^2S zwHm5N2@$^_r?ZNrN2;R1X`DW~tAsifw3(fwDh80bsndC)(7CCds{X6O%B7OIssCxI z6ydDU`kc{vlyfF(K(j_8koiEuKig9*w(Fe zX|GyIqYwe6x)7X<*{?(KpTgR$zkrtATB)nrpG#S<#el4aNtGVqu%IfU+KQ&ZIhLIH zuQTYLD7vpK3ah1xpi#-D&DjXhN~8CBq!Svm2pXMFX{js=qHH>r0o$HPF!`pdiLgo8oEN*7{Ccih`kXII6y3_PD65ZfD-wHW)EAG@b!OSVlbq>$N^a_SLk{`sc2iMI+%p`|&gp;?y^ ztEn_9vT;kbT??yH39>;tpLRQ}1lyMi>bE2tuK@~~iL0_Osk8s;okmHuL0h*SOSD&M zsjVxfRJo#ud$JTUptic2MN7I=X|RObrEr?Dmz%P)tDTH{uBJ;Bj2X6BDYqV>nYSyR zO-iGR+n`-)oIMJ;YOB1D>$X4yw|E(_VcWGu+oslQv~-KP@;SJ8%Ai^csO0Mr*_ox| zOQAD)r@>pk;5(kI>$pTwm$zx3X*#JM`>Vm3rd}(fzRJ0|>A8DKw4uARs!E|*TB2-< zx^pX-5&W>8>AGkeq$_Hr{3*Pgnx$&%yaSxKA8exjybGQTtg(2zsmL3_i#owX0mDA( zm?~Km^-B>2?3}4Py!P9z^=p(~nY=4|wR4NZ+j~Xbs}SG2yn1WFWjho`$)LIWx4Lk% zW{H+h{HsTdr$mgvj7k(b?89%`oQ>sTfSmDmwPOyoIJ2fEJaLg%55CJmP@=(nZ;{N5mCv$sA;hXI?IHMmr-e~ zOslGXJIeU#ult*{Hv7bB8kM>$z*-rcWX%4VHQ=`ujDmK&z{706sO-ZOAqL30l(|e4 zoea6>TgV#xy63#K*BQcOthVAD%4yoIay%3R>zE@OvJ$(uL-Eb#yU(^P!lSyZsB#*uD~+8%Yqc0{t5Chso65CZEu5>ItSIfSfyurp zEUkbXoo4$BtP-u*Dx%cO#r}H~eDbN$(5kKBn$SO-zxOG&;;EnxExKN;*Aq=eC3?(h z?4$KLmJ#}_;Tob4P12*8$3?-Hn@gce8n3tc)D#-53o5q|OQkjK$r;O`1zer-`OL6< zz@x3zoMB)!wbji2bc!igN8@9V{$jFjCCy=-j3O?jaGDWh}E+ezK0o6FcV zg}>TS%Q(`^Q@GzYlA4mk!*fB;U@_qLO;ZAG9aa6^GcwnL-GmGd$Tbq+dSl0OQQ%&2 z;T{wa03rDV0S5s804x#!006`VDg&p+$I8aY$;rve)XB=u%*xEn%+1cy&e7P`)Y#nI z+uz>a-{0Kd-{0Wi;osoq*52^W*7nKJ_{7WkyTtjgzxk=W_@%-5q0Ib|)%}Xt{gB%H zoZS1U;QOoL`>x~rvgiD(_Wq^*{;B@{t^WS7{r<=M{?PvZ)BgR}{r%qj{^k1q=Jo#N z^8V%W{^s!g=kELH?fK{I_vY;OO^ziZY@$&QX^!D`j`S`{`~&_ z{Qmy?{{H>`{{H^{{`&s@`~Lp^{{H^{{{H>`{qg?%?Ed}a{{Gnh{nGyX%>MJd{`;{0 z`KkQssQcTc{n?fN){Oqsg8tBY{LFvvypZg#nB}va*s`I@w5Pwevbedvw7J8sv%sgS zxSgxFl&isvuF#FM-j2EDj=bo9#PD>@`((-ZWwZTXul`x8{ZFL*W}f_;Y>vW^wsrZuw(w`C@MQUv%|Nh~Ghr)<1~VIfmE~fAa!=`~`*f5qR7l zbITuUyB=b%6j`bVPNN%8n>|*DN?LtWVSHCC5wMj(enDSi_zd?-YNAwY*8I)54}Zx$nL6dYs-2vG$AM+pHq z69FR;01pHL0T%!OB?AH^5)&pPCMzW=AtWgwB`F~#Eg>d9BPc;CEjutWHZe0YE;}tB zSRWUD6%&gQGR-mw{s8|897wQW!6ge=ty;w@0TC$%2P*kNK;f!3Jd{M-h_DSqHbXXw z97(dI$Tp=+weexHAP_gEOqDWHut%GiGT|8LF=R>0pA6!}bffX7(W6L{DjoPr9=)gb zK21m>@XCT#)}GR<#|Vl+SX;l1g0N!X4_8^AR`R-(OEj(Yw2gYe_KFWS(VX%jnC$7e z69m6hd%Bk(SbFA0Y-IM-(MG}a>}43(McPwscj}_CW^Z3(gJaTGQW24sR&93J3hbgx z-e04A=~+73^fDc)RmHsBT6o}=-Hu0^j=bmbV9625IHh;*PuYQ9mT7gQTHxWt1!KP^ zSUc|Rfmd|?KdslhWM#G0MV?vS$2ahTkm;5G7bdMeM$i9YaV4)_C%=HX_t{2=ZD-w6 z*hRz`J;50S8FB;-7guTovF2KU0{u2%L!kQS{h zXP`h?NcWT`9;mioTIGCDkcJGFDCCet7HQ;>NG7S|l1w(~Iiwt{`WDlf;u#|3P2?`<|miB$v4td39X{*gP!wbV}82*A0 z6SQhX4+{K`w}{r`hzfrfWGGxS67DEwL$ zFW&n?Iyl{rXWr5kHkL!ePqEpf0mA>j8{&Kdv3@95Ds)H?%KGxl_hPvZ1bVk{3MwHKhOfO9KE9kn%K~{9tMXQ34PQ;08EgEo*HsK+}{`fUu3teJ{hp8c;E^TXBL8 z`4LGMTG5GXSgRh{=)@hoW+bbq!Wt(`AqWj}DQFQ!dMH9(z8n;-f`|bX{>H)wjs%jp zg0RL|_h3Zae1nzcpwJT*h#W~KmlO>~!&n}CUPOpDk}IeoFI&+@9c&1pjd&4=uiC_S z^hGg&)G#7e#9}@;p~astiyoCQ%Hke@yB!KdZw7&pHI}1|P`KzH!K(mZ<<92+bf%@LB)7^aCRNU;znO01pzt zhMy6jPZ3c95sL6Xf*>IZQd-)Y2ne;9goGnRXn+9#;D$Jq0&AuI0Kfz#f`oqh)1L*Y zpiC~9%Yqv8pa@Nb>^{ZeFt3X=y6h4aetY}TETGz@}nX#e`2c+6d z8Df!zuwjBoIDi~b%2&S1;Q&z;h!MJ3)503Ie*-usLFVMZn8cv~J{5=(x|smQI;pX7 z=mAoG027&j^Cw7Pz}4)OfP%mQC#aQ419&M_KmmZYZH@k|Y-dZ`A~EY+wau+=cgx$} zI&>ie_$)%|dRSHkX?TVOyB|=_`pgj z<_{q94QP%#K$-Lafk(No zW0yi+nE(LKQ4X}AovfUwz;bZnnckom&FDrunq@S_*$;kD0OA_<%>p5U0lI8qIS3)l zQb-7yYl^di7-73Oi9>1sVda`GV5m?UZ7C3NUXti}#b5TJi^PVv%i zYLb`OiPpVN6OEO^SvvvX+4#kiyfjz1#z6SRj=) zctaR0(gcj#u?i3f5+2MDU^__(vIan8{x^aIusIgSEkS|+>=a+6EJ3RS9k|SA&c5)Z z!i28^$0$}w^PcfT|A#fIf6xkJ18X>;OlTefX9J=0F>A%0BQe659o;iAh7r! zN*H~e;E-RWQ~?NmmPs50&;uANkO6qlz3z9<``-JWeS}5$5IAmFxDrGPLIA+hNAU*d zQoO;$@33)~K=GQPdd92%2NKZ!4QME7`s;Uc0|2O6fCk>vPLSP50~~ncJdNJ~VRnKyC-v3{tff+`q;ZNLC1cN9x7 z1P0JpDJX+ag@8a9ghDukL>O>JU^ED)eMM7PaCHR~_go_-ffx2yN$`9EAq89V4`lXD z7AO!^;B}}K2L=#XTDJ&|6jnt@6NI(STR0X`~13htgp!QsSX8><7j+wXv z&c}%wra%e6Q3XH%(bf=E@Nm%e0}bE+Jz)@7C^ay{GeFP-4&VSi@B_Pq6iaXfK;Q!i ziI7CleN19a35k$E5PH=(krY{x7I~2`^NkuAiAsQW)c1{@xREYp5sSBx4~LN`nUX5G zk}O$wCJB-W_x_Sk_>xEvaSid2FWHhhxsyEElRoKWGRbXMn3ExCl0`sRcNLUY_>)Z8 zlur4SP$^MLd6F@?kp&Ty{~%oqK>$Xelu=1rLK%oKDI{TuOJy0AXPJ`w!3mw<0bdDL zRS=J1DVLyjd?tyHL@7-`<9tHjU{z2AKwtz*5SOF~cvY|jOP~ZwK$=TAlu{4{s;LA^0A>s} ze29gbMlb}T8Issl1QMBwpKC37iI{1ONaB75IGjbx&}R0Gk*QMDu@Jg8+;-5(;+! zl_&>qpa6L0cXUNq#-%gQbp(3l0OlDH*jWY5Qcq0p5KA9|r}#H7*S2+;|oMiQclVVv2~s6SDnCyE>`3V18pg~bLJzd}DX z`l(U^YVollGkU7ZNfLs=J5x$goJta*Dg~7K6GJ+v|6ru4N|j4$B*Chok?N$91f|F! zrB7O=31tTFu%%oYp8QY_Sh*Ko(Q1OQrm zK2-$fDhE3dri=<0zwsABxskpaoX<6{HkuTcIs#M)qZ*d412L>jLa>l3sn$8KNW!m) z8Zp9|sX@A_CVG{x3aTu+l(D)L+nE#$%dx6j4TYf`pVF}{QLBT3u!FL(*75$RoszMw zc@$^)u_~(+A4{mfTB=22up-fvq9^!#Hz5$d9y|0ur=GSf~yoLTa<))t2|_-En%`pakw%Yvb~WEIt#fs zTCpkXw^9PML|d>hYp8Eavz&_*l54T0$+sn#{>zx>91aM#2Ttz_if{ zp8RkLP^(a{S7C4POmWtRcXDIb2SEiv1QiChVk=b*$O>_Vtz{a5*8b|Sv5Kpfz!;7J zB=YfG3z9>S@egd>Wm8;T)GlhIk>Kt$?(Xi5OK=PB?vNl!aQ9%r9-QFr4vlN$?(PmD z&}`lmKzp|FB%bohY zw}AJagb0n&wXs{Bin+<5$hm{8n1o_2t1eCi>(Y^W*$qW4i74x~hU%6H6^@GPm2mKp z5Z$Sb)2L1ijYveL&>XQ*nYloMj8dLV8TMSx5F)4PfI%D}^LMNky`iUriuk62=nl1g z9aStIt1nx+x1hi0{`!+!AJWc0l6Tbh?Jwo-PFPKb1s;h5#>>4#m3^F*{m@Y=8U{D6 z8tehR5i~ehssPe%nizE7PAb-kmhkh28*@q*&u-_+p#aWas^o$mjkcdRgF2N&L@$Gk zjw4-$J+b$A#V=r_UBW^VGVk>Y-GILG0PePq4x=$l-}{bFO#l&fb3{rk<=Q6QuM@?2 z64;T>o6K19ipB_TDpt%$u-BcpW6e!tL}64!J<|2=|1dYn@^5$KYWnI`$B258(MB{X zdbmi55!JJjx>kt9i4v1kkx9N1h~?CoCC$8|&Gg_Dv$0`y!3;qXr`D*z+yMphs`E&3 z;F-aCt?2xf4un!OutCE1 zGjcMsI>H`Us@yC}ALAM$v0;$*bf?Ggty@`@!)zJaFxSSkaLgQ9=K?_&`FZC&2rxg= z*I;Ef)73r|p*l7qHK+NyylqrRvQfmUTy|PH_r-Y%%E~N9vgCXL%tIsU79MlSSt}MJ zP8B0<5}x_+;(FN@a>R%$$X6K58h<)ZH-De+QJq1=Mx2J0kIx!nm(t&Pd`UlaKA0Wd$t>4sN-3UhrTG7XAl8;#%oM-Dg?%By8SAG#a3W<=jqCc+We-_ zsSDt=xqKP5LLeh(J#At z;&2fr`}8P{_)~+$%sV0RoK010t#NA})yHfia3JMch3@>s-2IP!B;nkAoutP3jmFP0 z8%>~84MwEcC*v(PT$j8o8BV`Z(!i&j;)@eR>5J}ib4;{W=NR-@Af)(YCXc_|KPZ3R zGj|Nth#_r+f z^=BlAq5CyW;@&6fg1^!EE)BhK7~Su^P&U-7V}{k6h+E8L;S|!WrI`2%a?wR%)7#5} z;~9iwmw#@+pJjqMmoOE_g=1s8>la_oj&wd92dotZ0n6@O$i>iGSN_#t3tvJwi&{v^ z@mx+Y*pHrE!irF9aoFlN9mNnF=VBactP`jssIdN{8ZFX1&P3h*akuP}${E4_Zptc*gkNCkc!PBDm-7a;oZo>{qp?9kHLP zU6f(70Dh^>(;q1UYJL)aK$8o@fDx8yj3!)=rnz$ZnIXM6jIjs|lB=6--|ycT%I?!p zra<6KH~ z0(K7CJ7*E$)DBBcf9D!=btw)8gU6JY!E~x zsmMgMW;9J`AGg5n)_t#K83%KU?I-hkcZQ-wQ7*3Ebn&P>>R{xG{hm-{ z2I^O8^#hd*WYk$pra7zrc--GYj(URwJovT8AokpT_=P~#XlEv# zB-wX-&?!%5VL2$QKvj^BN;}sUU5P4&vqn8$C#L-sDP!9(f?Q)ZR=CO8ynz=LitAgy zZzgUNhQl{j&&cD?QHlt)5yZaeDI^~yc!=?1vzNDN@OgD=@g9mSBV7{@NNNUcbkV4J z*>~8f`87o7u|R9t-RjD1@9>?m=$-b5go1sKKL7K%T>EG4KxXp#?e<{uKl%Sm-uxaf zHhLl`OvNWN4T~8SuMricX+N!lqu}EK*)LKsf=Wz-DVn=5+sF;!-z@Py$y3QINUx`(t@0p+Zg!zr>T1#5<`gZm5(;W@wAa z7+%gBS*NpVUG$_X>RJ2Jb4;xHp{Feq87NhZVxPk5 zhDgkVaFzN_I~1#bdiYfrv@KgjY7HQ#PSCP$+$w2<^x9dQ8C%HgX7e>w=i5RvPqma- z-bC%x6ihw1A)T3kxaBlyT(s(feHE2)angVF)Iwe7b~^DNyG6~@nPhRqxhR?LYaWG; zRr1u{1yhp{AJW_Ah1kp}$X3AKq(*P6v&x3nXGtGpfq$8V2EBQ&EsX3XClMXtZ@&5> zKbYO?EMho@1TEtP_%TNr3*7=i1<`geu$Zc%1xWDgZtyS&v3BQ?$nr^haqvEz8qst= z6wF|$ZJ-B1$VsR?Nqg5GkNRRos@Co&B5~ngn9NJm&w>7#RfV@bSl{&7{6i$(;`@EGF4di?EGFy!jOd!TsxWOAYiRIS?0+Fk z9u}SJC&Cd~YLXVM)WXRyhvzbG8eIRB|3hMSE`r%~2!?gmU z$sv!qwTt(wn{8owWL1U7r{i0KO-cVr_?;e$f4}mj9q-+&!q|ndUOhmNsK^Y%LogZj z0xJ5Iwh3}!^84TL>AVf0G*^OYJ=fT7ZxhK91er0-fb5KOxv!_J=*OY|Qb);L-+<=omxcAn`wjoGO2j@j_ML2xdT!*`5RrLOoZdu6wu%<}?#!Nt-``=^ zeo#WSq?)_vUsIcrMfrs5x&$Ci)>fjWymiu0qJPB~=|8%0QC>q-g;J}OB7`MBXJjyp za29~x={Qqw1Hk_((Tq-yBYoeBXnmuW^q%c7bV21b)uKU%UKZGXDqs!1(YV4#C`eeD zb0A$AJI{r6R#Dm^E+M{m(LH#u%|L12hsz$H1&z4!Khe3M5wD_4vruJBpW?I;&-s6T z2EAut3BhevzeI&k{`{u`7QQdrJ4g;Ix`a4yS41AovXS*m8Iu8JMXtGuoNL5;sFG?35M=B0? zzW&0UKa&@u5bZZO%FCSOV`C7!D)ou67gFUK=4iyH+sGY!8AqCOm3ByEWKr`O+{{DI1#szPx)xf z3T>7bhQ7w$hF)-5|GM{Vd|22nrCl9j|slU05@IZyDu zzX{=DwV1VOh427x{@XDsz^`Z<^0eXo?W}wx0sk_?`eQYCP}HGys(}3J+pzGhq=RnD z>cR-`3WpyQf zwz-KL;!r9wH*-mpGyZGeyG4I)Qto-EGmsLHO1Xm>@$9w1b`(Wv4qK@|7*0@25seEQ z>)J~^8?cQS-qDBDe@R`>BX{Y}u=H^z^##MnTe?oaLhvG5ia9QJEi1lEFE`gDBmKDk zmfiun3U8bixv+QoyuQvW-!|jv?+HIAGNqgDHH|Lrly^mT`ZV-)QtbS`czpfbR^ETr zK=pA|7xvSKggImY36EL`;?Y)d#nc<$isKox%dmQ3zt0YS`1x&xYUuEWs*>DcfpuXsGnY5rQzMR8c& z0KKVx|9bkV+FwgG_onCLX~RsPH?@pd^f=+x*J|@&v8Zfy6#8Kmq#A(7^{;Ds{8QG7!HSizb4aFm>Z05=%QpKDbv=XJv`|e~m~*(Ei%O9{01Jl!;z`uK|Hqv0`{GTq!u(Z}r$-FnHNmpOQjgkcC16#c6u$Kks*>Fbl?kk(1?t$%CW830FFu_5FTsDTqO|57~D6<9q*o?3q-_NCClB&93~>((8L|p;Pk;x; znmjeQe`*}$A=<7N3NpSQ{s{#r{AK}Jkqua*^-yVpt&A#NQ{-@YdWvG?{@vCnI`t|! z$*QmpyIOKlv5sid4*JfIB;L1k+z(~r@=X+gHZ{fkVu!yvDRQ3oc+P|TLpxb36&=op z1LsF`_D9J{71#=U?Y&rl0QNE-nb21$56?{3HTiH_1zXVIs*JRBY|~zH502xIbxLPJ zsB~s*4Jc(a6~OuMMZ&PLYd1tG5+onfI9gN5#Ua`sdEVZbGQbzBTy#F#IX~W2NuA#) zHGQWnNIeGoItt_+k=qw8F;cQgscETH&}|$A1I9{T+saw`|NGbT=T#XayM4VvrIu%S zYC>KtL^;h$SszUjTB)teKRlf>!LmQTQZ%{Rn6b#)>@KQONUYLtq%!zxyfJ2S z5^W+FuU$u5E-`zeqDZ+g7VNOjy%O6t`#PGUqN*4G-f$dFc2c>QQJahzy+rG9X_P$$ zPhNF^IvXb+tfn95dn>_{cVtRr0SY&vQyVH{TcVx2yee;%{liXGUMVBvS}KFQBX(X> z{$%RRD(aAcNn368I(YTG*Xe~=MH!Ilu9Ye(+sr?08PNSSs`oTDokn+xd=_W-;yJgo zRdZ_L=evECcds#=VhG8{N>C$&Yym=k0NFKEOskl{pHy9u!31z3Xhnul-_KCtNxo%6 zfMK(Ye9#Vt)LG`HSr+t>rGd8Nb8h&_nOid$7;ifT!2fVYDEXZ`~y56d0sgpA*i;n2p z|GMhXkcAM-?weH!XJ;jkTjez=mpL ztV>1);L@#nR!RKGS?gR_>pEELCfBs^*YCk!@1tAq z-!SNqHSFYDAGBT{@?L*H3mi#ZA1z)VYg!*4T%TB2pFCKfdRU)E*qFiJfY5C~XZbef zWH;t@HWsWm7QHu?!ZwyuH&%)_R+~1~1~=9hHZ~46HXk;&5H`2*H+SevHmz$R!I>#E zbzt=MVeieOFcbE<)#IER$olkm>){veb-Uut%ZJUYuE~CYX>8Nx`o7o#D~QZ{?M9WC z+L@%YvFBp2k%>C`d2p~%RdPnE!wa=~Dnu^UTN(zuHNh-_$G45{-IQg$bsDycj$kO4 zqxL|)Z792L4C<5(H4V)+d+YjaJ%>H@0y%WnN=e!J%V!=G&<@RMdoM1)X~ukKGsC9e ze(Bn7a-2sIS@4Sr(jS@) zh?<}+f&)^`ae;=!z*UyqX>t1PX%tgwU<2#sFx#Rf{-fD3ni*HxK8)P9w5}Czw>h8M zrfiOZQP}c{*kn-7-lXQ{OCF2zM>tt_OZKu#b4WoZYfsZXPTw2D}G$}dY=HJKkvA#S%Kz~&VL9ODZHcxI;cJoI5Dst$AyGzbL9xukFwj<{n ze~5Qxk&36Yuz%=OeZV&%{RQzT_Q3pR!Ajcr&>XlhU#S}aP1zH{w!jA-7%U#a(;u>L z+DbregMfD2yGQU-*6)Oeu*@t87B_Iw4RM^EM9uor{vgr>+ zr|h!j%<}n9kQT@yz#caa<+bt`&TjQ!{fF|KK99% zCzjQ_Q8p*(m$n{2htMAIE9}r^ejFKkWPc)u)-Fb_GED zruefgZN<3e{Xq<;#O_hTxs$eT%g$U!+efF&MGNSVntl2YM`@a4O7I!xoL!3CZtA0c z&*GL~%tfD%Q*OMIvX5O?wPWLtlQQeI8pJ8z!{zt~Yp)V3P_7QnkDZmni?K`lui*2h zw6jAKm#?wJ!I!n}w+hQdWmPx#QaS?KqX?D0;`_d)vcHJ&2s^wU6r)fkPB% z{Eynj#NzDarBm+aRYkM?@}l)R{Z;Y#X<2t27SL^j{^QQ#Qi7hT-czH1Zb&WBx!0y@3DRGi?gr2Q*U+UOcH&x$oUOG~4-2l_OXyx4@X(wb9 z7mUNsqum#y7_R+5Pl7Osjl=C}erW-yGirpKshnFTzVdafCFZdE>ks#4U0b4-3sqyc z`|8Vn{@wC;B2++Ku=VB(wP(EB&%j{6f~%W%AK|Q_V>{&FfanlU(ASw)FPb z)IlNp$xOIM+T|7gyDQcE8NSIaN5Z`d#hqyU6(s)b-=eF^fA+>dy`;M3zL<6E)FJJ4rl^Sd`mtcsQlMYnBL!x9Jwiu^f1+_e_qY-pB^>eyO-XJw)l)r z*)zSLxJx`WV|*jnat?Wabo%-=qUFig_A5u}jShp02>YWtf(3`%C1tng2>tCRuq(gr z;mG3Y;vpLzps z%fS|v9&$LuZ{M#)Sx-uTJOK{ER9=%3G>0Mr*yY|6wtkFa{!B)g_zZ>~;jL2%3O!#3 zJ$-(EJNnt$@)Hpz@+TY;4y)bue<`6Tgh1L>_2|9`Oj6BCJ4k+i42gip`SA_SNFufT z$DBS3Auiok8mTn@0+jh3n{{J~rCwB}pdD0(_6iIT>SP~A8T*|T+6F3JgPP5A4 z!EUU=u*Ks7diub!Tx&6$%;xyWx>~1TAWV+zT`u`Ye5a(!@vEg~lJC|32a>8CZ({#F z^gRoUX0I&?TdTR9aQ|Q|Q^51`{4dY(Oo9BGw#wX%Wrdew!;jx9AC1`cwsY0a|M)N0 z+tD*^y8HyLe;I_}a=5$--tLd3|2$WH5x85e6H-fXc@us-Uv2ReI1S*vzs##}q~(B$ zzTBTKHONDay`CQ$k_OqC)=9;b0FydI8qko>8^eF!Ulb3sy?y>N?F&0GqApWE1!~DM? zDQ2d^d20hJWn?o;C9@JUPddePoNoYl88gELEVLO#oR2MkC7tq$`1#X{+HymjswM(_ zM|sexFfMZmFP1)hNgj293Hjgc(;6A{9T~-O{tlK#T1AnnhJ|=9wq_}@wX@<4KhS6M z{qX2>*`4SZcAGO4y7CUGKGLhtfEOhW#Y2n|*ZL#P2-nYdaGk%Pz3@lcwS59B6)yb< zH>Ar07cVh-1A`OB_4J(EsMz?bh|qqZQY>hae67D<$?79J>`*$U3tf7PIDKoVO(KS3*abobMpHC+B4|q2ZEyE8W&) zhHwGke0w;`IT|5p!b*cFw!&KwEZHP-8!etyXpVlpa&8W_7&nwGw4!I~r47_I&%;dL1 zpY0g{$|(b;>PQeiq?J6X04YxNRmRUAH;R~DAIs40nquRh3E~$V@rB}P=L^z}Q#E~| z*_`PBhDNg2j1-~01y|2tnsv$A+E|Z3NlHD1a4}x>UWb%De>j71A<*^!wPX#|Y~i-V zgt{1-j~iv989+*$Xps3ZCX7Wp8^!iecCoGYyR|k2n!s#RP1vL#FL(nYERe{lAA$p5 z3K9LLC!(C9LOJ?Jp5o;j^(SeK=*2r}zGQ%`AuY5l5~xBe#yFxNivjRg%nW%F7aUa( zPfng?3FC_vRFnr=g<7akeHwTk#3`?r{^MkQGL+FCmM=$r^DFWO$D%RxLs_+g0nQYu zcgVAXQ6YH|{KvJyhTILmrvm7C3z;VEHMOYk1IKWS14l#^r2JxMZ20&&!&MU{vuLmB z1qCR>(AW>6S0{>|77e08^Kg?$6HOjIcn=T1{A}em8@}S+z(ADy-|%#d(zxX_Vcd=R z7_!Gw6~vGT&BhM}icyYB7-H|jTL^q(RFEN=jhFjXME$=VDNWlEyF)@sq@ej;H_ry#j|PS^Aaf8c z6pL$6s(yEnRcTXtY{N`Drl~NPUY0h{WRD|>I(c=G*CO+4ibvnEmkQ^P$4!Y$)LdZx zRV&D=mPu8s%@?U7@n;ZAj;nSSzG9}bZ!|n|A+-{eZ{Q1F94UM7&Y`0jv0{)2o|q30 zA(e+?K}H7x0W~W3R6Gho)IBad(OSGC{Dmkw>`%1-V%-`M$vX@9FAB;0P|412oQ2l0KR{|y#o#`S#8&RhB6oz{FF1Bw zLwK=VV$sjb?etMCa8lJaIgSR0%tTeSvDaP{0RpGFn4{)(w+kuRMu^J4UDQq1)2T#v za4r6_Sc}vA^&vQ9`YPn&_;{PKre{-=?Hiy19Ld^PKde0XJ?*Z$mEECf%f|3`>U;BQ z{^u53(0kih1P!l^>c~DQ-4zlY-bhUP_R$_;J(JFMR>Wp(uTrQn@36>wCfJ4lS;V(; zqWHc{u}jy$pJ1U3in>?}qg81M@f(feX)JR`bTmimu+jdJQzD2!^f~BsuJ((YVGLV? zIq8>Gpa_3`5~$eOvtw=3B{|hY?v&723ayU_k!w~A&79GURzEO|b5=Fh{CF3Mkm;#y zfi0F-g-XV?yPstrwl6*#HUpkRp-sbmmv+Yz_v<%Tnd-c7J61A^?Qg9L?TOK0OEkY( z1mg`ImoB=Z0jN_7nqi&*;|;~AuShq+%$0ra&XLqjll_l5Vj(t(-|~rWp}y^5=77Z5 zz9Y%cEo?6viMbTU8wR~InJtu(eq=^8273y+X)orRaVe zC$AGoLG_dQ&5RJDwqf4LWmPoAIQyeD@-DFD3lPY}5{(pk`&Wvy<0R9cc5>uiH3jmv zB}Vcz4v4m$LDH16+9MQ!v_K+fFe_RJ8yOgXf2&hAPnI=rA0I^EmQSDyoFxVkQRan8 zrV}(uBPLvs5`|GmB*3D&RG!~_d{z3+5X0{8wgLuK4 zccGxzg^+dFQCn-uaC8DTIn7Zqq7GSpK+{F{`f3rd;Z)IJ$%EI2YuCIEu5T`5*d zQ4|0Ze<%?~Nc;@-^)ft7fDwla;F?$m@wHICHv0$-w4OS!jtyoc){sS}5rd(Ug0T=| z-F3PDJ@SyRu#GLIFa6h>CN3b26A@e4jZ(;gTKKR~xzbWZ7mPn|DFY5}m!(u80gIIv zH5dbkzmcg}lglsX`D0tj6In?S(W1(wNuJVPGtz3%DN@17|5vw8M|L3V2CE*_E6-je z5T7&>WQ9Th38Q;VsKmHwa{E{wCMmHoD*r3)4$IYJD!wl%TJ;w$9y3&og~;rl@-;9#u~ukkmGP7&Eg7OG_9 z0c%$vZLbTqkvr1QD77mHW2rr~Z3oF`0ioY^H_~T~ zYnpPCM{);(C?)9wnOU>xDw&kV03_?BvagKt$jr)Er?S__`me`{C`{jR?3Gjcm<<7} zQY-TfZx$Jlff^%e<`Yuu`Pl1 zIUuk#*D-?atn;*jv?!RdHn<6=*O$AZqX4cmQ?-!2ypg*ifpdbXo<_dYTGq_zlf@3? z6FjU*q^r-VR3t+c4(N{>E$t4oR0i$0WYuzAkX(473LQ@6=1``prb#d;t-QS2#k$6w z@)-jBH6OASWdF-9gh3z1!s1Y+$b0|?Kmu_3kh0>b%fCZIeCtbyB1`hi>6rm#EX#ig zwIw6?Dv6#Qm!LAsJ~kvu7u^Klg7PZ+A5fdbT(%`d*2R)wJ7MPp46rS~(;^ChMD$|S zPn~(Ys(`;ZvC+O*9!K|6OOzQ;rWgeivC;90vwpOd`{cOEg85F-ym+uyUA3_|` zx{)g5*<7Y=!Vts4>K_)s$$h5ee7oI}NtNV0i`0Atk?6(4?&8`h%X=k@)CkLsWX(EG z=zY2C(`i*#clK+2#nWMxof=z*FzfPW>AkQ^p^aE4|KTz|NGxPek(oX5^sL^4t=@<2RoDrd zcJn~`_Muj4q}EGxSx~K5 z9+`gOEr)J=B;VM!!UP;Wl_#_d_DgohFs&gV1(TM#k_m9Vm$Pk;)#NF0!M1R}w7WXA z_ivWFzxZ%%{@}umaEB(uyAvbT;TP69RNr*Mxp91{K^pXky+=L}CRgaB0p67)(O*kg z^(E6QP&($I-&RXGm5t;PaRR{%@9^Ws^hdGwvMHv#Lk_`G$Ml{#V`*hqna2f8mh2<| z5F&5(Dj;F=O7i&6Jv|HT6~{XFjnopyvz$9?AxFVw{Z=v@;r6jKD)^sp#cOcgmZAIO zrfXL&S3J9edSMR{10! zfGERF_M0hg92uqS8fx0OWgMe?i6C2nE@x; zKXO=FFSydL3Q+hL_??txs-e}P|59`H8&fRrx!|?!l)LIkJhXNZ4E!X${els2C}8s`E}gZ z8`hW>Ry>nb`!d{j^gnSZ-zi|S`YAQEAvWVj2-pr)VU>E3BAxUfepOUKG*uAP1Dnbd zF#(_vAcr+lqf0M`fs!AiSprwXIE$vZ@gVi99Onp2q5s^#zW;d=04TZXwrLfofB;YV zeV3GPf0no8BeUbb9JP2`#a#<7Jhv+1l_uJ{B@qdkM&5t!ZB$-=GFERj)^F4Oh^)ju zQbd3qHNokg@emCMsr&n2x80-~z-jIsA}W9~vq5hAocT;Y*{)s|hT0=J->PmgUM62b zo9}BHNTd)s^K39G3jnfVG>zY$CGfR*0i-;Ein0KyroQH6?WRUj8R-DWv)v#lJke|k zWT$YrvJH{O<8z$lr3pZmz}1b=70!a3f;?2iWkk?Mx-bNsS31S0aV#gfU;c{@DzEaQ zR>W3J@oZ}5SC1)Y2((vp>dSE4A+)H5M-4f!2m*wB>(6K(ZT5|&OOh9~NhIb*tYJ3_ z)0_2D9r7Koq6t3U*ty^9E#Aggdrn288irz+ou5SfLYoIyA$lteZGk(p>(Cv4G z##)X@h@PLlZgZ&Z2q=o_2Wxlut_el)S9^2ecLx87ePctje` z*td4$p2S7zBZM5bz#nBTZ6r-XUdmBzrBrud;3Rs_SeEhB-3?eLo8cQw)c&)c0APxy zXL}Al!Vq23&fZ#;LM-IDJ4*N_;lq*Ao6j3#m^SNj$`zG#Z-xHR}_4P7Kt;SDxuHvb8SZi@VTI|aD>blj#lqE-Q$l>t& zM^rlERGPQh481vF!uL*}vD5MY=SXe!mEvD!2h4O<8Pj0Cuk2mVhwW5+6$N&k#4j!V zk0bRH`tt*jFk)+;ONMt8KebY3lPt}YN$l-Yqls<*hn0OHh0Nw;--j-AJ~MzRg@z42 z3a8=Zos|qx2UV~7*L2>GXjK=Zd}6_BJL2zm9VGWXhYV8$p=mPXj4MxpiAm=*Mv_QU zum@kbW7+yiO10I+(9XUBn2co&1XOes~ZuswKXiuYqGH(a0CL^*`X5R~Vp zL~bUuro~uL=j3`0Me3D!|ISy)a@B--P6^m&tIu=+bSh^QnX2YzmANKIr)iAASp2ix zIVUqbn4rdPGSWD=8A3-b?s+})IGsfU`zoFJaib=kC1c-Wo>|T|XeHbx#PoyV1?8^V0u7QeS(# zAq9H>7m^w%_{IM7FZ%yLQtU)bfj89i+hN2mAH(u$tPor^_L<`iO|B{Zy*MFVtR+c3 zxD}S9oh}@%U!@JMR;e}Czo+A|O@wR$_{8z%!)qkz$<;N3B5-0TpxlF<9@itD4=GmC9kxrRf{ z&8w^Il*D&4kL@Rh>`%*;J=)3t{Iux!(;+d`de*nj?vUn_#_yOm0@d=!bW4GzRmOS> za~6bhmXA^%v-f=~&6z`@_(D5y)X{!YI+)AhnMLxSj@vv_+h41cidVy{hT@FulkWKZ zcAA0D+FevlpQWLNYkRp_MXMUZa+j^!a&Py=$_Srs;^OTYo-(?(IVTN`nV= zQ7!@txBlEj?6Pw=b0OLZ-$vcX@BQ1kcHSIsw3nhJ~6cDX3;G)&Wi$;~& z1?5O`(MnbB;?uzkln;VqIFk~TjpXq-Pi=fWv&UKKxe(wTD1(6J;dCnfl1S3(!N7bo zB;tOl6vo*Qci0_?a3X$^+!?FtFL+7k$34)&Yd?b|YByG28TK)i2y^A!9mSXQKMs-ux=+~n16ljZdbO&1xZmDi8LHTVIJoglL&;p!9M z?^jc`Q=*#N&j4-BYh=Mq>;eBRCrKdI2eF#(Bl3)3>t|R33=M2WNJkT2+&x@&M97zo zxSMnu_sHfYbA*h{+vg^0yw)0u&q(xm=b6+w8X8KW$d2i45jgRFC}JBAF1Gx|W&K{- z{zf9n&jLXhJpL&xr0ds@>YWC>e#6IEYxl%r3MBK~`4hInx>V|aq^_dr1`V&>NW@rH z=e|j9l&;JD7Q==X=0QSK8I_mkY3r-(?mR!CGoTQFnVj)xyhmh`nkOvy_kD6+k0H=L zof@D0$|cA0=R<1Q+CwdWbuA{D0DBAyxSQY3Ico+;dg8Sx*tj5sY;9O1xip;1{Eh4r z$(3l~2EL|WBX{;PneFk}yX@hpbQO|pHxtk1{T}T3)I^W+3-+Ntd8)<7v$5fe27Zqe zTnojb2oAG9m1?MdsD5!uH{@N!m})|6GjxLf3)c@%nXE-~XLP3M(5{zLt12Zu^w2oc z$UePqc=AF8cFaWc3sPp25!)&P?5DhP_p{M`OGQ@7C^$ee{tuJvxZmgGn#Bgb$!Z}O9 z``SfQA)M{k`q-AC4hnbW^_)?|!dJjb(U5XoikQW)_5Sk!if-LptJ8Rm53$?06)O5) zWg8v8n{oRvV-wZhy({vNNtNQmr(Njl+FAa6i;e%SN6k?`Ld|ou8ZSJJRi(|I+~v4Q zZ2gXp$_5C73K z2TeNRS$c*t@HK+6&>Tw~#%LE|S`vJ+bM5(Y;YKrHU^#}khDQWYA)7uSC+EA%T3qAZ zMqc%zwqfhjuJ53!wD#IxLQOmaJGb6BeTOTO5$vu9C}gj|kfa~?KLpbROxC?Gj3S&3 zzSe&XJ}B0(+E2}N|2AWmkT@(%G^22!pL2D)Swo&%hRj7gH97K$lOtOhU9F~byiUC8 z!kt^;tABe3ZN}&*3|?K3*T5g%5d1?40mg@%bx<6(2 z*h_f!w8S@kpaidP(6boe?@W3ltTP26W^tMe6$<6n;i~o5ksYk5Afk~SWcxitrjXgQ zow1XyWU6kM>b>X5Ef}@n?q1wg)!^0fy=B!Tj2T!FwGBD9o&Eehn0OfS%S5R8A#XL| zDih#K;)Z55m984lZ)($z9hO`=iTir1+#G=}l6W^J$ZrY((*+^Og?VV3JbH>kx`xUN zvBz((Dp)1G9OX}jLa#?@Ihh5)KK)s3_`90r6?csNyjmV@Oqnjaeco`#l#7f0sn;Ky z3u$I(#<45Rc>D2HRrR02>#2V@}JQVDrZx2_Lzh6sDDx7uxx!ARl*8lN}S^S zjmB;+mB;F#*X8}{=vQSdKGSK`b!TZzzf#5qwjE{_G#Y2ivqlo3yV9$|_A$uOnXj=8 z+rzj=LlMm=1UGU|t;lG;;T{F$c{UZmSQ`Axd>6LEj@au$-NVBkZrn-2Wvf;ES*j%VIuDOOkI~ zFBfqB#TmojsiR!7#gK_*gGpQ;Q|6jsL)tp)By)q6Wgzx(+gd(>b9USEP^TfM?h;l< zIgKMG8-bV4gN3c8wqMk^&0A72A=E9!n!5&6a4dx~3jE zxf{p&k{(r=0TO$3OU8lL#Kb38cYS?GPHyoVJYqi)9*%TrOB0_z;37E=LF#} zPzkmA-1tp{Gqm(B(EW|mlO?8({ORUw6PA0!gC^q!U)E_T7j|WWjaT&-O=aC#<1MMO z7Mm+BnI+t?2j=Uk`&)Gx!)(&YGKBm)53r0=@PzB%pQz}(_;bIz8tMku=Nln^7AO}a zxt$T|{qnk&Rz)DfnhK$oZbo%)Gb+degLW>8;ldeVWt1_ho(4XiigAjPk(+;W{18WN zN3A|Pur^V5c3aTykUnKQaP|o264_q;U^XgAj{V54|4?c6NOyiO6i4#Q?4EGS_Mcsp z?0oXq9pYRmVy{N|@7jZbg&9tar;Sml#ul&ZwJZ_NXX1*SzH{rnGx(iogz(q_%&6(- zoORbT=aF+x^iC1e^;hS6t;uD?45a5TM zoLoE}M?o6ug*-FevCfUIG{CvgG)7N;)@h;`ma&{> z5PIf|v|Af@0B?{SdI+a~|jtE)AW{8H!SQlPWu1%$t9atidzGY20S@IIq{UROkhf<>S%XKey(GN--$`svnQCdCZvHm)=ZeKYTqQqFDi^wvhu9dDL$S6LB z8JQ8oc;fzf&wa)&L5j6DcQo`b5%AYHLmL2SR16Phkb$QRq|N7+^CV^YWtq73eheV@4W8$4ek{=RirO=E=ggggp`mPQ*c_R zKLx1wWn*lnh~A=1fuzbNfegm2nvvlV97GCy(kB;Mox54$&h?ysoz!sNz*Cc#;+?~ScRhmjV$ z;T$BdAsPrzZsQzOV2={xXp}0R;SwI<5fG^%!XS>ngNO14VN9lGBnO(S+FxFYFqtH5 zminku8(?ZXPjWk|iQ0qE=6+DSEvOnu%)lH3$L4ZL6)^guc?B(_%wMiPTfjD%r{ z!%w0_LhRW=kYt3+Lqe<@Qk)yS4aBI|V*aID`lV$$rfFKXxTyX zgooyosY?mBo!Yi}`%-qhYY04^>Kl0MB`SvdN3h@-ECB_wU<$UN8886~;)ACjSZu=k z!mT^QFC@BC#k;pVQjA1z!23@gg~OXV!KH!>-hmp7A;y0p8ECx5Y5W*~lsgVQr)9>w z7w7+6`$vEpmi9Zo^ZUR58^Ci&sgwN2dpn+#oWEJzDHi-kw4fQ*AsepY9V|fwK%7Xr zTf?uLyrnzLKb%68Lr(f)#QWRF$NRexCB*@SN~(Jn6HU_8ckp(!1r&$R=-tI4Q4Mb{PV9Fd)sQbh{om2*8%;CIDOr*cBz168ZcCx)lT)jltB-+jUQQ-m4fk6iz z!`885$NAgHlP9Uu<=25dL3Vqo@7=%4z0r|8)gRZL|}yxZVIT~#3c z$n71}=bTaK`;8tR;=$eE>mm{&Aq=Pi9(l_BIsz8O?3652iB2fa<2y};-Flse{Y zw#KRR-QoBB*iqi!F?@9XP`=-x96DV@y=#f6@k^U00gXdMA$D*?L>iJZ|< zyX&*W?$>_VgC6hE{suz+E#B}u-QBrm@pt;>Sx9SGzw|p_NM`=$C*NBpzV+4o^*=xN zZ@ptm3-Xm`Ivz)i5B$Dug7~Mx^K8Q}s=VqE+)2^Y_PYmoW@_sIqsa<&QexjVf zc{mE3l`h1;XAMi*yoocX&Ye7a@>B>^$}@`>gQgrAk&;i2VBY!h2vg=PmP@Nzy^1xf z)~#H-di@GEtk|1I2{!d3uqeTeMxn+G3Nk85xgzO~y^Gi9+LbL$+I<)_>QRhsH3~L3 zlyJeMc^f;{yB4LCvk3nxw){A==FK?E8k|W~tx?7zNiQ|c*R4#>tXsQ&4Li2%*^ViD z#auV$T>jm;SJVFeHT6i`9Es<&o4BKC;LKgy{%8DP^ybv7TTNbCB2w*DQB&4u|22XW}3Zz{1gO^KBisHA%AQFCMn3Cj3Si0wGY7-?QQ zh@N>YzW3so2SsE_l%34?rG*MQ6k}*|VW*>kW$yW!jzlH7WM~$?DBvnv?)T$?3AVZ4 z{)U*em}ZnB21;NzhsGEmmD0t>Tb@et32LaKj!G(C2pX77Uo<&nn|^3!RrF6&M9mT`gj5kb)32{$WUO>gJ)>JhHOXg@d)dCTAAv+2 z6RRdFIrR^M@llnUZL6j$u6W6%3Zt`6*|+R8L{Tdf7~;~UZcVF}`)sZ6#QM&+17i42 zjvpo$Ex<~Jsa?aimfD=RBN9y1#1Y*{?xw5Z+vPOZ>Xsb1s(wgu%3QHqY{&m5m)uk> zP5e))rZMCYumC$qV510G3?s(lcKhX;+?DI&!BTN5lgUe>tTK5?l)%9T8*otmLK0DL z4eHcYU!67A80nmmT&<$pF=IIYJY=AbdOY@v#lD!>osCAd_C<6(b9YR_J?Lb-pCa8C z;ee0G+uHwz>@(v#8?97o$ArdLc(W}B2Hh5=#-MKB9&(Ti&aVSrIAXSN(!5d=$IzD&diD9?gk_O)X zsp8ikoo>gwA0Ace-WSgt3Ra(gJ__Wo51jevr(ZninC9Cty?r_F^Yamr3Ejwn&qS*X z6$x-&x=;u@hY`6H5I!N8g`O;fz{==pe}|jh>;S~DLmAF-oP(2#@<9Hf##Ki?5ZY3S z__Dy5IB;+kloOirutLwpt#Eu{o|8IPx`o}#XEuc0On3-2_B95B7KvcFVq%)-$R&nG zOO{NQhcY7yaf%!X;muW8ptcU^T7fM35V(qfhwh&wu8zpDPfk)dI>B zfELuC1Z5~faYD}x*b|={&?nb~Ll?8v4_)7J-uBw&&2t(jeB*=L^DNlQlgbPs$AFsb zHfT7ysaVA-&V0H&xw-9&`w6Pjiqc({Q3dFZa}bN3lhPq z1xAkEkCogS5v>$;tM8bO5hmpgyp~wBa=G0on9Yf^)$>Z{R!)vBmF(xRl?P?U!e!99>`1`>%HfZNT;{@K~xQS%g5g11xT_i(d@m4jl9ePZ(&7 zZ;WFZ_mjpp&asbOJmVT$?Z-q8a*v6eV>9Ig$~?IDd?by_{(&IkcMo zFlvLU{7#0ji=q-oS5mPBpp-D0r7KQq&JTW}(NKhErLJQ=`ngD*?s{Q$zS7c;BaMIx zXJW1l1<<`sP)>c;B2lur(*b5_n^Vm`Pm%e9YxNR46XYxm%gIjjX@of`wdR(QI;3P? zZs9%+H<{iV*LbnoXEGv%C0Dt{R(rxho}le*19=19{s*|JEbbR~``h78w~otwZg-Cx z-tBhxy3Jj0ao;=M^0qcxtVV5-nA!fm0}ps+ifZsu6+Gb#S2#!;E;fH_B-`lLH@Vqe zaeH4J-x=39y*qC4kIS3e8|U}P-;ME;qnzU-mpHZo4sneH)x-;rxmXZx^F7r(=R6#t6nFY&j>{= zn)%qve)hDlz3p#5N73JLp#FQry*&T8`$77C_{1;1@sE#u-@A{ny-)rWm;b)zJAeAr zufFxKkNvHA&1zVKefDX$eXx1|`{Xab`OlC3^s9gU>~FvO-w*%z%YXj#ufP58kN^DZ zfB&{e!yQ1f2AOpcV(@<<5rC(W3aEez1&9y?h!OsWe-OA4UO)#I;eP~3fD*V9u7C<# zwi6D>e+Z$0B5{Ftkbw-S6CCJ)Ist+qH~>E21}e}ID)<#67=ky5gI{rg19%4%2!H~} z6I_rAD~J&-n1dSOgGFe9D5w)z5Q7Mjgf?M>{}6>o=n)vmggN1aGI$VGND@=%h4PmL z0Kf$k&=Ff`g|9If{%M$h1n32G&ggMf9QN-pn$UokFHH ziGOZr3LlXE1+4&tVo-rxFp&=E1r^|ilNgB{kQNx(B^!AMQqYkYNf8?fj8y26|JRWR zAqB2LgdF*jZ^(t4_zwYy1|oTF>nD*EX^~Jkk=eL}*GQ6v$N^q3krnv?Jz0d4NRwNb z7CvZ`O!)y=nFVcd0$6F3E!dM*36mA@88~?m@+bzVIESK95^0eY1CbMvK^;Nqlth`8 zP05u=X@Ybh5HzWk773LDD3u(5hFw^JS2>Yd$(3GNf+Dz-hdGv2IR`mefXS$qD&Uq@ zk(qC~nR_AzO9_P5IGBZrjyXA)SgDv@S(F+WmQ87qo7jg1jF-rq#3_>_xQeWpfh(w!0a%gt*nYn$ z1+tlhdU>5^*@KhVliTTx+30};NRwO$)O=ypIJGHC7Ovz*pnGZ zoEi!kzcHgAv80kwpy$DxI{}wXx}Z(!5;5AFQ)HYu+JF`4lp6S(&H0~R3YaG;5dI|T zln%(6Oo)<28Ho&tfgmZ0Dxi^>g_0ndq^)74n>88= zu6c|d+6v2@+M+euuW@*zuWF+9TCa#0j|QuVt4M^OTAS-i{ygw{s-}>D zka>*=+lqwBu#{Mhq=}vaTdlatloflS_?U?wn~B%PfdQL{c&MqMc$=g;uA$1QK8di=#8Cj~;ukCjhdH+KCifjTo4(DBFQAhl=>J?Wz+H%a#Oc zwbtQ;^LcH3IkdBiuv@mW84ID;s#%$zu2|a~<*F9v3bA9*37t>} z7@-Dx`w5Chv!2QmV-UE03%G(ixK`l`d)v1c@wc6DxSF8_y|A|zfVh&YxYUN5=-RoS zu@*;xu3Yek2b#4f@wo=^kOK-7K|8l)@u_m@x^9WOp&O;1i@RI?J01zzx}qByp!*rT zxw;SOv#IO5uA8UCo20Glkg6-HOX|D18>1;^AP+GpoTdC(Oz6BA5>C3zL+nL^5zJE5=+LzHf}gP)x_PiNs-?#c&MBbu5=bEWn_0#$pV|H0;Hp3#*5$n*yw^ zIn2dUyvTwa$A3)7QS7NSOun%@#$e1G3p~H{Tf^D=xnuAL0-*+VKoG9*0bu;PeayZC zOv=Oiz$TEHuH3(H@x78v$>=)}S}?(_EP%wzzaV@Qw>*fUdBCvSN3ra_pbW`B>B!Rj z$i`gBgAB@RJj<9I&6C{8OMJe->cn5X$=0mR@9f6x%&tz#y0YxV zbKAy3jL7aR&xoAP{EWx@`^I_t$sM7`3{1uAJpRN}9L?pN%>qr%0FBLRtk9#J&;~ue z2i?vb{loK{t^+N{=&Z>dJsYAN$RZubue-_ufy!x7xsJ=ltueA6;)(N=-V7g5x+3BAayGUoi#56#g5T*;zw%u=1mTK&($d(NfI z%ha5{qwLWJ%qIz*&e@yKDy_|?i^W#G)nIMb0iC~PT*e5D&uYxZyIIf_&B(5S2(BEvkwT#xzoYd%1#eEISU){|8+|HI=*WC=xd%V~yE!Dt0*(0sQpj)?Q zthBn{8%8r;~M-BG>V0Zq86OU`M$uE&hV*DJGvU7#Ti z+MFHQgp1J^EE|69&A6S#1s&JSUDBjn)nvWjG>z4OY_1v2+3r2FJ>SUv+#gN8>8;Y=9og{xu}}tkUB6vi+X_MA_FdSz zjl&5X%)QXJ`%B{4oxn=n3C!HvSPjFq@?GKA9NW|l;A=e3AidxN?$hm^ zGL0?eH9gMvOy5Vo&gPBK=uOZ5;f&!8UdU^$-FywtWli74E70u?-iqDi8hzqpj@Tnz z-C<7PP_4iRzS+&~*4J#<0>0)69_Z)%#Z=1MavtSNZoP%U&Tfw52JzBT(9(cW!IYik zC!Xj6vEpmt!kOOT-rW(x{K|?xlO~MjVbSS>XzEt&*m6YOg)Ha?4eIjz-h`dzB<<!DrdPu$&mt-i4=-h^(+FTBzzebgO(<;H&N89v(^ZRL2r;muy=mk!ngF6jE~ z+?Z|McK+wX>*Q>#&$b@kXD#Nb{q28U?nn;hVGPvk{^7;$&h2i|vkv9Qp68DcV+ z2C>2sJi)*%5Mh7{uN?m4l#Sux%*D!l+frcgK)CJluEZS?>6$*l2odqy%@tkX5F~uu zDtz!hPTD~J!b4umnk~|Xp70qw*3$jrU)|Q+uHOU9)zJ;?{#(V-p5YYl=!{LycJ(7$%ZPes(9{L1hA(r?i0hyC0S{_XeuXQ%l>H2yhf+KeCm>(Bn}@BSvX z{3btq>96STZ~ym?|M{=~YFGFB@BjY~5dQ=YBv{bkL4*kvE@ary;X{ZKB~GMR(c(pn z88vR?*wN!hkRe5mBw5nrNr6&Su4LJgvND$MZT1%e!a@0?opzrNWUrkk@7>bHwaaK zdHdSSiNF5f`_H_h0*pw(?HIhz!3P=i4?hH9s_;S#je@Yj4WXm3y${n1QK$n+>TsbG zK}@lt5;oZ8-@I6$AqB% zBuL7XoD>Ynfv{AF$|_gn(joV(%uz`#Eu4=+BE?*?$L)ZGh|4b<3RBEDBP$akEL`E_ z6iz-lVNF0QytAM>>r*qzL#Ir%%h1Xkv_Kl+T=bziQJfSrM`fB5!a@TzDbpt-owQR# zpG))6y-;1~ie~QVL6Zw{V>>;7!@{4U1OB*S3-+D zwo6^1-4s7&)gzX`HiKKxS#GH%Fj*a)6*fd>r3DV$Vy_MNTyZ-CmC|6xH5c4x$3(N; zTTglyO!lrtcG_xvjrU)H3r2TcYn3%uG*uNEV;wpQkXV2=q9G@Rd^0{QS8x6qO&DQ& zy|wRSWB(0#-IG&>aZHtWZI<1WQGSW!kUcK4<#bWqS5BC3_F3eWY5tkqn^|_5<&}+A zxM)(x+L@X^r2^mfvuxP8#Ts@0A(omu+VE?2?6ET4AIy9Vr=j;&vyK z016Pm?lxLMhlH2$#f+J8{`?0PdhE#{8cVW<)NiXe29|B6*-lzf%G++cQmYqM6lTpW zUsi0dai%Zwu?fBu%&mDw5AzsJAHCzw^#j;c$ty*g*P<}gBUp50`#O}2Vd#Y^J7 z)XHm?y6oG#E*bdTNf#dUT|vinq+{A~rkHo4QDzxT$H1WlPe}TMjto)gw=;SUc4L&C*j~8CuMLodIkb}<5k)y3 z0y27QyIjLyI3+`ts)vXqngE~Y!vaxqgVs|S5GRxtwT{zW`uD{S!$KL|t&7Z_nd zq}a4PvWRiAq$5JIC`l?BB#W~&R4peG%Yk?y8touvF^x&gbc8^SSnG-7!U(|sp{-e! zYf&CEH^!@tjFZnJp4xh-u4n!bQca2E4E1+SLQbuX9_*kZr5V8%hO&c@AP!WXAUTFNe({THJoFjsXoL!8(T;MkQg^TXP%_q+ zxPcH(eSw2T;8gO3YVbiN=~JKi4B}Dsf%G3zglYSn0#kZ8;vi&@$4F0LKS$Jb1S{cb zOb24W^_fqKGhJWcqM=iP;B<=WVJSUaT2y+-6sax#t*TA8YE^*%H5y>$8ZW&#%Pc^H zAO2u#C*1m0xAr5M3SuTtoar(NlJP&@oF>lvny}Cvuvg4mn>6$KKmDr-;(2YB#?5RW5wxD~0m5 z1iRGLFMaI`;A-SorMpD%RCyX+`#JYu6Q=%fg`F~ncd*qTd3Xvk=IYt3IMaahnk?hu zRat;#vtQjxC_81Aq-(q!x+LS#x&SGjdrY= zd&RX+RkJDu1D|((>ut$&tE*Dvx+Kqdo?m=TDurE|3#cs_^nw2zU!AHXiv#8^e}}s0 zK|?FhkY35858Y{-{)5sg8L<7PYT+!SI$8!~2^ccWRy{z$Dac^QBj|eLpO9IW8NxMA zk{p#I@AKDvjk42ntdw3C+e{%j#{M^Q0SsaI0vN_vGn%Q5W??*o5_LYcq(5yxKFDvV zEb%jfRmxKd_xan=0Q9L7ogrij5K6Th$y?b(NiR1!uIwAJ2G(GC2NmkZa=Bx}FKiRm5wPujklF3HBq0 z%|>N^<>kmudA>-VJ!F}7`xO%EL0;#N0x&E4t38NAc$Za1jMy%LYI_o+@n z>J%joRB*e*;ZX$mq6hvI!Wk~>-1WDlZOZ9~M||oPXM5XOatwaRLKd$uLKf_Pce}?T z6C)4tfWC;KWZPusEDwBX{s*tZn0w{$@u~T(ZXS2JM_%%i*EYA+L*IeWcfAE+FnXZ^ z)Pi7MAedjOKp2c~sDj>>?NfdH3LWUE!jB-Oza{7!O(4*ho*)C}{MjiTd-p>1tiBw6 ziMlWicpyXWv0#4lnJ_TnxEJ?P;X zvY3D#G$9N0t6vtCrw?)mBH#MmPt=C1UvyEbQ>0R@yMa+ZgdXLYYfKCG3jDYeFY9Kln?( z^=rTPi@)`wze)>{s(L`2f+~@+2RTS7rc$2=oIQEFKbg8Ef{3@An!(KLDfS`2ry47I zkiEfKpDX$YH@qU+J3u(BDwn#yG&DUu)S^DrqV%~UH{?GPWQu3FghzM;`Z_n~jL{Ox@c^bvKc)ZC=Mak2`AmfSxgu)xl!5#F$9t1)m#Gz0$#ZzQL zU91XG?8T}0MPLLrDO5#O)HYTNi&tzyGI$3yqqbj225Fo|X*>o^NXD(;#9_P%VcbS! z<3(>=if;Z4$N0dWcAy4yOhN<23>ffgSf|hB*-WPNR7-zj_gQMEI*L+ z$dSyNV}OU80|p%k5R4>?T;UmFLm?Nz7NSwM!E=&CB0ew5i0@mHo3s%M;>l#|NnR5_ z;^V$U8cBUDNwSE9NC*RJfCrG1MrEigSjVKYK5oK4gTOvJP?PzsvCOeo5v9ZF)czss7KfK14a)8Q4r-A zAg#FaJj~3*PVCf4GI`M*m>bLOYgEo!OQw)iz{Au~!BQL} z4Z-w8nzU5i%*{n@BmiMNx;#Qk9Y0-cRl*xZSe;2v{Si{C{49guAP?N%3QR$RR# zoj8zZMaywo)aip%aAgy2ZP%KZRd^l9U~N~DBZ35w7=7JWe(hI({a1huSb-f_f-P8s zJy?WIScP3!hHY4feb|9b03yKFd9|x=t=Li&NsKMmi{02?5(y$G0Jf;UaV=TDyER>P z5KaB109jdu@PPuD*zogMU+Y+!)tYy`*<{UFoh><$NPv;8z6vGPMJiMtA|#UKOr7w7 z1Q?2X?N)j1+1lh;snr*oty;Sbi2_L3&lJ_JTWr*ct({qo@dmU7g_#HdwDpEK zPzX}+1_$8SoW)uusav}xC%jFFPC#352*?wIzwT9bAEM0Jm+3%oPZ5@CL!V+QcOk($z@E^;@gm+k*gw!o3R4?Szep z18;!bo9Kks6$skZT!p~h&GiP^-Pw;=+|q>%;`IrWW82&nT$GSp%9RPWecqAy+<}N& zhoIij9bMKf-ugIQf27^q4PEI~x$P~8+RcjCo!#@j-Q4{Lw{i&I{fG1wUXM6l?hOq4 zwb+sHhW7mj{uPVeEeYxs2-m${xusjGz2Cb{;CAKQ%Owa>7~lN>N6vj)U5wv>uw3}< zU;6Ec{8iw+_+SJE3EH(_2%g-30EhPN+kv3nwj~H}0R9EGWS%_SFg^?s_EwRQ+=Jj;$faHBtzZJ~;WGAL zEB@U!PT|X?Ugs_5xdmoU7Trrm2o@HIYfj@p{zhUn&Sr0>=2He|Ek@&FKH=xR;YJ=@ z4F2X07LZ&PV+ICS6^7d$M&}gX-QaJ9}a*{P+Qt{?BR}Iv6gP$b#3J?T$@&F z(~j%p?q>j#m!eAXaIW1`g{z?KSRP%(i0= zZt2xNWC15^f^hAA-ebt-Y;dM!n?7I3#b<;#?%Xx)KE`CRZt$mO?e;Zr0-xjrKWhND zYA~)}^A2IB9SI8m?e&#r&0hXwDK1>7zUi(ea2Idl_l|?Vjc%<*h!nr(>OKgycI_Ug z=ItJC)Bf>shHrH)+##Rq5ijxbj`Df6WP?ERlcwguuH;vK+rXCGkq%xCuj;p@V=1m} z%x38RE^r91>}8hdmVR^LzHZso)`~F5@F$wXvO>+;g@IOCmaF6X0poFS8y{=aXD&;^H237pwA*nE}n{L{aDz^`4Fkle?2Ta^%fDS-UWSAEm(d~fJ`O@vn6?|t9@ zec%s%;UE4AGfUz>e&kPn<##*qWeM?}eb|To0AL9hjsup6UFUav+K-8c4&C5QYGf|x z^Hm84Q2mx*+r(#M@@IWr;op_8Tq!_*l~Dg_PyG64iN%-x(eDJzxBh=dTYv~4MM@`d z0|$cgcF-HBgWwb%1Qkch!-(D-9LyNN+eCr}EoKbqt=!iqW_K}O{#P$Q>F!)BK?w0jSn)9)F$mxdWO=9SA;o@_Ke}f174MeH8omrZ=H8*DJp8 zXQYPRw>SB`{ZYpfxBrWMG&TFAc?G+d9aI~Mrypv~f%n`+N}cy!e@gwwm~~0bCK~>1 z7CQJ(c*C(p7gVr>gF-TuT$R;UCVFK}S4w?hjXwH>h*UB!>Qf0UH0op3KQq2a;!(>~ zvWz}j3HhRq93q*dl1u*MA(Kx+$)t2qQdy;yS7Mo^mRoY!rEW1T=Ve$^ifLAcWoGH* zQe6ErMmAubs1=(^-RR?3IxZ9AGT)H!&ljJyc;udaVx?z}M zk~yiRmtvZ!rkiq_B{<8SX=$aIhT5rcYKG({SaY&DCyOrHIU-W3s`{#qwH{S#o+$ii zr>VbESwJbn5<6_9NgWHUvbK%7th3KT8?Cg{4yRywm^OQ9snkN6)KDW1wEkm^t)j?O zi+ui5B#m!^$ZLu^wp*fAK+bB-o801io3O=}k}OjG<{PlU0~1`Z!3QIpu)`bh6ly%1V1l}zIuF4u1rAobLH10J~GgA-o3;Um{fl-YYo zks>2wH-6N^FCOipK18bvZ^Y@+xT4&gzv%OoVEaaT)_xzJy6UU5{@%LluS05c(~*m% zx67vUhWn;A6V)y3zXKn<@WT@ic;dY4u9WTGX2g8&|9~A5Q_{~)z4Fa3g*@rjI~}f3 z)h`czBNRLDlRC=rTsoFg6UXh(xd zQGHZQpbo1@L+o`ikVM>J8J$oZ=iOIm_vkVfrwg zi98<*yGcG#PLhz)d?flKiRK(AK?`b7Iwrse=)_kyfj7*% z_#goXohU^sYSG~lp#Tc~Cbt^;yNA}r2L&L)MN9r_(vzZ8YeYyu-&*R@m%=orGMy<+ zYiiS*;xwl^-6>Cd>eHVBHK;ea7;HLNgeD)hu^*0Z8Dt!n)hN7w4sx5729a-Az(>uT4#;x(^&-78=F>es&l zHn4&nEMW_4*ux^WoLE3ZHQM3Wc7)>sP)ICgD{I-y5-$wYKnEox;n_)mqaEZZ0cJ~U z+S8&IYiEE*XFaP2NI=4~_&^5-s;7GVeW4nYkc1xmpoa_SAqSG+fF$@)4ihwm z8T6PhJJB|t9` z^g!N8w4)L64X(>zVc!}X^auxDav+Y7mQTn*DKjpMhu2bNu~d1(FqU$2|8eEu7{L}P zPO&YFkd{qE`6w^;a*WY3WhBG7Q(w3Sd9QE*&*Is$P@n)N%wYneFvAi}9W9Zg!yKNqH$EZVU&~t6q9(P51!L>Dpkd5oMgv-Q;Ehrzh1Y8y zwO*k84{AUAA8*bywD_^R72i0-cQc9(gJ9ov*!@g75j}_O^~Vczy4SD1sja;0%}eKNe08 zeMiF)8K*bH>0}O8eEbAE!uUVPAdmSvBIN!Rxqn%1aD-dDOId&hKm6hIP5?dVK<`JT z?E=+qho!)rM)0S(d=xqU*jme8PV*?(>>gWp7tKc*Mb=~NjRX9{*-Oc?tvw8EZCg0Q z-G#cY(T-4(^ z`@!E`(A}7+MRxvVSe0#p`e_K*Enolw-uOu%mPo-dj8~pvV4gi*ywMju&RWGw|Uu)`zNhWKexB9#so`caZ79j8@5(6%pKj?9a}J$1A3hv=3#aS-~=+% z(G3qkK~knj0W#p230#36z#F=$n+Ys|AG8Ar7NJrw1I_6dHjKc2!QhUVAjni)yoqAV zkzx*RO#Z^H-piF-QUIJNqM*dNTnBn!$F(B#IU&b|Vp#ZK?(w1}+?MfioG`YcDZ-)? zcF7euLp%7xGdzPbSYtM7qb6kGz}(VqFrsb9QuyHyBU;dKY}(R!8d^Y^(={NMxu4gq zVgJpa8@}Bq;9XL*W7}Ds+p!`4tshi4TbsE>vK1h+wZ(<0;Znq5{B;?(eWR(2W0{1b zSyUu$)KXc%k``vk&4gP9keeRdfF9_<2SC8O1wkdK1Dt@OP(ef4B9cF8gD z{(~&Y!Ydd-7Jy|~f@LgZLO141DRE?7T%=k~q+FEJS)8MADB03E89U+{9*)AXjY6qu z-9J>_C-mVv;$dHM9fAO6g%RY_y;_IMt`gdu{l zz=ENla$(!C!5Z52nqWQ{taVp%J!sfHBvN1-s8Oh|*&%{#=&rOZj`mfo8zGDDd5 z7rs#`Q4XK7V*(0K7vxV1ik8lrmitDy@&~%o0AG5;MIK z`FJ5KEzhDJk{@rRtNTGHU)jO;YXr&o^?A zrA8AVZIug2m8znpJ8dMV>X1C?Do0tWBCS!EG|m=G1CEj8dFjDP=D{S;113>@qLK{aS;zNwtVk=zb?9Fc_=&MBqvUFp2y zB*w63yy_OiP366c>+9JmduquuT*4zf0=6ba7`y`|h~rtVP#Iy7HTlyLXsPrhY7q28^@CovC7tEKRJcj%*e|>c+k-uhu52ZV|<*Qq9Jt%>L2M z#_Y@bQO0Vl#r|x?5|YUBEYbSssUC$FOhY;R=5I=ZCCtM(2>uPXprDszEwJS2p7trA z{;8l6s-aSgI(e)b0jP~~lgm0&BYk1pt`ZoftvreBH7RXvGLy>270Yg_EuHN>ITGH+ zWuks8BSor=lC0kfuG!|T%*t)wMiSeG65NWC+Quy8I_{>vCWp|D7Bs^;kV7R*0wrKV zJ+y-(Oe?-@EtlA&vyj0%P=hhZ?k^-m?b>eb9s@Vt#pdo##Okck=IszQ>Ld0l;R0_n z@eww$ZAM;h0-Ym(>h0dfZOBrt-4@a)g)H=PmElhBLh2?30+a2u z=uXD+Yzr4_`sOe)QPSK_Z{N=C+YV9+lQ86h@LSO=DZSGLH!cldZw`y`(0XqNuQBj~ zk@XU5TN0BTQ?T{s&>iz|$%3yRyYT41rVg9!(jL_@z{3CogARBQ6f5uokCC)74TJR> z?O5`Qg-a%b&l{UjC#!Mwsxb@eaVkk}^~SLN$(FHIO>rOdF&Tg17gsJvX0Hf)3m?z1 zAGgv7+wmAr&mbpm@Ybyb53UEV@Zah&A_Ir{MsVbAt}_2pBt(K{!Gku|t}SjTf?R}~t?kjgL@v|;vjQ#M`uHfWFbc6;}CgLiEMcX*R`d7JlVkN0`2_j-GG zdfNaeMdYItcVKgkVGnOZ%~PuaEe!sFvQnw=FOQ65=Uq&97=god{Mnj$cQ<=8c!S@z zdpmf9OE_vn_=H>dg^RXl`}G}laXZa37AN*|ll4-?chigvJ}yN&LuMbUcw@GBA1Zi- zWB80qxQx^IjkC9nyQAYWIu_J{@8P(zN`mlq#utPhKOZ&9rc(E&c2_;mvFS|sg z&a+$lrH6a8kGrK~JGZ0zkAr);mpZ#kdbPXzgr9r5)4M;fd%S}=yyLrr>-)Yl_`KJ9 z!0YY3`+Ju6d%)0yAJ^Z*n-+4KHA^H z0Q|s%GrTX&z1>Ux)LZ>qebS|2e&%cb=5v1Md;aJ14&TRlj}Ly}+ji-jK5e7EwG+YF zC;sc>f-NM$=|6riMgHXDzRXv?TZz8P_CCz`ed;H?@bf(Jf3^@DKJ3H(EeyfQ&vx9` z(e3B{^tb%(uT>oN3~uaE4M2QnARXXHK0vd8z@T5@yDSLx~nOdK76= zr9&ema{3f%)Ta{)I;AQQhg7XvBP{j$6>M0sW62UNz;Ic%a3}_DfyU^cTet<2trfWJ z8;P=e`S$hu7x37#fe9BTN)w|-#ETg>mKoG>WREgnz>pz%F=Wh}7a!sI88prxFj8u^ zVHkC4)ef6(bv+?#)Yyq|w06C<>uTM*d9NOv@Jlv1*7mf08}~R}yZ?e~==~gebmyzb*A}=()4xx`&r-K3i~zy z{o{(i0u7X|x`SX@E161+gG(-h>SF7kF|u*)pJepeusDIfux7(bmT@pbfiw(ppb<~Z zOCYy4yzsynW%Mh-8Ewq&yZ3b5(Ig%hgJB2+(zr#ZThc&4i1mEzD90t86v7tzq`bw5 z_9(Iu%jj$yaH@e^(8`4^xpXSGEX_RAs~QQ4&_WC&ERmoIk#jIZyT%}nIcw(9ki_Kh z(#tKomeB`7Xy_bKpjt3QlhH;GQqxiEaCDMVN}H^7q#zPVW4he(^kLEAnEUD$+)~ITS7yM@y_e_AdIsqSec?smQ+DnBnK2=5+BY=& z{=G8is0|`GR)eLoI#)8K-Ws~!B$oKYk2w^UY~|Scu(&b6(W{`42|_eN{*#SMna+}7 z&hTZnx!&6-n!{xXXTHbU8R^1TI=W{V5?~r91XKkTal>UIf>XvnOXG*9g%Vt5s&D(! zsW3yARbeg}<{b5z1^QZImL+zJ+R_f%-_B__4=ZtaHvBa@^FrM6i5N`*T*fc4tZdyqPG61$Ab7Ve`4{X zAq^77HHuIQEc`)~$af1Lq>GG?{D^1Vh!Y^hAdaVDq?zhyNBQA#ls@F6A1QdegG`Vh zt~6dEJ%lG&#*%fj%%wqgdC0G|@|L}1Wgh|gOI-d^n66Y_FmG8PMA8y0i%jM8ypu^y zVv>bMaHA0}Gb(Fdb0a}GBl&DG1S@TBnldV-DRYI&bY}i=mCx)YE`1ruWmZgLW1thq zS_#N{789U%LoI@!4}na(ku@+_n>VX4uuZD=jVd}U87iqWA$ z)S^jcrcp6E(L!3(f(n&rQ7?K=r0xfr8x4yzr})g?n1C(~>} z1faz9rUjyDO$X%8xTY?r1qG&1>Dkv}5)`5cy{bQ_8qsE&i)1mtE zn1D6xUU6I4q)PUv4%MYVuWHq*KGv{^o$6$L%T)ec7M5Sp>?k=~T6%q!Qj%vE9OdCLV&xyX-Ugx#2#m#v=SX+7CR;zoBZd0SHT#D|NzQ~oYV)^=8<4zPI#*MFI z`O8@6>Ib^>y&roaB0cPW*9PJN0uYAq10i&?F<}*<5adI?G^P~7D)GVM#CyrZ!Ii;U zQg2OVo8qVe@v;Ff?m{2xP{9H?xeLXwfM@wv!O}OsG(PS_{|Qy$4mrPsJ@9oBtly(d zmyy*CF-L^(0|ula4Yt7Y0DN#C#yogQ{-?E^rrBWie*YavuiqrAq>XA`C#&pScAZ%Ht9@PkJ?Rmh=2zjk*N*AkbNj8fKZS;9fO3 zEF*@slu11iAFOpJmP9E{z#L`;SS|sowN$a;^MeLp*%r6ZavBmagzmK&#kE$AtY@t& zaSM(J1;F)t_r`1MxZ6>{{)!I@K!jmCnA#o@C%lM&;m54;2PB490?6y#e2+xJMDT$S zfS?{`hx^=yA@{859C2+CApsly)cD3Z-f@qA9ONMv`N&CLa+9ANOC$*6lM;6k(`+Z{K;ZOAfDZ2E^P4{$Y8FS$#N}LZr9VA2@aBz1%cbic zLmer^E;bPuN9LIreMvgFcBcr=Gq4{$Ca=bNUzomPr>`CEaYqd?dFkZ1&Xccsx1iQ9 zErb_t&&z4QW~maOhBV{C7HUWU5Tp$`v^zfOa(`91?UAG^9``>@CZg8w+9x z7~lw^1`;Ka7YAY!4nQCdAQ#hd9doh!R8I(!BnG-Rec%Y}u2;%Y7b`IrcfcEVKp;eN z2TZag{zvj2SCS>OBp+?c9yv0WT2g9c(s;-b9t+|VG!Z5L!6bVUB^!~Ia!n|U(kPFT z5Q!2gmy#))GMAhZDx(rA_s<7k(sb_8CRc|hcWo%LGEzL!Aa2noRdOs(k}P|2E7MXf zp~EWc3M;#EEgi-yz0y&@vLM9rAKdXD*ij(#k}u;DFbM=GU~ zAsGK*82_OdA@dg>6EQFID>wo(H`6N=lQZKDE^V0hqH%Bf;eSUIFA#-ep5M{Gj&SCIWaT- zIk%Cj!~zySb2?YU8`N@qsPvn+rDJPR{BBMrxf>pB4qILk9Nwv!<6ay;V`ENl-m zr9vR0!Zq3Rua>Ls`cFP*^A)4RJ#{fB|1)RMNe0{OGM&O85@8@16g!!-KP!v4{L?@c zLO%oJ7Dsb5x${CD#w23U)fUu269PgxQ$Gvsz#34f5~Pnd2J}M@)FW7M zL=h7|8?;1GR6;3B$SO3+4h{SoO1SPx$+nV4ZfE zR7+d4Jcp?|fs454sZga#sbmxisg9Qz6*Y>{9lcXh83j6bLk5TdQ#I9B2O$swVdg#+ zPYd%$A@o@J^fF78LQl0!2kXDYlvSC^RbN%=nlvy}(jDRRRvRT(S7TRyRa`MO5Q>0{ zK$S3iR7;;CKm9ZWpRxvrRL7#V|CE&fmMjj<^dpWZ4#`tT|(DUkuGA^+dFytT-(@`W#^I_41VE$DD1|R@ofAwHH zwK$7)WKEG{14CbPGiLu{Ln-kMUY2CVQ#D@TU{e-YHMIg>fLIk&XJ=Ga=Wb?kvu2O> zi|7+I-V|tk^=HksWuew-^{{Ejg2oV)RFgJq@3dqMBTlC_VKwyzJk@@7G;HT^YpoMj zkMnKIf=Xjnj#CZIuoIIEO95Kq{kv)0mFyn2~7y*L>TUi=#}G?AVY0xC60xApUZT z_ZW~58IgwYH`$Xv8I&)tlS7%5OSv|S z*c&W)giV>1TRAuN@)RH0m1mijFY^t~v5-NcmUo$#3p0=RP?vjIn1`7re>o|V5Jq#0 z`wp0xn;GjEfPO()3K(ENBJ(TsuI@%~NqY}{o!Oh84w|F6H^jgiDgg?l#tWoD98N$1 zBZiu1mqT%PDfTRzZ*ZG`Z!o`EpJ6SWq3a6JAR6R>9_XPS7@>xx;7-i>prg_Ys$rcM z8lodw^WK>Tk!qK$ipTa@qv@EU8{!I*fgb*}!4paW6|A8V#H|b5Mg==sE|Kdst;~!5Z!XLz2NBtU(h7+#2j54_YJ|_B#&f+nie)95jJKDEl7*yclUpG2Tf$XA9`1q0E&Lkzo4zjr#jQcbSzOA`Exru{k5d^e z91xk6S(8nT0;aYCT)>Rq{@ahsydbnd8G!q~E5sU-ydcOx9vnfg!=M`I1f+jjAl`bP zL;&?~$kwt&$E!qFie$Fuw&%vGo@L9VAD1vR|4vmB)3 z`X8`>zWqEy>Y+oZTGs!87U*FvR6WWa`_>6P6B=8nvE0+0!5*9g!9`tr#m&wMLy*@I z&FLH|USI-5cMvFm1*9F2o4p_sn;z`p59Aub7iAz`90V$x8T>ri2cn@({UFx8)DK(3 zU!2^pfEgy8A=W+D1)U(eKpM)S0}4XbOXkMcT_AGZ4+f$PG8XiG-T>BrGLFO-B)Cr>Je?I7GoC~0V9_~RD*m=rpI~?vn zt_L2rSzYH#rm6=5(6hSh*CZPJeBz}X!O#7*>7h8dKJ24@>Z@MqSe`FXxe~|1J2~+j z`F=G!5tCow%}@Ss*HGot*zOC03!(wv)7=CNf*Cs8$tOP!8XK@jpe@dxoyou&>R}T= zVZwzzs~tP5k$&b)Jl||ux#C{GMFVt|QNJ20M zO-mzJ!ZzxL3L#3AiSVMxiJ36}yP_;5!h#<`mqgf6G{$q893Lr*wzq-c#w$$b{u2@27pi5#j}b4_ZjtrikO zB$|j~D)M;OnT|aAm|8O4ps0#G(S2dfCvn6PjXildWMY$?q*fz&usvr_KHbC^{tZ2^ zX?M>ksbD~oNeI0nk2a&EC{H;bTsI_{P)bRqbQl(@lZJ*VrRbvZp+#SR_yOqOeUSba zprM#%s;OQ_Ea>T6FW|N5sHB!^>Zzy#^(a+uq`DWPK55~KHS*Ad&n6tKbj7Un(4$Qw zj%m?~KE2}eNpWM26peRUEK{pCb}ZCTkO@&cof_8knvE#p>D27A(WZt*w)EV?hV&W!_TEhLnYF5=lSZl^$oMg8^2sQt%qT)Cx9sxEFvl$O%rw{jT(f&N=dAP2 zHscV;&p-z)^w2;{!1KvCAFcG#OgFuB(u!Uz_0)uI;?33G2)1fMo3u)GS{Z*mA-`gm z4OQ3#c3jrhUV){RRbO=lx7%jdZMR`BRPgEEgETmn4S)xJ_uzyVez$#cBqT@TfNhOX z*M=j7cI1eWO}XKd3#c|(TaO~&C!-+bIYOX|{(0z^r>;6tdGq~gAVh=}`0RkMZu{-H zt5>>CpIn`l936kcxExqV>dhNh<41h*3H9!KPMa+6ja71Fn zvr}drfVDT+JFm9-E3xnW`>GQWi0hvoffVidOJM{2{P*wwP}Ba?$>{zuimC92Kh;CX zqr73g1pebu19Y5LvVuH>1kgUW1KI zjBtD zi4OlWy{xrSly&?g9~EdluI*8WpNJ*y0(r?=VyuwPbN&wjZOO~a2_XWFqzeTcB$Pp8EL=BwjBq?Z*nax{lmb0^oZ)=CVL5M0S z1(hW2V#-q+G8CdfO@u^UH45z6Zlyg<>e&Xg3H)qDf=Z2Qfnb1xnhpX2Hw8*g19wn_ zO7*L_`)N=gI#g8QFneH4D_W4smg?aXj~hLt{#xfsm>4j!k%7pnR<~+{uI`VnfHj<0 z$12o`23B%TORQoS%h<*`_OXzS?4sDZ7AcqyYj0SJTo23HycB_^EEGZvV8~a$cJ{Pl z8|+xiirSzsV6&|~tWqeemP1}Kwzw^e3~tcKfs%Hsrp>KzN2S`JvUa$KS_*PGD+Su7 z#kQJN?sBIK6d4==w4Mrt5cG=E((aVH;H6M;fqLBVn)keW`6g4Mi{ADo7B$u39W!#$Cn@sccu zBwOXB?|fdG8TgeDU(}VwQy@umf;=^ArOs@0%A8k{WN$nL&(=F0^PIB^0fJsm!jDzJ2>_yl5NUucBR?Hc5|e<$u-nj z&2-pyBlPwN&P|}M&;*pvqk#V16|X6K+KAyoD%_P2VX=E^jec~bkwWQzSQ^u0(KM$$ zy{S+G#tW&yx2d8w3X^fx$xx<{3>%_e}I{H=+{; z=&6EkU>l4BS4ZFhp^8upiqLQd6=BwDjpW6*{ueoFe23abv-D6m_BMmPjY%9g*1$=X zM5|oedE94_t#&o}j66~cyd%vGy>i#<4qBg%=4?SO0c|nd(<=Fk%qom#-a=7s)?d!CU>a{YwAC|nM zaBF$=3~l#R<{tOk&WY^X^Y@&$;@z%5MX50jX*QsO-^pM8OaPAWdaGOcrv8Vz@lE)I zDgXJH5!UzFE%<++0s4+cNc2U)2BEJ64d35%Le}5@N=Lf<=f@1dmG9~3qr&}x*9vz4 zfB#n+*H?fDA%4M`<323Y!Lj zB=`>u_`xHvB)O*bXhN2@*=%heV zs8NSeeC>98>X&}^W^WWYe{z_8G$?;4=x6{Zf28Iv+h>P4fd;0g1#zGP>Xv?e7=Z7V ze|xBY{049UsC{vO5CC_Bk(dheMrruxX~k!Vn4x$vD1WXnZ)$*P{>F2s_=x6Lh=({6 zYcLtY!iO8k1(oQCVsL>ONPQaUY2xRLtssX8xQIr_bA*VBn;3y;FmI|jgNbN~so;l` zcq&S#Rx0!9Rj(#_S-)Dm~A$0mShXq+0jVA{D7Kq&!Z-E$xGvS5_;fM&4 zf1QXK@y3f1IE`;uf*aV8_Gbba$&m>miWx|eBH4HliE}`ae@NGT=C_L*$dL$HZwP6A zz^I2U`EJFBkbl>B@0WwP=#ix|Jfe)i^xA<2pf;RTcE3S;S(BngKXiGFEGD2R7}Cuo)@xrz5j zmpZADb=a4Z_K}8Ze&3gj?zfRfIe#j6mZR8~sep$VD4Bg?lOgDrlE#SwD2Q^o5^(7Iodnm$L7>{*y7Se+xO zni}OmUnP~UgH=BP14MuW5AbTShMTs@YEB0MMi6y6L4*NS1homABwC{URGjW&l7xw$ zKH&wVzy(70kdEetvpA71DV~Iak(~*N8tG^`xr~KLbO%Y9npup>$)7o4bpF)0p8!~V zJ;@UmX_0kFDEelRbBLK>nVJ$=j5B(pKPhx7sgi+-quO~Ym*sUf$5TQ80rWEgvBMKF z00R;rUxDCxE74#RAYT>W0u}}X4^UGOYNCQVsLO<+0l0#(sGY)ss0JEiN`XrRV;f}g5^smZCN=4oC~0V1h^GZ=u}d8jJDi|TfN zujr)ld8r9AZvf|Mxj3bXs&AL5eUq7=%$J#!7J+{#k<5CGJgS{Rd8;=%nwrXPk7p_e zU~ph11QS3%74W7X>H>h^DHL!6GjRhi@F@~tt~0TwHAP>98n5zN{z--kt76%zH0YH& z;jEIWeC~IEcOa7&sjml!hYCmsj>vNgI0}Y$fON2<3yY)&n|~0vmB!~#y1f_ObNlQHAMkQJFiq*wQ41$RFj?Wt5EaZ708cZVk zxTu@DmZWZYI5qn>mhcm~Xf!=LkQH=ONljK^^%WLmyEjfd6As#qLZGNszwD zo48Zio6Q@)@|!6rqaM*)H}?yiJ=8-CYQ05(25Eo`0zAOBkOoE&1V^!Og*z9+biVDn z!1O}|5X?7uH516YH{LkE8oa@nk}}E^HEL? zIq^%4bOdaBw8~q$u49B8+`~RxA^H2kUTdP-DoFl5fCea>!~>iLKY$cXMg<c|6f% zMSuenFaZ$8H-ZoZ?CUxeP@BQKH+K5NWL(DW0m9BZ#3Z^gXlzD6fW%51$F?v8|Dd~1 zCdFg1a76$C6hHxm@G}x10SV$M74QO`!a|Ij5HKLR*+m5KTSHoB#*!>sZ9Ef5gETBt zznQ!;P*cR3tP_~r$;x%f&^5|010R~KGV8_3qKw8xY+z`5K4=630}#iyd<$tH1UP^L z5ikJ|fCEC{p->^AgA5mjaLmVC0du+_n72qQB*O`@a1T&*a8UsdAOztHMSL~M+^klt zyvi`M$=d3{oD9OMoD<}1aP`~9<{Zwg9R4-u{LZGl&ab>+)o4aUV8XVX#J6w@y6^yc zIsrv6wL@_OT?`k5fXv8Tc?=ReFaS`lgLyu&Y7h_s6aZ_ohDdy6Yu((@G4;y%`@HS^ z9wRNzP=m_zEL}l7($S^TCp|vwOw#Zy(lX7)HI33HZPGM7LN1MB_pC)iP|N##!u_lZ zyRZwkFu`#F2u({AFmTXuq0q>@%ySW_n~TBF{Gk;FW!XGM8;xZi9o8^4&hNo`0HSOkWLpVjbEkwbRV1${?)PDJ?!y(AIq| zSCuTzs?Ew|P1iSl*CoBzXFboB%+sqZ${Ut4Ky((a9n+;8*A^lJKXBLr+|P=w*aJY# z4u`-%!N>|C2$LNMg&PPE;K2U?U-AVP5|GvW^x5Af+UDI)v8`NYoz7_;X*{hc#YfzC zJ>Rgs)47e-z0KFTJ>Th_*M800{{787_6EZV756LCnVjH~r^XKg1Iex2iQU{sy#~ds zAdc-5P`fvRPzVZ*#S-AiJHd1mPyvBZ0Tr;_o!v|1jX&qz;%VH{r46*F?cS^$-*(N{ zFTL0Fec<>V;3{p?y6xlsLf+f*4bDgQQpPP7)rjB=ZpwxN0}KG+MlIpHum(y^7h^ob z-(44i(B*?52yP0$6&5NnoZ>3J;wR@3YS+knl|whiPtP1z4-S zIM?Q+=-!`7>m=CbUFw{NNYC!=(c&yuN{`jWd6z@9rV20oN4N zN9%=7=aFWT?490_p30Zr+M)c;;Jn|7F5m~|by)%KNYU-~ebetw-Ut!$HXsAzKGYEo z>d(!&FAz!Y8c;6~10;_>O}1S!KlAy8^E$utJm2#q{|`PN^g=)MLl5-j9q)3D?Rqiq z9B)IXITIn&&_IG6^a>G9k2M6u*f-sB2iC_rG?aeNE8 z0P05_UlcrRG#pU7ixyO6#SZ{+wY2j{e{p9W7)*~yPd}RKDfOTEepN4;u3&1#N2A`! z^>FC*3jP^`l`0@&-@If$6lSmBOiu3xA_Q>U_HPgBwh*|k)9&hCQ%2C$N1@qsF#+sa zNq+zLxF+N6jLL}K$-KY&6@TcGcS2apq?7TaLn$3|NNH~P_*&nYCdrGGzpIU!9+?lf zd8@aZ4-}qE+_Vk)4{`*zaLeT`;RvwhbrJKcA55rj7EIaLW{yI&Z~LjX)=rM!pa0{Y zfA;H@|G|Gk&uDJ|aluQf5C6EN5@q6_D?0!Fp$Sz`OB@vgFBnV}@t>H4T3X$4=nBQm@YqD74!MVeIUQl?Fv9^E8o z{->0uRjpoq8Uzh4u3fv{(zQ$M*j=_H3__b$?b<;PVDw}WXpkVfg4o_2MB&9%894B^ zeT!A_V8TUh97dd2@nXg{3O|M%S@LAcl`UV!oS8CEsyc)I;|!YW=g*=|J1iZPbZ4BY zN59q_yYN9&s8phvo?dvNf(HyiGD$-Up$o4H_PR=l3I3{}J{l)X+ZM73wLo-d!JY>^NIm-;QPCM_!Gf$)B*d(+w36sMcK?S|( z6G1=0$xv?))eHt9gn&UnriQq&y<5n#<$)i8Oe+v5agw2k3ec*c0wt9!1TP#UeF}#7 z3`9`R?X;xzL0NCbHCJ7iB9qLbHbgN*VAm9u*wx;YQ^Z}DWwu#oGdo~VX(f|`QJh9$ z^pjB>!qy>eFB75&BOZ`I0=Hg>l_?-7)$uE_Y(d~GAOqQSkO_#$NrwI#>ZQQcQ;{r$ zkhNA7EQSK_3h>#{WRXX1HYyI|1k~D_ zHYx9)12%DpWrtq2ECvWFsCSS+0+gYt7=S1ufdSA^V}Jq3%^5BKDwrUG2Oxmp=?RP! zu)ZRaF7;o4)xzNh!d{q?ttUwyjNt~!Mmue_ADj4NFaKOSZn@`%ki3(r9Tet&cJO8g zhxpzB@W1<}%m}&Yy(^F+dUh&OB8U*;h@|s^I)@$*ScAtk5cr`8Ac#o92PJTj0Oz$R zkU$WvQ`L)AtZtxSt+DB5%4`N{$31u2+a~c#I&}v=c;T&*vHoL}A^QYT!T0WadBJ&y zKKdo-rM`OWsfa#%&LFUU=QV86MVDOENQ1{+(m+FuG;F!0{aw}=;D8CbmjD6^0wILS zKqd%c3hnBRD|{R?vbLRN(M5Xq4=2(1RZY zVXofr3AafmTFmns3Y|x|$h=@vh{H=DT<4S*#4arm5Q{E;vBO`aK@FHfgDrqD#2mS2 zENtN3S^`0V2}q!c{UVrT92Emdg>Wdg+maQvxWy}Vkc(dgV;B`At!Y)}g#VD4%k-8; znngwk5Ks#Y@dAN#Sp^288iWKgr$Zj@aD6#M!w>}t{)}8)ibn{*qkJatDKTaSi->7t zBqbRhFHX{um&7EC^oGW5{i9p|_?9QL)k(;>FpiV!lnVwE1PTBGhkWegFKqF{Sq^fL zxiDXk5*b5AW->C5^kp!GiIqwY)0oG!B-|pSC~uGwl!rxX?ej68+QW) zz%rKOv&8^xY0I#f4*}QISrL#48MCd^o$usM^a`WQsT>b8^n_q2mFDIv!wmL@tCws(#lmY+aW!ek!rcNppr zRymkbGjVo8mxWC4dHtHtzxcoBbsM zH*ip2g*#leCGb~pa+755#@IC-Yp}?5O-_jQ+&Q5vHEoJ6b+wz_l48uWG=dvwJNp{V z9=E)JJ#U1>OPKY7mrbSBRiwcBmmB`9Rw*z@050J5P(r4`zd{^mA88wwUbK}gYY^&M z2#OULRP-+a$`WxUJYf$;H?w!kn0KoSo0FB-xgWN!WszImWCg3en#pi_UliW&O1H&t z3bBg2bmGvym`0ymmMKvSS5*!M1_rn%M2N_GX`eGNoDDZ9H7t^)K zfN@31C=9NglNiiYh7F@|n8i#tUtQS5ft@UQ(FEel5*E77Z4H~;%-9X5`C>MXOp5iy zVj0t!S0?Rq7x668KwF56-q_@_-grv+sFpBfWe@whvXuZcd96?`@K|i&V6{lVzBh@~ z10vA0N9p9K|8Yn*!8~SGxBgmWR#onqQp{%UUd+WL-foDoJK|g;%f*FeuXmfPCdoF| zuo+ZVvf`X(G&i?ci4|>`6`NVX-nrR`b*#1Hv{*MQm(IqOww;+vY;22m+;B3tpnK&k z7`*VBGAxXGaO4#<@K>!0RjV#AE#+NAfGvRdbgHS07QJkF(SNy#YCGy`hBv%f7FIKg z4tr-@AB(#cA2FQU)N72dnb(89s+?&(EI*h0!pb7~uaRABTdS#Kw@!Ak$s1Xg|E}53 z0fvgLBlOh^kv`OVsT7dR}+A-IjNeKX%)m*EZ!N3**vrAN7()zxJv9c+mIV`{!5u&P{*v z)uJFysm3eXQh@U$&kjGTZ0AW4{i zfPou8xSOc{uUetL4+OzhqpTIdK0qtEcsjlCQ?~pQw(+AsV~e=e%RHgWzsjQ+noGfY zLN^*TI%i|N@|(8LTfB+mIrys+*K>#&c^DWl0v1TBrn!MCk_;lS1>Cy@E;vAi!lhjZ zAF<$tUVs25L7fS33x|NJfclRo*()7e3!L~eh6%wql*2i^KK$Ff9sCKqV?P!|x?z(+ z8|*&J^T8Q3!pK`WJCr{dJ3$w;zoY{~8wAAoLqC(FzqjG4y#WfpQ9_7$6i5lUs*pF_ zO9QQoDBk-iTnL{u(1E0?0RLF32or*_V+)+90JuAh26MiffG{|u!(Q~oU(7Q^v^Zj0 z!M*;I#L-hZZfiuJTfZWdxgLzco4doA~dp$chf z8DD|{A0R;2Dn*5wsJ1F6O}Pu`YY?_;!<_Jx#JB-jOpAmAu66>(fE37qR0=&iL_f5r zSv#yYyS9ZqI$!BLa??iRGDgEoy=q%X@)NAg3r9(W$Q~@b`0KlfG(>_N3?QhKdDFdi z?4zIJ!d+m41XBw@D1t130e<9(3XlQCxPc_<$DR2{fHcXWB+8=P4C^C7q|6o8GfEnf z0d*w6AX>7P91C9P!c9XsI&u&hAOf}Ei3qU8#E6s^hyV)stw;f;rc}$dWXq&rO8#|= zo44GcbrU8SXaEAtJtd`aNP^7T zw9TSCyfDd4l99~e!A#*fsw9A#rh$MW$R@nXBAp0=AE?5vu!S@b11=Z7yvKjY$1ITn7YKx%fB+h}otv1=#=On;bWfE!hIWw8`J~VKYzIGh-X zV$7YR+NHFpfDUX7Qv-ql;0pA)PFqTY2KWI4Km+tafChM+)cnp0fB{;O{(%>`8Jwwr z2uOkpO;6cm%={$L5_P9zn1mrv(IIGn6=hKubq4%2(MkHbh-s=UD~cLQLm~)KoLEj9 zfv8;AP6U7)jk19lZ~;_vhy!7mqY{E_3d0WF158D$DGz=jNf z3@{Z_Sg;2%)e|z12R?Yr-CULzgAHlKIF4?(cd9_32*DAcR|vjrpAD-1lXzt9Uu zeN;%bomX|%XB{3(RZ&cxRt2DhNyr0F&513D21~e!ULaMTFx8{@f@*Npp%~YyfQ3cItw|Cbh|(=N4Ccg397%&8s8>!Cn-@^lWo1?mY}bWl*tJ2? zFen8%cmN-u*ow7QY;6WFy$LW4S9C>Hay8eYNY|%W*N)96FNg;Fw9j-10fh-Vb}Nwn zQ=0t{gcra8B7lMVC=#_$og}HALP(NAfB=JKkRUM7f5njmkd%G&57%^vydc_x9Z;T7 z*oL**tBn{Gl?8wB2N3Xq9{}4Q@PUiXgN)UQR^16T4ORYc{fBWa*H9gY6S#?F2vvHp z1X!qBdN|jcz+1RI0aGp6R5b@y@LRg2hq!f!x1|Sm1yxZcRmDZzZH{exwLp^nk$`>)1g4oEBpEdvU=XN8+DP*O3M_(~p_dAf033+gj-pbZKv=Bx z-tS!&t>s#;)l#z6)|{YQN5~0Ndb%^(^2DVkx1J08%c!$@`1D-$z+Z9M6a5uCdgw-ho3fRyHh?@E7*?uvELm=WJ zHiQbGfFov_>_vAui%tCSpT~03;p+uw0B#{(NGuP=g>)&x1|a2=n4&M&_)Ygslx@GY|%0 zFk|yok2-snERGnD0WOnJ7-W4$303SGmXBJzs zRfcKK3Haq!KG+a#e&f>c=1orA2mWVq2HbTH$Q%BOmJvmqmdZs$~YQ?e<=iz7TS#- z1fVU1C6a(Z0BOChC?-t|BWRbCKG0Yp=AGzXn1<}gwi7V++L{)In?_@^^$A5D-JibX zxGey$Kv2JpJ7(mY80~QuTvGMp$i?IahH7*EW}blG(mrRL&}vMcZLj8MF`ezD){`!n z26#Y*vyO$~Chp;ug<}APxMmhKOpBgHl|umRCyD?GDB?s&1SCm>LtvW0u4O}*nn9>V z#rOfm_6l170uhZ=?u|{!X7Bd?63X@gXNKl8##U|p5HetdpiosQz+0b|0{s5(F#T_N z2x|KU3i^FqPmqFp9+3+kVgF73YSb=d)s9;fX4i3D;l#aP+V)>PcJK_&aQwaB+K$`6 zRnvVwWHBvQ6<$+WK?ZYpghqIT2cYp9r||%IhjzdOV*MDq8`w$2FlqA6z4Kma_vZ30#}z4nZ~2a9H1Hr&CDYBXlG$;$c0%L;%$m>HW zgeK4KC+BXUjR3iD0TBM}*XAVel-_bL2likG6EI)q@s00i9`pM417j;hWCX&U8_DT= z@fe?R8?SL3*Kt#h_FQScxj+>N_`-eTLa>7}SI2HyKLiROgzg3ypzW7ISe3-k3M|J3 z1V9jFEgM7?_I>B~&^iW8UTY0CK?0*y+!9$ z>>=nGe8-9{?)RV<`lgVAWPpdGNBX2!dU&vN(VNJKmp^Y4N$NWWdC+)c_yru`iCEb2 zfJ}nsUgZg}h5l4mz~4)CUWfpSrsWC9AB(o=3cvvhV1X+}3`*(s^PbY#{Q0RJ`o8yj z%nHQ2gF!(oy2Ag%MHF?FdWMYGcwGqPo#1+H-*#NNqnRDv10Z`g6{BOcyB zX!0b_ZX(8+KyZP@uuJl$J@igXt9b0cmwnk+Kad={XUxW9yu6I8!G=2qc({6C(1GKL z{D(<=8p*)900jNW3sl$q=Rf-|+y&~E_3JJb>n37!&kyfrVjGzEU*?=*-rlNc>Df1b zzrVrsFT8LwymRxzjjOh~i-brB18RVWh3GS7+9|my}Eo#&##D_h&wwuwuuOEo=5H z+O%rdvTa+I%QAR!=hB^f$t~W00`sC`{qd<24EPV?>kfBRgGrh_hC*RnzXVb22`!?>}x_9&L?fW3ZzJyTcvT`LUTkYL9Yo28&(4jcOZfZD!3qn4LbNBgb_+OA%(Uf*W6ddF_&C% z9VW+>U-MO9$OHq};)^f9s0d6hwy2Q?jEQ|TUU`PNlt=`JC=!Su>?K0dA%e&kND)iP z07McApaEkVYBXR(Y6T5wU{+LCcqNuuYPltsU3&Q?m|=>!m4;-MsT_xCqS;l5(iw8V z0KcpVOfYo@!{PvG$?MSDTs}U~}Br@1w5(IJ)MiH3DupvUq7lF3( zT6{6a8F#BO#~pk8G02~WJTl28oBVBS>8iXk%PqV7^1Exb>*1{HQf2EP5j?PlEppn) z@6UGHGC;s-Xw*g^2Om5EWe`_DS)(!uiEYIvA0<{%Fl)Uv*Ij!JoD)T?zyjH2n|(Ig zX{)_9+iko3Hr#Q`JvZHT+kH3QdF$Qw3Pm^}+=cFr<>8t!8?IFngZ>1f!!85l;xDj} z*NF>^KijfKF9yF<-NNTRjqpYCT`Q^8tbKht>Zz-~I)X{;{W|Qi%RW2pwcCC>-bsl2 zA>oGio>jf`DX@zHJ_o(;&%mgm-OmX)Pyq!LC~PglC{Z9-qoR8j2oa^5&N}$vi$6a3 zV7ZPv`su5`KKt#v&$jO1!W-*{@z#%3@DJFciyD#x9dw=45R5eZYyj7*NVN*FtieE_ zQH9W+XDCoL?-8YZ7Q7$^GnhdqlL-m0Jm!zjivl5s*sAlnBbfdL^5p^a{QBOK!>$2romj&{5w9`mTjJ@T=S ze*7aK11ZQs(oqN)h=dMVPy_`1&_P0wKn2jy5i|hsf5#)>E%cO&U#Q^$Ra79tKslHR zSmYv)5*@|5xRkDVv5c;KB`jk}o3XLL4;UcA5s;wEUGlP*zWgOHgDK2m60?}bJSH-e zsmx_Evzg9(CNzV21R`L-4`f>bBkw1ndQHGjy+8vKkyuIX00S5O`voTlFd{0-_Qk=k2Vx5eoqUEh2Gw%H41SX(33gDo$5x~I%h)~x6 z-4(A8aqU4oHQ3qGwzgaYtYB@+wZb0uH$ML4%MQG;1A+v1xLSe15!4`AU7!;U{_9s| zGaJ)^sbL7wD~tqM0D%cW4+1!N0Sv+$-q^O5KuWn9d1b5H^|H6Us=}>%U&h;zx~#aw z6|Vh!sNekx#0fs=MR?HZi|k0wSOol8b_UjqHADb<6qtY!q!6|uB!RyczA%O}tl=ckZjyL-0fX%=5-R1j!E3F=tu!;b z(T?s7njammHTyQl+FT1(39?nM2muF<@x`4(EoyW&8ChzGK+a$wgQ%1@De7Icq+>1X zS*In^v_=)B+guPGpM|6*{R#|RZ~!}xy4cy##h-Qo1RTU*wNhzqqV;N5qu#pO*1on? zY|WNsR07+1$#rksCAcgF@c@%8cBo~f3toIA4MA}BR9fwjZAnSm-o7`!^IZ^akHH%H z_&312oeY5MBOE9o2)7fmjDSBR;rdn!xWhd^Ey>^ofjEFJK#gv6CWa%9*@Z2PP#}3T zgx>YW=fhL3a#?G;AYZV?{vHgH41@n;3(%ms!woV9MiAuXJa0(OS5B6Q^AiRZj{vXG zJv7WA+cCEo!m3Ap*Lkb=2h3Ndu z!JsMN05$9xox0#(VuI|L79An#QlEOst8R7Jvc2$zA1v4Z@$#4#1npgq`PvWS_=CLs z-<8Pu!2iwou=`sdjerKvZT@+E#Jt~@H^{>EF?NEOzTj#1w%d#T0?|fb0Ryh|Pa)5T6rd;NAX*|Z!d;tz5KmiC0KrxQt{Vg&%fFwjI@L-H~J)IZI9UlP} zU|%I4_f;RwyYL|@H8g99#u^ua;|jsZAGU{41faofDZtH5Cq@%2%stv;nf)+5+)&1 z;nsdF9&%*fze(Toy&Tvb1PG#Dx3ylt+1%!FAP06J!RbQ;!a^8&U-vm+nysJTlso@JUgbXIt9x8<3+2OoQoA3$Y|M?*+wxSpTq7Mn8 zKoBCraU$n!-ncCT*pZ*&CEz4FAoWGxad2Ciq@Y5Gpb1LcrJ0Kww&6mA;!#OKDbL{d7$QcB{k@mf+er5J4(R@`JP5rs}}494K$Lk=E# z5hYlLrT7>nmK{V>!i%`g&r#~!*!>o*c-e~u4w=zpS}uoNei)hIrCe4BhgGFPvY9Ai zr8MRtDP{~q5}sHlrebytS?*UtB;{Mq%s|v-yu^&Vz{1Zl;AEnhWZF+<`c7wlCSifBS*HerZavgSir3Tb2cYkt|xuY%zKuJR5D0kUWIIykx|s9Z60PeZH zMyZsVij2BuhwiA3_D*DeriGp+a|-Em7HL{`seGbkk;dhgN+^D|3RMc|Uxuf60v=Fa z%#_xtoq|bIRY9BPCz0-`b(-dcW@wq>XK4cJT!QI`%8HE^YMSn6O#-O?mF6f_RKZl8 zC_gbN@Xcw9-YKVcs)W#zEiJ*Gf+dnx#S&E0HNk04HmQ?p>Q8zqtnvl~WD%{_s;%BC zuI6g4LO>s$5euXd1}MQs4J)x0tFay{vL>stE-OSS!67A5p?!^*O)IrlE0ukjwPvff zmgu&2tG8y@p|;nzKI-9d5E^~Z4W+BPt}DB?tGm7{yvAz_<Zmjve&r!;rYA|!X~W3E-b?$Z2X)~z(%aZlGwjati_&K#a^t&ideW3?6hh;3x&Ma|8>UtF{D~A3JEuAdS_N>qTtlsnu z52a3*`PwJYEYco_9F!E(9*5B)$I~XQ#=gNOT*%YDOVkQP)=F)^QY~^UEz^1f)|OOO zX&Twu7S6^h5{@cAaT!)=?I>{V%*w&hUdY>ORoqI!+e*P!$!)|QKuJ~YaqR7;>22Ni zt>MD0-{LFadV}B!1l`&t;d0eKWE$SqR@$nq=BligEtWty*5bBo4t9CJ}&AWz~?^J>&C7?r0(jnuD5!v($;Oe*sh$xnd!>eY-R4|7Vp+Fa3Ti_HwWP%CGtEZ?%Rm)SlG;8W)eT@5jC`1H-SD>8}7w zEa0B+4oENhRxkxeF!(<10Yh*10x$+^u$U3>aR9FRdN7YAuwS)r1Gg}_aGCFlumpQU z?ZR&G)-dhLaJGi8@9ISi&#vmat`2h<34gBG0u+J95^l6Zss2!av- zFIz7y|8j~2voM?3DeIOKA73#qv)}qMGdJ@ygBdYLbIjf{GN-ZuQnNON4v=d(WVGe7sUKmRj8=ktG} z%b$+(%!0E)V_8DC*fE=Px9akYLUB`+^SNm0Lcc6RUv$lCv@ugO9G|lidbC6YJazF!byjJCYZsnt`zKB}#8Nl*Hr{qs_jbWDx0gBhQ7U&o z1vlFb_jF3Aao1>fs^vzr^mP96C~}*bbjuHP=Q5bh?=GXZH~;otQMcAvw})maNe3#S zc4m*_bXU zc=CF~k{9@x*Da=7Sb~4LrfV&!D=iJ5x~xkfgN2G@Z*EvMJ+BQGzMYwfh7x9*C%r-ypnR_`X1x_-5|?jo*0 zyt=G|`;xafLpyt}i+EB+IMz-0vB$Qt6Z(8=XlSmcXZE|UqjFLIyUHxOyGP~(TkW)? zZnYb@K$Ls7n{SkFIk#8v!83d#OF4fnc*K{K;(9Qp7kJpdI=izNqciiJ$9tY@wy(#x zn+f@a19o)^{;FT2sj|;nqN@tQ7yM=(Jk%zThHe8Im9v|B9|@9oc@J*^9_xnsF- z@x0OVuC;Gf-m*Q@^RC=OeHk-+y8Hcr^Ddq1yvrK;QgQvtc|E&;{k)6)%8QOpkYGWB2N5PzxR7B(hYuk}lsJ*%Kq(icWO;@T)G3c2qoLzakz`4e zCsC$Uxsqi|hZr%slsS{;KbSXh=G3`Uia?$}fd&;ilxR_-M~~V>x|He99p0cujk@%W zoQqEnG}Q`I=~k~_!G`_XHD*n-XVID!+ca%kw{PK^gc+-xhaNo|v~h5EfwD_+0S6X5 znD9fKg%P`4yVK`l$B!Y0B^#M?*f&zMRt`E@b7#+*IVTo98s+Doq*13N(27j zz#$+F4;wgd(3mq(l9{E^y-5N$xFs4r-*1_XI}u#@YQl$|M_<^vv1#kq#d5~JoqJL3 z-NA>?8CrVz)#7`aSHGTS>q-j}Bv?QjzJlDl4U&;ZkG~^@!V?2oj~)%Iv1Bk}~p^%(5jBwd|5a z_Yz6Gl-cY8wzrvBYo`AO^1ezhE3_3qgJ4Yei3QI#NrHIQ)F_q3e_z0Md4gwCaPdA(p%!wKPXuPO5jFRDx9zHPo zq8d~)D2_knU?KyXQ}#1w1X%d<6(jxlvqTEwTve{OR_PJ;B3WsTbynk6&2>NiV1<^R zRFAc@I9M?vl38baJJpekm^BWgYNbdQTq(4r(N=ntHTEK4Z$05&b6C0dUF@=eh97?j z?!@4O4em!!$1-i$;fEoPSmKE(uGr#>nLP2e*k-Hkw)=3B)!B9JoiPI`s{K(4{b1Ga zTq$ZfS>>DbQw~|1qp?@llZmr;W^=pMS)P}H&9<7CTeTM^A}@0J{@z!+<#y@fUS>wv zQ{T0Egl=(78CRB99{Qq~+r<@SpSjgq3Set z4_xrUExpLKyLy-p55z$>wb`v##s+exSC#c-RgGnrRkL%&=5mww-Fi)oU=j9bvr89U z>9fn$7jvALW}W1qbLv@ISWAuka@|?Ce0I&zHM{a^-jx+r(BUPXJ22!XSPv+2LWZ43 z@+RE+>#@&X`|Y{!-usCRf6a|IIv&6c02$P2V_1sm7ZQl~&{te#s&OdiHb!6K& zU3jJU7ma_xLRl|+-A$NAKbR2k1hGS)ox%k{b}=x5xHDG%{9H9Z0pjFm7nB@KMwhy0 zDQ`Pha7H`)@r-9ELxnALp(fVyJsHlBhBdU|4RM&m!bkx{Dq;~HT!bbQ{NzUzyb1h1 zIJNq<4ktScUFa0Z!T*uYS5drI0YSLBizIM^q{Ep3r)EIP0g!VFL?YxWC`H$u5rpRw zVe*z}nq%-o7P5GS5weg+J?1eMnaGX~1;Z6UlEguRtWJ6cIUPhEk~L*vWFif6kwzNQ zkYs`6B{2yi*T6?U^htoI@RN|#?MzL+FI!ZhH4j5@}Go89E5 zERF$+Onyj`N*Sk#BAK3Yu5*#&tRy=d6Hjx_^OEmu=RDy_&vWjRpNVme`Q9*q7P%n+ zF)BzeMj#Mf5~oK9EoLu$C6JgQb7&H+(KHFd%4xc?Xg0!8D(TY{It~D)(;|pyVmnLSmk4^le zN09(@s$#A3TFtpxf`(ZmkS27nuXI&N|Nc75kj5{h6zxx)*u+@E!jvFHvXz`_X-oGN zNJn}#4qx*{Q+k~MKww z+pzXlhh`NdaF2Ud+%A{76#3`)%6Gn3lmoDrq^v~NBr&8am8nm4YE-A%+>8xZycX#R za*K6$y`6!dIZhI`(l56|eXmnLxog3G5Jz zKI|CsNU$+}fdhoZf~q7AOjpI5{!bwjx1Ng}a#}w;$Rr;btUh)!eYe1dQcRi35P-ry zWBjIVy%u86KyZR}api;X_{nhrGHo?1)+Xz7pT9)%au6d0cXGj+Ew)Rvs4xw}CM^1XsmA3SyofC;jgn=6Ha3O=05o%F4 zBf^ou^r=yuYE`eA)vb;W7nT7JS#ah+>j@0!=W_VurU9c*C_o7lxR_OX$j zY-KN-+0AzLv!NYrX-^w`k+Sx+vF#OVZ=2iQ_V%~I9d2=to809#_qoxXZgsDl-R*Yw zyWt&gdC!~P^|trD@ttq}eeav!{r3020UmIH51ilyH~7I3o^XXPoZ$_3_`@L{afwfy z;uW{}#W9|7jc=Ue9ryUhK^}6EkDTNs2lxx@@Q6uF;t_UuL0f>C)4>b@0C6ydDdGTt zA($NFh35Is+kJtR4}IttV2H>FOORI0)FCm?8DS1^bE!-H0Bw3ze&mr^pxfK$bndWR zhwiAToVOmf;e0Q@EiAYwv*@ZeI0;FasM} zS83Vr-E}*!Wb7qrJmMi=!xyaF4gy)bKDgnUW5dwGs4Bisi9S8xFp(A$cm) zet(dEX?WgV#K5()h0hDl(kuY$Od;G1tkTTum@NMokcLza0-}%TmJb40F7AjY{#HqH zv`?f=hN76xTxiNazQ7Y~L>^|!?quaoQo`nX03mt+=h#nICQE=Y@E?wZWvGb+J&>Xz zsskGk&kBwIDD0{Lupo%g!a$7wvI@S`?EeBV0Uz%NrSNZ7ZtaM!3aen{ERYXmP#}`Q z5$Fe*B>qRCcnLt9P6eG#{>l#}ZVvhmq6%(~{lXBLG~om=&~i8{rg#YlLvRYqOu2+` zzK&4Des8@9(42I_0NaW85RJ|fF$(=K5-$b|uW%Bqa1yrAmPGLS!Vq8RY7YBQn6%}t z`p^s4@Fdz0A>hyy*sqmr%0Dm=gZ7G=riBz)iS#7V(C#S^J8TelPXHUylGsdJS!uqZ8K<6wlBGuWlPnvAR%#1zivZbA+ZcKvohe z7RRt4maY$Pk(ZXyzJf3T5iqR~k&>Day}phil(4IG4-msH9tHAYl#ltG?+>6)`ZCd$ z{`epoY9tJgi41il1w&AnywL_v(In2#4bsmP)~_5}$r8TM3!jPZ$WZ+D@bz$UAhBxy z1o0)u>Iwaip7hZP6)_n75hjz6C3%u!CT|j^@ACd3^Cn^Q5Mr5N;U1173>hjx9IB%< z%Rhh#s7Mi}R0$=crUqnaR7f& zCJhlEjj)oI5CCTq(Hx2RlCdoTlh7C=BF--D)~@Z|ZXuRw4jFS^*u)bXQYv{#TO8s0 z;1MIi5he7F@B9w%OhNEK(gx+Pvoc5^C^IDmYb67--~MtnUGv9)LL$zt65+1?V)Sn6 z0`D~~uJ;OOA9eFL$BQ>30_9YWx;j`n$Gds=mE+xV}3#SRIEuGeL z!um5l0W?4%Za#glA^s9St4%-ea~HicL>lx^hC)CkbV7BFK!Y(mjj=8hkuNtiw+NKc zB#px&Ekrl;E&CB4r;|L!Ban!KLS6JlQO!artsdQLE|ZW!dDBJ-QAg7&z36jC^^!ly zt1pAJMvL$s1#n1p6fm9>L1FYsp|rv_Lp_HO35j$Vea=UJu@SWt2_61X331ZMo{&np z6vMXkN&!-=h;&Q|kx7luNuxAQA0)&3sfk zrxa3IwN*WARr69$FBMRKv`3NA81+d}({%BU^hf(|0Lye%`SV80biUj)LR~dkl{JUz z)JR=YQ~l3W~zT)U@P{jyI{bS@KZ zS~*NRvUN=}m0rhnQ-O^5ICN9xb+@vWMHO#R(RE-6_F^Pe&i>l-Kfk103$|e$7Gq$w z$Q0H$8^${x_F^$MVj_0Yv{PW0WJS{{V?}mkG38Kwt2IG2Q$W@}Nw#HO_DMUmKwoxd zX*N8QVq$AHXLU9b8FpuV_GjH90EBjEiMD8s_GpndX_aB&M05Re~Dxe~7Dz3#G_HZX+awVc~9hWc~cOW{!Z%e{(5tnTVB61=1{&XMLb^if&6+(1Nf^!k#av4N- zE5>&_cjP{oB5)TXNEdKbcObl>6F{VR88>+c!g+6(b}5%`6@qs&*Lp7oc!M|OhF2g+ z7ZjqRbOk~x?lx|*S0KQFc?BYH$M+xlRw~2^Zd2DAN+EsAmwgGs0r2-9mbZPSf_w== zcJp_DrJ^9#7AjH~bB|Yf-xqxSR(zpCfM?eM>NgJD_kk1meL44XGZ=GGH!4!Mbng}_ zwAVEWSRfKtcQ<%}RhVr{n0o(#f1@G*2ttAf_aEvvDhRiH&37PhSbs@(hiy29^A>K6 z*np#gAS#!KW7r$CcZYKrf7cg+;~;@CH-o+YK_O@uDnR%jv>1eU_=}r3hif+~Kvy7e zScaJx9J*M4!Qq5;c#9Dtj6>Lq3F2}$_;7K!bi?<7|6z@(7m0aTedRcHyO-C#7k(%B zh2xfgL0Ejz_lv9eAJ*1}1KD*O_=UXzlQa2<*;tL~7=YXMl0~_P0l0J_8HhXilwFyT z88~^rca|I3l0%u3Jvk2aS9V3WgRys$<2ZVg_kU-&e*rUvZ8>f^SCSzZa}!vZwU>3l zIC&A-kOhK!^Z1L;SaGd4elb~szj>6O`I<*re8X9pq2hHtIhe0mj;WY^<2Q{n`J4~p zdu5lIXV`j)*?;x7e)pG{S9y-P86o~sS9^(>fH%1y@YwMnxhpWaH-m=6&IdAdZ%GJnFqoF$oiwNdaY?1 zbx#NY=tkqY4w;H5(O{Ae0vcvkM znOc-7d$IePru){D4MKApSpIxV`yiy6e0!OBMfay27k{7nv(@?_idS%(T82A#wB0(U zRhNcUJF5A5g{`-?otb(uo2BXaZi{-j69RvISFJZWyDeIVt9Z8mT9~B*ldoI2p__1L z+92H5Ac}Xqzk9F=BDK$Wx>x&zAvz1@4M}f=aPe5X{dl_xw~9R+ioctN;})~2 zyL`#}qmx{*r&)w;{@fs5oS&Cm$ZPqDj~lT6IgNRDZ4=_ZvAnd28GqG0mdV%5@78ha z+qo&)y~+H*b1lL1dcp5o!X3OI?$(COd$l`ZtSwiZ_WX6{+<@UconIIs%$&br9Jf{1 z#1VqIU-!4oyTva(vnQN_1NXJt5}9ip#N~Rx0X@+Xf`)(m#+ew@Vf@t_*wX9#AWS;P zDO$fd{nc%GBEcmC!l&7jll`vk zJk{_#vUmH%?OV9N_;?9jm{B=!F?@O_H{AI;m1~-q6T011Tg0DSsCE0qsh7cPmwg2r z%%MHkAKkD1<3P2snI}b^b~V?@q21K`eShV7Z_gbel%3i;ow$qKvKxES*ZsTy-N_$* zzjHmI-`&w!9jcugsEu8*9iZWFxz_U>pX>Rfef{EZ`-|5+!g&|rNTZrK-h@!8vN`OO)EhJ&1yZ#sq77IV$HrZJbD=a|i#8G=D~+VT6ywb$sm zU7mw`(~B8|8(EqI8ikYF;KM$Ou~*@zIgJ^*nBlmiQC*>neVc)JuPdJ7U)YoPx$4_D z*bUop-4~M)p488nt_7Iz!T7ETUv^WM==Is4`&o|pm$Kb>^9P#NM|qJ&8QVkH^2-#n;IiP7+z~x-EQ{3EQRxNrJU_+GPo_M9}z1_Wda(9@a9a_e@9gm&&-xVTt zk6UmP0-41Z@55VhYk0SP8j!u7v3uBv5j%tbw(RFR&!-=gH~7#4v*6=eeWxGxbsqdR zJbo4UhIt&zKm5U$7}lXT)}c5mv{|afTaG^%;Q<1aw}B4+{p&Q)n*(s23+B`iZ!d&tz5f${R%ehRw-o5n#FoHW7)A}|NgBN z3wNT~xl*#emD@J1-o1SL`uz(yuwau+2m4Jr)39Qb6`?ME3^}so$&@SeMQmB{)6ASZ z-(<-7VdB1^J)1s_nk!wpSJO&#jW+M;)pKLlRVzES?%lk5YZd5tH>kv&j{4rZROs>L z%$qx}JY1*o=U6vWzs|MdXv(7hYR3*fywF)S zB3`*|h~kH=QOIJ8F1`q3j55whV~sZ6h$D4kaKgzQP_)+8g}I%VVtKb&{%B-fNRk*N zlDGL)Vu|UgNM(oaF{z}JIc~{imtKAeW|(4*NoJWX&a%!XoxEeok5$pO;!P`hnBJ=lN~x4 z;+=p7I^|z|J}GCGSzZ~ckVpCnX{@r&N^7mQ-im9ky~RRK0m-!E$TO5^8Yq%mMB_-R zs*?KNU1S|=3A3c$c@-J*@WB?U%#3qFp+tV_DTZW`flUU}N~vqQ>aNRfyY9XVFO6PM zV@Ux5#6bWwjoicxJ^q?Af{@21+v%&)qN?Y!(L_t$wBDLzEwU=p{)6_;{vvG< zEdJ6njw_qfBXQ;c8214jco$ChtyPX_-avw5<# zUw#5J3`-F^=iS0?4lDBb8~W_XO0+Y!z`Je`$FO5wy+QuFV{Ul(;*U>$`R2=txYwAd za24>ck6W%3GUMF+=}0HjJLRXGQ2#{T(~hm`sZJiFgGK(d_XSVj z(00PpHL!o(Gawg}IKgsJZhBvw9t&M)Jugxahjgr?9q)+8Jbp!oJlu-4vWUCS4RLz? z`dshGmJu|f5Ehnb;R%YkMkuN=l53>L4_}wY5&obpja($56?bRJD~d6b69Hlsl^8vP zG!YwR1EnN==SWnZ?sN2zpdN3D%UtSmmx0?tE9ez~#O;uMT@he3Qb|c5W(1M`TjDay z#SA{|ECa`+Bn3BVxnwExh?-<0C%0%q&{6Vtm@^(JC1Og`DbkUU{GB*er^Z+=(1P3K zr9JP7&wT3BR#!*{JL;i{V5*OpUBQ_-GeSi0$+DTqTqEmh#*BwrbCR1xVHnAIf=y~~ zlV}5DImhVCGOE*=6{IG%I_k!Fn$B?--KR@m3e%X%G)85(2OU@@%s%#z5kbtK<|IZ2 zo(_;;2_#+qwy?j7P6T*H1Rm1h$wi#O{z77OW1s_1>P_v%5S>j8CG*O5Q2cQ*hNqlo zLz4jxO)M|0p+w*lD~T;@5fy_ot*c${ir2h$<`|d|Kq}rq0BPv7htK<$6_YnQv_-C# zoxGk`V~0$~WsqP{m0q%v=R$u;P^0Bao@O(!J4djQcHBCsJ7p)jR+3aAa;>22Qp&~H z*@JaJEvzl|ird`kcDKB}3SXhojz)Mb54|m}agU4KVT3FQdB{SJMJ9BN zxhvzf~rfaYSt%WT## z4k7^OILkQ#I6xT#27u>0>v;eTX!CfVafwGf;=2F3mm4o z*0rN~ot00>AtU3)O0>Q5@T)xB+2Ce4rX><_$YfjFrRH{4HnDJneET06&q~7wKEq?k zOKmAD_{(p?0()o|e>b2c^SmAy1hkrhSd7F@b`*(49 zWL2<(EwwOKNYgJ(bz5sBK|z%{2Sh+MV@C5tFidqtlJ!!N5D8&G4e&5y`lbvk$b!vK zW04Rq{ugt78YY7-l6||Db5fUnnD%Q57=M?ygZCGNjwcbChkidO5sD{z^%r_?Ko+ak zgP8Yr@JDuL*KuEQX$SatzlM2HczblzQWmNSqZf~qclxiRaacF4DcX_ zb4Z7CcnOUXC)pAfH3%7Yvxic%7#cEtGuRu=VkC9}h+UD0iAWhY_-MSAh=nH+P}qN< zXMRA)gzMLY6Y&Y1_!5$+gv|DNmiL4_ScwyncHyRaR!C|AxE0EFey4bZlemC*R8Qe# zSfk{IZG=gSB~I5wNSI_!zKB|cNEv+iCx1AImC-gu!-#_+h{o6)hWILoxQt%0h}T&D z8IE{xO;Z(;IE14xcBAlfllKpe_X$*Zgp$X2tCo()25c|Ub3PGr@5qGrmyV@KdE>YP zZyI~JAFwKx%PCv`)Kb<@U_J9u?CDRxD@V!IN&6lW`Z74tYZ@RaO&OL8(+Z zOQew$MM#(3Hf%%tui5D`7b8%^shpCxw5}BB}7Nf9m#S)r@ zsVpdh8=`5M|4@~tHUMvFnX=I;hVSeQ29ik}!vuH$Y>O(J3gfa-B}2o!D6_+-We>BApF0h^#4|pLw3y`JHw0oN_ZL z)Crz?>6lD2m-P8&b2eu$_nvqmpX=G3;mMuznRY)XhzJ^;Ig_8> znKl@coei*O7usila-IfCoz0k=twRr^b3M(|o0d>WC1jCVRamt3P5$GwSdL&?!$*?WH zrnMM)3Z-tzrSK`I6sj~0il0)#o-&x3JgTUH3OA?nCtbRvIl7(l(Wlt>o{mYR-kGU` zs*UK0H%AJoI|`_vX`ebur;8e-ajK>fil1A0lG_=ms*0t6ik^H~muPyZC&^2EIv8wO zsfGcnqDrgTNuIJAG&ysfjyk78QmDe(H*rI#5n85lIjn5s{*u3nq;4vv%}AJZS*lBO zm=5Ei(FiBhN}sJNs3ww!>N={k3Z~tiaM@;da`-?uYCbZ1lzGSy03SN zv>0QgEc-aNVVkmwtEalLxw^DRo2{D)r1`qEKw7lxp`}flu1Q;Zvv{l~J0b@gwb1&q zEjz8z+8Pe~q&BNxk{&vD0|1&w;=CD;D^xcs`jL|En(jDPy5 zjKLYK!4doq8|=X!48kEy!LLBVC2YbcjKVW1timhI!Y%B=FAT#mEWY`Mv@{`~&_{r>*`{{H^{{{H^@{{H^{{r>*@{{H&@{`>y^`~Cg-`uz9#`}g?z z^!4}g^7ZcU_3iER@8;|7-Qnrm-{ali-{0Tf-rnBc-rU>X(bU_>&DO!l&$z$IuC&3b zu)egl!NtbN$H>Xa$;r&i%gxQp)Y8b<+SK0S-OdA z_T=mKuN7LV z4NjmQNtq)>jv+sZ88d(mCUYPrXeKCSDl}p#Jzgq4UMfFcDnDN|NoYP&a6?yfN?dkP zW_nm{dR=dVXLO8idXaj2g@Ai~gMEXCe~yNQnu3a@iI%05nWUnmj;x=KvzCUrje@^? zd(UQh(qDYjVtUwYcIkd|>wt3XfpYDGbnBaR>YR1zoOSD*ckG;b>z#h(pn~D1fa|Gt z`>$*Ku4VeHSNo?$@1IB8j!4#qM%#Z#<7-UoUrg&+M(S8T=U*@4W+mBfA<1j(|zCrp=o; zH{!Ipks`vLI(G_%*>kATqezn~MG7>cz@|=#7JUkIX-BA3gJzAo)#p`-Ji*q~TJ>L3 znp34}HOuj6TeoS;e&rfgEZVm})3RN=mu_FLUAf8?s`n;Yynofc#X1+TV!(Xo*7ZAh zZREy}9V@+Dx$xP*jxSpsO}ez{)2LG)od7MLzt{fmq4}V?w(Z-vbL-yCyR?WIHGt6k zu}YOH8!$*{9RY*J4I4Lnl=$1$M2s3XY|wxaqGJzMCQtt20MDvLcZ4Kj*bv@(EaIV_ zp}w~&y1jkW@;~3rKR+pdy%PyDi5Fc>BM&4{B<7x9md2!8SU1*ZS${<4 z_+egl4J3>_CnC0DL>NMmWKBG(@mN?7YPjEjTY9x(ZC?&GVIQj9n3|a#nh8^t_q7KM zKd!;%Pe1ucvPGMC=BekNeD?X&583?y(+$QIs)Gr3l|X2r#@XP52u-DDLn@S3O2c#! zrBG6MoZ?^tLM6zMN)6}bS>t3=eyEv${rTzYKmNzaBkO@uMrhcPr>P2=L>=~Z41zHt zxvGLC4rr@DV^WtS22pBhR7AbP^=qwz!6+h$YU*d!lV0&S>#QtV*yWX(X-im*4xICC zh0r#c>U>b8`y)p|wmRgLk}b#}u3fD;BC!H-+iZ&nu_^4ZW@S0!!3z@`W@-=bloS*|O$|w#c0Hy<@jIM$MbtKF{ zDJnn*ok|QNL}Y;v;BjgaE1wD!YAQAi!RM*^;;SlYRIl9LwEs+)p|iyj$S?-e;#-=+ z3kQgCUlEH|q+MtS_145qaV;akHI>cb{@O|DU6{51mJ1oTG|8*1y+)dSI9PVm*s4H= z|HC7@{T_^}MAzPnx8{z;jq2q(N)&n60RO}7-|!)3cifLRruVIOMSPmoJm75H4LrOc#0%A1U+5|@Y$a+c zL6?sT4Twf0MAAz4P%{Q2h^k5qrBY>I)|tW1UzdF0-@I*hyB1P(XOqU&hJXX~o#__Q z8w5&>LO3ztX;!Dep-6Bk0#pj^Aa{!0bWSY>dI%XhQVJuy;s+b^U1&LtrZCWc@5|cPsUpP1|-R~JxE>hAk#n!sj+7w z$dU-+B!WgbkZVqY6}0{`T{R2W!F7_bL-0(HJ||fdPIj!7#_~y;?ukq*MT={#?ARht zR7iPj(v-6D;2+b8kTLmEZ2yoYCC6mSPkc)a6$Mr+G096zu9Qmu5>YD9sm_7OvzQFc zXg!xnC1fH9qxt;iI`_H2npCu7GNtK2wz)x}PHdDjl;nYeaZ-}{s8=HGs5LwYNlkiT zp#*wRMF*5Yp_T|-G?6MxiF#H>T9Tu%LTm5vi6FJsWQawSQ$G^1$G-aYulPw)2!;Sf z8AK!mJ;9eCVtdwu0xNRKG7t%mQ858dh?%nGAZ*p4&S_lKnF<%J2?mc&3r z*7qF6btSBN`!9gP*BbX#XRLs`)P73tzYOG2JWaXae_E74v<(xQ^!pE35GcNOqbE4A zMPUi6H>3tu(}QejiUfI>k_8^FI!zdrH0ATWUWlCGxW=Y1WjB`RQ1L5QIn3f-m$(k< zcE(qnkmrsCJ4p{CQ*C~Y$XYl7*;U!Er0{|&x+A* z0M+en{*=R7v2+QT!cW%nn3EN`DD79vCC05a+WBJvqZr9tMXuPuN;+)D6v0^z>2wSB zukRK$V23Dj& z4xF=CRn#vCk(DeeQt^Y$uJ4RENP!xk7{wC^X0-ItBkInTxD+k>)K=lza!m)r#?9Br z%(QW}VM_@D*%`@Xnnq21xHfCQQ<(MysXxs-!)a}q(SL@C;W{L{?Q*co5Y(!Gr%A$Z zkJ!M8mM?pW+)r`uPTgR}bh*o|WEdtZ-KHD&fEw3L0~=hn85FUUoja`obQ_gqnlhFC z6K-BiUQ=Tp7h4WT3Fil8u#z7Kx4@lD;}NwbO$4`+ga?!^6t5_Uy)w6nXK2$g-}}*I zMzS^m?q3uOaLF%!xuy*k#MR|I;s=NK%mXHIFQgpgNUw?Es18Aj6Zqm`OO}SSyhA;Q z5@R)-P@ok)Xerx0tZRFE*IB5$uY-Gs6N`F(`HXOc2=CLN_Q&y{&G^PEQEm|t0ibN~ zJ|VywXE!hb2}}?K94OWX&->a?5YdB&*2dW_v-Yc|AuG{uTr9+e3@0vc}3qdRq(Utyr$_EL5 z__gfkQ_%@myDb^xF%S62ajXVTE`RGmueOr2o#6fs$o&s?e#P6vlvXr6Sh%bu5;3Sk+HoXK-%?N@vA4&3Azxw?Vcu zCg0~E3szG_7FIJPd`lL6faWhGl0j9+UTY&S_~$#iHF7)nRsF|NO@&OIWP=c-f57#F zxz&Fs;&)sIcCwX%G?9YWR(E)Jg)ww3N@z;fS9BFffqmeFP$+}K*DHe5g-aDOiT4`) z&* z*8#AHY)g@QW0Pzr#B7%shc|IS5954a7kpaWqQ zOC*SW`34g*7%*-2fcF=QqIh&_CuI3%e*N}#UYCAS$8J@YgB_%bG*N}f_>8ESXx_(* zEo6QBH-j`7T!kirg5E6kggWNDO3-KOt^Wk#ZQ2fx)$b_@)Lu zcYOu)U@_#0B}ia02Xa!lUAEJL+UI02IE)2ZbUY?NMu>(KBsMxojkRM+;g}%I$d0r# z4Y_C~4T*KVr;t;4glH&+ASO|@IE_4}Rdct10Z3?B#*7?P{(%UANFldEMTKGmI6wk4VFEQEG*ClX z8zBTazzVE@1JW@OF)#x{0EuEzExJL8fiW7Ah+0KyLEiWjXG`E5<^=C4si{1uY*u*j5HZiy4mq_Pwkm(>FMsn;Ic6lRcddW2pGj{gZ zm^ATi?>3VbM_~VFg)vlA#~7IMH;Q^`U9%-jVrO7(ri~b9n?&I^Wn)6a7l0*Ma`v`E zs5yONbC)Jqi%*xA1Icvn<#eotkb{|x9l3Rz37A>_CyX@lnzFN)92q#d<#0yVLIkFE z+t+pmW;^uek5EW$bT^MJnRn9}LEear#|U`&R-FhWL3jm}do`B=I-s`kA06-mAs`kd z&;l`#96dn-LBInya058t0?I)XBmhNFLjy7}1VCW{Lf``}fGHCp1SOE5ZQ+)I)jD-l zd$yN}FAAdr%85%iTu2o-w54$%X4>vBBuU?iAsHna4S?XE>~TmLQ@@Nli*f{+Ojm1}r(MNVUkGMs`tO%1f+Tq%|m>wU~9A`KHvh zCX9-OwFRf8Do}nZJ5ySOvKpsA7FPsjt3>*6#p-C1)-@$2nJ3w2<`r*PW@Q0KXiZ0s zXIdiYs3hTaX#(M=&DyC*m!$t>PTh(S$Pg!qhYx5#pzs>6aH%W1ay2jk1Cz2I`_rOR zp`y8xdu$08EUG^;I+rwxnrx*{KlXmZG);W7QTiBU4EtRAm{mj7fV%mS7Wf;n%u;&5Z6`_Ye{`@ zjWrvc+PF~oq*KF$vC&dUkia!7du1;>nqG*pbZV$L<#oukHk^cp7$8!Z6SFQkI!AV~ zu4GU{gEn87&m}u9jRWn~syd%KRKD`NvT{~!WTG(TLzuaGyesu8d)>K>R_u%P3j zxXT;S*t~u6ntP(1Df2_n{`)^1d%fDby{0h%(V!3ckPrCK4c)L0;Y$y0P`li_z5+_G zAi^&K@dIu&1In?lce9ppX^DT+F#BsRrRBeS!M>=0JJc({sR2TIQotu;y#|~z+1tPn z9KiyS0>&`D-Cz!Gumlpk!H%~Wr}YmRU;!e$diD##UsMA^kRKM|5W*XY#9O@XOE58P z8Z*qneM58#Y{Nn^4U}Z7uad*B!oWJbCl5TtMtr-(kPrK?5BG2eNBqQl$8V?rj4}oOd>qJfxGXOs0%mj)kMbfVFex?Qp-o|V#i0r}AOyQh7x`Nn^ctgR zjLG&Y$e#Skpd8AgJj$e8%7gsAe31bnpaS1<60Gn7N{JX6N#0c zyIaY4MABxh!)EislZev`BCuub*0%u`%1hU`OU43QuSJPCS%J=YjU;};*Q`R=FkIL# z8o*f%Z6*BHOMQD;ZPm_F!bvUJH_h0o_1L@N*L#iF9x~UQtrh`{&UX}ta^cshqZzF2 zSD6?U1^e2k%|vCa*r`F=b*fC!@g~l+uhoO-Im?`ucf`BU*R~>E!*K;7ju2v-hJJ9-P`Yb*y#<- zU7g(8dl)f{*2gU_LTwX1U>vKE-1v*v%st=C_S{l&-i3XM)V&|yU0O7p-r7ChpKajk zZ9m{m;g-lmUJ=_Gj@u3X;2Xl;2kzd&?AnxJ;pBbSk!|1iJ-qpy;`@yi{cRI1kR4nU z+ykB%{i+j1;cP%&*-pXLF3d2f)xQId-af$?yuIWc!Q^p4!)7kpswp!-sukh z>x+}*o?h$r)9GVe+n-+Er5^0Q?(D)|-n}mBs^03YuI$a8FQb0w4{q(Uj_uxV*u6gN zc$T5fQ{_(Uh2fo>f}!A`;OmUZS9-A&XL~NJ|5$5 zZsit&+*={w>MrcvzALGY@9mC9-wyE2eDP-vJD^VL=sxQh9_M6!>ma}W?EUWR5fAJY zKj+oW=qRu5X0GcFj=$;t@~CXdX};@g4&V9?>x}O4%kJ47e-+Fg^hTfTCSUU+4)Q~9 z-4>7SF%R{-9qVKc-EZmgKtJ+QPwMur@-olwa>@12F5?=n@5@W@1#i2Pp2?N&^40#~ z<*eCJPV`Fu<~{H4_Y3q!j_mF(^{6A{x&HJiukCd1=H~A6)spgd?(T>F!4qEWpN{T& zj`QUX^@E={MKANb-1mI1^#9JwQq1RIZ`f~HN6xWokCs807Y&+~Wx`|c0!;t&3Ibp8#`;D8

    5$|`lO92SoQd+LLYpjQlEf+UVosGTX};{K66R2yIGw%}8dd64 zs#UFC#hO*?R<2#Wegzv=Y}1)eV?HH1GU(BdY}1BKI9Bdlx^?Z^H7W6A%Z@qwmW`{o z1WZQC+@Zk9OG})L~TQ5jr;2HraE8a1`6FU$L2MWKISX6xMu0c zhilKxcsh5)uC1dLe^>o__U+xjhd=i`a%h;F`wcYy2!yb-1}9{&Gn+VUjynz|q%ArE<2ubd6=#!h!O4un z&cOu#Dz8HC3KWXP9k(m+#td643^oKmJnKUhXY{be5DiqVLl9wOuE-y|1Ch7~hg=KG z@1*Q&yu;7~uuL=0L^Dk_y=rUCqTGZt&i@?5{?9S!iZigj!+MO-&H)vRZA<&cB(G1O zxQX6#c^4+%}K&Bk1`3`Zc-W0Y4*L4}k?Tq|Wt)O-8K1Sl~)cK zW0qfrc|B>TvKYT|Q;s=j_4p%M=elP8HnV4ah4z_RoQp;}>2Y0Fx@o6h-MHpSZzlR_ ztFOj7Ypu8Dx@)h$2AgKII9qgVjjIkjZMD~CyKT4MhC6P!&HmL!J>z3qZoT*ByKle$ z20U=V-4jpVI?=(@#e| zb=6mAy>-`Lhdp-LXQ#b(+i%A`cingAy?5V#2R?Y=hbO*xDMp>z#L6@zA&DzI*S#2S0rA#YTL5^Up^=ef8I8A7<^_hd+M#=cm7Z``>&2e*O37 zzkmP#|6cw8I6wjx(0~U-VAlQwm_P$A9|U0t zML0qdme7PJL}3b5xIz}T(1kCAVGLzBLmJl5hBw4v4t2Og9`?|OKLlbBg*Zea7SV`D zL}C(^xI`v4(TPulVict~MX-@T2ra;37PYuVE_Tt2Uj$_#%mSDMM zEp@reOJb3i@5-fDg8unSVixm=zBHz|hRKy>CexYE%po$Nd97w@rJB>kW;RzSO>N5Q znppW}H^n*54PsGV=R{{Z)wxb~w$q*Ogl9bEIZt}l)1GK)fjskhPk#2(pZ^4CKm|Hb zf)>=E2SsQ?6}nJ{Hq@aHg=j=2I#G(YlbhsJQ#h@nQH*xfqY1p|N6W-fs*qHqCq?P~ zLYmU}m{ck*Wob-hdcKv;lszyN3QldhQ=WRRrai5TPD3J8pcd7rgZt@G#X{7BFjc8f zg{s?<8r7~i^&eKHYF4$HwW)3uoMFMLSH(KkoOQK@J|KlW)Vfx-w$-g~g=<{pI#;@~ zl@vZ$Dp<8r{zpjm)vteTqa?+`SHKq5u!rrUV8cRK#5UHkeN`+culQKXR#uUb-Dp@n z=!12bf?=ju2VQZhSFCihhooF=C4GomPOA2_noMmgb;#PQn01AuFvSlT_5)Lpg0x?8 zDJy@N%2mpChr|VoaEGhPxVz#{klSU{o;_)*+x>%wGR4N6-1p3Y*M(Hu%<*b>xFLNJmOwSu>WC-UCD`)# z#3aJ-fKDu$E|iXwpF`MbPH)-b^8wAb>Sj9OYfnzTGg8}An2P$mf>O}q| znADnJM6v%7jCgE96|1O*sm}-OYM{Z<)j-5o01$AI7=z#jVYZtGJ{M@iN!lR9b`2v= z!->!E;s5Y3TiZa)U4c9Y7a=I#x~UMa=pi z$9RVuy#DK%_uC*hFZKh>q1KukL#-QEJKO)^cDct{*lM*wvlC8tdH6f-egC&A($QwR zvs@%XUlY;GX>Ex!p5l(TxV8;{kf=BM(FYlTI^GImQvYEi3$TVfEb#_;qyCTIem94| zgU#~?oFfbaX!bu6;Dy!yqxE6Te1&-_c)0h42xVJgZ{}By7h#39pmpA)!zjNF7 zUf~2syFu7b^XsSM{l`xi#nT|Adm#dJAp>k7rkgy2pg!`mz7R_Xpqsvq6AA)A2S|W| z@)HXFiw68_E1nZEzyp8}oWGFRz54S4pVPS!WGg-hw)YFcniC4-OA`UiAOvI~9NZ?z zJ37g8Hp-(w%d>_@$iRP?fNCf?p@=$zC;^d^zVSId+e z!$0-2yZ@6y84L*;L=zjtARSa8HB2EkL?H$IK?V%Mj~lsnKm}H4u&hfr8(0NW*n|vR zLX5LF8z6;vK!mXqpD47sHd8yEI|u+!y?$%NkkG=7IKhNdL4upagLuKSi$pTq2s1nr zG`t`;JRwu;E*?xe9~`wgB)@+EJ@GpOgE)ZjlZSWEgg0rBq(%nAU2(7%j|1%S>9#ZC>ffL}m| zwGz*%(9iG`iUIggwR(qkP|^6Dg!UAPb6YESSkbk51S!ah3D`~)RZ-rAwO8Dp2e5`6 z71AMXhgXA#Ht>q?T&o3Kp^TGJB302e5dMkG)6p4KD|qMw%?!%B36chCP?UKXV!+D; zm`)>XhP#Y~tZ;zBl+b^OfHSqr4LyhnfYWav(~}DZzid+rvH)Fcs}P;J&;wDS5C*l% zgfS3-IfYNP0>e4IyGj^MBV1H@AhD}3hSTf=C-}Y-ZPE4thF5dVuAsLiolO(CQ@hgozXf-#Z<`qFl()pQY4ITblEwaY!F3TL=WU!~JvrNrwL3FM5^3z`5| zNQbq02gd|d-2+BwCDgDRMhnn|)1=Q~;58rp2b4QaSgi`HlLstC#H>>*&s!e|2)%cp zPppVLcz87?O(6-mhFdg)tQY`Y{uBxZI0v;#gcp)kS}~woO&5a=7hup;0L{>ajS2=J z))zI_jR01=jEXwFASzWWNX@ut4GD5}glr&Dktl$7HHZihR0%{`weo`v6x4RJirQ?{ zgQ!h<6`xC$2S(6R!Gwle6a~$**%OkpTlChi=vjFPRTlCTP9YRySs>1#6rkCUh>;JN zc?Ju$3SLdqsHoVjJ%|kT+G4d>3!+kY=!0VGSge=;4|@kQNZYNbO-MTk{j}L)*iWih zS$IIzjUZQdRUa6ARj)wTMWE84H6eC=Mlt+~LPgplR9Xd*3{)|dWuc(WiQ3fI3TUyD zUHJ-xy_c)~hOm_i3usvWsThX4EYp7|U7?`Rv8|v17`@VaTdVj~X8eHJ&5F1UiMZ9$ z5NzA3DBMyt!n;#f^r=mq?TVG91TYBR7h+Ar)e6Q<+7&|38VMGrz?3jSpUV}KPkRfO zP>#g0TCAmtHSJZYXn=?{2+$SXgAj(h1R>m=3UZAE81@3#7 zWhI3-kcwp;10!?=6keAInGzXU2}pq&GMQYui3yllU8)cO^%aQ-$k07)-EZ(!BSh2q z9a*Zd*IR_u`?dZGX;3Smi@U&;ii|5>sfdOsW;C^egeWjxwHn~97**tLUKgU$>HUh8 z^;;K;fL9=eH+Es}&|nS@mY}Gd%H@hSCSiE_g*c816=q>S4iFeVlo_UB-cSrXev%vJ zT!DC*^gZ9II9=Bj3erv1Ifc_$NL>ryRU$^>#}v#(Jw$_WVycK&R1LvN0E4N>-xR(( z02T^#h2GEsT$3HwwOiind*By3W5@l9wNtB z)fzpBdH$A)Vwl$-EMo!&V*?&qdDz>KDBM*xAG({_t5D}M7l(Y1nycEHR;y$TBO z0awsGcvuABT%iJZ1IR^)Wd4(ocxJNLijua9XrAV9sb*JL;cIqjydmVuP~>F!l0=@| zPr2R*VVMA!*s3_^spwjfs7?rtXL(NIhh4kz+X#Fv(GP_OM|{M6o(j8d+^LviTQ;{3 z{W$SK+y>qXaFqvP*5zlM;1Xh7xDrOG=ue1VRTwIO4Ni*!c;gWs2$2q9I3@@aeq${7 zg}UD0hG5|_plebH>|U&E64u}zFl<)TMQJ_=W^Us*#_WI4U`=(? z{#W2W6?W`BzHBaV?8(k-zy|GTrh!tpL%{9<5$@~I=IrwXWNYT@5w2QQ>5yhl66g44 z%s3C8RvBasU94bVs#xxjm;hw3PUaLLd{$#v#<--uGfri;O?nl&8}9$e-&@= z;Z}L5U#=KcNU%}N+hrFLhF}!Z0fh$x6^gdr*ieX67h2ZNK8Uz>0t_H#3`k~`#(-u0 z=r;an0_Q%I{xQcMgMs*kz+QkWphe6+0M+(v%if3y_u^$m1x;0H=Z@)KMBxyA=?ri1 z5I|coRyWU^`j|&Gs z@D^4GJq`&=KLGzmX;$;^5g&1qW^qF=w?6K06#ncMAMF+v3S!Re4YqVt$MHShaT71~ z!M1e(|8EvA@|o6YR=Hss*%Qg7T0&rfL;E0_xY3|x?bVD zuItI3cYvU;e z01glMho5zd--yo!@)ZvF80YZLl^D-emk97nE{}?!mWmw)Vkr*^V~^wwD&tU5f#H}akM^vP`KZ|8PA=kt2ip&F;{H*sbDsz0sZfA_l?O zSow*ufJqKrWWS0bo{F0H z1U`H?O`beI6(3r-D6h}Pg2FI9f)es1%9JWsvTW({CCr!wgT<3K$;-=;7;Y0(2rjtt zFT$%g1P`oTV2bO*39i)s)B9EL7=pj}nib3T?#8fvUCI4t7jIryHyS%G6}T*7xPkTZ z1-x-Vsk4MNDIWi5lcHJ{>pQY>geSIu{BKB$Bc9$uQ0;3uL{2@Rtn zluzX)+V21VQ5H~xQ6lWQq|22_lIxDTMIaq*#r*z=O%M*ir(9wC%E_=uK1& zkWjqt+Iz1i> zCi{Fe(heECU5>h%nJ@+nOB=P+?KVf;21ZH1Y}QIY{7th3NnA_U4q1S4ok^>Gl*lc$ z{lKX8wq(K0lXSt+F*U`ylA?|Wv=IRb@fWjMG#501 zM|Lm1`MpbH2iMaFhi)&`0hcatpJBH&Kyfc{K+=qe4pJM}5;k$NH+^h-LBS`Pf5JD;o4^YK)_I^y7~ zPm}}axZ`-f($r+r-44xL$s3OwRDkk+um3*)12`3`5wL&;JRkxSsK5m>aDg6sR_`Ks ztO?9XSr37r1k>ga2}n?aa1!A9JR%beOyeXvc}F`^sKOPh&=JQYNbxY@jug)C9e$u$ z0OlvRF@*;sC`{o_93ce|UZ{Y@AjnM=NRS+2WQQlgz`Tek#gw#99t4?T3LR33F!*X` zGF0LGCUV0mlCg|tJY$BQb&}eJje^P1ph1SS5#>nD0?7DANWk_%G_H+=R*Xs1N@ypZ zgoG!1b4URwRS|cr{-+`U&|%_MQ;k151RjZy3LmvoKxh!8LQ4F{Bbyk>Cq^-oQ-m8O z9|8|WJRxciS%C6FVu>+S&6KvhB`$Nh5jPd2b`D97>R1Q1*AXOY5J*Ptn2~@DxN;*= zo4_q1I136iQA{5KPIo!#SU z!xLFhr!}oYz?aEm5ufY}J9`5~b>tI(dO1fs=I0Jgph5}+tcV2+Knix$upObm!UynK z(2a7mqw6zZK|tCPk&d%~6**urN$SyPCGaIEJ*i1k8dG^c+Qn$Ju z?QLCk%G={wmp8#R>2wFXrtIRDyxgsAbe;Lo^mdm)>}~CA+dHfCrYXFiU2N&-D_`JX zH?{uS#q4|co0R^Z&c1sUZ!OCU*#KLX!BTawfca}+_3Agm*>Ub*X;tC+DmTCJwXk;y zoZ#L5cfueJih^-!-xAL@wuObTV<8+<7@xSTCN}JcYkZvok65`=9bk?#yeb}dILJE2 zN_1Vk*#;gt#2+T=h6O9-+`CAy)u`NV&n~PxmQNcsjP@>W*>*S zD(O`+SQ*%6Bp;W>%_S~tUz}$!!!^rVKJ%QZ(m>6QHqdir*o>R`XV)TForx}VZb|BB zSJqU~lx8tLD?RA1`o_bZrm>;%tY0`QOwOSOa*K;w;h*Z+%B}`9W&NCKKA$?WoBpOS zqien6CF{o1X!dnU(Jbmu_nO$kK6YOB%4@9(8`z#MwX-c{(ftme%1OAzFot;di@P%_+ThqecB=ZC88J&_)xmlkH)e zHXGX%&Ue47Y44~SJm6(Mb-XjX=J8@$-SpP2Ub!k_!lt{*=!SKSR}5fxU!2?Ljd;mX z&1r0VS;)z@HfR+dXPIYP-zwEKvR!`jnirhsoW{4yQ;us`dt124wYbnbJ9J#bce}5i zc#lDz*Z^ysJ!=^l?d(kDxGz*=4IP**J84gdGA&)ipD2l%7e-uMi2+|p*JHpl1g zaB2se*}fjT;Za`q%o6+Kflv9!2hHkvGuN(%Cw+GZulm9(-t~w-eeLl~dCNz;;5k<| z&OvW;&JSD2pHF*d7k>7h!@S{Ve|Vc&-*iGt+w{4=`_X5Q<0p@syM4z!mSsQt#9x2( zSSNq&cdmRDKbqp2e!Kg-4tc4$-QVyZI>UjR|3w>{$k31em6_N4Szq}T-?xn)jty1! zaUWG_U0N~N_|aYghL-~tpoD>+prPNvS)hCI*#g=f>~Wyd+1g?LP1oM}*a^lS?Ny)% zCgAP0U|(V2fN9_c!r+C`8sXI+{YfAIN?qy!S`OxzbFpAj5g`cL;F*{p4&I# zUsy3Ac2wZ%@!I1-;kHfK4+dTp(wDg{;dM!%5pG=rme}1nVeLf}HgrPs>;@KI)*IHK z6gt`IksJRVVD*7vlWE}<*5UiLn-%(B92Q}UjhP-z0O$i7Y~KM9gFSpfQGBBG7#bfo9sy}$C+3>GWmN%f zLnD}CR>>kv;Nn%VqEKu@K1jm1)XHg@lqMd+-@ODc9tHj?s$xrwVm_22Rrn%SB%@m0 znl2I$E6U(X5JNtIVxSO%IL5>%QX@<}BfbOxC1?Q&bb$h#gSJ>=bv3{~RaDHI9Qq;)^h{ z0RiP?5F(I4TE$TUN<_*;K*q#Px(hKZ0u!JC8-Rf}=%i492T06I%RGcI2o6CEz&gz1 z>Wn2l9t}}q05}SzUts`AMuBe3 zWpbM3ONb>|o@K|FWc?N1aHDbUiKx1fam{gr$c1te{4fZf|6=FL}v0v zdlrOvz65!q#Cyt0e3s@uVC6%QCP|{FVVEaDQ0G*1=SIwDFk0tI0I0^aCQwSkI54Jw zGUa*>Xl{bfZdPc!_$F`)r+yMdak>O@{sskf!o-Mrr4u=bFr27#;$(ipCrG{|J~AdM zuEH>GB0fq2LQdm9*kejc4=@^}Cgx*@5(GiQsE!_`IvOc8CS{P`s8}E*PktgPcw{Pq zV?IdcGu|UivS*JH1TG4rG8(BeHt8@%0W>fsFwSV1_G6c#&U((MM;>XMZYi6Fqx7gL zG5REoVyQjQXr3zMN$Tj1YH50kjYz&Fk6tM>`l2SHV_z!if-2)Drh=CKq+aG@F4kv+ zicOrBq?K}_dQvJrTB<{QDo7?Oo$?BJ8YxeHs*Z~3m@ue|9%iimq^XL9tFpmNvT8x# z;+{fdqVj2F=8268s*z%7pmyl~r}AW?mgGgAq(~;}Jxpmrf~JsiDn2HHtlA4MHf3iv zKsvM{qmF~N;v*X*>XL$@janz9{sW$Vi?m8lpcbmTexz8CDK%>5~*aiYn=+Jp`y#AR%%5AYL)hBoT4L?&WdkB04vJ}8kYDku@Hm$s@n24#Rc0_>0?XqM!eE^NIrrZp~Q zz|bW)zGy|xWZH@&&c^;Kozm>t)~a6KY$=+if9_{%Vk0uhD@cy3qrNE8ifwrc<|tOA z+S+XcfNgztCpFZp)dJ(=W-a4RC^VF#-Bzcx^rhX}tXP=l{c~-n37t?8irhrE?a9NAQdnHHB98kQ!8xJd_G_ z_K<{NkG7;JD;SR##mWoc#4#+$h>GPZs6)J{a90upg2-?W-Eau+#De&+@otwKI3n#yfCA~G~8=&$4`Buh_cwxlHEt=ej2XLhn+ zK4#has{xPglVYek60VD~Z}o01BbzSX(q-h*>qflgQ#R#iQYYUcsAeLqNLp@-zB1~H zg@0nB{w}xZ>niRqcde(QGUHbdv=2p?u!W%TKR7@r zgrz!o3duTgy^Lr^{{whX#8cRGyvz$lw2wtM#a9l*NGu2};KWS-0|@^^5f{V}tHa(L zL#%AHQk$hpr}R1aw5Lo%ynsin1hotMG;?mp0PKSo`@=MYrWtb%sxoeRHflnfGTyTO zwb2q|9HUD^YiBCPYaQn(!18g~>NTi3?Y$N&J_>Rn8UqpceG30PtFm!`=q-pjPWJ59%RcV{Ut?GA6S!62oto;zbrIY9BT|*R|Nt z?}TRUwI*(=j<)>zqGlgAaKEy4qhuq%^*KZD(4H$Yx3cGUb1-+N8iOKhw{_y`q;umc zh9;O=LrGWHT zkNAv-uo0W(Mz_yAdN@o+5|BsrJeGKQ?0AoZc!SvESfj!BKm$Jf0RUC=bKAGhzAt{u zH9&T)rSkUyC%73mG+UdwAKP*pXt_)R7@EnnnIo^ESGHYvAte*27N18a-6WS>9y zBr~XIYqPC>chN>FTiYY<8u&ODZWOS2;!0{c!uGe+=UDhol)iGp*QpDz>*d19*ft?|`#8Y9f1|-=&#bH|(UMwAb@|pMj(6H>96=UY|8Mu4jX% zH=!FWpzG>*^NIswI7K@|1y}J+fJe%-xKzs{Qv38xKsl2ewThRD4X?0^gK(kjM7~S; ziQ{++Lnngl1V|jUhwj8y*Gp2Pc!;xfPZ;NX$asu<NkQ=p6$T)ylfHveqHfV!3 zL_;>rJk8JiHh}H_L}<8sc^kJTN5b)#Z|^-9V>=6Xsp6>X8vUNTxhp?JoI_(F=O)lk zvo$Jho|CPo%B^G?sI>g~w6l9&e)dnMDWX?;-V*%O6t~3X4p#QC4wtD{7^)Ux`zPh&A9{3j+_O74(-P0xMD!oIz<$X^5 z!?yN5`z?g(vw9P&gCc&cj`QY&I~%hv<@4sx&-316Wi&^@w+nbH+A@SQe$fvpyBqYS zBedh!bEyZ4Ci;Oymw++QGI#WJ$^q2;XpEcuj0-%+n>0b7^iy~WziY9=FF&C; z{EAoq_lvB=A5!wObW;HNQEz<5m#FlkL=}O=$U6k}6NJeh_55cDH1q>85Cbrfzy$n1 zKui!QaG0Zi2N5PzxR7B(hYuk}lsK`$J~j)t+57VTFT%J+2Z?D!7;+=Wafc29(1-FL zv3qC!0eBg6X2p*&^<890@?XZ1$Y63ThmK`Wk^g|w44RN<%X~Tk@KFl#C{JSfBt>z0 zv18VQ)HZIr+4Cl}d@P%)yjXE&)2>?oft@&)Ze6dj{Wd_aT0P5XwudLQ)7z_)pA-dwrIgTqPg zuGsmg>wP!XTGkuAr(veJb+0^_T6N&K8y$y+IUF?pQkYl$vd*{x34~}koZQP!E3-ao zuCMtl!bzn3jQZ)n@)DxZrJ$Nh=r@=m=p+i8Qp$OlZglB&QVCmN=aADr>V8(AU{XAOp?S>&K75fWw+FC?%=%7Yv@r;mRI zSf`AGgn?uLO1vQR$^q0-qsn*2v@%UF+syLIf9wQP%!TBfa?6DB{HIGd1wF^jFvmRT z7)YQ%l+P;_Wi(PK{^|3dMJcTmPCXMHbRtYKO~}!M9JO>*B8h}x9DJZ5hL~YsjTP2n ziV+3XTXD4uMTNG>$Je4d>v1R%xp|VSmll-r`i^cG#v+%oinkts`t*UtvqE zy?RSzcD;nQY1XV`SILaI!mLH^J8q@rtuf$=t@fh7SZk!6in8r!(_O2=Y7#F*iX z?~NHDi!VkPBwyJ`cin$)^l&<-ih9^urf}}qT!g?A>0x-uD=DFLo7FKxeSA$NLZS(V zE8l#uoA~I2hehx-mv8pfkDg^tTjY$*(kb0T{&Mi@2W29KY5@-(x+M&!e%I*^TSge_ zpyYNt!n*Gc`rU|O9I5G=^{%!x_5Mm@8R>5Mz4|J@)xH%PLIP0I8)iy?W^zAKS2Imv zm32Y~=-rw-JuUQ5bs%L^c}f3) zWpzkxPm@haM`hDZ-N!r?_c@PAv`RuT?Q%E|7s~vs?oq7(oe6kb)Jo-~}<5!2(K6gB`Tj=L8_SWt0vO zP})-PvPUL)tk4b1Bc7r*6+hsua1yN8Q>9k;j#L<`P%G?%3s04h*FlPPG)z;Vn&+u7 ztwJ3>M2PR4n8GQo5E7x9{vo7}K|>pc?}k%c;h(CsLU~ZHOGfnK@MQQtG1e}E+hBzL z%%_kA?BjGEwBsEis6agK@qiEH;~xPTNI?#gkcHeM2Mw9Xm_(ur#86TK9xx6xDAHa* zq@*D6r$7Gv&wl~b+a*C6Nln?P^DN&h9Rj!hitsD>{UD?42Y-15mn7{@kFpWlh zAeMHqWG^i!fPIw18O3A7cBl%yp!=}A$VQkAZh zr40#0AQ-?8esF`P+&~60qLEXbPQxI9Xz5RZ8dRYUm8eBE>QVbh4SvvrsZDh%QyGC& zsZN!uRki9>v6@w_Zk4ND_3Br_8dkB6m8@ko>sis7R<*8`t!;JdTj3g4x!Mr}b+zkU z@oK;H#Ox~Anu|111=tGiRh!+sm0*d~tDlXgH_ORuL;AWf$Ax9FkA>iY>{U%v<%?Vk zv5H@(YFE*M)Uu_$6=4-3T8G^At_m@1Yaz=whQQV?h@Bv6v1!->+10iK!T`-0LK?>+ zgtil@Ys~(NTNl-469c;4OK{)na@x~r`&fsQM)>$(!N5!voSG&|exKJ97_`K)B^ zGTw%$SG=SJ1CtFqeHpIEka@s?9E8G0m_aFZ~ z3I@8XkWc!M(~HRi{cZTm`Ezdm4^99+u}yp zlxT}ccsI=AZ1t?b0GBZy;t0CJe%^8^F+5|D2G_4b{>}b9K$I#mSb}2N7C~;FYz9 z38xX8dkJZU#uAyV+B(XrPS~6hEke=@IJZ_$UAHE!WBYm|>6#9-n1<%OP)u5z!}dY! zW)E^-8#={~&UPr~o*&1#&Y<3~A;seCrSQ709T}J>PF*dp9Q(K>22aYOaOnl_+t6@U zE~q8mL3c|lYu_0Qw3-DqyM4{uVA~l+nys)Mj|*w9&POKhb{3(Ty5oBrOjRJR{y{2N z9FUn_2*&+==uN9Q1W@@KO&y@yQ&27 z=P~xP`;H%doL$6Iw!GULoFB&29VIsD`XS&8X(U^h#lcsyevSY0(H=kO73|g9Kje1B zd%YvD*YmS}9T= z-(Gdc)D`F(XFZM*w=DLsWDn$J-5dGMX z!8i@WHqht7?~i=$-$Y;vv>*(^Kntco1lkMEcux3~?*$9!=$^^_2CM{6Fa=lenp6VP z8mz>iE?EN5G=7Wr?hmBw>h=aOz<4Cq(g7y$PxK(n%19#fvWq7mj3q>GH^T1MM9X3x z5cZ~`#5Ut7EJi^z#>$9r@f>i>pkXZX!pkyf_gv!%lW^}43QT#(GTCxy>O8i zNeK(F?(Jy8H2o0kn^Nj5?AkqIGj}}uz3KP*H?5h5B z@e_%W9fuDFRjd4J5fs-^1}A6)Ax#QUa3A+k3efKpVT=5N4;eF1_&RVNGi|^&@E-?K zA?xuVFAO0O@&lQVf^3k!^pPL?(VBDw>$pWEf-py(jR^HHyOglt#-Ra!5HWs@R}8P~ z^u_Q<0$?}?CHSmd^hG0x!4l<;v`SLRb`lfoF78?~>;7iuGq&y;Zz5gJV)NSY*+zzI z&Olh+jE}Cu3%3Si=8h&Y2ND~uC8P2sf-=F>4LAhx!LpF^_5ulSPYR^awC$k0Nc?R+3^=6Q|NG! z_=JuV*Kriz5g31Q6MHd~s4@v-vJdai-ONQX|ExK(GFlW92_Nk{ATuU@Z8*en%o=mf zPLBe^LnIy(7=FQUXctT%=5JH8NXon zNW(#MGdwE{GdmFk`7$$yv5){%Fl~}BhqO29>M%PaF&UIG(Q-zSv@?s59(@ovT`c|* zZNLE1A$##6J(HBIt|`6rt}JgtgUm%iiZv4yCDTqDZR|&1CM`)TH*IqgzwJl|5G6{i zHyv|F8k`ykl?+FBqbYz3DM_m@=x{_~ z4_;vcxTGVxdhSXsf*gk|54kV9Uh(US(g?#2_I@i*OQRA;obMO>aUoUer8M0zo6=r3X{WQ}D zPnA3S5>yclq>#fKa?`DhBGsCoymh&Jwl?ybpuB3BQ9o1!_QzOG5R>w0QX_al`(+1b{6P-YA8?wIg zHdXPKQaw-(CePV zT7U2BzQrzsq-6W7KSZPPo&wyYLIH1MDgf^ynoBDFPW9T=_2BLT+s@|9^%C0yX(YxY zc{E-_G)LrPH4LJ45mu1OP8L7UKVUI+WA{6LEj2WE|3I(q&Ti`dOnWKhL%sv`obvG; z5ns7)@#M1i&ZFy8QvPO>Y`VHuAamAh?Gb|r@b0EJeKk)U>2LyZ*E_fs`n=BwD>iGb z6IFF}GUd0^LNH0o4`(g2W9{fRcs4$O?;t|&{{HSh7Lfnwjz7FGDS!mR@CG4B1|-uL zCt&wLlyDHe*Zvaq*CKFQUG^c{7sYmU$#}Ih1Bq@I;sgg5{sLDEgm{RFxQLB72f4rl zJU}{A@Q9uGiBT|#mly?~xQdTBij|m&t$2%t7>lR4iMhCny;zIG*ow!Pipv;^Ni~bn zIE{-K1shi(?p6yZ*I|Zj^fm|8pp|GVcx&Lsb4lxN>{5ZYroyV_Cdkm;e6!R_qE}Ft zb8u1;jGc`xjf6ZJJ-{EAsKKYdyPKBKeZ&3b(04vAW=wZmU`YEtZhF^{g4PoG0~w_tL3v zH8S}+$JE+!PxWg#5&YJ=t>GGiD-CA{yE;9vAbBMa-Py36*{rj=QK7nk-C9hSx*($( z(=<9EI69&+;HJ|!r;B=~Q+lOU`=nVrw%r(}iJG=oyQXy-w{v@_Tid98o42?4v}Y@+ zOG?UGDdXBKs3fkykPhXZTd0;>ZNU1XcvvBPIHH5twb%HIgF2+8n2f*sj9Z$!!(0Bi zxtP4a8@$=Lyp8(2-MhBiwjt&?qW~Z>>?4+xd(nWZxj`$s9b&oxoTLO?yByo3t~((j zmmwy%I2IR<3*^D)+XW>&jvZWXBOJpsTyQrWahLRQ7knWa{Gyn$vRG-qL+ikud%&H8 z#aF7pk?X)qD!~zASc_F5jx|{woQYTUS9#pR@8Yh2RdIiuNQRuqqZr6{Jjsdgac$gK zJ=MiqOvVL_%BB3uS-iTf`%)7EKB1F|{qe-De9ISj%Dh}Y!5quge9hUs&DH8}86qRu zHq6C*eoup+o|f+SA7h69o1F6Kw^E`7oys)yxbKc*r9zuCLr4p!rkwJ-T%Sf+Z^7B zWZoNB-|GV30UoX&J)6fB+#4nP%D0SZjs1V#!O@VA<9pzmf>zTglBYx?N-U(R!>OCIh zVLs+@KG{=!ht~UpB~!vp6ach?6n@^>E7$( zKI}XGtFf-;vWVK3sgDz_wT?Mgul2PNaf_=L4*`5 zTD*ucqsEOKJ9_*GGNj0h3Ky8-GNBb0iYB?VObJDy%rP?GFvRjwWdSS{2OfAc@E4W| zHzxjD04L$X1y@?;gwpa~0h$XD?nJ8e=oOX*5h`Tp5TeA9WXqa8i#F}X16UNSr1cV&(E|g8`4Q~FMR;yY)om(MorC)1LaD@tr*~Oj7 zGHAc=3i`6=HynKYv>7 zugjmWJrj03VZa}E%EgC;Ph*5fT~g#FWgdDifwo?2q~PS>d)~oS6@3d8r(cL7Zgd=Q z7jCE&gVRl?T7f~EoOMW#~Vog>QRc{>LrBq!Ju<}-QJ#uuWk!q@iBz0X072tKeTe;&pe7Y1~W)*xed38mtA ze^wgkn}m*0*j0X##M@B@jcHp}k~FHrEAq+Gb>nd_i{zG!Nyha!6FmYs_9T$&Xr zOKY>vJ_~KM(#|?*iKeK6k}Ix(hg=W9y=E=8C0-bAtm6))?TIXva@vCFo~r4#?vjGa zDona|SYsbCJ1w-67Q`-4m@f1SYLt#9+iQ3k%pe8^zWZx>ssv2jw-3A4Si$6KTW_o& z_6zb_PuAHVsQ_L_)xx6{+i3k>dWuTMSl&X0iJl$Dnnz35=D>(pl#7FXQ%BW zE@PLC*V{i%@XFX?v~4%o`5^{);4cS$AK~}qEBHkNMW6~4hZDYR;*vL(_~3>Y4tV61 z_cVF3mosNL=b%IGwdIdz9xdseBd)LMf|KsLMWHv?`RAFdp4jN9`<*)MxZD2v?mQlD zdPsQkj(lXbQ%-#4z*8zb?4n0cJ@C1&u6x(XZ!b~=r$iA!DQ_W!%iclaEz0*6l^^5+ zJcU30KkNq?0ToB7Ptp9`cZNFin4kW?|CR1c3t-oUbSJy(32=A|RA9aa=s>US4sj1; zU;`tFK>rO+f*1^*w3x^K!3#nVb0egn1rr!S8krD*4=f=AOSr#TWl)3t;~EWLsKL^C zEAyN>AFvMX8iRZ&$t??DKV0BgxnF4s74_X@{yE$qZ4(gy-bP{B#CU^^@6xYP!e=-Xu-F&1=VD@r3pQB|dZ+AmM zwl0s)WaS@&XTAP71~847q$VGmcuLM0vX$ACV)meEy+-lP)0N}_&Q~ke^haIA3clo&cemY)s>lUB@5o*LsyXgaC1}y1s4K~QnE@FY%Fvm zARQaWoc^+srYqEDDvfGNb(%Gnf?VV{cPhdiA#|vO^=v^;tJKUU^`QK;;aGhNNwzlU zn*yyPRvqZc(aLtWceSHYFMHJ3CiJ#vrLA$dsoLFYQn!n(h%Pk+*v9B@B;3U7_eeM0 zt@Sn}VN7FowOd-}lrM4L^@y^XTQovG_K8fS<11U}#+~Z1u>ss5YC}uk^%fGc@f9nr zVC&oUR+hdSbSqR_*~uls_PxsG%qCgdP|!NnzYU)1Izbp}wChy4TUhkFBd+OK4+z+h3zLx3_m* zW{Z2=w__i&;zFEPz)j`N)BeCIsxxzG32%%Af)=t3{L(T|Swq$^#y319jso9^_e zOMU88ue#N*j`gf-ed}EBy4SxB_MZ#E1YvKM351ZAv6tQKXh)0M*FLMWr=9F@kCfc& zj`!w}papdA>chQB%8CPBsk3&u30gpcwCug_Xp*y4OWtv{$ot}lPdr){4|I}`Jn}gb ze7-BMc)q86BN8__)uf6SWkNe!~e)s;o@4fGT5B%T@ zANN8af#-MB`r#{o`OI&=^Pdm>=-a;d$7f^mrH}pWYk&LP?|$s5pQG!0fBfVxzxm4# ze$}g=&M9Xzpi`RY_fIi;K~<}mAzppOwI9l%lfV0AiEQ)7WSm5F)0QLqw^aUDU+`C8 z7L-l_NKl_ufHrr4f%kv)^;QZ9fdYtfLYIH*2ZH8>fTmcSwY8u6Q)S^$AOteLLByKFlbLcco;IMY-v=37bZ?P*nijLTka)nK&VDeczo`c zXdgC&43$lg=Yb)pg&;S2CkTNh2wz0#fCoioN@#-h28CT%X#VAdW@|`)Nr-{ZLxy1p zRI-+a7Kl_G#)kK2gRTXK_9ch(M~ADVXm@B{XEudi2vu#!hz)0SP8bpv@C%zT3Y!oL zQm}R$I1$Xjp-Rmxp7RWnoxTWax)#RXn0tQ))Jf28c## zNP?_bJFYm0y9kWiG>a}JPXb75hNy~?HHUo|LIB8!g|~E&_z@Nm4esy>>EH?GkPnf7 ziJ4e+o9IYY$WA&IfMtkH4~T!Mc!(H=f^fKBn{#00$ch{IOwBZTY=w+|$BwvVk9Q={sR@c12}*Uk)RxOmRk21Z)+xv zC)bf7DR~Blh5tm7m{EF1caX{BkuKMg8kdsnrj9`JlA354$3PD|sSl1Y13RDt6?p@# zKnY&Jky02Wgq3U400|o@4D#>}Wnc}9P#JG@iy~r`H>pyPvUyh*lf0vqEBBQyIg<=m zlP0!)Wmyr>fDhde4*O6I(LfFSfC>D75A@Im9Wf2^z?bqc2}U_sD;SoSL3kO#l*%yx z>re*&AOTaUl54eG3ss2Tcu!|ZnSW!MmkAwXshOLhmJ|UEjo=Hma1O1|3*68LtY8Bl z@DbBMmCRI(C&@pL#}UHtmz!amUZ8`YiAHArHJCHknIXcN!Ksp&Nt~-^oX1(5l@Xew zS(>NG1_*%w3ZoIO$#17PS^AMC{F0lvd7GBCXbXoB5Ks;JkPqjHp6Qtn_V5M3shqQw zobOqc@hP8^F`V_OJeC0sn2-$0a1P3#4BT)Je((gukPn$aofl!97jX=I`I-pvlziEg z!qAig;Q;5L1_-g2e3_vP>YxZPCH5A5ll_(@gtNv8f>n2TpxrfI6CgsGp5&;tc<4l{rN+dvNEa1ZE^ z58|*7k&p$|DWn?8q}EWO#}Ji_X$nw4p$BrI8F~yADhwT35z{cJ6}p!w+L(d*4-OCt zMXC;xiV%&8s4Xg`KT4^(nV5^2shfHZuNkTTu%O-PqJnCaoLZugnxU!6n2vd&uKJ|i z$*QlZqL^w8hdLrv3Pl634_fLEXOI!lAf_?In{66|Y)Y*WXQtO`SJ|qq2&bR(;0?`C z4&BfU;Xn@F&<*3zmfrA|k)TBy+LuTA54u{UiYclUv8V&ls2E_KJwmVZs+h1^q5lA^ z7%{6A@vpo3p!+%veUKQr`TnRI38Jn#s3@AS7O|ip`lAH4c=h1MQgO| zdI%Viu@E}2yQ&5QP?Q#tuNbheDjJoCw5Sx(m^u2O1xpbZ+Ls$Uq)6(cT9T{u!teGUU0B~qk$D+0osrc*`N*D5DnSDxQ)xW z+u#T>yR$mWMw5%C+iJNdN4c51Bl?LC&EO27E4rgAy3NoHOY62&`?OvAx2n65_e!u( zS+^7+w@?eKU;CXD{?VWr8n_j4qf{BVF50yUO12vMw!4a=wVM%78I{9}vBk@=fSI>N zT9myzE6~sn#6S$dKmrrsz2ED-!w|XB%DI~>JLPM>F^ImH%f9Ptv&@;j#83>ypuO@- zzxJ!Wr^~c~`md=9yAb-FDhjIB+rI&uv0!_!){C!y8MwOIv_Sf_#tXo3d$t#AuxI%OFvzV1u2Ev$dmD#I=ezr=6=Yyb$^ zKnzyE2B3h$I?TiRo4Ob~sIO_Ls+y=5N~}`~3lt2!r>d|LJi!=?#3yPI1Ms7{d852b zsLJt_9je9t!3v>XTg3+}#kN`zPmH{=E5<0=t7QzZbsNX?`l)T)EXW`UfA9x@Km~sc z$bXyz`;ZTfz``|*CNI3cF^tI7+P;n4Rr;B|IlRL?{KG+9$wX|$Ogpv}VWL~im+z1Y z7z(SM%*lMYu?L*Hp?VIe48jy)q!lZrJSwpfI-;z+wniDN6+5IHim|2~ySa?Zw_M7% zDYmkU5DL5|+rS8XJi8XL0Q-QtbO(jNHi6ioNv<&f#3YnjA&StaEzI z$9^2hfIP^Be8|{*zSj)TGyKT&OwY?<&!i{G;>^$aJI&?%%04Fm`%n&|%M8eH3<<5! z$N>HgAU?A2bKxna%KU0v2wO%{O=2n?{%+~C&SfDFhG z4RcM`(-66V@ML0*vn!dM@XXhIJ-L6a*LywKXgwJbFqb>2*o&>$jNn7*2HBA<*^^D# zLne}yjoF#4*_%ynm(AIq4cehC+OnySqix!!joRpD*sIOjt?k;c4coCT+p|sEwf=3} zw~gDmt=kvph`a6EzYW~Moo_WL+{JC&$Bo=fN8HKH+|BLW&mA%YiEVrc-PLW~*R7oD zhLEHkMF57~-wod3t$sJB7-t>bg{_a`t={X+-WOK_Fkq4KE#LD^-}P632 z-~H|1{|(>)F5m-B;036p(-6gOCLV%9t{cMldWr7-upxV~!yNJCNWEuHq|>+%N#)(*0GIwTN&=h(i=w${1X;vtS?;O_fzp{3u}g z<$@CRZ-7k^LI49SuH;MZ+dHsh8QxkZ`BUYsS`2ntkc3vdsZL77EP(e}{!FOlq!nI9 zP7yn>g_(fnE6f=)faaNC0~?VFnE(V#PUq0!3243vP8a8BKIa(-Z zUeA_i($-s772&T45nT2{X_fo1o^F5$Ao55J2GO z9#QHDu?d+_=T5EZc-}*z0O%lt>Ym^jHjoLNo*#d15xQ>b8{zB!aO=_{=rk7Ng|3v9 zlv;@%R$!HZ38+|v?%hqcaa<;tT{$Er{ur1pN^D;1|G?*);pw2h=AVukt4aWhyx*qPWZtmN&>qJxRhN0`cjvvEL5o7Za!=CTZa_rm=jjt8{Tn?pK&R$J@{b#pW znAQGjm<3#6-Ym%8?X;8$;f@d+&pp7N?s8rcwBGI_5AR5g>Z88y^^QEK{^myK@2sx! z!p`x={^W%IGS-sa)% z>urt-ZI0$P5bK$M>;KU8buacNAM1_`6q_6d&(Dt03`lI4HvZ`S58kduo{kZy&gr^d?=FuJ<=+1$4-lC$ zdHPonNTyT;3vLosFjXcX1x00=Ara!gg9-oH5U4OyLxmwdWl}g&A;*d#Lq5Ft&t$=u zE=j`dsPJJ#g%ej&bjb7HO_-ZX&XlRr=uxCel`du4)ag^GQKe3$TGi@RtXZ{g<=WNj zSFlev2~GMirP+l9bCNx%_8>@>DL1O!n8}91vHmvg7UZara-f zJh-4hzmWO*WQjB8Cb@}alKuD5BglW7h$cq+Zz4{Wf&q`@>=~&*kc=PG9q6%kNzQ3S z5{>Dpb!^A7!)o1u!T53H$&n9dj`etR=+UKzR9<~K*B#TfH;ozc?QFe`0WSpUdZo}q zi6hH$)9JsSP@C_-A5p7sMG;LS$|wVe{v6Og1CeZxE(To_QOg)p%rKN1FQt2~ zOfmRi za-(ANDC62JH!EVjbL=o6Eecj3vZ@S?pd+uHXx>c7O3wzN3Kd0JNo}1eQA2$tsNJHB zy*4MJ5bmj>1j%AJ&UG`^cw>(KJN6i=ev^_I#gv9T@gRQpDsdvvthH9Wx>8n>KaCno zsMafu@=-Qk3+y##lyO3MSfX4LjbD)Vl`JqOn@!5VL|+E4Slm>4`Qn+jY-nf4y8X5~ z399kqpRmXN7^!j3-uPUj(#1~gr~cB$ zRyA8lSDuvHNGpCgTevH?{Bq1QXYMqlNX1FDR39Up@B8plOKMo@UTRxfyEf`ps#OH6 z=h92`Y`~$N#?|hnM9VMN)pS3~K%k^8&q0Up)ywclf5R2#Ox;v!fOO0*sBE&uKFXMO zx^Jfp&BIUAI&{f=TYUZ~U+gTm!nkEnaVTAM5UBS>iVvpynWoP*#7UR^|I$G!UJ!#{ zwj>9@=b=x53uIseIVKo_ZKNUwYLahUgsr3W$aU6g7nP8glqSi@b&0cy!%pQO+D&OM z?aE!ja8)CT%u0WhbJEi~grF38P$d`48T5ANJQI2eP0~w>G&b=FC@2Jb*i(r#kXR60 zfDbATFh?33c*UuF4P55S3K18GGC9?xJt32nTx@W>qwGsb`#vrNQP zmp8d=Xe4#4n!5tsua)M+)9osbe3RPg&IPlh+fZRQ?o* zF2y*;R!wdp|9lzB1QNO(1&f>oV%2zXW-x&$D_HwOVM%*pPiV2qmckNVl;&j{RxPV( zE*zdhXEqYp6cAz!Ro+epip*VglvB-ANidLT3`IzDY}70W6|EN%Dt7OQ1>s)z6cG&X zwL_a#{%uE63nC3gNTVHN6KnUhiBPmUg{W!G91Pj|R=CDht_&O?$K1Lxbj}q_O2OU$ z)*;0uYOknWRY^9#`b23|!VCX!Ktl}sRmElxv0A0-6N7P9y~1^^nf2IRIr~}AhE}u@ z+5~FyS}xCK?6jHP>_7YpJ|+hCsns+GVX5j>*Z%djg^gxzuen<%Ch;F&9c=@5pbF$B z7rCu%ZE?euTIWVry3?gDQWUz;j6t_ttJQ03k*W}5JW;kup<-mqn$hyD8s7EF_piLw=5A#SzW9cO zsU;>bhdaz;AO~5jx$?wzl5;Z93?zkn^_JtY7t>^>TdP2CtdGf+lpK z4Si@t6Pe73p6;R<{b)!>TGEroqPMhoX-sEY)0^gWr#<~?P={L7qYkyBDSc{Gr&`sk zj-K0CU0mas`qi_hb**iEYp4_l*P+FLtatruU0suz`Gsul_wpG@y@ovfsXU9J^b9~M%#5}F7KiTeT!M2I?`v(ajp0K={sjS)rk)F zOp`t0632SUB?JQ@DBXcVfPn+^{T!&z+igaNIoM_XccKSg@HDSF(Ei6>^}YAq@PKDL z;SbMuwnyIaa;Llk6At;wJ09~{Km6o3zwgiMT=GI^Jm2+xdc7~+^Ep>N>je*P%x7Ne zr*D1VkN$4Ik6!VwcRPeiu!Fc)UVK8>K?&@ha-%Q)-?HcV-z@25dkFd_V|{Kna{c3amg2yg&@hKn>hL4(vb={6G+# zKo}?i@xz?EBfsriyO*;+yz{@ElRW`M!Tn>q=fghzYrGcZ{=Ve{KOR&YfpfYPex=M7%`a6UHMPJS$wi zD-1?O)I~JY+Vyus@GLn&;;hl9sObiz$!$Ax6b|C7aR zY`kq`3a(SaW^9UYv`3#4$B5KMsC&kQhB4v_mHhy=#O)j*Q6+=|+Sc z$rxnATQo^#L_!oqKN^(5d_>5eY(|x&#d0Lc8(hWot36vB$WC-fFbu<`xVh-lMsx8# zjxeK)#-{8?Hmu4V#7VWxOlJd4&z#L5Q$>!EO#>87gfdOntje~# zMacxp)6~sjGel~OP12-Ii%Q)i9&FJbj3n&0{(1(1;2Yk>3G5CPMLrt^v%Ci(s zYJ5SE`?=#>PV`Jq^;|P9Qh;%&2SgwQ`7{Jg$cIRf0%9z?@l?pzd(Cq!Pp)j6^&C(F zEl?ga9|G8iLXb~FV1ovgPj{#XFd#j8^G)~bPdH3X3y}b8SOkR-26=dgGU(9e;7|`u ztGrA|1HF(WpaLpL0 zG-a!fJJJa;fh(8;I-P?nFoCEDg?XWYB6W&Rpn;?C(U9QLKlM{UEeIOugn}s49VH1J zCDcO|)aamq0=NZBy@djx0I3L;P*~JMg^E6fQ&G(6;^dc(FQ<=2DJb&U{D4Pgb%=i zM!3?Wpw+nY)x|0<2&e|@yiS1~*nF^uFX)P3UDv3v0%J8+D^S*PRfs-S1y&gXn4$qx zV3khIgc{}8q7eu_C5em`h-Fn&a*bGPMN~x{*-Qup9er7m)!2!xSVUzNlf{Yz=+XGUAOtY505muQ41m&qK!HK{017yS zdoY81tyLwmhAvfukN{CGg#;)#hFaY%4&_o2HHx?8QnM`xT0I6X{Z*sbQo20~w3P=B z<T*qAm!qr<&nSgER2Y-0oPWS}bo!w9H2ZKe}riG3bAV2L+YJ8IV^CYyQU|kD z(i0U1HE90af8f{AWh@JxVZ|*75Ute|P9o1W+aI=DdDvjlb>R!n;2~C1vDK6T*oW8k zhciG5Xt-UjNZ9&S3f?tVW!+QemEOmQ0T~@%Xw3vKhFPP9UWGt~<5lD8{Z!)RUhqX@ z@HJO2?hG&{T*Po-WwRtf7(+3c0$BIOt9McU)dit;sI^rcZjPTp#!=3udAX0B)S!GL3Egh7Y` z3vkkZz*-8}=YGbAH7MYam7)?lkcQ+%;84YF+{RUDgZ6e6??qm#rfPAX38*#- zpZ!#;$XPw+S*j@1F|K1mo@S(u>&w9aVTc4mFaxS(10_HMLg)f2*xD3G1bYAj{)4t< zi*9I!cIc3R=rpC|!c_^HzG$1SRgIp8xFuz0I)^0QWWh!3y|w5XKItq=Y0xfZz4dGz zvxb-!-I+dYjHYay&J<|q2Vx)wU?71B$Zg%u?O`zLDwgZ4AXeT**53_@B1MIpMFop( z-hVjWP)KJx{_5g&-XeYOLFL$^pjeL>SL+7r>Q3k5PVOO~fruUJs@PU`23K@lUmor5 z<`(bwPU9h%U*N89b%TH<4FnS4Yet5GG0=oac!I*Fw56~1Z1 zwc)yDaHHtqO@1v3C-4}PVH(!u7&GmD&2SD@QX-yQS^i|$j_^!@fN{Y72WY76VTf@V zkMUwCh7Y<5D+X>kHP$=LQ!XY7q`g^I0aO`n+322Qc@9~tHuCA6(cop3h%IuLbyO-} z@+nt{AaC*^-wI0Y)=c&Bn6mOG7l@n9a{9J!GzS$jDTb(J&?taX3UE+DKm>wD3S6#W z1ZH7MW?%;nVkH&P22P?3H{unpTL@2WB)()A*6_DATMm72y*&o-A#@n#aFm{0N>_B% zorXvU9}qS4%`V~_4&u}O(AZ8BWRQeE_ya(2QCD~M9N33^XoRCqbE;_37u6V4aB7bM zQX#crC`KW;Jp52g}<8H#61cnopxJJ zag}IkH#qQ8?ot&N+{)eM$3YCbYXG3X5>Yn2S|{DE865v;dskQ^;K{6SBG_3 zr*&~z_=rz=m50;kn1E@x2T4GLLqLQ^cn5swgJ*9bkKYsK5?ZV#*~n*da+UnUzkJNk{Bj9|KwtoV;0JC9eQrPoWQYdSKmBPi>OknPn`LfP zDA(?OeR54_+5ZRk)_mO0ecjKH2%rXjuzKJRe&A<>0aJx?9b~1w-ZEDHY`)pue}3qX z{$G=3hc5_+ul^<<0_?|r>F<8;|9(l+?(DbzpWXiQuj=YQ0`*^i_HTdpe}DLA|AL5r z`mcZczkmGCfBoNo{_lVK{|A6LB5)wVf(8#FOsH@n!-ftYLX5cZpTvq5FJjE7F(So+ z|2~2YDRLyqk|s~0OsR4u%a$%*!i*_%Ce4~Q{%_*UsdFdKo<4s94Jvdf(V|9=(#SOA z;}E4xl{Q`aFKX1MOE*6Jh;=L1u3j~E{3>=VS+QZuqD`wdtHGmg-@=V6cP`z!cJJcN zt9LKozIRn+64@!n#~7VH4laE7U*dm;wXTJ{b~5G4XDegQ{PnWt&YmxF_A7cc>C&c8 z)5V~AHEYzaU&D_5I#j5UsA~TUh3ez&kGgr|{>_=Jg`)_xgsXwiQWf*7KRBf50pfh8G8qDc#O z_n?BRsTiYm6K>d{jcnbRBStmq*kfC5$rz-NLxyK!iX_2EBuXwS*<_G3`WPjSQc{@^ zk5%gUp_5y3*(F^iz_5duW0F~>nP;MzrkZQA*`}Ls!WpNWbJAI-op<87CJZHbxf7IF z0!k1D0C+%$zkw3!T%mz#*{7n5GKy0PI|y;&ks>7-QiC9!$RLcDTDl#koOa5jrY%nD z>8K563hF+rt()8z{RbKh4g~1BjU!uGso2;@U!4Rpf zw0=ryk}Pi8>a4M9DlM$kA}H##m5z%3ZL6Ja4$6Vk~jCF23t9lJRcb zZo1dX3v#UtTP)KK2(!fRz&8&1a+WgB>=Da1<4mN&tTsF^xY)AGB*p1M9Id@W7u|Ew z);?$}(DuTM?n&mBIx@JVLVfbWKi9N!&L_D{bA|$ojU3r!8&~kxYqJgD&RcW+bi^7P zO>)E1VvMx5c87|t$kx_Y~JMCaDV>1H{F6?{d3dRW=(R+oYu>6ydIDAZpKmDjX2*0GOp9( zsb4M;g_zeDGxL-`uh9}qoG`r-W&w%3T~z4Nz4zaPAHMkGlOH}6+7G#M@vRrWyQe7{ zuCBVZ`))M+75nXK$@$A2{I|AS4P<&F4dWW8GV~>nBMFS2ei+D~1y=3^CO|<7RFD7_ zq#y+-IDuC*hrpt6uY4jLAql^Cz7NJoeXL_&-(p9#OlfO&wNu*C-dDBR9SMJc|YZIS@?Zg_!7&6OfB!C1c;ED%PD3lPEFpOd} zp%+!;wXKmTWqeU1cK!-zJOm=qiD{E#be2dn6R4mUR@@^MZ;^m4Vx@~^{0SJxXh;&C zaF8K-+_O}~M!h`JI&RE~5jPh{I@$-5&9URlN-#w}g3=bf7(pPjr%0m|@{p<=Um{Nl zAtS;tjYGtX$pUn%PQ4L*m((O?ILXV5__ALn&|@fzX@ctk)0D0pN-9_BOz*XFnFFe% zN+eJXKm5a**yM>d6;YQ+&V^w`66Y*qLd~}A@|P1*=W&85EE9aPn4#>23BaOEX#%C0 z&va%q@#(gd3?Lob{D?NQdCid+qa6xuMF6^dnPHWj|N?9gBiQ8k=|o6hKnYf{Mf#JpG6? z8fsHX7O-15!KowdH$R~L4`>_(DRBU%1ncEUq=X`YNxO=ICG6;)N6m>oMQDYYf)A~F zm_k`aSktjyhp7%QhZxL}2A>`js38$*PyaF3GQbt7XryGHqH5TuCTXfv#on)$V1g8A zF$E<^LG?PMRY0Afq+OM#F97Kwu?Ds#Z6)7X%U4=MzBRP6VQMgVY7B1@G_MB@>QMhN zfOP=&9|=|HT|Y8cg(^ZC-qh=E+X35u2zR$eHRwWft6JAEHAo{xlB z0d8Ub#akFa1ttJ1hAxYxVQyBQw;(}SRr*|;jCOo6{l^K!cY^q`^1ax>X+dwB+n>&M zuS12XZigDsyUul+2_5cii|SBo4pkcMz$Sr(`w?6?SHGo+Zj1zIs!M@W!;L~g9_85! z6`(-GEm;Bz(rZ!`EJ4NFbLJG(s)rN&!^UDvt&B;7Q~w%tn*bgtNQ&Ez-2OGE-sG#2 zgKS&ef&|FYsBJJBs@EPLWe2L*GMBfEQx3~ge%1YOIkCK`3Z@r>WREnLvn_SK+wweUx(?9l#T zFw~)a9*UN`tO}-rSwyl!EU78FX-1Lw%_u%~NHY88V*ZiUsC4F?!&ht6%6c>w{jH+g zan~Uubf|N^>j0J;5@|G=!PtZ}UMGEAOBXrQx%Nq?y_}LzgNSQ~jaXEt?WHBS`PDGa z^$85{>QMS31>XLmA?w?{`@Y+IH9jPt*Buv&LOZs~b~0`IYK(>sdn8ltD@6MX<&Q}D z*~a#(UG2S-PIDOB5K5KqTxdXt2MN8erYE^Id+t3NK;0PcNuARQ5-?5yBzoTS$nj!P zN`u7G!0xxck-JE6fjUake+$02~6{{7!SYGsx24*-#To=Ip#C|a1cG1)ZW{HV018ad3G^Pa?48qX;IyIHn zQ4Aj8qM$%LxmfVo+Y&?(74nfEX;BoCp8VK3Zx*fI93Xbz$KCZWzk_Bf(0Ok&qsid zJ0giW;t)F4l0Z5mLJ~y@RA73+;j$dT^!TCC1=1gO&q(M2NL-{sGRTrJ&2+U-J91?2 zjAT%l02rp3Ffxilgkwdn;YOAOOe!QR_7F%y4b=pV$J8X5?T`qHWJ$(E37{k-s$`!e zM>4u38U`drX5>g-oDLZz{|t_pb<9+9+fVWzRs#N|OK6;`?PHgOl(%)oCd#Du0OeCo z*E3R=|FES_rX{p=pOH+>R{8`AnA@w3K%*$nw2dVq$|OKGB}bxV;_y!k5lw5v4)Bx= zVQOXG#nM31B~QpN}K=!Y!(;BrZS!yZH^}*HctHX=HYy# z4gJl~utz4WM|w!; zd!axHbQd3;SQDmafC^|*5-0=;feElgg6_mRN+U~{z#t|_43r0h{(~w^C~)}3Zu~=U z73GOo!aT0;%T1h>7Mdw zpZe*a0&1WN>Yx(pp9%p9m?&ykDM&bICM-r(Oa)XpMWjjvnyv(h_F0))>I42{qHbz4 zmS~m2sC(1~q*BGCRt4?JB@L-+{;Rs`tHvIy!s@KjYOTtpt>S8~>gr*7>ZiU}r~0Z< z0BeLS>PWaKrCNolPHM1%jW}YadNOPO4QsSINK5o;X%wqS94nV924ZySsD>6oB+HpT z>t#}_v|8)AR%@sdD~vK|C)g;C3WvPvXt=T@uaIlGhNZe@WxDdKg7_y<+VBb!s$*tU8ixM>1=~ zcC5L!oRySp#aisH%IwV2Y|Yv%u7awsvh2!o?92MBvRv%Xo+w^q0(yKzw%%WJLhM8c zZPOx4&^ql+K&?y^ZAfhXEB|@uqC9NWa;=w4ZP&`g*TO{AGAg)^pT}yg%YyCNZi(2k zZNSRKz&@yX7;VyKEwX6h+v=^8xb5DWBhl7v0-~+o5-z6}E?o32A`WgBhN+ky?&H!# z;zI6f>g?UFo0v{P6;uHgRL|skF5G@@C+0=M62`&$pXE;5RZ)Q)&_V0EZX6`Rn1*iX zO77>@u1fqyVj!*hp{}ecK?$&~>k2O&%t0I+;_M>tswA)I-i1>n#?@l&&Zce&3~%+$ z0UgM}@h-3D-tOdfFG_U6Qs}PPo~_ER+Y$tC^}6o$(m@=| z!Tz5DIoy4z@9_SzFCE0L{KhW<>jeFtgxqEV4M5<;V%!O&@Bb37>s~=o8t~pCaN%Y! z;zA7WRNMyZB}25_5-5QL3vU3^f%aao-k$6VPYnnQtM2^fRhpW^g6soRfeEj#@D8vG z`z?z4@bA>c+&-xON^J)x&9-H%y%NOIoj?`naOJ{muw4o@=Ad6U4#My zg9HuK#{MMF1Rj?fRKf7)E7p%q1&BJnXxcdv-{Xty^fQg=HB)FP<1B00c0^nthjsYZIg z1O_C9c?^MR#y3ttH)a<&AW}C=2!lMRfh*L{kvP7&|rfI9BzT01DQ` zfe%E217!fj10vivNgRN0%fmY;f)o6M1pq@j#KSvmLKc9;F-(FNyaGGOgFCoEiZ1{) zv_p$4!V~zGeglI#yh9m8I7sleIsCRectRJL#E=)cizE3*C;*GQ!!}KTE6_MRXaX1b zm41hWFf{o`=(rb1Lp;EPBS^snyg58%0*-%#nwPTO#ESp6 zjpO;5_rU>JLydES6o5pRPx)}y-CH9Dd!zMLjldLK!4ef(?*DJWPU>j|8DFd$Sw&0H8xpuL3rBlLbV>JBUK9Lm9Q_ z`I`TOj(dV9Fnc^K0yPkOE2u*xXquXnLOalUvp<5Q8^9{0!z0*$4M+i@8+xV5I<32c zI=BOpox>)q!@$P_Bd9jHn>)HoUeT`0v1)itdm%wfa0O?yNuc^fs=7kbd5tT=t0Npb z6ud|bfI9TSeKWv0Bm$eugMEL5iT`{yslt{|05$CRnJ;~kOa6Gy3;jn3fI1{Xiu=^j ze?-zRy)nFl8Gr$F~kEOIK595 z`bQvl+y4V{I|7pDcg1JD(gQo!d;Ldrvem_OcTjd?pMVvdF&$h16U>BM!}rT`!KD9#w=!b*_OheP31nmFAFvP>o zheQNe!z5?{*r7Q{==tX-{y!9hJhTBwOg-NJLxVp*>zjkn!@I-R{X5Xz=g0mzxIW_d z{_k7;5cnbvALD=}6FE#F`ZeF7h}DOh{qy(kQhlP}t9ZCsVEr`4wzf zv17@WHG39qTD5E0qRsRcZrn_5$I|E&GSu5p9rI?|Te0t7x`PQ9HhdUyV#SLYGd^*J zPGrfGDNBxHV(<~on>ioBpt*5q(W6P1Hhmg(YSpV*w|4!SZUk#Q|4oC$G32yLsciK2 z{X{42fdvl|NcWDDC>zv3UhL?+_QsGOA%-;mj$AqO>J|=EbLd8-D|GT6v4oB_=gyv3 zwF(qUH0N+fPOLJu<}`TJj#I0i|Cbf0f4KAR9q?c~5JA^4SdhU6F-RLSR%8|IQxvm7-gK1#u{zB5yu=6RPUc?CJEy! zANBi+$KedJU>ZugsEE4yDuNE0cYv%2N#UqWa!HTk6KH|i))UAAW8%R`B1JlCGPo}R z3~DH>;0aJ52GB`_rmLC~sF-)EI`c;-*@KfyFLfOB#sxbvR4~Kr>Zp?#1d3t8MjwsT z(SIN%6w^#KHBE^UQv8&%Bv_=&#m)XUJr&hdRb7?UR$U9mjhO_J?Y4gch-VR5D+*>z zUHSYHDJUekrq+KTu%@}Co>cbMTq_blokV>7XV_wo1*rsGcM8J-5-Muo96FDUge7B< zt**%b+WY4{_T~dKN;GIPb2$9uEUzL4%y9%b|JKZw$v#~jSTsW`LNu{O1sWogAr@|! zVTb>TIO2yTCK%(4aeNHaj_HWw1j9JfnBT9Q4o=Bf(>jl^9j@)Ky=db=5Afs1q7mS8M`b z(1}MLcR0zSBMW{>Cmwj*iS?feTuDbB;X|3?DPV~!UK-pjd80}H&h!2D+))7ztO=r* zXZj`!06up0Bi7X zdCPLzn#RXJ^UW@Dllw>I4s$urK`e8eyP(4y)Ikq^5QGk*TnI^6LKB`4g(+0w3R$?q z3APZ1F_d8olQ0Jx{@xIWIn?0|t1v?kzR-t36ygwxC`2GK2!cr*SSRA*x(P8#c1o0@ zh;UM!DPA!#NF3om5>=SjNy<``nv_7mcquHN5pqj_OzA)s2h^bvj&YP@Xc(r7im1Yl zsCgY3qc}%DhNg;t6eL+XxS@nS@gExE;)fK;p+tIUkdZ{y3F5#;P|2YLlGNlTBk9Pm z^kqV-5KJiYs0z49EE6<%i^EL0O2EJckz{OTCLE=TCz6trxs=M5bjiss(j`K0$s-r_ z!k1#c(l5PK=8Q~GNlSjpTg#N@G($&AuqYB0cd1y#Y$*_hW#Wn5{D;C6xyOHWVnV7E zh&35T%}oaW(w&`*=R8-p1UWqOQzuXYJ^9&BRDG@^*5n))?MQ>afbk#J6zDlCl~6|s z)SR)ah&54xp^Ey`kMP7O1V6~djeeA5l*A{B=8#E{o)o1bT4+T+XU#>0B8qZRXhUTh zgUv;>kL;YwN>kcXpXNw{KNTvW)Hu@0xN)dSRcb{#K!qwi6{=CCLI}>{$$(aBbF`ex zIvYAsns$||-i+lrb6TlToOP*bRcmVc^3V^h6|N#W0Tql&nH9wquNW0U9q`aszy7rj zA~;KghDifEV)Kcp$i!Q-Ng;Tqj1a8t+p1qtj!!k zliOUzEWw#|ox^IKTir9hcDC8oLv3A!ieXw8yi4tb!$LdO@SfK!OGpB0=|BbQq8GlY z!>)E^%UxChG`tN`nSSHz8e3wZQFZL^fXAYQ=;Bij?XnnL1S;GURQ^?1 z0*Sd?<^w^Qwh>m0I?ux9*N7H$7!Jt~e>lQAA5n`T)N&!ia%Vo%S%P^s;hz5tLLUEv!^%u5(S2~IEq)1JUo#+J5g zJ{?;rgYMLfNwun1Eoc75TGp|4^%3_xZgU@c+%JC6x7VHPa0i>+@1C5v?R;+i#=G6J zo*<45rr1$WyD+Dd^a+-*PidCw2&Y3hz!{F35I8le5uYkrW{FCFtHR%o{)&({i>pcr zS?ai;gq_DTNb<3oeB`G@COAXl?_{EUogSZTasN^AM8ah+Fb~nIB{y$)>zmd|Qp$@eK{Z z@mz%bRuM}^$}>LX7t0XrKE%WheSVyl?c-ZJ@gbIjUSZ-?*kvOh3eCSJ0-<}M6P>X=ui*-yV;%Kb{kP2H49if ztB{C_MI$Dt7#6>kA^2>9+vs#tNOEN2pjv}(lJD_9!r$pnB81L#po?n!N_X24#|yM# zE=&J-Dl9~akHjjhLhmcK?T-Fpp&&|(!ix0>@IYd3_9&_Y`T%qemQ0si}`(}jeT!RJYX#BS5g?td}rfAIOuI{El z(q?1{N?`pcBM$Hm{^T$I>Q4$2q^2Ay|L(%^X6Zw;5ab3*0;4GP;Nq=_>zD*kn@Udf z$S|3#&h1YxPy>T3=td+5TVn@J2Kopi*MRWdG*OC{fC@rvGUhKl*NI~tmKp>i~2T0-Uet{aTZgR9w`4o{OVy_#OF9OzXL4=RL(vBL>&UmPi6tLhy zYR^y#U>o0{1lzF(7E!+n03OF+gt$=~_mS$H&JHoa9_eENN}(N{Kp?d-3Sw{!{1GA- zgd8CfAzYyxlWyr=5FXF2BNnnDuMr+Q@*!uh0RB4iAHZ=XO@Rg&(&^Z75v9)QUV$0` zQY3HkAB2x2N0KIcfFa{CBg^qC-jNzF@F77`RZ>Z&-eTXt?*!#d_d;-XpzBlSAPGnj zK{^GWNmE}c&(Rts z6VD338ztjF;ncSZy{%rK_b8g7Gxo95Bp-XAfwa>wQ?2#jQ5;;TSG`XY{0Fowg<76&zFglRe{!;_%X$eCyWJ+;B zKLunWDJ;d3EE}{mfXfQi5)0>oVc+hj}~N6Ff^6Eg5&_x41;U2#wwU{ z4(EAT&imv>BbzCgBktXKw+VZb6>UF*8#~&2t7Rr|Ia!GhOpROwco5h$m-L z_9iDgCnzCT6FbKaGr^HTV6cO7kR`8i5vQ&<$IePSLOAt{I+;`+55`MnFxZe(_Rb<9 zE0HHFA|)%LJGU?SxRmO)Z%V)Z^E}sc>7H>b+VoBX6$>U2ES_{v^OIm!YEk%;F8njm z02GN9lu}DYASxA8GZoqB%44hm+B6kZ5pL3q$_T|WR8JLEQ&m-0H40hPRbLfWV|DNT z!9^U@Mpn%aP(lS>RT z8s+pJX_D*|l|E~f6o^$Rko6+NkSB>|RUSB3xP!cp5I6Mqn6gAij| zX9+;jbiOhy%uk=r!u$>5R@GKpmN9ZKHFULNS!0%dX;6MO1Bdi0{&idF z6(E0M_Lh}PO;bXXG&+};&HBHGCB;T~_!}7m;A+6M;9vl zOwhEf)>0SIa5YkWPLOc+TDMe8XHs^Hd!H9G_MR5q*%XErVLun(DUcIL{GJQZ@6pb9L_GEng=#>@%?I5Mu_{0f+H z>&kIMH&sbjf-#XlgK!Tu)^!or2Yrka759o@cWOaWI=R(&L^xuN=LWd*KCf~6u+JaQ zm0i~kIO}sIOW^{Y_g$NI=}K53OTlc@^Imzlh9Ne29}`Tk0BUP@C_~r@tn(ENvNY8< zJ!LqGnUy?!*a;5chR1G%wbX_KwO{RYZoAYy+Y>2Oa*C~SC&RXVWe+-omxgZ>Y6pe_ z?YE~+{@_H|NP)#d2~NOcRU`>QA}jy6GO8euLxO)D_;KZkRVUbyC+yL%uH7_vi!%5J zHI{=bd6Hk3do%I^jq+a66_g#eBh(XL+fhF+atw@CPLDNEiE=0*vs^pUC{e)x%vP2A zw3csqH_ek8-yk7#5?;A+Ub#*q%NRTL(OPfxS=rT<4YnQM^dp=0nJE$#dLWF|7<+$` zneFpla&O)En1%8yE>chBH)HHLr4qSx{1+@tt915QAjYh8#0-)1*r@0kEJgQ` z|M@Ir_5?3kD&cJdiA-iu*8}6~doiYJr%0Uv+D4Y3flKFsQRbv`ji6UB>+9{!SDzE&QjYjq>PM`{& z$plVEpFJiHn4lvl8nryyk65;(>+htG&UG<)r3o6Q7y6|+vG>#pr&lF-rRb}b327YV zL13zQ|KCzIrW)DK)ChzjYf5(jBx&tOuMxi zuCG&t{F+<3Kgo_r2?NAwnNFYt5}+4s!Mne^7ZQNk)}oJ(S~9NSbi@LWN6G}u8>v@I zwAqNXmpfFayWyVOzVn-8v?zm=2?Y}17QS1+1v~*TV=V}d?yjKjj&Ll5dZb98xaWD1 z>)KPE39l6tRP}q>@LR(>{OwX80R~*e!5anGqK^k|w>ww6lfVkB;0g|uKqGvuzml^{ z$Hp`%!#%vyI9$hjoYVe$#Dm-xdI2*;w%`oobVz{GuD}lDAP$~tjXp(zN#~hFda0GL zW17&i;V4smoYQ#R%fq}z;9{rcqL)q}#DzS_4ZsAZfC#A|33PkH)&61$Od!hV;12xi z4z3`8Kcxx?F3L+sv+H`&mazR&oRcV3%*_nUDHttQn=~MO(E*NiIjID?Tg?aj7H(k{ zVBoFezzW8DEhLvR=76vM>JGjPMdYB!Pm7KIoGb{g1nlk#><;hdJeO2)(iuIq7emq| zeaL#QF@Sy7lPeMh3C%NI(`f+~V8IpKJ2K|L%F|26BO}lM3J0EG z$m5Ccik;U>Xmt|$Wo7#MVAw3iIwRfP+-JnhmB|ErLD|2X)0@57Kf5ySie#%jGV0*k z|Edc9mmWMzJRG`G5ByZ`6(%R z?7e=2ciz_v(O_MEEFwCra~0-qzT9%Y>-F9dHHGgB*Y9yef($B`mLTZ!ecy{77H%NW zRRnc9v9;;RG?3a)1*%|G* zTJ1AAgROd#179^*f9}`9?mIbV^PVkmpXLQRWrSb;=S?QIC20v%K=GNK@nOLiD1S0U zWmZoX#zPT@tU$NR!nDSW;6|VH7xeVUKh7@Rpe??j2|D$?-pUYq6HnKrFfFh*r%#wNe+sP`bg0pzNKeMdl(ebS zr%?YbQDLj9)vH!-!P?4ot1l~b!ipUmHV%^`Xw#})l7y_=w_)WhiF#74-Meb(>fOt? zuiw9b0}CEZxUk{Fh!fMyiPL7w$2f1=%t`*)W#yAaD_(}YnX%@Zok7ps+!(WG#T7Fa z#Dc*9L4_nSY)n{SAchGyoD_H?Qy@WuQ7|mHlJbD<2(MV*o~ZKI!Q~_sk{Yv|H*(gv zos4E2l)KE#pTU3cK0f^9@#4{M|DF&%Db{G~3d}%0RUI~_H;)y7xsN#w&w&)^X z-aSU1jH2XI?=cZG^#fpzYR@Z%hWK8I({i zM;({E7X2R!Yn|X@X z=bmtqHfVmQz35XWj5gYdqL3z}1cMG<1)+poQRrb zk+$mUtFXo@>#VdwC19XBx~FT6g3?HzoIbvJB%lET8y=eeCHM<<=yl`~LQXF5+FsrDbCajF?vyMbor=92FYdhBVq?lkXvKf+n2 zzw72p=z8wb3vjI{d6p=`sF~19rB&TR3#MFAF~_F=$R#4EqQbRAsZg;sg%wjI;pwU* zGOY5-EVu0P%P_}G*ut$Y{wo=Bu>mI=Z_--X(r&$7tMf0%CC9BpT80_jxUQ7T+qoYt zM@mNX&M0r9yVe-6z<1hS8n;`mtVxzs5xPo4n-P@M zDrwwr2W5$6w@Gs;+_mOb`IydRTg@MU1DjVhvi2IB^|8JJWoOxM8kr`UxeFWi+-MgM zWb!T#(dhJ<|3w1c5>pII3~^wbkg9kIKDbyKA3@WIC@r!0NmiT;dG+weFaP}X*KhxT zsvUp@l{kw|+qK#L35i3HBea8jt2v~=&P2S$9N9caBC3gP-R4wcP>)h?5@>I4mjDU=j+vO(FCPz>ZC%7l#IQ%bnP6!5^$e%|2@ zu4Ks)?@|#fHt`>)6bnkOpag@m^Pv!ps6;19QJu(8Zs@e%MJs9&RXnONs+b;A5)ukV z9jGED&BRITmMT&;#RNOVidMMdiYd^uo^jZvT9i-%;{4+ZSLmlu@nDBJu*77n`iDWA zc!FCpE|)q*8Aqo|)v8+cs+8O4%Ct&9u5vU6hf&2!D`Fs$q9P$>{YNOyN|+OnfCN*h zLjDzEnX06qzyt-jg{30oiWu~5Q**c}Z8&dLPGMJ-~DDnzkwk^_gv`~Ig~)R zNI_LgNg&v=bpTtq z+0#QHGLikF1mn_yz;BVuP)2lu3WCc+a}m6yqLTOhQ;>Ke3?5uC~AjPVj;o{NOSBD7V>~*0rMb zqz)IisZWhuxX1zBJ+We|=KyPX+q)OHzC{A;&1(zGbK-A_1B?Al&{;|r;V_T6%x6yX zn*SxGnP4kPO=^;qj+HN{B1^g7aw?uIl`SyvxV>qS0H%{X-n1}zSM+Tm1G9XxD0#Wf zx6bvhd;RMZm2b?ND)frO<=lsp>-k1PG{w+s7>Txi3Q*b?3?~s&JCASRLz_|dMnb_LR3gX_V>^K{wwDC$z)Lg=zqerZI|;gv)3UeBYxjC6%V2Sx;JadU;qYC zX6m%3qI9(bZ~Cy<8rLFIQWNg1ek&rE}dkaYGku zCl}0KbI*USei|4H9M~1EKzt}c2mYleA}rx|4Mk8&uzUpuGBTKj zTDXNk)?S$;c3fybB9#f95QCHBeH7OrRe*&r5qdFI6=r4?cTH%LBg*oNPA z0tSFL2@rurXoq(Q3&V#JbD(!ocw%I+L<=vJoSBWK}wOgRCXhZL|BAJh=fYWgeGxdeP|NlH7W>}P@A$u#5j)R zNNqBNK|CT!xbsIRgiYo6GV1glG@x*q!&CIM{)uv60wkSdp-j3EbCO$5@Z*V_U|z zhMmZdN9T_YQh7zF49TE*r?>-guu5~VhEvFpedl;?5le(9DhmjbL|K%d6-|${LO>#n zNjWF&s6k+8lnLTv6)}(Wvjiky0>t%TN$__*F@Ac*Ln;uH6Z39h1`Dx31u6!JRm79F z6pkoZg>G>YswS0od6!dVLTQtcz{ru%Gb6ndm3WC5>of!^pZXKm}HC1>BW?Jc&>a2^Ts3RS^*hOH4GFrg@sdWJ!UZf^Jp*Qn{OBEr4&xcUr)ghr-5sITwC&8I~N1M_)ojAmZ z;xviDXh@PsNsC6EEHaG2^j#?Mn3ZCIm{)fd1`Dl_oW!Y++bD~h5(oRJIP_!^S>|2Q z>7DwypZtl7;2EAvH7R%_gwyzR>3Ly%^_k9ToRRYnN?-z;0(mDvDzw#SCR14bnV}lG zp)2^GM-fgh9r9Bc@kDsv(_6hS&9T}Y%wiUFMo6CX1I&h=naPy!!gP$-ZBVHq)FrUD3H04hKM1)zJq zc4lYR3kI-mcxNFw)u1M!1Vm(RM!=HqIi{3asf7Uz`H-oax~ZI+4{Ttm^;4!o(M-lf zLLq_{M%t!+NTXvB2gjyvI#d;7<_n}aYkrynzqO|-Py$*Bf}nXaHNk9Da0PKttW+=p zU1}1l3aZT7tWg0Ch+qQJY63qnt<-9*+VH8)3O}Oyp|MG-d$&|7;djlpD(mJUSAeAk zbpm%<03??Twa{z5u>Pwpl_5bVDtu^AACoGm60ZL0rT!YQ0z0q->u&&Cun3#53QMpD zdqvyIf6!{JLLjl&s;x&c0P9c&eu1$XD-7?Tv2-&4>YxTP*sVtKO#$+eP+=DsKmsMu zTyl!6p7Ii{_7+iQ7Rovz4@#(K_8^3M6}_OYX|V*|6MtlZRDqGD54*HXD-;nstrH8i zDc}Zt5C+-$64M|LT003|023U$u^Iah9t*NEBeEpRfDBo2*cnH{s0C-fC3nd0z&Y(kvq92VYVzG zvRZq&|G>GPtF@2-1r>1&S}PBWAPg-m51?BSFpR=b@U`J9wv)gLHq65EkirRZ!tzkM zS-Z9VT`R;uOu5#ewI7=hHT=UWjKnHjxqVQ?Ni4!poDkEn2wB?)oLjjqJi{?F0o%|I z6zmV3@CjzTC8vOs)nl%k_$!hLWOUt77C`?a2X zw$lK_(@?q&a3HJ9635WQ5?~599JVK`Q$)85RCkaE03FbG;LmX|Y#`&vO}fZckpe8XZ2VfT`T4#_ zn#mL$rkhN`77T&3@W~uZy_>5J@-WWRFwWuowZ}lhC7iL}i_G1763J}6x?H-)d<>;4 z%t=hcGF{Ur4bx<+&DJo^EG@=6?adjx&CYz&N3FukoYES53^(o6Dl9V%P|g&L1|Pr@ z(0~trphfK5Dn|e+O=t&r4{|xJ9^Qb3;^D+3>+QG)r%4$o5Elm!(98dMcl$4D-1{-)QXM0rv4n$T|3iB z4Asuu!a1$EkShZf|A*I4lj zd;MLOoNR!7-WwXh#X!MfAOwWH3@IQ4(i^$akk}}(%9Sg|Os&j7?ZlP+($bD!jCQB72)7YJkC%pvLx);%}mr9OX1!u;V}aZ{Xh)F01PBB z0Vtm0C_W6uz0Sw|GE2bS#m887aNTm9nRI~G1ziPlfZcGN$6=AL{%Ju1c?#aP5VU+9 z70!m;={1#e7@(!Pz<7A+_4u*CNT%}?A&u;V#Fp_0Bzm; zs|R_YTs|()I6hEnfdW|Z4|v@RB;CX?e73B< z-{Ks^C-urld?0Op61A+cx17rz8`?>o)ZbjXoIC5t{Byl-*}JaIxNPjP?9&#W!a2Oy zN*(7K>$%}PvXX-glJEzA00_<%?%|#T`;ZTf0LPnSIUG~|$8~_mCbk2v@CvZ-3cjFb zL1o?ltOxp@=#!oYsFE!@_EH(~s1C}izMtIg?cgr%<6iFP-c>IYdv}Loja3C` zNsy@cNk|w2Vtof#ukUzp1$FS&{7cr0UmO*eK9l){x z^|6MQT!DmDph}4k=>wey{Hsd#yh_7H2d}yymcPjQNMpA5Z=CP>;6IMXKo8_!{^o!F z^sol|2@U)}`_7;YT`CND@B4e7IU^wa^=t*NVEh*b^&H5708z!x9fEi8tytzEx{9b5Kn+O=)ph7FD1S7*zHs9i}GH`BDh ziw`flB*`4+cI?o(;wtZ~zj~_&<_oLJLB@>nT)Cp>p~J^k23o0T@gaLl|;if@ukU=II2`8M!k$(a)aHryq%dn;; zOo-!-Itap}3czULORp61S}~R?{_e;_Jn{0Fg9?MlBdz@s~d6te|?g~6&NB~`vnL(KuWokj7mjJCmQomYMZMDuE=r}A!J?244UtFNZ^1h}TSBMDzjUPk4VmkE2B z1a3ijnOYKPQ3gM2zQSfbuDBx(x)1XgXgZQuqB5rcUJ@sXu_nB5!w)BXL&X>85OK#J z|7i(u7Zi%id4}}Iqk5MXNFZ}JO`cD(H*h^Ps9wmVvffS<56$EnPl2; zXm>&~c=OLkKmFlCAi)VInt(rk`RAv1gH{hg`u9^Kgj`=ep15ZE& z;`xFWCBq;yn&|$-1TcexDNBHP>`({9T<ycIZImB(w4WxWiEBOOINai3-EKo0@Zf{QlS7v z2^gg30{J;Z)5|m&JYyhSnr(lJK#v%dE#9%T}wkoxi zjBLKx0o`^rkURXt4k9~D7=cEGBzW_0(JEg{%%VkwfNf&m1xsz5$5c?EbL zG|{yT72H5%yP}I7e3rMk{DXLHb?Zs%x?A4%7HaVmgaUoXIGYT2asMzbTG*mo;Be$P z&s{Euq^mgOMwhs2nQn78lHBcDcSF^6E?bt{UF{CYxW_dL`!EYXjG@A_{|E&tmQn&3 z{`5jHvjAjPnWrw4eU5A%bOl-+@(&W(VG61i>jV7Dt+fdm*}9|=T&ZF<++-uK3La`U}! ze)rqo|E4a$1wL?s7hKpHhIPVWBWpGH8sWkA?u#{y@MPy2(0A^$t!u33V+VY^%8qfM z^(<(LgBU5&X0OE>ZS6%1yaa;j_J0$w!Cn}kUF9+vx()^_Sgas>%n5}7KYz=>Q#C6QBdCFi~TsrLuLvIZlD)skj?(=$)H8rlR-9R zn9E$OqD5eq05E~+Hq2tadfxTEcdElr5Eq^`-=C6oqinss?~QL$&UEBTo89q`H@gzA z?Is0CwTwVsSphels4tdD?!WBG+ zMGBIjgr#Bf!HpVy@P$8oouC;t(olrnOOM^tADV_IsDcb;5p&u*9#zv93@i-bb`!>ggoqnrs^EyzojIC&MnxP{KRJNwW)G>X6;^udIiz?G=L3*?9lguj0n zfORN?e>lOJFv6Q?La7V973@E*qoE_RCQy3$Qg;$xrULXO?%R#*RJx%(- zHDp6F3qq9`LJZWve~7~y}s6_Q~iJ}pK4k&>n zC;=2W7!^nXq;Z&UjH?FJ!Ez+YlJul=96<}j!1e=3S**ZGY(#*}$3<*EMc_a{0rnTpZ+E9Ai)f0dazj z2(Cyi3K9^6jhIx6F)=qqP&WnDP~}pS64g>Q)lnqXQ&rVfrJXLdRB_r=m=dN}{fQ8G zDowqZPUX^1Wz}BwRZ02PVEz@>`54w>4c1hhD=N^YWo6c8b=GHvR%oSyA55rp8iT!> ztZdcRZROT(_113%*Kj>7TQ#VSNGMLdwG%tjb*)gSW7l^jE_jt!-+{Wh8qgmMr41b= zUgFn&_1Av|*nkz-fhE{k@}(XNCX5l(d1ct=bk~M`*N27Jb*)#qx>p~>03*7ijpf*m z_1KTy*ngNeHI=xDHQAw)*pnsGlvUX(t=N{j*d9y^90J*zwb`4+*_@@HBHBNVY1yBB zI-q4&mK9nZeOZ=@*$6BS_HiGbb=s$e+Nd?41PZ#ICE20dtj;Rh6;%b!^4j9a+ECb# zu-)1KrGZXR9I~x0{;~zz)hk=4JKGKETCdH7wOzfG2-|T=S_m9DIa4+dW4<@bv#6`e zzTFt2bFZ|BueZHWRS;XnNnH3sg|tXq3|L&oZMqoXEVM0-%1t~B@Z8A--N(IL%pE$- z%>>R(3&%yV(A^04+K9yaq`iGW!`(B%4Y``YG1KEt+r3(Y`?0hTGSih%)>WL~{fFVj zfZ)XdE&GOeO{uA-qn3v@v`2H@Vev$J5Qor@$+556*)f}+z?|i z4s+Lfbzh@XSHc~$^UYPEYqYe;-|UUfxlLXDRW!9|wEf**{?%U9C16EM;2~IG11`Aj z#Q^_B+kaU8;FY7`Y9n6({lWA79gN#B_H8y}yER{%v+0^&^o2G1MOTAsUbHb zB<3U~20tdIG559FH3eMo;;vmAVXNC+dtE*dJ7k3&y6|=0H)c99Ufvi`3+2ULNJeAT zon+x1vQ2K@>!svR#$-6w#cdNxOWETqnlraMmnNpX@Ya6n)3e?#h|?zg38>U}%fm9lB!E9%u)WWJ?odPZ5NerkN<>aMo8uLkQBtm-zJ>i*y> z>(sdF+Rf_wCAyU!Yk(8$xSln-Hn^yU=ZjX_wpI<2Zo{<3mZP@of}88XKCi+yY%Kn>Jl#7^w| zYi+rHZKYo9G-~Y6n{8UXZE6wh*ludx?rqfENG+V(u*j#T6Bl-&kyuU_taW9{X} z>vAIQ&O`1;t?o@x?&hwy=LT->_U-7dX}!kkc&1gHxNc3!Ztcc4@8)gxj&1PPTk&RV z@-FWWPVJO_YxjO_{cdgkPHgzL=m6bdzOHX~zHg&mZS@Xo1>bH4Cu;(4{$&AwWe2Bl ze=G0{$M7Ys@D1m;4EOL4XHX6o@$Clj5;t+c9Pt#lx)W#d7B5K^hw=Q2@S&y}j_cq9 z_t|uA;u|+NZ5awU(NFz4MSzw$I!^PpH%Eg$I<-esZq@|5uAUcC=7H_17)pYC{FO-3b5w)#pa*+LT!J*Y#RQ zqX}J?uUq$8j)*T~Uo>53J!7vnVkZhq&$vWCTxiQ>O#k$3KlCnloF>m^3Z7h9Pj&FE zHX2CX*hRcq@8()xG*pQ7_p0-i%LEz-vbtUOjWG9{&~tZ3_t>3xj_7q-7x;h3_j@-A zGe>i7&+#oDb1~QUhu?NG@Ah)Gu0*5c?h^Nb|MeNpb+F6$d;jvY9e9rSW>kDKGSGX<~}M`5uS(pFeT>#+vy3u2VjakN4({w|IQ_ zcy)(e3vTseH+YVpx_}wq#%=dbNxA(A5G}pg%fG_=-DEJG;^Wjf?_%?CJ9-(4Z7COxPxARH>v&uhj#C;VIOp zQm0a_YV|7CtXj8n?dtU_*sx;9k}V5WDB84Y*RpNvaY&}Pa^-rYp-Ld!7;g9S?d$h1 z;J|_h?-V8}OOV7jek5iQjS=C9ClA?f|wg|25kGUU8uqN;J&1sOJ=pJ7BIP&Dmmosnf{5kaK(tn<20Ru*h*4AOj zru}e$I(g#zOxzvRJV*2l)z=hG+@t&H{_^M3uW$c8{`~s)-#_gmM-D!;)n{1Lk^r%W*NSTHz9-TtP|K$ zf(!1}A$V+p7wUpS`l-%vf|hFya09HfU~j#$IE^D z{Wsu&3yyNLH{8IQYd8K#>s>?#YpkZ4Ki>wanv3*?Dnmw-jWnW73krFk@4lMn#~DAxviC#?vUsa^V|@P8YB8PPZnsCPd3_U6HPYFJKy{^ zjto9M_0?N{J@(1@2cUpx5Evul5mi{bn3Ml5ur-)ZOsAh^3*WQn=|j}J(q8P2E$YBy zEfBx=YkV${_!m0?N{%7qTb9w9pKj=ry;$ZhCzpc>jR0X42zEv!}V!Qmh~rzS+13ktN;nXRk^sXnM~ zUVN(K5rrrxwgE44*E&<>mg&r9x+-(&%;5xevJFP8a%>J+z&;MK%YCBdEd2Z@Km+QM z!W|A;{)z*JB%WEUN~R}(qey{Jw636ZBTM57?#=t@9}(UFqWL;|41 z7-Yr*AT$OW`a~8(H4;@~O8&{D zqs!<}E0xp_@wBE>t?E_hSWU1xBN2}DT2RgEUGuuvRCcwEH;ija&wA4u z=E$x8qHDKw#n;Y$HnfoiZ2Lm`$S=N1h_UTqGPn85O!o4&xt(DS@A=E&PO`bfZC7=x zd)P4XO0?rG?|GMK+S`tGXl2~x`Qo_E`xfoLV+`u6l{K5zith*%* z?rhV$;ugO+eeA7g4|AN%6+Sh=1>RqQ=iA8*hjp!8JZ5T>yyOW7G5*I@-tj)?q};E@ zIL>pfbJA#>;{P>xes50kg4?y$hE6xiJ+5cgUR$$u5^CKTqp3}Io7kTb;9&K z+hU%2)v0~+7^m6jf<-#aOK$RsSDm?Sx3G%)Or3xT2Y&EwPk50VpZ5ATz2!A;Hs3R^`OUu@?+)kd62{PnLKLD8V<0Q# zfh_mM&$WMBGyBOIzWRcj00*i_MJiN*0~2gKus)yg+*SX1wJZK6SLZzPldt@bXxz|G z!2%#iFa1IQ0t-loO0~S8)-?A{&1iB+vC17LC1jOJPaP- zl>gh}uD{sr&XThaefj?XKLA$Sx?KeH6@nX3K?Y<16}SQQS>Hssi8`o{ps3G8Y?V%= zUn<-{5F}s_+(7$D-kGe!BRLYRjmGf>APS}+=XoAQEJ5^*fj}gnK#T$Pk(ETa$vUu) zFl2%`P@qIuAWoP7?#aMI$N=t{K&4FsCb*B+c*1Sy-({Sj3Qi#vW*rMo1P!{uKV$#{ z8ej(e0|Ua~4W5G=pbZ4c4?0oG*lbhmypE_ih=zR1I-LX#WMD*iAPywqA_R{CLBcUS zAqJd^JB>%3q(Y-ORA1N}zEvS3HX_bx8%B&C6@cOX^l2d#l->h=%^&&+&!FLMFj54f zQ@q5E1BAl7u*n3T4I+ZX?FB(Z1VQfU;RCJCA3g=QgkmY4VkGrR+ysUq2Ad-WqcAET z=_TOw6=MdFUM8x+EFME2l+G;ji+Q*nkhor{XiiAv-WNhd2HYM+*v9S*z;JA0(43R( zkO#y-k}v*Z2@az>z9ZHl<1rS3F&4ryN)34gP3gc2G2IU}dW|_%5;lT_Hbz7@rouPg zM(qU8CQ^@HV=4X{S7anm2Bo}Z;TCqG8+>6H-lNpGfiZsDU0Rf+nbfE@+&w8rz4CsEfX62$flo4cpnVori+j*XbI#*(i+msE@i# zmu+aZdEL_eUF^x|(UC-@=_uWupZ&Glk4CAKl1Pw3Xs12t!WCZRsolvT)pIc^`OVyx z1}O+mshOUseE6NWotwx#UEDz)QGIEYVcFD~*^z=Mn&zpV^4t}&9MIh#n%(J!rl_z* z8k4#lpw4LB72BRRs-xNj{(wZPq)sZOR;s05DyC+trfw>ycB-d-DyW94sE#VBma3_O z>Z7LWfL3Xjt{h(xU;nYHm=2zj%Bi~{nat(iqT;El_NuS$g^b?Yjkc-q5ucXQ>PVR1 zp}wk?CD*K$>90nsw6?{H4(pRSAD00toW^N~E*ZMvpSRuVw2mveQtJRRN4Hj7Dr5o> zlO?PWUTB=xcit ztiUz|!#Zq5Fsw+-D@A0&7zGB#LPy8CYqSBZ!fu4cZUn$atWQ8JLwG{Kf<(gVM9EU@ zdaA6%va3MI>_n9QEJ%E8L};vF@N9DcEy((s$aaLzX2i)3Y|Ao4CU`<*9PPs{Eki(U z&f4rq2(3f-EXUHT$8zn^K3mZW#L0?+T%fE#%!R(jtJdDE(+UK^mhC?P>|Bfyys~U2 zsKVNwZQC{k5ajJYG_Bjth1oU)&FU@T&V@s)Yh1AG#wIP(!mZc_EZN4z;MOb<*sW?5 zY{V)q+u3T5F61jF(y=Q6J9vTNyDtw8jxT+Bd2Os>KHgXrdN z)}k##;O^d@tmxWq?D8wT7VqKG#mdsFTmV7rW`fu5uFdA{CbaFzD(=RDZYE3w?Z(B% z2CiIuuju}MukJE0@5b)P{sZpHu0zag_wKDhwD0ytg!YPW_%?*baxOyRF3OHAPR8zU&AuEz346*J3UHlJ7srY!J(B3v;kQknIO6F#?lq3qx^S zG{h!!a1fVo)>5$b#zp#?aTtSeGy9g(r?kcA+>3XdqZ^9TU@()w->H6y^XF~c~?nLmi12=@{!f`T3uD~jC zF=wRq25>Dqa~3!A6kl-Oib5lkZz&t_L*%W+_U$uEEy3n6C66;PGqBkrvl~kU30Lzq zH*6f6?Jmc167wq%lyl`;tm6W$Do?LB7qTr=as`JmI9qe#%C6(C?JLjjILgE2JEuf9ez7BemR0_{3$Fjiai z!B%h&r!qKmZd_cjRgd&jA1p0D#M?f^(T=q|Q*}e6^cF|-MDXlGGpt-M^uf0E*=}s! z_H_)Ktr$n{Tqvx?Vst*A?M`zv^>{SOzVbsiGb)F$TqtZ=J4Di+HT{AyH{b4HXZ8@w z?)u6Fy#}^hOY~ziFhc5dM3gMqe(ym8b!lhx7E`q2c5fOV^(P3oiGXckS z?dml|P;bF{uSA=)cZ7`s}(&1b53e)3&W&&$A*2w!TJeT{m?Hqqhhv_Vq9}Lpb(b+x190gudEtWw);< zkaNb4(Os)CB|8Mo((VUG1b5qXZ_9Gasy0L{^+ccaGH>{7zjba;@k?VQQY$gnPB>HZ zD@MaLML_sFOGMscwq;9gR&Or*;?I9gEv8gILfBC zJ7>5ZQ}=t9wjyIJh8K2&GdVu%_w?{LL@Vq;L-t7Hbju?62j}$^Z#G4&tHp|W^LEnOfJ#sGJC-;UbFKbiSGbjHGd=@B`uZ!H zOGK0F_Kf#0jcc`q^K+7i@Zp{?k(2c&E3$gOadN9JrT?=5W38jhbo&N#o@=ZfXS&3m z`qD;uh5PatC3=1Dcn3pptZVt;aCs3&G|j$kypp!Qwyn&*@Rw6MgSWXu&@Kg+ajd8A zx^65TyY0rdvFj#x6W_5(pEj#+vDYShmn(Bnd$7tG?V<_V@il?Rty6Q5P&c=Qi0Qdcm@B?MAdO|L>jSwZ9wemxHdrc6fIWd(>Yr zSRXk&#(SN|ZrIj4M0a*2FD_^E?n9KW*M_#hTe^+Mt`<+TSQ~K9Cpzw;G1kYqgFn5< z5BC_~HYeY2pI<%Oue~F$^z&A3!>{(xA3k!ge3S!h?4EA-Zo;lJM8ik^&6Ak8uLYS~ z2A{KM=~D*PrcATngs6{1>xVvxy>MCpeBwt2=dZkZ+CFhl#_BH%65GVVvJL{*FI!y<$~ z`L93wvkU|5gB$DsHsk|7ph5fJKmISvFhs%(978_z0YGRw^p9Xcg9i~3lwhq-LWd6_ z8eF(2V#S98)Ty!fa2g~i8$m)Gu&zuPdfkXy84hYcOu{yc3uOgLtEmv7&^N&yEJJeY7{!-o+kR=k*TW5VZKx zu^=oj567Bxa86_7f5$uqy=$6vYuB&-VaJv|n|5v6w{hpz-Ewl}0_5^Z3X^aErOy^a zha6oxGU|^&SMQcSoqBca*Rf~UzMXq_)4g~6ZnWfLM&jzaQv8>Ebl21bg>{t&DVThD z%>N1dO7PhJf7AL1ZKPDr>8c_4qx)r5Hu#S;sh?>X;itkK3Bam-Q29eM0=NASdRA|eY9ENC^(LVHoJ z(y1?*Izxn*^Sn$~5IX4Yw2c2&-KJ8-#$8KIg@^0^?P z4I^4QqjgRiB?(xO%Ko=WD^-rPh452|RZWTYc+{$GEn^xrMk~V_jSLpn#P%A(dc}r~ zjqYI*latkAtt)OwV}IfEh}jg$Ms{RBO1NXoAKdZUc*dFL#9tm) za>gjfE%V1YFUSI8@PS8>r{g^d-wuy$NY;Yz#@lK)Je~&j&&sx1aOYNc&f!~4OfK#= zDf;!#yGdpJ9I^X8uy&2zqPX*P#l6;`un00Y`ltS(-mHVv<+*z76Iy&|r?`(cd+W*n z-u&>{QlI?m!5=^V_@A#oW^}{7ociS^1PLSqC{nOIR2mnq2U+Sk zke-gwBndppLejqY>f9q|~* zG@?(A1}x+tIao$T;v{lw{Nn`&dB{jQ(r6{5BqSZ_zfA5?eCHcq`PdjiJ|=RMkDR0@ z|7gln`pl4TbY%xG`AJnG(vN(U@B7xIy!aC+V2qeQ1 zHB*;J$z}c$cuG_f@_+f1$vsT1r#?bD}!o zB{uTmhaHsT3_Ud}cR;Goj9OHsG-YZ`af-MPI#7H|ZKFbK%D|8oG?a9-;O34RR){om zpCc9IE4Rwij;ghe@RKA}M+(sNxwNcaW#dAf%25cKRHP)mt4>+jJr3@br)eeNRyqFZ zSFyfC0Q<;CA9NrMNkn0>l|7nU`|8ny`p>W%wBT6Vn$HX(_F9%KR6num)K+#fuD1lM zWyMNX!k+Z33*@Xm*ZRQIVpgYX+}=PnX;XoA_JAF)4*&E*Q z$`-ez{c1&yJ4fi!w50|`TuqN_)&W~&w}~|EU=^F+;abhVP*{++&AM7sF)kEt@Ty zs5r1jB2*!dTOt3_Sl{lT5+*_Ycm)iq zS%dPD7hL78nYhkgF7b$qdF3_75j6Ti3}OI-1QYQ2&wV}&lGi-uHtTj|mTU7_Cq3me zcbC(#1@&Spo$A+tz&P*$4V@2z>s{x1F^VCIs*j!QWjFiTX>@e769yTQ_`@FnK?S+b zUG6z>Y$Mj5cfIdjCP|?C-{qc!iK@Udg)h7c_-;?8C*COAV8q+MYmf!(V<3#T{N*u! z5Gv?_^PTs+9;mRA7-YgFG$1`fOiz>4kNzL2KZxsf(gSAx%%1kOXGRZz!urcgFY`xf z``hCVcq-UEA9(Nm@sWS_&42#$q2EX-G7!cD0(*nF{`%I(K0#>E34(OL z^`vJ#_rI@woXFnxw#Pk4q@M{gl0PKXXFTsyQuN7rIR6pX|Nd#CvC6?22#^_&;TRAw z0g(Y3hA#OW@BvqD`IxWsoX;XcK@|?d{wjk0Oo9U;g8ss9{JyUsG|&Tgg8kZ$_TJAT zIspR-V*W-DBs6gEekjOQ5HO&D9|+JHlz}`FLKut>0+nzHX-xtr z5cELe0yFUR{y`O_ZwLxP`e*Qel&;<(u1jVlm<&X8? zko4Rz6spe(qYn$qFZ$4MB~UO0Z*L=pAQSMgAm)%D>`)L3;t;WL2J_Cg5bOqn<_CpB z2c<<4lVTglVF+U(;Epf}neY=q5xksm0xPg0q|hLAPZiKG1plE02?7;baRf5~4Ry~I z{{a^M zA`k+B0r-I*xFIdM0U3}X8r{f@fIE5$Q!$g=OR|*A1 zng;_sWqde9DUZid%BjJ=N;a=5{hfs#7t)k1-LlJg@U44)Xe*NbaybmNBoLG*6%-s9)Hncbdoq+ZJB>oQ(n1X?)I7=D{_8g3 z4Mg!YPxVejId3{2q9DhR3J-A)wQwTkuRbf1B&SdJM(QBy;b?4q(MLNiPEqnz+&EUfe#j7K9@13~`-O9M1` zNFz;4YeS*U%7Ts3fE7+PEUgfzHtV#HEKyIL^;wUMPoc0eP+>1k<5MdWT9K$I)!;5% z^HrfJP9ny3N^@7Z!d4ITN)+^mD&`wccmlGm0gy}4gTa-LqjS@qz_sX z91~>Jzf zCloHwErjHh%nE4R)DCB%Hfp7IYFFk?|C1+NhibKUYq_>-Y0zr9R3-*ML9F3Dy!LF- zHt#MoZK2g_uhu3cWKP(2Zt2$M!jDMn7DUA@Z+li}`Sx$sR{Zc5a0ypW|Dtdam+V+^ za1*z2?ULz)({UwtqF518C--vy(P|@?#EzhIJ@<1#H*`gJbV;{#P4{#?_a9Jqby>G{ zT{m=fA^vt{cXnyFc5U}|aW{8$cXxTWcYXJFffskz&J7Fob&dCUkvDmjcX^q&d7bxp zp*MP^*LX2k&*)uxtgsxln>?Cz~?DM;FP^t2t+`e!v&VP zz80@i`>^$k`#z zIq919!<;#drMaP_*(72iq9uBwDY~L9I-T8sB`+L zeL9MjTBezrsGmBfqdKXl8lb~xowFdNx%!();OrI}jU9TdH5sBW`mE6!qmPQC*}AQh z*rQi%QBFAn2qFWznyaB$W--93pBjoifFL}8uc!Ko|N0*S+o=beumM}JuR070`>+!m zru}-c5qq#F+prnCuN|AR6FaZZ1&Z(buE83QpP8&pdyLIGtyP<%Gur;GUHi3H*nt5l z+Wuj#>pHYi+Ou~ndomlSFB`HWTd^^_vK#xcd%LKA`?!NTxrtk|jk~#>o3kxD3`lCP z!vMFrdbH6Plau(gy}O7*VztFvqFWob&HKC;Shl@ww?kS8M!KZ2`GzwKG8qN?f}6q{CS^F`%Fu?4Wy7od>#?TYQ*b9LD2Wmt*{$Yuv_X93%=lA>L84{mw`E# zy_}~58X~&fB+7i2zkJO7In7Oi%3b*&uw0fM@W=I7$nE@pF}%pn`pA{M&;5LPv$@F& zXm6oyw;nl>fmsR)eeVuEk`sLi={%F~eA4|mBxK>zF+I~YebYJp()s+)K|R!0S80B5 zj@h}96WZELosJvX$4Q%^DLvN1*CaZ<)@>crKV8&yeb+yi)S0;=toWz1IA1R>*s)m7 zAu!UrTh^I9hAsWpp?%YHo!6;7)P4OXs4a&jO4*UP*}a{2X+7G--P7x7QL6pidHvdL z!fmy^ez^UJzdhcC_u0oi+RNSC(LLWmz1{iUC*B>1edRsiX*b;K9ols%+Vnl)`@G*7 zUMK$DhXp?3b-^THq2ew6;xRtsHNN5vq7V_{5T%h(2utBf-oqRI05p5izD z$vD ztWNu+O7Wp!>zsAyoO95ZZ_kKb&V*6ag-hatVCsQz>wRCweNICc)Bl`>v^BoT0SQO1^8@g>Hu4XE$WGJd&Afs0dlvEOqOdE$mCVDt2 zY%VNhCn;tn8f78~RT%?02?8Ah0R#X8000XC1_ucr3=uLG9VQ|m4kIBOCm|##A|)v> zCn_~8Fg7kZGAThMB0?A#MF|K=6dF$ffmBSVNSNPs&~b3;~hNnCYKV0cz%d~9oaetdk8dw`L7g@<~I zb$pL+dyr>xlTK@zHD#tGWvU@%upw)@A9T(ZbkzrV;RAy60f7Anh4?6nj`G}JEiIez?mH3R8^@gC|fuYZUn!Ua%E-&h%FD~k%*)Kp%+Jrx*U!+}($d`4*WcaWgnq1>+J3C z@9^>Q^6>HW@A3EU@%ZfV`Rnlc>hJmK@A&BM_~-5S=I!_8?DpmC_T=mK-OaB z`{nWeAL>$vi|z3{{E@{{;>Z3 z!~Xu#{{Gee{@ecj`{{Aw}G6?sqsNbsQvLIH z%2J{SC{tdVClC}PM3GPx^p~-w&6_xL>fFh*r_Y~2g9;r=v}jEURelK!5aiiE6Fuw* zROjN%QXg;xCTK$JYSw=Vq6$Q+l&aK!?N(%kYW1H4Ax@b(P1`o()~^4kwhe$)pb4&M zS0n`sxTcA=dc6jQd-HEsb!7eph@+M9UCDj_L3oy6a9$Tu(`JQy^(zu7AOZ;`kTi10r4?P2Q79aJ^wA)nVD!&8 zkNlI;1OACXVhTO}nBoW`kC@^pqrCR&>#x8Db((%olE@;Lm#I0BeJq~06kx>)w4@1N zbvaP7$CA~bWYOhxSV7rd*CTZJ-K3$8*LrqtgldiD**|B{6zzf_6ig)(kBlT-GS1A zydu6b2YoPJ}>+_bo750za1A&Qk z{&ZX~*sp(he;qX(>%PhKcU59-Q$Hy9$!DK?-Y`e7lvi%~<(OyglcWC3^T{HM$Wu@$ zkAMo%AP&ncluV!A|!C{j}@j+pvUP2)Hs5K4(uG73HhMS_SUp>VGG@yI8iIUF=8 zyKjkl2eu_xw0S1Dv(EEa-N+;3-DTgBan%{iTI%%e^8&>THc5u!0r(Pd^eeiS^Uw!9+(V2$@&u3?h+R6 z-OpN2;a>HOwYDyG(1X>=h#mZqfPYL6T1Pq|_fm*HlyR$E1rt(Xo+CJh@x_Dw&C$*V z3j@9$%8g*6i68rZL9n8s=v_)2NW8{3H=8`ITkAU;(Ckn_?+wRafdQiUfY<{X*5rpH zlS+T4Wkz<1QE^c5AYA%4Bl@X~D^X+@-3HSy0!B|DP3a;7S5U^ANa$K*gaaK1x5O$Y z>yYNklb!}LNyzC*3d+l*CO65+&AY=1~w*m;_XZzyv`~0SQDLVjzad)Fy1g z2}E>cAcYvjBTz9Zf#mK1|44)*EK!P?h=LKs1KvzJ$;@UtGbg(eS`ob$MJnnsE%;F& z&Q>rzo=lS%)|8%4zPUc?vCJ=wIaeO7xi02hsEr`13;*nvw4InGk2?Or)&c92z#iQN zpAhT`J|9*X4K@s%?duX>+M-45-Oz*y%?XPhNl2@N6K&8_oJ|bMB{>^!Hqp&baV-QS+s9Y*=hpK=o)oGcM951p6mW zk&06-{tblW!Y9xQX%pXMrKd;r4-`}SH>=tt9Wtn-<8WX}Og{6hXickHGr~D~c)}5+ zEC?takqAU6;v1YZg(Vc>%1x8-36RRAIjdTozuceJMT=h*59+S0|sJsoIv!12F{xJ#3=R^=lp>W zP|(Uz@(@QSzM)u0%_9_=c!VP)LF48TWFC*`$RZxW2~imDAM_~2IK}~w6^jBDFV1X= zr%dIcNLhkaDG1b#))Xycr65BBGglg;%Tyg%QI>A$C_~xYB%o(Ts`nft0yy%XKZ@Y0&x)w#p0n~6hu4&@wCzS zk`xw>xzAF`bg&E3>t9dUKPr+;95&r-e*imVdfsxJb>is>%DD-knTcZxvY9A-n#;D{ zbGH3Vki}*sDioBHgTSmJKo|Pfs+TH3dsw7~;YY->Ne zY=+(vz}q!%e=z4J3olWk&BP`Ox=AgI1+>Qg&%9{13aCYu-nLHA?QS-U8Z2#2SOQ{x zorVLudsItTZ^5R3qY z)GIyp=25-rU~hV6^*0jV^Z+hihsv1IIOeG7I^UjFS{&QHYX{<4?VL6{+AAH$RBul2 zw*E7v`TjnE_+Vs%m~F}ruj>v9VGua69~^Q^$oA>a*j-U|_n2bH$}6Sq&#AiwAHKkm zoW|mwIm6sJ4b2k*rqA~?!RB0#mo8%-*LQos`}=D`hXaje2=s#9#{STF!N^w|st z&(>Ze+JQ9bJ*D?Nvc3NV^x;lOI{JN5Xd23&i&$ z>0o*_f4`P%y6A#uPxpjKD2JNHhiI6Ikhq6` zXoyI-iJ-WNHc>5M*lwgaimIrFsYr>UXn(H=h?*#doEV8kh>5VsRxg8#YnX(NZZm5a82#LHHj1jbjWEhH=D2aerjPF1KGe840a04PB0x@8XLof%xGlk$7j-7O5 zM|gxa;SGqO5OIZvU3ZJ;Cywx_JnUG8fi{SjxQkloZN=z>y2y&k=!t{Jh5Zq)3YsIg^~3nIY+vm#LJN`I)}>la+aljyRLAh?zZ+ zl=HZh!w8dxshFYZlX7^Pg=msKiIJGuiKl3b6e)?7$(ww5nyV;_3fY@736{60n!0(L zG%1??umCjvAOkX>1JQ7oc^RJKNfd=y5T@W*kyQ_C*>awcj+{`JR96a^pa_c4gx5Kq z_z5g~S&&0{m@g9~iAj`B7mY~CnwiL-cj=c;*@w^wk&wBZ#+OE;`IrLgnGPC|&sm|U znUTi1p#iFzp$U~bDU%+Gm?UbQ6B?o}`HmuroFrJGxoM0tYKJ*#nkhPwCpw%R3ZkxP zqr^Fyt=XfXxrzg7ppJ>7?+BtJ*_0dVl)*WYesE&z~jVYolYKa}%oXuF8C2FX1YMbupqX{XMmFlD~ z*`K&+m_~Y|du&atGbht`lAi1hc=q1l=`Q4imRtej*Cf*p!%!W*^_X3 ztjKB;^)L^ma0y+S2#)}!JCP8B;0aMS5cO~hkI+~3c?znMtl)|$a$2CjS(~_eluHVm zv}vaYny$>bqN7TLNBM?+3amq#lxu03DGI5;`lIzKox|9o^a_eqDX;MQn)n*98=0U~ zN2|L@lP$TF5zCiGxtzW_s-GH(7R#ZHny;~_n9xbCjcBOxnyI;Huz)JDDeI~D8vd8_ z>Z&7quzd)fDr>13`>`hrlt~({JS(34a0<-|35lQxmjDkpv8=UJ2#ZiW?p6<`pa_Q` zOrB5*^PrwRd$mJYk2{OCg5sN%lcVDZwp^<@UOTpCJDyQ_wrY!)r(g<8CanWO52mmQ zj_?v4fh(RM6LD(_o!|+eUuJ z*Q>t(9KZrRzyw^t1{|L2>c0GYzzp2L4*b9n9KjMiy(SvJ+dIJ+oWUBr!5rMd6C9Bq z9Ks?z!X#Y6CVawz;t76*!YtgvF8snU9K-n;4)ob7GJL~0oWnZ2!#pgH|J%br9K=FA z#6--(;akK=oWx4J#7um^N8H3v9K}*R#Z+v&Ph7=VoW)wa#axWQKitJ&9L8ci#$^1u z(p$!8oW^Rr#%$ciZv4h@9LI7z$8=oBc6`TpoX2{+$9&w!e*DM&fE>tzJjjGx$cB8# zh@8lZyvU5)$d3HTkQ~X9Jjs+?$(DS{n4HO)yvdy0$)5blpd8Agytb53%BFnEsGQ2G zyvnTH%C7v%upG;>Jj=9P%eH*WxSY$nyvw}Y%f9@}z#PoNJj}#g%*K4o$ehf|yv)qp z%+CDG&>YRuJk8Wx&DMO)*bL31yv^L)&EEXY;2h54JkI1?&gOj1=$y{#yw2?0&hGrq z@GQzYJJ0l7&-Q%J_?*xBywCjH&;I<+03FZ*JoJ<=py(k6YR^eI=$08-P1n((?A{6LOs+(UDQTBp7SsY;jq+9-PBI~)KDGOQa#mFUDZ~7 z)mWX?TD{d=-PK(&J%Ag#&N#JV=jbso>p_-#d(es{(H{FeQpzfuEl|#5rdA!g&xLt4upw*R);>t zjo#>vzS?p8=#!2)0^kB@@Pij~!#xn)Q@7~P6x^OZ>ZBfZk6!Aip6cXn6r!%`uKwJo z{_3*c+>mZQi6j|6kmDawi1p(^L6x?iV-K5>?R7~uwZtPQx>_s8$!@lZ^Vgir% ztcjov8wDHh5CLTX!<|09Cid%_h1+fn?X&IeTukmmA@1XT>Tithh_Y%e1siuJ;PhVa zQw;B{Chz-Z@BH5HNR015Qz48Ip=l%#=3oMcX9R+<3jvP+Kfo9V&;kjcUJmRID!@Hc z;0uak@jajgM$ioFzy-tL?!cGi=gpE!c=t;^J$=Q z$yOCVC=d}46@#C_YESoVzYg}3bZ#*+V(;{g|M(;0`2WE1BO?eR|MU@>bc|p5m#+ec z-~wWAe35_ms87>-zY}N#M5D1?17Qv<&;v{$2)uy!D&YApVDu_5IqT2@%^(0xF!BU2 z3>NSEz)$yYKNh~f`6B+W`~q?OP7nMR-}b^!{9~W`+W*q4uM>Px2GriA*53VHAMrh4 z1ULl2m=E@fukrst0&^e$LC_2X!S?PC|Im*y%|8rtU-$Me5CB19jyo06{{0gWq}f4+ z4IMs&7*XOxiWMzh#F$azMvfglegqj(s*AL;tQhbXaG`U?8;X3L)WSq612;ZHEG_xeg6g?T=;O} z#f=|FZnz1t%M|;S=t1bgG=Bkn2pN+oQI{)E4<=<;;tHZfUVNm%mt4KX(5AaG1YnS0 zH1`^1N34IlZd~~V*Z&7FKmi9Nus{P3L@>dcmTPVzf6QT_2O+5PX8;y_&}s=l()(_+ ze;)WjD;w?#Kyb=PIL z-2kbzme+1a4O3NjHxd-jKe1i(+g0_Am(zO(Cb(dO4@Nj)g%@VHVTT`vIAV!S>cS9j zi1WsfE+*!UE`Zny z2rQ=IaH4(;U?IdFfVhHfkIL}^?FRBtNJo-$l<+OfD0-o)Nh@8B|?qP{R zdO^JM!-5tL^We-0;c3r5h=(HqI``b@4YJ0M^wK|&+H#KEfo|-L-Z5b-vL7;Mg`BHE zW}@72wxV~9-hlw}v5b(W;J*Xc3NnwvHk=sOS5kau#vNKmcbtWgqwVRx*GqHY#P=h^~4N*fULCL-ZI^n1Hwit1VCrCj0yVh70ltSLwA;$z>}QhN&5eT!yk0}B6Tk(IB@W&jVGL

    *34J3VoLnJz+A2>8x6e%)-9BT3%O9X)?6L7?b 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

    r&Kog=WyOJl@6D9PkMk#eG(iW{ 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 z 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°{ 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%0DlXB2x_aYmEF-UazG&qFrVI(Itxwu4-*)= zrQ)!VjK>-%EVem;5(KMhW35=YoPuUs42Pm33m(#HI3!>Z8jI&|9Df(lkO;O{x@FIS@0OJiU1z-Gyo8Ke6r`#-6K>Jot}~z4Z;shUeRD+8Qw3#@EjRi5OR>hk|UmIbl1PtaJ85X9+D*o zl^EpHM!K5m+K^^#>woK>bM(C|qUPMj|8i~R9@(vNNei5C66iL4okejr^Cn8`cYro`!S*FeejJ!vz8Hq zvNOfZh;CQ`fCI{JC<2nFP$=NAt%C4*H>Z}KBiJR81F$=de987E;>{+xWo!d&R=!vy z8Zi}^oPYJ~)3kX2Zqh?gzrFp~)Le4@6wYhE!d&PEw)pzocK1w@jv~~95q*Oi2kHzw z+2l(9!{kRy(z_1qnpFkoq^-NvTu@o9tH_PkB3sRjEKm5TDD{N(z2775ydL5oCVo5! z*&udu=S?CAaQnl>hP1eSv!VHJkBiuHyE^pPV%UD(bJjlqHSt>%hW4ZPXV$1OWw9`h z;No!B+WNd(_S1&Kbik_thyt(u)0i{RN-)wGFz3}0UmYTr9RlOr4Qt))ISk2P#@~?> zyY7|0&5M!Gi~cP?apNpu(-;*sA04SYu~a#zTBQfeq^B-WAiSAxVol(tPk>0GVbskM(Z{M%UP23)Fr=YgjprKKige zwz6)18VTr@KGG6VO{qcS@xHhfQJ{lFXnYY9AuOpqq-Sg}0V;%2Z1At~LE)gzIj%2d zrRfXponkErF6F?1tfdUB(cI3L+pnmX=5p$1mUR}Pdt;U|36ue?_c9Q02EI|bzDatw z^;6M_d!-K$?lHTR!Fz~F0>}#1YJ&rHnuFf^yT*7iel>;Fi#N1zyWv7{+6QvR`X{K4 zBm@N^-FxAD0WbiHsoT3sLY~bg6guPO2A@e z_Zn(C3I(yz;>b`n^6z0>T_nGLNS}9wy|YN*4#-4y1&)r^*NUmEOEZYF7N1MjoR9ia zj|Jiv*N=|6KuM96gm5#B0IEZw{em1Ksn^$}h;l}H?laTa#{1?+`rlJC&j z*O9E+ZGt5f&Q1*D|4uDH`Cg)OIq#;1%+5epRxD+Mvf zgrq{q`Zufn0n6GZrdw;SVOw21 z9!=>Flest=4$%TV1qM3QysI4L59lRM5I@bTlKMOI9FEpp&as-a=}*YiSxexuJ`&?k z=AZs@Kf&V59TE!zqg2x{7(&H0uuSI{P&Jlzm#j^H+Q}8VW6eXpsd-{$7!L+`F<>2!!Mh$cWbk&V(^plG>EG3|7;vq5$2hLeOokkq2rra?gd|sVVFTH?GL0i#(cCK7oRvevfM7yyAOe%4F`9By_iI`*Ta-$V1AZGNbS>4HD@r|;VwQOCT+xO`yo9xLAfHd014Ee?a zMTX{rE@sBsX2%8sQaz$GMPCP*sMMOlw~bA;)Gy9<9a`^5SGUjK4+kvwY+&y~}%PJHWLZR-JP3&+oo2wrb6X!9shZ$4w|#2X&YJ;0VGXIYP`EREt8esW^QK1^RMd>F=Z{|ZA;6+SK~(DFN!>dbg@5UT|AJc@0bu?>tw0HeLO`zs z5`$2HnMMIW`~iCK?3AJW*MaH#x(weHF_K0YU3Z(gr{t=4=`4+9k0WWX1DR}NX*1zO z^o$dP_I=?@W}V@`H}0{;nPlF_kbw4lV|O9&_E;ohNgho;{q{luMoGA)+=Y8{875E_ z#&hKRvPpZ20uy)i`}7_rlK>M@vsj5}I9b&FM2mgx%!40#2b?AQ#V;s=!zKZWW~@pk z;CQA1*TyPe6z$-ikr^C0ateopaTpl1rn=mowJ~WlwqEp}tvtLFHfk%knKjH`SL{g; zz{K&tRlne-w3%K!4^^~|eB2N4vC-4B;ch=PQs4FKIU?1wSnV{g z1BF<+?vH-AWs5daKn9CdxA45Q$)r5eafM5(giEJ{JNs^{TN!#(c|tsBdtPWQdT4$F zx`_CG!4GG8X}c>3b3WZ^zSwC_2Xi^1{;OQ?D%9dCe0%3?(^8J(*IuFZj=FjK}PI1v1DJFCr+1Ao_mnGOb z9Q9_}^*kcX*N|EicfVROMLJ?=s4wb1O4-uhT~{?(BW_4$u9OTh5kND z)0Hg8UB1N8aH-zIIwZCVP^tlH#|v*?-t zaVzEH;)eDsJmvYt%my9htOI+Ol4Q@8(%$UIjugf!2IOSaWNVZanpkuVJ#>k@^dhcr z0>ODo^XP0bWXE=C1&}cIUAlDAe~4&;vu!d@YqEdR^GtGcU;O@bj{TSq>r6k00F@Ht zd;jWd;)dYhX2K?XT6v@>VIp01Uzq&M2iDa`(kX#@U+#E^BRYV8`qk8KKP)R0AJ$qa z>&&#$fmQIqO2CqcvtcGQPOp|18p$De^f_umjSUP4MMG3JM|gO=sQKI_R&=qL_XRks+)AFGny z*pi>4pFaFqubwgIB^)0Ub|z1ZM70$@kKx*L?}mX@0W2_Zf@vVM_Yg}3;Xp4AQhIkL zLlH$E<#$9>z#kGt_$LEk^N2z(wNEK3rp63VEEEM%IzLp&SUP}#j5d<1X1_at(&aE+ zN|Agd2EOb$OvJuGGM3A9Q}*B8(Qt}T42LYfQ%PU2z^B{?sHqMh8cK-hIuPzmHS4Qg zRm)((EVP#L6&M>hL^Tx@07qH#($vH#=I#!UO(%i_4E$k<%=&-eiAv=cc(T@#!YTUu z>wwEjpv5uE&gO=o{!M$oA6k0)?I1TFYzaO1p z2^->g8ADn@b%_=;VRj3Yd3Nca46;X*v^u#(&qz27efW+GvD9GXTE4z5(0 z9;Yo-S>D(|g<1act^`(0!sKx|&`2R#N*coC%E9#P4^z3tc+hIOih~qrR%%MC$7QF4Zp_Gz_s z3l3~$k65hAMUQXy=Q}5n%dkOtnVIaBrL7S7bFA(SqLOLeAAdB+{glo_$pX>lkq4uv zZ)As}mq(ZfQ8A!Uh_1P2lSgsaUg*Y|$9}K$vabEE%beJ4XPx4IduN>%M&xI!6uXge zmgXVLKyQ(O)p8QS(7qc^$58l&HcW}5dNdN)0~w0)$&?+oY@PY-F-A;D^Ws2y_(O~#f8|i33OHc=OFH*(2=m1Ld zyM~^NWfa#jLLUpyN#2~?^hr+Hcg>x$HW1Hw&6ohM?xSCOyvr0;dxiZ&cXD%@e1ADkEf(U`gqZ?-y^qn#8PgA+fY z;M&)KjQDN%v1dRQiOHB(dpX*@p*0&RkZLZKzPC~AUqN;F=}3-ACYUI$QB8#2I}o>z zdXO1t6Oi*y3xE5Tj{{68%2Z_&t|+($Y_Y)D6=G%eG?Y0)>B@wtjs&3!x0rY}Ho}CD z9EedeEY1R|jq}BiLfBZw7N(4i4b0Eq+;pN6<*EIf`A$wPN;A6jk6G|2%UDxXhMH2Yat&z>CaGf^-=W1W>p1-xjPwy#aZ*~m3`{JCF7DRvY}A%ojzj;ASN& z=NJt7OZ5ew{4Jd?xMV13(xH$E@lXn$bS`CGD3qHC8`0l%E}G9TI z<}_97wnE_RbDUD5gXyMIHOt}(5uC%RgN zgEzei8Qsc=m4X0d!;!H5sGMs&dmU~;zCJ9Snulj&J*G>MY>w4ruVYdv7SSqmg!Ib) zfG6H(Ix|k1UI;8n#0M6P;&0P4!76p(7bo2MyyLq**lC^Yw(9;c>pQdOjf)-MUF+7y zaZ&&Rwc6HH#u0cJ?Luvb{EVJ+Z{l!#Ic-tiMD9d1dSfZu@TiK6K6hnXAB89oAjWB+ zA0+)YIL3d#lk#n7*5>~MPvBLWd*OY0ykE+8zH*)V{OYXFch`QzTrT!eet{<{B@BjFw>uf&T?hSX)NqeOMCm{u?}L8CCCO zNvbP1y@%c=h!uiLLFs`d|7I{|Ccv6H_ifNYC;-*T9g=Vx5W)+9K*3UE&Acl=;?JtW z4@nVC-^&i>?AAmM1_U7+g@Q?0T;N3-K%wDY6p5$BPEGBDAz5^Tk5l`rCHxC0LWDTw zi)x+w#AO##^e)2*6(u~_NGxGs_|?e_hVBUR3q+kqg(8PDgt8w7C&XulL(mZ?j`48@ z^hyXw|C&S-yN<|z>p#~N#DL&jhG=ZE5B$a{fw7n>QjV7wLenp{05AN|JRoNqAS;Xl zCG}JyY-HtJwYDC>0>%}ZV`t>o2Nvs)h`Mu;Vz1J+ZQlk{~9^Ku$1qcx< z&sk2C*kX;hxjx4RAg)ZhVk2zh$~8j(p^759N&en8!nJQ)>A4BZciw7Yb>qHmHZhBB z;_@e?1HeN(jO9CTaz4u!9Z*HUqEU~z`bj4tg#w6ziSRw9NrlwATD@2t z$-C(vYa%*O1+P(N7>xsCeAi*fu0S5+ng<9HaY9tZ{{qT~4`CJGgb~V(Fq?(r-F`N& z9ohS~6mMj>sj%u@N6v~hA4R9O4iT{bX^P~s^>K1w3x@K^ZqHXF6C3gE1mst>P0v+& zl873k+JT9H1)&DzBkqupg$6$)JJA#(646h}@KR5$OqaG$1MrKS)XoImt%H)f?ju%ATu zT`yfIV1!!#^#k&Op8&$X_rJIP{-n%YTZ^HFb%{AO1zYtLLF{0`c|C@8`~;9D5O*^< zgDrtKanq~wsUyvDpCehAEhNBAg?H}MMO0u74GG$T5|N1ZD}OHOEGgNtVf{xWJD?Yw zR^(zJh*!t}YV)hz7zFLJKJ2XxUuhskEnIYy4L57F=TD3@8YJN-k_*s-MacX1xJ!Q; z#8A4O@xDF59}FrhPwPGbXYd?AkS1d()T1-Ys}RZ|WXj<5A>(q*xgsJU6Z%Gh4Mnl2 z^-fB1z_kXiKKj7>yCoQ;~GDc#&hnqUYuyGXw<>MV{^shSOKWY9#k`Hl8ZLvi+a zLH762w4w(fVn7g!NIxQao@`~l{A5H~Ip73(&*T}v3S(&Er^R0Qg*q9?Q08&?Btr$v z{SFF|iYKW5%2&Cmzn1W>%Xa&oO zu9AuEgY+N8Cq6y)d2>nhY_nc7Ooh=+KL43&FCXX&;1khnz1(EI;ZYt~=;-zyOhWnb zlSA;E6q?zZnJtPEufx*?$jj*}TkMW#`kUEhQ0kRXW|eQywdzV+88BD@zW16Sjgm9c zijP`C*bPFBQ0OU)8o&(#WaN#d-HE5=Bo3L$j-(`74}f#HR0=#h79gZw2y&_{60Vo< z7P?gGHdGZ*-E7U9=kWfhetxLk;3yV5V0?Z=xFV>}dYYrATD=s!kEA>SSr6W%-m|88 zJq0x{qymFt72dlBR=YZdP$mc_c&o;S2$YLK`T?h=#sNmJ4Afe$=EBPdQ|*DkAAxKj zu0Zfe>acifwry~W*=P#?BGc+)Pj~Z(!a`Scl}hJzsZ&DZcQcWGd}iG*2i?>&-M;6-JhhN8%IIQjgMLpK(?>U#ZB7EMo6^Nknq|0be^aP35m4HeL=sBM&)7^D^sAW;{aY*we1@l#axFL5r}#nS51Ibj`#!T{h>6{Z&c6oZg!p% zcb=dFc$)V<4=DOLNOEt_%XUqvnNEX=wMlcgj*0hQZ}JW)*G8?@f!M`9z1AY*wr3Jq z#z{GsBC99r`BU?KgitoW2m2v}dI?hw&#l!oa*`x25-pUjeqqh)dt)2jU@Lkv>bF!x zsC^BU+w2y`9NlEE&c<39RYiJYi#k-v^;G;~NP25zd@^EuU##Ngw{d!51naw!ocIcS zPkJ$1=!CITl41*DXG|7Lj*cA$i$sRWioyR7F@ass%6DYE~gHB{~{n zqd(apan_)pRfALEJXe|_TEWuB`s{7Dhni$43|dnC~GR?;)ZWk+j-B zcdnkYw>nmZ1d8?YZ$k=P2l9RkFP7jw7>6FeQ8}pZkzw?wSTvAcnVHJhr|L( zE?|FRVmwu&ApTn@G}BB>nvciAz*v0#e#5S*8fJNm$;$GqN57VQsRX<2 znheMBDVR!(+>f5Gmo!w9T0`iuxn_bd@S21Ecs&pVTxR|f#R{1t;eE+fk?kLEXMb+Y zTaePm0NSoOLF~iXvbrhR~^i<3wAgDelYML$1eoIvIjw6EXR6BJI7Ir*~a43 zaZBTXvE9hTU6v#%%7SfI%S}?l^_22a=(J>eCGf^7byr4Zd?$T!N0nBK}WtQ_nNRil72R7ha{PMitp13IsR_#&+}Z_lfb^1FBRv3#MzW0tieSI2_o2 zcCg7%v9Mj)gOfP^Xu3l~Vd2ZFr%-UxQUTQ(Ot8H4*7N2)pbp((rLkjq-DM=PDm1ZC z^Ez-zItt;qG9ZpBT_tubveumbOlP+PE(e-y1@g8-^67AxjrE!L`m_G5m(V4i>Vc+) zn~4o?REHI^41~1|41Ko6T-dea|HUfg=EzBP`7zi?TgM(l+8~E=Py5D5dRDc8%<|)3 zm3@;l=3hp=HP#;_95i$+_H_0($+rk3)gbhH3F8{Q9!s*bpAh|h-$R<*Bc4QLB$U?V zTv`LvL$bf0`iuX_6Q}m~g7ssc%x<%JTGOhMH?Mb+nOA*a6aIMmVa(!o_84J0Z&Av` z&$>htLe7hF`Dy0H-Q}W(Sjl$9>JQ><)==Wy*yZ%gWA$Zi+BzJKI=Qf?XxP+yo|mVH z%xF4&H+!`@I~s78iwBFEYj(zJ_P=_r-2Vk=aR;c)N_5$qD>)eA-HX(y3+~~@l12Yr zY>r%WKUsK=N+yQW;Z8DdNwVWkcJoNW2ucoVNr~b9m)!C%i#xTbB{k$lu)HO$>wmzL zDej~u?*D)%MJ*Y=E!yDD2xrfV@GrqCjNwy_!bDB+oG;cHL*xZ0#Y%dKGA;R2&j~}% znQq)E<~&7itwm!VS-!2sU*3t6M{zPwX%SCR77tu|qB3MzHY;|{SiOAQ-Qr?Gt{rop zf_g*``YWG@@O%^KcbB#oh8Gexafw}PDI;&)9CsNfZ@r|~Kf$*8pKT4kFG+Xq0*MXZ zNngNlS_IBq6g`&9+6G?k4|B>JWsBRis=aDe-WrCy>igQ-m)c6_+B%NjitAb%1ywY= z>O(!=!X#_v9-Dj)>Z+1sju;B2!t_MkUHZD{I`>*?&)Np^UiMC)C&{1m22ZfUV1`wv<(gYE;Mf+UwZ#H*FJI7o)Y+bm{CO%u^H*DX(yVC zpR6^;DP;^1b^MHPu8Mn-lYd_SWlqw2?(X*#mC7uq;bPv@tV+j{*UP+b$3#fS@>u(V zeg`$QpRXnecde;ot&9IZ;0Y&gu+7Jdv-ips|H_s3&{N0OulJQae(IWJ_^NouJ^o zWY@jI=N%*KwSHGNoZ#(G(BqcR(^LzL1sGIN7tDFf6)P4}ivMes;9FDITbJPbP}kcW z*yB=Hmc{3jzSqr>Z_$B4NFaYD9)`2=+wMmBn0C851+I4*;bEsfNvemWKVm0!U^0uJ7G+Qd4A&|% zW3;=34dZT-Z0G>!cGc2`Ph~$$%9K??X~$vzObUR!l53wvZQ(O*2he)TB_0U*OI5=faAW2E z8+%R3@6gwbYXjlRT`W|x;k3+&By(~kE(OPkHWerm+(bCAQO|ok%sH5$?hkhb%5A4G zcoa$zb3AJ9x!kS6VK&YuO)=}a)+F{vA)(0bJ)gR_5K#4k;9qbiYe?0dG-NKmSbD`j z$m4)kCfs~@S4CW=Vo-W)?sI>Ln4gqtIbxU4j~p_ekRXPCsnVsvgNgQ+f_VgaN$q)r zVE99F7py7+t2LAaR#0vmrN;lP%xfh5#(V`;HHWwcarbn{xqoPyEFv#+Qie~5X+^4G zGuD&S;^*lL_vTXwqx%2$VCFEOpFh~dO=qd?hrl^epd+OyQGLB68H2}j1X~ukR~whJ zX(MRvOlXWBuvaZ`oEr&lZj-mSiiz^r2a;GOSnyoH52TSp(!opTLfeMxne<|@-%H8Z z#wOJC=;6MxjIEd7N{=fSf&cnPSVszL)0)2wf?Dok`)BRr*q3#>8(heQ#ghE@hYFB} zb;6D3OIsZ&1aTDLaQ%*(O%O*f!e;Lda$FQAT&dH6Be24AZT!n*`|YH;)Cq6+JU^CC znHsVPBjFeJbq;ES3K-NASe8;8F6EC|@rL5Es7X_cBB&E7DpuwAQn(U(Yk9u7Jmo01 z__)!QVd9eTxNpVEuP5^5E{h|bjOXbDe;>r3{yqjYVo z=(1ZSi}Q6-#qW5qW%e8@;dr5ORbA+)f)SUkQ`d7TaSx$ z8}vn7AnX8nR4xvda9wK|{4pJHVGbVs1_oQ*(68LohcY#r3hTBs?JG~t)M6|m=9qC3Z&lKn(SpTa&_rJq8EHpt)S}%Jkj`a-WV{Fq4EjT;c^{+5!UHBLO#x8M*3+ z@^Gz7dDr?XwPOwQG`(-;8Xef1)f&9#=@Xet?Igq%R#~)K)rZ)9CmZ8BUdsBH8#vwQ zt7o3CrvqKcO@py{**IxnlNCQsdVDmQ0w=b&frufk({a{n{OOBmRZqQ^x-}M>)<&qw z$rYHC4!;`8H);DC`_;`Dlk5mqaLJMe`CX@?7V=b-(et1LUGCH+u8q$YB*a2=Yr|qe z=|GB4O-?zV$-gs^+H;efGv>ipx!e#-@Odqbrb)NS3hSFsjw!Qk{>i5)0CR^T_jQb zQ40pwf{+i*RiBhGYGT*munVncPoCxM&5B~vk8YJZFv4wW7?yxTKlykG`@xHBtP5GI zim&82UO6p{QypyJ+bXrB*>(1dE}lUdcRf|+p%u!8+9j>_=&g8J-H47&seId5!lh#n z-Pi&0klQT5R#;@z(jjr%;HC?_Bz(~Cv>~KLPb}#2c2d~n_$5=^9qMj4)lATtAI8Ae z6!h~X#T^8O5Mfh@V~uU}WUj(lKNKU}gKpmk7pAj=K%Wq|MXnw(QnO$9bu{Pr(FYi8 z5G3IsK!SM`=_@A-cS#cZRnfC^Ijbv!8P&aa8pF0Uzl&>}L5oLT_8JO~&s#y05q}J_ z;It7plh31(_?x{g)u7KM;8xDhdiHx^0Xky zu~)L}jQ9SvnaWnqwwaF@V7kW+|MQtH+ml8g^##$V>&5m+Kt6YC5_Hm)1(MN=uEx>2 zfxi+=1zs^gv5k7h8g8t9_gIC7>D{q7&c*E&zF?{PShf@4r~=6XL6s&TY9`3EQ68(4 z{NeEiYDB0Cn_G#CH&hhMcSJ!Z1PEyWBXKs^?g6+5J%r8p6q`Lc{j@aGHH=4fPHRP_ zh<$$m6Wj-5H9!cwVhG&ix?9LnJv$VJ!34tVn#@sgy6_sIW*V~V*DfkDbvRQMu>o$e z#k(Ff0>$*VU(+wOOiJz*ON-Y?JJo&yXFJE!uf*kGX0|`6sgPf)QEYM%Oh-_l9Z(0L zXPd9f&zX9N!Qd%EpxOLTNtw}gOORB4pflW{*H!IE*uzPJt}o>6e8U?!ZnA+%G3hL{%3 zMI+j{i5iUiy&2cuoJV|dLwv(b^58)7QbXdaXjmwO!qkiPo(({}1+wJ;*ulxrXHl@@ z-(-;p`PfPF^_Pk8Vsbd4HPvZ_ji;`xCIjXK_h@EK{x_5 zZ-Mth@bn_^%D1$2EEFdSkU#*vxhc&Ex>HbXehM=ff*(L5n_=UYVTa}Wf#dg++V2;) z-)~qLzhZM=Y8gLn8NpeZpq-fD=NRR(!M@AM6e?37u~0~Lqx|Rw690vwRAC{lqi1Gi z{Tq({mzhBd$jq)HDa1OPKTF3df`MJj@@dGTR>$&DgQ(BSVd}&o9?4;I$6@pL*xrfL zLxuNP5q;{`itmn0R7FPOjz#(}nY<%A<6mx?I&QT(t^y~XwK2L5Wm~|MU$;ZOG3HehAsgQYUfxr!%x?pc<^D0q$Nl9Z+at$I5ROt+Y!IUb z+;E(;DexL8h}J6b%g%kDK*a%7#*u&DMXlK#cK)%(riAq%R~;aKmcTQFsX*$YEX+Pu zdr?4*Jf3f(&QO8H{8w2Lt3;ZOQ&x^X49!XJ&zBMSJD8o!0c%aw8mkR;lx?!3aayH{ zdEm!iMW=GU|OJtP=1qyHQ`mHhkA)*e}x z?lMX)Pf&BkU!ulh6;BtJppOwGg$GFwon)ZYh}Z}~1PbXqL8uX^%Ni#s%p{JQJSel; z>QXJ5F}to5v*GaCDuTpC^kQ~dS{!A>T}@_knY&p`Gh7i{g%GtkeqlCpsU&Lr+*RRi z?9KhAXt`k2^{9&{Z^d=-*s>wDa7-DR z5DQ(+%-r0>mE0nLd#$8nrU_FAfCx_I)r;q-lQ^L=UZ{dn@-x@8Jmq!!Bg-G@QP z-s5+)#8Ur61I&h5UUGrQ_Nq%Z!NEn3LZ=Zn@?&(@65gfBi)UG%2dX>rtuzLbiTZqs zKo%!^ha?Bk;YujsqVqdim}}5T~W4u!>bt#ThuZN~lA95$4~EYG6!(d{hr98wkF9OV8- zo6DWSjlQc{wNE2*4EK+)8!Pb~Ks+((V%hYg!K6tex((Oop)l%d8P|a`l3>N5N-egB zi$(n_#Gxal(9brrtNt4mPFluUV~4HGY+v7 z|7h8aA-T3;XrEyA4-&m!lBHn7@mRw994yaLlsH8pSpX1RLNH%P%WJVx3OrKH&4NBj zP3mr<;<$jpfnOR-Y7cih-9TyyEAUVdOIBNbjEq~-!AchV*9ni*OPJSeEYBRgRV~Yw98#X#2-c(zp=>hETxOm;b``z} zhb;EjJYi4bqHNkdZc)+Kd?kFMF--zFo&w$1f+B|kyIynF#KODg5=^{87tb7x?LrU| z5157l=dBafbJey++*`SO(HGk4xmtu1NJ#9D4CAMa2|&O0gQ!Mj4bTcgc?fdqHIMSd z$iOdJurHZt^-J~S>GVg(_eWb#MG|&M1bOJ9=g*fJ^dU)k-^pv;eSv$3lnewdW zZmRk_ON6_F!jgkU>yK^*SAyPM13go{MLxcHhAPGM{Iy_mzVWlQ)wOu=!+Xh4zme^0 zK_o?j1A34s*H{YugvnH>>EASYUCJfD2;usA{#`s=@Emm62F*1T7cXYGua)aACJ}-y zh6fG{pWX|L{sE%N-=mp303W{xsW6pn(7ysN2kjWF0nz}EIH&Cn0Qnv+q42G1 zt9ubr`nS_<19jTbh}$ZQd6~FgQ#(8hE6P`r)*2Jt)e!*6b^yfMZ5Z2a?Guew?Uo_- zUa(z%wA*aW^c*x$wx6jm$~At?T{o8A4jM!c93>wrt>O4sI$E%hEP2kDu0J}iaH*+| zimlFIATQXee;;B>1tfSkyU4&n`sBsC41PTpHK`;-cQ60fC=h4|jr_ewP^b43yn~Ju z$9Jvv}$XU zpG4a`M7_eld+~bKD$>#F`Hk1#`v^cJ+5TvYLRtu!66)`3q@=q&L?|in=vKO0OZ;$z zn_Hq9t%V;n>)dn^{Hr!VNN4T+#<_8nN1NDJDzN+r`U4y5t8ZCq;DzkWqhxM1xKljCL2cfu%iY zw0h@LAYi;tDb2^iSZ7nR0BSeI_Ey_gjo#Vk`C*z-KCGkuFCTJ8?f^vWRoG9D4*@d# z?7=0UjT#;@+4p{h^bMMJ74n?p&mFL&9CTv;uP*923E}OTfZg|iJARUT3clL5H;mhN zl2reWyKRJ8-g7d(3760&jIg!9w@2o#<2`{rM*d?~k*5bjvdF9lf}V#6>zjyxTqI>` zkw((8_*a^FQg|K+qs?nrb;RF{H@wR)%mJXYm5gID60*e&ta;y$GC!5?B$E*!nRj0Q zs`it>wcWt9duE6ZIsMqfEi5n~F&Xd^1dS_MqLjx5{Yhl-6pEIK@QEwrICs5O=MTLB zeLG`M))%lyXgEJyLkc0~POjQstc;!!?eAwIHZr|C5&%RbmTkT+oX!!8z~>KVE14~j zO{=v)z_RiK!z+?tDD96S;l~rUq%DS56|OQE0Fk{ho-Z_5ueEw3a#pUlIG+(O*ylxT zcKm*O?8xb<-0lfNBoO#I$htcaNxPzst#Q z<`aE)c(ESW#+iA(0ayrD?;6bLZO9>}fKJTU-vaT!`Cj&|b;St!x+9^zzkY5(!}^~{ z8u-HyhZ+PRd>_s>+NL-_!iHo^0F%Ld7nLJ(ZcdnCZI`2-x1ZK*Mz?@g3&od3sz}-i zMpC~99X3OLh_NC58TicCssS``J*RF{wypa{44&tFwJ`K1tr5^Gt4|Q$TSwm&*wBz z9Lf_}+9D^IINTyP@+(vuB;ji?D@}nGh1qTCri)}Xqr$%=cj9X2QA0*?reIK&mH>^&)6K3ds(E;sw@G-twII^f?e^E68*4|-~ zU$W1NV#L2h;_N3=Pf_`ZKK%zQp$wmNz{rx{;gdv(08S(9PWw@#QSJd05I4^2a3qp! zCVsrp?&*UPJ$ORoO-)->hrgaCs#T<;*)N zZo1x2-wHQv77^XI15os;6oN>i-FL$oC*Aj=1uvW3V-@5*4q~*c#Sc^MCOwW)mkd0% z<3r>-!|Le&1k;{r2u) zocgWuoA})v8?PQ(Z;7~d;26Y!2KEjUlCGx%!H7rJb46gaFGcySCZsTjIR%<_O{pzG^xA7=e*A-qvF z={M_a#rtfKuweBN)`?Wa6U?9h)F6d7EuSg^hA87rKJ<6ZunqXR+{88)#Sm`m92A_! zF3?Mfq#|B68YEZ%39UoeD#niDGz3CrKaD&&JzQtwZO8pKBE#-m2yy*!NC20E+?jE% zfriB(Z^t#0`j;&>3pd1tO%ADr3iM;iW-7qF3580?Bl&cv_G9l4d$Ur3Dl#D6{pbq| zy5IecJwhzv8fO$}fsk|`OHQ&PQ$g)7|Cf9Vw@+it&)+d=JZQ;VtfkdVy3WO2szAS< zi62zh?CAHSeUq&VUOwlW9}GKn5%-i-ARdvpKOQN0h8V7d4njfPNKihOj7FPufH+3J z>O4yy{PfVf6BGDxw(unSbPzH<1bg+Ner?H+4MKI=rfRXcj1(ASs9_%AMKKOsc0&2O zJ;G+75xlTNNwAnwfsNI^^pMeyItz%bJpvhc#vcNhdd@|Uc*O?2=zb51e+u~+PLrSa z6g%O5q@gzuiyKOV@wbJP+n6A`iN&ks*>}wpymn)9dZjSi%SU$wAk zG3weBup*?dQUd)|f%O1)T2+sTb-xnVhKP+*TTQ>#V`;b6`HD)Hs)&vA*@#Aacp;<) z7UVAew%Q3_)Q3kh$3hztzy|R@O`zMAn3<{r5g2YM3o@f~x zX|Jd>F)+GknL9OWZ&Sn#=rInkHy0V-0bXMGU(M9`)ZKQU_0SIz2i-v%)nSP9+x-I1 z{q(lX%F0@lc&*I?M6tp|;QfE_EetxONGl!8znKi@bCpeIj6o+m?hl)QIEH13Q(!;V zOprtY5QNSC*f8Zd4C_KLyoJP;zJv!%IA+7;47VM-{}RYW3sYQk@>8}5M@!rlTpp7U@l4NL^t-s>nzn@ggY4XHfdW$~|=wnDY$ z#$U3j40=o|F8RTjaY)0_!CC$kO67O|7=q?MwrZS(ozSl!g07%GOKZoE*lT0gaIBbJ z_BLIjsNaU+9X|Un0C_-$zp>sL(ta2=u>ZIWD-2~Eo~Th%sC}Vvbi!P3Ie;v#z?Nlz z0&I5@H@OWn4o+-aQD^nEVE7XO8O-1YG?0OwFCE#YcGKPbUWx$z4e)^fd;Td^bah$9 za>0^*1+T463ke#oiHFD2q{y52!fCB9m8!=qup5hcxJXn+-%k%_NjAtOsKxi#4&oWF zO9EsOvW9p&<^qfMw5uHzZ2v>s+;)q%!Mzr9>q+Q{S-`pxHLtS(Znqk!G`_uaXAXRL zFInIK9+N9kB=&pjh*2aX*%PNUF}#*x%}A@=X;<5cy`DpPU`-7!Pq^QN(HU{OJ>!lq zud~O^WjD;rY3>l1FU;mb(K%EMpL3kwhrF5pAE#Hsrw~RPuJ@< zxej{61oP{KgnO$)XcpAZy7cmNGrm;+L1Di=O~ed&PGQ%>yVqWf{=wWk`Cu=Yzh`9T zgO_&U6@P8yA71$das0!a<!fJ;O5AYzAn6UcPL>2ARfBXZu%RtaCc_cJ?C>p=jTN^#eRb!d@?6^1+fgApl;ko zZRfxVBfK(=xq$h2{A`}1@R3M2!a&o3Fp9k z|L_ea2y_a_fG>!1*p`AaD1i%Lg5ySkoS=L^H-kc0BN}Lg%_j>RXf7Zqf)RLbJ~)CL z@`T10gdy_{#`g~wxP_e{1vf|mBB*%SwuGDjZc@mA;O2z>KS+h1-~=X!f@OGg!&inU zXoFLTC>FFx!E{<0aAW?l1>v_J{UJntR(^-*ZfXSzEd_S{vUaX^Ln1^{mDFk!H-Ps9 ziTcz|^TAKEmmcynQwwxIgw%<5mliUW9*P)KRuqW>C>IB)gfT~WJhyY4poOzIhk;jv zHs^ytmu?}`fgh-a4e<@@b^uf$0WW8Ky%=~jw}LJ~ctYoc%$ERFU?p}qfjyXnI+%bw zn2dsVj4mO4foFyah;!h;Z9+$Q=s1DKSB&NojyC}g7vgQw#)Z}BjXQ^hTF8YyIBq5Q zkFsEV>4tO6=zN6tj^>zcP$+{qw~jq`A_94hz8L<4h9Y^AMMogUO5u?Knio9~g@_?Z zXzg}PZSsg~5<3-xlHj#^zm{zIw~~6OYr>XDYFBJ&MN~E9Y&qnAVih}Rp=_|GlQBtv zbb*8>$bccU0E)+Ww77*#`E4O6fx+008DVo&ser?1Bi*Qi64;dzu!GN7m0Va56B_YhtGJB(gusd=aheE zml+|JUrCqNmM9{WVM``e8bAXFV*?u*8Q+&mTqcsA37V|qSondL#P@_W_?TshlxcVq zR5=a-33#uWj2_q!eEF1+Ie|5Jn_&Q>6hjLm}6+1*2ayyXphRb48y5-h$)>nQJxvGl-X91g(8{r zvVMA%0oi9T9gtv1(R2}DX-cu5hIkaHWJg)hd7){b2ihPZ)K8I7nu1518DV%2N)+q4 z3?Z|FJ2!4vS(WU`eCxR!$H|t^=$l@dnv7|OO-Z6^38KX4l_fZkG3b0h_i_@5cr)mb zX^W1zmDpK}>z0Mf@s~#zq2CFd6i}GdS)1m0gvgnm3aFdyS)z(!Rzww7oOv*z zrJqzL12#|t_SStv(P#2TZ!^GW{_BNQ4h5hH%BF3)Ne!x$xmcVv;+90Q0HDx;HNuxy znSgPb5qO!8UwM$dxpRX#gw5HMhU%V3+ML-)ZYr9i&Ub-D3Yo&kr+{}8joFwys*8b2 zi``ixkXoD4mZXR2py$bzfV!z-X_k8OU8CoUQUw7s&_9`J6gyS}e@JzL*bsMS1G=gg zH*j@Ap#d_GR9fn$$*Qbo1gC-LmGfAl-uA4KDhsW^kJ#yyLN|k2DTBs{jLLY8G4~BQ z$dEQCtu8T*xQUSEc&=NxjW{>13)z+wc_DSGgeNKsZMkkQSC`1Rl_7(W-ukEo35DYz zuHy!+jOT;EC<{aCfZi$oui}V}E$EI%Cv=9VnEnc=;Oee1*Q$l01WRXF5zr?Ga|4>0 z5qD;v{&52wa1$KR0a*4QHQ=&0F{?>c11P(!JIk}`)2!sknp0YWK`Rsqxf~{ld`Nf& zwyA=s*`pPBueO++#y7N}Kn~PchE{;6WoWfVI*PD}+wquyd-n56HIHSdJhFomz;oFgLW=*qU;Pf$ym(_Z3wUaGB6! zt3z>TCd*11&;bXdV>dyvNp-S4>$#sBP@6h15~@BQ+f0mWRK?mqGynlap#dxFC&F3~ z8X&WO;+YNMxH$f+v!Khnz57Rt88D(-x{6y$F&Sxw1p%;oN5Yi>4b?w>mH{@$};jy>Mi@hXSa>o1?M>LdvsCk`)2cYcR4q6cGTdf0CK(D@5U!rq;Bk+iSn~ zYd|k2r|%+#x|u)SyGbHM0_mYVvb19dT%g3NynfLEuIpJs6e!l)Kk8c$0t&$(iN6`F z!EqEr7Sq9P8nWUspPLi`4`2cg00T_m04x9jBGwe0wZMD9s|^7G5)3_DPyn%#B?J%W0G_pe8g-TK@n7No&*5}5Dv&73{ytzAW1TJhsJl zw7C!rSpF7#Fw{H5XN<<-F*x6p#GmVHoAdzUKnzq&$8;PH4-gf8HUlB`9~@3?yt5*^NhTl;b&SbWYz%l@MDP{?E=&|4FlAMC z12^E2suTe_Ji!}4tPgxJGwjH*EX#8t$>3DW$yztJoJMh+$-OKLo7}_jrd~kox?@_( zU!VnAU;}*oC&F4VLL>uOd=r@$J&XKDpEt|dd{K~m6QWbZs`J4`OgLpi$wKkXBJ0f; zHXe#Y&gi_x?VQB#49-zDdVKgt8gR+JoXNug4iLZr96$p%FasP=X>7qCCCde2pwJ54 z{>SaR7d4<>C3`RpT+A}yky!wyo9j(>VRLr5sw6wYHE&$S%Z7?xpbE!L8g(qipKVSUo% zY|?dI)^QEjYE2$*cGGbL0r|YsQ{2VzfY^RQ zp#JH}VG2m?HGW&|*`?&p<3V_59oKU@UP%`Ke(Kh%J=aHp+AS@~unpIAZP)7ltk<)5m?>PH@V>y1Rnx(0joJ(Y?^hoMp&by%8SOQN`UQ_T3-; zM`SJD#z)g+V%}^$6~ZUmbxqp>{?U{i)A@bgEw0{kE#L61+v*I{1O8@+Bo~lu)`lbG zGKRVZq5&pw;Ki-rh1~=a&9eCR#eTvC6Q0zioU>?3Wu=@2r7Qy*Al3c~)#2|2;$sd+ z_}#X;T;A12$tten@a@$%-p&H<<}=RXHE!Q)P3LsI;&M)Cc*Wyuagjkz?Hz>Yej>(Mq9@0i-i z$m#*$>T13KS77ejX6k}B>Oi*)YJRRdV}_${nBa(v?aj{MT>j(4KGP(<<94p!-27%_ z@#j|&?9FcREKcA^zSBNU?Yz+B2UFeCyzO>GMC1kT;Xdw+tXoB%J@B@G|b+D_+w~HhSqX@lm1l z?;YCzaPl2q5L*ud8sGrZZrs$);3k^^+jO&PssUbaL_20_Y)@ElFZXj#_jT{}T5tDx zulIYe_jupkDPI&X&qf2z^4Q~{nToU*!i&tu>Ro6qhKGiBcz`GhHpJ(I4!NTQvfmk8 z^->|@LoVoo{v{7!4Ej6_!O-!%AOkVn7v4@35Maou{xqy{(OFd{16IdOa}W6acGilq z@|~YOhaZtNdZS88jN6%-%doG4H~CTdpq4MVP?`DovHAE5{7ez(gdY0WuOATr*!zt7 z)GiCyZ7?O@%1KoK`S}(d5c^%wva_W7yYFuI72Yvc(k1=$5FgX_&pe__sdotwvT*z( zNbnmd2?WP=;_+{sCkhD!5|lWwBEbW)uKZiTuwciA%d8Z9NTHxZh$mI9WZBZ?%as9S z!lYT#=1rVAb?)TZ)8|j11WEWITGY?K06~$;WLl7EQm0L$&Qw}8XMthDv~Jxx3>Yu4 zVZkoR(#7mqv}q$~XsLliTDWn|YGGSd1C6-;H#S)1+t)8n5P<~`CS2I?U&M(OFJ|1> z@ngu5B|oOBlIqN+nW0{Wx|AU2&z+-&CS7^*X_yj6I>Z6;pTv|R4SGC4MZyA37G-%X znQ`O4Wx4_8{4GUKoZu}b+&)BNB8NW2fw<#7{j~D&wQ;WZoG|0e)FTMZ+j4!;9&&nCF^vSLD zYKVZzA_a8wFgD|qb51(zM9{R*GW6`hr##E^DXH-EbI%R!H1tqJ6IB!_J*HUHKNFsW za+qMITtW*g;VPh|3^uqyhA=`EH4HGe;6kqZtcu`<^=<&+QS9E7RWMj**? zaesQiNn*Gf#ur{_sW$YP7Mv?%jmn>2W! z02ssxCmeB_kimws;Nmxn8)}e2h8Z}w;Zyh6ihyZ*@qL<9e!Jj+1HUq06|Pj{{x9nQ zWw-ry+Hct$j$k&6;!BeAyFMmWY%j@X%kCfL>( zk!>(~%IjeB7Sn;sb)kCep$lJJcNQ+lz!$y%hCdwX4{(4(EWZ$kF&-(5Vf;)iub4p~ z=W?%_)$a!WQ(FwZK(LlMvc!M`N@XiuX&@B7QkJu%B~M01GRNfcAAQRk@_6|-#Xvw{ zXBp&rW>7GtXyA1=h(#|N`AA2G!#up8Bs3iv40Tz`lc+*wEg7>)T6t5P<5Wy6$$3t6 zrqeIT+vUqz_79b@EM+fCOa?qzOu1+QKYUr$7G&T|YdVq`lB{Mx{SgeHY12ws*rz)G z0#1iURH8L8=R_@fQMma|G2QY5J>jV>Zh=%WT1pE(<&pva@x(1LcxFI>Ax&`@^pU_w z-;@MbAM9b2FSOHXPbFGWzG##?7L1HgeR|Y!Uh5x5d6qCsYCU5@z%LPaflLpo!(dp| zky8FTPcLR*rH1-N1K}bUIunLew2~93Rxv8Fs-rQY0;R2KrRxF%z{_SuKs{(NXa;*x3>tE)YS>g0^HqRakS27rD@Y18y2_feq}jH&XOi5!%qinENMSZOp-V8vd4q zk7X>UB&)&;=5U2PYnt=QX}h1rkcPf1HWIfa#06ThTvLo*(WsYMByDefNNE)fz(5$p zV8Uw;8c81F*B><1?|ELqShUOluy*-seaiHv14miPxx*Nt8f;=?m5sw0!?Jig?5ECR zsBIP=&4U_awimN$#3xp9nzLNuX0_P7Y&O(8os|Km^|f&D1quXoyyI}dARJ8Cp)h7B zWMKGW7ex+BEcOZ)%Ho838u(WSz*o2pXl=@y<}}wJ#^Bd&h-wA9A)4G%&s4NJv>r;^Tp7q>A zCwi@_3~CBNmu&TBdX@1l?{|Cn-c#qYhyAi|S9dw%W``IsKW{SK0%2z(P!! z9dkxI8ZJDii89wi`Fe$$AUDV!xr_dJ(Ax>(Znv^`rv>4rXLpVBzV35ZukeX`oZ*Ps zUEjs-_k5qe>sH4#yg5Gh=<2Tbrbl?bjocc3MsnbfJe{|NHNB$QQHk zhp|28le<~_IP=)HSp76)Srfllr3<(Wf|fdFIN!^D7qm1DVZa6H-K zs$MWZU{D4VK%yJ4p7DV)y^@QQh!?@ofci6w`~K4ap6Wz%JV$hdv*~*~K53gaWJ6pG z!H8qU(tEJHySu&HLR&1cg6l`pi$?;qIHdDMG$hCk(>v-D!{-yh14#;_z#DSX025$A zVxX_XO0-D=i*|{NZhI5cf{T@4sKMX>07DC)8?bUrN0nU3B*Z#cjJ~0Y#WYkFkUPbR zxxg>%I4r9u>cTkcgBUYRxRJ9$wYx;8D4IeK z^N59TJd1x&GB+_iz+?$EDGUvOtSS;P{>p+VxqM8>M9a5akjb=_%CsGvjL5o-%DjXo zj0B5cs1(WL#(%g0a&(i-bBO|g6Yg0Ha0;%-j7{0>#LH~RxQw&g1Rhpv%eNUTanZq> zAb}U4NO3p@YYK*6SR`P;Bw%<2nghvy$N~tEl?)I^mUyz?ddJ)nYk%_+T8JVl@*WzrJh(|g^KE+iPSc5gtfhcVWd0+%#4Fn%>i9)LOmLNe$7axv_ac zGWpnoF8Pu!*@7$pQda&7LI_9~@gs)S)SiIJ6w`cF0#k`qdRBLRSCF~YoypaCje$9k z10ncTl|TSVpo4;#g<@@qW5o#ufCNWN@Exozw)Ko42gVP}u zEUKNrh)=tO5@RTVlZdQHEKqfIM0U-@hFw{fWtMlCgK}7fRVV=ys9BqZfqNAKdN|mB zum*;$iG;O@g5_C(O;)8?*nrh31(*a3#n3|d0fwiM}E%;henE{gp5C}lgj~x#f;1807s)A^mvpv}_-NF28S-j2LM0r_hPy|r`0ux|T z6Tn$~-Px6J*8anF1Yz~po;BKn6;?bDl7DaqVPyn5NYu*ZS=kd0a+d*kB#jVnyA^T?u}z+(q5o*L7W!;8!al1m(2@QMd%>ecnr;ho?%>QOv*kHhN%F8G4e0h1fBMj99&%E_NFaGEg~V=@k7e8HS_EsXGEUnnsF{s;_miPN$2 zR!uug{B=+M&0{@268{C@5+DcU9N+@ZSK}R2Mo?mTa08}5+GBMG#%)|82-+6rSqv_S z4=z>~c88yJhutlR&&}jV4qDtjiAp92N48`_ZQz37WEh@Y3EtgC?qpWB6$W5poo5LSmXKQRvuKwo#o&4>VLp!OJ?gwc?U(125E2x0|;!v7Hs}#z=M*u zQaV{vW9x#a0Rx%_gY&(CizO9i)&iP->|y#V!YBaw+-YGr)mVMimdM|tE^X6ZkfR1* zr9S5e7~GsS+?N>T->vFoW#!6{Xg1@fnNtvW0MF)%V(@7O6;ha}+tUtk0soG14q$UeX98AdDSZlSV1t=h)&NLU zst$k#r*J~G@T;z1nV8_#&4d7mXh6|m8}8uU&Sd8H;AAaWh8@@>#{OpuK8YKiWE$RJ z5_bd>uHd&`<=ea054ZgUwm;C5HkEt%JiZts3P5FUa2c zb%I!sg;|h=We}npP;WCZ127PSFgJtpmhUnClD(>52+-;LPEns0?E#;2I%kpqDDZM- z?F2Vq4b2QgX5B@GXCJU|B9MtcS5&5$=RU{W3D=O)J!DAcZ4>uxlPKNL{n=pUafF6( zNyyw)u3Qs7^bM8-xRzkZrE7~`RMf5ETd9XRK=L4Hi3Na!Iq(|qW|GV^i^&$1FPMQ> z*ack(c3l7(UDyR!NP;gI12F&tG9ZI6AA>W$>}3yw8o-os{u7J`ForjW^ZwS(I{$WX zzY{z^@O0+$xO2r_OvN)?LZUNrBv*1KZ}KNcumM~apCcxHnSogl_G0&iUqHWNmjR4r zc4rTBF}MLQnD1o9*n3eOAPtXgX9B4L>YduoaKCtrkC=D319ngZJFo&MV269q1t)+4 zDxd>85CutSbhpCAqI5;w^Tp7s21JO2d%y>L;0JdY26yOrpMM9EHb-zoB$d|QeHZpc z`gimLc3nWkFlhENAA>Mfb}&(9ZEg7arOR!90Jfm`ssQke5BrP{fL%TWvp;*ZPkWYk z!+hMyeQY}cL~PKy2Svd7b7mcucm^mx#{wYwWWE9ZS>ShS`vqYK_*tldFHz<&I0G@T z0VSI0Fc5wqMBt27P#kZIFm>>P3s|QH1dtAun zyx;qV$;=shoyjhhBw+es2lm$T8bZxyP(`NCdm@2NJL#y{C7NaSN;6mm7!$VXvWJm;Yk- z{Y5)`V{Z0lH)DfG{xLpyfcOIDh6WG@4?++pY$3yj4i~~0@o(b4gBCAhyhw2)$BrH+ zX2ke$B*~H{PohkzawW@_E?>foDRU;xnl}D#;>@XYC(oWfe*z6EbZ3B~M*kU2iZlSl zq)eAOg$h;a)T0xlUVU1X>d>xUzovu(X91){_RijO_YNN0w(|1)g9CQ1$D(xaa@3F^ z3mAc6!qnKMYw$0@x_a@_Wq6lh!8O2)Arsk*87?!xh!Hbp^Jc(dz;Gdm(S*W>riC>j zu`wj;j5S*y#4CF??b^0)?9JpD(1|ROFSn*h>EH=V$=G-21mo5Q}xsV2VLBd#SL225Cb^i5L3){;{1Xb zFTM=M76Vk$Wxh3J$0d)&)p;)h*^YjLleaS1B^d+`V&ks;+z-`pR*Vi zqb{##0iR?!(hyk|TlhFe4Pl6}MSWdp5kW{AJW#+3+-(<*0|fv`k(5=^RG^rrqME9z ztFqdvtFOYU<(WXux>Q!T+M1J_H{1}065-%^=RU*kljk_c1T)N@;mk6ld0b=`85vt- zpdyz8@@AQ>21WDV(Nl-;le z>3>by?LXhHzB29q12BLB93V>y0KEeuFo6nOAOjodzy~(30P@mMnktCBf62sWAcBD} zgcd%@QLb{u3WqU>0YVt0fLAw&Ul%mS8IRp>Y?G=~|NKY58{#mBI{cdfA?U*&0x^g} z93l~eCqZ~&#b3|aP)#84GZ_@)7r+u92t_!oeuRS`;1HiUZXggZlFMBx@++83CaVWwAifPPaA~TuFTqZM{>C9(BGn&$zCN-;R&1+&a zo7&u_Gm8+1NM0ZU3L+eYB2a@Hgu@rR2!|)B=#NnPV~fK`MxNp+12M!BK3DsKKF8q2 zt#K=VH87hk4WhDJ`ZA#kT_{6Q0?afN0Z9dzC`Bu3(Tid%~Fn6aWgriqh16xx2 z@~ExNvI{lnz}}#0(3_a*s-hh&X#tqk0!*^Bv9l{)bEj9@fC8}p&;%%Q5`o9<;zd)W zVhD*93}a|csOx)0ujDs|q=w-OGLV55k{VF#6hH%=_3XK*6k63{H@n(p*=Yr^{$0Td zpa8ACz-wot2PI5I33|v$1`M`~UiiWv;z(@Kk~ZInneR^F7{)S+E5BIsic&Y=0D)=1 z0U6v!RMgd5N^;4OQGGYU5}vTCx=Z1{g?GHesorcz;0M+G!^0qsP65Jk7(2UD{18`8-)NS&;>709M58WkRRsTqWHjJ3~;D(oiq>;uL=+V0u&$uZpJd5>ul#c z<2lcI&hu9G?B_oNI?#e1v{DFd=tCnq(SqKJlN-(C+{K{)-gPv~pzK=yN-lA)U72!- zKip?QLjX`-_6ITe1P&E#2h73p#|v1*m|ei2ep}cA0TgZPTjTo5pUyR}d+lpo|2o*h z9=2WjMd@QFsL9Btm!-*z>5a&ADCbS@dUa9&C+s4=tFBWpMvbT6h65O{-bDuLQz@4S z86{FO^17Gp?svnxC(4euyPCb>Ov6^TwB1PrI53M|^kUTl7kCrk`)Y91fD2`lZc7&2 z;C7#k-V&cU#Z@xzinGez&qh;i`ubO%=tT*;@b&9@Ly6I2H6G!JuY;XA?Et$Y@-Tsk?A#;p2>VIWuJy0{9Oy~hl3ucq1Z|fbPf6cJi<(Z1 zBhDnOxV9?_}_f=i|<{b}t$^WD4Mfk_(Jren|lce~% z*NNyES~3uwAlxXfQ>OscBBK|hmY|*eM`~~TAum7t;>RkaB|VbHKb|7T@BQPI&yn?W zr14*;!{x{R_4Ehd>yBWUAEQ9LWsiy9F%8K-F0=u?Tz0El3)(;-anwXeronQ*8pX4>35W1k+0fG;71pKui3PwT##^L3`U=UISJapba zJVP5=!ydTdMh{Fq*fC)SROpV0V4W1Wn zA5FA}7*bL3LqNjp8+8G- z8stIx%{G!rHx|V=qFp%NAeuY}JOCdanqfP-pbY+>QS98A5TZx)p*jLb;bC?mZ0Fk}G0AxAPtnHV71r2(7BA{$)ZUAmwzew`J#WB(lmVDe%h>Y^$t;9+tENy1wr zGSoqgC8?mzS*oR4wq<5&X5YLeoppp`js$3yglN8_ztn_ix)Gk$1Y|0dMNHX$)=Ot%*=Od9&QuUr>?Yf@gTji*D)~Z?Z{q8cuqeW^+mfA9h|ErYCwzMWJPne72`! zUJrT(9er9*(5>g;T#0fv=5+p|#C7&kcCMr?mF3!m;CG7WgF1aMLieM%&L zUWhCT<9Qa_hyJE%E~k3tN_&dviQ)>Qq3C=9XyTxzgK*e@Ze>as=q_P|cGggXs!fFQ zXphFrgg$3z-r26r3TSGmdiv*mI%jk;5#khSc`7M}{^y8VNp;Rdjq1{kCa8i2*^c_? zmxAf40BMX?=-f@IjG}3pN+gShXrHlZijoAGmgt&7XNZ;wd(vrzsHSx)qq9*}M&M|U zdgpA0X`vdbmyD@^*2RaKr-`npkv=Js0;r1G=ZlW$k*cY&;pv;MXoOg)OkgP-0qT}= z>Gwt4p`vQ4R!E|nY5s{;s-#*Fi#qC>CMSrBXsz0+lA@`6YAT5$=cc~ujOx{p^65VQ zsg}Z=sd}HPGHbIY+fDB2rMl>n{^qpqr+M0Hu>L1=s%VDZsgv?2t=1}?D(Zx^YNx_P zsJ_vtCTm*8rnACpyb8xd6~O>R>t=pxObkFvy_8k4s|PBpOUmoO_Qni+!NDSI!Yb^- zGHk;-?843f=mC>36#)Uz)x~0L#%k=wa%{(X?8l}R0eBNQX=30I+sUGA${re#s%*=; zEU>+7%*rgxG7*K%Ea=Tq?$nVZ@odlf?9T#i&-%qs2Do-E5U?b8OE z(?adk=32KR{@KlfUJn(~)^csvdhOS4E#L_b)sk)52Ab5GZQ3rH+OqAfS?z^kZPtSA z+|q5`+U?!`j@XWE+wyJS#;4x`?w+A-;1VviTIzPiEzaH!-ZF0EI_~2hko3&XuX&s% z6z=63g)8{g<{CxiCWYr>F56Cl9yo>PE(Pco1?q+_)Q)aaXzu3v!Rh*yY)wSvMp)t! zEY{sCL-|^4r7kF}F5$X@<%Zu2hf z^ZG&b7RB%u+Vs}eKg3q;j<0s%Ztkk@1ohf^6@_|fuit{NQ@HOxz;6J!ZvfnH{Iah1 z;;$0^yzhGbZvYoX{_ZdT#%$|mF7Xzd0ax3!*>AO>ugtD*1=kF(iC9r&FaoRX>vpdO ze;8AU*amMf2P>@t2LK6wmz8dg&z;F{`&7B`&t~oZ|pX*dQAibTk;Oa>>hLSsr0V(A}=J*toP~x@*3~;im(1C zOR@ioFH)p3_AYNIt1_>}Fe%p-Ebkln>f8BdF%RS3ECX{e=j-0~n(7L3%6gn1$g=7h z^D*BV_xhD9bnfgL4l`4;GbWIMw@iuLUc+GDNFxzxf1k9Yn@R< zK~3BAP2+S<>-0|ZbWi*APXl#O3-wSFbx|AjQ6qIyEA>(n_2Jr!g}OB1uKsjX?7YlXhlnweC80Y1b*u$TeY?En?3#Y@fAa_cCK29%q*}ZeQ>Px%O-K zc3%IspV2lRpLWmbc4r?q`+jS1Ppxd1wR4O0aI2PPV_b6U%V*Q1b>9nfQ!R8`wRcms zbgN`>8+5BuD2MfCVDn~#YWGufH`Ic6RL8eVi#KUecg3YON$TgE{_?g-5a?RAcfGtf zd=Gd_7kHi3_h{WW#pU;z_@_)A?tj;0fYZx?FYSD@G=`^if{WIIPh5j%nw<(Aq$W{` zuQ&`db75L-)yjf@j+|2NptvBdAP)ZIF-sOU^i-%a_WBnc(vxLMW=SmxcH0z zT8t-!^6IZ20PvtOxvfQc)gC#`MmBNVHc7*^e&;GVkvPXqtE&$Aa_^^vXLXQbtC??i zmGd=>qjB*vFrrO)qRqM6viWmTcvamvz2&&KQc#(u_j0nVxC*&vUO7d}sb{0~Xy3V6 z7X>J6?i4I9H^Z_XxPl(|)f7Op4NtoC7I6qeI_JtT?1F;+h-q$8So))HE~i(L2P<>( z!fxk+La5uYt21z@hp?;5vOqWbiK}^slQ)sGIG6uRdheBk`|62mtD0UavbA-dD|cnj zcu7MAC`2y_0Iw!cy7FSW4Nt)bFR%4(`={G*si!XSGI<93fuuM2qZ9A9V_B4&d$_0W zx@YbfyL-L|0KCI;W%s(_{<@6^`(|%BvKRZoYubZHDxq^6vpc+#vABv8v$X#^eR|lF zckZ|sFgI`TrKhgO$G8HgJE)^O@RqP1uzMxd`MyW*^%jM_=ljV^`pRE*#osk{EBL@y zcfp7FdJpJZw`tD!xV7F2xK1{uMH{roOVm#LM=$;&)oXL6U)hvnx~RK+3Hxr?+dIuCTGMxQja${8$6KFwYOSETpI<1M+oy{AI?f|~ zk+1Ww)oG(YJ-&ag)TjCrKl#;zd1wfDD~!nFgh$2U3gCcf}1F!(<& zxeLEvS-s(_@bW`?=3+dV@Vnx_yzwtH@&0-kx*NVL0Py_tn)U-k0D%Ju7BqMeVM2uq z88&qIP~bm<|0q_pcoAbpjT%^-^!XDg&4NLR7G;?dX#k2znKpI$6lzn612y@vszjh3tC~P*%IZoW2|ri^Owlt? zs~@gj#gYi%%Br6!eyCan)t2g6f}rBkU0Br*sJC(F3glWat)8v}`NpjqIBLSFkttWU ze3{{7oklr#_Iwm`%Fm-om;Pz6Tctg#S%0!%8s|{hvuW2RTGMv!n4xR(_Wc_;O3lHE zM+POhxa8!^ne!g5RCjdgC7UCh{(c?1QGy5T5!%EFeE3L&bYwSw9{p_G>DfOIy|j9K z`AprK{C0lY5BLpO2gvrk2!6QkQuFNt=nGWpIG!j#ck<8!5EECPk&Ph1#t}vgb%P@)ZBw))Mk{iZvn`**vQC%2tduh` z+uYPSPCd13%}+&j=uJ%iO?{BSQ&sipP8gzyq6s0Jh(d`#F?xm(A}F$kjYO*q$sI~( z3N}kfMS@gHMAIX7)s`-8met@&9FEH#SSDghL$M@?&{7Hw z#0Oj%0eT=p4W%OhDOtvH$(V=sfo7WxB_ishU*@?`Luan}W`UBOa^``Ob(-h^mR#8l zft;ptpsNE|JM8`dxSl#^MwmugAffH1An!ob$vW=p4yZ?w!tD^{lEf9igr0*j;~4VD zC7+z~$}PVf^9Jwq5lA74H1gzvYA(BNym6)aYGMN*bY?=+4uBY{RWFE8ES0uh61)ke zT1vcUM?2}<1#&%aMz)6J^_cM{DB0m1c^%i8m8QBNrC*na=#}Hf9%?CfPJL(ASASlh z*x%mSY~Ncpn`m5jc8B!ltU;u3MT9`e9mmzood5p){~v$>6yN|=H4q+A2nBq)0s;et zkd>9q8f9zV%W6iw^j)wZv%?zoPS-c6!D}GTAlmQHC&CXd?}8e1o7nc{G8De7cL#}~ zKx#I#l>Uv+g1ft51xtrPg8U9?HH_NKIw&_t1dcfjpkLvHFo1)&;}EZ_3<0TFMJrwr zi&@m-7C}<39!+5iLArtyz}UcqXfFVIV_Di>W;B*jNlHjOAKz%_2o9Fbgi3qk2+`-Z zJW3*P&tRGqeaOPJ#SucdBcvf2=|}Vh&xS~IBg^Q3$PD&TlJNtf32Au5`Pd^7^bqAJ zNh!*D`5h9!3yq%mbuBG*~n{deDQG zyd)j{2sCA;agYRAq1RgY%w9InAlM8Z8<*Eh7DjS)@q;8WF&WNax-4y+G@=}r^A1Hw z{zDqhFu*+NNl$3tVT!T5&1Ur35!{5RA^`2@R4yV=%~-^styIah7HZIh4iushbqSC1 zw5LA($yOXO;qKnGp&E7+BmSxgNB?0$ikQ?`^->f{f8``e{iAnL+80F_<)ma~5KCIbDiumG(-luCrBtSl#vOxjgB#u;1LGdoxKI#S9ptK`vo?33 zV0G(r$@OD6&k6@aCiLDE=E-9r&{#)m&Rppj=Z8PcA4YoMQtU5L)O)v-pa zD{q`uSF1JExz3^kS^*1R`}!3~7(gsJO|Pk~sveLKH7UYl$lCpkQ_PD*tKXvd$ZeFt+!;@y%|3 z{~O>hfdd>soCtdy{2uOj2Rssi$(13SYZI3J-9+-%UJv)At++Z9<~bugZHjT%Jk4iQoLprCttesQ!Tf1WCY003)8j*F-N-C~dbWqGl>#`1Eh(w1wIlO~s_kK&Z?* zx((hyWCZzXBI+##=Z^zlaAO2;4gNs@)L`<|Kmh*X`uwi|At4kX;R1Qe4FKs;ZYILk zYo>B)ZImTh-0J{mLJG)FBhpU_*pCi~OtbL79jXLwDq;zBsuZM#Utkd0#Hz(gWHP*q zphi#)+0ff&ZPB)Cx<1eZzl{v<5OO512L8bYS5FQ8{-FjaPy3E&3r7lQh%mNJC$VY| zZB`3W7$6gLO0~YPX2vikJP!pl0tH~f6|4}L{tA!^@gJClb(Sg;7csFW%d_w>*GlgU zz0D38t)QsO4P_Ay+X_|S@C;Q@DeR9Ge=$xbkNQ|o7zJSR1~CmjaTMJkj(#e?W=c_R zZwzmb3!gA1d@TnvLI8Zt3Y+n#@_+&gv4R>5wPvam9T6BIEyiB)%T~=6Ll6zk@E|y1 z#o#dwyKEkPF&+1jMv9Rb4pH(R*O1HfaU^T9LG+Lh zS?>=6(Go4|P9Z=8ElX5I z_h}(Y0`eq}@+@y*IM4GqG4xjS1)l{+cQj!*6h%o4|32cz%rhulFfD_WN0U@Z?~YVZ zaNaN!D4?_@aV^@UG$xl6OS81@n$)YZ3l~MgNae)ZOrj*M)K1J)OVdFrO?GgSpGCWRGH?KD_d(^fr`SVy%bMNTxs=LPm(lF!dvrI zU-Ru(2+J9MNc!9W@~nGHuhCT^D~1rV6oL< zL31==c49wP%NDj(acx$Wm1mu`XcG-rE!JkER%*uuXD8Jjtu{o~^(4>r(BPE?|CLbf zwM*@hp(J%Z8()c?c5erl zaDT2-{Z>x>wSaOpaSPXRAD1>xl*KTVNHd0UAs2HqS49hz{xsKfKi4Kjqj5o(bW4}` zpw@I#S9M?FRa)0|Ul(>`S9WKYc5BymZx?rSS9f=pcYD`&e;0UzS9p1Mb&J<{j~989 zS9zD0d7Ib%d7l@0qgQ%ygfCKHdf}>iiw+a^;ClUT5BkD-Mln|`gdFexO@4oeBZYu_ID)8*M4WC zek%eK%-1E{7k<~*BJx*XANYPP_#ZHsBNVtL2v{TjH-Nc!fK9l7_wImK0)#_?fzelj zE5Z*j!9iMhUp2TQYm?HY(d&3uq<(Gyj zB7K+mAIi5c0JwT1*bm?WfGuK%F(L(`xQVB@imif)Edq!CA&e{HjQ!vu8e@im_=RQI zijn@EZ0);<$im%vwMY)qPnSC#Ll-0N|ETVr$8I%10g+&>Z z+4ztlVQ1;v6+^&xrlY`h*dd|Ie3f@S&5;zm-k?b`J$80*@Eks zA{wKg{rQ!rxgwNUmaUhcquHRTIEMeBo)6j&`uUz2I(*Cbi|hD^H+qjFxuFBvD*gt# z3Q}2v_m`0A_@UX^qwTkiBRWGNS&~nggE1PUIhcSc_#ZSlf-8cZiTIl@0)yEZizzy! z89IlXd8ZkgsKb|wFL_Jb9umIwOu)gDV=MO}LHOIF*~aBF1=%T{@{d z*pb^Ah1(d10s11iIt9EsmA~399J;D=`l{vGei!LJ3pA% zq-l76NxO-AdA0!@n&Y^k^CPxhd#wpv!5#U9H+i5-6sB$3gfD!z*>|}mTbsYP!*P4P ze;R_*`new(pzC;lr@F#zyuI_IpQD<@W!$wR9IxFO!7;+fg&fE6xRvjkBSbj0$Ct`I zJi$x6y1$r=zdWM}8=z zxovx$`=ZEiT!!;meMz{-d3>Hpd8!8;m!Vvfn|ZmpJj#9fz!_S7Z~Tp?c+7#?z}wi$ zPd$cjImKz&k>i_$`C=n_ebT{rioqPm-FnQw*M6^@w;4RynS9M3te2=)SErMZ=Jc7oHbXR zx(mJ2uf3DYx7agclVN>?mzm&Got#(wr2ICl&HUao-l}DpqGP_<-P)~}-Oy>np zyZ`s2KmP6Cd*&}+;7PdctsTZ0yq+iD=Wz_^x!(V=yRa*7GKK{qYp3>#}koOp;UHXwVoyB=Nmw{O4 z9U7YBTE4GYu-hFY=G}ugp}Q+y{6Tu4zdHBbIJ!4GhO4-r+rI3Jf9tJU_cP-BZ6CKe zxX)j`jE~>Gzq*4{03cHM!St`-o;?K3{w=`gz%rAjvfgX ztf-J=LX!_87GzjZpv8XzAr=JXM`OV%exfL(`0}F9pFo2O9ZIyQ(W6L{DqVUpfYYZ= znJ#_$kE+zG5}`uH%C)Q4uVBN99c$2!*_!_zR!JyO=K(BFJzMjCuT!Dg0y z-ksEwM+>6Voms%Kwnt~&(Pf@O7wV?rh8&8el~zM-l~q(lQDs$!34JJ{P$#BHB8o7^ zDC3MXQb=P^0ttBIRX9br)n+uI+XOecl$s3AK?zUZ@ zgvKZ$iC{JbW};l)$S9*DzNn?7g;r|mjxG^domtM&xu0y8hAQf)X!6x*pL~)^+G}8Ml0>K)KWQ4 zC3{>kz_48+YimKq9@^!k+in+ z2Q08c(Hx>jC5X@=0heE{dn>&4zN@9MSw<`|SnWFeFum&DOR2@~4lMG>B$sUR$tb6+ za#5l(bvc@YXt@P4NH|_M(P&*Bc zAX2!4h#U3HadWK!ARvhwLKkiB$1ghNH626u9P&TbIFg1@Ey{xj1wMzp>%4WN+cptH z=N2ocLPr!&RPjVTYy2b+Ba{c?gSTCO9X7{llkIWlXvgdG+HJpG zqNH-u9WtWu=Ka*(eXo7^?6lWz`|Y^r4sha&KjAw(h4gUI*;>xx1G?{e4Yp4Z|HA+z zX~@fZxe>E2y|5Su;LhBU2F*O@9A7*y?AQCP`}ydnum1Y%w~x5ujGqGuB7_{_lQovV z`=#=mOZ|tzs6wn!#T*SZt>dg^+E1&G#N5KkO@PZi3;Oux8KSvCJV8;s?VY(LP?;q~Cp*-BczqXY^g^XC!Bm^=fWtikpY=VAsq_RHYzSLifn^mBcbQKOoq~Q2y_Y-o$^Oe%7c4A^vXCsiqcDd_%wihzm>tUF9{VU15(;sL33-O)_~(vI=8_1EG$Sc5 z0!{ou0&Mv6fh3ctIcXk`mcc|I@vfPWbt(jfwfqMbQ&__@R#KZ|+~o<&*iOx@v6o#u zV>J`9Mr0cFpa@NFS|ZJS#aUpP(8P404s3bwjzau_V zh-|B<5DO~HbG|W+wq)TvHJT7;niHSg1m_K%2-AQ1@@*HLAt)D0)S?>os7O7W1JsD90+rx4~1Uo6M^I zJi&HTdR`=?*8HPe{V7U-;`FRZ4Xj`XOW4BtD*)|4#3Jb6)MYA#fAf?GHG_%MQBrlE zp@78k9hq&2K=cgx$} z`u0uKFoffL=h&iHgALJy;t*-bN#sg$dAK~}2^D!-iTp9IvHYx9pMlD`J`a(-5mzMi@fJS`M?A$4urjGs^+3u);&l92Nyk;>mE1Gn@4n#Zp(wNS)rj^V9NdH*~ z+q#H54iVZ-oBGtKPW4d(V2?!5OzT zPt5@uxclAkrU3_V$ATu<``-9&!V1=XtGMN*vC%xvYY+vXivM^*Ut8_J2?{fzz06~;f`UrW%eVC_tikEc?v2_~=dH;}t9XN4vG*OTQL^=dgA2vK+vqV6J zM7i`sFePJjpkjYiVZZebiEw)TKmy*=LiUG$Oo(Lu`d4%OClooy7sjV_4>%G^@Ngiw zb$)P#(no$6I1>>83ZP(iTB_R?*I>= z7>e>xYj8j~6V!y6c8a0$gf>Te%$I>9@fdF?5nSknO*e622!Ra&hqNepXlQh5ICN9s z6ejl=aEN|om=tnYbxI*|dU$}cxEFjei*%G*5^+=HRbBhkVwQDEpjBGsl|n9mY~3q zGm(`fFa^w)l1j0RAxDQmp#&zVacfx|atWB_M*@C$K`i+^+=GoU*^Z|*IZ<>*HEB^d z8CSD}lqeFEL1{ilDJeubB$;WMm;UKF@YtFDI4nORl?Z2$P?-=@SbWxZ7Ti~SZ0QHT zXN$WBd?xpBv{?`l_!H>Ie7aeEZP^#W`I_6Oi?VqYcuA5tXC1Sdb?C=^(aDx|lv{PB zm|7KE-)L8M6`5AWLd4@87m!=K(`pLa8!_xPTi`Hl*tp7Yr;kAj~9G(Zj7cMuu?s5yJ|SfKvtKw%Q0xv~|Y zaCkU_q5Qcy8#*Exx}j9DoFCT&<;kEcDlQ~CM}Rm)X>du9kUx{NJg?+Z+lfMx^ETdz zVUoCBH#CR>N}dlYJ`I|l{_fd4#FC^xIiCqiJ?m1Q*wZ{x$~j1CJtEpbR|=(B%B8KN znMIluN|~Nk>Y`ujo=du#N~)&usXt~Krd_Hf?G|tGrg~)KrHi7a`kAKa835v^drgX@ zT>74C`Z-V;rUJAA`PQiW#xsPPrAtYrbi`Bn6NG`l4mSFO3uc2MMmd?~qigkGIq3!} z7F0Vqrb6kYQW~Xdx~5P%s0QRPL#d=wDnJHAG#1*b6vL{9`aMsIs|`e@xT31{XfubZ zr%t-7oY|&|;;LhVs8yPzNBOFKYOTy#p!E4YpW`=_ny0-ApLR2?g$k{+`lrjfs|1>^ z<$6#tNgMBKthhn`sk|DgR4FFf`l8>$r)vYC_gOyoik{J$tL7S_|5~U5n=|s-6=j;N z!%D5$nuJg3r3^%`R*F2;8Z7n+t^rG*+j^}9i>*tEuzj;Y(>k)h+NKHnvDK=cSn8*2 zT1@de7UH?Ev|+I&Td!_Deq-nD$tEm6^ zveCM+$6}i2sW$1ltzW{l{5rMD>aqEmpmIvF0ZX<9+MXoatr~Ny`uedQ8@6dWwAPAH zGusu`U`<{_Sx{>mI18{kd#iwpud5?3Lc6Zr3aoPbs#=?<>gup@s;nXVney7O0t>lD zdxpGNwu=7itUvj!7TUHwYp+ZjtTEd^`1-alT9nUvu60YWB3rr-%e7nUx=&k2cgqz# z6-#|dWs4|LDywA6lw}jLLrb+u`?C2;uZEhj>YA;?3%9*{I#WBT5lgNcrw0oO zv>A%LfBU&PYqt3syR(bDO+li?3c9OHzHWQ2``WDROR}b$yyApD+~y%X%dB;3FEi@p$?YXbzoEc&2g3%KoixF8C$lG>sgjGwTJ zwEh6fHT3JB;FG_7Yq>j2!7ZwSUAU(}gTGL`we^{{-D9Hhd9hh5qA9$?W*f8!3dS1y zj~e>85lh89o2!&t!`1u7^UB0TBFAtHl((ybZs;X+>@b%bBOjy=z{?70m z&+T6%xP$I$#7wpaVRxX2*KEQ_;tEOcY1mAv@jEKONLOR?~~D(op@ZPj?4*U*gB zblul}{nxyFSYHjTq6^nNZ~;zn0X*Q-XPvTUlGFg{)*NEkh#dfm&Da3`M%Q*t(|X<6 zo-NI~1=ylJ+N5pF{DQ3iKmZS50w(YP1i;n-AOV;y5pca`-?Gy_?bJ(w+eV<#LdwHc)_vWd%-5y8-P}#ur+uIVz}n(% z0t5io^s?AIfS~A&+FIh=Wi0_*gP-nA*6_W=Uozi54c{)S!}x6k_5Hl_(%%bnrXV8V zN@3tef!;r%;QmG3T#elje%(lc3lv`A7JlIvp5YXZKHc5n9`4usGS~&N+7BQA0gYY{^LZB<3cXuMgHSK zzT-%q=GQR1Ut?5uWCqJ>eSO z=5D^>=kwumKIb&8FCtzLtStZqApl|?=03fmTJGdNJpfKI0D*qxgI?%|F6c%OYKCs* zS3cv39srLX=~&+AT~g_m&eV>+=#1X!kk06d>eGEL<|Sa}T)o*dt>&z5)olLeuzukj zPUo~<>lU3acaG;Kpy&U<=cS(FfBq$&uH=|b>BC;+ldkEOKIm1U?8{#4&K~KB{twZ< z<&9nt)o$&e{_LY}1i!xGr(RTNuGOtx?kkOTrKRa z5F~EmDE{rN-Qtyf5iuU>NuK2bZ|ynGz zMgZpgKIUaE?x|kg=05TmjqdM$@+c4QaZc|n-}2);Enf!|;ho~;JvL3T-ju@NMI764 z?cdkq#s6U7<{2>p{dxaBhU%)9q@FStv2+*Qk~ z%zfZI9^6FX+|Zp6(%s-8|KM8x`09)lyD<5b{$Kf)fBBd{`CvcxoZtDlT=pehGde6U zl%3c-UI9ESv0p1eMPuLhJ9ZZeqCo%pN0a)J-4&&8*{7e`jgRJ#|NDD=6udC}#9#cz zfBeWl{G0Fj%-{T$4Eod@7I5A3iSJv}AJ^5-UspfXz~BAMj1$6x;F|Nj61Lf}Ax1q~iVm{8$Dh7BDq z{1;K;M2ZzHUc{JD<3^4a1AGJ-pyNoAB~6}0nNsCSmMvYrgc(!jOqw+x-o%;n;Xj={ zefmTeROnEmMU5UsnpEjhrcIqbg^INPBrmE}tzN~Nm1<3{UA=Dn8CL9AvSrPlMVnUb zTD4!@whZ}J?p(Tc?T!qYSFgysef|EO$W|~zo`Ve^jG9>SV#bXfJDsXk^5m_6En7aE zS@UMjojrd>ds*~o(xpxJ-JAO3Y1XYvf)-pDw%W(FZQsUiJ2GY7S6%;(Ia~N};>C?0 zF9=-ua^}tb>b(fk`E=9B$;!6=Gxv7x-Mt4b*-QL*^5xB+7e5h{ANHCox?=CgJ@wYv z?cc|rUw?A?{r&$3u%f*@S}i~W-`X!H>=JC~I|m&zS1OwCA5B0x z@G=HRB(X#j%L*|?6;}jIwbcGtgwdrFA(~O42yetO#|bUuvAm01>F~WEW0b2#BacL~ zL?V}DvPqR(gw9DRHA*tMDhbLlOD((Gu}3d2(qu!7^Z;>6udYNhO*K6;vrRXfgfhxE z-BfeIB)7yfPsh6SlE?S_7*oDEZCbNXLk~r9P(>H@FV4IeO>qi9F{)EdJuk%+GLri2 zvm!}J&2<4B1~*DWV6hVVt@DsT*#H^`_fyjhb;qS-|-gJfmfBKD_Ua5`bmdTK9Gw zHymuLROVONdjE^krn`Da|yh^dstw} z=V+WzZdDfjaC3EEBfL9~KO@nx&|Xf8On?3|KS)r5yJ8m+O#pCGtRquIY*(e+HE>J2 z^IZh5*1xYb&w>}!4+SX_y@*WDZ?vl4M%V$rUR_UHmB8HO%Etrog-|0KbD>4XVXe;L zuY}v<2;LBpNOp0#2~k-oL?h9?=} z9yhrDH@yjxBH+6t5HH3#m>F^+&%y*Oh$y!K2}oUCv`gwDvbu=Chdm&Yq8^T?z_eKk zi>Gvu7PlBdOwJ^XuY@I==47^dJYxSJ_CN<|K%r};fjjgPU@Yq9<;7wtGdJq#8 z?S!Ox9toBA_5C zbs0yR5V4A3lxE*kmPc{+Jx;JNXdi86#e{VPk&fh;Ee#hVu>e!J@vm@~g9MMM%0n4qAY{ zYgJA2A@zVFc=4ISKL$9v;vE%9O2zDBm^xL?c9yD&Wl2^=J6fC!l%a8P=n+qAI)@sR zm#$UqLP0xQ+IsOy^)ymub-S3&de*m4t!>jtJ6z%(#I%b|Cw^V)58B}9_ncGs!ZwQh06OWflwSFO*Lu5+RLTJ*Aaj^KrFd;@dcr~YZzzDwz? zcYPaNPYS9c{aq(+$2;Iyj`2|gs-$Ywg<$t4c&+ksWQ9R_} zs<=iiMlv#9Y-1)j`Nq{v;J)HhyB=2=j3eeMOkSI1B6qo}MxIfUTfAf^mwCq26(#bz zT3IW%*@9T+N`k#SXT^f~L}F$!na#Xs@QNxr0gxh{1wCj&7uwJWqVMhSTwy)$xy;}V zbVVgQDK}Sod56Yyru%1S6D^w2ByqH(gB!Nu6;BU*iL#|tO)yQj{@T^+;&h2TeczG@ z!`8RPb*^>2Yg=!4ltpEuCgKAMzO35VsCsp>mA!0cKabbXhW4#d{Gw)8+uGO0cDA*B zx?yzN+usIvxW(P=IRkmy=SFwB)xBdyygv@dc*YZMagKMqHPrTaMU5D8lA~DT zCvSMkRlah$xTxeVXL-!Qi*lN8T;?~&`AXsx@}1}0=Q^!<&3`_0ot_eA2_E1TkXN0{Le9FJ zuTFK0w0-Va*NELYqW8VaJ?}t<`)D3u0<;(YF2z86;uXJm#y1}E6A2qUD-wC28s75# zEC37E9_P}*yr7*2edt9$deWEP^rtud(ntT62e6<3mxujV96x*7C;mrj{zr~uzk3P> zpa3RdLGXn?eBu}1_{T?n@|C}Q<~QH@&xd~Wr9XY@SKs>A$Nuz9Pynv;-uou0efS#> zrpj}u{NG3ay1EaSErVY5p*Jt-<1hO8(|_yozrX!aU;mtb-u`b{zw{Hpix9s8w7viO zmp>W61tgUK)Vcjj7u1u$38cUZw7?7WJO1lGw{ZSI23$Y`G(b=JpLZES4>Z9y>A;lW zyQO2nyVJV9qr3MDyuXV<88o-L%RsloyL4&6k2}F1vB%hj6y8TLMwDa1yjPh_(CMSJRuZ6uJM}rC>}9XLl_Cex#+o$ zdqW>w!xJRK@RNwg5+34l4?G;6IrKvSX+t+ujh7ol;0VM&96DoA#6@JpMs&nSR76CS z#3?z%mdinlTS3#P#8$$EPV~f21jSGk#Ze^1QZ&U=M8#B8#Z_d*QpAQ=gvD5t#aX1q zTC~Mm#Km0H#a-mZUi3vp6mqE>XqXN1ORl*VaX#b30> zYsAKE)W&V(#b6}HZ*)Xu6vq`|#&Kkha!ev>RL6B>$97~#ZiL5pl*f6DM{fkjdo%`f z)W-lp$9;5-exx9G6v%-j$b$4ldPK;CRLF&VMSH}@Z+sJBBPu^&9e<2HfV4@tJo z$d2?#R%FPK6v>h7#gaINlSIjsRLPZO$&>WLEQ7+|V63HSov_Ks%frZ<9F3ezo{#j& zp9D%=AjzR5%AzcZ+&Cgh+aIN*j}fHFNYhEQtHeroEXu9qN`)+mWB|*s z6w9$B%d!N^KZ`s6&;wAR$tkc&{;E8?sf0_^u*$5o%e#EWuGGuD+{Ujo%fAH7vm}tT z>PS=c0+0;zq>^uJ;s@ojRuSm|9%)hJ4Kj&1dm`u9y z9IN&0K-N;vmqbq}K~DC34(N2wilEN@yvytK&&teB?F7u&;?8qw&;IyM@bo&<m(C!3L50%3zq9fvrKZ)Sa6}`&;bkVL1 zPysbd_w1z<^$$&mECpRq4s1>btx*zV4AClt&?2R_B5h9#ok9wYI`cYG z)-X+S6jCWQPzYtwE%nJ4^-`jYQ5hvmHz9$y)KQ;f&>kI9BAw7AeNPMJ&?TMFEB#O? z4N^B{PCN}#bYW7uG|?U4zyg;NJSP9VKPIxSHRI@JfgzlbQ*Ssh43wNS5j9mcRnq3%)MZ6h(x}oDF``gCP+H~I zcf8eal}AP8)p32)Up3d4NK@X7!t#t#_cYH!tj|6@&uH~Lx0}DYo7XkH#GU+8FHAZN z<%@0=*l7gUg5^eWCD(*yhBpCC_JE?d=r7zm*FvjObzRpH-P7}OK`i}EjD1p$-BXaY zSCQ30lHEd+)yO0wD+asQe;C-8%}axo*=sBbXRz6u#o3(I*`2jnH~AFc@q-+73l6Ku ziOsZYHCo&xGMHuBYMj}pElHB#*{P-4n{^XC5Zaow3*AfFLqpoGMTxH^m8K=zQ-s>H z)y0~v+WxiG*-3raNwbS616!}1+g3fXvc=m`MBBXuMyX}nzwOyJ!P<#%OD%iBkH`>B z5Zk&voyBF`y@SlWm0Z51Tv;rMX29Ic)!fbH+|I>ZpDn?5(lVx0Np+U>I0Mc(MJ-P^POJE(~yb)O*5U2!Ig;hC0?Z~kYjV;Ly_J4ea<1< z{@=Xq-@W}`0QTM6Q(psij^RCC_9ILQo;DJ`PeqYm_Q+bUs9@Z^;IqwO4fb5}>tFyu zVA=8Du-(w+B3%=ful%iFApVOmsf!ja+ZTpmXOZCmM!Ljs?h7KO2n1f=pk)tGkx0tx!%m71P;pr!ZdxRU+LG{wIF{o%rsF!c<2V*UHMR%^ z_7CBGTP(&mE=FEKwhJ$Yyc`YVurXawaF=#L<4$sy^=0EWcH^0a<2%OWOvd9WO29pS zVn7y0LVjFPri&B~+J69JcS+Fi3?8-=TB4#!CSsaNX4*=&WRlS2T()B~g0`1w~sbgo&Jp*)`*sN>6gCMlIVt_HtM5B>ZDfc zqIMG;4XVicWt>Jgp7vF$ZVjK#2%zRxp&n|ISn96^YojL9^rc9tW;gz;K2x;*53QzE zuC`U84(qs1>JC-TD>iErwClSjRq$nNLUn6Ig=@JM>~2WPOkFUw*6Tpd>%`_kzV7QS z{p&*w?7@!fX0>d_Mnu@v?9Jxv&i3rjhFvdvY`>0dFP&`42J6eVB+O>*)&`i-=F-wO zZIa-I+P3Z6#_inJ?b_~4)pqUQ25vKfZOE2w7cGh1M(*UcZQAtA;CAlkj*;PJ(c(64 z+E(uC&g}yAZRqCi?hX*?UQz1)&*R4K^5*RxHrD@;$Y*|E?{;s!2526yoOZvGRebfTL!@CvtZsebSb z-|wqs%K^Xe4+rsm*6hYp8+gq^EO{ME{F3bZ|ca3^1rA7Gr;pa*YiE+^FHtMjB)co z7j$cj^Fr_PHc{jF{E9pG^G0{{KOgi+mvmP%bVHxi1Pn0CVDv}lbVmpDNeA^%r?W~g zbWGdyPDk}U|8!Aj^;VZJQjc>t0rRdn^;Ea@Rd@AV{@3-{Du-V8^EjYM_>Pn z5lW@-yQpZ#V6ahfe!Qeu)^t9%0FVHKKmQ0C*z*9m0X}#3 zXjk`jKbmTHcVXvXHoT;ahKaH>c9pJFidc3F!1Ei(0CfL%KF@#*ICoWN_k&0Hb$R!N zw|0vNXl%_3cU}p~`!C#E_B_{ufYpcnd~C;FnlfhkA%q*wa4Q2B+=<0&y+ znRxjAGT@6h1CZzQjL-7`(1IJNd7jtvbpHqb83+SrXZA1HfTdUawV#Qme|I8Wl1xWs znlQq;_K=FWc&z7hFwppqr-8gE_&gVTvNwBMM|-wM{Qgjr08o=uaQw%I{K%L5$*26v zxBSb;{LI(<&FB2iul$m5dw1t$WOOf>h~n>s+pVj4J-2|>$8#FscQYV(GXMjQXZ^qz z`~lbt4k-J=NA)k@KF}8a;V1s$KfT1)x5aOK&u9MTcmC&x{^-|y&<}lT*JgE+cmo;U znW+1WfXZ60{gBWCGl2cA|A_IweUbP1-uHb@KYWXrf%upI`KSN-xBvU+0OZ$ylu-UO zk^cV&h*Sax5-e!&Ai{(S7cy+<(BS^Rh!Q7Kj9Bg>#*7*_a=cjaBgl{-H_&xN_&xt!wwL+W>g?^6l$4?!&->2NN!A z_^`v29Tzjkxc2c!KT0OL;!45~=FF2_{?ml{AE=KqgOU!q^JCA_s)Z7*7~;$7*fhh; zfNc9V?%cX}^X~2YH}K%XhiCn3{5bNw$(J*~i}*S8=+dVrRNVObM&e(UWd4`g&%eoQ z0|bcpcC_r+H|D0UX+a{GoBlK=#-AVY#?7H}U#E{vyE%XX3OFEv1sd3vb_puDAcGA$ z_~38{O1PI^6Iw_Ybs1{7A%_Q9haHIJK$sPHZ-eOBC!c-#`6r-fO*yEPgI zP)g=F`Y5E4N;;{d6PXz1N0<_+sitII`lXn5l4j;aXyTY7nu-ia{#mH65-vI{u^cu^DYD5{DiNri{&VS(mworyZez-76R8rJI%BIi z?HC_TJN8KDwX@d7E4t~byDq!!?i%ccz`|Q#vGv;f+_B2)8!1T6f(a^-dbpwlOr1@^ zo3-W6$dgalcAHZG;L;SatK_<8qQo}^aN~~TxjEapu8jqPyCs`^GRi5B_^H2N%{!sI zFAI1t%{4!i@4h+r3$Ud;Lns*u1&dd$!a6Z*lLe^KL_?f$-oPUms6IWeYjwsrcz4qEQsQfnEamzioSS^n%vw<<=-JH#R`wbCFISX!1 zram)kxPy}Z1yCY)2p9e4(KLba>DNrplmW(+D-Zqfm%kKYiiXW9kN*PHzZ~`@fIckN02L_2Auh0f3~v& z5VyF-JuY&Sn_MQ4%(KpYE_BxdTDyqWpryTTbx`8k?Q%D@;tY)*CNqWT)ZO>Ujx2iX!>@C-BdpS(YeQV_TrP6R`WS$O7Gg-m`?Y9`C;?8(|qp!wRc2d;E!K#S{OtR_|XF|c&%I}f)p7w zD7FoXg6W}P29Jox^?+;)L%S_k=V8_hyLGMy+3O!kcHsjy852!m+tN!rYH-P6rKa5N zRAxDVYtCZX?_=Ka;InY|&UZcg9nazTJ@A7s{NWRS_)Sp3;FJI9Q5##~7(RIDlYVfC zxPm34ej)a=ul?p7*^tC%oj>V)~5NeTG7!B7$<(dVLq&W}k){PPhvX zB{U7WSJL0t(??D=&@6_g4a$RyA%;)MgAd7jQ46Y5nh1+ZoD*K%oi~VEH!w|}S?kOB zfWbL`#|CU}07&y9?{jSMi9yY2kQ~Hl(>NpIV$cG)Kg4p&l=3pwh?eaz2i0=qJ&6_k zx8U9Lu?vXB4cDYv14e|Uj+G>E3$pFX^t|c_!7E#*`%4`w1n1{@on2XETZGfc`l!G( z5Eu^ify9r%2o0;iA9o%7#s5|~XNP&SkX~O5KkK{d2DscQ@56E%t6&h@z5u?&&?1d+ zfw~}GcA_x}`=l%EWGwyb;+ACATGJVkU~MK{d*<0t0o}t^CrlpTBA@srAL3z$m?4h@ z*~GPKtB+jAmRrwUEO!36kKB3-Q=O3F0t4H*fW1Co&MYL;NrIIyyyab*WFK!W`78bj z5i+F7?{{L~{Q~68O@ZYCx^^<(calnIQl1NJ60|}A4q`0r9k48!sM;>O{f<_&ZdK53 zYqZH}@-FoGKmMH!!K3WSbEwI#uN`A#zC$~{vt*rK1(_Ir%w;5E9FB42Ki5C0-5tZ#ksMQj;+9Qmd) zIfn6VD<*!Bz#ED0tN*^&8;iFVRC1B?i0sK-n4TH!@g9&UUxwt8i#KNx>=ZIZ zL}`Mum8SP8NWL{v?<-pytN4)6WfRQV;j8XQs7-IFHDilzuE@^q`FMUKIxy6%|K{gJ z&g*F^@sQhTME0p{6hi_@;P~Dj{L6Kx#2DR(RI5F90eQ^9wY- z(Lm2CaW61u+uXNaRI-^X`4MAb#}bJO-Ve{nw$P?ikX{~?oQD>l9F%@C_XSua5t!F} zD{(3>?3~?RH!Eom-{<4_ZPJ~|TT<+*Y$2w3=yoCMZciB$6R*d!<`FO69nbLZBrFKXvB-q$Wd4o18L86%k#|2QS7Wm z3F3vZr04vtHMk~Z)+wY*%OlFm%3pv~PQv)yB*HMC;D$*Fm`PT?TGuC`zq~dh;8S?WNsWOqK_roajcG^a#=>H_uQaZ z>5126i4+3D0d(q30X$iX<>?oBC}hkt-eXD@%K6+Q(>^I4X?=Yy)NJ zHlCN9FGNumbIc)^ht=t~fDBOX^xIeri&*4i1$1cv;a;0E)6I7M2Z#L}rR!+){ywHw z>c5d!_2kFD(zoN!BUB&7RBy!x9Op2clvJNoS0Cr7*~$&u=F<^LCpMa+{Yik=7(Q=- zB-_ycy@6Hgyo&$r3MxSR;9mm64aH?{9m6fh>i zfJY;U+Y5-qif25lA%x>YnnMN1OCRAY=s!$fMv`E3n5s*0GoOVG>k&T+s>*zr;3oF= z^ex~YjW21;A^#O3E!Cn6*0DqfU??zSYSdvG)M2be>;UF4=qjqh!hqbm7!;*X&8CV z;3aLr2(L8g6U^k2H#jTI-wc=uPwP+~9f&edKH4iOeh-3uSo+*=h!xVg-A|(^Zq^xC z<~Zuxy6ebC>gh)0zAfDlEJf_}#z7TFu7t3xLf#NX);C?$xZ~Gfl-KVk)LgbZ2ln64 z39_=aL{iDJvTHQ38?bUHG+FhuHBdBFQk=S!r_|divf=5tq8fwQ zAX!-xd>Z91T~osvr7U*uWf;i{TvJn&7+;-m23%!X>ExjDjIQb`L?|8-C>?PcuUb^O z)YLs}GI8vX8E$fg?2zSdMD_PNU)hZ5IZQa4O$0eiKijqn0|``{%?voqEt<_8I4nGx zEqpmFLz^vQIjmgVWd@r>{;;FJ^uaLbX`GhK!q*8%-bn*EAP|~W&^aLR+)+v0jazO_ zVOtzgIGwOL6_YufDO;QwIbAqgEOR-mM;feuhW>~;5f*Hu{M#(O{BW_&0m&=CPA2Kb z`r&T;wZ$`+)9bf~I5+3dmX@DA9zR7rTrC=`TmC^cv*HB0aK%D<+-7^A6aQ$b|8dxu z0}Txzd4`671$+SL&;S5H0}Kt+?@KkF3pL(z4Z%}=nH@dJUSsAuGlo{v?~^)S(^|j& zXSBWl=>D8D@|-t!U$${yb9UeIbUyNRI`wxt4RAUMabAh_{FC)-HS6bby4y*H`)QWj zX|~&GuG@LJ`+bGoTeazHjo!uY?;C02^RbdM2~s1elEo!be)Wb1E#4|Efx2x$&OO0C z{lSsL!O_FPF(Vy4|IN@+!pKs>^h)y5TFTaX z>d9Kl(^B&L{Ac`B{P|qW$z1H|Z0zYw%;}$))6uY#{-Bfg@Z+Y8-HzI|vHq#a@rlWa z@rjAy(eeJ_spig+vbxT~ik7UBhWM=V(8RL9h@#M-)NsFuUp`@WUa{tGQ6`R|`lcTC z8X7(lTtQ+?u3Ypw3^dZrtjzTEWMmYWc({0kOynfeWK@PUe1_Bl2GoKER6^G5(sqI> z4&qww+&WPVCdG7~xincJbY(w@%bXB%T_KX90g3VdGYJU*|6)kbP8g46NZ)&a&pS-u z3vt2;XX2Vru&d)aP&n`aCzTwZI@lRn1PvMDAF{#gCY1clv zht4H?)>Styjn_df=c%oi1q~0WBhPV*Z^I#M;;VrDzN9)K&d>fb|@TG5Zep!1v0YH@UU)l)-u=qo(r{X{^!1!J7=beWxa?31}xtq(7x09 zQ`&${M9MA3{jg|5k2tsXJ2Xa69hJ z;gOSfv;Iq?{#!SgIC;{ea(^O?GDUC2nb@!)U?U=gcIh+lTrl@w<8j+W4$ocpA>&}9jB%l7tpI=hct_G8HL0iH?7M9(b6;-E1jD1bsqOqH6t9)N51;9 zFPLw~Z25<+M$j8CZHJzjQSJPUNMFtfxP|acjy&)C?DJ{KZzWFPg#1AktBWu)=ch{Q znUFx95>67SAcAd1$*kOFq(C|Q!!*@((dsb!$3fX)&S_Vffs!k8NWKR0FovbI#lj#~ z01$OCGmmQ_Em2MQe(10`{kb&XMA0ox&DlpgBFoxzHHg$i{$^xdEt}&A-5C5E&sD>u z3Od;&Anm}*D4wGPA@6ryv&K>g#W#(UsM1yJz49MJ&(_KFm~5xz%`C-*)yov~Vgi-L zAsS^3Jh1c`<<2|^`7^6nl+}agrxzVp!?c&3hE_Z?sXA#X|I)B6w+H-QwksHuAx$3t zq(U3S5efIpuE6&f&KEHyzq#iJW4<3tUJk>pWG-So4ee2@ppWeR_Qy;0c5H!t%=|OB z%Yew@j}M8zJ%NYXj2x9`&|H1%6u`kEN54EafByD> z*lU+bv<3IAngAq-}{&}CQDf0Qi$!7ZbaMKg{<;eA=en_C(F}{8m zli_0M7)GzR-K(!P>E#6L#dut>uebX4tSB;cQ~V1p|BNKs7l-s4Jr;%bTO;AzxT7y5 z4j`{NSd^CgB^&63$HA80?@tK+2B`NVnLXYQ|3U`^o-YyN!-c+MRO7{#Ncw!lbd<(4 z4P%b~``Cibc{CdI+gHie1W6GBWv2bH{0+r7L-}FQ98G|ghEfcp!U>unI9~j z@@AQjW_s@DOXSw|XZzr&icCbZ5fNN%DIe&v{C8QLE)<5DQ1Aj2sR+5I2q7|MkQhb* z+|=(uQoQ)jKeF4vT&bZwxmgnF&K;?OWwCGSP6||P;Rx`~9f0n*C~)Bnj5}8xOF68A z30>IN9x60S`N0^eJ5u2@sS!f!coHpW67&yEkiY{ozb^S6;r)+M8Wxsc5%@b~L;c{p)Xbhav5ob=7FquY^O1tIMVx;Slzn@0 zE}KwqkNsIsN6zR8KXH4et%3TFSjuhc82HYd?XXQA!Hy-W4vNrI0GGo* z;J0ttV21D*8LuJ(Th{ZL*(zM+~E=w5d z)!BGu)&%!C3TcaWS=Ys+;-}7%?>+Dnks+!@L>ttyuWe${n{2r%eAeID5tIuAW-^7u z4;6xG{-kqYCUB`yD>PZp=h-imp$;C1d4=*UOflma6~qDlWGr6WDihnv9eIq`wX6-X zS1#;j-38$-lxQpdGPwWz;b+WywkPIj>g{3Dda6|L#MaP?S5~Kuh<`%rLcwfvV@{o^ zc;v<3j7_D6eGyBQGVZkn#a7mg(yP2m&9xl+U@Pe!goW9MBWBZEKs@* z4!*?_jsP2<4SR*tKPk?B%oZmMgbgV_X6LB|x@ZWz^FKVV3Ict|>_Hw#Yf#g(rzR`b?=u*dL9);0BV zt5C&dY^uP1U}~<_*}8gps!_XliWSA%En{%+<~FCdg0eC8FM}N#U5o__`yg z@0q*5QEAvUxiFb<+YF0*XZq}E{AS!X3KXzNiAGxcil{v)JZSA>RB>EhjWL%NlbVh$ zw=II0KAC;s8dp`WEgh=RogZ_?c-cPhp0>MGZ#kf zdY0%?Y3>c%5^&mbF>-z5!l^yU&$Mm;N^38y{8hl$x2^x7`(Kc4x)xdcPxhT+Ke7y} zMb^7vn%#!=&h?)+SGqS#ZhwG(e7yjg@a2G}X_=eW%q%4^mq{o*O=82f6*Mvi-renZ z&3K&11K(Qq**%RkbY0YZRrZ);@B4+j9lbc-``|ph`ilkJN{O;gU>tsg#v}7oAAVLr zeeihnGd$FXE}ZF(Z_cGxJ60NOoFIk%T-+CUY%<_GIojk|X^3=bMEr5-V_>iaON8Hx z4)*J5?%2Wp^EAv0zK&UHSBae-?$Z{XXB?-KLYH9}M? z5%}6;>Fv}v{`HVZ|JB0x^3nH3(l@=&2O5VH?uen`3Sk?70>be}fdUyfuLCvswEofC(p%<%d5-SineO0Bc$xPir9G za-aZ}Kl=|MuBSjT%^-;%K@vDYuvAX)TxPOqv>eMpm}tSoB*B*=!K#+QVXi{jY4o2& z-!P5OD2!T@E5vj(*nE`IEG=YuFvK2*-yw|B1}Bs`IK)+x(&b0!lnZLRBZTn`jPVuB zb6%)Xnx|KgK6pw4Eu>h*I5jkvQkr(y+ax8p8CJ(t}^kI>XIibSXTQE1cFtfqy7^ zn!?eQ(}s#Ne9tB7$UP>1A^POV?)-=H*{B7Pg!m1PtK38MacL}ccueh~XQ3pdb#0ur zA*>1jMi~I3pa_FK0|alW0zt53kdRirz&s(KyJK`(d~~Optmv@81J!rc6o*T37f5*H z4=J!0$A}N2loi#pK8=;aVu_mak`yy;cxFh9`foFeGP`rCIMosdTkOa+m6!vn$h&2O zJ2T6*yMzT!FPJ*b{umX|$rL<6k@I6!T;34tKP51yp2BuoextxZTh!q;J#=amQhGY*z&rYt7{(jqSpC5dwU$OB8;qRpcmX*7uh zt1$mDLK7bDz>ia93mT{hG|K~4SmrqqYkbreK^p-gWq^3kDCAcukNGI7X`9NlG$oJ|B@vcpo5kW&4aLT9`I*eS*9Ooq&-h>pj=S3 zyyT?(OswvENZs8{LCR z!_-w0`!_U~NwL48yo{$P@{|A}%3!V=UdyXAt*dWeP&%a{hwv(|z2YSz8(|?Uq@c_}y}h;RvMFbEwvfb(!rQ$mX@LCbpiyD85Qq1eDTO!oP zR7B+nNofc)``X%- z*)XKtHjPkBP*&Y~+G^_fTY)Ffho`LPJID<$p$D-nt3$GdwzSHou{IKfe;oh%wNmc1 zO>3>OVW#8$dzs8{aV=a(k}ZhZJVY$-J}i956&|ytuY?|JeGyz;#7Lowy#0gz$=1Yu zq_zDdwf&@d{d8|#k(pJ3nblm89oB8Vmc&(GbO#*ZD{oHQOMdop+r;-|Rv)zY8BMf* zCJ_9xZh|#xjC!qHghPXBAB040{t{IiR3y+HS3$AWZ%j8#wguy4(@#m)Z+Rwc-8t+w zKWwkt{{^*ABo98+5t2j^AtVl#L~+Ce9}>)h-(A34+2UDwl2NIlU7P3yke402I~i<& zA57>dl9L$}Wvc1a`n@AlIXNC5WLIiP#$>(m6) z2;RFF{>H54-7N7JsTJBjieGb7U%;a{^ztxebs(i4`YJ*d>c6NbeC?AHp<5GuZxaK$ zpBVykwn$S#^m9#Y^TcBF62JJrWzWf0&1E$V1#&{S%K#u07s!Pmzr`(R>jAzZ6-sxB zOT90Qpf4Kh1&in{LZ)w<1lyYALr`uZJ2W1c&ttsMD6L^$XC?zy2W&hm^4v zO0YKCCD~{<->kRT+O>`Wo<$Um$Xncq%cS3ssajusU-#cw7bVzOm5bTUM&0@{zxlp$ z$UnEEw^_Nj*)X*+m%Z84wMo3Od9@))8ab)k^6xD=`00H3onXu6?BBDTB-ZOcfczGj zw={h9R@lfE@n?rELqVL!|JZ%J?rm0rZG7-HG2srWz8j&y4u#JSmCue&(hl9`4g<0$ zCgCoNz<+k%XO}Bym#2G|Z*x}wyes76serR5roSiQvuEs%bOwl)-Q1H0?hG)j>}%%iYj^MKZtm-Y_YDaT)TWW2Lifyl4lI%V6lZ>^r5_leA}cB$*b5xG>K|hD zBX7@apSn7Mud$KO3=jPXj{+_T6!Q*QWVWr-?5<&9oDpGT?1u-LVPcSB)$%}E0N8t` zqYNKzqpc&C+Fz*`N9j2rqpM?Ga#B?Y;6gLM^>a)L_PoX;+I9+5y zfniS=KotMjml!V7^u8kQxsn`Lxc zOp%1uuLI`=b)7RT{S^)e^bfnDadRfgn^g339tBXU!O|}4NR^a$^Z(X1Gn8M(6 zdGr2*>GFf=A%@}MI_9Q*`W6QDgqjibgXj_1cRDzIaVKzmqJN%P4U>3rq~>?#cy;#S z_u%*Mf%(tv50pC=gET$}9G`P9MfG_6f%SEW7(N$n==g7Zh4^ zn=beWR60%UzOONO(D!?6kbmtZe7V1R?gBr1GJ=Y`Uj}+E*#EpneSYq_hXIou^BBAZ z)PT%U9tC30*c~1$1z{s%k3&&j5*0wO4i9Dqum85M_T|0AH4Oezc)pcb288H%Q)E}V z=XApvuyV#=kveI7a5wpY07@wGDZXl3vd^iChRH$t$Q(f`j3oG6MrdGksjD4)M)(G? zps=f4(QsUJydW1;`H@Kafg;(@kW=A!dPX1UX9aWFG@hT`XU~^~gOSKOJ{aNiCeutV z3>SA+DkrM{OZU}I)j#RJ56sv9FWqm}IpnG;S3Mf=b)mxwroE~bO5w6mZ_@!G4+J?l zAPaCaF&mYsV0^e#&YG$XQ1VL1hk5RpB;i>xfX!B2l~m zh4pYw-(W*T)ZOX&a6I)JTab{??dtq6G4wL$=iR>Dd5Z#K1Q>{qSf28fK~))$mDCsx`Jh<9}0_{l41~!LKl@a>;)gaE71+o$1%A{4-~Y7Joy6&eri6$N2bMcp zYcgV(U+bsEY_P2S{(Hw`!uT~Oyt){qJv&+u{*}kR?XaZ7zT+~b{G_~B0Ii^36D`bo zFe`Y*IPzXR+?os13yC}6>|KL~h25p@rhD*$)v+Mv8_pm%w1t&*1RI)1^VX(4{7xvc zg5y61PK2}bZ0K{#o6jeH?solAp}pJ<)NN1Y6x?V=Gg%jg=h;Wsi=?L==Hj;bb0JKh z*`ve}AFp#2;Og3XAklZr&H3E0AKIZt(d}+t9Z5*g=ZJfw zOh#-HVr7j+ohnd!YbINZ74Wv3iZZ?B!K;jNf{#xX0_&CM+J_m*aBD+Ef=tN2aZAgn z-$=x4Yh!|TNZHtnWi&+8lSWPJ3iiW8)krX;B%VYAif+EMi{vAOYBpjO*cqJQg%f|b z;HcjQ`TfX1LlFeywn;wFhVc*X`$a4hLWSiczbKMkrY-Yk;%ueE*8!;7A){DqA$1b! zi`KiB_-i|vvm{QXw~B7KX}R|pd9%jnw;D-3rcK$2xWC9$-XyTz2gN~%DH}d%;p-dk zxr@KT8SU*z<=ow7p#)oseM3+RgtiEAQ96QEnj`Mg4UCP&Ji24u`qvWzNxEtK3(E6wyMO!XP|S!l)7sVyZg&eh{s# zEUgML)DxI{y%wd0e3IID^8m+PJUl-yepd^#LvxrzUB}xFyB#5uGZd4;(1RMoR0S`s z7hcvbn;=^aayU&*f~vlonws!cO=WbE%1OU;pHw5W#4kUERLv;O)&Q?|2qL(It{_ZI zlQXp^qssY=h3End6=0Fji>#SlBG)P{cbozdu_QZ+o^J^Y5<-nITwuUEb3}z&?gLmJ zZFu%nVAb(pNfi{tYHjfTGo4=QejIY}x$nRiXQ=Job;0vVE$g5lbc$%uEKt{(+qkxG z%7m{g5da$jxbJp}dXGjm#&nD*^lv-2x+vg!BT^nN9wn{_lE2D%FMd=n4>5)~MUC); zf~jC|9O%0JRn`xHDVTS5zMFn$w6wZc(xPBI~Tghmw&LthNaCV*QIgF>bt7sKK2y9rK z>5C0~T)Bt<_>HI@alZt2v$b@4U{V=A&&J05NB8v~SC@LGu~LP5jnop2I&-=s@}w0{ zg6OzOet#A=>FAv)LGk)GnY*ex+S%EA{4d?7oiY<E0n>iK&09C7?7f zW%axr@V6b2o<_t4oD)*l_b8WSMwK>gl55uY8AClM%><59{^0-R81bBT>vqX$Xglnw ze*P0I;97vaaYVrDRT-G$TEe+;tl;o6m(Q?Orm=CNG2->7ILB?+KKs-F_UG~t;V}f+ z>Y0V)&((!)_vV(3bBEB5wJrho_N9#r4~Mh-s~CgB$zPYgu-;oR1}z6jn_Uf89ozrW zeIKDSxX|4{c*yRm@2ZsDeADDT&vh2yUE3m-mKccOQJ2rEqiw%_W}FG?ugO2Sw@hlr z3>oWJGB+Pk&G^6B_*y!bSU*DTq@QL|z7b6A;G8{q{Qug0pNFQNUl$(#Ugs=En7s_f zUO~BoJ+bdk6UsjKqBZX=p@R4;AK>eJLHmOx1n|2_*MkG2&RuK|G-NL<0^w_gAQT4T z!-OC-QZG=K*wI+1V^+`}u^arg7r#viR=2PrKqw79J=-arwjhVaIEStPA#SXTF@YZ@ ztBFxL2Qy0OOH!XhdDm@P4?RmEwTdt+LNbkvFgA1_KDjWaYWi~rA5IbJpTD>mg(xg& z!eWU1%JKbF^YKVo;J*Ai5g5o^R8=x|o}5f4LFOBgW!65%!2)W!fv>hX-|hsNTnBJE z`?=2I@oYs`Oa@rB2U0!zI0kVUqZp63McLX1-bO`}sRu=o1}NzIE^r5=tO^m3y4Wzt zSoxT_lLV0~)A!;LmU}(A_`>%1>GHC}a&+Rn&_nig!v^zW@|DBxND0nw;`Wo``jZ%PS-3Pj!ftdU zf~KOT>k>)e>po-GVU;9t z6nhwyPn_H|Qsj`g_;I7ujLo#)JfALKGC*ze2a-}E-FJNQ**>xUTh-Y+*8Y*ff>kkQ zM&o|3^*`gXvoC{_WI>FpvLY&X(`dhD(doxo(B?ky`)Opu$Q7Z4si1-U(4tI1!c5>G zc0(wonaTLQzU;a_l#THlTg0Coa3Cot4gieFR}fP%8`1(dVsViw6O4)!OoL+R_zMC} zo(iuXB474j-(Ho>BNYM?SV~7o=cjmnz1ccrmHL}Gd#!mFJQPDFC}A9E#TjVDCuq^- z5D}bUYP-N+X}C~Qfr@g099OUm?UD(m(@A$iw!(i&h*c;unwy0FN~`?+Jig8445LsR zq}K$k;22!}6i}QGDY}5blNV6-^f%>5#e{y*L=KK7FEGeZT|h3JUr*gaPW>whkfPMj zz6wA=46K1mV~kU`*hettSN&cuLvO1p?pAkATB!fcd;UZ7sa(P=wVzLUb2Gbnv2cmuBep zGX5;gmn(IL1%Tcb0#EI75b-D9U#aX}cFis#nw-%tmdZ*NluDk{eS!v7EeTsH>*56S zAI+ciwXlj|fU^{Hk8uOZ#v!;(je!HtBFZ1@L38x7+D7h_6|grFMRc zq~KafvxWs zh5Gvh8G3oz{4;_4qfi)I|G?t@ti9TU!#rtrCDxu({D#U1x#WhB3tS@?E5AET1lB% z#yI%fIkX*nzYh6e6rKTt7B}zH8!BTK{M{^ArB=h63!1$athbWQA!S!fBE)z|?5}YS z!?3JJ<+4DH)~Gc~aTB+5oo8$fxlqZXl8FOp4GFQ$UatWIWHKyZW7-Y;260<#yq3Hp z@E5u&VD)I#L^blCK%_qDfC*de244sh573k~&G=5+lr3h#9v+f?8S0IIIkVOHbV2)` zY>Oxd0Xjr80&@}ZVk=xRl-tcHIyg{;aD8%PD{=-BKF18iu>>oyjTy6#8M2}x5v^*! z-x#)?cpl;Bq#j)iWq^EOst#`m+_%Un)uIAOe_6F|K3G}^Vlv)T{8i1H!bH2MC-rOR z&XM8y$hay3#eu@&mK|^_&i;~&;DlxHBS+0CL^T|&!r@WUEWo?`?dG7|a<{tO;s%e= zTeR7Cn!(-uP>>MMu-5c#0a`aL0!=Z{dUs?v=m3J-u=XAr#vWd@7|){F2w5HujX?*U zV+jS>JQL2S``fl2@VNMRYbtrG-f!C|XPZaQ93kb{4IU?c`Y4a02Nf(n5##J0!;k~R%&!SfJGpB;(dy+4xnRB*|0f8gf1+Ib zFW*>c{{a3gyWoX|6&ibm;ZaM74exUHlX!CnM|~i@&5wr^T_ym#kUu&X1iIqcu>BcZ zj8wjUObw=4-9|)&-j)IKiW-HL-obi;#4$MKDPT4SVN!h?9%%Q+-6~D(cH|;!2Ywvst-4K*y+OyceP0Mm z!$mrzVju_(0>uwT4{!y5y#l4}LGPV6Ich?uXvPX0BdP1sOX(niVd2368H=|1DUM%4 z!VxqUTe2e>)WTEt9Tzy}Q8`uVe>ghiLDt*Z)lseB$gfl>hT>iPMa{j!=yB3|2q6@> zA~YZ~V1mjIhVh~gqKcjq84Xof21EU_4_^_tVq^o3MsC4*QZ+D-A8;eS;M@0|q)2gaRd?5@6O<5AL^2Jo#ot19U zSUg0PWy%=d#f8?_^l;-QWrjxaiv!3}-+@AZZG*sFeUk~<)JEe{!k)<{*W#4j&wh!5 zIoSOsrNl^bkJ9C`mBgRp^Um)@8O%BK$eA3#st6^7Go__~$Qk?>dM=>LEl-F*)lcII z=PQanF%%4YkW81V3Qmw5=<}WtXyA6C89cw0+Ci6ZHi>eL%3m> z>Vx*vbA&E-&P#QG{Y8_5&z-qY?X~ebRkKKgb%z_D{N> zdoPX~0!JmkHwg(=x2$Yf!U8dQjrrz53PAyc-XS!B!1`{$O=6 z?75Iau?qbHNCA3NBNjhARzB_irS@vB@H;YK9^22Z6n8uJ^{rfYwp-`K!Y#GRXLkvF z9?KF^B_To#T`Cv|N&Ern_y#5Pafi(&!i0DkN;Wigl}g}5ANP?_;+xv!c(L^H-czF! zJ+2RcgR%yq(Mior_xxw~mmRUhLO1R?DYB{yZ^|z^?&R>)6QVTxxPP?$GL8cE7`;^-gB0N z$qY`Hi!AQ^!86m>Xj@ z1!&NT*5BGqTbGQQNS8B4DQI;(Lf`R*f}w54hnPw@QRXB^V!=~CEM0P20uxSC03cZCn9Yb;a=}4`RWRwk4M54pw1k-ddcTYmOwXaB8QR66YW@41 zW6JXPl=~v&-*D^4DAJZA-x(C%kd6Z#z+r9Iv4Cyg!Oj;UYC zRULBP1}80BG!%?yH|5_U(08 z2A4lPdMh!IvKN}N6B4(DTKidlhyOahHfR?y-(VV+qxHVV=G?^qEQ{TPlVk4zQM7$E z-^{xPK^M|BKqM}))QmgM_H!EQF|E-R!2v-6F!>Exc?^eElpb$qC8(m&J> zY$@K8%U>SeW;DK<9lrTDVP39eAegbw_)R7wSyxkkd^p*#FX*hpGri=A(hw%P(yVzw zV-&p9a$~=4(oM&3Uc7{XVsE0EVO(Y>d!f}OmVc4&M9sc__mo!|woid}{fg?MF|OX8 z=vPi#K>K-wEdz%|DU6Q76M&E>{xXgeFMB}F-YdIoIG2GDe!y0&B^OExlc|K;kK2vQ z>EP~?Nly-eClUet3=p($A)~~dY#VvqM$2+A{Ri3}lXuFQ4}I>)ywp#h?(AYqe$yqL zg`=67g>wU!#zIoCWcbY#a~S1EyHbd2K+ayq2av>9Sc@q3jfG1zQNblfKnyCv{-O#h z#5aS3AI<JH0Ii6|8h?@Xb^aLIT%ZF+?uOEt6oMLVMu_Wip_@ij8f{Dw0(r{SIB}V~}Zynhcpo1`3U8_0TGxf_FQ&>}(`OPk@*GQBe^du zrQq5x3JxCwQPeE?5jd3q^l_u8jTGCo5oiVx>MMi+`^&cQFJ$T;`A8GgP;F^0)xn;h zgu?j|X>*9d5<5Y?K82NpmVw!V8Bsf~fV0DvzKmnR8o=h*Fm&Ej4RiF0_8RjobZoW; z?epG7* zIfauKCZs;wq(`S&-lb;`?J7~?@)W#N1B4hNWWuoL6sugJXr5oNIIGtz8R2!{^uw?; z`dO14n7DXQ2^lWc1YZMqz``-LZ^}V}t8gEk&$urA{Y})x3X3RArD`x-Rb$#3Ebb(# zo@G*RtXi~h=MeEcIeTp1QkXU6A_CM?21PX%g=~)3lNWsUP(jSaxq}#NsCex{Z>s|b zoD=)bvn|3h{;HejkR|5ND=8$vA0Ei14V`UY*0np|Bb!v3O&Ns7EiGAY(N#C`u1+~) zcOxS- z75|Qsx2AQ>A3N4q^Q9qb>DJDKHFZRgFi#3MX%8V$tBE{f(|93TbYT-lJWrW5w zNM+(geYZPtQHFmd=)pGszHu+Z*n2JvO%TMvAV_nm+Rjkl)zAx!gj&3T5g$%$%r}sd ztq;~SIBLp5Cl5qW7dth|qg=>)iWl$6@5?#f(u^YpN&I8Q5q;>&gLdvcw(6xt$`@NF zMz)SYmk$ETlQ^s9W2$dLHS0nPq>g6mbJK}pF+gKTY{N%yix`sNA%x;p=U4U-t*HT+ z!*JOLiG#R>nOpPM(~UNd^QnSih=B#f$fP7#1tf%|r0U{dPxAFA)tND%?#Khdo?{M8 zS@+@TC3TtTVNhf#Bt#qmz=*sBCgYc>e$oVEJ@UXiCJ1y(04(`3SE+ugp}|D-W(Elq z_n<*gGL-32KIM%OmA&C)p7BdIDKqI1#&N*|s(LC06!;z@)o~1uRWXjm90bGGN2>@$ z11`V?7Q#eKFxSI&1eq9zeQxfe!Vu@Dc$0L*2eRJb+eJgsS_{Eg0%-pq0E9q$zmkJ7 z$l^ABBEB&qvd|wnCI_@gOF$CF1PazMOrn-x!^m-2IcQ_t&6Y77gE$yNJ~9J2a$^*F zV*}2@rqBvVhNMW2BuSQ}NuDH1u8OVfQ9<@aB?6ZQ%psRBB&YRaOTwN;;vh#7AWPol zaP*{4;>9tDo*2%gJR%emkOM?|p3DWMQ_2KTKBZepC0`_i9WE6I=Jj zltVGRW95kkRi5QcL?v1lhFY%WP&gyWsUw%n7BRrWF&O@XZRr+M8i-r=B}TNRUm8$g zlEpC~6T6KAM#jlADCAzM$zVRF*+3>@0H$Q-gfUd3V1;32-U)AP=3r8$XVwL1hUQGX z0%mquQIh6g7?x_H#DleCV%FwfFqCderCQd{JDHSh`qXC9W^Zc5 z^syTSz`}9rg?3P7BFY_1q;%W#lwOBPhgq z&SpiFj?LT?cV5JH#%D#`CWMJYZgvT4$Ql=!XL?S=db(zN;!RGeQ%$YWEXfoLnNmT{ zCw)$YcM4WCdI?{yS${s|bfV{f3h4a2Q-RtLP5yNqJ+;#uu^%})=z~fGlmQn97{iyG zhJ}6*S_WvV(dbzMWlnu4gW6GW+EY3S5d-q%)yz+d=EOK$rOSmUmvp9u;l^6pXpOoh zjFOETLuAA;0AzZogO7~qKX61te8@k9 z$Uj&rrgBdazCt-vP!l-8F%Uz3ZV77|my=?sdj98z>M0t&0zC9-5OwI524^0f4R-oy zt;SN2?q5%B3`QISJTzf@i0ML5>U@;M{z?2pek>~rF+(y$>oPDVotnvWrK(eAXpKtF zG0ws(gabT;tGJFUxt6QBo-4YhtGcc$ySA&lzAL=OtGv!Dz1FL}-YdS&YdE|DiW-Ko zDnyyWfl4%oWJJeg6sb!D2&&#G!df6`vgA2kssGGS8%Zn=xzJ4Y>jplod;DudTu5X* z2Enq>A!ckMo-E3yETF0^%eJh`w$sbTtjr1`EHx}*ajZURY*6AXdw48EKx)WR#&g)D z&1QtcE^K)gEl+BM&ejB?a_C=ntfVdk&@!vC;>Xo0ElWHnWnHM&`YO}jS2*?RWAf~J z`0SX{0f}hp+K$NA8ZFl%me;=iZTOk3QYb2E+UW`eorTz$sped33ZJN^UMI>$4 z9Q*5>_M*O-UQ}mu6XjMo$d+edTHZ^ZfuUO<#xu4dhX{k zDd~FN=C*EqnJ!ttK}jTp&yJy4Rx9X=S)IbJ>&mY0LM8Af1?^JpnWABZYRRd_sAC3i z?v7aN)p^GF zf^YcFEdAE6{oXJBdc{gauS{649`>&CqDK4y5Kc@QzaPsDbGc1F&QtJUv za7-jH1rM3waxVktu3r8qgEFMTDJ0D)Bm-GqunD(>1)uQ#<^_^~1RMme6E5%eqV8Vo zl_^+4CFHOUdqOIdunPb1tO7Aoq;N}w2z}fx5Xvxx{)t~agDc>$4o7h%Sb`_Gf)HQv zqGEAT5HU;81$|U)_G++&Ik6O%F%DaT6>BjTbFms{v0c!?S{yO<>Yx&PArzOf4nwgg zKtme~F&p>sx!}bWjKoKzh2Mtp0$Z3em;xS4@g1W=sRHr@|FI-faz>ml98dx7CbESk z!yPyB6z_0qN-_moavz)WQ;M;1IRi9+auk1Z8k2G<%W}FbE+-q;GMs`d=W!HkLnPDk z_oA{I3o}Kaul|`H@(==Wh$TZQ>~ao&G9&}@0edUB=BqVdGd5?lHg7XGce6Ktv$*an zF;9dRATxcK#rkTmp)s>Fhq4YwvosGdtjcOU$AqvFt6li-q;`a}#&83RSuVHpC--nY z$1k52v`sW>^{TJ2f-zKPDS-l~_~MKA>f19UgFxqTEF*OA!oxTN@hrdtUVMQjD+Cqr z^YPXfaFP*-t+CWBs;@QyRsfP15`V&R;M*g zthIWi{+5SsUPOeQ*il$r!^RVvbtTyJUB}jVvUQiZHDI%ZV50|IcO85Vc22lLS>rJk z-?U<9Zed6EMNBqP7&H3f#9_0a#!+@oKm#f?_A^&8T6=crTDECR1Zo!rNgqi`+r&*_ z>`}L0YS+Z!xPms6St_^!WY_lMuC{M01aJ?9J|nS8hcyZ&w^$c6Gc@;82e;!6cW_I0 zQ0TKmLpOG3_f1fDZFBcew6;R@vv!X+dAo#noA!D41W+pk93XRfzc+kWM0!*9eDB08 zaJ6GBcYN>n71y_7`?pso8GjG>egimQ8@T2cHGwbqdn0&SJNQHIQA#s7g=05_FzbPsrj*k8b^NbIfxwLqU=Y?qe zOpdE&jRW(Kvjh-XYL7eTj+;l3Z)T7Og%Fs59c=V^{6ZQ0AVn?tN}w+t=y#GU1ZfD< zmZSJeJUUc? z`dM-}2&91~|MUpr{+f(bl(8pwgPpSwbUK)JgZwRd|O)WJURg22atv?p7+ zJG+_JLA$q?nVWgJ`w7h`W(~&K7>1H6@46FffaOn8({oGXp_`i0o7Zvns>bwi2eaWeH8 zdzaOp!PF-^+Mj{iv;DV_d_|}OQ-DOByErp2wkvyrGL-hB)O?=bd_hXJRqVn6n7JLG z0#l^DJ~V}}BLXf!L@=1a9YBPiKRHAs0U8YdEcAjF1WfE2i6l_v-@sXF5~ZJ@Kc3@6UoR>^$N_#0aFpCP2ig z-#P5y5!C+?M=u7ypjzoiOKoQ(!{(w!WStKwfe3g)7Ns}j0 zrc}9-WlNVYVXB1pk7iAqH*x0Fxl`vCDmK-@`A3jvQKLtZCRMtWX;Y_9p+=QDm1(iS+lduPP@96ZCkf*;l`Camu_9Vck$+(3XiB#VF%Kr$%Kn0 zNKiNnv=LP^mw|}?4A=Z+#tvbekquU^X%G?30vK&JZsX5rUM7Oh$I_wnb~zn_2pfB*k&;>#&v#z^B3njGT?Cj$a& zFtE`egU~oK9{XpP3&c1BjWj?jj;7)gyeTrAF3fO4(0VD54K47g$%75$_{1^~|C#Nu z2ub@bIGT9ttVY}ZS?Dnjk1I^En}E}e#w3GOkwpNZ%%D$$ef{vTM zu(G?F!h~Z?n#w#g$~D<+b1r4pYfsLtEOCXY`Q)pQEI0Y=)6YKv4OGyp7HXrPe;m_i z!8Wk4!cj-7P?Q7-gQQT=AY~0x=E+nFEr?OgHV6wp@e|Be3Nxv>?-p z{#lZ?Npq}m$A5bK4annIsTI@-k&AFK*@FICaz|EO-F47s-Qp6wX{8DZjxTG{V$3hT z`$tKECSh93^`BfuKuy?U5x#L?U19B&WSbtkV_}7hyv^C# z{#6!MnlPqR-J0xYP~R%WhU$f)W&ij98rYBpD{uh~ z6cd)hPUgQx1rUSK)0dj0BD>wy&Ud|=p*L)3Ll^GQUau(L)S%%mtSN6#JT&4Fk$4vw z)`Si}+2MsUl?F7>;aCsD{y-GjfCxM7!UR~n!`X0DHoNh{era$6Cz^vo59MMBSkyv3 zbV9}roiQ>>z+xic*o!iTFM%}S;)yb0BO^g@S0=Mj8MDYXnh3!RX;4fD|AB-8ap;Tj zLzZsr7#KF-F^TqqVN_(8L)_8uhN84xOi)=8nxvAIt#supVHr!6fJc_Kv?VN2VF_LC zl9#>oG;_ zxxBTla49sP4JA+hGSshkk2b*Nq2Cdf|YDHQk0S@ zOWho&O5rfHD?~G-84VjiZOXiXhUb$`v6hwcIW95TBuzveYEF?l7gtz9qH|hYRLYW6 zsZNzHG0lm%wD6_g^=_s#k=?cKi7nZQYoFc}t5C2sG}=-1X*gwT*LJ$ix6V~i%3x|! z+oOzU(3P)!&5I6gV$~at%bwgBr_$1z*u&Pus)8+R6B#=+EqrIPe#MttEt{{n_B6Ad z%@0KJ${vb(mb9gniePP`L#qPKCp6KLm4=4e*T&R_kDaDf*NR%x?v}SlQ6{x|8(i@? zBch?T#4`Sbn_Qd9!W5-&?sK7A3Rxg!qk&bL4P%N{#acJAIB~2?y?I-ueSy5nHE(jq zq>fp@pj*mkJR zYPM{L&@X@&vfhg3N&AUk4bPQaM=R@wK@62=BxAl^v08{xyu(;Xq7f~2@rxx9;G}4Y zrdH}^P!RhMm|{z}J7%nv9()sL+Bmh^P4SU4O2eZC1<6fb3UN!k6(KsA%3fRXi?Q5@ z7!OJdL9Ozau}KGS%tC0h_%N8i%nVdS*%a_W^PBT^RIo4JgmmDt9c!4(kggokruXlp>c}4 z&Z!j6xb(51oflujc+pomX;Q9joik^YB>L)hw3C8ZI>;K_!d-?k)U)hLSi%#haK_cj z9dEi!o6gmaoso-@?dsUJEfu~CO2qSRdLg)f1loIlqT&NRJxj+^)*QUGYoi1*F`=CZTPIAvYC(B5N zD^Af|Q=GyT%a}OfAun8(B&DlD=ka$=YT)iLIq2i^M(4lqd9)sQoTJ}7(tk&j_R^tS z&Q$%F$V%a9uD)AfeZ5ybDpsR85%j5FOE0)kMGIX(_|Gc)+0)(>w*SNJa8HWd{dj@8 zKV|Q3sylo1Ts;~gP zi3|0Q>3Hn5hQ{Bf@GT&)FD9@9Tfz;$?c+4?1Y^)9D1!M2&4Wg2|ckb98msjr~ht( zcKXQ_gKi9M=L$>Fq=ZbQ#)K6Ws{rW$78mdqzbeN9uoW|mP=b#n+K?bFpbLo6`OvNh zx&ZHHVHk^1nX=FMW?}h&j~L&MAb=0=ua{%@Jh|vKt?g7#-3d7h?$=l616>BcBQ7;Id+r7IoKD%LO|f^j9A zkNLV_BSkP8t8wn6&u5M=`#OOj+%5vI5j>919jkE{s-P8s&mjR*9Ell9hjIEY03e$H8>=rbU$Y^}@$XFYCN4lx zF2wAfF-SBsADJ&BH?lXg5AVLwIO&ogIkN5&@f;oU9i6W=+m0faAo*7EHE*IZY2q#pdwW7tuLyLL+N}I6KlVjS)xxZbgxE`kWL+jYCQ6GDw22IdMWo{{c9g z)K7Fqy%J*Eo+8u;?oFYuYnZ_lil-FJQ#{Hqw9t>5*i$~<^G`3T%g%#KhoTL+5gxl! zFefx6Bh4V;?n7IlMTr7ZOLQ`I#zGbTMQ5aMXE0S#%k)Ks6jEjMGKX{`yP)nMwI-G? zM>`WA&2boov`BAIH3KvH0uvvp(Mkc*CWRDJi{d6Dbv2{(Ah!=nx3eQ{^afXTB)hXY z|B_kH5miSLMcocsYhqKQ6i2NUQ0$K^%G-_bgGb60aB`<^o* zr%_A&4(^PVBjGMt3szgbGe`cl^jW<#TD!ALtLSBm)@ZXeG?$iJbF8aoFe-A8T>DU5 z%k^f|Y@JNu@pOV2TmcnM!MPak-FRXd5RV66Vc~S5DCg@alL%kgZ(r%Q$q02}D>O!L zA_aN2*cx>ff*}ifVOR4qJd(6CcQcuYlpM{GWV3WcUo}*(v`k5r5HWOetJ7&~P#7Cm zFaZ)}!-EicwgeZ^AS3Yj)=(!@luSRB?`lv*>(Xb{E@ZFO?3~r?2$fo=RY}W+cWZ)7 z&2(G&z!WRx|V*mGK?5ktCp#Ll;v!IdU8` zS1&4c>lH! zl{a~rmlW0sEOz1TdE$0_{nUKPxH@DlYr_V8byOi4 z^+)B>A8*xf|92uLaznv1C0DW}2GW7=xEVEq88JaJ^H3(Uzz7!DAn~~F7M33kS%PIU zkns*BQ*#(M{xo!@j~Ul@AlFeeYf?mUH6?KZlbIAEH3yD=R~=t+hO2aTwG|nOv5NLl zB{y=9H`0g0v?g(48fWrGpY~j)_FIz}4u#qK#8`}JqL`7nPnE%W>oghWLyC(BEXaZx zoS{ye!7P%&iRVk2;pHEa`J2HxoW*&Zv&Ngr`JB-?oz*#C)1r*=!UO5zjDMM~ShrjZ z_F%)Nh^cCxouX>5c3l7YYnZ`%pErDI;#{ew6zr=R*69?)?;n=gi^2Ga#@U_e_P5aZ zD&)Dd#ME3^H%^~MpB>6Sv&49-!k@ABpEEjNlHn)iM6U`@zKX}vmO-Y;^G^R^puhK_ z#aEpEEqY%E4-kvZ4T)L>$4&-;Yo+5!qy;62LE34UI-qK?oLY;Ymx2S6$qr5MshuV( zqS>JTfzsB=PR06%QbGLOw$g_3c`Ev+0hQdW*86-^rT;di#Z{~ATB*%RhUq1iuS2ix zC93_2wy=e1tQwn8&hc9ADV)Kjy#g9^!Wq^~qRMl!pZM|MB(&5sjD6az-7`+Dwn#<$ zu89J9>pHG)!nCIauw{;`-?OnA(4_rI8H_<3#(^Bl;kJ(f8P+Pw@(TJE^Tb`?IGOqenZmyUnyQaHGSuv=2MFA+M%ts`C748D60YIAHz) z&^x^~fC*j!8JI$fZF(y_0UFjizVONw;(KcB)h04qqM-P>JKMW=%_Wcmu9X;{forJm zTEVp&pu1bZ2`?e8#P`n07@VL2(mTU5ya|kC{T93Bd8@IA%j=P8bh>iinJ^jcjfC3=k9ICezTmh$(q8f^uD<+}U zwLKCb5!dX*8I)nH!MY|K5AmqH6d2F(HZhrrUDPPO-QnFXu-crGq0^T=!<#(<9KZoA zAipJX+;!p+<%HF>z169gJsg@Q(&ej>g8Y;r{CFL}i#gsi?cG0ZC6z+3`EnyEUOzHD zo{WJB?mfdRVBbyNve}8yjABmbgc1n8;18ZFPNCNSK^y#?zEqyC{*bxjG0oyV4datS zj3ubQ5L7)BnwDWK#{e&3(K$~W66${N=sq2M9G64b>KW*#S+LD}R)p*_o( zi@wo(KGT36DVREl%RWD(#jwoD8I*qMDd6c%-U%Ar%enaGfl?A)o)kpf6?nQPm;v3Y z{P1TU;OPoq+urPhU88?|$n(O|jgRP$V(opm@!h`LIw-|gN3UXyB0ti%bO zD|Tt!NTKmoei@n};+jG6`zk3l-|;7pEtHz_k+{coKk~0aCOfu|M-tStRnEA#EBFu zTD*ucqsEOKJ9_*GGNj0nBukn+i4xuZ!N_jcm_ zb8*k2n;2t#4MyO9bO~r+UVH5aV1X71xFCQH8tCAJ5oUEkCke*2L>C@TR@pznfSB24 zBDNM9YaVvt5NQWx2-<6>UEokc6QxLyi5=M%AaDL{_#2NP0cW3ILTW{1kvjsZWRw3G zqXBd`Q6K?zKb>L;ctcs@%s=T(l#D4_V%N-gF+GzCDy5u~3Nz}x>13R8&PivTcHW66 zNeCY3AD{+FbY3k>(<5 zF+zq=jV7k}Vi!8z$K<0T70MBCu;zKutX|nlYp(Al(}a{dRcWOI7L+pPP_Mjs)l$Ve zb!<%45L;9!+93O-uGU_QZMNEOdo6x`@)=-(g1QRsghcYi-=Y@^HfWFLDwg11Svdw7 zXe3rz8fKZwD1@i>>f<7)roEV2Ypi`{BWxrpj47+N9=Q>&D)A_>t`%c-ah%>9$MJF8 zp7ja^zETiDunwSe-I(Gb>kL!N7G+5@XNp;rM5Q=GtyLfI%yZ8^{|xj=6cgH~ZGa9q zDA5e=1tg+}wrl9qOFJEPZLP|*{+SS>$i~oQvn1RhDYNVXQD>se!jQkAiTX8*V@LY7 zhF^P)&}KHS6r0?kCCzlB`5AfiVh9qAU*LQp4KLHZ{e8Hjj~0$NyorY^ZsbE-es!HI z(Q(D!L2rdjuTqj6?65B*MQt)!TEcpkV`>KznnqECdd};8j(hI9@6NlDd;SRS;PE0x zwc|!ZU3{X$OU?Z6P)mq$+Ff|v;q*O#m=K}W7qn9KT0DWG*PVGdMMHRdC<BEL0h(m@PU`;eb9oi8wg;94c7}9WK<8 zL|}oeWkACdsE7n49{I>fNP=}w@q{vBk_>1Kr6Qhy#tm`U$54uLl%y)tUz2_u8^E{ zW#tMTD~?3Ia2)=ZOaz;7(56|Ikqq;6=_DHrBn5tA0aO&ykd{=>GhE>biFm>jkgTU9 zpMnaUaYbhrS%!CrQjr>d@+zh*s6h{k(1gOrjO?Or#Q|pl3ZHxk96$f`nC>3biUC zyG>T4cAr$JTi*)TxXKk<4!s-~CnmrHqO^->{0m0EI6+*JF{5!*-u?EPzcacrnRJ9B zN(CFzjs6zXqQ`4&<}|mt&M{OfHMIyGF!&F3MDw!}5$#x@aSBhY(-NjAlS!Uoj8~MS z98G9~6P$30Ql!i&o+w2rP;m-Vpu!Zo&1Y3e=nAcFwG#9EDp&!EifL7=B5kDzGoZ!E zW(*XRbM3BozYE^*ilwd&Dk(*a=q_VEl$PrK>o57Z%m@w^g120yeF^x|`BDyn5u{-M z{A)zVR&J#Jg(zI9d7Nl&%o`F}@PZo*2L^-X6{}n4mRvzllQ83`;iNEcO@R(=aN`^o z;E7KlV1aWG!xgcG#W-T2Ce=!WD803Wb0IMau0q32aH7a|E20fzQKXaG<*s;-jN~LM z{&~rFts@+LiC0+4QBjyv+~itmEwu9C`K)|MXA z@&%VX_#Y0AFoYS*s;%4 z*RY-_lYb3tZaH&K!v6KG%$d4PoUB!1`5iIVu{}RR=14gan2-CWE@VTJkUsny^9>|fD3&7-~|8m zvEy{`o+bRC)pz{8f57q-{Hp7W5 z!}FhaMmUp!Gqa<9`OI&=^Pdm>vh*q9K+7cI!BfMK43rtg;C;F^-~=Xk|Mr&;mUU*g z)ngGqkf_@c`(6eiFfX>-Q$^w_2v)NdTvR9q54{2!bK_YYzuB{&aocVG2>#5k>Y28c+_r z*8#RQehoMP;1&T5z;e5l9rI^_RpEZv0e>yoJIzpSu!n7|SY*fm zNK!J3DF=BpNC3Ckh~)-}%T;!5wG2WwWGhn@r>G^rsCd*!kM(Ge%rqOQv{?7(Ryw5@ zdlxkCL=;bF6eARc1LcaoVu*+cj^UVYv8= zp1_CvNRlNvjr#a7m$i>3X;5!A5mZo$K{E}>RS5)nVP?V+H1~%Jsf7(0juH?7xG0gr zQVNvx51dDd_jX-lHxb(Lj%kP;p~jL^NtK_7k{^|lRjE)HL=j5(InU4xoVHq};93W{ zeN^Zx9Uy)_33=XDG7;$$Pv8kE1ZrhcT}=ocrody2HzwM!idqSnfjNX%DN9i%m<8pM z5&@IF!wj$B3dB{6+Td^6M{}>xRHO5PYY$PaWp*^7kQI=bw+DF=0CpZkNEcBGY^Zksz@6B!ni3IYQK=2^>7WmqWOh_E zZd6#Z)LxbaWe`d$-qKxZR}9?<9X;8cT=;+v;F%6^0r7MZ6=<3g@txq&NkC=_8Q7p2 zYNIy_S8VoIRWn)r1zGr$QaCD&X4f1FxsaM!emxNZB}0)Kv2iW>4+0s07O@P@kP5mb zEzU51LdvCGI!cvAMFf_fVY;5jlxF@7XcVxZ z6h~#8)0L)w3aGfFN{N+5=qX_A`9^$IcY!KJ96DF!kqpL}lsDuJXelLGw*g%Tln(#_ z5fB{_&;%8!5h7`)5;1t#aSAwT5ueAXt?H`V;$$Mlp7C`!1y-SH_GGX69`9LDOb83X zRg9ny_E@m75@CWyFMK<+>caT1w4etxe$xsgQi1^bE!DidfhL z(3)~gFb?8CTaZ=`;h4h}tgz4wI9m}@_Y{4`T*zpw$53e$P-*KHxFTZ{8ek0gMim}sNMp6F zDM7VYE4h>F6b5|+ENn47)iAP9o637$I|WMBsqaR8)?5vB_gz+eWgs}bm%5+E?T)*De|5xb1i zwj{A()@hMj;t9k0np)}E&QB}u5@w{L>1M*18YKnzxahR$0_1e#$n!K(6W!5177 zB>Mw1Fa!4x4j&A{=Fq+0%fA0G1o7Ju?&}fiTf*miwl4v{<~w@7KnCo}u52K~yK}!m z@>sR{70PlETjINxkS4=A9y$v%lJH2M#yU#8#HS#^R)GuytH3!y4s3X(8RwKuOTkcz z!Cwr<7(ufBBA^F)APV6?3~5XZ;lRD#3%(PQw8JT}p2lQ`CA5(P zISB&{R;g7AuHXu>U=)sI38X-8^W&(tN)6VY<&+!~{Uc$v;JcMIh#%HXxZA`)!!N-VD5vHrj<7>JsoXU@E0Pzb9 zVDSDA25k`}aJCF#$fz5?fIPlkA(Enfos%rp`jK~eWz6aef|Dehe(b4|^(PAsn z4*k&pv&rtNz8hV>3n9L#EXWd3&}LA_X}i(f5(H|n2W7ko7y;2atUJH#wgrY*SpiQL zQ3=OPz$@el8EXo{rCXLD!1ELdkKol`9SK}LPoz-JRk4%X{2by?tkaMT{iY1YH>ne> z74>Y-b&bLJY{uaL1Yftt{QSlgF~>h`06!hWrb_~KY{#IW!XjP54h_c?O}ZgX0w_!Z zm^=}PEZK;y!lO(Pjx7;~{n(%|&=XPFC0*JkZOUhR+MjLN+5!whUB;S#3l~uWYX0!k zI_#)mkvvx&1hoM@dBO@ItE zXV=@!-C%*&XN&{@FaUi$!hapmXrRZh9LS?*ExBL-YJdVKZ~`Wv;T_)L zH$8C6W53U%6;oFcmH^!LB;3y3T=CXby0r|={oK!e3L43xR&fkbV%<2w1jV4;-3{bH z4in!U4oM*1A1uOd9Lp2I!kS#d?S0!45#J^4*#&Ojke$f+EgGe*z95a?{^l#;9Kpxz zP2naTNpDRbiPsjuVLc<3f(VEy?gpIm6ZNdO;x;_ob3~ka1&Ct3|5i4E(8WZj6{%yX!uJ9rq zzvv6_4K47w&IO=6(g-in6Ti@CPTG2m$Z6~AZ!Wg#+tX^hGn0J?D^Chn?ebSG1!tfJ zfZ#()T_?)m+fj|olH>{K@B}5ssh5T_kJRmw@Cc27^zlaSUadmVq76wo>Fkb$#&GE} zp`G)N^}1T`;!WO4PTy$I#|G}n5&y!c{K6&;%TgY?CCuOcj^&cA-;dnLZEynrP2grP z;H19EYfsvJywP~?@vvUXCouAf4asH@;5kU0 zrcedA*oZt4krsdsli&!CAPGp1^p2qP;ZlBC4* zR0*i?Z=oag6HpEZJiXHUvAfUyURnTvZ~}Rt2UHLR7f=8P@B~pn1$Gb!EI{97Xc<=qAmYk|a&?M5>auf77&1V>WKW zSFmBljy3jd>shpEr@2(y*5zBcaplgXTi5Pgy#9Ih?&aIp?_a=y1tTP(#_(apiPdNt z+}QDBzXi|$pgdq1!VrKUJ65?FFRV%eEkTv!>B3F~5QIiRjbNxLsZwh?Ek#KZBuBYz zK6>N{m8WE8&l=+Z_TO0KUzs3l+k7iTvz0#FAYXw9_-obUt^-fpVN6HAhE1UIL8v&55S z(&}o0fs#Y6tm)ix$U}lUq>erkOEmFB6jM}jMHX9h@x{CfP$K}!1lVRJgEE70$CH@R zrV>j=lcW;Uc6vZS1RijpwFZECpcLGa{%V9NPn6;zgo-8}qAjykT?1g+v@^*0u1| zbyr?{_4QX^gB3QfUJOv|Sd#2yl+hiR`3;p$A(@byCYrDS0tk#m(zVv6u*6fOatpGQ zNJ`Dk6G$zoq!L$zJFA#5U!|ZN=5TGZp)+rtby$A;_4i+Z0~UB-f~#8=M;@y|g-B0I zv80r9nqZ;=4Vb7l0wo>Dc0ir}s;~qSDIM`-5=ck^HOr)N1AxCMZCzf+k)u z)81V1%{Qxk3-H#LuKw>5=#^ApJJ&w{5 zrA%>T5e82tSK5^=aiy(iih+e3tSuhrm3nc`xmGsywbf|8`}X^9zylY2aD(Dol-U-Y zSr}bN&}o9|sX5}P>T))ifP$-=*jA@0DuE=*MkZWjkx7x#@^eTiS-BEaT5gV+WRMXD znPix;o7RMS=6P?zd-wf!;DZ-_c=F^!yhUX^spJ$%P+@`qss$K8@&N=0KmaEw5McWW zG)HZUND_QRUtwYxopMBPd({g7 z0Vfy0?Mbf*8$&=T8Udk4IIJc$F@-5C@gSQ-LR~9M)%)Owx1H$?MEoOR2~BuH6sAyx zdP!a-N^uGdRA6ce9N_jO#}N%Up?U*s0#H2mKu1LIV-sY`w-N-2{j3fZ?(-ndK*&20 z;%4QbXurJ%|ZHYpW@c;l2vu#a`FYofj42gQO&(Tbbo zWGCVb6WhqU0N>rv&m2GUrE2!u{PnZJ&0o)-C4S2%=G(iIupkX=afv$!v z(sNG15~Lm(N%pC2ewEDICDr6fXhu_-`Fq7Gt$9ssW>cHnlja5rnz4}$KhE=R%C2LvDdRDZiRjq4fYg^s=R=CFXt;YBSAx63iSF8}Fo>(9P zn&8rx!qkQXU?&ASFf{@&;S@-`%{}M&2vX4Gb1GwBDfXF3yDbxwO1;}tJ^NYE@+y>? z_{1?@0SnZoR<)~TZEIcoTG+-`wzH*eZEbs7+~!udyX9?fef!#19ODz3ASpOeQ3~%h z!KUY&o(&VI0S#1*2?HQNVxM5lM=~~ir9oX1S67N^9K@1qYG!E7dtUVNE0lydMl57u zJov^}zVoGTeeHW+{N`7``{i$c{rg`42Ux)Ul|?L$L5SiG?F(>#!x!KJ6H_ojDA0BO z=`AHUT?Hbx98EZoPxXUDprQ^Ek_4}KofySurdP!)W-*<*NQhUwH@}5b)bS37Fozhf zAv!(@k6TO-S-b+lTpXGf9Q=V20~* zXX;ZgmDT&^cfSMUYC!XuAjbCfN_0$cgD3pXw9Ylci#_baF?>D;XV%0OzU*W-+~N@D zxWhTlB47*r*@KogwXJRP0UJ*i<3NA|Bv4(#M)!||WG4-oP_d0Qq21^z#VckJWLLx@ zBwyp<4^^bqO;sx)x#qaF# z8XpYDc~1M*!wzwZU!2w;2m9Pd9_^rA`{dP5`Y~Md^6Fk0YZc3y4E`ZE0CG5if#zUP zkYp@%$VdLaPM3V;EpK$nUtaT@_bt^aJG{@?sM08#=*Yz)X!J! zt|$2Hy>5HDXZ`L(7Mh_Et?0PC!U+h70CfXTfT&3T@Gzg6)tX?bmN%o!Ya4IAGYfj` zXJ7kp5&eA^Quo@QUi{;?J=)DqZ1d|`*kTtsu)`1cwKJPU0pC5Lg=S=dBv~%W(8iG- z0KMZ2Kmja=p4bT{Fa;NC26yo%>pQXSdq4<`K!@l)UL(DP%dsU zwXr+9wp+cn`?wG+5oa@rS%5a)6Pg8Uu(@D{R6vIY@HPMx{y+g_f@=|qmfHqYfCeUV zKsLiS2|Pk1JVFY*wP54GjDx=?{0Bq1z*s{#hg&_*LqD_QIwyoeibKI)dq4AAI22jI zl4wDat0I(&f+y2K9pu3$a{xJ9jv-t#%_71i%tJl2x+NTfGe84C3`9Ga1ri8EG^hi8 zP>Cr-7)2DsxYMykJU$+a+I$J9^EyTULOOf@{Ko)dC`=g>~NCi(o z2M91eH>@rmBtAKGfC_kpermw#+e2O4MO9nE_yC47*aZ0?0YvFG!%mvf=mzy zU_=ClP)5)*LyJH|ysIK+fQE*7oL8&>C$IqGQ<4Y%r~nROCR}7dUQ9=IWHDb<31Ae) z_#j4o5C}g61u0CHgpkLDkjBrW#)`1U7o?(T&<5%Agm7pA<)f|$fU;`Qi3kV~3D5vr zM5=R?pLM)QjC`tgoP~EB#$x=3cf7}i(8q!RMnJR!ek?>l+=PMfLqJ3XGJwWogh@1D zNtZ+ee3U{!bOU?*hnxJ!6^bu}kUxk3$WyGMX>bN;unJR%7$>L}YY~d5iGZ(g0%Aa_ zdqFXD%t)^6%7AjUgb2xjAjx_Z$%L3mgLp=PD8yvZM?bX5Ghj)blu0t+NqRg3dpyQu zkwy^U$&l;?E||wD5=yNjLy9m;PTC4aYq$PW_yBuAgug~Pd;qGf0K;kmSg4y@#4J1X zO3mENDgsM{5X-eJMqu2_oHPgnkb{0O2$B>@VC+ee0rq53G7$dI0o6SNCC=ka(B!ltwNMEPEiVg2H4QCN zBNZMFElCd@%NaFGf_O`XFo2JgP4cWyd{j%c6bOE7NxV#m+e}dv6HYAHQ65c0f&9@~ z2-2h)(h5CNH+|E;Nm7C!PY~78^dy1wEQk?ZOB+4S6tw_*>`%E2P`V^hL8ZrLJjRcF zfPP>`+tf`Kg90)w(`#Iz<^WPPy-@BXQaJ5YPc0fbRnH|2O~HIm)AUamy~~&6#{fOa z7!AZtu+J>D%|L|I{5;Q_gj9c1P)ohkG|f~^H8D;4RAMdGfC*LYm{qRiRTXj$Oa)ee zGFEAwR--}I?C8y|WL6ZKj%S6|5&oi9a1GaivDVE1f!Z9+&D7Qt;?`gF)^8P8c#YR! z*+|ZlulO9qdd*jT-B-)&(Pnklc6HY_l~;l-*gK(Deoa_~U08-yI)B|(b`@B)Fj$JM zSQjHSLZGvT-B^z8SdZN=LHmb*T-S(|*kQF;lucPV!&r^|SeJcSm~GgQ9a$6VkZv_u zmCae5l{10J*qHrUpbgr7MHG?kRe&|w?c7}K_-M(3HrEUsd z;T>M$E#Bb$2cHuf6U<%aO*!0c-i>`;=w;a5{jA>AK9v9^U^V1{SF6&Aw1n-y9popNZY5GcuJ(vgzH} zEAU_AF<~Ur0+lfS;aNc86xKX-U@$t64;j|KS=eD1?qL?D;To2@8-{}%j*k^aKOYtd z{Ci=7>R{~qU=U6T5%w7phB`x2i9{RXg-v4P$>M+5;#tVzSrB6`w!8$E4>C?PSzF^H zcH=XKyfj8)7Tz^C76{)9V+9T+u}x>)`uX3o1|UG|1Y#$;gzXKrRXUmoXQCTB@5=ae&M`MBX^{$^5c=4tBVeynC6 zv%=dOIM<_MV#Q{lkvceL=gsrxF;<6_5aWR+=%h2|J3eSFeq)3#<4R^|0dwd0fM)e%I$1Xa^j_jeUUe8kM#RhDCmOEzivrYuVefGG}zQk(g zUD+$lwlx~cmfgu-?W1$;%CqdJ!t7nu?5R$>p{&CAi`*`h-nT=q-xNW^gk8u(HrS@! z}aCxeq(Bqw&u+qY<_;bPULLDCd1S=FIRT%K`!p)X6`y8@AEZpsFQ7{ zf^L43?!cyQyF+bDBtOyK?!g{z>lI}6W?S(_Z{+rG$_4NMFYUhG*Y;HjDM)YyUvLI* za0h>I2#;_HpKuDVa0|b149{>4-*67^a1Z}*4A<{~?r#B4y74Y?X-09$25(Pd{_lNr z@9KtcrxR{QBxJ?DZQAohtj=lzA91NOZWRZx6A$t*B=P~Dl_R%7wT5OG~(a)43p zAvbazr}ECT^4IQhXEyLu?r!aH@;!v|f01%5|KBnf@-v@2F}ETmU$r&g3;p%VH|G~J zPxI!sbN-rgDo1jV=5lEEa?hCa0|)e1K3_dI@1KEK zNe}gaiFRYJ_7WF&0l)SwfAlU#c6Fz8Zf|#Y=f!o8cW-}p?x1ISzjxx1cXh}26tQ=L zXyP!21CKTdfRBrU=XZq14t*!~gg+5~ABclziHLWJiEns|=Zu9{b!^A)-w8Rl(}D~B z2P#0aD}eYTqk}7;0|ui4w8pkCD0wD!Fueo$0ses(daa)b$h9BBjyNp{Wp9Atmp6Gl zHaRLV;`}?ZvXA*&HfonYGJw}RI2ieWcYBc!`GhF=oL_qfwtN1Y*ZU@J;e4 zo-bvOmi^JkKT=ltnxA`dITp9RJ%a?!N;CTB7N6SDea0W6| z_%Px>I#kpd{HN}s!jdKxW>h$_BFQfl2ae>pu;Iv)GyZMj%&BnJterdu@(kMZpU|H~ zjp|IQbScxOPM<=>iPYrJpg@aW9U65j*REc_f(Gk1)uW`s* zfC?7qWRzE8nWdIq<)VZbUxF!y7OZSprkQ7=8CGs-{svoCP2$C-Nm`JWmTNu*7-wG0 z$w?b*ZtiKDo_!KpsG+{?VgMUmFxqGrWw0U2p_5Wtsil`r%HEDiZbe0k@nIUOsH2iv zDp(=3K}tRK$kW6;tIA_QAg0nsCsvJnXRJgtG0x`)sr) z4S_})`y!$fw!8fsRlo`j4A-~ea&<7f3p3oX!w*9ovBX{xYmO9B$jgZnQmA9^Ng%KR z%0NT(n^VC`kudI9DI(@)RBGSpKuE%hu;Q~fm7LdBf5*I$EOHMn7uT{hXjkfDa!YqPC38~&ILHP3U? zUANtL^$*A8JRq>4m%#3r0_`w>>Khx|B|q88k#5sj2Vf8vhBVqkIY63`nKT@ z2>W)fP`>+8tF7bUPTP1Ip%4BfIpvX0&h5aX?+dx>X(;|r%-ce)P|T{cJ}u%UtIjRK z-TqU2@BiE$vgK)@j{N7BBMd?tHt72}U%RBOhaP+6fr9wsqj1LCd841c`s=gb{%*t? zi>$KDIt%SdlCysNKp=~ZEzS8tE?*_HfXHZOl6-;7bO|Iww}zlNZFS3l!_yrDM}~%y zea?1fAfE9|5;F^8PNB~XLRpyK(1K!uDsfeKT=qD@rD zL&rI;U)G|X2?Er0(vJPQWl4^yj}P`yW?qyY z=9oFl?A4N)i^L(dh5*E*@sM?stV=EopavA2-~=W}Cp+2c$5FyFp7NY0J<(LLi=mQZ zth5QsoO!rz0+E8a9EdJ6$IC4ebD#v}<}f>_&HW*>B+3+MGZ)xN-`x?TvZN-$C_2l4 zJ~WpM_2w2A{@1TK{!yWFDS#S65CRXtLKiZfsZ2wV$9m#4r#js!Pkpnuc+IO`_R~ol z2U)mA0`i|HDd-GyhtfEnOqgnH;T*@PG6+Ufj1t}BMF#@SruGkcMg?mk$Em+mxFCEv#ZAGu4Tcln7XorZ2S`c)JO|1v-XgP*jmtSXNk- zas3@{>v&riG6dofh(M%Cf?)oM}lGvR#~Z>f(P0V-gSLdU|q$MZ-GnP z;TjjY6<#rmTkPV8dGixfY{wMMVE_m>EW}UIah8Ul1~U*K0751K2})q(BNu?QFJ3Z} zo9tvv4HMn7#uWz%bWiL%oZ*ujtd*Y@$-D%p-ruMPB?d@-a+fvX` zwr*MjrRZ42O0lt$unklt+^m}2+zvOr>uv9QV`xz1e)qY_t?zTM8%l8!Hmo;fAZMd{ z-uPZP!yE4K-Xv(>%jvg=tUd7!rCZ?9&Pi?lRPl;$`!5e4Imt_Ia=1hs z-2}?rO3Bm9Sv{Zzwfp2c-#O2FPL+QcY= zxZ%C>r3ZXX7{7SDxvgx9Gu_-RSNPP+ZuYa&+T&Wc`qwjV@im2f)!I%>1 zXy1FOrpEWbSNQ3GAH1ouM);@fZ+Z)1{v_EJJ;X!r7tg!?*P~bc>`!m|+v9#XsTUN$Uk??%FW%t4cY5vj z0{q+~Kl#dU6Xcnm^w`^6O~QXl%As%k;_n7*%iliteZG4_Qyh9{yce%t5& zciq*lCuTo;{B8fZ->Y41>&yOY-QPd|NB;ezOPeZm0wM^4ARs~~{-{FMu^Phh-qQd@ z*I<>oy&cTC9nyi{0`i10Ou-e<$rVh2F`QqyeO;gkT?O9UhrnC=;oqxK-UasG3&LQy z{a*;?#V8m;0pg$_7{Vy{+fd*S+#p5cXo3Wm+XqD;;n)ntF#(eP7#4+&iJ$tdpYwrVoEQV0 zKtY^90i77bBU+mQz(L4Zh2)6A7G`1@G9v>nWAxF5Cx+rQQe&Hq;`w!g8xn;k6yOm4 z!yI-3?G@Mx9FkEaO)&)p;^0mg&4PPn)CWaPEcHaps3Yb)W2M#N6dYpoG2#>mBT)#C z()`3Roq#gN zqaBbGPuvm-h*Y@9&`fGY0HHzW%t9I=A;L-IT2TJvMRH|VPFO~|NdfXi4vOV0l;zhs zQc^|@BHU6thR!TZ(@;QQM)_e(n&b`X1KzEk3kpRPPT)>VA^fQ%GqqzK=tD{V5rdhe zT>ha9!Q~&$-vwr+pY+;fdgWze=H!_lQ@>q@p3LqG<9K2*5$NFwAIZTMm1NV%R#@ezdgcy$>RyM+U5HX?mF83%zF{2B z;SMInBx%!^X4fz|j(^_hAMwjO(wBmIg&`uMA~K>DRAEvu4)P%8;`G<;AVNlI=!pF$ z8G5Ld0&1X&QX7&bm&%DDM&T4TVy=`8Q3&dzLMjvqAORX60v3t}av)KDV6aGIqZp=xshaAkqH3zD>Z-D8{;Rs`tHNrm%Id7rYOUJpt>S8~>gulYYOnh0uL5hZ z3hS^EYq1*Zu_9}-D(kW`YqL7*vqEdMO6#;zYqeVIwPI_wYU{RgYq7$gTbLkUd~3Io zYq?&Y1JWHnYF@aGA-bk3@o}QL%Imz&#%6Zj-G!cIwuQakEA7QAy#j2&CdI`NY{44r z!6IzJD(u2CY{NS2!$NGtO6CSlC%W44 z4WclPte{cIO9M?_-&pV4Biyk29#soy19Eg(K^tM#nZPN2vMX0kEfp=ALa1ZCFR z%G$Q=i-o})Tz%$hABeyxPf!H&djQ@|}(OaUBJ!E98) zrm*c-L~a(;#o{W&;f`wLK5j{1uI4HQ=7PoCCIuYmRdbLop``BZ*{$CC>(PPiKiVBc zUTwdIU%CQd(-NT=Mp)xoZd8aaR5Whq_66rEL>M@(S5)rhPHyJ%$fp{w=Qc0sCPnai z#p>dO={g7YvI+N^-r50R)KVbPH62f`oZqrw^^tAv_Tl-at#kSAR#>l73@_v+uS$f$ zgUs*d-mgOJuTK8_Z&Y}%NoX(X(yi(qFz)f|?Jlh?#$D?Ut-dzJ0{dPd-r@tlZ*#@( zKn$-JhzRkPhKL+)+ZOOZ%t8JRMC5+(KQ!)+=oQ=|FC1V&36};6mqb0#utcD+3ZDlE zmqhf|@DJ~ZNv!R8An)ncuS%>i2Rp6@_i#?Ya1ZnF6aPaIukh-cE)SpX@rnrY67S)j zM*>$P5Dx_AVy_h+aT&8M7&q@g;IN2HK}k6Ac?4w)i%8;zum~%}9NX~l+HoASaooaf zAPX_43Ta55Kba!Hu36T{G3Mg%7JD!WL$V}SF&xA(FHdd~t1&h2u`i$UHVbi3u5C3xvrPbTGjFpvH}5zr zGZNqL2D|ezceDSVM>YRL71(g}1}_#DFgCNYJa;Y}ps+btBpFY0+pexUH}2^cu|X&B z^49bH4s#?Q@Bq^?B#Uz99&ihzvo>3^JU4GddoVg1^m&xT9ME$=A95?xur#+YDO-FhUbXH3?WoIr57xik}L}-t8|H^aR zCNcM>_2hy!PV{y)OEWKf_GA-r8z*rIyR{n+wlah8aO<>GxAAEYw`RMo#DsPKE;neK zwPKgDQpYuJTW{(%Eb=G*;^b4Rh~cV{?VyZ}3X;dqcSN?npIHxPLQv z;?DJ5Kd*t8#D{NqY0$SeJGfF{?{Z`AeIGX-A2@8&@Qt%G2zzjN@5t{eI7i3$gI_np zWH<4;^>QQlBbT%doAU35xJlISh_iPbTlY4PGEPKqC|k4S((R7Jc7V%x{0g>^C;4}8 zu{7s%e=oTSuXhq>GD#D-51a7;d$~#+wqW4emNHmW`dAIf%dizHoaKvBxk7G7m^R!DZZph=r!F&8k4E{R1mwA2ru)KToxQnyB zU;1pTyiHiNpo_PO@3t@(cRe6|JiB}wH?!G8dKH8H{Vu$nuf6t0{HxRZt*bM|H;k<_ z_fvPS3b$>YA1(@0uR3GA*&puIpTrwSb7vPJ2}itd*c3d z;P3s3-#nW$_ZB~~Lksj67x=daGZ%~d%4anx*ECNnHA)NpNt8PE^73uFyKzr-5Pvs4 zR{?9+_5G@FH48o9@AOtjehM4?@<%W7{=H2LwGDGG4zKqdtjg>cw=0K6GMjl)Kz}Jq zKTbdUwX3>ZlY~IOv5&*Ld3&(Y<9)g)@>*+tR%^28{@QU(C-o5D`Yi8nsRP76fddDI zfis2RKR62)CL~w|PL+gS;LH&Sk>SCCa~Mv6lSQCMi32l^{3mi?y^jtBW`R>LA;*RF z=7brDG2*{476robLa=7aj2;pGbIA}SOQlPhHg)C7l=jiGK8tq zanO@|5f4>rup_~v4GShFcsORpxNjH6Wx2DY!^KWF!};u)dy1y2rq_aEDeDwDc= z{BQM5wOol8H+~#>a^=gJH+TLVdUWa2sXyiZUA?Nxuh@@6{LLMFc=6-OmuIQn{8r!T z*+-X*{jc%&?djLIe;F5JikiCE4i93l7sH49u(%U3?Kns8Cd~!}VgsZ;lA3%aE%aZ~PI+ zAcY)~$RdqA63HZ$T$0HqojgtmG3MX|mnW^f63Z;L+>*;Kz5Ei)FtZXt4LZb7!wy%( zT$9Z<-Fy?yIOUv^PA!EiiSXKm{F?&_WG8bj}dsn8E}#5HUcIta>2> zk>@70Be@~a@bfAI;?M`WA=m%~(Ng|RJr&hdRb7?Ufr2r^4k(_e0tzw?QObZcbZx_* zr6#S^xl1$M6e~|beNI$TTV0mfW}ST&+Gsg^)s88kko5pIMsY}3fez?Zsb8l8#tcpw zB;nKQl9iU-cHMm!-gxD0idt)XFhdPCLSbnLUZE0KDss(T5Zz;^TX)`s6<(O(h8+g8 zUMTLh1D~Zd9e5y3b;a}_fXUT0U4cN*HH|nvAUTbJLGbq<5?D3>5phLz!3kH=8_G5 znC!C6J{#?{xr=z>R+=IqjsBarE?QV|zc#jIy1CHjYl5)m*-wFGM#Enaie48OFu>+m zQ>4i#`X7V^!aDJ-iETM#rUfDaasvt%yJeOKDtPlxE03I5uDvc7Y)^233YFk_=KfF{TV3NVUMi92iI5R*v8t$A>c zanz&H`~)!4{lkZ%17xLy*gA)(kYjM`V+&PxEUek_ijkD$Bq>=*2IXP|YDh!1B-TZ$ ze6VQ)5!WBjNW@Zxk%cSpmjP7SE1A78k31x$`0}_es{zc9nZs1yuvSPkg3XPK1lB8; z$g+!JZfurR<}#VtOlK-bRGhe0Coh=6o5{~c!rymJqll5_H6r zBOy6eFmf^ej#xG<+Uo?OIimrqkoM%9vhe0hQ<`uNb?6~FyIC}HIWA?W1J>!D*%aJ0 z6rz86Xhi>UJBreW1b~PF7pU-rGE_5zQ`=PzbCw2w0Ze0QfLzv+=(L2E@p9gTBf`X0 z($(n-mN!dQNpT8_p&??9Jo}VAS=uyzqEe*~<*n{y25l}cl8~9<_yjB*npbhO~wR%?3 z+Nb`po&{85N&A%43bwV3jjeu83!~bqb~%_-!y3}ChEL!YZGeqlLWWyW(w4QV!!;mr zW1CokRFx%#C5Z2sOI_n0w|4{Cs!|sC+~hvCxY~v8b#Dt?+p?9c*tPCQqyTjAn5 z_+i7i0u|I`Ug`W|u6z>li21~Z9D0eq?N#xL|9f2(7Z$lOo~?fO8{iqs_`NK)v5pO! z-W?A(#yNJec!ez7BKNqw9u^U6y?bON2iVC?mU3k=JY^pvS-w&pvX7^0U?O)J%>Lx< z@{@tgV=I4o$YwS!nydTe`EnP^Yu56Wc}!+GZ#lgyPP39Dx{JB$K@WS#0}2RTXcU~m z#9?}~j>oKJIsX^Njdrx8AC28I&l%D!&U20zE!ziM+0u^wv5UXT=OZBy)L~w;l;9hxm7OtyVKofgXg-~XLj;yGrnX8V>#ILM)!6H zp6`=yRogh{chSdeXMzho!tjpz!S}6iq7yjGdTx1W2ORMh7rfvw4|0-wKE+(@2?ZxO zfeF;!_O_EDl-VYE%T4}unwz}oM&G)ziJkL^yBXQE_BY>I9qOZ79pYvG(Yyl>b-_CY z8Q-qOAvJiv{vcu5vO4Iv1D2VkKK z+uz>yA&5JdlAifyWYj{^&=-x7?*3J}h!kHTV2^8n1oc#a1fgz;RC{!s49 zvhcyWPzQI8wXhHsh)@oN5EWw33NtXi^3LV*P6Q#Wz()Q{>K0H9|A8FJ!4MA-5zAp5 zK<&UTtmedU3@3;T0^tx4;jRecRU##JATc~Rk+#S#659$C>%$WVq7)hd6;n|a8=(}i zLLFQ~E2sb#6G9e|qZVKBA8L^nXHoLFq8tJM7=uw51E3s2k2ov}7ei5!d=Lodun3PZ z31O!cqr>kQq#BjcNv=^srtu$6aTQmw6`|q_G6D{$AQ_>84yb@7ba592A|26D9R-34 z=)fK0@fKY}7vC`#dC~Z?;unW;7>m*75+WnMpdO*(q0SK-t7r(+zzhf=7)gKxN`N9O zvH*6kY`76R7K{wBZXuh5BRPZ{z404UF&v-b3;wPkAr#Un^pPrDvMF409uJZrSP~|O ztvLP>AcIjL`;iV*QXmZSA8zvUSn?w&r~uFa0G4t9mO&{(AR3QSDyI@WNU|hZF)C7W zC1>#p7{VJ!Vj-wN3mC#6%ds$Kks-{{HO6uwQj#8n5-0~kCh3ta;ou8!5ii%0EYGnk z7vd}TaUtFkD|B)vi4iKi0S^9hAnH;m`!X>H!ZE+nDAUFxkCF_`U?~A00Y1(lppq&- z6Evg4DogStokA;X5*DxEEoX8lfl>>GG9DG;EtByl1wspGGdAHs9sU6^9bztNGB5uD zHw7XYRZ|}6@f^QEF|C3ycd{p2QYZ<+{w0kw7vGXPXL2&-g@XboYG|9G@D`^GeRxhaW{KH9bR!c zT~arR(=`lqAcoU6UsDTSGa-HxHWgGj7Zeutkv0cZAqq4>eX%fkQYrwHCWn$k6O;~4 z)I%HQokYe@EP$WZCs&pyoDyPEAZMFI=5Pq7SFq`zHfNJ~2z5}2iU@%aUgZo5KuHUL zA`iexpHy=QAwQ>-O08l)!7(f2(n1x299L92b8|q0vq3X7Hhc3!zjPp2Q$sQILV*(& z$uU74Q$hzbM1k=+qe2#U6G6NFluI+hOBaTe4#_)>C9TSdg)kCpjtP!PNpso=h%j;s zlS3m_ZaF6PK6+tKNK8}Fq)I#0Q=j5WRk1&r;xxyUK)3Qh!PG(-bW36K3tp8aN>xqc zF*qGG8PC)q5HmKJvrY}OD&7%6Ig})XwM`iYl18V4{6TsIsGdRzf3nB0QYxWns)ZoQ zheV2GAeHZmV^S>@w(Rdy!&O{?Bvef@OSjTC1yc*YvNr$WHNRj^Ka@6IGa2EPAY^e@ zArmcu(q7wCO#3w%wLo3HfePXhSF55q0rF0lLLH)07yH#+2R33C(;KoAUXGPq*2jC= z$FS^4e}pHk48WjRhg$x}NNxg2S-};xMlmbAbzEN-W)-AdQE^n4;y=@pFBw8G)AB;? zvO~ADPXn}Pg|au5!ZG9W745QCVKHg%k}GwVH%ZhVdv#%LHY3K=XaB)51#@eQ6;MM) zWV~}0HkL*W>AF0Ih!QoY04ZdI<$bo1WwF9#W0r2~);?wyD+@#mw6sAIHXy^QMR7(G z?uT3kwWT}t+Ahp-O&12LDgLB=5wXLk_+w>y=!J=@>}2GtHgNRYTEmPBd=NVaI6wNkXl zW;j-Qvi0tkj{ff6&kMP1bfb@SmG5~~E)8D{3cqh|QP+FF7km+AxrhqLybQuVm#7qQ z>Hbi9fvt2q?Q-8wdns;y+pP1vFa*O_fA^PvO=YNH zV4=8Sa#*eEm-U8tekU*txp(i1&Vf5G2d!_%AUMBLZRUj7*{GO}DQPCBxQ!F$e-Scs zF&A{v{_u=#j)?^?4JELF?ii0}t@+gW4*xKY4|$SU6OIuXUf7F~9~qK=gf)LQlI6vb zD_LQtL6bL`lRMdyKN*xmS(HbalsEYwN*R??S(R7WlR3bZUm2ETS(ay+mTTFTZyA?! zS(kU2mwUOEC#WuYmX(K@n2Xt%j~SVhS(%ranVZ>}pLv**Bo8q;VW8QXRr!>!S(``M zm%G`UzZsmvS)6ydiavCk&l#Q5S)JFJo!i-+HF-(euSy$eir#sfv)P`ld7Sr|pZnRL z`MI12G@l2WpbOfd4;rCKnVR|IkLx+1l^LHO`k4QjqAS{>FWQv@S|B8vqdVH8KN_U| zM|q+5qk<_Ff16#108CB$(6nJMA zT7eXv8m=qJun}9a8JnJ^D6R84srwqUGnxL9S?rm~}(x)WTwr$PZ5+`%6l!XsS5 z8@ySv+rlqAu-AmNi{W-iySqOe#KS=p(pxFsdlXI_#Zz3xM`6TC0T*y#u|;9UXMDw5 z{KaFO#&ev-XZyxOLB@5Q#%&zNeH_SxoX3a!$BR70g&fC~T*aB3$erA(^ZUF-A;hn| zyI&!K4jio&+{-b0Di%P@$DGW|+|18h%qtwj*PP9ddQD2Z$FTg$pZ6`j!y{m}n`&=tMTLqX2ve9NJ`%fFn{ z#d<0j0MtWW)JL7vOC8kJyv;yAr*~1zpl<-N|iz()nE1ab3xK zz0n;V(StqL7k$_v9oQ*-)-4^@Lp;;Z+OmwWUEOP)#95-s$Nj^#{H~!L!Kt0# zG5XW99pOoR+r6FP8@`>T*^bjN7C<}}mQb<&Te!$OkO^YH{-3(PnWE$OT`EHUzf%g?&tZ=S5Bq5*cE=X>7ge;(*}e&HRS=!@Q(k%WcG zjI2hxv`-ra%lNqWA=Z|=xs~3ngnPH2y14C|xJw@7yS}!;KI?ls?6uzO6C&zc`?WcD z=F6t$%^K(9-k+x;=(JcNQM|c4WI^wm0Y?i0~7exA9@J zDd_FLTJ9%*oaz4VFaPKBp6@rG^Gn(9%a?~?@O*DauF)H=pI4r1r}XE#v70IK^_ucy z-8-C zANP0P`ZwS29k9lLxPgb*`%N0Bo80sbE#90(jpu%JPM{}L)($grWqhY%x5oJg^v#fufEY23)MqsNaR zLy89Eq`}&6_wC&f3ZIAJ3mYf9`D9GojF-MUx)Y2{fnE zr%mV7l&6`!+DLlw$#qJbL-yCyZ2_>z#Tr`S~R%v6^XuQ={Jl%){;hP~fCLt3 zAXykapx}ZGHt67k3O;njc(75(-(^JwsNsejb{O4-kj+QcQL}((;)y7xc$tSN0m$M= z2gWGljB+Ii;f**(=+GD8K}3gnDoWPWi$oS_H{?a+45W?30iXVT8d6Mi+GY=|7x$deJTibZRN7 zqSmy87p<^r>P1U*nyIX#UKDB=qu^>$t(}IEX{otZMC_)mUUaOlk-kZXcM#FZ6{C4d z+2^&`lJ+N{Trw0JMe5YqY)+3g_UO6jrVG=!PVrKOKD=O|>8S^Jv4y6--0KS$y;c+q zDgW#{O1}FDY>_Xf{1c46`to~`FZH%Uu)!8xuxh{!_gm2gxlZgbMoVzwvBnb#Y;wjH zEnG0aBeM&oI$zMCj>|OH{)`_4IOnYM&OG;w^Fm)78gxR?l6R=h6Om{p(o8q)G=9N! zk`NLXKYTB#nIsf)O}p?bMArXojS<0LYhCO_OI)EvD`kg$wnP_b+_u;h`Eo_9n}SVu zMP%#!HblX!{g1_S|NW5IAs7C1ids;i1(5&H*_wCZCL}o=MK7-T<~8~3`R6$++%)}@hS8Zbv^LC)JudoC)vk-9vt4N18wCAeGz`0kpJlY`m2NPe$VVr)q4E&*YEx8 z3QMi~)!k3TG45FYqg5FEmOF}AuXz2Fh`BK=A)_emg)oev3};Bgp49M$ILu)UMR=U|`7m@m#L4`E zNW>zt3xBoSpQbd(5D%KIfXd<(6Q77c5C%_IAB5sW+V-_6Dr9(144}URXE85oty5UY zq8N=>o5m&NaS4e{Ys|AkI;4(`c!bgqf0)NU`tgr8OCtWpb~VLSWP%0UTg5(MNCl=U zSYAK^0c%3INm7K1nP?;u0(3TZjp%(4&8tkbEXA-z(2aPs_~mef7+zKKDtPNnrtC zHJJs$c2cUUp)FXZD(FRmaX}0s%b^%4o~#V&NL4+Qq7q@~0558_UMf_88=dIGQk5x! zT9ltwDbH%OFgn>#;UDC?-04tC)5YA=eKpOgPIsyp8S<1eKK-dshkBw281<+~O{!9t zYE+^+^{M+@ibd?hlp(TCC_==lO{BV2t#*~F7vX9^y;>2l2F0pSO{-cd!_>CA^{8u& ztNvWssI;lhuQ=i)(O1b@R=ti@tab%#UIjZ?zDfkI3qkB$7t2_zy!Ek5#iJa>)R4)d zvay&gr4Ic{l+Akfv!D&FXh%z09A4G4nN6)~6$07T!j+BVQK`4)x!T&+PboS)ZEnx{ zSr_(}x2Of~W_=r6(GoX@y4|g9mm62ty7rGPoGo*wD?;2NS2)ED?QwT&T;XyTwA=me zaIqU)>Y8_`&TZ`<)#okQWbVB1)!b;4TiW{C_rCbe?{zy{-uU_#rRjxiAMHrnnf~{{ zHLGi1m&OpqMnu6FfpB0ATUfJJ*ujV8Y*;m%w7a4e!64SD1V&8a5}WwMC?4@2{tXoo z^6B@*FpjZ|XH4T7+jzX|BP>MBYT*Y{c)=L%aE~vX)gfot$VU#cZu!gL5Igy&DUPy~ zN&LqZI>gFP&hqMls^zM_u*+bs>6FKeVmub@bf+sCd&A7;rophy;Z-u6=j=x^+nLI+ zy`wzKCmYDo`OnRgaGM1U=tAf5&UZGnq8H8RMmw6Q6o|B>Cr#-}TRPH@&a|dC&FN0_ z@Y0|TwWK{w>QbBf)Tnk-1y;@KR=fJuuwHelXHDx`+xphFiM6hG&FaKj_{X>owy=jy z>{Ijl*sxA4Q;4$cVmtfU(2n+>kxlJhW7o&h&bGF<&F$${yV_U9cDKj=P404=o2TEV z_O(xY?smKT-Nb1!yy28?WUmI5M`Mj^tf&t+*t#1=c!bMja9`U{ z&g3o8z`e|2A)9I94!=0WF>{P?(9fz3_ji!$eeCWGrIid(b2~-Oa>={`9s$>ijtTy7 zj0eTLA!qo^Bfj&_Qk>re|M_2m&16E;{L9KY20UI7KbyB4N+jpCuU+XvqbOwMPtUr* zUl9&?c>U{O54+gMPWG~!{p@H@yV}>z_O`qI?QoB~+~-dBy2CvjuK@a%i-XmIhg|FN ziTbW7&LfFyd?;84yyEF2aE*WU=8#XgqQ(mOoJ-a653f3qoAUnmn@@i8O0g?(HNPCa zbB^;%<9xFhZ=wvi{`Ihrz3gZ2`Y%P~TddFhh#F7&gje45;r{%BHQ#UrcOJOCKQeEV zuYBPb_V*J;{ds`DxXI&HMCPJaqijq2?tB0Bf&yQ(#IO7ELxuWLaeiQ-zkc>h-tl=w ze&i+3{Gcy?{v9Sh`h9!1*Iu_LE(iF4Tg7|$H+<^n zV+B}$7Kecc_ka7hf$$f9{nvr)XL+MHfzM}x#vy`816W#Bfe^?X3K)anrw|6VXGZga zI2d7#XMp_Ib5kdDeT8!>h;;8~b6h55+qHg1mt;g|8~!SoU<_s-(uaaMcpNe)gQ9av z@ia6oMLH=|g(*e z7>1B>g)!)df|w|Sh#q*zLkf_Hinxf3*ocn!h>#eGk~oQ!Sc#T+iI^CPMzD#T*omI_ ziJ%yYqBx4ASc;~2il~^1swj#W0f-7%h_I-Gv3Q5{l!>-@i@2DJy10v%xQf2`i@+F+ z!Z?hm*ovbQ>VsEFG5j_??d^0AxX2Y&Vx7kF^x zm{aF?kh^zI?bwhG`H+}6j}keN6q$+`u>lyFks7&?9NCc=87V3yGm-ONQh|L5sgOi; zk|=q8wFr?e`I0bMkuo`xG>H+{5h>y)l2}%f^45ea2}mmWljPEpFj8SzTXQ8A0hiM_HC;$%{*wmTEbSO-Yq* z`Ic3QC|BSeGBY}fmwu*~ed@B8eA$;Cu_R*|ma>RTXIYqr*^6tLn2LFdZ3&l-8I{cv zE-qz`c^R03d3u)_fDCzDReac*uwSQqf6W&{>{3F`U)8o(_qf?m3g%8J_YvpW=xq-msPE znOf(WpZmEv?D?M$`JMtgk?~2N2I`$Ssf7-hpN!R?<>{b{1E3PhjsseuOnDIpnxWju zpbrS4&TO4yb0tx`Ku_%C#F!TNB&1ZQHhOo!q={-A}jfuGRe$ zy1IL>y`GaCS(Y49$w(~C+!gh&glRUun-B468vQ6M8E)S6-&|J72&&ZFyKgDF%{cL* zTC}IUKUz}-%~+T<^IO#OB;X@J>|uF3->CiLfTj63HEc2bueK_!F#)Fenz*sQRtvB~ zbEGA+RDWeA`DbaN>ZrMCnQF$JwiH;shUnrJ6*lJ^gk@t4*;Am&(bQ*q))<@9_z2@B z>Apl*YZk{)6@`q3>1!6rq-Kt*#k>o`7;(kL2JV$>Ay&V=T?b zwJI7Vii3-ZuZd57E!W2>@0KjjF)NQ~wHn6dH#y9kUae@QtjLtC$Tq8RbhFlHmU93W zEA`->iWF$vL|5)q+-iaXw^vJcQ;YX;3n|n{shWU^hJ{ZgB?vi*cbe6vnpHt=RUxTW z(y#tA1yqn}MXe|0&{{Q`Fjes_*sxl~@U%sU;duehP(jYBnk^+mB-QY!HCS!6K0{=& zH8s|&HMa1~Qu1{_-Rn5g>bTk<8=rtQ?j$9xrF7i&^hdSS;+d!jFmb|E*QIs^_KvlJ zR3dFaZmkAY^ST|%2IQMM?AmfSt_FQ>Yq2!~2?Y9odBBQNsOeieTV+anjY5MmHZ|@h z&M_aQeqf!Xz$bO>yoehHnIa z!kgtKy)Ic7z+^rh0t?aN$`S!`rU>GS}E%j1niBhb| zXD$EAN;x%}!M?Q`q_y^Px98(go1LLM<+n7nwGTM8?Sqk9l(l`vG@46g4smyg_9=di zi(C(HRpn%Xl!96xZQnOH^C+utU&FPg?I^Zy6xq|IgX~&c>$op#4MCH$5ve(7>$+HM zIne5Q;Lf}hfvN+xyt{WF9Cqy^bl>Aq=Lr*Xlf=OC^k8^cA+C2|ruX2|wP25T#4@+x z;rEi3oBopTrSRybO7Er7?j0`C%rN{5%Nbf69?c*u$WiRg&!0(S- z>=Uu*1BKKE2&MN+M(B%b_e;I^%a=#UNcV$=%hB)$)YAvX0wJ~62Xx;D^zjF^5#ux& z5tx;_0a8Rf#RC@WgK1=gHuyt25%HV)gQtuLuWf0iCxagALseu$KKO$Zeu>>{N(|>i zA?d^8sKXIFLw3KCPxX_9?1sa%N0PMh#A8NM+egyZM>5k#h|U}MP)UhBMhZPfpK~JV zJzV0`fnG18)#(hyJY(ldkc}Q=&FN#U?PHA*@weFDNSTo|Nyh87#|JGi+tbHKJ;o+D zzr~aSi{#;Fc_!wyCl);>meLuA+9%f2(Z}8=+R|;^)JBtTpyDMbO_zZM+pv+-lb7$H z$!q+nTl}fa>4`^=DNHcP*Y>IR^(oN%)GJ*Odh_6*Z5DsXw=SpY?WyPYX2O(czN;_le zo~`!sXzrkQNm;$d$a5B13XiUXe7CLAZBaKr@9X_}vUqwjGaK=uAK7 zwy{EUvG6r(-1|bumV23kpw>fX_9k|SEypgAO-}7%GRbD;iU+|KX{vY|uDE*Ts(hi6 z4rgk6MZqF2n_x9ojiTOs6?3CbHkYbA68*26WA(@KHQmIu1ss3PO1{lfTjUb5Eqo?$ zbC-8>UuW~sb90_}T~2!4lVI_(V@SAc9V4Sb-f#U97ju$ZL+jgGqyT)Z=SDp*Lee&z z!v^fe#L5-{oOVYu8#gaDK^NPZd(E9^`?|*y_~ND>s5;M}`oD`N$O`A9my?|zC?kYd zcjM;>Oh^g(SMUUI%b6Ek?HA@~mymkb(BAudx|i@ol)7WB4PaM~d{+;flhz&RO&^og z$V>kw(e;t1o-2W`lUH}=R{)~x2)n%+uWOpFTiUE^c)80XEBvo08CumL#*dZyiGx47 z+sgz~L|3D447WGZx8I}tz^f?evhF26FBm>=TPu}Vs?OQ?r|Jl%3gi!OL0ebvclxOJ zLZ6c&diRVT_olV?#@>%!oA z!9aIA(+8As1?=;_i)386OJ7N&-%h)FyX1LA*nx|i{set~0!V&s3;01Hq0v3a?Fa=S z5%2}zDC~-aVbbgN|5Ml#iz49lg8Zhq|CQ92$rMRZJdjMH*Re{+QaY4QWwYGuPfBos|mK2a=`$>0mbRRNtUmrAp|cBiVGsaERLbV7zJZ18i`^=i@` z6whcjT5fa(zAd8nE5)u#rY5pi6^IqcSEv-Kq3QQnQyRE)L@H`ajc(`O287M8YIxvH zxZ#~(h{)OUdIz0R?P$yv$YhCSXg-)NR_JsE5#a61uQpgdwP$EOO_p|eenJy!H_u1# zMi7Z-YQNa+)oOXQ+@id89aqfx4I;Z;_O-5b^zo*e2nMc8MPy+HDL&=Ry{LMScjf)R16oD8};8n~)SRH73+V zRN(F4p|=s#^s~tEKJC}Z@!uFRPiG`x)XV4Qi?Aw)hV~6hibucIk#G#gRg7`*Ld26W z{eVKLK_4Ntmkp!-w0oHG&~&n|Mr=GzD<(yrj{~vF?@o|J zM;$lAOfY=UE3jEFusW^*@G zsz2_kzdq!5j-EJ=Xo1bTZ2A5sL62B#Pa;T?H>}!1UQa=Ux@>9q6ahhspEIFytV+<%{({t?0Dm?7 zBpBgl(R-$TI`|s-%PI$MACgd0ui*#xf z*?`Uy9m$U9Fn`NBII#jw9ZV!dxn}3m6-XUmaYUtYxm@AD|D#X*#ruaV-Tig0kp06% znB$2O6cCkPlu<7sQnxY@(n;Yui(7;^cA`+|myjum`6;*|w%Wh97 zV}UxeHVad#y;Lfqi-09yzK0^Rl+8)^D8t?}8&!;pOS7$+QZPuIf2CgtG2{@|kA+q5 zL5{5sq|a5tyhXBSU95=?v@rV4y<#e{P@CLAh)K~9^TTDY6lJ7TawbG$_Gf;1(FCP1 zbn8gabPkt8j9zqQ^-ts!qoT2hG->0JX@%CC1ZT$u83r>ni}n1(QSJd5X-fK;^?%mq+63~Z3vHXx0jdpojzsuBPc$1q z3X*l-%yvvx+%@KN8&hfX`z)(U^*+a)NKEn*4O6(2V0$X1P6Y|8~ga z2tgFFPyHr=Lfo`6QLI6&GSoafVRbxkS#c*+*}a(9x-jJp?T`({dn}+AG94`Dkc+u- zh|9V<6CLD`|9#^x=?_8zB_moXz(9cAsG;)f6(~+C9!@`)mbru+F9|Xw9_Aw2e zYf&VlUioMF7V)ZBKtWn6mvKr`yBb2`&VzPv8 zAxSv>7~dch|J@GJX_urWQuhjKh%(VO3=Bv*>{T7cj@q!(MO#0bw33LmzcdO=XBq)$ zYRwi*FoX!_7gv=$|6?FjFU1DzEfl!vS9qy^55hnAMdvyt3wj_eO$QyBh__Y2!C$BE zIg^+E^J#P>AyZkyS5-Y`z5-LS39~%LHx@8UAx?|iLjloWIbrC zf&(F;{}xR1c+F>P}8BO$VgG}$~O)9 zqsVffm0Y1T78Zsg7l81H{Q2HWNXO4R&p~d{MZ(oZlHN@;-yy5rOKk)zfY>i6(ytaU zpw0vLEqg$-en6{#Ks#Sl>sxU?84^TZKU*&?WCD^5NQ6_?p{sn2>qlPeX)8lDx)AAp zUsr8=A3PnyU7xqUD6E61#{Hl*qtfd~PYb$q+-j-51s+j_dX1V4jPFArqzcYK(p zxIjyMJ}@d6dbpuz$PsJ0q1bUzN^r44dn&MgK4}LeLwru7fOds@o^dU)KC{8Fb72*2 z*vR*GE5wm3$WdX77)BAK-njx?<@Rqz0-DUj!}bks52!xsC$hVMqQ`$x;k1+lkB zEAL0EAjhirCABn~XG0pFn8>9p@}#r{B5X!L&i=n@<3|PZN4s))$Xlhhq#DZRM?3GO zX3@vGF~%$3$5?-luqIT8xkx#Nk5#2f!In!!&Iz1?*O~NJc98e?&W}$Rwe;MNSMQJG zunOP?FeW*K43swvinI*jcMhLdE59{IO9_o5POR3;u$%j?&rfXZPi)>#thdW7gzy$< zk6xNfF5q)6zVj^g|03&ePE8l)krf?Q3567!e zG9%xzKfQP_PnJ7UMwZ)tFGBWv8gpTWATSjpQl1bg1A*}#{= zah5W0mMU?Uq9Bn+OEDBUyFjiuY&e-IGD{1k$o$S422^5fh^7{uV|ARRkzr)rtYOqdJ22aD#ja~9the}5<${b7_B=EAHkwE2)Q6`fa=Q9jC6#c5b1!(6(+SkM<$ zlM*UsdMCYqg-Zfg&-lw?N3WIvuY!fKxb!c<=eL@T!%|R)x|-*LW6wfW-=h1%xZXyb zp3I`hgIZ)_Bqs4n9NS8~=*n02AwnPrl~mc0cd0XdIq;u`nqzXfXiEg6@_r?~3yrVJYH^2FBI8=O%&OV% z9IFE4(|>`#-n9U+T0#F-2Lq8>RoL5fw22E+#s=2M7uF{Z)+ZmY%Dr%ECp^XCvL3hY(xOHd)PRFLnxZdwBdc#N(Rm3);06iHy0FU zR5lO(Y#usp9yxwnP24;w*gXBxp(1tGI&|tLbbjR|#HasUoLf%KSl+4lD)ecFLg|K5 z>8f+l9>FA|7u0wT( zYpjyeye(`a9d5rIY@tB!0I>{aCtxudchJRlFjRLif9_m` z2(7dpd*+53R)|NfgzOzPRz2qo{fK3QRM7=S!d(`tZ{(_bY<#;EPJ8S@dz4ALoU%I$ zT9FKV{rD7n(2E8znXC7rdjcTXpA`E-m3kasAyZ@n&cZ!0U0x+51fHM$%^y0X;QP_f zyONg%f`|K&jQeuX2L~$q3KR!tfA+;P4Y|c4Gg9F$@!;fu3`rbSsme zN1AXqpn5oPf>89fP-hiAJ_h64_D~=m9Ob`I+07aGpu@kiyNZQ}WJf97KL z(F=@J8;lH{4s9!8O@AKQ2YoYFJ#rM&v6wW*+BBX$HnuA?K@>Z3Pcn8|JaTk8a#r1O zi88vWFbVfrA7uL~n*R1sJ(k-%3MxGGdNjfCGRhYEd*rkI8+y;b^6!WCaTJA7Ftn*? z(APh$-AFGQUgK? z{<%L-^TbZ`RZnv}F{9H>GF3xwJr`sa{}yLXW(}IXVV+j#8bzp|RzaKRH5%45oG$*; z0Hw?3)=qAh8=D^=oHlLhiJlBsPIV7j%zQteDAer}J8x+`vwR3y@PlQkKcAai99OlR zIyhg<)R_WVR2O1;%jgeI{yrt`mi5!AQ4VQj_t zaB)XK{Hct9uN6m7H>U!?&^1Xq7*BnKW%h=HKt69O@h~ zg!Nucl;+n8{JMlG^kuWsd?C2**NxCV&?HO2Js4-@(Sh&1aZe_ zU6Y9^z!Lgk6=JS+jZ`!RjbaT;X$_Zk-CudVHyJWW(f%UIfoyVv{A6Df=y%_$|5GEh)QNfaj^oPg|m7J9USubFs!y z!0i#1-3i6*_ov$*CU)`z^OQ%2R9UwyCY%kq7>>=B(~{JL?sxTO_WPZ7p~JVtTXx%* zc8o{%_7TT-lI*wqTWTys_cB|u z2{d`a*4!_x^>3@-01@g2YJGw{aQfw%=Mi9l@EDGmW1x@!TdLoTW?PGM+TCTNgVd0N zu#$}|wiAJ9Ng#ydx49ZDw1;|6ZdM_u;D2>8eg+d^Q6|Ydq*{-Owd}ZikEvR=$X5@N zU9iZ$=LYP~gcGG0;167L^*mDd3A0vWMUIjybTYKe;zKQ5EYx|l7wgbZHb?daP{oWw z95Vb*J_xV?k{3uY7{Dih4h;YR)Irfe6ye~Jk(1H0Q!&ZV(%Ey+`3chch_G1-a?9|F z(edlh@aa;2!K+8jqDM|=O!C8qM$ny8&O<=SPC~;;R@YU<$X(vnT_DqqtIC_P!u@-( zCqbSsMn*WozbJ@=7_j(Qz!!0G;4#VA_C-XdRYZSkuua<$ZI{5@?*QH(5FxLq@wW_d z+k9cmV!^9&-Us@&kH4*6zUEqgVf2Odi@DQ_t;dUfz@v5K_1}!+KV`R8RhMq%yPgFb zfvKkG1YIuGz^@XPA+;7(a&faKF(`v&$<;A-kAid}F`_R+&%*Xc3*X}gP{xsI-}N2iyY4^N99pm`AJ>%Q{@ zI(P&f+=C8oLHjqLy-U!}@!Rh4%iihJ{@LTf7w7-s@ci-U;_2k_`Sj}L{QBkM=K1R8 zD|T>qe|P`z@bvif`uzOz{POzz`ug(r{{H>}`hV6N=;Idju?PBC0=&FT5QiK+eJk;B2k)uEw@v9a;7 z|E!Ubp@HGi!I6p4sl|!um5JHaiP`;$x!Z}kr_t$`f$^8l;n$Xt*ZSqR+VhW!yN|My z_mZ8rob|VamA9zncjgIZSP|8;?JSj^UstH1Rd6ASy{b13GE#}oc4 zd{AB*{+Fv!zlmp_`qXaesrQd2aQg`%d4F$yf0_{R}>$@^aV46 zabNm^SVJprgLP8rkIz4ENpx~44kme`ZtLfo8(GeunVIY^;`?p(Qqfj#_Ln^!C7|#o zJg@ebyW_bs6dE3L`DvYxIoN%-HeMFIooL(aVzo5z#=P*dI^@&HR&tiL&Nm|?|P z`i0_@c`;ZEfAe1yN)6-5H6%$2Q^f|UZRQA7eNvT92+i<=fD&5PO}NB64|p=iqsTWKgLygO%1>5S<35Gpc;G*vGea?rvr8Z*tt zE}BN&5H6c-#hS}2LRVjk1Mn)xE|V_f(&$?5e375h~>{Bt#^0AJCg^7?yKM|DM){7(Zmb5K8jS zB2t(=S63w&oZ+xc7%kH{Xq;tv6R^#L^bmu>y_nH+HA~>UXf#WZ0;1lIXlhu^D@1bX z_CwjU-U*V!N9C&i{rn^!h4PxZAFDRVu^jrD*M0b#ZgBDt{%hVZHvC_*oSBrRaF^5D z+)jC@G^uVb@qBA5HzCa7%!l2&C&HD3l}#w_V_iCmAnR5H(iN2QN$&ZdCG5fDlf#T{oZYnPNt@TM5WXHi&RtvNX6!L`H-SApn_n5D~C z8Q_VOLIle`+y>uTP5Ew~q=Nwv@ST=dx^4>xhZ5?9hM$%P?YbLm`%(3`iA1|X-uOX( zh>G}$$T^7i>mVf`#h{&*1uBf^iu~p%uPjCh`z5l;PcARKj3nZjO%?*)f6a+Y_`@q- zY7=>;xrHTcCPvoK%}O$2?c2*6Q5-YCNplI^5pDS& z;;vDFi6>db7T1#tN;ZqJJ=&3>@BXGd(g3<*jnNK)xFznxiufS;VuPLEjQ~Y0a(?nR zMDXOq0y1jT-r2Uq7d#=~l3jVtPMKrk(y2ITTNTj3nG+#Lj=-;Q#AE#GJa8AN!crxs zzT4Io;F0VdOSlc$1t~id^X!seEk}s0qDC-hkYk7*$0`u!Cx8pme8`8!WOLQqORAUw zR)WP!XA|P^69M2E@NKuE_bCvr`VS6jvwuO?sRQRUB3&o4hrb?Tffvf)ZVwF(J<5p5*-1 zv7)gm4kWVFrlm=&P zt-@oCEZ=z(r~oBP)Bfkx4S9bq6vdaP34SIMbBfRlESb#~gdsQIq*-W!HEU`KDdi8) z8(TcMEDd7CH=G;kexC{>quWf%41mft;5_XQp_%Tw=go15=h{5xQ|pGUpt_}*=6oR8 z?`}Oa5y~`If<1GLzSpTREh!S%g#MRyZFJ%Z_I(#soV-cg)7sA(MjuN!zP7hvhg9LO z=n&V>?-6W2s0*Ao)a+Pl2QiCc+PDV?a_f9lwJk*+j(hfIFiDbRn7t9uG~igi)ovM8 z#qP0pJtHsIW4lXu$!Pa5IhWBMh|+;*5K?u1GblRO(APTWogG@D{UeZx$?#|6?xdDe z?nNoAl9}UC;N^2}@X5@_r!L_Zl50`!vyY-%s(!QvGV4 z;d^afVOit=4ju8`zY^$~y=2e=w~;P?Q-*!}Uggf)slO59zzX?Qo-5KU?GLT7nZU|q zIVpW}E4oa?l72uleT=0!-Wtq~KOkun;LX^sx25{L#ZbWsNV@INFXUuI(bT}~va1_| zyeU2DeqX*b0YyUNz zcOY)DGJe4`q9rlvM1*ST#2!BXOiFJ!!PIeeq_>ZsOJ3%Fb;)fJo4ed;?yIYrG^RC_k>*y=kiVyjb+rJojb3N0GQ1Nz9_4JuY>< zPwHh!L@j+x`$B>ywmr{+z3-d6;Hy1gC7fZKeGr#@ke_{kIKE$PP^4lX3>ROVf4;cQ zzQ61QNn-`Uj=f2Skx6~UWQfs@?tIrNeF%4y7yX4oF$IJV1Ve+pDQ-BImJkd2J#_W4 zSTWGX^88mQ19(F`IsXQbG6evZ5pS22NJGTPIegxneI#Jf7VEqzT>`h%xWs&Ap4bDG zW&+4?yq_t9gqOV({sv+aqe1=kR#Xq0s-OHRp>I@x9nqo;#vDgHP zI0pR31qP1f+ZG#3u{4E=ESfjY>1O=2m1>X(J(jJ6c7z!{^!b707`VZdW7-zB0;s0f2_VtkX#AYEf%f3aFDkxd{A7qI#J&{Aa*UuJPeW<1Bx?UshcJ!jOGz}+NXm*mf6B z0rp|X5pYIJAE9iAxStNkdbR`)6h+H$0%S~*aBC8ESD;=nlR{qp#e7SN`=w<~jdoU? z3@-2Cm;w|lf{}PZ@qJ15$4M1u|ECU@3U2c+zC~1*(>SUnwfb9HEoYjKKeAE{EXg;t zrJqr0DZl{EWUrM347fym&M$L0JwO9^NX1!@BN}FET=gq$mNR2sBSVlA^YtHkGbjZ` z+!T#mq(q^cPH018=r1d@cTO?Wfwv@_l1^B(VMzsa@bGUv6-sE zY6~>NY-<0|l9vL%t>)X{7THN=$c5!kfb^lDkR^f1L>a9D3Z~- znlW;$7M|qh-Q5=2!Gh^qTQn2-w1kn@-j#B29 zGDMtGi>Kx${MQAJGcDmB#Z5^qE~CkBkt}eFFJLz-G`XdrN25i_D=pbAx}GhqbSuFF zE2+n=nB}Tq{8JY1U*=X?=H*82BS|XQTk#jS{35PAptY!|mD-xQw2iBnVzqoS_1`>h z)h$<5oN1fiPmRuKWr=2WP%BM17n!3_zRzq))Dx&0{jHV}uP$ZoCma>s zcq-@E5UK}R9nV@F-x`yQAv~vf-9;*wa2l%49UFgJz4TiB78)}bdV?Z&gYuUP?B1ZB z*1*)qBD>b0`_|B{Sl3}!7wTU=4&L}Tt8!>lTd2t;t;wye zX~en0a95juO*JVC84cxdK(rJ07ymnYRI6N zX|`nJwdT6VFE9d-ZNO<`T4{;F(#zoU-dd~i+U88*zpdBAr@ zU^ox}wvEzlj@^aVUR%amON??$jDUNC%tDDO#c00(dP85L?fA6mfa>W8w?#UTM_wZS zw%XQSC4~gx15Ue*!o7|1UJc%u4gQwhhO*rX6ARNX)s9RYcOTadF4!jO+OE6Pb%?;) zX#*)5(=BQP*$G57^pTa4??h$-ld=JBN&(lUdeF6dz-u7UiGjH79ZPu~-^P2eBe1(; zV1285ePdv|iBZE@p^3+PfFwOoh^?;r;Iuw%G%+YwX9&${t$=QD*jSiREvE45E_M&C zetk&zuK+YqagH?P7qRS6}lk|NO z4XC#ICJuVw6)s<@@+%^TXGYJN4?^*-@#0N;8N1c5MCHMgDnCVZ(X)wSP)HL|Z`}D;* zK*46FvTYiT7g#UVP9HP#P!5`T7@xt^0Y})FK0!r_C_ZiWr1Ik{H>b?(JAVOP9_rYI}9<&XP;xEX4Ab;A7L(dFU;rF)CO<)czU^>p% zoi9KzL62yo((sJaro#f6z^uN;$kHvYy^Y#k49rPSM64mY+ko>%z+Z&JgQ~%c84)}? zAOPJ{;GX?Q9Dq@&HkywqQ4Q!Do+QkWYynO|{1{OVXHoK%BgMKYLbh*xRTIyuA`ePNmdnzkqmTYACb8Y1V zACOJoeWCydE-;4+@|l9Df#KPhOTe3#;~4r)vEC(r}x$x5m(Dk=o2)2QNTQ2l1ZkBCs?c4j~YY+xA zog1rS*TrKxYOzEG+vkvw3W^VCuC5 zBg;t^!~hyurSs@sD!oR$cthF5N2CEB2VHD)GEDyht-hJVQOfQlTsZXMoqVhx$1uck zGweet%tFclOFwphT%Np??L}IxlUl92+MH5McIC^qf4^=Ek@>REPjf5!)2vQ*ZxCGp z07zme#Tb}gzVkj^04l(AdACvZu4VZYa|SIJDjp}Hd?Q)ld$CY0jdbVLOU z?Z*?{P7CV?b!&L3n2{AL)M@#_K04UxYv9%O;`-R5Hqn!B)n=j3k^S4bdezntKIhk`6MIyUXnQ=xYds}eza^1eu zdx26B{fZuSDzv#*WDQK;e9ejMoT!+|`rP5<-#uh{0aU~APQi|Ly^l@7Sb!eX49g0J zXRkzO?iaG2VQstR#=DW%H}Ih*y3e<@{j7)kaZEC-YdVRm5-H~}!h^kD{gzLP5AZQo~o2b21|f!n^ys%I`O zW(Z78EGzYvub>E^c{uAXgu~_>hEdS;#j=1%Cukm~A%ZPE+}zO2zUtz!fq9%s{dpDD z;`rGSxz=nkKY&U?Nr(SLv^(Sj_ca%nR^w*A)S`gzXFJPbCJdcsbqKbWlZ7J$AR@$6 z>ESY#K_PSg1*J$Tqd#&Bk}uswXbU2-N&E8s*?O-vP(0bI%5HaKgp;36`1;G2# z7`sEzB4W61$lt96pg7+d`mbQ~uL@eE)qMjA-brW(F z5fU7W0K7rHs6Xnh#!>6$82m$M@LO=Yhed4=^{WTryKNcUYNH$*zGE_ zzl0+k=d|;}>lZb+C#>dv**9P;3CI6w>_whRFp0_$jOY`5|rd z9nD!gPTd}gZBWClm+F2mGK_Iqq zvq3P?;_;UIMrok0a>7d;mO|gZ|Ncg@vinJX9`frm_3qSM+`T z(O-6xEmdCjJia?Uo||Z0E*Vy>EOJ@392K@%wPlIM{1KyP;GPCikuO_xIu5+CcW{d} zu5|4zVq1HaAh`bR?m4W#HdqmJy%r>^Jw#jsNMs|ZUNWRg+hf~Wu+EZ=3j1*BM*Cxj zVf7#t=BQ1%TnM4-tlRv9q5GO3VR)&jp=)BXZae_PkMpu-8_ef+QdHzcRuA^X?s7#_ z{-TIN@&t0bewxhKmG+eZ>BeDiT`Rf|pmf=c(r4-2bY~U8eHy}1Zv0ir&_;iN7w}nH z@I@lZ(^&+S7V-EbPADbe&Fot>;UiF2xx8@`9;Od*z^O9WAV3SPE9$}ht?SC^^Q~$>Y%7O7-r~Mry(JZog4hC>` zAs~?Ut$|#%3Ju_b!@**P-iqiU)|L*z#w3o34^belh1Ww_GHGu*s0hTJC)gc46bxXR ziE{2YBz*7}g(0>2^HXUJ@u8`=vt@=eAYvVVk8*f@A%+u?d<$aCxhHa@+{kb&=grC( z^}PGqX3;)}@Zz5z#=R-PRp1Zd^Vd_Zem2oHq?=!{J5I3jG6?qDFl72Q8e_UGqW<=G z>@?7gRQ$aiahJ&6rlO1R-UOomn9>$BrAB*ojeNpVzwyro4Rj)kO2Kd;^{RgAX1$hc z&b@SFh(yzgzZq9?+i!+sYj7gXoM!5y?NfJzA{^*qbO~$tIjj!Q06(nxY)IY-NwZMy z?`V(_=q^J7n@nKw0`uhP6<_&TCIzp>()b%~yvL|7!{>%cpCsd3AP7!Asd2twK0F4k zC8!h03quGga+@19f7Z>5zL1CpM^4I#*Qqo%e`{Wz$ev~jnO@nq84WAc>6!TQuXPEg zhp8&j$ShO2xN`pMkXjcPuqG<3+*n7QzoAvNv2mfoPRYD)7rrKO)za&%L4OM}b7J_SA5v z$a)5>njl9j!#~_BW3o%FO9NJBrfE8tPD^d`A66~{V;dJ-kIjd@)H8>#jC*m{m8NvR zugMcgb{V3ZjwUSKP)a6xg&=d$1`fR0arGnZ>f4tpE?qF&w-*Ti^`HbXnh@X{z^g6S z#tm2pvGMTc5e~(_v6$k2;Lakc$#uOA9O6vEq8frAQa=CQgc~9Tfgnwq2C)Wf0x8oC z329x1c%f^ZQM7-PVt=a)a?sMgDgEWqC?6;$b}4y9%d0@&PmIe(CQ^$(_=7@Zm>=2h zA1a+Ovp4qmAF(>KV8lN^n_e0j%ulUwcbLNeE9C7o z9Vk|Byi{%?#;z&9FH(}Oz@Z!+H&HsHU6uE3^_ZV>buO3pzDRUpRUz4}E_~6URHY-0 zuWEIHYRAFZ+QLjzuX(Ylk*(4;@>K0-%)YiV735T3 zz-wuywzj%7=+xM-VPONCw_tuzUujKXW($$JejvtD<=tWB1X2^hIR==w9nhmHWeelf zP+Yal$QXNGagTpIvd1j&TKj$C;@>d1^vHlAd#vGXgB{)Ukwh7W%C+}G$hi!%b=pRC zv8`i?I}8XS8^lJZ_uyQ)jH-OOz|q%x6zuHd2s(Bt;n)ZCL#~sKo%X>U?T7Cm*Kz+$ zE5y5Wvf6**vx%J!h3p$Aa=~tMQ-%(uY8~5rM6KO*y2hy}p4jczP(Pev5mq+WPvKIA z5a&Cc8k;sQtb^UxH~6CKmNqUc2VWQM*Bv{wlCKz_pcs8@!=AMJFbV-;KlIHXTZ?oq zqk}#6S7e{QK8gsoDtV;Re4~O4ofkceIF9|_onziWLO2H!ki^PeZUW@F_DSTHV=92 zQ|oyyTyF|*!FWFp@O#}RZ@nLhd%rGx^%I)5KGxtmGlR3x%_l!L%OAA!giXb2nM3Vp#;bwM-^!JuD)RPo&i32gY}oCN()`qSM==lp`O(DSLh zW$1!v_=4!^f{DdFA;ke;e|rMdd$7`lLbpK>VBJDsEQK}kJv0%pe87I+ zX@B~C;q{w7G(2GzI_{9MKpmVmkuiQ-ydbuH5&h*rcF3O7c;S}1U>*x@rF5|Tu})r# z{%98wGY$YHF@TU*gvO&sSh~NK!zbTVwAHmADO}{2cDv_ZpdJU50g%UlF;H(CN@z?( zTS{0~yHCVMSRO%i3vZyAR#Z`BV9jtqcRxg28&Yr|;v0Sl4Xa3qK)>L7u%rNhphbu- ze}I_;Kt~S78`I+uAr8hkY&Qyz&G7)DeY4#W`9d4sZf?m3czv@I6P zE)xh|A7*P0GOiztCKpIZ;MO=E)O`-Nx*sfngyVPkg&iUEFG9$1T*!|uUgur-oAyw9 zz?hTAP=JdR@9===a<7AtRG2_8gZ%h_vNXSiF}aWq3zYe?gn2h~Zkd2y^?2oa zx7~H%tewYlW6kB1i1@3HoYYNu>`TKOh`r27TC4;KP)^>2h@-5+;3P!i z>_@_^lPe5J_DqQ8Y)p)Z&f}U+>I_R-+l6cRPC&4RPZYCftTkUygbMAyL^uWU6w46A zzLHeClRVM2Gs{&(P>l$_?I2K>@IuYz$Og5o2Zhkty8bmEtk6Ul!VKk3@AOdC15pvJt+B+usVhJgO$gOo%@)lF z&f^YzG!6olOW4dsFZ@ZQ)QTtENq+20e`G|OEY8O$Ofwk79DOvtQqqni8UKoch9S5-7&I;@WE!|SpD+lfLtkE>O@3D`bb&Xm zQMV8P;>^N+d_pXA0soB2p|n-LG|qfj!7QA|Q#sUvbJD zN!?V|15GbwEsz}5Y%NtZ^}g|wp_S;THHuJB5h!&_FN+EWJQt znAX(;23@dL^TO6_{zbxVZP9Mso`y0h?g@|_l_{#4s)W55gv}`m0;=KiFq?8%vZ=H} z%_nk2!A14Ebd^kw<*rTK)M4;It-C-fomN4RzI=VuedX6AG}Vg$*zo(-Ci9p|Fvr^* zL?SX4;PRWqsWY15Szo!8zmldm!k0TE)ZSwcoElaJ)mTCE*oBPR>(T{anATIk*GsKH zUck;RtyYzFKv8YkxARv7jal#;sU^!0_{2g%Y#&V`S~ZHJ2KuNI3fg``r>Ig}q*Yqp z_>j3h$fqs4sg=ZaHMOdp)_a9k95h)E6$D}Uz!4S2v31#(bxjB9o42hW6r!Jnoms%* zANpdZ@3W--p%orCB3+}EASN4^@+()tjjhi^R)(ZCklj*|UEB+t&`li&#jDP11yjn^ zL(9Ef*EO7JIx4u`D@<`Fqty^QYahxnU8TaHy}BgOtuv5mU2n};;X~Ki^*eUe$O;XF z5Y62S%ms1q&~h-}-__UP6<+luUc@xNnT1~K6{4ceUc1FxgzZ_)Niw1W8NZS<&}~}$ zFkY50SGPLWnkz=Z8$4eaS?e-fQ)AXGeO9f-!OHy3a){T-lw53#UlyI;_METpvENwn zm=*r8oo(J}p_qv+t{H9=qMchxsbRjwG=)jv!1dmI*M}=y$Qx*;ML+S zw!JQ1&Vys)6N{b$W)+LwGmKq{g@fJ2BV0r)g{tg7Q^?xby|vx_&T9Z<4JN~10ETN& zgdz?EBTj^C00t#?-<5@5N!Gp+mWX#F6|}t~PQKW_rDIPfiF&)YA9lEsHD&(`21lMg zcBRm+1P5#Gu~C*#Sq_F$2!>s@RNBqr$pz*!73PQ#wrz9gcZTP9mgjk<=X$nhY5war zM{D4Ti^h#a*+9NE!n@2XK4kDUXGlipbSBkxW-CoDkvfjDw;i62+h>RihVSfMRn|4a zo95NaWo{-}gI?lu7GZ^6Xof~}y8ok}hn+PVCNZMQWN3{`M(2VTf#L zyau%N?9|31wT|DzR_)hrITa4=*>>s-0|qMINLPmK-4-F%7GBrp?ch$h`jPAGDYy&% z&SDVm<(3}brd;4=?&$6{KBDX5COEGBPHL3y?XDZ=9$V<&%1ZVID zUl?p4aQ`c02dD7*Q1DUp@6Ud}4d?I<_wWw~@emhr5of6-z@>pG2rJ{VG19Uw<2YT| zzYo2JQ>gG7Z;uP_*VaTlP^xVk_Xs2f285FyhhPYZaDo*}h#4FH2qovZT=<1y7>9CD z1o#LBQ;;1W$MT)PaT3h%vm*v>00w``@uR2$U^?Z``G(Yi(a0px%_2?4v zY4>*Wbau`@Olkl2`5^ZNs&#CCh<^|;18etdFZZP$&v^b{%5$f8R;zXpO7|0=02+fa zU-EY*zjubttbrf*d^h-=u=gRivh{GWh4A-da&d`g@q{noWVQHST=tclk2m?0pNY^?`2{TbmN!(ChxwTgi8rMA%6oZkiZ7l(X4ua8`%nOl8i;hi zdHu$}qPM%B&)?9+HQ#0XKJBgTqglPM=R{DL?D@O`@nZFMrx3Yy0`m-;U(ek|pWBa$Sh`3+sx%c|I zFQ+5*B>$z@S?5EspAWM4`&5yz%oF_J-g>tu{Qkqod-w`k-N|7ZK3cJ9p4687%4eca zU6oy!b2_(kaFf00Hhk2qeWm{Sxc&OP#j^rl?4EZ(6y}f5SN%MiEmY}+I+urfpa*&I zh1k!kv!?ydhkNQz>D<5GC2QEsby#=ueWhAq%U$W=w;ogxqli*~h%f&70JT!d1znJb zA{c`Cr+*`m1?X=n>1XcSw|%$HdEfzvW&-~SZ1(RU!h!?`Dnxj2U_yfm8!nV+@FB#C z7ael!=t{2F$++@BS^BQ1d6yphAZdEo$^A z(xe=5F>UJfDO6laP396-WC+%*S&JAE{xc_!JESvpoFL0WqG<&RF9wbm}W9J!uWUV({_m_x4lCY*8RMOkAI5hf>|NpZ<# zo_+d>SDUk~<;#a>uBMeNyTBQ!pnp30D5PCtS0{myTAI?Ho$a_OrxjlMDU*ycRhKXI z7!VRsp+IlOlx$3$ruf6*EE3m-|J1nuq8hb3V$tt_7v8E8i z=Tu;LdQf*`O#3Rf8L~PkJ*OgxXo-t5nk~8IVn_@(z*J{0yIYn73^&ARx)VZ9jPcJq z-?h8%c;nXPp|?gRDrf$n{2F|)Z>FfbF2W5fRV6T(L8bt`2la$6XAalL;h+AlrHd~C zXGMf-c#5ep$|?H>t;#L$2i_PxBDBQ4o4E`gX&o1A*Dgk!nq;^pqj)pXMc>7;(JCYD z*k%CpFk%BQ>MgMU&mzgqv1ewrF4HY4v$NpUGa= zI_Jzb-g)PDw%!h7*|)1hzb)irR?R)c5kWutB;buZ?h%2JOFlW}m0Nx}=9z20Ip>{w z{yFHOi#~dSkH1Q|*KR*H%n?Txk+|ux%RW2pvU7U-jHj|f11P{&LGK{>8emHJhrk6guz?PIU`d*W5DGz1Bnqq` z1~aI^4T3LiJmO$SE(pRAlCXp(JfYa8hr$)Iu!SysVXIUK!x_@BhBmAb?s8{B-rcZ= zKKvmN>(iYb3NDC7JR%a4_!yd@a6?LbA{3)2MWW>Igyoqc7PF|uEpnuaLJ3Tz1{0Gz z;jMaHJR=&#!;Ph-u|Cb<#%sWEuP?sDI(E9q9rbp%HuABLuUR7-A5)0|kRXuYp#}jU zpo-cF{sfK_yPdv<0>_vQl!@ zNTe!SDa%>XvX+>0B#S1AoJ!v5Z=C!kFg1uvl01VC0bsxwpiqVbxS(OvFhDcEH%t|g z?LT2uh^Ve8mTYpfo8J6p!N4ibagvjq+bkzK)2Ys{WipuHo2EzxS%Oxmj2Z)I!8<*( z1WrkeDAh!a81HCEcM`Oq%!6l077>6Qw9KCPl;(pn_KyjzEhzuIWF8k{(Ax0A7ajGe zFMN@Ujgk~p2nC5H1ki%uR6>-bBmq62frtT+G6MTR2p=4f4?c{t0X*19H4HGy0FZ$G z6$f$XA!zCkhav=&2OwntD1Z-;1a+uIMMz7B8ck^Qfu;d~z*L!v5QX~VAUVy49!41f zRYW7LU%lx;$U0L}O7$RlfGR2dA&ml*z#&f&N1&mH07PIO9#Lomq;&=gsG^vx zeL@rl;DCOZ)d2^H0B)6fkiEv%39BunU84yrbvBot3W&KA^4`2b~2A~9b0PYzC@PK@@w+#NpHN#gI zS&rOBzzI!I#a{awR{{KYl<&2t1Q4*@`gV5!-wp40HHKQX+|Pg#10)Q#a`NQN80*Q*J9PehDAt9S9*|Y48R0ttuHOY`S0G%dx zzX%a)O6Q5=9_z)(NLDhFjrrbxc*UM2xCk_ik=%#2_r1o{F*NR~$RG2dy=y+mAp-CM z=aM*s^0X|bItAjVw$rCylITlVmUq9dIp7<(kBq}0Jh za=K-N?19P9&BL0t{A2=r*(0L%@ zac1a2Qaa~dFVrE3EH!)W{Es-d*&(MMK&gAZ?8FY#Qj|Um6YGT&NlQr<_V89#jNm
    VV!(R+;9pbX)pm9NWvsY0xlebjLzsW=)x6XK_d9!6-|#2ebA0# zj#_aRxwNF$lvZ0^2a$#+AJW?(7Gk!k=gom5ZNlUHb!e16Urvah#O2`5h307fX8`^u zmpB41c?`^5VQD4{D-+}%oadt)& zD1wWcC{MhD6+}XGnpOFTl#nK=OLi2J_9%G1*({wETPZ20exNmC=}Axam<) zWvH;Ii^3?4&Zv#zsE*ngV4~HKl4N3zl#k}Bquy$!UeS+o>SJ<17r;WdDMK@4n=(WJ z{-c)aRXT;KvWXm40TWEC5fDKP%mB7xD-k$B8bqgc@~B{jtLk8DLJ>Nv(>ehWJT25d?Gv2A zKR|-fUM<#Ut=4YsRmejWXdc*Jo^Nt3*_N%@o-Nv@t=g_F+qSLSzAfCwt=umD?6Zm4 z+}7Fj?rmpI)F6*|g>%K1R#;)wnF74K??cOf#dWEFs zF7ELdLdl9sI&jXdzFq+}LJs22QW_#t;qJFaLJM_AWvt z6oWqKLorms_l7S}JfezL==v4K$94w$)pGphE90av68vVkYbuL+WP*X%$;>rlzYi2~tR%>m{FZPy}x={KFb| zuPOXPF$`}43nLM9-6GyXR2Ez&-X~fL;aI{PJiI~Hsi=j*CH{V5Me{m?PdGyzs6ryM z_+eGp7?ZG%YE%eK^~6%O zNs%;Dld&qZviH7nEL-wU#3ctjTnWS`Q}QGOpKnc@{x3!6^gv5RGB0y819ig50z9w* zP!jc-<^)_zbbl^&SNohQK{aBdaIJ=PRWr66QL1!?vqtA{Ve{`9r*SK{@f$Bf9GCS1 zKfx(X0oLtvf4*tg@gB^bombX0HSZi%5OOORavdNt*CC}MWKe10g_sW;61HhV`m&T=(@ zOZS5r#s3EI02lB92L)#?w1fj+l`5#qg*JNr19K(wF?+i=RYdRvSMUYDuTVJhpLQLd zGFn!7n!t$CQ^`2vAeoE!MyyjGnLI-&o0f{(d!7k3NGl1rH+3$Krm zvQJ#Cv#w6Mug(rA!|Zg^?8^F%pcgu*hdOKAx!!cLAEgzoa=I~ zw;#@@i#xyf`>@M+7V*(WrF*tt`ZYy0OS-$CpJcq3v%II(z$^PwK~= z`&k*g!;5^r|0t{%dk6=;Vr%=ohpW)%}2e|tJDdrl-1Asq9eFydjX#c@yFGZ^eclIt zxbHo8vbjmIiMM~2;4i+g13cf?{VC}R>p(u^SH9&Jc;fT<h2=x-p@ zkG|=jKI*5w>dz3%w7%=VKJ3T7?9V>!*M7>ZKJMqf?(aVD_rCA{KJW*>@DD%nQ%44@><=ztCpC_#=h;BSrS7KS2BwIFMjLg9i~NEV$~+s)24A zDwHUYVV#K=F&?b*{)HLAGhZ@>6giS)Ns}j0rc}9-WlNVQ89F4mvE#pw7iqF|b4KD9 zIWK`C+!>T;(V<0=CRMtWX;Y_9p+=QDm12S**ppn%rd7L^ zZCj*bXL1yYHs#TTKHW~Vn|JA6zJCD+7Ce}6VZ(Tt|a#~pd>(Imxudl5hIQd`b3%OEsx zNb)q4%d5D)V6w^k=z@{K%{tnM$s-Sntw<}k1dmJIa(hxYt$@^Rw<-s+P0Ce3go`fZ zE;F;n?qrJZOCR~{bI0q3tjVr1vC7RhK}D=+GnsA_=nVJ#S`R{-u6*>sDBpW5%r-3) zsL>|F6!bBVq_osi5hY7fGtV+~EYyS2glkM@+>7rYTSX%%HO=w^L>)h?!c8e`HI1Uf;x4ZlPK~B|$vmJLPa4D|XtOeOa z^uWk2LyI9MRg!(q4sH z{yO|+5rV7JOxX*Nd7Rzu{>-cGCqC2VltkRLoSCLG2aO7Q1vH?`f(Emr%#@zmsHeo@@jniRj!MW{KMN?6i{>VqjqdD6( z%nd5*$xnuNLC0b1AL8K@53l4pov9{p+nb&PzlWK_A5sX5nPi4&jQmJ zMPrYMVO9_g z?hGw$bY=+4lg5|1Q=K+xCPDDXL*t=PlN=(N$!f+7c5V@$!>ro=m|zvVc$#UIY6RF% zWO>ANK9r&3bc;Vg8d8utC8Yl-DOf}*Qje}wA-c3C8Cz2m27W{{H_6n6vc@J#-4k8~ zx)MZZqqobr%4NCv6?b%2r~{2}m!G7|uV`Ae3~du@59N(R6jesmu#~HZDW~d=+Odsh zwTwL36=vLXPGbeqrtbmT2I-kZTM?BaokXBaTEnDs&NM!Fq-$8_1u8N^M5eV$9EkjK zR?IL%v3CMi6!RI_{)ox2rb!lxFuT+dX*DpCDx^KF zL|7}3*ot;+03ujZ5%?gqq=#0?q74oo6wiEO1R{=O4~hN~=$N#!r&Qyy8o+>qzc9j) zQWjzwaU4Qbe*#xi&oa(*X&c_We6^vR>+WYaBc&ORuZ8PFifYRmf{)JKKb)cq%1EF+yg`;t|i-B>BsWF#pt18t<4#IL?tydHh1E1XLvf z402RXJ5rO%c*(4N@rjj;(ik(j$^Ib7laHKbi2!vi{qaAAH>A19%-pb-RVuwn%1?p z^{sK8>%VM(4Qnukm7(n7PZL_!u^vdVkNxU9uUaLl2KI`Ht?Xy7y4Y0K^|i5`ZEbIx z+mK#C7S_;)D=6X|!4~$jS*`3UOS{je=JTAFjqa5=8@5(1HM^rNZBcid-vDnwkiY%* z_rC!iaO`p53a8jb6tIAWQUrV5_Gb2#@f~Y^%^ zH-7TH_x70v5zDi@vjc?|B}5NKXHE>BxTYg-(j%g`a)xZ=d_!?-TKN zVf-?DW9UWqIMLOv2!TBR^lDf7KuVx?{wZ837G#6BIN%GlNi0!QNaq-F7E12 z3)Jr)YR>-F&*r8;3ra!p+E4zpKo;~*{%$S--7g%T;ODHY0N?K)@DBn6&;dKo<_04A zDsTV=0{cqf15xlFBJcyfZw6_w25s;LR|5QuPZ7*PB8Wf>;%)_}4gse?{YLKv1+M}r zP#)$W9A1zhP%r@(F8cn@3YahcC=mPL;SFFA>{ieUF0cV9@E@@61kG;?ztHHYParl> zAbxNRpWq7TZ|U}r^9EuK^-t;0kPOX_1zqqA&F>$Q5C;jd5DoDVy-x?LfCn!E{o=0w z;E(M_j|dKs45#i11p*TX0unj?Kn$wj<~q?9s?g|05C7~i50}mjmCo~oa14pC5(nb> z@URV^5CyR?69aJ|u%F$hDE7t2up@~;amP#f7${jPBnZ_X5PQTo^r z6!R|vfzT2u&>QPf5UX(llW`ykvLFqT*4hCDte^~vZxMS?B&cu-?2!m>4iXC@9?ftf z`SA%#0UoLV6(o`(`Edc`uKg;~9HlYt$}k;&aN%U}1KSWI1#uqpF&E)a>4dQYUD6ka z&>y>S;VkkXg>oo~vMBz!iXK`{3(lY+nNcK0uMJD^=I}5hvC$@bkpS4B?VbQD+b$f( zkQcRaDya`0hmaSa??7R{L^Uv>4(J1jUFZFUSsfPo$02MGV z{2a0wDFOZjGX9K?0}8VW&u$Oj5CNMIED7QV5AX-yZ!Sf$1k_Luy^s&%au_La5Z}=a z_mM6+4=Nv15Z{j;fAS!RU=3ihGWSsn!H@_^kmwqd3;A+4d9yctb2^$J5q4n?U||=E z@F6h*{npM73y}GqPdNpWG*u7;)ovo~k`LvQC%@7JJrEd2FgnRn779@QWFZ14!31qn z>7X(N4KNZpFa8^`(+metI|ZTu128ea(-nVnKl!si{WB_>pbQXh5{yqj|MNf*G(i;< z841qicHs%eAQcyMLMgODEfo0Zp#`u&3$7pwV&OtTG(<&oL`yCqVWHee^dRCv3KFhG zU9?3vFGXc^MrpK0#cLi|bPx7`4+LNUeDp^LzzSm2Mv1gYjr2&bhv0N{4-9l5nqWwg zG)kp(N~x4b;Nc3E^c48+ADRFQVy;TTG)%>GOxJ=Qo&XD?AWfYhP1%%9r63K+G*0Do zPU#dVx|9S+pajx^9{99R`IH38piTvKPzkkA3nCtl&k0JP1n{&`9hC{6 znScx={$Ua%0T+&;Q$6(r4sMXfaZCuHcW49G#FG3A~Rvgmv<-DVBuhNOCocjR%(a#Y6*g9cQ;}QcYLAsdQbP!Fp&NPBar{P zkvt6o?ivs%70?m`a5~x10N3*etCI%16l|5?7`C)*wT$;d zp%-gc*oD>LhFkd7PVWFU^B-aW4&N{BWYa(sa10f*J_VBK-CT<&rrgQUBby+_kcN#+TIQD-gqR?*!Ij~ zfdLke4+3`wB3$EVhr?HSOE`M}m_dlPd0kk9OSX3__Jor+g&8D}N&a^-LKt&3H)=`3 zS(g`s*<*PFd21nUDh+}j2T?Lvu__ntIww&EX|W1iaXq_F9uV$DZ5az-@rl@2=tN?d ziGt_qn2uWv)$SOMe_4)GPnhQ|n2Q-I^w?MfwwV36kXd+XFPM;}*K?`aXyKrn``BpdYLCKp*@ZzikYID;+c7tj}2m)4cQJZ*AC{^c>e)- z;oy=Nxp;p!Tu+)HoK>CSwr{JprL)O+yV<+I{lN}^){P;2 z+1lE_FD~8od)abZlgs-B6WPS=CkLn5-?Ftn1pXr)=6fcW&F9yurKayj;P>Tf9LE zR%w-1ZMD7moV|Y>!+CfFnU8h?K2mq^V{0j$gJ*lxhv%HKqJi_<9 z%j3MyMLpg4+qA;kp&c63znj!ueanS>$e;YIJ6*|xyvR%Z%(*p}l z8n6kky_=a{hb&2`aT&foaqmOa+pZq*GO-0?c#x;-eY+uM&$ zKI&uM?S-An>mKbbKFf99*sJ~LBi5&3?cZH}--mw0RgK!qzRHgs=K?u+kf29Nqo;2Ud4QV)lEF@jU3qHKG$E5^$8u( zGvDN;+^hHA_SL=b{UK>rnB3j_;75M*=R4kQp2RKw?TviYGhV`7zTl64_<0%78lLy_ z-uL-i_M?9E_cF0dpZ3%k{`c~_^_3pqiyoQp+Tn5i-7}8;#rpQ_p5Xb~zIXrR<67uL zDrqw~(9)f^0m9$EfBp&%BxrD8L4gPtCOqhHp+bfbBR-5c5o5!H6*Y3qD6!+ih9gIc zOla{VM~f6Ys#NKbWXqB>8M0h?b7MxFEnoWl2{fqCp+t)sJ&H7`(xptBI(-T?s?@1e zt6IH^H7iV$TA7CI3U+7Mv1H4dJ&QK2(62^asTueMnA)v9=h{`vl`Pw+dGGrD3plXg z!GsGNKJ0TZ;EQz;C#KlfvE<2=D=%f7)a}8ziz8e9%oDF?rHVnDK8-rH>eZ~TmOiL0 zw(QxoYumn!JGbus-Ln7j{tZ01@Y*bj8$XUbx$@=An>&9FJ-YPi)S0)w{xW4!J72nc zcjbGy`0?b+n?H{}z54a++q)l*J-+<;^y`Cuk3V?${QPrQ{|{h*0uD%^boL#{6leSO z$6$jFJ_uoi5=w|*b`DjDVTKxR_|t?8F6iNV1&&B!i6)ZBVTvj#7-EYqz6fKCGK$Ax zPAcArV~(cHxE_c+mUm*1LJmn}aXO~R;*Ux$$z+pG>Zc(~jU7p4l~$tlrOonzj4Uz)pZsV8k={t0NHcxKpVp@trc zXl!e;$rJva5}^YQEwju*3pnUZWv5qg{*g%ts=18kHsT$g9w9*o|?19Z*i*2^= zVR&m}#1@3?E#?$t&MlJy`w_8*sf($xf`vP-KjofVt%}V)Tj;dg z;H@9kv(7WmtW%G-7ZQZdxfUUdPPaUnQ_G~am?M)+jFFr1EE|W^ZA2Jr9IwZ@njG@T zCao;cLMMwnu1+LtH1ozw<;<~B5zm4yM-=GKxZebHc4VB^tP`l+iVj`b@v)~XdUl8 zDaT;rEic+V9|d^YMtSX%*h~{jE53ayO?lEs{eXGqns3f|=a@f!71W}Sj%~qGs+90L z`skDJ)vmw(jHGur^mZ+_-;R6kA>XpPxgzTheD0I-u8;4*AHRF=8Y3V4@XG(ryzb5y zzkKw#Pj9^S!p}l{_Sy&T)7iAZPQKO9qyzeAM$=k(`}!UQMEvs4Pk;UP$De*xr0>r^ zqV`Sw5ryevAo?gD`6kt^>RE46`Y4D#6sWzBHP9aqgkA(0NRSFf@OrbDpawT+{yPQ= z>>VWD3$&RafoK3kHuah zKmx|_bqK^23y~*63O+Gt+Z<$=FaT!>J?4uv^7{{m(agc;ml6*?`lhm!Qb#7Fc?DkT-FLqCi zW8~iRK$tx0rE!6l)FdV|={-qa5|h}YJR+ZwW|O zI;D`j>}87%3BZ?B&2{zI$;}AjwPT8{ZLdjO&Dds4hByPP=ZbVu@nw&rFob^ zoVk$;9TS{LAtzB7_Y%kH5<9Rw)hyrXDx=_Xo_<_sQ+$cfd^QM}j1p$+80L|b_~U0| ziwMQMsTg^+tY+cFCNmX^vcZ9bWf67g!~V8VooEd*GFxcgG@>1z?JT1{qt{1fE`ewM8&@FJJ*f<{x&^i*Cy4JvC^iYS*VwLnM7fm5Ff z)u>8!s!la3QgDjZtZFGfr_&0u&<0eiTIQ?C3aeQ2G%LyJX{l@tP*bT2*SJ>otVGeO zUGJ(JowBPbp_){sE=5<+^mSB#4eX90ceJ)DR!l~bt7E5XSfT#lb+VLI)O;=)Ss<2d zr}rR^w`Sf7tD=UHYj}?`q|_`I4@A zscYTza)dkGfx}Bw;T`wdbG!8ArFidamfB(#zg8jd7tlm z(TA4wrXAe|H`Kz^lqSlk7u|+KgZe15W_75EQfp8zSy&lX1A~2HW+#94hHGZCQRs~9 zWWV_%@Er;;&a6v6OZ#3_n#U@_F%MOkH7J(8!yFJDk8j6A)kS#+G5#^`T7)|s=`Kn< zit&$kh+Ev`c6S>*z3z4wsf zUz4E#26Awu z%%cXi;K0rQk@KUh+vhmHwNOl;3ObmB=s-7mP*PBEn-|^PN(GX`run%uGYY82Upl($p0{Nci!^sfw=t(zuvf+I=c-IZA22Lj{AbwUAlhFBC#=W~JRYW?PjulIeCxNm@Hh!mG(fY%)#@prDEdk$uW@+Ev+ z5{6=E6lREu7pQ@1$cjJWfx)si9N`YvmTkbo7StyYC-`vfmWLkUdbd3%aJ67*v!INg$8(J5j6BFO0ymA8=V{v*Wga|2l3#n;skp7Sgd2bV0k?QwtR@acCMtT?-k+Fto0{M+YF=6Xv2Y>e+|Dbzw zr;fu$NA1{B?--A$IFI#+lODo`eiMsxqfIOblphsdB}tU0v5rq7lQVgWHJOSxnUhcX zAUoMH;sk;`8I;xZlX+8=TUkRe8B0m|PDeolV@Z}}X_jY+mSgFZP|243(R?Zcmm75w z1W7m-Wm{Z{mx6JWP6C!;X%uM*n1M-_GnQ-jyWgK{+F7+X&8IiB&}&juNj+}DOSM8Y~G;;43V49i5{eh72pM&)oB;P$t1+- zntyqmnrT#9*nku9lF&(>G-93SiJrGfnJlH9IAomN37BG~XBNVe(3YO}iJ$pdlGwQ< z?dhIIF#`cApaV*v1!|xHDpm?u5eax^<>{cpp`Q^dnf$3F{^>qPaiAHhp#n-%zczU8 z)e_42pd-o~5^AC+ilVx-p(|>joXLd}2BHyW2fUf0HEN?bilaH|7c9!79C}+cs-r-DilteamodPlUFxM@3Z`MorCLg+ zWooAWXNsm6BBpD~rd^t*Z>pbNC8Tl+r**0#ZHlL1YNvY&oJXXie#)nTdLVg9sBS8# zhgy`I^{0r0sEvvpg<7bNDyf|{dqJ^Za$^*gS`?Z(6r9?rcexgz3KX6is+Vf133Zy2 zs;Ykhsf4-D10+Fr&=t(37aTCr=v)F|1?t=;Oa-wLkbDz4+|tKd2o2~(}B>a6R^uF1M! z2LXy7@oVv#uJt+?>7WejkQHE)t-ZQy6VpF)On( zOS3g=vp0*gGy4qbP^BD8rWFgc?)nlx1{6f=vqy^-J^Ps9%CO|>v`-7QQ7g3z8>|Bx z7D|h>RvNTHdu2e;Y*`DoV}Z3|MxDVzthWlRbdk2(dYZQSsk*AR!aAyDYqoW}E@5k@ zTMM*yW_v$zXLt*^`?_Iki>dgSsf4>xsS3CLy0nUmxNLhAmnye@F}8tAq$|yo5Go0Hg6Ces8+f;iyqhW+ZcDp#8yK;hyeIm*(@VX&8@<li!ocC&w3F>%Q*`zws--^Gm<=Yrpr4zxk`b^6O~T>%YCby#Z{R z0-PG!n?LD`zzM9t3(UX`j5+%Y!4WLM6HLJsjKBT+zZv`j1kAyt(ZQx+!0F?_BTT|2 zY{KVj!6~f5E6l$9v4jM{y#LF}JAEw{5JTb6lNrY{=O=#dyrf zjoib049SuF!+!iy^vNlRTo!78XKkz*iEN#i?8%<8$c{|PrHsCkjLNB8!AGG2t?bIL z49l@B%dKq5c551{@D>>NcjXw$sR_!xtYon&ET&A%#Vo$6jLgY=!A7wH&Fsw249(Fj z&CSeQfs7i@wvxd7o4>5KaRL&N%ddwU&fv^U}*lXn?Ii68OBV{ z^{hF{jL-S}zDF_5{p`=qe0HI#&3MbrkSor;sLsx(E(ksTxrw{D6ET;E8`0+6&~y3F zqieg5Q_((Q&mC>d`V7+f%+LQ!($P$N0j-Cpp&$c&$b$>f=uC$%eb8D-(K7wE$HdNP zoX{!VVIWndY(vwZ`ppR87zJG)c1e{Jbr2rS)TJEKPmRnYUD8v%0v1g+N-f9;$kN;F z(nJl@SMAj^ZPUH!)jLgsXbaY6ebzahO=ykNLXD|QD#f6)*4~81O^w%#4Apxr$x=<# zB%LB~03KW2r(G?8J;`J-9oBFA(wov%iM`gP8rMCG*pyw_?(EY=P1jm^i*=C@c@5fm z%-5r>$A10S{+uGw@WzBKnMU2%V|&@|{MujL)&l;W*|a^@)*RUaUDiK+&Wl~DyRBTC z{n|a*G5-+S$<4#0&D>gS+NV9uNTP|G$l6@#+PzJ-Y3fdx-hHY=U8^*m z(B$3SwVlyKGkdrF*~$&yCfwZf4aCn4-6mb#+k4#)9U2#16B|v`v-_)$E8tBF;QYGN z1WVhG+p!w`-yGG}?;YP0-oW&2;Vf)$CZORP&fy*I;U8`S`K{kq>$tv&*}sj}LoLpQ zd($S4*(%Q1Fn-fAKHxMy+)P6g)CaHwLE$~Vz!whW7M$TAPUJ-%;wgg7-J#W8QJ5Ml z;u`(rX>r|m;^S4GzCn)V5RkcoR)XoRp6Qzo>+IXjq0=^@#vYF+BA?$je-}!e&00b7&u;RC zeiS1h^g~bdMQ`*+FZ4cE@dvT-rjhYX&+>7C8OKfY-d^?Dt|LZE7CkTMKM(Xqf%IW7 z_Cw#bE3X=0F6LM7T{zF$Y(E!T53hsW$+_Mgc&5bjT9^n}n0SWVT+ilS59dKY_JeQq ze9QMQ(e$Qq?Mtrq$>sK2{rG7C_YEfZ40iEUC|`EKV7_LBXNJpo&f|XX@PMD?f=~FT zKLVNy6p7#XbsG5t{rYGAq4V7V9#22_2&f=`x5;-Qrm+vq&R-Uj{|~lr`5CACn;{oZZ;o;?-EtB9RX+S!Zu-VQ_QBizFlzDLvGmN3 zrqCbC?my;BPyN47|JSemOU(G+FZ|&TL%n zz5sg&M<7Iru8sypdeq_%s8OX(rCQbMRjgUHZspq5>sPEE#EvCf*6dldY1OV}+t%${ zxN*~F98uTqUA+Ez_14YVcc2=gt|GcJ>eujL#EBIzX56^pO~;WXPo^9ha^;qAC~j67 zZL_MNLkVjB67=6hil+am+8h+@YuK@6&!+8F?rq$;b?@f=mhN8Q!TDl7Dca6YU|)zY zXWrcTbLa~%N2gxh`sC@?535nyu=aQG;l+pVUEch8^yV{)VBg;Td-(C$Yu^Y*=@+Gf z>F?*?-~WGsvIB5H0t-w?Km%Li&Y|%dbnrn4qe^c=3M;fwto7v6aKrgl^5;VVLHy7< z&%P+^i=PryaYYte9BD)sW0cW37-#e=LL76{@v94a^zlcyGURZ`_XvWl#+5v@aY-hd zbdop_pZ=6`%9x_0GNv7~)N;!ofb{Z9Foh&?OoWg$$jmF#RC7%>9TM?PIOCLaPCDzf z^G-bT)N@Zh`}FfqKm!$YP(np)vn4JQRkT4c8+EioF~=OTOaue0^iWJQ)pS!%JN5Ka zf)*8ZRM{Ri^;F&>m2^X!E=3bmSYwrSR$6PdwJ}n2)paXWd-c^fj8-MHAS+wF^j2h( zRd!isn~il>XrqPRCBMSv@|_+pGRo@`)_ z{u4F$<3|xzcw`xUIxR5OG*)?KmRolDWtd?CVP=|Zw)tk9XO^*|lmAIBW}t%>dT64H z{x@f&lcrflH7o+`AN`D$dTOexw)$!&mDU<(89_VQGoG*(du+1HHv8gT(xxSD z5Z8Qj&O7(qB*;S-ees=%0$ed;hEaWW)?0V|_1BB}e0JJvx83v6bAP;KrQTGG7)>$} zet6=GH~x6zNx6M_=9_o^Y7L^7etPPww?29qqfx{6--Ac~d+?Kgeth!FH{as^>(f_X z`kgm(zx(jx4`2E7>$m@Y{Apc(f9wCQ94Fw(Pk_gxU;YeuKm;bRN&I6V`(h+G!~}4F z6BJ$n6?j1mW>ACHX%phWK81L?k9ri6Mz0{}7@I5&j2GgdqtCDH6qju%?6rIic{x zQNeQG9mta99}Vm*hdke zQFWOxq!A5b3{u2Wmb0W~Ep2JbVRYk?yX0jri(m={_-}X+TPGXJ5Af$xm z@jUTILKfpqhpgZ>yXj24oUq77w0MJ;+!jAm4$ z8|7$6J^E3QhE${@B`HTUa?b0G2ANX43_8oy7Vqfkp_YEzy1RH#PPsRgBKOD1|%tYY<{S^ni}R})%Nu!dEvVMzrBujU;OU& zzFzd9@$^~Z6Z?aw#RD!u`0L-}0a(E^w&a5i>|h&Lm%=;dagQyGVIZ?MCr8Q-i03O} zqk0jHCJyW=Md1(QwRj*ehH>#^Ok*swF~B+V=#wVyFUiRM%O4mQbs{9`EtOJBYYPs#$JGMt5X2i6`e-&*2PifBpRD<_cQXEY;QJ{ck1f1C|D(?&{?NULh{h*>=+nb{ zwu`MAZG@j|(kH>TX0P3FiE>-w+xB+3Eq-xxqx(SVj*Ms`;tzJe`_%E~Ax?$2S0!hH z6j1iWDOaxSgY27?OFo_%(O6AT*PGy}HpnnM@pGUDUFbt6I?;)daHKm6O)z4*q0l_J zr*jYDmVNltDLQeiFS_Cw=eoGjU8#jv=Dm{>ipc#;@}9mauPD#NIZE92w-YblG9TVF zjYr6A;=HfMEBHVL4rfgqJ?Vo_*3$mVd-!`bJzr#Jyw$y0b;m0->ysDr*1LXrd?_UC zl$qlk&l^G9RvGPZo_n*4$7y*NF`IYQJMsE1kiSut`&Sqi?`d_QupV2S<@#almY@+cTKNLruQH_w;!+7?!Cx5IA zzxbvTIro6`o$$5l{;L*W{t`Yu@-NOX-=)7;$ij4PM_=XYlQ&U2xqY&`w)?A{1Hb4S zzw&FqPB}l_Q$MI%Kgux(_?xKUyTC@8KMou-jJN<03_%ebK@u!M5EQbfJBw6+Vn7G%K}>-_+>1c;LpokEwwzwM}G*m-LRF<%t zLx!qD4a7rD6swG=08jixPz*&;97Rveo{y_QUxT;l`!z$XGDI9Cnj;=3W4WIq1@Fs* zNSs7ntd&Z%M1{h{3*1CuB&m#`0AoBxWK2e7Tt;J@Lb_omvx752oUc}du~$4E15BPT zDx~4rzT(NnT@1%^{_(|MB*(8BMs)nBjF%&mOH zuYDw*>ocB!9EL6=9&kiRmAn;&JSc{AzlV%TjLHa%tVx@k$Qh9sp|C9#+{h4H#Z&vp z`3lKl8$jdHxwJDLa7>0?XiBGiN~nxVsgz1zShkhCN&soeNP0=(lS!{+0Ghl>v9!pN z`H822tDcO$jw~#p^ev(khkiu4ma8BrBc3x-N`owjUQmK0=u5x+OTY|F!3<0kz)Hg$ z5UqqHuKd0JuawD*hycipOv#)~%B)Pt+!?1K3fD4>di18XJgTAdx)DXk5@k^+jnWn^2;!Wf zE3%H$0mPP&(Fvka6tYoo!qGF-(SP7kD&PV%HG;rA(=_c%DL~UU{mUN}2xv$KJH1mp z%~L(yQ$D?%Aoamvaw|B91`VB|?m$wy`cQ3HQiyBPVSG|4jnouvt<*q>8j=W}d=B$+ zpJ;$ll;F}7LQeoxPkm!gS9DK;fKT6&Prm$1D(K56sDd?xRas2}DUbr!oYQ|uh8Y+F zU;R~J4OU?tR$+w!QvFlfJJNyhB+|Ge^%96-s#KpzR3%kZM-@g$l~ipNCT5z}W&SNv z=y)%X^BMERLQ!==Ql&dNv#_St$TA z&P+R3ElgKaT~`JCHC7$WTXoHtwN*HM0>VTHedSjQ^;g!MN}v7Nsbq$LZKFD3D?+6! z(f9|DJ<_DjBX5mEsft>uo!UE*SWTqZjm=uEu0z?IIv4KBc)UDzDl!eygN6^MbYqoiHh#wCj01*IhI&&kEM%DuzO&0Oc*T!m1D zOmz+_%A)D*3s4mxFQp(bMIqG9t(SGxd-Y4!O#&(y-@c67C*XpcJ&2se-Pf#L7rR~f z9ZcQb-6aZC-%VV)I;N#aivQ&>fsn1^-OuE$w&i8Q=5=1oh2HkUqU0dh=ioIGl93Th z&zM_TePmbIb63`M+a#!4IE7u-6=674(<(UO_BDw2tzW^E-zlU1Ul#_<`^8@+N-w2g zR%tzr))pguL7U@gK- zV?Q2cQvTx@>0F9fl0i<{LUy)8&SHbu;u-eh!K_!otb$3l*TB5wzXi-NzS}j;3Ye41=^5kV^=He4&X#QshkTflQ4qymmn7E^B z7B)imTMY)uS9V!N{^l;0-PLv7ch2Q;{!3oYxd?2gM$>iWmOV9Z{^oH0%kmw} za;D_L+-R7U=e~SuTg6q8rs0(?2o#X$zEpx(BzNNcrTYqoA{w@&MG z`;X7dy^w%I{8J{L7Koq*>P+zIy>5u1#>b-G=KhC9>WEfqiU#9iZt5hkYV#H5zLe^U zcFm`Lf_u&Cza;5@=xVP9Yq4%=WqxV1o;){b_eiLPILdW`6tr&p!S2M= z?ySp*(E7Rp8QYv@h^6C+Ds=C^{^|Da{_Dw5*A4D%z&mWlYCa_6j@qZgJX1o)^Dww=8Vmrg1k8?gLL} z3zu#SC-Ndc^8`WwHD7Z!Z*w<)b2V>r1F2q>*uVXKAEJmagHUf559-^#a)YQZNV;N@ z=!X5$a?uPhNaF9K3cN@H@cKo8NNV95H}ps9Wv?FGND^}MRbg}XbiX9#zy#|?LUU8c zA2?5SRbO-b%kci7VDh$`Njn}Zw{1SB3>bH48E?)Hws0_aV;o;(GIv!-cJAc%OL&%N zGe31^Kc545c4&`wX`gm#e|8uCWj>GqLTq;tL|;xWpYdMz>R;#LVAo_I9|%s5*B(FT zz7*q-R`#%Nc6m3SYOi;DhxTh9?~i~O{flB)VRV4{?Ju|SFpoKop5b9%-D39WDj;sG zhWB}o`0=@Sil_D#5s|_u=zqB0CFyCt{%Mb&41o70f#>3JpW$-n;)G}Jz+`wMuxtn) z^>~+fn!lZjzj=I*5tBJfueFgrcX5JHZ}z5)kw>ADpJjpvb}`TNa~FtoXKbi$cOx)v zI4$O7uX(KR90S;TuJ3xU|9Y_Bdd%#ZLUj@q2YSA)jH0KYqj%wxcj1&r_@>`%UvBWK zw%KD>Y?;q`zW1E4|9k$x=X$2eOsMI3COP{*Z*jDjjJ2PjwvY6rC-nzjCxs{l#ef0eXD+ef#>2dlz2$Meh91&wacR zecl)R79lUzrU(PQ64nRwpkI892>Ct#`NVGs*B2nz$6eWnU)rx<+jnE!*M03To8Iqz z7a=bzDe(ch_4a1(y)J%+`1$lc|GsYig?N7XiT>H0e%!5o_`QBE&i?J+|Enng|Nno0 zC?Iek!GZ<{{!6HEA;X3aA3}^MaU#WkUx4}Z_fO+Sjuk(G3@LJC!b~PlX8LEcBubVi zNitm7u%*hBD*j>O6xmBjlAb<)0u3rOD2j*4h73)rRH%$@4!O-(Ds}0QWDikH%_>w$ zubf`Lf(OG&1=xE+>04I0_H1taLt)1Wuml6 z*x^pCj(rw&c=Yk(rca|%)>`#yX02QogAOfvH0jc&Poqw)dNu3T3-!Xz>)Pv=+O`#b znXP-G%!P<;uIx>^ap$R#8%{1R)pA3q%B600i1oSB&%3W<&#rwt_wL@mgKr&se8KP$ zFPhgbTw!9Gg-a8sKJ+-l=*N`h} zK%~ZPx=m=KVC`iX6L9Vg$J2>D(YKI&Cz803iA$!q(263qD5REKa@nPqUxH~C0b`O` zrkQ7=Ip#vZ)W)MjaM+QM9dH1N5rtuzmzZHM)x>8-9g5hbLQjeqr9xAlSfxT&dYC1i zk3t%$q?1zmU7D9-N~Vr(Hl&6t3GH~@UzK)up!^ir>nH*qMPnm6|mc`yYIpque|fpTd%$M;+wC&`_emzzyAUpu)qToT(H3hBb>0p z3p3ns!66YFv8D`#>QFRa_?Vlz8$U!XpS@B05TG8q`VXuDdJArV;*xuxxg5hBv&;+e zTeHnK$Kn{(c|=k3lNy6B^m?r+_Aqn@GD;ByFAEA^>} zeIi^T3$^pW7s3!{6PzIpg;qfh;xLCD^dPia_$U%8$AsZRp_NqV!y_WGEdOiB5+5?E z7(y|M_o^Wkt4K7E=rD^LOd=QK0>t77ab-kYlo7jV#xpt*gx+&V6aLxA5h=nkj_$G| z9qTBt8)`9+0$^eY6VgL8Vh$(`5#&FDQjsrqCXD68<}ZO`aLtB6O1M``zgv)0<}od=z0@!pwCc+zv8*39TX?&;C^=`*DF7pA4j@0r!b?W8hOgm!1T19A04XaL~2y$g#-XfT`E(X>eQzy^`xg{rEXZN z)5XYCAz7`ZkZejFoL)7o=i25wQ|i6$0Y;fbT`Sv;>Q)MZ1gdhK>r$oa#=uQgtbBoK zIB8nQS!&6v&jG7m3(G4>UR0Gpjb~bg%GSs3?5&cOTTRQ1$7P7Ln*<@=ww8~yKw*Z*xA1&I_7*(tx$g-Yl;X>Ml z^!2!*F>P^BTioZ~Znn~;t!=C8Gu-OdveIG`#*UT#J?Oe+p?;m|c(=M3=61%p;9YOo zrt4mwSvS7Xi)(f-%R{P$CAbVx#dp~Y+VKK5rU3qkas!Oq0UNN967?^GGxy#H+e^L@ zP8fFUD_0MyMZXJa)<0y|V6$wMuL!P)coiz*5wGunA6_x$Anam!O*qC6qpyYMis7_q zxSa}V9g9JXU=f2Q#5DcMN3?<7%&51=O4i(qn+!S`Lm6Np$pe+EY~?FsIm=YOFR+wowWxj((;YY-h&irDMn}gvEZ?sz|6-~hC|HDRjm$K25LU0 zJs=`vK>wK`?SS(M($WjhE;-V{ax$f(Z0Y_%Oj*mC-t?9kWKgkqnIT}7v{!(P=u?;a z$0bfQsau^+N;~<|QO-1{YklSWLi#KE<#C7os0P@%dL*M2uTKn|6F(=H$iZGVBw^iT zSworDww^YZ%fj8-G>g}8sLelst&MMMgBWB6H@UT847GHl+~4L#o6%wnb$?sVXdwo? zwQ*;$G!EXr6iZX!%?*VL_`m>1PQ6POmR^vX*$R)8vtJBt8B2TGwXSwtKD}^n8Zy~_ z_4CC${vuDk#T6Q>NW)$H@EAv2;+v-UTP*JJm&2TRJ_1HUfZ^dDeJUX!mxvl}P7;xW zq~s7j`GixhaxJsGEp?8$jFfv^j{Y+}>Jw1|uWkO3op(6r5CH}p)IjsN2>roCm$1=~ zj%8eLR_ZcawZIcvY_-E3B%bp6KdjEW?Iq+3BL9LMY(pnc*~V`Tv4bn@0PHW=0o#d( zTGRrc_r1Sj=B!7va+#0Op zk(->gX8u&g*e~sJ;cP6s$%^RzWIv#}$3h?{!Pg(2cYTx%z;4cQN z(LZl0-oKTSWMij=Y0oym*2Qx)?rwI{Q-MkL#T$tGEmV!E8*i6nCz=HhqG3yoxc~KU zqxFO%iudPD;rExz_gAgSQ_)ZcC_RmylzT`|j6!5`y(kGZ2gz`8&O89^B`kL#Ha7w@ zC#xIn*)M4GTg+`faIRzX_Bd;kgzRl3Z~*_x918vn8<0(o^fd)(1sC$y828=?g&!7B zqh@x#)tW|l52ueGyz!_*dbu2gRj+h~lYh2m_%dRG)tn=?6tu~fKY^M{%rf?>N@1>J zVsDavOCN>1(nsNIL$kHVf~~~W^72iY*=RO z(1lEpaTI=Jp?zHz{#{Q0C6;Jghl-4yDE2u zs&8f@{M2M9=GkuxqH5-nH7a8Mb7E27#J^IDNEJy2o6CH~lJfo~75+`;R#dKHPp;lv zzRg_Dzer|uPvIFub|YE#1Y53iPwARkq2L=KrnxojXT^^_x|~?W6>O!0WTks^^?GW@ zJ5`S02K2ZZhWpw{-)+9{bJ!PihJ})WzU#H^>-B!u zum7x#G)MS*-(csvVM?L?^>?G@&ju?6hDZm-SS9yQ`zC{*jX5+;I4sQg55_1g%pv>A z4xgli4!)aOSTHP;IayeGA6N!kSh-kOu%~F-99S1v*mxvc)mzwl(0r3C7Evs+nX#~6 zIlu&nIh-6gTw6FkTR3c3I3XQ6wS6PUKXj(FbYVDjA*6NYKXetd#A82nQ#*8)I&?R+ z^k|-3v$FK`KJ*-nk%&6<3by=_arh%?)T_eMGT+jt?a;?&#Cz0orN`25<au`5ThJ63TgM{(Cy@y}&( z;jr;>R^OgO{NIieDXo(jj*~d7llhP1Cg^;Gj(@3H|JFVJZCd^_I5Z&+Co$tl@Vj+d z)Nxvpb$XQbubR~KisOuW>r5W&1TpJWsnAH%Uzsb%**n%b7W5gxcuDmmu~GV#a18PA zC%I@0jl>l>3?~h*w( zj#a(QoK#0;3kQAnsO?{V#=n$hjY_t09MMe|6~Zy5T!LeJ%o}(Jl^gR?d#Gph5bGWe z`DzP^E;0E(3l)8k*3?gSka^~X)Ogqa=QwNouCAdw`j3XcFQO!!>e`i&u3Q}AQtsM4q z1(m{&kbwbW>;W{!(F2=B2m8VkyU2x#ir%2^>#C}Z(|%3+r5T2qDCR|mlhGBrtGS~A zr_^PJ^7Ut#d5+@^j`DRS>;2>PO~cUmE&C+H7!s!QUn znWOfxGtAKwkt3uRiSVq8CDlnMXX^~sR~E3_^z>&X7dw>JR~(K>ggFdM)i*5G*9(JS zo8w(1L{mj-9{N)|x&FQD%G-Jt1e=R42m6B(meWDj6ARb{rJu*m%x|Vlr-L?y^{m~H z6{+LV8s8{lDZc7k6WEsz*YrJ0G{hm?!J)sRHoksj;_Go}|3$neTcJl@lAPU%g;Tr~ zTPG>~s|o9(_hq~(XgApLanRzalTo6hOc$TI@zD`p8vJ7Fv>1F*V_|zr?AXdu^QYhx zQgeYSzc&CrhcY{@=C?=KynH>dhKV?W5kCULFcBxP#dC~}FX$lcTHSfG0ic<2$*h4? z6+m>BS|w2YedUdu9m0*(-E&oVvs3IXhE5Q@ZQVjiuU%uOUD`3b#ylI4_i|!`f{3?P zxEt}}+VP&phDtbkn7M8Q?QBM_9`n+M=JJFv%7Lq;cSnjHThDd{t%9198A6F%Max@z z-g=p><{Yl;9Qa(Z!%;njb<*`LV_A0{cL3Vb;adgpbY%{~VF*UIAEAOq+0d#fzn^8@@$xa`f10U)%0ioX}mI?KxNX^wz$XoYYvD zzIAdm#_a4^6ws8`^prH%&)M8EbJELGS3ph$VL(F}RYNS`j6sgj;Lkn~xt|`az+L;@ zlOu^}yZSt*cz?EA7ki?`GHyM4wsvPOS1{LMnM{b&Nm8RkVI>JjcHRX~W|a;Xk2Mq4 z+1T_ZdTxU6{nOLRJ`XRhbfTlq^r7ih6*Ka!8n3N5x_w%YlSBlhY)hB(p`ejX5B!gy zieT5Oz_d>Kg)ShnMk==sF7r(6k`C9Ay{j3mQO1r0xdBzUI`HB)=9Y^y_=aq#@;t`X zfQ3Owov69c!8+?;{wd=!b;)Wc7z4iVE|!K=YU;E(vPQ?~7TkOr8_dl; zc^A(@I$`Q@0yy0^ttQ&M%+ut=U*sY{2AlJG7-U9Brr#)^x~n`mDi))CWq%U7Y1$u50dCCfUnVZyL9fe$CjIAw>9i{ z2X6X(CpFFYD6`GMOU)`U?v6eU?@-N#58NHkT+XKt{t)GI=LWFp7}(ASG5!Fo*nSg- z>x7$n`s1cjmbHBGHH?= zP^+?$w)e48MsAsvYP4Q)E~(jedgm3c0}xQpetnYNu9tl&%p>B2dZeMnO zKS>n-DAsEer)|!l_4I`qOC&vEadaHm$WM&6g(SQ3x}}0?lG&Tnt3m>JKWK)=b=g_xw3tNl;b80t92+T!AzawBf#wa)L*au?2@souQXD%+osUiQi9)0E32%sg8?+8eMqXRj+N zjT&2`S*joCJ||a!yty*he#AO_slxS*b>T%ab6g+K!^n9dsD9};Y74kLJZHL0qCIX7 zs&Bo|O2g)vn~1!nG3<>v>J1Qp(^GEpZyH3tX-a2g^J#DGyeefITaPsB&-^lQ^O~+F zXkdwkeYsveW7`r{c|kHe5ZE5;V$fd$shjiu@ly({Vfja%Y_@yx1xMY76UJbCq;SGj zbu!v7_T4wwR8XB&kSg=FK=2rKq& z3)^#9`e>Pz`&P`Ojgs79m zY{Ep#5K~XNfs-+*@-4X3B`Mff=jAj(ODHt>VM6K+hcjp6haY8dCqgU)oa}N8)82mb zXHL`quVxMf=W*dsb0crt)X7`CX6M|&a~w}}gyrP;Wm+q+>jmTeF}M24$aU)SPo(_$ zGS8P*j?PkaP9dVU_yRYZhofH*J^Pg;AI^rVK5@lEn0{enBM1(c7lw&g7%~Bm+ardl zL?kx7W}_FTnN%#%7mwRVOmmq;DynDBA6VbzelzMcyFFo9D5P^*FEswZwp7X%_;Fvf z#Q9k^Up(?FtoNt#f2`dKZO=)c7}PXuUQxNM52Gu}Af3LEB{Oj(8oF=G&T!lrTEA+_ z9R9A%PmBaj4{B*%+vt;gE3C+?sFFm)I zivQv{_?mu@+K?y8diU^PzVcz6t!b9mI@NEM-R>8PB;+Knws<>+uVAz13Q=Q*bS_Qh}1-R)bIg3smG)AlpGRiW9O zcP!F|*~*&Rcg@GeykaCIWVG!T0gN749Q}kI_*g9TUWCtCY`tf3E*RqBbZZHHQ)y~2 z_&sgUHuaEyCzm|aalLY#Gg1v^dADFStGt>$Mk|(J$VU((ir*{dFnJg;M?PAtAl3-A zW&M;eCDAvmQL4IUq|Oa+wA?_wsf2X}p=^xHXTJWqIEo%9MwvfWbB{yx;4EM43BLWT zWHz?*4s7LWO z((Clvdr<~F4A+`X?u=H4a`yDx_2wS3Q3aR|dFFrLaMzr~dsEh2Vg)s6oe4No*E4Y? z>*^WCdL8p5Ry7c*pyt<8H~nA!;%xHw7D*J9LR`DyrcO?PC^!+q7()#^0M)7Igt89@=@X|}F-q)BoW($WcNfYhg`YJ4Nz?&BjL zoi*F)P8LBD>_c(S8_zq5F2mP0+Lt=Mh)3FY!bOw|^BKdfUiRbA`hW+84A$6_p*^#% zlk2}}7!PxAt{sjF0h3(^sCkcWX5Li87D~j8vfYCf1OE0cpc4HhUt%n6G+%b#%zoJL z+swM(dw3PQ9YFegRGgdh%okEi`f}E^NjiMWdJQ21^Co4z9>8?z z`CioeYroyE2ax$6Xk{S0K4&VEQLIRB2Ap5pc5V8;dgDWI#kwC!FoF=jZ9%u=b%Vc5 zQNS~i!_vy|Lmf;8Vcn)cAX=EH94g*qu=y5J+G5x)d*075YwrgUthhOQL1*&$PosFB z-XY_cVNjv@qZTdV1kg&Mw07ih5%qn`aF}5dd-zyGLlUw0sy|hKnZivzbff9A`)c=7 zzH56)GI}eAX?1MF{qgEyy9UW{QB&b%^GU+Bg6N!>P(DR34aN-D#WBWEksMk{^Fo|` zn6D^b8ixlt!!cuQKAFAaw+@S*Ol!e>GY4uMNsEX@1jwDmp~WM}Cc#c7VO*KeNy-ii zxv2X4cI+{r^YsyXUnj&iZc#Py$xHjIrj*&`)5^p3$w4Q6uA)xDlqKjf^#=QwHs;Y# zV2fxt%>4RMWkP04t6)nx^}8v?1ZS*eT+f3&wwcSEcceVQ(q=TkuyLQiR)@yB&$A+5QVNJn6v z3hA8ddgHGo`$~R4RMRR@3mC&J2yJa8Hzi6nsxgBI z7v=Z1LH97C9M9ugVDn~W`uACD%n-NX3Z~px{z==%WuZFD&Tg5ZLi;&L4bqrUPRY>F zHe6wW+g$hC9@-O0DJccF@$(3?u2#!xkKA>Wr*Em`->CWN0`9D#>~oj&)isQ-ICX#T z>@5pJ^oG2XoBsHf*(aw>aVTk(Z&g*fj_4WQM4>j7G!0wmAZ^UzdQ>QCusHtKUCWT; zZCU>D-DYyt=pBOR0*+;Ijwm0#s#yp-`Hc`DYdeuu)0BV&4-Tc*-;R`Bs#p~SZx+3b zxa7FkEd8$Xm?xM=uw3k=*Sv~)Z!$r}nHwmOw}{b+-WlQf)#L8Yu9SIVi2IH|Eb4&~ zE-o;KFKt<=vd>_a?L7$=!|sw$y1;K`G-os-7-Mz4_RakzL#C{g3ZeLZZ9-Hv%OHH! z&OCmdvAlMGtn8BZ0|!hJIkw9x{Dr;Dz{P%j%~JTCKwHw!DZ$Ch0Cuyrzm^ze>8Kzt zB1|}w7_RdxUf-aX^jEPDS3?rTm?FL7b9)l*U74)Vo@l%4#JM8lFPtbVkDW$==6Tn0 zYXe(7UYdDfv7$E*7H8T= z7w(%|t5=l_o|liS^V1@H@EMYM>VIF{w=IvGy8B3V0xhZ`9 zF=j-1lfL+R@MZJIWB}=HKHl4rtdaL@F6mvl*4v5BruSkO>3v=5+nKeI&*~=WL+j$( z#g9#&&3Dqr9y|y*(#Ut0jO=Md3v!*l>3b+l_B@>mf!vlG`JEb(y=*-P6Js>K!Tu0_ z+0OMNv77s?&j$Y*qceba0+o16MU7{qJs>)fM|JCJ^!nuK_m*yg!8;tlzM;&%Q2RzI z28BuqIhZ6rnPf*(c_&S{9lm@;qs05f#!d|S!o~*p4Ff|l1tS#y`dmwKGASj&29d)6 z?8m=$JHFW!Q8d@WE!UDSOhUg?K#;)XX`=ARy{Hr2`6@ty zI<#mEsP`av7+6fiM1)8-Oc>Z#zAKD?j|fv$EFGs$lX>r4SD(&VKNUIw^*~UIj?h$f zZR5hwUAV_a!x6nAqRv}ug1T0G_}xe`cDT9(EL#v137Cig6T!9)YgQTP3?>nnCSOp-aGoapQ-e5g zMTW+P9|R)1O9T=)V??Xs7Gk^)$5ZTFzOLn=opb};ouD_BDZ&yd-&l!`36e3W_Sr=y>hK|(=&#gj1eepF`&b|cY^0b4 z1I|Fa;5WAf0&fCn&y>fMP{krN5d1wE024|@kzatc#a?MrnX77RNvY6Bx&J%dRyqrEek zGzS6l6mC8zfnPFX`!(~W6WPEFyR|dm&kf)E?6zqF#<&WCItHBZ4LR%_EpVFg52uh3 z8~ZyeMF$5JvkKnn77OPMo2VL!wX1mI%q#9EiYYK_CL3iy1G&o#gj!wvya5I9Ns3dM z5i#sZbVTDb%QV|Z6Jy5=YUD53%sJWIPjZFdbO480VrK=Ax)-)Z_0{?7C&% zZIpg3kluoDQJ;KLd~ckjgOga|QhxhJ)geZH(a4VBPWL*eGRCD0&`?|b$JEu?lDxsk@j`COXRtKHQOHM}~YEuH!yNPF7Idt{X1%vkf} zx7 znwGX6ACFexX||I0;QNqC9c$Qpk5CKeR+YTB!8BEga3=>f+Y%Hgnz^$|+^d1-zgzQ| z=4;r=|F(-4S9o`4c`dN_OVkcABdhbU3+h3eBPZ0SFj?ji2{ch+4YSx>F!hlz)mpH@ z!L$CmpegTe|L5L;cF_U(kA0UW-6^grDjo$Jo)O}`+F7&RXHR-TPaEY__kX4$Jk3V- zq3)Ky-ILWsjQ?mmO4uU1+kanlp5!q%;_*zLu^+hCHmG|AEjUy++ezZM>zgoz{)Twj zOE@9!cp>w;U~1V5cz6>uyKfhmjNf@ir@CO`*avy~*n67WYl!gSQCN9;#e2GpX?l*O zx~r!8Q%HMYQZiF=2he&_+&}nI;kf+$WA>CPRg>yGo8pP5r7XbX0P_IHt;Lu0NBu#Q zyx-g*(ZjjiGjM>*c{)Yg8kbL^FbF#>kfg=M=TCs^015?PAOUZvfl26-mK*D1*y&>U z+kqiW>JRrNdAQJEV3DH_KE8)`(6qV#{6mCUim^b8=ix6cIc{z7c{B$emsB2$;xywR zT=VD_J{fLHNu22HH23W-C*Wgb`qIzoP?Jb67iZkaIzHd95Q}85sAcWoOh|K>Xp4H7 zwlz>9x>h^rnC~aaV>t2``y4O#(?Z5)u|$m)-^HRtg4S0kK2=!_KeAR=)TIz2%|t5r z^)fw10b=C*cHZ ziQgr)FQquT8~kqiX^E2*u>3K_J;-{X%3Dq^{qk&a=g8ZeQLdBuCq1)$IkSr(t4}9u zC_QUzIct(2dsZiVF+F>AIeU{JXICfZFg@pVIp>lf_eLl8AwBnHIrp6)4@Nf+n30FP zl7~*1kFA@JmyvH!d-9W6l(a3MHp3E0@qkh~xXfk&E51Nr#p|aHJA`^=B`Lc6=%hf1 zu-Hd>FJYnwL!wZ}yT_Qn*s|>qfv(3Np#^+cl!Z3;(dlMBUgeNcT2&Ka7@ZKBv9-Xm z8>L%fy;8nO=Vvq4LdUYoQ@zBcTiIb-K`&RyyV9Z*6V>UR!4p+^r`S>PTt3UM10ME| zxflVh)J&XhbjtSCSAr^@Yt(J?MG%)PP>Xt=s{r!VK!GWTwjwQ?bA`6~X4~Kk`F<$5 zDZ%PBy3>8!)gJG%;`WL~kbQk^97tF|o04emguhxOrj+VpAozHXGP7PU_Cw(G(c4qG zEO${b-edsX=-Lj#X0FrAYzrjJDfrhQu{y0UUyrE(B3gy4yy`~sv}L&wwK3B)gh)#y z%vbO8H{fNahh{GS6zHvaY3C-I)X!`f^C`++9W2oMyG>nJ$0*o)7-^YV6**j*tkC=? zs{Rk*L~r|tF1+ThJ-VZP~SmLH}pC%%` z^7FPvlb3xAv>tImr8#4Nfyly_;ciL&0o6g>nx~)tP}^$ci?p%^X{Ek50ft=lhdi@} zeAb2nh=)V;ha<9vqt}MxiAR$4M^dv!GS^0OiAM|dM@zFtE7wMAiN_lB$NprEwXcnJ z5&v@+%sb@zH@5a~l6ZVpe|#}(e06PnlXzlRf8r35HSxD2S6o8@sbJzEYw~4n@|}1J z#$XDVJ%zkJHQ$k&eCLRsJx#PeO-3^F5y3#4J;O*cy}TU9WH8H{Ju9$2D@-ycZZMZl zJj-r3r%W=hZZNNvJ+HSupW87fdQxh3G;h1U;7GFQYOv@@GGRtC=%G0I!(b^QdntN- zDPCxCaXCToB`RTkIhSOm&|szX@5Jx7{1}DJGK1AW*&lJRt6f6F)k5VI?LWHL*Ct8U zXARbM46+AeODwG277R8Hvo}uHH{Lqd1@xzWo@~6VZ@!ak!5EGr>uw=$Y@w5Gzh`e@ z=WG*gY?G0$;F0do=Ik(T>?j-Tuo~|2=IlZQ{HHiKcEt_%q;vNAi1*}4_tihLNk0|^ zIr~PW2WFjn28IW=8wZXX+t#Fqo;im;IUDX9harYX5&kPdIY;rN$H}CNv4+Q)8^^hj z*>uvA(wvh@$W-yhNrU0(pRW^jIj3EuXMLSxe+|#ZHqIt<<`46{YOSN&UXzj z267IZ0XQlEJg2pbE5pl=x~3+R|I{_T=?`I!6uP}ucYZ1j|!`P)(KPKu|Ldn-&Ygc8xe_RKzThO2-pnz!=U`W2n;GY^T*nPfoObAo3-J(!l8I_@hD>1`l69!I`s%i{7+N1Qq|9S~YB#$AVUS4`_$);A z%VJIp{^7G$^v6=k=O{p0>-Wdf0&q9}wKg11=81bwD6};m&z7lI8jiQ!sZWE<#&Q(f zJ zkTzpbs%=0qstOs(Kpth!$z(vIm5zt&(cZ@cOwi|fB9oS7i+I~$ml1EktPf?DCnb|U{mP6|a1wvnnkkFEtw8{3}rsJg~ocx$WG zR?^RVQFzbTd^e?-uKG9QY-xVZ7DO8du5^#GbZSA6YX^I=_85mRi5SvTWv(^Xjgy6#&=YR;1nJWSp+buc3%EIof#!!sVw}vEZRmOg;!38Cn9pnOsSeM_XeZUrCsmF- zEK)zWXS}s-On)AqwH(>y#8Kyj-#@_fQfOmUFOz4L`raU;pF1e7%{H{!orGmzyLK zR+twdUA=cGy*+G2utFa9QXRjZuG*plHwg#)zm|XLVts$TU37eZBkWBSk{Zml`YR<3 z=`%`;qU?qy1P3B0K@&Dz)4;)6ZO7u~6KZ;2zeP^)h zhbE*}$Vbu|?!|2bhq1-vqgcxH5w3v4`TpgjDc|8coq;1nPzo?2Wcn!yuYSrX6kw$e z_tWrSMXK2Cz?XXU!245&e*0H|`{$#V#oIX={hti}`;{=q%67DsLLuSe@F34U3nB0Y znhnA(#RocyIhT(i62|TldcKMeL@6RSqwEodF9{A;D5At0k>SOyPc#>$rlyr0k<-Nr zxM-)=b|@WD^1e>aLn)?{mK{~gxc*h9P|Tn;GO9Vlnp`6xOJ*iJrn_>TqVofpnnjdy z#Nhcl6##&uc!CAML%l;WVL?Gb`N1*3ltTW$$J-0!?E><$26_1hc^-nijJ>@szP{`~ zJ>5P&K0iJ_Jv=Z zPaiSj)qkE!njW%SuM#?rBf57&M^=Ky7s99aBIh3xm!4Bsp7S@J%D0~?ckgR=&l`46 z8V|uO;K#qukfAro)GK8D9*}I19|35gmemexe99}#goImWJ-S3~>?VsNL@A>26 zKe+!d?hZbZLyph(k52dZk9N0rx7Rl}R@N66RwrkcCuWvsC+B8H$3})n`-Udkd&ZhN zh8tQ3s~WmXYB~xkTCLsd9eO}I#1xI%q|T3NJtRJ^@UqK#+Vcefa0 z`|$7IeKk$J<@G#dbUmbXJj6BJgw>pQ6!)Z&y`kju;lwQb){;T2t zfKE`KoKBF8l8&5&k`#}Kjh2y{iBpJ)Uxkg&oQvJ{D@U*-Yl1RMz77+}kiNr+X2O7O zO^0J&{mbz;!E+743k`w)g(ly}?WwNBu7&)9tMZhs;e?Lg2PSp=rgQ?PKcMG7ZRkB~ z?m2Jev1seQ=H$NZ>9+6da_r}H66Aao=6n?8ew^fblJ0hr^#S*j9QV^aud6cK`x*;y zgX=|0;CcH`aA*4M$Zzmu(&<#(2QH>#PiNv!=9BhUQ#RI8W|n^sFC-5vBn>S72Ym~P zUGoWTb8!vRF_n{1dH*6(N5Yea!{dfN5EeHW7CjgiF%ah88|K;_=Fl0&G0uSifqMTB zhi{1h6R=9AuP!si+>zg{)j6k3dOtxkmn=gc4|X{rV++b4lp`16L-&1-p~xqc3R;or z{3XM_-jC}bPkV&t^3^WU!>99$k{(m_9 zzZA}C`+q4sn)Lh!z4}bLVxeL6C&tso6lTA=6T;^667|j~9G_;UlrH;_hBxVLZ~_Gl z|FF)4-~>^ZpfaDo!n#-FHmqWQHOoWu!{t^VB$`aQv*YRJXtvU5vh%MGM@kJ+l~B4u z`O5=Pu8lQv3!?TGWU+`LfkE+Gt3Awpfr|u+b}eKEN3$P}rp&z;@!xm42qL?)xgO)S zFzr;}5-L}(+gfYsP83t~(M~kmAl+^Z*Mb$5mCjZvm4!L13w| zLlFhkS_MNv16B1^!#OR#h{xip>gV;qeNqq=1yZHul_OGut}2PFu(Ye{-kqG*b>HbS z3z~>M&#s2ZBbcs-sUN5_t&(neFNC*i1Z%9>hL~>tv14y7j`JNVK#dDNyoyfPd8v$Z zPKjWn^3C6Brj(axilcJRJhq47Qt$cpB9PIo4Z7MTkULHqNB9ANC7a4y}phwiJSiJ#|#+QkPs`>04G^yh!X}ekwW&-{i0F z-X~{3>~StR&O*sExTbygs1Bkl?3~eu%lCIElsqWlQk9&JsmwdwjBwnqZgL707t4yQ z{Z6eaieKbbdz?l`WdJnhphCa%X!x#QJYCttXp-@m!~Idv1knFO;XjTze@S2tgme6( zu&@YEfB&@;1VP@54+!-lX!o`Dv89+&@uDqd6ci8H7g*tJhU&cs>=Niunna+~r?_7! zhf&Vt;}6LUa&(4=3-_21PFoG~kcRzud{Q@!JNn!dNG>Ndl3P>3hC&y9VYU5J3TGJ@ zW1JvqJq`s>PLd%BK~N@#qr@Oxm-*oE>m)c6Gv&E7Sw++9WZ`nd+;DPe{sm`P{3RpE z&p-eME{FR(!VnOc-X*H<*gQ#|lEo5qp9865jS0?kZ3gGaMJd4CbZjkW6Dnbx`Nir^yo%CLD zRf&Yi>#xK2ic7E$gtMJyeueWU44$FMdr&Czs*f1w_fY=b(H_V>j3{QG6_s)zPr{W_ zhk}(u&QEuy^eqYsnl&sC21&78PHTlU5OTv6$$up8j6d7dGgrbpUM})7IGcg{t9Z!A zFgIpNh1JgCQd*i6ip!4jos67LoY#BE}n=qSD$fL zl^;YSY(J_VY&=k!omDQpx}u(5fm8iCIvx6rtF=H0qhNrtS4|6u#u(TKsQ)GPyP`~V zsKsYV42NP}&$x?h?=3tPapu1ESTtq=%YM77GdA zVEVr*mPN~a60@X7D5ZeK>oV41qIkn^Gk(;n|DHb>hzN~$gd2*0hdmJtXWFxMRs_3< zT9=ecJbwG(7&%BW zy2ewep4Cey4i^dMGENh*7fnA1i zW35AoPN-Hjrzeh>X11T~eR3$oFZ51rtTEp^HU~+Q2*wknrmO0L z&=bhjZJwa&bonsUEE=?Y9Y8IpE<-MrFFW{?ErWf@fk#3orN8ngMImFSN8|VubSUrN ze*PqfZtYnTQsLv0(ErP%{m=?C_y(^>KHj|3xm{2-+ zOy%ju*-DA`>qUEiZJO6VvH2hdBGCQ1auTxe1#c2fD3jJotlGIVjeoQ9Od-B~?NI4~ zkl!yNdg3^YlM}Dfh-7n)zW0-UjkXP+fLnH9Yh$`7Y9w%|QjkmrGZYL)cz@)hqzgje z!{{hne7ng*e;X_{B*^-jG3q^6xT!wrO{o$De&xyKlp2n)lnA-9e3(J>aKIm*uj7j# zP&w2=H`pP1e;iisyuNCDJrH<*no_37kyL&=>H2v~VRRl|2SI=Aq$N-L8c7|*Wq{Eq zl8?l4NX`>{g?=w-wlWb2ubm?rPJ%4KhehTdL(ED1M#QA@kQVq9>X1$ zpc=YEtRH1#7YyTRLdCUVGY5POWz0q4De$^O!|MPLLUKR@tk`Ed)Olk#ys2T3=AMs{d0qsz_z|iiQLfq%s;X$!ThJ-_QB}jJrQK0HYG{?l5p9}* zzNYwyA^^N8K>sa(R3#kV0z-0vfp?Zs%=o8yFkr0NZnm4h-2{~|5MO2q+tHLD9Vcp~ zeKhFD5{!=*NH35d z>UnJzLTB`&4(~?~e7k2*o(mxK57FF~ylan&gcinUD9T@T_G?~=c*n8!2ysL@a6hJi zOvZ7rn1H%1APhUo*)aBn*C%u^()|%OV>$$94HSoui1WBa>1KjQHh}GK0*z}Nl+YNk zf(`82Atu?149gEfZY5g6fOBJqZNo`~$!AYi4dwpv+tLczKM?Is1zn9CZikXZ%@~es z1iA^F^sa)&CHsk8=M!^e3Ik%iE_*V)jx0JkGJjb}sY>dUOES}S0!eqWKYK#KJOJm2 zULr8mPUM#hm^i%`-m#n5v73HBBB-tIm#GOHJdGQg7>3M!08$IP_LmHyvfulG2tP$& z)bapTvHbvF_O<0X8%@7_wC5{DLjYnG`k%DiW%T~23KMP z{&NBwo|u3}12KgNG##9j8zx*@I{Ez8uP?3fc%})IAb~_YoKNBzObmgx!>DDlFvO7n zRj5n~#MGWhAl!BwwRO_PW6FhWcB4o#Ive6UR1rJ{$~FPu7bpw7lr>loOzL+sg0B+zfvSqQOpm{7FRPRm|;z zRuP!-lPw<31R21<{1L1U!2>13PQxQsP)uyY(lrXQ83U?Xx6jUyT!)rL-m#3yTmi_&kCm`cH4yDmx{!wEU>gO zu+;51t~VjG?HJmAx!5YQ2&N~CYoxdrl+rtu4Ff2ilB=?h%z@3Xf@ZH8Ym0JftDZrs zK?y2xMT(z(&OEfCLI;(WjX-;9h5VReio~Uh`X=lEqHzSnOMC%RiTrZL$p0(?o&2Lb zT^E!_2&8a=UYyo@7r}qv#wbQYBkC5&y%(q@Cvc$9fd zpLKc^w@jZ^Hw;1Dj;f+=Pg#GC8b_*LPp|2YtUntrW<<{MCyZZAPqGB?=Eyzg#Na{p#IsofEke=}mpB4>5VMz^Nd zTz+Y&AZjXSq~ab%T?3(FcSCi)w0EA?Uq7pdoRHGeGy|h*onGL{MWAu8(kFxL?J)kp zzre3Uc%TI=0h%tK$)ZpRpjrZ(?6(+O_M+W%t$*R!Yxo%3mByl=?YcRj0iZmjW>9;ZPY-?v zY64qF)o1A_0DkfcapD(&mJk6-a_E0STC;f9g0YIw_Eos4`Q!33CRlBlhzOFT6_Ut&1e(i=MV^&C@ z9jm@^$VVlNt%f3&bTi>KJS_&a9viCmEy^4SPFn?f%o*e&0?e>WU=sv-tIFAT13XLY zykGKH0{aTe`-uAbzOIcP!1t59)QS5RQjb-xe5vNwt8%p&+iq=iL2B&MALt$Fe_n0X ze{G$k&z@{eIl>?8cx|AyjhY{g40R;a&$GS z9p|bs`Nere(9ouN`ic7}#my)d32+W z!jmN9$tcF#XaH0pF=IbBL;WRVp!dHaf8yal!Ql#(;eYj>t)B%5cHqfXAU2K%C`I8K ziD7ULqrI;Rz+V}Y>219enCT`<@N{i}EtS5sa=1XN#2<|X=p@rJv9`AO=+S`)^xbgl z#>jo$aQYbVsarq@1~LIj;C>!btueB(A961nin+l;uQ75LJYB*dtpvtzgcV{^^2yOD z6sGDKVjLavggke)Syv1oP2Qw)Lf(5ttwVQnzMXLma85oQP@OV5`Y03sYc7e|sy87u z;=<{x3O$#nKi<8rGqYa2fI=16%&AyTGu4~wJL`oBq{jH1a=h`6r|yb*^G*?C z`R69(*PXjYpbw~~QU#g85V?11hh<}@5rp^-0?J9jiY3?t$AYfcRuC^%M!BIK*?`Pz zy^vSHiwy|+FNHzKwksx_aO@OfJ)BB{Hxth$wg0~Mgc>Fra%ybIp`b}*zQA|e1a)K8 zx$YVGiFFp{N&PLh{qso!agcSUO*a59?*ykv&P%g<8{++KA2n@15MtWE0z!lHC_BcGw6OhW;d zRD#>l&}>L`45r{yJ4R?#fbPcI8CiQ{)3{_aXH+K{1Z=*B!=tO6V16ktWg?4;(R3yho(bKO&nOdbH?y4!$z@g7O}cj>MIooQ44&zS}Wy~0lb zgL@LpM`ndKY53U^1IN*jw`ij3ci@*xl4b00syw)Zn-81wg<{vm87a#6{gom*8e{;4 zN@SKH%lQ36-G>1^yGm?X;L1~b!lgVXnR}1be6zQYEj)Q+D{(7(b=4dTV#+O zVaT2l z!^=!1uA2vysJ<0^nTr{P!)(}ZrMfd1iT}kPmOyP!Ch4{+?5|;j8YkZ>G^z~;GBi##YqaQ5;D~VP zFwyNrRD9sk(pZ|i)(&)Eq8Ha%ySv}oUZT%aupBm8bm$HhvjX4_0~6FA75f6vR)3LG zvhSLYO7$BKX6f8mOk@iMK;TJqZ>?sEC9$?lzQGfJtv2WiC(*mNTWPZ29L&~xaM<|k z_YP00|LC;pWRAZt+I{N+5|;rjLsc*18hbAvxU_4g>a}^e2St}KF0naL9Wcd+Yb#~O zx~wHUzNDi13>kga8Z=6L@`t>=y#v`q06=PxNLm!M82nemVJH|NSty$rB5e^!44Ji` zO&pbX4$JmB-%2JhL{^K_CdB~`7b)woRxK*Ce zKAeCC-=5zIoh@vQT%n*7!6m+Ka0P>+{^h!FQj+=4UcEeP7c8d&yR9550-s?^9yIr& zd4nSFW+;sP%L(yui4kZGP__ZrW*k+O&!bPCQUuZ{{wqKguli0 zq%!%qfPw`M05(`*hb6XHV~<5PS!I`HwpnMNg*IAgr=_-9YmZ%kf(!UCG}oLYDWw!i zav}=^aF$udnra}86fPdw`Yssp)B+|LEyggxu=C;&%ncEsltWdtTZI>9 zxM7DMhPbAq_^4ok1TMxnV~rC4X=9Eh+V~%gLDqPql0_c*qmoBv`C^hkZu#VlQJ$Hj zkY9G0=9o=(*<+M>{)YKvF@;t+XPOqMfLo&?h6#;v|B(cZoG$nv8+6l>w_SH{WGfnL za+$Z@X|yS$1Sky}%)JggV1r-B*eHPlA}DedVak}sJ8!-B=DY6zC$8WCj|czQZ^L0C zeDInMNcyP5O|m2liL$UHry)2vx0xcr!BOk#e6%Y^T`~p6E@`MS`|Q6+D4`8DOyHn{ z4nmOqg1PlO*zU<5=e>8|e+M3Tzy(j7=-`jXxp<>xVq9q;ke4WmQlf}{dYp)$032nS zd1h0!w1&$qAV2>l8f@%(rbZx4FyVv~MiAly5>7DT0}h5DBLDn7%3XK`3q}>dkvAO(rRBM#D#hvcIZsklf2PLYuURNNI8r^V+1FmjWtoK7sT z1!Z)vjN^$$C_hQ0VW5zX%2>t_9&!Qy;jV72d}J(TIZIj&(2=$D-3~=I69{e*dQOu_ z)OP-Ixn^kYjh{s32Z6DLX3$85)(8O`L@VTu$y6pApCLvLYM=xAv!+HqqPuYR)1UtY=zzef8Cv)upbhI~B@Zf+ zA&h_v%pfB?%Lt5YRD&7MSOzng0S*n^E}#0`=c^VvQj(U`q(2$xKhEI_R=qVUuPH9DzLW>ABbAN^lQD+5%jR@JIk zt6(kvXYho3<*l=o9tzG?USXJtZ7yQGmApvVmNpe}nYALQKwaES2 zV1g-t0~#I-hBKg{4Kyxesm*{!H7HQn-F4Qsx5e!?9s3WidUYe2eXLhG`w`%NgsUy} zgIQzRQr}LtrH_yWTgM7rR(N%#$mK{*SrLlLI(Md;%`G`2Xi|*OwRIt|!WOoG#-xf- zwa<`-G{T_)+SWF__r-610l3@VMpm;ct?Y0&GFG-4_Z0<>sX_k%+?86_6~4`>bY;O^ zi2zuvvQRKjyTRT5Mj#U4)$dC_Thhr~ZUiL&0be!BJ!wosNZ_Er2I_0y{t(yL#y5`G z0SDLHjAb?fT=m1n3Ys`td;$j>^RbYF%+(iQY{)~t7=aTo)*uTR4;br)kg#5>F9EL(bLvgH;k>Zv9iL{sRnnr1G(xnC$4$_@MW82oq$~a^V8SwhIhP81MI*N z?$8%Yva`Q^u?7>_*i`;8v89b+jIGt$PTqF{zC5@rM_b$vhqw|~?P|iEJKZDA&&Aq} zFnM>};~&RNC4+5mf#ZAI2uE_llkJK{Cs@c_PCzx99BND_Ai@W~7|r>u22LBh88|>| z&S4&Lq8A;A>Q&yk(H-l`Xnf;X0(sP>K6RXkyxxtjxyg0F?1XDqrdh`rrSX7lubVp5 zEnPviH=T2r!o1sxRya#P?Qo;l-R?zHxIVN?fv;01pYs|)+?17G&x6~A~y z<{gqLyGh3T?spmw-tw2neBc6PVa$uT0tL*O18K5u%2)or^QT9B>N(Sm0s~p~;S4<% zYeM?cgY@;c$9?X3LTPX7UYjX{{OtK&d%F4F_{T?n@_`C`ml3}rPIrFvr9XX*P~ZC3 zFMUU_zkTi(R{Pgfe)z?|P3Ch<`q1xw`qeMe^|#;syL*597bckO+!lK>tV@iEzLGN}!xLz90s%LG!5Eam8Kl7)w80ysK@d18`%sV<_?2q`!XOmF zAtb^gG{Pf9!euGJ6p;uPsUpUM!YG^>DWt+7D*mJ@#KI=JnGh4VlR^!2TMgn6!!abo zGBm?8M8h;x!`(2B=Shwz%ECA_x+|2!I-Ei~#6!i|LjCGOlS+WE=!!rT#6cv)LNvrf zM8rhYihr;nILyOG6f-)6#4MD=NvuLe;=*t{sf(e2GEu}&1jSGk#Ze^1QcMaSup!wa zAWLLLL8`=7gu+*Z#l^!!KGZ}%ych!LL{BuuUi8IZ1jb-QL>@pzJsQEs1Eh13gjrlX zG6iA1D|EQO1_n1r0djFg&x0H%h-Ep{ZSfUHNLfxKh9 zKzqc;f2_yyBP4qCM=QFbnp{Odx}<-g9FQzJlhl~V;h3UK0HsU-rZh@$B*~`Cf{URX zk#S0<%*v^Z%0LQ7j6uqt*-D8R%B#FBmmDdWyhossq@SEec;py*oXMVvJyqmMof$N> ztVPiCBMb7PDCo+E8^@8nm@2igD76eeo)o?QyJX9Il*@di%fd;`V_eHX1Il+)O$+SHE?P{?3^z$w zM#KEe$*fG?6ePzKPSC7O%Dl|oB+ez$%xN5#;|$F%8qHg5N8_=X%Ay3)NM3c}<=mDhZyv*iIwTiUN!<5YA98UM_Bjcn`|D*5%+8<0PAd``pE*sLSs4ZGxb#GxKq^bF{Le6hPpVwXi`>c%^&`z3 zOAviZ5v|G;B~c{`P^&CQ6gA5YZAk=8OAB3&+dMuDJ)VJlnvQHyLn28_a7c#iNR$lH zJDd8I4y-aUDI$eNIOMGs8Pon?NVH<&C#gK{~J@_ z8KmUV(=e08NbRFZrPMvzOZ+0ugKE^x=v3VM)CF=yOTE-3BGpn&qEkiHBFfbJ+SGsw z)fN|pTh&z{YSr+1Re+*ZS^bG&H5^;*RYT&{WYr~Rbwy*Ps$l&m zXeHL2pjN&?R%ZpIWz|+6>Q+Dc)pfMd(!3ZhFxPWM*K}3ab!FFfb=P-=*LaoJd8OBS zwby&a*L>C2eg5UwdJWSI9o28GRDn$-g2mKp_0mJV&P1)&%s^PZ$yS3^B5svfJ*?PN zeb|LfwS@iGh6Rg^#hZw|SR$g>k-bBc&DAgE(v3w_ly%u%_1Kt|*_jQCm$lhLqS>6) z*`2+KoAp_6<=LPW+Mz{>pEcTvCEBD_+NC|(rWGRFVpv+*!V8SrCvqUFolx_9yzERM ztkv431>3MKjRNeZ*d&>=-N!}3TC^=dvVB7BgP*DxyiyEnU&&+}3qnnz&qldQHro&AugF+P#^M?NP&>U4H!9*9G3-EeXEO zTf8k?oDfZ>@!P#MUc7ZgfNWmC72fHk-jg6+T#8)4z22Be-j7&GqAUf;nThY!3G$7J zV@Cnty;*pMv1CHMW zR$#?KgJ=8#s3C)mSV>DD14{^(FNjkLl7tAB2w<|H27X3~7|c>Yg9&m*j-cQUentus zi4m3>5Du4(h#C;4o)Jbz7_MP*Ovwf2;U4y37eRweiUO(GU_A65@zBKMn?-Og$D*-DwYT(E(!9LVyOAiE8d6`*5W7L;&L?OA6DZvX5;;k9`Ti7 zC!Syq_R9(mCOL*;7T)4a`rZ$I8Z?j^(X<3C7K#78#$ejve-L9W7UT#1-!_KiNS0)w z7|@R>;xbNQFB0EFhF~N9OR^-#GXCUB4qxyk$3-sWLH!2{4q=w89u@{BKE2>Hp5$7# zkk z(i;xtbZq94p56r*2UyUArDp0h*a4%4YQ16SsQzIFn1xe-gsj$TNPvY?hykhwYyXg* zQ_g9Y_=16^=&(*;Zt#Q}(6cGv0=L#P0aNR`1`{QI#a~SG*n%(!gDrps72tv} z_yTY61Q2Tpy2cE~ZYu@*hzN)URDkTEpoLCQ?3K9e%--wH_H01wYyK**0xO_`!L9-; zr~<_1>~dHIRB-JA6A8x_3)$YR%H9at-ighI3Elqe-uCSp>uW3Ef-bOv!QKKc$O6>{ z32rzA7m$c@fNh+z?UN7&%)W{0)-2qP?dg{6=w=S={_XG<@B9kxb)W=Fu!KsW1T{$R z#0H5-O9}1%E$g-k@V2b!Rte7PZvU`v0eJvfP=x>&@Bt6-Q^0}oM(_kbl+aEu!DfLi zz=G6v?~mYZ3U}@1wkgOK2G>S~=HjXgXMxFfZTf!hR@jHu1_d182G>sUjbLrpHYmyF zaLg{K4M&9*f2<34?i{D=%X)Fw_Nos@1q>IfSipnHZmuH7{sSAw@q(fSR6sBehiv8I za1Vb45EpS&pmE4v@e$W7ZUBXOXzdQ)3XaD+8y^EGz`16S}km-8*@>%R`{ z!7l8>o^X!fDjdIU1!HdK<|*)IZLebO0-FZs?r#@g1*30r{kIfwRW2avvg>nRxQw^nYPy72?gbsXRC zo8l^FzbVdI^b+6kK$i$GKXCX?_ZG)=`d0V*&Muh#B60mLb$S2uBFAq_-zv!B?MY{L zfS31h&v$b7b%W}!;1YHsPk79DfMiE=7U)h}P=!2@_KU}O)2MSW00Y5Rfh_<7FUa=T zCi5=ma447eAD42;PI6HvaTllbcIS3=m+_N#_k-UEnvaDf=LQ;&ZhO~so`-brmWcf> z`cgNmo(C_MPx&!l`JD#|OgE@zbUHc_5p)>;=*~$&o2J9y84F442tIlZrFwiV1Uy{{nPJxwI_|+ zbj`F^iTia4*=KzPWN^|pZPbqYkWhENM|{v1e9hncnD6_Ue|7wp`oUlK${u(6=J&|H zcelE!$6xh(&-Iu$E8iD*aL;;P)ND)-Rf74w2 zE4KHlL1CyYnp{W|=t!Rq zW6?CZ6y{Qh6p3C;xX|Lwsv&=V-2Pf~YEY#VrRFU7;8jegYS*%D>$c!6PkHdGPIdM$gJl72xJqf>k#`^Muh??wEy4`5DW}5NVu_@oiaKhCcIFvp zjWfEIs%SXI_#$a`nndSoI_e2)thSQ6E3du!`YW&tT%$@Utr&Z(DxK^A?1YgHHr}tb ztl|r`z;M78H-0g@Ew|mSIP09Ot{JC|EsAR^YOUr77@p_4TJE}OdOI(@_1b&yV-1i| z2EYB<5HG&8ISZKnP+|c)%PZ9Sf(*doX&W%a5gUo-w=Sl8F0N>*iXy8Gvvn%D@~&E^ z#}b=-GRi5dyfVus*`kWVz(CP(wk_Lyvu!G(c%!==x7IU^r-du;TJMI;bH%UXyfo8I zJN-1&!R@if1FEc23)Zy=vo+US)3V7wdqh1p*+O@G@wl#Dt;~vDHdzt#Aun zHr{#b9dN9r?HzRlv+y-I;e>PeH{ywhDy!m+JN~$!eb)^+<&|50xnPo)9JkMyd;U4- z9%@c;=%t%}I_hqtzB=ozXFfXPulpD~yAAu@8|j4Q?mF+i`~Exd!HWvJtg4ed`{tY% zojh*4zs~-=@X<>@J@wUF9~to^W4wG}&Lf8Q_W*kjM+rK{l{rmqv0MC>?r|fQS;cA=az?DF={j6^=Lg4LGBOBE@&~9~8+W|-S zK#t*0fcgs{2tz2s5t5K|u+v_=cBaCSWekNCTwB^$criJROMx+D8w%Hiz}27%PG|$) z40+hW=1tCqB|IV$lc>b%weMp=^dSxRM8NuW&Rjuzq7~sav?*?ngTxqXO z2h`ILZPam-K~O#Mh(u7f_|f79*tMSEZ)kB8vJ4lwOB*p z=>BhiaeO2sBPmIf&5@3|^Wq{ixyQ2=Z)1P_WEm+Y$U?eCk5J4bD)$)3D5g=3ADkpC zV=2p7ZmW_`#3Lr*r%5c9l8x_b*Cu_ru3QeXm!yo*CEX{k9X@eFjeH+1qbbd4QWJS6 zoT3lPl}>V`gBd~!@ZbjvrC_OhioL_mpJA2L3USgZxpc?v=q)EwXUUf|eKu1rG~} z36qxslIwsq!eGU(dK=@@=&t1eK8^2_Wx@#^Q1~p`1yFr(eBKlbxy^2V^CXFU03-JS z$!>`dML=TaFqbDf(h2jLrL5%Y2s$WPX3Un^;^i~McO+7oFNN8Yok0r-B`T3EoHMQI zO@|P{3V!ZXWAb1&{}#687&A8-!sjdlTF~|Bs;fb4=;ktb+R}0vwRupjw9~>3Q(WS_C62{+Ci0RF zo3}n$5lXkiP3y+c_6)Xl3U1G!+qPuoESks&jcLIWkv!bImJT$&Q?Bxrd+x4z-D_X} ziq$($8_+iI4}eD!ooYw?Eb#$xm25om#weDtj)m+QB%AJ_;Fl-`8VaSw+Yw^Zo8?x& zI@a+9RjE?dsx$AFV#^xYtdqU$W~UxZWlB?kduyjX{r+iC&o1}5)4lF?zdPRZuJ^t3 zz3+biJKzH^_`wst@PMQ$Fz(o{}RyB0sPC)!QATw?t@BOYh7>x+R&=WIgV4e{6N#&62}Rqg!)k`{aEx_PRel z^4ok)VuJqn4Q=2i1#0~GiT*9c*XIWFdHdvZzxxzjem7m1{T_a^m*ANoaK zI;EZr)?h>>hWgnL$Cwc!WgY~=pb!qB_3$1KMW8tSP&tvG(O?f15#QM$4H@BJ5E7vk zUg7V!UiAf23Tj_EUEokTh8A*9(u`lOj1v~7p&CLC7qp=pz9AgOp&ZU39oC^8-XR|5 zp&srbANHXi{vjX+q96_;AFiPx9-`)jUM(piA~vEUJ|ZMWq9jftC03#(UgFA_K`F2p zCZ>-ja-uX@VA}WF+V#J~uOvox4gehKOEWV;i z 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


    VEb{@j8G>)zNkxbWdiu@XOy zoa)=<%$qxZ4xMdWywt1bElHSfZ`m?=Z*P5Aw0Me*Pd@&bhBD^MAGbxO=-DLb@$^Y^ zzmGq^{{8&>`~MH1P_+3*;6HucRv>}~_Lf|O4qo+OgvdolVTBf6SmAWmZCDp}-|6*X zfc%9=-+1MjbY5kdVdl_8n)&k{d>6^rQHkQ&Ct{8|?#N@0KK=+Kci!dJn}Q4aM&xcs z5-4Gl!Wrjelv!a&WtCQ5`IUwoZmH3LOBTqZFd2+VW(Kd3Xk%z6mXzW`-NcBVKMEDJ zS!XjURb!fq;TU9}e*Ot)pn?vXpO*^WwjELj63H9>a8f=x6_k)p>J*liUW#d3F)_kv zr=ETaYN(v<=G~H|?pOjI(v*PF3UHi>n4XKRsZpB*y}6j26zRH9e0W0U(3~In!`@~R zdBmqi#0<48q0T-FZM4!(dzzs|UaRDSNfPKKrQS9r>9><+N^ZI4ZYpZJ>W)h7KY$5S z0z#|8D(kF{4YZIlD>C%nd)shU#)|*i`B|O@Nv57h?6AY0KWT8WnXm*Un^8AqT#RwX z8gI-o$IY}0a>yc&Oft0ACYUI;rmB3TxZj5BvXth|OtY2fu8Z@hAe-r~VAAjmUaa+o zL~BNEmciS@&Ai7>umm;zkcZ-4fnwKcy4e8ymKgf6Owo3=o-?}pbvZ7=P zLoey%-7CD*G=79DMcb^n`O^w1lW;+yk6t`Mrn8QH_S$dHy>>3mE~V_?CwF`K=8qNA zBI>Wte*5mfuYT`thnSk;#W()X|p%b1^yWP*iU%)(;wvchY|l7k=6j(eQ_Hc}3ETb9kBg6*=#3afwaId=02uTM;8&>2_lhY#&y;u@3 z9wcg&Ytf4cc|)?DagmH{q$7pG#s;l1l2&=6CCe2PMQC!9ob040KdDKO!K;aW%%dKs zsKVmaFkc9(%!{}nLoQ6Fbc%eWEpLg-T)vKy$C)HAr*g?)UMiEIET%C-3BodwDR?$C zr4;$tKgtPjl^!8rdm`hW{(`V$hGNvEH@^wa9{!Rzz8oi1go#d@!Q>F^Y^OWl3D0=4 zGn^>7BjlV}Jyc4QbkxKQ3t#k}Iu(#2-K3{M4~o#!ne#~t9b!5kYN41IVxknSs6{V| z(TOHBBlcVzK8vSMKlT%I0HlaOyMY@6a-pCbZK+FNN~nf*rJOQd3Pf)j9f@Xir##hY zOFJ62j|wlOdK@Vil9w1>5d>+pL`g4r0oABVb*faYYE^qt447(lt6cR-O}9eRn&Nb< z&CzL3&uUSZ0(EFY-5)elxKGH9R9~2hOu!_=HEptIAuQ!ZEB*@DzzTM-geB}Qx{BDu zD)uE`)k;`pO4i8!x+NxssH|l#i`mR-wz6t<;{Aws%C}Ncq=3|j0v_+7?z5l&+$LI@x3wki?kK8v)zxeD;$AIS1t@^FI*;?54KP@M|3lyepRd8~ZPlbJ-KxJ> zxYJv@VIXH9(L6ge%bV>kmm5yY8y=F^zYg}Wi+${5FT2^#j`p#Soa8VWgxlW^_qfY_ z?rujpN-{9Gf3SQqcWTr zXOl;HCn0?pI9L_fKNm=afu(^Q$c2x@d$00r*!F2;VrAEs0XW!t9JX!#EEq{HNLDZ? zgYoxpJxDkbXNG^mWv)RHC$SJEK@cw?eDwl^{A7Fshr^?I=PiEcPna2SWT=RMJqhchuZ9s)Ni!37xchkp2qCQ%T8 z=zn1bfI*l*$7d3VNQH_hSPCd>gM|QVMu~t`gjKj+n3##1*on`GTc5~=Y$S>}MT(_J zcc&OAyw`g?kuoNcimo_|8WD@+Sc@(Zh_W(>a#e^!c!-%8fl|1L_@-}y5vZzkr6484GI1tgyMZ*(i2|t0%Ved zEK!cIxQGAnhab5T>8K~`s9^25K<@~TQD_oVm~#whkNB93`lxxqSZl;+jP~dN0tr~o z*gwo-kVDBm2>E&nxsWh1kxR*x4hfFo=p%=Qk=__0@q!e2*AgTtlH=HiTd5!HMTkPU zlJ?e;E?E*Vxp)dlSofH7K3R#&SXlhFmdE&r3*eTm0F)c?R7=N~OGl7I37D&6lp%+d z55hBN84(is0ha72mSMz_W!VbAC|J!mmw{E2Hfeo@ z)pMiyR|t@6b~#vi`479`nSaF#foYq!iJLuLi74yau#}E|>7B(Xh6^3_n%@7s7h=IEh6=-RIIj5Gbz?Nx-k8c?j%&2_fIg_z= zfUYT6o);CeIh(xD6uD`i_lch=!JE8EDvs$Vnx;&T$r7XnndZ2M<=B;$NtxV{nJKxM z($$$|37UVkgmZ?33AmbbW^2P(SeCdE%qW_JHJ);2gl-9&^68ninV&1lqWB32FAAeE zDx)(>qb~|F7x^VQaWV#CZButG2*C_P!435=B+5V(^DrdzAe}=q27|;K^rSfh1n zr!ZPJQ27#GXDWlEr)3nSLqmX>IH4`+p~QfN6?%kZs(cz6jCXmWv)KwNI;WLtsT_Ex znM$M6;t-ALpF@F$`w@}`T8pEKAAwpggPMpE=$VI#o>UmA^LeSWN~=!i2e*o=xvHzX z%B!~uGWmxZ+$fc?F^gJxoFKU$s46R}`irbumaaORvC4>aMw*QnSPyWQlUl3W%B_Od z2j2>=;VQ1bjuFiLA)!urE=pfqRb08MwP>h-5jN z^E$Q`+maZYo`hAJl1HL*c9$VLx0$QCWn{OV`?R98aer5}9^sV@3%Cqx6EWMBeybnx zI(>|rg=BlNW}6W|`<)1=fc*ZduV@-rn7g^Z3%n2Hxt@EYz*7QD#ApY#uBFShvf;X% z2fI`#yN^q|7}2JR`T!TIfE5ab_zJhd3%=pIJ;U3%AOoDo3p|oZPs_`^uV}Tf@w}H8 zy%;#X@Cdn?=)2;pzx!)8T848t)j!!zu{8vLiY z^bw_tz|9*Q3QTY#Jbfh$s}PK~_{+jajKnQW!%NJ>H9ReVal^~TwIRvFitCv`%y~kL zfhSCbDV)S#495J?#QtME!vKt~bO?HbON)P-oG{_TIfliTr^OS<#Te+tVT{Ll{2FA; z$1iNdY{P-?+s4T15^wxqaa?qBjD2-Hfp@IOj||DB(Z_wP!9!`lYD~y2VaPfrwz2ED z_DjSP9Lb|h%BV5Pd`y2Pv3fuwBE#B=@7ul!$`YGAUx-X_iadRcjD3z=%DwE%H*v~j zJclWl5i1aC5vL;|q#IG}W3ZgbI;_bejBvchrH#9@Ws4F;jKaUn&E32c!92#PtP#yt zZlabX%*GAuZA)P0}T8(kG45 zDXr2g&C)IH(k~6uC><03Ow%>3&jI~?o0hHyea;1%#||yMpZvfQEvpobv>%PsNv+gN z&D2O8(@zc6Q7zR|P1P9IO{fyHmXgI7aA_py;qzu&bE7T?&%0+F|Biqz#&DL%0 z)*M~caV^(#P1kaL)me?#Hh|N6H+nhpvZXxM4P4ekOw=iw)~S&>s2Ad9lv0*l@#QQ;N7ABf7c z^xcxYY~MT<)+i(5rlKU&{of~!;vPNVE6(Cn9TPYJ<1sGdGfv|*4&x4v<&dgd9C=c<(~fOe=g`wj?S?Wb|Xtzj9%

    6wXW4zByA!-54upLy0wp3y=u*j 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 ?D<|K9C_0eDvDY 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%0AiIYI4Z915wkGBJ>Ldq^g_<>l^8tz{?rHBOnt- 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�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 z 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�)9+o~0A4TUUE29A5I`M2gH6}z4c`CI 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 Gl>Y~y!lMoV literal 0 HcmV?d00001 diff --git a/README.md b/README.md index 6d8bba8d..fe249980 100644 --- a/README.md +++ b/README.md @@ -28,4 +28,7 @@ it is avilable in Jupyter. Virtual environments will be available by default. ``` python -m ipykernel install --user --name=itr_env -``` \ No newline at end of file +``` + +## User Interface +![](ITR_demo.gif) \ No newline at end of file diff --git a/examples/ITR_dash_app.py b/examples/ITR_dash_app.py deleted file mode 100644 index 4b655a98..00000000 --- a/examples/ITR_dash_app.py +++ /dev/null @@ -1,692 +0,0 @@ -# Run this app with `python ITR_dash_app.py` and -# visit http://127.0.0.1:8050/ in your web browser -# and pray. - - -import pandas as pd -import json -import os -import base64 -import datetime -import io - -import dash -from dash import html -from dash import dcc -from dash import dash_table - -import dash_bootstrap_components as dbc # should be installed separately - -from dash.dependencies import Input, Output, State -from dash.exceptions import PreventUpdate -import plotly.express as px -import plotly.graph_objects as go - -import ITR - -from ITR.data.data_warehouse import DataWarehouse -from ITR.portfolio_aggregation import PortfolioAggregationMethod -from ITR.temperature_score import TemperatureScore -from ITR.configs import ColumnsConfig, TemperatureScoreConfig - -from ITR.data.base_providers import BaseCompanyDataProvider, BaseProviderProductionBenchmark, BaseProviderIntensityBenchmark -from ITR.interfaces import ICompanyData, EScope, ETimeFrames, PortfolioCompany, IEmissionIntensityBenchmarkScopes, IProductionBenchmarkScopes - - -# Initial calculations -print('Start!!!!!!!!!') - -directory1 ='' #'examples' -directory2="data" -directory3="json" - -company_json_file = "fundamental_data.json" -benchmark_prod_json_file = "benchmark_production_OECM.json" -benchmark_EI_OECM_file = "benchmark_EI_OECM.json" -benchmark_EI_TPI_file = "benchmark_EI_TPI_2_degrees.json" -benchmark_EI_TPI_below_2_file = "benchmark_EI_TPI_below_2_degrees.json" - -root = os.path.dirname(os.path.abspath("__file__")) -# root = os.path.dirname(os.path.abspath(__file__)) -company_json = os.path.join(root, directory1, directory2, directory3, company_json_file) -benchmark_prod_json = os.path.join(root, directory1, directory2, directory3, benchmark_prod_json_file) -benchmark_EI_OECM = os.path.join(root, directory1, directory2, directory3, benchmark_EI_OECM_file) -benchmark_EI_TPI = os.path.join(root, directory1, directory2, directory3, benchmark_EI_TPI_file) -benchmark_EI_TPI_below_2 = os.path.join(root, directory1, directory2, directory3, benchmark_EI_TPI_below_2_file) - - -# load company data -with open(company_json) as json_file: - parsed_json = json.load(json_file) -companies = [ICompanyData.parse_obj(company_data) for company_data in parsed_json] -base_company_data = BaseCompanyDataProvider(companies) - -# load production benchmarks -with open(benchmark_prod_json) as json_file: - parsed_json = json.load(json_file) -prod_bms = IProductionBenchmarkScopes.parse_obj(parsed_json) -base_production_bm = BaseProviderProductionBenchmark(production_benchmarks=prod_bms) - -# load intensity benchmarks - -# OECM -with open(benchmark_EI_OECM) as json_file: - parsed_json = json.load(json_file) -ei_bms = IEmissionIntensityBenchmarkScopes.parse_obj(parsed_json) -OECM_EI_bm = BaseProviderIntensityBenchmark(EI_benchmarks=ei_bms) - -# TPI -with open(benchmark_EI_TPI) as json_file: - parsed_json = json.load(json_file) -ei_bms = IEmissionIntensityBenchmarkScopes.parse_obj(parsed_json) -TPI_EI_bm = BaseProviderIntensityBenchmark(EI_benchmarks=ei_bms) - -# TPI below 2 -with open(benchmark_EI_TPI_below_2) as json_file: - parsed_json = json.load(json_file) -ei_bms = IEmissionIntensityBenchmarkScopes.parse_obj(parsed_json) -TPI_below_2_EI_bm = BaseProviderIntensityBenchmark(EI_benchmarks=ei_bms) - -OECM_warehouse = DataWarehouse(base_company_data, base_production_bm, OECM_EI_bm) -TPI_warehouse = DataWarehouse(base_company_data, base_production_bm, TPI_EI_bm) -TPI_below_2_warehouse = DataWarehouse(base_company_data, base_production_bm, TPI_below_2_EI_bm) - -# dummy_portfolio = "example_portfolio.csv" -dummy_portfolio = "example_portfolio_clean.csv" -df_portfolio = pd.read_csv(os.path.join(directory1,directory2,dummy_portfolio), encoding="iso-8859-1", sep=';') -print('got till here 1') -companies = ITR.utils.dataframe_to_portfolio(df_portfolio) -temperature_score = TemperatureScore(time_frames = [ETimeFrames.LONG],scopes=[EScope.S1S2],aggregation_method=PortfolioAggregationMethod.WATS) # Options for the aggregation method are WATS, TETS, AOTS, MOTS, EOTS, ECOTS, and ROTS - -portfolio_data = ITR.utils.get_data(OECM_warehouse, companies) -amended_portfolio_global = temperature_score.calculate(portfolio_data) -initial_portfolio = amended_portfolio_global -print('got till here 2') - - -# nice cheatsheet for managing layout via className attribute: https://hackerthemes.com/bootstrap-cheatsheet/ - -# Define app -app = dash.Dash(__name__, external_stylesheets=[dbc.themes.BOOTSTRAP], # theme should be written in CAPITAL letters; list of themes https://www.bootstrapcdn.com/bootswatch/ - meta_tags=[{'name': 'viewport', # this thing makes layout responsible to mobile view - 'content': 'width=device-width, initial-scale=1.0'}] - ) -app.title = "ITR Tool" # this puts text to the browser tab -server = app.server - -controls = dbc.Row( # always do in rows ... - [ - dbc.Col( # ... and then split to columns - children=[ - # dbc.Row( - # [ - # dbc.Col( # Carbon budget slider - # dbc.Label("\N{scroll} Benchmark carbon budget"), - # width=9, # max is 12 per column - # ), - # dbc.Col( - # [ - # dbc.Button("\N{books}",id="hover-target1", color="link", n_clicks=0, className="text-right"), - # dbc.Popover(dbc.PopoverBody("And here's some amazing content. Cool!"),id="hover1",target="hover-target1",trigger="hover"), - # ], width=2, - # ), - # ], - # align="center", - # ), - # dcc.RangeSlider( - # id="carb-budg", - # min=initial_portfolio.cumulative_budget.min(),max=initial_portfolio.cumulative_budget.max(), - # value=[initial_portfolio.cumulative_budget.min(), initial_portfolio.cumulative_budget.max()], - # tooltip={'placement': 'bottom'}, - # marks={i*(10**8): str(i) for i in range(0, int(initial_portfolio.cumulative_budget.max()/(10**8)), 10)}, - # ), - dbc.Row( - [ - dbc.Col( - dbc.Label("\N{thermometer} Individual temperature score"), - width=9, - ), - dbc.Col( - [ - dbc.Button("\N{books}",id="hover-target2", color="link", n_clicks=0), - dbc.Popover(dbc.PopoverBody("And here's some amazing content. Cool!"),id="hover2",target="hover-target2",trigger="hover"), - ], width=2, align="center", - ), - ], - align="center", - ), - dcc.RangeSlider( - id="temp-score", - min = 0, max = 4, value=[0,4], - step=0.5, - marks={i / 10: str(i / 10) for i in range(0, 40, 5)}, - ), - dbc.Row( - [ - dbc.Col( - dbc.Label("\N{factory} Focus on a specific sector "), - width=9, - ), - dbc.Col( - [ - dbc.Button("\N{books}",id="hover-target3", color="link", n_clicks=0), - dbc.Popover(dbc.PopoverBody("And here's some amazing content. Cool!"),id="hover3",target="hover-target3",trigger="hover"), - ], width=2, - ), - ], - align="center", - ), - dcc.Dropdown(id="sector-dropdown", - options=[{"label": i, "value": i} for i in initial_portfolio["sector"].unique()] + [{'label': 'All Sectors', 'value': 'all_values'}], - value = 'all_values', - clearable =False, - placeholder="Select a sector"), - dbc.Row( - [ - dbc.Col( - dbc.Label("\N{globe with meridians} Focus on a specific region "), - width=9, - ), - dbc.Col( - [ - dbc.Button("\N{books}",id="hover-target4", color="link", n_clicks=0), - dbc.Popover(dbc.PopoverBody("And here's some amazing content. Cool!"),id="hover4",target="hover-target4",trigger="hover"), - ], width=2, - ), - ], - align="center", - ), - dcc.Dropdown(id="region-dropdown", - options=[{"label": i, "value": i} for i in initial_portfolio["region"].unique()] + [{'label': 'All Regions', 'value': 'all_values'}], - value = 'all_values', - clearable =False, - placeholder="Select a region"), - - ], - ), - ], -) - -macro = dbc.Row( - [ - dbc.Col( - children=[ - dbc.Row( - [ - dbc.Col( - dbc.Label("\N{bar chart} Select Benchmark "), - width=9, - ), - dbc.Col( - [ - dbc.Button("\N{books}",id="hover-target5", color="link", n_clicks=0), - dbc.Popover(dbc.PopoverBody("And here's some amazing content. Cool!"),id="hover5",target="hover-target5",trigger="hover"), - ], width=2, - ), - ], - align="center", - ), - dcc.Dropdown(id="scenario-dropdown", - options=[ - {'label': 'OECM 1.5 degrees', 'value': 'OECM'}, - {'label': 'TPI 2 degrees', 'value': 'TPI_2_degrees'}, - {'label': 'TPI below 2 degrees', 'value': 'TPI_below_2_degrees'} - ], - value='OECM', - clearable =False, - placeholder="Select emission scenario"), - html.Div(id='hidden-div', style={'display':'none'}) - ], - ), - ], -) - - -# Define Layout -app.layout = dbc.Container( # always start with container - children=[ - # dcc.Store(id='memory-output'), # not used, but the idea is to use as clipboard to store dataframe - html.Hr(), # small space from the top - dbc.Row( # upload portfolio - [ - dbc.Col( - dbc.CardImg( - src="https://os-climate.org/wp-content/uploads/sites/138/2021/10/OSC-Logo.png", - className='h-60 w-60 float-right align-middle', # reducing size and alligning - bottom=False), - width = 2, - ), - dbc.Col( - [ - html.H1(id="banner-title",children=[html.A("OS-Climate Portfolio Alignment Tool",href="https://github.com/plotly/dash-svm",style={"text-decoration": "none","color": "inherit"})]), - html.Div(children='Prototype tool for calculating the Implied Temperature Rise of investor portfolio in the steel and electric utilities sectors \N{deciduous tree}'), - ], - width = 6, - ), - dbc.Col([ - dcc.Upload( - id='upload-data', - children=html.Div( - dbc.Button('Upload portfolio', size="lg", color="primary",className='align-bottom',), - ), - multiple=False # Allow multiple files to be uploaded - ), - ], - width=2, - ), - dbc.Col(html.Div(dbc.Button('Get template', size="lg", color="secondary", - href="https://raw.githubusercontent.com/os-c/ITR/e772349117d41e1b62e3f9bcfb904b7e9c5e6c35/examples/data/example_portfolio.csv?token=AD3GZXC7GFH2O6EC7Z3X3KLBOE5MO", - download="Dummy_portfolio.csv.txt", - external_link=True, - ), - ), - width=2, - className='align-middle', - ) - ], - # no_gutters=False, # deprecated, creates spaces btw components - justify='center', # for this to work you need some space left (in total there 12 columns) - align = 'center', - ), - # dbc.Row( # the row below is commented out, but left just in case to reverse upload functionality - # [ - # dbc.Col( - # [dbc.InputGroup( - # [dbc.InputGroupAddon("Put the URL of a csv portfolio here:", addon_type="prepend"), - # dbc.Input(id="input-url",value = 'data/example_portfolio_main.csv',), - # ] - # ), - # ], - # width = 9, - # ), - # dbc.Col(dbc.Button("Upload new portfolio", id="run-url", color="primary", ), - # width=3, - # ), - # ] - # ), - html.Hr(), - dbc.Row( - [ - dbc.Col([ # filters pane - dbc.Card(dbc.CardBody( - [ - dbc.Row([ # Row with key figures - dbc.Col(html.H5("Filters", className="pf-filter")), # PF score - dbc.Col( - html.Div( - dbc.Button("Reset filters", - id="reset-filters-but", - outline=True, color="dark",size="sm",className="me-md-2" - ), - className="d-grid gap-2 d-md-flex justify-content-md-end" - ) - ), - ]), - html.P("Select part of your portfolio", className="text-black-50"), - controls, - ] - ) - ), - html.Br(), - dbc.Card(dbc.CardBody( - [ - html.H5("Scenario assumptions", className="macro-filters"), - html.P("Here you could adjust basic assumptions of calculations", className="text-black-50"), - macro, - ] - ) - ), - ], - width=3, - ), - dbc.Col([ # main pane - dbc.Row([ # Row with key figures - dbc.Col( # PF score - dbc.Card(dbc.CardBody( - [ - html.H1(id="output-info"), - html.P('Portfolio-level temperature rating of selected companies'), - ] - ) - ), - ), - dbc.Col( # Portfolio EVIC - dbc.Card(dbc.CardBody( - [ - html.H1(id="evic-info"), - html.P('Enterprise Value incl. Cash of selected portfolio in Bn'), - ] - ) - ), - ), - dbc.Col( # Portfolio notional - dbc.Card(dbc.CardBody( - [ - html.H1(id="pf-info"), - html.P('Total Notional of a selected portfolio in Mn'), - ] - ) - ), - ), - dbc.Col( # Number of companies - dbc.Card(dbc.CardBody( - [ - html.H1(id="comp-info"), - html.P('Number of companies in the selected portfolio'), - ] - ) - ), - ), - ], - ), - dbc.Row([dbc.Col(dcc.Graph(id="graph-2"),width=8), # big bubble graph - dbc.Col(dcc.Graph(id="graph-6"),), # covered graph - ], - ), - dbc.Row([ # 2 graphs - dbc.Col(dcc.Graph(id="graph-3", - # style={"height": "70vh", "max-height": "90vw",'title': 'Dash Data Visualization'}, - ), - ), - dbc.Col(dcc.Graph(id="graph-4", - # style={"height": "70vh", "max-height": "90vw",'title': 'Dash Data Visualization'}, - ), - ), - ]), - dbc.Row([ # 2 graphs - dbc.Col(dcc.Graph(id="graph-5", - # style={"height": "70vh", "max-height": "90vw",'title': 'Dash Data Visualization'}, - ), - ), - ]), - html.Br(), - dbc.Card(dbc.CardBody( # Table - [ - dbc.Row( - [ - dbc.Col( - html.H5("Table below contains details about the members of the selected portfolio"), - width=10, - ), - dbc.Col( - html.Div( - [ - dbc.Button("\N{books}",id="hover-target7", color="link", n_clicks=0, className="text-right"), - dbc.Popover(dbc.PopoverBody([ - html.P("Emission budget: ..."), - html.P("Trajectory score: ..."), - html.P("Target score: ..."), - html.P("Temperature score: ..."), - ] - ), - id="hover7",target="hover-target7",trigger="hover"), - ], - className="d-grid gap-2 d-md-flex justify-content-md-end", - ), - width=2, - ), - ], - align="center", - ), - html.Br(), - html.Div(id='container-button-basic'), - ] - ), - ), - - ] - ), - ] - ) - ], - style={"max-width": "1500px", - # "margin": "auto" - }, - ) -print('got till here 4') - - - -def parse_contents(contents, filename): - content_type, content_string = contents.split(',') - decoded = base64.b64decode(content_string) - try: - if 'csv' in filename: # Assume that the user uploaded a CSV file - df = pd.read_csv(io.StringIO(decoded.decode('iso-8859-1'))) - elif 'xls' in filename: # Assume that the user uploaded an excel file - df = pd.read_excel(io.BytesIO(decoded)) - # print(df) - return df - except Exception as e: - print(e) - - -@app.callback( - [ - Output("graph-2", "figure"), Output("graph-6", "figure"),Output("graph-3", "figure"), Output("graph-4", "figure"), Output("graph-5", "figure"), - Output('output-info','children'), # portfolio score - Output('output-info','style'), # conditional color - Output('evic-info','children'), # portfolio evic - Output('pf-info','children'), # portfolio notional - Output('comp-info','children'), # num of companies - # Output('carb-budg', 'min'), Output('carb-budg', 'max'), # this was an adjusting of min-max of a slider - Output('container-button-basic', 'children'), # Table - ], - [ -# Input('memory-output', 'data'), # here is our imported csv in memory - Input("scenario-dropdown", "value"), - # Input("carb-budg", "value"), # carbon budget - Input("temp-score", "value"), - # Input("run-url", "n_clicks"), - # Input("input-url", "n_submit"), - Input("sector-dropdown", "value"), - Input("region-dropdown", "value"), - Input('upload-data', 'contents'), - ], - [ - # State("input-url", "value"), # url functionality - State('upload-data', 'filename'), # upload functionality - ], -) - -def update_graph( - # df_store, - scenario, - # ca_bu, - te_sc, - sec, reg, - list_of_contents, list_of_names, # related to upload - # url, - ): - - global amended_portfolio_global, initial_portfolio, temperature_score, companies - - print('got till here 5') - - changed_id = [p['prop_id'] for p in dash.callback_context.triggered][0] # to catch which widgets were pressed - if 'upload-data' in changed_id: # if "upload new pf" button was clicked - df_portfolio = parse_contents(list_of_contents, list_of_names) - # df_portfolio = pd.read_csv(url, encoding="iso-8859-1", sep=';') - companies = ITR.utils.dataframe_to_portfolio(df_portfolio) - portfolio_data = ITR.utils.get_data(OECM_warehouse, companies) - initial_portfolio = temperature_score.calculate(portfolio_data) - initial_portfolio = initial_portfolio.sort_values(by='temperature_score', ascending=False) - filt_df = initial_portfolio - amended_portfolio_global = filt_df - aggregated_scores = temperature_score.aggregate_scores(filt_df) - - else: # no new portfolio - if scenario == 'OECM': - portfolio_data = ITR.utils.get_data(OECM_warehouse, companies) - elif scenario == 'TPI_2_degrees': - portfolio_data = ITR.utils.get_data(TPI_warehouse, companies) - else: - portfolio_data = ITR.utils.get_data(TPI_below_2_warehouse, companies) - - amended_portfolio_global = temperature_score.calculate(portfolio_data) - initial_portfolio = amended_portfolio_global - - # carbon_mask = (initial_portfolio.cumulative_budget >= ca_bu[0]) & (initial_portfolio.cumulative_budget <= ca_bu[1]) - temp_score_mask = (initial_portfolio.temperature_score >= te_sc[0]) & (initial_portfolio.temperature_score <= te_sc[1]) - - # Dropdown filters - if sec == 'all_values': - sec_mask = (initial_portfolio.sector != 'dummy') # select all - else: - sec_mask = initial_portfolio.sector == sec - if reg == 'all_values': - reg_mask = (initial_portfolio.region != 'dummy') # select all - else: - reg_mask = (initial_portfolio.region == reg) - filt_df = initial_portfolio.loc[temp_score_mask & sec_mask & reg_mask] # filtering - filt_df = filt_df.sort_values(by='temperature_score', ascending=False) - if len(filt_df) == 0: # if after filtering the dataframe is empty - raise PreventUpdate - amended_portfolio_global = filt_df - aggregated_scores = temperature_score.aggregate_scores(filt_df) # calc temp score for companies left in pf - - - # Calculate different weighting methods - def agg_score(agg_method): - temperature_score = TemperatureScore(time_frames = [ETimeFrames.LONG], - scopes=[EScope.S1S2], - aggregation_method=agg_method) # Options for the aggregation method are WATS, TETS, AOTS, MOTS, EOTS, ECOTS, and ROTS - aggregated_scores = temperature_score.aggregate_scores(filt_df) - return [agg_method.value,aggregated_scores.long.S1S2.all.score] - - agg_temp_scores = [agg_score(i) for i in PortfolioAggregationMethod] - df_temp_score = pd.DataFrame(agg_temp_scores) - # Separate column for names on Bar chart - # Highlight WATS and TETS - Weight_Dict = {'WATS': 'Investment
      weighted', #
      is needed to wrap x-axis label - 'TETS': 'Total emissions
      weighted', - 'EOTS': "Enterprise Value
      weighted", - 'ECOTS': "Enterprise Value
      + Cash weighted", - 'AOTS': "Total Assets
      weighted", - 'ROTS': "Revenues
      weigted", - 'MOTS': 'Market Cap
      weighted'} - df_temp_score['Weight_method'] = df_temp_score[0].map(Weight_Dict) # Mapping code to text - df_temp_score[1]=df_temp_score[1].round(decimals = 2) - # Creating barchart - fig4 = px.bar(df_temp_score, x='Weight_method', y=1, text=1,title = "Score by weighting scheme
      Assess the influence of weighting schemes on scores") - fig4.update_traces(textposition='inside', textangle=0) - fig4.update_yaxes(title_text='Temperature score', range = [1,3]) - fig4.update_xaxes(title_text=None, tickangle=0) - fig4.add_annotation(x=0.5, y=2.6,text="Main methodologies",showarrow=False) - fig4.add_shape( - dict(type="rect", x0=-0.45, x1=1.5, y0=0, y1=2.7, line_dash="dot",line_color="LightSeaGreen"), - row="all", - col="all", - ) - fig4.add_hline(y=2, line_dash="dot",line_color="red",annotation_text="Critical value") # horizontal line - fig4.update_layout(transition_duration=500) - - - - - # Scatter plot - fig1 = px.scatter(filt_df, x="cumulative_target", y="cumulative_budget", - size="investment_value", - color = "sector", labels={"color": "Sector"}, - hover_data=["company_name", "investment_value", "temperature_score"], - title="Overview of portfolio") - fig1.update_layout({'legend_title_text': '','transition_duration':500}) - fig1.update_layout(legend=dict(orientation = "h",yanchor="bottom",y=1,xanchor="center",x=0.5)) - - - # Covered companies analysis - coverage=filt_df[['company_id','ghg_s1s2','cumulative_target']] - def f(row): - if (pd.isna(row['ghg_s1s2']) and row['cumulative_target']==0): - val = "Not Covered" - elif (pd.isna(row['ghg_s1s2']) and row['cumulative_target']>0): - val = "Covered only
      by target" - elif (row['ghg_s1s2']>0 and row['cumulative_target']==0): - val = "Covered only
      by emissions" - else: - val = "Covered by
      emissions and targets" - return val - coverage['coverage_category'] = coverage.apply(f, axis=1) - dfg=coverage.groupby('coverage_category').count().reset_index() - dfg['portfolio']='Portfolio' # 1 column to have just 1 bar. I didn't figure out how to do it more ellegant - fig5 = px.bar(dfg, x='portfolio',y="company_id", color="coverage_category",text='company_id',title="Coverage of companies in portfolio") - fig5.update_xaxes(visible=False) # hide axis - fig5.update_yaxes(visible=False) # hide axis - fig5.update_layout({'legend_title_text': '','transition_duration':500, 'plot_bgcolor':'white'}) - fig5.update_layout(legend=dict(yanchor="middle",y=0.5,xanchor="left",x=1)) # location of legend - - # Heatmap - trace = go.Heatmap( - x = filt_df.sector, - y = filt_df.region, - z = filt_df.temperature_score, - type = 'heatmap', - colorscale = 'Temps', - ) - data = [trace] - fig2 = go.Figure(data = data) - fig2.update_layout(title = "Industry vs Region ratings") - - - fig3 = px.bar(filt_df.query("temperature_score > 2"), - x="company_name", y="temperature_score", - text ="temperature_score", - color="sector",title="Highest temperature scores by company") - fig3.update_traces(textposition='inside', textangle=0) - fig3.update_yaxes(title_text='Temperature score', range = [1,4]) - fig3.update_layout({'legend_title_text': '','transition_duration':500}) - fig3.update_layout(xaxis_title = None,legend=dict(orientation = "h",yanchor="bottom",y=1,xanchor="center",x=0.5)) - - - # Carbon budget slider update - # drop_d_min = initial_portfolio.cumulative_budget.min() - # drop_d_max = initial_portfolio.cumulative_budget.max() - - df=amended_portfolio_global[['company_name', 'company_id','region','sector','cumulative_budget','investment_value','trajectory_score', 'target_score','temperature_score']] - df['temperature_score']=df['temperature_score'].round(decimals = 2) # formating column - df['trajectory_score']=df['trajectory_score'].round(decimals = 2) # formating column - df['target_score']=df['target_score'].round(decimals = 2) # formating column - df['cumulative_budget'] = df['cumulative_budget'].apply(lambda x: "{:,.1f}".format((x/1000000))) # formating column - df['investment_value'] = df['investment_value'].apply(lambda x: "${:,.1f} Mn".format((x/1000000))) # formating column - df.rename(columns={'company_name':'Name', 'company_id':'ISIN','region':'Region','sector':'Industry','cumulative_budget':'Emission budget','investment_value':'Notional','trajectory_score':'Historical emissions score', 'target_score':'Target score','temperature_score':'Weighted temperature score'}, inplace=True) - - return ( - fig1, fig5, fig2, fig3, fig4, - "{:.2f}".format(aggregated_scores.long.S1S2.all.score), # portfolio score - {'color': 'ForestGreen'} if aggregated_scores.long.S1S2.all.score < 2 else {'color': 'Red'}, # conditional color - str(round((filt_df.company_enterprise_value.sum()+filt_df.company_cash_equivalents.sum())/10**9,0)), - str(filt_df.investment_value.sum()/10**6), - str(len(filt_df)), # num of companies - # str(len(filt_df.sector.unique())), # num of sectors in pf - # drop_d_min, drop_d_max, # Carbon budget slider update - dbc.Table.from_dataframe(df, - striped=True, - bordered=True, - hover=True, - responsive=True, - ), - ) - - -@app.callback( # reseting dropdowns - [ - # Output("carb-budg", "value"), # Carbon budget slider update - Output("temp-score", "value"), - Output("sector-dropdown", "value"), - Output("region-dropdown", "value"), - ], - [Input('reset-filters-but', 'n_clicks')] -) - -def reset_filters(n_clicks): - if n_clicks is None: - raise PreventUpdate - return ( # if button is clicked, reset filters - # [initial_portfolio.cumulative_budget.min(), initial_portfolio.cumulative_budget.max()], # Carbon budget slider update - [0,4], - 'all_values', - 'all_values', - ) - -if __name__ == "__main__": - app.run_server(debug=True) \ No newline at end of file diff --git a/examples/ITR_dash_app_develop.py b/examples/ITR_dash_app_develop.py deleted file mode 100644 index 206d55cd..00000000 --- a/examples/ITR_dash_app_develop.py +++ /dev/null @@ -1,726 +0,0 @@ -# Run this app with `python ITR_dash_app.py` and -# visit http://127.0.0.1:8050/ in your web browser -# and pray. - - -import pandas as pd -import numpy as np -import json -import os -import base64 -import datetime -import io - -import dash -from dash import html -from dash import dcc -from dash import dash_table - -import dash_bootstrap_components as dbc # should be installed separately - -from dash.dependencies import Input, Output, State -from dash.exceptions import PreventUpdate -import plotly.express as px -import plotly.graph_objects as go - -import ITR - -from ITR.data.data_warehouse import DataWarehouse -from ITR.portfolio_aggregation import PortfolioAggregationMethod -from ITR.temperature_score import TemperatureScore -from ITR.configs import ColumnsConfig, TemperatureScoreConfig - -from ITR.data.base_providers import BaseProviderProductionBenchmark, BaseProviderIntensityBenchmark -from ITR.data.template import TemplateProviderCompany -from ITR.interfaces import ICompanyData, EScope, ETimeFrames, PortfolioCompany, IEIBenchmarkScopes, IProductionBenchmarkScopes - -from ITR.data.osc_units import ureg, Q_, PA_ -from pint import Quantity -from pint_pandas import PintType - -from ITR.utils import get_project_root -pkg_root = get_project_root() - - -# Initial calculations -print('Start!!!!!!!!!') - -directory1 ='' #'examples' -directory2="data" -directory3="json-units" - -# company_json_file = "fundamental_data.json" -benchmark_prod_json_file = "benchmark_production_OECM.json" -benchmark_EI_OECM_file = "benchmark_EI_OECM.json" -benchmark_EI_TPI_file = "benchmark_EI_TPI_2_degrees.json" -benchmark_EI_TPI_below_2_file = "benchmark_EI_TPI_below_2_degrees.json" - -root = os.path.dirname(os.path.abspath("__file__")) -print(f"root = {root}; pkg_root = {pkg_root}") - -# root = os.path.dirname(os.path.abspath(__file__)) -# company_json = os.path.join(root, directory1, directory2, directory3, company_json_file) -benchmark_prod_json = os.path.join(root, directory1, directory2, directory3, benchmark_prod_json_file) -benchmark_EI_OECM = os.path.join(root, directory1, directory2, directory3, benchmark_EI_OECM_file) -benchmark_EI_TPI = os.path.join(root, directory1, directory2, directory3, benchmark_EI_TPI_file) -benchmark_EI_TPI_below_2 = os.path.join(root, directory1, directory2, directory3, benchmark_EI_TPI_below_2_file) - -# load production benchmarks -with open(benchmark_prod_json) as json_file: - parsed_json = json.load(json_file) -prod_bms = IProductionBenchmarkScopes.parse_obj(parsed_json) -base_production_bm = BaseProviderProductionBenchmark(production_benchmarks=prod_bms) - -# load intensity benchmarks - -# OECM -with open(benchmark_EI_OECM) as json_file: - parsed_json = json.load(json_file) -ei_bms = IEIBenchmarkScopes.parse_obj(parsed_json) -OECM_EI_bm = BaseProviderIntensityBenchmark(EI_benchmarks=ei_bms) - -# TPI -with open(benchmark_EI_TPI) as json_file: - parsed_json = json.load(json_file) -ei_bms = IEIBenchmarkScopes.parse_obj(parsed_json) -TPI_EI_bm = BaseProviderIntensityBenchmark(EI_benchmarks=ei_bms) - -# TPI below 2 -with open(benchmark_EI_TPI_below_2) as json_file: - parsed_json = json.load(json_file) -ei_bms = IEIBenchmarkScopes.parse_obj(parsed_json) -TPI_below_2_EI_bm = BaseProviderIntensityBenchmark(EI_benchmarks=ei_bms) - -# load company data -# presently projections are assigned to companies based on a single benchmark. -# To support multiple benchmarks we have to copy the company data (we cannot .copy because of ABC) -# Next step is probably to access projections via a dictionary indexed by benchmark name -template_company_data_OECM = TemplateProviderCompany(excel_path="data/20220215 ITR Tool Sample Data.xlsx") -template_company_data_TPI = TemplateProviderCompany(excel_path="data/20220215 ITR Tool Sample Data.xlsx") -template_company_data_TPI2 = TemplateProviderCompany(excel_path="data/20220215 ITR Tool Sample Data.xlsx") - -OECM_warehouse = DataWarehouse(template_company_data_OECM, base_production_bm, OECM_EI_bm) -TPI_warehouse = DataWarehouse(template_company_data_TPI, base_production_bm, TPI_EI_bm) -TPI_below_2_warehouse = DataWarehouse(template_company_data_TPI2, base_production_bm, TPI_below_2_EI_bm) - - -# dummy_portfolio = "example_portfolio.csv" -dummy_portfolio = "template_portfolio.csv" -df_portfolio = pd.read_csv(os.path.join(directory1,directory2,dummy_portfolio), encoding="iso-8859-1", sep=';') -print('got till here 1') -companies = ITR.utils.dataframe_to_portfolio(df_portfolio) -temperature_score = TemperatureScore(time_frames = [ETimeFrames.LONG],scopes=[EScope.S1S2],aggregation_method=PortfolioAggregationMethod.WATS) # Options for the aggregation method are WATS, TETS, AOTS, MOTS, EOTS, ECOTS, and ROTS - -portfolio_data = ITR.utils.get_data(OECM_warehouse, companies) -amended_portfolio_global = temperature_score.calculate(portfolio_data) -initial_portfolio = amended_portfolio_global -print('got till here 2') - -# matplotlib is integrated with Pint's units system: https://pint.readthedocs.io/en/0.18/plotting.html -# But not so plotly. This function attempts to dequantify all units and return the magnitudes in their natural base units. - -def dequantify_plotly(px_func, df, **kwargs): - new_df = df.copy() - for col in ['x', 'y']: - s = df[kwargs[col]] - if isinstance(s.dtype, PintType): - new_df[kwargs[col]] = s.values.quantity.to_base_units().m - elif s.map(lambda x: isinstance(x, Quantity)).any(): - item0 = s.values[0] - s = s.astype(f"pint[{item0.u}]") - new_df[kwargs[col]] = s.values.quantity.m - if 'hover_data' in kwargs: - for col in kwargs['hover_data']: - s = df[col] - if isinstance(s.dtype, PintType): - new_df[col] = s.values.quantity.to_base_units().m - elif s.map(lambda x: isinstance(x, Quantity)).any(): - item0 = s.values[0] - s = s.astype(f"pint[{item0.u}]") - new_df[col] = s.values.quantity.m - - return px_func (new_df, **kwargs) - - -# nice cheatsheet for managing layout via className attribute: https://hackerthemes.com/bootstrap-cheatsheet/ - -# Define app -app = dash.Dash(__name__, external_stylesheets=[dbc.themes.BOOTSTRAP], # theme should be written in CAPITAL letters; list of themes https://www.bootstrapcdn.com/bootswatch/ - meta_tags=[{'name': 'viewport', # this thing makes layout responsible to mobile view - 'content': 'width=device-width, initial-scale=1.0'}] - ) -app.title = "ITR Tool" # this puts text to the browser tab -server = app.server - -controls = dbc.Row( # always do in rows ... - [ - dbc.Col( # ... and then split to columns - children=[ - # dbc.Row( - # [ - # dbc.Col( # Carbon budget slider - # dbc.Label("\N{scroll} Benchmark carbon budget"), - # width=9, # max is 12 per column - # ), - # dbc.Col( - # [ - # dbc.Button("\N{books}",id="hover-target1", color="link", n_clicks=0, className="text-right"), - # dbc.Popover(dbc.PopoverBody("And here's some amazing content. Cool!"),id="hover1",target="hover-target1",trigger="hover"), - # ], width=2, - # ), - # ], - # align="center", - # ), - # dcc.RangeSlider( - # id="carb-budg", - # min=initial_portfolio.cumulative_budget.min(),max=initial_portfolio.cumulative_budget.max(), - # value=[initial_portfolio.cumulative_budget.min(), initial_portfolio.cumulative_budget.max()], - # tooltip={'placement': 'bottom'}, - # marks={i*(10**8): str(i) for i in range(0, int(initial_portfolio.cumulative_budget.max()/(10**8)), 10)}, - # ), - dbc.Row( - [ - dbc.Col( - dbc.Label("\N{thermometer} Individual temperature score"), - width=9, - ), - dbc.Col( - [ - dbc.Button("\N{books}",id="hover-target2", color="link", n_clicks=0), - dbc.Popover(dbc.PopoverBody("And here's some amazing content. Cool!"),id="hover2",target="hover-target2",trigger="hover"), - ], width=2, align="center", - ), - ], - align="center", - ), - dcc.RangeSlider( - id="temp-score", - min = 0, max = 4, value=[0,4], - step=0.5, - marks={i / 10: str(i / 10) for i in range(0, 40, 5)}, - ), - dbc.Row( - [ - dbc.Col( - dbc.Label("\N{factory} Focus on a specific sector "), - width=9, - ), - dbc.Col( - [ - dbc.Button("\N{books}",id="hover-target3", color="link", n_clicks=0), - dbc.Popover(dbc.PopoverBody("And here's some amazing content. Cool!"),id="hover3",target="hover-target3",trigger="hover"), - ], width=2, - ), - ], - align="center", - ), - dcc.Dropdown(id="sector-dropdown", - options=[{"label": i, "value": i} for i in initial_portfolio["sector"].unique()] + [{'label': 'All Sectors', 'value': 'all_values'}], - value = 'all_values', - clearable =False, - placeholder="Select a sector"), - dbc.Row( - [ - dbc.Col( - dbc.Label("\N{globe with meridians} Focus on a specific region "), - width=9, - ), - dbc.Col( - [ - dbc.Button("\N{books}",id="hover-target4", color="link", n_clicks=0), - dbc.Popover(dbc.PopoverBody("And here's some amazing content. Cool!"),id="hover4",target="hover-target4",trigger="hover"), - ], width=2, - ), - ], - align="center", - ), - dcc.Dropdown(id="region-dropdown", - options=[{"label": i, "value": i} for i in initial_portfolio["region"].unique()] + [{'label': 'All Regions', 'value': 'all_values'}], - value = 'all_values', - clearable =False, - placeholder="Select a region"), - - ], - ), - ], -) - -macro = dbc.Row( - [ - dbc.Col( - children=[ - dbc.Row( - [ - dbc.Col( - dbc.Label("\N{bar chart} Select Benchmark "), - width=9, - ), - dbc.Col( - [ - dbc.Button("\N{books}",id="hover-target5", color="link", n_clicks=0), - dbc.Popover(dbc.PopoverBody("And here's some amazing content. Cool!"),id="hover5",target="hover-target5",trigger="hover"), - ], width=2, - ), - ], - align="center", - ), - dcc.Dropdown(id="scenario-dropdown", - options=[ - {'label': 'OECM 1.5 degrees', 'value': 'OECM'}, - {'label': 'TPI 2 degrees', 'value': 'TPI_2_degrees'}, - {'label': 'TPI below 2 degrees', 'value': 'TPI_below_2_degrees'} - ], - value='OECM', - clearable =False, - placeholder="Select emission scenario"), - html.Div(id='hidden-div', style={'display':'none'}) - ], - ), - ], -) - - -# Define Layout -app.layout = dbc.Container( # always start with container - children=[ - # dcc.Store(id='memory-output'), # not used, but the idea is to use as clipboard to store dataframe - html.Hr(), # small space from the top - dbc.Row( # upload portfolio - [ - dbc.Col( - dbc.CardImg( - src="https://os-climate.org/wp-content/uploads/sites/138/2021/10/OSC-Logo.png", - className='h-60 w-60 float-right align-middle', # reducing size and alligning - bottom=False), - width = 2, - ), - dbc.Col( - [ - html.H1(id="banner-title",children=[html.A("OS-Climate Portfolio Alignment Tool",href="https://github.com/plotly/dash-svm",style={"text-decoration": "none","color": "inherit"})]), - html.Div(children='Prototype tool for calculating the Implied Temperature Rise of investor portfolio in the steel and electric utilities sectors \N{deciduous tree}'), - ], - width = 6, - ), - dbc.Col([ - dcc.Upload( - id='upload-data', - children=html.Div( - dbc.Button('Upload portfolio', size="lg", color="primary",className='align-bottom',), - ), - multiple=False # Allow multiple files to be uploaded - ), - ], - width=2, - ), - dbc.Col(html.Div(dbc.Button('Get template (needs implementation)', size="lg", color="secondary", - href="https://docs.faculty.ai/user-guide/apps/examples/dash_file_upload_download.html", - download="dash_file_upload_download.html", - external_link=True, - ), - ), - width=2, - className='align-middle', - ) - ], - # no_gutters=False, # deprecated, creates spaces btw components - justify='center', # for this to work you need some space left (in total there 12 columns) - align = 'center', - ), - # dbc.Row( # the row below is commented out, but left just in case to reverse upload functionality - # [ - # dbc.Col( - # [dbc.InputGroup( - # [dbc.InputGroupAddon("Put the URL of a csv portfolio here:", addon_type="prepend"), - # dbc.Input(id="input-url",value = 'data/example_portfolio_main.csv',), - # ] - # ), - # ], - # width = 9, - # ), - # dbc.Col(dbc.Button("Upload new portfolio", id="run-url", color="primary", ), - # width=3, - # ), - # ] - # ), - html.Hr(), - dbc.Row( - [ - dbc.Col([ # filters pane - dbc.Card(dbc.CardBody( - [ - dbc.Row([ # Row with key figures - dbc.Col(html.H5("Filters", className="pf-filter")), # PF score - dbc.Col( - html.Div( - dbc.Button("Reset filters", - id="reset-filters-but", - outline=True, color="dark",size="sm",className="me-md-2" - ), - className="d-grid gap-2 d-md-flex justify-content-md-end" - ) - ), - ]), - html.P("Select part of your portfolio", className="text-black-50"), - controls, - ] - ) - ), - html.Br(), - dbc.Card(dbc.CardBody( - [ - html.H5("Scenario assumptions", className="macro-filters"), - html.P("Here you could adjust basic assumptions of calculations", className="text-black-50"), - macro, - ] - ) - ), - ], - width=3, - ), - dbc.Col([ # main pane - dbc.Row([ # Row with key figures - dbc.Col( # PF score - dbc.Card(dbc.CardBody( - [ - html.H1(id="output-info"), - html.P('Portfolio-level temperature rating of selected companies'), - ] - ) - ), - ), - dbc.Col( # Portfolio EVIC - dbc.Card(dbc.CardBody( - [ - html.H1(id="evic-info"), - html.P('Enterprise Value incl. Cash of selected portfolio in Bn'), - ] - ) - ), - ), - dbc.Col( # Portfolio notional - dbc.Card(dbc.CardBody( - [ - html.H1(id="pf-info"), - html.P('Total Notional of a selected portfolio in Mn'), - ] - ) - ), - ), - dbc.Col( # Number of companies - dbc.Card(dbc.CardBody( - [ - html.H1(id="comp-info"), - html.P('Number of companies in the selected portfolio'), - ] - ) - ), - ), - ], - ), - dbc.Row([dbc.Col(dcc.Graph(id="graph-2"),width=8), # big bubble graph - dbc.Col(dcc.Graph(id="graph-6"),), # covered graph - ], - ), - dbc.Row([ # 2 graphs - dbc.Col(dcc.Graph(id="graph-3", - # style={"height": "70vh", "max-height": "90vw",'title': 'Dash Data Visualization'}, - ), - ), - dbc.Col(dcc.Graph(id="graph-4", - # style={"height": "70vh", "max-height": "90vw",'title': 'Dash Data Visualization'}, - ), - ), - ]), - dbc.Row([ # 2 graphs - dbc.Col(dcc.Graph(id="graph-5", - # style={"height": "70vh", "max-height": "90vw",'title': 'Dash Data Visualization'}, - ), - ), - ]), - html.Br(), - dbc.Card(dbc.CardBody( # Table - [ - dbc.Row( - [ - dbc.Col( - html.H5("Table below contains details about the members of the selected portfolio"), - width=10, - ), - dbc.Col( - html.Div( - [ - dbc.Button("\N{books}",id="hover-target7", color="link", n_clicks=0, className="text-right"), - dbc.Popover(dbc.PopoverBody([ - html.P("Emissions budget: ..."), - html.P("Trajectory score: ..."), - html.P("Target score: ..."), - html.P("Temperature score: ..."), - ] - ), - id="hover7",target="hover-target7",trigger="hover"), - ], - className="d-grid gap-2 d-md-flex justify-content-md-end", - ), - width=2, - ), - ], - align="center", - ), - html.Br(), - html.Div(id='container-button-basic'), - ] - ), - ), - - ] - ), - ] - ) - ], - style={"max-width": "1500px", - # "margin": "auto" - }, - ) -print('got till here 4') - - - -def parse_contents(contents, filename): - content_type, content_string = contents.split(',') - decoded = base64.b64decode(content_string) - try: - if 'csv' in filename: # Assume that the user uploaded a CSV file - df = pd.read_csv(io.StringIO(decoded.decode('iso-8859-1')),sep=';') - elif 'xls' in filename: # Assume that the user uploaded an excel file - df = pd.read_excel(io.BytesIO(decoded)) - # print(df) - return df - except Exception as e: - print(e) - - -@app.callback( - [ - Output("graph-2", "figure"), Output("graph-6", "figure"),Output("graph-3", "figure"), Output("graph-4", "figure"), Output("graph-5", "figure"), - Output('output-info','children'), # portfolio score - Output('output-info','style'), # conditional color - Output('evic-info','children'), # portfolio evic - Output('pf-info','children'), # portfolio notional - Output('comp-info','children'), # num of companies - # Output('carb-budg', 'min'), Output('carb-budg', 'max'), # this was an adjusting of min-max of a slider - Output('container-button-basic', 'children'), # Table - ], - [ -# Input('memory-output', 'data'), # here is our imported csv in memory - Input("scenario-dropdown", "value"), - # Input("carb-budg", "value"), # carbon budget - Input("temp-score", "value"), - # Input("run-url", "n_clicks"), - # Input("input-url", "n_submit"), - Input("sector-dropdown", "value"), - Input("region-dropdown", "value"), - Input('upload-data', 'contents'), - ], - [ - # State("input-url", "value"), # url functionality - State('upload-data', 'filename'), # upload functionality - ], -) - -def update_graph( - # df_store, - scenario, - # ca_bu, - te_sc, - sec, reg, - list_of_contents, list_of_names, # related to upload - # url, - ): - - global amended_portfolio_global, initial_portfolio, temperature_score, companies - - print('got till here 5') - - changed_id = [p['prop_id'] for p in dash.callback_context.triggered][0] # to catch which widgets were pressed - if 'upload-data' in changed_id: # if "upload new pf" button was clicked - df_portfolio = parse_contents(list_of_contents, list_of_names) - # df_portfolio = pd.read_csv(url, encoding="iso-8859-1", sep=';') - companies = ITR.utils.dataframe_to_portfolio(df_portfolio) - portfolio_data = ITR.utils.get_data(OECM_warehouse, companies) - initial_portfolio = temperature_score.calculate(portfolio_data) - initial_portfolio = initial_portfolio.sort_values(by='temperature_score', ascending=False) - filt_df = initial_portfolio - amended_portfolio_global = filt_df - aggregated_scores = temperature_score.aggregate_scores(filt_df) - - else: # no new portfolio - if scenario == 'OECM': - portfolio_data = ITR.utils.get_data(OECM_warehouse, companies) - elif scenario == 'TPI_2_degrees': - portfolio_data = ITR.utils.get_data(TPI_warehouse, companies) - else: - portfolio_data = ITR.utils.get_data(TPI_below_2_warehouse, companies) - - amended_portfolio_global = temperature_score.calculate(portfolio_data) - initial_portfolio = amended_portfolio_global - - # carbon_mask = (initial_portfolio.cumulative_budget >= ca_bu[0]) & (initial_portfolio.cumulative_budget <= ca_bu[1]) - temp_score_mask = (initial_portfolio.temperature_score >= Q_(te_sc[0],'delta_degC')) & (initial_portfolio.temperature_score <= Q_(te_sc[1],'delta_degC')) - - # Dropdown filters - if sec == 'all_values': - sec_mask = (initial_portfolio.sector != 'dummy') # select all - else: - sec_mask = initial_portfolio.sector == sec - if reg == 'all_values': - reg_mask = (initial_portfolio.region != 'dummy') # select all - else: - reg_mask = (initial_portfolio.region == reg) - filt_df = initial_portfolio.loc[temp_score_mask & sec_mask & reg_mask] # filtering - filt_df = filt_df.sort_values(by='temperature_score', ascending=False) - if len(filt_df) == 0: # if after filtering the dataframe is empty - raise PreventUpdate - amended_portfolio_global = filt_df - aggregated_scores = temperature_score.aggregate_scores(filt_df) # calc temp score for companies left in pf - - - # Calculate different weighting methods - def agg_score(agg_method): - temperature_score = TemperatureScore(time_frames = [ETimeFrames.LONG], - scopes=[EScope.S1S2], - aggregation_method=agg_method) # Options for the aggregation method are WATS, TETS, AOTS, MOTS, EOTS, ECOTS, and ROTS - aggregated_scores = temperature_score.aggregate_scores(filt_df) - return [agg_method.value,aggregated_scores.long.S1S2.all.score] - - agg_temp_scores = [agg_score(i) for i in PortfolioAggregationMethod] - methods, scores = list(map(list, zip(*agg_temp_scores))) - df_temp_score = pd.DataFrame(data={0:pd.Series(methods,dtype='string'), 1:pd.Series(scores, dtype='pint[delta_degC]')}) - # Separate column for names on Bar chart - # Highlight WATS and TETS - Weight_Dict = {'WATS': 'Investment
      weighted', #
      is needed to wrap x-axis label - 'TETS': 'Total emissions
      weighted', - 'EOTS': "Enterprise Value
      weighted", - 'ECOTS': "Enterprise Value
      + Cash weighted", - 'AOTS': "Total Assets
      weighted", - 'ROTS': "Revenues
      weigted", - 'MOTS': 'Market Cap
      weighted'} - df_temp_score['Weight_method'] = df_temp_score[0].map(Weight_Dict) # Mapping code to text - # 1 is the label of the row we will be graphing - # .map(lambda x: Q_(round(x.m, 2), x.u)) - df_temp_score[1]=df_temp_score[1].astype('pint[delta_degC]') - # Creating barchart, plotting values of column `1` - fig4 = dequantify_plotly (px.bar, df_temp_score, x='Weight_method', y=1, text=1,title = "Score by weighting scheme
      Assess the influence of weighting schemes on scores") - fig4.update_traces(textposition='inside', textangle=0) - fig4.update_yaxes(title_text='Temperature score', range = [1,3]) - fig4.update_xaxes(title_text=None, tickangle=0) - fig4.add_annotation(x=0.5, y=2.6,text="Main methodologies",showarrow=False) - fig4.add_shape( - dict(type="rect", x0=-0.45, x1=1.5, y0=0, y1=2.7, line_dash="dot",line_color="LightSeaGreen"), - row="all", - col="all", - ) - fig4.add_hline(y=2, line_dash="dot",line_color="red",annotation_text="Critical value") # horizontal line - fig4.update_layout(transition_duration=500) - - - - - # Scatter plot - fig1 = dequantify_plotly (px.scatter, filt_df, x="cumulative_target", y="cumulative_budget", - size="investment_value", - color = "sector", labels={"color": "Sector"}, - hover_data=["company_name", "investment_value", "temperature_score"], - title="Overview of portfolio") - fig1.update_layout({'legend_title_text': '','transition_duration':500}) - fig1.update_layout(legend=dict(orientation = "h",yanchor="bottom",y=1,xanchor="center",x=0.5)) - - - # Covered companies analysis - coverage=filt_df[['company_id','ghg_s1s2','cumulative_target']].copy() - zeroE = Q_(0, 't CO2') - coverage['coverage_category'] = np.where(coverage['ghg_s1s2'].isnull(), - np.where(coverage['cumulative_target']==zeroE, "Not Covered", "Covered only
      by target"), - np.where((coverage['ghg_s1s2'] >zeroE) & (coverage['cumulative_target']==zeroE), - "Covered only
      by emissions", - "Covered by
      emissions and targets")) - dfg=coverage.groupby('coverage_category').count().reset_index() - dfg['portfolio']='Portfolio' # 1 column to have just 1 bar. I didn't figure out how to do it more ellegant - fig5 = dequantify_plotly (px.bar, dfg, x='portfolio',y="company_id", color="coverage_category",text='company_id',title="Coverage of companies in portfolio") - fig5.update_xaxes(visible=False) # hide axis - fig5.update_yaxes(visible=False) # hide axis - fig5.update_layout({'legend_title_text': '','transition_duration':500, 'plot_bgcolor':'white'}) - fig5.update_layout(legend=dict(yanchor="middle",y=0.5,xanchor="left",x=1)) # location of legend - - # Heatmap - trace = go.Heatmap( - x = filt_df.sector, - y = filt_df.region, - z = filt_df.temperature_score.map(lambda x: x.m), - type = 'heatmap', - colorscale = 'Temps', - ) - data = [trace] - fig2 = go.Figure(data = data) - fig2.update_layout(title = "Industry vs Region ratings") - - fig3 = dequantify_plotly (px.bar, filt_df.query("temperature_score > @Q_(2, 'delta_degC')"), - x="company_name", y="temperature_score", - text ="temperature_score", - color="sector",title="Highest temperature scores by company") - fig3.update_traces(textposition='inside', textangle=0) - fig3.update_yaxes(title_text='Temperature score', range = [1,4]) - fig3.update_layout({'legend_title_text': '','transition_duration':500}) - fig3.update_layout(xaxis_title = None,legend=dict(orientation = "h",yanchor="bottom",y=1,xanchor="center",x=0.5)) - - # Carbon budget slider update - # drop_d_min = initial_portfolio.cumulative_budget.min() - # drop_d_max = initial_portfolio.cumulative_budget.max() - - df=amended_portfolio_global[['company_name', 'company_id','region','sector','cumulative_budget','investment_value','trajectory_score', 'target_score','temperature_score']].copy() - df['temperature_score']=df['temperature_score'].astype('pint[delta_degC]').values.quantity.m - df['trajectory_score']=df['trajectory_score'].astype('pint[delta_degC]').values.quantity.m - df['target_score']=df['target_score'].astype('pint[delta_degC]').values.quantity.m - df['cumulative_budget'] = df['cumulative_budget'].astype('pint[Mt CO2]').values.quantity.m - df['investment_value'] = df['investment_value'].apply(lambda x: "${:,.1f} Mn".format((x/1000000))) # formating column - df.rename(columns={'company_name':'Name', 'company_id':'ISIN','region':'Region','sector':'Industry','cumulative_budget':'Emissions budget','investment_value':'Notional','trajectory_score':'Historical emissions score', 'target_score':'Target score','temperature_score':'Weighted temperature score'}, inplace=True) - - return ( - fig1, fig5, fig2, fig3, fig4, - "{:.2f}".format(aggregated_scores.long.S1S2.all.score), # portfolio score - {'color': 'ForestGreen'} if aggregated_scores.long.S1S2.all.score.m < 2 else {'color': 'Red'}, # conditional color - str(round((filt_df.company_ev_plus_cash.sum())/10**9,0)), - str(filt_df.investment_value.sum()/10**6), - str(len(filt_df)), # num of companies - # str(len(filt_df.sector.unique())), # num of sectors in pf - # drop_d_min, drop_d_max, # Carbon budget slider update - dbc.Table.from_dataframe(df, - striped=True, - bordered=True, - hover=True, - responsive=True, - ), - ) - - -@app.callback( # reseting dropdowns - [ - # Output("carb-budg", "value"), # Carbon budget slider update - Output("temp-score", "value"), - Output("sector-dropdown", "value"), - Output("region-dropdown", "value"), - ], - [Input('reset-filters-but', 'n_clicks')] -) - -def reset_filters(n_clicks): - if n_clicks is None: - raise PreventUpdate - return ( # if button is clicked, reset filters - # [initial_portfolio.cumulative_budget.min(), initial_portfolio.cumulative_budget.max()], # Carbon budget slider update - [0,4], - 'all_values', - 'all_values', - ) - -if __name__ == "__main__": - app.run_server(debug=True) From 25741b25d9b5d385b1f88f8ca9d14b0a69232653 Mon Sep 17 00:00:00 2001 From: oleksandr-anufriyev1 Date: Fri, 3 Jun 2022 21:08:33 +0200 Subject: [PATCH 252/345] Finalising _get_intensity_benchmarks() for reg-sec combinations Signed-off-by: oleksandr-anufriyev1 Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- ITR/data/base_providers.py | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/ITR/data/base_providers.py b/ITR/data/base_providers.py index 21c668b7..bdd1b63b 100644 --- a/ITR/data/base_providers.py +++ b/ITR/data/base_providers.py @@ -179,13 +179,12 @@ def _get_intensity_benchmarks(self, company_sector_region_info: pd.DataFrame, :return: A DataFrame with company and intensity benchmarks per calendar year per row """ benchmark_projection = self._get_projected_intensities(scope) # TODO optimize performance - sectors = company_sector_region_info[self.column_config.SECTOR] - regions = company_sector_region_info[self.column_config.REGION] - benchmark_regions = regions.copy() - mask = benchmark_regions.isin(benchmark_projection.reset_index()[self.column_config.REGION]) - benchmark_regions.loc[~mask] = "Global" - - benchmark_projection = benchmark_projection.loc[list(zip(benchmark_regions, sectors))] + reg_sec = company_sector_region_info[[self.column_config.REGION,self.column_config.SECTOR]].copy() + merged_df=reg_sec.reset_index().merge(benchmark_projection.reset_index()[[self.column_config.REGION,self.column_config.SECTOR]], how='left', indicator=True).set_index('index') # checking which combinations of reg-sec are missing in the benchmark + reg_sec.loc[merged_df._merge == 'left_only', self.column_config.REGION] = "Global" # change region in missing combination to "Global" + sectors = reg_sec.sector + regions = reg_sec.region + benchmark_projection = benchmark_projection.loc[list(zip(regions, sectors))] benchmark_projection.index = sectors.index return benchmark_projection From 7857f29c5b559ba06b9618ee778a352093d32871 Mon Sep 17 00:00:00 2001 From: oleksandr-anufriyev1 Date: Tue, 14 Jun 2022 14:36:24 +0200 Subject: [PATCH 253/345] Cleanning UI after feedback from Joris and David Signed-off-by: oleksandr-anufriyev1 Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- examples/ITR_UI.py | 166 ++++++++++++++------------------------------- 1 file changed, 50 insertions(+), 116 deletions(-) diff --git a/examples/ITR_UI.py b/examples/ITR_UI.py index dc16570c..a928ae8f 100644 --- a/examples/ITR_UI.py +++ b/examples/ITR_UI.py @@ -19,7 +19,6 @@ from dash.exceptions import PreventUpdate import plotly.express as px import plotly.graph_objects as go -# from sqlalchemy import true import ITR @@ -29,38 +28,43 @@ from ITR.data.base_providers import BaseProviderProductionBenchmark, BaseProviderIntensityBenchmark from ITR.data.template import TemplateProviderCompany -from ITR.interfaces import ICompanyData, EScope, ETimeFrames, PortfolioCompany, IEIBenchmarkScopes, IProductionBenchmarkScopes, ProjectionControls +from ITR.interfaces import EScope, ETimeFrames, IEIBenchmarkScopes, IProductionBenchmarkScopes, ProjectionControls +# from ITR.configs import LoggingConfig -from ITR.data.osc_units import ureg, Q_, PA_ +from ITR.data.osc_units import Q_ from pint import Quantity from pint_pandas import PintType -from ITR.utils import get_project_root -pkg_root = get_project_root() +import logging +logger = logging.getLogger(__name__) +logger.setLevel(logging.INFO) +formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s') # LoggingConfig.FORMAT +stream_handler = logging.StreamHandler() +stream_handler.setFormatter(formatter) +logger.addHandler(stream_handler) # Initial calculations -print('Start!') +logger.info("Start!") - -directory1 ='' #'examples' -directory2="data" -directory3="json-units" +examples_dir ='' #'examples' +data_dir="data" +data_json_units_dir="json-units" root = os.path.abspath('') # load company data company_data="20220415 ITR Tool Sample Data.xlsx" # this file is provided initially -template_company_data = TemplateProviderCompany(excel_path=os.path.join(root, directory1, directory2, company_data)) +template_company_data = TemplateProviderCompany(excel_path=os.path.join(root, examples_dir, data_dir, company_data)) # load production benchmarks benchmark_prod_json_file = "benchmark_production_OECM.json" -benchmark_prod_json = os.path.join(root, directory1, directory2, directory3, benchmark_prod_json_file) +benchmark_prod_json = os.path.join(root, examples_dir, data_dir, data_json_units_dir, benchmark_prod_json_file) with open(benchmark_prod_json) as json_file: parsed_json = json.load(json_file) prod_bms = IProductionBenchmarkScopes.parse_obj(parsed_json) base_production_bm = BaseProviderProductionBenchmark(production_benchmarks=prod_bms) -print('Load production benchmark from {}'.format(benchmark_prod_json_file)) +logger.info('Load production benchmark from {}'.format(benchmark_prod_json_file)) # Emission intensities @@ -70,9 +74,9 @@ benchmark_EI_TPI_below_2_file = "benchmark_EI_TPI_below_2_degrees.json" # loading dummy portfolio -df_portfolio = pd.read_excel(os.path.join(root, directory1, directory2, company_data), sheet_name="Portfolio") +df_portfolio = pd.read_excel(os.path.join(root, examples_dir, data_dir, company_data), sheet_name="Portfolio") companies = ITR.utils.dataframe_to_portfolio(df_portfolio) -print('Load dummy portfolio from {}. You could upload your own portfolio using the template.'.format(company_data)) +logger.info('Load dummy portfolio from {}. You could upload your own portfolio using the template.'.format(company_data)) temperature_score = TemperatureScore( time_frames = [ETimeFrames.LONG], @@ -91,13 +95,12 @@ def recalculate_individual_itr(scenario): else: benchmark_file = benchmark_EI_TPI_below_2_file # load intensity benchmarks - benchmark_EI = os.path.join(root, directory1, directory2, directory3, benchmark_file) + benchmark_EI = os.path.join(root, examples_dir, data_dir, data_json_units_dir, benchmark_file) with open(benchmark_EI) as json_file: parsed_json = json.load(json_file) EI_bm = BaseProviderIntensityBenchmark(EI_benchmarks=IEIBenchmarkScopes.parse_obj(parsed_json)) Warehouse = DataWarehouse(template_company_data, base_production_bm, EI_bm) df = temperature_score.calculate(data_warehouse=Warehouse, portfolio=companies) - # print('Temperature score for portfolio components is {:.2f}'.format(temperature_score.aggregate_scores(df).long.S1S2.all.score.m)) return df @@ -300,7 +303,6 @@ def dequantify_plotly(px_func, df, **kwargs): # Define Layout app.layout = dbc.Container( # always start with container children=[ - # dcc.Store(id='memory-output'), # not used, but the idea is to use as clipboard to store dataframe html.Hr(), # small space from the top dbc.Row( # upload portfolio [ @@ -321,28 +323,9 @@ def dequantify_plotly(px_func, df, **kwargs): ), dbc.Col([ dbc.Spinner([html.H1(id="dummy-output-info",style={'color': 'white'})],color="primary",spinner_style={"width": "3rem", "height": "3rem"}), # Spinner implementations - # Upload button commented out for future release - # dcc.Upload( - # id='upload-data', - # children=html.Div( - # dbc.Button('Upload portfolio', size="lg", color="primary",className='align-bottom',), - # ), - # multiple=False # Allow multiple files to be uploaded - # ), ], width=1, ), - # Upload template is commented out for this release - # dbc.Col( # 16.05.2022: update template link - # html.Div(dbc.Button('Get template (needs implementation)', size="lg", color="secondary", - # href="https://docs.faculty.ai/user-guide/apps/examples/dash_file_upload_download.html", - # download="dash_file_upload_download.html", - # external_link=True, - # ), - # ), - # width=2, - # className='align-middle', - # ) ], justify='between', # for this to work you need some space left (in total there 12 columns) align = 'center', @@ -444,22 +427,13 @@ def dequantify_plotly(px_func, df, **kwargs): ), dbc.Row(# row with 2 graphs [ - dbc.Col(dcc.Graph(id="graph-3", - # style={"height": "70vh", "max-height": "90vw",'title': 'Dash Data Visualization'}, - ), - ), - dbc.Col(dcc.Graph(id="graph-4", - # style={"height": "70vh", "max-height": "90vw",'title': 'Dash Data Visualization'}, - ), - ), + dbc.Col(dcc.Graph(id="graph-3")), + dbc.Col(dcc.Graph(id="graph-4")), ] ), dbc.Row(# row with 1 bar graph [ - dbc.Col(dcc.Graph(id="graph-5", - # style={"height": "70vh", "max-height": "90vw",'title': 'Dash Data Visualization'}, - ), - ), + dbc.Col(dcc.Graph(id="graph-5")), ] ), ]) @@ -505,27 +479,10 @@ def dequantify_plotly(px_func, df, **kwargs): ) ) ], - style={"max-width": "1500px", - # "margin": "auto" - }, + style={"max-width": "1500px"}, ) -def parse_contents(contents, filename): # function for read the uploaded portfolio - content_type, content_string = contents.split(',') - decoded = base64.b64decode(content_string) - try: - if 'csv' in filename: # Assume that the user uploaded a CSV file - df = pd.read_csv(io.StringIO(decoded.decode('iso-8859-1')),sep=';') - elif 'xlsx' in filename: # Assume that the user uploaded an excel file - df = pd.read_excel(io.BytesIO(decoded)) - print(df) - return df - except Exception as e: - print(e) - - - @app.callback( [ Output("graph-2", "figure"), @@ -542,75 +499,52 @@ def parse_contents(contents, filename): # function for read the uploaded portfol Output('container-button-basic', 'children'), # Table ], [ - #Input('memory-output', 'data'), # here is our imported csv in memory Input("temp-score", "value"), - # Input("run-url", "n_clicks"), - # Input("input-url", "n_submit"), Input("sector-dropdown", "value"), Input("region-dropdown", "value"), Input("scenario-dropdown", "value"), Input('projection-method','value'), Input("scenarios-cutting", "value"), # winzorization slide - # Input('upload-data', 'contents'), # upload button commented out for now ], - [ - # State("input-url", "value"), # url functionality - # State('upload-data', 'filename'), # upload functionality # upload button commented out for now - ], ) def update_graph( - # df_store, te_sc, sec, reg, scenario, proj_meth, winz, - # list_of_contents, list_of_names, # related to upload - # url, ): global amended_portfolio_global, initial_portfolio, filt_df, temperature_score, companies, company_data, template_company_data, base_production_bm changed_id = [p['prop_id'] for p in dash.callback_context.triggered][0] # to catch which widgets were pressed - if 'upload-data' in changed_id: # if "upload new pf" button was clicked - df_portfolio = parse_contents(list_of_contents, list_of_names) - # df_portfolio = pd.read_csv(url, encoding="iso-8859-1", sep=';') - companies = ITR.utils.dataframe_to_portfolio(df_portfolio) - initial_portfolio = recalculate_individual_itr(scenario) - filt_df = initial_portfolio - amended_portfolio_global = filt_df - aggregated_scores = temperature_score.aggregate_scores(filt_df) - - else: # no new portfolio - if 'scenarios-cutting' or 'projection-method' in changed_id: # if winzorization params were changed - if proj_meth == 'median': - template_company_data.projection_controls.TREND_CALC_METHOD = staticmethod(pd.DataFrame.median) - else: - template_company_data.projection_controls.TREND_CALC_METHOD = staticmethod(pd.DataFrame.mean) - template_company_data.projection_controls.LOWER_PERCENTILE = winz[0]/100 - template_company_data.projection_controls.UPPER_PERCENTILE = winz[1]/100 - template_company_data = TemplateProviderCompany(excel_path=os.path.join(root, directory1, directory2, company_data)) - - amended_portfolio_global = recalculate_individual_itr(scenario) # we need to recalculate temperature score as we changed th - - temp_score_mask = (amended_portfolio_global.temperature_score >= Q_(te_sc[0],'delta_degC')) & (amended_portfolio_global.temperature_score <= Q_(te_sc[1],'delta_degC')) - # Dropdown filters - if sec == 'all_values': - sec_mask = (amended_portfolio_global.sector != 'dummy') # select all - else: - sec_mask = amended_portfolio_global.sector == sec - if reg == 'all_values': - reg_mask = (amended_portfolio_global.region != 'dummy') # select all + if 'scenarios-cutting' or 'projection-method' in changed_id: # if winzorization params were changed + if proj_meth == 'median': + template_company_data.projection_controls.TREND_CALC_METHOD = staticmethod(pd.DataFrame.median) else: - reg_mask = (amended_portfolio_global.region == reg) - filt_df = amended_portfolio_global.loc[temp_score_mask & sec_mask & reg_mask] # filtering - if len(filt_df) == 0: # if after filtering the dataframe is empty - raise PreventUpdate - aggregated_scores = temperature_score.aggregate_scores(filt_df) # calc temp score for companies left in pf - print("Length of filtered dataframe is {}, the portfolio score is {:.2f}".format(len(filt_df),temperature_score.aggregate_scores(filt_df).long.S1S2.all.score.m)) # portfolio score - + template_company_data.projection_controls.TREND_CALC_METHOD = staticmethod(pd.DataFrame.mean) + template_company_data.projection_controls.LOWER_PERCENTILE = winz[0]/100 + template_company_data.projection_controls.UPPER_PERCENTILE = winz[1]/100 + template_company_data = TemplateProviderCompany(excel_path=os.path.join(root, examples_dir, data_dir, company_data)) + + amended_portfolio_global = recalculate_individual_itr(scenario) # we need to recalculate temperature score as we changed th + + temp_score_mask = (amended_portfolio_global.temperature_score >= Q_(te_sc[0],'delta_degC')) & (amended_portfolio_global.temperature_score <= Q_(te_sc[1],'delta_degC')) + # Dropdown filters + if sec == 'all_values': + sec_mask = (amended_portfolio_global.sector != 'dummy') # select all + else: + sec_mask = amended_portfolio_global.sector == sec + if reg == 'all_values': + reg_mask = (amended_portfolio_global.region != 'dummy') # select all + else: + reg_mask = (amended_portfolio_global.region == reg) + filt_df = amended_portfolio_global.loc[temp_score_mask & sec_mask & reg_mask] # filtering + if len(filt_df) == 0: # if after filtering the dataframe is empty + raise PreventUpdate + aggregated_scores = temperature_score.aggregate_scores(filt_df) # calc temp score for companies left in pf # Scatter plot fig1 = dequantify_plotly (px.scatter, filt_df, x="cumulative_target", y="cumulative_budget", @@ -631,7 +565,7 @@ def update_graph( "Covered only
      by emissions", "Covered by
      emissions and targets")) dfg=coverage.groupby('coverage_category').count().reset_index() - dfg['portfolio']='Portfolio' # 1 column to have just 1 bar. I didn't figure out how to do it more ellegant + dfg['portfolio']='Portfolio' fig5 = dequantify_plotly (px.bar, dfg, x='portfolio',y="company_id", color="coverage_category",text='company_id',title="Coverage of companies in portfolio") fig5.update_xaxes(visible=False) # hide axis fig5.update_yaxes(visible=False) # hide axis @@ -760,7 +694,7 @@ def reset_filters(n_clicks_reset, scenario): ProjectionControls.TREND_CALC_METHOD=staticmethod(pd.DataFrame.median) ProjectionControls.LOWER_PERCENTILE = 0.1 ProjectionControls.UPPER_PERCENTILE = 0.9 - template_company_data = TemplateProviderCompany(excel_path=os.path.join(root, directory1, directory2, company_data)) + template_company_data = TemplateProviderCompany(excel_path=os.path.join(root, examples_dir, data_dir, company_data)) amended_portfolio_global = recalculate_individual_itr(scenario) initial_portfolio = amended_portfolio_global From 150b14bcc742e288af5f926f9c030512095aabe6 Mon Sep 17 00:00:00 2001 From: David Kroon <35101727+dp90@users.noreply.github.com> Date: Fri, 17 Jun 2022 12:00:28 +0200 Subject: [PATCH 254/345] Revert "Merge branch 'develop-logging' into develop" This reverts commit 487e7265e65dc619ce35aa4db9bbbac161909755, reversing changes made to 49e828699aa5153e82baee0eafbc6c664cc54da0. Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- ITR/configs.py | 17 +--- ITR/data/base_providers.py | 166 +++++++++++++++------------------ ITR/data/data_warehouse.py | 26 ++++-- ITR/data/excel.py | 134 +++++++++++++++------------ ITR/data/template.py | 180 +++++++++++++++++++----------------- ITR/interfaces.py | 8 +- ITR/utils.py | 21 +---- test/test_base_providers.py | 7 +- test/test_excel_provider.py | 3 +- test/test_interfaces.py | 30 +----- 10 files changed, 272 insertions(+), 320 deletions(-) diff --git a/ITR/configs.py b/ITR/configs.py index 119afb90..ec6eb432 100644 --- a/ITR/configs.py +++ b/ITR/configs.py @@ -2,8 +2,6 @@ This file defines the constants used throughout the different classes. In order to redefine these settings whilst using the module, extend the respective config class and pass it to the class as the "constants" parameter. """ -import logging - from .interfaces import TemperatureScoreControls import pint @@ -121,8 +119,7 @@ class TargetConfig: TARGET_BASE_UNITS = 'target_base_year_unit' TARGET_YEAR = 'target_year' TARGET_REDUCTION_VS_BASE = 'target_reduction_ambition' - - + class TabsConfig: FUNDAMENTAL = "fundamental_data" PROJECTED_EI = "projected_ei_in_Wh" @@ -149,15 +146,3 @@ class TemperatureScoreConfig(PortfolioAggregationConfig): carbon_conversion=Q_(3664.0, ureg('Gt CO2')), scenario_target_temperature=Q_(1.5, ureg.delta_degC) ) - - -class LoggingConfig: - FORMAT = '%(asctime)s - %(name)s - %(levelname)s - %(message)s' - - @classmethod - def add_config_to_logger(cls, logger: logging.Logger): - logger.setLevel(logging.INFO) - formatter = logging.Formatter(cls.FORMAT) - stream_handler = logging.StreamHandler() - stream_handler.setFormatter(formatter) - logger.addHandler(stream_handler) diff --git a/ITR/data/base_providers.py b/ITR/data/base_providers.py index bdd1b63b..0ace4f68 100644 --- a/ITR/data/base_providers.py +++ b/ITR/data/base_providers.py @@ -1,12 +1,12 @@ -import warnings # needed until quantile behaves better with Pint quantities in arrays +import warnings # needed until quantile behaves better with Pint quantities in arrays import numpy as np import pandas as pd from functools import reduce, partial +from pandas._libs.missing import NAType from typing import List, Type, Dict -import logging from ITR.data.osc_units import Q_, PA_ -from ITR.configs import ColumnsConfig, TemperatureScoreConfig, VariablesConfig, LoggingConfig +from ITR.configs import ColumnsConfig, TemperatureScoreConfig, VariablesConfig from ITR.data.data_providers import CompanyDataProvider, ProductionBenchmarkDataProvider, \ IntensityBenchmarkDataProvider from ITR.interfaces import ICompanyData, EScope, IProductionBenchmarkScopes, IEIBenchmarkScopes, \ @@ -14,11 +14,11 @@ IHistoricEmissionsScopes, IProductionRealization, ITargetData, IHistoricData, ICompanyEIProjection, \ IEmissionRealization, IntensityMetric, ProjectionControls -# TODO handling of scopes in benchmarks -logger = logging.getLogger(__name__) -LoggingConfig.add_config_to_logger(logger) +# TODO handling of scopes in benchmarks +# This is actual output production (whatever the output production units may be). +# Not to be confused with the term "projected production" as it relates to energy intensity. class BaseProviderProductionBenchmark(ProductionBenchmarkDataProvider): @@ -43,8 +43,9 @@ def _convert_benchmark_to_series(self, benchmark: IBenchmark) -> pd.Series: :param scope: a scope :return: pd.Series """ - return pd.Series({r.year: r.value for r in benchmark.projections}, name=(benchmark.region, benchmark.sector), - dtype=f'pint[{benchmark.benchmark_metric.units}]') + with warnings.catch_warnings(): + warnings.simplefilter("ignore") + return pd.Series({r.year: r.value for r in benchmark.projections}, name=(benchmark.region, benchmark.sector)) # Production benchmarks are dimensionless. S1S2 has nothing to do with any company data. # It's a label in the top-level of benchmark data. Currently S1S2 is the only label with any data. @@ -72,7 +73,7 @@ def get_company_projected_production(self, company_sector_region_info: pd.DataFr benchmark_production_projections = self.get_benchmark_projections(company_sector_region_info) company_production = company_sector_region_info[self.column_config.BASE_YEAR_PRODUCTION] return benchmark_production_projections.add(1).cumprod(axis=1).mul( - company_production, axis=0) + company_production, axis=0) def get_benchmark_projections(self, company_sector_region_info: pd.DataFrame, scope: EScope = EScope.S1S2) -> pd.DataFrame: @@ -149,8 +150,7 @@ def _convert_benchmark_to_series(self, benchmark: IBenchmark) -> pd.Series: :param scope: a scope :return: pd.Series """ - return pd.Series({p.year: p.value for p in benchmark.projections}, name=(benchmark.region, benchmark.sector), - dtype=f'pint[{benchmark.benchmark_metric.units}]') + return pd.Series({p.year: p.value for p in benchmark.projections}, name=(benchmark.region, benchmark.sector), dtype=f'pint[{benchmark.benchmark_metric.units}]') def _get_projected_intensities(self, scope: EScope = EScope.S1S2) -> pd.DataFrame: """ @@ -158,13 +158,13 @@ def _get_projected_intensities(self, scope: EScope = EScope.S1S2) -> pd.DataFram :param scope: a scope :return: pd.DataFrame """ - results = [] - for bm in self._EI_benchmarks.__getattribute__(str(scope)).benchmarks: - results.append(self._convert_benchmark_to_series(bm)) - with warnings.catch_warnings(): - # pd.DataFrame.__init__ (in pandas/core/frame.py) ignores the beautiful dtype information adorning the pd.Series list elements we are providing. Sad! - warnings.simplefilter("ignore") - df_bm = pd.DataFrame(results) + result = [] + for bm in self._EI_benchmarks.dict()[str(scope)]['benchmarks']: + result.append(self._convert_benchmark_to_series(IBenchmark.parse_obj(bm))) + with warnings.catch_warnings(): + # pd.DataFrame.__init__ (in pandas/core/frame.py) ignores the beautiful dtype information adorning the pd.Series list elements we are providing. Sad! + warnings.simplefilter("ignore") + df_bm = pd.DataFrame(result) df_bm.index.names = [self.column_config.REGION, self.column_config.SECTOR] return df_bm @@ -211,18 +211,13 @@ def __init__(self, self._companies = self._validate_projected_trajectories(companies) def _validate_projected_trajectories(self, companies: List[ICompanyData]) -> List[ICompanyData]: - companies_without_data = [c.company_id for c in companies if - not c.historic_data and not c.projected_intensities] - if companies_without_data: - error_message = f"Provide either historic emission data or projections for companies with " \ - f"IDs {companies_without_data}" - logger.error(error_message) - raise ValueError(error_message) + companies_without_data = [c.company_id for c in companies if not c.historic_data and not c.projected_intensities] + assert not companies_without_data, \ + f"Provide either historic emission data or projections for companies with IDs {companies_without_data}" companies_without_projections = [c for c in companies if not c.projected_intensities] if companies_without_projections: companies_with_projections = [c for c in companies if c.projected_intensities] - return companies_with_projections + EITrajectoryProjector(self.projection_controls).project_ei_trajectories( - companies_without_projections) + return companies_with_projections + EITrajectoryProjector(self.projection_controls).project_ei_trajectories(companies_without_projections) else: return companies @@ -242,17 +237,17 @@ def _convert_projections_to_series(self, company: ICompanyData, feature: str, projections = company_dict[feature][scope.name]['projections'] else: scopes = scope.value.split('+') - projection_scopes = {s: company_dict[feature][s]['projections'] for s in scopes if company_dict[feature][s]} - if len(projection_scopes) > 1: + projection_scopes = {s:company_dict[feature][s]['projections'] for s in scopes if company_dict[feature][s]} + if len(projection_scopes)>1: projection_series = {} for s in scopes: projection_series[s] = pd.Series( - {p['year']: p['value'] for p in company_dict[feature][s]['projections']}, - name=company.company_id, dtype=f'pint[{emissions_units}/{production_units}]') + {p['year']: p['value'] for p in company_dict[feature][s]['projections'] }, + name=company.company_id, dtype=f'pint[{emissions_units}/{production_units}]') series_adder = partial(pd.Series.add, fill_value=0) res = reduce(series_adder, projection_series.values()) return res - elif len(projection_scopes) == 0: + elif len(projection_scopes)==0: raise ValueError(f"missing target scope data for {company.company_name} :: {scope}") else: # This clause is only accessed if the scope is S1S2 or S1S2S3 of which only one scope is provided. @@ -275,8 +270,7 @@ def _calculate_target_projections(self, production_bm: BaseProviderProductionBen elif c.target_data is None: raise ValueError(f"no target data for {c.company_name}") else: - base_year_production = next((p.value for p in c.historic_data.productions if - p.year == self.temp_config.CONTROLS_CONFIG.base_year), None) + base_year_production = next((p.value for p in c.historic_data.productions if p.year == self.temp_config.CONTROLS_CONFIG.base_year), None) with warnings.catch_warnings(): warnings.simplefilter("ignore") company_sector_region_info = pd.DataFrame({ @@ -313,9 +307,8 @@ def get_company_data(self, company_ids: List[str]) -> List[ICompanyData]: company_data = [company for company in self._companies if company.company_id in company_ids] if len(company_data) is not len(company_ids): - missing_ids = [c_id for c_id in company_ids if c_id not in [c.company_id for c in company_data]] - logger.warning(f"Companies not found in fundamental data and excluded from further computations: " - f"{missing_ids}") + missing_ids = [company.company_id for company in self._companies if company.company_id not in company_ids] + assert not missing_ids, f"Company IDs not found in fundamental data: {missing_ids}" return company_data @@ -352,8 +345,7 @@ def get_company_fundamentals(self, company_ids: List[str]) -> pd.DataFrame: """ return pd.DataFrame.from_records( [ICompanyData.parse_obj(c.dict()).dict() for c in self.get_company_data(company_ids)], - exclude=['projected_targets', 'projected_intensities', 'historic_data']).set_index( - self.column_config.COMPANY_ID) + exclude=['projected_targets', 'projected_intensities', 'historic_data']).set_index(self.column_config.COMPANY_ID) def get_company_projected_trajectories(self, company_ids: List[str]) -> pd.DataFrame: """ @@ -361,7 +353,7 @@ def get_company_projected_trajectories(self, company_ids: List[str]) -> pd.DataF :return: A pandas DataFrame with projected intensity trajectories per company, indexed by company_id """ trajectory_list = [self._convert_projections_to_series(c, self.column_config.PROJECTED_EI) for c in - self.get_company_data(company_ids)] + self.get_company_data(company_ids)] if trajectory_list: with warnings.catch_warnings(): # pd.DataFrame.__init__ (in pandas/core/frame.py) ignores the beautiful dtype information adorning the pd.Series list elements we are providing. Sad! @@ -401,8 +393,7 @@ def project_ei_trajectories(self, companies: List[ICompanyData]) -> List[ICompan historic_years = [column for column in historic_data.columns if type(column) == int] projection_years = range(max(historic_years), self.projection_controls.TARGET_YEAR) - historic_intensities = historic_data[historic_years].query( - f"variable=='{VariablesConfig.EMISSIONS_INTENSITIES}'") + historic_intensities = historic_data[historic_years].query(f"variable=='{VariablesConfig.EMISSIONS_INTENSITIES}'") standardized_intensities = self._standardize(historic_intensities) intensity_trends = self._get_trends(standardized_intensities) extrapolated = self._extrapolate(intensity_trends, projection_years, historic_data) @@ -423,7 +414,7 @@ def _extract_historic_data(self, companies: List[ICompanyData]) -> pd.DataFrame: data.extend(self._historic_ei_to_dicts(company.company_id, company.historic_data.emissions_intensities)) if not data: - logger.error(f"No historic data for companies: {[c.company_id for c in companies]}") + print(companies) raise ValueError("No historic data anywhere") return pd.DataFrame.from_records(data).set_index( [ColumnsConfig.COMPANY_ID, ColumnsConfig.VARIABLE, ColumnsConfig.SCOPE]) @@ -448,9 +439,8 @@ def _historic_ei_to_dicts(self, id: str, intensities_scopes: IHistoricEIScopes) for scope, intensities in intensities_scopes.dict().items(): if intensities: intsties = {intsty['year']: intsty['value'] for intsty in intensities} - data.append( - {ColumnsConfig.COMPANY_ID: id, ColumnsConfig.VARIABLE: VariablesConfig.EMISSIONS_INTENSITIES, - ColumnsConfig.SCOPE: scope, **intsties}) + data.append({ColumnsConfig.COMPANY_ID: id, ColumnsConfig.VARIABLE: VariablesConfig.EMISSIONS_INTENSITIES, + ColumnsConfig.SCOPE: scope, **intsties}) return data def _compute_missing_historic_ei(self, companies, historic_data): @@ -493,19 +483,15 @@ def _compute_missing_historic_ei(self, companies, historic_data): this_missing_data.append(f"{company.company_id} - {scope}") if this_missing_data and append_this_missing_data: missing_data.extend(this_missing_data) - if missing_data: - error_message = f"Provide either historic emissions intensity data, or historic emission and " \ - f"production data for these company - scope combinations: {missing_data}" - logger.error(error_message) - raise ValueError(error_message) + assert not missing_data, f"Provide either historic emissions intensity data, or historic emission and " \ + f"production data for these company - scope combinations: {missing_data}" def _add_projections_to_companies(self, companies: List[ICompanyData], extrapolations: pd.DataFrame): for company in companies: scope_projections = {} scope_dfs = {} for scope in ICompanyEIProjectionsScopes.__fields__: - if not company.historic_data.emissions_intensities or not company.historic_data.emissions_intensities.__getattribute__( - scope): + if not company.historic_data.emissions_intensities or not company.historic_data.emissions_intensities.__getattribute__(scope): scope_projections[scope] = None continue results = extrapolations.loc[(company.company_id, VariablesConfig.EMISSIONS_INTENSITIES, scope)] @@ -513,28 +499,31 @@ def _add_projections_to_companies(self, companies: List[ICompanyData], extrapola scope_dfs[scope] = results.astype(f"pint[{units}]") projections = [IProjection(year=year, value=value) for year, value in results.items() if year >= TemperatureScoreConfig.CONTROLS_CONFIG.base_year] - scope_projections[scope] = ICompanyEIProjections(ei_metric={'units': units}, projections=projections) + scope_projections[scope] = ICompanyEIProjections(ei_metric={'units':units}, projections=projections) if scope_projections.get('S1') and scope_projections.get('S2') and not scope_projections.get('S1S2'): results = scope_dfs['S1'] + scope_dfs['S2'] units = f"{results.values[0].u:~P}" projections = [IProjection(year=year, value=value) for year, value in results.items() if year >= TemperatureScoreConfig.CONTROLS_CONFIG.base_year] - scope_projections['S1S2'] = ICompanyEIProjections(ei_metric={'units': units}, projections=projections) + scope_projections['S1S2'] = ICompanyEIProjections(ei_metric={'units':units}, projections=projections) company.projected_intensities = ICompanyEIProjectionsScopes(**scope_projections) + def _standardize(self, intensities: pd.DataFrame) -> pd.DataFrame: # When columns are years and rows are all different intensity types, we cannot winsorize # Transpose the dataframe, winsorize the columns (which are all coherent because they belong to a single variable/company), then transpose again - intensities = intensities.T + intensities = intensities.T#.loc[2016:2020] for col in intensities.columns: s = intensities[col] ei_units = f"{s.loc[s.first_valid_index()].u:~P}" if s.notnull().any(): with warnings.catch_warnings(): warnings.simplefilter("ignore") - intensities[col] = s.map(lambda x: Q_(np.nan, ei_units) - if x.m is np.nan or x.m is pd.NA else x).astype(f"pint[{ei_units}]") - + try: + intensities[col] = s.map(lambda x: Q_(np.nan, ei_units) + if x.m is np.nan or x.m is pd.NA else x).astype(f"pint[{ei_units}]") + except TypeError as e: + print(e) winsorized_intensities: pd.DataFrame = self._winsorize(intensities) for col in winsorized_intensities.columns: winsorized_intensities[col] = winsorized_intensities[col].astype(intensities[col].dtype) @@ -552,10 +541,8 @@ def _winsorize(self, historic_intensities: pd.DataFrame) -> pd.DataFrame: # See https://github.com/hgrecco/pint-pandas/issues/114 winsorized: pd.DataFrame = historic_intensities.clip( # Must set numeric_only to false to process Quantities - lower=historic_intensities.quantile(q=self.projection_controls.LOWER_PERCENTILE, axis='index', - numeric_only=False), - upper=historic_intensities.quantile(q=self.projection_controls.UPPER_PERCENTILE, axis='index', - numeric_only=False), + lower=historic_intensities.quantile(q=self.projection_controls.LOWER_PERCENTILE, axis='index', numeric_only=False), + upper=historic_intensities.quantile(q=self.projection_controls.UPPER_PERCENTILE, axis='index', numeric_only=False), axis='columns' ) return winsorized @@ -568,20 +555,21 @@ def _interpolate(self, historic_intensities: pd.DataFrame) -> pd.DataFrame: continue qty = interpolated[col].values.quantity s = pd.Series(data=qty.m, index=interpolated.index) - interpolated[col] = pd.Series(PA_(s.interpolate(method='linear', inplace=False, limit_direction='forward'), - dtype=f"{qty.u:~P}"), index=interpolated.index) + interpolated[col] = pd.Series(PA_(s.interpolate(method='linear', inplace=False, limit_direction='forward'), f"{qty.u:~P}"), index=interpolated.index) return interpolated def _get_trends(self, intensities: pd.DataFrame): # Compute year-on-year growth ratios of emissions intensities + # Transpose so we can work with homogeneous units in columns. This means rows are years. + # pd.Series(intensities.iloc[:,0].values.quantity.m).rolling(window=2, axis='index', closed='right').apply(func=self._year_on_year_ratio, raw=True) intensities = intensities.T for col in intensities.columns: # ratios are dimensionless, so get rid of units, which confuse rolling/apply. Some columns are NaN-only intensities[col] = intensities[col].map(lambda x: x if isinstance(x, float) else x.m) # TODO: do we want to fillna(0) or dropna()? ratios: pd.DataFrame = intensities.rolling(window=2, axis='index', closed='right') \ - .apply(func=self._year_on_year_ratio, raw=True) # .dropna(how='all',axis=0) # .fillna(0) + .apply(func=self._year_on_year_ratio, raw=True) # .dropna(how='all',axis=0) # .fillna(0) trends: pd.DataFrame = self.projection_controls.TREND_CALC_METHOD(ratios, axis='index', skipna=True).clip( lower=self.projection_controls.LOWER_DELTA, @@ -593,8 +581,8 @@ def _extrapolate(self, trends: pd.DataFrame, projection_years: range, historic_d projected_intensities = historic_data.loc[historic_data.index.intersection(trends.index)].copy() # We need to do a mini-extrapolation if we don't have complete historic data for year in historic_data.columns.tolist()[:-1]: - m = projected_intensities[year + 1].apply(lambda x: np.isnan(x.m)) - projected_intensities.loc[m, year + 1] = projected_intensities.loc[m, year] * (1 + trends.loc[m]) + m = projected_intensities[year+1].apply(lambda x: np.isnan(x.m)) + projected_intensities.loc[m,year+1] = projected_intensities.loc[m,year] * (1 + trends.loc[m]) # Now the big extrapolation for year in projection_years: @@ -616,7 +604,6 @@ class EITargetProjector(object): for a specific company, in a specific sector. If we want to project targets for multiple sectors, we have to call it multiple times. This function doesn't need to know what sector it's computing for...only tha there is only one such, for however many scopes. """ - def __init__(self): pass @@ -629,13 +616,11 @@ def _normalize_scope_targets(self, scope_targets): # This sorts targets into ascending target years and descending start years unique_target_years.sort(key=lambda t: (t[0], -t[1])) # Pick the first target year most recently articulated, preserving ascending order of target yeares - unique_target_years = [(uk, next(v for k, v in unique_target_years if k == uk)) for uk in - dict(unique_target_years).keys()] + unique_target_years = [(uk,next(v for k,v in unique_target_years if k == uk)) for uk in dict(unique_target_years).keys()] # Now use those pairs to select just the targets we want unique_scope_targets = [unique_targets[0] for unique_targets in \ - [[target for target in scope_targets if - (target.target_end_year, target.target_start_year) == u] \ - for u in unique_target_years]] + [ [target for target in scope_targets if (target.target_end_year, target.target_start_year)==u] \ + for u in unique_target_years ]] unique_scope_targets.sort(key=lambda target: (target.target_end_year)) # We only trust the most recently communicated netzero target, but prioritize the most recently communicated, most aggressive target @@ -662,18 +647,15 @@ def project_ei_targets(self, company: ICompanyData, production_bm: pd.Series) -> if not scope_targets: continue netzero_year = max([t.netzero_year for t in scope_targets if t.netzero_year] + [0]) - scope_targets_intensity = self._normalize_scope_targets( - [target for target in scope_targets if target.target_type == "intensity"]) - scope_targets_absolute = self._normalize_scope_targets( - [target for target in scope_targets if target.target_type == "absolute"]) + scope_targets_intensity = self._normalize_scope_targets([target for target in scope_targets if target.target_type=="intensity"]) + scope_targets_absolute = self._normalize_scope_targets([target for target in scope_targets if target.target_type=="absolute"]) while scope_targets_intensity or scope_targets_absolute: if scope_targets_intensity and scope_targets_absolute: target_i = scope_targets_intensity[0] target_a = scope_targets_absolute[0] - if target_i.target_end_year == target_a.target_end_year: - if target_i.target_start_year == target_a.target_start_year: - warnings.warn( - f"intensity target overrides absolute target for target_start_year={target_i.target_start_year} and target_end_year={target_i.target_end_year}") + if target_i.target_end_year==target_a.target_end_year: + if target_i.target_start_year==target_a.target_start_year: + warnings.warn(f"intensity target overrides absolute target for target_start_year={target_i.target_start_year} and target_end_year={target_i.target_end_year}") scope_targets_absolute.pop(0) scope_targets = scope_targets_intensity elif target_i.target_start_year > target_a.target_start_year: @@ -688,7 +670,7 @@ def project_ei_targets(self, company: ICompanyData, production_bm: pd.Series) -> scope_targets = scope_targets_absolute elif not scope_targets_intensity: scope_targets = scope_targets_absolute - else: # not scope_targets_absolute + else: # not scope_targets_absolute scope_targets = scope_targets_intensity target = scope_targets.pop(0) @@ -730,7 +712,7 @@ def project_ei_targets(self, company: ICompanyData, production_bm: pd.Series) -> ei_projection_scopes[scope].projections.extend(ei_projections) else: ei_projection_scopes[scope] = ICompanyEIProjections(projections=ei_projections, - ei_metric=IntensityMetric.parse_obj({'units': target.target_base_year_unit})) + ei_metric=IntensityMetric.parse_obj({'units':target.target_base_year_unit})) elif target.target_type == "absolute": # Complicated case, the target must be switched from absolute value to intensity. # We use the benchmark production data @@ -770,8 +752,7 @@ def project_ei_targets(self, company: ICompanyData, production_bm: pd.Series) -> emissions_projections = [value_last_year * (1 + CAGR) ** (y + 1) for y, year in enumerate(range(last_year + 1, target_year + 1))] - emissions_projections = pd.Series(emissions_projections, - index=range(last_year + 1, target_year + 1), + emissions_projections = pd.Series(emissions_projections, index=range(last_year + 1, target_year + 1), dtype=f'pint[{target.target_base_year_unit}]') production_projections = production_bm.loc[last_year + 1: target_year] ei_projections = emissions_projections / production_projections @@ -785,8 +766,7 @@ def project_ei_targets(self, company: ICompanyData, production_bm: pd.Series) -> ei_projection_scopes[scope].projections.extend(ei_projections) else: ei_projection_scopes[scope] = ICompanyEIProjections(projections=ei_projections, - ei_metric=IntensityMetric.parse_obj( - {'units': f"{target_value.u:~P}"})) + ei_metric=IntensityMetric.parse_obj({'units':f"{target_value.u:~P}"})) else: # No target (type) specified ei_projection_scopes[scope] = None @@ -799,7 +779,7 @@ def project_ei_targets(self, company: ICompanyData, production_bm: pd.Series) -> # Let a later target set the netzero year continue # TODO What if target is a 100% reduction. Does it work whether or not netzero_year is set? - if netzero_year > target_year: # add in netzero target at the end + if netzero_year > target_year: # add in netzero target at the end netzero_qty = Q_(0, target_value.u) CAGR = self._compute_CAGR(target_value, netzero_qty, (netzero_year - target_year)) ei_projections = [ICompanyEIProjection(year=year, value=target_value * (1 + CAGR) ** (y + 1)) @@ -812,7 +792,7 @@ def project_ei_targets(self, company: ICompanyData, production_bm: pd.Series) -> ei_projection_scopes[scope].projections.extend( [ICompanyEIProjection(year=year, value=target_value) for y, year in enumerate(range(1 + target_year, 1 + 2050))] - ) + ) return ICompanyEIProjectionsScopes(**ei_projection_scopes) @@ -828,7 +808,7 @@ def _compute_CAGR(self, first, last, period): # TODO: Replace ugly fix => pint unit error in below expression # CAGR doesn't work well with 100% reduction, so set it to small if last == 0: - last = first / 201.0 + last = first/201.0 elif last > first: # If we have a slack target, i.e., target goal is actually above current data, clamp so CAGR computes as zero last = first @@ -836,9 +816,9 @@ def _compute_CAGR(self, first, last, period): res = (last / first).to_base_units().magnitude ** (1 / period) - 1 except ZeroDivisionError as e: if last > 0: - logger.warning("last > 0 and first==0 in CAGR...setting CAGR to 0-.5") + print("last > 0 and first==0 in CAGR...setting CAGR to 0-.5") res = -0.5 else: # It's all zero from here on out...clamp down on any emissions that poke up res = -1 - return res + return res \ No newline at end of file diff --git a/ITR/data/data_warehouse.py b/ITR/data/data_warehouse.py index 90c91afa..782c53b4 100644 --- a/ITR/data/data_warehouse.py +++ b/ITR/data/data_warehouse.py @@ -1,17 +1,20 @@ -import warnings # needed until apply behaves better with Pint quantities in arrays -import logging -import pandas as pd -import numpy as np +import warnings # needed until apply behaves better with Pint quantities in arrays + from abc import ABC -from typing import List, Type +from typing import List +import pandas as pd from pydantic import ValidationError +import numpy as np + +import pint +import pint_pandas +from ITR.data.osc_units import ureg, Q_, PA_ from ITR.interfaces import ICompanyAggregates from ITR.data.data_providers import CompanyDataProvider, ProductionBenchmarkDataProvider, IntensityBenchmarkDataProvider -from ITR.configs import ColumnsConfig, TemperatureScoreConfig, LoggingConfig - -logger = logging.getLogger(__name__) -LoggingConfig.add_config_to_logger(logger) +from ITR.configs import ColumnsConfig, TemperatureScoreConfig +from typing import Type +import logging class DataWarehouse(ABC): @@ -48,6 +51,8 @@ def get_preprocessed_company_data(self, company_ids: List[str]) -> List[ICompany """ company_data = self.company_data.get_company_data(company_ids) df_company_data = pd.DataFrame.from_records([c.dict() for c in company_data]).set_index(self.column_config.COMPANY_ID, drop=False) + assert pd.Series(company_ids).isin(df_company_data.index).all(), \ + "some of the company ids are not included in the fundamental data" company_info_at_base_year = self.company_data.get_company_intensity_and_production_at_base_year(company_ids) projected_production = self.benchmark_projected_production.get_company_projected_production( @@ -91,6 +96,7 @@ def _convert_df_to_model(self, df_company_data: pd.DataFrame) -> List[ICompanyAg :param df_company_data: pandas Dataframe with targets :return: A list containing the targets """ + logger = logging.getLogger(__name__) df_company_data = df_company_data.where(pd.notnull(df_company_data), None).replace( {np.nan: None}) # set NaN to None since NaN is float instance companies_data_dict = df_company_data.to_dict(orient="records") @@ -98,7 +104,7 @@ def _convert_df_to_model(self, df_company_data: pd.DataFrame) -> List[ICompanyAg for company_data in companies_data_dict: try: model_companies.append(ICompanyAggregates.parse_obj(company_data)) - except ValidationError: + except ValidationError as e: logger.warning( "(one of) the input(s) of company %s is invalid and will be skipped" % company_data[ self.column_config.COMPANY_NAME]) diff --git a/ITR/data/excel.py b/ITR/data/excel.py index 93988d9c..aba378bf 100644 --- a/ITR/data/excel.py +++ b/ITR/data/excel.py @@ -1,56 +1,48 @@ import warnings # needed until apply behaves better with Pint quantities in arrays -from typing import Type, List, Optional +from typing import Type, List, Union, Optional import pandas as pd import numpy as np + from pint import Quantity +# from pint_pandas import PintArray + import pint -import logging +import pint_pandas +ureg = pint.get_application_registry() +Q_ = ureg.Quantity +# PA_ = pint_pandas.PintArray from pydantic import ValidationError from ITR.data.base_providers import BaseCompanyDataProvider, BaseProviderProductionBenchmark, \ BaseProviderIntensityBenchmark -from ITR.configs import ColumnsConfig, TemperatureScoreConfig, VariablesConfig, TabsConfig, LoggingConfig +from ITR.configs import ColumnsConfig, TemperatureScoreConfig, SectorsConfig, VariablesConfig, TabsConfig from ITR.interfaces import BaseModel, ICompanyData, ICompanyEIProjection, EScope, IEIBenchmarkScopes, \ IProductionBenchmarkScopes, IBenchmark, IBenchmarks, IHistoricEmissionsScopes, \ IProductionRealization, IHistoricEIScopes, IHistoricData, IEmissionRealization, IEIRealization, IProjection -logger = logging.getLogger(__name__) -LoggingConfig.add_config_to_logger(logger) - -ureg = pint.get_application_registry() -Q_ = ureg.Quantity - +import logging +import inspect # Excel spreadsheets don't have units elaborated, so we translate sectors to units -sector_to_production_metric = {'Electricity Utilities': 'GJ', 'Steel': 'Fe_ton'} -sector_to_intensity_metric = {'Electricity Utilities': 't CO2/MWh', 'Steel': 't CO2/Fe_ton'} +sector_to_production_metric = { 'Electricity Utilities':'GJ', 'Steel':'Fe_ton' } +sector_to_intensity_metric = { 'Electricity Utilities':'t CO2/MWh', 'Steel':'t CO2/Fe_ton' } # TODO: Force validation for excel benchmarks # Utils functions: -def convert_dimensionless_benchmark_excel_to_model(df_excel: dict, sheetname: str, column_name_region: str, +def convert_dimensionless_benchmark_excel_to_model(df_excel: pd.DataFrame, sheetname: str, column_name_region: str, column_name_sector: str) -> IBenchmarks: """ Converts excel into IBenchmarks - :param df_excel: dictionary with a pd.DataFrame for each key representing a sheet of an Excel file - :param sheetname: name of Excel file sheet to convert - :param column_name_region: name of region - :param column_name_sector: name of sector + :param excal_path: file path to excel :return: IBenchmarks instance (list of IBenchmark) """ - try: - df_sheet = df_excel[sheetname] - except KeyError: - logger.error(f"Sheet {sheetname} not in benchmark Excel file.") - raise - - df_ei_bms = df_sheet.reset_index().drop(columns=['index']).set_index( + df_ei_bms = df_excel[sheetname].reset_index().drop(columns=['index']).set_index( [column_name_region, column_name_sector]) - result = [] for index, row in df_ei_bms.iterrows(): - bm = IBenchmark(region=index[0], sector=index[1], benchmark_metric={'units': 'dimensionless'}, + bm = IBenchmark(region=index[0], sector=index[1], benchmark_metric={'units':'dimensionless'}, projections=[IProjection(year=int(k), value=Q_(v, ureg('dimensionless'))) for k, v in row.items()]) result.append(bm) return IBenchmarks(benchmarks=result) @@ -84,13 +76,23 @@ def __init__(self, excel_path: str, column_config: Type[ColumnsConfig] = Columns :param tempscore_config: An optional TemperatureScoreConfig object containing temperature scoring settings """ self.benchmark_excel = pd.read_excel(excel_path, sheet_name=None, skiprows=0) + self._check_sector_data() self._convert_excel_to_model = convert_dimensionless_benchmark_excel_to_model production_bms = self._convert_excel_to_model(self.benchmark_excel, TabsConfig.PROJECTED_PRODUCTION, column_config.REGION, column_config.SECTOR) super().__init__( - IProductionBenchmarkScopes(benchmark_metric={'units': 'dimensionless'}, S1S2=production_bms), column_config, + IProductionBenchmarkScopes(benchmark_metric={'units':'dimensionless'}, S1S2=production_bms), column_config, tempscore_config) + def _check_sector_data(self) -> None: + """ + Checks if the sector data excel contains the data in the right format + + :return: None + """ + assert pd.Series([TabsConfig.PROJECTED_PRODUCTION, TabsConfig.PROJECTED_EI]).isin( + self.benchmark_excel.keys()).all(), "some tabs are missing in the sector data excel" + def _get_projected_production(self, scope: EScope = EScope.S1S2) -> pd.DataFrame: """ interface from excel file and internally used DataFrame @@ -107,6 +109,7 @@ def __init__(self, excel_path: str, benchmark_temperature: Quantity['delta_degC' column_config: Type[ColumnsConfig] = ColumnsConfig, tempscore_config: Type[TemperatureScoreConfig] = TemperatureScoreConfig): self.benchmark_excel = pd.read_excel(excel_path, sheet_name=None, skiprows=0) + self._check_sector_data() self._convert_excel_to_model = convert_intensity_benchmark_excel_to_model EI_benchmarks = self._convert_excel_to_model(self.benchmark_excel, TabsConfig.PROJECTED_EI, column_config.REGION, column_config.SECTOR) @@ -119,6 +122,14 @@ def __init__(self, excel_path: str, benchmark_temperature: Quantity['delta_degC' column_config, tempscore_config) + def _check_sector_data(self) -> None: + """ + Checks if the sector data excel contains the data in the right format + :return: None + """ + assert pd.Series([TabsConfig.PROJECTED_PRODUCTION, TabsConfig.PROJECTED_EI]).isin( + self.benchmark_excel.keys()).all(), "some tabs are missing in the sector data excel" + class ExcelProviderCompany(BaseCompanyDataProvider): """ @@ -135,21 +146,17 @@ def __init__(self, excel_path: str, column_config: Type[ColumnsConfig] = Columns self.historic_years = None super().__init__(self._companies, column_config, tempscore_config) - def _check_company_data(self, company_tabs: dict) -> None: + def _check_company_data(self, df: pd.DataFrame) -> None: """ Checks if the company data excel contains the data in the right format :return: None """ - required_tabs = {TabsConfig.FUNDAMENTAL, TabsConfig.PROJECTED_TARGET} - optional_tabs = {TabsConfig.PROJECTED_EI, TabsConfig.HISTORIC_DATA} - missing_tabs = (required_tabs | optional_tabs).difference(set(company_tabs)) - if missing_tabs.intersection(required_tabs): - logger.error(f"Tabs {required_tabs} are required.") - raise ValueError(f"Tabs {required_tabs} are required.") - if optional_tabs.issubset(missing_tabs): - logger.error(f"Either of the tabs {optional_tabs} is required.") - raise ValueError(f"Either of the tabs {optional_tabs} is required.") + required_tabs = [TabsConfig.FUNDAMENTAL, TabsConfig.PROJECTED_TARGET] + optional_tabs = [TabsConfig.PROJECTED_EI, TabsConfig.HISTORIC_DATA] + missing_tabs = [tab for tab in required_tabs + optional_tabs if tab not in df] + assert not any(tab in missing_tabs for tab in required_tabs), f"Tabs {required_tabs} are required." + assert not all(tab in missing_tabs for tab in optional_tabs), f"Either of the tabs {optional_tabs} is required." def _convert_from_excel_data(self, excel_path: str) -> List[ICompanyData]: """ @@ -158,22 +165,22 @@ def _convert_from_excel_data(self, excel_path: str) -> List[ICompanyData]: :param excel_path: file path to excel file :return: List of ICompanyData objects """ - company_data = pd.read_excel(excel_path, sheet_name=None, skiprows=0) - self._check_company_data(company_data) + df_company_data = pd.read_excel(excel_path, sheet_name=None, skiprows=0) + self._check_company_data(df_company_data) - df_fundamentals = company_data[TabsConfig.FUNDAMENTAL].set_index(ColumnsConfig.COMPANY_ID, drop=False) + df_fundamentals = df_company_data[TabsConfig.FUNDAMENTAL].set_index(ColumnsConfig.COMPANY_ID, drop=False) df_fundamentals[ColumnsConfig.PRODUCTION_METRIC] = df_fundamentals[ColumnsConfig.SECTOR].map(sector_to_production_metric) - company_ids = list(df_fundamentals[ColumnsConfig.COMPANY_ID].unique()) - df_targets = self._get_projection(company_ids, company_data[TabsConfig.PROJECTED_TARGET], df_fundamentals[ColumnsConfig.PRODUCTION_METRIC]) - if TabsConfig.PROJECTED_EI in company_data: - df_ei = self._get_projection(company_ids, company_data[TabsConfig.PROJECTED_EI], df_fundamentals[ColumnsConfig.PRODUCTION_METRIC]) + company_ids = df_fundamentals[ColumnsConfig.COMPANY_ID].unique() + df_targets = self._get_projection(company_ids, df_company_data[TabsConfig.PROJECTED_TARGET], df_fundamentals[ColumnsConfig.PRODUCTION_METRIC]) + if TabsConfig.PROJECTED_EI in df_company_data: + df_ei = self._get_projection(company_ids, df_company_data[TabsConfig.PROJECTED_EI], df_fundamentals[ColumnsConfig.PRODUCTION_METRIC]) else: df_ei = None - if TabsConfig.HISTORIC_DATA in company_data: - df_historic = company_data[TabsConfig.HISTORIC_DATA].set_index(ColumnsConfig.COMPANY_ID, drop=False) + if TabsConfig.HISTORIC_DATA in df_company_data: + df_historic = df_company_data[TabsConfig.HISTORIC_DATA].set_index(ColumnsConfig.COMPANY_ID, drop=False) df_historic = df_historic.merge(df_fundamentals[ColumnsConfig.PRODUCTION_METRIC].rename('units'), left_index=True, right_index=True) - df_historic.loc[df_historic.variable == 'Emissions', 'units'] = 't CO2' - df_historic.loc[df_historic.variable == 'Emission Intensities', 'units'] = 't CO2/' + df_historic.loc[df_historic.variable == 'Emission Intensities', 'units'] + df_historic.loc[df_historic.variable=='Emissions', 'units'] = 't CO2' + df_historic.loc[df_historic.variable=='Emission Intensities', 'units'] = 't CO2/' + df_historic.loc[df_historic.variable=='Emission Intensities', 'units'] df_historic = self._get_historic_data(company_ids, df_historic) else: df_historic = None @@ -198,13 +205,25 @@ def _company_df_to_model(self, df_fundamentals: pd.DataFrame, df_targets: pd.Dat :param df_ei: pandas Dataframe with emission intensities :return: A list containing the ICompanyData objects """ + logger = logging.getLogger(__name__) # set NaN to None since NaN is float instance df_fundamentals = df_fundamentals.where(pd.notnull(df_fundamentals), None).replace({np.nan: None}) companies_data_dict = df_fundamentals.to_dict(orient="records") model_companies: List[ICompanyData] = [] for company_data in companies_data_dict: + # company_data is a dict, not a dataframe try: + # convert_unit_of_measure = company_data[ColumnsConfig.SECTOR] in self.CORRECTION_SECTORS + # company_targets = self._convert_series_to_projections( + # df_targets.loc[company_data[ColumnsConfig.COMPANY_ID], :], convert_unit_of_measure) + # company_ei = self._convert_series_to_projections( + # df_ei.loc[company_data[ColumnsConfig.COMPANY_ID], :], + # convert_unit_of_measure) + + # company_data.update({ColumnsConfig.PROJECTED_TARGETS: {'S1S2': {'projections': df_targets}}}) + # company_data.update({ColumnsConfig.PROJECTED_EI: {'S1S2': {'projections': df_ei}}}) + company_id = company_data[ColumnsConfig.COMPANY_ID] production_metric = sector_to_production_metric[company_data[ColumnsConfig.SECTOR]] intensity_metric = sector_to_intensity_metric[company_data[ColumnsConfig.SECTOR]] @@ -236,14 +255,15 @@ def _company_df_to_model(self, df_fundamentals: pd.DataFrame, df_targets: pd.Dat logger.warning( f"EX {e}: (one of) the input(s) of company %s is invalid and will be skipped" % company_data[ ColumnsConfig.COMPANY_NAME]) + break + pass return model_companies # Workaround for bug (https://github.com/pandas-dev/pandas/issues/20824) in Pandas where NaN are treated as zero def _np_sum(g): return np.sum(g.values) - def _get_projection(self, company_ids: List[str], projections: pd.DataFrame, production_metric: pd.DataFrame) \ - -> pd.DataFrame: + def _get_projection(self, company_ids: List[str], projections: pd.DataFrame, production_metric: pd.DataFrame) -> pd.DataFrame: """ get the projected emission intensities for list of companies :param company_ids: list of company ids @@ -251,13 +271,11 @@ def _get_projection(self, company_ids: List[str], projections: pd.DataFrame, pro :param production_metric: Dataframe with production_metric per company :return: series of projected emission intensities """ + projections = projections.reset_index().set_index(ColumnsConfig.COMPANY_ID) - missing_companies = [company_id for company_id in company_ids if company_id not in projections.index] - if missing_companies: - error_message = f"Missing target or trajectory projections for companies with ID: {missing_companies}" - logger.error(error_message) - raise ValueError(error_message) + assert all(company_id in projections.index for company_id in company_ids), \ + f"company ids missing in provided projections" projections = projections.loc[company_ids, range(TemperatureScoreConfig.CONTROLS_CONFIG.base_year, TemperatureScoreConfig.CONTROLS_CONFIG.target_end_year + 1)] @@ -277,12 +295,12 @@ def _get_historic_data(self, company_ids: List[str], historic_data: pd.DataFrame :param historic_data: Dataframe Productions, Emissions, and Emission Intensities mixed together :return: historic data with unit attributes added to yearly data on a per-element basis """ + # We don't need this reset/set index dance because we set the index to COMPANY_ID to get units sorted + # historic_data = historic_data.reset_index().drop(columns=['index']).set_index(ColumnsConfig.COMPANY_ID) + self.historic_years = [column for column in historic_data.columns if type(column) == int] missing_ids = [company_id for company_id in company_ids if company_id not in historic_data.index] - if missing_ids: - error_message = f"Company ids missing in provided historic data: {missing_ids}" - logger.error(error_message) - raise ValueError(error_message) + assert not missing_ids, f"Company ids missing in provided historic data: {missing_ids}" # There has got to be a better way to do this... historic_data = ( diff --git a/ITR/data/template.py b/ITR/data/template.py index aab0d878..cf9064c5 100644 --- a/ITR/data/template.py +++ b/ITR/data/template.py @@ -7,23 +7,19 @@ from pydantic import ValidationError from ITR.data.base_providers import BaseCompanyDataProvider -from ITR.configs import ColumnsConfig, TemperatureScoreConfig, VariablesConfig, TabsConfig, SectorsConfig, LoggingConfig +from ITR.configs import ColumnsConfig, TemperatureScoreConfig, VariablesConfig, TabsConfig, SectorsConfig from ITR.interfaces import ICompanyData, EScope, \ IHistoricEmissionsScopes, \ IProductionRealization, IHistoricEIScopes, IHistoricData, ITargetData, IEmissionRealization, IEIRealization, \ IProjection, ProjectionControls -from ITR.utils import get_project_root ureg = pint.get_application_registry() Q_ = ureg.Quantity +from ITR.utils import get_project_root pkg_root = get_project_root() df_country_regions = pd.read_csv(f"{pkg_root}/data/country_region_info.csv") -logger = logging.getLogger(__name__) -LoggingConfig.add_config_to_logger(logger) - - def ITR_country_to_region(country): if len(country)==2: regions = df_country_regions[df_country_regions.alpha_2==country].region_ar6_10 @@ -42,8 +38,7 @@ def ITR_country_to_region(country): if 'Asia' in region: return 'Asia' return 'Global' - - + class TemplateProviderCompany(BaseCompanyDataProvider): """ Data provider skeleton for CSV files. This class serves primarily for testing purposes only! @@ -61,6 +56,18 @@ def __init__(self, excel_path: str, self._companies = self._convert_from_template_company_data(excel_path) super().__init__(self._companies, column_config, tempscore_config, projection_controls) + def _check_company_data(self, df: pd.DataFrame) -> None: + """ + Checks if the company data excel contains the data in the right format + + :return: None + """ + required_tabs = [TabsConfig.TEMPLATE_INPUT_DATA, TabsConfig.TEMPLATE_TARGET_DATA] + missing_tabs = [tab for tab in required_tabs if tab not in df] + assert not any(tab in missing_tabs for tab in required_tabs), f"Tabs {required_tabs} are required." + + + def _convert_from_template_company_data(self, excel_path: str) -> List[ICompanyData]: """ Converts the Excel template to list of ICompanyData objects. All dataprovider features will be inhereted from @@ -77,13 +84,14 @@ def _fixup_name(x): return f"{suffix}-{prefix}" df_company_data = pd.read_excel(excel_path, sheet_name=None, skiprows=0) + self._check_company_data(df_company_data) input_data_sheet = TabsConfig.TEMPLATE_INPUT_DATA - try: - df = df_company_data[input_data_sheet] - except KeyError as e: - logger.error(f"Tab {input_data_sheet} is required in input Excel file.") - raise + if "Test input data" in df_company_data: + input_data_sheet = "Test input data" + + df = df_company_data[input_data_sheet] + df['exposure'].fillna('presumed_equity', inplace=True) # TODO: Fix market_cap column naming inconsistency @@ -97,27 +105,20 @@ def _fixup_name(x): # GH https://github.com/pandas-dev/pandas/issues/46044 df_fundamentals.company_id = df_fundamentals.company_id.astype('object') + company_ids = df_fundamentals[ColumnsConfig.COMPANY_ID].unique() + + # testing if all data is in the same currency - if len(df_fundamentals[ColumnsConfig.TEMPLATE_CURRENCY].unique()) != 1: - error_message = f"All data should be in the same currency." - logger.error(error_message) - raise ValueError(error_message) + assert len(df_fundamentals[ColumnsConfig.TEMPLATE_CURRENCY].unique()) == 1, f"All data should be in the same currency. Please adjust excel template input." # are there empty sectors? comp_with_missing_sectors = df_fundamentals[ColumnsConfig.COMPANY_ID][df_fundamentals[ColumnsConfig.SECTOR].isnull()].to_list() - if comp_with_missing_sectors: - error_message = f"For {comp_with_missing_sectors} companies the sector column is empty." - logger.error(error_message) - raise ValueError(error_message) - + assert len(comp_with_missing_sectors) == 0, f"For {comp_with_missing_sectors} companies the sector column is empty. Correct it in excel template and try one more time." # testing if only valid sectors are provided sectors_from_df = df_fundamentals[ColumnsConfig.SECTOR].unique() configured_sectors = SectorsConfig.get_configured_sectors() not_configured_sectors = [sec for sec in sectors_from_df if sec not in configured_sectors] - if not_configured_sectors: - error_message = f"Sector {not_configured_sectors} is not covered by the ITR tool currently." - logger.error(error_message) - raise ValueError(error_message) + assert len(not_configured_sectors) == 0, f"Sector {not_configured_sectors} is not covered by the ITR tool currently. Delete it from excel template." # The nightmare of naming columns 20xx_metric instead of metric_20xx...and potentially dealing with data from 1990s... historic_columns = [col for col in df_fundamentals.columns if col[:1].isdigit()] @@ -127,6 +128,7 @@ def _fixup_name(x): # Checking if there are not many missing market cap missing_cap_ids = df_fundamentals[ColumnsConfig.COMPANY_ID][df_fundamentals[ColumnsConfig.COMPANY_MARKET_CAP].isnull()].to_list() + assert (len(missing_cap_ids)/len(df_fundamentals)) < 0.2, f"Too many companies with missing market capitalization. Cannot proceed." # For the missing Market Cap we should use the ratio below to get dummy market cap: # (Avg for the Sector (Market Cap / Revenues) + Avg for the Sector (Market Cap / Assets)) 2 df_fundamentals['MCap_to_Reven']=df_fundamentals[ColumnsConfig.COMPANY_MARKET_CAP]/df_fundamentals[ColumnsConfig.COMPANY_REVENUE] # new temp column with ratio @@ -136,9 +138,11 @@ def _fixup_name(x): df_fundamentals[ColumnsConfig.COMPANY_MARKET_CAP] = df_fundamentals[ColumnsConfig.COMPANY_MARKET_CAP].fillna(0.5*(df_fundamentals[ColumnsConfig.COMPANY_REVENUE] * df_fundamentals['AVG_MCap_to_Reven']+df_fundamentals[ColumnsConfig.COMPANY_TOTAL_ASSETS] * df_fundamentals['AVG_MCap_to_Assets'])) df_fundamentals.drop(['MCap_to_Reven','MCap_to_Assets','AVG_MCap_to_Reven','AVG_MCap_to_Assets'], axis=1, inplace=True) # deleting temporary columns - if missing_cap_ids: - logger.warning(f"Missing market capitalisation values are estimated for companies with ID: " - f"{missing_cap_ids}.") + if missing_cap_ids is not None: + def custom_formatwarning(msg, *args, **kwargs): + return str(msg) + '\n' # ignore everything except the message + warnings.formatwarning = custom_formatwarning + warnings.warn(f"Market capitalisation was missing for {missing_cap_ids}.\nSo the values were calculated using the average MCap/Rev and MCap/Assets from available companies.\nScript is still running") # df_fundamentals now ready for conversion to list of models @@ -173,47 +177,18 @@ def _fixup_name(x): self.historic_years = [column for column in df_historic_data.columns if type(column) == int] test_target_sheet = TabsConfig.TEMPLATE_TARGET_DATA - try: - df_target_data = df_company_data[test_target_sheet].set_index('company_id').convert_dtypes() - except KeyError: - logger.error(f"Tab {test_target_sheet} is required in input Excel file.") - raise + if "Test target data" in df_company_data: + test_target_sheet = "Test target data" + df_target_data = df_company_data[test_target_sheet].set_index('company_id').convert_dtypes() - df_target_data = self._validate_target_data(df_target_data) + # TODO: need to fix Pydantic definition or data to allow optional int. In the mean time... + df_target_data.loc[df_target_data.target_start_year.isna(), 'target_start_year'] = 2020 + df_target_data.loc[df_target_data.netzero_year.isna(), 'netzero_year'] = 2050 # company_id, netzero_year, target_type, target_scope, target_start_year, target_base_year, target_base_year_qty, target_base_year_unit, target_year, target_reduction_ambition # df_target_data now ready for conversion to model for each company return self._company_df_to_model(df_fundamentals, df_target_data, df_historic_data) - def _validate_target_data(self, target_data: pd.DataFrame) -> pd.DataFrame: - """ - Performs checks on the supplied target data. Some values are put in to make the tool function. - :param target_data: - :return: - """ - # TODO: need to fix Pydantic definition or data to allow optional int. In the mean time... - c_ids_without_start_year = list(target_data[target_data['target_start_year'].isna()].index) - if c_ids_without_start_year: - target_data.loc[target_data.target_start_year.isna(), 'target_start_year'] = 2021 - logger.warning(f"Missing target start year set to 2021 for companies with ID: {c_ids_without_start_year}") - - c_ids_invalid_netzero_year = list(target_data[target_data['netzero_year'] > 2050].index) - if c_ids_invalid_netzero_year: - error_message = f"Invalid net-zero target years (>2050) are entered for companies with ID: " \ - f"{c_ids_without_netzero_year}" - logger.error(error_message) - raise ValueError(error_message) - target_data.loc[target_data.netzero_year.isna(), 'netzero_year'] = 2050 - - c_ids_with_increase_target = list(target_data[target_data['target_reduction_ambition'] < 0].index) - if c_ids_with_increase_target: - error_message = f"Negative target reduction ambition is invalid and entered for companies with ID: " \ - f"{c_ids_with_increase_target}" - logger.error(error_message) - raise ValueError(error_message) - - return target_data - def _convert_series_to_IProjections(self, projections: pd.Series) -> [IProjection]: """ Converts a Pandas Series to a list of IProjection @@ -235,6 +210,10 @@ def _company_df_to_model(self, df_fundamentals: pd.DataFrame, :param df_historic_data: pandas Dataframe with historic emissions, intensity, and production information :return: A list containing the ICompanyData objects """ + logger = logging.getLogger(__name__) + # set NaN to None since NaN is float instance + df_fundamentals = df_fundamentals.where(pd.notnull(df_fundamentals), None).replace(to_replace=np.nan, value=None) + companies_data_dict = df_fundamentals.to_dict(orient="records") model_companies: List[ICompanyData] = [] for company_data in companies_data_dict: @@ -247,6 +226,12 @@ def _company_df_to_model(self, df_fundamentals: pd.DataFrame, # the ghg_s1s2 and ghg_s3 variables are values "as of" the financial data # TODO pull ghg_s1s2 and ghg_s3 from historic data as appropriate + # v = df_fundamentals[df_fundamentals[ColumnsConfig.COMPANY_ID]==company_id][ColumnsConfig.GHG_SCOPE12].squeeze() + # company_data[ColumnsConfig.GHG_SCOPE12] = Q_(v or np.nan, ureg(units)) + # v = df_fundamentals[df_fundamentals[ColumnsConfig.COMPANY_ID]==company_id][ColumnsConfig.GHG_SCOPE3].squeeze() + # company_data[ColumnsConfig.GHG_SCOPE3] = Q_(v or np.nan, ureg(units)) + + # df.loc[[index]] is like df.loc[index, :] except it always returns a DataFrame and not a Series when there's only one row if df_historic_data is not None: company_data[ColumnsConfig.HISTORIC_DATA] = self._convert_historic_data( df_historic_data.loc[[company_data[ColumnsConfig.COMPANY_ID]]].reset_index()).dict() @@ -271,9 +256,11 @@ def _company_df_to_model(self, df_fundamentals: pd.DataFrame, company_data[ColumnsConfig.COMPANY_MARKET_CAP] = np.nan model_companies.append(ICompanyData.parse_obj(company_data)) - except ValidationError: - logger.error(f"(One of) the input(s) of company {company_data['company_name']} is invalid") - raise + except ValidationError as e: + logger.warning( + f"EX {e}: (one of) the input(s) of company %s is invalid and will be skipped" % company_data[ + ColumnsConfig.COMPANY_NAME]) + continue return model_companies # Workaround for bug (https://github.com/pandas-dev/pandas/issues/20824) in Pandas where NaN are treated as zero @@ -289,13 +276,11 @@ def _get_projection(self, company_ids: List[str], projections: pd.DataFrame, :param production_metric: Dataframe with production_metric per company :return: series of projected emission intensities """ + projections = projections.reset_index().set_index(ColumnsConfig.COMPANY_ID) - missing_companies = [company_id for company_id in company_ids if company_id not in projections.index] - if missing_companies: - error_message = f"Missing target or trajectory projections for companies with ID: {missing_companies}" - logger.error(error_message) - raise ValueError(error_message) + assert all(company_id in projections.index for company_id in company_ids), \ + f"company ids missing in provided projections" projections = projections.loc[company_ids, range(TemperatureScoreConfig.CONTROLS_CONFIG.base_year, TemperatureScoreConfig.CONTROLS_CONFIG.target_end_year + 1)] @@ -310,6 +295,18 @@ def _get_projection(self, company_ids: List[str], projections: pd.DataFrame, return projected_ei_s1s2 + # class ITargetData(PintModel): + # netzero_year: int + # target_type: Union[Literal['intensity'],Literal['absolute'],Literal['other']] + # target_scope: EScope + # target_start_year: Optional[int] + # target_base_year: int + # target_end_year: int + + # target_base_year_qty: float + # target_base_year_unit: str + # target_reduction_pct: float + def _convert_target_data(self, target_data: pd.DataFrame) -> List[ITargetData]: """ :param historic: historic production, emission and emission intensity data for a company @@ -325,11 +322,11 @@ def _get_historic_data(self, company_ids: List[str], historic_data: pd.DataFrame :param historic_data: Dataframe Productions, Emissions, and Emission Intensities mixed together :return: historic data with unit attributes added on a per-element basis """ + # We don't need this reset/set index dance because we set the index to COMPANY_ID to get units sorted + # historic_data = historic_data.reset_index().drop(columns=['index']).set_index(ColumnsConfig.COMPANY_ID) + missing_ids = [company_id for company_id in company_ids if company_id not in historic_data.index] - if missing_ids: - error_message = f"Company ids missing in provided historic data: {missing_ids}" - logger.error(error_message) - raise ValueError(error_message) + assert not missing_ids, f"Company ids missing in provided historic data: {missing_ids}" # There has got to be a better way to do this... historic_data = ( @@ -358,7 +355,8 @@ def _convert_historic_data(self, historic: pd.DataFrame) -> IHistoricData: # Note that for the three following functions, we pd.Series.squeeze() the results because it's just one year / one company def _convert_to_historic_emissions(self, emissions: pd.DataFrame) -> Optional[IHistoricEmissionsScopes]: """ - :param emissions: historic emissions data for a company + :param historic: historic production, emission and emission intensity data for a company + :param convert_unit: whether or not to convert the units of measure :return: List of historic emissions per scope, or None if no data are provided """ if emissions.empty: @@ -372,19 +370,26 @@ def _convert_to_historic_emissions(self, emissions: pd.DataFrame) -> Optional[IH else [IEmissionRealization(year=year, value=results[year].squeeze()) for year in self.historic_years] return IHistoricEmissionsScopes(**emissions_scopes) - def _convert_to_historic_productions(self, productions: pd.DataFrame) -> Optional[List[IProductionRealization]]: + def _convert_to_historic_productions(self, productions: pd.DataFrame) \ + -> Optional[List[IProductionRealization]]: """ - :param productions: historic production data for a company + :param historic: historic production, emission and emission intensity data for a company :return: A list containing historic productions, or None if no data are provided """ if productions.empty: return None - return [IProductionRealization(year=year, value=productions[year].squeeze()) for year in self.historic_years] - - def _convert_to_historic_ei(self, intensities: pd.DataFrame) -> Optional[IHistoricEIScopes]: + try: + production_realizations = \ + [IProductionRealization(year=year, value=productions[year].squeeze()) for year in self.historic_years] + except TypeError as e: + print(e) + return production_realizations + + def _convert_to_historic_ei(self, intensities: pd.DataFrame) \ + -> Optional[IHistoricEIScopes]: """ - :param intensities: historic emission intensity data for a company + :param historic: historic production, emission and emission intensity data for a company :return: A list of historic emission intensities per scope, or None if no data are provided """ if intensities.empty: @@ -395,7 +400,10 @@ def _convert_to_historic_ei(self, intensities: pd.DataFrame) -> Optional[IHistor for scope in EScope.get_scopes(): results = intensities.loc[intensities[ColumnsConfig.SCOPE] == scope] - intensity_scopes[scope] = [] \ - if results.empty \ - else [IEIRealization(year=year, value=results[year].squeeze()) for year in self.historic_years] + try: + intensity_scopes[scope] = [] \ + if results.empty \ + else [IEIRealization(year=year, value=results[year].squeeze()) for year in self.historic_years] + except TypeError as e: + print(e) return IHistoricEIScopes(**intensity_scopes) diff --git a/ITR/interfaces.py b/ITR/interfaces.py index 4eb83aa4..e957ddda 100644 --- a/ITR/interfaces.py +++ b/ITR/interfaces.py @@ -412,7 +412,7 @@ class IHistoricData(PintModel): class ITargetData(PintModel): netzero_year: Optional[int] - target_type: Union[Literal['intensity'], Literal['absolute'], Literal['Intensity'], Literal['Absolute']] + target_type: Union[Literal['intensity'], Literal['absolute'], Literal['other']] target_scope: EScope target_start_year: Optional[int] target_base_year: int @@ -422,12 +422,6 @@ class ITargetData(PintModel): target_base_year_unit: str target_reduction_pct: float - @root_validator - def must_be_greater_than_2022(cls, v): - if v['target_end_year'] < 2023: - raise ValueError("Target end year must be greater than 2022") - return v - class ICompanyData(PintModel): company_name: str diff --git a/ITR/utils.py b/ITR/utils.py index c05f90db..917a9a23 100644 --- a/ITR/utils.py +++ b/ITR/utils.py @@ -2,16 +2,12 @@ from pathlib import Path from typing import List, Optional, Tuple from pint import Quantity -import logging -from .configs import ColumnsConfig, TemperatureScoreConfig, LoggingConfig +from .configs import ColumnsConfig, TemperatureScoreConfig from .interfaces import PortfolioCompany, EScope, ETimeFrames, ScoreAggregations, TemperatureScoreControls from .data.data_warehouse import DataWarehouse from .portfolio_aggregation import PortfolioAggregationMethod -logger = logging.getLogger(__name__) -LoggingConfig.add_config_to_logger(logger) - # If this file is moved, the computation of get_project_root may also need to change def get_project_root() -> Path: @@ -56,18 +52,9 @@ def dataframe_to_portfolio(df_portfolio: pd.DataFrame) -> List[PortfolioCompany] :return: A list of portfolio companies """ # Adding some non-empty checks for portfolio upload - if df_portfolio[ColumnsConfig.INVESTMENT_VALUE].isnull().any(): - error_message = f"Investment values are missing for one or more companies in the input file." - logger.error(error_message) - raise ValueError(error_message) - if df_portfolio[ColumnsConfig.COMPANY_ISIN].isnull().any(): - error_message = f"Company ISINs are missing for one or more companies in the input file." - logger.error(error_message) - raise ValueError(error_message) - if df_portfolio[ColumnsConfig.COMPANY_ID].isnull().any(): - error_message = f"Company IDs are missing for one or more companies in the input file." - logger.error(error_message) - raise ValueError(error_message) + assert df_portfolio[ColumnsConfig.INVESTMENT_VALUE].isnull().sum() == 0, f"There is empty data for investment value for some companies in the input file. Please correct the file and try again." + assert df_portfolio[ColumnsConfig.COMPANY_ISIN].isnull().sum() == 0, f"There is empty data for company ISIN for some companies in the input file. Please correct the file and try again." + assert df_portfolio[ColumnsConfig.COMPANY_ID].isnull().sum() == 0, f"There is empty data for company ID for some companies in the input file. Please correct the file and try again." return [PortfolioCompany.parse_obj(company) for company in df_portfolio.to_dict(orient="records")] diff --git a/test/test_base_providers.py b/test/test_base_providers.py index b5e14f6e..d7e77db0 100644 --- a/test/test_base_providers.py +++ b/test/test_base_providers.py @@ -1,6 +1,7 @@ import json import unittest import os + import pandas as pd import ITR @@ -31,11 +32,11 @@ def setUp(self) -> None: with open(self.company_json) as json_file: parsed_json = json.load(json_file) for company_data in parsed_json: - company_data['emissions_metric'] = {'units': 't CO2'} + company_data['emissions_metric'] = {'units':'t CO2'} if company_data['sector'] == 'Electricity Utilities': - company_data['production_metric'] = {'units': 'MWh'} + company_data['production_metric'] = {'units':'MWh'} elif company_data['sector'] == 'Steel': - company_data['production_metric'] = {'units': 'Fe_ton'} + company_data['production_metric'] = {'units':'Fe_ton'} self.companies = [ICompanyData.parse_obj(company_data) for company_data in parsed_json] self.base_company_data = BaseCompanyDataProvider(self.companies) diff --git a/test/test_excel_provider.py b/test/test_excel_provider.py index 270a96e8..6f6f80d3 100644 --- a/test/test_excel_provider.py +++ b/test/test_excel_provider.py @@ -1,9 +1,10 @@ import os import unittest + import pandas as pd + from numpy.testing import assert_array_equal import ITR - from ITR.data.excel import ExcelProviderCompany, ExcelProviderProductionBenchmark, ExcelProviderIntensityBenchmark from ITR.data.data_warehouse import DataWarehouse from ITR.configs import ColumnsConfig, TemperatureScoreConfig diff --git a/test/test_interfaces.py b/test/test_interfaces.py index 915015f2..a6a02ac2 100644 --- a/test/test_interfaces.py +++ b/test/test_interfaces.py @@ -5,8 +5,7 @@ from ITR.data.osc_units import ureg, Q_, PA_ -from ITR.interfaces import EScope, PowerGeneration, IntensityMetric, IProjection, IBenchmark, ICompanyData, \ - ICompanyEIProjectionsScopes, ICompanyEIProjections, ITargetData +from ITR.interfaces import EScope, PowerGeneration, IntensityMetric, IProjection, IBenchmark, ICompanyData, ICompanyEIProjectionsScopes, ICompanyEIProjections class TestInterfaces(unittest.TestCase): @@ -59,30 +58,3 @@ def test_ICompanyData(self): base_year_production=71500001.3960884, company_revenue=7370536918 ) - - def test_ITargetData(self): - target_data = ITargetData( - netzero_year=2022, - target_type='Absolute', - target_scope=EScope.S1S2, - target_start_year=2020, - target_base_year=2018, - target_end_year=2040, - target_base_year_qty=2.0, - target_base_year_unit='t CO2', - target_reduction_pct=0.2 - ) - - def test_fail_ITargetData(self): - with self.assertRaises(ValueError): - target_data = ITargetData( - netzero_year=2022, - target_type='absolute', - target_scope=EScope.S1S2, - target_start_year=2020, - target_base_year=2018, - target_end_year=2020, # This value should be larger than 2022 - target_base_year_qty=2.0, - target_base_year_unit='t CO2', - target_reduction_pct=0.2 - ) From 9c4f98803d6cefff0bd26a679b531416304bfd46 Mon Sep 17 00:00:00 2001 From: David Kroon <35101727+dp90@users.noreply.github.com> Date: Fri, 17 Jun 2022 13:23:02 +0200 Subject: [PATCH 255/345] Implement logging Signed-off-by: David Kroon <35101727+dp90@users.noreply.github.com> Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- ITR/configs.py | 17 +++- ITR/data/base_providers.py | 166 +++++++++++++++++++---------------- ITR/data/data_warehouse.py | 26 +++--- ITR/data/excel.py | 134 +++++++++++++--------------- ITR/data/template.py | 168 ++++++++++++++++++------------------ ITR/interfaces.py | 2 +- ITR/utils.py | 21 ++++- test/test_base_providers.py | 7 +- test/test_excel_provider.py | 3 +- test/test_interfaces.py | 30 ++++++- 10 files changed, 314 insertions(+), 260 deletions(-) diff --git a/ITR/configs.py b/ITR/configs.py index ec6eb432..119afb90 100644 --- a/ITR/configs.py +++ b/ITR/configs.py @@ -2,6 +2,8 @@ This file defines the constants used throughout the different classes. In order to redefine these settings whilst using the module, extend the respective config class and pass it to the class as the "constants" parameter. """ +import logging + from .interfaces import TemperatureScoreControls import pint @@ -119,7 +121,8 @@ class TargetConfig: TARGET_BASE_UNITS = 'target_base_year_unit' TARGET_YEAR = 'target_year' TARGET_REDUCTION_VS_BASE = 'target_reduction_ambition' - + + class TabsConfig: FUNDAMENTAL = "fundamental_data" PROJECTED_EI = "projected_ei_in_Wh" @@ -146,3 +149,15 @@ class TemperatureScoreConfig(PortfolioAggregationConfig): carbon_conversion=Q_(3664.0, ureg('Gt CO2')), scenario_target_temperature=Q_(1.5, ureg.delta_degC) ) + + +class LoggingConfig: + FORMAT = '%(asctime)s - %(name)s - %(levelname)s - %(message)s' + + @classmethod + def add_config_to_logger(cls, logger: logging.Logger): + logger.setLevel(logging.INFO) + formatter = logging.Formatter(cls.FORMAT) + stream_handler = logging.StreamHandler() + stream_handler.setFormatter(formatter) + logger.addHandler(stream_handler) diff --git a/ITR/data/base_providers.py b/ITR/data/base_providers.py index 0ace4f68..bdd1b63b 100644 --- a/ITR/data/base_providers.py +++ b/ITR/data/base_providers.py @@ -1,12 +1,12 @@ -import warnings # needed until quantile behaves better with Pint quantities in arrays +import warnings # needed until quantile behaves better with Pint quantities in arrays import numpy as np import pandas as pd from functools import reduce, partial -from pandas._libs.missing import NAType from typing import List, Type, Dict +import logging from ITR.data.osc_units import Q_, PA_ -from ITR.configs import ColumnsConfig, TemperatureScoreConfig, VariablesConfig +from ITR.configs import ColumnsConfig, TemperatureScoreConfig, VariablesConfig, LoggingConfig from ITR.data.data_providers import CompanyDataProvider, ProductionBenchmarkDataProvider, \ IntensityBenchmarkDataProvider from ITR.interfaces import ICompanyData, EScope, IProductionBenchmarkScopes, IEIBenchmarkScopes, \ @@ -14,11 +14,11 @@ IHistoricEmissionsScopes, IProductionRealization, ITargetData, IHistoricData, ICompanyEIProjection, \ IEmissionRealization, IntensityMetric, ProjectionControls - # TODO handling of scopes in benchmarks -# This is actual output production (whatever the output production units may be). -# Not to be confused with the term "projected production" as it relates to energy intensity. +logger = logging.getLogger(__name__) +LoggingConfig.add_config_to_logger(logger) + class BaseProviderProductionBenchmark(ProductionBenchmarkDataProvider): @@ -43,9 +43,8 @@ def _convert_benchmark_to_series(self, benchmark: IBenchmark) -> pd.Series: :param scope: a scope :return: pd.Series """ - with warnings.catch_warnings(): - warnings.simplefilter("ignore") - return pd.Series({r.year: r.value for r in benchmark.projections}, name=(benchmark.region, benchmark.sector)) + return pd.Series({r.year: r.value for r in benchmark.projections}, name=(benchmark.region, benchmark.sector), + dtype=f'pint[{benchmark.benchmark_metric.units}]') # Production benchmarks are dimensionless. S1S2 has nothing to do with any company data. # It's a label in the top-level of benchmark data. Currently S1S2 is the only label with any data. @@ -73,7 +72,7 @@ def get_company_projected_production(self, company_sector_region_info: pd.DataFr benchmark_production_projections = self.get_benchmark_projections(company_sector_region_info) company_production = company_sector_region_info[self.column_config.BASE_YEAR_PRODUCTION] return benchmark_production_projections.add(1).cumprod(axis=1).mul( - company_production, axis=0) + company_production, axis=0) def get_benchmark_projections(self, company_sector_region_info: pd.DataFrame, scope: EScope = EScope.S1S2) -> pd.DataFrame: @@ -150,7 +149,8 @@ def _convert_benchmark_to_series(self, benchmark: IBenchmark) -> pd.Series: :param scope: a scope :return: pd.Series """ - return pd.Series({p.year: p.value for p in benchmark.projections}, name=(benchmark.region, benchmark.sector), dtype=f'pint[{benchmark.benchmark_metric.units}]') + return pd.Series({p.year: p.value for p in benchmark.projections}, name=(benchmark.region, benchmark.sector), + dtype=f'pint[{benchmark.benchmark_metric.units}]') def _get_projected_intensities(self, scope: EScope = EScope.S1S2) -> pd.DataFrame: """ @@ -158,13 +158,13 @@ def _get_projected_intensities(self, scope: EScope = EScope.S1S2) -> pd.DataFram :param scope: a scope :return: pd.DataFrame """ - result = [] - for bm in self._EI_benchmarks.dict()[str(scope)]['benchmarks']: - result.append(self._convert_benchmark_to_series(IBenchmark.parse_obj(bm))) - with warnings.catch_warnings(): - # pd.DataFrame.__init__ (in pandas/core/frame.py) ignores the beautiful dtype information adorning the pd.Series list elements we are providing. Sad! - warnings.simplefilter("ignore") - df_bm = pd.DataFrame(result) + results = [] + for bm in self._EI_benchmarks.__getattribute__(str(scope)).benchmarks: + results.append(self._convert_benchmark_to_series(bm)) + with warnings.catch_warnings(): + # pd.DataFrame.__init__ (in pandas/core/frame.py) ignores the beautiful dtype information adorning the pd.Series list elements we are providing. Sad! + warnings.simplefilter("ignore") + df_bm = pd.DataFrame(results) df_bm.index.names = [self.column_config.REGION, self.column_config.SECTOR] return df_bm @@ -211,13 +211,18 @@ def __init__(self, self._companies = self._validate_projected_trajectories(companies) def _validate_projected_trajectories(self, companies: List[ICompanyData]) -> List[ICompanyData]: - companies_without_data = [c.company_id for c in companies if not c.historic_data and not c.projected_intensities] - assert not companies_without_data, \ - f"Provide either historic emission data or projections for companies with IDs {companies_without_data}" + companies_without_data = [c.company_id for c in companies if + not c.historic_data and not c.projected_intensities] + if companies_without_data: + error_message = f"Provide either historic emission data or projections for companies with " \ + f"IDs {companies_without_data}" + logger.error(error_message) + raise ValueError(error_message) companies_without_projections = [c for c in companies if not c.projected_intensities] if companies_without_projections: companies_with_projections = [c for c in companies if c.projected_intensities] - return companies_with_projections + EITrajectoryProjector(self.projection_controls).project_ei_trajectories(companies_without_projections) + return companies_with_projections + EITrajectoryProjector(self.projection_controls).project_ei_trajectories( + companies_without_projections) else: return companies @@ -237,17 +242,17 @@ def _convert_projections_to_series(self, company: ICompanyData, feature: str, projections = company_dict[feature][scope.name]['projections'] else: scopes = scope.value.split('+') - projection_scopes = {s:company_dict[feature][s]['projections'] for s in scopes if company_dict[feature][s]} - if len(projection_scopes)>1: + projection_scopes = {s: company_dict[feature][s]['projections'] for s in scopes if company_dict[feature][s]} + if len(projection_scopes) > 1: projection_series = {} for s in scopes: projection_series[s] = pd.Series( - {p['year']: p['value'] for p in company_dict[feature][s]['projections'] }, - name=company.company_id, dtype=f'pint[{emissions_units}/{production_units}]') + {p['year']: p['value'] for p in company_dict[feature][s]['projections']}, + name=company.company_id, dtype=f'pint[{emissions_units}/{production_units}]') series_adder = partial(pd.Series.add, fill_value=0) res = reduce(series_adder, projection_series.values()) return res - elif len(projection_scopes)==0: + elif len(projection_scopes) == 0: raise ValueError(f"missing target scope data for {company.company_name} :: {scope}") else: # This clause is only accessed if the scope is S1S2 or S1S2S3 of which only one scope is provided. @@ -270,7 +275,8 @@ def _calculate_target_projections(self, production_bm: BaseProviderProductionBen elif c.target_data is None: raise ValueError(f"no target data for {c.company_name}") else: - base_year_production = next((p.value for p in c.historic_data.productions if p.year == self.temp_config.CONTROLS_CONFIG.base_year), None) + base_year_production = next((p.value for p in c.historic_data.productions if + p.year == self.temp_config.CONTROLS_CONFIG.base_year), None) with warnings.catch_warnings(): warnings.simplefilter("ignore") company_sector_region_info = pd.DataFrame({ @@ -307,8 +313,9 @@ def get_company_data(self, company_ids: List[str]) -> List[ICompanyData]: company_data = [company for company in self._companies if company.company_id in company_ids] if len(company_data) is not len(company_ids): - missing_ids = [company.company_id for company in self._companies if company.company_id not in company_ids] - assert not missing_ids, f"Company IDs not found in fundamental data: {missing_ids}" + missing_ids = [c_id for c_id in company_ids if c_id not in [c.company_id for c in company_data]] + logger.warning(f"Companies not found in fundamental data and excluded from further computations: " + f"{missing_ids}") return company_data @@ -345,7 +352,8 @@ def get_company_fundamentals(self, company_ids: List[str]) -> pd.DataFrame: """ return pd.DataFrame.from_records( [ICompanyData.parse_obj(c.dict()).dict() for c in self.get_company_data(company_ids)], - exclude=['projected_targets', 'projected_intensities', 'historic_data']).set_index(self.column_config.COMPANY_ID) + exclude=['projected_targets', 'projected_intensities', 'historic_data']).set_index( + self.column_config.COMPANY_ID) def get_company_projected_trajectories(self, company_ids: List[str]) -> pd.DataFrame: """ @@ -353,7 +361,7 @@ def get_company_projected_trajectories(self, company_ids: List[str]) -> pd.DataF :return: A pandas DataFrame with projected intensity trajectories per company, indexed by company_id """ trajectory_list = [self._convert_projections_to_series(c, self.column_config.PROJECTED_EI) for c in - self.get_company_data(company_ids)] + self.get_company_data(company_ids)] if trajectory_list: with warnings.catch_warnings(): # pd.DataFrame.__init__ (in pandas/core/frame.py) ignores the beautiful dtype information adorning the pd.Series list elements we are providing. Sad! @@ -393,7 +401,8 @@ def project_ei_trajectories(self, companies: List[ICompanyData]) -> List[ICompan historic_years = [column for column in historic_data.columns if type(column) == int] projection_years = range(max(historic_years), self.projection_controls.TARGET_YEAR) - historic_intensities = historic_data[historic_years].query(f"variable=='{VariablesConfig.EMISSIONS_INTENSITIES}'") + historic_intensities = historic_data[historic_years].query( + f"variable=='{VariablesConfig.EMISSIONS_INTENSITIES}'") standardized_intensities = self._standardize(historic_intensities) intensity_trends = self._get_trends(standardized_intensities) extrapolated = self._extrapolate(intensity_trends, projection_years, historic_data) @@ -414,7 +423,7 @@ def _extract_historic_data(self, companies: List[ICompanyData]) -> pd.DataFrame: data.extend(self._historic_ei_to_dicts(company.company_id, company.historic_data.emissions_intensities)) if not data: - print(companies) + logger.error(f"No historic data for companies: {[c.company_id for c in companies]}") raise ValueError("No historic data anywhere") return pd.DataFrame.from_records(data).set_index( [ColumnsConfig.COMPANY_ID, ColumnsConfig.VARIABLE, ColumnsConfig.SCOPE]) @@ -439,8 +448,9 @@ def _historic_ei_to_dicts(self, id: str, intensities_scopes: IHistoricEIScopes) for scope, intensities in intensities_scopes.dict().items(): if intensities: intsties = {intsty['year']: intsty['value'] for intsty in intensities} - data.append({ColumnsConfig.COMPANY_ID: id, ColumnsConfig.VARIABLE: VariablesConfig.EMISSIONS_INTENSITIES, - ColumnsConfig.SCOPE: scope, **intsties}) + data.append( + {ColumnsConfig.COMPANY_ID: id, ColumnsConfig.VARIABLE: VariablesConfig.EMISSIONS_INTENSITIES, + ColumnsConfig.SCOPE: scope, **intsties}) return data def _compute_missing_historic_ei(self, companies, historic_data): @@ -483,15 +493,19 @@ def _compute_missing_historic_ei(self, companies, historic_data): this_missing_data.append(f"{company.company_id} - {scope}") if this_missing_data and append_this_missing_data: missing_data.extend(this_missing_data) - assert not missing_data, f"Provide either historic emissions intensity data, or historic emission and " \ - f"production data for these company - scope combinations: {missing_data}" + if missing_data: + error_message = f"Provide either historic emissions intensity data, or historic emission and " \ + f"production data for these company - scope combinations: {missing_data}" + logger.error(error_message) + raise ValueError(error_message) def _add_projections_to_companies(self, companies: List[ICompanyData], extrapolations: pd.DataFrame): for company in companies: scope_projections = {} scope_dfs = {} for scope in ICompanyEIProjectionsScopes.__fields__: - if not company.historic_data.emissions_intensities or not company.historic_data.emissions_intensities.__getattribute__(scope): + if not company.historic_data.emissions_intensities or not company.historic_data.emissions_intensities.__getattribute__( + scope): scope_projections[scope] = None continue results = extrapolations.loc[(company.company_id, VariablesConfig.EMISSIONS_INTENSITIES, scope)] @@ -499,31 +513,28 @@ def _add_projections_to_companies(self, companies: List[ICompanyData], extrapola scope_dfs[scope] = results.astype(f"pint[{units}]") projections = [IProjection(year=year, value=value) for year, value in results.items() if year >= TemperatureScoreConfig.CONTROLS_CONFIG.base_year] - scope_projections[scope] = ICompanyEIProjections(ei_metric={'units':units}, projections=projections) + scope_projections[scope] = ICompanyEIProjections(ei_metric={'units': units}, projections=projections) if scope_projections.get('S1') and scope_projections.get('S2') and not scope_projections.get('S1S2'): results = scope_dfs['S1'] + scope_dfs['S2'] units = f"{results.values[0].u:~P}" projections = [IProjection(year=year, value=value) for year, value in results.items() if year >= TemperatureScoreConfig.CONTROLS_CONFIG.base_year] - scope_projections['S1S2'] = ICompanyEIProjections(ei_metric={'units':units}, projections=projections) + scope_projections['S1S2'] = ICompanyEIProjections(ei_metric={'units': units}, projections=projections) company.projected_intensities = ICompanyEIProjectionsScopes(**scope_projections) - def _standardize(self, intensities: pd.DataFrame) -> pd.DataFrame: # When columns are years and rows are all different intensity types, we cannot winsorize # Transpose the dataframe, winsorize the columns (which are all coherent because they belong to a single variable/company), then transpose again - intensities = intensities.T#.loc[2016:2020] + intensities = intensities.T for col in intensities.columns: s = intensities[col] ei_units = f"{s.loc[s.first_valid_index()].u:~P}" if s.notnull().any(): with warnings.catch_warnings(): warnings.simplefilter("ignore") - try: - intensities[col] = s.map(lambda x: Q_(np.nan, ei_units) - if x.m is np.nan or x.m is pd.NA else x).astype(f"pint[{ei_units}]") - except TypeError as e: - print(e) + intensities[col] = s.map(lambda x: Q_(np.nan, ei_units) + if x.m is np.nan or x.m is pd.NA else x).astype(f"pint[{ei_units}]") + winsorized_intensities: pd.DataFrame = self._winsorize(intensities) for col in winsorized_intensities.columns: winsorized_intensities[col] = winsorized_intensities[col].astype(intensities[col].dtype) @@ -541,8 +552,10 @@ def _winsorize(self, historic_intensities: pd.DataFrame) -> pd.DataFrame: # See https://github.com/hgrecco/pint-pandas/issues/114 winsorized: pd.DataFrame = historic_intensities.clip( # Must set numeric_only to false to process Quantities - lower=historic_intensities.quantile(q=self.projection_controls.LOWER_PERCENTILE, axis='index', numeric_only=False), - upper=historic_intensities.quantile(q=self.projection_controls.UPPER_PERCENTILE, axis='index', numeric_only=False), + lower=historic_intensities.quantile(q=self.projection_controls.LOWER_PERCENTILE, axis='index', + numeric_only=False), + upper=historic_intensities.quantile(q=self.projection_controls.UPPER_PERCENTILE, axis='index', + numeric_only=False), axis='columns' ) return winsorized @@ -555,21 +568,20 @@ def _interpolate(self, historic_intensities: pd.DataFrame) -> pd.DataFrame: continue qty = interpolated[col].values.quantity s = pd.Series(data=qty.m, index=interpolated.index) - interpolated[col] = pd.Series(PA_(s.interpolate(method='linear', inplace=False, limit_direction='forward'), f"{qty.u:~P}"), index=interpolated.index) + interpolated[col] = pd.Series(PA_(s.interpolate(method='linear', inplace=False, limit_direction='forward'), + dtype=f"{qty.u:~P}"), index=interpolated.index) return interpolated def _get_trends(self, intensities: pd.DataFrame): # Compute year-on-year growth ratios of emissions intensities - # Transpose so we can work with homogeneous units in columns. This means rows are years. - # pd.Series(intensities.iloc[:,0].values.quantity.m).rolling(window=2, axis='index', closed='right').apply(func=self._year_on_year_ratio, raw=True) intensities = intensities.T for col in intensities.columns: # ratios are dimensionless, so get rid of units, which confuse rolling/apply. Some columns are NaN-only intensities[col] = intensities[col].map(lambda x: x if isinstance(x, float) else x.m) # TODO: do we want to fillna(0) or dropna()? ratios: pd.DataFrame = intensities.rolling(window=2, axis='index', closed='right') \ - .apply(func=self._year_on_year_ratio, raw=True) # .dropna(how='all',axis=0) # .fillna(0) + .apply(func=self._year_on_year_ratio, raw=True) # .dropna(how='all',axis=0) # .fillna(0) trends: pd.DataFrame = self.projection_controls.TREND_CALC_METHOD(ratios, axis='index', skipna=True).clip( lower=self.projection_controls.LOWER_DELTA, @@ -581,8 +593,8 @@ def _extrapolate(self, trends: pd.DataFrame, projection_years: range, historic_d projected_intensities = historic_data.loc[historic_data.index.intersection(trends.index)].copy() # We need to do a mini-extrapolation if we don't have complete historic data for year in historic_data.columns.tolist()[:-1]: - m = projected_intensities[year+1].apply(lambda x: np.isnan(x.m)) - projected_intensities.loc[m,year+1] = projected_intensities.loc[m,year] * (1 + trends.loc[m]) + m = projected_intensities[year + 1].apply(lambda x: np.isnan(x.m)) + projected_intensities.loc[m, year + 1] = projected_intensities.loc[m, year] * (1 + trends.loc[m]) # Now the big extrapolation for year in projection_years: @@ -604,6 +616,7 @@ class EITargetProjector(object): for a specific company, in a specific sector. If we want to project targets for multiple sectors, we have to call it multiple times. This function doesn't need to know what sector it's computing for...only tha there is only one such, for however many scopes. """ + def __init__(self): pass @@ -616,11 +629,13 @@ def _normalize_scope_targets(self, scope_targets): # This sorts targets into ascending target years and descending start years unique_target_years.sort(key=lambda t: (t[0], -t[1])) # Pick the first target year most recently articulated, preserving ascending order of target yeares - unique_target_years = [(uk,next(v for k,v in unique_target_years if k == uk)) for uk in dict(unique_target_years).keys()] + unique_target_years = [(uk, next(v for k, v in unique_target_years if k == uk)) for uk in + dict(unique_target_years).keys()] # Now use those pairs to select just the targets we want unique_scope_targets = [unique_targets[0] for unique_targets in \ - [ [target for target in scope_targets if (target.target_end_year, target.target_start_year)==u] \ - for u in unique_target_years ]] + [[target for target in scope_targets if + (target.target_end_year, target.target_start_year) == u] \ + for u in unique_target_years]] unique_scope_targets.sort(key=lambda target: (target.target_end_year)) # We only trust the most recently communicated netzero target, but prioritize the most recently communicated, most aggressive target @@ -647,15 +662,18 @@ def project_ei_targets(self, company: ICompanyData, production_bm: pd.Series) -> if not scope_targets: continue netzero_year = max([t.netzero_year for t in scope_targets if t.netzero_year] + [0]) - scope_targets_intensity = self._normalize_scope_targets([target for target in scope_targets if target.target_type=="intensity"]) - scope_targets_absolute = self._normalize_scope_targets([target for target in scope_targets if target.target_type=="absolute"]) + scope_targets_intensity = self._normalize_scope_targets( + [target for target in scope_targets if target.target_type == "intensity"]) + scope_targets_absolute = self._normalize_scope_targets( + [target for target in scope_targets if target.target_type == "absolute"]) while scope_targets_intensity or scope_targets_absolute: if scope_targets_intensity and scope_targets_absolute: target_i = scope_targets_intensity[0] target_a = scope_targets_absolute[0] - if target_i.target_end_year==target_a.target_end_year: - if target_i.target_start_year==target_a.target_start_year: - warnings.warn(f"intensity target overrides absolute target for target_start_year={target_i.target_start_year} and target_end_year={target_i.target_end_year}") + if target_i.target_end_year == target_a.target_end_year: + if target_i.target_start_year == target_a.target_start_year: + warnings.warn( + f"intensity target overrides absolute target for target_start_year={target_i.target_start_year} and target_end_year={target_i.target_end_year}") scope_targets_absolute.pop(0) scope_targets = scope_targets_intensity elif target_i.target_start_year > target_a.target_start_year: @@ -670,7 +688,7 @@ def project_ei_targets(self, company: ICompanyData, production_bm: pd.Series) -> scope_targets = scope_targets_absolute elif not scope_targets_intensity: scope_targets = scope_targets_absolute - else: # not scope_targets_absolute + else: # not scope_targets_absolute scope_targets = scope_targets_intensity target = scope_targets.pop(0) @@ -712,7 +730,7 @@ def project_ei_targets(self, company: ICompanyData, production_bm: pd.Series) -> ei_projection_scopes[scope].projections.extend(ei_projections) else: ei_projection_scopes[scope] = ICompanyEIProjections(projections=ei_projections, - ei_metric=IntensityMetric.parse_obj({'units':target.target_base_year_unit})) + ei_metric=IntensityMetric.parse_obj({'units': target.target_base_year_unit})) elif target.target_type == "absolute": # Complicated case, the target must be switched from absolute value to intensity. # We use the benchmark production data @@ -752,7 +770,8 @@ def project_ei_targets(self, company: ICompanyData, production_bm: pd.Series) -> emissions_projections = [value_last_year * (1 + CAGR) ** (y + 1) for y, year in enumerate(range(last_year + 1, target_year + 1))] - emissions_projections = pd.Series(emissions_projections, index=range(last_year + 1, target_year + 1), + emissions_projections = pd.Series(emissions_projections, + index=range(last_year + 1, target_year + 1), dtype=f'pint[{target.target_base_year_unit}]') production_projections = production_bm.loc[last_year + 1: target_year] ei_projections = emissions_projections / production_projections @@ -766,7 +785,8 @@ def project_ei_targets(self, company: ICompanyData, production_bm: pd.Series) -> ei_projection_scopes[scope].projections.extend(ei_projections) else: ei_projection_scopes[scope] = ICompanyEIProjections(projections=ei_projections, - ei_metric=IntensityMetric.parse_obj({'units':f"{target_value.u:~P}"})) + ei_metric=IntensityMetric.parse_obj( + {'units': f"{target_value.u:~P}"})) else: # No target (type) specified ei_projection_scopes[scope] = None @@ -779,7 +799,7 @@ def project_ei_targets(self, company: ICompanyData, production_bm: pd.Series) -> # Let a later target set the netzero year continue # TODO What if target is a 100% reduction. Does it work whether or not netzero_year is set? - if netzero_year > target_year: # add in netzero target at the end + if netzero_year > target_year: # add in netzero target at the end netzero_qty = Q_(0, target_value.u) CAGR = self._compute_CAGR(target_value, netzero_qty, (netzero_year - target_year)) ei_projections = [ICompanyEIProjection(year=year, value=target_value * (1 + CAGR) ** (y + 1)) @@ -792,7 +812,7 @@ def project_ei_targets(self, company: ICompanyData, production_bm: pd.Series) -> ei_projection_scopes[scope].projections.extend( [ICompanyEIProjection(year=year, value=target_value) for y, year in enumerate(range(1 + target_year, 1 + 2050))] - ) + ) return ICompanyEIProjectionsScopes(**ei_projection_scopes) @@ -808,7 +828,7 @@ def _compute_CAGR(self, first, last, period): # TODO: Replace ugly fix => pint unit error in below expression # CAGR doesn't work well with 100% reduction, so set it to small if last == 0: - last = first/201.0 + last = first / 201.0 elif last > first: # If we have a slack target, i.e., target goal is actually above current data, clamp so CAGR computes as zero last = first @@ -816,9 +836,9 @@ def _compute_CAGR(self, first, last, period): res = (last / first).to_base_units().magnitude ** (1 / period) - 1 except ZeroDivisionError as e: if last > 0: - print("last > 0 and first==0 in CAGR...setting CAGR to 0-.5") + logger.warning("last > 0 and first==0 in CAGR...setting CAGR to 0-.5") res = -0.5 else: # It's all zero from here on out...clamp down on any emissions that poke up res = -1 - return res \ No newline at end of file + return res diff --git a/ITR/data/data_warehouse.py b/ITR/data/data_warehouse.py index 782c53b4..90c91afa 100644 --- a/ITR/data/data_warehouse.py +++ b/ITR/data/data_warehouse.py @@ -1,20 +1,17 @@ -import warnings # needed until apply behaves better with Pint quantities in arrays - -from abc import ABC -from typing import List +import warnings # needed until apply behaves better with Pint quantities in arrays +import logging import pandas as pd -from pydantic import ValidationError import numpy as np - -import pint -import pint_pandas -from ITR.data.osc_units import ureg, Q_, PA_ +from abc import ABC +from typing import List, Type +from pydantic import ValidationError from ITR.interfaces import ICompanyAggregates from ITR.data.data_providers import CompanyDataProvider, ProductionBenchmarkDataProvider, IntensityBenchmarkDataProvider -from ITR.configs import ColumnsConfig, TemperatureScoreConfig -from typing import Type -import logging +from ITR.configs import ColumnsConfig, TemperatureScoreConfig, LoggingConfig + +logger = logging.getLogger(__name__) +LoggingConfig.add_config_to_logger(logger) class DataWarehouse(ABC): @@ -51,8 +48,6 @@ def get_preprocessed_company_data(self, company_ids: List[str]) -> List[ICompany """ company_data = self.company_data.get_company_data(company_ids) df_company_data = pd.DataFrame.from_records([c.dict() for c in company_data]).set_index(self.column_config.COMPANY_ID, drop=False) - assert pd.Series(company_ids).isin(df_company_data.index).all(), \ - "some of the company ids are not included in the fundamental data" company_info_at_base_year = self.company_data.get_company_intensity_and_production_at_base_year(company_ids) projected_production = self.benchmark_projected_production.get_company_projected_production( @@ -96,7 +91,6 @@ def _convert_df_to_model(self, df_company_data: pd.DataFrame) -> List[ICompanyAg :param df_company_data: pandas Dataframe with targets :return: A list containing the targets """ - logger = logging.getLogger(__name__) df_company_data = df_company_data.where(pd.notnull(df_company_data), None).replace( {np.nan: None}) # set NaN to None since NaN is float instance companies_data_dict = df_company_data.to_dict(orient="records") @@ -104,7 +98,7 @@ def _convert_df_to_model(self, df_company_data: pd.DataFrame) -> List[ICompanyAg for company_data in companies_data_dict: try: model_companies.append(ICompanyAggregates.parse_obj(company_data)) - except ValidationError as e: + except ValidationError: logger.warning( "(one of) the input(s) of company %s is invalid and will be skipped" % company_data[ self.column_config.COMPANY_NAME]) diff --git a/ITR/data/excel.py b/ITR/data/excel.py index aba378bf..93988d9c 100644 --- a/ITR/data/excel.py +++ b/ITR/data/excel.py @@ -1,48 +1,56 @@ import warnings # needed until apply behaves better with Pint quantities in arrays -from typing import Type, List, Union, Optional +from typing import Type, List, Optional import pandas as pd import numpy as np - from pint import Quantity -# from pint_pandas import PintArray - import pint -import pint_pandas -ureg = pint.get_application_registry() -Q_ = ureg.Quantity -# PA_ = pint_pandas.PintArray +import logging from pydantic import ValidationError from ITR.data.base_providers import BaseCompanyDataProvider, BaseProviderProductionBenchmark, \ BaseProviderIntensityBenchmark -from ITR.configs import ColumnsConfig, TemperatureScoreConfig, SectorsConfig, VariablesConfig, TabsConfig +from ITR.configs import ColumnsConfig, TemperatureScoreConfig, VariablesConfig, TabsConfig, LoggingConfig from ITR.interfaces import BaseModel, ICompanyData, ICompanyEIProjection, EScope, IEIBenchmarkScopes, \ IProductionBenchmarkScopes, IBenchmark, IBenchmarks, IHistoricEmissionsScopes, \ IProductionRealization, IHistoricEIScopes, IHistoricData, IEmissionRealization, IEIRealization, IProjection -import logging -import inspect +logger = logging.getLogger(__name__) +LoggingConfig.add_config_to_logger(logger) + +ureg = pint.get_application_registry() +Q_ = ureg.Quantity + # Excel spreadsheets don't have units elaborated, so we translate sectors to units -sector_to_production_metric = { 'Electricity Utilities':'GJ', 'Steel':'Fe_ton' } -sector_to_intensity_metric = { 'Electricity Utilities':'t CO2/MWh', 'Steel':'t CO2/Fe_ton' } +sector_to_production_metric = {'Electricity Utilities': 'GJ', 'Steel': 'Fe_ton'} +sector_to_intensity_metric = {'Electricity Utilities': 't CO2/MWh', 'Steel': 't CO2/Fe_ton'} # TODO: Force validation for excel benchmarks # Utils functions: -def convert_dimensionless_benchmark_excel_to_model(df_excel: pd.DataFrame, sheetname: str, column_name_region: str, +def convert_dimensionless_benchmark_excel_to_model(df_excel: dict, sheetname: str, column_name_region: str, column_name_sector: str) -> IBenchmarks: """ Converts excel into IBenchmarks - :param excal_path: file path to excel + :param df_excel: dictionary with a pd.DataFrame for each key representing a sheet of an Excel file + :param sheetname: name of Excel file sheet to convert + :param column_name_region: name of region + :param column_name_sector: name of sector :return: IBenchmarks instance (list of IBenchmark) """ - df_ei_bms = df_excel[sheetname].reset_index().drop(columns=['index']).set_index( + try: + df_sheet = df_excel[sheetname] + except KeyError: + logger.error(f"Sheet {sheetname} not in benchmark Excel file.") + raise + + df_ei_bms = df_sheet.reset_index().drop(columns=['index']).set_index( [column_name_region, column_name_sector]) + result = [] for index, row in df_ei_bms.iterrows(): - bm = IBenchmark(region=index[0], sector=index[1], benchmark_metric={'units':'dimensionless'}, + bm = IBenchmark(region=index[0], sector=index[1], benchmark_metric={'units': 'dimensionless'}, projections=[IProjection(year=int(k), value=Q_(v, ureg('dimensionless'))) for k, v in row.items()]) result.append(bm) return IBenchmarks(benchmarks=result) @@ -76,23 +84,13 @@ def __init__(self, excel_path: str, column_config: Type[ColumnsConfig] = Columns :param tempscore_config: An optional TemperatureScoreConfig object containing temperature scoring settings """ self.benchmark_excel = pd.read_excel(excel_path, sheet_name=None, skiprows=0) - self._check_sector_data() self._convert_excel_to_model = convert_dimensionless_benchmark_excel_to_model production_bms = self._convert_excel_to_model(self.benchmark_excel, TabsConfig.PROJECTED_PRODUCTION, column_config.REGION, column_config.SECTOR) super().__init__( - IProductionBenchmarkScopes(benchmark_metric={'units':'dimensionless'}, S1S2=production_bms), column_config, + IProductionBenchmarkScopes(benchmark_metric={'units': 'dimensionless'}, S1S2=production_bms), column_config, tempscore_config) - def _check_sector_data(self) -> None: - """ - Checks if the sector data excel contains the data in the right format - - :return: None - """ - assert pd.Series([TabsConfig.PROJECTED_PRODUCTION, TabsConfig.PROJECTED_EI]).isin( - self.benchmark_excel.keys()).all(), "some tabs are missing in the sector data excel" - def _get_projected_production(self, scope: EScope = EScope.S1S2) -> pd.DataFrame: """ interface from excel file and internally used DataFrame @@ -109,7 +107,6 @@ def __init__(self, excel_path: str, benchmark_temperature: Quantity['delta_degC' column_config: Type[ColumnsConfig] = ColumnsConfig, tempscore_config: Type[TemperatureScoreConfig] = TemperatureScoreConfig): self.benchmark_excel = pd.read_excel(excel_path, sheet_name=None, skiprows=0) - self._check_sector_data() self._convert_excel_to_model = convert_intensity_benchmark_excel_to_model EI_benchmarks = self._convert_excel_to_model(self.benchmark_excel, TabsConfig.PROJECTED_EI, column_config.REGION, column_config.SECTOR) @@ -122,14 +119,6 @@ def __init__(self, excel_path: str, benchmark_temperature: Quantity['delta_degC' column_config, tempscore_config) - def _check_sector_data(self) -> None: - """ - Checks if the sector data excel contains the data in the right format - :return: None - """ - assert pd.Series([TabsConfig.PROJECTED_PRODUCTION, TabsConfig.PROJECTED_EI]).isin( - self.benchmark_excel.keys()).all(), "some tabs are missing in the sector data excel" - class ExcelProviderCompany(BaseCompanyDataProvider): """ @@ -146,17 +135,21 @@ def __init__(self, excel_path: str, column_config: Type[ColumnsConfig] = Columns self.historic_years = None super().__init__(self._companies, column_config, tempscore_config) - def _check_company_data(self, df: pd.DataFrame) -> None: + def _check_company_data(self, company_tabs: dict) -> None: """ Checks if the company data excel contains the data in the right format :return: None """ - required_tabs = [TabsConfig.FUNDAMENTAL, TabsConfig.PROJECTED_TARGET] - optional_tabs = [TabsConfig.PROJECTED_EI, TabsConfig.HISTORIC_DATA] - missing_tabs = [tab for tab in required_tabs + optional_tabs if tab not in df] - assert not any(tab in missing_tabs for tab in required_tabs), f"Tabs {required_tabs} are required." - assert not all(tab in missing_tabs for tab in optional_tabs), f"Either of the tabs {optional_tabs} is required." + required_tabs = {TabsConfig.FUNDAMENTAL, TabsConfig.PROJECTED_TARGET} + optional_tabs = {TabsConfig.PROJECTED_EI, TabsConfig.HISTORIC_DATA} + missing_tabs = (required_tabs | optional_tabs).difference(set(company_tabs)) + if missing_tabs.intersection(required_tabs): + logger.error(f"Tabs {required_tabs} are required.") + raise ValueError(f"Tabs {required_tabs} are required.") + if optional_tabs.issubset(missing_tabs): + logger.error(f"Either of the tabs {optional_tabs} is required.") + raise ValueError(f"Either of the tabs {optional_tabs} is required.") def _convert_from_excel_data(self, excel_path: str) -> List[ICompanyData]: """ @@ -165,22 +158,22 @@ def _convert_from_excel_data(self, excel_path: str) -> List[ICompanyData]: :param excel_path: file path to excel file :return: List of ICompanyData objects """ - df_company_data = pd.read_excel(excel_path, sheet_name=None, skiprows=0) - self._check_company_data(df_company_data) + company_data = pd.read_excel(excel_path, sheet_name=None, skiprows=0) + self._check_company_data(company_data) - df_fundamentals = df_company_data[TabsConfig.FUNDAMENTAL].set_index(ColumnsConfig.COMPANY_ID, drop=False) + df_fundamentals = company_data[TabsConfig.FUNDAMENTAL].set_index(ColumnsConfig.COMPANY_ID, drop=False) df_fundamentals[ColumnsConfig.PRODUCTION_METRIC] = df_fundamentals[ColumnsConfig.SECTOR].map(sector_to_production_metric) - company_ids = df_fundamentals[ColumnsConfig.COMPANY_ID].unique() - df_targets = self._get_projection(company_ids, df_company_data[TabsConfig.PROJECTED_TARGET], df_fundamentals[ColumnsConfig.PRODUCTION_METRIC]) - if TabsConfig.PROJECTED_EI in df_company_data: - df_ei = self._get_projection(company_ids, df_company_data[TabsConfig.PROJECTED_EI], df_fundamentals[ColumnsConfig.PRODUCTION_METRIC]) + company_ids = list(df_fundamentals[ColumnsConfig.COMPANY_ID].unique()) + df_targets = self._get_projection(company_ids, company_data[TabsConfig.PROJECTED_TARGET], df_fundamentals[ColumnsConfig.PRODUCTION_METRIC]) + if TabsConfig.PROJECTED_EI in company_data: + df_ei = self._get_projection(company_ids, company_data[TabsConfig.PROJECTED_EI], df_fundamentals[ColumnsConfig.PRODUCTION_METRIC]) else: df_ei = None - if TabsConfig.HISTORIC_DATA in df_company_data: - df_historic = df_company_data[TabsConfig.HISTORIC_DATA].set_index(ColumnsConfig.COMPANY_ID, drop=False) + if TabsConfig.HISTORIC_DATA in company_data: + df_historic = company_data[TabsConfig.HISTORIC_DATA].set_index(ColumnsConfig.COMPANY_ID, drop=False) df_historic = df_historic.merge(df_fundamentals[ColumnsConfig.PRODUCTION_METRIC].rename('units'), left_index=True, right_index=True) - df_historic.loc[df_historic.variable=='Emissions', 'units'] = 't CO2' - df_historic.loc[df_historic.variable=='Emission Intensities', 'units'] = 't CO2/' + df_historic.loc[df_historic.variable=='Emission Intensities', 'units'] + df_historic.loc[df_historic.variable == 'Emissions', 'units'] = 't CO2' + df_historic.loc[df_historic.variable == 'Emission Intensities', 'units'] = 't CO2/' + df_historic.loc[df_historic.variable == 'Emission Intensities', 'units'] df_historic = self._get_historic_data(company_ids, df_historic) else: df_historic = None @@ -205,25 +198,13 @@ def _company_df_to_model(self, df_fundamentals: pd.DataFrame, df_targets: pd.Dat :param df_ei: pandas Dataframe with emission intensities :return: A list containing the ICompanyData objects """ - logger = logging.getLogger(__name__) # set NaN to None since NaN is float instance df_fundamentals = df_fundamentals.where(pd.notnull(df_fundamentals), None).replace({np.nan: None}) companies_data_dict = df_fundamentals.to_dict(orient="records") model_companies: List[ICompanyData] = [] for company_data in companies_data_dict: - # company_data is a dict, not a dataframe try: - # convert_unit_of_measure = company_data[ColumnsConfig.SECTOR] in self.CORRECTION_SECTORS - # company_targets = self._convert_series_to_projections( - # df_targets.loc[company_data[ColumnsConfig.COMPANY_ID], :], convert_unit_of_measure) - # company_ei = self._convert_series_to_projections( - # df_ei.loc[company_data[ColumnsConfig.COMPANY_ID], :], - # convert_unit_of_measure) - - # company_data.update({ColumnsConfig.PROJECTED_TARGETS: {'S1S2': {'projections': df_targets}}}) - # company_data.update({ColumnsConfig.PROJECTED_EI: {'S1S2': {'projections': df_ei}}}) - company_id = company_data[ColumnsConfig.COMPANY_ID] production_metric = sector_to_production_metric[company_data[ColumnsConfig.SECTOR]] intensity_metric = sector_to_intensity_metric[company_data[ColumnsConfig.SECTOR]] @@ -255,15 +236,14 @@ def _company_df_to_model(self, df_fundamentals: pd.DataFrame, df_targets: pd.Dat logger.warning( f"EX {e}: (one of) the input(s) of company %s is invalid and will be skipped" % company_data[ ColumnsConfig.COMPANY_NAME]) - break - pass return model_companies # Workaround for bug (https://github.com/pandas-dev/pandas/issues/20824) in Pandas where NaN are treated as zero def _np_sum(g): return np.sum(g.values) - def _get_projection(self, company_ids: List[str], projections: pd.DataFrame, production_metric: pd.DataFrame) -> pd.DataFrame: + def _get_projection(self, company_ids: List[str], projections: pd.DataFrame, production_metric: pd.DataFrame) \ + -> pd.DataFrame: """ get the projected emission intensities for list of companies :param company_ids: list of company ids @@ -271,11 +251,13 @@ def _get_projection(self, company_ids: List[str], projections: pd.DataFrame, pro :param production_metric: Dataframe with production_metric per company :return: series of projected emission intensities """ - projections = projections.reset_index().set_index(ColumnsConfig.COMPANY_ID) - assert all(company_id in projections.index for company_id in company_ids), \ - f"company ids missing in provided projections" + missing_companies = [company_id for company_id in company_ids if company_id not in projections.index] + if missing_companies: + error_message = f"Missing target or trajectory projections for companies with ID: {missing_companies}" + logger.error(error_message) + raise ValueError(error_message) projections = projections.loc[company_ids, range(TemperatureScoreConfig.CONTROLS_CONFIG.base_year, TemperatureScoreConfig.CONTROLS_CONFIG.target_end_year + 1)] @@ -295,12 +277,12 @@ def _get_historic_data(self, company_ids: List[str], historic_data: pd.DataFrame :param historic_data: Dataframe Productions, Emissions, and Emission Intensities mixed together :return: historic data with unit attributes added to yearly data on a per-element basis """ - # We don't need this reset/set index dance because we set the index to COMPANY_ID to get units sorted - # historic_data = historic_data.reset_index().drop(columns=['index']).set_index(ColumnsConfig.COMPANY_ID) - self.historic_years = [column for column in historic_data.columns if type(column) == int] missing_ids = [company_id for company_id in company_ids if company_id not in historic_data.index] - assert not missing_ids, f"Company ids missing in provided historic data: {missing_ids}" + if missing_ids: + error_message = f"Company ids missing in provided historic data: {missing_ids}" + logger.error(error_message) + raise ValueError(error_message) # There has got to be a better way to do this... historic_data = ( diff --git a/ITR/data/template.py b/ITR/data/template.py index cf9064c5..5488e945 100644 --- a/ITR/data/template.py +++ b/ITR/data/template.py @@ -7,19 +7,23 @@ from pydantic import ValidationError from ITR.data.base_providers import BaseCompanyDataProvider -from ITR.configs import ColumnsConfig, TemperatureScoreConfig, VariablesConfig, TabsConfig, SectorsConfig +from ITR.configs import ColumnsConfig, TemperatureScoreConfig, VariablesConfig, TabsConfig, SectorsConfig, LoggingConfig from ITR.interfaces import ICompanyData, EScope, \ IHistoricEmissionsScopes, \ IProductionRealization, IHistoricEIScopes, IHistoricData, ITargetData, IEmissionRealization, IEIRealization, \ IProjection, ProjectionControls +from ITR.utils import get_project_root ureg = pint.get_application_registry() Q_ = ureg.Quantity -from ITR.utils import get_project_root pkg_root = get_project_root() df_country_regions = pd.read_csv(f"{pkg_root}/data/country_region_info.csv") +logger = logging.getLogger(__name__) +LoggingConfig.add_config_to_logger(logger) + + def ITR_country_to_region(country): if len(country)==2: regions = df_country_regions[df_country_regions.alpha_2==country].region_ar6_10 @@ -38,7 +42,8 @@ def ITR_country_to_region(country): if 'Asia' in region: return 'Asia' return 'Global' - + + class TemplateProviderCompany(BaseCompanyDataProvider): """ Data provider skeleton for CSV files. This class serves primarily for testing purposes only! @@ -56,18 +61,6 @@ def __init__(self, excel_path: str, self._companies = self._convert_from_template_company_data(excel_path) super().__init__(self._companies, column_config, tempscore_config, projection_controls) - def _check_company_data(self, df: pd.DataFrame) -> None: - """ - Checks if the company data excel contains the data in the right format - - :return: None - """ - required_tabs = [TabsConfig.TEMPLATE_INPUT_DATA, TabsConfig.TEMPLATE_TARGET_DATA] - missing_tabs = [tab for tab in required_tabs if tab not in df] - assert not any(tab in missing_tabs for tab in required_tabs), f"Tabs {required_tabs} are required." - - - def _convert_from_template_company_data(self, excel_path: str) -> List[ICompanyData]: """ Converts the Excel template to list of ICompanyData objects. All dataprovider features will be inhereted from @@ -84,14 +77,13 @@ def _fixup_name(x): return f"{suffix}-{prefix}" df_company_data = pd.read_excel(excel_path, sheet_name=None, skiprows=0) - self._check_company_data(df_company_data) input_data_sheet = TabsConfig.TEMPLATE_INPUT_DATA - if "Test input data" in df_company_data: - input_data_sheet = "Test input data" - - df = df_company_data[input_data_sheet] - + try: + df = df_company_data[input_data_sheet] + except KeyError as e: + logger.error(f"Tab {input_data_sheet} is required in input Excel file.") + raise df['exposure'].fillna('presumed_equity', inplace=True) # TODO: Fix market_cap column naming inconsistency @@ -105,20 +97,27 @@ def _fixup_name(x): # GH https://github.com/pandas-dev/pandas/issues/46044 df_fundamentals.company_id = df_fundamentals.company_id.astype('object') - company_ids = df_fundamentals[ColumnsConfig.COMPANY_ID].unique() - - # testing if all data is in the same currency - assert len(df_fundamentals[ColumnsConfig.TEMPLATE_CURRENCY].unique()) == 1, f"All data should be in the same currency. Please adjust excel template input." + if len(df_fundamentals[ColumnsConfig.TEMPLATE_CURRENCY].unique()) != 1: + error_message = f"All data should be in the same currency." + logger.error(error_message) + raise ValueError(error_message) # are there empty sectors? comp_with_missing_sectors = df_fundamentals[ColumnsConfig.COMPANY_ID][df_fundamentals[ColumnsConfig.SECTOR].isnull()].to_list() - assert len(comp_with_missing_sectors) == 0, f"For {comp_with_missing_sectors} companies the sector column is empty. Correct it in excel template and try one more time." + if comp_with_missing_sectors: + error_message = f"For {comp_with_missing_sectors} companies the sector column is empty." + logger.error(error_message) + raise ValueError(error_message) + # testing if only valid sectors are provided sectors_from_df = df_fundamentals[ColumnsConfig.SECTOR].unique() configured_sectors = SectorsConfig.get_configured_sectors() not_configured_sectors = [sec for sec in sectors_from_df if sec not in configured_sectors] - assert len(not_configured_sectors) == 0, f"Sector {not_configured_sectors} is not covered by the ITR tool currently. Delete it from excel template." + if not_configured_sectors: + error_message = f"Sector {not_configured_sectors} is not covered by the ITR tool currently." + logger.error(error_message) + raise ValueError(error_message) # The nightmare of naming columns 20xx_metric instead of metric_20xx...and potentially dealing with data from 1990s... historic_columns = [col for col in df_fundamentals.columns if col[:1].isdigit()] @@ -128,7 +127,6 @@ def _fixup_name(x): # Checking if there are not many missing market cap missing_cap_ids = df_fundamentals[ColumnsConfig.COMPANY_ID][df_fundamentals[ColumnsConfig.COMPANY_MARKET_CAP].isnull()].to_list() - assert (len(missing_cap_ids)/len(df_fundamentals)) < 0.2, f"Too many companies with missing market capitalization. Cannot proceed." # For the missing Market Cap we should use the ratio below to get dummy market cap: # (Avg for the Sector (Market Cap / Revenues) + Avg for the Sector (Market Cap / Assets)) 2 df_fundamentals['MCap_to_Reven']=df_fundamentals[ColumnsConfig.COMPANY_MARKET_CAP]/df_fundamentals[ColumnsConfig.COMPANY_REVENUE] # new temp column with ratio @@ -138,11 +136,9 @@ def _fixup_name(x): df_fundamentals[ColumnsConfig.COMPANY_MARKET_CAP] = df_fundamentals[ColumnsConfig.COMPANY_MARKET_CAP].fillna(0.5*(df_fundamentals[ColumnsConfig.COMPANY_REVENUE] * df_fundamentals['AVG_MCap_to_Reven']+df_fundamentals[ColumnsConfig.COMPANY_TOTAL_ASSETS] * df_fundamentals['AVG_MCap_to_Assets'])) df_fundamentals.drop(['MCap_to_Reven','MCap_to_Assets','AVG_MCap_to_Reven','AVG_MCap_to_Assets'], axis=1, inplace=True) # deleting temporary columns - if missing_cap_ids is not None: - def custom_formatwarning(msg, *args, **kwargs): - return str(msg) + '\n' # ignore everything except the message - warnings.formatwarning = custom_formatwarning - warnings.warn(f"Market capitalisation was missing for {missing_cap_ids}.\nSo the values were calculated using the average MCap/Rev and MCap/Assets from available companies.\nScript is still running") + if missing_cap_ids: + logger.warning(f"Missing market capitalisation values are estimated for companies with ID: " + f"{missing_cap_ids}.") # df_fundamentals now ready for conversion to list of models @@ -177,18 +173,47 @@ def custom_formatwarning(msg, *args, **kwargs): self.historic_years = [column for column in df_historic_data.columns if type(column) == int] test_target_sheet = TabsConfig.TEMPLATE_TARGET_DATA - if "Test target data" in df_company_data: - test_target_sheet = "Test target data" - df_target_data = df_company_data[test_target_sheet].set_index('company_id').convert_dtypes() + try: + df_target_data = df_company_data[test_target_sheet].set_index('company_id').convert_dtypes() + except KeyError: + logger.error(f"Tab {test_target_sheet} is required in input Excel file.") + raise - # TODO: need to fix Pydantic definition or data to allow optional int. In the mean time... - df_target_data.loc[df_target_data.target_start_year.isna(), 'target_start_year'] = 2020 - df_target_data.loc[df_target_data.netzero_year.isna(), 'netzero_year'] = 2050 + df_target_data = self._validate_target_data(df_target_data) # company_id, netzero_year, target_type, target_scope, target_start_year, target_base_year, target_base_year_qty, target_base_year_unit, target_year, target_reduction_ambition # df_target_data now ready for conversion to model for each company return self._company_df_to_model(df_fundamentals, df_target_data, df_historic_data) + def _validate_target_data(self, target_data: pd.DataFrame) -> pd.DataFrame: + """ + Performs checks on the supplied target data. Some values are put in to make the tool function. + :param target_data: + :return: + """ + # TODO: need to fix Pydantic definition or data to allow optional int. In the mean time... + c_ids_without_start_year = list(target_data[target_data['target_start_year'].isna()].index) + if c_ids_without_start_year: + target_data.loc[target_data.target_start_year.isna(), 'target_start_year'] = 2021 + logger.warning(f"Missing target start year set to 2021 for companies with ID: {c_ids_without_start_year}") + + c_ids_invalid_netzero_year = list(target_data[target_data['netzero_year'] > 2050].index) + if c_ids_invalid_netzero_year: + error_message = f"Invalid net-zero target years (>2050) are entered for companies with ID: " \ + f"{c_ids_without_netzero_year}" + logger.error(error_message) + raise ValueError(error_message) + target_data.loc[target_data.netzero_year.isna(), 'netzero_year'] = 2050 + + c_ids_with_increase_target = list(target_data[target_data['target_reduction_ambition'] < 0].index) + if c_ids_with_increase_target: + error_message = f"Negative target reduction ambition is invalid and entered for companies with ID: " \ + f"{c_ids_with_increase_target}" + logger.error(error_message) + raise ValueError(error_message) + + return target_data + def _convert_series_to_IProjections(self, projections: pd.Series) -> [IProjection]: """ Converts a Pandas Series to a list of IProjection @@ -210,10 +235,6 @@ def _company_df_to_model(self, df_fundamentals: pd.DataFrame, :param df_historic_data: pandas Dataframe with historic emissions, intensity, and production information :return: A list containing the ICompanyData objects """ - logger = logging.getLogger(__name__) - # set NaN to None since NaN is float instance - df_fundamentals = df_fundamentals.where(pd.notnull(df_fundamentals), None).replace(to_replace=np.nan, value=None) - companies_data_dict = df_fundamentals.to_dict(orient="records") model_companies: List[ICompanyData] = [] for company_data in companies_data_dict: @@ -226,12 +247,6 @@ def _company_df_to_model(self, df_fundamentals: pd.DataFrame, # the ghg_s1s2 and ghg_s3 variables are values "as of" the financial data # TODO pull ghg_s1s2 and ghg_s3 from historic data as appropriate - # v = df_fundamentals[df_fundamentals[ColumnsConfig.COMPANY_ID]==company_id][ColumnsConfig.GHG_SCOPE12].squeeze() - # company_data[ColumnsConfig.GHG_SCOPE12] = Q_(v or np.nan, ureg(units)) - # v = df_fundamentals[df_fundamentals[ColumnsConfig.COMPANY_ID]==company_id][ColumnsConfig.GHG_SCOPE3].squeeze() - # company_data[ColumnsConfig.GHG_SCOPE3] = Q_(v or np.nan, ureg(units)) - - # df.loc[[index]] is like df.loc[index, :] except it always returns a DataFrame and not a Series when there's only one row if df_historic_data is not None: company_data[ColumnsConfig.HISTORIC_DATA] = self._convert_historic_data( df_historic_data.loc[[company_data[ColumnsConfig.COMPANY_ID]]].reset_index()).dict() @@ -256,11 +271,9 @@ def _company_df_to_model(self, df_fundamentals: pd.DataFrame, company_data[ColumnsConfig.COMPANY_MARKET_CAP] = np.nan model_companies.append(ICompanyData.parse_obj(company_data)) - except ValidationError as e: - logger.warning( - f"EX {e}: (one of) the input(s) of company %s is invalid and will be skipped" % company_data[ - ColumnsConfig.COMPANY_NAME]) - continue + except ValidationError: + logger.error(f"(One of) the input(s) of company {company_data['company_name']} is invalid") + raise return model_companies # Workaround for bug (https://github.com/pandas-dev/pandas/issues/20824) in Pandas where NaN are treated as zero @@ -276,11 +289,13 @@ def _get_projection(self, company_ids: List[str], projections: pd.DataFrame, :param production_metric: Dataframe with production_metric per company :return: series of projected emission intensities """ - projections = projections.reset_index().set_index(ColumnsConfig.COMPANY_ID) - assert all(company_id in projections.index for company_id in company_ids), \ - f"company ids missing in provided projections" + missing_companies = [company_id for company_id in company_ids if company_id not in projections.index] + if missing_companies: + error_message = f"Missing target or trajectory projections for companies with ID: {missing_companies}" + logger.error(error_message) + raise ValueError(error_message) projections = projections.loc[company_ids, range(TemperatureScoreConfig.CONTROLS_CONFIG.base_year, TemperatureScoreConfig.CONTROLS_CONFIG.target_end_year + 1)] @@ -322,11 +337,11 @@ def _get_historic_data(self, company_ids: List[str], historic_data: pd.DataFrame :param historic_data: Dataframe Productions, Emissions, and Emission Intensities mixed together :return: historic data with unit attributes added on a per-element basis """ - # We don't need this reset/set index dance because we set the index to COMPANY_ID to get units sorted - # historic_data = historic_data.reset_index().drop(columns=['index']).set_index(ColumnsConfig.COMPANY_ID) - missing_ids = [company_id for company_id in company_ids if company_id not in historic_data.index] - assert not missing_ids, f"Company ids missing in provided historic data: {missing_ids}" + if missing_ids: + error_message = f"Company ids missing in provided historic data: {missing_ids}" + logger.error(error_message) + raise ValueError(error_message) # There has got to be a better way to do this... historic_data = ( @@ -355,8 +370,7 @@ def _convert_historic_data(self, historic: pd.DataFrame) -> IHistoricData: # Note that for the three following functions, we pd.Series.squeeze() the results because it's just one year / one company def _convert_to_historic_emissions(self, emissions: pd.DataFrame) -> Optional[IHistoricEmissionsScopes]: """ - :param historic: historic production, emission and emission intensity data for a company - :param convert_unit: whether or not to convert the units of measure + :param emissions: historic emissions data for a company :return: List of historic emissions per scope, or None if no data are provided """ if emissions.empty: @@ -370,26 +384,19 @@ def _convert_to_historic_emissions(self, emissions: pd.DataFrame) -> Optional[IH else [IEmissionRealization(year=year, value=results[year].squeeze()) for year in self.historic_years] return IHistoricEmissionsScopes(**emissions_scopes) - def _convert_to_historic_productions(self, productions: pd.DataFrame) \ - -> Optional[List[IProductionRealization]]: + def _convert_to_historic_productions(self, productions: pd.DataFrame) -> Optional[List[IProductionRealization]]: """ - :param historic: historic production, emission and emission intensity data for a company + :param productions: historic production data for a company :return: A list containing historic productions, or None if no data are provided """ if productions.empty: return None - try: - production_realizations = \ - [IProductionRealization(year=year, value=productions[year].squeeze()) for year in self.historic_years] - except TypeError as e: - print(e) - return production_realizations - - def _convert_to_historic_ei(self, intensities: pd.DataFrame) \ - -> Optional[IHistoricEIScopes]: + return [IProductionRealization(year=year, value=productions[year].squeeze()) for year in self.historic_years] + + def _convert_to_historic_ei(self, intensities: pd.DataFrame) -> Optional[IHistoricEIScopes]: """ - :param historic: historic production, emission and emission intensity data for a company + :param intensities: historic emission intensity data for a company :return: A list of historic emission intensities per scope, or None if no data are provided """ if intensities.empty: @@ -400,10 +407,7 @@ def _convert_to_historic_ei(self, intensities: pd.DataFrame) \ for scope in EScope.get_scopes(): results = intensities.loc[intensities[ColumnsConfig.SCOPE] == scope] - try: - intensity_scopes[scope] = [] \ - if results.empty \ - else [IEIRealization(year=year, value=results[year].squeeze()) for year in self.historic_years] - except TypeError as e: - print(e) + intensity_scopes[scope] = [] \ + if results.empty \ + else [IEIRealization(year=year, value=results[year].squeeze()) for year in self.historic_years] return IHistoricEIScopes(**intensity_scopes) diff --git a/ITR/interfaces.py b/ITR/interfaces.py index e957ddda..6cf021e3 100644 --- a/ITR/interfaces.py +++ b/ITR/interfaces.py @@ -412,7 +412,7 @@ class IHistoricData(PintModel): class ITargetData(PintModel): netzero_year: Optional[int] - target_type: Union[Literal['intensity'], Literal['absolute'], Literal['other']] + target_type: Union[Literal['intensity'], Literal['absolute'], Literal['Intensity'], Literal['Absolute']] target_scope: EScope target_start_year: Optional[int] target_base_year: int diff --git a/ITR/utils.py b/ITR/utils.py index 917a9a23..c05f90db 100644 --- a/ITR/utils.py +++ b/ITR/utils.py @@ -2,12 +2,16 @@ from pathlib import Path from typing import List, Optional, Tuple from pint import Quantity +import logging -from .configs import ColumnsConfig, TemperatureScoreConfig +from .configs import ColumnsConfig, TemperatureScoreConfig, LoggingConfig from .interfaces import PortfolioCompany, EScope, ETimeFrames, ScoreAggregations, TemperatureScoreControls from .data.data_warehouse import DataWarehouse from .portfolio_aggregation import PortfolioAggregationMethod +logger = logging.getLogger(__name__) +LoggingConfig.add_config_to_logger(logger) + # If this file is moved, the computation of get_project_root may also need to change def get_project_root() -> Path: @@ -52,9 +56,18 @@ def dataframe_to_portfolio(df_portfolio: pd.DataFrame) -> List[PortfolioCompany] :return: A list of portfolio companies """ # Adding some non-empty checks for portfolio upload - assert df_portfolio[ColumnsConfig.INVESTMENT_VALUE].isnull().sum() == 0, f"There is empty data for investment value for some companies in the input file. Please correct the file and try again." - assert df_portfolio[ColumnsConfig.COMPANY_ISIN].isnull().sum() == 0, f"There is empty data for company ISIN for some companies in the input file. Please correct the file and try again." - assert df_portfolio[ColumnsConfig.COMPANY_ID].isnull().sum() == 0, f"There is empty data for company ID for some companies in the input file. Please correct the file and try again." + if df_portfolio[ColumnsConfig.INVESTMENT_VALUE].isnull().any(): + error_message = f"Investment values are missing for one or more companies in the input file." + logger.error(error_message) + raise ValueError(error_message) + if df_portfolio[ColumnsConfig.COMPANY_ISIN].isnull().any(): + error_message = f"Company ISINs are missing for one or more companies in the input file." + logger.error(error_message) + raise ValueError(error_message) + if df_portfolio[ColumnsConfig.COMPANY_ID].isnull().any(): + error_message = f"Company IDs are missing for one or more companies in the input file." + logger.error(error_message) + raise ValueError(error_message) return [PortfolioCompany.parse_obj(company) for company in df_portfolio.to_dict(orient="records")] diff --git a/test/test_base_providers.py b/test/test_base_providers.py index d7e77db0..b5e14f6e 100644 --- a/test/test_base_providers.py +++ b/test/test_base_providers.py @@ -1,7 +1,6 @@ import json import unittest import os - import pandas as pd import ITR @@ -32,11 +31,11 @@ def setUp(self) -> None: with open(self.company_json) as json_file: parsed_json = json.load(json_file) for company_data in parsed_json: - company_data['emissions_metric'] = {'units':'t CO2'} + company_data['emissions_metric'] = {'units': 't CO2'} if company_data['sector'] == 'Electricity Utilities': - company_data['production_metric'] = {'units':'MWh'} + company_data['production_metric'] = {'units': 'MWh'} elif company_data['sector'] == 'Steel': - company_data['production_metric'] = {'units':'Fe_ton'} + company_data['production_metric'] = {'units': 'Fe_ton'} self.companies = [ICompanyData.parse_obj(company_data) for company_data in parsed_json] self.base_company_data = BaseCompanyDataProvider(self.companies) diff --git a/test/test_excel_provider.py b/test/test_excel_provider.py index 6f6f80d3..270a96e8 100644 --- a/test/test_excel_provider.py +++ b/test/test_excel_provider.py @@ -1,10 +1,9 @@ import os import unittest - import pandas as pd - from numpy.testing import assert_array_equal import ITR + from ITR.data.excel import ExcelProviderCompany, ExcelProviderProductionBenchmark, ExcelProviderIntensityBenchmark from ITR.data.data_warehouse import DataWarehouse from ITR.configs import ColumnsConfig, TemperatureScoreConfig diff --git a/test/test_interfaces.py b/test/test_interfaces.py index a6a02ac2..915015f2 100644 --- a/test/test_interfaces.py +++ b/test/test_interfaces.py @@ -5,7 +5,8 @@ from ITR.data.osc_units import ureg, Q_, PA_ -from ITR.interfaces import EScope, PowerGeneration, IntensityMetric, IProjection, IBenchmark, ICompanyData, ICompanyEIProjectionsScopes, ICompanyEIProjections +from ITR.interfaces import EScope, PowerGeneration, IntensityMetric, IProjection, IBenchmark, ICompanyData, \ + ICompanyEIProjectionsScopes, ICompanyEIProjections, ITargetData class TestInterfaces(unittest.TestCase): @@ -58,3 +59,30 @@ def test_ICompanyData(self): base_year_production=71500001.3960884, company_revenue=7370536918 ) + + def test_ITargetData(self): + target_data = ITargetData( + netzero_year=2022, + target_type='Absolute', + target_scope=EScope.S1S2, + target_start_year=2020, + target_base_year=2018, + target_end_year=2040, + target_base_year_qty=2.0, + target_base_year_unit='t CO2', + target_reduction_pct=0.2 + ) + + def test_fail_ITargetData(self): + with self.assertRaises(ValueError): + target_data = ITargetData( + netzero_year=2022, + target_type='absolute', + target_scope=EScope.S1S2, + target_start_year=2020, + target_base_year=2018, + target_end_year=2020, # This value should be larger than 2022 + target_base_year_qty=2.0, + target_base_year_unit='t CO2', + target_reduction_pct=0.2 + ) From 852ae594dbbb64b3dec289b774f1c6c5729d1e54 Mon Sep 17 00:00:00 2001 From: David Kroon <35101727+dp90@users.noreply.github.com> Date: Tue, 21 Jun 2022 15:01:28 +0200 Subject: [PATCH 256/345] Remove Exelon Corp from target data - target already expired Signed-off-by: David Kroon <35101727+dp90@users.noreply.github.com> Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- .../data/20220415 ITR Tool Sample Data.xlsx | Bin 72124 -> 71956 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/examples/data/20220415 ITR Tool Sample Data.xlsx b/examples/data/20220415 ITR Tool Sample Data.xlsx index e5a395db1a92d570ecac94dc6288e1ebcb3da799..3e4ce16f33f086f78dbdc500a97c6af7187a1558 100644 GIT binary patch delta 44667 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%0D8Ca5Hw7MElxTaLGrh@fW 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 I*pNW{Kk+aessI20 From 466623a4ab2b00bfe76a04ccaae662048be4a6f7 Mon Sep 17 00:00:00 2001 From: Michael Tiemann Date: Sun, 5 Jun 2022 21:47:00 -0400 Subject: [PATCH 257/345] Added OECD show-and-tell Demonstrate how we can augment a grouped portfolio with other grouping criteria that can be displayed in various ways downstream. Addresses https://github.com/os-climate/ITR/issues/108 Signed-off-by: MichaelTiemannOSC Signed-off-by: Michael Tiemann Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- ITR/data/oecd_iso.csv | 39 + examples/quick_template_score_calc.ipynb | 1026 +++++++++++++++++++++- 2 files changed, 1027 insertions(+), 38 deletions(-) create mode 100644 ITR/data/oecd_iso.csv diff --git a/ITR/data/oecd_iso.csv b/ITR/data/oecd_iso.csv new file mode 100644 index 00000000..d465c56c --- /dev/null +++ b/ITR/data/oecd_iso.csv @@ -0,0 +1,39 @@ +alpha_2,alpha_3 +AU,AUS +AT,AUT +BE,BEL +CA,CAN +CH,CHE +CL,CHL +CO,COL +CR,CRI +CZ,CZE +DE,DEU +DK,DNK +ES,ESP +EE,EST +FI,FIN +FR,FRA +GB,GBR +GR,GRC +HU,HUN +IE,IRL +IS,ISL +IL,ISR +IT,ITA +JP,JPN +KR,KOR +LT,LTU +LU,LUX +LV,LVA +MX,MEX +NL,NLD +NO,NOR +NZ,NZL +PL,POL +PT,PRT +SK,SVK +SI,SVN +SE,SWE +TR,TUR +US,USA diff --git a/examples/quick_template_score_calc.ipynb b/examples/quick_template_score_calc.ipynb index 58f3ef64..843f7bae 100644 --- a/examples/quick_template_score_calc.ipynb +++ b/examples/quick_template_score_calc.ipynb @@ -40,7 +40,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 1, "metadata": {}, "outputs": [], "source": [ @@ -60,18 +60,34 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 2, "metadata": { "tags": [] }, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "['/Users/michael/Dropbox/My Mac (MacBook-Pro.local)/Documents/GitHub/os-climate/ITR/examples',\n", + " '/Users/michael/miniconda3/envs/ITR/lib/python39.zip',\n", + " '/Users/michael/miniconda3/envs/ITR/lib/python3.9',\n", + " '/Users/michael/miniconda3/envs/ITR/lib/python3.9/lib-dynload',\n", + " '',\n", + " '/Users/michael/miniconda3/envs/ITR/lib/python3.9/site-packages',\n", + " '/Users/michael/Dropbox/My Mac (MacBook-Pro.local)/Documents/GitHub/os-climate/ITR']" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "display(sys.path)" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 3, "metadata": { "tags": [] }, @@ -94,9 +110,20 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 4, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Testing unit registry\n", + "=====================\n", + "The gas species CO2e, which was a gwp of 1: 1 CO2e\n", + "A gigaton of CO2e: 1 CO2e * gigametric_ton\n" + ] + } + ], "source": [ "print(\"Testing unit registry\\n=====================\")\n", "one_co2 = ureg(\"CO2e\")\n", @@ -117,7 +144,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 5, "metadata": {}, "outputs": [], "source": [ @@ -173,7 +200,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 6, "metadata": {}, "outputs": [], "source": [ @@ -185,7 +212,7 @@ "gh = Github(os.environ['GITHUB_TOKEN'])\n", "\n", "# Get repository by name and select the proper branch\n", - "repo = gh.get_repo(\"os-climate/ITR\").get_branch(branch=\"develop-pint-steel-projections\")\n", + "repo = gh.get_repo(\"os-climate/ITR\").get_branch(branch=\"develop\")\n", "\n", "if not os.path.isdir(\"data\"):\n", " os.mkdir(\"data\")\n", @@ -220,7 +247,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 7, "metadata": {}, "outputs": [], "source": [ @@ -239,9 +266,19 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 8, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "Market capitalisation was missing for ['US18551QAA58', 'CA2908761018'].\n", + "So the values were calculated using the average MCap/Rev and MCap/Assets from available companies.\n", + "Script is still running\n" + ] + } + ], "source": [ "# Remove the # and space on the next line to point the template_data_path variable at your own data\n", "# template_data_path = \"data/your_template_here.xlsx\"\n", @@ -275,9 +312,19 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 9, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Benchmark Temperature = 1.5 delta_degree_Celsius\n", + "Benchmark Global Budget = 521.0526315789474 CO2 * gigametric_ton\n", + "AFOLU included = False\n" + ] + } + ], "source": [ "template_provider = DataWarehouse(template_company_data, base_production_bm, base_intensity_bm)\n", "\n", @@ -301,9 +348,102 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 10, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/html": [ + "

      \n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
      company_namecompany_leicompany_idcompany_isininvestment_value
      48Versant PowerNQZVQT2P5IUF2PGA1Q48CA2908761018CA290876101843918
      49Vistra Corp.549300KP43CPCUJOOG15US92840M1027US92840M102795541
      50WEC Energy Group549300IGLYTZUK3PVP70US92939U1060US92939U1060192147
      51WORTHINGTON INDUSTRIES INC1WRCIANKYOIK6KYE5E82US9818111026US9818111026145112
      52Xcel Energy, Inc.LGJNMI9GH8XIDG5RCM61US98389B1008US98389B100843111
      \n", + "
      " + ], + "text/plain": [ + " company_name company_lei company_id \\\n", + "48 Versant Power NQZVQT2P5IUF2PGA1Q48 CA2908761018 \n", + "49 Vistra Corp. 549300KP43CPCUJOOG15 US92840M1027 \n", + "50 WEC Energy Group 549300IGLYTZUK3PVP70 US92939U1060 \n", + "51 WORTHINGTON INDUSTRIES INC 1WRCIANKYOIK6KYE5E82 US9818111026 \n", + "52 Xcel Energy, Inc. LGJNMI9GH8XIDG5RCM61 US98389B1008 \n", + "\n", + " company_isin investment_value \n", + "48 CA2908761018 43918 \n", + "49 US92840M1027 95541 \n", + "50 US92939U1060 192147 \n", + "51 US9818111026 145112 \n", + "52 US98389B1008 43111 " + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "df_portfolio = pd.read_excel(template_data_path, sheet_name=\"Portfolio\")\n", "display(df_portfolio.tail())" @@ -318,7 +458,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 11, "metadata": {}, "outputs": [], "source": [ @@ -335,7 +475,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 12, "metadata": {}, "outputs": [], "source": [ @@ -356,9 +496,473 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 13, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/html": [ + "
      \n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
      company_nametime_framescopetemperature_score
      0AES Corp.LONGS1S21.79
      1ALLETE, Inc.LONGS1S21.7
      2Alliant EnergyLONGS1S21.67
      3Ameren Corp.LONGS1S22.28
      4American Electric Power Co., Inc.LONGS1S21.96
      5Avangrid, Inc.LONGS1S22.1
      6Black Hills Corp.LONGS1S21.98
      7CARPENTER TECHNOLOGY CORPLONGS1S21.63
      8CLEVELAND-CLIFFS INCLONGS1S21.43
      9CMS Energy Corp.LONGS1S22.01
      10COMMERCIAL METALS COLONGS1S21.45
      11Cleco Partners LPLONGS1S22.38
      12Consolidated Edison, Inc.LONGS1S22.05
      13DTE EnergyLONGS1S22.77
      14Dominion EnergyLONGS1S21.81
      15Duke Energy Corp.LONGS1S21.87
      16Edison InternationalLONGS1S22.91
      17Entergy Corp.LONGS1S21.84
      18Evergy, Inc.LONGS1S21.81
      19Eversource EnergyLONGS1S21.23
      20Exelon Corp.LONGS1S22.6
      21FirstEnergy Corp.LONGS1S21.73
      22Fortis, Inc.LONGS1S21.65
      23GERDAU S.A.LONGS1S21.53
      24Hawaiian Electric Industries, Inc.LONGS1S22.38
      25MDU Resources GroupLONGS1S22.27
      26NUCOR CORPLONGS1S21.54
      27National Grid PLCLONGS1S22.25
      28NextEra Energy, Inc.LONGS1S21.77
      29NIPPON STEEL CORPLONGS1S21.81
      30Nisource Inc.LONGS1S21.91
      31Northwestern Corp.LONGS1S21.78
      32OG&E Energy Corp.LONGS1S22.28
      33PG&E Corp.LONGS1S22.58
      34PNM Resources, Inc.LONGS1S21.93
      35POSCOLONGS1S21.83
      36PPL Corp.LONGS1S22.26
      37Pinnacle West Capital Corp.LONGS1S22.17
      38Portland General Electric Co.LONGS1S21.77
      39Public Service Enterprise GroupLONGS1S21.49
      40SempraLONGS1S22.33
      41Southern Co.LONGS1S21.89
      42STEEL DYNAMICS INCLONGS1S21.59
      43TC Energy Corp.LONGS1S22.56
      44TENARIS SALONGS1S21.58
      45TERNIUM S.A.LONGS1S21.71
      46TIMKENSTEEL CORPLONGS1S21.45
      47UNITED STATES STEEL CORPLONGS1S21.54
      48Versant PowerLONGS1S21.55
      49Vistra Corp.LONGS1S22.22
      50WEC Energy GroupLONGS1S21.84
      51WORTHINGTON INDUSTRIES INCLONGS1S21.28
      52Xcel Energy, Inc.LONGS1S21.71
      \n", + "
      " + ], + "text/plain": [ + " company_name time_frame scope temperature_score\n", + "0 AES Corp. LONG S1S2 1.79\n", + "1 ALLETE, Inc. LONG S1S2 1.7\n", + "2 Alliant Energy LONG S1S2 1.67\n", + "3 Ameren Corp. LONG S1S2 2.28\n", + "4 American Electric Power Co., Inc. LONG S1S2 1.96\n", + "5 Avangrid, Inc. LONG S1S2 2.1\n", + "6 Black Hills Corp. LONG S1S2 1.98\n", + "7 CARPENTER TECHNOLOGY CORP LONG S1S2 1.63\n", + "8 CLEVELAND-CLIFFS INC LONG S1S2 1.43\n", + "9 CMS Energy Corp. LONG S1S2 2.01\n", + "10 COMMERCIAL METALS CO LONG S1S2 1.45\n", + "11 Cleco Partners LP LONG S1S2 2.38\n", + "12 Consolidated Edison, Inc. LONG S1S2 2.05\n", + "13 DTE Energy LONG S1S2 2.77\n", + "14 Dominion Energy LONG S1S2 1.81\n", + "15 Duke Energy Corp. LONG S1S2 1.87\n", + "16 Edison International LONG S1S2 2.91\n", + "17 Entergy Corp. LONG S1S2 1.84\n", + "18 Evergy, Inc. LONG S1S2 1.81\n", + "19 Eversource Energy LONG S1S2 1.23\n", + "20 Exelon Corp. LONG S1S2 2.6\n", + "21 FirstEnergy Corp. LONG S1S2 1.73\n", + "22 Fortis, Inc. LONG S1S2 1.65\n", + "23 GERDAU S.A. LONG S1S2 1.53\n", + "24 Hawaiian Electric Industries, Inc. LONG S1S2 2.38\n", + "25 MDU Resources Group LONG S1S2 2.27\n", + "26 NUCOR CORP LONG S1S2 1.54\n", + "27 National Grid PLC LONG S1S2 2.25\n", + "28 NextEra Energy, Inc. LONG S1S2 1.77\n", + "29 NIPPON STEEL CORP LONG S1S2 1.81\n", + "30 Nisource Inc. LONG S1S2 1.91\n", + "31 Northwestern Corp. LONG S1S2 1.78\n", + "32 OG&E Energy Corp. LONG S1S2 2.28\n", + "33 PG&E Corp. LONG S1S2 2.58\n", + "34 PNM Resources, Inc. LONG S1S2 1.93\n", + "35 POSCO LONG S1S2 1.83\n", + "36 PPL Corp. LONG S1S2 2.26\n", + "37 Pinnacle West Capital Corp. LONG S1S2 2.17\n", + "38 Portland General Electric Co. LONG S1S2 1.77\n", + "39 Public Service Enterprise Group LONG S1S2 1.49\n", + "40 Sempra LONG S1S2 2.33\n", + "41 Southern Co. LONG S1S2 1.89\n", + "42 STEEL DYNAMICS INC LONG S1S2 1.59\n", + "43 TC Energy Corp. LONG S1S2 2.56\n", + "44 TENARIS SA LONG S1S2 1.58\n", + "45 TERNIUM S.A. LONG S1S2 1.71\n", + "46 TIMKENSTEEL CORP LONG S1S2 1.45\n", + "47 UNITED STATES STEEL CORP LONG S1S2 1.54\n", + "48 Versant Power LONG S1S2 1.55\n", + "49 Vistra Corp. LONG S1S2 2.22\n", + "50 WEC Energy Group LONG S1S2 1.84\n", + "51 WORTHINGTON INDUSTRIES INC LONG S1S2 1.28\n", + "52 Xcel Energy, Inc. LONG S1S2 1.71" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "with warnings.catch_warnings():\n", " warnings.simplefilter(\"ignore\")\n", @@ -375,9 +979,17 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 14, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Temperature Score aggregation method = PortfolioAggregationMethod.WATS\n" + ] + } + ], "source": [ "aggregated_scores = temperature_score.aggregate_scores(enhanced_portfolio)\n", "print(f\"Temperature Score aggregation method = {temperature_score.aggregation_method}\")" @@ -385,9 +997,26 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 15, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/html": [ + "1.9291962691985898 delta_degree_Celsius" + ], + "text/latex": [ + "$1.9291962691985898\\ \\mathrm{delta\\_degree\\_Celsius}$" + ], + "text/plain": [ + "1.9291962691985898 " + ] + }, + "execution_count": 15, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "aggregated_scores.long.S1S2.all.score" ] @@ -415,7 +1044,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 16, "metadata": { "scrolled": true }, @@ -443,9 +1072,22 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 17, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
      " + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], "source": [ "analysis_parameters = ([ETimeFrames.LONG], [EScope.S1S2], grouping)\n", "plot_grouped_heatmap(grouped_aggregations, analysis_parameters)" @@ -453,9 +1095,73 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 18, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/html": [ + "
      \n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
      groupcompany_namecompany_idtemperature_scorecontribution_relative
      0Steel-AsiaNIPPON STEEL CORPJP33810000031.81 delta_degree_Celsius50.836536594021496 percent
      1Steel-AsiaPOSCOKR70054900081.83 delta_degree_Celsius49.16346340597851 percent
      \n", + "
      " + ], + "text/plain": [ + " group company_name company_id temperature_score \\\n", + "0 Steel-Asia NIPPON STEEL CORP JP3381000003 1.81 delta_degree_Celsius \n", + "1 Steel-Asia POSCO KR7005490008 1.83 delta_degree_Celsius \n", + "\n", + " contribution_relative \n", + "0 50.836536594021496 percent \n", + "1 49.16346340597851 percent " + ] + }, + "execution_count": 18, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "region = 'Asia'\n", "sector = 'Steel'\n", @@ -485,7 +1191,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 19, "metadata": {}, "outputs": [], "source": [ @@ -506,9 +1212,22 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 20, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "image/png": "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x/79+w/s37//wAEDBgxcuHBhXuWdvCpWRESk0KxcubKkJkjUBJDM5bNmzWp97bXXbjlq1KjJEydO/Gj33XdffvXVV5etWLHCvvvd7/b5/e9///mkSZMmjhw5clLnzp3XXnbZZTOPOOKIhR9//PHEs846ayHAJ5980n7UqFGTnnvuuf9l7juZTG7ZuXPntZMnT544efLkiRUVFUsyl990003Te/fuvfLjjz+eeOedd04/88wz5z3wwAPdAObPn99qzJgxHU888cQvs32tV1xxxZwePXqsHjly5OR33nlncmPrt2/f3ut6PTXOOeec3hdffPHs8ePHf/TUU09NOffccxNh3VvccsstUz/++OOJb7/99scdO3aszrbGONBpTRERkQg1dlrz9ddf33TKlCnthwwZ0h9g9erVtsceeywdN25c+x49eqweNmzYcoCuXbvWG0CGDx/+ZceOHde7KnXUqFGdH3300c9qpktLS9c2VGtFRcXSn/70p9vMnDmz9UMPPbR5RUXFwjZt2qyzjpnVefVrffM3xptvvtn5k08+6VAzvXTp0laLFi0qKS8vX3rJJZf0PuGEExacfPLJC/v06aNwJiIiIs3D3dlnn30W1271evfddzvUt01tm266abOFkxNPPHH+3Xff3fWJJ57o+uc//zlde3mPHj3WLFq0aJ18sXDhwtalpaVrmquGGu7O+++//9Emm2yyTvC79tprvzj66KMXPfPMM12+/e1v90+lUp/stttuK5r7+LmicCYkkqm2QEdg04xHO2A+MCNdVbE0wvJEWkwimTKgM7A50AVoHy6qBlYBKwk6Is9NV1U0+weNSF3222+/ZSNGjNh6/Pjx7XbaaaeVixcvLkmn02122WWXFXPmzGkzcuTITYYNG7Z84cKFJR07dqzu3Lnz2qVLl2bVbWnYsGGLb7755h733XffNIC5c+e2ymw969Kly9ply5ats69zzz133tChQwd079599R577LFe4Nlpp51Wzp49u83777/ffvfdd18xefLkth9//HGH8vLyrwA23XTTtYsWLSrZcssts3r9Db2effbZZ/F1113X4+qrr54NwZWqe++991cTJkxoN2TIkK+GDBny1ZgxYzYZP358e4UziY1EMtUd2LHWY0vWDWMN/h4kkqklwExgRvh1Zsb0xHRVRbNdZSSSa4lkaiuC90FfYPvw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hrMZQO+M6V7hvK+5+3x3XxlO3gPske22IiIiIoUol+HsPaCvmW1rZm2BkwjuNPA1M9syY/JI4KPw+UvAwWa2uZltDhwczhMREREpaA1drblR3H2NmZ1PEKpaAfe5+wQzuwoY7e7PAheY2ZHAGmABcHq47QIzu5og4AFc1QwXKIiIiIjEXs7CGYC7v0Bw26fMeb/MeH4ZcFk9294H3JfL+kRERETiJuoLAkREREQkg8KZiIiISIwonImIiIjEiMKZiIiISIwonImIiIjEiMKZiIiISIwonImIiIjEiMKZiIiISIwonImIiIjEiMKZiIiISIwonImIiIjEiMKZiIiISIwonImIiIjESE7DmZkNN7NJZvapmSXrWH6xmU00s3Fm9k8z2yZj2VozGxs+ns1lnSIiIiJx0TpXOzazVsBtwHeA6cB7Zvasu0/MWO2/wGB3X25mPwKuB04Ml33l7oNyVZ+IiIhIHOWy5WwI8Km7f+buq4BHgaMyV3D319x9eTj5NtArh/WIiIiIxF4uw1lPYFrG9PRwXn1+CLyYMd3ezEab2dtmdnR9G5nZ2eF6o+fOnbtRBYuIiIhELWenNZvCzL4HDAaGZczext1nmNl2wL/M7EN3n1J7W3e/C7gLYPDgwd4iBYuIiIjkSC5bzmYAvTOme4Xz1mFmBwG/AI5095U18919Rvj1M+B1YLcc1ioiIiISC7kMZ+8Bfc1sWzNrC5wErHPVpZntBtxJEMzmZMzf3Mzahc+7A98CMi8kEBERESlIOTut6e5rzOx84CWgFXCfu08ws6uA0e7+LHAD0BH4u5kBfO7uRwIDgDvNrJogQFbVuspTREREpCDltM+Zu78AvFBr3i8znh9Uz3ZvATvnsjYRERGRONIdAkRERERiROFMREREJEYUzkRERERiROFMREREJEYUzkRERERiROFMREREJEYUzkRERERiROFMREREJEYUzkRERERiROFMREREJEYUzkRERERiROFMREREJEZyGs7MbLiZTTKzT80sWcfydmb2t3D5O2aWyFh2WTh/kpkdkss6RUREROIiZ+HMzFoBtwGHAgOBk81sYK3VfggsdPftgZuB34bbDgROAnYEhgO3h/sTERERKWi5bDkbAnzq7p+5+yrgUeCoWuscBTwQPn8cONDMLJz/qLuvdPf/AZ+G+xMREREpaK1zuO+ewLSM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\n", + "text/plain": [ + "
      " + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], "source": [ "plot_grouped_statistics(aggregated_portfolio, company_contributions, analysis_parameters)" ] @@ -524,9 +1243,187 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 21, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/html": [ + "
      \n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
      company_namecompany_idsectorcontributiontemperature_scoreownership_percentageportfolio_percentage
      6NIPPON STEEL CORPJP3381000003Steel2.9130907855950587 percent1.81 delta_degree_Celsius0.003.10
      8POSCOKR7005490008Steel2.8172185170603976 percent1.83 delta_degree_Celsius0.002.97
      12UNITED STATES STEEL CORPUS9129091081Steel2.4689410373359575 percent1.54 delta_degree_Celsius0.013.09
      13STEEL DYNAMICS INCUS8581191009Steel2.4544172947810194 percent1.59 delta_degree_Celsius0.002.98
      18TIMKENSTEEL CORPUS8873991033Steel2.267819939835686 percent1.45 delta_degree_Celsius0.073.02
      30TENARIS SAUS88031M1099Steel1.6305147136798643 percent1.58 delta_degree_Celsius0.031.99
      35GERDAU S.A.US3737371050Steel1.369323549228698 percent1.53 delta_degree_Celsius0.011.73
      37WORTHINGTON INDUSTRIES INCUS9818111026Steel1.2794653617250622 percent1.28 delta_degree_Celsius0.011.93
      38CLEVELAND-CLIFFS INCUS1858991011Steel1.1770074168371203 percent1.43 delta_degree_Celsius0.001.59
      45CARPENTER TECHNOLOGY CORPUS1442851036Steel0.7376691124999515 percent1.63 delta_degree_Celsius0.000.87
      \n", + "
      " + ], + "text/plain": [ + " company_name company_id sector \\\n", + "6 NIPPON STEEL CORP JP3381000003 Steel \n", + "8 POSCO KR7005490008 Steel \n", + "12 UNITED STATES STEEL CORP US9129091081 Steel \n", + "13 STEEL DYNAMICS INC US8581191009 Steel \n", + "18 TIMKENSTEEL CORP US8873991033 Steel \n", + "30 TENARIS SA US88031M1099 Steel \n", + "35 GERDAU S.A. US3737371050 Steel \n", + "37 WORTHINGTON INDUSTRIES INC US9818111026 Steel \n", + "38 CLEVELAND-CLIFFS INC US1858991011 Steel \n", + "45 CARPENTER TECHNOLOGY CORP US1442851036 Steel \n", + "\n", + " contribution temperature_score \\\n", + "6 2.9130907855950587 percent 1.81 delta_degree_Celsius \n", + "8 2.8172185170603976 percent 1.83 delta_degree_Celsius \n", + "12 2.4689410373359575 percent 1.54 delta_degree_Celsius \n", + "13 2.4544172947810194 percent 1.59 delta_degree_Celsius \n", + "18 2.267819939835686 percent 1.45 delta_degree_Celsius \n", + "30 1.6305147136798643 percent 1.58 delta_degree_Celsius \n", + "35 1.369323549228698 percent 1.53 delta_degree_Celsius \n", + "37 1.2794653617250622 percent 1.28 delta_degree_Celsius \n", + "38 1.1770074168371203 percent 1.43 delta_degree_Celsius \n", + "45 0.7376691124999515 percent 1.63 delta_degree_Celsius \n", + "\n", + " ownership_percentage portfolio_percentage \n", + "6 0.00 3.10 \n", + "8 0.00 2.97 \n", + "12 0.01 3.09 \n", + "13 0.00 2.98 \n", + "18 0.07 3.02 \n", + "30 0.03 1.99 \n", + "35 0.01 1.73 \n", + "37 0.01 1.93 \n", + "38 0.00 1.59 \n", + "45 0.00 0.87 " + ] + }, + "execution_count": 21, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "sector_contributions = company_contributions[['company_name', 'company_id', 'sector', 'contribution', 'temperature_score', 'ownership_percentage', 'portfolio_percentage']]\n", "sector_contributions.loc[sector_contributions['sector'] == 'Steel'][:10].round(2)" @@ -546,7 +1443,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 22, "metadata": { "pycharm": { "name": "#%%\n" @@ -558,12 +1455,65 @@ "enhanced_portfolio.set_index(['company_name', 'company_id']).to_excel(data_dump_filename)" ] }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Compare OECD and non-OECD results\n", + "\n", + "There are currently 37 members of the OECD (text list maintained on the OECD website). We use a simple CSV file containing data correct as of June 6th, 2022." + ] + }, { "cell_type": "code", - "execution_count": null, + "execution_count": 23, "metadata": {}, "outputs": [], - "source": [] + "source": [ + "from ITR.utils import get_project_root\n", + "pkg_root = get_project_root()\n", + "\n", + "# When connected to the Data Commons, this would be the kind of data we could simply load from a table.\n", + "# As this is a stand-alone program, we must load the data from a file.\n", + "\n", + "oecd_df = pd.read_csv(f\"{pkg_root}/data/oecd_iso.csv\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We reuse the calculated `grouped_portfolio` from above, and then add the additional OECD discriminator to it. We can add arbitrary columns and group on them in this way. (And of course we can recompute a fresh `grouped_portfolio` if we wish.)\n", + "\n", + "Because of the way we generate grouped and aggregated data (which uses dash (-) as a separator), we spell Non-OECD with an underscore (non_oecd) instead of a dash." + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
      " + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "grouping = ['sector', 'oecd']\n", + "grouped_portfolio.loc[:, 'oecd'] = grouped_portfolio.country.map(lambda x: 'oecd' if x in oecd_df.alpha_2.values else 'non_oecd')\n", + "temperature_score.grouping = grouping\n", + "grouped_aggregations = temperature_score.aggregate_scores(grouped_portfolio)\n", + "analysis_parameters = ([ETimeFrames.LONG], [EScope.S1S2], grouping)\n", + "plot_grouped_heatmap(grouped_aggregations, analysis_parameters)" + ] } ], "metadata": { @@ -582,7 +1532,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.0" + "version": "3.9.12" } }, "nbformat": 4, From 9d82b1a59bb18d533b217638146714c0023c445d Mon Sep 17 00:00:00 2001 From: David Kroon <35101727+dp90@users.noreply.github.com> Date: Tue, 21 Jun 2022 15:13:55 +0200 Subject: [PATCH 258/345] Move data input files to separate directory and remove experiment files Signed-off-by: David Kroon <35101727+dp90@users.noreply.github.com> Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- ITR/data/{ => input}/country_region_info.csv | 0 ITR/data/{ => input}/oecd_iso.csv | 0 .../{ => input}/region_classification.csv | 0 examples/pint-pandas-problem.py | 91 -------------- examples/unittest_vs_pint.ipynb | 115 ------------------ 5 files changed, 206 deletions(-) rename ITR/data/{ => input}/country_region_info.csv (100%) rename ITR/data/{ => input}/oecd_iso.csv (100%) rename ITR/data/{ => input}/region_classification.csv (100%) delete mode 100644 examples/pint-pandas-problem.py delete mode 100644 examples/unittest_vs_pint.ipynb diff --git a/ITR/data/country_region_info.csv b/ITR/data/input/country_region_info.csv similarity index 100% rename from ITR/data/country_region_info.csv rename to ITR/data/input/country_region_info.csv diff --git a/ITR/data/oecd_iso.csv b/ITR/data/input/oecd_iso.csv similarity index 100% rename from ITR/data/oecd_iso.csv rename to ITR/data/input/oecd_iso.csv diff --git a/ITR/data/region_classification.csv b/ITR/data/input/region_classification.csv similarity index 100% rename from ITR/data/region_classification.csv rename to ITR/data/input/region_classification.csv diff --git a/examples/pint-pandas-problem.py b/examples/pint-pandas-problem.py deleted file mode 100644 index 6e314ad9..00000000 --- a/examples/pint-pandas-problem.py +++ /dev/null @@ -1,91 +0,0 @@ -import unittest -import pandas as pd -import numpy as np -from pandas._testing import * - -from pint import set_application_registry -from pint_pandas import PintArray, PintType -from openscm_units import unit_registry -PintType.ureg = unit_registry -ureg = unit_registry -set_application_registry(ureg) -Q_ = ureg.Quantity - -ureg.define("CO2e = CO2 = CO2eq = CO2_eq") - -pd.show_versions() - -def pandas_mult_acc(a, b): - df = a.multiply(b) - return df.sum(axis=1) - -def pint_mult_acc(a, b): - df = a.multiply(b) - return df.sum(axis=1).astype('pint[g CO2]') - -class TestBaseProvider(unittest.TestCase): - """ - Test the Base provider - """ - - def setUp(self) -> None: - pass - - # PASS: series are equal - def test_pandas_series_equality_1(self): - projected_ei = pd.DataFrame([[1.0, 2.0], [4.0, 2.0]]) - projected_production = pd.DataFrame([[1.0, 2.0], [1.0, 2.0]]) - expected_data = pd.Series([5.0, 8.0], index=[0, 1]) - result_data = pandas_mult_acc(projected_ei,projected_production) - pd.testing.assert_series_equal(expected_data, result_data) - - # FAIL: series differ - def test_pandas_series_equality_2(self): - projected_ei = pd.DataFrame([[1.0, 2.0], [4.0, 2.0]]) - projected_production = pd.DataFrame([[1.0, 2.0], [1.0, 3.0]]) - expected_data = pd.Series([5.0, 8.0], index=[0, 1]) - result_data = pandas_mult_acc(projected_ei,projected_production) - pd.testing.assert_series_equal(expected_data, result_data) - - # PASS: series are equal - def test_pint_series_equality_1(self): - projected_ei = pd.DataFrame([[Q_(1.0, 'g CO2/Wh'), Q_(2.0, 'g CO2/Wh')], [Q_(4.0, 'g CO2/Wh'), Q_(2.0, 'g CO2/Wh')]], dtype='pint[g CO2/Wh]') - projected_production = pd.DataFrame([[Q_(1.0, 'Wh'), Q_(2.0, 'Wh')], [Q_(1.0, 'Wh'), Q_(2.0, 'Wh')]], dtype='pint[Wh]') - expected_data = pd.Series([5.0, 8.0], index=[0, 1], dtype='pint[g CO2]') - result_data = pint_mult_acc(projected_ei,projected_production) - pd.testing.assert_series_equal(expected_data, result_data) - - # PASS: extension arrays are equal - def test_pint_series_equality_2(self): - projected_ei = pd.DataFrame([[Q_(1.0, 'g CO2/Wh'), Q_(2.0, 'g CO2/Wh')], [Q_(4.0, 'g CO2/Wh'), Q_(2.0, 'g CO2/Wh')]], dtype='pint[g CO2/Wh]') - projected_production = pd.DataFrame([[Q_(1.0, 'Wh'), Q_(2.0, 'Wh')], [Q_(1.0, 'Wh'), Q_(2.0, 'Wh')]], dtype='pint[Wh]') - expected_data = pd.Series([5.0, 8.0], index=[0, 1], dtype='pint[g CO2]') - result_data = pint_mult_acc(projected_ei,projected_production) - pd.testing.assert_extension_array_equal(expected_data.values, result_data.values) - - # Should FAIL, but ERROR instead - def test_pint_series_equality_3(self): - projected_ei = pd.DataFrame([[Q_(1.0, 'g CO2/Wh'), Q_(2.0, 'g CO2/Wh')], [Q_(4.0, 'g CO2/Wh'), Q_(2.0, 'g CO2/Wh')]], dtype='pint[g CO2/Wh]') - projected_production = pd.DataFrame([[Q_(1.0, 'Wh'), Q_(2.0, 'Wh')], [Q_(1.0, 'Wh'), Q_(3.0, 'Wh')]], dtype='pint[Wh]') - expected_data = pd.Series([5.0, 8.0], index=[0, 1], dtype='pint[g CO2]') - result_data = pint_mult_acc(projected_ei,projected_production) - # Expected to fail because expected data and result data differ, - pd._testing.assert_series_equal(expected_data, result_data) - - # Should FAIL, but ERROR instead - def test_pint_series_equality_4(self): - projected_ei = pd.DataFrame([[Q_(1.0, 'g CO2/Wh'), Q_(2.0, 'g CO2/Wh')], [Q_(4.0, 'g CO2/Wh'), Q_(2.0, 'g CO2/Wh')]], dtype='pint[g CO2/Wh]') - projected_production = pd.DataFrame([[Q_(1.0, 'Wh'), Q_(2.0, 'Wh')], [Q_(1.0, 'Wh'), Q_(3.0, 'Wh')]], dtype='pint[Wh]') - expected_data = pd.Series([5.0, 8.0], index=[0, 1], dtype='pint[g CO2]') - result_data = pint_mult_acc(projected_ei,projected_production) - # Expected to fail because expected data and result data differ - pd._testing.assert_extension_array_equal(expected_data.values, result_data.values) - - # FAIL: numpy arrays differ differ - def test_pint_series_equality_5(self): - projected_ei = pd.DataFrame([[Q_(1.0, 'g CO2/Wh'), Q_(2.0, 'g CO2/Wh')], [Q_(4.0, 'g CO2/Wh'), Q_(2.0, 'g CO2/Wh')]], dtype='pint[g CO2/Wh]') - projected_production = pd.DataFrame([[Q_(1.0, 'Wh'), Q_(2.0, 'Wh')], [Q_(1.0, 'Wh'), Q_(3.0, 'Wh')]], dtype='pint[Wh]') - expected_data = pd.Series([5.0, 8.0], index=[0, 1], dtype='pint[g CO2]') - result_data = pint_mult_acc(projected_ei,projected_production) - # Expected to fail because expected data and result data differ - pd._testing.assert_numpy_array_equal(np.asarray(expected_data), np.asarray(result_data)) diff --git a/examples/unittest_vs_pint.ipynb b/examples/unittest_vs_pint.ipynb deleted file mode 100644 index 65d7abb6..00000000 --- a/examples/unittest_vs_pint.ipynb +++ /dev/null @@ -1,115 +0,0 @@ -{ - "cells": [ - { - "cell_type": "code", - "execution_count": 1, - "id": "42085b49-fb8d-4d44-886b-316d5d6d8284", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "0 10.000000000000002\n", - "1 50.000000000000014\n", - "dtype: pint[CO2 * megametric_ton]\n", - "expected_data = 0 10.0\n", - "1 50.0\n", - "dtype: pint[CO2 * megametric_ton]\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/opt/app-root/lib64/python3.8/site-packages/pint_pandas/pint_array.py:648: UnitStrippedWarning: The unit of the quantity is stripped when downcasting to ndarray.\n", - " return np.array(qtys, dtype=\"object\", copy=copy)\n" - ] - }, - { - "ename": "TypeError", - "evalue": "object of type 'numpy.float64' has no len()", - "output_type": "error", - "traceback": [ - "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[0;31mTypeError\u001b[0m Traceback (most recent call last)", - "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m\u001b[0m\n\u001b[1;32m 40\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 41\u001b[0m \u001b[0mx\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mTestBaseProvider\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'test_pint_series_equality'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 42\u001b[0;31m \u001b[0mTestBaseProvider\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mtest_pint_series_equality\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mx\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", - "\u001b[0;32m\u001b[0m in \u001b[0;36mtest_pint_series_equality\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 35\u001b[0m projected_production=projected_production))\n\u001b[1;32m 36\u001b[0m \u001b[0mprint\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34mf\"expected_data = {expected_data}\"\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 37\u001b[0;31m pd.testing.assert_series_equal(\n\u001b[0m\u001b[1;32m 38\u001b[0m _get_cumulative_emissions(projected_emission_intensity=projected_ei,\n\u001b[1;32m 39\u001b[0m projected_production=projected_production), expected_data)\n", - " \u001b[0;31m[... skipping hidden 1 frame]\u001b[0m\n", - "\u001b[0;32m/opt/app-root/lib64/python3.8/site-packages/pandas/_testing/asserters.py\u001b[0m in \u001b[0;36massert_extension_array_equal\u001b[0;34m(left, right, check_dtype, index_values, check_less_precise, check_exact, rtol, atol)\u001b[0m\n\u001b[1;32m 839\u001b[0m )\n\u001b[1;32m 840\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 841\u001b[0;31m _testing.assert_almost_equal(\n\u001b[0m\u001b[1;32m 842\u001b[0m \u001b[0mleft_valid\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 843\u001b[0m \u001b[0mright_valid\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m/opt/app-root/lib64/python3.8/site-packages/pandas/_libs/testing.pyx\u001b[0m in \u001b[0;36mpandas._libs.testing.assert_almost_equal\u001b[0;34m()\u001b[0m\n", - "\u001b[0;32m/opt/app-root/lib64/python3.8/site-packages/pandas/_libs/testing.pyx\u001b[0m in \u001b[0;36mpandas._libs.testing.assert_almost_equal\u001b[0;34m()\u001b[0m\n", - "\u001b[0;32m/opt/app-root/lib64/python3.8/site-packages/pandas/_libs/testing.pyx\u001b[0m in \u001b[0;36mpandas._libs.testing.assert_almost_equal\u001b[0;34m()\u001b[0m\n", - "\u001b[0;32m/opt/app-root/lib64/python3.8/site-packages/pint/quantity.py\u001b[0m in \u001b[0;36m__len__\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 1862\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1863\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0m__len__\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;34m->\u001b[0m \u001b[0mint\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1864\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mlen\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_magnitude\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 1865\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1866\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0m__getattr__\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mitem\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;34m->\u001b[0m \u001b[0mAny\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;31mTypeError\u001b[0m: object of type 'numpy.float64' has no len()" - ] - } - ], - "source": [ - "import unittest\n", - "import pandas as pd\n", - "from numpy.testing import assert_array_equal\n", - "\n", - "from pint import set_application_registry\n", - "from pint_pandas import PintArray, PintType\n", - "from openscm_units import unit_registry\n", - "PintType.ureg = unit_registry\n", - "ureg = unit_registry\n", - "set_application_registry(ureg)\n", - "Q_ = ureg.Quantity\n", - "PA_ = PintArray\n", - "\n", - "ureg.define(\"CO2e = CO2 = CO2eq = CO2_eq\")\n", - "\n", - "def _get_cumulative_emissions(projected_emission_intensity, projected_production):\n", - " df = projected_emission_intensity.multiply(projected_production)\n", - " return df.sum(axis=1).astype('pint[Mt CO2]')\n", - "\n", - "class TestBaseProvider(unittest.TestCase):\n", - " \"\"\"\n", - " Test the Base provider\n", - " \"\"\"\n", - "\n", - " def setUp(self) -> None:\n", - " pass\n", - " \n", - " def test_pint_series_equality(self):\n", - " projected_ei = pd.DataFrame([[Q_(1.0, 't CO2/MWh'), Q_(2.0, 't CO2/MWh')], [Q_(3.0, 't CO2/MWh'), Q_(4.0, 't CO2/MWh')]], dtype='pint[t CO2/MWh]')\n", - " projected_production = pd.DataFrame([[Q_(2.0, 'TWh'), Q_(4.0, 'TWh')], [Q_(6.0, 'TWh'), Q_(8.0, 'TWh')]], dtype='pint[TWh]')\n", - " expected_data = pd.Series([10.0, 50.0],\n", - " index=[0, 1],\n", - " dtype='pint[Mt CO2]')\n", - " print(_get_cumulative_emissions(projected_emission_intensity=projected_ei,\n", - " projected_production=projected_production))\n", - " print(f\"expected_data = {expected_data}\")\n", - " pd.testing.assert_series_equal(\n", - " _get_cumulative_emissions(projected_emission_intensity=projected_ei,\n", - " projected_production=projected_production), expected_data)\n", - "\n", - "x = TestBaseProvider('test_pint_series_equality')\n", - "TestBaseProvider.test_pint_series_equality(x)" - ] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.8.3" - } - }, - "nbformat": 4, - "nbformat_minor": 5 -} From 7da2bd4bab3e222ddff99b7d5bc86d56ece416fa Mon Sep 17 00:00:00 2001 From: David Kroon <35101727+dp90@users.noreply.github.com> Date: Tue, 21 Jun 2022 15:14:16 +0200 Subject: [PATCH 259/345] Edit moved file name references Signed-off-by: David Kroon <35101727+dp90@users.noreply.github.com> Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- ITR/data/template.py | 2 +- examples/quick_template_score_calc.ipynb | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/ITR/data/template.py b/ITR/data/template.py index 5488e945..f5a79a60 100644 --- a/ITR/data/template.py +++ b/ITR/data/template.py @@ -18,7 +18,7 @@ Q_ = ureg.Quantity pkg_root = get_project_root() -df_country_regions = pd.read_csv(f"{pkg_root}/data/country_region_info.csv") +df_country_regions = pd.read_csv(f"{pkg_root}/data/input/country_region_info.csv") logger = logging.getLogger(__name__) LoggingConfig.add_config_to_logger(logger) diff --git a/examples/quick_template_score_calc.ipynb b/examples/quick_template_score_calc.ipynb index 843f7bae..b099f202 100644 --- a/examples/quick_template_score_calc.ipynb +++ b/examples/quick_template_score_calc.ipynb @@ -1476,7 +1476,7 @@ "# When connected to the Data Commons, this would be the kind of data we could simply load from a table.\n", "# As this is a stand-alone program, we must load the data from a file.\n", "\n", - "oecd_df = pd.read_csv(f\"{pkg_root}/data/oecd_iso.csv\")" + "oecd_df = pd.read_csv(f\"{pkg_root}/data/input/oecd_iso.csv\")" ] }, { @@ -1537,4 +1537,4 @@ }, "nbformat": 4, "nbformat_minor": 4 -} +} \ No newline at end of file From 9214805b1cfe3a5bd3ac3509d5bba65158252459 Mon Sep 17 00:00:00 2001 From: David Kroon <35101727+dp90@users.noreply.github.com> Date: Wed, 22 Jun 2022 10:27:35 +0200 Subject: [PATCH 260/345] Allow missing target data - score will be based on trajectory Signed-off-by: David Kroon <35101727+dp90@users.noreply.github.com> Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- ITR/data/base_providers.py | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/ITR/data/base_providers.py b/ITR/data/base_providers.py index bdd1b63b..cb91d7be 100644 --- a/ITR/data/base_providers.py +++ b/ITR/data/base_providers.py @@ -253,7 +253,10 @@ def _convert_projections_to_series(self, company: ICompanyData, feature: str, res = reduce(series_adder, projection_series.values()) return res elif len(projection_scopes) == 0: - raise ValueError(f"missing target scope data for {company.company_name} :: {scope}") + return pd.Series( + {year: np.nan for year in range(self.historic_years[-1] + 1, self.projection_controls.TARGET_YEAR + 1)}, + name=company.company_id, dtype=f'pint[{emissions_units}/{production_units}]' + ) else: # This clause is only accessed if the scope is S1S2 or S1S2S3 of which only one scope is provided. projections = company_dict[feature][scopes[0]]['projections'] @@ -272,8 +275,9 @@ def _calculate_target_projections(self, production_bm: BaseProviderProductionBen for c in self._companies: if c.projected_targets is not None: continue - elif c.target_data is None: - raise ValueError(f"no target data for {c.company_name}") + if c.target_data is None: + logger.warning(f"No target data for {c.company_name}") + c.projected_targets = ICompanyEIProjectionsScopes() else: base_year_production = next((p.value for p in c.historic_data.productions if p.year == self.temp_config.CONTROLS_CONFIG.base_year), None) From 30dc06e18ae24b07702fbec357e4e97c83f6c006 Mon Sep 17 00:00:00 2001 From: David Kroon <35101727+dp90@users.noreply.github.com> Date: Wed, 22 Jun 2022 10:34:29 +0200 Subject: [PATCH 261/345] Update required packages Signed-off-by: David Kroon <35101727+dp90@users.noreply.github.com> Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- environment.yml | 23 +++------------------- examples/environment.yml | 12 +++++++----- requirements.txt | 1 - setup.py | 42 ++++++++++++++-------------------------- 4 files changed, 25 insertions(+), 53 deletions(-) diff --git a/environment.yml b/environment.yml index 61e2e9e0..3d2eb856 100644 --- a/environment.yml +++ b/environment.yml @@ -3,25 +3,8 @@ channels: - conda-forge - defaults dependencies: - - pip - - python==3.9 - - ca-certificates # ==2021.10.8 - - certifi # ==2021.10.8 - - et_xmlfile # ==1.1.0 - - ipython==8.1.1 - - jupyterlab==3.3.0 - # - matplotlib==3.5.1 - # - numpy==1.22.2 - # - openpyxl # ==3.0.9 - # - openscm-units # ==0.5.0 - - openssl # ==1.1.1l - # - pandas==1.4.1 - # - pint==0.18 - # - pint-pandas==0.2 - # - pydantic==1.8.2 - - pytz # ==2021.3 - - setuptools==60.9.3 - # - sqlite==3.37.0 - - wheel>=0.36.2 + - python==3.9.13 + - pip==22.1.2 - pip: - -r requirements.txt + - -e . diff --git a/examples/environment.yml b/examples/environment.yml index 3dd3e5d7..5af10da7 100644 --- a/examples/environment.yml +++ b/examples/environment.yml @@ -3,9 +3,11 @@ channels: - conda-forge - defaults dependencies: - - git=2.28.0=0 - - pip=20.2.1=py_0 - - python=3.7.8=h60c2a47_1_cpython - - jupyter=1.0.0=py_2 + - python=3.9.13 + - pip=22.1.2 - pip: - - git+git://https://github.com/os-c/ITR + # While ITR is not available on PyPI, or if environment is used for development purposes, comment out line 11, else + # comment out line 12 & 13. + # - ITR + - -r ../requirements.txt + - -e ../. diff --git a/requirements.txt b/requirements.txt index 22deaaaf..0d76bf77 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,4 +1,3 @@ -chardet==4.0.0 dash==2.4.1 dash_bootstrap_components==1.1.0 iam-units==2021.11.12 diff --git a/setup.py b/setup.py index f615f382..b2f90de3 100644 --- a/setup.py +++ b/setup.py @@ -13,43 +13,32 @@ author='Ortec Finance', author_email='joris.cramwinckel@ortec-finance.com', packages=find_packages(), - download_url = "https://pypi.org/project/ITR-Temperature-Alignment-Tool/", + download_url="https://pypi.org/project/ITR-Temperature-Alignment-Tool/", url="https://github.com/os-climate/ITR", project_urls={ "Bug Tracker": "https://github.com/os-climate/ITR", "Documentation": 'https://github.com/os-climate/ITR', "Source Code": "https://github.com/os-climate/ITR", }, - keywords = ['Climate', 'ITR', 'Finance'], + keywords=['Climate', 'ITR', 'Finance'], package_data={ - 'SBTi': [], + 'ITR': [], }, include_package_data=True, install_requires=[ - # 'ca-certificates', # ==2021.10.8 - 'certifi', # ==2021.10.8 - 'et_xmlfile', # ==1.1.0 - 'ipython', # ==8.1.1 - 'jupyterlab', # ==3.3.0 - 'matplotlib', # ==3.5.1 - 'numpy==1.22.2', - 'openpyxl', # ==3.0.9 - 'openscm-units', # ==0.5.0 - # 'openssl', # ==1.1.1l - 'pandas==1.4.1', - 'pint==0.18', - 'pint-pandas==0.2', - 'pip==22.0.3', - 'pydantic==1.8.2', - # 'python==3.9', - # 'python_abi==3.9', - 'pytz', # ==2021.3 - 'setuptools', # ==60.9.3 - # 'sqlite', # ==3.37.0 - 'wheel', # >=0.36.2 - 'xlrd', + 'iam-units>=2021.11.12', + 'openpyxl>=3.0.9', + 'openscm-units>=0.5.0', + 'pandas>=1.4.2', + 'pint>=0.18', + 'pint-pandas>=0.2', + 'pip>=22.0.3', + 'pydantic>=1.8.2', + 'setuptools>=60.9.3', + 'wheel>=0.36.2', + 'xlrd>=2.0.1', ], - python_requires='>=3.8', + python_requires='>=3.9', extras_require={ 'dev': [ 'nose2', @@ -65,7 +54,6 @@ "Intended Audience :: Developers", "Programming Language :: Python", "Programming Language :: Python :: 3", - "Programming Language :: Python :: 3.8", "Programming Language :: Python :: 3.9", "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3 :: Only", From eda5059134f1c01fb47601b64ad516f57686cc9d Mon Sep 17 00:00:00 2001 From: David Kroon <35101727+dp90@users.noreply.github.com> Date: Wed, 22 Jun 2022 14:04:26 +0200 Subject: [PATCH 262/345] Update requirements - checked to be able to run notebooks and UI Signed-off-by: David Kroon <35101727+dp90@users.noreply.github.com> Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- examples/requirements.txt | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 examples/requirements.txt diff --git a/examples/requirements.txt b/examples/requirements.txt new file mode 100644 index 00000000..e69de29b From ee4c6fda96a0438f1ea2d21c879984fa92d2be64 Mon Sep 17 00:00:00 2001 From: David Kroon <35101727+dp90@users.noreply.github.com> Date: Wed, 22 Jun 2022 14:05:00 +0200 Subject: [PATCH 263/345] Update requirements - checked to be able to run notebooks and UI Signed-off-by: David Kroon <35101727+dp90@users.noreply.github.com> Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- .gitignore | 2 ++ README.md | 70 ++++++++++++++++++++++++++++++--------- examples/environment.yml | 8 ++--- examples/requirements.txt | 8 +++++ requirements.txt | 3 +- 5 files changed, 67 insertions(+), 24 deletions(-) diff --git a/.gitignore b/.gitignore index f21c6341..15254ecf 100644 --- a/.gitignore +++ b/.gitignore @@ -113,6 +113,8 @@ venv/ ENV/ env.bak/ venv.bak/ +examples/itr_ui/ +itr_env/ # Spyder project settings .spyderproject diff --git a/README.md b/README.md index fe249980..2a781ef8 100644 --- a/README.md +++ b/README.md @@ -1,33 +1,71 @@ # ITR This Python module implements the ITR methodology. +## Getting started with the user interface: +If you use Anaconda environments, open an Anaconda prompt window, navigate to the 'examples' directory and run: +``` +conda env create -f environment.yml +conda activate itr_ui +python ITR_UI.py +``` + +For virtual environments, open a command prompt/terminal window, navigate to the 'examples' directory and run: +``` +python3 -m venv itr_ui +``` +On Unix or MacOS, activate the environment with +``` +source itr_ui/bin/activate +``` +On Windows, activate the environment with +``` +itr_ui\Scripts\activate.bat +``` +Next, run: +``` +python3 -m pip install --upgrade pip +pip install -r requirements.txt +python3 ITR_UI.py +``` + +Finally, open a browser window and navigate to `http://127.0.0.1:8050/` to access the user interface. + +## Jupyter notebooks +To work with notebooks from the 'examples' directory please register the kernel from your virtual environment +such that it is available in Jupyter. Kernels from Anaconda environments will be available by default. Replace +`` in the following command by your environment name (`itr_ui` or `itr_env`) and run it in your environment. +``` +python -m ipykernel install --user --name= +``` +Start Jupyter by activating your environment and running +``` +jupyter-notebook +``` -## Getting started for Contributors: -if you use Anaconda environments: +## Getting started for Contributors/Developers: +If you use Anaconda environments, open an Anaconda prompt window, navigate to the project directory and run: ``` conda env create -f environment.yml conda activate itr_env ``` -For virtual environments: - +For virtual environments, open a command prompt/terminal window, navigate to the project directory and run: ``` python3 -m venv itr_env +``` +On Unix or MacOS, activate the environment with +``` source itr_env/bin/activate -pip install -r 'requirements.txt' ``` - -## Development -For development purposes, install the ITR package using the following command: -```bash -pip install -e .[dev] -``` - -If you want to work with notebooks from the examples folder please register the kernel from your conda environment such -it is avilable in Jupyter. Virtual environments will be available by default. - +On Windows, activate the environment with ``` -python -m ipykernel install --user --name=itr_env +itr_env\Scripts\activate.bat +``` +Next, run: +``` +python3 -m pip install --upgrade pip +pip install -r requirements.txt +pip install -e .[dev] ``` ## User Interface diff --git a/examples/environment.yml b/examples/environment.yml index 5af10da7..dec2f8b5 100644 --- a/examples/environment.yml +++ b/examples/environment.yml @@ -1,4 +1,4 @@ -name: itr_getting_started +name: itr_ui channels: - conda-forge - defaults @@ -6,8 +6,4 @@ dependencies: - python=3.9.13 - pip=22.1.2 - pip: - # While ITR is not available on PyPI, or if environment is used for development purposes, comment out line 11, else - # comment out line 12 & 13. - # - ITR - - -r ../requirements.txt - - -e ../. + - -r requirements.txt diff --git a/examples/requirements.txt b/examples/requirements.txt index e69de29b..bc2b8ed5 100644 --- a/examples/requirements.txt +++ b/examples/requirements.txt @@ -0,0 +1,8 @@ +# While ITR is not available on PyPI: comment out line 2, else: comment out or delete line 3 +# ITR==1.0.0 +-e ../. +dash==2.4.1 +dash_bootstrap_components==1.1.0 +jupyter==1.0.0 +matplotlib==3.5.1 +pygithub==1.55 \ No newline at end of file diff --git a/requirements.txt b/requirements.txt index 0d76bf77..ada9891a 100644 --- a/requirements.txt +++ b/requirements.txt @@ -3,12 +3,11 @@ dash_bootstrap_components==1.1.0 iam-units==2021.11.12 jupyter==1.0.0 matplotlib==3.5.1 -numpy==1.22.2 openpyxl==3.0.9 openscm-units==0.5.0 pandas==1.4.2 -Pint-Pandas==0.2 Pint==0.18 +Pint-Pandas==0.2 pydantic==1.8.2 pygithub==1.55 Sphinx==4.5.0 From ed3ce081fb081e11174ebfd62b99857f31338d1c Mon Sep 17 00:00:00 2001 From: David Kroon <35101727+dp90@users.noreply.github.com> Date: Fri, 8 Jul 2022 14:36:01 +0200 Subject: [PATCH 264/345] Add signoff write to file template Signed-off-by: David Kroon <35101727+dp90@users.noreply.github.com> Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- dco_signoffs/add_dco_signoff.ipynb | 36 ++++++++++++++++++++++++++++++ dco_signoffs/dco.py | 0 2 files changed, 36 insertions(+) create mode 100644 dco_signoffs/add_dco_signoff.ipynb create mode 100644 dco_signoffs/dco.py diff --git a/dco_signoffs/add_dco_signoff.ipynb b/dco_signoffs/add_dco_signoff.ipynb new file mode 100644 index 00000000..f5746948 --- /dev/null +++ b/dco_signoffs/add_dco_signoff.ipynb @@ -0,0 +1,36 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 2 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython2", + "version": "2.7.6" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} \ No newline at end of file diff --git a/dco_signoffs/dco.py b/dco_signoffs/dco.py new file mode 100644 index 00000000..e69de29b From 12537b62ff72f8aceaedd02e7faa0c57d76eb666 Mon Sep 17 00:00:00 2001 From: David Kroon <35101727+dp90@users.noreply.github.com> Date: Fri, 8 Jul 2022 14:36:13 +0200 Subject: [PATCH 265/345] Add signoff write to file template Signed-off-by: David Kroon <35101727+dp90@users.noreply.github.com> Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- dco_signoffs/add_dco_signoff.ipynb | 160 ++++++++++++++++++++++++++++- dco_signoffs/dco.py | 38 +++++++ 2 files changed, 194 insertions(+), 4 deletions(-) diff --git a/dco_signoffs/add_dco_signoff.ipynb b/dco_signoffs/add_dco_signoff.ipynb index f5746948..1c84d7f8 100644 --- a/dco_signoffs/add_dco_signoff.ipynb +++ b/dco_signoffs/add_dco_signoff.ipynb @@ -1,15 +1,167 @@ { "cells": [ + { + "cell_type": "markdown", + "metadata": { + "collapsed": true, + "pycharm": { + "name": "#%% md\n" + } + }, + "source": [ + "## Example of adding DCO signoff to previous unsigned commits\n", + "The result is a .txt file (named as -Name-.txt) with the following statement:\n", + "I, -Name-, hereby sign-off-by all of my past commits to this repo subject to the Developer Certificate of Origin (DCO),\n", + "Version 1.1. In the past I have used emails: -email addresses-\n", + "-SHA- -Commit message-\n", + "etc.\n", + "\n", + "Please note that the supplied functions use the [GitPython](https://gitpython.readthedocs.io/en/stable/index.html) package. This package can be installed with the command:\n", + "`pip install GitPython`" + ] + }, + { + "cell_type": "markdown", + "source": [ + "Import functions" + ], + "metadata": { + "collapsed": false, + "pycharm": { + "name": "#%% md\n" + } + } + }, { "cell_type": "code", "execution_count": null, + "outputs": [], + "source": [ + "from dco import get_unsigned_commits, get_authors, get_authors_unsigned_commits, add_dco_signoff_to_file" + ], "metadata": { - "collapsed": true - }, + "collapsed": false, + "pycharm": { + "name": "#%%\n" + } + } + }, + { + "cell_type": "markdown", + "source": [ + "Specify the local path to the ITR repository, initialize a GitPython Repo object and checkout the develop branch:" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": null, "outputs": [], "source": [ - "" - ] + "GIT_PATH = 'C:\\src\\ITR' # Supply path to local git repository, e.g. 'C:\\src\\ITR'\n", + "repo = git.Repo(GIT_PATH)\n", + "repo.heads.develop.checkout()" + ], + "metadata": { + "collapsed": false, + "pycharm": { + "name": "#%%\n" + } + } + }, + { + "cell_type": "markdown", + "source": [ + "Next, list all authors of currently unsigned commits." + ], + "metadata": { + "collapsed": false, + "pycharm": { + "name": "#%% md\n" + } + } + }, + { + "cell_type": "code", + "execution_count": null, + "outputs": [], + "source": [ + "print(get_authors_unsigned_commits(repo))" + ], + "metadata": { + "collapsed": false, + "pycharm": { + "name": "#%%\n" + } + } + }, + { + "cell_type": "markdown", + "source": [ + "Identify which of the listed authors you are or are responsible for, and assign them to a variable. Note that the value\n", + "assigned to the name variable equals the name of the resulting file." + ], + "metadata": { + "collapsed": false, + "pycharm": { + "name": "#%% md\n" + } + } + }, + { + "cell_type": "code", + "execution_count": null, + "outputs": [], + "source": [ + "name = \"Your name\"\n", + "authors = [\"Author name\"]\n", + "email_addresses = ['past email address of author']\n", + "add_dco_signoff_to_file(repo, name, authors, email_addresses)" + ], + "metadata": { + "collapsed": false, + "pycharm": { + "name": "#%%\n" + } + } + }, + { + "cell_type": "markdown", + "source": [ + "If you are signing off on behalf of someone else, for example a former employee of your company, please add a message as\n", + "a complete string of the form:\n", + "I, -Name-, hereby sign-off-by all of my past commits to this repo subject to the Developer Certificate of Origin (DCO),\n", + "Version 1.1. In the past I have used emails: -email addresses-\n", + "\n", + "Provide your name and the name of the person you are signing off for as the `name` variable.\n", + "\n", + "For example:" + ], + "metadata": { + "collapsed": false, + "pycharm": { + "name": "#%% md\n" + } + } + }, + { + "cell_type": "code", + "execution_count": null, + "outputs": [], + "source": [ + "declaration = \"I, David Kroon, as representative of Ortec Finance, hereby sign-off-by all of the past commits by Jur de Jong to\" +\\\n", + " \"this repo subject to the Developer Certificate of Origin (DCO), Version 1.1.\" +\\\n", + " \"Emails used in the past are: jur.de.jong@ortecfinance.com.\"\n", + "name = \"David Kroon (on behalf of Jur de Jong)\"" + ], + "metadata": { + "collapsed": false, + "pycharm": { + "name": "#%%\n" + } + } } ], "metadata": { diff --git a/dco_signoffs/dco.py b/dco_signoffs/dco.py index e69de29b..cd0f4c54 100644 --- a/dco_signoffs/dco.py +++ b/dco_signoffs/dco.py @@ -0,0 +1,38 @@ +import git +from typing import List + +def get_unsigned_commits(repo: git.Repo) -> List[git.Commit]: + unsigned_commits = [] + for commit in repo.iter_commits(): + if not commit.message.__contains__("Signed-off-by"): + unsigned_commits.append(commit) + return unsigned_commits + +def get_authors(unsigned_commits: List[git.Commit]) -> List[str]: + authors = [str(commit.author) for commit in unsigned_commits] + unique_authors = list(set(authors)) + return unique_authors + +def get_authors_unsigned_commits(repo) -> List[str]: + unsigned_commits = get_unsigned_commits(repo) + return get_authors(unsigned_commits) + +def add_dco_signoff_to_file(repo: git.Repo, name: str, authors: List[str], email_addresses: List[str], declaration: str = ""): + """ + repo: The repository for which to add DCO sign-offs. Make sure to have checked out the correct branch. + name: Name used to identify the one declaring sign-off statement. + gh_names: List of names under which the unsigned commits were committed - can be multiple for the same user. + email_addresses: List of any past email address used by user in relation to the unsigned commits. May be an empty list. + """ + if not declaration: + declaration = f"I, {name}, hereby sign-off-by all of my past commits to this repo subject to the Developer " + \ + f"Certificate of Origin (DCO), Version 1.1. " + if email_addresses: + declaration += f"In the past I have used emails: {email_addresses}. " + unsigned_commits = get_unsigned_commits(repo) + authors_commits = [commit for commit in unsigned_commits if str(commit.author) in authors] + with open(name + '.txt', 'w') as file: + file.write(declaration + "\n") + for commit in authors_commits: + message = commit.message.replace('\n', ' ') + file.write(f"{commit.hexsha} {message}\n") \ No newline at end of file From b02e8094d7f2a05b1502065f50b749990b4362d2 Mon Sep 17 00:00:00 2001 From: David Kroon <35101727+dp90@users.noreply.github.com> Date: Fri, 8 Jul 2022 16:31:25 +0200 Subject: [PATCH 266/345] Change imports Signed-off-by: David Kroon <35101727+dp90@users.noreply.github.com> Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- dco_signoffs/add_dco_signoff.ipynb | 126 +++++++++++++---------------- 1 file changed, 58 insertions(+), 68 deletions(-) diff --git a/dco_signoffs/add_dco_signoff.ipynb b/dco_signoffs/add_dco_signoff.ipynb index 1c84d7f8..5b3ea856 100644 --- a/dco_signoffs/add_dco_signoff.ipynb +++ b/dco_signoffs/add_dco_signoff.ipynb @@ -22,113 +22,110 @@ }, { "cell_type": "markdown", - "source": [ - "Import functions" - ], "metadata": { - "collapsed": false, "pycharm": { "name": "#%% md\n" } - } + }, + "source": [ + "Import functions" + ] }, { "cell_type": "code", "execution_count": null, - "outputs": [], - "source": [ - "from dco import get_unsigned_commits, get_authors, get_authors_unsigned_commits, add_dco_signoff_to_file" - ], "metadata": { - "collapsed": false, "pycharm": { "name": "#%%\n" } - } + }, + "outputs": [], + "source": [ + "import git\n", + "from dco import get_authors_unsigned_commits, add_dco_signoff_to_file" + ] }, { "cell_type": "markdown", + "metadata": {}, "source": [ - "Specify the local path to the ITR repository, initialize a GitPython Repo object and checkout the develop branch:" - ], - "metadata": { - "collapsed": false - } + "Specify the local path to the ITR repository, initialize a GitPython Repo object and make sure that you have checked\n", + "out the develop branch:" + ] }, { "cell_type": "code", "execution_count": null, - "outputs": [], - "source": [ - "GIT_PATH = 'C:\\src\\ITR' # Supply path to local git repository, e.g. 'C:\\src\\ITR'\n", - "repo = git.Repo(GIT_PATH)\n", - "repo.heads.develop.checkout()" - ], "metadata": { - "collapsed": false, "pycharm": { "name": "#%%\n" } - } + }, + "outputs": [], + "source": [ + "GIT_PATH = 'C:\\src\\ITR' # Supply path to local git repository, e.g. 'C:\\src\\ITR'\n", + "repo = git.Repo(GIT_PATH)" + ] }, { "cell_type": "markdown", - "source": [ - "Next, list all authors of currently unsigned commits." - ], "metadata": { - "collapsed": false, "pycharm": { "name": "#%% md\n" } - } + }, + "source": [ + "Next, list all authors of currently unsigned commits." + ] }, { "cell_type": "code", "execution_count": null, - "outputs": [], - "source": [ - "print(get_authors_unsigned_commits(repo))" - ], "metadata": { - "collapsed": false, "pycharm": { "name": "#%%\n" } - } + }, + "outputs": [], + "source": [ + "print(get_authors_unsigned_commits(repo))" + ] }, { "cell_type": "markdown", - "source": [ - "Identify which of the listed authors you are or are responsible for, and assign them to a variable. Note that the value\n", - "assigned to the name variable equals the name of the resulting file." - ], "metadata": { - "collapsed": false, "pycharm": { "name": "#%% md\n" } - } + }, + "source": [ + "Identify which of the listed authors you are or are responsible for, and assign them to a variable. Note that the value\n", + "assigned to the name variable equals the name of the resulting file." + ] }, { "cell_type": "code", "execution_count": null, + "metadata": { + "pycharm": { + "name": "#%%\n" + } + }, "outputs": [], "source": [ "name = \"Your name\"\n", "authors = [\"Author name\"]\n", "email_addresses = ['past email address of author']\n", "add_dco_signoff_to_file(repo, name, authors, email_addresses)" - ], - "metadata": { - "collapsed": false, - "pycharm": { - "name": "#%%\n" - } - } + ] }, { "cell_type": "markdown", + "metadata": { + "pycharm": { + "name": "#%% md\n" + } + }, "source": [ "If you are signing off on behalf of someone else, for example a former employee of your company, please add a message as\n", "a complete string of the form:\n", @@ -138,51 +135,44 @@ "Provide your name and the name of the person you are signing off for as the `name` variable.\n", "\n", "For example:" - ], - "metadata": { - "collapsed": false, - "pycharm": { - "name": "#%% md\n" - } - } + ] }, { "cell_type": "code", "execution_count": null, + "metadata": { + "pycharm": { + "name": "#%%\n" + } + }, "outputs": [], "source": [ "declaration = \"I, David Kroon, as representative of Ortec Finance, hereby sign-off-by all of the past commits by Jur de Jong to\" +\\\n", " \"this repo subject to the Developer Certificate of Origin (DCO), Version 1.1.\" +\\\n", " \"Emails used in the past are: jur.de.jong@ortecfinance.com.\"\n", "name = \"David Kroon (on behalf of Jur de Jong)\"" - ], - "metadata": { - "collapsed": false, - "pycharm": { - "name": "#%%\n" - } - } + ] } ], "metadata": { "kernelspec": { - "display_name": "Python 3", + "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", - "version": 2 + "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", - "pygments_lexer": "ipython2", - "version": "2.7.6" + "pygments_lexer": "ipython3", + "version": "3.9.13" } }, "nbformat": 4, - "nbformat_minor": 0 -} \ No newline at end of file + "nbformat_minor": 1 +} From 077311a6cd993c701455a35657f6727727926385 Mon Sep 17 00:00:00 2001 From: David Kroon <35101727+dp90@users.noreply.github.com> Date: Fri, 8 Jul 2022 16:36:26 +0200 Subject: [PATCH 267/345] Fix no file if no unsigned commits Signed-off-by: David Kroon <35101727+dp90@users.noreply.github.com> Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- dco_signoffs/add_dco_signoff.ipynb | 12 +++++++----- dco_signoffs/dco.py | 6 +++++- 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/dco_signoffs/add_dco_signoff.ipynb b/dco_signoffs/add_dco_signoff.ipynb index 5b3ea856..ae326b4d 100644 --- a/dco_signoffs/add_dco_signoff.ipynb +++ b/dco_signoffs/add_dco_signoff.ipynb @@ -113,9 +113,9 @@ }, "outputs": [], "source": [ - "name = \"Your name\"\n", + "name = \"Name\"\n", "authors = [\"Author name\"]\n", - "email_addresses = ['past email address of author']\n", + "email_addresses = [\"past email address of author\"]\n", "add_dco_signoff_to_file(repo, name, authors, email_addresses)" ] }, @@ -148,9 +148,11 @@ "outputs": [], "source": [ "declaration = \"I, David Kroon, as representative of Ortec Finance, hereby sign-off-by all of the past commits by Jur de Jong to\" +\\\n", - " \"this repo subject to the Developer Certificate of Origin (DCO), Version 1.1.\" +\\\n", - " \"Emails used in the past are: jur.de.jong@ortecfinance.com.\"\n", - "name = \"David Kroon (on behalf of Jur de Jong)\"" + " \" this repo subject to the Developer Certificate of Origin (DCO), Version 1.1.\" +\\\n", + " \" Emails used in the past are: jur.de.jong@ortecfinance.com.\"\n", + "name = \"David Kroon (on behalf of Jur de Jong)\"\n", + "authors = [\"Jur de Jong\"]\n", + "add_dco_signoff_to_file(repo, name, authors, email_addresses, declaration)" ] } ], diff --git a/dco_signoffs/dco.py b/dco_signoffs/dco.py index cd0f4c54..c6dc4e60 100644 --- a/dco_signoffs/dco.py +++ b/dco_signoffs/dco.py @@ -31,8 +31,12 @@ def add_dco_signoff_to_file(repo: git.Repo, name: str, authors: List[str], email declaration += f"In the past I have used emails: {email_addresses}. " unsigned_commits = get_unsigned_commits(repo) authors_commits = [commit for commit in unsigned_commits if str(commit.author) in authors] + if not authors_commits: + return + with open(name + '.txt', 'w') as file: file.write(declaration + "\n") for commit in authors_commits: message = commit.message.replace('\n', ' ') - file.write(f"{commit.hexsha} {message}\n") \ No newline at end of file + file.write(f"{commit.hexsha} {message}\n") + return From 53c1327355f412edde400638cb0aac3a8dd10f2b Mon Sep 17 00:00:00 2001 From: David Kroon <35101727+dp90@users.noreply.github.com> Date: Fri, 8 Jul 2022 16:37:23 +0200 Subject: [PATCH 268/345] Add DCO signoff file for David Kroon and Jur de Jong Signed-off-by: David Kroon <35101727+dp90@users.noreply.github.com> Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- ...David Kroon (on behalf of Jur de Jong).txt | 22 ++++++++ dco_signoffs/David Kroon.txt | 55 +++++++++++++++++++ 2 files changed, 77 insertions(+) create mode 100644 dco_signoffs/David Kroon (on behalf of Jur de Jong).txt create mode 100644 dco_signoffs/David Kroon.txt diff --git a/dco_signoffs/David Kroon (on behalf of Jur de Jong).txt b/dco_signoffs/David Kroon (on behalf of Jur de Jong).txt new file mode 100644 index 00000000..b4e084bc --- /dev/null +++ b/dco_signoffs/David Kroon (on behalf of Jur de Jong).txt @@ -0,0 +1,22 @@ +I, David Kroon, as representative of Ortec Finance, hereby sign-off-by all of the past commits by Jur de Jong to this repo subject to the Developer Certificate of Origin (DCO), Version 1.1. Emails used in the past are: jur.de.jong@ortecfinance.com. +0d0390e737b5e1f7a0573f17c56c5e989d0be39e test data +29c816d47bb59c3bb2dc2b432432b459759561b5 replaced sbti by itr +11b21499776638e81a7d704a3086f1a9ddbdf08b update notebook + notebook data +4c2234dc2078e1c90a2bf5ed51cb37c53f296c21 update tests +6899c50d9687e08f29ec439c0ac47a61cd73a3e1 test df to target model +493453307ae619532621199086feb344f27c22cd additional tests +6072b8fd0ec50f589d8a4a33ecb38539e5630d1f update data +c138b76b4b9f21e67ca9d7bceeae4a4e442a87e9 tests +9c545e1d546ccae76ed2f32dc8b4baed6d3b9659 clean up and extra checks +d74b6fcdc5fb94ef1d76afe07c0df017fceec4c0 added sectors and target data +59727783ee93a99dcf701846eb5220b61027e1e6 data provider update +893a951cc9b65533fe532d020cb2ff5bb06e438b target data +8ebb71949942f166e15ece97b9774241be122aa4 pip install . +be150a3c2c53bbf788c61281389f4ca9a2e56de4 fixed additional issue +080c858c82a88804524cdbbfe0fad7110c9416f3 data provider example +91d1c5fc1f4df21058670179153a7909bb2c056c fixed issue +dd0e8e0dd6eefc332fd61f2f964cf7e042f4fe21 use projected ei and projected production +4099ef991745d705e742bade352ce998af4d8ec9 update +96a99f5df4044fb8c8e59c35a884b81cd9092681 update +51463510b4338048cb25debfb46a7b39d78d2902 update +28cf4699c852e8fa5733e178bddcb1004e78a996 tests diff --git a/dco_signoffs/David Kroon.txt b/dco_signoffs/David Kroon.txt new file mode 100644 index 00000000..113bec98 --- /dev/null +++ b/dco_signoffs/David Kroon.txt @@ -0,0 +1,55 @@ +I, David Kroon, hereby sign-off-by all of my past commits to this repo subject to the Developer Certificate of Origin (DCO), Version 1.1. +8012d7e0f74725911a1d9f76df8b5384b0c28247 Merge pull request #122 from os-climate/environmet_setup Environmet setup +00a48c8f1607200de02f936a5df338f462439bb6 Merge pull request #121 from os-climate/target_data_bug Allow missing target data - score will be based on trajectory +91ccb2a78ad2940bda99538685202065ec01d94b Merge pull request #109 from os-climate/mdt-oecd Added OECD show-and-tell +c14cbb59cf73d89f3a45379bd9eb06ed5ad86973 Merge pull request #120 from os-climate/ui_input_data Remove Exelon Corp from target data - target already expired +b91974b6781f6373ece556e0717a7f66d1848722 Merge pull request #116 from os-climate/logging Implement logging +bfb6e65b38e55ef06c5c18fc2e9b3d3d7b4de703 Merge pull request #114 from os-climate/develop-logging Add logging +75e44c363660da03c06d768580243ce726a46c30 Merge branch 'develop' into develop-logging +cdd034a4921d9f6c463a90ad881f6722ab6c1b98 Merge pull request #115 from os-climate/develop_fix Develop fix +e3598d28a1212d89704bda1fb4439bde5faa3b45 Merge branch 'develop' into develop-logging +f0f82f940443544a065996c84fa5e4b6ab8e441b Merge branch 'develop' into develop_fix +3663009c447b0908f40f32424390102f367a0ffd Merge remote-tracking branch 'origin/develop-logging' into develop_fix +0f0c10224371e29a030a3b0329dcb4239eee8e6f Revert "Merge branch 'develop-logging' into develop" This reverts commit 487e7265e65dc619ce35aa4db9bbbac161909755, reversing changes made to 49e828699aa5153e82baee0eafbc6c664cc54da0. +487e7265e65dc619ce35aa4db9bbbac161909755 Merge branch 'develop-logging' into develop +49e828699aa5153e82baee0eafbc6c664cc54da0 Merge pull request #107 from os-climate/GUI-functionality Update for UI. UI could be used for release. +c35e491650d61397497feba1f616c9c188802fec Merge pull request #94 from os-climate/#51_update_tpi_models #51 update tpi benchmark models +8ec5a87c384912d6184871ce65b10b026e7ea7ab Merge pull request #106 from os-climate/mdt-portfolioaggregation Address ITR #104 +9f327fcf1bb44d31af1446bd151dc13ddc49a38c Merge pull request #100 from os-climate/#86_issue_if_target_data_is_unavailable Merge pull request #86_issue_if_target_data_is_unavailable into os-climate/develop +04fb506c9b3f7d957a71a6e394565d699d24d202 Merge pull request #99 from os-climate/develop Add updates in develop to feature branch +90c909aeb85cafde56461e738930f3a302fd2496 Merge branch '#86_issue_if_target_data_is_unavailable' into develop +a5a48c4e4610f17396b708d8e09ed55e68e70c98 Merge pull request #98 from os-climate/update_vulnerability_scan Update vulnerability scan +6b543b522608f0b8e582eac680336a882aa5ed2e Merge pull request #92 from alexanu/UI-update-Excel-upload-ErrorFlagging Adding check for sectors in scope while reading xlsx with input data +cef76eafd9c5d39c7da23c0de7c0e1bec7a1fc57 Merge pull request #90 from os-climate/develop-ProjectionControls Support flexible projection controls +0b442ddc0e557e4bf21933fbb0df16e5235e7914 Update requirements.txt and conda env yaml +acc693179f99f9d5c458b345b243d0d444f2c18d Fix some tests +94c3a9820802e44dc1c2554ce60e6196f3f7c157 Attempt at cleanup, renaming, fixing tests +580a27f4c735f09ccb9538353501fc3aa7993c5a Cleanup and fixing of some tests +15af2645d8d38c89faa5329083811a7d45b277ce Add handling of absolute type target +52cf25837ee9f5142d3f3265d588f686f5e37cd3 Add target projection based on emission intensity targets +d02765099ff5ff86883d81cb204d70f81f3538a1 WIP Edit project_targets to handle Pydantic data +8c9008bb0adbbfe445724b1724f584ebccd0d770 Add directory unit test workflow +9ae24eb74c6df3f7fe64d567f5c3dc453618cfc5 Increase Python and Pandas versions +1411a1d1c39ce8df5a60c62d2bb8473e31310c53 Fix GitHub unit test workflow +d9967210591eababe42e13d63c2c79fb0bb5f80a Add GitHub workflow for running unit tests on pushes and PRs to main and develop +7e55ce504fea94df83bd76f73cd7a00eefadb27c Add GitHub workflow for running unit tests on pushes and PRs to main and develop +b3fcaa39e5a47b48aee1567f4843c8a97351f0b4 Add JSON company provider and test +af3f496f89b70ce403d86dd0418f192fc3168a42 Merge pull request #13 from os-c/make_api_compatible improved validation for api +88cf0b263b0fde08d7d4a7dbc3ffe5d68c99553d Fix requirements +66efb3ea4940cf5ee13f1049696fbf0c79faa4c1 Add run tests and notebook tests for pushes on develop +bf86a781b1e01489a3aec73f3c3a70cdb6dc938d Merge branch target into branch develop +6f9a866036d9cc1f4b2918c18f0cd97f90e3611a Remove unused imports +221747943efeb45cc2d5b21b6bf8ada0652899cf Merge pull request #8 from os-c/notebook_test Notebook test +b3ae5346a5bbe0a844cee77ec9462f5793789bd9 Merge branch 'develop' into notebook_test +6ceb0e57fd8b9cefedba5de955b9bb3d4551b33e Update notebook test +fc72309c4c5adbf6e227000c7a0c6e532c646d61 Merge pull request #5 from os-c/nb_workflow Nb workflow +612cadb918b63bd6ca009de8d4d7311c720e43d1 Update dependences for notebook test +77cba42911964288c91bf591f319d6253292cd99 Update check notebook github action +e1ddeaa20b55badb705608559c9980ed632a5f2a Update notebook check workflow to run on PR +ab3ef272e749accf24f6284ddbb1283f1f870776 Update dependencies +3d6ba467f5e397da99c326077d7aa47fce20a1c1 Compute temperature scores based on ITR method +8bd01f0a22488848c0682c68f9f7619f54759089 Add current temp and budget to configs +86255d04c12c9acb0bff26eb7c74e519da475c89 Move budgets to data provider data +0965f624c7a047d156d8198d77ffaefb474f553a Update example budgets +7c386b0580e30b75342f140096e62815d679564a Create example budgets +2f7e19fdeeb08b9ffad210480784583bfd75e5d2 Add budget interface and remove unused code From fdc013fb8ae0dbe087a127002d4268a40c4445ac Mon Sep 17 00:00:00 2001 From: Joris Cramwinckel <8858036+joriscram@users.noreply.github.com> Date: Mon, 11 Jul 2022 14:15:42 +0200 Subject: [PATCH 269/345] generated dco sign-offs for all non signed commits in develop Signed-off-by: Joris Cramwinckel <8858036+joriscram@users.noreply.github.com> Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- dco-signoffs/David Kroon-.txt | 120 +++ dco-signoffs/Heather Ackenhusen-.txt | 12 + dco-signoffs/Joris Cramwinckel-.txt | 204 +++++ dco-signoffs/Jur de Jong-.txt | 86 ++ dco-signoffs/Michael Tiemann-.txt | 160 ++++ dco-signoffs/MichaelTiemann-.txt | 848 ++++++++++++++++++ dco-signoffs/MichaelTiemannOSC-.txt | 226 +++++ dco-signoffs/Oleksandr Anufriyev-.txt | 8 + dco-signoffs/nvhz5mv-.txt | 6 + ...David Kroon (on behalf of Jur de Jong).txt | 22 - dco_signoffs/David Kroon.txt | 55 -- dco_signoffs/add_dco_signoff.ipynb | 180 ---- dco_signoffs/dco.py | 42 - 13 files changed, 1670 insertions(+), 299 deletions(-) create mode 100644 dco-signoffs/David Kroon-.txt create mode 100644 dco-signoffs/Heather Ackenhusen-.txt create mode 100644 dco-signoffs/Joris Cramwinckel-.txt create mode 100644 dco-signoffs/Jur de Jong-.txt create mode 100644 dco-signoffs/Michael Tiemann-.txt create mode 100644 dco-signoffs/MichaelTiemann-.txt create mode 100644 dco-signoffs/MichaelTiemannOSC-.txt create mode 100644 dco-signoffs/Oleksandr Anufriyev-.txt create mode 100644 dco-signoffs/nvhz5mv-.txt delete mode 100644 dco_signoffs/David Kroon (on behalf of Jur de Jong).txt delete mode 100644 dco_signoffs/David Kroon.txt delete mode 100644 dco_signoffs/add_dco_signoff.ipynb delete mode 100644 dco_signoffs/dco.py diff --git a/dco-signoffs/David Kroon-.txt b/dco-signoffs/David Kroon-.txt new file mode 100644 index 00000000..4285c639 --- /dev/null +++ b/dco-signoffs/David Kroon-.txt @@ -0,0 +1,120 @@ +I, David Kroon hereby sign-off-by all of my past commits to this repo subject to the Developer Certificate of Origin (DCO), Version 1.1. In the past I have used emails: 35101727+dp90@users.noreply.github.com + +0f0c10224371e29a030a3b0329dcb4239eee8e6f Revert "Merge branch 'develop-logging' into develop" + +This reverts commit 487e7265e65dc619ce35aa4db9bbbac161909755, reversing +changes made to 49e828699aa5153e82baee0eafbc6c664cc54da0. + +0b442ddc0e557e4bf21933fbb0df16e5235e7914 Update requirements.txt and conda env yaml + +acc693179f99f9d5c458b345b243d0d444f2c18d Fix some tests + +94c3a9820802e44dc1c2554ce60e6196f3f7c157 Attempt at cleanup, renaming, fixing tests + +580a27f4c735f09ccb9538353501fc3aa7993c5a Cleanup and fixing of some tests + +15af2645d8d38c89faa5329083811a7d45b277ce Add handling of absolute type target + +52cf25837ee9f5142d3f3265d588f686f5e37cd3 Add target projection based on emission intensity targets + +d02765099ff5ff86883d81cb204d70f81f3538a1 WIP Edit project_targets to handle Pydantic data + +8c9008bb0adbbfe445724b1724f584ebccd0d770 Add directory unit test workflow + +9ae24eb74c6df3f7fe64d567f5c3dc453618cfc5 Increase Python and Pandas versions + +1411a1d1c39ce8df5a60c62d2bb8473e31310c53 Fix GitHub unit test workflow + +d9967210591eababe42e13d63c2c79fb0bb5f80a Add GitHub workflow for running unit tests on pushes and PRs to main and develop + +7e55ce504fea94df83bd76f73cd7a00eefadb27c Add GitHub workflow for running unit tests on pushes and PRs to main and develop + +b3fcaa39e5a47b48aee1567f4843c8a97351f0b4 Add JSON company provider and test + +88cf0b263b0fde08d7d4a7dbc3ffe5d68c99553d Fix requirements + +66efb3ea4940cf5ee13f1049696fbf0c79faa4c1 Add run tests and notebook tests for pushes on develop + +6f9a866036d9cc1f4b2918c18f0cd97f90e3611a Remove unused imports + +6ceb0e57fd8b9cefedba5de955b9bb3d4551b33e Update notebook test + +612cadb918b63bd6ca009de8d4d7311c720e43d1 Update dependences for notebook test + +77cba42911964288c91bf591f319d6253292cd99 Update check notebook github action + +e1ddeaa20b55badb705608559c9980ed632a5f2a Update notebook check workflow to run on PR + +ab3ef272e749accf24f6284ddbb1283f1f870776 Update dependencies + +3d6ba467f5e397da99c326077d7aa47fce20a1c1 Compute temperature scores based on ITR method + +8bd01f0a22488848c0682c68f9f7619f54759089 Add current temp and budget to configs + +86255d04c12c9acb0bff26eb7c74e519da475c89 Move budgets to data provider data + +0965f624c7a047d156d8198d77ffaefb474f553a Update example budgets + +7c386b0580e30b75342f140096e62815d679564a Create example budgets + +2f7e19fdeeb08b9ffad210480784583bfd75e5d2 Add budget interface and remove unused code + +0f0c10224371e29a030a3b0329dcb4239eee8e6f Revert "Merge branch 'develop-logging' into develop" + +This reverts commit 487e7265e65dc619ce35aa4db9bbbac161909755, reversing +changes made to 49e828699aa5153e82baee0eafbc6c664cc54da0. + +0b442ddc0e557e4bf21933fbb0df16e5235e7914 Update requirements.txt and conda env yaml + +acc693179f99f9d5c458b345b243d0d444f2c18d Fix some tests + +94c3a9820802e44dc1c2554ce60e6196f3f7c157 Attempt at cleanup, renaming, fixing tests + +580a27f4c735f09ccb9538353501fc3aa7993c5a Cleanup and fixing of some tests + +15af2645d8d38c89faa5329083811a7d45b277ce Add handling of absolute type target + +52cf25837ee9f5142d3f3265d588f686f5e37cd3 Add target projection based on emission intensity targets + +d02765099ff5ff86883d81cb204d70f81f3538a1 WIP Edit project_targets to handle Pydantic data + +8c9008bb0adbbfe445724b1724f584ebccd0d770 Add directory unit test workflow + +9ae24eb74c6df3f7fe64d567f5c3dc453618cfc5 Increase Python and Pandas versions + +1411a1d1c39ce8df5a60c62d2bb8473e31310c53 Fix GitHub unit test workflow + +d9967210591eababe42e13d63c2c79fb0bb5f80a Add GitHub workflow for running unit tests on pushes and PRs to main and develop + +7e55ce504fea94df83bd76f73cd7a00eefadb27c Add GitHub workflow for running unit tests on pushes and PRs to main and develop + +b3fcaa39e5a47b48aee1567f4843c8a97351f0b4 Add JSON company provider and test + +88cf0b263b0fde08d7d4a7dbc3ffe5d68c99553d Fix requirements + +66efb3ea4940cf5ee13f1049696fbf0c79faa4c1 Add run tests and notebook tests for pushes on develop + +6f9a866036d9cc1f4b2918c18f0cd97f90e3611a Remove unused imports + +6ceb0e57fd8b9cefedba5de955b9bb3d4551b33e Update notebook test + +612cadb918b63bd6ca009de8d4d7311c720e43d1 Update dependences for notebook test + +77cba42911964288c91bf591f319d6253292cd99 Update check notebook github action + +e1ddeaa20b55badb705608559c9980ed632a5f2a Update notebook check workflow to run on PR + +ab3ef272e749accf24f6284ddbb1283f1f870776 Update dependencies + +3d6ba467f5e397da99c326077d7aa47fce20a1c1 Compute temperature scores based on ITR method + +8bd01f0a22488848c0682c68f9f7619f54759089 Add current temp and budget to configs + +86255d04c12c9acb0bff26eb7c74e519da475c89 Move budgets to data provider data + +0965f624c7a047d156d8198d77ffaefb474f553a Update example budgets + +7c386b0580e30b75342f140096e62815d679564a Create example budgets + +2f7e19fdeeb08b9ffad210480784583bfd75e5d2 Add budget interface and remove unused code + diff --git a/dco-signoffs/Heather Ackenhusen-.txt b/dco-signoffs/Heather Ackenhusen-.txt new file mode 100644 index 00000000..21664c43 --- /dev/null +++ b/dco-signoffs/Heather Ackenhusen-.txt @@ -0,0 +1,12 @@ +I, Heather Ackenhusen hereby sign-off-by all of my past commits to this repo subject to the Developer Certificate of Origin (DCO), Version 1.1. In the past I have used emails: 90428947+HeatherAck@users.noreply.github.com + +7b26a3f1a0e53986b081ba7068cdc457369148d2 updated wording in loading your own data section +ad7e42f427d4145b0fd026f366d672ab74cb13b1 fixed formatting +aaef94f10f1cb9a637fb78e032d26cbf2bbb26db updated documentation + +added steps to load own data as well as steps to run notebook (post installation) +7b26a3f1a0e53986b081ba7068cdc457369148d2 updated wording in loading your own data section +ad7e42f427d4145b0fd026f366d672ab74cb13b1 fixed formatting +aaef94f10f1cb9a637fb78e032d26cbf2bbb26db updated documentation + +added steps to load own data as well as steps to run notebook (post installation) diff --git a/dco-signoffs/Joris Cramwinckel-.txt b/dco-signoffs/Joris Cramwinckel-.txt new file mode 100644 index 00000000..7a69bef6 --- /dev/null +++ b/dco-signoffs/Joris Cramwinckel-.txt @@ -0,0 +1,204 @@ +I, Joris Cramwinckel hereby sign-off-by all of my past commits to this repo subject to the Developer Certificate of Origin (DCO), Version 1.1. In the past I have used emails: 8858036+joriscram@users.noreply.github.com + +d88f7f2154bb8fcef9609209401ebd61f6a2d46e hotfix - custom sphinx-autoapi dependency decrecated -> updated to community version + +0464cb1bc074bb270f5d6a6d651a7c65f74fcf81 updated docs + +6c7f60c6c449d38f6561e84e62c16df725d654ee changed notebook kernel + +705b59e9f8a8403c2f0f5e093993e8718dac0835 notebook fix + +753270ab3dd3bd0a1573504fccdad33473c1351b forced validation on excel production and intensity benchmarks. ++ added TPI benchmarks (incl tests) + +f69df2821576a1d7c29808c41efb3aaae99bdb2e added intermediate calculation results in scores + +424a4b3e8123297d8fa007a10dc4162a53dc1286 included global budget, temperature as required field in EI benchmarks + +155994f14517df1a34048ea1c28675924bfa427a connected the benchmark providers to the refactoring + +3835ae182b18033ee903f6142f36d577ca3dcc9b Refactored Dataproviders to force validation via pydantic and prepare for FastAPI usage + +a0d7910c5413fc85685882668158c2e1bfe9b6ae improved pydantic validation + +e1b3cb06c9cdd1c6cc2615511b56ac46c5353f44 fix notebook test + +33b779d35d055b0950a5f93f4b4ff2a5bc8c676f implemented code review comments + +65646454e007a1486f05618763454a5133871260 reconnected with new methodology and results + +13ab443d780a97a0b1e3e0c96ed24c641fc231ae extended unit tests and fixed bugs + +6b5980b6741e9e9eac437dc438d878b70aed410f polished config handling + +b77aba214ade22a873872577ee8fd6c4865f4f6d downgraded numpy to reduce warnings + +9ed1a771aff0a0f8e9acc371e694ac054a709d71 updated methodology + +8d1efbd3fd51824badb9a8951d043e817ea3a3b7 cleaning configs + +0b6d92b1b60cbf2f3c1941cdaca375847346643e connected tests and refactored + +5d6cb0bb84226a75df0128056c20cf1e20b0d651 tinkering -> making benchmark settings benchmark provider attributes + +d48030fbb5cab5e72feb68e79d6f1c2a583c1a19 connected jupyter notebooks to new data interfaces + +0d642397d5b13e29d318973cb65fa953c5008741 refactored data providers to be compatible with stateless use. + +71e2af715e21c135389f4b27365e34c8fb67f999 refactored projected production to use ghg_s1s2 values and benchmarks + +34e0c8a8fd6b424e46be756e1ae59e485fcb8e45 removed all target related inheritance from sbti + +7871d31c5020f95bb532757eaa80e03fe250d909 removed all target related inheritance from sbti + +cab2d2cf584dc5973c6eea962ef4518c61fc63a9 Allow temperature score control to be overwritten. +Set new default TCRE value to 2.2 +reconnected all unit tests + +844ec1d3d94982c1e998fff129e96c10a262146c Fixing unittests + +433a1a4dd74ae780f127b7c06401e67dac19e35a hotfix notebook for pipeline to succeed + +3c2ba8d299f166f3c4f9bdc1201c56590d496f5a fixed mypy complaints 3 + +1edb83ed42ea85c24c5ab0beb334e828c6d7d58b fixed mypy complaints 2 + +076a9168559b24b0d03a7698dab3b3c9b12fd99f fixed mypy complaints + +22cb433ea8e65d524b3f153ea412e940da6c1bdd Got tests to work +skipped scoring testsuite, needs revision still. + +a7d48047e3c4a4c33174a9200853d3ec1ca21fb3 alligned the methodology with Excel version. +included default scoring +cleared unneeded files + +5aa3ec5edc75043eb790b4369a0b28141e95b0e3 made the notebook agnostic where it runs; local of in the cloud. + +1574e2bb5c9c795197da4792d0dc556a1d1b6383 publish docs to gh-pages + +0ea9bdc7af24f358bec7451d0a4926a3995b3682 upgraded python version to 3.7 + +d0192869dd7d3f05dc058dc088a2d464d1a3151b upgraded python version to 3.7 + +baf6caeadc9fbc437925a223c1ea1ce3f664d821 adjusted workflows to work on main + +09c6b2a97ee38251beab2c257257c2b4413f4a94 added workflows + +d9f164cfd5fa0311ad196677d11dde7494227b26 Connected Notebook to scoring method + +7d662568477bff08f15ee811da0ca6d844014255 started refactoring scoring II + +f86ed8ce0a78139c1212f48eded85f415ad40130 started refactoring scoring + +1d8f638102f4b4e053f940daa4b0dd34d4b359b3 cleaned example portfolio.csv + +53e13681556703dfdb2cf4d8b311556dcc2e1c66 setup the skeleton of the Python module (based on SBTi) + +479612653e5fccfa832a86a12877f59242876acd drafted github project + +e097c3c808fcda6fa477d05c765f5ae3d80af9b2 added conda env and empty python module + +db94825430ef47ff672fc04b6750d823c1a2adc0 drafted github project + +074f262881ad83f1eeb6cafb91caeb707e6b10cb Initial commit +d88f7f2154bb8fcef9609209401ebd61f6a2d46e hotfix - custom sphinx-autoapi dependency decrecated -> updated to community version + +0464cb1bc074bb270f5d6a6d651a7c65f74fcf81 updated docs + +6c7f60c6c449d38f6561e84e62c16df725d654ee changed notebook kernel + +705b59e9f8a8403c2f0f5e093993e8718dac0835 notebook fix + +753270ab3dd3bd0a1573504fccdad33473c1351b forced validation on excel production and intensity benchmarks. ++ added TPI benchmarks (incl tests) + +f69df2821576a1d7c29808c41efb3aaae99bdb2e added intermediate calculation results in scores + +424a4b3e8123297d8fa007a10dc4162a53dc1286 included global budget, temperature as required field in EI benchmarks + +155994f14517df1a34048ea1c28675924bfa427a connected the benchmark providers to the refactoring + +3835ae182b18033ee903f6142f36d577ca3dcc9b Refactored Dataproviders to force validation via pydantic and prepare for FastAPI usage + +a0d7910c5413fc85685882668158c2e1bfe9b6ae improved pydantic validation + +e1b3cb06c9cdd1c6cc2615511b56ac46c5353f44 fix notebook test + +33b779d35d055b0950a5f93f4b4ff2a5bc8c676f implemented code review comments + +65646454e007a1486f05618763454a5133871260 reconnected with new methodology and results + +13ab443d780a97a0b1e3e0c96ed24c641fc231ae extended unit tests and fixed bugs + +6b5980b6741e9e9eac437dc438d878b70aed410f polished config handling + +b77aba214ade22a873872577ee8fd6c4865f4f6d downgraded numpy to reduce warnings + +9ed1a771aff0a0f8e9acc371e694ac054a709d71 updated methodology + +8d1efbd3fd51824badb9a8951d043e817ea3a3b7 cleaning configs + +0b6d92b1b60cbf2f3c1941cdaca375847346643e connected tests and refactored + +5d6cb0bb84226a75df0128056c20cf1e20b0d651 tinkering -> making benchmark settings benchmark provider attributes + +d48030fbb5cab5e72feb68e79d6f1c2a583c1a19 connected jupyter notebooks to new data interfaces + +0d642397d5b13e29d318973cb65fa953c5008741 refactored data providers to be compatible with stateless use. + +71e2af715e21c135389f4b27365e34c8fb67f999 refactored projected production to use ghg_s1s2 values and benchmarks + +34e0c8a8fd6b424e46be756e1ae59e485fcb8e45 removed all target related inheritance from sbti + +7871d31c5020f95bb532757eaa80e03fe250d909 removed all target related inheritance from sbti + +cab2d2cf584dc5973c6eea962ef4518c61fc63a9 Allow temperature score control to be overwritten. +Set new default TCRE value to 2.2 +reconnected all unit tests + +844ec1d3d94982c1e998fff129e96c10a262146c Fixing unittests + +433a1a4dd74ae780f127b7c06401e67dac19e35a hotfix notebook for pipeline to succeed + +3c2ba8d299f166f3c4f9bdc1201c56590d496f5a fixed mypy complaints 3 + +1edb83ed42ea85c24c5ab0beb334e828c6d7d58b fixed mypy complaints 2 + +076a9168559b24b0d03a7698dab3b3c9b12fd99f fixed mypy complaints + +22cb433ea8e65d524b3f153ea412e940da6c1bdd Got tests to work +skipped scoring testsuite, needs revision still. + +a7d48047e3c4a4c33174a9200853d3ec1ca21fb3 alligned the methodology with Excel version. +included default scoring +cleared unneeded files + +5aa3ec5edc75043eb790b4369a0b28141e95b0e3 made the notebook agnostic where it runs; local of in the cloud. + +1574e2bb5c9c795197da4792d0dc556a1d1b6383 publish docs to gh-pages + +0ea9bdc7af24f358bec7451d0a4926a3995b3682 upgraded python version to 3.7 + +d0192869dd7d3f05dc058dc088a2d464d1a3151b upgraded python version to 3.7 + +baf6caeadc9fbc437925a223c1ea1ce3f664d821 adjusted workflows to work on main + +09c6b2a97ee38251beab2c257257c2b4413f4a94 added workflows + +d9f164cfd5fa0311ad196677d11dde7494227b26 Connected Notebook to scoring method + +7d662568477bff08f15ee811da0ca6d844014255 started refactoring scoring II + +f86ed8ce0a78139c1212f48eded85f415ad40130 started refactoring scoring + +1d8f638102f4b4e053f940daa4b0dd34d4b359b3 cleaned example portfolio.csv + +53e13681556703dfdb2cf4d8b311556dcc2e1c66 setup the skeleton of the Python module (based on SBTi) + +479612653e5fccfa832a86a12877f59242876acd drafted github project + +e097c3c808fcda6fa477d05c765f5ae3d80af9b2 added conda env and empty python module + +db94825430ef47ff672fc04b6750d823c1a2adc0 drafted github project + +074f262881ad83f1eeb6cafb91caeb707e6b10cb Initial commit diff --git a/dco-signoffs/Jur de Jong-.txt b/dco-signoffs/Jur de Jong-.txt new file mode 100644 index 00000000..eff90c1d --- /dev/null +++ b/dco-signoffs/Jur de Jong-.txt @@ -0,0 +1,86 @@ +I, Jur de Jong hereby sign-off-by all of my past commits to this repo subject to the Developer Certificate of Origin (DCO), Version 1.1. In the past I have used emails: jur.dejong@ortec-finance.com + +0d0390e737b5e1f7a0573f17c56c5e989d0be39e test data + +29c816d47bb59c3bb2dc2b432432b459759561b5 replaced sbti by itr + +11b21499776638e81a7d704a3086f1a9ddbdf08b update notebook + notebook data + +4c2234dc2078e1c90a2bf5ed51cb37c53f296c21 update tests + +6899c50d9687e08f29ec439c0ac47a61cd73a3e1 test df to target model + +493453307ae619532621199086feb344f27c22cd additional tests + +6072b8fd0ec50f589d8a4a33ecb38539e5630d1f update data + +c138b76b4b9f21e67ca9d7bceeae4a4e442a87e9 tests + +9c545e1d546ccae76ed2f32dc8b4baed6d3b9659 clean up and extra checks + +d74b6fcdc5fb94ef1d76afe07c0df017fceec4c0 added sectors and target data + +59727783ee93a99dcf701846eb5220b61027e1e6 data provider update + +893a951cc9b65533fe532d020cb2ff5bb06e438b target data + +8ebb71949942f166e15ece97b9774241be122aa4 pip install . + +be150a3c2c53bbf788c61281389f4ca9a2e56de4 fixed additional issue + +080c858c82a88804524cdbbfe0fad7110c9416f3 data provider example + +91d1c5fc1f4df21058670179153a7909bb2c056c fixed issue + +dd0e8e0dd6eefc332fd61f2f964cf7e042f4fe21 use projected ei and projected production + +4099ef991745d705e742bade352ce998af4d8ec9 update + +96a99f5df4044fb8c8e59c35a884b81cd9092681 update + +51463510b4338048cb25debfb46a7b39d78d2902 update + +28cf4699c852e8fa5733e178bddcb1004e78a996 tests + +0d0390e737b5e1f7a0573f17c56c5e989d0be39e test data + +29c816d47bb59c3bb2dc2b432432b459759561b5 replaced sbti by itr + +11b21499776638e81a7d704a3086f1a9ddbdf08b update notebook + notebook data + +4c2234dc2078e1c90a2bf5ed51cb37c53f296c21 update tests + +6899c50d9687e08f29ec439c0ac47a61cd73a3e1 test df to target model + +493453307ae619532621199086feb344f27c22cd additional tests + +6072b8fd0ec50f589d8a4a33ecb38539e5630d1f update data + +c138b76b4b9f21e67ca9d7bceeae4a4e442a87e9 tests + +9c545e1d546ccae76ed2f32dc8b4baed6d3b9659 clean up and extra checks + +d74b6fcdc5fb94ef1d76afe07c0df017fceec4c0 added sectors and target data + +59727783ee93a99dcf701846eb5220b61027e1e6 data provider update + +893a951cc9b65533fe532d020cb2ff5bb06e438b target data + +8ebb71949942f166e15ece97b9774241be122aa4 pip install . + +be150a3c2c53bbf788c61281389f4ca9a2e56de4 fixed additional issue + +080c858c82a88804524cdbbfe0fad7110c9416f3 data provider example + +91d1c5fc1f4df21058670179153a7909bb2c056c fixed issue + +dd0e8e0dd6eefc332fd61f2f964cf7e042f4fe21 use projected ei and projected production + +4099ef991745d705e742bade352ce998af4d8ec9 update + +96a99f5df4044fb8c8e59c35a884b81cd9092681 update + +51463510b4338048cb25debfb46a7b39d78d2902 update + +28cf4699c852e8fa5733e178bddcb1004e78a996 tests + diff --git a/dco-signoffs/Michael Tiemann-.txt b/dco-signoffs/Michael Tiemann-.txt new file mode 100644 index 00000000..42e27015 --- /dev/null +++ b/dco-signoffs/Michael Tiemann-.txt @@ -0,0 +1,160 @@ +I, Michael Tiemann hereby sign-off-by all of my past commits to this repo subject to the Developer Certificate of Origin (DCO), Version 1.1. In the past I have used emails: 72577720+MichaelTiemannOSC@users.noreply.github.com + +f43a7822119867406a618bd7237ce4f37b4ce87b Update DataTemplateRequirements.rst + +Highlight math and code blocks with :math: and :code: for RST (makes backticks work as in markdown). +76b677cebd7993c0a2f983fc5c0dfdc396fd1ca8 Update DataTemplateRequirements.rst + +Clarify that because repo is private, the GitHub token must include repo permissions. Also clarify the pip install -e . syntax. +869c56b90c82804c0b73424be26a699988680bf3 Update DataTemplateRequirements.rst + +Added info about filing issues and updating using git. +4ebd878a9e696e8f2a63fe19b531784938813145 Update DataTemplateRequirements.rst + +More documentation updates with details about OSX installation and more details about git installation. +1b4942f7059783c1a3765d59adbb15cd96089ee4 Update DataTemplateRequirements.rst + +Change directory before switching branch. +ff440b36f620a98ba47200866e22303c59681433 Update DataTemplateRequirements.rst + +Clarified where user should be and where they should go to as they clone and configure the ITR environment. +c36eb3fad8832624bb494ffc51e901b579fd7165 Update DataTemplateRequirements.rst + +Update documentation concerning multiple targets with the same target_start_year and target_end_year. Also update documentation concerning multiple netzero_year targets. +f90e5c88c043f5abdc46b1fe6e7d3b176e2f3fc9 Update DataTemplateRequirements.rst + +Finishing touches on installation validated by @MichaelTiemannOSC and @HeatherAck +86f7d155478f78468147d0301c781832cff1705f Update DataTemplateRequirements.rst + +Add --no-cache-dir tidbit. +734bf05374c4d539fceb6802241c71c2288910b3 Update DataTemplateRequirements.rst + +Add pip install -e . instruction. +a1b0f7233cb492c0da5585b1ef8f2cd7c3feac33 Update DataTemplateRequirements.rst + +Changed bullets to numbers in installation instruction so we can communicate with users the step number they are attempting. +3b62f90a01d5391228cfbb61414bc19e92ab72a0 Update DataTemplateRequirements.rst + +Add comment about Anaconda PowerShell. +53766c9a76f4f54d1461c545f706cec280e4d5f5 Update DataTemplateRequirements.rst + +Added link to conda download. +f83cc37386a1d704d9570bbda255b3a8b836d986 Update DataTemplateRequirements.rst + +Add missing colon for git clone instructions. +fe0d4b79a24dddef69e65b487032dfd0a05f6737 Update DataTemplateRequirements.rst + +Give explicit git clone instructions. +bad8f7eca9d0975f530667d6813c5be9d4ead0dc Update DataTemplateRequirements.rst + +Added line about switching to correct branch. +5f4126bbe9d5690daf05908325652b4ec7e5f1ea Update DataTemplateRequirements.rst + +Changed URL syntax from markdown (which this file is not) to rst syntax (which this file is). +4c6ebf0feef2e0a8563888bdc0fc79b4da410131 Update DataTemplateRequirements.rst + +Added some installation notes (TODO: fix fontawesome icon reference). +afa470d1517800aaf7401ee6ee2e200e90001a0e Create Calculation.md + +Copied forward from file checked into main. We'll deconflict when the PR is resolved. +c97629eb896cd7a61367f1fd47645bdbc3f65273 Update DataTemplateRequirements.rst + +Fixed list markdowns so they render correctly. +961a97ba42d1c1ae3b1ebdfa0c0a665d31bbe904 Update .gitignore + +4baf6cd1f504a64585e53c10320f5ea3fecf95b7 Update 20220215 ITR Tool Sample Data.xlsx + +Added targets and companies up to "First Energy Corp." + +b7dacc4604a34ff1a0a53d76725bbf9379ea44b4 Update 20220215 ITR Tool Sample Data.xlsx + +RMI data more consistent due to ALLETE corp hierarchy. Difficult to see comparable Y-on-Y data from EEI. + +e2a5f8672feac5fbdd09586a95faa3c87bba8d75 Update requirements.txt + +We need iam-units, not necessarily openscm-units. Should check import statements more carefully. +127c26078fb17a9846cdb1f8f86b7a88b7c65317 Update requirements.txt + +Fix typo. +cf926ea8498436418f202a27727625e00ac056ca Update requirements.txt + +Add Pint, Pint-Pandas, and openscm-units. +f43a7822119867406a618bd7237ce4f37b4ce87b Update DataTemplateRequirements.rst + +Highlight math and code blocks with :math: and :code: for RST (makes backticks work as in markdown). +76b677cebd7993c0a2f983fc5c0dfdc396fd1ca8 Update DataTemplateRequirements.rst + +Clarify that because repo is private, the GitHub token must include repo permissions. Also clarify the pip install -e . syntax. +869c56b90c82804c0b73424be26a699988680bf3 Update DataTemplateRequirements.rst + +Added info about filing issues and updating using git. +4ebd878a9e696e8f2a63fe19b531784938813145 Update DataTemplateRequirements.rst + +More documentation updates with details about OSX installation and more details about git installation. +1b4942f7059783c1a3765d59adbb15cd96089ee4 Update DataTemplateRequirements.rst + +Change directory before switching branch. +ff440b36f620a98ba47200866e22303c59681433 Update DataTemplateRequirements.rst + +Clarified where user should be and where they should go to as they clone and configure the ITR environment. +c36eb3fad8832624bb494ffc51e901b579fd7165 Update DataTemplateRequirements.rst + +Update documentation concerning multiple targets with the same target_start_year and target_end_year. Also update documentation concerning multiple netzero_year targets. +f90e5c88c043f5abdc46b1fe6e7d3b176e2f3fc9 Update DataTemplateRequirements.rst + +Finishing touches on installation validated by @MichaelTiemannOSC and @HeatherAck +86f7d155478f78468147d0301c781832cff1705f Update DataTemplateRequirements.rst + +Add --no-cache-dir tidbit. +734bf05374c4d539fceb6802241c71c2288910b3 Update DataTemplateRequirements.rst + +Add pip install -e . instruction. +a1b0f7233cb492c0da5585b1ef8f2cd7c3feac33 Update DataTemplateRequirements.rst + +Changed bullets to numbers in installation instruction so we can communicate with users the step number they are attempting. +3b62f90a01d5391228cfbb61414bc19e92ab72a0 Update DataTemplateRequirements.rst + +Add comment about Anaconda PowerShell. +53766c9a76f4f54d1461c545f706cec280e4d5f5 Update DataTemplateRequirements.rst + +Added link to conda download. +f83cc37386a1d704d9570bbda255b3a8b836d986 Update DataTemplateRequirements.rst + +Add missing colon for git clone instructions. +fe0d4b79a24dddef69e65b487032dfd0a05f6737 Update DataTemplateRequirements.rst + +Give explicit git clone instructions. +bad8f7eca9d0975f530667d6813c5be9d4ead0dc Update DataTemplateRequirements.rst + +Added line about switching to correct branch. +5f4126bbe9d5690daf05908325652b4ec7e5f1ea Update DataTemplateRequirements.rst + +Changed URL syntax from markdown (which this file is not) to rst syntax (which this file is). +4c6ebf0feef2e0a8563888bdc0fc79b4da410131 Update DataTemplateRequirements.rst + +Added some installation notes (TODO: fix fontawesome icon reference). +afa470d1517800aaf7401ee6ee2e200e90001a0e Create Calculation.md + +Copied forward from file checked into main. We'll deconflict when the PR is resolved. +c97629eb896cd7a61367f1fd47645bdbc3f65273 Update DataTemplateRequirements.rst + +Fixed list markdowns so they render correctly. +961a97ba42d1c1ae3b1ebdfa0c0a665d31bbe904 Update .gitignore + +4baf6cd1f504a64585e53c10320f5ea3fecf95b7 Update 20220215 ITR Tool Sample Data.xlsx + +Added targets and companies up to "First Energy Corp." + +b7dacc4604a34ff1a0a53d76725bbf9379ea44b4 Update 20220215 ITR Tool Sample Data.xlsx + +RMI data more consistent due to ALLETE corp hierarchy. Difficult to see comparable Y-on-Y data from EEI. + +e2a5f8672feac5fbdd09586a95faa3c87bba8d75 Update requirements.txt + +We need iam-units, not necessarily openscm-units. Should check import statements more carefully. +127c26078fb17a9846cdb1f8f86b7a88b7c65317 Update requirements.txt + +Fix typo. +cf926ea8498436418f202a27727625e00ac056ca Update requirements.txt + +Add Pint, Pint-Pandas, and openscm-units. diff --git a/dco-signoffs/MichaelTiemann-.txt b/dco-signoffs/MichaelTiemann-.txt new file mode 100644 index 00000000..d8b5c914 --- /dev/null +++ b/dco-signoffs/MichaelTiemann-.txt @@ -0,0 +1,848 @@ +I, MichaelTiemann hereby sign-off-by all of my past commits to this repo subject to the Developer Certificate of Origin (DCO), Version 1.1. In the past I have used emails: 72577720+MichaelTiemannOSC@users.noreply.github.com + +077adb3a305a209b74f1b063cb8e990d222e4741 Update test_interfaces.py + +Fix test case to use new interfaces.py + +891ebc4b6bcefe407829157a72bbaa091145fc0a Update interfaces.py + +Rewrite metrics validation to use @validator instead of trying to exhaustively list every possible emissions unit, production unit, and intensity unit. Closes https://github.com/os-climate/ITR/issues/43 + +6764ec7d189c64fdb44619e42d7f416531a78228 Update interfaces.py + +Ugh. Fix syntax error. + +66f042ddff19cf648ec825f5331fa2a71b3f98de Update interfaces.py + +Add Literal['CO2·Mt/MFe_ton']] + +e17c5f2b4490b300b2cbb90c673db3d050c9c2b8 Update interfaces.py + +Support kWh and MJ units, as we already support MWh, GWh, TWh, etc. + +ef3434e7acd9b1a5ae6c5a36f5a5e9cd9a913698 Update base_providers.py + +Implement prioritization logic: targets communicated later are prioritized over targets communicated earlier, and intensity targets are preferred over absolute targets to break ties. If there are two targets of the same kind, target year, and year set, a warning is given and one is picked arbitrarily. + +7a238d87b81acc25248985ffab8be9af7dcdcc9b The notebook code to access the Github branch was written using PyGithub. If you want to change to github-py, that's fine...just rewrite all the code to use that. + +8a348f2aacc884f92f5d617f7ceb10e1f97da3ea My OSX build environment is broken and does not tolerate building python modules from source. +Therefore, adding explicit modules with correct version numbers so that rebuilds are not necessary. + +02f0769329235d59d899cd1bc9971504421f9f33 Add many more dependencies since we cannot (yet) depend on PyPi. + +f123581d647a4b78e2e8f734ccf52046c0393830 _emission_intensity -> _ei in test files + +1e87f102fb346ff6c0fd0feb6e963e30269b9c11 Draft documentation and sample data + +This is a first draft of user documentation, a fresh update of the Jupyter notebook, and a cleaned-up sample data spreadsheet. + +7463fe71dd2efa1f1275749be3a6814ed8cf7be4 Update quick_template_score_calc.ipynb + +Use JSON files for benchmarks and update notebook flow to invite users to choose their own data, benchmarks, and aggregation methods. + +ff2a3a771d060ea6ea711eb5083f39a774a36e53 Add more rows to Sample Data template spreadsheet + +Doubled the number of steel companies represented. Also added some big electrical utilities, including Southern and Xcel. + +443d6c60a7fc7eeb93377ce8a5b4cfd5819bcc4e Update data_warehouse.py + +Trajectories are computed from historic data, and our extrapolation methods fill in trajectory data with historic data in cases where there is a ragged edge. + +Targets had a problem with ragged edges: the start of the target projections would be the earliest last date from the historic data (say, 2020) whereas the projection itself wouldn't start until after the last date of historic data (say 2021). These changes fill in missing target data with historic data (sourced from trajectory projections). + +Some test cases could be written to detect how much trajectory data should or should not be consumed when constructing target projections. + +The real underlying problem is that when computing cumulative targets and trajectories, all companies must start at the same date, regardless of when the targets actually start according to the target data. + +Also, fix a few more emission_intensity -> ei name changes. + +2cb980066ee7f12ba170833294909fffbe070360 Update template.py + +When 'exposure' is not given, set to 'presumed_equity'. Should this be just 'equity' by default? + +Also, change style of call to replace for clarity (parameters instead of dictionary). + +8a1b226c40916f175a59d292f07f4d32362ae961 Update interfaces.py + +Fix method for deriving intensity_units. + +9775f403cebf833160e3c51ba33b81f031d141cf Update interfaces.py + +Fix wicked typo (wrongly testing year instead of value for NaN). + +e4efd19d76bfe17a416692e81d8d59968585258c Update environment.yml + +Fix typos in pint and pint-pandas declarations. + +933f35c6380d3dbaab45584137a9b201544ee65c Update environment.yml + +Fix typo in openscm-units declaration. + +e57af8788f511f3a0cdf07be96e9639dad2e4d70 Don't use report_date to find most recent production/emission data + +New function _get_base_realization_from_historic gets the latest production/emission information. Should complain if there are disparities between last year of production vs. emissions data (we can make it more complicated to find the most recent common year). + +Also, the name base_year_production in ICompany is completely confusing. We need a new name for "the year of most recent data from which extrapolations are done." + +This should address https://github.com/os-climate/ITR/issues/46 + +4985a941352ae6dd6685a227d911a636800eb2f7 Update base_providers.py + +Fix sloppy commit caused by GitHub desktop's overeager attempt to commit test files I never asked it to commit as part of this 3-line change. + +3b1ed92ccd0e66620339ae49a1e66d3bafbba865 Revert "Fixed nan vs. pd.NA confusion from previous change" + +This reverts commit f3879b34cd46fb6e5df6fd39239ac3dc036c3dfe. + +f3879b34cd46fb6e5df6fd39239ac3dc036c3dfe Fixed nan vs. pd.NA confusion from previous change + +This fixes the "loose wire" that disconnected temperature scores in both the notebook and the test cases. + +Now all test cases are working except test_projection and test_template_provider, for known reasons. test_projection needs better reference data and test_template_provider needs its own fixes to become a valid test case. + +c77533a394b38d33d4c28175ff97167bb10f5ec4 Update test_template_provider.py + +test_temp_score was meant to be a small version of test_temp_score_from_excel_data. Alas, it was not computing target and trajectory budgets (because it was not calling get_data). + +There remains a problem that is preventing the temp score calculation. I will debug that tomorrow.... + +6380ca563f1c9a50c87ca6d5d60f00266aa5115f Update template.py + +Convert to NaN when using Quantities. + +857c789c6b5921d8ace8882f21ae536f45dcaaad Spiff up trajectory calculation to compute S1S2 = S1+S2 + +Somehow this sum had gotten lost and none of the trajectories were matching the scope of the reference file. They still don't match for several reasons, but mostly now having to do with methodology questions. + +Also enhanced test_projections.py to read and interpret test projections more intelligently. + +4997425948eb0f16d630a6ef066086bc459ca3c5 test_projection WIP + +These changes cut out a lot of noise about comparisons not that meaningful: previously we required the input data to supply things like ghg_s1s2 emissions at the base year, but now we collect historic data, and the tool organizes that data to fill in the singular ghg_s1s2 datapoint which is helpful to have. + +There is one obvious problem, which is that input data of separate S1 and S2 emissions is not getting combined into S1S2 trajectories. The next checkin should deal with that. This checkin clears the clutter to make that problem easier to work on. + +8dab7adbdeb846fef79130b5a2511a4699d3b419 Also update sample data in main test area + +Ugh...we have two copies of the same data. More tests should run with this updated data. + +04d172de0112d624f2985c7d690ffc33e7c38702 Update template sample data file for Notebook + +Some additional data updates were needed to get the template notebook working again. It is working again now. + +cd082888b437cd4526c4fe07d40ba46ec2698da1 test_template_provider mostly working again + +There are a few failures, which could indicate problems with reference data. + +There is a wide disparity in test_get_company_data + +There are many disparities in test_get_projected_value + +2/5 tests file in test_temp_score_from_excel_data + +2143b2687cc2266ffeebd9b89c7f9072593d0cd9 Get test_interfaces.py working again + +6958e0206fd0fe626a14c764e9b697cae9a566aa Get test_excel_provider.py working again + +2e68d1f1a1e07b976a5e385c960c8dbd3a5c5090 Major rework of ICompanyData to handle historic data better (WIP) + +The more I look at the test cases and use cases of this code, the more I realize that the code needs to deal with a much greater diversity of data and assumptions than the first few test cases we got working. + +The biggest problem has been the ICompanyData structure, which has a fairly wide range of uses cases (beyond just the NZAOA template we've been working on). Each of those test cases not only stresses different parts of the data structure, but also makes very different assumptions about what data can or should be derived from what other data. Early in the tool's development we could count on a base year's ghg_s1s2 being present to do various calculations. Now that we have historic data, the use cases assume we can collect that unspecified data ourselves. And not all test and input data has all the units we expect, either. Fixing one set of problems often reveals other dependencies. + +TL;DR: these changes have the following major components: + +In base_providers.py, we true up some column/variable naming so that the NZAOA template doesn't require as much renaming of columns, which will make it easier to follow error messages when something like target_base_year_qty is not correctly specified. Other changes include better maintenance of units through the winsorization process. And also the replacement of some simplistic unit inferencing with what's actually in the data. + +template.py tracks the naming changes described above. + +test_base_providers.py and test_different_benchmarks.py add the now necessary emissions_metric and production_metric fields after reading in the JSON input file. A better fix would be to recreate the JSON file with the necessary fields in the file. + +test_e2e.py has necessary units attached to its projections. + +interfaces.py: lots of changes of many kinds. The most boring of which is to make the name changes referenced above (so we can provide better error reporting). But also... + +* Moved Units and Metrics up to the top of the file +* Moved Enums to the top of the file +* tweaks to pint_ify and UProjections_to_Projections +* Deleted unused classes +* ICompanyEIProjection: added ei_metric field +* Simplify a number of IHistoric and Realization classes +* New _fixup functions serve to convey unit information from the body of the ICompanyData object to the many lists that hang off of it (and are as likely to need unit information from the main object as they are to provide such information for inferencing purposes). + +Several test cases now pass, and several more do not. Hopefully the remainder will pass soon! + +bd6eb7d29c7a0eaf7ea3c01cc7886062f90cf13b Update test_temperature_score.py + +Fix units for ghg_s1s2. + +a1df1f3548118c8b4554d31e7f427a2693c13800 Fix another emission_intensity -> emissions_intensity issue + +The JSON input files for the test_projector test case need to use emissions_intensity. + +TODO: we still need a way of sorting the base_year value (it is currently inferred from report_date and/or a default value in TempScoreConfig). + +eaa440f14285ad654249f74d6787412e9ade0d8f Update test_e2e.py + +Added initialization of base_year_production. + +Fixed wrong units being passed to ghg_s1s2 and ghg_s3. Also fixed wrong type of data being passed by just passing 'value' part of an IProduction. + +Obviously it's more efficient to initialize all three from a Quantity, rather than constructing an IProjection and then drilling down to the value field of that. The question is: do we want to revert changes to interfaces.py that preserve the base_year in the initialization of those values (and change other code to move our way through that extra data)? + +59e1b4a8f0e561ee4e6da33c8096e2feb635d2c6 Remove non-idiomatic use of .keys() + +It is non-idiomatic to use the .keys() function in certain looping contexts because python will automatically infer that from the context. So clean up code from this: + +for x in dict.keys(): + +to this: + +for x in dict: + +5656167d77dce370c1accca16d14449b2e71de5d Update ITR_dash_app_develop.py + +Replace obsolete link to portfolio template and replace with doc page from dash. + +Also, the template_portfolio to be uploaded uses a ';' separator (unless we decide to change that). + +TODO: need to properly use document root concept (recently introduced in ITR.utils). + +ea2ad319165a13a49483d80db0b5bc8754446dcd Update setup.py + +Update GitHub source location and python version minimum requirements. + +a385f6fc454c70b6cf218ad3c1cfb3181aa03a5d Enable reading local data files and read mapping file from countries to regions + +Added functionality to utils.py to support reading datafiles from within the package itself (using pathlib). + +81d51c863ed867ae494aefd9a5f0c0f46e3c9cae Create country_region_info.csv + +Provide data to compute missing region info from country names when ITR tool is not connected to Data Commons. + +d06062e9fd8fd72b7e0c2f8c7adc50099b2bc394 Update test_template_provider.py + +Fix test case so it actually prints intensity projections for each company. That's not a test case per se, but it informs how we can now write a test case for projections. + +8da03275db7951223283bafd98fe6dc30d9b180d Add PPL data and targets + +One more row of data! + +188c115855e627c908c75ec28a8330c2684c882a Fix damage to ExcelProviders code resulting from TemplateProviders enhancements + +Refactor _calculate_target_projections into BaseCompanyDataProvider and reorganize class definition order to accommodate. + +Also fix some latent unit errors in excel.py and test_excel_provider.py resulting from GHG_SCOPE12 fixes. + +Update quick example notebooks. + +145f7f3a3d22278e54aaf3bb4f4ba254d4f788ee Update ITR_dash_app_develop.py + +Updated to work with with unit-aware code. + +2e0519f0fc7004c98f8a09c07808f90d180f879f Clean up GHG_SCOPE12 confusion + +There was long-standing confusion about the meaning of GHG_SCOPE12 (which, when looked at through one functional path, seemed to depend first and only on production values, and when looked at other ways, seemed to represent emissions values). It was finally determined that this was, indeed, an emissions-based quantity, and the the production value pathway fed a ratio calculation that resolved to a dimensionless quantity (so it could be calculated just as well from emissions). In any case, these changes principally fix these and some other problems in the way various column names and variable names work and work together. + +eba1f66d8bf6e9aebaf5df9a1e2abc6dfd994a63 Create unitized version of GUI app + +Modify the original GUI app to work with new unitized ITR backend: + +* Added unitized JSON files +* Use new initialization procedures for data Template +* Unitize quantities within the GUI, such as specific temperature score values. + +Not fully working: a graph of production output wrongly tries to mix Steel production numbers (Fe_ton) with Electricity production numbers (TWh). It's good that the unit code caught it! + +43254b36ff8601857041cd8b5ccc849aeabed789 Update template.py + +Connected to previous checkin: construct company_sector_region_info DataFrame using dictionary of [] not singleton elements to make Quantity work as ArrayExtension instead of dict. + +0c3c47847db2334452389b2788443250d5f273bc Move _calculate_target_projections into DataWarehouse (and other cleanups) + +Other cleanups include: + +Let DataWarehouse call _calculate_target_projections so user doesn't have to worry about it. + +Fix more spellings of emission_ to emissions_ + +When creating the one-row company_sector_region_info DataFrame, don't just initialize with singleton elements; put those elements into lists (so we can pass a Quantity as an ExtensionArray instead of being seen as a dict + +Comment highly suspect declaration of projected_targets, which are available in the base class of ICompanyAggregates + +09183e0aa29d5915a9f8648a0eb7a99700e9b98f Enable netzero_year functionality + +There was a bug in how EITargetProjector::project_ei_targets was projecting target data to 2050 absent specific targets with that as an explicit target year. These changes fix that bug, as well as enabling the functionality of using the netzero_year field of the input template. + +Also update template to use netzero_year instead of netzero_date. + +7f7e609542bec8b520f2b1e154093177f2bb793e Correcet CAGR calculation + +Convert to base units before calculating magnitude (need to check elsewhere for this error!) and clamp CAGR to non-positive result. + +174ef8ff51437fd214b18898d6e1084099740d9c Accept Asia as a region value + +The current benchmark data treats Asia as "Global" but that doesn't mean we cannot properly list Asia as a distinct region for display and aggregation purposes. Accordingly, change POSCO's region to Asia. + +411f6f30e1f30f6eb234fc47e025af9c4f2dcbad Update environment.yml + +Update openpyxl version number. + +59fc4ecfff862937d90e85aac17fa919aab8fb23 First draft of runnable notebook demo + +Fix more data errors...now somewhat demoable (but strange results when target values are well above existing attainment, such as Duke Energy). + +7257cddf9656171004a046bcb55af2b205ea33f5 Test cases can now run with Sample data. + +f99024b75ad31e7e52228b9f47c741d9c18de468 Generate target projections for S1 and S2 scopes individually + +Provide target projections based on S1 and S2 scopes, not only S1S2. Also fix base year data exclusion bug (we don't have to abandon projection if base year == last_year). + +Also, simplify input data as we have not yet implemented everything described in https://github.com/os-climate/ITR/issues/32 + +b8c6923c4943bc204131b486129196346c9978a6 Update environment.yml + +Added openscm-units + +f380c25a5cc82e18f35cfcb65d113df30a428dac Update environment.yml + +Added mentions for pint and pint-pandas, as well as latest pandas. + +0c3245f8aff747d30424dcab6adadad636e43208 Added handlers for S1 and S2 targets + +Many companies report S1-only targets. We should handle that, and translate to S1S2 according to methodology. + +0e3114f2cf10c0916d06f2920a6e7c83f70d00c8 Update base_providers.py + +Use EMISSIONS_UNITS; do not default to 't CO2'. + +52628b40c086ad357d5f93d8980b4c08dab84647 Update 20220215 ITR Tool Sample Data.xlsx + +Set missing S2 data to zero so we can calculate S1S2 from S1-only inputs (such as Hawaiian Electric). + +935ca06f7d51804c935bdf032424e9cfd6bc051f Update 20220215 ITR Tool Sample Data.xlsx + +Added 2020 production data for Excelon. + +0f2b8cfdf13630dcfc1299d08cb595cb137adb9c Infer ghg_s1s2 initialization from historic data + +Initialize what will become GHG_SCOPE12 production data from historic data based on the year of REPORT_DATE in the input template (if not otherwise given in the data as ghg_s1s2). + +Note this is a WIP: we still have problems in get_company_fundamentals, later. + +fb9db1102b9232e981d91dd769c37e01547e8641 Update 20220215 ITR Tool Sample Data.xlsx + +Update more units, as well as report_date. + +c497a64db9dc85a01ec50cfd0d0f37a9eccd7586 Regularize emissions_intensity/EI naming and target/trajectory naming + +Confusing around target and trajectory naming has been identified as a problem, and now seems like as good a time as any to address. + +Changed all emission_XYZ to emissions_XYZ, kept all variables/constants named emissions_intensities, but changed all ABC_emissions_intensities_UVW to ABC_EI_UVW. + +Enhanced _add_projections_to_companies to work for multiple scopes. + +Enhanced _extrapolate to work with data that doesn't quite reach the end of historic data timeframe in all rows. Some of our data includes 2021, some does not. _extrapolate cleans up the ragged edge and then projects from a clean edge. + +Fixed some typos in Sample data spreadsheet. + +Next thing to fix is GHG_S1S2 variables, which are no longer filled in by the template. + +cadff7375ac2256ac0914895dee054b50073f2cf Update 20220215 ITR Tool Sample Data.xlsx + +Add more companies and targets, through POSCO. We now have 30 companies and ~ 40 targets (not including more than 20 netzero by 2050 targets). + +38960f815ea4167c8000c65fcd78d6fe4e742aa5 Handle columns that start with 1990s, not only 2000s data + +Also, update spreadsheet with new targets up through National Grid (which contains a 1990 baseline target). And update list of company ids to match. + +Please look carefully at _add_projections_to_companies, which was wrong and likely is wrong still. That needs to be fixed! + +2195cbf2ea78ca8403a01973b1d66e977c928623 Sort production_metric and emissions_metric so they work in template test case and do not break JSON-based test cases. + +Make production_metric Optional and add emission_metric (which is used in the new ITR data template). This un-breaks older test cases based on JSON data that does not have production_metric specified. It also relies on code to use sector (and ultimately region) to set production metric and emission_metric if not otherwise specified. + +There is still much work to do to make the test case work, but the infrastructure should now be there to do so. + +c5ea4f86b8d495e09a75ec6cc242d55594a7e08e Resolve merge conflicts (looping over scopes vs. Pint pd.Series changes) + +Also, don't crash if data says the company hit a zero target early. + +ae2623d3987d14b8049b87252149ff62ed0a94c7 This WIP checkin fixes a number of observed problems and target projections now seem to be coming back correctly. + +WIP check-in fixes initialization code that was using default, rather than user-provided emissions_units. Also changed interface of project_targets to work with pd>Series rather than 1-dimensional pd.DataFrames. Pint is so much happier working with either unitized pd.Series or unitized pd.DataFrame columns. It can work across columns, but to make element-by-element computations work, one must do un-Pandas-ish things. + +Also fixed a data entry error revealed when chasing unit initialization error. + +44a37ef039bb70dbbe3abcdf1f6543c15b8d845e Update target_utils.py + +The exponential decay of CAGR is going to operate proportional to the orders of magnitude it has to close. If we set last to be too small, we force CAGR to spend a lot of its time chasing the asymptote. Choosing a value of first/201 means we stop when we get within less than 1/2 of a percent, which rounds down. That also works whether first is 1000000000 t CO2 or 1.0 Gt COt. + +dbb2adad0e80a2181b8cc76f17abd760afbd59a5 Update test_template_provider.py + +And update company_id information for the test_target_projections, too... + +71ecaedd47931214e1fc695ee976fb733d85c387 Update test_template_provider.py + +Update to see new targets added (Eversource through Gerdau). + +9e6a784695b67579c856bc6f81494f47dade4220 Update 20220215 ITR Tool Sample Data.xlsx + +Added data for Fortis and Gerdau. Now halfway done with sample dataset. + +9183d2324d40cb6ff14041f651022df6a0a3fca9 Expand test set data and address some conditions with NULL data + +The added sample data has some NULLs in the input that the tool should handle. Some fixes address these, but not all yet. + +Major fixups include preserving dtypes for columns as we winsorize data, and setting numeric_only to False in the quantile function so that we can deal with Pint quantities without triggering an error message for NA values. (Both in base_providers.py) + +Added some try wrappers in template.py to make it easier to debug when errors are thrown. + +Correct some uncaught errors in how null values are processed in interfaces.py + +8bd2b1c48d4b303058ea119c6b62e3b2c60cdf7f WIP to add target projections to existing trajectory projections + +This WIP largely connects the unitized code (previously working) with historic trajectories (previously working) and target projections (not yet working). + +19e7de9eb5b9aeb81c6d1702e4c24f7648b24f50 Quiet warnings due to pint_pandas/pandas disagreements + +There are a few basic cases that create a lot of excess noise: + +1. Use of apply on dataframes +2. Constructing DataFrame from list of pd.Series +3: https://github.com/hgrecco/pint-pandas/issues/114 + +There are a few noisy warnings left, which can be fixed by following the pattern of these changes. + +b0e3f718ce5a67f8483d1c1eea898b96379bf10f Integrate recently merged projections code into unit-aware code + +This merge was not supposed to be that hard (one feature per branch they say), but there were many changes that overlapped and a few underlying bugs that needed to be squashed. + +At this point, things that failed before (due to bad interactions with unittest) still give problems, but all the unittests plus the new projection tests basically work as well as they did before. + +c9060bd27118ff27ddd59f2dfb445c83a7dc7fc5 Create region_classification.csv + +077adb3a305a209b74f1b063cb8e990d222e4741 Update test_interfaces.py + +Fix test case to use new interfaces.py + +891ebc4b6bcefe407829157a72bbaa091145fc0a Update interfaces.py + +Rewrite metrics validation to use @validator instead of trying to exhaustively list every possible emissions unit, production unit, and intensity unit. Closes https://github.com/os-climate/ITR/issues/43 + +6764ec7d189c64fdb44619e42d7f416531a78228 Update interfaces.py + +Ugh. Fix syntax error. + +66f042ddff19cf648ec825f5331fa2a71b3f98de Update interfaces.py + +Add Literal['CO2·Mt/MFe_ton']] + +e17c5f2b4490b300b2cbb90c673db3d050c9c2b8 Update interfaces.py + +Support kWh and MJ units, as we already support MWh, GWh, TWh, etc. + +ef3434e7acd9b1a5ae6c5a36f5a5e9cd9a913698 Update base_providers.py + +Implement prioritization logic: targets communicated later are prioritized over targets communicated earlier, and intensity targets are preferred over absolute targets to break ties. If there are two targets of the same kind, target year, and year set, a warning is given and one is picked arbitrarily. + +7a238d87b81acc25248985ffab8be9af7dcdcc9b The notebook code to access the Github branch was written using PyGithub. If you want to change to github-py, that's fine...just rewrite all the code to use that. + +8a348f2aacc884f92f5d617f7ceb10e1f97da3ea My OSX build environment is broken and does not tolerate building python modules from source. +Therefore, adding explicit modules with correct version numbers so that rebuilds are not necessary. + +02f0769329235d59d899cd1bc9971504421f9f33 Add many more dependencies since we cannot (yet) depend on PyPi. + +f123581d647a4b78e2e8f734ccf52046c0393830 _emission_intensity -> _ei in test files + +1e87f102fb346ff6c0fd0feb6e963e30269b9c11 Draft documentation and sample data + +This is a first draft of user documentation, a fresh update of the Jupyter notebook, and a cleaned-up sample data spreadsheet. + +7463fe71dd2efa1f1275749be3a6814ed8cf7be4 Update quick_template_score_calc.ipynb + +Use JSON files for benchmarks and update notebook flow to invite users to choose their own data, benchmarks, and aggregation methods. + +ff2a3a771d060ea6ea711eb5083f39a774a36e53 Add more rows to Sample Data template spreadsheet + +Doubled the number of steel companies represented. Also added some big electrical utilities, including Southern and Xcel. + +443d6c60a7fc7eeb93377ce8a5b4cfd5819bcc4e Update data_warehouse.py + +Trajectories are computed from historic data, and our extrapolation methods fill in trajectory data with historic data in cases where there is a ragged edge. + +Targets had a problem with ragged edges: the start of the target projections would be the earliest last date from the historic data (say, 2020) whereas the projection itself wouldn't start until after the last date of historic data (say 2021). These changes fill in missing target data with historic data (sourced from trajectory projections). + +Some test cases could be written to detect how much trajectory data should or should not be consumed when constructing target projections. + +The real underlying problem is that when computing cumulative targets and trajectories, all companies must start at the same date, regardless of when the targets actually start according to the target data. + +Also, fix a few more emission_intensity -> ei name changes. + +2cb980066ee7f12ba170833294909fffbe070360 Update template.py + +When 'exposure' is not given, set to 'presumed_equity'. Should this be just 'equity' by default? + +Also, change style of call to replace for clarity (parameters instead of dictionary). + +8a1b226c40916f175a59d292f07f4d32362ae961 Update interfaces.py + +Fix method for deriving intensity_units. + +9775f403cebf833160e3c51ba33b81f031d141cf Update interfaces.py + +Fix wicked typo (wrongly testing year instead of value for NaN). + +e4efd19d76bfe17a416692e81d8d59968585258c Update environment.yml + +Fix typos in pint and pint-pandas declarations. + +933f35c6380d3dbaab45584137a9b201544ee65c Update environment.yml + +Fix typo in openscm-units declaration. + +e57af8788f511f3a0cdf07be96e9639dad2e4d70 Don't use report_date to find most recent production/emission data + +New function _get_base_realization_from_historic gets the latest production/emission information. Should complain if there are disparities between last year of production vs. emissions data (we can make it more complicated to find the most recent common year). + +Also, the name base_year_production in ICompany is completely confusing. We need a new name for "the year of most recent data from which extrapolations are done." + +This should address https://github.com/os-climate/ITR/issues/46 + +4985a941352ae6dd6685a227d911a636800eb2f7 Update base_providers.py + +Fix sloppy commit caused by GitHub desktop's overeager attempt to commit test files I never asked it to commit as part of this 3-line change. + +3b1ed92ccd0e66620339ae49a1e66d3bafbba865 Revert "Fixed nan vs. pd.NA confusion from previous change" + +This reverts commit f3879b34cd46fb6e5df6fd39239ac3dc036c3dfe. + +f3879b34cd46fb6e5df6fd39239ac3dc036c3dfe Fixed nan vs. pd.NA confusion from previous change + +This fixes the "loose wire" that disconnected temperature scores in both the notebook and the test cases. + +Now all test cases are working except test_projection and test_template_provider, for known reasons. test_projection needs better reference data and test_template_provider needs its own fixes to become a valid test case. + +c77533a394b38d33d4c28175ff97167bb10f5ec4 Update test_template_provider.py + +test_temp_score was meant to be a small version of test_temp_score_from_excel_data. Alas, it was not computing target and trajectory budgets (because it was not calling get_data). + +There remains a problem that is preventing the temp score calculation. I will debug that tomorrow.... + +6380ca563f1c9a50c87ca6d5d60f00266aa5115f Update template.py + +Convert to NaN when using Quantities. + +857c789c6b5921d8ace8882f21ae536f45dcaaad Spiff up trajectory calculation to compute S1S2 = S1+S2 + +Somehow this sum had gotten lost and none of the trajectories were matching the scope of the reference file. They still don't match for several reasons, but mostly now having to do with methodology questions. + +Also enhanced test_projections.py to read and interpret test projections more intelligently. + +4997425948eb0f16d630a6ef066086bc459ca3c5 test_projection WIP + +These changes cut out a lot of noise about comparisons not that meaningful: previously we required the input data to supply things like ghg_s1s2 emissions at the base year, but now we collect historic data, and the tool organizes that data to fill in the singular ghg_s1s2 datapoint which is helpful to have. + +There is one obvious problem, which is that input data of separate S1 and S2 emissions is not getting combined into S1S2 trajectories. The next checkin should deal with that. This checkin clears the clutter to make that problem easier to work on. + +8dab7adbdeb846fef79130b5a2511a4699d3b419 Also update sample data in main test area + +Ugh...we have two copies of the same data. More tests should run with this updated data. + +04d172de0112d624f2985c7d690ffc33e7c38702 Update template sample data file for Notebook + +Some additional data updates were needed to get the template notebook working again. It is working again now. + +cd082888b437cd4526c4fe07d40ba46ec2698da1 test_template_provider mostly working again + +There are a few failures, which could indicate problems with reference data. + +There is a wide disparity in test_get_company_data + +There are many disparities in test_get_projected_value + +2/5 tests file in test_temp_score_from_excel_data + +2143b2687cc2266ffeebd9b89c7f9072593d0cd9 Get test_interfaces.py working again + +6958e0206fd0fe626a14c764e9b697cae9a566aa Get test_excel_provider.py working again + +2e68d1f1a1e07b976a5e385c960c8dbd3a5c5090 Major rework of ICompanyData to handle historic data better (WIP) + +The more I look at the test cases and use cases of this code, the more I realize that the code needs to deal with a much greater diversity of data and assumptions than the first few test cases we got working. + +The biggest problem has been the ICompanyData structure, which has a fairly wide range of uses cases (beyond just the NZAOA template we've been working on). Each of those test cases not only stresses different parts of the data structure, but also makes very different assumptions about what data can or should be derived from what other data. Early in the tool's development we could count on a base year's ghg_s1s2 being present to do various calculations. Now that we have historic data, the use cases assume we can collect that unspecified data ourselves. And not all test and input data has all the units we expect, either. Fixing one set of problems often reveals other dependencies. + +TL;DR: these changes have the following major components: + +In base_providers.py, we true up some column/variable naming so that the NZAOA template doesn't require as much renaming of columns, which will make it easier to follow error messages when something like target_base_year_qty is not correctly specified. Other changes include better maintenance of units through the winsorization process. And also the replacement of some simplistic unit inferencing with what's actually in the data. + +template.py tracks the naming changes described above. + +test_base_providers.py and test_different_benchmarks.py add the now necessary emissions_metric and production_metric fields after reading in the JSON input file. A better fix would be to recreate the JSON file with the necessary fields in the file. + +test_e2e.py has necessary units attached to its projections. + +interfaces.py: lots of changes of many kinds. The most boring of which is to make the name changes referenced above (so we can provide better error reporting). But also... + +* Moved Units and Metrics up to the top of the file +* Moved Enums to the top of the file +* tweaks to pint_ify and UProjections_to_Projections +* Deleted unused classes +* ICompanyEIProjection: added ei_metric field +* Simplify a number of IHistoric and Realization classes +* New _fixup functions serve to convey unit information from the body of the ICompanyData object to the many lists that hang off of it (and are as likely to need unit information from the main object as they are to provide such information for inferencing purposes). + +Several test cases now pass, and several more do not. Hopefully the remainder will pass soon! + +bd6eb7d29c7a0eaf7ea3c01cc7886062f90cf13b Update test_temperature_score.py + +Fix units for ghg_s1s2. + +a1df1f3548118c8b4554d31e7f427a2693c13800 Fix another emission_intensity -> emissions_intensity issue + +The JSON input files for the test_projector test case need to use emissions_intensity. + +TODO: we still need a way of sorting the base_year value (it is currently inferred from report_date and/or a default value in TempScoreConfig). + +eaa440f14285ad654249f74d6787412e9ade0d8f Update test_e2e.py + +Added initialization of base_year_production. + +Fixed wrong units being passed to ghg_s1s2 and ghg_s3. Also fixed wrong type of data being passed by just passing 'value' part of an IProduction. + +Obviously it's more efficient to initialize all three from a Quantity, rather than constructing an IProjection and then drilling down to the value field of that. The question is: do we want to revert changes to interfaces.py that preserve the base_year in the initialization of those values (and change other code to move our way through that extra data)? + +59e1b4a8f0e561ee4e6da33c8096e2feb635d2c6 Remove non-idiomatic use of .keys() + +It is non-idiomatic to use the .keys() function in certain looping contexts because python will automatically infer that from the context. So clean up code from this: + +for x in dict.keys(): + +to this: + +for x in dict: + +5656167d77dce370c1accca16d14449b2e71de5d Update ITR_dash_app_develop.py + +Replace obsolete link to portfolio template and replace with doc page from dash. + +Also, the template_portfolio to be uploaded uses a ';' separator (unless we decide to change that). + +TODO: need to properly use document root concept (recently introduced in ITR.utils). + +ea2ad319165a13a49483d80db0b5bc8754446dcd Update setup.py + +Update GitHub source location and python version minimum requirements. + +a385f6fc454c70b6cf218ad3c1cfb3181aa03a5d Enable reading local data files and read mapping file from countries to regions + +Added functionality to utils.py to support reading datafiles from within the package itself (using pathlib). + +81d51c863ed867ae494aefd9a5f0c0f46e3c9cae Create country_region_info.csv + +Provide data to compute missing region info from country names when ITR tool is not connected to Data Commons. + +d06062e9fd8fd72b7e0c2f8c7adc50099b2bc394 Update test_template_provider.py + +Fix test case so it actually prints intensity projections for each company. That's not a test case per se, but it informs how we can now write a test case for projections. + +8da03275db7951223283bafd98fe6dc30d9b180d Add PPL data and targets + +One more row of data! + +188c115855e627c908c75ec28a8330c2684c882a Fix damage to ExcelProviders code resulting from TemplateProviders enhancements + +Refactor _calculate_target_projections into BaseCompanyDataProvider and reorganize class definition order to accommodate. + +Also fix some latent unit errors in excel.py and test_excel_provider.py resulting from GHG_SCOPE12 fixes. + +Update quick example notebooks. + +145f7f3a3d22278e54aaf3bb4f4ba254d4f788ee Update ITR_dash_app_develop.py + +Updated to work with with unit-aware code. + +2e0519f0fc7004c98f8a09c07808f90d180f879f Clean up GHG_SCOPE12 confusion + +There was long-standing confusion about the meaning of GHG_SCOPE12 (which, when looked at through one functional path, seemed to depend first and only on production values, and when looked at other ways, seemed to represent emissions values). It was finally determined that this was, indeed, an emissions-based quantity, and the the production value pathway fed a ratio calculation that resolved to a dimensionless quantity (so it could be calculated just as well from emissions). In any case, these changes principally fix these and some other problems in the way various column names and variable names work and work together. + +eba1f66d8bf6e9aebaf5df9a1e2abc6dfd994a63 Create unitized version of GUI app + +Modify the original GUI app to work with new unitized ITR backend: + +* Added unitized JSON files +* Use new initialization procedures for data Template +* Unitize quantities within the GUI, such as specific temperature score values. + +Not fully working: a graph of production output wrongly tries to mix Steel production numbers (Fe_ton) with Electricity production numbers (TWh). It's good that the unit code caught it! + +43254b36ff8601857041cd8b5ccc849aeabed789 Update template.py + +Connected to previous checkin: construct company_sector_region_info DataFrame using dictionary of [] not singleton elements to make Quantity work as ArrayExtension instead of dict. + +0c3c47847db2334452389b2788443250d5f273bc Move _calculate_target_projections into DataWarehouse (and other cleanups) + +Other cleanups include: + +Let DataWarehouse call _calculate_target_projections so user doesn't have to worry about it. + +Fix more spellings of emission_ to emissions_ + +When creating the one-row company_sector_region_info DataFrame, don't just initialize with singleton elements; put those elements into lists (so we can pass a Quantity as an ExtensionArray instead of being seen as a dict + +Comment highly suspect declaration of projected_targets, which are available in the base class of ICompanyAggregates + +09183e0aa29d5915a9f8648a0eb7a99700e9b98f Enable netzero_year functionality + +There was a bug in how EITargetProjector::project_ei_targets was projecting target data to 2050 absent specific targets with that as an explicit target year. These changes fix that bug, as well as enabling the functionality of using the netzero_year field of the input template. + +Also update template to use netzero_year instead of netzero_date. + +7f7e609542bec8b520f2b1e154093177f2bb793e Correcet CAGR calculation + +Convert to base units before calculating magnitude (need to check elsewhere for this error!) and clamp CAGR to non-positive result. + +174ef8ff51437fd214b18898d6e1084099740d9c Accept Asia as a region value + +The current benchmark data treats Asia as "Global" but that doesn't mean we cannot properly list Asia as a distinct region for display and aggregation purposes. Accordingly, change POSCO's region to Asia. + +411f6f30e1f30f6eb234fc47e025af9c4f2dcbad Update environment.yml + +Update openpyxl version number. + +59fc4ecfff862937d90e85aac17fa919aab8fb23 First draft of runnable notebook demo + +Fix more data errors...now somewhat demoable (but strange results when target values are well above existing attainment, such as Duke Energy). + +7257cddf9656171004a046bcb55af2b205ea33f5 Test cases can now run with Sample data. + +f99024b75ad31e7e52228b9f47c741d9c18de468 Generate target projections for S1 and S2 scopes individually + +Provide target projections based on S1 and S2 scopes, not only S1S2. Also fix base year data exclusion bug (we don't have to abandon projection if base year == last_year). + +Also, simplify input data as we have not yet implemented everything described in https://github.com/os-climate/ITR/issues/32 + +b8c6923c4943bc204131b486129196346c9978a6 Update environment.yml + +Added openscm-units + +f380c25a5cc82e18f35cfcb65d113df30a428dac Update environment.yml + +Added mentions for pint and pint-pandas, as well as latest pandas. + +0c3245f8aff747d30424dcab6adadad636e43208 Added handlers for S1 and S2 targets + +Many companies report S1-only targets. We should handle that, and translate to S1S2 according to methodology. + +0e3114f2cf10c0916d06f2920a6e7c83f70d00c8 Update base_providers.py + +Use EMISSIONS_UNITS; do not default to 't CO2'. + +52628b40c086ad357d5f93d8980b4c08dab84647 Update 20220215 ITR Tool Sample Data.xlsx + +Set missing S2 data to zero so we can calculate S1S2 from S1-only inputs (such as Hawaiian Electric). + +935ca06f7d51804c935bdf032424e9cfd6bc051f Update 20220215 ITR Tool Sample Data.xlsx + +Added 2020 production data for Excelon. + +0f2b8cfdf13630dcfc1299d08cb595cb137adb9c Infer ghg_s1s2 initialization from historic data + +Initialize what will become GHG_SCOPE12 production data from historic data based on the year of REPORT_DATE in the input template (if not otherwise given in the data as ghg_s1s2). + +Note this is a WIP: we still have problems in get_company_fundamentals, later. + +fb9db1102b9232e981d91dd769c37e01547e8641 Update 20220215 ITR Tool Sample Data.xlsx + +Update more units, as well as report_date. + +c497a64db9dc85a01ec50cfd0d0f37a9eccd7586 Regularize emissions_intensity/EI naming and target/trajectory naming + +Confusing around target and trajectory naming has been identified as a problem, and now seems like as good a time as any to address. + +Changed all emission_XYZ to emissions_XYZ, kept all variables/constants named emissions_intensities, but changed all ABC_emissions_intensities_UVW to ABC_EI_UVW. + +Enhanced _add_projections_to_companies to work for multiple scopes. + +Enhanced _extrapolate to work with data that doesn't quite reach the end of historic data timeframe in all rows. Some of our data includes 2021, some does not. _extrapolate cleans up the ragged edge and then projects from a clean edge. + +Fixed some typos in Sample data spreadsheet. + +Next thing to fix is GHG_S1S2 variables, which are no longer filled in by the template. + +cadff7375ac2256ac0914895dee054b50073f2cf Update 20220215 ITR Tool Sample Data.xlsx + +Add more companies and targets, through POSCO. We now have 30 companies and ~ 40 targets (not including more than 20 netzero by 2050 targets). + +38960f815ea4167c8000c65fcd78d6fe4e742aa5 Handle columns that start with 1990s, not only 2000s data + +Also, update spreadsheet with new targets up through National Grid (which contains a 1990 baseline target). And update list of company ids to match. + +Please look carefully at _add_projections_to_companies, which was wrong and likely is wrong still. That needs to be fixed! + +2195cbf2ea78ca8403a01973b1d66e977c928623 Sort production_metric and emissions_metric so they work in template test case and do not break JSON-based test cases. + +Make production_metric Optional and add emission_metric (which is used in the new ITR data template). This un-breaks older test cases based on JSON data that does not have production_metric specified. It also relies on code to use sector (and ultimately region) to set production metric and emission_metric if not otherwise specified. + +There is still much work to do to make the test case work, but the infrastructure should now be there to do so. + +c5ea4f86b8d495e09a75ec6cc242d55594a7e08e Resolve merge conflicts (looping over scopes vs. Pint pd.Series changes) + +Also, don't crash if data says the company hit a zero target early. + +ae2623d3987d14b8049b87252149ff62ed0a94c7 This WIP checkin fixes a number of observed problems and target projections now seem to be coming back correctly. + +WIP check-in fixes initialization code that was using default, rather than user-provided emissions_units. Also changed interface of project_targets to work with pd>Series rather than 1-dimensional pd.DataFrames. Pint is so much happier working with either unitized pd.Series or unitized pd.DataFrame columns. It can work across columns, but to make element-by-element computations work, one must do un-Pandas-ish things. + +Also fixed a data entry error revealed when chasing unit initialization error. + +44a37ef039bb70dbbe3abcdf1f6543c15b8d845e Update target_utils.py + +The exponential decay of CAGR is going to operate proportional to the orders of magnitude it has to close. If we set last to be too small, we force CAGR to spend a lot of its time chasing the asymptote. Choosing a value of first/201 means we stop when we get within less than 1/2 of a percent, which rounds down. That also works whether first is 1000000000 t CO2 or 1.0 Gt COt. + +dbb2adad0e80a2181b8cc76f17abd760afbd59a5 Update test_template_provider.py + +And update company_id information for the test_target_projections, too... + +71ecaedd47931214e1fc695ee976fb733d85c387 Update test_template_provider.py + +Update to see new targets added (Eversource through Gerdau). + +9e6a784695b67579c856bc6f81494f47dade4220 Update 20220215 ITR Tool Sample Data.xlsx + +Added data for Fortis and Gerdau. Now halfway done with sample dataset. + +9183d2324d40cb6ff14041f651022df6a0a3fca9 Expand test set data and address some conditions with NULL data + +The added sample data has some NULLs in the input that the tool should handle. Some fixes address these, but not all yet. + +Major fixups include preserving dtypes for columns as we winsorize data, and setting numeric_only to False in the quantile function so that we can deal with Pint quantities without triggering an error message for NA values. (Both in base_providers.py) + +Added some try wrappers in template.py to make it easier to debug when errors are thrown. + +Correct some uncaught errors in how null values are processed in interfaces.py + +8bd2b1c48d4b303058ea119c6b62e3b2c60cdf7f WIP to add target projections to existing trajectory projections + +This WIP largely connects the unitized code (previously working) with historic trajectories (previously working) and target projections (not yet working). + +19e7de9eb5b9aeb81c6d1702e4c24f7648b24f50 Quiet warnings due to pint_pandas/pandas disagreements + +There are a few basic cases that create a lot of excess noise: + +1. Use of apply on dataframes +2. Constructing DataFrame from list of pd.Series +3: https://github.com/hgrecco/pint-pandas/issues/114 + +There are a few noisy warnings left, which can be fixed by following the pattern of these changes. + +b0e3f718ce5a67f8483d1c1eea898b96379bf10f Integrate recently merged projections code into unit-aware code + +This merge was not supposed to be that hard (one feature per branch they say), but there were many changes that overlapped and a few underlying bugs that needed to be squashed. + +At this point, things that failed before (due to bad interactions with unittest) still give problems, but all the unittests plus the new projection tests basically work as well as they did before. + +c9060bd27118ff27ddd59f2dfb445c83a7dc7fc5 Create region_classification.csv + diff --git a/dco-signoffs/MichaelTiemannOSC-.txt b/dco-signoffs/MichaelTiemannOSC-.txt new file mode 100644 index 00000000..eb0d03ea --- /dev/null +++ b/dco-signoffs/MichaelTiemannOSC-.txt @@ -0,0 +1,226 @@ +I, MichaelTiemannOSC hereby sign-off-by all of my past commits to this repo subject to the Developer Certificate of Origin (DCO), Version 1.1. In the past I have used emails: mtiemann@os-climate.org + +ced3bc6c4ce2e9a9ee8cdd5e44f98fa50aa0414b Update to latest input spreadsheet + +97e12f300f5023f5fc434f8471ec667bd479ba13 Update sample input with more/better S1, S2, and S3 data + +Prepare for handling actual scope data rather than just presuming everything is S1+S2. These changes don't implement that yet, but the sample data is now updated with better RMI and Steel data to do just that. + +19654171881bae65982dcd4f582dbac8ccf55cad Initial commit + +03061597baaf786ef152226357b8d10b2de3ac22 Properly update json input file + +0f046c22298c14bfacc0a9cc1b06231a6664c4fa Broad reconciliation of changes to present a fresh basis for review + +Having explored many ways to NOT do things with Pydantic, things are now closer to the starting point, while passing tests (as much as possible given the testing framework problems with pint). Should be a good starting point for review/discussions. + +2c2dbd6a486eb2e376604d248f12f71193537784 WIP checkin of Excel functionality + +This doesn't entirely work yet, in part because of problems reported in https://github.com/os-c/ITR/issues/19 + +7f21716a401678747e7e63d5dcb0ba50be942a93 Complete refactorization/simplification for polymorphic production types + +Have not fixed refactorization for Excel test case. But otherwise should be ready for full review. + +a2b88da64a657f08b3140bc1ee87ca1ad5baea53 Remove commented print statements + +Create a clean check-in for reference. + +e7f3abb719cd1f57d0455ce7fbaa6ca03be74ed0 Update with fresh run that starts from [1] (for real) + +5d43781e2e713e2a9ba420ea4aa7e3b20002d793 Update with fresh run that starts from [1] + +6b062e7652343ca108550d831d97a8813fc259c0 Fix up ghg_s1s2 handling for excel reader + +This is really only for testing purposes anyway. Remaining task is dealing with OECM benchmark spreadsheets (json already works). + +c0a4d7abe15e2c43c0a06c866ce81c1b619802f8 WIP reconciliation + +Simple reconciliation of some json input files and test harness files. One more big fix needed. + +4831d74c3d00d944ee97037a22272d8418d28c3f Remove errant print statement + +98728b23759d21278dc042276aadbe1e8e240278 WIP check-in. Only test_base_providers works so far + +WIP is sufficient for first round of discussions. More work to be done to get other test cases working, but what that works should be will determine how much of what work should be done. + +cf22ab2a479d91efef9e065668eac8bd140594fe Temperature scores working...PR is ready for review + +I sorted the problems with temperature scores and modified both input data and unit tests to work as well as can be (given outstanding issue of the test suite and pint_pandas not being too happy about the current idioms we are using). + +There's much to think about in this PR. Happy to answer questions / write up docs if/when we're ready to move forward. + +b40a2916733b3c6067f28ebda964903492a2b87e Add units to csv ingest and test cases + +905da18cc1bb2208bdb978efc43a297d9899a416 Sorted units problem in excel test (MWh vs GJ) + +The test_data_company.xlsx file has intensities given in t CO2/GJ, whereas in the JSON files they are given in t CO2/MWh. + +Also, disabled some print statements so that things look clean when run. + +Still confused about temperature score calculation. But everything else behaving OK. + +4a2d79718cc86b1a69aaa8dc0af5ac1f5896b8e2 Reconcile test_excel unit test + unittest meta test + +There remains an outstanding temperature score problem, but other problems seem to be resolved down to the level of what the test suite can see + +Added unittest_vs_pint notebook to illustrate the aforementioned limitation. + +78f666dd02ffe715f73ec9f2509e8c7b21a1f91b WIP: 5/6 test cases working + +I have commented an issue concerning unittest vs. pint_pandas here: https://github.com/hgrecco/pint-pandas/issues/26. When that has resolved we should see that 5/6 assertion failures are actually good. + +There remains a problem with the temperature score calculation. That's next... + +8249d82137068f75bef9d11d0c0f5a4ea77eca7c Reconcile latest changes with notebook + +Fix notebook failures identified by CI. Still work to do... + +5a70c4ae7e7287e401668889d5e0011bb1431b45 Initial commit + +Provide interfaces necessary to initialize Pydantic pint things. + +412ddd8ba1c2525e05eb69c43d5ce181481219ac WIP Checkin + +This check-in now passes 2/6 tests and gets a third test correct (but testing framework is not pint-friendly). 3 more failures to go, but lots of progress since initial PR. More to come... + +3d3dfa41d5337f7e270d1884c22353d62eb27f0f Fix lingering degC vs. delta_degC units + +Upon reflection, we are dealing *only* with delta_degC units. We are still seeing strange results, so more investigations are needed. + +d97036aabafd2f0d7eab3efe6df13ce6b9cc04a1 First end-to-end runthrough of "quick_temp_score" notebook + +This changeset provides the unit-tracking ability of `Pint` for temperature scores. Technically, we are tracking delta_degC not degC. And with that realization, there's probably some parts of the changes that can be made simpler (because there are many math operations one cannot do with degC that one can do with delta_degC). We leave that as an exercise for the reader. + +It's also quite likely that some legit math errors have crept in that need to be chased out--nowhere does the documentation tell us what the units are in the data. But sorting that should be the easy part. + +This branch is completely orthogonal to the rmi data branch. I did need to borrow one bugfix from there, but that's a separate world (especially considering the data units there are almost certainly different than the data units in this branch). + +f4568db1ac0c8ca8949e48bbc3ef30325675e195 WIP -- almost complete, except for aggregation + +Temperature aggregation is non-trivial, because pint is very particular about the concept of adding temperatures, generally. We will address that next. + +This changeset includes some obvious fixes to units (e.g. data was reported in tons CO2, not Mt CO2). + +Also adjusted code to accep the fact that as far as the test dataset goes, data labeled protected_target, which by all rights should be t CO2, is in this case some kind of reverse-engineered emissions intensity. We'll discuss and decide what to do about that. + +Also removed many print statements no longer needed. + +41ae59366cd64c0d3f34ced738e475db176024c1 Latest WIP checkpoint + +We are now to the point where pint is raising questions about way our equations are using their units. We know that the two ratios (target_overshoot_ratio and trajectory_overshoot_ratio) should be dimensionless, but there seems to be some confusion between emissions production and emissions intensity along the way... + +fa61110e0e3dce3c6a3fe034785222a044a5bb46 WIP Checkpoint + +ced3bc6c4ce2e9a9ee8cdd5e44f98fa50aa0414b Update to latest input spreadsheet + +97e12f300f5023f5fc434f8471ec667bd479ba13 Update sample input with more/better S1, S2, and S3 data + +Prepare for handling actual scope data rather than just presuming everything is S1+S2. These changes don't implement that yet, but the sample data is now updated with better RMI and Steel data to do just that. + +19654171881bae65982dcd4f582dbac8ccf55cad Initial commit + +03061597baaf786ef152226357b8d10b2de3ac22 Properly update json input file + +0f046c22298c14bfacc0a9cc1b06231a6664c4fa Broad reconciliation of changes to present a fresh basis for review + +Having explored many ways to NOT do things with Pydantic, things are now closer to the starting point, while passing tests (as much as possible given the testing framework problems with pint). Should be a good starting point for review/discussions. + +2c2dbd6a486eb2e376604d248f12f71193537784 WIP checkin of Excel functionality + +This doesn't entirely work yet, in part because of problems reported in https://github.com/os-c/ITR/issues/19 + +7f21716a401678747e7e63d5dcb0ba50be942a93 Complete refactorization/simplification for polymorphic production types + +Have not fixed refactorization for Excel test case. But otherwise should be ready for full review. + +a2b88da64a657f08b3140bc1ee87ca1ad5baea53 Remove commented print statements + +Create a clean check-in for reference. + +e7f3abb719cd1f57d0455ce7fbaa6ca03be74ed0 Update with fresh run that starts from [1] (for real) + +5d43781e2e713e2a9ba420ea4aa7e3b20002d793 Update with fresh run that starts from [1] + +6b062e7652343ca108550d831d97a8813fc259c0 Fix up ghg_s1s2 handling for excel reader + +This is really only for testing purposes anyway. Remaining task is dealing with OECM benchmark spreadsheets (json already works). + +c0a4d7abe15e2c43c0a06c866ce81c1b619802f8 WIP reconciliation + +Simple reconciliation of some json input files and test harness files. One more big fix needed. + +4831d74c3d00d944ee97037a22272d8418d28c3f Remove errant print statement + +98728b23759d21278dc042276aadbe1e8e240278 WIP check-in. Only test_base_providers works so far + +WIP is sufficient for first round of discussions. More work to be done to get other test cases working, but what that works should be will determine how much of what work should be done. + +cf22ab2a479d91efef9e065668eac8bd140594fe Temperature scores working...PR is ready for review + +I sorted the problems with temperature scores and modified both input data and unit tests to work as well as can be (given outstanding issue of the test suite and pint_pandas not being too happy about the current idioms we are using). + +There's much to think about in this PR. Happy to answer questions / write up docs if/when we're ready to move forward. + +b40a2916733b3c6067f28ebda964903492a2b87e Add units to csv ingest and test cases + +905da18cc1bb2208bdb978efc43a297d9899a416 Sorted units problem in excel test (MWh vs GJ) + +The test_data_company.xlsx file has intensities given in t CO2/GJ, whereas in the JSON files they are given in t CO2/MWh. + +Also, disabled some print statements so that things look clean when run. + +Still confused about temperature score calculation. But everything else behaving OK. + +4a2d79718cc86b1a69aaa8dc0af5ac1f5896b8e2 Reconcile test_excel unit test + unittest meta test + +There remains an outstanding temperature score problem, but other problems seem to be resolved down to the level of what the test suite can see + +Added unittest_vs_pint notebook to illustrate the aforementioned limitation. + +78f666dd02ffe715f73ec9f2509e8c7b21a1f91b WIP: 5/6 test cases working + +I have commented an issue concerning unittest vs. pint_pandas here: https://github.com/hgrecco/pint-pandas/issues/26. When that has resolved we should see that 5/6 assertion failures are actually good. + +There remains a problem with the temperature score calculation. That's next... + +8249d82137068f75bef9d11d0c0f5a4ea77eca7c Reconcile latest changes with notebook + +Fix notebook failures identified by CI. Still work to do... + +5a70c4ae7e7287e401668889d5e0011bb1431b45 Initial commit + +Provide interfaces necessary to initialize Pydantic pint things. + +412ddd8ba1c2525e05eb69c43d5ce181481219ac WIP Checkin + +This check-in now passes 2/6 tests and gets a third test correct (but testing framework is not pint-friendly). 3 more failures to go, but lots of progress since initial PR. More to come... + +3d3dfa41d5337f7e270d1884c22353d62eb27f0f Fix lingering degC vs. delta_degC units + +Upon reflection, we are dealing *only* with delta_degC units. We are still seeing strange results, so more investigations are needed. + +d97036aabafd2f0d7eab3efe6df13ce6b9cc04a1 First end-to-end runthrough of "quick_temp_score" notebook + +This changeset provides the unit-tracking ability of `Pint` for temperature scores. Technically, we are tracking delta_degC not degC. And with that realization, there's probably some parts of the changes that can be made simpler (because there are many math operations one cannot do with degC that one can do with delta_degC). We leave that as an exercise for the reader. + +It's also quite likely that some legit math errors have crept in that need to be chased out--nowhere does the documentation tell us what the units are in the data. But sorting that should be the easy part. + +This branch is completely orthogonal to the rmi data branch. I did need to borrow one bugfix from there, but that's a separate world (especially considering the data units there are almost certainly different than the data units in this branch). + +f4568db1ac0c8ca8949e48bbc3ef30325675e195 WIP -- almost complete, except for aggregation + +Temperature aggregation is non-trivial, because pint is very particular about the concept of adding temperatures, generally. We will address that next. + +This changeset includes some obvious fixes to units (e.g. data was reported in tons CO2, not Mt CO2). + +Also adjusted code to accep the fact that as far as the test dataset goes, data labeled protected_target, which by all rights should be t CO2, is in this case some kind of reverse-engineered emissions intensity. We'll discuss and decide what to do about that. + +Also removed many print statements no longer needed. + +41ae59366cd64c0d3f34ced738e475db176024c1 Latest WIP checkpoint + +We are now to the point where pint is raising questions about way our equations are using their units. We know that the two ratios (target_overshoot_ratio and trajectory_overshoot_ratio) should be dimensionless, but there seems to be some confusion between emissions production and emissions intensity along the way... + +fa61110e0e3dce3c6a3fe034785222a044a5bb46 WIP Checkpoint + diff --git a/dco-signoffs/Oleksandr Anufriyev-.txt b/dco-signoffs/Oleksandr Anufriyev-.txt new file mode 100644 index 00000000..872c66f9 --- /dev/null +++ b/dco-signoffs/Oleksandr Anufriyev-.txt @@ -0,0 +1,8 @@ +I, Oleksandr Anufriyev hereby sign-off-by all of my past commits to this repo subject to the Developer Certificate of Origin (DCO), Version 1.1. In the past I have used emails: oanufriyev@gmail.com + +2c825729acf351d288484589cc6729b25f8c40f7 Adding latest version of UI + +It is just a single file, so I thought I could put it to develop branch, as we are using it for testing +2c825729acf351d288484589cc6729b25f8c40f7 Adding latest version of UI + +It is just a single file, so I thought I could put it to develop branch, as we are using it for testing diff --git a/dco-signoffs/nvhz5mv-.txt b/dco-signoffs/nvhz5mv-.txt new file mode 100644 index 00000000..9e3da927 --- /dev/null +++ b/dco-signoffs/nvhz5mv-.txt @@ -0,0 +1,6 @@ +I, nvhz5mv hereby sign-off-by all of my past commits to this repo subject to the Developer Certificate of Origin (DCO), Version 1.1. In the past I have used emails: christian.schellnegger@allianz.com + +523de88564977b4b0e4690ae994224424f781b5c Updated environment.yml + +523de88564977b4b0e4690ae994224424f781b5c Updated environment.yml + diff --git a/dco_signoffs/David Kroon (on behalf of Jur de Jong).txt b/dco_signoffs/David Kroon (on behalf of Jur de Jong).txt deleted file mode 100644 index b4e084bc..00000000 --- a/dco_signoffs/David Kroon (on behalf of Jur de Jong).txt +++ /dev/null @@ -1,22 +0,0 @@ -I, David Kroon, as representative of Ortec Finance, hereby sign-off-by all of the past commits by Jur de Jong to this repo subject to the Developer Certificate of Origin (DCO), Version 1.1. Emails used in the past are: jur.de.jong@ortecfinance.com. -0d0390e737b5e1f7a0573f17c56c5e989d0be39e test data -29c816d47bb59c3bb2dc2b432432b459759561b5 replaced sbti by itr -11b21499776638e81a7d704a3086f1a9ddbdf08b update notebook + notebook data -4c2234dc2078e1c90a2bf5ed51cb37c53f296c21 update tests -6899c50d9687e08f29ec439c0ac47a61cd73a3e1 test df to target model -493453307ae619532621199086feb344f27c22cd additional tests -6072b8fd0ec50f589d8a4a33ecb38539e5630d1f update data -c138b76b4b9f21e67ca9d7bceeae4a4e442a87e9 tests -9c545e1d546ccae76ed2f32dc8b4baed6d3b9659 clean up and extra checks -d74b6fcdc5fb94ef1d76afe07c0df017fceec4c0 added sectors and target data -59727783ee93a99dcf701846eb5220b61027e1e6 data provider update -893a951cc9b65533fe532d020cb2ff5bb06e438b target data -8ebb71949942f166e15ece97b9774241be122aa4 pip install . -be150a3c2c53bbf788c61281389f4ca9a2e56de4 fixed additional issue -080c858c82a88804524cdbbfe0fad7110c9416f3 data provider example -91d1c5fc1f4df21058670179153a7909bb2c056c fixed issue -dd0e8e0dd6eefc332fd61f2f964cf7e042f4fe21 use projected ei and projected production -4099ef991745d705e742bade352ce998af4d8ec9 update -96a99f5df4044fb8c8e59c35a884b81cd9092681 update -51463510b4338048cb25debfb46a7b39d78d2902 update -28cf4699c852e8fa5733e178bddcb1004e78a996 tests diff --git a/dco_signoffs/David Kroon.txt b/dco_signoffs/David Kroon.txt deleted file mode 100644 index 113bec98..00000000 --- a/dco_signoffs/David Kroon.txt +++ /dev/null @@ -1,55 +0,0 @@ -I, David Kroon, hereby sign-off-by all of my past commits to this repo subject to the Developer Certificate of Origin (DCO), Version 1.1. -8012d7e0f74725911a1d9f76df8b5384b0c28247 Merge pull request #122 from os-climate/environmet_setup Environmet setup -00a48c8f1607200de02f936a5df338f462439bb6 Merge pull request #121 from os-climate/target_data_bug Allow missing target data - score will be based on trajectory -91ccb2a78ad2940bda99538685202065ec01d94b Merge pull request #109 from os-climate/mdt-oecd Added OECD show-and-tell -c14cbb59cf73d89f3a45379bd9eb06ed5ad86973 Merge pull request #120 from os-climate/ui_input_data Remove Exelon Corp from target data - target already expired -b91974b6781f6373ece556e0717a7f66d1848722 Merge pull request #116 from os-climate/logging Implement logging -bfb6e65b38e55ef06c5c18fc2e9b3d3d7b4de703 Merge pull request #114 from os-climate/develop-logging Add logging -75e44c363660da03c06d768580243ce726a46c30 Merge branch 'develop' into develop-logging -cdd034a4921d9f6c463a90ad881f6722ab6c1b98 Merge pull request #115 from os-climate/develop_fix Develop fix -e3598d28a1212d89704bda1fb4439bde5faa3b45 Merge branch 'develop' into develop-logging -f0f82f940443544a065996c84fa5e4b6ab8e441b Merge branch 'develop' into develop_fix -3663009c447b0908f40f32424390102f367a0ffd Merge remote-tracking branch 'origin/develop-logging' into develop_fix -0f0c10224371e29a030a3b0329dcb4239eee8e6f Revert "Merge branch 'develop-logging' into develop" This reverts commit 487e7265e65dc619ce35aa4db9bbbac161909755, reversing changes made to 49e828699aa5153e82baee0eafbc6c664cc54da0. -487e7265e65dc619ce35aa4db9bbbac161909755 Merge branch 'develop-logging' into develop -49e828699aa5153e82baee0eafbc6c664cc54da0 Merge pull request #107 from os-climate/GUI-functionality Update for UI. UI could be used for release. -c35e491650d61397497feba1f616c9c188802fec Merge pull request #94 from os-climate/#51_update_tpi_models #51 update tpi benchmark models -8ec5a87c384912d6184871ce65b10b026e7ea7ab Merge pull request #106 from os-climate/mdt-portfolioaggregation Address ITR #104 -9f327fcf1bb44d31af1446bd151dc13ddc49a38c Merge pull request #100 from os-climate/#86_issue_if_target_data_is_unavailable Merge pull request #86_issue_if_target_data_is_unavailable into os-climate/develop -04fb506c9b3f7d957a71a6e394565d699d24d202 Merge pull request #99 from os-climate/develop Add updates in develop to feature branch -90c909aeb85cafde56461e738930f3a302fd2496 Merge branch '#86_issue_if_target_data_is_unavailable' into develop -a5a48c4e4610f17396b708d8e09ed55e68e70c98 Merge pull request #98 from os-climate/update_vulnerability_scan Update vulnerability scan -6b543b522608f0b8e582eac680336a882aa5ed2e Merge pull request #92 from alexanu/UI-update-Excel-upload-ErrorFlagging Adding check for sectors in scope while reading xlsx with input data -cef76eafd9c5d39c7da23c0de7c0e1bec7a1fc57 Merge pull request #90 from os-climate/develop-ProjectionControls Support flexible projection controls -0b442ddc0e557e4bf21933fbb0df16e5235e7914 Update requirements.txt and conda env yaml -acc693179f99f9d5c458b345b243d0d444f2c18d Fix some tests -94c3a9820802e44dc1c2554ce60e6196f3f7c157 Attempt at cleanup, renaming, fixing tests -580a27f4c735f09ccb9538353501fc3aa7993c5a Cleanup and fixing of some tests -15af2645d8d38c89faa5329083811a7d45b277ce Add handling of absolute type target -52cf25837ee9f5142d3f3265d588f686f5e37cd3 Add target projection based on emission intensity targets -d02765099ff5ff86883d81cb204d70f81f3538a1 WIP Edit project_targets to handle Pydantic data -8c9008bb0adbbfe445724b1724f584ebccd0d770 Add directory unit test workflow -9ae24eb74c6df3f7fe64d567f5c3dc453618cfc5 Increase Python and Pandas versions -1411a1d1c39ce8df5a60c62d2bb8473e31310c53 Fix GitHub unit test workflow -d9967210591eababe42e13d63c2c79fb0bb5f80a Add GitHub workflow for running unit tests on pushes and PRs to main and develop -7e55ce504fea94df83bd76f73cd7a00eefadb27c Add GitHub workflow for running unit tests on pushes and PRs to main and develop -b3fcaa39e5a47b48aee1567f4843c8a97351f0b4 Add JSON company provider and test -af3f496f89b70ce403d86dd0418f192fc3168a42 Merge pull request #13 from os-c/make_api_compatible improved validation for api -88cf0b263b0fde08d7d4a7dbc3ffe5d68c99553d Fix requirements -66efb3ea4940cf5ee13f1049696fbf0c79faa4c1 Add run tests and notebook tests for pushes on develop -bf86a781b1e01489a3aec73f3c3a70cdb6dc938d Merge branch target into branch develop -6f9a866036d9cc1f4b2918c18f0cd97f90e3611a Remove unused imports -221747943efeb45cc2d5b21b6bf8ada0652899cf Merge pull request #8 from os-c/notebook_test Notebook test -b3ae5346a5bbe0a844cee77ec9462f5793789bd9 Merge branch 'develop' into notebook_test -6ceb0e57fd8b9cefedba5de955b9bb3d4551b33e Update notebook test -fc72309c4c5adbf6e227000c7a0c6e532c646d61 Merge pull request #5 from os-c/nb_workflow Nb workflow -612cadb918b63bd6ca009de8d4d7311c720e43d1 Update dependences for notebook test -77cba42911964288c91bf591f319d6253292cd99 Update check notebook github action -e1ddeaa20b55badb705608559c9980ed632a5f2a Update notebook check workflow to run on PR -ab3ef272e749accf24f6284ddbb1283f1f870776 Update dependencies -3d6ba467f5e397da99c326077d7aa47fce20a1c1 Compute temperature scores based on ITR method -8bd01f0a22488848c0682c68f9f7619f54759089 Add current temp and budget to configs -86255d04c12c9acb0bff26eb7c74e519da475c89 Move budgets to data provider data -0965f624c7a047d156d8198d77ffaefb474f553a Update example budgets -7c386b0580e30b75342f140096e62815d679564a Create example budgets -2f7e19fdeeb08b9ffad210480784583bfd75e5d2 Add budget interface and remove unused code diff --git a/dco_signoffs/add_dco_signoff.ipynb b/dco_signoffs/add_dco_signoff.ipynb deleted file mode 100644 index ae326b4d..00000000 --- a/dco_signoffs/add_dco_signoff.ipynb +++ /dev/null @@ -1,180 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": { - "collapsed": true, - "pycharm": { - "name": "#%% md\n" - } - }, - "source": [ - "## Example of adding DCO signoff to previous unsigned commits\n", - "The result is a .txt file (named as -Name-.txt) with the following statement:\n", - "I, -Name-, hereby sign-off-by all of my past commits to this repo subject to the Developer Certificate of Origin (DCO),\n", - "Version 1.1. In the past I have used emails: -email addresses-\n", - "-SHA- -Commit message-\n", - "etc.\n", - "\n", - "Please note that the supplied functions use the [GitPython](https://gitpython.readthedocs.io/en/stable/index.html) package. This package can be installed with the command:\n", - "`pip install GitPython`" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "pycharm": { - "name": "#%% md\n" - } - }, - "source": [ - "Import functions" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "pycharm": { - "name": "#%%\n" - } - }, - "outputs": [], - "source": [ - "import git\n", - "from dco import get_authors_unsigned_commits, add_dco_signoff_to_file" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Specify the local path to the ITR repository, initialize a GitPython Repo object and make sure that you have checked\n", - "out the develop branch:" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "pycharm": { - "name": "#%%\n" - } - }, - "outputs": [], - "source": [ - "GIT_PATH = 'C:\\src\\ITR' # Supply path to local git repository, e.g. 'C:\\src\\ITR'\n", - "repo = git.Repo(GIT_PATH)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "pycharm": { - "name": "#%% md\n" - } - }, - "source": [ - "Next, list all authors of currently unsigned commits." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "pycharm": { - "name": "#%%\n" - } - }, - "outputs": [], - "source": [ - "print(get_authors_unsigned_commits(repo))" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "pycharm": { - "name": "#%% md\n" - } - }, - "source": [ - "Identify which of the listed authors you are or are responsible for, and assign them to a variable. Note that the value\n", - "assigned to the name variable equals the name of the resulting file." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "pycharm": { - "name": "#%%\n" - } - }, - "outputs": [], - "source": [ - "name = \"Name\"\n", - "authors = [\"Author name\"]\n", - "email_addresses = [\"past email address of author\"]\n", - "add_dco_signoff_to_file(repo, name, authors, email_addresses)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "pycharm": { - "name": "#%% md\n" - } - }, - "source": [ - "If you are signing off on behalf of someone else, for example a former employee of your company, please add a message as\n", - "a complete string of the form:\n", - "I, -Name-, hereby sign-off-by all of my past commits to this repo subject to the Developer Certificate of Origin (DCO),\n", - "Version 1.1. In the past I have used emails: -email addresses-\n", - "\n", - "Provide your name and the name of the person you are signing off for as the `name` variable.\n", - "\n", - "For example:" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "pycharm": { - "name": "#%%\n" - } - }, - "outputs": [], - "source": [ - "declaration = \"I, David Kroon, as representative of Ortec Finance, hereby sign-off-by all of the past commits by Jur de Jong to\" +\\\n", - " \" this repo subject to the Developer Certificate of Origin (DCO), Version 1.1.\" +\\\n", - " \" Emails used in the past are: jur.de.jong@ortecfinance.com.\"\n", - "name = \"David Kroon (on behalf of Jur de Jong)\"\n", - "authors = [\"Jur de Jong\"]\n", - "add_dco_signoff_to_file(repo, name, authors, email_addresses, declaration)" - ] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3 (ipykernel)", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.9.13" - } - }, - "nbformat": 4, - "nbformat_minor": 1 -} diff --git a/dco_signoffs/dco.py b/dco_signoffs/dco.py deleted file mode 100644 index c6dc4e60..00000000 --- a/dco_signoffs/dco.py +++ /dev/null @@ -1,42 +0,0 @@ -import git -from typing import List - -def get_unsigned_commits(repo: git.Repo) -> List[git.Commit]: - unsigned_commits = [] - for commit in repo.iter_commits(): - if not commit.message.__contains__("Signed-off-by"): - unsigned_commits.append(commit) - return unsigned_commits - -def get_authors(unsigned_commits: List[git.Commit]) -> List[str]: - authors = [str(commit.author) for commit in unsigned_commits] - unique_authors = list(set(authors)) - return unique_authors - -def get_authors_unsigned_commits(repo) -> List[str]: - unsigned_commits = get_unsigned_commits(repo) - return get_authors(unsigned_commits) - -def add_dco_signoff_to_file(repo: git.Repo, name: str, authors: List[str], email_addresses: List[str], declaration: str = ""): - """ - repo: The repository for which to add DCO sign-offs. Make sure to have checked out the correct branch. - name: Name used to identify the one declaring sign-off statement. - gh_names: List of names under which the unsigned commits were committed - can be multiple for the same user. - email_addresses: List of any past email address used by user in relation to the unsigned commits. May be an empty list. - """ - if not declaration: - declaration = f"I, {name}, hereby sign-off-by all of my past commits to this repo subject to the Developer " + \ - f"Certificate of Origin (DCO), Version 1.1. " - if email_addresses: - declaration += f"In the past I have used emails: {email_addresses}. " - unsigned_commits = get_unsigned_commits(repo) - authors_commits = [commit for commit in unsigned_commits if str(commit.author) in authors] - if not authors_commits: - return - - with open(name + '.txt', 'w') as file: - file.write(declaration + "\n") - for commit in authors_commits: - message = commit.message.replace('\n', ' ') - file.write(f"{commit.hexsha} {message}\n") - return From deb83054b2bfd393d61c93c99059cdd8a5d1c4b6 Mon Sep 17 00:00:00 2001 From: David Kroon <35101727+dp90@users.noreply.github.com> Date: Fri, 15 Jul 2022 16:26:41 +0200 Subject: [PATCH 270/345] Update OECM benchmarks Signed-off-by: David Kroon <35101727+dp90@users.noreply.github.com> Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- examples/data/json/benchmark_EI_OECM.json | 825 +++++++++++++----- .../data/json/benchmark_production_OECM.json | 813 +++++++++++++---- 2 files changed, 1248 insertions(+), 390 deletions(-) diff --git a/examples/data/json/benchmark_EI_OECM.json b/examples/data/json/benchmark_EI_OECM.json index 252992ea..2ca8c485 100644 --- a/examples/data/json/benchmark_EI_OECM.json +++ b/examples/data/json/benchmark_EI_OECM.json @@ -10,133 +10,136 @@ "projections": [ { "year": 2019, - "value": 3.3220564752850343 + "value": 1.65265 }, { "year": 2020, - "value": 3.1503497972403762 + "value": 1.58075 }, { "year": 2021, - "value": 3.0527921157410978 + "value": 1.50885 }, { "year": 2022, - "value": 2.9552344342418193 + "value": 1.43696 }, { "year": 2023, - "value": 2.857676752742541 + "value": 1.36506 }, { "year": 2024, - "value": 2.7601190712432624 + "value": 1.29316 }, { "year": 2025, - "value": 2.662561389743985 + "value": 1.22126 }, { "year": 2026, - "value": 2.4712202694763543 + "value": 1.12076 }, { "year": 2027, - "value": 2.279879149208724 + "value": 1.02025 }, { "year": 2028, - "value": 2.0885380289410933 + "value": 0.91975 }, { "year": 2029, - "value": 1.897196908673463 + "value": 0.81925 }, { "year": 2030, - "value": 1.7058557884058332 + "value": 0.71874 }, { "year": 2031, - "value": 1.5675115369354773 + "value": 0.66004 }, { "year": 2032, - "value": 1.4291672854651214 + "value": 0.60134 }, { "year": 2033, - "value": 1.2908230339947655 + "value": 0.54265 }, { "year": 2034, - "value": 1.1524787825244096 + "value": 0.48395 }, { "year": 2035, - "value": 1.014134531054054 + "value": 0.42525 }, { "year": 2036, - "value": 0.931354020885741 + "value": 0.38687 }, { "year": 2037, - "value": 0.8485735107174281 + "value": 0.34849 }, { "year": 2038, - "value": 0.7657930005491153 + "value": 0.3101 }, { "year": 2039, - "value": 0.6830124903808024 + "value": 0.27172 }, { "year": 2040, - "value": 0.6002319802124896 + "value": 0.23334 }, { "year": 2041, - "value": 0.5476438118058607 + "value": 0.21164 }, { "year": 2042, - "value": 0.4950556433992319 + "value": 0.18993 }, { "year": 2043, - "value": 0.4424674749926031 + "value": 0.16823 }, { "year": 2044, - "value": 0.38987930658597425 + "value": 0.14652 }, { "year": 2045, - "value": 0.33729113817934536 + "value": 0.12482 }, { "year": 2046, - "value": 0.3018329516910954 + "value": 0.10818 }, { "year": 2047, - "value": 0.2663747652028455 + "value": 0.09153 }, { "year": 2048, - "value": 0.23091657871459553 + "value": 0.07489 }, { "year": 2049, - "value": 0.1954583922263456 + "value": 0.05824 }, { "year": 2050, - "value": 0.16000020573809565 + "value": 0.0416 } - ] + ], + "scenario name": "OECM 1.5 Degrees", + "release date": "2022", + "unit": "t CO2/Fe_ton" }, { "sector": "Steel", @@ -144,133 +147,136 @@ "projections": [ { "year": 2019, - "value": 3.131211962564734 + "value": 1.75576 }, { "year": 2020, - "value": 2.9869966982706138 + "value": 1.70112 }, { "year": 2021, - "value": 2.8847804173877667 + "value": 1.64649 }, { "year": 2022, - "value": 2.7825641365049196 + "value": 1.59185 }, { "year": 2023, - "value": 2.6803478556220726 + "value": 1.53722 }, { "year": 2024, - "value": 2.5781315747392255 + "value": 1.48258 }, { "year": 2025, - "value": 2.475915293856379 + "value": 1.42795 }, { "year": 2026, - "value": 2.2910527372934544 + "value": 1.32252 }, { "year": 2027, - "value": 2.10619018073053 + "value": 1.2171 }, { "year": 2028, - "value": 1.9213276241676056 + "value": 1.11167 }, { "year": 2029, - "value": 1.7364650676046813 + "value": 1.00625 }, { "year": 2030, - "value": 1.5516025110417573 + "value": 0.90083 }, { "year": 2031, - "value": 1.432600820509025 + "value": 0.82877 }, { "year": 2032, - "value": 1.3135991299762928 + "value": 0.75671 }, { "year": 2033, - "value": 1.1945974394435606 + "value": 0.68465 }, { "year": 2034, - "value": 1.0755957489108283 + "value": 0.6126 }, { "year": 2035, - "value": 0.9565940583780966 + "value": 0.54054 }, { "year": 2036, - "value": 0.8773327230164034 + "value": 0.49958 }, { "year": 2037, - "value": 0.7980713876547102 + "value": 0.45862 }, { "year": 2038, - "value": 0.718810052293017 + "value": 0.41766 }, { "year": 2039, - "value": 0.6395487169313238 + "value": 0.3767 }, { "year": 2040, - "value": 0.5602873815696308 + "value": 0.33574 }, { "year": 2041, - "value": 0.5163674619712709 + "value": 0.30672 }, { "year": 2042, - "value": 0.47244754237291103 + "value": 0.2777 }, { "year": 2043, - "value": 0.42852762277455114 + "value": 0.24868 }, { "year": 2044, - "value": 0.38460770317619125 + "value": 0.21966 }, { "year": 2045, - "value": 0.34068778357783136 + "value": 0.19064 }, { "year": 2046, - "value": 0.30455031546034383 + "value": 0.16861 }, { "year": 2047, - "value": 0.2684128473428563 + "value": 0.14658 }, { "year": 2048, - "value": 0.23227537922536876 + "value": 0.12455 }, { "year": 2049, - "value": 0.1961379111078812 + "value": 0.10252 }, { "year": 2050, - "value": 0.16000044299039362 + "value": 0.0805 } - ] + ], + "scenario name": "OECM 1.5 Degrees", + "release date": "2022", + "unit": "t CO2/Fe_ton" }, { "sector": "Steel", @@ -278,133 +284,136 @@ "projections": [ { "year": 2019, - "value": 2.9870685915231707 + "value": 2.17949 }, { "year": 2020, - "value": 2.9486311713663316 + "value": 2.06421 }, { "year": 2021, - "value": 2.911342598101551 + "value": 1.94893 }, { "year": 2022, - "value": 2.87405402483677 + "value": 1.83365 }, { "year": 2023, - "value": 2.8367654515719893 + "value": 1.71837 }, { "year": 2024, - "value": 2.7994768783072086 + "value": 1.60309 }, { "year": 2025, - "value": 2.972782901473998 + "value": 1.4878 }, { "year": 2026, - "value": 2.831475560118695 + "value": 1.35806 }, { "year": 2027, - "value": 2.690168218763392 + "value": 1.22832 }, { "year": 2028, - "value": 2.548860877408089 + "value": 1.09857 }, { "year": 2029, - "value": 2.407553536052786 + "value": 0.96883 }, { "year": 2030, - "value": 2.266246194697484 + "value": 0.83908 }, { "year": 2031, - "value": 2.1619493306345343 + "value": 0.78309 }, { "year": 2032, - "value": 2.0576524665715845 + "value": 0.7271 }, { "year": 2033, - "value": 1.9533556025086347 + "value": 0.67112 }, { "year": 2034, - "value": 1.849058738445685 + "value": 0.61513 }, { "year": 2035, - "value": 1.7447618743827347 + "value": 0.55914 }, { "year": 2036, - "value": 1.6053321610476659 + "value": 0.50792 }, { "year": 2037, - "value": 1.465902447712597 + "value": 0.4567 }, { "year": 2038, - "value": 1.3264727343775282 + "value": 0.40547 }, { "year": 2039, - "value": 1.1870430210424594 + "value": 0.35425 }, { "year": 2040, - "value": 1.0476133077073908 + "value": 0.30303 }, { "year": 2041, - "value": 0.9551204892179995 + "value": 0.27981 }, { "year": 2042, - "value": 0.8626276707286082 + "value": 0.25658 }, { "year": 2043, - "value": 0.770134852239217 + "value": 0.23336 }, { "year": 2044, - "value": 0.6776420337498257 + "value": 0.21014 }, { "year": 2045, - "value": 0.5851492152604343 + "value": 0.18692 }, { "year": 2046, - "value": 0.5001218018675508 + "value": 0.16677 }, { "year": 2047, - "value": 0.41509438847466734 + "value": 0.14663 }, { "year": 2048, - "value": 0.33006697508178384 + "value": 0.12649 }, { "year": 2049, - "value": 0.24503956168890034 + "value": 0.10635 }, { "year": 2050, - "value": 0.1600121482960168 + "value": 0.08621 } - ] + ], + "scenario name": "OECM 1.5 Degrees", + "release date": "2022", + "unit": "t CO2/Fe_ton" }, { "sector": "Electricity Utilities", @@ -412,133 +421,136 @@ "projections": [ { "year": 2019, - "value": 0.6075603731304943 + "value": 0.549446439 }, { "year": 2020, - "value": 0.45274433529466107 + "value": 0.508178139 }, { "year": 2021, - "value": 0.41508425410495076 + "value": 0.466909838 }, { "year": 2022, - "value": 0.37742417291524044 + "value": 0.425641538 }, { "year": 2023, - "value": 0.3397640917255301 + "value": 0.384373237 }, { "year": 2024, - "value": 0.3021040105358198 + "value": 0.343104937 }, { "year": 2025, - "value": 0.26444392934610944 + "value": 0.301836636 }, { "year": 2026, - "value": 0.23622922761637988 + "value": 0.268545127 }, { "year": 2027, - "value": 0.20801452588665031 + "value": 0.235253618 }, { "year": 2028, - "value": 0.17979982415692075 + "value": 0.201962108 }, { "year": 2029, - "value": 0.1515851224271912 + "value": 0.168670599 }, { "year": 2030, - "value": 0.12337042069746158 + "value": 0.13537909 }, { "year": 2031, - "value": 0.10876688805755423 + "value": 0.118213796 }, { "year": 2032, - "value": 0.09416335541764688 + "value": 0.101048502 }, { "year": 2033, - "value": 0.07955982277773953 + "value": 0.083883208 }, { "year": 2034, - "value": 0.06495629013783218 + "value": 0.066717915 }, { "year": 2035, - "value": 0.05035275749792479 + "value": 0.049552621 }, { "year": 2036, - "value": 0.04437091407361017 + "value": 0.044269585 }, { "year": 2037, - "value": 0.03838907064929556 + "value": 0.038986549 }, { "year": 2038, - "value": 0.03240722722498095 + "value": 0.033703513 }, { "year": 2039, - "value": 0.026425383800666332 + "value": 0.028420476 }, { "year": 2040, - "value": 0.020443540376351713 + "value": 0.02313744 }, { "year": 2041, - "value": 0.01831849355545248 + "value": 0.019999508 }, { "year": 2042, - "value": 0.01619344673455325 + "value": 0.016861576 }, { "year": 2043, - "value": 0.014068399913654016 + "value": 0.013723644 }, { "year": 2044, - "value": 0.011943353092754783 + "value": 0.010585712 }, { "year": 2045, - "value": 0.009818306271855556 + "value": 0.00744778 }, { "year": 2046, - "value": 0.008652674634510546 + "value": 0.005958224 }, { "year": 2047, - "value": 0.007487042997165536 + "value": 0.004468668 }, { "year": 2048, - "value": 0.0063214113598205265 + "value": 0.002979112 }, { "year": 2049, - "value": 0.005155779722475517 + "value": 0.001489556 }, { "year": 2050, - "value": 0.0039901480851305075 + "value": 5.68543e-11 } - ] + ], + "scenario name": "OECM 1.5 Degrees", + "release date": "2022", + "unit": "t CO2/MWh" }, { "sector": "Electricity Utilities", @@ -546,133 +558,136 @@ "projections": [ { "year": 2019, - "value": 0.35881498057849487 + "value": 0.279376499 }, { "year": 2020, - "value": 0.2865468233079732 + "value": 0.260987459 }, { "year": 2021, - "value": 0.2607557025877874 + "value": 0.242598419 }, { "year": 2022, - "value": 0.2349645818676016 + "value": 0.22420938 }, { "year": 2023, - "value": 0.2091734611474158 + "value": 0.20582034 }, { "year": 2024, - "value": 0.18338234042723 + "value": 0.1874313 }, { "year": 2025, - "value": 0.15759121970704418 + "value": 0.169042261 }, { "year": 2026, - "value": 0.14282943407381637 + "value": 0.15036296 }, { "year": 2027, - "value": 0.12806764844058857 + "value": 0.131683659 }, { "year": 2028, - "value": 0.11330586280736078 + "value": 0.113004358 }, { "year": 2029, - "value": 0.098544077174133 + "value": 0.094325057 }, { "year": 2030, - "value": 0.0837822915409052 + "value": 0.075645756 }, { "year": 2031, - "value": 0.07746160146599985 + "value": 0.069660716 }, { "year": 2032, - "value": 0.0711409113910945 + "value": 0.063675676 }, { "year": 2033, - "value": 0.06482022131618916 + "value": 0.057690636 }, { "year": 2034, - "value": 0.05849953124128381 + "value": 0.051705596 }, { "year": 2035, - "value": 0.052178841166378484 + "value": 0.045720556 }, { "year": 2036, - "value": 0.04684755406645104 + "value": 0.040642474 }, { "year": 2037, - "value": 0.04151626696652359 + "value": 0.035564393 }, { "year": 2038, - "value": 0.03618497986659615 + "value": 0.030486311 }, { "year": 2039, - "value": 0.0308536927666687 + "value": 0.025408229 }, { "year": 2040, - "value": 0.02552240566674124 + "value": 0.020330148 }, { "year": 2041, - "value": 0.02274307056582293 + "value": 0.01762698 }, { "year": 2042, - "value": 0.01996373546490462 + "value": 0.014923813 }, { "year": 2043, - "value": 0.017184400363986312 + "value": 0.012220645 }, { "year": 2044, - "value": 0.014405065263068003 + "value": 0.009517478 }, { "year": 2045, - "value": 0.011625730162149695 + "value": 0.00681431 }, { "year": 2046, - "value": 0.01038065721709401 + "value": 0.005451448 }, { "year": 2047, - "value": 0.009135584272038323 + "value": 0.004088586 }, { "year": 2048, - "value": 0.007890511326982637 + "value": 0.002725724 }, { "year": 2049, - "value": 0.00664543838192695 + "value": 0.001362862 }, { "year": 2050, - "value": 0.005400365436871264 + "value": 0.0 } - ] + ], + "scenario name": "OECM 1.5 Degrees", + "release date": "2022", + "unit": "t CO2/MWh" }, { "sector": "Electricity Utilities", @@ -680,133 +695,547 @@ "projections": [ { "year": 2019, - "value": 0.4125934987501587 + "value": 0.391933029 }, { "year": 2020, - "value": 0.38454300118653756 + "value": 0.357991045 }, { "year": 2021, - "value": 0.3374576897313128 + "value": 0.32404906 }, { "year": 2022, - "value": 0.29037237827608803 + "value": 0.290107076 }, { "year": 2023, - "value": 0.24328706682086326 + "value": 0.256165092 }, { "year": 2024, - "value": 0.1962017553656385 + "value": 0.222223107 }, { "year": 2025, - "value": 0.1923140908240688 + "value": 0.188281123 }, { "year": 2026, - "value": 0.16704492796205822 + "value": 0.156790155 }, { "year": 2027, - "value": 0.14177576510004763 + "value": 0.125299187 }, { "year": 2028, - "value": 0.11650660223803705 + "value": 0.093808219 }, { "year": 2029, - "value": 0.09123743937602646 + "value": 0.062317251 }, { "year": 2030, - "value": 0.06596827651401585 + "value": 0.030826283 }, { "year": 2031, - "value": 0.06014607184262098 + "value": 0.030429887 }, { "year": 2032, - "value": 0.054323867171226115 + "value": 0.03003349 }, { "year": 2033, - "value": 0.04850166249983125 + "value": 0.029637093 }, { "year": 2034, - "value": 0.04267945782843638 + "value": 0.029240696 }, { "year": 2035, - "value": 0.036857253157041525 + "value": 0.028844299 }, { "year": 2036, - "value": 0.0339296363678427 + "value": 0.025089538 }, { "year": 2037, - "value": 0.031002019578643875 + "value": 0.021334777 }, { "year": 2038, - "value": 0.02807440278944505 + "value": 0.017580016 }, { "year": 2039, - "value": 0.025146786000246224 + "value": 0.013825254 }, { "year": 2040, - "value": 0.0222191692110474 + "value": 0.010070493 }, { "year": 2041, - "value": 0.018843767894743155 + "value": 0.009471948 }, { "year": 2042, - "value": 0.015468366578438914 + "value": 0.008873403 }, { "year": 2043, - "value": 0.012092965262134672 + "value": 0.008274858 }, { "year": 2044, - "value": 0.00871756394583043 + "value": 0.007676312 }, { "year": 2045, - "value": 0.005342162629526188 + "value": 0.007077767 }, { "year": 2046, - "value": 0.005298989223589939 + "value": 0.006827571 }, { "year": 2047, - "value": 0.005255815817653689 + "value": 0.006577374 }, { "year": 2048, - "value": 0.00521264241171744 + "value": 0.006327178 }, { "year": 2049, - "value": 0.00516946900578119 + "value": 0.006076982 }, { "year": 2050, - "value": 0.005126295599844942 + "value": 0.005826786 } - ] + ], + "scenario name": "OECM 1.5 Degrees", + "release date": "2022", + "unit": "t CO2/MWh" + }, + { + "sector": "Oil & Gas", + "region": "Global", + "projections": [ + { + "year": 2019, + "value": 0.067499781 + }, + { + "year": 2020, + "value": 0.065283078 + }, + { + "year": 2021, + "value": 0.063066374 + }, + { + "year": 2022, + "value": 0.060849671 + }, + { + "year": 2023, + "value": 0.058632967 + }, + { + "year": 2024, + "value": 0.056416264 + }, + { + "year": 2025, + "value": 0.05419956 + }, + { + "year": 2026, + "value": 0.051014542 + }, + { + "year": 2027, + "value": 0.047829524 + }, + { + "year": 2028, + "value": 0.044644506 + }, + { + "year": 2029, + "value": 0.041459488 + }, + { + "year": 2030, + "value": 0.03827447 + }, + { + "year": 2031, + "value": 0.035162476 + }, + { + "year": 2032, + "value": 0.032050481 + }, + { + "year": 2033, + "value": 0.028938486 + }, + { + "year": 2034, + "value": 0.025826491 + }, + { + "year": 2035, + "value": 0.022714497 + }, + { + "year": 2036, + "value": 0.020732108 + }, + { + "year": 2037, + "value": 0.01874972 + }, + { + "year": 2038, + "value": 0.016767332 + }, + { + "year": 2039, + "value": 0.014784943 + }, + { + "year": 2040, + "value": 0.012802555 + }, + { + "year": 2041, + "value": 0.010482854 + }, + { + "year": 2042, + "value": 0.008163152 + }, + { + "year": 2043, + "value": 0.00584345 + }, + { + "year": 2044, + "value": 0.003523749 + }, + { + "year": 2045, + "value": 0.001204047 + }, + { + "year": 2046, + "value": 0.001292647 + }, + { + "year": 2047, + "value": 0.001381246 + }, + { + "year": 2048, + "value": 0.001469845 + }, + { + "year": 2049, + "value": 0.001558445 + }, + { + "year": 2050, + "value": 0.001647044 + } + ], + "scenario name": "OECM 1.5 Degrees", + "release date": "2022", + "unit": "t CO2/GJ" + }, + { + "sector": "Oil & Gas", + "region": "Europe", + "projections": [ + { + "year": 2019, + "value": 0.058258922 + }, + { + "year": 2020, + "value": 0.056018155 + }, + { + "year": 2021, + "value": 0.053777388 + }, + { + "year": 2022, + "value": 0.051536621 + }, + { + "year": 2023, + "value": 0.049295854 + }, + { + "year": 2024, + "value": 0.047055087 + }, + { + "year": 2025, + "value": 0.044814319 + }, + { + "year": 2026, + "value": 0.04203088 + }, + { + "year": 2027, + "value": 0.039247441 + }, + { + "year": 2028, + "value": 0.036464002 + }, + { + "year": 2029, + "value": 0.033680563 + }, + { + "year": 2030, + "value": 0.030897124 + }, + { + "year": 2031, + "value": 0.029265309 + }, + { + "year": 2032, + "value": 0.027633494 + }, + { + "year": 2033, + "value": 0.02600168 + }, + { + "year": 2034, + "value": 0.024369865 + }, + { + "year": 2035, + "value": 0.02273805 + }, + { + "year": 2036, + "value": 0.021419078 + }, + { + "year": 2037, + "value": 0.020100105 + }, + { + "year": 2038, + "value": 0.018781133 + }, + { + "year": 2039, + "value": 0.01746216 + }, + { + "year": 2040, + "value": 0.016143188 + }, + { + "year": 2041, + "value": 0.013102266 + }, + { + "year": 2042, + "value": 0.010061345 + }, + { + "year": 2043, + "value": 0.007020424 + }, + { + "year": 2044, + "value": 0.003979503 + }, + { + "year": 2045, + "value": 0.000938582 + }, + { + "year": 2046, + "value": 0.000986486 + }, + { + "year": 2047, + "value": 0.001034391 + }, + { + "year": 2048, + "value": 0.001082296 + }, + { + "year": 2049, + "value": 0.001130201 + }, + { + "year": 2050, + "value": 0.001178105 + } + ], + "scenario name": "OECM 1.5 Degrees", + "release date": "2022", + "unit": "t CO2/GJ" + }, + { + "sector": "Oil & Gas", + "region": "North America", + "projections": [ + { + "year": 2019, + "value": 0.063525421 + }, + { + "year": 2020, + "value": 0.061161647 + }, + { + "year": 2021, + "value": 0.058797873 + }, + { + "year": 2022, + "value": 0.056434099 + }, + { + "year": 2023, + "value": 0.054070325 + }, + { + "year": 2024, + "value": 0.051706551 + }, + { + "year": 2025, + "value": 0.049342777 + }, + { + "year": 2026, + "value": 0.044716885 + }, + { + "year": 2027, + "value": 0.040090992 + }, + { + "year": 2028, + "value": 0.0354651 + }, + { + "year": 2029, + "value": 0.030839208 + }, + { + "year": 2030, + "value": 0.026213316 + }, + { + "year": 2031, + "value": 0.025037755 + }, + { + "year": 2032, + "value": 0.023862195 + }, + { + "year": 2033, + "value": 0.022686634 + }, + { + "year": 2034, + "value": 0.021511074 + }, + { + "year": 2035, + "value": 0.020335514 + }, + { + "year": 2036, + "value": 0.018877442 + }, + { + "year": 2037, + "value": 0.017419369 + }, + { + "year": 2038, + "value": 0.015961297 + }, + { + "year": 2039, + "value": 0.014503225 + }, + { + "year": 2040, + "value": 0.013045153 + }, + { + "year": 2041, + "value": 0.010810144 + }, + { + "year": 2042, + "value": 0.008575135 + }, + { + "year": 2043, + "value": 0.006340127 + }, + { + "year": 2044, + "value": 0.004105118 + }, + { + "year": 2045, + "value": 0.001870109 + }, + { + "year": 2046, + "value": 0.003106899 + }, + { + "year": 2047, + "value": 0.004343689 + }, + { + "year": 2048, + "value": 0.005580478 + }, + { + "year": 2049, + "value": 0.006817268 + }, + { + "year": 2050, + "value": 0.008054058 + } + ], + "scenario name": "OECM 1.5 Degrees", + "release date": "2022", + "unit": "t CO2/GJ" } ] }, diff --git a/examples/data/json/benchmark_production_OECM.json b/examples/data/json/benchmark_production_OECM.json index 6889adac..3a308f84 100644 --- a/examples/data/json/benchmark_production_OECM.json +++ b/examples/data/json/benchmark_production_OECM.json @@ -11,129 +11,132 @@ }, { "year": 2020, - "value": 0.015 + "value": 0.00306 }, { "year": 2021, - "value": 0.015 + "value": 0.00306 }, { "year": 2022, - "value": 0.015 + "value": 0.00306 }, { "year": 2023, - "value": 0.015 + "value": 0.00306 }, { "year": 2024, - "value": 0.015 + "value": 0.00306 }, { "year": 2025, - "value": 0.015 + "value": 0.00306 }, { "year": 2026, - "value": 0.015 + "value": 0.01172 }, { "year": 2027, - "value": 0.015 + "value": 0.01172 }, { "year": 2028, - "value": 0.015 + "value": 0.01172 }, { "year": 2029, - "value": 0.015 + "value": 0.01172 }, { "year": 2030, - "value": 0.015 + "value": 0.01172 }, { "year": 2031, - "value": 0.015 + "value": 0.01362 }, { "year": 2032, - "value": 0.015 + "value": 0.01362 }, { "year": 2033, - "value": 0.015 + "value": 0.01362 }, { "year": 2034, - "value": 0.015 + "value": 0.01362 }, { "year": 2035, - "value": 0.015 + "value": 0.01362 }, { "year": 2036, - "value": 0.015 + "value": 0.01362 }, { "year": 2037, - "value": 0.015 + "value": 0.01362 }, { "year": 2038, - "value": 0.015 + "value": 0.01362 }, { "year": 2039, - "value": 0.015 + "value": 0.01362 }, { "year": 2040, - "value": 0.015 + "value": 0.01362 }, { "year": 2041, - "value": 0.015 + "value": 0.01551 }, { "year": 2042, - "value": 0.015 + "value": 0.01551 }, { "year": 2043, - "value": 0.015 + "value": 0.01551 }, { "year": 2044, - "value": 0.015 + "value": 0.01551 }, { "year": 2045, - "value": 0.015 + "value": 0.01551 }, { "year": 2046, - "value": 0.015 + "value": 0.01551 }, { "year": 2047, - "value": 0.015 + "value": 0.01551 }, { "year": 2048, - "value": 0.015 + "value": 0.01551 }, { "year": 2049, - "value": 0.015 + "value": 0.01551 }, { "year": 2050, - "value": 0.015 + "value": 0.01551 } - ] + ], + "scenario name": "OECM 1.5 Degrees", + "release date": "2022.0", + "unit": "dimensionless" }, { "sector": "Steel", @@ -145,129 +148,132 @@ }, { "year": 2020, - "value": 0.015 + "value": 0.00901 }, { "year": 2021, - "value": 0.015 + "value": 0.00901 }, { "year": 2022, - "value": 0.015 + "value": 0.00901 }, { "year": 2023, - "value": 0.015 + "value": 0.00901 }, { "year": 2024, - "value": 0.015 + "value": 0.00901 }, { "year": 2025, - "value": 0.015 + "value": 0.00901 }, { "year": 2026, - "value": 0.015 + "value": 0.0111 }, { "year": 2027, - "value": 0.015 + "value": 0.0111 }, { "year": 2028, - "value": 0.015 + "value": 0.0111 }, { "year": 2029, - "value": 0.015 + "value": 0.0111 }, { "year": 2030, - "value": 0.015 + "value": 0.0111 }, { "year": 2031, - "value": 0.015 + "value": 0.01367 }, { "year": 2032, - "value": 0.015 + "value": 0.01367 }, { "year": 2033, - "value": 0.015 + "value": 0.01367 }, { "year": 2034, - "value": 0.015 + "value": 0.01367 }, { "year": 2035, - "value": 0.015 + "value": 0.01367 }, { "year": 2036, - "value": 0.015 + "value": 0.01353 }, { "year": 2037, - "value": 0.015 + "value": 0.01353 }, { "year": 2038, - "value": 0.015 + "value": 0.01353 }, { "year": 2039, - "value": 0.015 + "value": 0.01353 }, { "year": 2040, - "value": 0.015 + "value": 0.01353 }, { "year": 2041, - "value": 0.015 + "value": 0.0154 }, { "year": 2042, - "value": 0.015 + "value": 0.0154 }, { "year": 2043, - "value": 0.015 + "value": 0.0154 }, { "year": 2044, - "value": 0.015 + "value": 0.0154 }, { "year": 2045, - "value": 0.015 + "value": 0.0154 }, { "year": 2046, - "value": 0.015 + "value": 0.01556 }, { "year": 2047, - "value": 0.015 + "value": 0.01556 }, { "year": 2048, - "value": 0.015 + "value": 0.01556 }, { "year": 2049, - "value": 0.015 + "value": 0.01556 }, { "year": 2050, - "value": 0.015 + "value": 0.01556 } - ] + ], + "scenario name": "OECM 1.5 Degrees", + "release date": "2022.0", + "unit": "dimensionless" }, { "sector": "Steel", @@ -279,129 +285,132 @@ }, { "year": 2020, - "value": 0.015 + "value": 0.00837 }, { "year": 2021, - "value": 0.015 + "value": 0.00837 }, { "year": 2022, - "value": 0.015 + "value": 0.00837 }, { "year": 2023, - "value": 0.015 + "value": 0.00837 }, { "year": 2024, - "value": 0.015 + "value": 0.00837 }, { "year": 2025, - "value": 0.015 + "value": 0.00837 }, { "year": 2026, - "value": 0.015 + "value": 0.01191 }, { "year": 2027, - "value": 0.015 + "value": 0.01191 }, { "year": 2028, - "value": 0.015 + "value": 0.01191 }, { "year": 2029, - "value": 0.015 + "value": 0.01191 }, { "year": 2030, - "value": 0.015 + "value": 0.01191 }, { "year": 2031, - "value": 0.015 + "value": 0.01343 }, { "year": 2032, - "value": 0.015 + "value": 0.01343 }, { "year": 2033, - "value": 0.015 + "value": 0.01343 }, { "year": 2034, - "value": 0.015 + "value": 0.01343 }, { "year": 2035, - "value": 0.015 + "value": 0.01343 }, { "year": 2036, - "value": 0.015 + "value": 0.01258 }, { "year": 2037, - "value": 0.015 + "value": 0.01258 }, { "year": 2038, - "value": 0.015 + "value": 0.01258 }, { "year": 2039, - "value": 0.015 + "value": 0.01258 }, { "year": 2040, - "value": 0.015 + "value": 0.01258 }, { "year": 2041, - "value": 0.015 + "value": 0.01566 }, { "year": 2042, - "value": 0.015 + "value": 0.01566 }, { "year": 2043, - "value": 0.015 + "value": 0.01566 }, { "year": 2044, - "value": 0.015 + "value": 0.01566 }, { "year": 2045, - "value": 0.015 + "value": 0.01566 }, { "year": 2046, - "value": 0.015 + "value": 0.01628 }, { "year": 2047, - "value": 0.015 + "value": 0.01628 }, { "year": 2048, - "value": 0.015 + "value": 0.01628 }, { "year": 2049, - "value": 0.015 + "value": 0.01628 }, { "year": 2050, - "value": 0.015 + "value": 0.01628 } - ] + ], + "scenario name": "OECM 1.5 Degrees", + "release date": "2022.0", + "unit": "dimensionless" }, { "sector": "Electricity Utilities", @@ -413,129 +422,132 @@ }, { "year": 2020, - "value": -0.07639854475324115 + "value": 0.020253368 }, { "year": 2021, - "value": 0.059958359610187584 + "value": 0.020253368 }, { "year": 2022, - "value": 0.059958359610187584 + "value": 0.020253368 }, { "year": 2023, - "value": 0.059958359610187584 + "value": 0.020253368 }, { "year": 2024, - "value": 0.059958359610187584 + "value": 0.020253368 }, { "year": 2025, - "value": 0.059958359610187584 + "value": 0.020253368 }, { "year": 2026, - "value": 0.048590152054553304 + "value": 0.04702743 }, { "year": 2027, - "value": 0.048590152054553304 + "value": 0.04702743 }, { "year": 2028, - "value": 0.048590152054553304 + "value": 0.04702743 }, { "year": 2029, - "value": 0.048590152054553304 + "value": 0.04702743 }, { "year": 2030, - "value": 0.048590152054553304 + "value": 0.04702743 }, { "year": 2031, - "value": 0.04614330338817174 + "value": 0.083327304 }, { "year": 2032, - "value": 0.04614330338817174 + "value": 0.083327304 }, { "year": 2033, - "value": 0.04614330338817174 + "value": 0.083327304 }, { "year": 2034, - "value": 0.04614330338817174 + "value": 0.083327304 }, { "year": 2035, - "value": 0.04614330338817174 + "value": 0.083327304 }, { "year": 2036, - "value": 0.04009235517269438 + "value": 0.034051559 }, { "year": 2037, - "value": 0.04009235517269438 + "value": 0.034051559 }, { "year": 2038, - "value": 0.04009235517269438 + "value": 0.034051559 }, { "year": 2039, - "value": 0.04009235517269438 + "value": 0.034051559 }, { "year": 2040, - "value": 0.04009235517269438 + "value": 0.034051559 }, { "year": 2041, - "value": 0.025847885659444403 + "value": 0.019033826 }, { "year": 2042, - "value": 0.025847885659444403 + "value": 0.019033826 }, { "year": 2043, - "value": 0.025847885659444403 + "value": 0.019033826 }, { "year": 2044, - "value": 0.025847885659444403 + "value": 0.019033826 }, { "year": 2045, - "value": 0.025847885659444403 + "value": 0.019033826 }, { "year": 2046, - "value": 0.011912758443362925 + "value": 0.013946165 }, { "year": 2047, - "value": 0.011912758443362925 + "value": 0.013946165 }, { "year": 2048, - "value": 0.011912758443362925 + "value": 0.013946165 }, { "year": 2049, - "value": 0.011912758443362925 + "value": 0.013946165 }, { "year": 2050, - "value": 0.011912758443362925 + "value": 0.013946165 } - ] + ], + "scenario name": "OECM 1.5 Degrees", + "release date": "2022.0", + "unit": "dimensionless" }, { "sector": "Electricity Utilities", @@ -547,129 +559,132 @@ }, { "year": 2020, - "value": -0.076445097814138 + "value": 0.030672987 }, { "year": 2021, - "value": 0.02580132761805909 + "value": 0.030672987 }, { "year": 2022, - "value": 0.02580132761805909 + "value": 0.030672987 }, { "year": 2023, - "value": 0.02580132761805909 + "value": 0.030672987 }, { "year": 2024, - "value": 0.02580132761805909 + "value": 0.030672987 }, { "year": 2025, - "value": 0.02580132761805909 + "value": 0.030672987 }, { "year": 2026, - "value": 0.04002127380628884 + "value": 0.040538319 }, { "year": 2027, - "value": 0.04002127380628884 + "value": 0.040538319 }, { "year": 2028, - "value": 0.04002127380628884 + "value": 0.040538319 }, { "year": 2029, - "value": 0.04002127380628884 + "value": 0.040538319 }, { "year": 2030, - "value": 0.04002127380628884 + "value": 0.040538319 }, { "year": 2031, - "value": 0.03693828379327191 + "value": 0.02309825 }, { "year": 2032, - "value": 0.03693828379327191 + "value": 0.02309825 }, { "year": 2033, - "value": 0.03693828379327191 + "value": 0.02309825 }, { "year": 2034, - "value": 0.03693828379327191 + "value": 0.02309825 }, { "year": 2035, - "value": 0.03693828379327191 + "value": 0.02309825 }, { "year": 2036, - "value": 0.018701956793973018 + "value": 0.010283743 }, { "year": 2037, - "value": 0.018701956793973018 + "value": 0.010283743 }, { "year": 2038, - "value": 0.018701956793973018 + "value": 0.010283743 }, { "year": 2039, - "value": 0.018701956793973018 + "value": 0.010283743 }, { "year": 2040, - "value": 0.018701956793973018 + "value": 0.010283743 }, { "year": 2041, - "value": 0.012045554009002979 + "value": 0.003964958 }, { "year": 2042, - "value": 0.012045554009002979 + "value": 0.003964958 }, { "year": 2043, - "value": 0.012045554009002979 + "value": 0.003964958 }, { "year": 2044, - "value": 0.012045554009002979 + "value": 0.003964958 }, { "year": 2045, - "value": 0.012045554009002979 + "value": 0.003964958 }, { "year": 2046, - "value": 0.0063601028128394965 + "value": -0.001126898 }, { "year": 2047, - "value": 0.0063601028128394965 + "value": -0.001126898 }, { "year": 2048, - "value": 0.0063601028128394965 + "value": -0.001126898 }, { "year": 2049, - "value": 0.0063601028128394965 + "value": -0.001126898 }, { "year": 2050, - "value": 0.0063601028128394965 + "value": -0.001126898 } - ] + ], + "scenario name": "OECM 1.5 Degrees", + "release date": "2022.0", + "unit": "dimensionless" }, { "sector": "Electricity Utilities", @@ -681,129 +696,543 @@ }, { "year": 2020, - "value": -0.07581010331041782 + "value": 0.026831797 }, { "year": 2021, - "value": 0.01981319064399467 + "value": 0.026831797 }, { "year": 2022, - "value": 0.01981319064399467 + "value": 0.026831797 }, { "year": 2023, - "value": 0.01981319064399467 + "value": 0.026831797 }, { "year": 2024, - "value": 0.01981319064399467 + "value": 0.026831797 }, { "year": 2025, - "value": 0.01981319064399467 + "value": 0.026831797 }, { "year": 2026, - "value": 0.0318777412680078 + "value": 0.069699646 }, { "year": 2027, - "value": 0.0318777412680078 + "value": 0.069699646 }, { "year": 2028, - "value": 0.0318777412680078 + "value": 0.069699646 }, { "year": 2029, - "value": 0.0318777412680078 + "value": 0.069699646 }, { "year": 2030, - "value": 0.0318777412680078 + "value": 0.069699646 }, { "year": 2031, - "value": 0.021494276219452768 + "value": 0.037361551 }, { "year": 2032, - "value": 0.021494276219452768 + "value": 0.037361551 }, { "year": 2033, - "value": 0.021494276219452768 + "value": 0.037361551 }, { "year": 2034, - "value": 0.021494276219452768 + "value": 0.037361551 }, { "year": 2035, - "value": 0.021494276219452768 + "value": 0.037361551 }, { "year": 2036, - "value": 0.03420717440226384 + "value": 0.010522868 }, { "year": 2037, - "value": 0.03420717440226384 + "value": 0.010522868 }, { "year": 2038, - "value": 0.03420717440226384 + "value": 0.010522868 }, { "year": 2039, - "value": 0.03420717440226384 + "value": 0.010522868 }, { "year": 2040, - "value": 0.03420717440226384 + "value": 0.010522868 }, { "year": 2041, - "value": 0.014292979405873707 + "value": 0.006862947 }, { "year": 2042, - "value": 0.014292979405873707 + "value": 0.006862947 }, { "year": 2043, - "value": 0.014292979405873707 + "value": 0.006862947 }, { "year": 2044, - "value": 0.014292979405873707 + "value": 0.006862947 }, { "year": 2045, - "value": 0.014292979405873707 + "value": 0.006862947 }, { "year": 2046, - "value": 0.0032269880188280364 + "value": 0.000424306 }, { "year": 2047, - "value": 0.0032269880188280364 + "value": 0.000424306 }, { "year": 2048, - "value": 0.0032269880188280364 + "value": 0.000424306 }, { "year": 2049, - "value": 0.0032269880188280364 + "value": 0.000424306 }, { "year": 2050, - "value": 0.0032269880188280364 + "value": 0.000424306 } - ] + ], + "scenario name": "OECM 1.5 Degrees", + "release date": "2022.0", + "unit": "dimensionless" + }, + { + "sector": "Oil & Gas", + "region": "Global", + "projections": [ + { + "year": 2019, + "value": 0.0 + }, + { + "year": 2020, + "value": -0.009355832 + }, + { + "year": 2021, + "value": -0.009355832 + }, + { + "year": 2022, + "value": -0.009355832 + }, + { + "year": 2023, + "value": -0.009355832 + }, + { + "year": 2024, + "value": -0.009355832 + }, + { + "year": 2025, + "value": -0.009355832 + }, + { + "year": 2026, + "value": -0.008650172 + }, + { + "year": 2027, + "value": -0.008650172 + }, + { + "year": 2028, + "value": -0.008650172 + }, + { + "year": 2029, + "value": -0.008650172 + }, + { + "year": 2030, + "value": -0.008650172 + }, + { + "year": 2031, + "value": -0.009820943 + }, + { + "year": 2032, + "value": -0.009820943 + }, + { + "year": 2033, + "value": -0.009820943 + }, + { + "year": 2034, + "value": -0.009820943 + }, + { + "year": 2035, + "value": -0.009820943 + }, + { + "year": 2036, + "value": -0.005714474 + }, + { + "year": 2037, + "value": -0.005714474 + }, + { + "year": 2038, + "value": -0.005714474 + }, + { + "year": 2039, + "value": -0.005714474 + }, + { + "year": 2040, + "value": -0.005714474 + }, + { + "year": 2041, + "value": -0.004879574 + }, + { + "year": 2042, + "value": -0.004879574 + }, + { + "year": 2043, + "value": -0.004879574 + }, + { + "year": 2044, + "value": -0.004879574 + }, + { + "year": 2045, + "value": -0.004879574 + }, + { + "year": 2046, + "value": 0.001837867 + }, + { + "year": 2047, + "value": 0.001837867 + }, + { + "year": 2048, + "value": 0.001837867 + }, + { + "year": 2049, + "value": 0.001837867 + }, + { + "year": 2050, + "value": 0.001837867 + } + ], + "scenario name": "OECM 1.5 Degrees", + "release date": "2022.0", + "unit": "dimensionless" + }, + { + "sector": "Oil & Gas", + "region": "Europe", + "projections": [ + { + "year": 2019, + "value": 0.0 + }, + { + "year": 2020, + "value": -0.020944249 + }, + { + "year": 2021, + "value": -0.020944249 + }, + { + "year": 2022, + "value": -0.020944249 + }, + { + "year": 2023, + "value": -0.020944249 + }, + { + "year": 2024, + "value": -0.020944249 + }, + { + "year": 2025, + "value": -0.020944249 + }, + { + "year": 2026, + "value": -0.038831658 + }, + { + "year": 2027, + "value": -0.038831658 + }, + { + "year": 2028, + "value": -0.038831658 + }, + { + "year": 2029, + "value": -0.038831658 + }, + { + "year": 2030, + "value": -0.038831658 + }, + { + "year": 2031, + "value": -0.032223634 + }, + { + "year": 2032, + "value": -0.032223634 + }, + { + "year": 2033, + "value": -0.032223634 + }, + { + "year": 2034, + "value": -0.032223634 + }, + { + "year": 2035, + "value": -0.032223634 + }, + { + "year": 2036, + "value": -0.02270247 + }, + { + "year": 2037, + "value": -0.02270247 + }, + { + "year": 2038, + "value": -0.02270247 + }, + { + "year": 2039, + "value": -0.02270247 + }, + { + "year": 2040, + "value": -0.02270247 + }, + { + "year": 2041, + "value": -0.019391367 + }, + { + "year": 2042, + "value": -0.019391367 + }, + { + "year": 2043, + "value": -0.019391367 + }, + { + "year": 2044, + "value": -0.019391367 + }, + { + "year": 2045, + "value": -0.019391367 + }, + { + "year": 2046, + "value": -0.005876127 + }, + { + "year": 2047, + "value": -0.005876127 + }, + { + "year": 2048, + "value": -0.005876127 + }, + { + "year": 2049, + "value": -0.005876127 + }, + { + "year": 2050, + "value": -0.005876127 + } + ], + "scenario name": "OECM 1.5 Degrees", + "release date": "2022.0", + "unit": "dimensionless" + }, + { + "sector": "Oil & Gas", + "region": "North America", + "projections": [ + { + "year": 2019, + "value": 0.0 + }, + { + "year": 2020, + "value": -0.025277484 + }, + { + "year": 2021, + "value": -0.025277484 + }, + { + "year": 2022, + "value": -0.025277484 + }, + { + "year": 2023, + "value": -0.025277484 + }, + { + "year": 2024, + "value": -0.025277484 + }, + { + "year": 2025, + "value": -0.025277484 + }, + { + "year": 2026, + "value": -0.045534375 + }, + { + "year": 2027, + "value": -0.045534375 + }, + { + "year": 2028, + "value": -0.045534375 + }, + { + "year": 2029, + "value": -0.045534375 + }, + { + "year": 2030, + "value": -0.045534375 + }, + { + "year": 2031, + "value": -0.017665429 + }, + { + "year": 2032, + "value": -0.017665429 + }, + { + "year": 2033, + "value": -0.017665429 + }, + { + "year": 2034, + "value": -0.017665429 + }, + { + "year": 2035, + "value": -0.017665429 + }, + { + "year": 2036, + "value": -0.015599524 + }, + { + "year": 2037, + "value": -0.015599524 + }, + { + "year": 2038, + "value": -0.015599524 + }, + { + "year": 2039, + "value": -0.015599524 + }, + { + "year": 2040, + "value": -0.015599524 + }, + { + "year": 2041, + "value": -0.004412832 + }, + { + "year": 2042, + "value": -0.004412832 + }, + { + "year": 2043, + "value": -0.004412832 + }, + { + "year": 2044, + "value": -0.004412832 + }, + { + "year": 2045, + "value": -0.004412832 + }, + { + "year": 2046, + "value": -0.007848747 + }, + { + "year": 2047, + "value": -0.007848747 + }, + { + "year": 2048, + "value": -0.007848747 + }, + { + "year": 2049, + "value": -0.007848747 + }, + { + "year": 2050, + "value": -0.007848747 + } + ], + "scenario name": "OECM 1.5 Degrees", + "release date": "2022.0", + "unit": "dimensionless" } ] }, From 0328c47d2302cc85535ea3e85839e66a97674cb0 Mon Sep 17 00:00:00 2001 From: David Kroon <35101727+dp90@users.noreply.github.com> Date: Fri, 15 Jul 2022 16:33:04 +0200 Subject: [PATCH 271/345] Update OECM benchmark jsons with units Signed-off-by: David Kroon <35101727+dp90@users.noreply.github.com> Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- .../data/json-units/benchmark_EI_OECM.json | 830 +++++++++++++----- .../json-units/benchmark_production_OECM.json | 818 +++++++++++++---- 2 files changed, 1256 insertions(+), 392 deletions(-) diff --git a/examples/data/json-units/benchmark_EI_OECM.json b/examples/data/json-units/benchmark_EI_OECM.json index 33dcc3bb..74b2e1a9 100644 --- a/examples/data/json-units/benchmark_EI_OECM.json +++ b/examples/data/json-units/benchmark_EI_OECM.json @@ -11,133 +11,136 @@ "projections": [ { "year": 2019, - "value": 3.3220564752850343 + "value": 1.65265 }, { "year": 2020, - "value": 3.1503497972403762 + "value": 1.58075 }, { "year": 2021, - "value": 3.0527921157410978 + "value": 1.50885 }, { "year": 2022, - "value": 2.9552344342418193 + "value": 1.43696 }, { "year": 2023, - "value": 2.857676752742541 + "value": 1.36506 }, { "year": 2024, - "value": 2.7601190712432624 + "value": 1.29316 }, { "year": 2025, - "value": 2.662561389743985 + "value": 1.22126 }, { "year": 2026, - "value": 2.4712202694763543 + "value": 1.12076 }, { "year": 2027, - "value": 2.279879149208724 + "value": 1.02025 }, { "year": 2028, - "value": 2.0885380289410933 + "value": 0.91975 }, { "year": 2029, - "value": 1.897196908673463 + "value": 0.81925 }, { "year": 2030, - "value": 1.7058557884058332 + "value": 0.71874 }, { "year": 2031, - "value": 1.5675115369354773 + "value": 0.66004 }, { "year": 2032, - "value": 1.4291672854651214 + "value": 0.60134 }, { "year": 2033, - "value": 1.2908230339947655 + "value": 0.54265 }, { "year": 2034, - "value": 1.1524787825244096 + "value": 0.48395 }, { "year": 2035, - "value": 1.014134531054054 + "value": 0.42525 }, { "year": 2036, - "value": 0.931354020885741 + "value": 0.38687 }, { "year": 2037, - "value": 0.8485735107174281 + "value": 0.34849 }, { "year": 2038, - "value": 0.7657930005491153 + "value": 0.3101 }, { "year": 2039, - "value": 0.6830124903808024 + "value": 0.27172 }, { "year": 2040, - "value": 0.6002319802124896 + "value": 0.23334 }, { "year": 2041, - "value": 0.5476438118058607 + "value": 0.21164 }, { "year": 2042, - "value": 0.4950556433992319 + "value": 0.18993 }, { "year": 2043, - "value": 0.4424674749926031 + "value": 0.16823 }, { "year": 2044, - "value": 0.38987930658597425 + "value": 0.14652 }, { "year": 2045, - "value": 0.33729113817934536 + "value": 0.12482 }, { "year": 2046, - "value": 0.3018329516910954 + "value": 0.10818 }, { "year": 2047, - "value": 0.2663747652028455 + "value": 0.09153 }, { "year": 2048, - "value": 0.23091657871459553 + "value": 0.07489 }, { "year": 2049, - "value": 0.1954583922263456 + "value": 0.05824 }, { "year": 2050, - "value": 0.16000020573809565 + "value": 0.0416 } - ] + ], + "scenario name": "OECM 1.5 Degrees", + "release date": "2022", + "unit": "t CO2/Fe_ton" }, { "sector": "Steel", @@ -146,133 +149,136 @@ "projections": [ { "year": 2019, - "value": 3.131211962564734 + "value": 1.75576 }, { "year": 2020, - "value": 2.9869966982706138 + "value": 1.70112 }, { "year": 2021, - "value": 2.8847804173877667 + "value": 1.64649 }, { "year": 2022, - "value": 2.7825641365049196 + "value": 1.59185 }, { "year": 2023, - "value": 2.6803478556220726 + "value": 1.53722 }, { "year": 2024, - "value": 2.5781315747392255 + "value": 1.48258 }, { "year": 2025, - "value": 2.475915293856379 + "value": 1.42795 }, { "year": 2026, - "value": 2.2910527372934544 + "value": 1.32252 }, { "year": 2027, - "value": 2.10619018073053 + "value": 1.2171 }, { "year": 2028, - "value": 1.9213276241676056 + "value": 1.11167 }, { "year": 2029, - "value": 1.7364650676046813 + "value": 1.00625 }, { "year": 2030, - "value": 1.5516025110417573 + "value": 0.90083 }, { "year": 2031, - "value": 1.432600820509025 + "value": 0.82877 }, { "year": 2032, - "value": 1.3135991299762928 + "value": 0.75671 }, { "year": 2033, - "value": 1.1945974394435606 + "value": 0.68465 }, { "year": 2034, - "value": 1.0755957489108283 + "value": 0.6126 }, { "year": 2035, - "value": 0.9565940583780966 + "value": 0.54054 }, { "year": 2036, - "value": 0.8773327230164034 + "value": 0.49958 }, { "year": 2037, - "value": 0.7980713876547102 + "value": 0.45862 }, { "year": 2038, - "value": 0.718810052293017 + "value": 0.41766 }, { "year": 2039, - "value": 0.6395487169313238 + "value": 0.3767 }, { "year": 2040, - "value": 0.5602873815696308 + "value": 0.33574 }, { "year": 2041, - "value": 0.5163674619712709 + "value": 0.30672 }, { "year": 2042, - "value": 0.47244754237291103 + "value": 0.2777 }, { "year": 2043, - "value": 0.42852762277455114 + "value": 0.24868 }, { "year": 2044, - "value": 0.38460770317619125 + "value": 0.21966 }, { "year": 2045, - "value": 0.34068778357783136 + "value": 0.19064 }, { "year": 2046, - "value": 0.30455031546034383 + "value": 0.16861 }, { "year": 2047, - "value": 0.2684128473428563 + "value": 0.14658 }, { "year": 2048, - "value": 0.23227537922536876 + "value": 0.12455 }, { "year": 2049, - "value": 0.1961379111078812 + "value": 0.10252 }, { "year": 2050, - "value": 0.16000044299039362 + "value": 0.0805 } - ] + ], + "scenario name": "OECM 1.5 Degrees", + "release date": "2022", + "unit": "t CO2/Fe_ton" }, { "sector": "Steel", @@ -281,133 +287,136 @@ "projections": [ { "year": 2019, - "value": 2.9870685915231707 + "value": 2.17949 }, { "year": 2020, - "value": 2.9486311713663316 + "value": 2.06421 }, { "year": 2021, - "value": 2.911342598101551 + "value": 1.94893 }, { "year": 2022, - "value": 2.87405402483677 + "value": 1.83365 }, { "year": 2023, - "value": 2.8367654515719893 + "value": 1.71837 }, { "year": 2024, - "value": 2.7994768783072086 + "value": 1.60309 }, { "year": 2025, - "value": 2.972782901473998 + "value": 1.4878 }, { "year": 2026, - "value": 2.831475560118695 + "value": 1.35806 }, { "year": 2027, - "value": 2.690168218763392 + "value": 1.22832 }, { "year": 2028, - "value": 2.548860877408089 + "value": 1.09857 }, { "year": 2029, - "value": 2.407553536052786 + "value": 0.96883 }, { "year": 2030, - "value": 2.266246194697484 + "value": 0.83908 }, { "year": 2031, - "value": 2.1619493306345343 + "value": 0.78309 }, { "year": 2032, - "value": 2.0576524665715845 + "value": 0.7271 }, { "year": 2033, - "value": 1.9533556025086347 + "value": 0.67112 }, { "year": 2034, - "value": 1.849058738445685 + "value": 0.61513 }, { "year": 2035, - "value": 1.7447618743827347 + "value": 0.55914 }, { "year": 2036, - "value": 1.6053321610476659 + "value": 0.50792 }, { "year": 2037, - "value": 1.465902447712597 + "value": 0.4567 }, { "year": 2038, - "value": 1.3264727343775282 + "value": 0.40547 }, { "year": 2039, - "value": 1.1870430210424594 + "value": 0.35425 }, { "year": 2040, - "value": 1.0476133077073908 + "value": 0.30303 }, { "year": 2041, - "value": 0.9551204892179995 + "value": 0.27981 }, { "year": 2042, - "value": 0.8626276707286082 + "value": 0.25658 }, { "year": 2043, - "value": 0.770134852239217 + "value": 0.23336 }, { "year": 2044, - "value": 0.6776420337498257 + "value": 0.21014 }, { "year": 2045, - "value": 0.5851492152604343 + "value": 0.18692 }, { "year": 2046, - "value": 0.5001218018675508 + "value": 0.16677 }, { "year": 2047, - "value": 0.41509438847466734 + "value": 0.14663 }, { "year": 2048, - "value": 0.33006697508178384 + "value": 0.12649 }, { "year": 2049, - "value": 0.24503956168890034 + "value": 0.10635 }, { "year": 2050, - "value": 0.1600121482960168 + "value": 0.08621 } - ] + ], + "scenario name": "OECM 1.5 Degrees", + "release date": "2022", + "unit": "t CO2/Fe_ton" }, { "sector": "Electricity Utilities", @@ -416,133 +425,136 @@ "projections": [ { "year": 2019, - "value": 0.6075603731304943 + "value": 0.549446439 }, { "year": 2020, - "value": 0.45274433529466107 + "value": 0.508178139 }, { "year": 2021, - "value": 0.41508425410495076 + "value": 0.466909838 }, { "year": 2022, - "value": 0.37742417291524044 + "value": 0.425641538 }, { "year": 2023, - "value": 0.3397640917255301 + "value": 0.384373237 }, { "year": 2024, - "value": 0.3021040105358198 + "value": 0.343104937 }, { "year": 2025, - "value": 0.26444392934610944 + "value": 0.301836636 }, { "year": 2026, - "value": 0.23622922761637988 + "value": 0.268545127 }, { "year": 2027, - "value": 0.20801452588665031 + "value": 0.235253618 }, { "year": 2028, - "value": 0.17979982415692075 + "value": 0.201962108 }, { "year": 2029, - "value": 0.1515851224271912 + "value": 0.168670599 }, { "year": 2030, - "value": 0.12337042069746158 + "value": 0.13537909 }, { "year": 2031, - "value": 0.10876688805755423 + "value": 0.118213796 }, { "year": 2032, - "value": 0.09416335541764688 + "value": 0.101048502 }, { "year": 2033, - "value": 0.07955982277773953 + "value": 0.083883208 }, { "year": 2034, - "value": 0.06495629013783218 + "value": 0.066717915 }, { "year": 2035, - "value": 0.05035275749792479 + "value": 0.049552621 }, { "year": 2036, - "value": 0.04437091407361017 + "value": 0.044269585 }, { "year": 2037, - "value": 0.03838907064929556 + "value": 0.038986549 }, { "year": 2038, - "value": 0.03240722722498095 + "value": 0.033703513 }, { "year": 2039, - "value": 0.026425383800666332 + "value": 0.028420476 }, { "year": 2040, - "value": 0.020443540376351713 + "value": 0.02313744 }, { "year": 2041, - "value": 0.01831849355545248 + "value": 0.019999508 }, { "year": 2042, - "value": 0.01619344673455325 + "value": 0.016861576 }, { "year": 2043, - "value": 0.014068399913654016 + "value": 0.013723644 }, { "year": 2044, - "value": 0.011943353092754783 + "value": 0.010585712 }, { "year": 2045, - "value": 0.009818306271855556 + "value": 0.00744778 }, { "year": 2046, - "value": 0.008652674634510546 + "value": 0.005958224 }, { "year": 2047, - "value": 0.007487042997165536 + "value": 0.004468668 }, { "year": 2048, - "value": 0.0063214113598205265 + "value": 0.002979112 }, { "year": 2049, - "value": 0.005155779722475517 + "value": 0.001489556 }, { "year": 2050, - "value": 0.0039901480851305075 + "value": 5.68543e-11 } - ] + ], + "scenario name": "OECM 1.5 Degrees", + "release date": "2022", + "unit": "t CO2/MWh" }, { "sector": "Electricity Utilities", @@ -551,133 +563,136 @@ "projections": [ { "year": 2019, - "value": 0.35881498057849487 + "value": 0.279376499 }, { "year": 2020, - "value": 0.2865468233079732 + "value": 0.260987459 }, { "year": 2021, - "value": 0.2607557025877874 + "value": 0.242598419 }, { "year": 2022, - "value": 0.2349645818676016 + "value": 0.22420938 }, { "year": 2023, - "value": 0.2091734611474158 + "value": 0.20582034 }, { "year": 2024, - "value": 0.18338234042723 + "value": 0.1874313 }, { "year": 2025, - "value": 0.15759121970704418 + "value": 0.169042261 }, { "year": 2026, - "value": 0.14282943407381637 + "value": 0.15036296 }, { "year": 2027, - "value": 0.12806764844058857 + "value": 0.131683659 }, { "year": 2028, - "value": 0.11330586280736078 + "value": 0.113004358 }, { "year": 2029, - "value": 0.098544077174133 + "value": 0.094325057 }, { "year": 2030, - "value": 0.0837822915409052 + "value": 0.075645756 }, { "year": 2031, - "value": 0.07746160146599985 + "value": 0.069660716 }, { "year": 2032, - "value": 0.0711409113910945 + "value": 0.063675676 }, { "year": 2033, - "value": 0.06482022131618916 + "value": 0.057690636 }, { "year": 2034, - "value": 0.05849953124128381 + "value": 0.051705596 }, { "year": 2035, - "value": 0.052178841166378484 + "value": 0.045720556 }, { "year": 2036, - "value": 0.04684755406645104 + "value": 0.040642474 }, { "year": 2037, - "value": 0.04151626696652359 + "value": 0.035564393 }, { "year": 2038, - "value": 0.03618497986659615 + "value": 0.030486311 }, { "year": 2039, - "value": 0.0308536927666687 + "value": 0.025408229 }, { "year": 2040, - "value": 0.02552240566674124 + "value": 0.020330148 }, { "year": 2041, - "value": 0.02274307056582293 + "value": 0.01762698 }, { "year": 2042, - "value": 0.01996373546490462 + "value": 0.014923813 }, { "year": 2043, - "value": 0.017184400363986312 + "value": 0.012220645 }, { "year": 2044, - "value": 0.014405065263068003 + "value": 0.009517478 }, { "year": 2045, - "value": 0.011625730162149695 + "value": 0.00681431 }, { "year": 2046, - "value": 0.01038065721709401 + "value": 0.005451448 }, { "year": 2047, - "value": 0.009135584272038323 + "value": 0.004088586 }, { "year": 2048, - "value": 0.007890511326982637 + "value": 0.002725724 }, { "year": 2049, - "value": 0.00664543838192695 + "value": 0.001362862 }, { "year": 2050, - "value": 0.005400365436871264 + "value": 0.0 } - ] + ], + "scenario name": "OECM 1.5 Degrees", + "release date": "2022", + "unit": "t CO2/MWh" }, { "sector": "Electricity Utilities", @@ -686,136 +701,553 @@ "projections": [ { "year": 2019, - "value": 0.4125934987501587 + "value": 0.391933029 }, { "year": 2020, - "value": 0.38454300118653756 + "value": 0.357991045 }, { "year": 2021, - "value": 0.3374576897313128 + "value": 0.32404906 }, { "year": 2022, - "value": 0.29037237827608803 + "value": 0.290107076 }, { "year": 2023, - "value": 0.24328706682086326 + "value": 0.256165092 }, { "year": 2024, - "value": 0.1962017553656385 + "value": 0.222223107 }, { "year": 2025, - "value": 0.1923140908240688 + "value": 0.188281123 }, { "year": 2026, - "value": 0.16704492796205822 + "value": 0.156790155 }, { "year": 2027, - "value": 0.14177576510004763 + "value": 0.125299187 }, { "year": 2028, - "value": 0.11650660223803705 + "value": 0.093808219 }, { "year": 2029, - "value": 0.09123743937602646 + "value": 0.062317251 }, { "year": 2030, - "value": 0.06596827651401585 + "value": 0.030826283 }, { "year": 2031, - "value": 0.06014607184262098 + "value": 0.030429887 }, { "year": 2032, - "value": 0.054323867171226115 + "value": 0.03003349 }, { "year": 2033, - "value": 0.04850166249983125 + "value": 0.029637093 }, { "year": 2034, - "value": 0.04267945782843638 + "value": 0.029240696 }, { "year": 2035, - "value": 0.036857253157041525 + "value": 0.028844299 }, { "year": 2036, - "value": 0.0339296363678427 + "value": 0.025089538 }, { "year": 2037, - "value": 0.031002019578643875 + "value": 0.021334777 }, { "year": 2038, - "value": 0.02807440278944505 + "value": 0.017580016 }, { "year": 2039, - "value": 0.025146786000246224 + "value": 0.013825254 }, { "year": 2040, - "value": 0.0222191692110474 + "value": 0.010070493 }, { "year": 2041, - "value": 0.018843767894743155 + "value": 0.009471948 }, { "year": 2042, - "value": 0.015468366578438914 + "value": 0.008873403 }, { "year": 2043, - "value": 0.012092965262134672 + "value": 0.008274858 }, { "year": 2044, - "value": 0.00871756394583043 + "value": 0.007676312 }, { "year": 2045, - "value": 0.005342162629526188 + "value": 0.007077767 }, { "year": 2046, - "value": 0.005298989223589939 + "value": 0.006827571 }, { "year": 2047, - "value": 0.005255815817653689 + "value": 0.006577374 }, { "year": 2048, - "value": 0.00521264241171744 + "value": 0.006327178 }, { "year": 2049, - "value": 0.00516946900578119 + "value": 0.006076982 }, { "year": 2050, - "value": 0.005126295599844942 + "value": 0.005826786 } - ] + ], + "scenario name": "OECM 1.5 Degrees", + "release date": "2022", + "unit": "t CO2/MWh" + }, + { + "sector": "Oil & Gas", + "region": "Global", + "benchmark_metric": { "units": "t CO2/GJ" }, + "projections": [ + { + "year": 2019, + "value": 0.067499781 + }, + { + "year": 2020, + "value": 0.065283078 + }, + { + "year": 2021, + "value": 0.063066374 + }, + { + "year": 2022, + "value": 0.060849671 + }, + { + "year": 2023, + "value": 0.058632967 + }, + { + "year": 2024, + "value": 0.056416264 + }, + { + "year": 2025, + "value": 0.05419956 + }, + { + "year": 2026, + "value": 0.051014542 + }, + { + "year": 2027, + "value": 0.047829524 + }, + { + "year": 2028, + "value": 0.044644506 + }, + { + "year": 2029, + "value": 0.041459488 + }, + { + "year": 2030, + "value": 0.03827447 + }, + { + "year": 2031, + "value": 0.035162476 + }, + { + "year": 2032, + "value": 0.032050481 + }, + { + "year": 2033, + "value": 0.028938486 + }, + { + "year": 2034, + "value": 0.025826491 + }, + { + "year": 2035, + "value": 0.022714497 + }, + { + "year": 2036, + "value": 0.020732108 + }, + { + "year": 2037, + "value": 0.01874972 + }, + { + "year": 2038, + "value": 0.016767332 + }, + { + "year": 2039, + "value": 0.014784943 + }, + { + "year": 2040, + "value": 0.012802555 + }, + { + "year": 2041, + "value": 0.010482854 + }, + { + "year": 2042, + "value": 0.008163152 + }, + { + "year": 2043, + "value": 0.00584345 + }, + { + "year": 2044, + "value": 0.003523749 + }, + { + "year": 2045, + "value": 0.001204047 + }, + { + "year": 2046, + "value": 0.001292647 + }, + { + "year": 2047, + "value": 0.001381246 + }, + { + "year": 2048, + "value": 0.001469845 + }, + { + "year": 2049, + "value": 0.001558445 + }, + { + "year": 2050, + "value": 0.001647044 + } + ], + "scenario name": "OECM 1.5 Degrees", + "release date": "2022", + "unit": "t CO2/GJ" + }, + { + "sector": "Oil & Gas", + "region": "Europe", + "benchmark_metric": { "units": "t CO2/GJ" }, + "projections": [ + { + "year": 2019, + "value": 0.058258922 + }, + { + "year": 2020, + "value": 0.056018155 + }, + { + "year": 2021, + "value": 0.053777388 + }, + { + "year": 2022, + "value": 0.051536621 + }, + { + "year": 2023, + "value": 0.049295854 + }, + { + "year": 2024, + "value": 0.047055087 + }, + { + "year": 2025, + "value": 0.044814319 + }, + { + "year": 2026, + "value": 0.04203088 + }, + { + "year": 2027, + "value": 0.039247441 + }, + { + "year": 2028, + "value": 0.036464002 + }, + { + "year": 2029, + "value": 0.033680563 + }, + { + "year": 2030, + "value": 0.030897124 + }, + { + "year": 2031, + "value": 0.029265309 + }, + { + "year": 2032, + "value": 0.027633494 + }, + { + "year": 2033, + "value": 0.02600168 + }, + { + "year": 2034, + "value": 0.024369865 + }, + { + "year": 2035, + "value": 0.02273805 + }, + { + "year": 2036, + "value": 0.021419078 + }, + { + "year": 2037, + "value": 0.020100105 + }, + { + "year": 2038, + "value": 0.018781133 + }, + { + "year": 2039, + "value": 0.01746216 + }, + { + "year": 2040, + "value": 0.016143188 + }, + { + "year": 2041, + "value": 0.013102266 + }, + { + "year": 2042, + "value": 0.010061345 + }, + { + "year": 2043, + "value": 0.007020424 + }, + { + "year": 2044, + "value": 0.003979503 + }, + { + "year": 2045, + "value": 0.000938582 + }, + { + "year": 2046, + "value": 0.000986486 + }, + { + "year": 2047, + "value": 0.001034391 + }, + { + "year": 2048, + "value": 0.001082296 + }, + { + "year": 2049, + "value": 0.001130201 + }, + { + "year": 2050, + "value": 0.001178105 + } + ], + "scenario name": "OECM 1.5 Degrees", + "release date": "2022", + "unit": "t CO2/GJ" + }, + { + "sector": "Oil & Gas", + "region": "North America", + "benchmark_metric": { "units": "t CO2/GJ" }, + "projections": [ + { + "year": 2019, + "value": 0.063525421 + }, + { + "year": 2020, + "value": 0.061161647 + }, + { + "year": 2021, + "value": 0.058797873 + }, + { + "year": 2022, + "value": 0.056434099 + }, + { + "year": 2023, + "value": 0.054070325 + }, + { + "year": 2024, + "value": 0.051706551 + }, + { + "year": 2025, + "value": 0.049342777 + }, + { + "year": 2026, + "value": 0.044716885 + }, + { + "year": 2027, + "value": 0.040090992 + }, + { + "year": 2028, + "value": 0.0354651 + }, + { + "year": 2029, + "value": 0.030839208 + }, + { + "year": 2030, + "value": 0.026213316 + }, + { + "year": 2031, + "value": 0.025037755 + }, + { + "year": 2032, + "value": 0.023862195 + }, + { + "year": 2033, + "value": 0.022686634 + }, + { + "year": 2034, + "value": 0.021511074 + }, + { + "year": 2035, + "value": 0.020335514 + }, + { + "year": 2036, + "value": 0.018877442 + }, + { + "year": 2037, + "value": 0.017419369 + }, + { + "year": 2038, + "value": 0.015961297 + }, + { + "year": 2039, + "value": 0.014503225 + }, + { + "year": 2040, + "value": 0.013045153 + }, + { + "year": 2041, + "value": 0.010810144 + }, + { + "year": 2042, + "value": 0.008575135 + }, + { + "year": 2043, + "value": 0.006340127 + }, + { + "year": 2044, + "value": 0.004105118 + }, + { + "year": 2045, + "value": 0.001870109 + }, + { + "year": 2046, + "value": 0.003106899 + }, + { + "year": 2047, + "value": 0.004343689 + }, + { + "year": 2048, + "value": 0.005580478 + }, + { + "year": 2049, + "value": 0.006817268 + }, + { + "year": 2050, + "value": 0.008054058 + } + ], + "scenario name": "OECM 1.5 Degrees", + "release date": "2022", + "unit": "t CO2/GJ" } ] }, "S3": null, "S1S2S3": null -} +} \ No newline at end of file diff --git a/examples/data/json-units/benchmark_production_OECM.json b/examples/data/json-units/benchmark_production_OECM.json index 2b3c7061..2e50612f 100644 --- a/examples/data/json-units/benchmark_production_OECM.json +++ b/examples/data/json-units/benchmark_production_OECM.json @@ -12,129 +12,132 @@ }, { "year": 2020, - "value": 0.015 + "value": 0.00306 }, { "year": 2021, - "value": 0.015 + "value": 0.00306 }, { "year": 2022, - "value": 0.015 + "value": 0.00306 }, { "year": 2023, - "value": 0.015 + "value": 0.00306 }, { "year": 2024, - "value": 0.015 + "value": 0.00306 }, { "year": 2025, - "value": 0.015 + "value": 0.00306 }, { "year": 2026, - "value": 0.015 + "value": 0.01172 }, { "year": 2027, - "value": 0.015 + "value": 0.01172 }, { "year": 2028, - "value": 0.015 + "value": 0.01172 }, { "year": 2029, - "value": 0.015 + "value": 0.01172 }, { "year": 2030, - "value": 0.015 + "value": 0.01172 }, { "year": 2031, - "value": 0.015 + "value": 0.01362 }, { "year": 2032, - "value": 0.015 + "value": 0.01362 }, { "year": 2033, - "value": 0.015 + "value": 0.01362 }, { "year": 2034, - "value": 0.015 + "value": 0.01362 }, { "year": 2035, - "value": 0.015 + "value": 0.01362 }, { "year": 2036, - "value": 0.015 + "value": 0.01362 }, { "year": 2037, - "value": 0.015 + "value": 0.01362 }, { "year": 2038, - "value": 0.015 + "value": 0.01362 }, { "year": 2039, - "value": 0.015 + "value": 0.01362 }, { "year": 2040, - "value": 0.015 + "value": 0.01362 }, { "year": 2041, - "value": 0.015 + "value": 0.01551 }, { "year": 2042, - "value": 0.015 + "value": 0.01551 }, { "year": 2043, - "value": 0.015 + "value": 0.01551 }, { "year": 2044, - "value": 0.015 + "value": 0.01551 }, { "year": 2045, - "value": 0.015 + "value": 0.01551 }, { "year": 2046, - "value": 0.015 + "value": 0.01551 }, { "year": 2047, - "value": 0.015 + "value": 0.01551 }, { "year": 2048, - "value": 0.015 + "value": 0.01551 }, { "year": 2049, - "value": 0.015 + "value": 0.01551 }, { "year": 2050, - "value": 0.015 + "value": 0.01551 } - ] + ], + "scenario name": "OECM 1.5 Degrees", + "release date": "2022.0", + "unit": "dimensionless" }, { "sector": "Steel", @@ -147,129 +150,132 @@ }, { "year": 2020, - "value": 0.015 + "value": 0.00901 }, { "year": 2021, - "value": 0.015 + "value": 0.00901 }, { "year": 2022, - "value": 0.015 + "value": 0.00901 }, { "year": 2023, - "value": 0.015 + "value": 0.00901 }, { "year": 2024, - "value": 0.015 + "value": 0.00901 }, { "year": 2025, - "value": 0.015 + "value": 0.00901 }, { "year": 2026, - "value": 0.015 + "value": 0.0111 }, { "year": 2027, - "value": 0.015 + "value": 0.0111 }, { "year": 2028, - "value": 0.015 + "value": 0.0111 }, { "year": 2029, - "value": 0.015 + "value": 0.0111 }, { "year": 2030, - "value": 0.015 + "value": 0.0111 }, { "year": 2031, - "value": 0.015 + "value": 0.01367 }, { "year": 2032, - "value": 0.015 + "value": 0.01367 }, { "year": 2033, - "value": 0.015 + "value": 0.01367 }, { "year": 2034, - "value": 0.015 + "value": 0.01367 }, { "year": 2035, - "value": 0.015 + "value": 0.01367 }, { "year": 2036, - "value": 0.015 + "value": 0.01353 }, { "year": 2037, - "value": 0.015 + "value": 0.01353 }, { "year": 2038, - "value": 0.015 + "value": 0.01353 }, { "year": 2039, - "value": 0.015 + "value": 0.01353 }, { "year": 2040, - "value": 0.015 + "value": 0.01353 }, { "year": 2041, - "value": 0.015 + "value": 0.0154 }, { "year": 2042, - "value": 0.015 + "value": 0.0154 }, { "year": 2043, - "value": 0.015 + "value": 0.0154 }, { "year": 2044, - "value": 0.015 + "value": 0.0154 }, { "year": 2045, - "value": 0.015 + "value": 0.0154 }, { "year": 2046, - "value": 0.015 + "value": 0.01556 }, { "year": 2047, - "value": 0.015 + "value": 0.01556 }, { "year": 2048, - "value": 0.015 + "value": 0.01556 }, { "year": 2049, - "value": 0.015 + "value": 0.01556 }, { "year": 2050, - "value": 0.015 + "value": 0.01556 } - ] + ], + "scenario name": "OECM 1.5 Degrees", + "release date": "2022.0", + "unit": "dimensionless" }, { "sector": "Steel", @@ -282,129 +288,132 @@ }, { "year": 2020, - "value": 0.015 + "value": 0.00837 }, { "year": 2021, - "value": 0.015 + "value": 0.00837 }, { "year": 2022, - "value": 0.015 + "value": 0.00837 }, { "year": 2023, - "value": 0.015 + "value": 0.00837 }, { "year": 2024, - "value": 0.015 + "value": 0.00837 }, { "year": 2025, - "value": 0.015 + "value": 0.00837 }, { "year": 2026, - "value": 0.015 + "value": 0.01191 }, { "year": 2027, - "value": 0.015 + "value": 0.01191 }, { "year": 2028, - "value": 0.015 + "value": 0.01191 }, { "year": 2029, - "value": 0.015 + "value": 0.01191 }, { "year": 2030, - "value": 0.015 + "value": 0.01191 }, { "year": 2031, - "value": 0.015 + "value": 0.01343 }, { "year": 2032, - "value": 0.015 + "value": 0.01343 }, { "year": 2033, - "value": 0.015 + "value": 0.01343 }, { "year": 2034, - "value": 0.015 + "value": 0.01343 }, { "year": 2035, - "value": 0.015 + "value": 0.01343 }, { "year": 2036, - "value": 0.015 + "value": 0.01258 }, { "year": 2037, - "value": 0.015 + "value": 0.01258 }, { "year": 2038, - "value": 0.015 + "value": 0.01258 }, { "year": 2039, - "value": 0.015 + "value": 0.01258 }, { "year": 2040, - "value": 0.015 + "value": 0.01258 }, { "year": 2041, - "value": 0.015 + "value": 0.01566 }, { "year": 2042, - "value": 0.015 + "value": 0.01566 }, { "year": 2043, - "value": 0.015 + "value": 0.01566 }, { "year": 2044, - "value": 0.015 + "value": 0.01566 }, { "year": 2045, - "value": 0.015 + "value": 0.01566 }, { "year": 2046, - "value": 0.015 + "value": 0.01628 }, { "year": 2047, - "value": 0.015 + "value": 0.01628 }, { "year": 2048, - "value": 0.015 + "value": 0.01628 }, { "year": 2049, - "value": 0.015 + "value": 0.01628 }, { "year": 2050, - "value": 0.015 + "value": 0.01628 } - ] + ], + "scenario name": "OECM 1.5 Degrees", + "release date": "2022.0", + "unit": "dimensionless" }, { "sector": "Electricity Utilities", @@ -417,129 +426,132 @@ }, { "year": 2020, - "value": -0.07639854475324115 + "value": 0.020253368 }, { "year": 2021, - "value": 0.059958359610187584 + "value": 0.020253368 }, { "year": 2022, - "value": 0.059958359610187584 + "value": 0.020253368 }, { "year": 2023, - "value": 0.059958359610187584 + "value": 0.020253368 }, { "year": 2024, - "value": 0.059958359610187584 + "value": 0.020253368 }, { "year": 2025, - "value": 0.059958359610187584 + "value": 0.020253368 }, { "year": 2026, - "value": 0.048590152054553304 + "value": 0.04702743 }, { "year": 2027, - "value": 0.048590152054553304 + "value": 0.04702743 }, { "year": 2028, - "value": 0.048590152054553304 + "value": 0.04702743 }, { "year": 2029, - "value": 0.048590152054553304 + "value": 0.04702743 }, { "year": 2030, - "value": 0.048590152054553304 + "value": 0.04702743 }, { "year": 2031, - "value": 0.04614330338817174 + "value": 0.083327304 }, { "year": 2032, - "value": 0.04614330338817174 + "value": 0.083327304 }, { "year": 2033, - "value": 0.04614330338817174 + "value": 0.083327304 }, { "year": 2034, - "value": 0.04614330338817174 + "value": 0.083327304 }, { "year": 2035, - "value": 0.04614330338817174 + "value": 0.083327304 }, { "year": 2036, - "value": 0.04009235517269438 + "value": 0.034051559 }, { "year": 2037, - "value": 0.04009235517269438 + "value": 0.034051559 }, { "year": 2038, - "value": 0.04009235517269438 + "value": 0.034051559 }, { "year": 2039, - "value": 0.04009235517269438 + "value": 0.034051559 }, { "year": 2040, - "value": 0.04009235517269438 + "value": 0.034051559 }, { "year": 2041, - "value": 0.025847885659444403 + "value": 0.019033826 }, { "year": 2042, - "value": 0.025847885659444403 + "value": 0.019033826 }, { "year": 2043, - "value": 0.025847885659444403 + "value": 0.019033826 }, { "year": 2044, - "value": 0.025847885659444403 + "value": 0.019033826 }, { "year": 2045, - "value": 0.025847885659444403 + "value": 0.019033826 }, { "year": 2046, - "value": 0.011912758443362925 + "value": 0.013946165 }, { "year": 2047, - "value": 0.011912758443362925 + "value": 0.013946165 }, { "year": 2048, - "value": 0.011912758443362925 + "value": 0.013946165 }, { "year": 2049, - "value": 0.011912758443362925 + "value": 0.013946165 }, { "year": 2050, - "value": 0.011912758443362925 + "value": 0.013946165 } - ] + ], + "scenario name": "OECM 1.5 Degrees", + "release date": "2022.0", + "unit": "dimensionless" }, { "sector": "Electricity Utilities", @@ -552,129 +564,132 @@ }, { "year": 2020, - "value": -0.076445097814138 + "value": 0.030672987 }, { "year": 2021, - "value": 0.02580132761805909 + "value": 0.030672987 }, { "year": 2022, - "value": 0.02580132761805909 + "value": 0.030672987 }, { "year": 2023, - "value": 0.02580132761805909 + "value": 0.030672987 }, { "year": 2024, - "value": 0.02580132761805909 + "value": 0.030672987 }, { "year": 2025, - "value": 0.02580132761805909 + "value": 0.030672987 }, { "year": 2026, - "value": 0.04002127380628884 + "value": 0.040538319 }, { "year": 2027, - "value": 0.04002127380628884 + "value": 0.040538319 }, { "year": 2028, - "value": 0.04002127380628884 + "value": 0.040538319 }, { "year": 2029, - "value": 0.04002127380628884 + "value": 0.040538319 }, { "year": 2030, - "value": 0.04002127380628884 + "value": 0.040538319 }, { "year": 2031, - "value": 0.03693828379327191 + "value": 0.02309825 }, { "year": 2032, - "value": 0.03693828379327191 + "value": 0.02309825 }, { "year": 2033, - "value": 0.03693828379327191 + "value": 0.02309825 }, { "year": 2034, - "value": 0.03693828379327191 + "value": 0.02309825 }, { "year": 2035, - "value": 0.03693828379327191 + "value": 0.02309825 }, { "year": 2036, - "value": 0.018701956793973018 + "value": 0.010283743 }, { "year": 2037, - "value": 0.018701956793973018 + "value": 0.010283743 }, { "year": 2038, - "value": 0.018701956793973018 + "value": 0.010283743 }, { "year": 2039, - "value": 0.018701956793973018 + "value": 0.010283743 }, { "year": 2040, - "value": 0.018701956793973018 + "value": 0.010283743 }, { "year": 2041, - "value": 0.012045554009002979 + "value": 0.003964958 }, { "year": 2042, - "value": 0.012045554009002979 + "value": 0.003964958 }, { "year": 2043, - "value": 0.012045554009002979 + "value": 0.003964958 }, { "year": 2044, - "value": 0.012045554009002979 + "value": 0.003964958 }, { "year": 2045, - "value": 0.012045554009002979 + "value": 0.003964958 }, { "year": 2046, - "value": 0.0063601028128394965 + "value": -0.001126898 }, { "year": 2047, - "value": 0.0063601028128394965 + "value": -0.001126898 }, { "year": 2048, - "value": 0.0063601028128394965 + "value": -0.001126898 }, { "year": 2049, - "value": 0.0063601028128394965 + "value": -0.001126898 }, { "year": 2050, - "value": 0.0063601028128394965 + "value": -0.001126898 } - ] + ], + "scenario name": "OECM 1.5 Degrees", + "release date": "2022.0", + "unit": "dimensionless" }, { "sector": "Electricity Utilities", @@ -687,132 +702,549 @@ }, { "year": 2020, - "value": -0.07581010331041782 + "value": 0.026831797 }, { "year": 2021, - "value": 0.01981319064399467 + "value": 0.026831797 }, { "year": 2022, - "value": 0.01981319064399467 + "value": 0.026831797 }, { "year": 2023, - "value": 0.01981319064399467 + "value": 0.026831797 }, { "year": 2024, - "value": 0.01981319064399467 + "value": 0.026831797 }, { "year": 2025, - "value": 0.01981319064399467 + "value": 0.026831797 }, { "year": 2026, - "value": 0.0318777412680078 + "value": 0.069699646 }, { "year": 2027, - "value": 0.0318777412680078 + "value": 0.069699646 }, { "year": 2028, - "value": 0.0318777412680078 + "value": 0.069699646 }, { "year": 2029, - "value": 0.0318777412680078 + "value": 0.069699646 }, { "year": 2030, - "value": 0.0318777412680078 + "value": 0.069699646 }, { "year": 2031, - "value": 0.021494276219452768 + "value": 0.037361551 }, { "year": 2032, - "value": 0.021494276219452768 + "value": 0.037361551 }, { "year": 2033, - "value": 0.021494276219452768 + "value": 0.037361551 }, { "year": 2034, - "value": 0.021494276219452768 + "value": 0.037361551 }, { "year": 2035, - "value": 0.021494276219452768 + "value": 0.037361551 }, { "year": 2036, - "value": 0.03420717440226384 + "value": 0.010522868 }, { "year": 2037, - "value": 0.03420717440226384 + "value": 0.010522868 }, { "year": 2038, - "value": 0.03420717440226384 + "value": 0.010522868 }, { "year": 2039, - "value": 0.03420717440226384 + "value": 0.010522868 }, { "year": 2040, - "value": 0.03420717440226384 + "value": 0.010522868 }, { "year": 2041, - "value": 0.014292979405873707 + "value": 0.006862947 }, { "year": 2042, - "value": 0.014292979405873707 + "value": 0.006862947 }, { "year": 2043, - "value": 0.014292979405873707 + "value": 0.006862947 }, { "year": 2044, - "value": 0.014292979405873707 + "value": 0.006862947 }, { "year": 2045, - "value": 0.014292979405873707 + "value": 0.006862947 }, { "year": 2046, - "value": 0.0032269880188280364 + "value": 0.000424306 }, { "year": 2047, - "value": 0.0032269880188280364 + "value": 0.000424306 }, { "year": 2048, - "value": 0.0032269880188280364 + "value": 0.000424306 }, { "year": 2049, - "value": 0.0032269880188280364 + "value": 0.000424306 }, { "year": 2050, - "value": 0.0032269880188280364 + "value": 0.000424306 } - ] + ], + "scenario name": "OECM 1.5 Degrees", + "release date": "2022.0", + "unit": "dimensionless" + }, + { + "sector": "Oil & Gas", + "region": "Global", + "benchmark_metric": { "units": "dimensionless" }, + "projections": [ + { + "year": 2019, + "value": 0.0 + }, + { + "year": 2020, + "value": -0.009355832 + }, + { + "year": 2021, + "value": -0.009355832 + }, + { + "year": 2022, + "value": -0.009355832 + }, + { + "year": 2023, + "value": -0.009355832 + }, + { + "year": 2024, + "value": -0.009355832 + }, + { + "year": 2025, + "value": -0.009355832 + }, + { + "year": 2026, + "value": -0.008650172 + }, + { + "year": 2027, + "value": -0.008650172 + }, + { + "year": 2028, + "value": -0.008650172 + }, + { + "year": 2029, + "value": -0.008650172 + }, + { + "year": 2030, + "value": -0.008650172 + }, + { + "year": 2031, + "value": -0.009820943 + }, + { + "year": 2032, + "value": -0.009820943 + }, + { + "year": 2033, + "value": -0.009820943 + }, + { + "year": 2034, + "value": -0.009820943 + }, + { + "year": 2035, + "value": -0.009820943 + }, + { + "year": 2036, + "value": -0.005714474 + }, + { + "year": 2037, + "value": -0.005714474 + }, + { + "year": 2038, + "value": -0.005714474 + }, + { + "year": 2039, + "value": -0.005714474 + }, + { + "year": 2040, + "value": -0.005714474 + }, + { + "year": 2041, + "value": -0.004879574 + }, + { + "year": 2042, + "value": -0.004879574 + }, + { + "year": 2043, + "value": -0.004879574 + }, + { + "year": 2044, + "value": -0.004879574 + }, + { + "year": 2045, + "value": -0.004879574 + }, + { + "year": 2046, + "value": 0.001837867 + }, + { + "year": 2047, + "value": 0.001837867 + }, + { + "year": 2048, + "value": 0.001837867 + }, + { + "year": 2049, + "value": 0.001837867 + }, + { + "year": 2050, + "value": 0.001837867 + } + ], + "scenario name": "OECM 1.5 Degrees", + "release date": "2022.0", + "unit": "dimensionless" + }, + { + "sector": "Oil & Gas", + "region": "Europe", + "benchmark_metric": { "units": "dimensionless" }, + "projections": [ + { + "year": 2019, + "value": 0.0 + }, + { + "year": 2020, + "value": -0.020944249 + }, + { + "year": 2021, + "value": -0.020944249 + }, + { + "year": 2022, + "value": -0.020944249 + }, + { + "year": 2023, + "value": -0.020944249 + }, + { + "year": 2024, + "value": -0.020944249 + }, + { + "year": 2025, + "value": -0.020944249 + }, + { + "year": 2026, + "value": -0.038831658 + }, + { + "year": 2027, + "value": -0.038831658 + }, + { + "year": 2028, + "value": -0.038831658 + }, + { + "year": 2029, + "value": -0.038831658 + }, + { + "year": 2030, + "value": -0.038831658 + }, + { + "year": 2031, + "value": -0.032223634 + }, + { + "year": 2032, + "value": -0.032223634 + }, + { + "year": 2033, + "value": -0.032223634 + }, + { + "year": 2034, + "value": -0.032223634 + }, + { + "year": 2035, + "value": -0.032223634 + }, + { + "year": 2036, + "value": -0.02270247 + }, + { + "year": 2037, + "value": -0.02270247 + }, + { + "year": 2038, + "value": -0.02270247 + }, + { + "year": 2039, + "value": -0.02270247 + }, + { + "year": 2040, + "value": -0.02270247 + }, + { + "year": 2041, + "value": -0.019391367 + }, + { + "year": 2042, + "value": -0.019391367 + }, + { + "year": 2043, + "value": -0.019391367 + }, + { + "year": 2044, + "value": -0.019391367 + }, + { + "year": 2045, + "value": -0.019391367 + }, + { + "year": 2046, + "value": -0.005876127 + }, + { + "year": 2047, + "value": -0.005876127 + }, + { + "year": 2048, + "value": -0.005876127 + }, + { + "year": 2049, + "value": -0.005876127 + }, + { + "year": 2050, + "value": -0.005876127 + } + ], + "scenario name": "OECM 1.5 Degrees", + "release date": "2022.0", + "unit": "dimensionless" + }, + { + "sector": "Oil & Gas", + "region": "North America", + "benchmark_metric": { "units": "dimensionless" }, + "projections": [ + { + "year": 2019, + "value": 0.0 + }, + { + "year": 2020, + "value": -0.025277484 + }, + { + "year": 2021, + "value": -0.025277484 + }, + { + "year": 2022, + "value": -0.025277484 + }, + { + "year": 2023, + "value": -0.025277484 + }, + { + "year": 2024, + "value": -0.025277484 + }, + { + "year": 2025, + "value": -0.025277484 + }, + { + "year": 2026, + "value": -0.045534375 + }, + { + "year": 2027, + "value": -0.045534375 + }, + { + "year": 2028, + "value": -0.045534375 + }, + { + "year": 2029, + "value": -0.045534375 + }, + { + "year": 2030, + "value": -0.045534375 + }, + { + "year": 2031, + "value": -0.017665429 + }, + { + "year": 2032, + "value": -0.017665429 + }, + { + "year": 2033, + "value": -0.017665429 + }, + { + "year": 2034, + "value": -0.017665429 + }, + { + "year": 2035, + "value": -0.017665429 + }, + { + "year": 2036, + "value": -0.015599524 + }, + { + "year": 2037, + "value": -0.015599524 + }, + { + "year": 2038, + "value": -0.015599524 + }, + { + "year": 2039, + "value": -0.015599524 + }, + { + "year": 2040, + "value": -0.015599524 + }, + { + "year": 2041, + "value": -0.004412832 + }, + { + "year": 2042, + "value": -0.004412832 + }, + { + "year": 2043, + "value": -0.004412832 + }, + { + "year": 2044, + "value": -0.004412832 + }, + { + "year": 2045, + "value": -0.004412832 + }, + { + "year": 2046, + "value": -0.007848747 + }, + { + "year": 2047, + "value": -0.007848747 + }, + { + "year": 2048, + "value": -0.007848747 + }, + { + "year": 2049, + "value": -0.007848747 + }, + { + "year": 2050, + "value": -0.007848747 + } + ], + "scenario name": "OECM 1.5 Degrees", + "release date": "2022.0", + "unit": "dimensionless" } ] }, "S3": null, "S1S2S3": null -} +} \ No newline at end of file From a56d2b94352538ef670ac0a03ac2b913425a2876 Mon Sep 17 00:00:00 2001 From: David Kroon <35101727+dp90@users.noreply.github.com> Date: Sun, 17 Jul 2022 19:52:00 +0200 Subject: [PATCH 272/345] Add GH workflow for autopublish on push to main Signed-off-by: David Kroon <35101727+dp90@users.noreply.github.com> Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- .github/workflows/publish-to-test-pypi.yml | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 .github/workflows/publish-to-test-pypi.yml diff --git a/.github/workflows/publish-to-test-pypi.yml b/.github/workflows/publish-to-test-pypi.yml new file mode 100644 index 00000000..e69de29b From e3ea033d8c48bcd2acf6fe0bf3165d8089970867 Mon Sep 17 00:00:00 2001 From: David Kroon <35101727+dp90@users.noreply.github.com> Date: Sun, 17 Jul 2022 19:52:20 +0200 Subject: [PATCH 273/345] Add GH workflow for autopublish on push to main Signed-off-by: David Kroon <35101727+dp90@users.noreply.github.com> Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- .github/workflows/publish-to-test-pypi.yml | 42 ++++++++++++++++++++++ 1 file changed, 42 insertions(+) diff --git a/.github/workflows/publish-to-test-pypi.yml b/.github/workflows/publish-to-test-pypi.yml index e69de29b..0a996129 100644 --- a/.github/workflows/publish-to-test-pypi.yml +++ b/.github/workflows/publish-to-test-pypi.yml @@ -0,0 +1,42 @@ +name: Publish Python distributions to PyPI and TestPyPI + +on: + push: + branches: [ main ] + pull_request: + branches: [ main ] + +jobs: + build-n-publish: + name: Build and publish Python distributions to PyPI and TestPyPI + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - name: Set up Python 3.9 + uses: actions/setup-python@v3 + with: + python-version: "3.9" + - name: Install pypa/build + run: >- + python -m + pip install + build + --user + - name: Build a binary wheel and a source tarball + run: >- + python -m + build + --sdist + --wheel + --outdir dist/ + . + - name: Publish distribution to Test PyPI + uses: pypa/gh-action-pypi-publish@master + with: + password: ${{ secrets.TEST_PYPI_API_TOKEN }} + repository_url: https://test.pypi.org/project/itr + - name: Publish distribution to PyPI + if: startsWith(github.ref, 'refs/tags') + uses: pypa/gh-action-pypi-publish@master + with: + password: ${{ secrets.PYPI_API_TOKEN }} \ No newline at end of file From ff6fcc0cc8b90e76bf85f7dc6f4e44c30cd0b2f0 Mon Sep 17 00:00:00 2001 From: David Kroon <35101727+dp90@users.noreply.github.com> Date: Sun, 17 Jul 2022 20:40:50 +0200 Subject: [PATCH 274/345] Trigger PR action Signed-off-by: David Kroon <35101727+dp90@users.noreply.github.com> Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- .github/workflows/publish-to-test-pypi.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/publish-to-test-pypi.yml b/.github/workflows/publish-to-test-pypi.yml index 0a996129..d8872991 100644 --- a/.github/workflows/publish-to-test-pypi.yml +++ b/.github/workflows/publish-to-test-pypi.yml @@ -2,9 +2,9 @@ name: Publish Python distributions to PyPI and TestPyPI on: push: - branches: [ main ] + branches: main pull_request: - branches: [ main ] + branches: main jobs: build-n-publish: From 311ca66fabb327c85851cf8b23ebfd475791cdee Mon Sep 17 00:00:00 2001 From: David Kroon <35101727+dp90@users.noreply.github.com> Date: Sun, 17 Jul 2022 20:42:23 +0200 Subject: [PATCH 275/345] test PR action Signed-off-by: David Kroon <35101727+dp90@users.noreply.github.com> Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- .github/workflows/publish-to-test-pypi.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/publish-to-test-pypi.yml b/.github/workflows/publish-to-test-pypi.yml index d8872991..f5e4ab58 100644 --- a/.github/workflows/publish-to-test-pypi.yml +++ b/.github/workflows/publish-to-test-pypi.yml @@ -2,9 +2,9 @@ name: Publish Python distributions to PyPI and TestPyPI on: push: - branches: main + branches: [ main, develop ] pull_request: - branches: main + branches: [ main, develop ] jobs: build-n-publish: From 2a45ace5763ccdd48e18d9343c28bf8ece9be989 Mon Sep 17 00:00:00 2001 From: David Kroon <35101727+dp90@users.noreply.github.com> Date: Sun, 17 Jul 2022 20:45:15 +0200 Subject: [PATCH 276/345] Fix typo in test pypi url Signed-off-by: David Kroon <35101727+dp90@users.noreply.github.com> Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- .github/workflows/publish-to-test-pypi.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/publish-to-test-pypi.yml b/.github/workflows/publish-to-test-pypi.yml index f5e4ab58..03868c1f 100644 --- a/.github/workflows/publish-to-test-pypi.yml +++ b/.github/workflows/publish-to-test-pypi.yml @@ -34,7 +34,7 @@ jobs: uses: pypa/gh-action-pypi-publish@master with: password: ${{ secrets.TEST_PYPI_API_TOKEN }} - repository_url: https://test.pypi.org/project/itr + repository_url: https://test.pypi.org/project/itr/ - name: Publish distribution to PyPI if: startsWith(github.ref, 'refs/tags') uses: pypa/gh-action-pypi-publish@master From 7c08e8c5f549697d7c2983b10c0347b594068d7c Mon Sep 17 00:00:00 2001 From: David Kroon <35101727+dp90@users.noreply.github.com> Date: Sun, 17 Jul 2022 20:54:26 +0200 Subject: [PATCH 277/345] Correct test pypi url Signed-off-by: David Kroon <35101727+dp90@users.noreply.github.com> Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- .github/workflows/publish-to-test-pypi.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/publish-to-test-pypi.yml b/.github/workflows/publish-to-test-pypi.yml index 03868c1f..dd638aba 100644 --- a/.github/workflows/publish-to-test-pypi.yml +++ b/.github/workflows/publish-to-test-pypi.yml @@ -34,7 +34,7 @@ jobs: uses: pypa/gh-action-pypi-publish@master with: password: ${{ secrets.TEST_PYPI_API_TOKEN }} - repository_url: https://test.pypi.org/project/itr/ + repository_url: https://test.pypi.org/legacy/ - name: Publish distribution to PyPI if: startsWith(github.ref, 'refs/tags') uses: pypa/gh-action-pypi-publish@master From 21e480a792f52e54768a6f0fd3bb10b5163c2e48 Mon Sep 17 00:00:00 2001 From: David Kroon <35101727+dp90@users.noreply.github.com> Date: Sun, 17 Jul 2022 21:19:41 +0200 Subject: [PATCH 278/345] Change version number and pypi description Signed-off-by: David Kroon <35101727+dp90@users.noreply.github.com> Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- .github/workflows/publish-to-test-pypi.yml | 4 ++-- setup.py | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/publish-to-test-pypi.yml b/.github/workflows/publish-to-test-pypi.yml index dd638aba..1474cffd 100644 --- a/.github/workflows/publish-to-test-pypi.yml +++ b/.github/workflows/publish-to-test-pypi.yml @@ -2,9 +2,9 @@ name: Publish Python distributions to PyPI and TestPyPI on: push: - branches: [ main, develop ] + branches: [ main ] pull_request: - branches: [ main, develop ] + branches: [ main ] jobs: build-n-publish: diff --git a/setup.py b/setup.py index b2f90de3..97bf5b28 100644 --- a/setup.py +++ b/setup.py @@ -5,9 +5,9 @@ setup( name='ITR', - version='0.1', - description='This package helps companies and financial institutions to assess the temperature alignment of current' - 'targets, commitments, and investment and lending portfolios.', + version='1.0.0', + description='Assess the temperature alignment of current targets, commitments, and investment ' + 'and lending portfolios.', long_description=long_description, long_description_content_type="text/markdown", author='Ortec Finance', From a85de2ad731a8b41c35df2765364c9c205b6281c Mon Sep 17 00:00:00 2001 From: Oleksandr Anufriyev Date: Thu, 16 Sep 2021 15:03:27 +0200 Subject: [PATCH 279/345] Create Additional materials.md File with links to related readings Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- Additional materials.md | 1 + 1 file changed, 1 insertion(+) create mode 100644 Additional materials.md diff --git a/Additional materials.md b/Additional materials.md new file mode 100644 index 00000000..8b137891 --- /dev/null +++ b/Additional materials.md @@ -0,0 +1 @@ + From 67ff02729591373d6148ba50ae56c0c8473304a6 Mon Sep 17 00:00:00 2001 From: Oleksandr Anufriyev Date: Thu, 16 Sep 2021 15:03:56 +0200 Subject: [PATCH 280/345] Update Additional materials.md Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- Additional materials.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Additional materials.md b/Additional materials.md index 8b137891..c8d5c4df 100644 --- a/Additional materials.md +++ b/Additional materials.md @@ -1 +1 @@ - +# Additional materials From 3d67ac0b6089ceb652d3b6d88dceff65bf488ea2 Mon Sep 17 00:00:00 2001 From: Oleksandr Anufriyev Date: Thu, 16 Sep 2021 15:05:50 +0200 Subject: [PATCH 281/345] Update Additional materials.md Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- Additional materials.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Additional materials.md b/Additional materials.md index c8d5c4df..0c42572f 100644 --- a/Additional materials.md +++ b/Additional materials.md @@ -1 +1,3 @@ # Additional materials + +The file intends to have links to the ideas, which could influence development of ITR tool (kind of Awesome ITR list). From a5272cf3ad3417ea07c482bf87242306f068fbe9 Mon Sep 17 00:00:00 2001 From: Oleksandr Anufriyev Date: Thu, 16 Sep 2021 15:08:06 +0200 Subject: [PATCH 282/345] Update Additional materials.md Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- Additional materials.md | 1 + 1 file changed, 1 insertion(+) diff --git a/Additional materials.md b/Additional materials.md index 0c42572f..cba4d351 100644 --- a/Additional materials.md +++ b/Additional materials.md @@ -1,3 +1,4 @@ # Additional materials The file intends to have links to the ideas, which could influence development of ITR tool (kind of Awesome ITR list). +- Overview of alternative approaches to cluster companies into industries ([Google Doc link](https://docs.google.com/document/d/1fcRbB8JzwPaK491jtp3Gk87OBCg_f6jwvgs9tnpobtA/edit?usp=sharing)); From e401efebf7eb0c11674787f133c356e46bf68c87 Mon Sep 17 00:00:00 2001 From: alexanu Date: Mon, 27 Sep 2021 08:09:53 +0200 Subject: [PATCH 283/345] Adding dash script Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- data/data_provider_example.xlsx | Bin 0 -> 32692 bytes data/example_portfolio.csv | 50 +++++++++ examples/ITR_dash_app.py | 152 +++++++++++++++++++++++++++ utils.py | 181 ++++++++++++++++++++++++++++++++ 4 files changed, 383 insertions(+) create mode 100644 data/data_provider_example.xlsx create mode 100644 data/example_portfolio.csv create mode 100644 examples/ITR_dash_app.py create mode 100644 utils.py diff --git a/data/data_provider_example.xlsx b/data/data_provider_example.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..927019cc7d6ade6f51d8e18f2ac3bc9b52141e51 GIT binary patch literal 32692 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 2"), x="company_name", y="temperature_score", text ="temperature_score", color="sector",title="Worst contributors") + + +grouping = ['sector', 'region'] +temperature_score.grouping = grouping +grouped_portfolio = temperature_score.calculate(data_providers=[provider], portfolio=companies) +grouped_aggregations = temperature_score.aggregate_scores(grouped_portfolio) + +def generate_table(dataframe, max_rows=10): + return html.Table([ + html.Thead( + html.Tr([html.Th(col) for col in dataframe.columns]) + ), + html.Tbody([ + html.Tr([ + html.Td(dataframe.iloc[i][col]) for col in dataframe.columns + ]) for i in range(min(len(dataframe), max_rows)) + ]) + ]) + +def parse_contents(contents, filename, date): + content_type, content_string = contents.split(',') + + decoded = base64.b64decode(content_string) + try: + if 'csv' in filename: + df = pd.read_csv(io.StringIO(decoded.decode('utf-8'))) # Assume that the user uploaded a CSV file + elif 'xls' in filename: + df = pd.read_excel(io.BytesIO(decoded)) # Assume that the user uploaded an excel file + except Exception as e: + print(e) + return html.Div(['There was an error processing this file.']) + + return html.Div([ + html.H5(filename), + html.H6(datetime.datetime.fromtimestamp(date)), + + dash_table.DataTable(data=df.to_dict('records'), + columns=[{'name': i, 'id': i} for i in df.columns] + ), + + html.Hr(), # horizontal line + # For debugging, display the raw contents provided by the web browser + html.Div('Raw Content'), + html.Pre(contents[0:200] + '...', style={'whiteSpace': 'pre-wrap','wordBreak': 'break-all'}) + ]) + + + +app = dash.Dash(__name__, external_stylesheets=external_stylesheets) + +app.layout = html.Div( + children=[ + html.H1(children='ITR Tool', + style={'textAlign': 'center'}), + html.Div(children='Calculation of temperature score for the provided portfolio of financial instruments', + style={'textAlign': 'center'}), + + dcc.Upload( + id='upload-data', + children=html.Div(['Drag and Drop or ',html.A('Select Files')]), + style={'width': '100%','height': '60px','lineHeight': '60px', + 'borderWidth': '1px','borderStyle': 'dashed','borderRadius': '5px', + 'textAlign': 'center','margin': '10px'}, + multiple=False # Allow multiple files to be uploaded + ), + html.Div(id='output-data-upload'), + + + dcc.Graph(id='Overview',figure=fig1), + dcc.Graph(id='Sector - Region',figure=fig2), + dcc.Graph(id='Worst scores',figure=fig3), + dcc.Graph(id='Compare_weights',figure=fig_compare_weight), + # html.H1(children='US Agriculture Exports (2011)'), + # generate_table(amended_portfolio_short), + + + ], # style={'columnCount': 2} + ) + + + +@app.callback(Output('output-data-upload', 'children'), + Input('upload-data', 'contents'), + State('upload-data', 'filename'), + State('upload-data', 'last_modified')) + +def update_output(list_of_contents, list_of_names, list_of_dates): + if list_of_contents is not None: + children = [ + parse_contents(c, n, d) for c, n, d in + zip(list_of_contents, list_of_names, list_of_dates)] + return children + +if __name__ == '__main__': + app.run_server(debug=True) # automatic reloading + diff --git a/utils.py b/utils.py new file mode 100644 index 00000000..8544c0cd --- /dev/null +++ b/utils.py @@ -0,0 +1,181 @@ +import pandas as pd +import numpy as np +import copy as copy +import random + + +def print_aggregations(aggregations): + aggregations = aggregations.dict() + print("{:<10s} {:<10s} {}".format('Timeframe', 'Scope', 'Temp score')) + for time_frame, time_frame_values in aggregations.items(): + if time_frame_values: + for scope, scope_values in time_frame_values.items(): + if scope_values: + print("{:<10s} {:<10s} {:.2f}".format(time_frame, scope, scope_values["all"]["score"])) + + +def print_percentage_default_scores(aggregations): + aggregations = aggregations.dict() + print("{:<10s} {:<10s} {}".format('Timeframe', 'Scope', '% Default score')) + for time_frame, time_frame_values in aggregations.items(): + if time_frame_values: + for scope, scope_values in time_frame_values.items(): + if scope_values: + print("{:<10s} {:<10s} {:.2f}".format(time_frame, scope, scope_values['influence_percentage'])) + + + +def print_grouped_scores(aggregations): + aggregations = aggregations.dict() + for time_frame, time_frame_values in aggregations.items(): + if time_frame_values: + for scope, scope_values in time_frame_values.items(): + if scope_values: + print() + print("{:<25s}{}".format('', 'Temp score')) + print("{} - {}".format(time_frame, scope)) + for group, aggregation in scope_values["grouped"].items(): + print("{:<25s}{t:.2f}".format(group, t=aggregation["score"])) + + +def collect_company_contributions(aggregated_portfolio, amended_portfolio, analysis_parameters): + timeframe, scope, grouping = analysis_parameters + scope = str(scope[0]) + timeframe = str(timeframe[0]).lower() + company_names = [] + relative_contributions = [] + temperature_scores = [] + for contribution in aggregated_portfolio[timeframe][scope]['all']['contributions']: + company_names.append(contribution.company_name) + relative_contributions.append(contribution.contribution_relative) + temperature_scores.append(contribution.temperature_score) + company_contributions = pd.DataFrame(data={'company_name': company_names, 'contribution': relative_contributions, 'temperature_score': temperature_scores}) + additional_columns = ['company_name', 'company_id', 'company_market_cap', 'investment_value'] + grouping + company_contributions = company_contributions.merge(right=amended_portfolio[additional_columns], how='left', on='company_name') + company_contributions['portfolio_percentage'] = 100 * company_contributions['investment_value'] / company_contributions['investment_value'].sum() + company_contributions['ownership_percentage'] = 100 * company_contributions['investment_value'] / company_contributions['company_market_cap'] + company_contributions = company_contributions.sort_values(by='contribution', ascending=False) + return company_contributions + + +def plot_grouped_statistics(aggregated_portfolio, company_contributions, analysis_parameters): + import matplotlib.pyplot as plt + + timeframe, scope, grouping = analysis_parameters + scope = str(scope[0]) + timeframe = str(timeframe[0]).lower() + + sector_investments = company_contributions.groupby(grouping).investment_value.sum().values + sector_contributions = company_contributions.groupby(grouping).contribution.sum().values + sector_names = company_contributions.groupby(grouping).contribution.sum().keys() + sector_temp_scores = [aggregation.score for aggregation in aggregated_portfolio[timeframe][scope]['grouped'].values()] + + sector_temp_scores, sector_names, sector_contributions, sector_investments = \ + zip(*sorted(zip(sector_temp_scores, sector_names, sector_contributions, sector_investments), reverse=True)) + + fig = plt.figure(figsize=[10, 7.5]) + ax1 = fig.add_subplot(231) + ax1.set_prop_cycle(plt.cycler("color", plt.cm.tab20.colors)) + ax1.pie(sector_investments, autopct='%1.0f%%', pctdistance=1.25, labeldistance=2) + ax1.set_title("Investments", pad=15) + + + ax2 = fig.add_subplot(232) + ax2.set_prop_cycle(plt.cycler("color", plt.cm.tab20.colors)) + ax2.pie(sector_contributions, autopct='%1.0f%%', pctdistance=1.25, labeldistance=2) + ax2.legend(labels=sector_names, bbox_to_anchor=(1.2, 1), loc='upper left') + ax2.set_title("Contributions", pad=15) + + ax3 = fig.add_subplot(212) + ax3.bar(sector_names, sector_temp_scores) + ax3.set_title("Temperature scores per " + grouping[0]) + ax3.set_ylabel("Temperature score") + for label in ax3.get_xticklabels(): + label.set_rotation(45) + label.set_ha('right') + ax3.axhline(y=1.5, linestyle='--', color='k') + + +def anonymize(portfolio, provider): + portfolio_companies = portfolio['company_name'].unique() + for index, company_name in enumerate(portfolio_companies): + portfolio.loc[portfolio['company_name'] == company_name, 'company_id'] = 'C' + str(index + 1) + portfolio.loc[portfolio['company_name'] == company_name, 'company_isin'] = 'C' + str(index + 1) + provider.data['fundamental_data'].loc[provider.data['fundamental_data']['company_name'] == company_name, 'company_id'] = 'C' + str(index + 1) + provider.data['fundamental_data'].loc[provider.data['fundamental_data']['company_name'] == company_name, 'company_isic'] = 'C' + str(index + 1) + provider.data['target_data'].loc[provider.data['target_data']['company_name'] == company_name, 'company_id'] = 'C' + str(index + 1) + portfolio.loc[portfolio['company_name'] == company_name, 'company_name'] = 'Company' + str( + index + 1) + provider.data['fundamental_data'].loc[provider.data['fundamental_data']['company_name'] == company_name, 'company_name'] = 'Company' + str( + index + 1) + provider.data['target_data'].loc[provider.data['target_data']['company_name'] == company_name, 'company_name'] = 'Company' + str( + index + 1) + for index, company_name in enumerate(provider.data['fundamental_data']['company_name'].unique()): + if company_name not in portfolio['company_name'].unique(): + provider.data['fundamental_data'].loc[provider.data['fundamental_data']['company_name'] == company_name, 'company_id'] = '_' + str(index + 1) + provider.data['fundamental_data'].loc[provider.data['fundamental_data']['company_name'] == company_name, 'company_name'] = 'Company_' + str( + index + 1) + return portfolio, provider + + +def plot_grouped_heatmap(grouped_aggregations, analysis_parameters): + import matplotlib.pyplot as plt + import matplotlib + + timeframe, scope, grouping = analysis_parameters + scope = str(scope[0]) + timeframe = str(timeframe[0]).lower() + group_1, group_2 = grouping + + aggregations = grouped_aggregations[timeframe][scope].grouped + combinations = list(aggregations.keys()) + + groups = {group_1: [], group_2: []} + for combination in combinations: + item_group_1, item_group_2 = combination.split('-') + if item_group_1 not in groups[group_1]: + groups[group_1].append(item_group_1) + if item_group_2 not in groups[group_2]: + groups[group_2].append(item_group_2) + groups[group_1] = sorted(groups[group_1]) + groups[group_2] = sorted(groups[group_2]) + + grid = np.zeros((len(groups[group_2]), len(groups[group_1]))) + for i, item_group_2 in enumerate(groups[group_2]): + for j, item_group_1 in enumerate(groups[group_1]): + key = item_group_1+'-'+item_group_2 + if key in combinations: + grid[i, j] = aggregations[item_group_1+'-'+item_group_2].score + else: + grid[i, j] = np.nan + + current_cmap = copy.copy(matplotlib.cm.get_cmap('OrRd')) + current_cmap.set_bad(color='grey', alpha=0.4) + + fig = plt.figure(figsize=[0.9*len(groups[group_1]), 0.8*len(groups[group_2])]) + ax = fig.add_subplot(111) + im = ax.pcolormesh(grid, cmap=current_cmap) + ax.set_xticks(0.5 + np.arange(0, len(groups[group_1]))) + ax.set_yticks(0.5 + np.arange(0, len(groups[group_2]))) + ax.set_yticklabels(groups[group_2]) + ax.set_xticklabels(groups[group_1]) + for label in ax.get_xticklabels(): + label.set_rotation(45) + label.set_ha('right') + fig.colorbar(im, ax=ax) + ax.set_title("Temperature score per " + group_2 + " per " + group_1) + + +def get_contributions_per_group(aggregations, analysis_parameters, group): + timeframe, scope, grouping = analysis_parameters + scope = str(scope[0]) + timeframe = str(timeframe[0]).lower() + aggregations = aggregations.dict() + + contributions = aggregations[timeframe][scope]['grouped'][group]['contributions'] + contributions = pd.DataFrame(contributions) + columns = ['group'] + contributions.columns.tolist() + contributions['group'] = group + contributions = contributions[columns] + contributions.drop(columns=['contribution'], inplace=True) + return contributions \ No newline at end of file From 4d3ce91ac2243608f1150a569fad0fc37858dce5 Mon Sep 17 00:00:00 2001 From: David Kroon <35101727+dp90@users.noreply.github.com> Date: Sun, 17 Jul 2022 21:54:08 +0200 Subject: [PATCH 284/345] Remove unused files Signed-off-by: David Kroon <35101727+dp90@users.noreply.github.com> Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- ...h-to-test-pypi.yml => publish-to-pypi.yml} | 0 Additional materials.md | 4 - data/data_provider_example.xlsx | Bin 32692 -> 0 bytes data/example_portfolio.csv | 50 ----- examples/ITR_dash_app.py | 152 --------------- utils.py | 181 ------------------ 6 files changed, 387 deletions(-) rename .github/workflows/{publish-to-test-pypi.yml => publish-to-pypi.yml} (100%) delete mode 100644 Additional materials.md delete mode 100644 data/data_provider_example.xlsx delete mode 100644 data/example_portfolio.csv delete mode 100644 examples/ITR_dash_app.py delete mode 100644 utils.py diff --git a/.github/workflows/publish-to-test-pypi.yml b/.github/workflows/publish-to-pypi.yml similarity index 100% rename from .github/workflows/publish-to-test-pypi.yml rename to .github/workflows/publish-to-pypi.yml diff --git a/Additional materials.md b/Additional materials.md deleted file mode 100644 index cba4d351..00000000 --- a/Additional materials.md +++ /dev/null @@ -1,4 +0,0 @@ -# Additional materials - -The file intends to have links to the ideas, which could influence development of ITR tool (kind of Awesome ITR list). -- Overview of alternative approaches to cluster companies into industries ([Google Doc link](https://docs.google.com/document/d/1fcRbB8JzwPaK491jtp3Gk87OBCg_f6jwvgs9tnpobtA/edit?usp=sharing)); diff --git a/data/data_provider_example.xlsx b/data/data_provider_example.xlsx deleted file mode 100644 index 927019cc7d6ade6f51d8e18f2ac3bc9b52141e51..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 32692 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 2"), x="company_name", y="temperature_score", text ="temperature_score", color="sector",title="Worst contributors") - - -grouping = ['sector', 'region'] -temperature_score.grouping = grouping -grouped_portfolio = temperature_score.calculate(data_providers=[provider], portfolio=companies) -grouped_aggregations = temperature_score.aggregate_scores(grouped_portfolio) - -def generate_table(dataframe, max_rows=10): - return html.Table([ - html.Thead( - html.Tr([html.Th(col) for col in dataframe.columns]) - ), - html.Tbody([ - html.Tr([ - html.Td(dataframe.iloc[i][col]) for col in dataframe.columns - ]) for i in range(min(len(dataframe), max_rows)) - ]) - ]) - -def parse_contents(contents, filename, date): - content_type, content_string = contents.split(',') - - decoded = base64.b64decode(content_string) - try: - if 'csv' in filename: - df = pd.read_csv(io.StringIO(decoded.decode('utf-8'))) # Assume that the user uploaded a CSV file - elif 'xls' in filename: - df = pd.read_excel(io.BytesIO(decoded)) # Assume that the user uploaded an excel file - except Exception as e: - print(e) - return html.Div(['There was an error processing this file.']) - - return html.Div([ - html.H5(filename), - html.H6(datetime.datetime.fromtimestamp(date)), - - dash_table.DataTable(data=df.to_dict('records'), - columns=[{'name': i, 'id': i} for i in df.columns] - ), - - html.Hr(), # horizontal line - # For debugging, display the raw contents provided by the web browser - html.Div('Raw Content'), - html.Pre(contents[0:200] + '...', style={'whiteSpace': 'pre-wrap','wordBreak': 'break-all'}) - ]) - - - -app = dash.Dash(__name__, external_stylesheets=external_stylesheets) - -app.layout = html.Div( - children=[ - html.H1(children='ITR Tool', - style={'textAlign': 'center'}), - html.Div(children='Calculation of temperature score for the provided portfolio of financial instruments', - style={'textAlign': 'center'}), - - dcc.Upload( - id='upload-data', - children=html.Div(['Drag and Drop or ',html.A('Select Files')]), - style={'width': '100%','height': '60px','lineHeight': '60px', - 'borderWidth': '1px','borderStyle': 'dashed','borderRadius': '5px', - 'textAlign': 'center','margin': '10px'}, - multiple=False # Allow multiple files to be uploaded - ), - html.Div(id='output-data-upload'), - - - dcc.Graph(id='Overview',figure=fig1), - dcc.Graph(id='Sector - Region',figure=fig2), - dcc.Graph(id='Worst scores',figure=fig3), - dcc.Graph(id='Compare_weights',figure=fig_compare_weight), - # html.H1(children='US Agriculture Exports (2011)'), - # generate_table(amended_portfolio_short), - - - ], # style={'columnCount': 2} - ) - - - -@app.callback(Output('output-data-upload', 'children'), - Input('upload-data', 'contents'), - State('upload-data', 'filename'), - State('upload-data', 'last_modified')) - -def update_output(list_of_contents, list_of_names, list_of_dates): - if list_of_contents is not None: - children = [ - parse_contents(c, n, d) for c, n, d in - zip(list_of_contents, list_of_names, list_of_dates)] - return children - -if __name__ == '__main__': - app.run_server(debug=True) # automatic reloading - diff --git a/utils.py b/utils.py deleted file mode 100644 index 8544c0cd..00000000 --- a/utils.py +++ /dev/null @@ -1,181 +0,0 @@ -import pandas as pd -import numpy as np -import copy as copy -import random - - -def print_aggregations(aggregations): - aggregations = aggregations.dict() - print("{:<10s} {:<10s} {}".format('Timeframe', 'Scope', 'Temp score')) - for time_frame, time_frame_values in aggregations.items(): - if time_frame_values: - for scope, scope_values in time_frame_values.items(): - if scope_values: - print("{:<10s} {:<10s} {:.2f}".format(time_frame, scope, scope_values["all"]["score"])) - - -def print_percentage_default_scores(aggregations): - aggregations = aggregations.dict() - print("{:<10s} {:<10s} {}".format('Timeframe', 'Scope', '% Default score')) - for time_frame, time_frame_values in aggregations.items(): - if time_frame_values: - for scope, scope_values in time_frame_values.items(): - if scope_values: - print("{:<10s} {:<10s} {:.2f}".format(time_frame, scope, scope_values['influence_percentage'])) - - - -def print_grouped_scores(aggregations): - aggregations = aggregations.dict() - for time_frame, time_frame_values in aggregations.items(): - if time_frame_values: - for scope, scope_values in time_frame_values.items(): - if scope_values: - print() - print("{:<25s}{}".format('', 'Temp score')) - print("{} - {}".format(time_frame, scope)) - for group, aggregation in scope_values["grouped"].items(): - print("{:<25s}{t:.2f}".format(group, t=aggregation["score"])) - - -def collect_company_contributions(aggregated_portfolio, amended_portfolio, analysis_parameters): - timeframe, scope, grouping = analysis_parameters - scope = str(scope[0]) - timeframe = str(timeframe[0]).lower() - company_names = [] - relative_contributions = [] - temperature_scores = [] - for contribution in aggregated_portfolio[timeframe][scope]['all']['contributions']: - company_names.append(contribution.company_name) - relative_contributions.append(contribution.contribution_relative) - temperature_scores.append(contribution.temperature_score) - company_contributions = pd.DataFrame(data={'company_name': company_names, 'contribution': relative_contributions, 'temperature_score': temperature_scores}) - additional_columns = ['company_name', 'company_id', 'company_market_cap', 'investment_value'] + grouping - company_contributions = company_contributions.merge(right=amended_portfolio[additional_columns], how='left', on='company_name') - company_contributions['portfolio_percentage'] = 100 * company_contributions['investment_value'] / company_contributions['investment_value'].sum() - company_contributions['ownership_percentage'] = 100 * company_contributions['investment_value'] / company_contributions['company_market_cap'] - company_contributions = company_contributions.sort_values(by='contribution', ascending=False) - return company_contributions - - -def plot_grouped_statistics(aggregated_portfolio, company_contributions, analysis_parameters): - import matplotlib.pyplot as plt - - timeframe, scope, grouping = analysis_parameters - scope = str(scope[0]) - timeframe = str(timeframe[0]).lower() - - sector_investments = company_contributions.groupby(grouping).investment_value.sum().values - sector_contributions = company_contributions.groupby(grouping).contribution.sum().values - sector_names = company_contributions.groupby(grouping).contribution.sum().keys() - sector_temp_scores = [aggregation.score for aggregation in aggregated_portfolio[timeframe][scope]['grouped'].values()] - - sector_temp_scores, sector_names, sector_contributions, sector_investments = \ - zip(*sorted(zip(sector_temp_scores, sector_names, sector_contributions, sector_investments), reverse=True)) - - fig = plt.figure(figsize=[10, 7.5]) - ax1 = fig.add_subplot(231) - ax1.set_prop_cycle(plt.cycler("color", plt.cm.tab20.colors)) - ax1.pie(sector_investments, autopct='%1.0f%%', pctdistance=1.25, labeldistance=2) - ax1.set_title("Investments", pad=15) - - - ax2 = fig.add_subplot(232) - ax2.set_prop_cycle(plt.cycler("color", plt.cm.tab20.colors)) - ax2.pie(sector_contributions, autopct='%1.0f%%', pctdistance=1.25, labeldistance=2) - ax2.legend(labels=sector_names, bbox_to_anchor=(1.2, 1), loc='upper left') - ax2.set_title("Contributions", pad=15) - - ax3 = fig.add_subplot(212) - ax3.bar(sector_names, sector_temp_scores) - ax3.set_title("Temperature scores per " + grouping[0]) - ax3.set_ylabel("Temperature score") - for label in ax3.get_xticklabels(): - label.set_rotation(45) - label.set_ha('right') - ax3.axhline(y=1.5, linestyle='--', color='k') - - -def anonymize(portfolio, provider): - portfolio_companies = portfolio['company_name'].unique() - for index, company_name in enumerate(portfolio_companies): - portfolio.loc[portfolio['company_name'] == company_name, 'company_id'] = 'C' + str(index + 1) - portfolio.loc[portfolio['company_name'] == company_name, 'company_isin'] = 'C' + str(index + 1) - provider.data['fundamental_data'].loc[provider.data['fundamental_data']['company_name'] == company_name, 'company_id'] = 'C' + str(index + 1) - provider.data['fundamental_data'].loc[provider.data['fundamental_data']['company_name'] == company_name, 'company_isic'] = 'C' + str(index + 1) - provider.data['target_data'].loc[provider.data['target_data']['company_name'] == company_name, 'company_id'] = 'C' + str(index + 1) - portfolio.loc[portfolio['company_name'] == company_name, 'company_name'] = 'Company' + str( - index + 1) - provider.data['fundamental_data'].loc[provider.data['fundamental_data']['company_name'] == company_name, 'company_name'] = 'Company' + str( - index + 1) - provider.data['target_data'].loc[provider.data['target_data']['company_name'] == company_name, 'company_name'] = 'Company' + str( - index + 1) - for index, company_name in enumerate(provider.data['fundamental_data']['company_name'].unique()): - if company_name not in portfolio['company_name'].unique(): - provider.data['fundamental_data'].loc[provider.data['fundamental_data']['company_name'] == company_name, 'company_id'] = '_' + str(index + 1) - provider.data['fundamental_data'].loc[provider.data['fundamental_data']['company_name'] == company_name, 'company_name'] = 'Company_' + str( - index + 1) - return portfolio, provider - - -def plot_grouped_heatmap(grouped_aggregations, analysis_parameters): - import matplotlib.pyplot as plt - import matplotlib - - timeframe, scope, grouping = analysis_parameters - scope = str(scope[0]) - timeframe = str(timeframe[0]).lower() - group_1, group_2 = grouping - - aggregations = grouped_aggregations[timeframe][scope].grouped - combinations = list(aggregations.keys()) - - groups = {group_1: [], group_2: []} - for combination in combinations: - item_group_1, item_group_2 = combination.split('-') - if item_group_1 not in groups[group_1]: - groups[group_1].append(item_group_1) - if item_group_2 not in groups[group_2]: - groups[group_2].append(item_group_2) - groups[group_1] = sorted(groups[group_1]) - groups[group_2] = sorted(groups[group_2]) - - grid = np.zeros((len(groups[group_2]), len(groups[group_1]))) - for i, item_group_2 in enumerate(groups[group_2]): - for j, item_group_1 in enumerate(groups[group_1]): - key = item_group_1+'-'+item_group_2 - if key in combinations: - grid[i, j] = aggregations[item_group_1+'-'+item_group_2].score - else: - grid[i, j] = np.nan - - current_cmap = copy.copy(matplotlib.cm.get_cmap('OrRd')) - current_cmap.set_bad(color='grey', alpha=0.4) - - fig = plt.figure(figsize=[0.9*len(groups[group_1]), 0.8*len(groups[group_2])]) - ax = fig.add_subplot(111) - im = ax.pcolormesh(grid, cmap=current_cmap) - ax.set_xticks(0.5 + np.arange(0, len(groups[group_1]))) - ax.set_yticks(0.5 + np.arange(0, len(groups[group_2]))) - ax.set_yticklabels(groups[group_2]) - ax.set_xticklabels(groups[group_1]) - for label in ax.get_xticklabels(): - label.set_rotation(45) - label.set_ha('right') - fig.colorbar(im, ax=ax) - ax.set_title("Temperature score per " + group_2 + " per " + group_1) - - -def get_contributions_per_group(aggregations, analysis_parameters, group): - timeframe, scope, grouping = analysis_parameters - scope = str(scope[0]) - timeframe = str(timeframe[0]).lower() - aggregations = aggregations.dict() - - contributions = aggregations[timeframe][scope]['grouped'][group]['contributions'] - contributions = pd.DataFrame(contributions) - columns = ['group'] + contributions.columns.tolist() - contributions['group'] = group - contributions = contributions[columns] - contributions.drop(columns=['contribution'], inplace=True) - return contributions \ No newline at end of file From 90e540f02a56cefa24ad8ed2d0299c567f6dbb70 Mon Sep 17 00:00:00 2001 From: David Kroon <35101727+dp90@users.noreply.github.com> Date: Sun, 17 Jul 2022 21:54:34 +0200 Subject: [PATCH 285/345] Remove unused github action Signed-off-by: David Kroon <35101727+dp90@users.noreply.github.com> Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- .github/workflows/pythonpackage.yml | 43 ----------------------------- 1 file changed, 43 deletions(-) delete mode 100644 .github/workflows/pythonpackage.yml diff --git a/.github/workflows/pythonpackage.yml b/.github/workflows/pythonpackage.yml deleted file mode 100644 index aae00079..00000000 --- a/.github/workflows/pythonpackage.yml +++ /dev/null @@ -1,43 +0,0 @@ -# This workflow will install Python dependencies, run tests and lint with a variety of Python versions -# For more information see: https://help.github.com/actions/language-and-framework-guides/using-python-with-github-actions - -name: Python package - -on: - push: - branches: [ main ] - pull_request: - branches: [ main ] - -jobs: - build: - - runs-on: ubuntu-latest - strategy: - matrix: - python-version: [3.9] - - steps: - - uses: actions/checkout@v2 - - name: Set up Python ${{ matrix.python-version }} - uses: actions/setup-python@v2 - with: - python-version: ${{ matrix.python-version }} - - name: Install dependencies - run: | - python -m pip install --upgrade pip - pip install flake8 nose2 ossaudit mypy - if [ -f requirements.txt ]; then pip install -r requirements.txt; fi - - name: Lint with flake8 - run: | - # stop the build if there are Python syntax errors or undefined names - flake8 . --count --select=E9,F63,F7,F82 --show-source --statistics - # exit-zero treats all errors as warnings. The GitHub editor is 127 chars wide - flake8 . --count --exit-zero --max-complexity=10 --max-line-length=127 --statistics - - name: Test with Nose2 - run: | - nose2 -v - - name: Check type hints with MyPy - run: | - mypy . - From 07d931b62566a10cb9a8a6654af0d4327d43c3e3 Mon Sep 17 00:00:00 2001 From: David Kroon <35101727+dp90@users.noreply.github.com> Date: Sun, 17 Jul 2022 21:59:12 +0200 Subject: [PATCH 286/345] Add GH action for test pypi Signed-off-by: David Kroon <35101727+dp90@users.noreply.github.com> Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- .github/workflows/publish-to-test-pypi.yml | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 .github/workflows/publish-to-test-pypi.yml diff --git a/.github/workflows/publish-to-test-pypi.yml b/.github/workflows/publish-to-test-pypi.yml new file mode 100644 index 00000000..e69de29b From a4f19506f37d06e7ba237b8eb89428d13b9e59b9 Mon Sep 17 00:00:00 2001 From: David Kroon <35101727+dp90@users.noreply.github.com> Date: Sun, 17 Jul 2022 22:02:09 +0200 Subject: [PATCH 287/345] Add checks to GH publish to pypi action Signed-off-by: David Kroon <35101727+dp90@users.noreply.github.com> Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- .github/workflows/publish-to-pypi.yml | 22 ++++++---- .github/workflows/publish-to-test-pypi.yml | 49 ++++++++++++++++++++++ 2 files changed, 63 insertions(+), 8 deletions(-) diff --git a/.github/workflows/publish-to-pypi.yml b/.github/workflows/publish-to-pypi.yml index 1474cffd..e2b3d7f8 100644 --- a/.github/workflows/publish-to-pypi.yml +++ b/.github/workflows/publish-to-pypi.yml @@ -3,8 +3,6 @@ name: Publish Python distributions to PyPI and TestPyPI on: push: branches: [ main ] - pull_request: - branches: [ main ] jobs: build-n-publish: @@ -16,6 +14,20 @@ jobs: uses: actions/setup-python@v3 with: python-version: "3.9" + - name: Install dependencies + run: | + python -m pip install --upgrade pip + pip install flake8 mypy + if [ -f requirements.txt ]; then pip install -r requirements.txt; fi + - name: Lint with flake8 + run: | + # stop the build if there are Python syntax errors or undefined names + flake8 . --count --select=E9,F63,F7,F82 --show-source --statistics + # exit-zero treats all errors as warnings. The GitHub editor is 127 chars wide + flake8 . --count --exit-zero --max-complexity=10 --max-line-length=127 --statistics + - name: Check type hints with MyPy + run: | + mypy . - name: Install pypa/build run: >- python -m @@ -30,13 +42,7 @@ jobs: --wheel --outdir dist/ . - - name: Publish distribution to Test PyPI - uses: pypa/gh-action-pypi-publish@master - with: - password: ${{ secrets.TEST_PYPI_API_TOKEN }} - repository_url: https://test.pypi.org/legacy/ - name: Publish distribution to PyPI - if: startsWith(github.ref, 'refs/tags') uses: pypa/gh-action-pypi-publish@master with: password: ${{ secrets.PYPI_API_TOKEN }} \ No newline at end of file diff --git a/.github/workflows/publish-to-test-pypi.yml b/.github/workflows/publish-to-test-pypi.yml index e69de29b..dcf15a35 100644 --- a/.github/workflows/publish-to-test-pypi.yml +++ b/.github/workflows/publish-to-test-pypi.yml @@ -0,0 +1,49 @@ +name: Publish Python distributions to TestPyPI + +on: + pull_request: + branches: [ main ] + +jobs: + build-n-publish: + name: Build and publish Python distributions to PyPI and TestPyPI + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - name: Set up Python 3.9 + uses: actions/setup-python@v3 + with: + python-version: "3.9" + - name: Install dependencies + run: | + python -m pip install --upgrade pip + pip install flake8 mypy + if [ -f requirements.txt ]; then pip install -r requirements.txt; fi + - name: Lint with flake8 + run: | + # stop the build if there are Python syntax errors or undefined names + flake8 . --count --select=E9,F63,F7,F82 --show-source --statistics + # exit-zero treats all errors as warnings. The GitHub editor is 127 chars wide + flake8 . --count --exit-zero --max-complexity=10 --max-line-length=127 --statistics + - name: Check type hints with MyPy + run: | + mypy . + - name: Install pypa/build + run: >- + python -m + pip install + build + --user + - name: Build a binary wheel and a source tarball + run: >- + python -m + build + --sdist + --wheel + --outdir dist/ + . + - name: Publish distribution to Test PyPI + uses: pypa/gh-action-pypi-publish@master + with: + password: ${{ secrets.TEST_PYPI_API_TOKEN }} + repository_url: https://test.pypi.org/legacy/ \ No newline at end of file From 48479aea3656489f708101ba17f57ca21d8900fe Mon Sep 17 00:00:00 2001 From: David Kroon <35101727+dp90@users.noreply.github.com> Date: Sun, 17 Jul 2022 22:03:46 +0200 Subject: [PATCH 288/345] Improve naming of GH workflows Signed-off-by: David Kroon <35101727+dp90@users.noreply.github.com> Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- .github/workflows/publish-to-pypi.yml | 4 ++-- .github/workflows/publish-to-test-pypi.yml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/publish-to-pypi.yml b/.github/workflows/publish-to-pypi.yml index e2b3d7f8..fa415ef6 100644 --- a/.github/workflows/publish-to-pypi.yml +++ b/.github/workflows/publish-to-pypi.yml @@ -1,4 +1,4 @@ -name: Publish Python distributions to PyPI and TestPyPI +name: Publish Python distributions to PyPI on: push: @@ -6,7 +6,7 @@ on: jobs: build-n-publish: - name: Build and publish Python distributions to PyPI and TestPyPI + name: Build and publish Python distributions to PyPI runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 diff --git a/.github/workflows/publish-to-test-pypi.yml b/.github/workflows/publish-to-test-pypi.yml index dcf15a35..e4b94c6d 100644 --- a/.github/workflows/publish-to-test-pypi.yml +++ b/.github/workflows/publish-to-test-pypi.yml @@ -6,7 +6,7 @@ on: jobs: build-n-publish: - name: Build and publish Python distributions to PyPI and TestPyPI + name: Build and publish Python distributions to TestPyPI runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 From 91dc2a1956d8d8d4cdf637c4c6e8f1e0e6e576d1 Mon Sep 17 00:00:00 2001 From: David Kroon <35101727+dp90@users.noreply.github.com> Date: Sun, 17 Jul 2022 22:07:54 +0200 Subject: [PATCH 289/345] Avoid linting errors on pint units Signed-off-by: David Kroon <35101727+dp90@users.noreply.github.com> Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- .github/workflows/publish-to-pypi.yml | 8 +------- .github/workflows/publish-to-test-pypi.yml | 8 +------- 2 files changed, 2 insertions(+), 14 deletions(-) diff --git a/.github/workflows/publish-to-pypi.yml b/.github/workflows/publish-to-pypi.yml index fa415ef6..7f6fbb2e 100644 --- a/.github/workflows/publish-to-pypi.yml +++ b/.github/workflows/publish-to-pypi.yml @@ -17,14 +17,8 @@ jobs: - name: Install dependencies run: | python -m pip install --upgrade pip - pip install flake8 mypy + pip install mypy if [ -f requirements.txt ]; then pip install -r requirements.txt; fi - - name: Lint with flake8 - run: | - # stop the build if there are Python syntax errors or undefined names - flake8 . --count --select=E9,F63,F7,F82 --show-source --statistics - # exit-zero treats all errors as warnings. The GitHub editor is 127 chars wide - flake8 . --count --exit-zero --max-complexity=10 --max-line-length=127 --statistics - name: Check type hints with MyPy run: | mypy . diff --git a/.github/workflows/publish-to-test-pypi.yml b/.github/workflows/publish-to-test-pypi.yml index e4b94c6d..44027479 100644 --- a/.github/workflows/publish-to-test-pypi.yml +++ b/.github/workflows/publish-to-test-pypi.yml @@ -17,14 +17,8 @@ jobs: - name: Install dependencies run: | python -m pip install --upgrade pip - pip install flake8 mypy + pip install mypy if [ -f requirements.txt ]; then pip install -r requirements.txt; fi - - name: Lint with flake8 - run: | - # stop the build if there are Python syntax errors or undefined names - flake8 . --count --select=E9,F63,F7,F82 --show-source --statistics - # exit-zero treats all errors as warnings. The GitHub editor is 127 chars wide - flake8 . --count --exit-zero --max-complexity=10 --max-line-length=127 --statistics - name: Check type hints with MyPy run: | mypy . From 72533dccfce4b3be9a136d0d058e6ff87f07384e Mon Sep 17 00:00:00 2001 From: David Kroon <35101727+dp90@users.noreply.github.com> Date: Sun, 17 Jul 2022 22:21:56 +0200 Subject: [PATCH 290/345] Add mypy specifications Signed-off-by: David Kroon <35101727+dp90@users.noreply.github.com> Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- .github/workflows/publish-to-pypi.yml | 2 +- .github/workflows/publish-to-test-pypi.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/publish-to-pypi.yml b/.github/workflows/publish-to-pypi.yml index 7f6fbb2e..87c539db 100644 --- a/.github/workflows/publish-to-pypi.yml +++ b/.github/workflows/publish-to-pypi.yml @@ -21,7 +21,7 @@ jobs: if [ -f requirements.txt ]; then pip install -r requirements.txt; fi - name: Check type hints with MyPy run: | - mypy . + mypy --namespace-packages --explicit-package-bases . - name: Install pypa/build run: >- python -m diff --git a/.github/workflows/publish-to-test-pypi.yml b/.github/workflows/publish-to-test-pypi.yml index 44027479..3ae638a9 100644 --- a/.github/workflows/publish-to-test-pypi.yml +++ b/.github/workflows/publish-to-test-pypi.yml @@ -21,7 +21,7 @@ jobs: if [ -f requirements.txt ]; then pip install -r requirements.txt; fi - name: Check type hints with MyPy run: | - mypy . + mypy --namespace-packages --explicit-package-bases . - name: Install pypa/build run: >- python -m From bc13e38296ece66936418e19b9552fe6ab4cdf1e Mon Sep 17 00:00:00 2001 From: David Kroon <35101727+dp90@users.noreply.github.com> Date: Sun, 17 Jul 2022 22:26:32 +0200 Subject: [PATCH 291/345] Avoid mypy errors on pint units Signed-off-by: David Kroon <35101727+dp90@users.noreply.github.com> Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- .github/workflows/publish-to-pypi.yml | 8 -------- .github/workflows/publish-to-test-pypi.yml | 8 -------- 2 files changed, 16 deletions(-) diff --git a/.github/workflows/publish-to-pypi.yml b/.github/workflows/publish-to-pypi.yml index 87c539db..b11fce38 100644 --- a/.github/workflows/publish-to-pypi.yml +++ b/.github/workflows/publish-to-pypi.yml @@ -14,14 +14,6 @@ jobs: uses: actions/setup-python@v3 with: python-version: "3.9" - - name: Install dependencies - run: | - python -m pip install --upgrade pip - pip install mypy - if [ -f requirements.txt ]; then pip install -r requirements.txt; fi - - name: Check type hints with MyPy - run: | - mypy --namespace-packages --explicit-package-bases . - name: Install pypa/build run: >- python -m diff --git a/.github/workflows/publish-to-test-pypi.yml b/.github/workflows/publish-to-test-pypi.yml index 3ae638a9..cf422c97 100644 --- a/.github/workflows/publish-to-test-pypi.yml +++ b/.github/workflows/publish-to-test-pypi.yml @@ -14,14 +14,6 @@ jobs: uses: actions/setup-python@v3 with: python-version: "3.9" - - name: Install dependencies - run: | - python -m pip install --upgrade pip - pip install mypy - if [ -f requirements.txt ]; then pip install -r requirements.txt; fi - - name: Check type hints with MyPy - run: | - mypy --namespace-packages --explicit-package-bases . - name: Install pypa/build run: >- python -m From 48f7e8681d20f9f35e101a99a364cd5366d461ee Mon Sep 17 00:00:00 2001 From: David Kroon <35101727+dp90@users.noreply.github.com> Date: Wed, 3 Aug 2022 12:16:03 +0200 Subject: [PATCH 292/345] Add python 3.8 and 3.10 to auto testing and requirements Signed-off-by: David Kroon <35101727+dp90@users.noreply.github.com> Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- .github/workflows/notebooks.yml | 8 ++++++-- .github/workflows/pip-audit.yml | 2 +- .github/workflows/publish-to-pypi.yml | 4 ++-- .github/workflows/publish-to-test-pypi.yml | 4 ++-- .github/workflows/unittests.yml | 8 ++++++-- environment.yml | 2 +- examples/environment.yml | 2 +- setup.py | 5 +++-- 8 files changed, 22 insertions(+), 13 deletions(-) diff --git a/.github/workflows/notebooks.yml b/.github/workflows/notebooks.yml index a64ec54a..a3f5aa1c 100644 --- a/.github/workflows/notebooks.yml +++ b/.github/workflows/notebooks.yml @@ -12,12 +12,16 @@ on: jobs: build: runs-on: ubuntu-latest + strategy: + matrix: + python-version: [ 3.8, 3.9, 3.10 ] name: Check example notebooks steps: - uses: actions/checkout@v2 - - uses: actions/setup-python@v2 + - name: Set up Python ${{ matrix.python-version }} + uses: actions/setup-python@v2 with: - python-version: 3.9 + python-version: ${{ matrix.python-version }} - name: Install dependencies run: | python -m pip install --upgrade pip diff --git a/.github/workflows/pip-audit.yml b/.github/workflows/pip-audit.yml index c166a87a..fb24b487 100644 --- a/.github/workflows/pip-audit.yml +++ b/.github/workflows/pip-audit.yml @@ -15,7 +15,7 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - python-version: [3.9] + python-version: [ 3.8, 3.9, 3.10 ] steps: - uses: actions/checkout@v2 diff --git a/.github/workflows/publish-to-pypi.yml b/.github/workflows/publish-to-pypi.yml index b11fce38..2871b65e 100644 --- a/.github/workflows/publish-to-pypi.yml +++ b/.github/workflows/publish-to-pypi.yml @@ -10,10 +10,10 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - - name: Set up Python 3.9 + - name: Set up Python 3.8 uses: actions/setup-python@v3 with: - python-version: "3.9" + python-version: "3.8" - name: Install pypa/build run: >- python -m diff --git a/.github/workflows/publish-to-test-pypi.yml b/.github/workflows/publish-to-test-pypi.yml index cf422c97..5ff0841a 100644 --- a/.github/workflows/publish-to-test-pypi.yml +++ b/.github/workflows/publish-to-test-pypi.yml @@ -10,10 +10,10 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - - name: Set up Python 3.9 + - name: Set up Python 3.8 uses: actions/setup-python@v3 with: - python-version: "3.9" + python-version: "3.8" - name: Install pypa/build run: >- python -m diff --git a/.github/workflows/unittests.yml b/.github/workflows/unittests.yml index 5f4d31f3..be1a5e40 100644 --- a/.github/workflows/unittests.yml +++ b/.github/workflows/unittests.yml @@ -11,12 +11,16 @@ on: jobs: build: runs-on: ubuntu-latest + strategy: + matrix: + python-version: [ 3.8, 3.9, 3.10 ] name: Run unit tests steps: - uses: actions/checkout@v2 - - uses: actions/setup-python@v2 + - name: Set up Python ${{ matrix.python-version }} + uses: actions/setup-python@v2 with: - python-version: 3.9 + python-version: ${{ matrix.python-version }} - name: Install dependencies run: | python -m pip install --upgrade pip diff --git a/environment.yml b/environment.yml index 3d2eb856..ffc92d54 100644 --- a/environment.yml +++ b/environment.yml @@ -3,7 +3,7 @@ channels: - conda-forge - defaults dependencies: - - python==3.9.13 + - python==3.8 - pip==22.1.2 - pip: - -r requirements.txt diff --git a/examples/environment.yml b/examples/environment.yml index dec2f8b5..358c2f0f 100644 --- a/examples/environment.yml +++ b/examples/environment.yml @@ -3,7 +3,7 @@ channels: - conda-forge - defaults dependencies: - - python=3.9.13 + - python=3.8 - pip=22.1.2 - pip: - -r requirements.txt diff --git a/setup.py b/setup.py index 97bf5b28..2423b4fc 100644 --- a/setup.py +++ b/setup.py @@ -5,7 +5,7 @@ setup( name='ITR', - version='1.0.0', + version='1.0.1', description='Assess the temperature alignment of current targets, commitments, and investment ' 'and lending portfolios.', long_description=long_description, @@ -38,7 +38,7 @@ 'wheel>=0.36.2', 'xlrd>=2.0.1', ], - python_requires='>=3.9', + python_requires='>=3.8', extras_require={ 'dev': [ 'nose2', @@ -54,6 +54,7 @@ "Intended Audience :: Developers", "Programming Language :: Python", "Programming Language :: Python :: 3", + "Programming Language :: Python :: 3.8", "Programming Language :: Python :: 3.9", "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3 :: Only", From 9366334bf0e851b289ac3a3bb8ec0f8c622a3d89 Mon Sep 17 00:00:00 2001 From: David Kroon <35101727+dp90@users.noreply.github.com> Date: Wed, 3 Aug 2022 12:25:24 +0200 Subject: [PATCH 293/345] Update versions and quotes Signed-off-by: David Kroon <35101727+dp90@users.noreply.github.com> Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- .github/workflows/notebooks.yml | 6 +++--- .github/workflows/pip-audit.yml | 6 +++--- .github/workflows/publish-to-pypi.yml | 2 +- .github/workflows/publish-to-test-pypi.yml | 2 +- .github/workflows/sphinx-autobuild.yml | 6 +++--- .github/workflows/unittests.yml | 6 +++--- 6 files changed, 14 insertions(+), 14 deletions(-) diff --git a/.github/workflows/notebooks.yml b/.github/workflows/notebooks.yml index a3f5aa1c..2efb3d38 100644 --- a/.github/workflows/notebooks.yml +++ b/.github/workflows/notebooks.yml @@ -14,12 +14,12 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - python-version: [ 3.8, 3.9, 3.10 ] + python-version: [ '3.8', '3.9', '3.10' ] name: Check example notebooks steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 - name: Set up Python ${{ matrix.python-version }} - uses: actions/setup-python@v2 + uses: actions/setup-python@v4 with: python-version: ${{ matrix.python-version }} - name: Install dependencies diff --git a/.github/workflows/pip-audit.yml b/.github/workflows/pip-audit.yml index fb24b487..b6eb9fe4 100644 --- a/.github/workflows/pip-audit.yml +++ b/.github/workflows/pip-audit.yml @@ -15,12 +15,12 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - python-version: [ 3.8, 3.9, 3.10 ] + python-version: [ '3.8', '3.9', '3.10' ] steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 - name: Set up Python ${{ matrix.python-version }} - uses: actions/setup-python@v2 + uses: actions/setup-python@v4 with: python-version: ${{ matrix.python-version }} - name: Install dependencies diff --git a/.github/workflows/publish-to-pypi.yml b/.github/workflows/publish-to-pypi.yml index 2871b65e..1798659f 100644 --- a/.github/workflows/publish-to-pypi.yml +++ b/.github/workflows/publish-to-pypi.yml @@ -11,7 +11,7 @@ jobs: steps: - uses: actions/checkout@v3 - name: Set up Python 3.8 - uses: actions/setup-python@v3 + uses: actions/setup-python@v4 with: python-version: "3.8" - name: Install pypa/build diff --git a/.github/workflows/publish-to-test-pypi.yml b/.github/workflows/publish-to-test-pypi.yml index 5ff0841a..dbf8f03e 100644 --- a/.github/workflows/publish-to-test-pypi.yml +++ b/.github/workflows/publish-to-test-pypi.yml @@ -11,7 +11,7 @@ jobs: steps: - uses: actions/checkout@v3 - name: Set up Python 3.8 - uses: actions/setup-python@v3 + uses: actions/setup-python@v4 with: python-version: "3.8" - name: Install pypa/build diff --git a/.github/workflows/sphinx-autobuild.yml b/.github/workflows/sphinx-autobuild.yml index d0dc2075..d08d5359 100644 --- a/.github/workflows/sphinx-autobuild.yml +++ b/.github/workflows/sphinx-autobuild.yml @@ -10,12 +10,12 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - python-version: [3.9] + python-version: [ '3.9' ] steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 - name: Set up Python ${{ matrix.python-version }} - uses: actions/setup-python@v2 + uses: actions/setup-python@v4 with: python-version: ${{ matrix.python-version }} - name: Install dependencies diff --git a/.github/workflows/unittests.yml b/.github/workflows/unittests.yml index be1a5e40..edf6836f 100644 --- a/.github/workflows/unittests.yml +++ b/.github/workflows/unittests.yml @@ -13,12 +13,12 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - python-version: [ 3.8, 3.9, 3.10 ] + python-version: [ '3.8', '3.9', '3.10' ] name: Run unit tests steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 - name: Set up Python ${{ matrix.python-version }} - uses: actions/setup-python@v2 + uses: actions/setup-python@v4 with: python-version: ${{ matrix.python-version }} - name: Install dependencies From ff8ab999cc09f94b22912350f6622e9a3bac6991 Mon Sep 17 00:00:00 2001 From: David Kroon <35101727+dp90@users.noreply.github.com> Date: Wed, 3 Aug 2022 14:46:17 +0200 Subject: [PATCH 294/345] Rewrite dict concatenation and cleanup Signed-off-by: David Kroon <35101727+dp90@users.noreply.github.com> Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- ITR/data/excel.py | 12 +++--------- ITR/data/template.py | 12 +++--------- 2 files changed, 6 insertions(+), 18 deletions(-) diff --git a/ITR/data/excel.py b/ITR/data/excel.py index 93988d9c..8e5b6fb1 100644 --- a/ITR/data/excel.py +++ b/ITR/data/excel.py @@ -284,15 +284,9 @@ def _get_historic_data(self, company_ids: List[str], historic_data: pd.DataFrame logger.error(error_message) raise ValueError(error_message) - # There has got to be a better way to do this... - historic_data = ( - historic_data.loc[company_ids, :] - .apply(lambda x: pd.Series({col:x[col] for col in x.index if type(col)!=int} - | {y:f"{x[y]} {x['units']}" for y in self.historic_years}, - index=x.index), - axis=1) - ) - return historic_data + for year in self.historic_years: + historic_data[year] = historic_data[year].map(str) + " " + historic_data['units'] + return historic_data.loc[company_ids] def _convert_historic_data(self, historic: pd.DataFrame) -> IHistoricData: """ diff --git a/ITR/data/template.py b/ITR/data/template.py index f5a79a60..060cd9b7 100644 --- a/ITR/data/template.py +++ b/ITR/data/template.py @@ -343,15 +343,9 @@ def _get_historic_data(self, company_ids: List[str], historic_data: pd.DataFrame logger.error(error_message) raise ValueError(error_message) - # There has got to be a better way to do this... - historic_data = ( - historic_data.loc[company_ids, :] - .apply(lambda x: pd.Series({col: x[col] for col in x.index if type(col) != int} - | {y: f"{x[y]} {x['units']}" for y in self.historic_years}, - index=x.index), - axis=1) - ) - return historic_data + for year in self.historic_years: + historic_data[year] = historic_data[year].map(str) + " " + historic_data['units'] + return historic_data.loc[company_ids] def _convert_historic_data(self, historic: pd.DataFrame) -> IHistoricData: """ From ae0e9c8d213926f2f145b0f0debfd7fa4eab84c1 Mon Sep 17 00:00:00 2001 From: David Kroon <35101727+dp90@users.noreply.github.com> Date: Wed, 3 Aug 2022 15:25:27 +0200 Subject: [PATCH 295/345] Fix vulnerability Signed-off-by: David Kroon <35101727+dp90@users.noreply.github.com> Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- requirements.txt | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/requirements.txt b/requirements.txt index ada9891a..47d96ae7 100644 --- a/requirements.txt +++ b/requirements.txt @@ -10,8 +10,8 @@ Pint==0.18 Pint-Pandas==0.2 pydantic==1.8.2 pygithub==1.55 -Sphinx==4.5.0 -sphinx-autoapi==1.8.4 -sphinx-autodoc-typehints==1.18.1 +Sphinx==5.1.1 +sphinx-autoapi==1.9.0 +sphinx-autodoc-typehints==1.19.1 sphinx-rtd-theme==1.0.0 -xlrd==2.0.1 +xlrd==2.0.1 \ No newline at end of file From 79916e97d1ba16cb7eabd47e17f1d94171e42ca8 Mon Sep 17 00:00:00 2001 From: David Kroon <35101727+dp90@users.noreply.github.com> Date: Wed, 3 Aug 2022 15:54:57 +0200 Subject: [PATCH 296/345] Update audit workflow Signed-off-by: David Kroon <35101727+dp90@users.noreply.github.com> Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- .github/workflows/pip-audit.yml | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/.github/workflows/pip-audit.yml b/.github/workflows/pip-audit.yml index b6eb9fe4..09a27bd9 100644 --- a/.github/workflows/pip-audit.yml +++ b/.github/workflows/pip-audit.yml @@ -23,10 +23,7 @@ jobs: uses: actions/setup-python@v4 with: python-version: ${{ matrix.python-version }} - - name: Install dependencies - run: | - pip install --upgrade pip pip-audit + - name: Install + run: python -m pip install . - name: Run pip-audit - id: run_pip_audit - run: | - pip-audit -r requirements.txt \ No newline at end of file + uses: trailofbits/gh-action-pip-audit@v1.0.0 \ No newline at end of file From 82b7726df0747e5184b71f333247d15fc0649331 Mon Sep 17 00:00:00 2001 From: MichaelTiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> Date: Tue, 6 Sep 2022 19:09:14 -0400 Subject: [PATCH 297/345] Create benchmark dataframes inside the scope of inhibited warnings. Otherwise the tool is very noisy (both inside GUI and Notebooks). Signed-off-by: MichaelTiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- ITR/data/base_providers.py | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/ITR/data/base_providers.py b/ITR/data/base_providers.py index cb91d7be..37c721b9 100644 --- a/ITR/data/base_providers.py +++ b/ITR/data/base_providers.py @@ -290,10 +290,12 @@ def _calculate_target_projections(self, production_bm: BaseProviderProductionBen self.column_config.SECTOR: [c.sector], self.column_config.REGION: [c.region], }, index=[0]) - bm_production_data = (production_bm.get_company_projected_production(company_sector_region_info) - # We transpose the data so that we get a pd.Series that will accept the pint units as a whole (not element-by-element) - .iloc[0].T - .astype(f'pint[{str(base_year_production.units)}]')) + bm_production_data = ( + production_bm.get_company_projected_production(company_sector_region_info) + # We transpose the data so that we get a pd.Series that will accept the pint units as a whole (not element-by-element) + .iloc[0].T + .astype(f'pint[{str(base_year_production.units)}]') + ) c.projected_targets = EITargetProjector().project_ei_targets(c, bm_production_data) # ??? Why prefer TRAJECTORY over TARGET? From 1c3a8ed4135648a50e89bff02017e04bebef5406 Mon Sep 17 00:00:00 2001 From: MichaelTiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> Date: Tue, 6 Sep 2022 20:13:27 -0400 Subject: [PATCH 298/345] Wrap calculation of benchmark projections to ignore warnings precipitating by https://github.com/hgrecco/pint-pandas/issues/128 Signed-off-by: MichaelTiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- ITR/data/data_warehouse.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/ITR/data/data_warehouse.py b/ITR/data/data_warehouse.py index 90c91afa..b3d232d9 100644 --- a/ITR/data/data_warehouse.py +++ b/ITR/data/data_warehouse.py @@ -50,8 +50,11 @@ def get_preprocessed_company_data(self, company_ids: List[str]) -> List[ICompany df_company_data = pd.DataFrame.from_records([c.dict() for c in company_data]).set_index(self.column_config.COMPANY_ID, drop=False) company_info_at_base_year = self.company_data.get_company_intensity_and_production_at_base_year(company_ids) - projected_production = self.benchmark_projected_production.get_company_projected_production( - company_info_at_base_year).sort_index() + with warnings.catch_warnings(): + warnings.simplefilter("ignore") + # See https://github.com/hgrecco/pint-pandas/issues/128 + projected_production = self.benchmark_projected_production.get_company_projected_production( + company_info_at_base_year).sort_index() # trajectories are projected from historic data and we are careful to fill all gaps between historic and projections projected_trajectories = self.company_data.get_company_projected_trajectories(company_ids) From 459d32edad5e15487a0082bd8338f5060c3dc88c Mon Sep 17 00:00:00 2001 From: David Kroon <35101727+dp90@users.noreply.github.com> Date: Wed, 7 Sep 2022 10:20:33 +0200 Subject: [PATCH 299/345] Increment version number Signed-off-by: David Kroon <35101727+dp90@users.noreply.github.com> Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- examples/requirements.txt | 3 +-- setup.py | 2 +- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/examples/requirements.txt b/examples/requirements.txt index bc2b8ed5..ac4d1424 100644 --- a/examples/requirements.txt +++ b/examples/requirements.txt @@ -1,6 +1,5 @@ # While ITR is not available on PyPI: comment out line 2, else: comment out or delete line 3 -# ITR==1.0.0 --e ../. +ITR dash==2.4.1 dash_bootstrap_components==1.1.0 jupyter==1.0.0 diff --git a/setup.py b/setup.py index 2423b4fc..2ced9b13 100644 --- a/setup.py +++ b/setup.py @@ -5,7 +5,7 @@ setup( name='ITR', - version='1.0.1', + version='1.0.2', description='Assess the temperature alignment of current targets, commitments, and investment ' 'and lending portfolios.', long_description=long_description, From 531fb86885ff4f3d28fbef3c7f9beaf93a635959 Mon Sep 17 00:00:00 2001 From: MichaelTiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> Date: Wed, 20 Jul 2022 17:30:45 -0400 Subject: [PATCH 300/345] Add/adjust sector and unit handling for O&G (boe) and Autos (passenger_km) Add/adjust sector and unit handling for O&G (boe) and Autos (passenger_km). Signed-off-by: MichaelTiemannOSC Signed-off-by: MichaelTiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- ITR/configs.py | 3 +- ITR/data/osc_units.py | 8 + ITR/interfaces.py | 61 +- .../data/20220720 ITR Tool Sample Data.xlsx | Bin 0 -> 169041 bytes examples/quick_template_score_calc.ipynb | 856 +++++++++++------- 5 files changed, 552 insertions(+), 376 deletions(-) create mode 100644 examples/data/20220720 ITR Tool Sample Data.xlsx diff --git a/ITR/configs.py b/ITR/configs.py index 119afb90..ed56d8c7 100644 --- a/ITR/configs.py +++ b/ITR/configs.py @@ -91,6 +91,7 @@ class SectorsConfig: FINANCIALS = "Financials" HEALTH_CARE = "Health Care" AUTOMOBILE = "Autos" + OIL_AND_GAS = "Oil & Gas" @classmethod def get_configured_sectors(cls) -> List[str]: @@ -98,7 +99,7 @@ def get_configured_sectors(cls) -> List[str]: Get a list of sectors configured in the tool. :return: A list of sectors string values """ - return [SectorsConfig.STEEL, SectorsConfig.ELECTRICITY, SectorsConfig.AUTOMOBILE] + return [SectorsConfig.STEEL, SectorsConfig.ELECTRICITY, SectorsConfig.AUTOMOBILE, SectorsConfig.OIL_AND_GAS] class VariablesConfig: diff --git a/ITR/data/osc_units.py b/ITR/data/osc_units.py index b80df3e0..4c5ee8b3 100644 --- a/ITR/data/osc_units.py +++ b/ITR/data/osc_units.py @@ -5,6 +5,13 @@ from pint import set_application_registry, Quantity from pint_pandas import PintArray, PintType from openscm_units import unit_registry + +# openscm_units doesn't make it easy to set preprocessors. This is one way to do it. +unit_registry.preprocessors=[ + lambda s1: s1.replace('passenger km', 'passenger_km'), + lambda s2: s2.replace('BoE', 'boe'), +] + PintType.ureg = unit_registry ureg = unit_registry set_application_registry(ureg) @@ -13,6 +20,7 @@ ureg.define("CO2e = CO2 = CO2eq = CO2_eq") ureg.define("Fe_ton = [produced_ton]") +ureg.define("passenger_km = nan km") # These are for later ureg.define('fraction = [] = frac') diff --git a/ITR/interfaces.py b/ITR/interfaces.py index 6cf021e3..9ceef122 100644 --- a/ITR/interfaces.py +++ b/ITR/interfaces.py @@ -15,33 +15,19 @@ class Config: arbitrary_types_allowed = True -class PowerGeneration(BaseModel): - units: str - @validator('units') - def unit_must_be_energy(cls, v): - qty = Q_(1, v) - if qty.is_compatible_with("Wh"): - return v - raise ValueError(f"cannot convert {v} to Wh") - -class ManufactureSteel(BaseModel): - units: str - @validator('units') - def units_must_be_Fe_ton(cls, v): - qty = Q_(1, v) - if qty.is_compatible_with("Fe_Ton"): - return v - raise ValueError(f"cannot convert {v} to Fe_ton") - class ProductionMetric(BaseModel): units: str @validator('units') def unit_must_be_production(cls, v): - qty = Q_(1, v) + qty = ureg(v) if qty.is_compatible_with("Wh"): return v if qty.is_compatible_with("Fe_ton"): return v + if qty.is_compatible_with("passenger_km"): + return qty.u + if qty.is_compatible_with("boe"): + return v raise ValueError(f"cannot convert {v} to units of production") @@ -50,51 +36,26 @@ class EmissionsMetric(BaseModel): units: str @validator('units') def units_must_be_tCO2(cls, v): - qty = Q_(1, v) + qty = ureg(v) if qty.is_compatible_with("t CO2"): return v raise ValueError(f"cannot convert {v} to t CO2") -class EmissionsIntensity_PowerGeneration(BaseModel): - units: str - @validator('units') - def units_must_be_EI(cls, v): - qty = Q_(1, v) - if qty.is_compatible_with("t CO2/MWh"): - return v - raise ValueError(f"cannot convert {v} to t CO2/energy") - -class EmissionsIntensity_ManufactureAuto(BaseModel): - units: str - @validator('units') - def units_must_be_EI(cls, v): - qty = Q_(1, v) - if qty.is_compatible_with("g CO2/km"): - return v - raise ValueError(f"cannot convert {v} to g CO2/km") - -class EmissionsIntensity_ManufactureSteel(BaseModel): - units: str - @validator('units') - def units_must_be_EI(cls, v): - qty = Q_(1, v) - if qty.is_compatible_with("t CO2/Fe_ton"): - return v - raise ValueError(f"cannot convert {v} to t CO2/Fe_ton") - class IntensityMetric(BaseModel): units: str @validator('units') def units_must_be_EI(cls, v): - qty = Q_(1, v) + qty = ureg(v) if qty.is_compatible_with("t CO2/MWh"): return v if qty.is_compatible_with("t CO2/Fe_ton"): return v - if qty.is_compatible_with("g CO2/km"): + if qty.is_compatible_with("g CO2/passenger_km"): + return qty.u + if qty.is_compatible_with("kg CO2/boe"): return v - raise ValueError(f"cannot convert {v} to t CO2/Fe_ton") + raise ValueError(f"cannot convert {v} to known t CO2/production unit") class DimensionlessNumber(BaseModel): diff --git a/examples/data/20220720 ITR Tool Sample Data.xlsx b/examples/data/20220720 ITR Tool Sample Data.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..d7570ba42d7259d6bfd7966b21ac2b345aa64441 GIT binary patch literal 169041 zcmbrlV~}KRw=G&-R+nwtc6HgdZQE5{ww-0$wr#tr%eH;{eZPI;o_iwp{&8;pSoy4s zTp77Wj4|hU=A27j3Ir4d2oe$!Xieuq8R&m|!Teq8Iht5I(bN5N>{{fN8(=^H|I^h& zbhq6qkw=hJ2qSnFA|J0F?ei*cm}87$ir~`d^So^YPq$ovm%wh{Eu>UW zqf-kSCA^egY&^3O`bw*%*02W!E|53alJzKY!q{z08{f6RIf2%AL#fHITPRur7F=Z2 zidv8U^TxYQ-Qk%zP(>_#Of-4YMtL~lGBnt!zOI@Z>Y2g~3pNYmwt|QRW(6qO8s~+( z{R_2DPKaW^g!c6{rRRE#HBLSNH1$N^R_DZZ(VyQQWqhRe@)?zJ)^U8qKfaej-XWou zjjSD@NaB_)|9vm~4!}6|^qiMUdy8Dijm00Fs!0s+bYw=iP;h0)!b{y#{%**RJn+Sysrx!YL(7pir(0|b9j<(2cd zt*Ofzj3(NrQ7Npnc>{vXiAKdnh->zES8TGxr4+;^A{+ei?E|BB%~u@XndcIy3L8NK z5g>WuD$g6Zvj1fO(qXE=zd!2Jx_6+D17(+FM9{^qC7Bh+;gD((NR{clF1s08by>E% zH|SMplC8El&79jdP7<2p&)WzVw?Fj9uijL{3<3@qmP1lSd z-0a5XgjciQ%F_W!{x|YR3hkG*po@wCS-bxW%+db{-Ov9(=j7~RZQ}F~WS3bs zHTj|_zk8n55ZGka3p?(}1S@Q>^I1M;O&7W{SWcfn#!HR;8Gm=Id_HFV5E;abWS~0x zW!pJ9neOC%Gzl{>@vzek+I<5iTn91WPtg-E{3A%|#Bk^sG}@*%pW7s zb@G4QP$cHL{r7|SYVoUqxy20)pw$eR5FUBNM}2+W;%(Z=pfz04oZ~5b{1Jp>=v~9Y zJKn=r%-|mx|KkS7pDHbzbemdNV@OcHIb&L*f0)fv`F@{ z(*IPrpOsc~Gr)aP?MGs&x0EWUs9v(HOwTFQ&&@n!cI)08fmuLD*^Tvj7Qy^

      -l8 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 a=Y<%Ld|qg1e2e@``%*(Am4+OH#{U7da$GL} literal 0 HcmV?d00001 diff --git a/examples/quick_template_score_calc.ipynb b/examples/quick_template_score_calc.ipynb index b099f202..8480af17 100644 --- a/examples/quick_template_score_calc.ipynb +++ b/examples/quick_template_score_calc.ipynb @@ -68,13 +68,15 @@ { "data": { "text/plain": [ - "['/Users/michael/Dropbox/My Mac (MacBook-Pro.local)/Documents/GitHub/os-climate/ITR/examples',\n", - " '/Users/michael/miniconda3/envs/ITR/lib/python39.zip',\n", - " '/Users/michael/miniconda3/envs/ITR/lib/python3.9',\n", - " '/Users/michael/miniconda3/envs/ITR/lib/python3.9/lib-dynload',\n", + "['/Users/michael/Documents/GitHub/ITR/examples',\n", + " '/Users/michael/Documents/GitHub/ITR/examples',\n", + " '/Library/Application Support/Blackmagic Design/DaVinci Resolve/Developer/Scripting/Modules',\n", + " '/Users/michael/opt/miniconda3/envs/ITR/lib/python310.zip',\n", + " '/Users/michael/opt/miniconda3/envs/ITR/lib/python3.10',\n", + " '/Users/michael/opt/miniconda3/envs/ITR/lib/python3.10/lib-dynload',\n", " '',\n", - " '/Users/michael/miniconda3/envs/ITR/lib/python3.9/site-packages',\n", - " '/Users/michael/Dropbox/My Mac (MacBook-Pro.local)/Documents/GitHub/os-climate/ITR']" + " '/Users/michael/opt/miniconda3/envs/ITR/lib/python3.10/site-packages',\n", + " '/Users/michael/Documents/GitHub/ITR']" ] }, "metadata": {}, @@ -217,7 +219,7 @@ "if not os.path.isdir(\"data\"):\n", " os.mkdir(\"data\")\n", "\n", - "for filename in ['data/20220415 ITR Tool Sample Data.xlsx',\n", + "for filename in ['data/20220720 ITR Tool Sample Data.xlsx',\n", " 'data/OECM_EI_and_production_benchmarks.xlsx',\n", " 'utils.py']:\n", " if not os.path.isfile(filename):\n", @@ -234,7 +236,7 @@ " from utils import collect_company_contributions, plot_grouped_statistics, anonymize, \\\n", " plot_grouped_heatmap, print_grouped_scores, get_contributions_per_group\n", "\n", - "template_data_path = \"data/20220415 ITR Tool Sample Data.xlsx\"" + "template_data_path = \"data/20220720 ITR Tool Sample Data.xlsx\"" ] }, { @@ -273,9 +275,8 @@ "name": "stderr", "output_type": "stream", "text": [ - "Market capitalisation was missing for ['US18551QAA58', 'CA2908761018'].\n", - "So the values were calculated using the average MCap/Rev and MCap/Assets from available companies.\n", - "Script is still running\n" + "2022-07-20 07:45:17,487 - ITR.data.template - WARNING - Missing market capitalisation values are estimated for companies with ID: ['US18551QAA58', 'CA2908761018'].\n", + "2022-07-20 07:45:17,830 - ITR.data.template - WARNING - Missing target start year set to 2021 for companies with ID: ['US001000AUTO', 'US0185223007', 'US0188021085', 'US0236081024', 'US0236081024', 'US0255371017', 'US05351W1036', 'US0921131092', 'US0921131092', 'US1442851036', 'US18551QAA58', 'US25746U1097', 'US26441C2044', 'US30034W1062', 'US5526901096']\n" ] } ], @@ -315,6 +316,135 @@ "execution_count": 9, "metadata": {}, "outputs": [ + { + "data": { + "text/plain": [ + "ProductionMetric(units='boe')" + ] + }, + "execution_count": 9, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "template_company_data._companies[0].production_metric" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/Users/michael/opt/miniconda3/envs/ITR/lib/python3.10/site-packages/pint_pandas/pint_array.py:648: UnitStrippedWarning: The unit of the quantity is stripped when downcasting to ndarray.\n", + " return np.array(qtys, dtype=\"object\", copy=copy)\n", + "/Users/michael/opt/miniconda3/envs/ITR/lib/python3.10/site-packages/pint_pandas/pint_array.py:648: UnitStrippedWarning: The unit of the quantity is stripped when downcasting to ndarray.\n", + " return np.array(qtys, dtype=\"object\", copy=copy)\n", + "/Users/michael/opt/miniconda3/envs/ITR/lib/python3.10/site-packages/pint_pandas/pint_array.py:648: UnitStrippedWarning: The unit of the quantity is stripped when downcasting to ndarray.\n", + " return np.array(qtys, dtype=\"object\", copy=copy)\n", + "/Users/michael/opt/miniconda3/envs/ITR/lib/python3.10/site-packages/pint_pandas/pint_array.py:648: UnitStrippedWarning: The unit of the quantity is stripped when downcasting to ndarray.\n", + " return np.array(qtys, dtype=\"object\", copy=copy)\n", + "/Users/michael/opt/miniconda3/envs/ITR/lib/python3.10/site-packages/pint_pandas/pint_array.py:648: UnitStrippedWarning: The unit of the quantity is stripped when downcasting to ndarray.\n", + " return np.array(qtys, dtype=\"object\", copy=copy)\n", + "/Users/michael/opt/miniconda3/envs/ITR/lib/python3.10/site-packages/pint_pandas/pint_array.py:648: UnitStrippedWarning: The unit of the quantity is stripped when downcasting to ndarray.\n", + " return np.array(qtys, dtype=\"object\", copy=copy)\n", + "/Users/michael/opt/miniconda3/envs/ITR/lib/python3.10/site-packages/pint_pandas/pint_array.py:648: UnitStrippedWarning: The unit of the quantity is stripped when downcasting to ndarray.\n", + " return np.array(qtys, dtype=\"object\", copy=copy)\n", + "/Users/michael/opt/miniconda3/envs/ITR/lib/python3.10/site-packages/pint_pandas/pint_array.py:648: UnitStrippedWarning: The unit of the quantity is stripped when downcasting to ndarray.\n", + " return np.array(qtys, dtype=\"object\", copy=copy)\n", + "/Users/michael/opt/miniconda3/envs/ITR/lib/python3.10/site-packages/pint_pandas/pint_array.py:648: UnitStrippedWarning: The unit of the quantity is stripped when downcasting to ndarray.\n", + " return np.array(qtys, dtype=\"object\", copy=copy)\n", + "/Users/michael/opt/miniconda3/envs/ITR/lib/python3.10/site-packages/pint_pandas/pint_array.py:648: UnitStrippedWarning: The unit of the quantity is stripped when downcasting to ndarray.\n", + " return np.array(qtys, dtype=\"object\", copy=copy)\n", + "/Users/michael/opt/miniconda3/envs/ITR/lib/python3.10/site-packages/pint_pandas/pint_array.py:648: UnitStrippedWarning: The unit of the quantity is stripped when downcasting to ndarray.\n", + " return np.array(qtys, dtype=\"object\", copy=copy)\n", + "/Users/michael/opt/miniconda3/envs/ITR/lib/python3.10/site-packages/pint_pandas/pint_array.py:648: UnitStrippedWarning: The unit of the quantity is stripped when downcasting to ndarray.\n", + " return np.array(qtys, dtype=\"object\", copy=copy)\n", + "/Users/michael/opt/miniconda3/envs/ITR/lib/python3.10/site-packages/pint_pandas/pint_array.py:648: UnitStrippedWarning: The unit of the quantity is stripped when downcasting to ndarray.\n", + " return np.array(qtys, dtype=\"object\", copy=copy)\n", + "/Users/michael/opt/miniconda3/envs/ITR/lib/python3.10/site-packages/pint_pandas/pint_array.py:648: UnitStrippedWarning: The unit of the quantity is stripped when downcasting to ndarray.\n", + " return np.array(qtys, dtype=\"object\", copy=copy)\n", + "/Users/michael/opt/miniconda3/envs/ITR/lib/python3.10/site-packages/pint_pandas/pint_array.py:648: UnitStrippedWarning: The unit of the quantity is stripped when downcasting to ndarray.\n", + " return np.array(qtys, dtype=\"object\", copy=copy)\n", + "/Users/michael/opt/miniconda3/envs/ITR/lib/python3.10/site-packages/pint_pandas/pint_array.py:648: UnitStrippedWarning: The unit of the quantity is stripped when downcasting to ndarray.\n", + " return np.array(qtys, dtype=\"object\", copy=copy)\n", + "/Users/michael/opt/miniconda3/envs/ITR/lib/python3.10/site-packages/pint_pandas/pint_array.py:648: UnitStrippedWarning: The unit of the quantity is stripped when downcasting to ndarray.\n", + " return np.array(qtys, dtype=\"object\", copy=copy)\n", + "/Users/michael/opt/miniconda3/envs/ITR/lib/python3.10/site-packages/pint_pandas/pint_array.py:648: UnitStrippedWarning: The unit of the quantity is stripped when downcasting to ndarray.\n", + " return np.array(qtys, dtype=\"object\", copy=copy)\n", + "/Users/michael/opt/miniconda3/envs/ITR/lib/python3.10/site-packages/pint_pandas/pint_array.py:648: UnitStrippedWarning: The unit of the quantity is stripped when downcasting to ndarray.\n", + " return np.array(qtys, dtype=\"object\", copy=copy)\n", + "/Users/michael/opt/miniconda3/envs/ITR/lib/python3.10/site-packages/pint_pandas/pint_array.py:648: UnitStrippedWarning: The unit of the quantity is stripped when downcasting to ndarray.\n", + " return np.array(qtys, dtype=\"object\", copy=copy)\n", + "/Users/michael/opt/miniconda3/envs/ITR/lib/python3.10/site-packages/pint_pandas/pint_array.py:648: UnitStrippedWarning: The unit of the quantity is stripped when downcasting to ndarray.\n", + " return np.array(qtys, dtype=\"object\", copy=copy)\n", + "/Users/michael/opt/miniconda3/envs/ITR/lib/python3.10/site-packages/pint_pandas/pint_array.py:648: UnitStrippedWarning: The unit of the quantity is stripped when downcasting to ndarray.\n", + " return np.array(qtys, dtype=\"object\", copy=copy)\n", + "2022-07-20 07:45:27,789 - ITR.data.base_providers - WARNING - No target data for Exelon Corp.\n", + "/Users/michael/opt/miniconda3/envs/ITR/lib/python3.10/site-packages/pint_pandas/pint_array.py:648: UnitStrippedWarning: The unit of the quantity is stripped when downcasting to ndarray.\n", + " return np.array(qtys, dtype=\"object\", copy=copy)\n", + "/Users/michael/opt/miniconda3/envs/ITR/lib/python3.10/site-packages/pint_pandas/pint_array.py:648: UnitStrippedWarning: The unit of the quantity is stripped when downcasting to ndarray.\n", + " return np.array(qtys, dtype=\"object\", copy=copy)\n", + "/Users/michael/opt/miniconda3/envs/ITR/lib/python3.10/site-packages/pint_pandas/pint_array.py:648: UnitStrippedWarning: The unit of the quantity is stripped when downcasting to ndarray.\n", + " return np.array(qtys, dtype=\"object\", copy=copy)\n", + "/Users/michael/opt/miniconda3/envs/ITR/lib/python3.10/site-packages/pint_pandas/pint_array.py:648: UnitStrippedWarning: The unit of the quantity is stripped when downcasting to ndarray.\n", + " return np.array(qtys, dtype=\"object\", copy=copy)\n", + "/Users/michael/opt/miniconda3/envs/ITR/lib/python3.10/site-packages/pint_pandas/pint_array.py:648: UnitStrippedWarning: The unit of the quantity is stripped when downcasting to ndarray.\n", + " return np.array(qtys, dtype=\"object\", copy=copy)\n", + "/Users/michael/opt/miniconda3/envs/ITR/lib/python3.10/site-packages/pint_pandas/pint_array.py:648: UnitStrippedWarning: The unit of the quantity is stripped when downcasting to ndarray.\n", + " return np.array(qtys, dtype=\"object\", copy=copy)\n", + "/Users/michael/opt/miniconda3/envs/ITR/lib/python3.10/site-packages/pint_pandas/pint_array.py:648: UnitStrippedWarning: The unit of the quantity is stripped when downcasting to ndarray.\n", + " return np.array(qtys, dtype=\"object\", copy=copy)\n", + "/Users/michael/opt/miniconda3/envs/ITR/lib/python3.10/site-packages/pint_pandas/pint_array.py:648: UnitStrippedWarning: The unit of the quantity is stripped when downcasting to ndarray.\n", + " return np.array(qtys, dtype=\"object\", copy=copy)\n", + "/Users/michael/opt/miniconda3/envs/ITR/lib/python3.10/site-packages/pint_pandas/pint_array.py:648: UnitStrippedWarning: The unit of the quantity is stripped when downcasting to ndarray.\n", + " return np.array(qtys, dtype=\"object\", copy=copy)\n", + "/Users/michael/opt/miniconda3/envs/ITR/lib/python3.10/site-packages/pint_pandas/pint_array.py:648: UnitStrippedWarning: The unit of the quantity is stripped when downcasting to ndarray.\n", + " return np.array(qtys, dtype=\"object\", copy=copy)\n", + "/Users/michael/opt/miniconda3/envs/ITR/lib/python3.10/site-packages/pint_pandas/pint_array.py:648: UnitStrippedWarning: The unit of the quantity is stripped when downcasting to ndarray.\n", + " return np.array(qtys, dtype=\"object\", copy=copy)\n", + "/Users/michael/opt/miniconda3/envs/ITR/lib/python3.10/site-packages/pint_pandas/pint_array.py:648: UnitStrippedWarning: The unit of the quantity is stripped when downcasting to ndarray.\n", + " return np.array(qtys, dtype=\"object\", copy=copy)\n", + "/Users/michael/opt/miniconda3/envs/ITR/lib/python3.10/site-packages/pint_pandas/pint_array.py:648: UnitStrippedWarning: The unit of the quantity is stripped when downcasting to ndarray.\n", + " return np.array(qtys, dtype=\"object\", copy=copy)\n", + "/Users/michael/opt/miniconda3/envs/ITR/lib/python3.10/site-packages/pint_pandas/pint_array.py:648: UnitStrippedWarning: The unit of the quantity is stripped when downcasting to ndarray.\n", + " return np.array(qtys, dtype=\"object\", copy=copy)\n", + "/Users/michael/opt/miniconda3/envs/ITR/lib/python3.10/site-packages/pint_pandas/pint_array.py:648: UnitStrippedWarning: The unit of the quantity is stripped when downcasting to ndarray.\n", + " return np.array(qtys, dtype=\"object\", copy=copy)\n", + "/Users/michael/opt/miniconda3/envs/ITR/lib/python3.10/site-packages/pint_pandas/pint_array.py:648: UnitStrippedWarning: The unit of the quantity is stripped when downcasting to ndarray.\n", + " return np.array(qtys, dtype=\"object\", copy=copy)\n", + "/Users/michael/opt/miniconda3/envs/ITR/lib/python3.10/site-packages/pint_pandas/pint_array.py:648: UnitStrippedWarning: The unit of the quantity is stripped when downcasting to ndarray.\n", + " return np.array(qtys, dtype=\"object\", copy=copy)\n", + "/Users/michael/opt/miniconda3/envs/ITR/lib/python3.10/site-packages/pint_pandas/pint_array.py:648: UnitStrippedWarning: The unit of the quantity is stripped when downcasting to ndarray.\n", + " return np.array(qtys, dtype=\"object\", copy=copy)\n", + "/Users/michael/opt/miniconda3/envs/ITR/lib/python3.10/site-packages/pint_pandas/pint_array.py:648: UnitStrippedWarning: The unit of the quantity is stripped when downcasting to ndarray.\n", + " return np.array(qtys, dtype=\"object\", copy=copy)\n", + "/Users/michael/opt/miniconda3/envs/ITR/lib/python3.10/site-packages/pint_pandas/pint_array.py:648: UnitStrippedWarning: The unit of the quantity is stripped when downcasting to ndarray.\n", + " return np.array(qtys, dtype=\"object\", copy=copy)\n", + "/Users/michael/opt/miniconda3/envs/ITR/lib/python3.10/site-packages/pint_pandas/pint_array.py:648: UnitStrippedWarning: The unit of the quantity is stripped when downcasting to ndarray.\n", + " return np.array(qtys, dtype=\"object\", copy=copy)\n", + "/Users/michael/opt/miniconda3/envs/ITR/lib/python3.10/site-packages/pint_pandas/pint_array.py:648: UnitStrippedWarning: The unit of the quantity is stripped when downcasting to ndarray.\n", + " return np.array(qtys, dtype=\"object\", copy=copy)\n", + "/Users/michael/opt/miniconda3/envs/ITR/lib/python3.10/site-packages/pint_pandas/pint_array.py:648: UnitStrippedWarning: The unit of the quantity is stripped when downcasting to ndarray.\n", + " return np.array(qtys, dtype=\"object\", copy=copy)\n", + "/Users/michael/opt/miniconda3/envs/ITR/lib/python3.10/site-packages/pint_pandas/pint_array.py:648: UnitStrippedWarning: The unit of the quantity is stripped when downcasting to ndarray.\n", + " return np.array(qtys, dtype=\"object\", copy=copy)\n", + "/Users/michael/opt/miniconda3/envs/ITR/lib/python3.10/site-packages/pint_pandas/pint_array.py:648: UnitStrippedWarning: The unit of the quantity is stripped when downcasting to ndarray.\n", + " return np.array(qtys, dtype=\"object\", copy=copy)\n", + "/Users/michael/opt/miniconda3/envs/ITR/lib/python3.10/site-packages/pint_pandas/pint_array.py:648: UnitStrippedWarning: The unit of the quantity is stripped when downcasting to ndarray.\n", + " return np.array(qtys, dtype=\"object\", copy=copy)\n", + "/Users/michael/opt/miniconda3/envs/ITR/lib/python3.10/site-packages/pint_pandas/pint_array.py:648: UnitStrippedWarning: The unit of the quantity is stripped when downcasting to ndarray.\n", + " return np.array(qtys, dtype=\"object\", copy=copy)\n", + "/Users/michael/opt/miniconda3/envs/ITR/lib/python3.10/site-packages/pint_pandas/pint_array.py:648: UnitStrippedWarning: The unit of the quantity is stripped when downcasting to ndarray.\n", + " return np.array(qtys, dtype=\"object\", copy=copy)\n", + "/Users/michael/opt/miniconda3/envs/ITR/lib/python3.10/site-packages/pint_pandas/pint_array.py:648: UnitStrippedWarning: The unit of the quantity is stripped when downcasting to ndarray.\n", + " return np.array(qtys, dtype=\"object\", copy=copy)\n" + ] + }, { "name": "stdout", "output_type": "stream", @@ -323,6 +453,18 @@ "Benchmark Global Budget = 521.0526315789474 CO2 * gigametric_ton\n", "AFOLU included = False\n" ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/Users/michael/opt/miniconda3/envs/ITR/lib/python3.10/site-packages/pint_pandas/pint_array.py:648: UnitStrippedWarning: The unit of the quantity is stripped when downcasting to ndarray.\n", + " return np.array(qtys, dtype=\"object\", copy=copy)\n", + "/Users/michael/opt/miniconda3/envs/ITR/lib/python3.10/site-packages/pint_pandas/pint_array.py:648: UnitStrippedWarning: The unit of the quantity is stripped when downcasting to ndarray.\n", + " return np.array(qtys, dtype=\"object\", copy=copy)\n", + "/Users/michael/opt/miniconda3/envs/ITR/lib/python3.10/site-packages/pint_pandas/pint_array.py:648: UnitStrippedWarning: The unit of the quantity is stripped when downcasting to ndarray.\n", + " return np.array(qtys, dtype=\"object\", copy=copy)\n" + ] } ], "source": [ @@ -335,6 +477,32 @@ "AFOLU included = {base_intensity_bm.is_AFOLU_included}\")" ] }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "1.0 CO2 kilogram/passenger_km" + ], + "text/latex": [ + "$1.0\\ \\frac{\\mathrm{CO2} \\cdot \\mathrm{kilogram}}{\\mathrm{passenger\\_km}}$" + ], + "text/plain": [ + "1.0 " + ] + }, + "execution_count": 11, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "ureg(\"kg CO2/passenger km\")" + ] + }, { "cell_type": "markdown", "metadata": {}, @@ -348,7 +516,7 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": 13, "metadata": {}, "outputs": [ { @@ -381,44 +549,44 @@ " \n", " \n", " \n", - " 48\n", + " 50\n", " Versant Power\n", " NQZVQT2P5IUF2PGA1Q48\n", " CA2908761018\n", " CA2908761018\n", - " 43918\n", + " 245914\n", " \n", " \n", - " 49\n", + " 51\n", " Vistra Corp.\n", " 549300KP43CPCUJOOG15\n", " US92840M1027\n", " US92840M1027\n", - " 95541\n", + " 200210\n", " \n", " \n", - " 50\n", + " 52\n", " WEC Energy Group\n", " 549300IGLYTZUK3PVP70\n", " US92939U1060\n", " US92939U1060\n", - " 192147\n", + " 130869\n", " \n", " \n", - " 51\n", + " 53\n", " WORTHINGTON INDUSTRIES INC\n", " 1WRCIANKYOIK6KYE5E82\n", " US9818111026\n", " US9818111026\n", - " 145112\n", + " 38704\n", " \n", " \n", - " 52\n", + " 54\n", " Xcel Energy, Inc.\n", " LGJNMI9GH8XIDG5RCM61\n", " US98389B1008\n", " US98389B1008\n", - " 43111\n", + " 140754\n", " \n", " \n", "\n", @@ -426,18 +594,18 @@ ], "text/plain": [ " company_name company_lei company_id \\\n", - "48 Versant Power NQZVQT2P5IUF2PGA1Q48 CA2908761018 \n", - "49 Vistra Corp. 549300KP43CPCUJOOG15 US92840M1027 \n", - "50 WEC Energy Group 549300IGLYTZUK3PVP70 US92939U1060 \n", - "51 WORTHINGTON INDUSTRIES INC 1WRCIANKYOIK6KYE5E82 US9818111026 \n", - "52 Xcel Energy, Inc. LGJNMI9GH8XIDG5RCM61 US98389B1008 \n", + "50 Versant Power NQZVQT2P5IUF2PGA1Q48 CA2908761018 \n", + "51 Vistra Corp. 549300KP43CPCUJOOG15 US92840M1027 \n", + "52 WEC Energy Group 549300IGLYTZUK3PVP70 US92939U1060 \n", + "53 WORTHINGTON INDUSTRIES INC 1WRCIANKYOIK6KYE5E82 US9818111026 \n", + "54 Xcel Energy, Inc. LGJNMI9GH8XIDG5RCM61 US98389B1008 \n", "\n", " company_isin investment_value \n", - "48 CA2908761018 43918 \n", - "49 US92840M1027 95541 \n", - "50 US92939U1060 192147 \n", - "51 US9818111026 145112 \n", - "52 US98389B1008 43111 " + "50 CA2908761018 245914 \n", + "51 US92840M1027 200210 \n", + "52 US92939U1060 130869 \n", + "53 US9818111026 38704 \n", + "54 US98389B1008 140754 " ] }, "metadata": {}, @@ -458,7 +626,7 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": 14, "metadata": {}, "outputs": [], "source": [ @@ -475,9 +643,18 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": 15, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/Users/michael/opt/miniconda3/envs/ITR/lib/python3.10/site-packages/pint_pandas/pint_array.py:648: UnitStrippedWarning: The unit of the quantity is stripped when downcasting to ndarray.\n", + " return np.array(qtys, dtype=\"object\", copy=copy)\n" + ] + } + ], "source": [ "temperature_score = TemperatureScore(\n", " time_frames = [ETimeFrames.LONG],\n", @@ -496,7 +673,7 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": 16, "metadata": {}, "outputs": [ { @@ -529,374 +706,388 @@ " \n", " \n", " 0\n", - " AES Corp.\n", + " Oil and Gas A\n", " LONG\n", " S1S2\n", - " 1.79\n", + " 1.47\n", " \n", " \n", " 1\n", - " ALLETE, Inc.\n", + " Oil and Gas B\n", " LONG\n", " S1S2\n", - " 1.7\n", + " 1.41\n", " \n", " \n", " 2\n", - " Alliant Energy\n", + " AES Corp.\n", " LONG\n", " S1S2\n", - " 1.67\n", + " 1.89\n", " \n", " \n", " 3\n", - " Ameren Corp.\n", + " ALLETE, Inc.\n", " LONG\n", " S1S2\n", - " 2.28\n", + " 1.77\n", " \n", " \n", " 4\n", - " American Electric Power Co., Inc.\n", + " Alliant Energy\n", " LONG\n", " S1S2\n", - " 1.96\n", + " 1.75\n", " \n", " \n", " 5\n", - " Avangrid, Inc.\n", + " Ameren Corp.\n", " LONG\n", " S1S2\n", - " 2.1\n", + " 2.42\n", " \n", " \n", " 6\n", - " Black Hills Corp.\n", + " American Electric Power Co., Inc.\n", " LONG\n", " S1S2\n", - " 1.98\n", + " 2.06\n", " \n", " \n", " 7\n", - " CARPENTER TECHNOLOGY CORP\n", + " Avangrid, Inc.\n", " LONG\n", " S1S2\n", - " 1.63\n", + " 2.22\n", " \n", " \n", " 8\n", - " CLEVELAND-CLIFFS INC\n", + " Black Hills Corp.\n", " LONG\n", " S1S2\n", - " 1.43\n", + " 2.13\n", " \n", " \n", " 9\n", - " CMS Energy Corp.\n", + " CARPENTER TECHNOLOGY CORP\n", " LONG\n", " S1S2\n", - " 2.01\n", + " 1.92\n", " \n", " \n", " 10\n", - " COMMERCIAL METALS CO\n", + " CLEVELAND-CLIFFS INC\n", " LONG\n", " S1S2\n", - " 1.45\n", + " 1.56\n", " \n", " \n", " 11\n", - " Cleco Partners LP\n", + " CMS Energy Corp.\n", " LONG\n", " S1S2\n", - " 2.38\n", + " 2.16\n", " \n", " \n", " 12\n", - " Consolidated Edison, Inc.\n", + " COMMERCIAL METALS CO\n", " LONG\n", " S1S2\n", - " 2.05\n", + " 1.6\n", " \n", " \n", " 13\n", - " DTE Energy\n", + " Cleco Partners LP\n", " LONG\n", " S1S2\n", - " 2.77\n", + " 2.55\n", " \n", " \n", " 14\n", - " Dominion Energy\n", + " Consolidated Edison, Inc.\n", " LONG\n", " S1S2\n", - " 1.81\n", + " 2.2\n", " \n", " \n", " 15\n", - " Duke Energy Corp.\n", + " DTE Energy\n", " LONG\n", " S1S2\n", - " 1.87\n", + " 3.02\n", " \n", " \n", " 16\n", - " Edison International\n", + " Dominion Energy\n", " LONG\n", " S1S2\n", - " 2.91\n", + " 1.85\n", " \n", " \n", " 17\n", - " Entergy Corp.\n", + " Duke Energy Corp.\n", " LONG\n", " S1S2\n", - " 1.84\n", + " 1.93\n", " \n", " \n", " 18\n", - " Evergy, Inc.\n", + " Edison International\n", " LONG\n", " S1S2\n", - " 1.81\n", + " 3.16\n", " \n", " \n", " 19\n", + " Entergy Corp.\n", + " LONG\n", + " S1S2\n", + " 1.93\n", + " \n", + " \n", + " 20\n", + " Evergy, Inc.\n", + " LONG\n", + " S1S2\n", + " 1.89\n", + " \n", + " \n", + " 21\n", " Eversource Energy\n", " LONG\n", " S1S2\n", " 1.23\n", " \n", " \n", - " 20\n", + " 22\n", " Exelon Corp.\n", " LONG\n", " S1S2\n", - " 2.6\n", + " 4.37\n", " \n", " \n", - " 21\n", + " 23\n", " FirstEnergy Corp.\n", " LONG\n", " S1S2\n", - " 1.73\n", + " 1.79\n", " \n", " \n", - " 22\n", + " 24\n", " Fortis, Inc.\n", " LONG\n", " S1S2\n", - " 1.65\n", + " 1.7\n", " \n", " \n", - " 23\n", + " 25\n", " GERDAU S.A.\n", " LONG\n", " S1S2\n", - " 1.53\n", + " 1.63\n", " \n", " \n", - " 24\n", + " 26\n", " Hawaiian Electric Industries, Inc.\n", " LONG\n", " S1S2\n", - " 2.38\n", + " 2.61\n", " \n", " \n", - " 25\n", + " 27\n", " MDU Resources Group\n", " LONG\n", " S1S2\n", - " 2.27\n", + " 2.48\n", " \n", " \n", - " 26\n", + " 28\n", " NUCOR CORP\n", " LONG\n", " S1S2\n", - " 1.54\n", + " 1.73\n", " \n", " \n", - " 27\n", + " 29\n", " National Grid PLC\n", " LONG\n", " S1S2\n", - " 2.25\n", + " 2.02\n", " \n", " \n", - " 28\n", + " 30\n", " NextEra Energy, Inc.\n", " LONG\n", " S1S2\n", - " 1.77\n", + " 1.86\n", " \n", " \n", - " 29\n", + " 31\n", " NIPPON STEEL CORP\n", " LONG\n", " S1S2\n", - " 1.81\n", + " 1.92\n", " \n", " \n", - " 30\n", + " 32\n", " Nisource Inc.\n", " LONG\n", " S1S2\n", - " 1.91\n", + " 2.02\n", " \n", " \n", - " 31\n", + " 33\n", " Northwestern Corp.\n", " LONG\n", " S1S2\n", - " 1.78\n", + " 1.85\n", " \n", " \n", - " 32\n", + " 34\n", " OG&E Energy Corp.\n", " LONG\n", " S1S2\n", - " 2.28\n", + " 2.45\n", " \n", " \n", - " 33\n", + " 35\n", " PG&E Corp.\n", " LONG\n", " S1S2\n", - " 2.58\n", + " 2.71\n", " \n", " \n", - " 34\n", + " 36\n", " PNM Resources, Inc.\n", " LONG\n", " S1S2\n", - " 1.93\n", + " 2.05\n", " \n", " \n", - " 35\n", + " 37\n", " POSCO\n", " LONG\n", " S1S2\n", - " 1.83\n", + " 1.94\n", " \n", " \n", - " 36\n", + " 38\n", " PPL Corp.\n", " LONG\n", " S1S2\n", - " 2.26\n", + " 2.39\n", " \n", " \n", - " 37\n", + " 39\n", " Pinnacle West Capital Corp.\n", " LONG\n", " S1S2\n", - " 2.17\n", + " 2.31\n", " \n", " \n", - " 38\n", + " 40\n", " Portland General Electric Co.\n", " LONG\n", " S1S2\n", - " 1.77\n", + " 1.87\n", " \n", " \n", - " 39\n", + " 41\n", " Public Service Enterprise Group\n", " LONG\n", " S1S2\n", - " 1.49\n", + " 1.53\n", " \n", " \n", - " 40\n", + " 42\n", " Sempra\n", " LONG\n", " S1S2\n", - " 2.33\n", + " 2.54\n", " \n", " \n", - " 41\n", + " 43\n", " Southern Co.\n", " LONG\n", " S1S2\n", - " 1.89\n", + " 2.01\n", " \n", " \n", - " 42\n", + " 44\n", " STEEL DYNAMICS INC\n", " LONG\n", " S1S2\n", - " 1.59\n", + " 1.81\n", " \n", " \n", - " 43\n", + " 45\n", " TC Energy Corp.\n", " LONG\n", " S1S2\n", - " 2.56\n", + " 2.83\n", " \n", " \n", - " 44\n", + " 46\n", " TENARIS SA\n", " LONG\n", " S1S2\n", - " 1.58\n", + " 1.62\n", " \n", " \n", - " 45\n", + " 47\n", " TERNIUM S.A.\n", " LONG\n", " S1S2\n", - " 1.71\n", + " 1.73\n", " \n", " \n", - " 46\n", + " 48\n", " TIMKENSTEEL CORP\n", " LONG\n", " S1S2\n", - " 1.45\n", + " 1.59\n", " \n", " \n", - " 47\n", + " 49\n", " UNITED STATES STEEL CORP\n", " LONG\n", " S1S2\n", - " 1.54\n", + " 1.76\n", " \n", " \n", - " 48\n", + " 50\n", " Versant Power\n", " LONG\n", " S1S2\n", - " 1.55\n", + " 1.58\n", " \n", " \n", - " 49\n", + " 51\n", " Vistra Corp.\n", " LONG\n", " S1S2\n", - " 2.22\n", + " 2.36\n", " \n", " \n", - " 50\n", + " 52\n", " WEC Energy Group\n", " LONG\n", " S1S2\n", - " 1.84\n", + " 1.95\n", " \n", " \n", - " 51\n", + " 53\n", " WORTHINGTON INDUSTRIES INC\n", " LONG\n", " S1S2\n", - " 1.28\n", + " 1.32\n", " \n", " \n", - " 52\n", + " 54\n", " Xcel Energy, Inc.\n", " LONG\n", " S1S2\n", - " 1.71\n", + " 1.8\n", " \n", " \n", "\n", @@ -904,59 +1095,61 @@ ], "text/plain": [ " company_name time_frame scope temperature_score\n", - "0 AES Corp. LONG S1S2 1.79\n", - "1 ALLETE, Inc. LONG S1S2 1.7\n", - "2 Alliant Energy LONG S1S2 1.67\n", - "3 Ameren Corp. LONG S1S2 2.28\n", - "4 American Electric Power Co., Inc. LONG S1S2 1.96\n", - "5 Avangrid, Inc. LONG S1S2 2.1\n", - "6 Black Hills Corp. LONG S1S2 1.98\n", - "7 CARPENTER TECHNOLOGY CORP LONG S1S2 1.63\n", - "8 CLEVELAND-CLIFFS INC LONG S1S2 1.43\n", - "9 CMS Energy Corp. LONG S1S2 2.01\n", - "10 COMMERCIAL METALS CO LONG S1S2 1.45\n", - "11 Cleco Partners LP LONG S1S2 2.38\n", - "12 Consolidated Edison, Inc. LONG S1S2 2.05\n", - "13 DTE Energy LONG S1S2 2.77\n", - "14 Dominion Energy LONG S1S2 1.81\n", - "15 Duke Energy Corp. LONG S1S2 1.87\n", - "16 Edison International LONG S1S2 2.91\n", - "17 Entergy Corp. LONG S1S2 1.84\n", - "18 Evergy, Inc. LONG S1S2 1.81\n", - "19 Eversource Energy LONG S1S2 1.23\n", - "20 Exelon Corp. LONG S1S2 2.6\n", - "21 FirstEnergy Corp. LONG S1S2 1.73\n", - "22 Fortis, Inc. LONG S1S2 1.65\n", - "23 GERDAU S.A. LONG S1S2 1.53\n", - "24 Hawaiian Electric Industries, Inc. LONG S1S2 2.38\n", - "25 MDU Resources Group LONG S1S2 2.27\n", - "26 NUCOR CORP LONG S1S2 1.54\n", - "27 National Grid PLC LONG S1S2 2.25\n", - "28 NextEra Energy, Inc. LONG S1S2 1.77\n", - "29 NIPPON STEEL CORP LONG S1S2 1.81\n", - "30 Nisource Inc. LONG S1S2 1.91\n", - "31 Northwestern Corp. LONG S1S2 1.78\n", - "32 OG&E Energy Corp. LONG S1S2 2.28\n", - "33 PG&E Corp. LONG S1S2 2.58\n", - "34 PNM Resources, Inc. LONG S1S2 1.93\n", - "35 POSCO LONG S1S2 1.83\n", - "36 PPL Corp. LONG S1S2 2.26\n", - "37 Pinnacle West Capital Corp. LONG S1S2 2.17\n", - "38 Portland General Electric Co. LONG S1S2 1.77\n", - "39 Public Service Enterprise Group LONG S1S2 1.49\n", - "40 Sempra LONG S1S2 2.33\n", - "41 Southern Co. LONG S1S2 1.89\n", - "42 STEEL DYNAMICS INC LONG S1S2 1.59\n", - "43 TC Energy Corp. LONG S1S2 2.56\n", - "44 TENARIS SA LONG S1S2 1.58\n", - "45 TERNIUM S.A. LONG S1S2 1.71\n", - "46 TIMKENSTEEL CORP LONG S1S2 1.45\n", - "47 UNITED STATES STEEL CORP LONG S1S2 1.54\n", - "48 Versant Power LONG S1S2 1.55\n", - "49 Vistra Corp. LONG S1S2 2.22\n", - "50 WEC Energy Group LONG S1S2 1.84\n", - "51 WORTHINGTON INDUSTRIES INC LONG S1S2 1.28\n", - "52 Xcel Energy, Inc. LONG S1S2 1.71" + "0 Oil and Gas A LONG S1S2 1.47\n", + "1 Oil and Gas B LONG S1S2 1.41\n", + "2 AES Corp. LONG S1S2 1.89\n", + "3 ALLETE, Inc. LONG S1S2 1.77\n", + "4 Alliant Energy LONG S1S2 1.75\n", + "5 Ameren Corp. LONG S1S2 2.42\n", + "6 American Electric Power Co., Inc. LONG S1S2 2.06\n", + "7 Avangrid, Inc. LONG S1S2 2.22\n", + "8 Black Hills Corp. LONG S1S2 2.13\n", + "9 CARPENTER TECHNOLOGY CORP LONG S1S2 1.92\n", + "10 CLEVELAND-CLIFFS INC LONG S1S2 1.56\n", + "11 CMS Energy Corp. LONG S1S2 2.16\n", + "12 COMMERCIAL METALS CO LONG S1S2 1.6\n", + "13 Cleco Partners LP LONG S1S2 2.55\n", + "14 Consolidated Edison, Inc. LONG S1S2 2.2\n", + "15 DTE Energy LONG S1S2 3.02\n", + "16 Dominion Energy LONG S1S2 1.85\n", + "17 Duke Energy Corp. LONG S1S2 1.93\n", + "18 Edison International LONG S1S2 3.16\n", + "19 Entergy Corp. LONG S1S2 1.93\n", + "20 Evergy, Inc. LONG S1S2 1.89\n", + "21 Eversource Energy LONG S1S2 1.23\n", + "22 Exelon Corp. LONG S1S2 4.37\n", + "23 FirstEnergy Corp. LONG S1S2 1.79\n", + "24 Fortis, Inc. LONG S1S2 1.7\n", + "25 GERDAU S.A. LONG S1S2 1.63\n", + "26 Hawaiian Electric Industries, Inc. LONG S1S2 2.61\n", + "27 MDU Resources Group LONG S1S2 2.48\n", + "28 NUCOR CORP LONG S1S2 1.73\n", + "29 National Grid PLC LONG S1S2 2.02\n", + "30 NextEra Energy, Inc. LONG S1S2 1.86\n", + "31 NIPPON STEEL CORP LONG S1S2 1.92\n", + "32 Nisource Inc. LONG S1S2 2.02\n", + "33 Northwestern Corp. LONG S1S2 1.85\n", + "34 OG&E Energy Corp. LONG S1S2 2.45\n", + "35 PG&E Corp. LONG S1S2 2.71\n", + "36 PNM Resources, Inc. LONG S1S2 2.05\n", + "37 POSCO LONG S1S2 1.94\n", + "38 PPL Corp. LONG S1S2 2.39\n", + "39 Pinnacle West Capital Corp. LONG S1S2 2.31\n", + "40 Portland General Electric Co. LONG S1S2 1.87\n", + "41 Public Service Enterprise Group LONG S1S2 1.53\n", + "42 Sempra LONG S1S2 2.54\n", + "43 Southern Co. LONG S1S2 2.01\n", + "44 STEEL DYNAMICS INC LONG S1S2 1.81\n", + "45 TC Energy Corp. LONG S1S2 2.83\n", + "46 TENARIS SA LONG S1S2 1.62\n", + "47 TERNIUM S.A. LONG S1S2 1.73\n", + "48 TIMKENSTEEL CORP LONG S1S2 1.59\n", + "49 UNITED STATES STEEL CORP LONG S1S2 1.76\n", + "50 Versant Power LONG S1S2 1.58\n", + "51 Vistra Corp. LONG S1S2 2.36\n", + "52 WEC Energy Group LONG S1S2 1.95\n", + "53 WORTHINGTON INDUSTRIES INC LONG S1S2 1.32\n", + "54 Xcel Energy, Inc. LONG S1S2 1.8" ] }, "metadata": {}, @@ -979,7 +1172,7 @@ }, { "cell_type": "code", - "execution_count": 14, + "execution_count": 17, "metadata": {}, "outputs": [ { @@ -997,22 +1190,22 @@ }, { "cell_type": "code", - "execution_count": 15, + "execution_count": 18, "metadata": {}, "outputs": [ { "data": { "text/html": [ - "1.9291962691985898 delta_degree_Celsius" + "2.028177727328954 delta_degree_Celsius" ], "text/latex": [ - "$1.9291962691985898\\ \\mathrm{delta\\_degree\\_Celsius}$" + "$2.028177727328954\\ \\mathrm{delta\\_degree\\_Celsius}$" ], "text/plain": [ - "1.9291962691985898 " + "2.028177727328954 " ] }, - "execution_count": 15, + "execution_count": 18, "metadata": {}, "output_type": "execute_result" } @@ -1044,11 +1237,20 @@ }, { "cell_type": "code", - "execution_count": 16, + "execution_count": 19, "metadata": { "scrolled": true }, - "outputs": [], + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/Users/michael/opt/miniconda3/envs/ITR/lib/python3.10/site-packages/pint_pandas/pint_array.py:648: UnitStrippedWarning: The unit of the quantity is stripped when downcasting to ndarray.\n", + " return np.array(qtys, dtype=\"object\", copy=copy)\n" + ] + } + ], "source": [ "grouping = ['sector', 'region']\n", "temperature_score.grouping = grouping\n", @@ -1072,14 +1274,14 @@ }, { "cell_type": "code", - "execution_count": 17, + "execution_count": 20, "metadata": {}, "outputs": [ { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ - "

      " + "
      " ] }, "metadata": { @@ -1095,7 +1297,7 @@ }, { "cell_type": "code", - "execution_count": 18, + "execution_count": 21, "metadata": {}, "outputs": [ { @@ -1132,16 +1334,16 @@ " Steel-Asia\n", " NIPPON STEEL CORP\n", " JP3381000003\n", - " 1.81 delta_degree_Celsius\n", - " 50.836536594021496 percent\n", + " 1.92 delta_degree_Celsius\n", + " 64.47775290245785 percent\n", " \n", " \n", " 1\n", " Steel-Asia\n", " POSCO\n", " KR7005490008\n", - " 1.83 delta_degree_Celsius\n", - " 49.16346340597851 percent\n", + " 1.94 delta_degree_Celsius\n", + " 35.52224709754215 percent\n", " \n", " \n", "\n", @@ -1149,15 +1351,15 @@ ], "text/plain": [ " group company_name company_id temperature_score \\\n", - "0 Steel-Asia NIPPON STEEL CORP JP3381000003 1.81 delta_degree_Celsius \n", - "1 Steel-Asia POSCO KR7005490008 1.83 delta_degree_Celsius \n", + "0 Steel-Asia NIPPON STEEL CORP JP3381000003 1.92 delta_degree_Celsius \n", + "1 Steel-Asia POSCO KR7005490008 1.94 delta_degree_Celsius \n", "\n", - " contribution_relative \n", - "0 50.836536594021496 percent \n", - "1 49.16346340597851 percent " + " contribution_relative \n", + "0 64.47775290245785 percent \n", + "1 35.52224709754215 percent " ] }, - "execution_count": 18, + "execution_count": 21, "metadata": {}, "output_type": "execute_result" } @@ -1191,9 +1393,18 @@ }, { "cell_type": "code", - "execution_count": 19, + "execution_count": 22, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/Users/michael/opt/miniconda3/envs/ITR/lib/python3.10/site-packages/pint_pandas/pint_array.py:648: UnitStrippedWarning: The unit of the quantity is stripped when downcasting to ndarray.\n", + " return np.array(qtys, dtype=\"object\", copy=copy)\n" + ] + } + ], "source": [ "time_frames = [ETimeFrames.LONG]\n", "scopes = [EScope.S1S2]\n", @@ -1212,12 +1423,12 @@ }, { "cell_type": "code", - "execution_count": 20, + "execution_count": 23, "metadata": {}, "outputs": [ { "data": { - "image/png": "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x/79+w/s37//wAEDBgxcuHBhXuWdvCpWRESk0KxcubKkJkjUBJDM5bNmzWp97bXXbjlq1KjJEydO/Gj33XdffvXVV5etWLHCvvvd7/b5/e9///mkSZMmjhw5clLnzp3XXnbZZTOPOOKIhR9//PHEs846ayHAJ5980n7UqFGTnnvuuf9l7juZTG7ZuXPntZMnT544efLkiRUVFUsyl990003Te/fuvfLjjz+eeOedd04/88wz5z3wwAPdAObPn99qzJgxHU888cQvs32tV1xxxZwePXqsHjly5OR33nlncmPrt2/f3ut6PTXOOeec3hdffPHs8ePHf/TUU09NOffccxNh3VvccsstUz/++OOJb7/99scdO3aszrbGONBpTRERkQg1dlrz9ddf33TKlCnthwwZ0h9g9erVtsceeywdN25c+x49eqweNmzYcoCuXbvWG0CGDx/+ZceOHde7KnXUqFGdH3300c9qpktLS9c2VGtFRcXSn/70p9vMnDmz9UMPPbR5RUXFwjZt2qyzjpnVefVrffM3xptvvtn5k08+6VAzvXTp0laLFi0qKS8vX3rJJZf0PuGEExacfPLJC/v06aNwJiIiIs3D3dlnn30W1271evfddzvUt01tm266abOFkxNPPHH+3Xff3fWJJ57o+uc//zlde3mPHj3WLFq0aJ18sXDhwtalpaVrmquGGu7O+++//9Emm2yyTvC79tprvzj66KMXPfPMM12+/e1v90+lUp/stttuK5r7+LmicCYkkqm2QEdg04xHO2A+MCNdVbE0wvJEWkwimTKgM7A50AVoHy6qBlYBKwk6Is9NV1U0+weNSF3222+/ZSNGjNh6/Pjx7XbaaaeVixcvLkmn02122WWXFXPmzGkzcuTITYYNG7Z84cKFJR07dqzu3Lnz2qVLl2bVbWnYsGGLb7755h733XffNIC5c+e2ymw969Kly9ply5ats69zzz133tChQwd079599R577LFe4Nlpp51Wzp49u83777/ffvfdd18xefLkth9//HGH8vLyrwA23XTTtYsWLSrZcssts3r9Db2effbZZ/F1113X4+qrr54NwZWqe++991cTJkxoN2TIkK+GDBny1ZgxYzYZP358e4UziY1EMtUd2LHWY0vWDWMN/h4kkqklwExgRvh1Zsb0xHRVRbNdZSSSa4lkaiuC90FfYPvw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hrMZQO+M6V7hvK+5+3x3XxlO3gPske22IiIiIoUol+HsPaCvmW1rZm2BkwjuNPA1M9syY/JI4KPw+UvAwWa2uZltDhwczhMREREpaA1drblR3H2NmZ1PEKpaAfe5+wQzuwoY7e7PAheY2ZHAGmABcHq47QIzu5og4AFc1QwXKIiIiIjEXs7CGYC7v0Bw26fMeb/MeH4ZcFk9294H3JfL+kRERETiJuoLAkREREQkg8KZiIiISIwonImIiIjEiMKZiIiISIwonImIiIjEiMKZiIiISIwonImIiIjEiMKZiIiISIwonImIiIjEiMKZiIiISIwonImIiIjEiMKZiIiISIwonImIiIjESE7DmZkNN7NJZvapmSXrWH6xmU00s3Fm9k8z2yZj2VozGxs+ns1lnSIiIiJx0TpXOzazVsBtwHeA6cB7Zvasu0/MWO2/wGB3X25mPwKuB04Ml33l7oNyVZ+IiIhIHOWy5WwI8Km7f+buq4BHgaMyV3D319x9eTj5NtArh/WIiIiIxF4uw1lPYFrG9PRwXn1+CLyYMd3ezEab2dtmdnR9G5nZ2eF6o+fOnbtRBYuIiIhELWenNZvCzL4HDAaGZczext1nmNl2wL/M7EN3n1J7W3e/C7gLYPDgwd4iBYuIiIjkSC5bzmYAvTOme4Xz1mFmBwG/AI5095U18919Rvj1M+B1YLcc1ioiIiISC7kMZ+8Bfc1sWzNrC5wErHPVpZntBtxJEMzmZMzf3Mzahc+7A98CMi8kEBERESlIOTut6e5rzOx84CWgFXCfu08ws6uA0e7+LHAD0BH4u5kBfO7uRwIDgDvNrJogQFbVuspTREREpCDltM+Zu78AvFBr3i8znh9Uz3ZvATvnsjYRERGRONIdAkRERERiROFMREREJEYUzkRERERiROFMREREJEYUzkRERERiROFMREREJEYUzkRERERiROFMREREJEYUzkRERERiROFMREREJEYUzkRERERiROFMREREJEZyGs7MbLiZTTKzT80sWcfydmb2t3D5O2aWyFh2WTh/kpkdkss6RUREROIiZ+HMzFoBtwGHAgOBk81sYK3VfggsdPftgZuB34bbDgROAnYEhgO3h/sTERERKWi5bDkbAnzq7p+5+yrgUeCoWuscBTwQPn8cONDMLJz/qLuvdPf/AZ+G+xMREREpaK1zuO+ewLSM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\n", + "image/png": "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FhH0V/tuv+4+gSA0fh0ec51TmO4+keB1/ReCVuwjCC6OWZ1ETRt7L4tIFjH19xQRERFpfGoJExEREYmAQpiIiIhIBBTCRERERCKgECYiIiISAYUwERERkQgohImIiIhEQCFMREREJAIKYSIiIiIRUAgTERERiYBCmIiIiEgEFMJEREREIqAQJiIiIhIBhTARERGRCCiEiYiIiERAIUxEREQkAgphIiIiIhFQCBMRERGJgEKYiIiISAQKoi5AREQk1T799NPOBQUF9wMDUQNErqgBxqxdu/asQYMGzY26mPoohImISNYrKCi4v0uXLv07deq0MC8vz6OuR1KvpqbGKisrB8yePft+4Mio66mPvg2IiEguGNipU6fFCmC5Iy8vzzt16lRF0PqZlhTCREQkF+QpgOWe8G+etlknbQsTERERyWbqEyYiIjknVlYxqCH3Fy8v+XRT2+Tn5w/q3bv3itr7xxxzzILhw4fPHjJkSN/bbrtt2n777bd8c475/vvvF06bNq3piSeeWFXf+rfffrvFgw8+2GHEiBHTNrSP/ffff8enn376G4D777+/fVlZWWWyx3/ppZda33777UVvvvnm5Nplxx57bOzwww+vOvPMMxf+/ve/73zJJZfMa926dU3isTp27FjdokWL3ZcvX/6/eDze5LzzzuvxyiuvfF33+Tz66KNtx44dWzh8+PDZydaUaRTCREREGkGzZs1qJkyYMK6h9jdq1KgWo0aNallfCFuzZg377bff8k0Fu5EjR04GmDhxYtMHHnig8+aEsE259957i84+++wFtSGs9liJYrHYmldeeeVrWP/5nHLKKVVAvQEzW+h0pIiISJp45pln2uy22279BgwY0H/YsGE7VFVV5QGMHDmyxe67796vb9++A3beeef+8+fPz7/55pu3ffHFF7fp16/fgL///e/bXHrppduefPLJ2+2zzz69jznmmO1feuml1gcccMCOAFVVVXnHHXdcrE+fPgP69OkzYMSIEe0AunXrtvOsWbMKLrvssu7Tpk1r1q9fvwHnnntu96OPPnr7Rx55pF1tXUceeeT2jz76aNtkn8eNN97Yee7cuU3233//PnvuuWefxGMlbjdx4sSmvXv33mnlypVW9/nceeedHU477bSeADNnziw45JBDeg0cOLD/wIED+7/22mstASoqKlr169dvQL9+/Qb0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\n", "text/plain": [ "
      " ] @@ -1243,7 +1454,7 @@ }, { "cell_type": "code", - "execution_count": 21, + "execution_count": 24, "metadata": {}, "outputs": [ { @@ -1278,148 +1489,136 @@ " \n", " \n", " \n", - " 6\n", - " NIPPON STEEL CORP\n", - " JP3381000003\n", + " 7\n", + " STEEL DYNAMICS INC\n", + " US8581191009\n", " Steel\n", - " 2.9130907855950587 percent\n", + " 2.7558113586151483 percent\n", " 1.81 delta_degree_Celsius\n", " 0.00\n", - " 3.10\n", + " 3.09\n", " \n", " \n", - " 8\n", - " POSCO\n", - " KR7005490008\n", + " 11\n", + " CLEVELAND-CLIFFS INC\n", + " US1858991011\n", " Steel\n", - " 2.8172185170603976 percent\n", - " 1.83 delta_degree_Celsius\n", - " 0.00\n", - " 2.97\n", + " 2.5575109683489123 percent\n", + " 1.56 delta_degree_Celsius\n", + " 0.01\n", + " 3.33\n", " \n", " \n", - " 12\n", + " 22\n", " UNITED STATES STEEL CORP\n", " US9129091081\n", " Steel\n", - " 2.4689410373359575 percent\n", - " 1.54 delta_degree_Celsius\n", + " 1.9636631996367924 percent\n", + " 1.76 delta_degree_Celsius\n", " 0.01\n", - " 3.09\n", + " 2.26\n", " \n", " \n", - " 13\n", - " STEEL DYNAMICS INC\n", - " US8581191009\n", + " 23\n", + " GERDAU S.A.\n", + " US3737371050\n", " Steel\n", - " 2.4544172947810194 percent\n", - " 1.59 delta_degree_Celsius\n", - " 0.00\n", - " 2.98\n", + " 1.9450148926165305 percent\n", + " 1.63 delta_degree_Celsius\n", + " 0.01\n", + " 2.42\n", " \n", " \n", - " 18\n", - " TIMKENSTEEL CORP\n", - " US8873991033\n", + " 25\n", + " NUCOR CORP\n", + " US6703461052\n", " Steel\n", - " 2.267819939835686 percent\n", - " 1.45 delta_degree_Celsius\n", - " 0.07\n", - " 3.02\n", + " 1.851255548080782 percent\n", + " 1.73 delta_degree_Celsius\n", + " 0.00\n", + " 2.17\n", " \n", " \n", - " 30\n", - " TENARIS SA\n", - " US88031M1099\n", + " 27\n", + " NIPPON STEEL CORP\n", + " JP3381000003\n", " Steel\n", - " 1.6305147136798643 percent\n", - " 1.58 delta_degree_Celsius\n", - " 0.03\n", - " 1.99\n", + " 1.8125153154159122 percent\n", + " 1.92 delta_degree_Celsius\n", + " 0.00\n", + " 1.91\n", " \n", " \n", - " 35\n", - " GERDAU S.A.\n", - " US3737371050\n", + " 34\n", + " COMMERCIAL METALS CO\n", + " US2017231034\n", " Steel\n", - " 1.369323549228698 percent\n", - " 1.53 delta_degree_Celsius\n", + " 1.5263437189477258 percent\n", + " 1.6 delta_degree_Celsius\n", " 0.01\n", - " 1.73\n", + " 1.93\n", " \n", " \n", - " 37\n", - " WORTHINGTON INDUSTRIES INC\n", - " US9818111026\n", + " 36\n", + " TIMKENSTEEL CORP\n", + " US8873991033\n", " Steel\n", - " 1.2794653617250622 percent\n", - " 1.28 delta_degree_Celsius\n", - " 0.01\n", - " 1.93\n", + " 1.182843558893695 percent\n", + " 1.59 delta_degree_Celsius\n", + " 0.03\n", + " 1.51\n", " \n", " \n", - " 38\n", - " CLEVELAND-CLIFFS INC\n", - " US1858991011\n", + " 41\n", + " POSCO\n", + " KR7005490008\n", " Steel\n", - " 1.1770074168371203 percent\n", - " 1.43 delta_degree_Celsius\n", + " 0.9985555327848478 percent\n", + " 1.94 delta_degree_Celsius\n", " 0.00\n", - " 1.59\n", + " 1.04\n", " \n", " \n", - " 45\n", - " CARPENTER TECHNOLOGY CORP\n", - " US1442851036\n", + " 44\n", + " TENARIS SA\n", + " US88031M1099\n", " Steel\n", - " 0.7376691124999515 percent\n", - " 1.63 delta_degree_Celsius\n", - " 0.00\n", - " 0.87\n", + " 0.7751761399822685 percent\n", + " 1.62 delta_degree_Celsius\n", + " 0.01\n", + " 0.97\n", " \n", " \n", "\n", "" ], "text/plain": [ - " company_name company_id sector \\\n", - "6 NIPPON STEEL CORP JP3381000003 Steel \n", - "8 POSCO KR7005490008 Steel \n", - "12 UNITED STATES STEEL CORP US9129091081 Steel \n", - "13 STEEL DYNAMICS INC US8581191009 Steel \n", - "18 TIMKENSTEEL CORP US8873991033 Steel \n", - "30 TENARIS SA US88031M1099 Steel \n", - "35 GERDAU S.A. US3737371050 Steel \n", - "37 WORTHINGTON INDUSTRIES INC US9818111026 Steel \n", - "38 CLEVELAND-CLIFFS INC US1858991011 Steel \n", - "45 CARPENTER TECHNOLOGY CORP US1442851036 Steel \n", + " company_name company_id sector contribution \\\n", + "7 STEEL DYNAMICS INC US8581191009 Steel 2.7558113586151483 percent \n", + "11 CLEVELAND-CLIFFS INC US1858991011 Steel 2.5575109683489123 percent \n", + "22 UNITED STATES STEEL CORP US9129091081 Steel 1.9636631996367924 percent \n", + "23 GERDAU S.A. US3737371050 Steel 1.9450148926165305 percent \n", + "25 NUCOR CORP US6703461052 Steel 1.851255548080782 percent \n", + "27 NIPPON STEEL CORP JP3381000003 Steel 1.8125153154159122 percent \n", + "34 COMMERCIAL METALS CO US2017231034 Steel 1.5263437189477258 percent \n", + "36 TIMKENSTEEL CORP US8873991033 Steel 1.182843558893695 percent \n", + "41 POSCO KR7005490008 Steel 0.9985555327848478 percent \n", + "44 TENARIS SA US88031M1099 Steel 0.7751761399822685 percent \n", "\n", - " contribution temperature_score \\\n", - "6 2.9130907855950587 percent 1.81 delta_degree_Celsius \n", - "8 2.8172185170603976 percent 1.83 delta_degree_Celsius \n", - "12 2.4689410373359575 percent 1.54 delta_degree_Celsius \n", - "13 2.4544172947810194 percent 1.59 delta_degree_Celsius \n", - "18 2.267819939835686 percent 1.45 delta_degree_Celsius \n", - "30 1.6305147136798643 percent 1.58 delta_degree_Celsius \n", - "35 1.369323549228698 percent 1.53 delta_degree_Celsius \n", - "37 1.2794653617250622 percent 1.28 delta_degree_Celsius \n", - "38 1.1770074168371203 percent 1.43 delta_degree_Celsius \n", - "45 0.7376691124999515 percent 1.63 delta_degree_Celsius \n", - "\n", - " ownership_percentage portfolio_percentage \n", - "6 0.00 3.10 \n", - "8 0.00 2.97 \n", - "12 0.01 3.09 \n", - "13 0.00 2.98 \n", - "18 0.07 3.02 \n", - "30 0.03 1.99 \n", - "35 0.01 1.73 \n", - "37 0.01 1.93 \n", - "38 0.00 1.59 \n", - "45 0.00 0.87 " + " temperature_score ownership_percentage portfolio_percentage \n", + "7 1.81 delta_degree_Celsius 0.00 3.09 \n", + "11 1.56 delta_degree_Celsius 0.01 3.33 \n", + "22 1.76 delta_degree_Celsius 0.01 2.26 \n", + "23 1.63 delta_degree_Celsius 0.01 2.42 \n", + "25 1.73 delta_degree_Celsius 0.00 2.17 \n", + "27 1.92 delta_degree_Celsius 0.00 1.91 \n", + "34 1.6 delta_degree_Celsius 0.01 1.93 \n", + "36 1.59 delta_degree_Celsius 0.03 1.51 \n", + "41 1.94 delta_degree_Celsius 0.00 1.04 \n", + "44 1.62 delta_degree_Celsius 0.01 0.97 " ] }, - "execution_count": 21, + "execution_count": 24, "metadata": {}, "output_type": "execute_result" } @@ -1443,7 +1642,7 @@ }, { "cell_type": "code", - "execution_count": 22, + "execution_count": 25, "metadata": { "pycharm": { "name": "#%%\n" @@ -1466,7 +1665,7 @@ }, { "cell_type": "code", - "execution_count": 23, + "execution_count": 26, "metadata": {}, "outputs": [], "source": [ @@ -1490,14 +1689,14 @@ }, { "cell_type": "code", - "execution_count": 24, + "execution_count": 27, "metadata": {}, "outputs": [ { "data": { - "image/png": "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\n", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAPgAAADDCAYAAACvbNxlAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/YYfK9AAAACXBIWXMAAAsTAAALEwEAmpwYAAAeWElEQVR4nO2dd7hdRdWH31/uDQQIEAIIJFRBpApCaArSq1QpMSJVmkYQ+wf6iQhokI4oRVCKgiIC0lRQKR8hlCSGohQpIWACJIGEEkJJft8fM4fsXG7Puefcu896n2c/5+zZs/dZs89ee2bWzKwl2wRBUE761VuAIAh6jlDwICgxoeBBUGJCwYOgxISCB0GJCQUPghITCh70OSStKsmSmustS2+nXQWX9GZhmyvp7cL+gbUSsppImihph3rLEQQVJN0l6YieuHa7b0DbAwtCTASOsP23nhCkGkhqtv1+X/+NrlBPeXrbvag2faF8kgTI9txWM9ju1AZMBHbI3/sB/wM8A0wHrgUG52OrAgYOA14AXgOOATYBHgFmABcUrnsoMBr4GTATeALYvnB8SeAyYArwX+BUoKnFuecAr+ZjqwP/yHJNA34LDMr5rwLmAm8DbwLfAbYBXmynrD8ErgN+A7wOHNGeTK3ct02Bsfncl4GzC8e2BO7L9+QF4NBCma8EpgLPA98H+rVT5oWBM4FJ+TcuAhZpQ56q3u9Wrr8wcC4wOW/nAgsXju8OTMhlvg/4ROHYSsD1udzTyc8J0JTLNw14FhhJesaa23lWTwD+TXr+fg0M6KQME4Hvkp7Vd1r+BqBc/lfy/XsEWK9Q9jb/B2Cv/Luvk3RnF+A0YA4wm/RMVsr8KeCh/BsPAZ8qXOeufN5o0rO8Rpt6200FPx64H1gxF+pi4JoWCn4RMADYKQt/I/ARYGi+OVsXHpr3ga8D/YHhuVCVF8aN+fqL5fMfBI5uce6xpNbIIsAawI5ZrmWBe4BzWytH3t+GjhX8PWBv0ottkfZkauW+jQEOyt8HApvn7ysDbwAjcrmXBjbMx64E/gQsnu/nU8CX2inzucBNwOB8zs3AT9pR8Krd71au/yPSs/GRfP/vA07JxzbK//1mJKU9JN/rhfP+wyTlWYz07GyZzzuG9CJaKZfxTjpW8McK+UeTX0btyVA4d0I+t7Xy7QyMAwaRlH1tYIV8rM3/gfSin0l6NvuR9GCtgsIeUfiNwaQX00H5Po/I+0sX8k8C1s3H+1dbwR9n/rf+CiQlaGaegg8tHJ8ODC/s/xE4vvDQTCY1MyrHH8yFW470Fi2+BUcAdxbOndSB3HsD/1xABb+ncKxdmVr5/XuAk4FlWqSfANzQSv6mfP11CmlHA3e1Vub8kL0FrF5I2wJ4rh0F78n7/QywWwuFmJi/X0hW9sLxJ4Gts8xTaUVpSS2yYwr7O9Gxghfz7wY805EMhXMPb6d825FeuJuTW1Wd+R9IL81z2rjmXcyv4AcBD7bIM4Z5Lby7gB+19z9Utu5aIVcBbpBUbPfPIT0gFV4ufH+7lf2Bhf3/OkueeR4Ykn+nPzAldTWA9PZ7oZC3+B1JHwHOB7YivUX7kd5+C0LxNzojU5EvkWq1JyQ9B5xs+xZSDfFMK/mXARYi3YMKz5Pe+K3JsyywKDCuII9IL4q2qNr9boUhrcg+JH9fBThE0rGF4wvl43OA5916n3dIi999vpU8LWmZvzMytHbufNj+h6QLgJ8DK0u6AfgWqcXR3v+wEnBbJ+SGD9/DShnaegbapLvDZC8Au9oeVNgG2P5vN683VIW7Qmq+Ts6/8w6p9qv8zhK21y3kLT6oAD/JaZ+wvQTwRdKNbiv/W6Q/BgBJTSSlKVI8pzMyzTvR/o/tEaQm6+nAdZIWy9dZvZVTppFaQ6sU0lYm9Ydbk2ca6YW5bkGeJV0wkLZCNe93Sya3Ivvk/P0F4LQWz82itq/Jx1ZuY+hrCklBitfsiJb5OyNDhXbLaPt82xuTmshrAt+m4/+hrf+7td9reQ8rZWjrGWiT7ir4RcBpklYBkLSspL26eS1ID/9xkvpL2p/Ur7nN9hTgduAsSUtI6idpdUlbt3OtxUnGihmShpJufpGXgY8W9p8CBkj6rKT+JIPWwm1dvKsySfqipGWdrJwzcvIckvFvB0kHSGqWtLSkDW3PIRktT5O0eL7H3yAZ+VqTZy7wS+Cc3HpB0lBJO7dVBqp7v1tyDfD9/EwsA/ygIPsvgWMkbabEYvm+L07qJkwBRuX0AZI+nc+7Nsu7oqSlSAbejhiZ8w8GTgR+3wkZOkTSJvnc/qTKYTYwpxP/w2XAYZK2z/d1qKS18rGWz+RtwJqSvpCfjeHAOsAtnZGxSHcV/DySMeF2SW+QjCqbdfNaAA8AHyO9BU8D9rM9PR87mNSEqlhEryP1+dviZJIhZSZwK8kqW+QnpAdwhqRv2Z4JfAW4lPSGfAt4sQN5uyLTLsC/JL1Jum+ftz3b9iRS3/CbJIv0BGCDfM6xWY5ngXuBq4FftSPPd4GngfslvQ78Dfh4O/mreb9bcipp1OAR4FFgfE7D9ljgSOCCfO2nSf168ottD5KRdBLpPxier/lL4K8kI9x4PvyftsbVpJfVs3nrUIZOskSW5zVSs3k6yXIO7fwPth8kjSydQ3o272ZeLX0esJ+k1ySdn/+L3UnPxnTSaM/utqd1QU4gG1rqiaRDSQaGLesqSIPQCPe7L8zZqBUxVTUISkwoeBCUmLo30YMg6DmiBg+CEtPwy+0WlTyo3kK0w5CNNug4Uz15c2q9JeiQcU9Nnma75dwGANaQPKuwPwX+anuXGonW4zS8gg8Cjqq3EO3ww9F/r7cI7TJ39MX1FqFDmnb4Xpsz394GvlzY/0GaSVgaGl7Bg8ZGpLm5ZSUUPGhoQsGDoMSEggdBiQkFD4ISEwoeBCUmFDwISkwoeBCUGFFuJShz2YKgQ6IGD4ISEwoeBCVGgubmgn/K9+bUT5geIBQ8aHBEUyh4EJQTCZr6FxT87frJ0hOEggcNjaT5m+glIxQ8aGyk+WvwkhEeXYKGRoKm5qYPto7zayVJd0p6XNK/JH2tlTySdL6kpyU9ImmjHhG+E0QNHjQ2Ek1NXarn3ge+aXt8DpYwTtIdtv9dyLMrye/8x0jxAi5kweIGdJvS1uCSJubIGkHQJsnI1u+DrSNsT7E9Pn9/gxSIc2iLbHsBVzpxPzBIUleCR1SNqMGDhkZ8yMi2jKSxhf1LbF/S6rnSqsAnSZFiigxl/uCAL+a0KQsscBfpNQou6RvA4Xn3UtvnSvoicBwplM4DwFdsz5G0C/BjUuTGaba3l7Q0KS7WsqQ4V/rQjwRBS1oOk6XnaViHp0kDmRcG+/UPX/VD1MU/ea9ookvamBS3aTNS3OUjJW1Bik31adsbkgL2HShpWVJsqH1tbwDsny9zEnCv7U+S4qa1GYFS0lGSxkoaO6utTEFDIKlLRrZ8Tn+Scv/Wdmtx0l5k/uimKzIvumlN6S01+JbADbbfApB0PbAJsDHwUI50uwjwCukFcI/t5wBsv5qv8RngczntVkltxgTPTa5LAIZIEfmhkZHo17/zapDDLl8GPG777Day3QR8VdLvSJXWzBy5teb0FgVvrUkj4ArbJ8yXKO1J282dUNagSyQjW5fU4NPAQcCjkibktBPJLUbbF5HC/+5GijQ6i9Q6rQu9RcHvAS6XNIqk2PsAR+e0c2y/kuM8Lw6MAX4uaTXbz0kanGvxe4ADgVMl7QosVZ+iBH2KLtbgtu+lA/uOUzywkQsoWVXoFQqexxQvJxnHIBnZRkv6PikGeT/gPWCk7fslHQVcn9NfAXYkxQW/RtJ4UuzlSTUvSNDnUBcVvK/Ra0qW+zNnt0j7PfD7VvL+Gfhzi7TpwE6FpK/3gJhB2QgFD4Ly8qHVZCUjFDxobKIGD4LyEn3wICgzUleHyfoU5S1ZEHSCqMGDoMwI+oWRLQhKikBN5V2XFAoeNDSSUHOvWHPVI4SCBw1P1OBBUFZE1OBBUFqkqMGDoLREDR4E5UVAv+aowYOgnJTcil7ekgVBZxCoqd8HW6dOkX4l6RVJj7VxfElJN0t6OAdHqJtHl1DwoLERqFkfbJ3kcmCXdo6PBP6dnYJuA5wlaaEFkrObNHwTfdDaa7PHVVfVW4w2GfevifUWoV0+uXxd/PlXDSHUxeCDtu/JPtHbzAIsnh00DgReJUVEqTkNr+BBgyNB83xq0OnAB+1wAcmz6mSSH8HhtucumKDdIxQ8aGwkmH81WacCH3TAzsAEYDtgdeAOSf/XSoCEHif64EFjI1INXtmqw2HA9Tk22dPAc8Ba1bp4VwgFDxqbShO9ugo+Cdg+XV7LAR8Hnq3WxbtCNNGDxkZCXXT4IOkaknV8GUkvksJm9YcPAh+cQvLp/yipjfBd29OqKXZnCQUPGpsPG9k6xPaIDo5PZn4X3nUjFDxobLqh4H2J8pYsCDqDaGlFLxXlLVkQdIqowYOgvEjQFE4Xg6CciFDwICgvUYMHQXkR0K+8871CwYMGR9AvavAgKCcCOunooS8SCh40OFGDB0G5iT54EJQUqdRN9NKWTNKqbTnFC4L56Nc0bysZUYMHjY1U6iZ6p0uWa8THJf0yu4K9XdIikjaUdL+kRyTdIGmpnP8uSadLelDSU5K2aufaAyT9WtKjkv4paduc3iTpDEkP5esfXTjnOzn/w5JG5bSN8/4YkmfLIOiYpqZ5W8no6qvrY8DPba8LzAD2Ba4kLWj/BPAoafF7hWbbmwLHt0hvyUgA2+sDI4ArJA0AvgTMtL0JsAlwpKTVJO0K7A1sll3T/jRf59fAcba3aK8Qko6SNFbS2Ndee63ThQ9KiAT9mudtnTqlfb/oOc82kibkyvDuqsnbRbqq4M/ZnpC/jyM5lBtku1KAK4DPFPJfX8i7ajvX3RK4CsD2E8DzwJqkRfMHS5oAPAAsTXrJ7AD82vasfM6rkpZsIUubvpBtX2J7mO1hSy21VEdlDkpN1xWcDvyiSxoE/ALYM1eG+y+olN2lq33wdwrf5wCDOpl/Tge/1ZbHeQHH2v7rfInSLiTf0y3ztkwLgg4QqMseXTryi/4FktPFSTn/K92Xb8FYUOvCTOC1Qv/6IKA7zZF7gAMBJK0JrAw8CfwV+LKk/pVjkhYDbgcOl7RoTh9sewYwU9KW+ZoHdq9IQUMhtbSiL1PpvuXtqG5cdU1gqWyHGifp4OoK3XmqYUU/BLgoK9uzJJexXeUX+RqPkiJAHGr7HUmXkpr243OUiKnA3rb/ImlDYKykd4HbgBPzb/9K0izSyyEIOmb+pnk1/KI3AxuTPKsuAoyRdL/tpxbwut0SpFPYngisV9g/s3B481byb1P4Po12+uC2ZwOHtpI+l6S4J7ZybBQwqkXaOGCDQtIP2/rNIACSV9Xqj3+/SHpRvAW8Jeke0nNZcwUv7wBgEHSK3AevbNXhT8BWkppzy3Yz4PFqXbwr1HSii6SdgdNbJD9ne59ayhEE81BXrOfpjA78ott+XNJfgEeAucCltusyq7KmCp6t4dE3DnoPossK3pFf9JznDOCMbkpVNWKqatDgdL0G70uUt2RB0ClCwYOgvEig8s1BrxAKHgRRgwdBWYkaPAjKS2WqakkJBQ+C6k1w6XWUt2RB0CmEookeBCVFMUwWBOUmavAgKCthZAuCEtN1jy59CdmN7eVI0lSSD7hqsQwwrYrXqzaNKN8qtpdt7UBe9bVMIWma7Tb9rfU1Gl7Bq42ksVXwCNJjhHyNRTh8CIISEwoeBCUmFLz6XFJvATog5Gsgog8eBCUmavAgKDGh4EFQYkLBg6DEhIKXiBz9pc393oCkheotQyMRCt4FKgojqdfdN0lytphK2gjAvcyCKml94EuShtZblkah1z2ovZWKAknaE7iwt9VEBeUeCVwqaUidRWqNIaTQz7v1UvlKRyh4J8nKvRtwMvAH2+/2tiawpL1JARg/a3uypNXqLBIwr+WTA19cDGwN7BlK3vOEgneS/JBuSwqE+Fiuya+WtJOkheuh7IUug/L3JYGrgQ0k/QC4S9K1kpaotWxFGYtdBdu3A+cDnyGUvMcJBW+HotLmh/RV4CjgWmB9YBYpDrlr3d9toTj98/fRwN7A4cDDwDBS+NoNaylbkULX4RhJ50saBUwHzgM+DewuacV6yVd2yrsQdgEp9Ll3AdYBDPwU2BKYbPs/ktYELgeWBybVUr6C4hxNimT5T+BmYJscdrkS7HEoKW573ch2gX2AE4BzgCbb35a0GHA88L6kK2zPqaOY5cR2bG1swE7AP4FNSbXOaYVjewKPAXvWUb4vA3eTasK7gRuBffKxw4HxwPq94D7+AFgUOA74M7AQsHA+tgUwpN4ylnWLGryApOWARWxPzM3zvYBDSTX0k8BFhexDgeNt/61lP7MH5VsJeAN4E1gCWA7YAzgEmAP8HThY0kzgj8DfbVfTmUVnZGztXiwPjAUet71rzneMpFm2r6ylfI1GKHhG0sKkWvluSQNsz5Y0HTgaWAs41PYLkr4IzLZ9YeXcGin3zsB3gd8Dt9t+TtLPSENPe9jeTtKqwMHAQcCYeiq3pH2Ad4CpwCiSzWJsPnYY8DXSCzToSerdhOhNG7AYyX3Pz4GVgR2B2cCO+fgw4F/AtjWW67PAoyTL8zKF9Gbg48D4vL8ncBmwbJ3v4zeAO/Pn/cDupG7OQyQD5RhgnXr/342wNXwNLmkRYCXbT5GUex3gddLDeRJwJHCWpPHAusAJtu+soXyDge8Ax9q+p5A+Enjf9sWSHpE0Glga2M/21FrJl2WpGCRFalF82va2kn4EvALcmo9vTrLqN9ueUUsZG5WGXw+ep0/uDiwFbASMAFYA9gUGA98HBpIezP62H69VnzvLtzxwHbB7RSkknQl8jmSwesL2zyR9DHjNdk0dKkpa3PYb+fsKJIeJvwMmA6sABzh1d0YAD9iuq0W/0WjYcXBJH5W0Lcl4thIwErjX9lTbjwB/Ij2sZwKDbD9t+3Go7Rxv2y+RvL5+vJB8G7A28AdgbUlL2v5PHZR7SeAwSYdJOgr4le33SMNyu5BaHbMlHU6yH8yqpXxBYxvZVgHeBt4nWcffAgZL+rzt39ken5vv25DGwOtCXtgyAzhU0pO2Z9j+Rz62Iqm1UY9ZdJ8FNgeuB/5GslVslA//FngX+JOk24Fdgc/nl1VQQxquiS5pDdJQ2KO5fzua1K++MddCm5FqxomkB/g226/USdZK33ZxUjP92fz5KMnw9lXgQNtP1Fiu3YHTgFOBG0jdmOHAxbbPLeTbifRyfCaa5nWi3la+Wm+kqaZzgQ3z/gGkySx75P0jSLXSVLL1vM7yNuXPxUndhd+Sasw7qMMkFtKY9p3AJi3Sh5FeQMfm/f2A9ep9/xp9a5gmeh4jfsP2JZKagX9I2t72tZLeBX4saa7tSyXdCnzE9sM1lG9TYEnbdxSNeLbnSOpv+w1J37ZtSYOAd23Xo0/7DvAeMDt3Yb5LWoTzMvAi8D1J65H64DvVQb6gQMMoOKmmvkvSTNu/kNQf+HtW8hslGbggG6yuBqbUSjBJewGnAN+RtJDtd3P6MNtjnQxXFJR+Rq1ka4UZwF9JrYl1Sa2Jq4DHSaMRvwX+C/zE9sT6iBh8QL2bELXcSOPc/yTPfSbNpnqVec31fYCtaizTQqQlntsW0voBa5C6Ch8F+uV01fseZjkGkuaQH0CeU57TLwf2r7d8sc3bSl2DSxoIrOC08msL4IG8XStpP9vnSZoDPCRpM9s35PNqNs5NMkINBIZJmkYy7g0iKfmTJCv/UsD0GsrULrbfJM1GG1NJk7Q/aTrqKfWSK/gwpbWiF2ZVXQ6MI8173tf2v/Mc7k2BvWy/JOnrwGO276iTrOuSPJ2sSRrj/gSpi7Al8BxpHPxQ26/VQ772yJNbhpNm/A23/VidRQoKlFLB8+yvbW1fk9dLnw+cYvvUQp7zge2BHWxPyWm1nKHWz/ZcSU1OhrSlSO6gfga85GRUO4U02eY3tqfXQq6ukg1t2wFP2n663vIE81PWmWzDgC9IOgh4gTQ0dkhuRgJg+zjS+unVC2m1WBW2WraKz81KPidPZplL+j/WAwYquYTaEfhjb1VuANtv2741lLt3Uso+uO1bspV8L+BO21dIeonkDfV10jDPgcARtezXFhaOvCzpNNvvVWpyYKakB0hLPQ8lzYM/yvaLtZIvKB+laaIr+dpexfZ9hbR9SYsybs9KvidplVgzcK7t62oo32pOa7j3IHUNXgbOzErebPv9nG8I6QWEa7wqLCgfpVDwbFA7iGTo+Z7nX1a5D/AF4GzbY7JRCNtTatXnzv3rE0iui94hzW/fn9R9mE/Ja2zBD0pOKRQcQNLSpHHsvYEzbN9dOHYiaY7551wHx35KQRIEbEwy/p0maTvSdM6ikodyB1WlNEa2bIi6HrgJ+JakrQuH7yMNNc2tpUySVswvnuVsvwMsDGwq6XinFWHXkVaD/W82vIVyB1WlVEY2269Kuo6kyCdJuozkeOAs4Ac1NqjtBfwPqa+9gqSbgAuAM4Cv5dr6nGwM3JHkRLHXWsuDvkmfb6LnPvXrwKyKAucm8c7AsaR50X/MlvVa9bm3JU1cGQE8Q/J+eiXwF+B00rrp44AJtn8saVHXZ+FIUHL6dA2elftM4Fu236oMOTkt1rhZ0l+AOXnMuZb9208B59sep+Sh9UlJB5DG3d+2PSq/hA6WNNj2qzWSK2gw+nQfPM9Ae5fkeIA8nlw8/l4lrUY1d8WzyoqkhS0A7+TZas+Txrd3zePh9wFfDuUOepI+peB5xheSlldyMgipn/umUtCCuga9L7xErgO2lLRxTnPua08l9bPftT3b9tv1kjVoDPpEE13SoiQXwe9K2pjUf50jaRJwIckB4U7AVb3EEn0/cC8wXBK2xwFzJW1JWhnWv67SBQ1DnzCy5THj/UluinYCfg28RLJK30syZs0mrWaqaTSPtsgz644gLcQYQ+pK7AeMcA09xQSNTa9W8KwkU7KR7DbSDLDP2f5LPt4PWJXkgHAf4H9tj66TuB8ir7QaRrLoTwP+bPvJ+koVNBK9XcHPI4XieYzkuXMD0mSRA23PbJH3KJIiDa/M6w6CRqdXG9lsf400xn0FMMr2vqSpnX+AD4IXDM/ZpwJLAk31kDUIeiO9UsErlnBJA50c960I/CY3yUcCkyQ9QpqWWllx9Q5wXJ4SGgQBvbCJXpmQohQ5Y1fgO7ZnSbqFFInkgHx8X+AF2w8Wz6uj6EHQ6+h1Cg6Qh5MuAY4sGs0k3QgMAHYtTEsNxQ6CNugVTXRJK0n6VCFpG+Aa26MlNeVJItjem+QMoRIDqyYz1IKgr1L3iS65X70B8IKkJWy/ThpSWq2SJa+V3hx42fYe9ZI1CPoada/B8+KQW4Cngasl7QjcDuwi6XPA8pI2Ik1uGVxHUYOgz1HXPnjBoLYdKZyvSBNWvkeK+HESKab0UOCntm+qm7BB0AepaxM9K/cnSAtGvkGqxU1aM/0923tkf2ZL2p4YBrUg6Bo1V/CikkpaneSz/GXniBiS/kTyyHK2pDNs3wq8BmFQC4KuUtM+uKQBpKB1SFoD2JC0fHIFSbtBcrsE3EKavfZyLeULgrJR0z54XjyyB8kH2fokzydzgK+Qppne4RwfrOgrPAiC7lHTGtz2f0nj2PsAD9ie5hRQ7ypSGN89CjV5KHcQLCA1UfDC3PK1SQtFDgKelDRK0vK2J5Giak4nOSkMgqAK1KyJLmkX0vTTPW1PyH7Ldyc5ahhPmp12Ua7lgyCoArWqwVcGRpHWcU8AyJFHbs5ZzgAeCuUOgurSozV4YSLLKsBZtvfL6QNsz87RPN7LzfSXYpw7CKpLj9TgBc+mi+XPycAQSd8EyMq9I3BOnov+ck4P5Q6CKlL1iS6FWntn4CuSHgJeBL5GCif0UeBOkgumk1r6Mg+CoHr0SBNd0lbAL0heRb9K8qN2GPARUhjdl4Axtv8czfIg6DmqouB5AsuywCPZA+r+pOmlbwE/A/a1/bykZV0Iah/KHQQ9S7X64HsD5wOfzPuzgMtJQQl2ysq9M3CspEq/PPrcQdDDLJCCZ6+mn7f9c9Ia7h9KGgbcTQrf83DOtxUphO+Dtt9aQJmDIOgk3VZwSR8Hrq/s2z4VGE1aw70WabHIRFLI3O8DJzqH8F0QgYMg6Dzd6oNLWodkRLvK9mXZZ9r6tsdLOonkguk0p/C5AwFsvxl97iCoLV2uwbMy3wS8kZW7iVRLbw1g+2TS1NMzJG1i+03bb+ZjodxBUEO6PA6eZ56NAG6VNJK05HOC7XMKeU6VNLuKcgZB0A26PUyWjWl3AE/Y3qKQvjmwoe2LqiNiEATdpdtGNttjSf7L15J0JED2bf5Lkm+1IAjqzAJPdMk1+W2kdd7rA6dnP2pBENSZas1k2wT4B3CQ7RsX+IJBEFSFqs1Fz5FAYygsCHoR1VwuGjPUgqCX0SujiwZBUB3qHpssCIKeIxQ8CEpMKHgQlJhQ8CAoMaHgQVBi/h967hxA8F3TXwAAAABJRU5ErkJggg==\n", "text/plain": [ - "
      " + "
      " ] }, "metadata": { @@ -1514,6 +1713,13 @@ "analysis_parameters = ([ETimeFrames.LONG], [EScope.S1S2], grouping)\n", "plot_grouped_heatmap(grouped_aggregations, analysis_parameters)" ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] } ], "metadata": { @@ -1532,9 +1738,9 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.12" + "version": "3.10.2" } }, "nbformat": 4, "nbformat_minor": 4 -} \ No newline at end of file +} From 3651f4ade723f74ca54b0e6f7729b53b0f81b06d Mon Sep 17 00:00:00 2001 From: MichaelTiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> Date: Wed, 20 Jul 2022 17:50:29 -0400 Subject: [PATCH 301/345] Use generic ProductionMetric instead of specialized metic constructors that cause combinatorial explosions. Signed-off-by: MichaelTiemannOSC Signed-off-by: MichaelTiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- test/test_interfaces.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/test/test_interfaces.py b/test/test_interfaces.py index 915015f2..9d2af373 100644 --- a/test/test_interfaces.py +++ b/test/test_interfaces.py @@ -5,7 +5,7 @@ from ITR.data.osc_units import ureg, Q_, PA_ -from ITR.interfaces import EScope, PowerGeneration, IntensityMetric, IProjection, IBenchmark, ICompanyData, \ +from ITR.interfaces import EScope, ProductionMetric, IntensityMetric, IProjection, IBenchmark, ICompanyData, \ ICompanyEIProjectionsScopes, ICompanyEIProjections, ITargetData @@ -22,9 +22,9 @@ def setUp(self) -> None: def test_Escope(self): self.assertEqual(EScope.get_result_scopes(), [EScope.S1S2, EScope.S3, EScope.S1S2S3]) - def test_PowerGeneration(self): - x = PowerGeneration(units='MWh') - print(f"\n PowerGeneration: x.units = {x.units}\n\n") + def test_ProductionMetric(self): + x = ProductionMetric(units='MWh') + print(f"\n ProductionMetric(units='MWh'): x.units = {x.units}\n\n") def test_IProjection(self): row = pd.Series([0.9, 0.8, 0.7], From de0f43858233023c7312b48c808bc909e5a5d855 Mon Sep 17 00:00:00 2001 From: MichaelTiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> Date: Wed, 7 Sep 2022 19:05:06 -0400 Subject: [PATCH 302/345] Fix compatibility checks for automotive metrics (passenger_km). Also update OECM JSON and XLSX files with latest OECM numbers. This should really be fixed by automating the ingestion of OECM original data. Signed-off-by: MichaelTiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- ITR/interfaces.py | 4 +- .../OECM_EI_and_production_benchmarks.xlsx | Bin 13327 -> 12599 bytes .../data/json-units/benchmark_EI_OECM.json | 416 +++++++++++++++++- .../json-units/benchmark_production_OECM.json | 416 +++++++++++++++++- 4 files changed, 832 insertions(+), 4 deletions(-) diff --git a/ITR/interfaces.py b/ITR/interfaces.py index 9ceef122..4b7e14aa 100644 --- a/ITR/interfaces.py +++ b/ITR/interfaces.py @@ -25,7 +25,7 @@ def unit_must_be_production(cls, v): if qty.is_compatible_with("Fe_ton"): return v if qty.is_compatible_with("passenger_km"): - return qty.u + return v if qty.is_compatible_with("boe"): return v raise ValueError(f"cannot convert {v} to units of production") @@ -52,7 +52,7 @@ def units_must_be_EI(cls, v): if qty.is_compatible_with("t CO2/Fe_ton"): return v if qty.is_compatible_with("g CO2/passenger_km"): - return qty.u + return v if qty.is_compatible_with("kg CO2/boe"): return v raise ValueError(f"cannot convert {v} to known t CO2/production unit") diff --git a/examples/data/OECM_EI_and_production_benchmarks.xlsx b/examples/data/OECM_EI_and_production_benchmarks.xlsx index e2181454c3c65eede72249d7041d5cecb643928b..53689664aee4bc9402798c18a9f516a42a0cf3c8 100644 GIT binary patch literal 12599 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 dzvBPnb(Lfx-!byXP6Bw4!S`VTEAt Date: Wed, 7 Sep 2022 19:40:42 -0400 Subject: [PATCH 303/345] Add Oil & Gas and Autos as sectors. Signed-off-by: MichaelTiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- ITR/data/excel.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ITR/data/excel.py b/ITR/data/excel.py index 8e5b6fb1..de6d7ce8 100644 --- a/ITR/data/excel.py +++ b/ITR/data/excel.py @@ -22,8 +22,8 @@ # Excel spreadsheets don't have units elaborated, so we translate sectors to units -sector_to_production_metric = {'Electricity Utilities': 'GJ', 'Steel': 'Fe_ton'} -sector_to_intensity_metric = {'Electricity Utilities': 't CO2/MWh', 'Steel': 't CO2/Fe_ton'} +sector_to_production_metric = {'Electricity Utilities': 'GJ', 'Steel': 'Fe_ton', 'Oil & Gas': 'boe', 'Autos': 'passenger_km'} +sector_to_intensity_metric = {'Electricity Utilities': 't CO2/MWh', 'Steel': 't CO2/Fe_ton', 'Oil & Gas': 'kg CO2/boe', 'Autos': 'g CO2/passenger_km'} # TODO: Force validation for excel benchmarks From cec4321663a71aa04c3c9686f0d1d8a9a102b98f Mon Sep 17 00:00:00 2001 From: MichaelTiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> Date: Thu, 8 Sep 2022 07:37:32 -0400 Subject: [PATCH 304/345] Fix up unit errors in O&G and Autos. Also remove below 2-degree Autos data from not-below 2-degree JSON file. Signed-off-by: MichaelTiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- .../data/20220720 ITR Tool Sample Data.xlsx | Bin 169041 -> 57799 bytes .../data/json-units/benchmark_EI_OECM.json | 6 +- .../benchmark_EI_TPI_1_5_degrees.json | 142 +++++++++++++++++- .../benchmark_EI_TPI_2_degrees.json | 142 +----------------- .../benchmark_EI_TPI_below_2_degrees.json | 140 ++++++++++++++++- 5 files changed, 285 insertions(+), 145 deletions(-) diff --git a/examples/data/20220720 ITR Tool Sample Data.xlsx b/examples/data/20220720 ITR Tool Sample Data.xlsx index d7570ba42d7259d6bfd7966b21ac2b345aa64441..863bb90e87c7a8ba6997de3a9aebd547b9375fb7 100644 GIT binary patch delta 47697 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 n&PX}1^R5{{fN8(=^H|I^h& zbhq6qkw=hJ2qSnFA|J0F?ei*cm}87$ir~`d^So^YPq$ovm%wh{Eu>UW zqf-kSCA^egY&^3O`bw*%*02W!E|53alJzKY!q{z08{f6RIf2%AL#fHITPRur7F=Z2 zidv8U^TxYQ-Qk%zP(>_#Of-4YMtL~lGBnt!zOI@Z>Y2g~3pNYmwt|QRW(6qO8s~+( z{R_2DPKaW^g!c6{rRRE#HBLSNH1$N^R_DZZ(VyQQWqhRe@)?zJ)^U8qKfaej-XWou zjjSD@NaB_)|9vm~4!}6|^qiMUdy8Dijm00Fs!0s+bYw=iP;h0)!b{y#{%**RJn+Sysrx!YL(7pir(0|b9j<(2cd zt*Ofzj3(NrQ7Npnc>{vXiAKdnh->zES8TGxr4+;^A{+ei?E|BB%~u@XndcIy3L8NK z5g>WuD$g6Zvj1fO(qXE=zd!2Jx_6+D17(+FM9{^qC7Bh+;gD((NR{clF1s08by>E% zH|SMplC8El&79jdP7<2p&)WzVw?Fj9uijL{3<3@qmP1lSd z-0a5XgjciQ%F_W!{x|YR3hkG*po@wCS-bxW%+db{-Ov9(=j7~RZQ}F~WS3bs zHTj|_zk8n55ZGka3p?(}1S@Q>^I1M;O&7W{SWcfn#!HR;8Gm=Id_HFV5E;abWS~0x zW!pJ9neOC%Gzl{>@vzek+I<5iTn91WPtg-E{3A%|#Bk^sG}@*%pW7s zb@G4QP$cHL{r7|SYVoUqxy20)pw$eR5FUBNM}2+W;%(Z=pfz04oZ~5b{1Jp>=v~9Y zJKn=r%-|mx|KkS7pDHbzbemdNV@OcHIb&L*f0)fv`F@{ z(*IPrpOsc~Gr)aP?MGs&x0EWUs9v(HOwTFQ&&@n!cI)08fmuLD*^Tvj7Qy^

      -l8 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 a=Y<%Ld|qg1e2e@``%*(Am4+OH#{U7da$GL} diff --git a/examples/data/json-units/benchmark_EI_OECM.json b/examples/data/json-units/benchmark_EI_OECM.json index f7f50822..1525b470 100644 --- a/examples/data/json-units/benchmark_EI_OECM.json +++ b/examples/data/json-units/benchmark_EI_OECM.json @@ -1382,7 +1382,7 @@ ], "scenario name": "OECM 1.5 Degrees", "release date": "2022", - "unit": "t CO2/GJ" + "unit": "g CO2/passenger_km" }, { "sector": "Autos", @@ -1520,7 +1520,7 @@ ], "scenario name": "OECM 1.5 Degrees", "release date": "2022", - "unit": "t CO2/GJ" + "unit": "g CO2/passenger_km" }, { "sector": "Autos", @@ -1658,7 +1658,7 @@ ], "scenario name": "OECM 1.5 Degrees", "release date": "2022", - "unit": "t CO2/GJ" + "unit": "g CO2/passenger_km" } ] }, diff --git a/examples/data/json-units/benchmark_EI_TPI_1_5_degrees.json b/examples/data/json-units/benchmark_EI_TPI_1_5_degrees.json index 9c821962..37f785c6 100644 --- a/examples/data/json-units/benchmark_EI_TPI_1_5_degrees.json +++ b/examples/data/json-units/benchmark_EI_TPI_1_5_degrees.json @@ -969,9 +969,149 @@ "scenario name": "1.5 Degrees", "release date": "1-4-2022", "unit": "Carbon intensity (tonnes of CO2 per tonne of steel)" + }, + { + "sector": "Autos", + "region": "Global", + "benchmark_metric": { "units": "g CO2/passenger_km" }, + "projections": [ + + + { + "year": 2019, + "value": 123.0 + }, + { + "year": 2020, + "value": 117.0 + }, + { + "year": 2021, + "value": 116.0 + }, + { + "year": 2022, + "value": 114.0 + }, + { + "year": 2023, + "value": 112.0 + }, + { + "year": 2024, + "value": 111.0 + }, + { + "year": 2025, + "value": 109.0 + }, + { + "year": 2026, + "value": 108.0 + }, + { + "year": 2027, + "value": 107.0 + }, + { + "year": 2028, + "value": 106.0 + }, + { + "year": 2029, + "value": 105.0 + }, + { + "year": 2030, + "value": 104.0 + }, + { + "year": 2031, + "value": 103.0 + }, + { + "year": 2032, + "value": 102.0 + }, + { + "year": 2033, + "value": 101.0 + }, + { + "year": 2034, + "value": 100.0 + }, + { + "year": 2035, + "value": 100.0 + }, + { + "year": 2036, + "value": 99.0 + }, + { + "year": 2037, + "value": 98.0 + }, + { + "year": 2038, + "value": 97.0 + }, + { + "year": 2039, + "value": 96.0 + }, + { + "year": 2040, + "value": 95.0 + }, + { + "year": 2041, + "value": 94.0 + }, + { + "year": 2042, + "value": 93.0 + }, + { + "year": 2043, + "value": 92.0 + }, + { + "year": 2044, + "value": 91.0 + }, + { + "year": 2045, + "value": 91.0 + }, + { + "year": 2046, + "value": 90.0 + }, + { + "year": 2047, + "value": 89.0 + }, + { + "year": 2048, + "value": 88.0 + }, + { + "year": 2049, + "value": 87.0 + }, + { + "year": 2050, + "value": 86.0 + } + ], + "scenario name": "1.5 Degrees", + "release date": "1-4-2022", + "unit": "g CO2/passenger kilometer" } ] }, "S3": null, "S1S2S3": null -} \ No newline at end of file +} diff --git a/examples/data/json-units/benchmark_EI_TPI_2_degrees.json b/examples/data/json-units/benchmark_EI_TPI_2_degrees.json index 2511dc6d..aaf5eb96 100644 --- a/examples/data/json-units/benchmark_EI_TPI_2_degrees.json +++ b/examples/data/json-units/benchmark_EI_TPI_2_degrees.json @@ -421,145 +421,7 @@ { "sector": "Autos", "region": "Global", - "benchmark_metric": { "units": "g CO2/km" }, - "projections": [ - { - "year": 2019, - "value": 119.0 - }, - { - "year": 2020, - "value": 113.0 - }, - { - "year": 2021, - "value": 104.0 - }, - { - "year": 2022, - "value": 95.0 - }, - { - "year": 2023, - "value": 86.0 - }, - { - "year": 2024, - "value": 77.0 - }, - { - "year": 2025, - "value": 68.0 - }, - { - "year": 2026, - "value": 62.0 - }, - { - "year": 2027, - "value": 57.0 - }, - { - "year": 2028, - "value": 51.0 - }, - { - "year": 2029, - "value": 46.0 - }, - { - "year": 2030, - "value": 40.0 - }, - { - "year": 2031, - "value": 37.0 - }, - { - "year": 2032, - "value": 34.0 - }, - { - "year": 2033, - "value": 31.0 - }, - { - "year": 2034, - "value": 27.0 - }, - { - "year": 2035, - "value": 24.0 - }, - { - "year": 2036, - "value": 22.0 - }, - { - "year": 2037, - "value": 21.0 - }, - { - "year": 2038, - "value": 19.0 - }, - { - "year": 2039, - "value": 17.0 - }, - { - "year": 2040, - "value": 15.0 - }, - { - "year": 2041, - "value": 14.0 - }, - { - "year": 2042, - "value": 13.0 - }, - { - "year": 2043, - "value": 12.0 - }, - { - "year": 2044, - "value": 11.0 - }, - { - "year": 2045, - "value": 10.0 - }, - { - "year": 2046, - "value": 9.0 - }, - { - "year": 2047, - "value": 8.0 - }, - { - "year": 2048, - "value": 8.0 - }, - { - "year": 2049, - "value": 7.0 - }, - { - "year": 2050, - "value": 6.0 - } - ], - "scenario name": "2 Degrees (High Efficiency)", - "release date": "1-12-2020", - "unit": "Average new vehicle emissions (grams of CO2 per kilometre [NEDC])" - }, - { - "sector": "Autos", - "region": "Global", - "benchmark_metric": { "units": "g CO2/km" }, + "benchmark_metric": { "units": "g CO2/passenger_km" }, "projections": [ { "year": 2019, @@ -698,4 +560,4 @@ }, "S3": null, "S1S2S3": null -} \ No newline at end of file +} diff --git a/examples/data/json-units/benchmark_EI_TPI_below_2_degrees.json b/examples/data/json-units/benchmark_EI_TPI_below_2_degrees.json index d7631fbe..ffb51613 100644 --- a/examples/data/json-units/benchmark_EI_TPI_below_2_degrees.json +++ b/examples/data/json-units/benchmark_EI_TPI_below_2_degrees.json @@ -969,9 +969,147 @@ "scenario name": "Below 2 Degrees", "release date": "1-4-2022", "unit": "Carbon intensity (tonnes of CO2 per tonne of steel)" + }, + { + "sector": "Autos", + "region": "Global", + "benchmark_metric": { "units": "g CO2/passenger_km" }, + "projections": [ + { + "year": 2019, + "value": 119.0 + }, + { + "year": 2020, + "value": 113.0 + }, + { + "year": 2021, + "value": 104.0 + }, + { + "year": 2022, + "value": 95.0 + }, + { + "year": 2023, + "value": 86.0 + }, + { + "year": 2024, + "value": 77.0 + }, + { + "year": 2025, + "value": 68.0 + }, + { + "year": 2026, + "value": 62.0 + }, + { + "year": 2027, + "value": 57.0 + }, + { + "year": 2028, + "value": 51.0 + }, + { + "year": 2029, + "value": 46.0 + }, + { + "year": 2030, + "value": 40.0 + }, + { + "year": 2031, + "value": 37.0 + }, + { + "year": 2032, + "value": 34.0 + }, + { + "year": 2033, + "value": 31.0 + }, + { + "year": 2034, + "value": 27.0 + }, + { + "year": 2035, + "value": 24.0 + }, + { + "year": 2036, + "value": 22.0 + }, + { + "year": 2037, + "value": 21.0 + }, + { + "year": 2038, + "value": 19.0 + }, + { + "year": 2039, + "value": 17.0 + }, + { + "year": 2040, + "value": 15.0 + }, + { + "year": 2041, + "value": 14.0 + }, + { + "year": 2042, + "value": 13.0 + }, + { + "year": 2043, + "value": 12.0 + }, + { + "year": 2044, + "value": 11.0 + }, + { + "year": 2045, + "value": 10.0 + }, + { + "year": 2046, + "value": 9.0 + }, + { + "year": 2047, + "value": 8.0 + }, + { + "year": 2048, + "value": 8.0 + }, + { + "year": 2049, + "value": 7.0 + }, + { + "year": 2050, + "value": 6.0 + } + ], + "scenario name": "Below 2 Degrees", + "release date": "1-4-2022", + "unit": "Average new vehicle emissions (grams of CO2 per kilometre [NEDC])" } ] }, "S3": null, "S1S2S3": null -} \ No newline at end of file +} From f8b689b092d99e638ec7e1940b40b0a7fe4e92b7 Mon Sep 17 00:00:00 2001 From: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> Date: Thu, 8 Sep 2022 04:44:19 -0400 Subject: [PATCH 305/345] Update DataTemplateRequirements.rst Remove trailing space that messes up quoted code in MacOS installation instructions. Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- docs/DataTemplateRequirements.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/DataTemplateRequirements.rst b/docs/DataTemplateRequirements.rst index b700223c..06b70dae 100644 --- a/docs/DataTemplateRequirements.rst +++ b/docs/DataTemplateRequirements.rst @@ -179,7 +179,7 @@ If you don't already have a conda environment, you'll need to download one from If you are installing conda on a Windows system, follow these instructions: https://conda.io/projects/conda/en/latest/user-guide/install/windows.html You will want to open the Anaconda PowerShell after installation, which you can do from the Start menu. -If you are on OSX, you will need to install parts of the (utterly massive) Xcode system. The subset you'll need can be installed by typing :code:`xcode-select --install` into a Terminal window (which you can open from Applications>Utilities>Terminal). Thought it is tempting to install the :code:`.pkg ` version of miniconda, there's nothing user-friendly about how OSX tries to manage its own concepts of system security. It is easier to start from the :code:`bash` version and follow those instructions. For other installation instructions, please read https://conda.io/projects/conda/en/latest/user-guide/install/macos.html +If you are on OSX, you will need to install parts of the (utterly massive) Xcode system. The subset you'll need can be installed by typing :code:`xcode-select --install` into a Terminal window (which you can open from Applications>Utilities>Terminal). Thought it is tempting to install the :code:`.pkg` version of miniconda, there's nothing user-friendly about how OSX tries to manage its own concepts of system security. It is easier to start from the :code:`bash` version and follow those instructions. For other installation instructions, please read https://conda.io/projects/conda/en/latest/user-guide/install/macos.html For Linux: https://conda.io/projects/conda/en/latest/user-guide/install/linux.html. And note that you don't have to use the fish shell. You can use bash, csh, sh, zsh, or whatever is your favorite shell. From 612280c7e3ad60de533acd0030523223f2cde11c Mon Sep 17 00:00:00 2001 From: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> Date: Thu, 8 Sep 2022 04:59:57 -0400 Subject: [PATCH 306/345] Update DataTemplateRequirements.rst Clean up some more back-quote errors and omissions. Signed-off-by: MichaelTiemannOSC Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- docs/DataTemplateRequirements.rst | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/DataTemplateRequirements.rst b/docs/DataTemplateRequirements.rst index 06b70dae..4fda14f1 100644 --- a/docs/DataTemplateRequirements.rst +++ b/docs/DataTemplateRequirements.rst @@ -196,12 +196,12 @@ With your conda shell and environment running, with git installed, and starting 1. Set GITHUB_TOKEN to your GitHub access token (windows :code`$Env:GITHUB_TOKEN = "your_github_token"`) (OSX/Linux: :code:`export GITHUB_TOKEN=your_github_token`) 2. Clone the ITR repository: :code:`git clone https://github.com/os-climate/ITR.git` 3. Change your directory to the top-level ITR directory: :code:`cd ITR` -4. Switch to the correct branch: :code:`git checkout develop-pint-steel-projections` +4. Optionally switch to the development branch: :code:`git checkout develop` (if you don't, you'll be using the branch :code:`origin/main`) 5. create the conda itr_env: :code:`conda env create -f environment.yml` 6. Activate that environment: :code:`conda activate itr_env` -7. Install the ITR libraries to your local environment: :code:`pip install -e .` (you may need :code:--no-cache-dir` on windows to avoid permissions errors; please also note that the `.` character is part of the :code:`pip install -e .` command) +7. Install the ITR libraries to your local environment: :code:`pip install -e .` (you may need :code:`--no-cache-dir` on windows to avoid permissions errors; please also note that the `.` character is part of the :code:`pip install -e .` command) 8. Change to the *examples* directory: :code:`cd ITR/examples` -9. Start your notebook: code:`jupyter-lab`. This should cause your default browser to pop to the front and open a page with a Jupyter Notebook. +9. Start your notebook: :code:`jupyter-lab`. This should cause your default browser to pop to the front and open a page with a Jupyter Notebook. 10. Make the file browser to the left of the notebook wide enough to expose the full names of the files in the *examples* directory. You should see a file named :code:`quick_template_score_calc.ipynb`. Double click on that file to open it. 11. Run the notebook with a fresh kernel by pressing the :code:`>>` button. Accept the option to Restart Kernel and clear all previous variables. From e2df6d05e1141d6a550a3f8867f47ae13eea361b Mon Sep 17 00:00:00 2001 From: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> Date: Thu, 8 Sep 2022 05:03:46 -0400 Subject: [PATCH 307/345] Update DataTemplateRequirements.rst As we are already in ITR, changing directories into examples does not require an additional ITR/ prefix. Signed-off-by: MichaelTiemannOSC Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- docs/DataTemplateRequirements.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/DataTemplateRequirements.rst b/docs/DataTemplateRequirements.rst index 4fda14f1..d9855320 100644 --- a/docs/DataTemplateRequirements.rst +++ b/docs/DataTemplateRequirements.rst @@ -200,7 +200,7 @@ With your conda shell and environment running, with git installed, and starting 5. create the conda itr_env: :code:`conda env create -f environment.yml` 6. Activate that environment: :code:`conda activate itr_env` 7. Install the ITR libraries to your local environment: :code:`pip install -e .` (you may need :code:`--no-cache-dir` on windows to avoid permissions errors; please also note that the `.` character is part of the :code:`pip install -e .` command) -8. Change to the *examples* directory: :code:`cd ITR/examples` +8. Change to the *examples* directory: :code:`cd examples` 9. Start your notebook: :code:`jupyter-lab`. This should cause your default browser to pop to the front and open a page with a Jupyter Notebook. 10. Make the file browser to the left of the notebook wide enough to expose the full names of the files in the *examples* directory. You should see a file named :code:`quick_template_score_calc.ipynb`. Double click on that file to open it. 11. Run the notebook with a fresh kernel by pressing the :code:`>>` button. Accept the option to Restart Kernel and clear all previous variables. From 101f81d4c288dfc300379438d8970f2c3874e18c Mon Sep 17 00:00:00 2001 From: MichaelTiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> Date: Sat, 10 Sep 2022 16:49:53 -0400 Subject: [PATCH 308/345] Further fix Autos by making production metric flexible between km, mile, and any other distance metric. Clean up other bugs found while supporting flexible new metrics. Signed-off-by: MichaelTiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- ITR/data/base_providers.py | 13 +++++-------- ITR/data/data_warehouse.py | 5 ++++- ITR/data/excel.py | 4 ++-- ITR/data/osc_units.py | 5 ++--- ITR/interfaces.py | 4 ++-- examples/data/json-units/benchmark_EI_OECM.json | 12 ++++++------ .../json-units/benchmark_EI_TPI_1_5_degrees.json | 2 +- .../data/json-units/benchmark_EI_TPI_2_degrees.json | 2 +- .../benchmark_EI_TPI_below_2_degrees.json | 2 +- 9 files changed, 24 insertions(+), 25 deletions(-) diff --git a/ITR/data/base_providers.py b/ITR/data/base_providers.py index 37c721b9..395f1543 100644 --- a/ITR/data/base_providers.py +++ b/ITR/data/base_providers.py @@ -226,7 +226,7 @@ def _validate_projected_trajectories(self, companies: List[ICompanyData]) -> Lis else: return companies - # Because this presently defaults to S1S2 always, targets spec'd for S1 only ro S1+S2+S3 are not well-handled. + # Because this presently defaults to S1S2 always, targets spec'd for S1 only, S2 only, or S1+S2+S3 are not well-handled. def _convert_projections_to_series(self, company: ICompanyData, feature: str, scope: EScope = EScope.S1S2) -> pd.Series: """ @@ -248,22 +248,20 @@ def _convert_projections_to_series(self, company: ICompanyData, feature: str, for s in scopes: projection_series[s] = pd.Series( {p['year']: p['value'] for p in company_dict[feature][s]['projections']}, - name=company.company_id, dtype=f'pint[{emissions_units}/{production_units}]') + name=company.company_id, dtype=f'pint[{emissions_units}/({production_units})]') series_adder = partial(pd.Series.add, fill_value=0) res = reduce(series_adder, projection_series.values()) return res elif len(projection_scopes) == 0: return pd.Series( {year: np.nan for year in range(self.historic_years[-1] + 1, self.projection_controls.TARGET_YEAR + 1)}, - name=company.company_id, dtype=f'pint[{emissions_units}/{production_units}]' + name=company.company_id, dtype=f'pint[{emissions_units}/({production_units})]' ) else: - # This clause is only accessed if the scope is S1S2 or S1S2S3 of which only one scope is provided. - projections = company_dict[feature][scopes[0]]['projections'] - # projections = [] + projections = company_dict[feature][list(projection_scopes.keys())[0]]['projections'] return pd.Series( {p['year']: p['value'] for p in projections}, - name=company.company_id, dtype=f'pint[{emissions_units}/{production_units}]') + name=company.company_id, dtype=f'pint[{emissions_units}/({production_units})]') def _calculate_target_projections(self, production_bm: BaseProviderProductionBenchmark): """ @@ -723,7 +721,6 @@ def project_ei_targets(self, company: ICompanyData, production_bm: pd.Series) -> warnings.warn(f"Emission intensity at base year for scope {scope} target for company " f"{company.company_name} is estimated with trajectory projection.") - # Removed condition base year > first_year. Do we care as long as base_year_qty is known? last_year, value_last_year = last_year_data.year, last_year_data.value target_year = target.target_end_year # Attribute target_reduction_pct of ITargetData is currently a fraction, not a percentage. diff --git a/ITR/data/data_warehouse.py b/ITR/data/data_warehouse.py index b3d232d9..326fd7b6 100644 --- a/ITR/data/data_warehouse.py +++ b/ITR/data/data_warehouse.py @@ -116,4 +116,7 @@ def _get_cumulative_emissions(self, projected_ei: pd.DataFrame, projected_produc :return: cumulative emissions based on weighted sum of emissions intensity * production """ projected_emissions = projected_ei.multiply(projected_production) - return projected_emissions.sum(axis=1).astype('pint[Mt CO2]') + projected_emissions = projected_emissions.applymap(lambda x: x if isinstance(x,float) else x if np.isfinite(x.m) else np.nan) + null_idx = projected_emissions.index[projected_emissions.isnull().all(axis=1)] + return pd.concat([projected_emissions.loc[null_idx, projected_emissions.columns[0]], + projected_emissions.loc[projected_emissions.index.difference(null_idx)].sum(axis=1)]).astype('pint[Mt CO2]') diff --git a/ITR/data/excel.py b/ITR/data/excel.py index de6d7ce8..488739d4 100644 --- a/ITR/data/excel.py +++ b/ITR/data/excel.py @@ -22,8 +22,8 @@ # Excel spreadsheets don't have units elaborated, so we translate sectors to units -sector_to_production_metric = {'Electricity Utilities': 'GJ', 'Steel': 'Fe_ton', 'Oil & Gas': 'boe', 'Autos': 'passenger_km'} -sector_to_intensity_metric = {'Electricity Utilities': 't CO2/MWh', 'Steel': 't CO2/Fe_ton', 'Oil & Gas': 'kg CO2/boe', 'Autos': 'g CO2/passenger_km'} +sector_to_production_metric = {'Electricity Utilities': 'GJ', 'Steel': 'Fe_ton', 'Oil & Gas': 'boe', 'Autos': 'passenger km'} +sector_to_intensity_metric = {'Electricity Utilities': 't CO2/MWh', 'Steel': 't CO2/Fe_ton', 'Oil & Gas': 'kg CO2/boe', 'Autos': 'g CO2/(passenger km)'} # TODO: Force validation for excel benchmarks diff --git a/ITR/data/osc_units.py b/ITR/data/osc_units.py index 4c5ee8b3..d0f3240b 100644 --- a/ITR/data/osc_units.py +++ b/ITR/data/osc_units.py @@ -8,8 +8,7 @@ # openscm_units doesn't make it easy to set preprocessors. This is one way to do it. unit_registry.preprocessors=[ - lambda s1: s1.replace('passenger km', 'passenger_km'), - lambda s2: s2.replace('BoE', 'boe'), + lambda s1: s1.replace('BoE', 'boe'), ] PintType.ureg = unit_registry @@ -20,7 +19,7 @@ ureg.define("CO2e = CO2 = CO2eq = CO2_eq") ureg.define("Fe_ton = [produced_ton]") -ureg.define("passenger_km = nan km") +ureg.define("passenger = [passenger_unit]") # These are for later ureg.define('fraction = [] = frac') diff --git a/ITR/interfaces.py b/ITR/interfaces.py index 4b7e14aa..b9b90fbe 100644 --- a/ITR/interfaces.py +++ b/ITR/interfaces.py @@ -24,7 +24,7 @@ def unit_must_be_production(cls, v): return v if qty.is_compatible_with("Fe_ton"): return v - if qty.is_compatible_with("passenger_km"): + if qty.is_compatible_with("passenger km"): return v if qty.is_compatible_with("boe"): return v @@ -51,7 +51,7 @@ def units_must_be_EI(cls, v): return v if qty.is_compatible_with("t CO2/Fe_ton"): return v - if qty.is_compatible_with("g CO2/passenger_km"): + if qty.is_compatible_with("g CO2/(passenger km)"): return v if qty.is_compatible_with("kg CO2/boe"): return v diff --git a/examples/data/json-units/benchmark_EI_OECM.json b/examples/data/json-units/benchmark_EI_OECM.json index 1525b470..d313dbc6 100644 --- a/examples/data/json-units/benchmark_EI_OECM.json +++ b/examples/data/json-units/benchmark_EI_OECM.json @@ -1249,7 +1249,7 @@ { "sector": "Autos", "region": "Global", - "benchmark_metric": { "units": "g CO2/passenger_km" }, + "benchmark_metric": { "units": "g CO2/(passenger km)" }, "projections": [ { "year": 2019, @@ -1382,12 +1382,12 @@ ], "scenario name": "OECM 1.5 Degrees", "release date": "2022", - "unit": "g CO2/passenger_km" + "unit": "g CO2/(passenger km)" }, { "sector": "Autos", "region": "Europe", - "benchmark_metric": { "units": "g CO2/passenger_km" }, + "benchmark_metric": { "units": "g CO2/(passenger km)" }, "projections": [ { "year": 2019, @@ -1520,12 +1520,12 @@ ], "scenario name": "OECM 1.5 Degrees", "release date": "2022", - "unit": "g CO2/passenger_km" + "unit": "g CO2/(passenger km)" }, { "sector": "Autos", "region": "North America", - "benchmark_metric": { "units": "g CO2/passenger_km" }, + "benchmark_metric": { "units": "g CO2/(passenger km)" }, "projections": [ { "year": 2019, @@ -1658,7 +1658,7 @@ ], "scenario name": "OECM 1.5 Degrees", "release date": "2022", - "unit": "g CO2/passenger_km" + "unit": "g CO2/(passenger km)" } ] }, diff --git a/examples/data/json-units/benchmark_EI_TPI_1_5_degrees.json b/examples/data/json-units/benchmark_EI_TPI_1_5_degrees.json index 37f785c6..0468f82e 100644 --- a/examples/data/json-units/benchmark_EI_TPI_1_5_degrees.json +++ b/examples/data/json-units/benchmark_EI_TPI_1_5_degrees.json @@ -973,7 +973,7 @@ { "sector": "Autos", "region": "Global", - "benchmark_metric": { "units": "g CO2/passenger_km" }, + "benchmark_metric": { "units": "g CO2/(passenger km)" }, "projections": [ diff --git a/examples/data/json-units/benchmark_EI_TPI_2_degrees.json b/examples/data/json-units/benchmark_EI_TPI_2_degrees.json index aaf5eb96..e51ece0b 100644 --- a/examples/data/json-units/benchmark_EI_TPI_2_degrees.json +++ b/examples/data/json-units/benchmark_EI_TPI_2_degrees.json @@ -421,7 +421,7 @@ { "sector": "Autos", "region": "Global", - "benchmark_metric": { "units": "g CO2/passenger_km" }, + "benchmark_metric": { "units": "g CO2/passenger km" }, "projections": [ { "year": 2019, diff --git a/examples/data/json-units/benchmark_EI_TPI_below_2_degrees.json b/examples/data/json-units/benchmark_EI_TPI_below_2_degrees.json index ffb51613..47fa2ac4 100644 --- a/examples/data/json-units/benchmark_EI_TPI_below_2_degrees.json +++ b/examples/data/json-units/benchmark_EI_TPI_below_2_degrees.json @@ -973,7 +973,7 @@ { "sector": "Autos", "region": "Global", - "benchmark_metric": { "units": "g CO2/passenger_km" }, + "benchmark_metric": { "units": "g CO2/(passenger km)" }, "projections": [ { "year": 2019, From f12defc100a6ce03a4926ef525bc383e8d0c9aca Mon Sep 17 00:00:00 2001 From: MichaelTiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> Date: Sun, 11 Sep 2022 09:56:31 -0400 Subject: [PATCH 309/345] Add parentheses around `passenger km` Signed-off-by: MichaelTiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- examples/data/json-units/benchmark_EI_TPI_2_degrees.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/data/json-units/benchmark_EI_TPI_2_degrees.json b/examples/data/json-units/benchmark_EI_TPI_2_degrees.json index e51ece0b..98ee8729 100644 --- a/examples/data/json-units/benchmark_EI_TPI_2_degrees.json +++ b/examples/data/json-units/benchmark_EI_TPI_2_degrees.json @@ -421,7 +421,7 @@ { "sector": "Autos", "region": "Global", - "benchmark_metric": { "units": "g CO2/passenger km" }, + "benchmark_metric": { "units": "g CO2/(passenger km)" }, "projections": [ { "year": 2019, From 3131f7d4336c1e325304d0b0dedf6d795e866b9b Mon Sep 17 00:00:00 2001 From: MichaelTiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> Date: Sun, 11 Sep 2022 11:42:42 -0400 Subject: [PATCH 310/345] More unit fixes (mboe, mmboe) and parentheses protecting potential compound unit denominators. Signed-off-by: MichaelTiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- ITR/data/osc_units.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/ITR/data/osc_units.py b/ITR/data/osc_units.py index d0f3240b..49162018 100644 --- a/ITR/data/osc_units.py +++ b/ITR/data/osc_units.py @@ -32,6 +32,8 @@ ureg.define("btu = Btu") ureg.define("boe = 5.712 GJ") +ureg.define("mboe = 1e3 boe") +ureg.define("mmboe = 1e6 boe") # These are for later still # ureg.define("HFC = [ HFC_emissions ]") From 0f0f97ca79bfb24f604aa30764d68fbe50bccc24 Mon Sep 17 00:00:00 2001 From: MichaelTiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> Date: Sun, 11 Sep 2022 12:06:20 -0400 Subject: [PATCH 311/345] Add file promised, but not added to, last commit. Signed-off-by: MichaelTiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- ITR/interfaces.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/ITR/interfaces.py b/ITR/interfaces.py index b9b90fbe..b079ab98 100644 --- a/ITR/interfaces.py +++ b/ITR/interfaces.py @@ -458,11 +458,11 @@ def _fixup_ei_projections(self, projections, production_metric, emissions_metric inferred_production_metric = 'MWh' else: inferred_production_metric = 'Fe_ton' - inferred_ei_metric = f"{inferred_emissions_metric}/{inferred_production_metric}" + inferred_ei_metric = f"{inferred_emissions_metric}/({inferred_production_metric})" else: inferred_emissions_metric = emissions_metric['units'] inferred_production_metric = production_metric['units'] - inferred_ei_metric = f"{inferred_emissions_metric}/{inferred_production_metric}" + inferred_ei_metric = f"{inferred_emissions_metric}/({inferred_production_metric})" for scope in projections: if projections[scope] is None: continue @@ -503,7 +503,7 @@ def _fixup_historic_data(self, historic_data, production_metric, emissions_metri emissions_intensities = None else: emissions_intensities = {} - inferred_ei_metric = f"{inferred_emissions_metric}/{inferred_production_metric}" + inferred_ei_metric = f"{inferred_emissions_metric}/({inferred_production_metric})" for scope in historic_data['emissions_intensities']: emissions_intensities[scope] = self._fixup_year_value_list(IEIRealization, historic_data['emissions_intensities'][scope], None, inferred_ei_metric) model_historic_data = IHistoricData(productions=productions, emissions=emissions, emissions_intensities=emissions_intensities) From b7cfb9a65fdc4886f9553e0e9c60efea7ad40edd Mon Sep 17 00:00:00 2001 From: MichaelTiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> Date: Sun, 11 Sep 2022 12:32:30 -0400 Subject: [PATCH 312/345] Update template spreadsheet with more/better data for O&G and Autos. Also improve UX with better/fewer warnings and errors. Signed-off-by: MichaelTiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- ITR/data/template.py | 9 + ITR/portfolio_aggregation.py | 8 +- docs/DataTemplateRequirements.rst | 6 +- examples/ITR_UI.py | 14 +- .../data/20220720 ITR Tool Sample Data.xlsx | Bin 57799 -> 63615 bytes examples/quick_template_score_calc.ipynb | 879 ++++-------------- 6 files changed, 222 insertions(+), 694 deletions(-) diff --git a/ITR/data/template.py b/ITR/data/template.py index 060cd9b7..fecfab0f 100644 --- a/ITR/data/template.py +++ b/ITR/data/template.py @@ -119,6 +119,15 @@ def _fixup_name(x): logger.error(error_message) raise ValueError(error_message) + # ignore company data that does not come with emissions and/or production metrics + missing_esg_metrics_df = df_fundamentals[ColumnsConfig.COMPANY_ID][ + df_fundamentals[ColumnsConfig.EMISSIONS_METRIC].isnull() | df_fundamentals[ColumnsConfig.PRODUCTION_METRIC].isnull()] + if len(missing_esg_metrics_df)>0: + logger.warning(f"Missing ESG metrics for companies with ID (will be ignored): " + f"{missing_esg_metrics_df.to_list()}.") + df_fundamentals = df_fundamentals[~df_fundamentals.index.isin(missing_esg_metrics_df.index)] + + # The nightmare of naming columns 20xx_metric instead of metric_20xx...and potentially dealing with data from 1990s... historic_columns = [col for col in df_fundamentals.columns if col[:1].isdigit()] historic_scopes = ['S1', 'S2', 'S3', 'S1S2', 'S1S2S3', 'production'] diff --git a/ITR/portfolio_aggregation.py b/ITR/portfolio_aggregation.py index c657e6bc..d01b349d 100644 --- a/ITR/portfolio_aggregation.py +++ b/ITR/portfolio_aggregation.py @@ -117,9 +117,11 @@ def _calculate_aggregate_score(self, data: pd.DataFrame, input_column: str, # Calculate the total emissions of all companies emissions = data.loc[use_S1S2, self.c.COLS.GHG_SCOPE12].sum() + data.loc[use_S3, self.c.COLS.GHG_SCOPE3].sum() try: - weights_series = pd.Series((data[self.c.COLS.GHG_SCOPE12].where(use_S1S2,0) + data[self.c.COLS.GHG_SCOPE3].where(use_S3, 0)) \ - / emissions * data[input_column]) - return weights_series + with warnings.catch_warnings(): + warnings.simplefilter("ignore") + weights_series = pd.Series((data[self.c.COLS.GHG_SCOPE12].where(use_S1S2,0) + data[self.c.COLS.GHG_SCOPE3].where(use_S3, 0)) \ + / emissions * data[input_column]) + return weights_series except ZeroDivisionError: raise ValueError("The total emissions should be higher than zero") diff --git a/docs/DataTemplateRequirements.rst b/docs/DataTemplateRequirements.rst index d9855320..27b446d6 100644 --- a/docs/DataTemplateRequirements.rst +++ b/docs/DataTemplateRequirements.rst @@ -231,7 +231,7 @@ The brackets listed near the top left corner of each executable cell will change Filing Issues and Updating the ITR Repository --------------------------------------------- -Once you are able to run the `quick_template_score_calc.ipynb` sample notebook with the provided sample data (:code:`examples/data/20220306 ITR Tool Sample Data.xlsx`), you are ready to start trying things with your own data. The notebook explains how to do this at the heading labeled :code:`Download/load the sample template data` before Cell 6. As you try loading your own data, you will inevitably find errors--sometimes with the data you receive, sometimes with the data you present to the tool, sometimes with the way the tool loads or does not load your data, sometimes with the way the tool interprets or presents your data. It is the goal of the Data Commons to streamline and simplify access to data so as to reduce the first to cases of errors, and it is the goal of the ITR project team to continuously improve the ITR tool to reduce the other cases of errors. In all cases, the correction of errors begins with an error reporting process and ends with an effective update process. +Once you are able to run the `quick_template_score_calc.ipynb` sample notebook with the provided sample data (:code:`examples/data/20220720 ITR Tool Sample Data.xlsx`), you are ready to start trying things with your own data. The notebook explains how to do this at the heading labeled :code:`Download/load the sample template data` before Cell 6. As you try loading your own data, you will inevitably find errors--sometimes with the data you receive, sometimes with the data you present to the tool, sometimes with the way the tool loads or does not load your data, sometimes with the way the tool interprets or presents your data. It is the goal of the Data Commons to streamline and simplify access to data so as to reduce the first to cases of errors, and it is the goal of the ITR project team to continuously improve the ITR tool to reduce the other cases of errors. In all cases, the correction of errors begins with an error reporting process and ends with an effective update process. To report errors, please use the GitHub Issues interface for the ITR tool: https://github.com/os-climate/ITR/issues @@ -245,8 +245,8 @@ At some point you will receive notice that your issue has been addressed with a 2. Change your directory to the top of your ITR tree: :code:`cd ~/os-climate/ITR` (or some such) 3. Pull changes from upstream: git pull 4. If git complains that you have modified some files (such as your notebook, which is "modified" every time you run it), you can - 1. remove the notebook file: :code:`rm examples/data/20220306\ ITR\ Tool\ Sample\ Data.xlsx` - 2. restore it from the updated repository: :code:`git restore examples/data/20220306\ ITR\ Tool\ Sample\ Data.xlsx` + 1. remove the notebook file: :code:`rm examples/data/20220720\ ITR\ Tool\ Sample\ Data.xlsx` + 2. restore it from the updated repository: :code:`git restore examples/data/20220720\ ITR\ Tool\ Sample\ Data.xlsx` 5. Restart your jupyter-lab server Over time you may do other things to your local repository that makes it difficult to sync with git. You can file an issue for help, you can do your own research (many of us find answers on github community forums or StackOverflow), or you can go with Option #1: run the installation process from top to bottom in a new directory. diff --git a/examples/ITR_UI.py b/examples/ITR_UI.py index a928ae8f..13295e23 100644 --- a/examples/ITR_UI.py +++ b/examples/ITR_UI.py @@ -2,6 +2,9 @@ # visit http://127.0.0.1:8050/ in your web browser +import argparse +import sys + import pandas as pd import numpy as np import json @@ -54,7 +57,16 @@ root = os.path.abspath('') # load company data -company_data="20220415 ITR Tool Sample Data.xlsx" # this file is provided initially +parser = argparse.ArgumentParser() +parser.add_argument('template', nargs='+', help='enter filename of XLSX data template') +parser.set_defaults(template="20220415 ITR Tool Sample Data.xlsx") +if len(sys.argv)>1: + print(sys.argv) + company_data=parser.parse_args(sys.argv).template[-1] + print(company_data) +else: + company_data="20220720 ITR Tool Sample Data.xlsx" # this file is provided initially + template_company_data = TemplateProviderCompany(excel_path=os.path.join(root, examples_dir, data_dir, company_data)) # load production benchmarks diff --git a/examples/data/20220720 ITR Tool Sample Data.xlsx b/examples/data/20220720 ITR Tool Sample Data.xlsx index 863bb90e87c7a8ba6997de3a9aebd547b9375fb7..a203c5e882f2d751a072eeb6751b6b88c0bfc30f 100644 GIT binary patch delta 54987 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 D>y;$8 delta 49212 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

      f%ojA+n48$**S)=k>5RAUe0LPH=gCbjCT?|) zR9T(GE(K%r*0A&>4>3cyMnf+mFIAL*`(_z-P;Smhqk&xz*mewPOCoOBdNl&} z>f8bFg3xq)7CF3V*Ezh9`@zRs_}SZnKiH&uvswa26Mek zu_4j(zZ3;iIR!4>n=W_bN4FX|$P*}LZyuG4~4W@<0&&|u$b z?z%mE7?Mu<=`;g5pS(dbmEONwR<9&>adu_^s%EI(mxd!O-o*UFomB>oklwRUUOWMs*Eu!jzGM)BfcEJrZLg>hf#5z(p1g zfD!2CKJ*F_$+I{yKn6UsVEQz_rcqpLo8CxaZ8Zm5Y=iLEx=4YHhRoz@_}CaWaOovn00Y&}fw+x}K-dHGUaAel$fvzA)U+7|H@ow{9fw z?`NcYEC$->(VAd=X1<%7FSt+c<)-Z1FuEzjnNQXpj`1B-VqsxOd+Q_WxX!Oz+vO>lfCJOy782*Wb8I{dV;IR`SOkS*d)FbnkxeZ^aFpxiP;b zUDX;6y`oxr;xbjOq~a%ze)xR+;Q9I^%K%hixl_&4+U3*(dB z-yE)6Q?Os%(hg@Un|xh`%(>ksKedQAwt`PNHaM7TAOCo)q%3sKhURg^a~|=2v-!mZG9$m>un_4h`%tKk%^_O$Non9}tztg$O1-Y?BCFAeec#@y#spS_*W zpSK=2mMOx#eVEji90>Ugbzzj7=R58Pr;|%$9_${fhK~nK8hXu+=JFM{9>Y?ee(V!J zKN&nVJWmvcjh+48nXxs*r)&h4hTDDxYdGDvbUAOQj7K2YTsrN2=a2+DIi6#QGx20^ z@?RJ|g>g`BO}JACO__)$Ro>g4437HvODgc}WM+MC)DBJ4bFU{Dr}*3_$LH}c`}3L4 zl5d+8&o_Qi8vY(F_;sF_I0^f`K|4Gc9JTdWDDn3X%Ere=j%CtOk1H2{ZOs|^{G1t_ zGz8YP>pdAgI!|Ffm>h+j%5a>oEd;lF97mlN!))lFGm7VzTfw$Juq@C8cB6WEfB-Dj zihzg@!UuuDU=XlkYTU#Y@8v40ceW*O0l(F!(ct>>Xduw9z&P`5HvNl3IquQOONby4 zIxz?YENT4L9|i^pT*Pn#qd`+%%i}<_QaTffI=1rpZy_CU&qcuU_XY)P$O{2hw<{z;h#e| zdt``FOu!+|%d3l5X6?Nv0De_rtK9e%GrjKeix#_FRXMI{p8(Mf8aKL6 zdHF1VFB^QlqQz|D2oJ6*ItEdhX&G2o7#;W!?_9fltZkgy0rlmTwj}zNih%zl0t!-G zEA+uWj@q5-KlN2+T;=+IpHTTcZsvgXvYl`b$qKK+A?7;9 z;duSG8T#qBE2n|`3j@z_z0%^G<31kJU!HFVoL}n_hjK)H`BM+LON}dVIf9FYjpK}t zuD-(CcJ{Tdz&qEn-F)vL_qdmT&Mg5hCHx|;=g-d_;3tD$+^yrQTKT)LUw;~hfU71v MCP2M2eo" + "1.0 " ] }, "execution_count": 11, @@ -500,7 +381,7 @@ } ], "source": [ - "ureg(\"kg CO2/passenger km\")" + "ureg(\"kg CO2/(passenger km)\")" ] }, { @@ -516,7 +397,7 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": 12, "metadata": {}, "outputs": [ { @@ -549,44 +430,44 @@ " \n", " \n", " \n", - " 50\n", + " 59\n", " Versant Power\n", " NQZVQT2P5IUF2PGA1Q48\n", " CA2908761018\n", " CA2908761018\n", - " 245914\n", + " 128664\n", " \n", " \n", - " 51\n", + " 60\n", " Vistra Corp.\n", " 549300KP43CPCUJOOG15\n", " US92840M1027\n", " US92840M1027\n", - " 200210\n", + " 36711\n", " \n", " \n", - " 52\n", + " 61\n", " WEC Energy Group\n", " 549300IGLYTZUK3PVP70\n", " US92939U1060\n", " US92939U1060\n", - " 130869\n", + " 118509\n", " \n", " \n", - " 53\n", + " 62\n", " WORTHINGTON INDUSTRIES INC\n", " 1WRCIANKYOIK6KYE5E82\n", " US9818111026\n", " US9818111026\n", - " 38704\n", + " 98818\n", " \n", " \n", - " 54\n", + " 63\n", " Xcel Energy, Inc.\n", " LGJNMI9GH8XIDG5RCM61\n", " US98389B1008\n", " US98389B1008\n", - " 140754\n", + " 142775\n", " \n", " \n", "\n", @@ -594,18 +475,18 @@ ], "text/plain": [ " company_name company_lei company_id \\\n", - "50 Versant Power NQZVQT2P5IUF2PGA1Q48 CA2908761018 \n", - "51 Vistra Corp. 549300KP43CPCUJOOG15 US92840M1027 \n", - "52 WEC Energy Group 549300IGLYTZUK3PVP70 US92939U1060 \n", - "53 WORTHINGTON INDUSTRIES INC 1WRCIANKYOIK6KYE5E82 US9818111026 \n", - "54 Xcel Energy, Inc. LGJNMI9GH8XIDG5RCM61 US98389B1008 \n", + "59 Versant Power NQZVQT2P5IUF2PGA1Q48 CA2908761018 \n", + "60 Vistra Corp. 549300KP43CPCUJOOG15 US92840M1027 \n", + "61 WEC Energy Group 549300IGLYTZUK3PVP70 US92939U1060 \n", + "62 WORTHINGTON INDUSTRIES INC 1WRCIANKYOIK6KYE5E82 US9818111026 \n", + "63 Xcel Energy, Inc. LGJNMI9GH8XIDG5RCM61 US98389B1008 \n", "\n", " company_isin investment_value \n", - "50 CA2908761018 245914 \n", - "51 US92840M1027 200210 \n", - "52 US92939U1060 130869 \n", - "53 US9818111026 38704 \n", - "54 US98389B1008 140754 " + "59 CA2908761018 128664 \n", + "60 US92840M1027 36711 \n", + "61 US92939U1060 118509 \n", + "62 US9818111026 98818 \n", + "63 US98389B1008 142775 " ] }, "metadata": {}, @@ -626,7 +507,7 @@ }, { "cell_type": "code", - "execution_count": 14, + "execution_count": 13, "metadata": {}, "outputs": [], "source": [ @@ -643,18 +524,9 @@ }, { "cell_type": "code", - "execution_count": 15, + "execution_count": 14, "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/Users/michael/opt/miniconda3/envs/ITR/lib/python3.10/site-packages/pint_pandas/pint_array.py:648: UnitStrippedWarning: The unit of the quantity is stripped when downcasting to ndarray.\n", - " return np.array(qtys, dtype=\"object\", copy=copy)\n" - ] - } - ], + "outputs": [], "source": [ "temperature_score = TemperatureScore(\n", " time_frames = [ETimeFrames.LONG],\n", @@ -673,7 +545,7 @@ }, { "cell_type": "code", - "execution_count": 16, + "execution_count": 15, "metadata": {}, "outputs": [ { @@ -706,450 +578,101 @@ " \n", " \n", " 0\n", - " Oil and Gas A\n", - " LONG\n", - " S1S2\n", - " 1.47\n", - " \n", - " \n", - " 1\n", - " Oil and Gas B\n", - " LONG\n", - " S1S2\n", - " 1.41\n", - " \n", - " \n", - " 2\n", " AES Corp.\n", " LONG\n", " S1S2\n", - " 1.89\n", + " 1.93\n", " \n", " \n", - " 3\n", + " 1\n", " ALLETE, Inc.\n", " LONG\n", " S1S2\n", - " 1.77\n", + " 1.98\n", " \n", " \n", - " 4\n", + " 2\n", " Alliant Energy\n", " LONG\n", " S1S2\n", - " 1.75\n", + " 1.85\n", " \n", " \n", - " 5\n", + " 3\n", " Ameren Corp.\n", " LONG\n", " S1S2\n", - " 2.42\n", + " 2.57\n", " \n", " \n", - " 6\n", + " 4\n", " American Electric Power Co., Inc.\n", " LONG\n", " S1S2\n", - " 2.06\n", - " \n", - " \n", - " 7\n", - " Avangrid, Inc.\n", - " LONG\n", - " S1S2\n", - " 2.22\n", - " \n", - " \n", - " 8\n", - " Black Hills Corp.\n", - " LONG\n", - " S1S2\n", - " 2.13\n", - " \n", - " \n", - " 9\n", - " CARPENTER TECHNOLOGY CORP\n", - " LONG\n", - " S1S2\n", - " 1.92\n", - " \n", - " \n", - " 10\n", - " CLEVELAND-CLIFFS INC\n", - " LONG\n", - " S1S2\n", - " 1.56\n", - " \n", - " \n", - " 11\n", - " CMS Energy Corp.\n", - " LONG\n", - " S1S2\n", - " 2.16\n", - " \n", - " \n", - " 12\n", - " COMMERCIAL METALS CO\n", - " LONG\n", - " S1S2\n", - " 1.6\n", - " \n", - " \n", - " 13\n", - " Cleco Partners LP\n", - " LONG\n", - " S1S2\n", - " 2.55\n", - " \n", - " \n", - " 14\n", - " Consolidated Edison, Inc.\n", - " LONG\n", - " S1S2\n", - " 2.2\n", - " \n", - " \n", - " 15\n", - " DTE Energy\n", - " LONG\n", - " S1S2\n", - " 3.02\n", - " \n", - " \n", - " 16\n", - " Dominion Energy\n", - " LONG\n", - " S1S2\n", - " 1.85\n", - " \n", - " \n", - " 17\n", - " Duke Energy Corp.\n", - " LONG\n", - " S1S2\n", - " 1.93\n", - " \n", - " \n", - " 18\n", - " Edison International\n", - " LONG\n", - " S1S2\n", - " 3.16\n", - " \n", - " \n", - " 19\n", - " Entergy Corp.\n", - " LONG\n", - " S1S2\n", - " 1.93\n", - " \n", - " \n", - " 20\n", - " Evergy, Inc.\n", - " LONG\n", - " S1S2\n", - " 1.89\n", - " \n", - " \n", - " 21\n", - " Eversource Energy\n", - " LONG\n", - " S1S2\n", - " 1.23\n", - " \n", - " \n", - " 22\n", - " Exelon Corp.\n", - " LONG\n", - " S1S2\n", - " 4.37\n", - " \n", - " \n", - " 23\n", - " FirstEnergy Corp.\n", - " LONG\n", - " S1S2\n", - " 1.79\n", - " \n", - " \n", - " 24\n", - " Fortis, Inc.\n", - " LONG\n", - " S1S2\n", - " 1.7\n", - " \n", - " \n", - " 25\n", - " GERDAU S.A.\n", - " LONG\n", - " S1S2\n", - " 1.63\n", - " \n", - " \n", - " 26\n", - " Hawaiian Electric Industries, Inc.\n", - " LONG\n", - " S1S2\n", - " 2.61\n", - " \n", - " \n", - " 27\n", - " MDU Resources Group\n", - " LONG\n", - " S1S2\n", - " 2.48\n", - " \n", - " \n", - " 28\n", - " NUCOR CORP\n", - " LONG\n", - " S1S2\n", - " 1.73\n", - " \n", - " \n", - " 29\n", - " National Grid PLC\n", - " LONG\n", - " S1S2\n", - " 2.02\n", - " \n", - " \n", - " 30\n", - " NextEra Energy, Inc.\n", - " LONG\n", - " S1S2\n", - " 1.86\n", - " \n", - " \n", - " 31\n", - " NIPPON STEEL CORP\n", - " LONG\n", - " S1S2\n", - " 1.92\n", - " \n", - " \n", - " 32\n", - " Nisource Inc.\n", - " LONG\n", - " S1S2\n", - " 2.02\n", - " \n", - " \n", - " 33\n", - " Northwestern Corp.\n", - " LONG\n", - " S1S2\n", - " 1.85\n", - " \n", - " \n", - " 34\n", - " OG&E Energy Corp.\n", - " LONG\n", - " S1S2\n", - " 2.45\n", - " \n", - " \n", - " 35\n", - " PG&E Corp.\n", - " LONG\n", - " S1S2\n", - " 2.71\n", - " \n", - " \n", - " 36\n", - " PNM Resources, Inc.\n", - " LONG\n", - " S1S2\n", - " 2.05\n", - " \n", - " \n", - " 37\n", - " POSCO\n", - " LONG\n", - " S1S2\n", - " 1.94\n", - " \n", - " \n", - " 38\n", - " PPL Corp.\n", - " LONG\n", - " S1S2\n", - " 2.39\n", - " \n", - " \n", - " 39\n", - " Pinnacle West Capital Corp.\n", - " LONG\n", - " S1S2\n", - " 2.31\n", - " \n", - " \n", - " 40\n", - " Portland General Electric Co.\n", - " LONG\n", - " S1S2\n", - " 1.87\n", - " \n", - " \n", - " 41\n", - " Public Service Enterprise Group\n", - " LONG\n", - " S1S2\n", - " 1.53\n", - " \n", - " \n", - " 42\n", - " Sempra\n", - " LONG\n", - " S1S2\n", - " 2.54\n", - " \n", - " \n", - " 43\n", - " Southern Co.\n", - " LONG\n", - " S1S2\n", - " 2.01\n", - " \n", - " \n", - " 44\n", - " STEEL DYNAMICS INC\n", - " LONG\n", - " S1S2\n", - " 1.81\n", - " \n", - " \n", - " 45\n", - " TC Energy Corp.\n", - " LONG\n", - " S1S2\n", - " 2.83\n", - " \n", - " \n", - " 46\n", - " TENARIS SA\n", - " LONG\n", - " S1S2\n", - " 1.62\n", - " \n", - " \n", - " 47\n", - " TERNIUM S.A.\n", - " LONG\n", - " S1S2\n", - " 1.73\n", + " 2.19\n", " \n", " \n", - " 48\n", - " TIMKENSTEEL CORP\n", - " LONG\n", - " S1S2\n", - " 1.59\n", + " ...\n", + " ...\n", + " ...\n", + " ...\n", + " ...\n", " \n", " \n", - " 49\n", - " UNITED STATES STEEL CORP\n", - " LONG\n", - " S1S2\n", - " 1.76\n", - " \n", - " \n", - " 50\n", + " 59\n", " Versant Power\n", " LONG\n", " S1S2\n", - " 1.58\n", + " 1.81\n", " \n", " \n", - " 51\n", + " 60\n", " Vistra Corp.\n", " LONG\n", " S1S2\n", - " 2.36\n", + " 2.44\n", " \n", " \n", - " 52\n", + " 61\n", " WEC Energy Group\n", " LONG\n", " S1S2\n", - " 1.95\n", + " 2.15\n", " \n", " \n", - " 53\n", + " 62\n", " WORTHINGTON INDUSTRIES INC\n", " LONG\n", " S1S2\n", - " 1.32\n", + " 1.34\n", " \n", " \n", - " 54\n", + " 63\n", " Xcel Energy, Inc.\n", " LONG\n", " S1S2\n", - " 1.8\n", + " 1.82\n", " \n", " \n", "\n", + "

      64 rows × 4 columns

      \n", "" ], "text/plain": [ - " company_name time_frame scope temperature_score\n", - "0 Oil and Gas A LONG S1S2 1.47\n", - "1 Oil and Gas B LONG S1S2 1.41\n", - "2 AES Corp. LONG S1S2 1.89\n", - "3 ALLETE, Inc. LONG S1S2 1.77\n", - "4 Alliant Energy LONG S1S2 1.75\n", - "5 Ameren Corp. LONG S1S2 2.42\n", - "6 American Electric Power Co., Inc. LONG S1S2 2.06\n", - "7 Avangrid, Inc. LONG S1S2 2.22\n", - "8 Black Hills Corp. LONG S1S2 2.13\n", - "9 CARPENTER TECHNOLOGY CORP LONG S1S2 1.92\n", - "10 CLEVELAND-CLIFFS INC LONG S1S2 1.56\n", - "11 CMS Energy Corp. LONG S1S2 2.16\n", - "12 COMMERCIAL METALS CO LONG S1S2 1.6\n", - "13 Cleco Partners LP LONG S1S2 2.55\n", - "14 Consolidated Edison, Inc. LONG S1S2 2.2\n", - "15 DTE Energy LONG S1S2 3.02\n", - "16 Dominion Energy LONG S1S2 1.85\n", - "17 Duke Energy Corp. LONG S1S2 1.93\n", - "18 Edison International LONG S1S2 3.16\n", - "19 Entergy Corp. LONG S1S2 1.93\n", - "20 Evergy, Inc. LONG S1S2 1.89\n", - "21 Eversource Energy LONG S1S2 1.23\n", - "22 Exelon Corp. LONG S1S2 4.37\n", - "23 FirstEnergy Corp. LONG S1S2 1.79\n", - "24 Fortis, Inc. LONG S1S2 1.7\n", - "25 GERDAU S.A. LONG S1S2 1.63\n", - "26 Hawaiian Electric Industries, Inc. LONG S1S2 2.61\n", - "27 MDU Resources Group LONG S1S2 2.48\n", - "28 NUCOR CORP LONG S1S2 1.73\n", - "29 National Grid PLC LONG S1S2 2.02\n", - "30 NextEra Energy, Inc. LONG S1S2 1.86\n", - "31 NIPPON STEEL CORP LONG S1S2 1.92\n", - "32 Nisource Inc. LONG S1S2 2.02\n", - "33 Northwestern Corp. LONG S1S2 1.85\n", - "34 OG&E Energy Corp. LONG S1S2 2.45\n", - "35 PG&E Corp. LONG S1S2 2.71\n", - "36 PNM Resources, Inc. LONG S1S2 2.05\n", - "37 POSCO LONG S1S2 1.94\n", - "38 PPL Corp. LONG S1S2 2.39\n", - "39 Pinnacle West Capital Corp. LONG S1S2 2.31\n", - "40 Portland General Electric Co. LONG S1S2 1.87\n", - "41 Public Service Enterprise Group LONG S1S2 1.53\n", - "42 Sempra LONG S1S2 2.54\n", - "43 Southern Co. LONG S1S2 2.01\n", - "44 STEEL DYNAMICS INC LONG S1S2 1.81\n", - "45 TC Energy Corp. LONG S1S2 2.83\n", - "46 TENARIS SA LONG S1S2 1.62\n", - "47 TERNIUM S.A. LONG S1S2 1.73\n", - "48 TIMKENSTEEL CORP LONG S1S2 1.59\n", - "49 UNITED STATES STEEL CORP LONG S1S2 1.76\n", - "50 Versant Power LONG S1S2 1.58\n", - "51 Vistra Corp. LONG S1S2 2.36\n", - "52 WEC Energy Group LONG S1S2 1.95\n", - "53 WORTHINGTON INDUSTRIES INC LONG S1S2 1.32\n", - "54 Xcel Energy, Inc. LONG S1S2 1.8" + " company_name time_frame scope temperature_score\n", + "0 AES Corp. LONG S1S2 1.93\n", + "1 ALLETE, Inc. LONG S1S2 1.98\n", + "2 Alliant Energy LONG S1S2 1.85\n", + "3 Ameren Corp. LONG S1S2 2.57\n", + "4 American Electric Power Co., Inc. LONG S1S2 2.19\n", + ".. ... ... ... ...\n", + "59 Versant Power LONG S1S2 1.81\n", + "60 Vistra Corp. LONG S1S2 2.44\n", + "61 WEC Energy Group LONG S1S2 2.15\n", + "62 WORTHINGTON INDUSTRIES INC LONG S1S2 1.34\n", + "63 Xcel Energy, Inc. LONG S1S2 1.82\n", + "\n", + "[64 rows x 4 columns]" ] }, "metadata": {}, @@ -1172,7 +695,7 @@ }, { "cell_type": "code", - "execution_count": 17, + "execution_count": 16, "metadata": {}, "outputs": [ { @@ -1190,22 +713,22 @@ }, { "cell_type": "code", - "execution_count": 18, + "execution_count": 17, "metadata": {}, "outputs": [ { "data": { "text/html": [ - "2.028177727328954 delta_degree_Celsius" + "1.9663907886496512 delta_degree_Celsius" ], "text/latex": [ - "$2.028177727328954\\ \\mathrm{delta\\_degree\\_Celsius}$" + "$1.9663907886496512\\ \\mathrm{delta\\_degree\\_Celsius}$" ], "text/plain": [ - "2.028177727328954 " + "1.9663907886496512 " ] }, - "execution_count": 18, + "execution_count": 17, "metadata": {}, "output_type": "execute_result" } @@ -1237,20 +760,11 @@ }, { "cell_type": "code", - "execution_count": 19, + "execution_count": 18, "metadata": { "scrolled": true }, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/Users/michael/opt/miniconda3/envs/ITR/lib/python3.10/site-packages/pint_pandas/pint_array.py:648: UnitStrippedWarning: The unit of the quantity is stripped when downcasting to ndarray.\n", - " return np.array(qtys, dtype=\"object\", copy=copy)\n" - ] - } - ], + "outputs": [], "source": [ "grouping = ['sector', 'region']\n", "temperature_score.grouping = grouping\n", @@ -1274,14 +788,14 @@ }, { "cell_type": "code", - "execution_count": 20, + "execution_count": 19, "metadata": {}, "outputs": [ { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ - "
      " + "
      " ] }, "metadata": { @@ -1297,7 +811,7 @@ }, { "cell_type": "code", - "execution_count": 21, + "execution_count": 20, "metadata": {}, "outputs": [ { @@ -1334,16 +848,16 @@ " Steel-Asia\n", " NIPPON STEEL CORP\n", " JP3381000003\n", - " 1.92 delta_degree_Celsius\n", - " 64.47775290245785 percent\n", + " 1.9 delta_degree_Celsius\n", + " 63.17325793838325 percent\n", " \n", " \n", " 1\n", " Steel-Asia\n", " POSCO\n", " KR7005490008\n", - " 1.94 delta_degree_Celsius\n", - " 35.52224709754215 percent\n", + " 1.91 delta_degree_Celsius\n", + " 36.82674206161675 percent\n", " \n", " \n", "\n", @@ -1351,15 +865,15 @@ ], "text/plain": [ " group company_name company_id temperature_score \\\n", - "0 Steel-Asia NIPPON STEEL CORP JP3381000003 1.92 delta_degree_Celsius \n", - "1 Steel-Asia POSCO KR7005490008 1.94 delta_degree_Celsius \n", + "0 Steel-Asia NIPPON STEEL CORP JP3381000003 1.9 delta_degree_Celsius \n", + "1 Steel-Asia POSCO KR7005490008 1.91 delta_degree_Celsius \n", "\n", " contribution_relative \n", - "0 64.47775290245785 percent \n", - "1 35.52224709754215 percent " + "0 63.17325793838325 percent \n", + "1 36.82674206161675 percent " ] }, - "execution_count": 21, + "execution_count": 20, "metadata": {}, "output_type": "execute_result" } @@ -1393,18 +907,9 @@ }, { "cell_type": "code", - "execution_count": 22, + "execution_count": 30, "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/Users/michael/opt/miniconda3/envs/ITR/lib/python3.10/site-packages/pint_pandas/pint_array.py:648: UnitStrippedWarning: The unit of the quantity is stripped when downcasting to ndarray.\n", - " return np.array(qtys, dtype=\"object\", copy=copy)\n" - ] - } - ], + "outputs": [], "source": [ "time_frames = [ETimeFrames.LONG]\n", "scopes = [EScope.S1S2]\n", @@ -1413,7 +918,7 @@ "\n", "temperature_score = TemperatureScore(time_frames=time_frames,\n", " scopes=scopes,\n", - " grouping=grouping)\n", + " grouping=grouping, aggregation_method=PortfolioAggregationMethod.WATS)\n", "enhanced_portfolio = temperature_score.calculate(data_warehouse=template_provider, portfolio=companies)\n", "aggregated_portfolio = temperature_score.aggregate_scores(enhanced_portfolio)\n", "with warnings.catch_warnings():\n", @@ -1423,12 +928,12 @@ }, { "cell_type": "code", - "execution_count": 23, + "execution_count": 29, "metadata": {}, "outputs": [ { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAmEAAAICCAYAAACHlRq/AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/YYfK9AAAACXBIWXMAAAsTAAALEwEAmpwYAABjfElEQVR4nO3dd3gc1dnG4d8ryUXuuMnGhQXjiql2jCgBQwhgRBOdEFpCDQk9QRBCCWAUSkIICSXAZ0IJEDqIAIGA6cUQA+7YsMbdcpN7k97vjxnBWpbtta3VbHnu69rL2pnZmXelXe+zZ86cY+6OiIiIiDSuvKgLEBEREclFCmEiIiIiEVAIExEREYmAQpiIiIhIBBTCRERERCKgECYiIiISAYUwEckZZjbWzIaGP19nZo804L6vMrP7G2p/IpL9FMIaiZnFzeygHDz2GWb2bhTHlvRkZj8xs1FmttTMZpnZv81s363c5wgzu3FT27n7Tu7+1tYcKzzeUDObXmffw939rK3dt4jkDoUwEWk0ZnYpcAcwHCgCegJ/A45K8XELUrl/EZEtoRDWyGpbhszsNjNbaGbfmNmwcN1JZjaqzvaXmNkL4c/Nwsd9a2ZzzOweMysM13U0s5fMbJGZLTCzd8wsz8weJvigezFsefiNmcXMzM3sTDObFtZxnpn9wMy+CPdxV506fmZm48NtXzWz7RLWefj4r8L1f7VAf+AeYK/w2IvC7Q8zs3FmtsTMZpjZ5Sn8lUuaMLO2wO+BC9z9GXdf5u5r3P1Fd/91+Pq+w8xmhrc7zKxZ+NihZjbdzC4zs7lhC9qZ4bpzgFOA34SvsxfD5XEzu8LMvgCWmVlBPa3Czc3sifC1+JmZ7ZpQr5vZjgn3R5jZjWbWEvg3sG14vKVmtm3d05tmdmR4+nORmb0Vvh9q18XN7PLw/VYV1tA8XFfve7nh/yIiEjW9saOxJzAR6AjcAjxgZga8APQ1s94J2/4EeCz8+Q9AH2A3YEegG3BNuO4yYDrQiaCF4SrA3f1U4FvgCHdv5e631KmjN3AiQevEb4GDgJ2AE8xsfwAzOzrc3zHh/t8B/lnnOR0O/ADYFTgBOMTdxwPnAR+Ex24XbvsAcK67twYGAv9N7tcmGW4voDnw7AbW/xYoJnh97woMAa5OWN8FaEvwuv858Fcz28bd7wMeBW4JX2dHJDzmZKAEaOfua+s55lHAv4D2BO+z58ysycaehLsvA4YBM8PjtXL3mYnbmFkfgvfIxQTvmZcJvgg1TdjsBOBQYHtgF+CMcHm97+WN1SQimUkhLBpT3f3v7l4NPAR0BYrcfTnwPMEHB2EY6we8EIa0s4FL3H2Buy8hOKVzUrjPNeF+tgtbF97xTU8MeoO7r3T314BlwD/dfa67zyAIWruH250L3Ozu48MPsuHAbomtYUC5uy9y92+BNwk+SDdkDTDAzNq4+0J3/2wTdUp26ADM20AYgqA16/fha7ASuB44NWH9mnD9Gnd/GVgK9N3EMe9092nuvmID6z9196fcfQ3wR4KQWJzsE9qIE4EKd/9PuO/bgEJg7zq1zXT3BcCLfP+e2ZL3sohkIIWwaMyu/SEMXgCtwn8fIwxhBK1gz4XbdAJaAJ+GpykWAa+EywFuBSYDr5nZ12ZWlkQdcxJ+XlHP/dqatgP+nHDcBYARtEis95yA5QmPrc+xwGHAVDMbaWZ7JVGrZL75QEfbcP+sbYGpCfenhsu+e3ydALep1xnAtGTXu3sNQQvUthvePGnrPJdw39NI7j2zJe9lEclACmHp5zWCD6rdCMJY7anIeQTBaCd3bxfe2rp7KwB3X+Lul7n7DsARwKVm9qPwsVv7LXoawenDdgm3Qnd/P4nHrndsd//E3Y8COgPPAU9uZX2SGT4AVgJHb2D9TILAX6tnuCwZG3qNb+q136P2h7DfVfeEYy4n+OJTq8tm7Hed5xK2ZPcAZmzicZt6L4tIFlEISzPhN/2nCL4Ntwf+Ey6vAf4O/MnMOgOYWTczOyT8+XAz2zH8z34xUB3eIGjh2mEryroHuNLMdgqP1dbMjk/ysXOA7rV9YcysqZmdYmZtw9M0tbVKlnP3KoI+jH81s6PNrIWZNTGzYWZ2C0EfqqvNrJOZdQy3TXYcry19jQ8ys2PC1rmLgVXAh+G60cBPzCzfzA4F9q9zvA7hxQb1eRIoMbMfhX3MLgv3vckvLpt4L4tIFlEIS0+PEXSQ/1ed0y9XEJym+NDMFgOv832fmN7h/aUELQ5/SxgP6WaCD7dFW3Ilors/S3BRwOPhcccQdExOxn+BscBsM5sXLjsViIf7Og/46ebWJJnJ3f8IXErQ4b6SoJX1lwQtojcCo4AvgC+Bz8JlyXiAoJ/hIjN7bjNKep6g/9ZCgtflMeGXA4CLCFqiFhH0V/tuv+4+gSA0fh0ec51TmO4+keB1/ReCVuwjCC6OWZ1ETRt7L4tIFjH19xQRERFpfGoJExEREYmAQpiIiIhIBBTCRERERCKgECYiIiISAYUwERERkQgohImIiIhEQCFMREREJAIKYSIiIiIRUAgTERERiYBCmIiIiEgEFMJEREREIqAQJiIiIhIBhTARERGRCCiEiYiIiERAIUxEREQkAgphIiIiIhFQCBMRERGJgEKYiIiISAQKoi5AREQk1T799NPOBQUF9wMDUQNErqgBxqxdu/asQYMGzY26mPoohImISNYrKCi4v0uXLv07deq0MC8vz6OuR1KvpqbGKisrB8yePft+4Mio66mPvg2IiEguGNipU6fFCmC5Iy8vzzt16lRF0PqZlhTCREQkF+QpgOWe8G+etlknbQsTERERyWbqEyYiIjknVlYxqCH3Fy8v+XRT2+Tn5w/q3bv3itr7xxxzzILhw4fPHjJkSN/bbrtt2n777bd8c475/vvvF06bNq3piSeeWFXf+rfffrvFgw8+2GHEiBHTNrSP/ffff8enn376G4D777+/fVlZWWWyx3/ppZda33777UVvvvnm5Nplxx57bOzwww+vOvPMMxf+/ve/73zJJZfMa926dU3isTp27FjdokWL3ZcvX/6/eDze5LzzzuvxyiuvfF33+Tz66KNtx44dWzh8+PDZydaUaRTCREREGkGzZs1qJkyYMK6h9jdq1KgWo0aNallfCFuzZg377bff8k0Fu5EjR04GmDhxYtMHHnig8+aEsE259957i84+++wFtSGs9liJYrHYmldeeeVrWP/5nHLKKVVAvQEzW+h0pIiISJp45pln2uy22279BgwY0H/YsGE7VFVV5QGMHDmyxe67796vb9++A3beeef+8+fPz7/55pu3ffHFF7fp16/fgL///e/bXHrppduefPLJ2+2zzz69jznmmO1feuml1gcccMCOAFVVVXnHHXdcrE+fPgP69OkzYMSIEe0AunXrtvOsWbMKLrvssu7Tpk1r1q9fvwHnnntu96OPPnr7Rx55pF1tXUceeeT2jz76aNtkn8eNN97Yee7cuU3233//PnvuuWefxGMlbjdx4sSmvXv33mnlypVW9/nceeedHU477bSeADNnziw45JBDeg0cOLD/wIED+7/22mstASoqKlr169dvQL9+/Qb0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\n", + "image/png": "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43fhNTeqwnT3qcDpwJ0EpdhHEnSOWZdETFv6LItIBjG19xQRERGpeSoJExEREYmAkjARERGRCCgJExEREYmAkjARERGRCCgJExEREYmAkjARERGRCCgJExEREYmAkjARERGRCCgJExEREYmAkjARERGRCCgJExEREYmAkjARERGRCCgJExEREYmAkjARERGRCCgJExEREYmAkjARERGRCCgJExEREYmAkjARERGRCORFHYCIiEiqffHFF23y8vIeAHqhAohsUQZM3LBhw7n9+vWbH3UwlVESJiIiGS8vL++Bdu3a7da6deslOTk5HnU8knplZWW2YMGCHnPnzn0AOCrqeCqjXwMiIpINerVu3XqZErDskZOT461bty4hKP1MS0rCREQkG+QoAcs+4WuetrlO2gYmIiIiksnUJmwLzKwZUN6Q04FfAauAe4BGQDFwmrsvM7OfAf8C1gGnuPvX4fHPAIe6e1mNPwAREalUrDDerzrPV1xU8EVV++Tm5vbr0qXL6vLlY489dvGwYcPmDhgwoNutt94644ADDli1Ndf86KOP6s+YMaPOSSedVFLZ9lGjRjV46KGHWj7yyCMzNneOQYMG7fr8889/D/DAAw+0KCwsXJDs9V999dXGt912W9t33333m/J1xx13XOyII44oOfvss5fceOONbS677LKFjRs3Lku8VqtWrUobNGiw56pVq74sLi7Ov+CCCzq+/vrr31V8PE888UTTSZMm1R82bNjcZGOqbZSEbdk/gNfd/XgzqwM0AN4CrnT3kWb2K+D3wHXAFcDhQAy4IFy+FhimBExEROrWrVs2ZcqUydV1vtGjRzcYPXp0w8qSsPXr13PAAQesqiqxGzly5DcAU6dOrfPggw+22ZokrCr33ntv21//+teLy5Ow8mslisVi619//fXvYNPHc9ppp5UAlSaYmULVkZthZk2BA4AHAdx9nbsvBboCo8Ld3gKOC++vJ0jSGgDrzawz0NHd36vBsEVEpBZ74YUXmvTp06d7jx49djvssMN2KSkpyQEYOXJkgz333LN7t27deuy+++67LVq0KHf48OE7vvLKK827d+/e4/77729++eWX73jMMcfs3Ldv3+7HHnvszq+++mrjAw88cFeAkpKSnOOPPz7WtWvXHl27du3xyCOPNANo37797nPmzMm74oorOsyYMaNu9+7de5x/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20dJWOBCgvGSJHP9JlYY1/s9eecTdGyQzPXbWGFcvV5ryCuvvNK4bt26ZZdccskigLy8PO65554ZTz/9dKvly5fnvPrqq40PPPDAKqeXys/P9+Li4joA3bt332yJ1i233LLD5ZdfPqdv375ryteddtppJYcddtgKgNtuu61Vr169duvWrVuPQw45pPPy5ctzAB566KHmXbp06dmtW7ce/fv377a9j1u2LOu/lMIv5gujjkNSLgYcFXUQtUH4mTg96jgk5XYEhkYdRLaYMGFC/T322GOjacFatGhRtsMOO6ybPHly3WTOUVpaSpcuXdacf/75salTp26xRGvatGn1BgwYsNlpyE477bQlEydO/Grq1KmTu3XrtvqOO+5oBVBUVLTDm2++OW3q1KmTX3/99W+SiUu2XdYnYcA+BP+MJPNpwNHkDAE0llR2UDOMWmTYsGFtdt9991X/+Mc/ph955JG7zp49O2/kyJENDj300F22dNzcuXNzu3fv3iMWi/X64x//2Bbgiy++qN+vX79uXbt27fH888+3nDRpUj2A/v37rzjttNNit912W6sNGzbUxMPKakrC9EswmxwYK4z3iDqIWuDMqAOQGnNIFkzvlRZ69eq1ety4cRtNDbZ48eKcOXPm1OnRo8faZM7x9ttvNxk8ePCKY445Zvkf/vCHOYccckiXBx98sNVJJ520SQeLrl27rvnss88aALRr1650ypQpk88444wFK1asyAU477zzdr7rrrt+mDZt2uSrrrpq9tq1a3MAnnzyyR9uvvnm2TNmzKjTr1+/HnPnzlWzhBRSEqYkLNscE3UA6SxWGG+MnqNskgccF3UQ2eCoo45avmbNmpy77rqrJcCGDRv4zW9+0/GEE05Y2Lhx47JkztG7d+/VI0aMaFFaWsq55567ZOedd17zn//8p8UJJ5ywtOK+11xzzdzbbrtthzFjxtQrX7dq1aqcxPudOnVav3btWnvqqadalK+fNGlS3YMOOmjl7bffPrt58+YbvvvuOzXkT6GsHqIiVhjvA2yxGFcyzi+AYVEHkcaOYssTeUvmORH4V9RB1LgkhpSoTjk5Obz00kvfnHfeeTv99a9/3aGsrIyDDjqo5I477tjsEBMVDRs2bM4555zTsWvXrj3r1atXts8++yw//fTTFwwdOnSX119//dvc3J8KrQYMGLD6L3/5y4wz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ti+8TU2dOpXBgwdvtO7EE0/kN7/5DatWreLwww/f5JizzjqLs846i4ULF3L88cdvsv3CCy/kpJNOYsaMGfzyl78EYO53i37c3mTAUBrsujfrF81k0Rt3bXJ8031Ppn6sD+vmfcfid+7bZHuzA86kXofdWDPzK5aOenST7S0OPo86bXdhdfFYSj56apPtLQ/5LfktO7Dqm09Z9tmLm2xvdcQV5DVpzcqvRrH8y9c22d76mKvJbdCUFRPeZsWEtzfZ3uaEP5GTX4/lY+KsnPL+JtvbnVoEQMmnL7D628822mZ5dWl74g0ALP3w36yZPm6j7bn1m9B66DUALBn5CGtnTdloe17jVrQ68koAFr99H+vmf7fR9vwW7Wl56O8AWPT6naxfPGuj7ZeueYvbb78dgNNPP52ZM2dutH2fffZh+PDhABx33HEsWrRoo+0HH3ww1113HQCHHXYYq1ev3mj7EUccwZVXBvHNfbKQihp235/GfQsoW7+G+c/+aZPtjXYfQqPdh1C6qoQFLw3fZHvjPQ+n4W4HsGHZAha+etsm2/Xe27b33uBP/krLli15/vnnAbj66qv5+OOPNzq+Q4cOPP744wBceumljB07dqPtXbt25b77guf0vPPOY9q0aRtt79OnT4299yr+z4PU/N9LdMUVV3DkkUcydepUzj///E22X3vttQwZMoSxY8dy6aWXbrJ92LBh7Lvvvnz00Udcc801m2y//fbb6dOnD2+//TY333zzJtvvvfdeunXrxiuvvMJtt2362RgxYgQdO3bk6aef5l//+tcm25977jlatWrFI488wiOPPLLJ9tdee40GDRpw991388wzz2yy/b333gPg1ltv5dVXX91oW/369fnvf/8LwE033cQ777yz0Xa99/Te29J7L1Ey1ZHvAPUTlusDm/433Tb7mNk4M/uvmfXc3E5mdp6ZjTaz0evXa3QMERERqf3M3be8g9lYd+9T1brNHBsDXnX3XpVsawKUufsKMzucoLStS1Xn7N+/v48eXWWTtO0WK4yn/Bqy/YqLCmrsWnpP1B56X0hFNfmeEElkZl+4e//KtiVTErbSzPomnKwfsHoL+yfF3Ze5+4rw/mtAvpm12t7zioiIiNQGybQJuxR41sxmEwzW2g44aXsvbGbtgHnu7mY2gCAhXFTFYSIiIiIZIZlpiz43s+5At3BVUtMW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IiIiIrVGKpOw9sCMhOWZ4bqKjjOz8Wb2nJl1rOxEZnaemY02s9ELFixIRawiIiIiNSqlbcKS8AoQc/fewFvAo5Xt5O73uXt/d+/funXrGg1QREREJBVSmYTNAhJLtjqE637k7ovcfW24+ADQL4XxiIiIiKSNVCZhnwNdzGxnM6sDnEwwEfiPzGyHhMWjgK9SGI+IiIhI2khZ70h332BmvwXeIJiH8iF3n2RmNwKj3f1l4GIzOwrYACwGzkpVPCIiIiLpJGVJGIC7vwa8VmHdHxPuXw1cncoYRERERNJR1A3zRURERLKSkjARERGRCCgJExEREYmAkjARERGRCCgJExEREYmAkjARERGRCCgJExEREYmAkjARERGRCCgJExEREYmAkjARERGRCCgJExEREYmAkjARERGRCCgJExEREYmAkjARERGRCCgJExEREYmAkjARERGRCCgJExEREYmAkjARERGRCCgJExEREYmAkjARERGRCCgJExEREYmAkjARERGRCCgJExEREYmAkjARERGRCCgJExEREYmAkjARERGRCCgJExEREYmAkjARERGRCCgJExEREYmAkjARERGRCCgJExEREYlASpMwMzvUzKaa2TdmVljJ9rpm9nS4/VMzi6UyHhEREZF0kbIkzMxygX8ChwE9gFPMrEeF3c4Blrj7rsDfgT+nKh4RERGRdJLKkrABwDfu/p27rwOeAo6usM/RwKPh/eeAg83MUhiTiIiISFrIS+G52wMzEpZnAntvbh9332BmJUBLYGHiTmZ2HnBeuLjCzKamJOLM14oKz21tZyo73V4Z954AvS+qQca9L/Se2G4Z956AGntf7LS5DalMwqqNu98H3Bd1HLWdmY129/5RxyHpQ+8JqYzeF1KR3hOpkcrqyFlAx4TlDuG6SvcxszygKbAohTGJiIiIpIVUJmGfA13MbGczqwOcDLxcYZ+XgTPD+8cD/3N3T2FMIiIiImkhZdWRYRuv3wJvALnAQ+4+ycxuBEa7+8vAg8AIM/sGWEyQqEnqqEpXKtJ7Qiqj94VUpPdECpgKnkRERERqnkbMFxEREYmAkjARERGRCCgJExEREYmAkjCRDBb2TBYR2ayKM9Vo5pqaoyQsQ5R/aMxMr6kAYGa7A+eYWfuoY5H0oC9XqcjMrHxoKDPrC6ChomqOvrAzQPmHyMyOAv6l0g8J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\n", "text/plain": [ "
      " ] @@ -1454,7 +959,7 @@ }, { "cell_type": "code", - "execution_count": 24, + "execution_count": 23, "metadata": {}, "outputs": [ { @@ -1489,104 +994,104 @@ " \n", " \n", " \n", - " 7\n", - " STEEL DYNAMICS INC\n", - " US8581191009\n", + " 0\n", + " POSCO\n", + " KR7005490008\n", " Steel\n", - " 2.7558113586151483 percent\n", - " 1.81 delta_degree_Celsius\n", + " 18.0654098665291 percent\n", + " 1.91 delta_degree_Celsius\n", " 0.00\n", - " 3.09\n", + " 1.01\n", " \n", " \n", - " 11\n", - " CLEVELAND-CLIFFS INC\n", - " US1858991011\n", + " 1\n", + " NIPPON STEEL CORP\n", + " JP3381000003\n", " Steel\n", - " 2.5575109683489123 percent\n", - " 1.56 delta_degree_Celsius\n", - " 0.01\n", - " 3.33\n", + " 17.50905233506998 percent\n", + " 1.9 delta_degree_Celsius\n", + " 0.00\n", + " 1.75\n", " \n", " \n", - " 22\n", + " 6\n", " UNITED STATES STEEL CORP\n", " US9129091081\n", " Steel\n", - " 1.9636631996367924 percent\n", - " 1.76 delta_degree_Celsius\n", - " 0.01\n", - " 2.26\n", + " 5.7650266504767655 percent\n", + " 1.74 delta_degree_Celsius\n", + " 0.00\n", + " 1.35\n", " \n", " \n", - " 23\n", + " 7\n", + " CLEVELAND-CLIFFS INC\n", + " US1858991011\n", + " Steel\n", + " 5.747295879148133 percent\n", + " 1.57 delta_degree_Celsius\n", + " 0.00\n", + " 1.02\n", + " \n", + " \n", + " 8\n", + " TERNIUM S.A.\n", + " US8808901081\n", + " Steel\n", + " 3.5293688797543474 percent\n", + " 1.72 delta_degree_Celsius\n", + " 0.03\n", + " 1.25\n", + " \n", + " \n", + " 10\n", " GERDAU S.A.\n", " US3737371050\n", " Steel\n", - " 1.9450148926165305 percent\n", - " 1.63 delta_degree_Celsius\n", + " 2.44003972308551 percent\n", + " 1.73 delta_degree_Celsius\n", " 0.01\n", - " 2.42\n", + " 1.26\n", " \n", " \n", - " 25\n", + " 11\n", " NUCOR CORP\n", " US6703461052\n", " Steel\n", - " 1.851255548080782 percent\n", - " 1.73 delta_degree_Celsius\n", + " 2.15935318326576 percent\n", + " 1.71 delta_degree_Celsius\n", " 0.00\n", - " 2.17\n", + " 0.78\n", " \n", " \n", - " 27\n", - " NIPPON STEEL CORP\n", - " JP3381000003\n", + " 13\n", + " STEEL DYNAMICS INC\n", + " US8581191009\n", " Steel\n", - " 1.8125153154159122 percent\n", - " 1.92 delta_degree_Celsius\n", + " 1.0886541859141898 percent\n", + " 1.83 delta_degree_Celsius\n", " 0.00\n", - " 1.91\n", + " 1.41\n", " \n", " \n", - " 34\n", + " 14\n", " COMMERCIAL METALS CO\n", " US2017231034\n", " Steel\n", - " 1.5263437189477258 percent\n", - " 1.6 delta_degree_Celsius\n", - " 0.01\n", - " 1.93\n", - " \n", - " \n", - " 36\n", - " TIMKENSTEEL CORP\n", - " US8873991033\n", - " Steel\n", - " 1.182843558893695 percent\n", - " 1.59 delta_degree_Celsius\n", - " 0.03\n", - " 1.51\n", - " \n", - " \n", - " 41\n", - " POSCO\n", - " KR7005490008\n", - " Steel\n", - " 0.9985555327848478 percent\n", - " 1.94 delta_degree_Celsius\n", + " 0.5340128507864669 percent\n", + " 1.66 delta_degree_Celsius\n", " 0.00\n", - " 1.04\n", + " 0.82\n", " \n", " \n", - " 44\n", + " 16\n", " TENARIS SA\n", " US88031M1099\n", " Steel\n", - " 0.7751761399822685 percent\n", - " 1.62 delta_degree_Celsius\n", - " 0.01\n", - " 0.97\n", + " 0.3206960173166971 percent\n", + " 1.71 delta_degree_Celsius\n", + " 0.03\n", + " 1.62\n", " \n", " \n", "\n", @@ -1594,31 +1099,31 @@ ], "text/plain": [ " company_name company_id sector contribution \\\n", - "7 STEEL DYNAMICS INC US8581191009 Steel 2.7558113586151483 percent \n", - "11 CLEVELAND-CLIFFS INC US1858991011 Steel 2.5575109683489123 percent \n", - "22 UNITED STATES STEEL CORP US9129091081 Steel 1.9636631996367924 percent \n", - "23 GERDAU S.A. US3737371050 Steel 1.9450148926165305 percent \n", - "25 NUCOR CORP US6703461052 Steel 1.851255548080782 percent \n", - "27 NIPPON STEEL CORP JP3381000003 Steel 1.8125153154159122 percent \n", - "34 COMMERCIAL METALS CO US2017231034 Steel 1.5263437189477258 percent \n", - "36 TIMKENSTEEL CORP US8873991033 Steel 1.182843558893695 percent \n", - "41 POSCO KR7005490008 Steel 0.9985555327848478 percent \n", - "44 TENARIS SA US88031M1099 Steel 0.7751761399822685 percent \n", + "0 POSCO KR7005490008 Steel 18.0654098665291 percent \n", + "1 NIPPON STEEL CORP JP3381000003 Steel 17.50905233506998 percent \n", + "6 UNITED STATES STEEL CORP US9129091081 Steel 5.7650266504767655 percent \n", + "7 CLEVELAND-CLIFFS INC US1858991011 Steel 5.747295879148133 percent \n", + "8 TERNIUM S.A. US8808901081 Steel 3.5293688797543474 percent \n", + "10 GERDAU S.A. US3737371050 Steel 2.44003972308551 percent \n", + "11 NUCOR CORP US6703461052 Steel 2.15935318326576 percent \n", + "13 STEEL DYNAMICS INC US8581191009 Steel 1.0886541859141898 percent \n", + "14 COMMERCIAL METALS CO US2017231034 Steel 0.5340128507864669 percent \n", + "16 TENARIS SA US88031M1099 Steel 0.3206960173166971 percent \n", "\n", " temperature_score ownership_percentage portfolio_percentage \n", - "7 1.81 delta_degree_Celsius 0.00 3.09 \n", - "11 1.56 delta_degree_Celsius 0.01 3.33 \n", - "22 1.76 delta_degree_Celsius 0.01 2.26 \n", - "23 1.63 delta_degree_Celsius 0.01 2.42 \n", - "25 1.73 delta_degree_Celsius 0.00 2.17 \n", - "27 1.92 delta_degree_Celsius 0.00 1.91 \n", - "34 1.6 delta_degree_Celsius 0.01 1.93 \n", - "36 1.59 delta_degree_Celsius 0.03 1.51 \n", - "41 1.94 delta_degree_Celsius 0.00 1.04 \n", - "44 1.62 delta_degree_Celsius 0.01 0.97 " + "0 1.91 delta_degree_Celsius 0.00 1.01 \n", + "1 1.9 delta_degree_Celsius 0.00 1.75 \n", + "6 1.74 delta_degree_Celsius 0.00 1.35 \n", + "7 1.57 delta_degree_Celsius 0.00 1.02 \n", + "8 1.72 delta_degree_Celsius 0.03 1.25 \n", + "10 1.73 delta_degree_Celsius 0.01 1.26 \n", + "11 1.71 delta_degree_Celsius 0.00 0.78 \n", + "13 1.83 delta_degree_Celsius 0.00 1.41 \n", + "14 1.66 delta_degree_Celsius 0.00 0.82 \n", + "16 1.71 delta_degree_Celsius 0.03 1.62 " ] }, - "execution_count": 24, + "execution_count": 23, "metadata": {}, "output_type": "execute_result" } @@ -1642,7 +1147,7 @@ }, { "cell_type": "code", - "execution_count": 25, + "execution_count": 24, "metadata": { "pycharm": { "name": "#%%\n" @@ -1665,7 +1170,7 @@ }, { "cell_type": "code", - "execution_count": 26, + "execution_count": 25, "metadata": {}, "outputs": [], "source": [ @@ -1689,14 +1194,14 @@ }, { "cell_type": "code", - "execution_count": 27, + "execution_count": 26, "metadata": {}, "outputs": [ { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ - "
      " + "
      " ] }, "metadata": { @@ -1738,7 +1243,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.10.2" + "version": "3.9.0" } }, "nbformat": 4, From c76766c3cfa16b5a10c4e2fed81352d216e5a064 Mon Sep 17 00:00:00 2001 From: MichaelTiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> Date: Sun, 11 Sep 2022 21:44:22 -0400 Subject: [PATCH 313/345] Add several additional Autos companies to experiment with S3 emissions functionality. Signed-off-by: MichaelTiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- .../data/20220720 ITR Tool Sample Data.xlsx | Bin 63615 -> 65967 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/examples/data/20220720 ITR Tool Sample Data.xlsx b/examples/data/20220720 ITR Tool Sample Data.xlsx index a203c5e882f2d751a072eeb6751b6b88c0bfc30f..5f8529c7b4b48cb316ccfb43a3c35520fccd34e3 100644 GIT binary patch delta 53418 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ⅆ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 LQ+x+aGvj|Ku9o@#P+YCh2BTnh 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 From a4c1432325b86992935b925e2b862a2b7e48e015 Mon Sep 17 00:00:00 2001 From: Joris Cramwinckel <8858036+joriscram@users.noreply.github.com> Date: Thu, 8 Sep 2022 14:26:11 +0200 Subject: [PATCH 314/345] added data in setup.py + minor revisions in README.md Signed-off-by: Joris Cramwinckel <8858036+joriscram@users.noreply.github.com> Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- README.md | 4 +++- setup.py | 2 +- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 2a781ef8..8f31f500 100644 --- a/README.md +++ b/README.md @@ -19,7 +19,7 @@ source itr_ui/bin/activate ``` On Windows, activate the environment with ``` -itr_ui\Scripts\activate.bat +itr_ui\Scripts\activate ``` Next, run: ``` @@ -28,6 +28,8 @@ pip install -r requirements.txt python3 ITR_UI.py ``` +Note the python commands are ```python``` for windows and ``python3`` for linux/mac. + Finally, open a browser window and navigate to `http://127.0.0.1:8050/` to access the user interface. ## Jupyter notebooks diff --git a/setup.py b/setup.py index 2ced9b13..ccfebe9e 100644 --- a/setup.py +++ b/setup.py @@ -22,7 +22,7 @@ }, keywords=['Climate', 'ITR', 'Finance'], package_data={ - 'ITR': [], + 'ITR': ['data/input/*.csv'], }, include_package_data=True, install_requires=[ From 1f581ec86347d9b73de71949b8abc28b23f5a78c Mon Sep 17 00:00:00 2001 From: Joris Cramwinckel <8858036+joriscram@users.noreply.github.com> Date: Thu, 8 Sep 2022 14:29:14 +0200 Subject: [PATCH 315/345] minor revisions in README.md Signed-off-by: Joris Cramwinckel <8858036+joriscram@users.noreply.github.com> Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- README.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/README.md b/README.md index 8f31f500..8ec59822 100644 --- a/README.md +++ b/README.md @@ -27,7 +27,6 @@ python3 -m pip install --upgrade pip pip install -r requirements.txt python3 ITR_UI.py ``` - Note the python commands are ```python``` for windows and ``python3`` for linux/mac. Finally, open a browser window and navigate to `http://127.0.0.1:8050/` to access the user interface. @@ -61,7 +60,7 @@ source itr_env/bin/activate ``` On Windows, activate the environment with ``` -itr_env\Scripts\activate.bat +itr_env\Scripts\activate ``` Next, run: ``` From 9aa87c5b7a5590bce0b5df881aa9fd9365bdb1ee Mon Sep 17 00:00:00 2001 From: MichaelTiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> Date: Tue, 13 Sep 2022 07:57:28 -0400 Subject: [PATCH 316/345] Allow GUI to read from a filename argument. Fix XLSX data damaged by LibreOffice. Signed-off-by: MichaelTiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- examples/ITR_UI.py | 34 ++++++++---------- .../data/20220720 ITR Tool Sample Data.xlsx | Bin 65967 -> 66933 bytes 2 files changed, 15 insertions(+), 19 deletions(-) diff --git a/examples/ITR_UI.py b/examples/ITR_UI.py index 13295e23..3b8a8d33 100644 --- a/examples/ITR_UI.py +++ b/examples/ITR_UI.py @@ -2,9 +2,6 @@ # visit http://127.0.0.1:8050/ in your web browser -import argparse -import sys - import pandas as pd import numpy as np import json @@ -39,6 +36,15 @@ from pint_pandas import PintType import logging + +import argparse + +# Set input filename (from commandline or default) +parser = argparse.ArgumentParser() +parser.add_argument('file') +args = parser.parse_args() +company_data_path = args.file or os.path.join(root, examples_dir, data_dir, "20220720 ITR Tool Sample Data.xlsx") + logger = logging.getLogger(__name__) logger.setLevel(logging.INFO) @@ -57,17 +63,7 @@ root = os.path.abspath('') # load company data -parser = argparse.ArgumentParser() -parser.add_argument('template', nargs='+', help='enter filename of XLSX data template') -parser.set_defaults(template="20220415 ITR Tool Sample Data.xlsx") -if len(sys.argv)>1: - print(sys.argv) - company_data=parser.parse_args(sys.argv).template[-1] - print(company_data) -else: - company_data="20220720 ITR Tool Sample Data.xlsx" # this file is provided initially - -template_company_data = TemplateProviderCompany(excel_path=os.path.join(root, examples_dir, data_dir, company_data)) +template_company_data = TemplateProviderCompany(company_data_path) # load production benchmarks benchmark_prod_json_file = "benchmark_production_OECM.json" @@ -86,9 +82,9 @@ benchmark_EI_TPI_below_2_file = "benchmark_EI_TPI_below_2_degrees.json" # loading dummy portfolio -df_portfolio = pd.read_excel(os.path.join(root, examples_dir, data_dir, company_data), sheet_name="Portfolio") +df_portfolio = pd.read_excel(company_data_path, sheet_name="Portfolio") companies = ITR.utils.dataframe_to_portfolio(df_portfolio) -logger.info('Load dummy portfolio from {}. You could upload your own portfolio using the template.'.format(company_data)) +logger.info('Load dummy portfolio from {}. You could upload your own portfolio using the template.'.format(company_data_path)) temperature_score = TemperatureScore( time_frames = [ETimeFrames.LONG], @@ -528,7 +524,7 @@ def update_graph( winz, ): - global amended_portfolio_global, initial_portfolio, filt_df, temperature_score, companies, company_data, template_company_data, base_production_bm + global amended_portfolio_global, initial_portfolio, filt_df, temperature_score, companies, company_data_path, template_company_data, base_production_bm changed_id = [p['prop_id'] for p in dash.callback_context.triggered][0] # to catch which widgets were pressed @@ -539,7 +535,7 @@ def update_graph( template_company_data.projection_controls.TREND_CALC_METHOD = staticmethod(pd.DataFrame.mean) template_company_data.projection_controls.LOWER_PERCENTILE = winz[0]/100 template_company_data.projection_controls.UPPER_PERCENTILE = winz[1]/100 - template_company_data = TemplateProviderCompany(excel_path=os.path.join(root, examples_dir, data_dir, company_data)) + template_company_data = TemplateProviderCompany(excel_path=company_data_path) amended_portfolio_global = recalculate_individual_itr(scenario) # we need to recalculate temperature score as we changed th @@ -706,7 +702,7 @@ def reset_filters(n_clicks_reset, scenario): ProjectionControls.TREND_CALC_METHOD=staticmethod(pd.DataFrame.median) ProjectionControls.LOWER_PERCENTILE = 0.1 ProjectionControls.UPPER_PERCENTILE = 0.9 - template_company_data = TemplateProviderCompany(excel_path=os.path.join(root, examples_dir, data_dir, company_data)) + template_company_data = TemplateProviderCompany(excel_path=company_data_path) amended_portfolio_global = recalculate_individual_itr(scenario) initial_portfolio = amended_portfolio_global diff --git a/examples/data/20220720 ITR Tool Sample Data.xlsx b/examples/data/20220720 ITR Tool Sample Data.xlsx index 5f8529c7b4b48cb316ccfb43a3c35520fccd34e3..30164475932dcd24fc1b87a0e8f8137c031a77d6 100644 GIT binary patch literal 66933 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 literal 65967 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 jIAjS2lc3KK({W%jpY& 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 From e904bf182f904c0d1da69b004bee222a5841e3e1 Mon Sep 17 00:00:00 2001 From: MichaelTiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> Date: Wed, 14 Sep 2022 05:10:10 -0400 Subject: [PATCH 317/345] Fix ITR_UI.py handling of default template file if no parameters given on command line. Signed-off-by: MichaelTiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- examples/ITR_UI.py | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/examples/ITR_UI.py b/examples/ITR_UI.py index 3b8a8d33..aaee2963 100644 --- a/examples/ITR_UI.py +++ b/examples/ITR_UI.py @@ -37,14 +37,9 @@ import logging +import sys import argparse -# Set input filename (from commandline or default) -parser = argparse.ArgumentParser() -parser.add_argument('file') -args = parser.parse_args() -company_data_path = args.file or os.path.join(root, examples_dir, data_dir, "20220720 ITR Tool Sample Data.xlsx") - logger = logging.getLogger(__name__) logger.setLevel(logging.INFO) @@ -53,8 +48,6 @@ stream_handler.setFormatter(formatter) logger.addHandler(stream_handler) - -# Initial calculations logger.info("Start!") examples_dir ='' #'examples' @@ -62,6 +55,16 @@ data_json_units_dir="json-units" root = os.path.abspath('') +# Set input filename (from commandline or default) +parser = argparse.ArgumentParser() +parser.add_argument('file') +if len(sys.argv)>1: + args = parser.parse_args() + company_data_path = args.file +else: + company_data_path = os.path.join(root, examples_dir, data_dir, "20220720 ITR Tool Sample Data.xlsx") + + # load company data template_company_data = TemplateProviderCompany(company_data_path) From 188135e38fea1aeaaef8f53ac393c0a1018dd7e2 Mon Sep 17 00:00:00 2001 From: MichaelTiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> Date: Sun, 18 Sep 2022 23:03:33 -0400 Subject: [PATCH 318/345] Initial Scope 3 support aligned with OECM 2.0 These changes introduce breaking changes for the test suite, in particular, Scope 3 emissions are now projected according to targets and trajectories, but then merged in with S1S2 emissions, wrecking calculations that expect S3 emissions to stay in their lanes. The reason the S3 emissions must migrate into S1S2 is related to how the "production-centric" benchmarks are constructed (they have scope 3 = 0 for all but cement). Since methodology is foremost, and since the benchmarks speak to how to handle S3, we are following that until we have benchmarks that keep S3 separate and nonzero. Signed-off-by: MichaelTiemannOSC Signed-off-by: Michael Tiemann <72577720+MichaelTiemannOSC@users.noreply.github.com> --- ITR/configs.py | 3 + ITR/data/base_providers.py | 70 +- ITR/data/data_warehouse.py | 24 +- ITR/data/excel.py | 3 +- ITR/data/osc_units.py | 12 +- ITR/interfaces.py | 84 +- ITR/portfolio_aggregation.py | 27 +- ITR/temperature_score.py | 11 +- ITR/utils.py | 6 +- examples/ITR_UI.py | 24 +- .../data/20220720 ITR Tool Sample Data.xlsx | Bin 66933 -> 74132 bytes examples/quick_template_score_calc.ipynb | 869 ++++++++++++++---- examples/utils.py | 28 +- test/test_portfolio_aggregation.py | 4 +- 14 files changed, 885 insertions(+), 280 deletions(-) diff --git a/ITR/configs.py b/ITR/configs.py index ed56d8c7..b06d146f 100644 --- a/ITR/configs.py +++ b/ITR/configs.py @@ -162,3 +162,6 @@ def add_config_to_logger(cls, logger: logging.Logger): stream_handler = logging.StreamHandler() stream_handler.setFormatter(formatter) logger.addHandler(stream_handler) + +logger = logging.getLogger(__name__) +LoggingConfig.add_config_to_logger(logger) diff --git a/ITR/data/base_providers.py b/ITR/data/base_providers.py index 395f1543..53bfe141 100644 --- a/ITR/data/base_providers.py +++ b/ITR/data/base_providers.py @@ -2,6 +2,7 @@ import numpy as np import pandas as pd from functools import reduce, partial +from operator import add from typing import List, Type, Dict import logging @@ -36,14 +37,14 @@ def __init__(self, production_benchmarks: IProductionBenchmarkScopes, self.column_config = column_config self._productions_benchmarks = production_benchmarks - # Note that bencharmk production series are dimensionless. - def _convert_benchmark_to_series(self, benchmark: IBenchmark) -> pd.Series: + # Note that benchmark production series are dimensionless. + def _convert_benchmark_to_series(self, benchmark: IBenchmark, scope: EScope) -> pd.Series: """ extracts the company projected intensity or production targets for a given scope :param scope: a scope :return: pd.Series """ - return pd.Series({r.year: r.value for r in benchmark.projections}, name=(benchmark.region, benchmark.sector), + return pd.Series({r.year: r.value for r in benchmark.projections}, name=(benchmark.region, benchmark.sector, scope), dtype=f'pint[{benchmark.benchmark_metric.units}]') # Production benchmarks are dimensionless. S1S2 has nothing to do with any company data. @@ -56,9 +57,9 @@ def _get_projected_production(self, scope: EScope = EScope.S1S2) -> pd.DataFrame """ result = [] for bm in self._productions_benchmarks.dict()[str(scope)]['benchmarks']: - result.append(self._convert_benchmark_to_series(IBenchmark.parse_obj(bm))) + result.append(self._convert_benchmark_to_series(IBenchmark.parse_obj(bm), scope)) df_bm = pd.DataFrame(result) - df_bm.index.names = [self.column_config.REGION, self.column_config.SECTOR] + df_bm.index.names = [self.column_config.REGION, self.column_config.SECTOR, self.column_config.SCOPE] return df_bm @@ -69,7 +70,7 @@ def get_company_projected_production(self, company_sector_region_info: pd.DataFr ColumnsConfig.COMPANY_ID, ColumnsConfig.GHG_SCOPE12, ColumnsConfig.SECTOR and ColumnsConfig.REGION :return: DataFrame of projected productions for [base_year - base_year + 50] """ - benchmark_production_projections = self.get_benchmark_projections(company_sector_region_info) + benchmark_production_projections = self.get_benchmark_projections(company_sector_region_info, scope=EScope.S1S2) company_production = company_sector_region_info[self.column_config.BASE_YEAR_PRODUCTION] return benchmark_production_projections.add(1).cumprod(axis=1).mul( company_production, axis=0) @@ -87,11 +88,12 @@ def get_benchmark_projections(self, company_sector_region_info: pd.DataFrame, benchmark_projection = self._get_projected_production(scope) # TODO optimize performance sectors = company_sector_region_info[self.column_config.SECTOR] regions = company_sector_region_info[self.column_config.REGION] + scopes = [EScope.S1S2] * len(sectors) benchmark_regions = regions.copy() mask = benchmark_regions.isin(benchmark_projection.reset_index()[self.column_config.REGION]) benchmark_regions.loc[~mask] = "Global" - benchmark_projection = benchmark_projection.loc[list(zip(benchmark_regions, sectors))] + benchmark_projection = benchmark_projection.loc[list(zip(benchmark_regions, sectors, scopes))] benchmark_projection.index = sectors.index return benchmark_projection @@ -117,7 +119,7 @@ def get_SDA_intensity_benchmarks(self, company_info_at_base_year: pd.DataFrame) intensity_benchmarks = self._get_intensity_benchmarks(company_info_at_base_year) decarbonization_paths = self._get_decarbonizations_paths(intensity_benchmarks) last_ei = intensity_benchmarks[self.temp_config.CONTROLS_CONFIG.target_end_year] - ei_base = company_info_at_base_year[self.column_config.BASE_EI] + ei_base = intensity_benchmarks[self.temp_config.CONTROLS_CONFIG.base_year] df = decarbonization_paths.mul((ei_base - last_ei), axis=0) df = df.add(last_ei, axis=0).astype(ei_base.dtype) return df @@ -143,14 +145,15 @@ def _get_decarbonization(self, intensity_benchmark_row: pd.Series) -> pd.Series: # TODO: does this still throw a warning when processing a NaN? convert to base units before accessing .magnitude return intensity_benchmark_row.apply(lambda x: (x - last_ei) / (first_ei - last_ei)) - def _convert_benchmark_to_series(self, benchmark: IBenchmark) -> pd.Series: + def _convert_benchmark_to_series(self, benchmark: IBenchmark, scope: EScope) -> pd.Series: """ extracts the company projected intensities or targets for a given scope :param scope: a scope :return: pd.Series """ - return pd.Series({p.year: p.value for p in benchmark.projections}, name=(benchmark.region, benchmark.sector), - dtype=f'pint[{benchmark.benchmark_metric.units}]') + s = pd.Series({p.year: p.value for p in benchmark.projections}, name=(benchmark.region, benchmark.sector, scope), + dtype=f'pint[{benchmark.benchmark_metric.units}]') + return s def _get_projected_intensities(self, scope: EScope = EScope.S1S2) -> pd.DataFrame: """ @@ -160,12 +163,12 @@ def _get_projected_intensities(self, scope: EScope = EScope.S1S2) -> pd.DataFram """ results = [] for bm in self._EI_benchmarks.__getattribute__(str(scope)).benchmarks: - results.append(self._convert_benchmark_to_series(bm)) + results.append(self._convert_benchmark_to_series(bm, scope)) with warnings.catch_warnings(): # pd.DataFrame.__init__ (in pandas/core/frame.py) ignores the beautiful dtype information adorning the pd.Series list elements we are providing. Sad! warnings.simplefilter("ignore") df_bm = pd.DataFrame(results) - df_bm.index.names = [self.column_config.REGION, self.column_config.SECTOR] + df_bm.index.names = [self.column_config.REGION, self.column_config.SECTOR, self.column_config.SCOPE] return df_bm def _get_intensity_benchmarks(self, company_sector_region_info: pd.DataFrame, @@ -178,13 +181,14 @@ def _get_intensity_benchmarks(self, company_sector_region_info: pd.DataFrame, :param scope: a scope :return: A DataFrame with company and intensity benchmarks per calendar year per row """ + sectors = company_sector_region_info[self.column_config.SECTOR] + regions = company_sector_region_info[self.column_config.REGION].copy() benchmark_projection = self._get_projected_intensities(scope) # TODO optimize performance - reg_sec = company_sector_region_info[[self.column_config.REGION,self.column_config.SECTOR]].copy() - merged_df=reg_sec.reset_index().merge(benchmark_projection.reset_index()[[self.column_config.REGION,self.column_config.SECTOR]], how='left', indicator=True).set_index('index') # checking which combinations of reg-sec are missing in the benchmark - reg_sec.loc[merged_df._merge == 'left_only', self.column_config.REGION] = "Global" # change region in missing combination to "Global" - sectors = reg_sec.sector - regions = reg_sec.region - benchmark_projection = benchmark_projection.loc[list(zip(regions, sectors))] + mask = regions.isin(benchmark_projection.reset_index()[self.column_config.REGION]) + regions.loc[~mask] = "Global" + + # benchmark_projection has a scope by construction + benchmark_projection = benchmark_projection.loc[list(zip(regions, sectors, [scope] * len(sectors)))] benchmark_projection.index = sectors.index return benchmark_projection @@ -285,6 +289,7 @@ def _calculate_target_projections(self, production_bm: BaseProviderProductionBen self.column_config.COMPANY_ID: [c.company_id], self.column_config.BASE_YEAR_PRODUCTION: [base_year_production.to(c.production_metric.units)], self.column_config.GHG_SCOPE12: [c.ghg_s1s2], + self.column_config.GHG_SCOPE3: [c.ghg_s3], self.column_config.SECTOR: [c.sector], self.column_config.REGION: [c.region], }, index=[0]) @@ -337,15 +342,19 @@ def get_company_intensity_and_production_at_base_year(self, company_ids: List[st overrides subclass method :param: company_ids: list of company ids :return: DataFrame the following columns : - ColumnsConfig.COMPANY_ID, ColumnsConfig.PRODUCTION_METRIC, ColumnsConfig.GHG_SCOPE12, ColumnsConfig.BASE_EI, - ColumnsConfig.SECTOR and ColumnsConfig.REGION + ColumnsConfig.COMPANY_ID, ColumnsConfig.PRODUCTION_METRIC, ColumnsConfig.BASE_EI, + ColumnsConfig.SECTOR and ColumnsConfig.REGION, ColumnsConfig.GHG_SCOPE1, ColumnsConfig.GHG_SCOPE2, + ColumnsConfig.GHG_SCOPE12, ColumnsConfig.GHG_SCOPE3 + + Note that BASE_EI is a combined S1S2 and S3 intensity metric (if S3 EI is available) """ df_fundamentals = self.get_company_fundamentals(company_ids) base_year = self.temp_config.CONTROLS_CONFIG.base_year company_info = df_fundamentals.loc[ company_ids, [self.column_config.SECTOR, self.column_config.REGION, self.column_config.BASE_YEAR_PRODUCTION, - self.column_config.GHG_SCOPE12]] + self.column_config.GHG_SCOPE12, + self.column_config.GHG_SCOPE3]] ei_at_base = self._get_company_intensity_at_year(base_year, company_ids).rename(self.column_config.BASE_EI) return company_info.merge(ei_at_base, left_index=True, right_index=True) @@ -357,15 +366,15 @@ def get_company_fundamentals(self, company_ids: List[str]) -> pd.DataFrame: return pd.DataFrame.from_records( [ICompanyData.parse_obj(c.dict()).dict() for c in self.get_company_data(company_ids)], exclude=['projected_targets', 'projected_intensities', 'historic_data']).set_index( - self.column_config.COMPANY_ID) + self.column_config.COMPANY_ID) def get_company_projected_trajectories(self, company_ids: List[str]) -> pd.DataFrame: """ :param company_ids: A list of company IDs :return: A pandas DataFrame with projected intensity trajectories per company, indexed by company_id """ - trajectory_list = [self._convert_projections_to_series(c, self.column_config.PROJECTED_EI) for c in - self.get_company_data(company_ids)] + trajectory_list = [self._convert_projections_to_series(c, self.column_config.PROJECTED_EI, EScope.S1S2) + for c in self.get_company_data(company_ids)] if trajectory_list: with warnings.catch_warnings(): # pd.DataFrame.__init__ (in pandas/core/frame.py) ignores the beautiful dtype information adorning the pd.Series list elements we are providing. Sad! @@ -378,7 +387,7 @@ def get_company_projected_targets(self, company_ids: List[str]) -> pd.DataFrame: :param company_ids: A list of company IDs :return: A pandas DataFrame with projected intensity targets per company, indexed by company_id """ - target_list = [self._convert_projections_to_series(c, self.column_config.PROJECTED_TARGETS) + target_list = [self._convert_projections_to_series(c, self.column_config.PROJECTED_TARGETS, EScope.S1S2) for c in self.get_company_data(company_ids)] if target_list: with warnings.catch_warnings(): @@ -518,12 +527,19 @@ def _add_projections_to_companies(self, companies: List[ICompanyData], extrapola projections = [IProjection(year=year, value=value) for year, value in results.items() if year >= TemperatureScoreConfig.CONTROLS_CONFIG.base_year] scope_projections[scope] = ICompanyEIProjections(ei_metric={'units': units}, projections=projections) - if scope_projections.get('S1') and scope_projections.get('S2') and not scope_projections.get('S1S2'): + if scope_projections['S1'] and scope_projections['S2'] and not scope_projections['S1S2']: results = scope_dfs['S1'] + scope_dfs['S2'] units = f"{results.values[0].u:~P}" projections = [IProjection(year=year, value=value) for year, value in results.items() if year >= TemperatureScoreConfig.CONTROLS_CONFIG.base_year] scope_projections['S1S2'] = ICompanyEIProjections(ei_metric={'units': units}, projections=projections) + # FIXME: do we really need to do this? We're going to migrate S3 to S1S2 and ignore S1S2S3... + if scope_projections['S1S2'] and scope_projections['S3'] and not scope_projections['S1S2S3']: + results = scope_dfs['S1S2'] + scope_dfs['S3'] + units = f"{results.values[0].u:~P}" + projections = [IProjection(year=year, value=value) for year, value in results.items() + if year >= TemperatureScoreConfig.CONTROLS_CONFIG.base_year] + scope_projections['S1S2S3'] = ICompanyEIProjections(ei_metric={'units': units}, projections=projections) company.projected_intensities = ICompanyEIProjectionsScopes(**scope_projections) def _standardize(self, intensities: pd.DataFrame) -> pd.DataFrame: diff --git a/ITR/data/data_warehouse.py b/ITR/data/data_warehouse.py index 326fd7b6..60ecc435 100644 --- a/ITR/data/data_warehouse.py +++ b/ITR/data/data_warehouse.py @@ -6,7 +6,7 @@ from typing import List, Type from pydantic import ValidationError -from ITR.interfaces import ICompanyAggregates +from ITR.interfaces import IEmissionRealization, IEIRealization, ICompanyAggregates, ICompanyEIProjection from ITR.data.data_providers import CompanyDataProvider, ProductionBenchmarkDataProvider, IntensityBenchmarkDataProvider from ITR.configs import ColumnsConfig, TemperatureScoreConfig, LoggingConfig @@ -37,6 +37,28 @@ def __init__(self, company_data: CompanyDataProvider, self.column_config = column_config self.company_data = company_data self.company_data._calculate_target_projections(benchmark_projected_production) + + # After projections have been made, shift S3 data into S1S2. If we shift before we project, + # then S3 targets will not be projected correctly. + for c in self.company_data._companies: + if c.ghg_s3: + # For Production-centric and energy-only data (except for Cement), convert all S3 numbers to S1 numbers + c.ghg_s1s2 = c.ghg_s1s2 + c.ghg_s3 + c.ghg_s3 = 0 + if c.historic_data: + if c.historic_data.emissions and c.historic_data.emissions.S3: + c.historic_data.emissions.S1S2 = list( map(IEmissionRealization.add, c.historic_data.emissions.S1S2, c.historic_data.emissions.S3) ) + c.historic_data.emissions.S3 = [] + if c.historic_data.emissions_intensities and c.historic_data.emissions_intensities.S3: + c.historic_data.emissions_intensities.S1S2 = \ + list( map(IEIRealization.add, c.historic_data.emissions_intensities.S1S2, c.historic_data.emissions_intensities.S3) ) + c.historic_data.emissions_intensities.S3 = [] + if c.projected_intensities.S3: + c.projected_intensities.S1S2.projections = list( map(ICompanyEIProjection.add, c.projected_intensities.S1S2.projections, c.projected_intensities.S3.projections) ) + c.projected_intensities.S3 = None + if c.projected_targets.S3: + c.projected_targets.S1S2.projections = list( map(ICompanyEIProjection.add, c.projected_targets.S1S2.projections, c.projected_targets.S3.projections) ) + c.projected_targets.S3 = None def get_preprocessed_company_data(self, company_ids: List[str]) -> List[ICompanyAggregates]: """ diff --git a/ITR/data/excel.py b/ITR/data/excel.py index 488739d4..e2618691 100644 --- a/ITR/data/excel.py +++ b/ITR/data/excel.py @@ -110,9 +110,8 @@ def __init__(self, excel_path: str, benchmark_temperature: Quantity['delta_degC' self._convert_excel_to_model = convert_intensity_benchmark_excel_to_model EI_benchmarks = self._convert_excel_to_model(self.benchmark_excel, TabsConfig.PROJECTED_EI, column_config.REGION, column_config.SECTOR) - # TODO: Fix units for Steel super().__init__( - IEIBenchmarkScopes(benchmark_metric={'units':'t CO2/MWh'}, S1S2=EI_benchmarks, + IEIBenchmarkScopes(S1S2=EI_benchmarks, benchmark_temperature=benchmark_temperature, benchmark_global_budget=benchmark_global_budget, is_AFOLU_included=is_AFOLU_included), diff --git a/ITR/data/osc_units.py b/ITR/data/osc_units.py index 49162018..66b62b19 100644 --- a/ITR/data/osc_units.py +++ b/ITR/data/osc_units.py @@ -18,9 +18,17 @@ PA_ = PintArray ureg.define("CO2e = CO2 = CO2eq = CO2_eq") +ureg.define("LNG = 3.44 / 2.75 CH4") +# with ureg.context("CH4_conversions"): +# print(ureg("t LNG").to("t CO2")) +# will print 3.44 t CO2 + ureg.define("Fe_ton = [produced_ton]") ureg.define("passenger = [passenger_unit]") +# For reports that use 10,000 t instead of 1e3 or 1e6 +ureg.define('myria- = 10000') + # These are for later ureg.define('fraction = [] = frac') ureg.define('percent = 1e-2 frac = pct = percentage') @@ -31,7 +39,9 @@ ureg.define("JPY = nan USD") ureg.define("btu = Btu") -ureg.define("boe = 5.712 GJ") +ureg.define("mmbtu = 1e6 btu") +# ureg.define("boe = 5.712 GJ") +ureg.define("boe = 6.1178632 GJ") ureg.define("mboe = 1e3 boe") ureg.define("mmboe = 1e6 boe") diff --git a/ITR/interfaces.py b/ITR/interfaces.py index b079ab98..b18ad00b 100644 --- a/ITR/interfaces.py +++ b/ITR/interfaces.py @@ -1,5 +1,6 @@ import numpy as np import pandas as pd +from operator import add from enum import Enum from typing import Optional, Dict, List, Literal, Union from pydantic import BaseModel, parse_obj_as, validator, root_validator @@ -162,7 +163,7 @@ class AggregationContribution(PintModel): company_name: str company_id: str temperature_score: Quantity['delta_degC'] - contribution_relative: Optional[Quantity['delta_degC']] + contribution_relative: Optional[Quantity['percent']] contribution: Optional[Quantity['delta_degC']] def __getitem__(self, item): @@ -171,6 +172,7 @@ def __getitem__(self, item): class Aggregation(PintModel): score: Quantity['delta_degC'] + # proportion is a number from 0..1 proportion: float contributions: List[AggregationContribution] @@ -309,6 +311,10 @@ class ICompanyEIProjection(PintModel): year: int value: Optional[Quantity] + def add(self, o): + assert self.year==o.year + return IEmissionRealization(year=self.year, value = self.value + o.value) + class ICompanyEIProjections(BaseModel): ei_metric: IntensityMetric @@ -343,6 +349,10 @@ class IEmissionRealization(PintModel): year: int value: Optional[Quantity['CO2']] + def add(self, o): + assert self.year==o.year + return IEmissionRealization(year=self.year, value = self.value + o.value) + class IHistoricEmissionsScopes(PintModel): S1: List[IEmissionRealization] @@ -356,6 +366,10 @@ class IEIRealization(PintModel): year: int value: Optional[Quantity[IntensityMetric]] + def add(self, o): + assert self.year==o.year + return IEIRealization(year=self.year, value = self.value + o.value) + class IHistoricEIScopes(PintModel): S1: List[IEIRealization] @@ -383,6 +397,15 @@ class ITargetData(PintModel): target_base_year_unit: str target_reduction_pct: float +<<<<<<< HEAD +======= + @root_validator + def must_be_greater_than_2022(cls, v): + if v['target_end_year'] < 2023: + raise ValueError(f"Scope {v['target_scope']}: Target end year ({v['target_end_year']}) must be greater than 2022") + return v + +>>>>>>> Initial Scope 3 support aligned with OECM 2.0 class ICompanyData(PintModel): company_name: str @@ -448,21 +471,31 @@ def _fixup_year_value_list(self, ListType, u_list, metric, inferred_metric): r_list = UProjections_to_IProjections(ListType, i_list, {'units':metric}) return r_list - def _fixup_ei_projections(self, projections, production_metric, emissions_metric, sector): + def _sector_to_production_units(self, sector, region="Global"): + units = None + if sector == 'Electricity Utilities': + units = 'MWh' if region == 'North America' else 'GJ' + elif sector == 'Steel': + units = 'Fe_ton' + elif sector == 'Oil & Gas': + units = 'mmboe' + elif sector == 'Autos': + units = '(passenger km)' + else: + raise ValueError(f"No source of production metrics for {self.company_name}") + return units + + def _fixup_ei_projections(self, projections, production_metric, emissions_metric, sector, region): if projections is None or isinstance(projections, ICompanyEIProjectionsScopes): return projections ei_metric = None if emissions_metric is None and production_metric is None: inferred_emissions_metric = 't CO2' - if sector == 'Electricity Utilities': - inferred_production_metric = 'MWh' - else: - inferred_production_metric = 'Fe_ton' - inferred_ei_metric = f"{inferred_emissions_metric}/({inferred_production_metric})" + inferred_production_metric = self._sector_to_production_units(sector, region) else: inferred_emissions_metric = emissions_metric['units'] inferred_production_metric = production_metric['units'] - inferred_ei_metric = f"{inferred_emissions_metric}/({inferred_production_metric})" + inferred_ei_metric = f"{inferred_emissions_metric}/({inferred_production_metric})" for scope in projections: if projections[scope] is None: continue @@ -472,14 +505,11 @@ def _fixup_ei_projections(self, projections, production_metric, emissions_metric model_projections = ICompanyEIProjectionsScopes(**projections) return model_projections - def _fixup_historic_data(self, historic_data, production_metric, emissions_metric, sector): + def _fixup_historic_data(self, historic_data, production_metric, emissions_metric, sector, region): if historic_data is None: return None if production_metric is None: - if sector == 'Electricity Utilities': - inferred_production_metric = 'MWh' - else: - inferred_production_metric = 'Fe_ton' + inferred_production_metric = self._sector_to_production_units(sector, region) else: inferred_production_metric = production_metric['units'] if not historic_data.get('productions'): @@ -487,7 +517,7 @@ def _fixup_historic_data(self, historic_data, production_metric, emissions_metri else: productions = self._fixup_year_value_list(IProductionRealization, historic_data['productions'], production_metric, inferred_production_metric) if emissions_metric is None: - if production_metric in ['TWh', 'PJ']: + if production_metric in ['TWh', 'PJ', 'mmboe']: inferred_emissions_metric = 'Mt CO2' else: inferred_emissions_metric = 't CO2' @@ -506,6 +536,8 @@ def _fixup_historic_data(self, historic_data, production_metric, emissions_metri inferred_ei_metric = f"{inferred_emissions_metric}/({inferred_production_metric})" for scope in historic_data['emissions_intensities']: emissions_intensities[scope] = self._fixup_year_value_list(IEIRealization, historic_data['emissions_intensities'][scope], None, inferred_ei_metric) + + # Tempting to rewrite history here to push S3 into S1S2, but we have to wait until projections are finished model_historic_data = IHistoricData(productions=productions, emissions=emissions, emissions_intensities=emissions_intensities) return model_historic_data @@ -525,26 +557,21 @@ def _get_base_realization_from_historic(self, realized_values: List[PintModel], def __init__(self, historic_data=None, projected_targets=None, projected_intensities=None, emissions_metric=None, production_metric=None, base_year_production=None, ghg_s1s2=None, ghg_s3=None, *args, **kwargs): - super().__init__(historic_data=self._fixup_historic_data(historic_data, production_metric, emissions_metric, kwargs.get('sector')), + super().__init__(historic_data=self._fixup_historic_data(historic_data, production_metric, emissions_metric, kwargs.get('sector'), kwargs.get('region')), # Not necessarily initialized here; may be fixed up if initially None after benchmark info is set - projected_targets=self._fixup_ei_projections(projected_targets, production_metric, emissions_metric, kwargs.get('sector')), - projected_intensities=self._fixup_ei_projections(projected_intensities, production_metric, emissions_metric, kwargs.get('sector')), + projected_targets=self._fixup_ei_projections(projected_targets, production_metric, emissions_metric, kwargs.get('sector'), kwargs.get('region')), + projected_intensities=self._fixup_ei_projections(projected_intensities, production_metric, emissions_metric, kwargs.get('sector'), kwargs.get('region')), emissions_metric=emissions_metric, production_metric=production_metric, *args, **kwargs) # In-bound parameters are dicts, which are converted to models by __super__ and stored as instance variables if production_metric is None: - if self.sector == 'Electricity Utilities': - units = 'MWh' if self.region == 'North America' else 'GJ' - elif self.sector == 'Steel': - units = 'Fe_ton' - else: - raise ValueError(f"No source of production metrics for {self.company_name}") + units = self._sector_to_production_units(self.sector, self.region) self.production_metric = parse_obj_as(ProductionMetric, {'units': units}) if emissions_metric is None: self.emissions_metric = parse_obj_as(EmissionsMetric, {'units': 't CO2'}) elif emissions_metric is None: - if self.production_metric.units in ['TWh', 'PJ', 'MFe_ton', 'megaFe_ton']: + if self.production_metric.units in ['TWh', 'PJ', 'MFe_ton', 'megaFe_ton', 'mmboe']: self.emissions_metric = parse_obj_as(EmissionsMetric, {'units': 'Mt CO2'}) else: self.emissions_metric = parse_obj_as(EmissionsMetric, {'units': 't CO2'}) @@ -572,6 +599,9 @@ def __init__(self, historic_data=None, projected_targets=None, projected_intensi base_realization_s2 = self._get_base_realization_from_historic(self.historic_data.emissions.S2, self.emissions_metric.units, base_year) base_year = base_year or base_realization_s1.year self.ghg_s1s2 = base_realization_s1.value + base_realization_s2.value + if self.historic_data.emissions.S3: + base_realization_s3 = self._get_base_realization_from_historic(self.historic_data.emissions.S3, self.emissions_metric.units, base_year) + self.ghg_s3 = base_realization_s3.value if self.ghg_s1s2 is None: if self.historic_data.emissions_intensities: intensity_units = (Q_(1.0, self.emissions_metric.units) / Q_(1.0, self.production_metric.units)).units @@ -590,7 +620,11 @@ def __init__(self, historic_data=None, projected_targets=None, projected_intensi raise ValueError(f"missing historic emissions or intensity data to calculate ghg_s1s2 for {self.company_name}") if ghg_s3: self.ghg_s3 = pint_ify(ghg_s3, self.emissions_metric.units) - # TODO: We don't need to worry about missing S3 scope data yet + if self.ghg_s3 is None and self.historic_data and self.historic_data.emissions_intensities: + if self.historic_data.emissions_intensities.S3: + intensity_units = (Q_(1.0, self.emissions_metric.units) / Q_(1.0, self.production_metric.units)).units + base_realization_s3 = self._get_base_realization_from_historic(self.historic_data.emissions_intensities.S3, intensity_units, base_year) + self.ghg_s3 = base_realization_s3.value * self.base_year_production class ICompanyAggregates(ICompanyData): diff --git a/ITR/portfolio_aggregation.py b/ITR/portfolio_aggregation.py index d01b349d..2a2899d7 100644 --- a/ITR/portfolio_aggregation.py +++ b/ITR/portfolio_aggregation.py @@ -15,7 +15,7 @@ Q_ = ureg.Quantity PA_ = pint_pandas.PintArray -from .configs import PortfolioAggregationConfig, ColumnsConfig +from .configs import PortfolioAggregationConfig, ColumnsConfig, logger from .interfaces import EScope @@ -54,7 +54,13 @@ def get_value_column(method: 'PortfolioAggregationMethod', column_config: Type[C PortfolioAggregationMethod.ROTS: column_config.COMPANY_REVENUE, } - return map_value_column.get(method, column_config.COMPANY_MARKET_CAP) + try: + # FIXME: What should WATS return? + # FIXME: What should TETS return? + return map_value_column[method] + except KeyError: + logger.warning(f"method '{method}' not found (type({method}) = {type(method)}; defaulting to COMPANY_MARKET_CAP") + return column_config.COMPANY_MARKET_CAP class PortfolioAggregation(ABC): @@ -114,13 +120,16 @@ def _calculate_aggregate_score(self, data: pd.DataFrame, input_column: str, self._check_column(data, self.c.COLS.GHG_SCOPE3) if use_S1S2.any(): self._check_column(data, self.c.COLS.GHG_SCOPE12) - # Calculate the total emissions of all companies - emissions = data.loc[use_S1S2, self.c.COLS.GHG_SCOPE12].sum() + data.loc[use_S3, self.c.COLS.GHG_SCOPE3].sum() try: with warnings.catch_warnings(): warnings.simplefilter("ignore") - weights_series = pd.Series((data[self.c.COLS.GHG_SCOPE12].where(use_S1S2,0) + data[self.c.COLS.GHG_SCOPE3].where(use_S3, 0)) \ - / emissions * data[input_column]) + # Calculate the total emissions of all companies + emissions = data.loc[use_S1S2, self.c.COLS.GHG_SCOPE12].sum() + data.loc[use_S3, self.c.COLS.GHG_SCOPE3].sum() + # See https://github.com/hgrecco/pint-pandas/issues/130 + weights_dtype = f"pint[{emissions.u}]" + weights_series = ((data[self.c.COLS.GHG_SCOPE12].where(use_S1S2,0) + + data[self.c.COLS.GHG_SCOPE3].where(use_S3, 0)).astype(weights_dtype) \ + / emissions * data[input_column]) return weights_series except ZeroDivisionError: @@ -140,16 +149,18 @@ def _calculate_aggregate_score(self, data: pd.DataFrame, input_column: str, self._check_column(data, self.c.COLS.GHG_SCOPE12) if use_S3.any(): self._check_column(data, self.c.COLS.GHG_SCOPE3) - data[self.c.COLS.OWNED_EMISSIONS] = (data[self.c.COLS.INVESTMENT_VALUE] / data[value_column]) * ( + with warnings.catch_warnings(): + warnings.simplefilter("ignore") + data[self.c.COLS.OWNED_EMISSIONS] = (data[self.c.COLS.INVESTMENT_VALUE] / data[value_column]) * ( data[self.c.COLS.GHG_SCOPE12].where(use_S1S2, 0) + data[self.c.COLS.GHG_SCOPE3].where(use_S3, 0)) except ZeroDivisionError: raise ValueError("To calculate the aggregation, the {} column may not be zero".format(value_column)) - owned_emissions = data[self.c.COLS.OWNED_EMISSIONS].sum() try: # Calculate the MOTS value per company with warnings.catch_warnings(): warnings.simplefilter("ignore") + owned_emissions = data[self.c.COLS.OWNED_EMISSIONS].sum() result = data.apply( lambda row: (row[self.c.COLS.OWNED_EMISSIONS] / owned_emissions) * row[input_column], axis=1) diff --git a/ITR/temperature_score.py b/ITR/temperature_score.py index 116229fe..50d819c9 100644 --- a/ITR/temperature_score.py +++ b/ITR/temperature_score.py @@ -224,8 +224,7 @@ def _get_aggregations(self, data: pd.DataFrame, total_companies: int) -> Tuple[A data = data.copy() weighted_scores = self._calculate_aggregate_score(data, self.c.COLS.TEMPERATURE_SCORE, self.aggregation_method).astype('pint[delta_degC]') - data[self.c.COLS.CONTRIBUTION_RELATIVE] = pd.Series(weighted_scores / weighted_scores.sum(), - dtype='pint[percent]') + data[self.c.COLS.CONTRIBUTION_RELATIVE] = (weighted_scores / weighted_scores.sum()).astype('pint[percent]') data[self.c.COLS.CONTRIBUTION] = weighted_scores with warnings.catch_warnings(): warnings.simplefilter("ignore") @@ -235,7 +234,8 @@ def _get_aggregations(self, data: pd.DataFrame, total_companies: int) -> Tuple[A .to_dict(orient="records") aggregations = Aggregation( score=weighted_scores.sum(), - proportion=len(weighted_scores) / (total_companies / 100.0), + # proportion is not declared by anything to be a percent, so we make it a number from 0..1 + proportion=len(weighted_scores) / total_companies, contributions=[AggregationContribution.parse_obj(contribution) for contribution in contributions] ), \ data[self.c.COLS.CONTRIBUTION_RELATIVE], \ @@ -262,12 +262,13 @@ def _get_score_aggregation(self, data: pd.DataFrame, time_frame: ETimeFrames, sc score_aggregation_all, \ filtered_data[self.c.COLS.CONTRIBUTION_RELATIVE], \ filtered_data[self.c.COLS.CONTRIBUTION] = self._get_aggregations(filtered_data, total_companies) - filtered_data['DEFAULT'] = 1.0 * (filtered_data[self.c.SCORE_RESULT_TYPE] == EScoreResultType.DEFAULT) + filtered_data[self.c.COLS.TEMPERATURE_SCORE] = filtered_data.apply( + lambda x: self.fallback_score if x[self.c.SCORE_RESULT_TYPE] == EScoreResultType.DEFAULT else x[self.c.COLS.TEMPERATURE_SCORE], axis=1).astype('pint[delta_degC]') score_aggregation = ScoreAggregation( grouped={}, all=score_aggregation_all, influence_percentage=self._calculate_aggregate_score( - filtered_data, 'DEFAULT', self.aggregation_method).sum() * 100) + filtered_data, self.c.COLS.CONTRIBUTION_RELATIVE, self.aggregation_method).sum()) # If there are grouping column(s) we'll group in pandas and pass the results to the aggregation if len(self.grouping) > 0: diff --git a/ITR/utils.py b/ITR/utils.py index c05f90db..f23ec709 100644 --- a/ITR/utils.py +++ b/ITR/utils.py @@ -2,16 +2,12 @@ from pathlib import Path from typing import List, Optional, Tuple from pint import Quantity -import logging -from .configs import ColumnsConfig, TemperatureScoreConfig, LoggingConfig +from .configs import ColumnsConfig, TemperatureScoreConfig, LoggingConfig, logger from .interfaces import PortfolioCompany, EScope, ETimeFrames, ScoreAggregations, TemperatureScoreControls from .data.data_warehouse import DataWarehouse from .portfolio_aggregation import PortfolioAggregationMethod -logger = logging.getLogger(__name__) -LoggingConfig.add_config_to_logger(logger) - # If this file is moved, the computation of get_project_root may also need to change def get_project_root() -> Path: diff --git a/examples/ITR_UI.py b/examples/ITR_UI.py index aaee2963..43fb8876 100644 --- a/examples/ITR_UI.py +++ b/examples/ITR_UI.py @@ -614,7 +614,16 @@ def agg_score(agg_method): scopes=[EScope.S1S2], aggregation_method=agg_method) # Options for the aggregation method are WATS, TETS, AOTS, MOTS, EOTS, ECOTS, and ROTS aggregated_scores = temperature_score.aggregate_scores(filt_df) - return [agg_method.value,aggregated_scores.long.S1S2.all.score] + if aggregated_scores.long.S1S2: + agg_s1s2 = [agg_method.value,aggregated_scores.long.S1S2.all.score] + else: + agg_s1s2 = [] + if aggregated_scores.long.S3: + agg_s3 = [agg_method.value,aggregated_scores.long.S3.all.score] + else: + agg_s3 = [] + + return agg_s1s2 + agg_s3 agg_temp_scores = [agg_score(i) for i in PortfolioAggregationMethod] methods, scores = list(map(list, zip(*agg_temp_scores))) @@ -653,13 +662,20 @@ def agg_score(agg_method): df_for_output_table['investment_value'] = df_for_output_table['investment_value'].apply(lambda x: "${:,.1f} Mn".format((x/1000000))) # formating column df_for_output_table.rename(columns={'company_name':'Name', 'company_id':'ISIN','region':'Region','sector':'Industry','cumulative_budget':'Emissions budget','investment_value':'Notional','trajectory_score':'Historical emissions score', 'target_score':'Target score','temperature_score':'Weighted temperature score'}, inplace=True) + if aggregated_scores.long.S1S2: + scores = aggregated_scores.long.S1S2.all.score.m + elif aggregated_scores.long.S3: + scores = aggregated_scores.long.S3.all.score.m + else: + raise ValueError("No aggregated scores") + return ( fig1, fig5, heatmap_fig, high_score_fig, port_score_diff_methods_fig, - "{:.2f}".format(aggregated_scores.long.S1S2.all.score.m), # fake for spinner - "{:.2f}".format(aggregated_scores.long.S1S2.all.score.m), # portfolio score - {'color': 'ForestGreen'} if aggregated_scores.long.S1S2.all.score.m < 2 else {'color': 'Red'}, # conditional color + "{:.2f}".format(scores), # fake for spinner + "{:.2f}".format(scores), # portfolio score + {'color': 'ForestGreen'} if scores < 2 else {'color': 'Red'}, # conditional color str(round((filt_df.company_ev_plus_cash.sum())/10**9,0)), # sum of total EVIC for companies in portfolio str(round((filt_df.investment_value.sum())/10**6,1)), # portfolio notional str(len(filt_df)), # num of companies diff --git a/examples/data/20220720 ITR Tool Sample Data.xlsx b/examples/data/20220720 ITR Tool Sample Data.xlsx index 30164475932dcd24fc1b87a0e8f8137c031a77d6..e145d3defd2ac289f1eb49e8316e5d8abc9d0e68 100644 GIT binary patch delta 61535 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 delta 54383 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

    st=qvQFsDt{=#*5vMNhvZ3sk$L!z^ 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%0A;4T(P6BJo88ns>@39xkO=8Bes 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%0AseVr<`3%MwI^c8yvk6OFS`n3!ZqV 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

    b<@>8i^nS0*1QY=RTR=d0;n3L>=RM=R2=OPPYTV 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%0A`)Y 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 z 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

    e2t)F;Ax!h?4FMp$JE5S7Wz>km5NvBtSR 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 Q|IXR4f6TkCoyD@FB~|yG|TJ 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